主要内容

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

심층신경망디자이너시작하기

이예제에서는심층신경망디자이너를사용하여,사전훈련된GoogLeNet신경망이새로운영상의모음을분류하도록조정하는방법을보여줍니다。이절차는전이학습이라고부르며,학습된특징을적은개수의훈련영상을사용하여새작업에적용할수있기때문에일반적으로새로운신경망을훈련시키는것보다훨씬빠르고쉽습니다。전이학습을위해신경망을대화형방식으로준비하려면심층신경망디자이너를사용하십시오。

훈련을위해데이터추출하기

작업공간에서데이터의압축을풉니다。

解压缩(“MerchData.zip”);

사전훈련된신경망선택하기

심층신경망디자이너를엽니다。

deepNetworkDesigner

심층신경망디자이너시작페이지에서사전훈련된GoogLeNet신경망을선택하여불러옵니다。신경망을다운로드해야할경우에는설치를클릭하여애드온탐색기를엽니다。

심층신경망디자이너에전체신경망의축소된형태가표시됩니다。신경망플롯을살펴봅니다。마우스를사용하여확대하려면Ctrl+스크롤휠을사용하십시오。

데이터세트불러오기

심층신경망디자이너로데이터를불러오려면데이터탭에서데이터가져오기>영상데이터가져오기를클릭하십시오。영상데이터가져오기대화상자가열립니다。

데이터소스목록에서폴더를선택합니다。찾아보기를클릭하고추출된MerchData폴더를선택합니다。

대화상자를사용하여앱내에서검증데이터를분할할수도있습니다。데이터의를70%훈련데이터의와30%검증데이터로나눕니다。

훈련영상에대해수행할증대연산을지정합니다。이예제에서는x축에서무작위반사를적용하고,도(-90、90)에서무작위회전을적용하고,[1,2]범위에서무작위재스케일링을적용합니다。

가져오기를클릭하여데이터를심층신경망디자이너로가져옵니다。

심층신경망디자이너를사용하여데이터탭에서훈련데이터와검증데이터의분포를시각적으로조사할수있습니다。이예제에는데이터세트에5개의클래스가있는것을볼수있습니다。각클래스의임의관측값을볼수도있습니다。

심층신경망디자이너가신경망입력크기와일치하도록훈련중에영상의크기를조정합니다。신경망입력크기를보려면디자이너탭에서imageInputLayer를클릭하십시오。이신경망의입력크기는224×224입니다。

전이학습을위해신경망편집하기

사전훈련된신경망이새영상을분류하도록다시훈련시키려면마지막학습가능한계층과마지막분류계층을새로운데이터세트에적응된새로운계층들로교체하십시오。GoogLeNet에서이러한계층의이름은각각“loss3-classifier”“输出”입니다。

디자이너탭에서,계층라이브러리에서캔버스로새fullyConnectedLayer를끌어서놓습니다。OutputSize를새데이터의클래스개수(이예제에서는5)로설정합니다。

전이된계층보다새계층에서학습이더빨리이루어지도록학습률을편집합니다。WeightLearnRateFactorBiasLearnRateFactor10으로설정합니다。마지막완전연결계층을삭제하고새로추가한계층을대신연결합니다。

출력계층을교체합니다。계층라이브러리의끝으로스크롤한다음,캔버스로새classificationLayer를끌어서놓습니다。원래输出계층을삭제하고대신새계층을연결합니다。

신경망확인하기

분석을클릭하여신경망을확인합니다。딥러닝신경망분석기에보고되는오류가없으면신경망이훈련할준비가된것입니다。

신경망훈련시키기

디폴트설정을사용하여신경망을훈련시키려면훈련탭에서훈련을클릭하십시오。

훈련을보다세부적으로제어하려면훈련옵션을클릭하고훈련에사용할설정을선택합니다。디폴트훈련옵션은대규모데이터세트에더적합합니다。소규모데이터세트의경우미니배치크기와검증빈도에더작은값을사용하십시오。훈련옵션선택에대한자세한내용은trainingOptions항목을참조하십시오。

이예제에서는InitialLearnRate0.0001로,ValidationFrequency5로,MaxEpochs8로설정합니다。55개의관측값이있으므로매时代마다데이터세트전체가사용되도록MiniBatchSize11로설정하여훈련데이터를균등하게나눕니다。

지정된훈련옵션을사용하여신경망을훈련시키려면닫기를클릭하고훈련을클릭하십시오。

심층신경망디자이너에서는훈련진행상황을시각화하고모니터링할수있습니다。그런다음필요한경우훈련옵션을편집하여신경망을다시훈련시킬수있습니다。

훈련결과내보내기

훈련결과를내보내려면훈련탭에서내보내기>훈련된신경망및결과내보내기를선택하십시오。심층신경망디자이너가훈련된신경망을변수trainedNetwork_1로내보내고훈련정보를변수trainInfoStruct_1로내보냅니다。

신경망과사용된훈련옵션을다시만들어주는MATLAB코드를생성할수도있습니다。훈련탭에서내보내기>훈련에사용할코드생성을선택합니다。

훈련된신경망테스트하기

훈련된신경망을사용하여분류할새영상을선택합니다。

我= imread (“MerchDataTest.jpg”);

신경망입력크기와일치하도록테스트영상의크기를조정합니다。

I = imresize(I, [224 224]);

훈련된신경망을사용하여테스트영상을분류합니다。

(YPred,聚合氯化铝)= (trainedNetwork_1, I)进行分类;imshow(I) label = YPred;标题(string(标签)+”、“+ num2str(100 *马克斯(聚合氯化铝),3)+“%”);

다른사전훈련된신경망에대한정보를비롯한자세한내용은심층신경망디자이너항목을참조하십시오。

참고항목

관련항목