Main Content

MATLAB의 딥러닝

딥러닝이란?

딥러닝은 인간에게는 자연스러운 능력인 경험으로부터의 학습을 컴퓨터에게 가르치는 머신러닝의 한 분야입니다. 딥러닝은 신경망을 사용하여 데이터에서 특징의 유용한 표현을 직접 학습합니다. 신경망은 생물 신경계에서 영감을 얻은 병렬로 동작하는 단순한 요소들을 사용하여 여러 비선형 처리 계층을 결합합니다. 딥러닝 모델은 사물 분류에서 뛰어난 정확도를 달성할 수 있으며, 때로는 인간의 정확도를 능가하기도 합니다.

Deep Learning Toolbox™는 심층 신경망의 계층을 만들고 상호 연결하는 간단한 MATLAB® 명령을 제공합니다. 다양한 예제와 사전 훈련된 신경망이 제공되기 때문에 고급 컴퓨터 비전 알고리즘이나 신경망에 대한 사전 지식이 없어도 쉽게 MATLAB을 딥러닝에 사용할 수 있습니다.

Deep Learning Onramp에서는 실용적인 딥러닝 기법들을 실습을 통해 무료로 소개합니다. 딥러닝을 빠르게 시작하려면 MATLAB 코드 10줄로 시작해 보는 딥러닝 항목을 참조하십시오.

전이 학습을 사용하여 더 빠르게 딥러닝 시작하기

전이 학습은 딥러닝 응용 분야에서 널리 사용됩니다. 사전 훈련된 신경망을 새로운 작업을 학습하기 위한 출발점으로 사용할 수 있습니다. 전이 학습을 통해 신경망을 미세 조정하는 것이 처음부터 훈련시키는 것보다 훨씬 더 빠르고 쉽습니다. 보다 적은 개수의 훈련 영상을 사용하여 신경망이 새로운 작업을 빠르게 학습하도록 할 수 있습니다. 전이 학습의 이점은 사전 훈련된 신경망이 다양한 이외의 비슷한 작업에 적용할 수 있는 수많은 특징을 이미 학습했다는 데 있습니다. 대화형 방식 예제는 심층 신경망 디자이너를 사용한 전이 학습 항목을 참조하십시오. 프로그래밍 방식 예제는 새로운 영상을 분류하도록 딥러닝 신경망 훈련시키기 항목을 참조하십시오.

사전 훈련된 신경망을 사용할지 혹은 새로운 심층 신경망을 만들지 선택하려면 다음 표에 나와 있는 시나리오를 살펴보십시오.

 전이 학습을 위해 사전 훈련된 신경망 사용새로운 심층 신경망 만들기
훈련 데이터수백에서 수천 개까지의 레이블 지정 데이터(작음)수천 개에서 수백만 개까지의 레이블 지정 데이터
연산적당한 연산(GPU는 선택 사항)연산 집약적(속도를 위해 GPU 필요)
훈련 시간몇 초에서 몇 분현실 세계 문제의 경우 며칠에서 몇 주
모델 정확도양호, 사전 훈련된 모델에 따라 다름높음, 그러나 작은 데이터 세트에 대해 과적합될 수 있음

다양한 사전 훈련된 신경망을 살펴보려면 심층 신경망 디자이너를 사용하십시오.

딥러닝 워크플로

딥러닝 응용 분야에 대한 자세한 내용은 딥러닝 응용 사례 항목을 참조하십시오.

분야예제 워크플로자세히 알아보기

영상 분류, 회귀 및 처리

Image data example

딥러닝을 영상 데이터 작업에 적용합니다.

예를 들어, 영상 분류와 회귀에 딥러닝을 사용합니다.

전이 학습 시작하기

사전 훈련된 심층 신경망

간단한 분류용 딥러닝 신경망 만들기

회귀를 위해 컨벌루션 신경망 훈련시키기

딥러닝을 위해 영상 전처리하기

시퀀스와 시계열

Time series data example

시퀀스와 시계열 작업에 딥러닝을 적용합니다.

예를 들어, 시퀀스 분류 및 시계열 전망에 딥러닝을 사용합니다.

딥러닝을 사용한 시퀀스 분류

딥러닝을 사용한 시계열 전망

컴퓨터 비전

Semantic segmentation data example

컴퓨터 비전 응용 분야에 딥러닝을 적용합니다.

예를 들어, 의미론적 분할과 객체 검출에 딥러닝을 사용합니다.

딥러닝을 사용한 의미론적 분할 시작하기 (Computer Vision Toolbox)

인식, 객체 검출 및 의미론적 분할 (Computer Vision Toolbox)

오디오 처리

Audio data example

오디오 및 음성 처리 응용 분야에 딥러닝을 적용합니다.

예를 들어, 화자 식별, 음성 명령 인식, 음향 장면 인식에 딥러닝을 사용합니다.

딥러닝을 사용한 오디오 처리

Deep Learning for Audio Applications (Audio Toolbox)

자율 주행

Automated driving data example

자율 주행 응용 분야에 딥러닝을 적용합니다.

예를 들어, 차량 검출 및 의미론적 분할에 딥러닝을 사용합니다.

딥러닝을 사용한 자율 주행

Train a Deep Learning Vehicle Detector

신호 처리

Signal processing data example

신호 처리 응용 분야에 딥러닝을 적용합니다.

예를 들어, 파형 분할, 신호 분류, 음성 신호 잡음 제거에 딥러닝을 사용합니다.

딥러닝을 사용한 신호 처리

웨이블릿 분석 및 딥러닝을 사용하여 시계열 분류하기

무선 통신

Wireless communications data example

무선 통신 시스템에 딥러닝을 적용합니다.

예를 들어, 위치 측정, 스펙트럼 검출, 오토인코더 설계, 디지털 전치왜곡(DPD)에 딥러닝을 사용합니다.

딥러닝을 사용한 무선 통신

Spectrum Sensing with Deep Learning to Identify 5G and LTE Signals

Three-Dimensional Indoor Positioning with 802.11az Fingerprinting and Deep Learning (WLAN Toolbox)

강화 학습

Reinforcement learning data example

알려지지 않은 동적 환경과 상호 작용하여 심층 신경망 에이전트 훈련시키기

예를 들어, 자원 할당, 로보틱스, 자율 시스템과 같은 복잡한 응용 분야의 제어기 및 의사결정 알고리즘을 구현하는 정책을 훈련시킬 때 강화 학습을 사용합니다.

심층 신경망을 사용한 강화 학습

계산 금융

Computational finance data example

금융 워크플로에 딥러닝을 적용합니다.

예를 들어, 금융 상품 가격 책정, 거래, 위험 관리 등의 응용 분야에 딥러닝을 사용합니다.

딥러닝을 사용한 계산 금융

Compare Deep Learning Networks for Credit Default Prediction

라이다 처리

Lidar processing data example

라이다 포인트 클라우드 데이터 처리에 딥러닝 알고리즘을 적용합니다.

예를 들어, 조직화된 3차원 라이다 포인트 클라우드 데이터에서 의미론적 분할과 객체 검출에 딥러닝을 사용합니다.

딥러닝을 사용한 라이다 처리

Aerial Lidar Semantic Segmentation Using PointNet++ Deep Learning

Lidar 3-D Object Detection Using PointPillars Deep Learning

텍스트 분석

Text analytics data example

텍스트 분석 응용 분야에 딥러닝을 적용합니다.

예를 들어, 텍스트 분류, 언어 번역, 텍스트 생성에 딥러닝을 사용합니다.

딥러닝을 사용한 텍스트 분석

딥러닝을 사용하여 텍스트 데이터 분류하기

예측 정비

Predictive maintenance data example

예측 정비 응용 분야에 딥러닝을 적용합니다.

예를 들어, 결함 검출과 잔여 수명 추정에 딥러닝을 사용합니다.

딥러닝을 사용한 예측 정비

Chemical Process Fault Detection Using Deep Learning

딥러닝 앱

이러한 앱을 사용하여 대화형 방식으로 데이터를 처리하고, 신경망을 시각화 및 훈련시키며, 실험을 추적하고, 신경망을 양자화합니다.

실측 데이터에 레이블을 지정하는 앱을 사용하여 훈련시키기 전에 데이터를 처리할 수 있습니다. 레이블 지정 앱 선택에 대한 자세한 내용은 Choose an App to Label Ground Truth Data 항목을 참조하십시오.

이름설명자세히 알아보기
심층 신경망 디자이너

Deep Network Designer

딥러닝 신경망을 구축하고 시각화하고 편집하고 훈련시킵니다.

심층 신경망 디자이너를 사용한 전이 학습

Train Network for Time Series Forecasting Using Deep Network Designer

실험 관리자

Experiment Manager

여러 초기 조건하에서 신경망을 훈련시키는 딥러닝 실험을 만들고 결과를 비교합니다.

Create a Deep Learning Experiment for Classification

Create a Deep Learning Experiment for Regression

심층 신경망 양자화기

Deep Network Quantizer

컨벌루션 계층의 가중치, 편향 및 활성화를 8비트로 스케일링된 정수 데이터형으로 양자화하여 심층 신경망의 메모리 요구 사항을 줄입니다.

Quantization of Deep Neural Networks

강화 학습 디자이너 (Reinforcement Learning Toolbox)

Reinforcement Learning Designer

강화 학습 에이전트를 설계, 훈련, 시뮬레이션합니다.Design and Train Agent Using Reinforcement Learning Designer (Reinforcement Learning Toolbox)
영상 레이블 지정기 (Computer Vision Toolbox)

Image Labeler

영상 모음에서 실측 데이터에 레이블을 지정합니다.

Get Started with the Image Labeler (Computer Vision Toolbox)

비디오 레이블 지정기 (Computer Vision Toolbox)

Video Labeler

비디오, 영상 시퀀스 또는 사용자 지정 데이터 소스 리더에서 실측 데이터에 레이블을 지정합니다.

Get Started with the Video Labeler (Computer Vision Toolbox)

실측 레이블 지정기 (Automated Driving Toolbox)

Ground Truth Labeler

여러 비디오, 영상 시퀀스 또는 라이다 포인트 클라우드에서 실측 데이터에 레이블을 지정합니다.

Get Started with Ground Truth Labelling (Automated Driving Toolbox)

라이다 레이블 지정기 (Lidar Toolbox)

Lidar Labeler

포인트 클라우드 또는 포인트 클라우드 시퀀스에서 객체에 레이블을 지정합니다. 앱은 PLY, PCAP, LAS, LAZ, ROS, PCD 파일에서 포인트 클라우드 데이터를 읽어 들입니다.

Get Started with the Lidar Labeler (Lidar Toolbox)

신호 레이블 지정기 (Signal Processing Toolbox)

Signal Labeler

머신러닝, 딥러닝 응용 분야에서 분석 및 사용을 위해 신호에 레이블을 지정합니다.

Using Signal Labeler App (Signal Processing Toolbox)

사전 훈련된 신경망에서 추출한 특징을 사용하여 분류기 훈련시키기

특징 추출을 사용하면 훈련에 시간과 노력을 투입하지 않고도 사전 훈련된 신경망의 강력한 기능을 사용할 수 있습니다. 특징 추출은 딥러닝을 사용하는 가장 빠른 방법이 될 수 있습니다. 사전 훈련된 신경망에서 학습된 특징을 추출한 다음 예를 들어 서포트 벡터 머신(SVM — Statistics and Machine Learning Toolbox™ 필요)과 같은 분류기를 훈련시키는 데 이렇게 추출한 특징을 사용할 수 있습니다. 예를 들어, alexnet을 사용하여 훈련된 SVM이 훈련 및 검증 세트에 대해 90%를 상회하는 정확도를 달성할 수 있는 경우, 전이 학습을 사용하여 미미한 정확도 개선을 얻는 것이 그다지 크게 득이 되지 않을 수 있습니다. 작은 데이터셋에서 미세 조정을 수행하는 경우에는 과적합의 위험이 따릅니다. 응용 사례에서 SVM으로 양호한 정확도를 달성하기 어려운 경우에는 미세 조정이라는 수고를 들여서 더 높은 정확도를 달성하는 것이 좋을 수 있습니다.

예제는 사전 훈련된 신경망을 사용하여 영상 특징 추출하기 항목을 참조하십시오.

CPU, GPU, 병렬 및 클라우드에서 빅데이터를 사용한 딥러닝

신경망을 훈련시키는 데는 많은 양의 연산이 필요하며 시간이 오래 걸릴 수 있습니다. 하지만, 신경망은 본질적으로 병렬 알고리즘입니다. Parallel Computing Toolbox™를 사용하면 고성능 GPU 및 컴퓨터 클러스터를 사용해 병렬 연산을 실행하여 병렬 처리의 이점을 누릴 수 있습니다. 클라우드 환경에서 또는 GPU를 사용하여 딥러닝을 병렬 연산으로 실행하는 방법을 자세히 알아보려면 Scale Up Deep Learning in Parallel, on GPUs, and in the Cloud 항목을 참조하십시오.

Accelerating training in the cloud with Parallel Computing Toolbox.

MATLAB®의 데이터저장소는 용량이 너무 커서 한꺼번에 메모리에 담을 수 없는 데이터 모음을 처리하고 표현할 때 사용하면 편리합니다. 대규모 데이터 세트를 사용한 딥러닝에 대한 자세한 내용은 Deep Learning with Big Data 항목을 참조하십시오.

Simulink를 사용한 딥러닝

Deep Learning Toolbox™에 포함된 Deep Neural Networks 블록 라이브러리의 블록을 사용하거나 Computer Vision Toolbox™에 포함된 Analysis & Enhancement 블록 라이브러리의 Deep Learning Object Detector 블록을 사용하여 Simulink® 모델에서 딥러닝 기능을 구현합니다.

자세한 내용은 Simulink를 사용한 딥러닝 항목을 참조하십시오.

블록설명

Image Classifier

훈련된 딥러닝 신경망을 사용하여 데이터 분류

Predict

훈련된 딥러닝 신경망을 사용하여 응답 변수 예측

Stateful Classify

훈련된 딥러닝 순환 신경망을 사용하여 데이터 분류

Stateful Predict

훈련된 순환 신경망을 사용하여 응답 변수 예측

Deep Learning Object Detector (Computer Vision Toolbox)

훈련된 딥러닝 객체 검출기를 사용하여 객체 검출

딥러닝 해석 가능성

딥러닝 신경망은 신경망에서 특정 결정을 내리는 이유가 항상 명확한 것은 아니므로 종종 "블랙박스"라고 설명됩니다. 해석 가능성 기법을 사용하여 신경망 동작을 사람이 해석할 수 있는 출력값으로 번역할 수 있습니다. 그러면 이 해석 가능한 출력값으로 신경망 예측에 관한 질문에 답할 수 있습니다.

Deep Learning Toolbox는 여러 가지 방법의 딥러닝 시각화를 제공하여 신경망 동작을 살펴보고 파악할 수 있도록 합니다. 예를 들어, gradCAM, occlusionSensitivity, imageLIME 방법이 있습니다. 자세한 내용은 Deep Learning Visualization Methods 항목을 참조하십시오.

Deep learning interpretability and visualization methods applied to an image of a dog.

딥러닝 사용자 지정

다양한 방법으로 딥러닝 모델을 훈련시키고 사용자 지정할 수 있습니다. 예를 들어, 내장 계층을 사용하거나 사용자 지정 계층을 정의하여 신경망을 구축할 수 있습니다. 그런 다음, 기본 제공 훈련 함수 trainNetwork를 사용하여 신경망을 훈련시키거나, 딥러닝 모델을 함수로 정의하고 사용자 지정 훈련 루프를 사용할 수 있습니다. 사용할 방법을 결정하는 데 도움을 얻으려면 다음 표를 참조하십시오.

방법활용 사례자세히 알아보기
기본 제공 훈련과 계층대부분의 딥러닝 작업에 적합합니다.

사용자 지정 계층Deep Learning Toolbox가 작업에 필요한 계층을 제공하지 않는다면 사용자 지정 계층을 만들 수 있습니다.
사용자 지정 훈련 루프추가로 사용자 지정이 필요하면 사용자 지정 훈련 루프를 사용하여 신경망을 구축하고 훈련시킬 수 있습니다.

자세한 내용은 Train Deep Learning Model in MATLAB 항목을 참조하십시오.

딥러닝 가져오기와 내보내기

TensorFlow™ 2, TensorFlow-Keras, PyTorch®, ONNX™(Open Neural Network Exchange) 모델 형식에서 신경망과 계층 그래프를 가져올 수 있습니다. Deep Learning Toolbox 신경망과 계층 그래프를 TensorFlow 2 및 ONNX 모델 형식으로 내보낼 수도 있습니다.

가져오기 함수

외부 딥러닝 플랫폼과 모델 형식신경망 형태로 모델 가져오기계층 그래프 형태로 모델 가져오기
SavedModel 형식의 TensorFlow 신경망importTensorFlowNetworkimportTensorFlowLayers
HDF5 또는 JSON 형식의 TensorFlow-Keras 신경망importKerasNetworkimportKerasLayers
.pt 파일의 추적 PyTorch 모델importNetworkFromPyTorch해당 없음
ONNX 모델 형식의 신경망importONNXNetworkimportONNXLayers

importKerasNetwork 함수와 importKerasLayers 함수 대신 importTensorFlowNetwork 함수와 importTensorFlowLayers 함수가 권장됩니다. 자세한 내용은 Recommended Functions to Import TensorFlow Models 항목을 참조하십시오.

importTensorFlowNetwork, importTensorFlowLayers, importNetworkFromPyTorch, importONNXNetwork, importONNXLayers 함수는 TensorFlow 계층, PyTorch 계층, 또는 함수가 내장 MATLAB 계층으로 변환할 수 없는 ONNX 연산자가 있는 모델을 가져올 때 자동으로 생성된 사용자 지정 계층을 생성합니다. 이 함수들은 자동으로 생성된 사용자 지정 계층을 현재 폴더의 패키지에 저장합니다. 자세한 내용은 Autogenerated Custom Layers 항목을 참조하십시오.

내보내기 함수

신경망 또는 계층 그래프 내보내기외부 딥러닝 플랫폼과 모델 형식
exportNetworkToTensorFlowPython® 패키지의 TensorFlow 2 모델
exportONNXNetworkONNX 모델 형식

exportNetworkToTensorFlow 함수는 Deep Learning Toolbox 신경망 또는 계층 그래프를 Python 패키지의 TensorFlow 모델로 저장합니다. 내보낸 모델을 불러오고 표준 TensorFlow 형식으로 저장하는 방법에 대한 자세한 내용은 Load Exported TensorFlow ModelSave Exported TensorFlow Model in Standard Format 항목을 참조하십시오.

ONNX를 중간 형식으로 이용하면 ONNX 모델을 내보내거나 가져올 수 있는 다른 종류의 딥러닝 프레임워크를 함께 운용할 수 있습니다.

관련 항목