分享

芬蘭國民AI-5.2 How neural networks are built


neural networks的概念與細節,會和我們先前在Ch4看過的linear and logistic regression頗為相同。
Weights and inputs在基本的人工神經元模型中,會有一組自適應參數(adaptive parameters),就像是linear and logistic regression中的weights。Weights與 inputs的乘積加總,就是  inputs的linear combination。
若一個神經元中,有6個inputs,也會需要有6個weights,通常我們還會需要截距,舉例來說,信用卡的付款方式通常至少有一個固定收費。(Emma OS:難怪常被說多少金額以上才能刷卡)
weights通常是用 linear or logistic regression,從資料中生出來,在討論更多細節之前,先介紹在一個神經元送出訊號之前,都做了些什麼?一旦linear combination在計算,神經元就開始運轉了,這時需要linear combination,把linear combination。放入激勵函數(activation function),典型的activation function會包含以下:
identity function:生成linear combination的結果
step function:遇到比0大的值送出pluses(ON),小於等於0的值什麼都不做(OFF)
sigmoid function:S函數,step function的另種版本
到目前為止的 activation function、identity function、神經元,和linear regression是一樣的。這就是為何identity function很少用於neural networks--根本本有什麼新的或有趣的東西嘛!
神經元如何被激活?真實的、生物的神經元,彼此之間會透過送出尖銳、有電的pluses(也可以叫做spikes),對外送出1或0的訊號,step function就是模仿這樣的行為,然而,人工neural networks傾向用激勵函數(activation function),一直生出連續數值活動,像是S函數(sigmoid function)。真實的神經元溝通可能和摩斯密碼很相似,藉著調整頻率或聲音來溝通。
神經元的產出,是由the linear combination與the activation function決定,被用來做預測或做出決定。舉例來說,在自駕車裡需要車子可辨認出停止號誌,利用車子前方的相機或鏡頭得到輸入,輸入是停止號誌的圖片像素,再由車裡的讀出圖片是停止號誌號,起動停止這個動作的指令並且做出停止這個動作,讓車子可以停在號誌之前。在使用的過程中,這套網絡也會一直學習生出越來越接近正確的產出,許多neural networks非常龐大,包含千億個weights,將他們最佳化是一項要求巨大運算能力的任務。
感知器(Perceptron)可稱為所有人工neural networks(artificial neural networks, ANNs)的母親。在二進制分類任務中,可用來當成一個簡單的分類器,感知器(Perceptron)收集到的資料可以生成weights,要學習這些weights的方法稱為感知器演算法( the Perceptron algorithm),由心理學家Frank Rosenblatt在1957年提出,概念上類似the nearest neighbor classifier,基本原則仍是要把訓練資料餵給network,每一個錯置都會導致weights的更新。
Putting neurons together: networks單個神經元太簡單,在實際應用上,不太容易能做到可信的決策或預測。為了讓neural networks的潛能能夠充分發揮,我們能以單個神經元的產出為其他神經元們的投入,其他神經元們的產出再拿來另外其他神經元們的投入,這樣的話,整個網絡的產出就可以被視為多個神經元們的子集合的總產出,這種子集就叫做 the output layer,藉著從資料裡學習,神經網絡會有不同的行為。
通常network是被許多layer組成,多層網絡的典型例子是the so-called multilayer perceptron。之前提到, Rosenblatt的感知器演算法可用來得到weights,對multilayer perceptron而言,在找出可行的解決方法之前,這個學習問題是更困難且花時間的,但最終在1980年代晚期,反向傳播算法(the backpropagation algorithm)使得這個領域再度興起,成為許多進階深度學習的解決方法的核心。
用一個相對簡單的neural network classifier,來想一個與 the MNIST digit recognition task很相似的任務,也就是如何把圖片分成兩組,分成叉叉和圈圈兩組,假設每個像素有著色的是1,白色的是0,每張圖片是5*5,有25個像素,即使目前的圖形是綠色或紫色的,但是分類器會忽略這個差異,只會管著色/白色的差異,每張圖片中25個像素就是分類器的投入,若要在更進一步辨認圖片,可提高像素。   
分類:學習

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