主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

MATLAB의딥러닝

딥러닝이란?

딥러닝은인간에게는자연스러운능력인경험으로부터의학습을컴퓨터에게가르치는머신러닝의한분야입니다。머신러닝알고리즘은미리정해진방정식을모델로하는방법에의존하지않고연산방법을사용하여데이터로부터직접정보를”학습”합니다。딥러닝은특히얼굴인식,움직임감지와같은문제를해결할때중요한영상인식과자율주행,차선검출,보행자검출,자율주차와같은고급운전자보조기술에특히적합합니다。

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

深度学习斜坡弯道에서는실용적인딥러닝기법들을실습을통해무료로소개합니다。

수행하고자하는작업 자세히알아보기
전이학습을수행하여데이터로신경망미세조정

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

사전훈련된신경망이새로운작업을학습하도록미세조정하는것이일반적으로새로운신경망을훈련시키는것보다훨씬더빠르고쉽습니다。

사전훈련된신경망으로영상분류 사전훈련된심층신경망
분류또는회귀를위한새로운심층신경망만들기

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

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

훈련또는예측을위해영상크기조,정회전또는전처리 딥러닝을위해영상전처리하기
폴더이름을바탕으로영상데이터에자동으로레이블을지정하거나앱을사용하여대화형방식으로레이블지정

영상분류를위해신경망훈련시키기

图片标志(计算机视觉工具箱)

시퀀스및시계열데이터를위한딥러닝신경망만들기

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

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

영상내각각의픽셀분류(예:도로,차,보행자) 使用深度学习开始语义分割(计算机视觉工具箱)
영상내사물검출및인식 识别、目标检测和语义分割(计算机视觉工具箱)
텍스트데이터분류 딥러닝을사용하여텍스트데이터분류하기
음성인식을위해오디오데이터분류 딥러닝을사용해음성명령인식하기
신경망이학습한특징시각화

GoogLeNet을사용한딥드림영상

컨벌루션신경망의활성화시각화하기

데스크탑에서병렬로또는클라우드의클러스터에서CPU、GPU,복수의GPU로훈련시키고,커서메모리에담을수없는데이터세트를사용해작업 GPU에서병렬로빅데이터를사용한딥러닝

자율주행을비롯해딥러닝응용분야에대한자세한내용은딥러닝응용사례항목을참조하십시오。

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

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

자세한내용은신경망아키텍처선택하기항목을참조하십시오。

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

모델은대규모의레이블지정된데이터와많은계층을포함하는(보통컨벌루션계층도포함)신경망아키텍처를사용하여훈련됩니다。이러한모델을훈련시키는데는많은양의연산이필요하며,일반적으로고성능GPU를사용하여훈련속도를높일수있습니다。다음도식은컨벌루션신경망이여러영상에서자동으로특징을학습하는계층들을결합하여새로운영상을분류하는방식을보여줍니다。

많은딥러닝응용분야에서영상파일을사용하며,때로는수백만개의영상파일이사용되기도합니다。딥러닝에사용할수많은영상에효율적으로액세스할수있도록MATLAB은imageDatastore함수를제공합니다。이함수를사용하여다음을수행할수있습니다。

  • 머신러닝및컴퓨터비전응용분야에서더빠른처리속도를위해영상배치자동으로읽어들이기

  • 너무커서메모리에담을수없는영상컬렉션에서데이터가져오기

  • 폴더이름을바탕으로영상데이터에자동으로레이블지정하기

MATLAB10줄코드로시작해보는딥러닝

이예제에서는MATLAB코드10줄만으로딥러닝을사용하여라이브웹캠의사물을식별하는방법을보여줍니다。이예제를실행해보면MATLAB에서딥러닝을사용하는것이얼마나간단한지알수있습니다。

  1. 다음명령을실행하여필요한다운로드를받아서웹캠을연결하고사전훈련된신경망을가져옵니다。

    相机=摄像头;%连接到摄像机网= alexnet;%加载神经网络

    网络摄像头alexnet애드온을설치해야하는경우각함수에서링크가포함된메시지를표시합니다。이링크를통해애드온탐색기를실행하여무료애드온을다운로드할수있습니다。또는深度学习工具箱模型AlexNet网络MATLAB金宝appUSB摄像头支持包를참조하십시오。

    深度学习工具箱模型AlexNet网络를설치한후에이를사용하여영상을분류할수있습니다。AlexNet은사전훈련된컨벌루션신경망(CNN)입니다。1백만개가넘는영상에대해훈련된AlexNet은영상을키보드,마우스,커피머그잔,연필,각종동물등1000가지사물범주로분류할수있습니다。

  2. 다음코드를실행하여라이브영상을표시하고분류합니다。웹캠으로사물을가리키면신경망에서웹캠이보여주는사물이어떤클래스인지추정해서보고합니다。사용자가Ctrl+C를누를때까지신경망은계속해서영상을분류합니다。이코드는imresize(图像处理工具箱)를사용하여신경망에적합하게영상크기를조정합니다。

    True im =快照(相机);拍照图像(im);%显示图片Im = imresize(Im,[227227]);%调整图片大小为alexnet标签=分类(净,im);%分类图片标题(char(标签));显示类标签drawnow结束

    이예제에서신경망은커피머그잔을올바르게분류합니다。주변의사물을사용하여신경망이얼마나정확한지실험해보십시오。

    이예제를비디오로시청하려면深度学习的11行MATLAB代码를참조하십시오。

    이예제를확장하여클래스의확률점수를표시하는방법을알아보려면딥러닝을사용하여웹캠영상분류하기항목을참조하십시오。

    딥러닝의다음단계로넘어가서다른작업에도사전훈련된신경망을사용해볼수있습니다。전이학습이나특징추출을사용하여영상데이터를대상으로새로운분류문제를풀어보십시오。예제는전이학습을사용하여더빠르게딥러닝시작하기사전훈련된신경망에서추출한특징을사용하여분류기훈련시키기항목을참조하십시오。다른사전훈련된신경망을사용해보려면사전훈련된심층신경망항목을참조하십시오。

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

전이학습은딥러닝응용분야에서널리사용됩니다。사전훈련된신경망을새로운작업을학습하기위한출발점으로사용할수있습니다。전이학습을통해신경망을미세조정하는것이처음부터훈련시키는것보다훨씬더빠르고쉽습니다。보다적은개수의훈련영상을사용하여신경망이새로운작업을빠르게학습하도록할수있습니다。전이학습의이점은사전훈련된신경망이다양한이외의비슷한작업에적용할수있는수많은특징을이미학습했다는데있습니다。

예를들어,수천또는수백만개의영상에서훈련된신경망을가져오는경우,새로운객체검출에는수백개의영상만사용하여다시훈련시키면됩니다。원래의훈련데이터에비해훨씬작은데이터세트를사용하여사전훈련된신경망을효과적으로미세조정할수있습니다。데이터셋의크기가매우큰경우에는전이학습이새로운신경망을훈련시키는것보다더빠르지않을수있습니다。

전이학습을사용하면다음과같은이점이있습니다。

  • 사전훈련된신경망의학습된특징을새로운문제로옮길수있습니다。

  • 전이학습은새로운신경망을훈련시키는것보다훨씬쉽고빠릅니다。

  • 훈련시간과데이터셋크기를줄일수있습니다。

  • 새로운신경망을처음부터만드는방법을익히지않고딥러닝을수행할수있습니다。

대화형방식예제는심층신경망디자이너를사용한전이학습항목을참조하십시오。

프로그래밍방식예제는새로운영상을분류하도록딥러닝신경망훈련시키기항목을참조하십시오。

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

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

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

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

신경망은본질적으로병렬알고리즘입니다。并行计算工具箱™를사용하여멀티코어CPU、GPU(그래픽처리장치),복수의CPU와GPU가탑재된컴퓨터클러스터로훈련을분산하여이러한병렬처리의이점을활용할수있습니다。

심층신경망을훈련시키는데는엄청나게많은양의연산이필요하며,일반적으로고성능GPU를사용하여훈련속도를높일수있습니다。적합GPU한가없는경우에는대신하나이상의CPU코어에서훈련시킬수있습니다。단일GPU CPU나에서,또는복수의GPU나CPU코어에서또는클러스터에서병렬로컨벌루션신경망을훈련시킬수있습니다。GPU또는병렬옵션을사용하려면并行计算工具箱가필요합니다。

메모리에담을수없을정도로큰데이터세트가사용되는문제를풀기위해여러개의컴퓨터가필요하지않습니다。컴퓨터클러스터없이도imageDatastore함수를사용하여데이터배치로작업할수있습니다。그러나클러스터를사용할수있다면다량의데이터를이리저리이동하는것보다코드를데이터리포지토리에두는것이도움이될수있습니다。

딥러닝하드웨어및메모리설정에대한자세한내용은GPU에서병렬로빅데이터를사용한딥러닝항목을참조하십시오。

관련항목