前面提到 CNN ,這邊補充一下 FC 跟 ANN 好了。
全連接層顧名思義,代表該層的每個神經元(Neuron)都會跟前一層的所有神經元享有連結,
全連接層通常都在神經網路的最後面,並且通常會有一到兩層,
全連接層 圖示
在全連結層做的動作是特徵擷取,到了這裡就是真正決定結果是甚麼的時候了,
上圖中的左邊每一個小框框可以想成是每一種特徵,而其中的數字則是這個特徵對某個結果的重要程度,稱之為權重,
例如 A 特徵對應到第一個格子, B 特徵對應第二個格子, A 對叉叉結果的權重為 0.9 , B 為 0.65 ,意思就是對於結果來說 A 的影響會比 B 還要大。
換個說法,全連結層就像在投票一樣,只不過每個人的票不等值,當今天 A 投給叉叉的話,叉叉會得到 0.9 票, B 投給叉叉,叉叉只會得 0.65 票,所以今天 A 投給叉叉比 B 投給叉叉對於結果影響還要大 (實際模型中不一定是如此計算)。
總結來說,全連結層就是最後的分類器,將前面所擷取出來的特徵,經過權重的計算之後,來辨識出這個所輸入的圖像到底該屬於哪一個分類。
那這些權重怎麼來的?這是因為 CNN 中有個反向傳播算法 (Backpropagation) 的技巧可以解決這個問題,
這也是為甚麼模型需要經過大量訓練的原因之一,當模型在進行訓練的時候,模型會慢慢調整自身的參數(權重)、特徵擷取,使得模型輸出的結果會較符合實際結果。
Softmax 函式一般都會被用在整個神經網路的最後一層上面,比方說全連接層。
Softmax 函式能將某層中的所有神經元裡頭的數字作正規化(Normalization):將它們全部壓縮到 0 到 1 之間的範圍,並讓它們的和等於 1。
Softmax 能將多個數字作正規化,讓它們的值為 1 。
為何呢?因為,
這兩個條件恰好是機率(Probability)的定義,Softmax 函式的運算結果可以讓我們將每個神經元的值解釋為對應分類(Class)的發生機率。
Artificial Neural Network(ANN) 是類神經網路當中的基礎元素,
以圖示來表達的會是下列這樣,
左邊的線條就是代表著各種資訊來源,接著對於哪幾個的信任程度到哪邊,
上面就給了幾%的信心程度,也就是權重值,然後加上雜訊,也就是 bias,
最後經過一個激勵函數(activation function),這就是結果了。
今天送上一首歌,光澤 - 空心
https://www.youtube.com/watch?v=QDmrDFydNg0&ab_channel=%E5%85%89%E6%BE%A4-Topic