딥러닝이란?
반드시알아야할3가지
딥러닝은사람에게는자연스러운일,즉예시를통해학습하는것을컴퓨터가수행할수있도록가르치는머신러닝기법입니다。딥러닝은무인자동차에서활용되는핵심기술로,자동차가정지신호를인식하고보행자와가로등을구별할수있도록합니다。딥러닝은전화,태블릿,电视및핸즈프리스피커와같은가전의음성제어를위한핵심요소입니다。최근딥러닝이많은관심을받고있습니다。딥러닝을통해이전에는불가능했던결과를도출합니다。
딥러닝에서는컴퓨터모델이직접이미지,텍스트또는사운드로부터분류작업방법을학습합니다。딥러닝모델은종종사람의능력을넘어서는최고수준의정확도에도달하고있습니다。여러레이어를포함하는신경망아키텍처와함께레이블링된대단위데이터를활용하여모델이학습됩니다。
딥러닝은어떻게이처럼뛰어난결과를얻을수있을까요?
다시말하면정확성입니다。딥러닝은그어느때보다높은수준의인식정확도를달성합니다。이러한정확성은가전제품에서사용자의기대치를충족할수있으며,무인자동차처럼안전이중요한응용분야에서는중대한요소로작용합니다。최근딥러닝의발전은딥러닝을통해이미지의객체를분류하는것과같은일부작업에서사람을능가하는수준까지향상되었습니다。
1980年년대에처음이론화된딥러닝이최근에유용하게된두가지주된이유가있습니다。
- 딥러닝에는방대한양의레이블지정데이터가필요합니다。예를들어무인자동차를개발하려면수백만장의이미지및수천시간분량의비디오가필요합니다。
- 딥러닝에는강력한컴퓨팅성능이요구됩니다。고성능의GPU는딥러닝에효과적인병렬아키텍쳐를갖고있습니다。개발팀이이를클러스터또는클라우드컴퓨팅과함께사용할경우몇주씩걸리던딥러닝네트워크의학습시간을몇시간이내로단축할수있습니다。
딥러닝예제
딥러닝응용프로그램은자율주행에서의료기기에이르기까지여러산업분야에서사용되고있습니다。
자율주행:자동차연구소에서는정지신호,신호등과같은물체를자동으로탐지하는데딥러닝을사용하고있습니다。또한딥러닝은보행자를탐지하는데도사용되어사고를줄이는데기여하고있습니다。
항공우주및국방:딥러닝은위성에서객체를식별하여관심영역을찾고병력을파견하기에안전하거나안전하지않은지역을확인하는데사용됩니다。
의학연구:암연구진은암세포를자동으로탐지하는데딥러닝을사용하고있습니다。加州大学洛杉矶分校연구팀은딥러닝애플리케이션에암세포를정확히식별하는법을학습하는데사용될고차원데이터세트를생성하는첨단현미경을개발했습니다。
산업자동화:사람이나물체가기계와안전거리를유지하지않을때딥러닝이이를자동으로탐지하여중장비를다루는작업자를더안전하게보호할수있습니다。
전자:자동청취및음성번역에딥러닝이사용되고있습니다。예를들어사용자의음성에응답하고사용자의기호를파악하는가전기기는딥러닝애플리케이션을기반으로합니다。
딥러닝작동방식
대부분의딥러닝방식은신경망아키텍처를사용하는데,이런이유로딥러닝모델은종종심층신경망으로불립니다。
“딥”이라는용어는뉴럴네트워크를구성하는숨겨진레이어(隐蔽层)의수를가리킵니다。기존뉴럴네트워크는숨겨진레이어가2-3개에불과하지만딥네트워크는150개까지이르는경우도있습니다。
딥러닝모델은수동으로특징을추출하지않고데이터에서직접기능을학습하는신경망아키텍처와함께레이블링된대단위데이터를활용하여훈련됩니다。
CNN은수십개또는수백개의숨겨진레이어를사용하여이미지의다른특징을감지하는방법을학습합니다。숨겨진모든레이어는학습된이미지특징의복잡도를증대합니다。예를들어첫번째로숨겨진레이어는윤곽선을감지하는방법을학습할수있으며마지막에숨겨진레이어는사람이인식하려고하는객체의모양에특별히맞춰진복잡한모양을감지하는방법을학습할수있습니다。
머신러닝과딥러닝의차이점은무엇입니까?
딥러닝은특수한형태의머신러닝입니다。머신러닝워크플로는관련특징을이미지에서수동으로추출하는것에서시작합니다。그런다음,해당특징을사용하여이미지의객체를분류하는모델을만듭니다。딥러닝워크플로우에서는관련특징이이미지로부터자동으로추출됩니다。여기에딥러닝은“엔드투앤드”학습방법을수행하게되는데,네트워크에원시데이터와과제(예:분류)가주어지면자동으로어떻게이를수행할지학습하게됩니다。
또다른중요한차이점으로딥러닝은데이터의양에비례하는성능을나타내는반면쉘로우러닝(浅的学习)은수렴하는특성을갖습니다。머신러닝과같은쉘로우러닝은네트워크에예제및학습데이터를추가하더라도일정수준에서성능이수렴합니다。
딥러닝네트워크의주요이점은데이터크기가증가함에따라네트워크가계속향상되는경우가많다는것입니다。
머신러닝에서는수동으로특징과분류기를선택하여이미지를정렬합니다。딥러닝을사용하면특징추출및모델링단계가자동으로수행됩니다。
머신러닝과딥러닝중에서선택하는방법
머신러닝은응용프로그램,처리중인데이터의크기및해결하려는문제유형에따라선택할수있는다양한기술과모델을제공합니다。효과적인딥러닝응용프로그램을사용하려면모델을훈련시키기위한대용량데이터(수천개의이미지)뿐아니라데이터를신속하게처리하기위한GPU(图形处理单元)가필요합니다。
머신러닝과딥러닝중한쪽을선택할때고성능GPU가있는지그리고많은레이블지정데이터가있는지여부를검토해야합니다。둘다해당하지않는다면딥러닝대신머신러닝을사용하는것이더나을수있습니다。일반적으로딥러닝이더복잡하기때문에적어도수천개의이미지가있어야신뢰할만한결과를얻을수있습니다。고성능GPU가있으면모델이해당하는모든이미지를분석하는데걸리는시간이줄어듭니다。
딥러닝모델생성및훈련방법
사람이객체분류를수행하기위해딥러닝을사용하는가장일반적인세가지방법은다음과같습니다。
기초부터훈련시키기
기초부터딥네트워크를훈련시키기위해서는레이블이지정된대용량데이터세트를수집하고,네트워크아키텍처를설계하여특징과모델을학습합니다。이방법은새로운응용프로그램이나출력카테고리가많은응용프로그램에유용합니다。대용량의데이터및학습속도로인해이러한네트워크가일반적으로훈련시키는데며칠또는몇주가걸리기때문에흔하지않은방식입니다。
전이학습
대다수딥러닝응용프로그램은사전훈련된모델을세밀하게조정하는방법인전이학습방식을사용합니다。이방식에서는AlexNet또는GoogLeNet과같은기존네트워크를사용하여이전에알려지지않은클래스를포함하는새로운데이터를주입합니다。네트워크를수정한후에는1000가지의서로다른객체대신개또는고양이만분류하는것과같은새작업을수행할수있습니다。또한이방식은훨씬적은데이터(수백만개가아닌수천개의이미지처리)가필요하다는이점이있으므로계산시간이몇분또는몇시간으로감소합니다。
전이학습에는기존네트워크의내부에관한인터페이스가요구되며네트워크를수정하고새로운작업을위해향상시킬수있습니다。MATLAB®에는전이학습에도움이되도록설계된툴과기능이있습니다。
특징추출
딥러닝에관한덜일반적이지만전문화된접근방식은네트워크를피처추출기로사용하는것입니다。모든레이어는이미지의특정특징을학습해야하므로교육과정중에언제든지네트워크에서이러한특징을가져올수있습니다。이러한특징은SVM(서포트벡터머신)과같은머신러닝모델에입력으로사용할수있습니다。
GPU를사용하여딥러닝모델가속화
딥러닝모델을훈련하는데에는며칠부터몇주까지의긴시간이필요합니다。하지만,GPU가속을활용하면괄목할만한수준으로처리속도를증폭할수있습니다。이뿐만아니라GPU가있는MATLAB을활용하면신경망훈련과이미지분류문제를위한훈련시간을며칠에서몇시간으로단축시킬수있습니다。딥러닝모델을훈련시킬때MATLAB은GPU를명확히프로그래밍하는방법을파악할필요없이GPU(사용가능한경우)를사용합니다。
딥러닝응용프로그램
사전훈련된심층신경망네트워크모델을사용하여이전학습또는특징추출을수행하여문제에관한딥러닝을신속하게적용할수있습니다。MATLAB사용자의경우사용가능한일부모델에는AlexNet,VGG-16및VGG-19와importCaffeNetwork를사용하여가져온来自Caffe모델(예:来自Caffe模型动物园)이있습니다。
MATLAB을이용하면딥러닝이용이해집니다。MATLAB은대규모데이터세트를관리할수있는툴과기능을사용하여머신러닝,신경망,컴퓨터비전및자율주행을위한특수툴박스를제공합니다。
MATLAB을사용하면전문가가아니어도단몇줄의코드로딥러닝을수행할수있습니다。신속하게시작하고,모델을생성및시각화하며서버및임베디드기기에모델을배포해보십시오。
딥러닝용MATLAB을사용하면팀은다음과같은작업을성공적으로수행할수있습니다。
- 단몇줄의코드로모델생성및시각화
- 전문가가아니어도딥러닝수행가능
- 이미지및비디오의지상실측자료레이블지정자동화
- 딥러닝을단일워크플로로통합
MATLAB을사용하면최소의코드로딥러닝모델을만들수있습니다。MATLAB을사용하면학습매개변수를조정할때사전훈련모델을신속하게가져온후중간결과를시각화하고디버그할수있습니다。
MATLAB을활용하여딥러닝영역에서전문지식을습득할수있습니다。대다수의사람들은딥러닝에관한교육과정을수강한경험이없습니다。따라서이러한작업에대해배워야합니다。MATLAB은이분야에관한학습이실용적이고이해하기쉽도록도움을줍니다。또한MATLAB을사용하는도메인전문가는산업또는응용분야에관한지식이없을수있는데이터과학자에게작업을넘기지않고도딥러닝을수행할수있습니다。
MATLAB을사용하면딥러닝모델의교육및테스트를위해이미지내의객체에대화형방식으로레이블을지정하고비디오내의지상실측레이블지정작업을자동화할수있습니다。이대화형자동방식을통해짧은시간안에더나은결과물을얻을수있습니다。
MATLAB은여러영역을단일워크플로로통합할수있습니다。MATLAB을사용하면하나의환경에서생각하고프로그래밍할수있습니다。또한,딥러닝용툴과기능뿐만아니라신호처리,컴퓨터비전및데이터분석등의딥러닝알고리즘영역에제공되는다양한도메인을제공합니다。
MATLAB을사용하면결과를기존응용프로그램에통합할수있습니다。MATLAB은엔터프라이즈시스템,클러스터,클라우드및임베디드기기에딥러닝모델을배포하는작업을자동화합니다。
딥러닝특징및예제코드를가져오는방법에대해자세히알아보십시오。