在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在應用層面了解遷移學習的原理及其優勢

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-10-27 10:20 ? 次閱讀

兩年前,吳恩達在 NIPS 2016 的 Tutorial 上曾說“在監督學習之后,遷移學習將引領下一波機器學習技術商業化浪潮?!爆F實中不斷有新場景的出現,遷移學習可以幫助我們更好地處理遇到的新場景。遷移學習到底有哪些優點,能夠成為現在機器學習算法的新焦點?本文將通過與深度學習進行對比,讓大家在應用層面了解遷移學習的原理及其優勢。

前言

深度學習在許多很難用其它方法解決的問題上取得了長足的進步。深度學習的成功歸功于它與傳統的機器學習的幾個關鍵不同點,這使得它在處理非結構化數據的時候能夠大放異彩。如今,深度學習模型可以玩游戲,檢測癌癥,與人類交談,以及駕駛汽車。

但是,使深度學習強大的這幾個不同點同時也使得其成本巨大。你可能聽說過深度學習的成功需要龐大的數據量,昂貴的硬件設施,甚至更加昂貴的精英工程人才。現在,一些公司開始對那些可以減少成本的創新想法和技術特別興奮。比如多任務學習(Multi-task learning),這是一種可以讓機器學習模型一次性從多個任務中進行學習的方法。這種方法的其中一種好處就是,可以減少對訓練數據量的需求。

在這篇文章中,我們將會介紹遷移學習(transfer learning),一種可以讓知識從一個任務遷移到另一個任務中的機器學習方法。遷移學習不需要為你的問題重新開發一個完全定制的解決方案,而是允許你從相關問題中遷移知識,以幫助你更輕松地解決您的自定義問題。通過遷移知識,你可以利用用于獲取這些知識所需的昂貴資源,包括訓練數據,硬件設備,研究人員,而這些成本并不需要你來承擔。下面讓我們看看遷移學習何時以及是怎樣起作用的。

深度學習與傳統機器學習的不同點

遷移學習并不是一項新技術,它也不是專門為深度學習服務的,但是鑒于最近在深度學習方面取得的進展,它很令人興奮。所以首先,我們需要闡明深度學習究竟和傳統的機器學習在哪些方面有所不同。

▌深度學習進行底層抽象

機器學習是機器自動學習把預測值或者標簽分配給數值型輸入(即數據)的一種方式。這里的難點是,如何確切地確定這個函數,使得其對于給定輸入可以生成輸出。不對函數添加任何限制條件的話,其可能性(復雜性)是無窮無盡的。為了簡化這個任務,根據我們正在解決的問題的類型,相關領域的專業知識,或者簡單的試錯方法,我們通常會在函數上強加某種類型的結構。一種結構定義了某一類型的機器學習模型。

理論上,有無限種可能的結構可供選擇,但在實踐中,大多數機器學習用例可以通過應用少數幾種結構中的其中一種來解決:線性模型,樹的組合分類器,和支持向量機是其中的核心。數據科學家的工作就是從這一小組可能的結構中選擇正確的結構。這些模型作為黑盒對象,可以從許多成熟的機器學習庫中獲得,并且只需幾行代碼即可訓練。舉個例子,你可以用 Python 的 scikit-learn 庫像以下這樣訓練一個隨機森林模型:

或者用 R 來訓練一個線性回歸模型:

與此不同的是,深度學習在更加底層運行。深度學習不是從一小組的模型結構中進行選擇,而是允許開發人員組成任意結構。構建塊是一些模塊或者層,可以將其想象成基本的基礎數據轉換。這意味著當我們應用深度學習時,我們需要打開黑盒子了解數據轉換,而不是把它當做被算法固定的一堆參數。

這種做法使得我們可以構建更加強大的模型,但是同時它也給整個模型構建過程添加了一種全新的挑戰。盡管深度學習社區已經發表了大量研究,到處都有實用的深度學習指南,或者一些經驗之談,如何有效地組合這些數據轉換依然是一個很困難的過程。

下面我們考慮一個極其簡單的卷積神經網絡圖像分類器,這里是用一個流行的深度學習庫 PyTorch 來進行定義的。

因為我們使用的是底層的構建塊,我們可以輕松改變模型的某個單一部件(例如,將F.relu變為F.sigmoid)。這樣做可以得到一個全新的模型架構,它可能會產生截然不同的結果,而且它的可能性,毫不夸張地說,是無止境的。

▌深度學習還沒有被充分地理解

即使給定了一個固定的神經網絡架構,訓練它也是眾所周知的極其困難。首先,深度學習的損失函數通常不是凸函數,這意味著訓練并不一定產生最優的可能解。第二,深度學習現在還是非常新的技術,它的許多組成部分仍未被充分理解。舉個例子,批標準化(Batch Normalization)最近備受關注,因為似乎將其包含在某些模型中是取得良好結果的關鍵,但是專家無法就其原因達成一致。研究人員 Ali Rahimi 最近在一場機器學習會議上甚至把深度學習與煉金術相提并論,引發了一場論戰。

▌自動特征工程

深度學習的復雜性促進了一門叫表示學習(representation learning)的技術的發展,這也是為什么經常有人說神經網絡做的是“自動特征工程”。簡單來說就是,我們不是讓人類來手動從數據集中提取有效特征,而是構建一個模型,讓模型可以自己學習對于當前任務來說哪些是需要的和有用的特征。把特征工程的任務交給模型來處理非常有效,但是代價是模型需要龐大的數據量,也因此需要龐大的計算能力。

▌你可以做什么?

和其他機器學習方法相比,深度學習太過于復雜,看上去似乎無法將其整合到你的業務中。對于那些資源有限的組織機構來說,這種感覺更加強烈。

對于那些需要走在前沿的組織機構來說,可能的確需要聘請專家和購買專業的硬件設施。但是很多情況下這不是必需的。有方法可以讓你不需要進行大量的投資就可以有效地應用深度學習技術。這里就是遷移學習可以大展拳腳的地方了。

遷移學習可以讓知識從一個機器學習模型遷移到另一個模型上。這些模型可能是對模型結構進行了長年研究、用相當多數據集對模型進行訓練、用數以年計的計算時間對模型進行優化而得到的結果。利用遷移學習,你不需要承擔上面說的任何成本就能獲得這項工作的大部分好處!

什么是遷移學習

大多數機器學習任務始于零知識,意思是它的結構和模型的參數是從隨機猜測開始的。當我們說模型是從頭開始學習的時候,意思也是如此。

隨機猜測開始訓練的一個貓檢測模型。通過它見過的許多不同的貓,該模型從中整合出相同的模式,逐漸學習到貓是什么。

在這種情況下,該模型學習到的所有內容都來自于你展示給它的數據。但是,這是解決問題的唯一方法嗎?在某些情況下,看上去的確如此。

貓檢測模型在不相關的應用中,例如欺詐檢測,很有可能沒有什么用處。它只知道如何應付貓的圖片,而不是信用卡交易。

但是在某些情況下,我們似乎可以在不同任務之間共享信息。

貓檢測模型在相關任務中作用很大,例如貓的臉部定位。該檢測器已經知道怎么檢測貓胡子,鼻子,以及眼睛,所有這些對于定位貓的臉部都很有用處。

這就是遷移學習的本質:采用一種模型,學習如何很好地完成某項任務,將其部分或者所有知識遷移到一個相關的任務。

想想我們自己的學習經驗,就會發現這其實很有道理:我們經常遷移以往習得的技能,這樣可以更快地學習新的技能。舉個例子,學過投擲棒球的人不需要重新學習拋東西的機制就能很好地學習到怎么扔一個足球。這些任務本質上是相通的,能夠處理其中一件任務的話自然而然可以把學習到的能力遷移到另一項任務。

在機器學習領域,可能過去 5 年最好的例子就是計算機視覺領域?,F在幾乎沒人會從頭開始訓練一個圖像模型。相反,我們會從一個預訓練好的模型開始,這個模型已經知道怎么區分一些簡單的對象,例如貓,狗,還有雨傘。學習區分圖像的模型首先學習如何檢測一些通用圖像特征,例如邊緣,形狀,文本,以及臉部。預訓練模型具有以上這些的基本技能(還有更加具體的技能,例如區分狗和貓的能力)。

此時,預訓練的分類模型可以通過添加層或者在一個新的數據集上重新訓練,來繼承那些花費巨大而獲得的基本技能,然后將其延伸到新的任務。這就是遷移學習。

這種方法的好處很明顯。

▌遷移學習訓練數據量需求量更小

當你在一個與貓相關的新任務中重復使用你最喜愛的貓檢測模型時,你的模型已經擁有了“一百萬只貓的智慧”,這意味著你不需要再使用那么多的貓圖片來訓練新任務了。減少訓練數據量可以讓你在只有很少數據,或者要獲得更多數據的成本過高或者不可能獲得更多數據的情況下也能訓練,同時可以讓你在比較廉價的硬件設施上更快地訓練模型。

▌遷移學習訓練模型泛化能力更強

遷移學習可以改進模型的泛化能力,或者說增強其在非訓練數據上分類良好的能力。這是因為在訓練預訓練模型時,是有目的性地讓模型可以學習到對相關任務都很有用的通用特征。當模型遷移到一個新任務時,它將很難過擬合新的訓練數據,因為它將僅從一個很一般的知識庫中繼續學習而已。構建一個泛化能力強的模型是機器學習中最難以及最重要的部分之一。

▌遷移學習訓練過程更加魯棒

從一個預訓練的模型開始,也可以避免訓練一個帶有數百萬參數的復雜模型,這個過程非常令人沮喪,非常不穩定,而且令人困惑。遷移學習可以將可訓練參數的數量減少多達 100%,使得訓練更穩定,而且更容易調試。

▌遷移學習降低深度學習的入門門檻

最后,遷移學習降低深度學習的門檻,因為你不需要成為專家就能獲得專家級的結果。舉例來說,流行的圖像分類模型 Resnet-50,這個特定的結構是怎么選擇的呢?這是許多深度學習專家的多年研究和實驗的結果。這個復雜的結構中包含有 2500 萬個權重,如果沒有對這個模型中各個部件的深入了解,從頭優化這些權重可以說是幾乎不可能的任務。幸運的是,有了遷移學習,你可以重用這個復雜的結構,以及這些優化過的權重,因此顯著降低了深度學習的入門門檻。

多任務學習又是什么?

遷移學習是用于訓練機器學習模型的知識共享技術的其中一種,已被證明是非常有效的。目前,知識共享技術中最有趣的兩種就是遷移學習和多任務學習。在遷移學習中,模型首先在單個任務中進行訓練,然后可以用于相關任務的起始點。在學習相關任務時,原始的被遷移模型會學習如何專門處理新的任務,而不需要擔心會不會影響其在原來任務上的效果。而在多任務學習中,單個模型一次性學習處理多個任務,對模型的性能評估則取決于它學習之后能夠多好地完成這些任務。后續我們也會分析討論更過有關多任務學習的好處以及其何時能起作用。

結論

遷移學習是一項知識共享技術,其可以減少構建深度學習模型時對訓練數據量,計算能力,以及工程人才的依賴。由于深度學習可以提供與傳統機器學習相比的顯著改進,遷移學習成為一項必不可少的工具。

想知道更多機器學習、深度學習、強化學習、遷移學習這些算法是如何在具體應用和業務中發揮作用的,我們會在 2018 AI開發者大會上進行更多分享。感興趣的同學們一定要關注我們哦!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8494

    瀏覽量

    134181
  • 遷移學習
    +關注

    關注

    0

    文章

    74

    瀏覽量

    5698
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    遷移學習的原理,基于Keras實現遷移學習

    我面對的大多數計算機視覺問題沒有非常大的數據集(5000-40000圖像)。即使使用極端的數據增強策略,也很難達到像樣的精確度。而在少量數據集上訓練數百萬參數的網絡通常會導致過擬合。所以遷移學習是我的救星。
    的頭像 發表于 05-09 03:44 ?1.5w次閱讀
    <b class='flag-5'>遷移</b><b class='flag-5'>學習</b>的原理,基于Keras實現<b class='flag-5'>遷移</b><b class='flag-5'>學習</b>

    基于稀疏編碼的遷移學習及其在行人檢測中的應用

    一定進展,但大都需要大量的訓練數據.針對這一問題,提出了一種基于遷移學習的半監督行人分類方法:首先基于稀疏編碼,從任意的未標記樣本中,學習到一個緊湊、有效的特征表示;然后通過遷移
    發表于 04-24 09:48

    遷移學習訓練網絡

    keras 之 遷移學習,改變VGG16輸出層,用imagenet權重retrain
    發表于 09-09 11:02

    【木棉花】學習筆記--分布式遷移

    也可以查看我上一篇學習筆記了解一下。那今天我要整理到學習筆記中的呢,就是分布式能力里算是比較簡單的分布式遷移。為了更好地熟練掌握鴻蒙手機應
    發表于 09-05 10:49

    【木棉花】學習筆記--分布式遷移+回遷

    前言我又來啦,相信那些不了解分布式的童鞋,學習過我前幾篇學習筆記了之后是不是會更加理解了一些呢。當然了,我這星期要整理到學習筆記中的也是和分布式能力相關的一個
    發表于 09-07 20:09

    學習嵌入式Linux應用層的開發

    1 應用層與驅動層要想學習嵌入式Linux應用層的開發,首先要區分好應用層和驅動層之間的關系。我們本科階段
    發表于 11-02 10:20

    遷移學習

    的適用范圍。No.2 第二天 五、遷移學習前沿方法介紹深度遷移網絡結構設計深度遷移學習目標函數設計全新場景下的
    發表于 04-21 15:15

    讓基于μC/OS-III開發的應用層無感地遷移到RT-Thread操作系統

    1、讓基于μC/OS-III開發的應用層無感地遷移到RT-Thread操作系統之前學習過μCOS-III操作系統,意圖轉向學習RT-Thread國產操作系統。本兼容層可以幫您用已有的μ
    發表于 07-18 14:23

    數據遷移的難點及其解決方案淺析

    、網絡,以及存儲等六種層級功能的數據遷移方案,從不同的維度,不同的層面,保障我們客戶的數據遷移過程可靠與高效。 華為融合數據遷移解決方案的六層級功能 華為融合數據
    發表于 10-13 17:05 ?14次下載
    數據<b class='flag-5'>遷移</b>的難點<b class='flag-5'>及其</b>解決方案淺析

    了解遷移學習,哪種情況適合做遷移學習?

    算法的基本思想是 從源 Domain 數據中篩選有效數據,過濾掉與目標 Domain 不match的數據,通過 Boosting方法建立一種權重調整機制,增加有效數據權重,降低無效數據權重,下圖是 TrAdaBoost 算法的示意圖(截圖來自于 莊福振 - 遷移學習研究
    的頭像 發表于 08-05 10:39 ?6542次閱讀
    <b class='flag-5'>了解</b><b class='flag-5'>遷移</b><b class='flag-5'>學習</b>,哪種情況適合做<b class='flag-5'>遷移</b><b class='flag-5'>學習</b>?

    基于脈沖神經網絡的遷移學習算法

    傳播網絡完成訓練過程,并通過脈沖編碼規則和自適應的權值映射關系,將訓練結果遷移至脈沖神經網絡。實驗結果表明,多層脈沖神經網絡中,遷移學習算法能夠有效解決訓練過程中收斂困難的問題,
    發表于 05-24 16:03 ?15次下載

    人工智能學習 遷移學習實戰進階

    問題的分類 經典機器學習算法介紹 章節目標:機器學習是人工智能的重要技術之一,詳細了解機器學習的原理、機制和方法,為學習深度
    的頭像 發表于 04-28 17:13 ?1780次閱讀
    人工智能<b class='flag-5'>學習</b> <b class='flag-5'>遷移</b><b class='flag-5'>學習</b>實戰進階

    一文詳解遷移學習

    引導(TOAST),這是一種新的遷移學習算法,它可以凍結預先訓練的骨干模型,選擇與任務相關的特征輸出,并將這些特征反饋到模型中,以引導注意力關注特定任務的特征。僅通過重新聚焦注意力,TOAST多個
    的頭像 發表于 08-11 16:56 ?7037次閱讀
    一文詳解<b class='flag-5'>遷移</b><b class='flag-5'>學習</b>

    視覺深度學習遷移學習訓練框架Torchvision介紹

    Torchvision是基于Pytorch的視覺深度學習遷移學習訓練框架,當前支持的圖像分類、對象檢測、實例分割、語義分割、姿態評估模型的遷移學習
    的頭像 發表于 09-22 09:49 ?1230次閱讀
    視覺深度<b class='flag-5'>學習</b><b class='flag-5'>遷移</b><b class='flag-5'>學習</b>訓練框架Torchvision介紹

    預訓練和遷移學習的區別和聯系

    預訓練和遷移學習是深度學習和機器學習領域中的兩個重要概念,它們提高模型性能、減少訓練時間和降低對數據量的需求方面發揮著關鍵作用。本文將從定
    的頭像 發表于 07-11 10:12 ?1936次閱讀
    主站蜘蛛池模板: 天堂8在线官网 | 在线免费看黄 | αv天堂| 亚洲一区二区三 | 午夜寂寞在线一级观看免费 | 日本69xxxxx| 人成网站在线观看 | 精品国产中文一级毛片在线看 | 国产一区二区三区毛片 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 中文字幕导航 | 天堂bt资源www在线 | 亚洲国产成人在人网站天堂 | 伊人天天干 | 中文字幕色网站 | 综合五月婷婷 | 一区二区中文字幕在线观看 | 色婷婷综合网 | 亚洲色妞 | 亚洲理论片 | 好紧好爽太大了h快穿 | 午夜视频在线观看一区二区 | 丁香花的视频免费观看 | 毛片视频网址 | 国产性猛交xx乱 | 黄色男人的天堂 | 毛片天天看| 网红和老师啪啪对白清晰 | 操操操综合 | 人人干人人看 | 在线a人片免费观看不卡 | 亚洲成a人片77777潘金莲 | 男女爱爱是免费看 | 特黄aaaaa日本大片免费看 | 91福利视频网站 | 欧美激情五月 | 初恋视频黄色 | 亚洲色图图片区 | 国产精品第9页 | 五月婷婷之综合激情 | 免费在线观看理论片 |