人工智慧遷移學習如何工作 在AI模型和培訓過程起到那些作用
如今,人工智慧程式可以識別照片和影片中的面部和物體,實時轉錄音訊,提前數年透過X射線掃描檢測癌症,並在某些最複雜的遊戲中與人類競爭。
直到幾年前,所有這些挑戰要麼被認為是無法克服的,幾十年之遙,要麼已經以次優的結果得以解決。但是神經網路和深度學習的進步是人工智慧的一個分支,在過去幾年中非常流行,它幫助計算機解決了這些問題以及許多其他複雜問題。
不幸的是,深度學習模型從頭開始建立時,需要訪問大量資料和計算資源。這是許多人買不起的奢侈品。而且,訓練深度學習模型來執行任務需要很長時間,這不適合時間預算短的用例。幸運的是,轉移學習是一種使用從一種訓練有素的AI模型獲得的知識到另一種知識的學科,可以幫助解決這些問題。
訓練深度學習模型的成本
深度學習是機器學習的子集,是透過訓練示例開發AI的科學。但是直到最近幾年,由於效率低下,它們在很大程度上已被AI社群駁回。在過去的幾年中,大量資料和計算資源的可用性使神經網路備受關注,並使開發能夠解決現實世界問題的深度學習演算法成為可能。
要訓練深度學習模型,您基本上必須為神經網路提供大量帶註釋的示例。這些示例可以是諸如標有物體的影像或患者的乳房X線照片掃描及其最終結果之類的東西。神經網路將仔細分析和比較影像,並開發數學模型來表示相似類別影像之間的重複模式。
已經存在一些大型的開源資料集,例如ImageNet(一個包含22000個類別的超過1400萬張影像的資料庫)和MNIST(一個包含60000個手寫數字的資料集)。AI工程師可以使用這些資源來訓練他們的深度學習模型。
但是,訓練深度學習模型還需要訪問非常強大的計算資源。開發人員通常使用CPU,GPU叢集或專用硬體(例如Google的Tensor處理器(TPU))來高效地訓練神經網路。購買或租用此類資源的成本可能超出單個開發人員或小型組織的預算。而且,對於許多問題,沒有足夠的示例來訓練強大的AI模型。
轉移學習使深度學習培訓的要求大大降低
假設AI工程師想要建立影像分類器神經網路來解決特定問題。工程師無需收整合千上萬的影像,而可以使用諸如ImageNet之類的公共可用資料集,並使用特定領域的照片對其進行增強。
但是AI工程師仍然必須付出高昂的費用來租用透過神經網路執行這些數百萬個影像所需的計算資源。這是轉移學習發揮作用的地方。轉移學習是透過微調先前受過訓練的神經網路來建立新AI模型的過程。
開發人員無需從頭開始訓練他們的神經網路,而是可以下載經過預先訓練的開源深度學習模型,並根據自己的目的對其進行微調。有許多預訓練的基本模型可供選擇。流行的示例包括AlexNet,Google的Inception-v3和Microsoft的ResNet-50。這些神經網路已經在ImageNet資料集上進行了訓練。AI工程師只需要透過使用他們自己的特定領域的示例對它們進行進一步的培訓來增強它們。
轉移學習不需要大量的計算資源。在大多數情況下,一臺臺式計算機或一臺膝上型電腦可以在幾個小時甚至更少的時間內對預訓練的神經網路進行微調。
轉移學習如何工作
有趣的是,神經網路以分層方式發展其行為。每個神經網路都由多層組成。訓練後,調整每個圖層以檢測輸入資料中的特定特徵。
例如,在影像分類器卷積網路中,前幾層檢測一般特徵,例如邊緣,拐角,圓形和顏色斑點。隨著您深入網路,這些層開始檢測更具體的事物,例如眼睛,面部和完整的物體。
神經網路的頂層檢測一般特徵。更深的層檢測實際物件(來源:arxiv.org)
在進行遷移學習時,AI工程師凍結了預訓練神經網路的第一層。這些是檢測所有域共有的常規功能的層。然後他們微調更深的層,以使用自己的示例對它們進行微調,並新增新層以對訓練資料集中包含的新類別進行分類。
經過預先訓練和微調的AI模型也分別稱為“教師”模型和“學生”模型。
凍結層和微調層的數量取決於源AI模型和目標AI模型之間的相似性。如果學生AI模型解決了非常接近老師的問題,則無需微調預訓練模型的各個層次。開發人員僅需在網路末端新增一個新層,併為新類別訓練AI。這稱為“深層特徵提取”。當目標域的訓練資料很少時,深度特徵提取也更可取。
當源與目的地之間存在相當大的差異,或者培訓示例很多時,開發人員將凍結預訓練的AI模型中的幾層。然後,他們新增新的分類層,並使用新示例微調未凍結的層。這稱為“中間層特徵提取”。
如果源AI模型和目標AI模型之間存在顯著差異,則開發人員將取消凍結並重新訓練整個神經網路。這種稱為“完整模型微調”的轉移學習還需要大量的訓練示例。
圖片來源:芝加哥大學
採取預訓練的模型並重新訓練其所有層似乎是荒謬的。但實際上,它可以節省時間和計算資源。在訓練之前,神經網路中的變數將使用隨機數進行初始化,並在處理訓練資料時調整其值。預訓練神經網路的變數值已被調整為數百萬個訓練示例。因此,它們對於新的AI模型來說是一個更好的起點,該模型想要訓練一組與源AI模型甚至有一點相似之處的新示例。
轉移學習不是靈丹妙藥
轉移學習解決了以有效且負擔得起的方式訓練AI模型的許多問題。但是,它也需要權衡。如果預訓練的神經網路存在安全漏洞,則AI模型會使用它作為遷移學習的基礎,並繼承這些漏洞。
例如,基本模型可能無法抵抗對抗攻擊,精心設計的輸入示例會迫使AI以不穩定的方式更改其行為。如果惡意行為者設法為基本模型開發對抗示例,則他們的攻擊將對從其派生的大多數AI模型起作用。芝加哥大學,加州大學聖塔克拉拉分校和Virgina Tech的研究人員在去年Usenix安全研討會上發表的一篇論文中對此進行了說明。
此外,在某些領域,例如教AI玩遊戲,遷移學習的使用非常有限。這些AI模型接受了強化學習的訓練,強化學習是AI的一個分支,它是計算密集型的,並且需要大量的反覆試驗。在強化學習中,大多數新問題都是獨特的,需要他們自己的 。
但總而言之,對於大多數深度學習應用程式(例如影像分類和自然語言處理),您很有可能可以透過大量的巧妙的遷移學習來獲取捷徑。
【編輯推薦】
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2706696/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 再無需從頭訓練遷移學習模型!亞馬遜開源遷移學習資料庫 Xfer遷移學習模型亞馬遜資料庫
- 如何用最強模型BERT做NLP遷移學習?模型遷移學習
- 在深度學習訓練過程中如何設定資料增強?深度學習
- 如何讓訓練神經網路不無聊?試試遷移學習和多工學習神經網路遷移學習
- 如何基於元學習方法進行有效的模型訓練?四篇論文詳細剖析元模型的學習原理和過程模型
- 學習Linux開發課程需要培訓嗎Linux
- DeepMind用元強化學習框架探索多巴胺在學習過程中的作用強化學習框架
- AI閘道器在應用整合中起到什麼作用?AI
- 視覺語言模型的高效遷移學習視覺模型遷移學習
- 企業資訊系統在遷移過程中,資料遷移要注意什麼?
- 張馳課堂:六西格瑪培訓之過程能力分析的作用
- 如何用 Python 和深度遷移學習做文字分類?Python遷移學習文字分類
- 如何建立物件,在web前端開發起到什麼作用物件Web前端
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 使用Mobilenet和Keras進行遷移學習!Keras遷移學習
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- 如何學習Java? 在學習Java的過程中需要掌握哪些技能?Java
- 遷移學習(Transfer Learning)遷移學習
- 最新最簡易的遷移學習方法,人員再識別新模型 | AI一週學術遷移學習模型AI
- 參加UI設計培訓如何高效學習?UI
- 利用Tensorboard視覺化模型、資料和訓練過程ORB視覺化模型
- 快速學習AI人工智慧請搭上廣州牽引力教育Python專業培訓的快車AI人工智慧Python
- 記一次 GitLab 的遷移過程Gitlab
- java培訓要學習多久?Java
- 中國工程院院士高文:從大資料科學到人工智慧的遷移過程大資料資料科學人工智慧
- 不想參加長沙Java培訓,如何學好Java找工作Java
- 那些IT培訓過的人怎麼樣了?月薪都上萬嗎?
- 在培訓機構學習網路安全需要多少錢?
- FPGA課程培訓FPGA
- 如何快速學習好Python呢?老男孩Python培訓Python
- 一張圖說清AI、機器學習和深度學習在企業中作用 - 知乎AI機器學習深度學習
- 那些參加IT培訓的人怎麼樣了?工作月薪都上萬嗎?
- 教育培訓app開發過程中有哪些難點?應如何解決?APP
- 參加UI培訓課程學什麼UI
- Python開發培訓課程都學哪些Python
- java培訓分享:java培訓架構師學習線路圖Java架構
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 【火爐煉AI】深度學習006-移花接木-用Keras遷移學習提升效能AI深度學習Keras遷移學習