一種深度學習方法 遷移學習

2021-10-02 20:14:58 字數 2710 閱讀 1511

接下來我會介紹關於遷移學習的以下內容。

它是什麼?

它是如何工作的?

為什麼使用它?

什麼時候使用?

轉移學習的方法: 訓練模型;使用預先訓練的模型;和特徵提取

遷移學習: 遇到乙個新問題,不是從頭訓練乙個網路模型,而是在現有的預訓練模型上,再次訓練或者直接使用。

因為他可以用較少的資料來訓練深度神經網路,如果你資料不足,可以考慮下遷移學習。現在大多數問題通常沒有數百萬個標記資料點是無法訓練出乙個商用模型的。

如果你訓練了乙個簡單的分類器來**影象是否包含揹包,則可以利用模型在訓練中獲得的「知識」(其實就是網路權重)來識別其他物體,例如太陽鏡。

通過轉移學習,我們基本上嘗試利用在一項任務中學到的知識來提高另一項任務的泛化性。可以將網路從「任務a」中學到的權重遷移到新的「任務b」。

這就是遷移學習。

由於乙個模型的商用需要大量的計算能力,因此遷移學習主要用於計算機視覺cv和自然語言處理任務nlp(如情感分析)中。

遷移學習不算是一種機器學習技術,但可以看作是該領域的「設計方**」,例如主動學習。我給他起了乙個名字,寄生學習。哈哈哈

例如,在計算機視覺中,神經網路通常是這樣的:較早的層檢測到的是邊緣,中間層檢測到的是形狀,越靠後的網路層檢測的是特定於任務的特徵(例如人臉中的眼睛)。

在遷移學習中,很少取最後的層,一般是取前面的和中間的層,對於最後的特徵層我們自己重新訓練。

例如有乙個模型,可以識別影象上的揹包,該揹包將用於識別太陽鏡。在較早的層中,該模型已學會識別物體,因此,我們將僅對後一層進行重新訓練,從而學習如何把「太陽鏡與其他物體區分開」。像個小孩兒一樣哈哈哈。

在遷移學習中,就是試著把模型訓練的先前任務中的學習能力,盡可的遷移到手頭的新任務。

相當於把別人的腦子給自己灌進去哈哈哈。

根據問題和資料,此知識可以採用各種形式。例如,可能是模型的構成方式,這樣可以更輕鬆地識別新的物件,相當於獲取最新的能力。

遷移學習有很多好處,但是主要優點是節省訓練時間,神經網路的效能更好(在大多數情況下)以及不需要大量資料。

通常,從頭開始訓練神經網路需要大量資料,但同樣的資料你可能拿不到啊,現在就是轉移學習大顯神威的時候了。

通過遷移學習,可以使用相對較少的訓練資料來構建可靠的機器學習模型,因為該模型已經過預訓練。

這在自然語言處理中特別有價值,因為建立大型的標記資料集通常需要專業知識。此外,減少了訓練時間,因為有時可能需要幾天甚至幾周的時間來從頭開始訓練複雜任務的深度神經網路。

根據deepmind首席執行官demis hassabis的說法,遷移學習也是最有前途的技術之一,有朝一日可能會導致人工智慧(agi):

與機器學習一樣,很難形成通用的規則,但是以下是什麼時候可以使用轉移學習的一些準則:

如果原始模型是使用tensorflow訓練的,則只需還原它並為任務重新訓練一些網路層即可。

但是請記住,只有在從第乙個任務中學到的功能是通用的情況下,遷移學習才會有用,也就是遷移到類似的任務才行。

同樣,模型的輸入必須與最初訓練時使用的大小相同。如果沒有,新增乙個預處理步驟就行了,把輸入的大小調整為所需的大小。

1.訓練模型以重用它

假設您要解決任務a,但沒有足夠的資料來訓練深度神經網路。解決此問題的一種方法是找到具有大量資料的相關任務b。在任務b上訓練深度神經網路,並將模型用作解決任務a的起點。

那是否需要使用整個模型還是僅需使用幾層模型,在很大程度上取決於你要解決的問題。

如果兩個任務的輸入都相同,則可以重新使用模型並為新輸入進行**。或者,更改和重新訓練不同的特定於任務的層和輸出層也可以。

2.使用預先訓練的模型

第二種方法是使用已經預先訓練的模型。這些模型很多,最好先做些工作。重複用多少層以及重新訓練多少層取決於你要解決的問題。

這種型別的遷移學習是整個深度學習中最常用的方法。

3.特徵提取

另一種方法是使用深度學習來發現問題的最優特徵,這意味著找到最重要的特徵。這種方法也稱為表示學習,與手工設計的表示相比,通常可以產生更好的結果。

在機器學習中,一些函式通常是由研究人員和領域專家手動設計的。但是深度學習可以自動提取特徵。

當然,這並不意味著特徵工程和相關領域知識不再重要, 仍然必須決定將哪些函式放入網路。

也就是說,神經網路能夠了解哪些特徵真正重要,哪些特徵不重要。表示學習演算法可以在非常短的時間內發現功能的良好組合,即使是複雜的任務,否則這些工作都要耗費大量的人工。

然後,學習到的表示也可以用於其他問題。將資料鑲入網路並使用中間層之一作為輸出層。然後可以將此層解釋為原始資料的表示。

這種方法主要用於計算機視覺,因為它可以減小資料集的大小,從而減少計算時間,並且也更適合於傳統演算法。

有一些非常流行的經過預訓練的機器學習模型。其中之一是inception-v3模型,該模型已針對imagenet 「大型視覺識別挑戰賽」 進行了訓練 。在這一挑戰中,參與者必須將影象分為 1,000類, 例如「斑馬」,「斑點狗」和「洗碗機」。

這是 tensorflow上非常好的教程,介紹了如何重新訓練影象分類器。

其他頗受歡迎的模型是resnet和alexnet。你可以訪問這個,這是乙個經過分類且可搜尋的經過預編譯的深度學習模型的彙總,有演示和**。譯

(愛心.gif) 麼麼噠 ~麼麼噠 ~麼麼噠碼字不易啊啊啊,如果你覺得本文有幫助,三毛也是愛!

介紹一種學習方法

我們平時在學習的時候總感覺自己的效率不高,別人也花了同樣的時間,為什麼不同的人所得到的效果不一樣。今天介紹一種學習方法,這一方法與費曼有關。先簡單介紹一下費曼。費曼是20世紀著名的理論物理學家,在研製原子彈的曼哈頓計畫中擔任重要角色,曾獲諾貝爾物理學獎。我們很多人都是通過那本充滿幽默感的自傳 別鬧了...

深度學習方法

目前大多數深度估計方法是通過2d的到2.5d的表面形狀 場景深度 比較成功的基於幾何影象方法包括 structure from motion,shape from x,monocular stereo,binocular stereo和multi view stereo 其中shape from x...

模仿是一種最好的學習方法

測試空間 旗下大頭針 出品 學習的過程就是,接受別人思維的乙個過程。對於乙個從來都沒有接觸過c語言的學生,如果想學好它,其實學習的不是知識本身,需要學習的c語言 這種面向過程的高階語言的思維方式。通過近一段的時間的授課,更加體會深刻的體會到老師這個職業不但要教授給學生知識,教授的學習知識的方法,更重...