人腦的運作
NN是模仿人腦運作的inspired出來的演算法,所以NN適合用在人腦擅長的tasks,例如辨識物體。這邊skip 腦內神經元運作,太深奧了 XD
從最簡單的Neurons開始:Linear Neurons
這就是perceptron。
一個neuron的output y取決於所有連接神經元的input value xi,乘上weights,然後加上一個bias term。這在caltech的第一堂課有清楚講到。
這邊說linear的意思是,weighted sum y^沒經過再次的mapping,相當於經過identity function mapping,所以y和y^是線性關係:
Binary threshold neurons
就是把linear neurons output丟進去cutoff functions (+1 or -1),這動機來自boolean algebra:以下兩種表示法都可以:
Rectified Linear Neurons
這是把cutoff functions改成non-linear functions,例如以下:這邊nonlinear定義仍是y和y^之間是否為線性關係:
Sigmoid Neurons
另一個常見nonlinear neuron example就是sigmoid neurons,也就是logistic regression。Stochastic binary neurons
這其實就是sigmoid neurons,但是把sigmoid function output值視為probability,因為sigmoid function輸出值介於0~1一個簡單的2-layer NN來辨識0~9數字
bottom input layer: 一個vector,裡面含有所有的input image intensitytop output layer: 就是數字分類,總共有10個neurons
每個neuron的weight vector當然跟input image vector一樣大小,所以視覺化的話會是一個灰階影像。
每個有"ink"的pixel (active pixel)可以對他認為的數字投票,learning演算法之後會講:
learning過程中,可以看到weight vector visualization變得像是每個數字的template (但不盡然):
這只是簡單的示範NN可能運作,不是一個好的數字辨識演算法。
沒有留言:
張貼留言