Introduction of Neural Networks
Last updated
Last updated
想像我們為了解決上面這個 Non-linear classification
必須使用 sigmoid function 搭配很多的 parameters 和新 features
像上面用了兩個 features 就產生了可能 "Overfitting" 的 hypothesis
當我們有更多的 features 時,新 features 的數量將以指數成長
當我們要用機器學習來辨識圖片時 (舉例: 車子)
我們將整張圖片的每一個 pixel 截取出來,並給予 intensity (0-255 灰階)
我們將不同圖片的 pixel 資訊 plot 在一個二維空間中,用以分辨該 pixel 為多少時是否為車子
這種時候就可以用到 non-linear hypothesis
假設我們只要辨識 50 * 50 pixel 的小圖片
那我們將會用到 2500 的 features (7500 if RGB)
而產生的新 features 將會達到約 3 billion features
一開始 neural networks 是為了試圖模擬人的大腦運作
大腦可以讓我們做幾乎任何事情,聽、說、讀、寫、看、觸 ...
而其實大腦只花了一種 learning algorithm 就做到這些事情
科學家用一種 Neural Rewiring 的實驗發現了這件事情
他們將動物接收聽覺的 Auditory Cortex REWIRE 接收視覺
他們發現 Auditory Cortex 變得能夠接收到視覺
還有許多將 Sensor 與大腦結合的發明
用舌頭看東西
人體聲納
Haptic belt
這些東西告訴我們
其實大腦只用了一種 algorithm 來教導身體做事
而我們的最終目標就是找到這個 learning algorithm 的 hypothesis
並且把他運用在電腦上
Neuron 作為 neural networks 的最小單位,模擬人類的神經元
透過 input wires (dendrites) 接收多個 input
並從 output wires (axons) 將處理過的訊息傳送出去
當有多層 layer 時,我們稱第一層為 input layer 最後一層為 output layer
而中間所有的層統稱為 hidden layers
我們給予上圖 hidden layer 的 nodes 一個名字: Activation units
而這些 activation units 是經由 input 和 Matrix of Weights 作用 output 過來的
我們可以推出 matrix of weight 的 dimension :
例如 layer 1 有 2 個 nodes 而 layer 2 有 4 個 nodes
也就是說在第 j 個 layer 的第 k 個 node,他的 z 就會是
總結來說,z 和 a 的公式如下
我們可以看到其實將最後一個 hidden layer 計算出 output layer 的過程
等同於將最後一個 hidden layer 的每個 activation units 作為 features 執行 logistic regression
而這些 activation units 其實又都是上一層的 nodes 執行 logistic regression 而來
所以這個方法稱作 Forward Propogation
意思是每一層都將計算出更有深度意義 (complex) 的 Hypothesis 至下一層
產出最好的 Hypothesis function
我們將使用 XNOR (NOT XOR) 的例子來解釋為何 neural networks 為何可以成功
首先我們先來看 AND, OR 和 NOR 在 neural networks 的實作 :
我們將 activation function 設成以下狀態
我們知道 sigmoid function 在大於 4.6 時差不多為 1
在小於 4.6 時差不多為 0
所以我們帶進去得到
首先 Negation 的 hypothesis 產生如下
而 NOR 其實就是 (NOT x1) AND (NOT x2)
而 OR 則是在最後運算
現在若 Neural networks 要一次處理多種問題
例如圖片辨識需要一次辨識出 Pedestrian, Car, Motorcycle, Truck
我們會將 y 和 hypothesis 以 vector 方式輸出
其中 input 的是 features
而 output 就是 hypothesis function
我們會在 input 再加上一個 作為 bias unit 永遠為 1
而處理這些 input 的為 sigmoid (logistic) activation function
而在 neural networks 中 這個 parameters 又稱作 "weight"
舉個例子來說
就是由 3x4 的 乘上 4x1 的 input 向量而來
而 hypothesis 就是
若 layer 共有 個 units
且 layer 共有 個 units
那麼 的 dimension 為
那麼 的 dimension 為 4 x 3
現在我們將每個 g function 內的 和 改為矩陣運算產生的
現在我們進一步將 input 向量作為 ,所以
然後 必須要補個 才能繼續
其中的 n + 1 為
所以這個 可以說是 AND 的 best hypothesis
這個 Neural network 產生的 也可以說是 OR 的 best hypothesis
現在我們有了三種 for AND, OR, NOR
我們將 AND 和 NOR 的 分別擺到第一層運算
當 training sets 為 時
若是路人,則
若是車子,則
以此類推 ... 試圖讓
x1
x2
XNOR
0
0
1
0
1
0
1
0
0
1
1
1
x1
x2
0
0
0
1
1
0
1
1
x1
x2
0
0
0
1
1
0
1
1
x1
0
1
x1
x2
0
0
0
1
1
0
1
1