0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用Matlab做一個(gè)新的遷移學(xué)習(xí)實(shí)戰(zhàn)詳解

新機(jī)器視覺 ? 來(lái)源:渝西圖像練習(xí)生 ? 作者:渝西圖像練習(xí)生 ? 2021-04-26 13:58 ? 次閱讀

大家好我們今天來(lái)講一講如何用Matlab做一個(gè)新的遷移學(xué)習(xí)您可能需要的基礎(chǔ)知識(shí)

Matlab編程Deep learning的基礎(chǔ)知識(shí)

一、什么是遷移學(xué)習(xí)?

以圖像識(shí)別為例。如果你想構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),讓它能夠識(shí)別馬匹,但是手上又沒(méi)有任何公開的算法可以完成這項(xiàng)任務(wù)。這時(shí),借助遷移學(xué)習(xí),你可以從一個(gè)原本是用來(lái)識(shí)別其它動(dòng)物的現(xiàn)成的卷積神經(jīng)網(wǎng)絡(luò)(CNN)入手,對(duì)其進(jìn)行調(diào)整并訓(xùn)練它識(shí)別馬匹。深度學(xué)習(xí)應(yīng)用中常常用到遷移學(xué)習(xí)??梢圆捎妙A(yù)訓(xùn)練的網(wǎng)絡(luò),基于它學(xué)習(xí)新任務(wù)。與使用隨機(jī)初始化的權(quán)重從頭訓(xùn)練網(wǎng)絡(luò)相比,通過(guò)遷移學(xué)習(xí)微調(diào)網(wǎng)絡(luò)要更快更簡(jiǎn)單。我們可以使用較少數(shù)量的訓(xùn)練圖像快速地將已學(xué)習(xí)的特征遷移到新任務(wù)。

二、網(wǎng)絡(luò)的創(chuàng)建和數(shù)據(jù)的導(dǎo)入

加載數(shù)據(jù)

解壓縮新圖像并加載這些圖像作為圖像數(shù)據(jù)存儲(chǔ)。imageDatastore 根據(jù)文件夾名稱自動(dòng)標(biāo)注圖像,并將數(shù)據(jù)存儲(chǔ)為 ImageDatastore 對(duì)象。通過(guò)圖像數(shù)據(jù)存儲(chǔ)可以存儲(chǔ)大圖像數(shù)據(jù),包括無(wú)法放入內(nèi)存的數(shù)據(jù),并在卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中高效分批讀取圖像。

unzip(‘MerchData.zip’);imds = imageDatastore(‘MerchData’, 。.. ‘IncludeSubfolders’,true, 。.. ‘LabelSource’,‘foldernames’);

將數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集。將 70% 的圖像用于訓(xùn)練,30% 的圖像用于驗(yàn)證。splitEachLabel 將 images 數(shù)據(jù)存儲(chǔ)拆分為兩個(gè)新的數(shù)據(jù)存儲(chǔ)。

[imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,‘randomized’);

這個(gè)非常小的數(shù)據(jù)集現(xiàn)在包含 55 個(gè)訓(xùn)練圖像和 20 個(gè)驗(yàn)證圖像。

numTrainImages = numel(imdsTrain.Labels);idx = randperm(numTrainImages,16);figurefor i = 1:16 subplot(4,4,i) I = readimage(imdsTrain,idx(i)); imshow(I)end

加載預(yù)訓(xùn)練網(wǎng)絡(luò)

加載預(yù)訓(xùn)練的 AlexNet 神經(jīng)網(wǎng)絡(luò)。如果未安裝 Deep Learning Toolbox Model for AlexNet Network,則軟件會(huì)提供下載鏈接。AlexNet 已基于超過(guò)一百萬(wàn)個(gè)圖像進(jìn)行訓(xùn)練,可以將圖像分為 1000 個(gè)對(duì)象類別(例如鍵盤、鼠標(biāo)、鉛筆和多種動(dòng)物)。因此,該模型已基于大量圖像學(xué)習(xí)了豐富的特征表示。

net = alexnet;

使用 analyzeNetwork 可以交互可視方式呈現(xiàn)網(wǎng)絡(luò)架構(gòu)以及有關(guān)網(wǎng)絡(luò)層的詳細(xì)信息。

analyzeNetwork(net)

3dcf67d2-a648-11eb-aece-12bb97331649.png

第一層(圖像輸入層)需要大小為 227×227×3 的輸入圖像

其中 3 是顏色通道數(shù)

inputSize = 1×3 227 227 3

三、網(wǎng)絡(luò)的訓(xùn)練

替換最終層

預(yù)訓(xùn)練網(wǎng)絡(luò) net 的最后三層針對(duì) 1000 個(gè)類進(jìn)行配置。必須針對(duì)新分類問(wèn)題微調(diào)這三個(gè)層。從預(yù)訓(xùn)練網(wǎng)絡(luò)中提取除最后三層之外的所有層。

layersTransfer = net.Layers(1:end-3);

通過(guò)將最后三層替換為全連接層、softmax 層和分類輸出層,將層遷移到新分類任務(wù)。根據(jù)新數(shù)據(jù)指定新的全連接層的選項(xiàng)。將全連接層設(shè)置為大小與新數(shù)據(jù)中的類數(shù)相同。要使新層中的學(xué)習(xí)速度快于遷移的層,請(qǐng)?jiān)龃笕B接層的 WeightLearnRateFactor 和 BiasLearnRateFactor 值。

numClasses = numel(categories(imdsTrain.Labels))numClasses = 5

layers = [ layersTransfer fullyConnectedLayer(numClasses,‘WeightLearnRateFactor’,20,‘BiasLearnRateFactor’,20) softmaxLayer classificationLayer];

訓(xùn)練網(wǎng)絡(luò)

網(wǎng)絡(luò)要求輸入圖像的大小為 227×227×3,但圖像數(shù)據(jù)存儲(chǔ)中的圖像具有不同大小。使用增強(qiáng)的圖像數(shù)據(jù)存儲(chǔ)可自動(dòng)調(diào)整訓(xùn)練圖像的大小。指定要對(duì)訓(xùn)練圖像額外執(zhí)行的增強(qiáng)操作:沿垂直軸隨機(jī)翻轉(zhuǎn)訓(xùn)練圖像,以及在水平和垂直方向上隨機(jī)平移訓(xùn)練圖像最多 30 個(gè)像素。數(shù)據(jù)增強(qiáng)有助于防止網(wǎng)絡(luò)過(guò)擬合和記憶訓(xùn)練圖像的具體細(xì)節(jié)。

pixelRange = [-30 30];imageAugmenter = imageDataAugmenter( 。.. ‘RandXReflection’,true, 。.. ‘RandXTranslation’,pixelRange, 。.. ‘RandYTranslation’,pixelRange);augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain, 。.. ‘DataAugmentation’,imageAugmenter);

3e14d114-a648-11eb-aece-12bb97331649.png

對(duì)驗(yàn)證圖像進(jìn)行分類

使用經(jīng)過(guò)微調(diào)的網(wǎng)絡(luò)對(duì)驗(yàn)證圖像進(jìn)行分類

[YPred,scores] = classify(netTransfer,augimdsValidation);

顯示四個(gè)示例驗(yàn)證圖像及預(yù)測(cè)的標(biāo)簽。

idx = randperm(numel(imdsValidation.Files),4);figurefor i = 1:4 subplot(2,2,i) I = readimage(imdsValidation,idx(i)); imshow(I) label = YPred(idx(i)); title(string(label));end

計(jì)算針對(duì)驗(yàn)證集的分類準(zhǔn)確度。準(zhǔn)確度是網(wǎng)絡(luò)預(yù)測(cè)正確的標(biāo)簽的比例

YValidation = imdsValidation.Labels;accuracy = mean(YPred == YValidation)

accuracy = 1

今天你學(xué)廢了嗎???
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    185

    文章

    2980

    瀏覽量

    230863
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4779

    瀏覽量

    101080
  • 圖像識(shí)別
    +關(guān)注

    關(guān)注

    9

    文章

    521

    瀏覽量

    38357
  • 遷移學(xué)習(xí)
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    5578

原文標(biāo)題:【圖像識(shí)別】基于Matlab的遷移學(xué)習(xí)的圖像分類案例

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用小安派 DSL做一個(gè)天氣站

    2.4 寸 320 *240 分辨率屏幕,外接 sht30 溫濕度傳感器,做一個(gè)天氣站。 01、主要功能 時(shí)間顯示(已完成) 天氣顯示(已完成) 溫濕度顯示(已完成) wifi 密碼保
    的頭像 發(fā)表于 01-06 16:44 ?166次閱讀
    用小安派 DSL<b class='flag-5'>做一個(gè)</b>天氣站

    何用恒流電源驅(qū)動(dòng)LED和激光二極管

    今天我們將學(xué)習(xí)什么是恒流電源?以及如何用個(gè)恒流電源驅(qū)動(dòng) LED 和 激光二極管。
    的頭像 發(fā)表于 10-15 14:23 ?1037次閱讀
    如<b class='flag-5'>何用</b>恒流電源驅(qū)動(dòng)LED和激光二極管

    如何使用合宙的DTU+業(yè)務(wù)云平臺(tái),做一個(gè)溫濕度傳感器數(shù)據(jù)采集項(xiàng)目?

    使用合宙的DTU+業(yè)務(wù)云平臺(tái),做一個(gè)溫濕度傳感器數(shù)據(jù)采集項(xiàng)目,超詳細(xì)教程。
    的頭像 發(fā)表于 09-18 11:11 ?499次閱讀
    如何使用合宙的DTU+業(yè)務(wù)云平臺(tái),<b class='flag-5'>做一個(gè)</b>溫濕度傳感器數(shù)據(jù)采集項(xiàng)目?

    何用TLC2272C做一個(gè)耳機(jī)的功放?

    需要用TLC2272C做一個(gè)耳機(jī)的功放,請(qǐng)?zhí)峁?b class='flag-5'>一下典型應(yīng)用的例子,謝謝
    發(fā)表于 09-06 06:37

    何用OPA615做一個(gè)脈沖信號(hào)的峰值保持電路?

    求助 ,想用OPA615做一個(gè)脈沖信號(hào)的峰值保持電路 有沒(méi)有電路圖什么的或者相關(guān)的資料
    發(fā)表于 08-27 07:50

    何用運(yùn)放設(shè)計(jì)個(gè)高頻的壓控電流源?

    請(qǐng)教下TI的各位工程師,如何用運(yùn)放設(shè)計(jì)個(gè)高頻的壓控電流源?要求輸出電流0-500mA,負(fù)載5-10Ω,頻率1MHz-10MHz。
    發(fā)表于 08-14 07:06

    利用Matlab函數(shù)實(shí)現(xiàn)深度學(xué)習(xí)算法

    Matlab中實(shí)現(xiàn)深度學(xué)習(xí)算法是個(gè)復(fù)雜但強(qiáng)大的過(guò)程,可以應(yīng)用于各種領(lǐng)域,如圖像識(shí)別、自然語(yǔ)言處理、時(shí)間序列預(yù)測(cè)等。這里,我將概述
    的頭像 發(fā)表于 07-14 14:21 ?2419次閱讀

    如何使用MATLAB創(chuàng)建預(yù)測(cè)模型

    MATLAB 簡(jiǎn)介 MATLAB 是由 MathWorks 公司開發(fā)的,它提供了個(gè)集成的計(jì)算環(huán)境,包括
    的頭像 發(fā)表于 07-11 14:29 ?739次閱讀

    預(yù)訓(xùn)練和遷移學(xué)習(xí)的區(qū)別和聯(lián)系

    預(yù)訓(xùn)練和遷移學(xué)習(xí)是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域中的兩個(gè)重要概念,它們?cè)谔岣吣P托阅堋p少訓(xùn)練時(shí)間和降低對(duì)數(shù)據(jù)量的需求方面發(fā)揮著關(guān)鍵作用。本文將從定
    的頭像 發(fā)表于 07-11 10:12 ?1182次閱讀

    遷移學(xué)習(xí)的基本概念和實(shí)現(xiàn)方法

    遷移學(xué)習(xí)(Transfer Learning)是機(jī)器學(xué)習(xí)領(lǐng)域中的個(gè)重要概念,其核心思想是利用在
    的頭像 發(fā)表于 07-04 17:30 ?1923次閱讀

    MATLAB如何使用訓(xùn)練好的網(wǎng)絡(luò)

    引言 在本文中,我們將探討如何在MATLAB中使用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)是種強(qiáng)大的機(jī)器學(xué)習(xí)技術(shù),廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)言處理、預(yù)測(cè)建模等領(lǐng)域。MATLAB提供了豐富的工具箱,
    的頭像 發(fā)表于 07-03 10:06 ?1254次閱讀

    個(gè)暑假如何學(xué)習(xí)單片機(jī)

    個(gè)暑假是學(xué)習(xí)和掌握單片機(jī)基礎(chǔ)知識(shí)的良好時(shí)機(jī)。以下是個(gè)關(guān)于如何在暑假期間學(xué)習(xí)單片機(jī)的建議計(jì)劃
    的頭像 發(fā)表于 07-03 09:19 ?573次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>暑假如何<b class='flag-5'>學(xué)習(xí)</b>單片機(jī)

    MATLAB信號(hào)處理常用函數(shù)詳解

    MATLAB款功能強(qiáng)大的數(shù)學(xué)軟件,尤其在信號(hào)處理領(lǐng)域,它提供了眾多的函數(shù)和工具箱,使得信號(hào)的分析、處理、仿真變得簡(jiǎn)單而高效。本文將詳細(xì)介紹MATLAB在信號(hào)處理中常用的函數(shù),并通過(guò)具體示例來(lái)闡述其應(yīng)用。
    的頭像 發(fā)表于 05-17 14:31 ?2570次閱讀

    最近正在做一個(gè)逆變器,老板讓我用DSP做,各位大佬有沒(méi)有開源的代碼學(xué)習(xí)下?

    最近正在做一個(gè)逆變器,老板讓我用DSP做,各位大佬有沒(méi)有開源的代碼學(xué)習(xí)下?
    發(fā)表于 02-04 14:59

    鴻蒙OS 跨設(shè)備遷移

    的 Page 請(qǐng)求遷移。 HarmonyOS 處理遷移任務(wù),并回調(diào)設(shè)備 A 上 Page 的保存數(shù)據(jù)方法,用于保存遷移必須的數(shù)據(jù)。 HarmonyOS 在設(shè)備 B 上啟動(dòng)同一個(gè) Pag
    的頭像 發(fā)表于 01-31 15:47 ?1205次閱讀