分享

芬蘭國民AI-5.3-Advanced neural network techniques

 
先前學到了許多經常應用的工具,這部分延伸前面,有些有趣的變化,使我們能在深度學習中更加進階。
卷積神經網絡 Convolutional neural networks (CNNs)
在深度學習中,極成功的領域是圖片處理,不過,出現在前面章節那種簡單分類器還是有限制的,你會發現到,還是無法正確地分辨所有的笑臉。加入更多層一點的network和反向傳播(backpropagation)去知道多一點的權重(the weights),又有另外的問題產生:權重(the weights)的數量會變得很大,而且它需要的training data也會多到不易滿足正確性的要求,不太現實。
幸運的是,有一個非常簡潔的方法來處理weithgs數量很大的問題;一種特別的neural network或一種可以包含在 deep neural network中的特殊層(layer),又叫做convolutional layer,包含convolutional layer的network就叫做convolutional neural networks (CNNs)。它可以偵測出圖片特徵,像是明暗(或某個顏色)的點、邊,這些點和邊呈現的模式或方向會有很多種。以這些形式為基礎,可以偵測出更抽象的特徵,像是貓的耳朵、狗的鼻子、人的眼睛或是一個八角形的停止號誌。正常來說,要訓練出一個neural networks去偵測像素(pixels)是困難的,因為像素的特稱會以不同的位置、方向、大小去表現,即使以人眼判斷是相同的東西,移動中的物體或是攝影機的角度也會使pixel得出的數值有所不同。為了在不同情況下都能偵測出停止號誌,會需要巨量的training data,怕的是萬一資料量不足,這套network只在training data中能有效發揮。舉例來說,要能辨別一個停止號誌的右上部分,訓練資料中就必須包含同一個角度看到的圖片,不過,在CNNs中,在哪看就比較沒有關係。
為什麼CNNs辦得到?
CNNs的手法是降低對training data的資料量需求,原本需要這麼大量的資料,是因為希望training data能夠盡量涵蓋各種情況。這個手法基本上是用同樣一組input weight,使所有的neuron都能主動地變成相同的模式,即使是不同的input pixel。以一組能夠啟動來辨認貓耳尖的neuron為例,當輸入是一張貓的照片,有2個neuron活動起來,一個是左邊一個是右邊,也可以從讓nuron的input pixel從較小或較大的區域取得,因此不同的nuron可以用不同尺寸去找耳朵,因此我們能分辨一隻小貓的耳尖,即使訓練資料中只有大貓的照片。
典型來說,convolutional neurons會被放在一組network的底層layer,那裏有原始輸入的pixel。基本neuron通常會放在比較高的layer,這些是低layer的產出。底層layer常被訓練去用非監督式學習,非監督式學習不會預設任務,反而會用資料去找出weight,weight可以偵測出經常輸入的那些資料的特徵。因此,如果是動物的照片,典型的特徵是耳朵和鼻子,相對於建築物,建築物會有建築元素像是屋頂和窗戶等等。如果用許多種類的物品混成一個資料集,從底層layer得知的特徵就沒那麼通用。這是指預先備訓練的Convolutional(卷積)層可在不同的圖形辨識任務中,能夠重複使用。這格外重用是因為這使得取得無限多、未貼標籤的訓練資料變得簡單,而未貼標籤的圖片可以拿來訓練底層layer,而上層layer通常會被監督學習來訓練,像是反向傳播(backpropagation)。
Do neural networks dream of electric sheep? Generative adversarial networks (GANs)
從資料知道一neural network,可以用在預測。既然network的上層layer已經被監督的方式去執行在分類或預測風險,上層layer只對特定任務非常有用。被訓練過要用來分辨停止號誌的network,就不能拿來偵測手寫文字或貓。
最好的結果是用預先訓練的低層layer以及從中找到特徵。這能生出在低層layer活化一組neuron的圖片,看到這些被生成的圖片,我們可以看到 neural network似乎會想出一套特徵,有些人甚至會說network可「夢想」或「幻想」出圖片。
為了要能生成看起來更像真的貓、人臉和其他東西,現在在 Google Brain工作的Ian Goodfellow提出了一個把2個neural network結合的方法。這個想法是讓這兩個 neural network彼此競爭,其中一個用訓練資料生成的neural network,另一個neural network的任務,就是分辨訓練資料和真實圖片,稱為 the adversarial network,整個的系統為一個GANs(generative adversarial networks)。
這個系統是一次訓練兩個模型。訓練的開始,the adversarial model有一個簡單的任務,是分辨訓練資料和真實圖片,而這個任務,會把GAN訓練得越來越好,the adversarial model也會改善,這個循環直至做得到難以區分訓練資料和真實圖片。GAN不只是試著從訓練資料裡複製,只是複製就能打敗 the adversarial network未免也想得太簡單了,其實是,這個系統也被訓練來生成新的、看起來像很真的圖片。
Emma補充:就她啦!
https://www.cna.com.tw/news/firstnews/201912160283.aspx
分類:學習

評論
上一篇
  • 下一篇
  • 更多文章
    載入中... 沒有更多了