www.日本精品,久久中文视频,中文字幕第一页在线播放,香蕉视频免费网站,老湿机一区午夜精品免费福利,91久久综合精品国产丝袜长腿,欧美日韩视频精品一区二区

遷移學習讓深度學習更容易x

發(fā)布時間:2020-08-26 來源: 實習報告 點擊:

 遷移學習讓深度學習更容易 深度學習在一些傳統(tǒng)方法難以處理的領(lǐng)域有了很大的進展。這種成功是由于改變了傳統(tǒng)機器學習的幾個出發(fā)點,使其在應用于非結(jié)構(gòu)化數(shù)據(jù)時性能很好。如今深度學習模型可以玩游戲,檢測癌癥,和人類交談,自動駕駛。

 深度學習變得強大的同時也需要很大的代價。進行深度學習需要大量的數(shù)據(jù)、昂貴的硬件、甚至更昂貴的精英工程人才。

 在 Cloudera Fast Forward 實驗室,我們對能解決這些問題的創(chuàng)新特別興奮。我們最新的研究報告深入探討了多任務學習,一種允許機器學習模型同時從多個任務中學習的方法。其中的一個好處就是可以減少訓練數(shù)據(jù)需求。

 在本文中,我們將講述遷移學習,這是一種可以將知識從一項任務遷移到另一項任務的相關(guān)技術(shù)。遷移學習允許你從相關(guān)問題中轉(zhuǎn)移知識而不是針對問題開發(fā)一個完全定制的解決方案,這能幫助你更輕松地解決特定問題。通過遷移這些知識,你可以減少很多開支,接下來看一下該方法如何有效地解決上述問題。

 為什么深度學習不同于其他方法 于其他方法 遷移學習不是一種新技術(shù),也不是專門針對深度學習的,但考慮到最近深度學習的進展,它是一種令人興奮的新技術(shù)。首先,有必要說明深度學習與傳統(tǒng)機器學習的不同之處。

 深度學習是在較低的抽象層次上進行的 深度學習是在較低的抽象層次上進行的 機器學習是機器自動學習函數(shù)權(quán)重的一種方式。

 確定函數(shù)如何從提供的輸入產(chǎn)生輸出是比較困難的。如果對函數(shù)沒有任何限制,那么可能性是無窮無盡的。為了簡化這個任務,我們通常在功能上強加某種類型的結(jié)構(gòu)——基于我們正在解決的問題的類型或者簡單的嘗試和誤差。這種結(jié)構(gòu)定義了一種機器學習模型。

  理論上,結(jié)構(gòu)是無限的,但在實踐中,大多數(shù)機器學習用例都可以通過應用少數(shù)的結(jié)構(gòu)來解決:線性模型、樹的集合和支持向量機。數(shù)據(jù)科學家的工作就是從這一小部分可能的結(jié)構(gòu)中選擇正確的結(jié)構(gòu)使用。

 這些模型可以作為黑盒對象從各種成熟的機器學習庫中獲得,并且只需要幾行代碼就可以訓練出來。例如,可以使用 Python 的 scikit-learn 來訓練一個隨機森林模型,如下所示:

 clf = RandomForestClassifier()

 clf.fit(past_data, labels)

 predictions = clf.predict(future_data)

 或 R 中的線性回歸模型:

 linearModel <- lm(y ~ X, data=pastData)

 predictions <- predict(linearModel, futureData)

 雖然深度學習是在較低的層次上進行的,但并不是在有限的模型結(jié)構(gòu)中進行選擇的,而是允許實踐者加上自己設計的模型結(jié)構(gòu)。構(gòu)建塊是可以認為是基本數(shù)據(jù)轉(zhuǎn)換的模塊。這意味著在應用深度學習時,我們需要打開黑盒子,而不是通過算法固定地實現(xiàn)。

  這樣以來就允許開發(fā)者構(gòu)建更強大的模型,從另一個角度來看這也為模型構(gòu)建添加了一個全新的維度。盡管大量的深度學習研究報告、實用指南被發(fā)表,但要有效地組織這些轉(zhuǎn)變可能是一個困難的過程。

 考慮一個極其簡單的卷積神經(jīng)網(wǎng)絡圖像分類器,它在流行的深度學習庫 PyTorch中定義:

 class Net(nn.Module):

 def __init__(self):

 super(Net, self).__init__()

 self.conv1 = nn.Conv2d(1, 10, kernel_size=5)

 self.conv2 = nn.Conv2d(10, 20, kernel_size=5)

 self.conv2_drop = nn.Dropout2d()

 self.fc1 = nn.Linear(320, 50)

 self.fc2 = nn.Linear(50, 10)

  def forward(self, x):

 x = F.relu(F.max_pool2d(self.conv1(x), 2))

 x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))

 x = x.view(-1, 320)

 x = F.relu(self.fc1(x))

 x = F.dropout(x, training=self.training)

 x = self.fc2(x)

 return F.log_softmax(x, dim=1)

 因為我們使用的是低級的構(gòu)建塊,所以我們可以更改模型的單個組件(例如F.relu,F.sigmoid)。這為我們提供了可能會產(chǎn)生不同結(jié)果的全新模型體系結(jié)構(gòu),而這種可能性是無限的。

 深度學習尚未被充分理解 深度學習尚未被充分理解 即使給定一個固定的神經(jīng)網(wǎng)絡架構(gòu),訓練也是非常困難的。首先,深度學習損失函數(shù)不是一般的凸函數(shù),這意味著訓練不一定會產(chǎn)生最好的解決方案。其次,深度學

 習仍然是非常新的,它的許多組成部分還沒有被很好地理解。例如,批處理歸一化最近受到了關(guān)注,因為一些模型中它似乎對良好結(jié)果至關(guān)重要,但專家們無法就原因達成一致。研究員阿里·拉希米在最近的一次機器學習會議上把深度學習比作煉金術(shù)引起了一些爭議。

 自動特征工程 程 深度學習中增加的復雜性使一種稱為表示學習的技術(shù)得以實現(xiàn),這就是為什么神經(jīng)網(wǎng)絡經(jīng)常被稱為“自動特征工程”?傊覀円赃@樣一種方式構(gòu)建模型而不需要從數(shù)據(jù)集中人工設計有用的特征,這樣它們就可以學習任何必要的、對手頭任務有用的特征。將特征工程放到模型上是非常強大的,但是需要大量數(shù)據(jù)和大量計算能力的模型成本。

 你能做什么 你能做什么 與其他機器學習方法相比,深度學習顯得很復雜,以至于它似乎難以融入你的業(yè)務。對于資源有限的組織來說,這種感覺更加強烈。

 對于真正需要投入大量資源進行開發(fā)的組織,可能確實需要雇傭?qū)<也①徺I專門的硬件。但在很多情況下,這是不必要的。有很多方法可以在不進行巨額投資的情況下有效地應用它,這就是遷移學習的由來。

 轉(zhuǎn)移學習是使知識從一種機器學習模式遷移到另一種機器學習模式的技術(shù)。這些模型可能是多年來對模型結(jié)構(gòu)的研究、對龐大數(shù)據(jù)集的訓練以及多年的計算時間進行優(yōu)化的結(jié)果。通過遷移學習,你可以不用付出任何代價就能從這項工作中獲得好處。

 什么是轉(zhuǎn)移學習 什么是轉(zhuǎn)移學習? 大多數(shù)機器學習任務從零知識開始,這意味著模型的結(jié)構(gòu)和參數(shù)開始是隨機猜測的。

 例如:檢測貓模型是通過猜測開始訓練的,它通過聚集它所見過的許多不同的貓的共同模式,逐漸了解貓是什么。

 在這種情況下,模型學到的所有東西都來自所給出的數(shù)據(jù)。但這是解決問題的唯一方法嗎?在某些情況下,好像是。

 檢測貓的模型在不相關(guān)的應用程序中可能是無用的,比如詐騙檢測。它只知道如何理解貓的圖片,而不是信用卡交易。

 但在其他情況下,兩個系統(tǒng)之間好像能夠在任務之間共享信息。

  貓檢測器在相關(guān)任務中很有用,比如貓的面部定位。檢測器應該已經(jīng)知道如何檢測貓的胡須、鼻子和眼睛——所有這些東西在定位貓的臉時都很有用。

 這就是轉(zhuǎn)移學習的本質(zhì):采用一個已經(jīng)學會如何很好地完成一項任務的模型,并將部分知識遷移到相關(guān)任務。

 當我們檢查自己的學習經(jīng)驗時,也證明著遷移學習的正確性;我們定期會遷移過去學到的技能,以便更快地學習新的技能。例如,一個已經(jīng)學會扔棒球的人不需要完全重新學習扔球的技巧來學習如何扔足球。這些事情是內(nèi)在相關(guān)的,做好其中一件事的能力自然會轉(zhuǎn)化為做好另一件事的能力。

 在機器學習領(lǐng)域,沒有比過去五年的計算機視覺領(lǐng)域更好的例子了。一開始訓練模型是很少見的。相反,我們從一個預先訓練好的模型開始,這個模型已經(jīng)知道如何分類簡單的物體,比如貓、狗和雨傘。學習對圖像進行分類的模型首先要學習檢測一般圖像特征,如邊緣、形狀、文本和面孔。

 預訓練模型具有這些基本技能。通過在新數(shù)據(jù)集上添加層或重新訓練,可以稍微修改預先訓練的分類模型,將這些昂貴的基本技能遷移到新的專門化中,這就是遷移學習。

 遷移學習需要更少的訓練數(shù)據(jù) 遷移學習需要更少的訓練數(shù)據(jù) 當你在一個新的與貓相關(guān)的任務中再次用你的貓檢測模型時,你的模型已經(jīng)有了“認識一百萬只貓的智慧”,這意味著你不需要使用幾乎同樣多的圖片來訓練新的任務。

 通過遷移學習的模型泛化能力更好 通過遷移學習的模型泛化能力更好 遷移學習提高了泛化能力,或者提高了模型在未經(jīng)訓練的數(shù)據(jù)上表現(xiàn)良好的能力。這是因為預先訓練的模型是有目的地訓練任務,這些任務迫使模型學習在相關(guān)上下文中有用的通用特性。當模型遷移到一個新的任務時,很難對新的訓練數(shù)據(jù)進行過度擬合,因為模型只能從一個非常一般的知識庫中增量地學習。建立一個泛化能力好的模型是機器學習中最困難也是最重要的部分之一。

 遷移學習訓練過程并不那么脆弱 遷移學習訓練過程并不那么脆弱 從一個預先訓練好的模型開始有助于克服訓練一個復雜模型的、令人沮喪的、脆弱的和混亂的過程。遷移學習將可訓練參數(shù)的數(shù)量減少了 100%,使訓練更穩(wěn)定,更容易調(diào)試。

 轉(zhuǎn)移學習使深度學習更容易 轉(zhuǎn)移學習使深度學習更容易 最后,遷移學習使深度學習更容易進行,因為不需要自己成為專家來獲得專家級別的結(jié)果。比如流行的圖像分類模型 Resnet-50。

 這個特定的架構(gòu)是如何選擇的?這是多年來各種深度學習專家的研究和實驗的結(jié)果。在這個復雜的結(jié)構(gòu)中有 2500 萬個權(quán)重,如果沒有對模型的每個組件的廣泛了解,從頭優(yōu)化這些權(quán)重幾乎是不可能的。幸運的是,通過遷移學習,可以重用復雜的結(jié)構(gòu)和優(yōu)化的權(quán)重,大大降低了深入學習的門檻。

 結(jié)論 結(jié)論 遷移學習是一種知識(權(quán)重)共享技術(shù),它減少了構(gòu)建深度學習模型所需的訓練數(shù)據(jù)、計算能力和工程人才的數(shù)量。而且,由于深度學習能夠比傳統(tǒng)機器學習提供顯著的改進,因此遷移學習是一個必不可少的工具。

  原文鏈接 本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

相關(guān)熱詞搜索:學習 更容易 遷移

版權(quán)所有 蒲公英文摘 www.newchangjing.com