最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

37 微調(diào)【動(dòng)手學(xué)深度學(xué)習(xí)v2】

2022-04-30 21:02 作者:如果我是泡橘子  | 我要投稿

微調(diào)


  • 深度學(xué)習(xí)中最重要的一個(gè)技術(shù)



標(biāo)注一個(gè)數(shù)據(jù)集很貴


  • ImageNet 標(biāo)注了一千多萬張圖片,但是實(shí)際使用的只有 120 萬張圖片,類別數(shù)是 1000 ,它算是一個(gè)比較大的數(shù)據(jù)集
  • Fashion-MNIST 一共有 6 萬張圖片,類別數(shù)是 10 , 算是一個(gè)比較小的數(shù)據(jù)集
  • 通常自己的數(shù)據(jù)集規(guī)模通常在這兩者之間,大概在 5 萬張圖片左右,類別數(shù)大概是 100 左右,平均下來每一類物體大概有 500 張圖片左右


適合 ImageNet 的復(fù)雜模型可能會(huì)在自己的數(shù)據(jù)集上過擬合,另外由于訓(xùn)練樣本有限,訓(xùn)練模型的準(zhǔn)確性可能無法滿足實(shí)際要求,解決以上問題有兩種解決方案:

1、收集更多的數(shù)據(jù)。數(shù)據(jù)集越大越好,但是收集和標(biāo)記數(shù)據(jù)可能需要大量的時(shí)間和金錢

2、應(yīng)用遷移學(xué)習(xí)(transfer leanring)。將從源數(shù)據(jù)集學(xué)到的知識(shí)遷移到目標(biāo)數(shù)據(jù)集,通常來說希望在大數(shù)據(jù)集上訓(xùn)練好的模型能夠提取到更通用的圖像特征,有助于識(shí)別邊緣、紋理、形狀對(duì)象組合,從而幫助提升在自己數(shù)據(jù)集上的精度,核心思想是假設(shè)模型對(duì)整個(gè)物體識(shí)別有一定的基礎(chǔ)的情況下,不需要自己提供太大的數(shù)據(jù)集就能夠獲得很好的識(shí)別精度,這也是人工智能所追求的目標(biāo)





網(wǎng)絡(luò)架構(gòu)


一個(gè)神經(jīng)網(wǎng)絡(luò)一般可以分為兩塊,一部分做特征提取,一部分做線性分類

  • 假設(shè)將一張圖像輸入到模型中,可以認(rèn)為最下面的一部分是在進(jìn)行特征提取(特征抽取就是將原始像素變成容易線性分割的特征,深度學(xué)習(xí)的突破性進(jìn)展就在于特征提取是可以學(xué)習(xí)的,而不用人工思考如何提供特征)
  • 最后一部分就是一個(gè)全連接層和 softmax 來進(jìn)行分類(可以認(rèn)為是一個(gè)簡(jiǎn)單的線性分類器:Softmax 回歸)





微調(diào)


  • 假設(shè)在源數(shù)據(jù)集(一個(gè)比較大的數(shù)據(jù)集)上已經(jīng)訓(xùn)練好了一個(gè)模型,模型中特征提取的部分對(duì)源數(shù)據(jù)集是有效的,那么它對(duì)目標(biāo)數(shù)據(jù)集也應(yīng)該是有效的,這樣做是優(yōu)于隨機(jī)生成提取特征的
  • 最后一部分是不能直接使用的,因?yàn)?strong>標(biāo)號(hào)發(fā)生了改變,所以最后一部分難以進(jìn)行重用
  • 微調(diào)的核心思想是:在一個(gè)比較大的源數(shù)據(jù)集上訓(xùn)練好的模型中用于特征提取的部分,在目標(biāo)數(shù)據(jù)集上提取特征時(shí)進(jìn)行重用





微調(diào)中的權(quán)重初始化



微調(diào)包括四個(gè)步驟:

  1. 在源數(shù)據(jù)集(例如 ImageNet 數(shù)據(jù)集)上預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,即源模型(pre-train model)
  2. 創(chuàng)建一個(gè)新的神經(jīng)網(wǎng)絡(luò)模型,即目標(biāo)模型。新模型的初始化不再是隨機(jī)的初始化,而是復(fù)制源模型上的所有模型設(shè)計(jì)及其參數(shù)(輸出層除外)。假定這些模型參數(shù)包含從源數(shù)據(jù)集中學(xué)到的知識(shí),這些知識(shí)也將適用于目標(biāo)數(shù)據(jù)集,使得新模型在一開始就能很好地提取特征;同時(shí)假設(shè)源模型的輸出層與源數(shù)據(jù)集的標(biāo)簽密切相關(guān),因此不在目標(biāo)模型中使用該層
  3. 向目標(biāo)模型添加輸出層,其輸出數(shù)是目標(biāo)數(shù)據(jù)集中的類別數(shù),然后隨機(jī)初始化該層的模型參數(shù)(最后的分類部分由于標(biāo)號(hào)不同,因此還是做隨機(jī)初始化)
  4. 在目標(biāo)數(shù)據(jù)集上訓(xùn)練目標(biāo)模型。輸出層將從頭開始進(jìn)行訓(xùn)練,而所有其他層的參數(shù)將根據(jù)源模型的參數(shù)進(jìn)行微調(diào)


  • 因?yàn)閾p失 Loss 是從后往前進(jìn)行傳遞的,所以最后的分類部分訓(xùn)練比較快,進(jìn)行隨機(jī)初始化也不會(huì)有太大的影響;而前面的特征提取的部分本身已經(jīng)具備很好的特征提取效果,只是根據(jù)源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集的差異進(jìn)行微調(diào),可能在最開始訓(xùn)練的時(shí)候就已經(jīng)比較接近最終的結(jié)果,所以不用做過多的訓(xùn)練和變動(dòng)





訓(xùn)練


是一個(gè)目標(biāo)數(shù)據(jù)集上的正常訓(xùn)練任務(wù),但使用更強(qiáng)的正則化(如果不使用預(yù)訓(xùn)練模型,直接在自己的數(shù)據(jù)集上正常訓(xùn)練,在時(shí)間足夠的情況下也是可以從隨機(jī)初始化訓(xùn)練到完全 fitting 自己的數(shù)據(jù)集,但是可能會(huì)導(dǎo)致 Overfitting ,這是沒有必要的,不如對(duì)預(yù)訓(xùn)練模型進(jìn)行微調(diào))

  • 使用更小的學(xué)習(xí)率(已經(jīng)比較接近最優(yōu)解了,因此不需要太大的學(xué)習(xí)率)
  • 使用更少的數(shù)據(jù)迭代

源數(shù)據(jù)集遠(yuǎn)遠(yuǎn)復(fù)雜于目標(biāo)數(shù)據(jù)集,通常微調(diào)的效果更好

  • 源數(shù)據(jù)集的類別數(shù)、圖片數(shù)量、樣本個(gè)數(shù)通常是目標(biāo)數(shù)據(jù)集的 10 倍或者 100 倍,才能達(dá)到很好的微調(diào)效果,否則微調(diào)的效果不如直接在目標(biāo)數(shù)據(jù)集上進(jìn)行重新訓(xùn)練





重用分類器權(quán)重


  • 源數(shù)據(jù)集中可能也有目標(biāo)數(shù)據(jù)中的標(biāo)號(hào)
  • 可以使用預(yù)訓(xùn)練好的模型分類器中對(duì)應(yīng)標(biāo)號(hào)對(duì)應(yīng)的向量來做初始化





固定一些層


神經(jīng)網(wǎng)絡(luò)通常學(xué)習(xí)有層次的特征表示

  • 低層次的特征更加通用(越低層次學(xué)習(xí)的是一些底層的細(xì)節(jié))
  • 高層次的特征則更跟數(shù)據(jù)集相關(guān)(越高層次則更加語義化)
  • 可以認(rèn)為越到后面和標(biāo)號(hào)的關(guān)聯(lián)度越大,約到前面則越低層,所以底層的特征更加通用,高層的特征和數(shù)據(jù)的關(guān)聯(lián)度更大

可以固定底部一些層的參數(shù),不參與更新(不做優(yōu)化,在微調(diào)的時(shí)候不改變底層類別的權(quán)重,因?yàn)檫@些參數(shù)不再發(fā)生變化,所以模型的復(fù)雜度變低了,可以認(rèn)為是更強(qiáng)的正則的效果)

  • 更強(qiáng)的正則

通常來說,假設(shè)數(shù)據(jù)集很小,直接訓(xùn)練很容易過擬合的情況下,可以固定底部的一些參數(shù)不參與更新





總結(jié)


1、微調(diào)通過使用在大數(shù)據(jù)上得到的預(yù)訓(xùn)練好的模型來初始化目標(biāo)數(shù)據(jù)集上的模型權(quán)重來完成提升精度

2、預(yù)訓(xùn)練模型質(zhì)量很重要

3、微調(diào)通常速度更快,精度更高(可以借助在大數(shù)據(jù)集上所獲得的先驗(yàn)知識(shí))

4、建議盡量從微調(diào)開始訓(xùn)練,不要直接從目標(biāo)數(shù)據(jù)集上從零開始進(jìn)行訓(xùn)練

  • 未來從原始數(shù)據(jù)集上進(jìn)行訓(xùn)練的會(huì)越來越少,主要是學(xué)術(shù)界或者大公司在很大的數(shù)據(jù)集上進(jìn)行重新訓(xùn)練
  • 對(duì)于個(gè)人或者實(shí)際應(yīng)用來講,通常是使用微調(diào)

5、遷移學(xué)習(xí)將從源數(shù)據(jù)集中學(xué)到的知識(shí)“遷移”到目標(biāo)數(shù)據(jù)集,微調(diào)遷移學(xué)習(xí)的常見技巧

6、除輸出層外,目標(biāo)模型從源模型中復(fù)制所有模型設(shè)計(jì)及其參數(shù),并根據(jù)目標(biāo)數(shù)據(jù)集對(duì)這些參數(shù)進(jìn)行微調(diào),但是目標(biāo)模型的輸出層需要從頭開始訓(xùn)練

7、通常微調(diào)參數(shù)使用較小的學(xué)習(xí)率,而從頭開始訓(xùn)練輸出層可以使用更大的學(xué)習(xí)率





Q&A


  • 1、微調(diào)這部分是意味著,神經(jīng)網(wǎng)絡(luò)進(jìn)行不同的目標(biāo)檢測(cè),前面層的網(wǎng)絡(luò)進(jìn)行特征提取是通用的嗎?
    ?
    QA P3 - 00:00
    ?


  • 2、老師,數(shù)據(jù)不平衡問題對(duì)特征提取器影響大還是分類器影響大?
    ?
    QA P3 - 00:26
    ?


  • 3、假設(shè) A 、 B 兩個(gè)數(shù)據(jù)集都很大,A 是 ImageNet,B 是醫(yī)學(xué)圖片。如果我要識(shí)別癌癥,那是用 pretrained A 的現(xiàn)成的模型然后加上 B 進(jìn)行微調(diào)的效果好,還是直接用 B 從頭進(jìn)行訓(xùn)練比較好?
    ?
    QA P3 - 00:54
    ?


  • 4、微調(diào)是不是就是遷移學(xué)習(xí)??jī)烧哂胁煌瑔幔?/strong>
    ?
    QA P3 - 01:44
    ?


  • 5、老師,重用標(biāo)號(hào)的話,對(duì)于無關(guān)的標(biāo)號(hào)是直接刪除嗎,原始模型中沒有的標(biāo)號(hào)怎么加進(jìn)去呢?
    ?
    QA P3 - 02:03
    ?


  • 6、標(biāo)號(hào)那塊,是不是都是 label 的名稱字符串,對(duì)應(yīng)到數(shù)字上?微調(diào)中有相同標(biāo)號(hào),怎么做原始標(biāo)號(hào)和目標(biāo)標(biāo)號(hào)的對(duì)應(yīng)?
    ?
    QA P3 - 02:28
    ?


  • 7、老師,微調(diào)就是 transformer learning 嗎?
    ?
    QA P3 - 02:53
    ?


  • 8、ImageNet 是比較簡(jiǎn)單的話,能從哪些地方獲取一些更好的可用于微調(diào)的模型?
    ?
    QA P3 - 03:10
    ?


  • 9、如果源數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集差異很大,微調(diào)的效果會(huì)下降嗎,例如 ImageNet 上的模型用到醫(yī)療影像分類?
    ?
    QA P3 - 03:45
    ?


  • 10、老師,微調(diào)的話,源數(shù)據(jù)集中的樣本是否必須包含目標(biāo)數(shù)據(jù)集中的類別?
    ?
    QA P3 - 04:06
    ?


  • 11、為什么微調(diào)中的歸一化保持一致很重要?是為了保留數(shù)據(jù)分布信息嗎?
    ?
    QA P3 - 04:19
    ?


  • 12、normalize 里的那些參數(shù)(2 行 3 列)是從哪里來的?
    ?
    QA P3 - 05:05
    ?


  • 13、finetune 需要更改 normalization 的參數(shù)為自己的數(shù)據(jù)集的均值和方差嗎?
    ?
    QA P3 - 05:17
    ?


  • 14、auto-gluon 這些自動(dòng)化框架會(huì)加入微調(diào)嗎?
    ?
    QA P3 - 05:36
    ?

?
QA P3 - 05:32
?

  • 15、老師,請(qǐng)問比較常用的 CV 預(yù)訓(xùn)練模型有哪些?現(xiàn)在流行的 Transformer CV 預(yù)訓(xùn)練模型有沒有?
    ?
    QA P3 - 05:56
    ?


  • 16、關(guān)于“重用分類器權(quán)重”,對(duì)于一個(gè) 80 類的數(shù)據(jù)集,只想選用其中 5 類,加上另外的 4 類,怎么重用這 5 類的權(quán)重呢?有什么快速的方式么?我能想到的就是手動(dòng)提取
    ?
    QA P3 - 06:18
    ?


  • 17、老師好,訓(xùn)練集的精度為什么一開始很高,然后急劇下降再穩(wěn)定呢?
    ?
    QA P3 - 06:50
    ?


  • 18、老師,微調(diào)是直接把別人在 ImageNet 上訓(xùn)練好的模型參數(shù)拿來當(dāng)作自己模型的初始化嗎?還是每次自己先用模型在 ImageNet 數(shù)據(jù)集上跑一遍,把參數(shù)記錄下來再跑自己的模型呢?
    ?
    QA P3 - 07:03
    ?


  • 19、計(jì)算損失的時(shí)候不都是用 label 對(duì)應(yīng)的標(biāo)號(hào)么,這塊用微調(diào)對(duì)應(yīng)的話感覺不知道怎么操作?
    ?
    QA P3 - 07:30
    ?


  • 20、老師,請(qǐng)問微調(diào)在學(xué)習(xí)率上還有什么有用的技巧?
    ?
    QA P3 - 07:59
    ?


  • 21、老師,遷移學(xué)習(xí)固定源模型中的層與目標(biāo)模型的對(duì)接的層之間有影響嗎?
    ?
    QA P3 - 08:12
    ?


  • 22、老師,在光學(xué)圖像上的訓(xùn)練好的模型,能否遷移到其他圖像的分類上?比如雷達(dá)圖像?還是說這種情況,應(yīng)該在雷達(dá)圖像上訓(xùn)練好的模型遷移到自己的小問題上?
    ?
    QA P3 - 09:04
    ?


  • 23、為什么不用微調(diào)一開始測(cè)試精度也很高?
    ?
    QA P3 - 10:30
    ?


  • 24、是不是已經(jīng)有過隨機(jī)是選擇層的實(shí)驗(yàn)了呢?如何選擇遷移那些層效果更好呢,就是靠測(cè)試嗎?
    ?
    QA P3 - 10:53
    ?





----end----

其他參考

1、《動(dòng)手學(xué)深度學(xué)習(xí)》,課程安排,https://courses.d2l.ai/zh-v2/assets/pdfs/part-2_6.pdf

2、《動(dòng)手學(xué)深度學(xué)習(xí)》,https://zh-v2.d2l.ai/chapter_computer-vision/fine-tuning.html

37 微調(diào)【動(dòng)手學(xué)深度學(xué)習(xí)v2】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
谢通门县| 葫芦岛市| 灵武市| 洛川县| 宁乡县| 奉贤区| 商丘市| 嵩明县| 白沙| 白朗县| 汾阳市| 都兰县| 萍乡市| 阿拉善右旗| 沐川县| 碌曲县| 临夏市| 丽水市| 苏尼特右旗| 饶阳县| 旬邑县| 威海市| 邹平县| 奉新县| 台北市| 桂东县| 宜都市| 邹城市| 莆田市| 志丹县| 东丽区| 舞钢市| 木兰县| 蒙山县| 景德镇市| 吐鲁番市| 庆云县| 江山市| 南漳县| 英吉沙县| 三原县|