日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

元学习Meta learning深入理解

發(fā)布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 元学习Meta learning深入理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

基本理解

元學習與傳統(tǒng)的機器學習不同在哪里?

基本思想

MAML

MAML與pre-training有什么區(qū)別呢?

1. 損失函數(shù)不同

?2. 優(yōu)化思想不同

MAML的優(yōu)點及特點

MAML工作機理

?MAML應用:Toy Example

Reptile


基本理解

Meta Learning,翻譯為元學習,也可以認為是learn to learn。

元學習與傳統(tǒng)的機器學習不同在哪里?

知乎博主“南有喬木”在理解 元學習與傳統(tǒng)的機器學習 這里舉了個通俗易懂的例子,拿來給大家分享:

把訓練算法類比成學生在學校的學習,傳統(tǒng)的機器學習任務對應的是在每個科目上分別訓練一個模型,而元學習是提高學生整體的學習能力,學會學習

學校中 ,有的學生各科成績都好,有的學生卻存在偏科現(xiàn)象。

  • 各科成績都好,說明學生“元學習”能力強學會了如何學習,可以迅速適應不同科目的學習任務。
  • 偏科學生“元學習”能力相對較弱,只能某一科學習成績好,換門科就不行了。不會舉一反三,觸類旁通。

現(xiàn)在經(jīng)常使用的深度神經(jīng)網(wǎng)絡都是“偏科生”,分類和回歸對應的網(wǎng)絡模型完全不同,即使同樣是分類任務,把人臉識別的網(wǎng)絡架構用在分類ImageNet數(shù)據(jù)上,也未必能達到很高的準確率。

?

還有一個不同點:

  • 傳統(tǒng)的深度學習方法都是從頭開始學習(訓練),即learning from scratch,對算力和時間都是更大的消耗和考驗。
  • 元學習強調(diào)從不同的若干小任務小樣本來學習一個對未知樣本未知類別都有好的判別和泛化能力的模型

基本思想

寫在前面:圖片均來自李宏毅老師教學視頻

圖1

對圖1的解釋:

Meta learning又稱為learn to learn,是說讓機器“學會學習”,擁有學習的能力。

元學習的訓練樣本和測試樣本都是基于任務的。通過不同類型的任務訓練模型,更新模型參數(shù),掌握學習技巧,然后舉一反三,更好地學習其他的任務。比如任務1是語音識別,任務2是 圖像識別,···,任務100是文本分類,任務101與 前面100個任務類型均不同,訓練任務即為這100個不相同的任務,測試任務為第101個任務。

圖2

對圖2的解釋:

在機器學習中,訓練樣本中的訓練集稱為train?set,測試集稱為test set。元學習廣泛應用于小樣本學習中,在元學習中,訓練樣本中的訓練集稱為support set,訓練樣本中的測試集叫做query set。

注意 :在機器學習中,只有一個大樣本數(shù)據(jù)集,將這個一個大數(shù)據(jù)集分成了兩部分,稱為train set和test set;

但是在元學習中,不止一個數(shù)據(jù)集,有多少個不同的任務,就有多少個數(shù)據(jù)集,然后每個數(shù)據(jù)集又分成兩部分,分別稱為support set和query set。

這里沒有考慮驗證集。

圖3

?對圖3的解釋

?

圖3為傳統(tǒng)深度學習的操作方式,即:

  • 定義一個網(wǎng)絡架構;
  • 初始化參數(shù)
  • 通過自己選擇的優(yōu)化器更新參數(shù);
  • 通過兩次epoch進行參數(shù)的更新;
  • 得到網(wǎng)絡最終的輸出
  • 元學習與傳統(tǒng)深度學習的聯(lián)系在哪里?

    圖3中紅色方框中的東西都是人為設計定義的,即我們常說的“超參數(shù)”,而元學習的目標就是去自動學習或者說代替方框中的東西,不同的代替方式就發(fā)明出不同的元學習算法

    圖4

    對圖4的解釋:

    圖4簡單介紹了元學習的原理。

    在神經(jīng)網(wǎng)絡算法,都需定義一個損失函數(shù)來評價模型好壞,元學習的損失通過N個任務的測試損失相加得到。定義在第n個任務上的測試損失是?,則對于N個任務來說,總的損失為?,這就是元學習的優(yōu)化目標。

    假設有兩個任務,Task1和Task2,通過訓練任務1,得到任務1的損失函數(shù)l1,通過訓練任務2,得到任務2的損失函數(shù)l2,然后將這兩個任務的損失函數(shù)相加,得到整個訓練任務的損失函數(shù),即圖4右上角的公式。

    ?

    如果前文對元學習了解還不夠,后面有更詳細的解釋:

    Meta Learning 的算法有很多,有些高大上的算法可以針對不同的訓練任務,輸出不同的神經(jīng)網(wǎng)絡結構和超參數(shù),例如 Neural Architecture Search (NAS) 和 AutoML。這些算法大多都相當復雜,我們普通人難以實現(xiàn)。另外一種比較容易實現(xiàn)的 Meta Learning 算法,就是本文要介紹的 MAML 和 Reptile,它們不改變深度神經(jīng)網(wǎng)絡的結構,只改變網(wǎng)絡的初始化參數(shù)。

    ?

    MAML

    理解MAML算法的損失函數(shù)含義和推導過程,首先得與pre-training區(qū)分開來。

    對圖5的解釋:

    我們定義初始化參數(shù)為,其初始化參數(shù)為,定義在第n個測試任務上訓練之后的模型參數(shù)為,于是MAML總的損失函數(shù)為?。

    圖5

    MAML與pre-training有什么區(qū)別呢?

    1. 損失函數(shù)不同

    MAML的損失函數(shù)為?。

    pre-training的損失函數(shù)是。

    直觀上理解是MAML所評測的損失是在任務訓練之后的測試loss,而pre-training是直接在原有基礎上求損失沒有經(jīng)過訓練。如圖6所示。

    圖6?????

    ?2. 優(yōu)化思想不同

    這里先分享一下我看到的對損失函數(shù)最恰當?shù)拿枋?#xff1a;(https://zhuanlan.zhihu.com/p/72920138)

    損失函數(shù)的奧妙:初始化參數(shù)掌控全場,分任務參數(shù)各自為營

    圖7

    ?

    圖8

    ?如圖7和圖8所示:

    上圖中橫坐標代表網(wǎng)絡參數(shù),縱坐標代表損失函數(shù)。淺綠和墨綠兩條曲線代表兩個 task 的損失函數(shù)隨參數(shù)變化曲線。

    假設模型參數(shù)的和向量都是一維的,

    model pre-training的初衷是尋找一個從一開始就讓所有任務的損失之和處于最小狀態(tài),它并不保證所有任務都能訓練到最好的,如上圖所示,??即收斂到局部最優(yōu)。從圖7中看就是,loss值按照計算公式達到了最小值,但此時task2(淺綠)線只能收斂到左邊的綠點處,即局部最小處,而從整體看來,全局最小處在的右邊出現(xiàn)。

    而MAML的初衷是找到一個不偏不倚的,使得不管是在任務1的loss曲線還是任務2的loss曲線上,都能下降到分別的全局最優(yōu)。從圖8中看就是,loss值按照計算公式到達了最小值??,此時,task1可以收斂到左邊綠點處,task2可以收斂到右邊綠點處,二者均為全局最小值。

    李宏毅老師在這里舉了個很生動的比喻:他把MAML比作選擇讀博,即更在意的是學生的以后的發(fā)展?jié)摿?#xff1b;而model pre-training就相當于選擇畢業(yè)直接去大廠工作,馬上就把所學技能兌現(xiàn)金錢,在意的是當下表現(xiàn)如何。如圖9所示。

    圖9

    MAML的優(yōu)點及特點

    如圖10所示:MAML

  • 計算速度快
  • 所有的更新參數(shù)步驟都被限制在了一次,即one-step
  • 在用這個算法時,即測試新任務的表現(xiàn)時可以更新更多次
  • 適用于數(shù)據(jù)有限的情況
  • 圖10

    MAML工作機理

    ?在介紹MAML的論文中,給出的算法如圖11所示:

    圖11

    ?下面給出每步的詳細解釋:參考(https://zhuanlan.zhihu.com/p/57864886)

    • Require1:task的分布,即隨機抽取若干個task組成任務池
    • Require2:step size是學習率,MAML基于二重梯度,每次迭代包括兩次參數(shù)更新的過程,所以有兩個學習率可以調(diào)整。
  • 隨機初始化模型的參數(shù)
  • 循環(huán),可以理解為一輪迭代過程或一個epoch
  • 隨機對若干個task采樣,形成一個batch。
  • 對batch中的每一個task進行循環(huán)
  • 對利用batch中的某一個task中的support set,計算每個參數(shù)的梯度。在N-way K-shot的設置下,這里的support set應該有NK個。(N-way K-shot意思是有N種不同的任務,每個任務有K個不同的樣本)。
  • 第一次梯度的更新。
  • 結束第一次梯度更新
  • 第二次梯度更新。這里用的樣本是query set。步驟8結束后,模型結束在該batch中的訓練,開始回到步驟3,繼續(xù)采樣下一個batch。
  • 有一個對MAML過程更直觀的圖:

    圖12

    對圖12的解釋為:

    ?MAML應用:Toy Example

    該 toy example 的目標是擬合正弦曲線:??,其中 a、b 都是隨機數(shù),每一組 a、b 對應一條正弦曲線,從該正弦曲線采樣 K 個點,用它們的橫縱坐標作為一組 task,橫坐標為神經(jīng)網(wǎng)絡的輸入,縱坐標為神經(jīng)網(wǎng)絡的輸出。

    我們希望通過在很多 task 上的學習,學到一組神經(jīng)網(wǎng)絡的初始化參數(shù),再輸入測試 task 的 K 個點時,經(jīng)過快速學習,神經(jīng)網(wǎng)絡能夠擬合測試 task 對應的正弦曲線。

    圖13

    左側是用常規(guī)的 fine-tune 算法初始化神經(jīng)網(wǎng)絡參數(shù)。我們觀察發(fā)現(xiàn),當把所有訓練 task 的損失函數(shù)之和作為總損失函數(shù),來直接更新網(wǎng)絡參數(shù),會導致無論測試 task 輸入什么坐標,預測的曲線始終是 0 附近的曲線,因為 a 和 b 可以任意設置,所以所有可能的正弦函數(shù)加起來,它們的期望值為 0,因此為了獲得所有訓練 task 損失函數(shù)之和的 global minima,不論什么輸入坐標,神經(jīng)網(wǎng)絡都將輸出 0。

    右側是通過 MAML 訓練的網(wǎng)絡,MAML的初始化結果是綠色的線,和橘黃色的線有差異。但是隨著finetuning的進行,結果與橘黃色的線更加接近。

    ?

    針對前面介紹的MAML,提出一個問題:

    在更新訓練任務的網(wǎng)絡時,只走了一步,然后更新meta網(wǎng)絡。為什么是一步,可以是多步嗎?

    李宏毅老師的課程中提到:

    • 只更新一次,速度比較快;因為meta learning中,子任務有很多,都更新很多次,訓練時間比較久。

    • MAML希望得到的初始化參數(shù)在新的任務中finetuning的時候效果好。如果只更新一次,就可以在新任務上獲取很好的表現(xiàn)。把這件事情當成目標,可以使得meta網(wǎng)絡參數(shù)訓練是很好(目標與需求一致)。

    • 當初始化參數(shù)應用到具體的任務中時,也可以finetuning很多次

    • Few-shot learning往往數(shù)據(jù)較少

    Reptile

    Reptile與MAML類似,其算法圖如下:

    圖14

    Reptile 中,每更新一次??,需要 sample 一個 batch 的 task(圖中 batchsize=1),并在各個 task 上施加多次梯度下降,得到各個 task 對應的??。然后計算??和主任務的參數(shù)的差向量,作為更新??的方向。這樣反復迭代,最終得到全局的初始化參數(shù)。

    ?其偽代碼如下:

    Reptile,每次sample出1個訓練任務

    ?

    Reptile,每次sample出1個batch訓練任務

    ?

    在Reptile中:

    • 訓練任務的網(wǎng)絡可以更新多次

    • reptile不再像MAML一樣計算梯度(因此帶來了工程性能的提升),而是直接用一個參數(shù)??乘以meta網(wǎng)絡與訓練任務的網(wǎng)絡參數(shù)的差來更新meta網(wǎng)絡參數(shù)

    • 從效果上來看,Reptile效果與MAML基本持平

    ?

    以上為對元學習的深入理解,后續(xù)可能出MAML數(shù)學公式推導,感興趣的讀者留言~


    參考資料

    【1】https://zhuanlan.zhihu.com/p/72920138

    【2】https://zhuanlan.zhihu.com/p/57864886

    【3】https://zhuanlan.zhihu.com/p/108503451

    【4】MAML論文https://arxiv.org/pdf/1703.03400.pdf

    【5】?https://zhuanlan.zhihu.com/p/136975128

    總結

    以上是生活随笔為你收集整理的元学习Meta learning深入理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 全肉的吸乳文 | 在线亚洲自拍 | 黄色私人影院 | 在线观看免费黄色 | 91国偷自产一区二区三区老熟女 | 国产无套在线观看 | 国产av电影一区 | 高h av| 日本高清黄色电影 | 一区二区在线视频免费观看 | 久久九精品 | www.成人在线观看 | 久久久免费看片 | 夜夜操av | 爆操女秘书 | 美国三级a三级18 | 国产综合在线观看视频 | 免费观看的毛片 | 亚洲午夜一区二区 | 亚洲AV无码久久精品国产一区 | 五月综合久久 | 精品国产免费无码久久久 | 以女性视角写的高h爽文 | 日韩少妇裸体做爰视频 | 久草新 | 国产精品999. | 男人天堂视频网站 | 亚洲人成电影网 | 亚洲の无码国产の无码步美 | 欧美成人片在线 | 韩日精品中文字幕 | 美女屁股无遮挡 | 国产亚洲黄色片 | 艳母日本动漫在线观看 | 亚洲视频h | 大尺度av在线 | 欧美性猛交xxxx久久久 | 国产午夜激情视频 | 国模私拍大尺度裸体av | 黄色免费在线播放 | 成人手机在线视频 | av一级免费 | 亚洲经典视频 | 国产伦精品一区二区三区高清版禁 | 亚洲国产成人在线视频 | 中文在线字幕免费观看电 | 黑人无套内谢中国美女 | 精品欧美色视频网站在线观看 | 91视频最新 | 亚洲精品视频免费在线观看 | 清纯唯美亚洲激情 | 黄色在线资源 | 国产aⅴ爽av久久久久成人 | 美女脱光内衣内裤 | 色先锋影院 | 看全色黄大色黄女片18 | 91精品国产综合久久福利软件 | a级片免费视频 | 2020国产精品 | 99精品网站| 中文字幕日韩在线观看 | 人妻无码久久精品人妻 | 欧美日韩国产精品一区二区 | 国产床上视频 | 一区二区三区免费在线观看视频 | 处女朱莉第一次 | 黄色一级大片在线免费看国产一 | 成人深夜电影 | 伊人网在线观看 | 深爱激情综合 | 日韩三级精品 | 欧美丰满少妇人妻精品 | 国产精品久久久久久亚洲调教 | 日日骑夜夜操 | 久久久久久久穴 | 日韩 国产 在线 | 中国女人内精69xxxxxx | 久久久久久久久一区 | 在线观看免费视频一区二区 | 91原视频 | 国产制服91一区二区三区制服 | 女人张开腿让男人桶爽 | 久久官网 | 午夜一级视频 | 91成人免费版| 男人操女人动漫 | 国产乱淫av公 | 成人精品国产 | yy6080午夜 | 亚洲三级在线免费观看 | 日本aa视频 | 国产污片在线观看 | 亚洲色图网站 | 黄色片免费在线 | 国产亚洲av在线 | 免费av不卡在线观看 | 黄色片www | 在线免费观看一级片 | 天天色av|