Dence Layer入門解說

Sharon Peng
9 min readJan 10, 2025

--

其實在幾年前也寫過類似的文章,現在回頭看,還真的是亂法無章,這次看到這麼優秀MIT 6.S191的影片後,下定決心,重寫一遍。以下說明皆是來自MIT 6.S191:Introduction to Deep Learning的上課筆記,以及理解思路。如有興趣的話,可以直接到Youtube觀看,得到第一手的資訊!

如果要開始說明深度學習的開始呢,不得不從「Perceptron(感知器)」這個概念開始。

感知器(The Perceptron)

感知器,讀者可以先簡單想像他是以前生物學過「神經元的概念」。我們會受到很多刺激,然後做出某個動作。而這個概念在電腦上也通用。只不過呈現的方法很令人頭痛(數學!!)。

下面的x1, x2, ..., xm 可以想成神經元所受到的外部刺激z則是先加總這些x1, x2, ..., xm後,再放到g function後,產生y,而y正是判斷該不該做出反應的角色

希望看到這邊,大家可以有種好…好像更懂一點perceptron的概念?
但老實說我們在「數學的部分」還是沒講清楚到底要怎麼做,因為在xy之間還有很多部分還沒說清楚,現在就要來好好介紹他們的計算方式。

感知器(Perceptron)的機制

下圖是整個perceptron整體運作的圖片(簡單的數學),接下來會依序介紹每一個項目所代表的意涵。

首先,讓我們來想像perceptron的概念可以用以下情境表示:(再次提醒Perceptron很像神經元,外界「輸入」各種刺激,該不該「輸出」做出反應

目標:「本日心情」
輸入:今天發生的事情
x1,x2,...,xm
輸出:「預測」心情好壞
y_hat

怎麼算?

今天發生好多事情哦~
x1: 吃到難吃的早餐
x2: 剛好趕上公車
xm: 小美跟我講了很白痴的笑話
最後的 y_hat則是用來「預測」今天的心情如何。

那中間的w代表什麼呢?

w1, w2, ... wm 可以代表影響我心情的程度大小,可以想成w有weight(權重)的概念。每件發生的事情(X)都會對應到一個影響程度大小(W)。假設10代表最開心,-10最生氣。
w1: -5 (吃到難吃的早餐使得我不開心)
w2: 4(趕上公車,Lucky~)
wm: 7(小美的笑話讓我笑到不行)

公式:x1*w1 + x2*w2 + x3*w3 + ... + xm+wm
*注意:「X乘W」,「今天發生的事情 x 乘上程度大小」

w0?

w0在裡面代表的是「偏差值(bias)」,可以想成是,其他浮動的指標。用剛才的例子來舉例,可以是:「突然在口袋發現500塊(w0大)」、「考試成績出來(w0小)」等等。

橘色Sigmation?

簡單,把今天的心情指數加總起來(x1*w1 + x2*w2 + x3*w3 + ... + xm+wm),另外加上Bias — w0 ,下面用「矩陣」來表示。

黃色裡面…包著線條??

黃色的這塊在這邊稱為Activation Function。而裡面的線條為sigmoid function。聽不懂沒關係,等等會詳細介紹~~

Activation Function(激活函數的簡單概念)

延續剛才的例子,我們可以想成是,如果只靠Sigmation把心情加總起來,「本日心情」很有可能就用「非常簡單的式子」算出快樂跟不快樂。就像是只要我今天喝了可樂(乘上10000000),加總出來的結果肯定好,因此心情就會很好。
但是但是!
人類的心情本來就很複雜,可能會有喝了可樂,但是不小心打翻,潑到衣服上又或是喝了沒氣泡的可樂等等的情緒,就像是腦筋急轉彎裡面的彩色球。因此如果能簡單的算出來,也太無趣了吧~

https://www.pinterest.com/pin/199002877261977654/

同樣的,這個黃色區塊(Activation Function)就是讓我們神經網絡有更豐富的特性,才出現的!

把剛剛算完的Sigmation(x1*w1 + x2*w2 + x3*w3 + ... + xm+wm)和w0 後,把他放到activation function(下圖的g function)中,就能夠產生新的「化學變化」!

而activation function一般來說可以分為兩種,linear和non-linear。

什麼是linear跟non-linear?

linear代表數學中線性的概念一條直線直接畫出來,沒什麼特別的模糊地帶,也就是說「本日心情」肯定有特殊的模式可以建立出來。
簡單明瞭,只要做了A,老闆肯定開心。

non-linear(非線性)可就不同了,需要有特定X以及特定Y才會是好心情。
複雜不透明,有可能今天因為天氣不好,所以做了A,老闆也不開心。

https://studymachinelearning.com/activation-functions-in-neural-network/

紫色,y_hat

預測結果的「答案」,(經過前經各種運算後 → 先加總,再進入激活函數(activation function)後所算出的答案)

範例:請參考下圖。
隨意輸入x1 = 0, x2 = 0,得到y_hat = 1,這個結果得到綠色(好心情)
若預測結果y < 0.5時,屬於藍色(壞心情)。
若預測結果y > 0.5時,屬於綠色(好心情)。
注意:此activation function為linear,為「什麼也不做的function」。

接下來,讓我們來看看Activation Function在神經網絡中的意義吧~~

激活函數(Activation Function)的重要性

激活函數最主要的目的就是把non-linear的概念,放到神經網絡裡面。

也可以想成讓神經網絡能有更豐富的特性。

範例!!

假設老闆給我們下方的圖片,然後希望我們可以建立一個神經網絡來「區隔」綠點和紅點,應該怎麼做呢?

source

方法一:從linear的角度出發,如果我們的「激活函數(Activation Function)只有linear」的話,假設在二維的情況下,神經網絡只能產生出「一條直線」,如下圖。完成不了老闆所交代的任務,馬上走人!

方法二:從non-linear的角度出發,因為是non-linear(非線性)允許出現很隨機的函式(function),也代表我在二維的空間中,可以隨意畫出任意的線條,不必是線性,很有機會可以完成老闆交代的任務,留下!

這邊簡單介紹幾個常見的Activation Function

  • Sigmoid
  • Relu
  • Tanh

每個Activation Function 都有它的特色。這邊不多做介紹

小結論(總共有三階段)

Dot product(X.W) + add bias(w0) + apply it on non-linear function

相信講完剛剛的東西,各位能略懂略懂Perceptron的概念吧。如果能完全理解的話,恭喜你們順便把基本的神經網絡給理解清楚了

神經網絡(Neural Network)

有了剛剛perceptron觀念後,接下來所述的觀念,也就只是把原本的觀念疊加更多次、更多層罷了。「網絡」一詞聽起來就很複雜對吧,在神經「網絡」中也同樣通用。

Dense Layer

當只要存在不只一個「神經元(z)」,我們就可以叫他是dense layer。

為何稱為Dense Layer?

因爲所有input都連到output,當數量一多,這些線看起來非常密集,因此就叫做dense了。

單層神經網絡(Single Layer Neural Network)

下面這張圖片,就會說是「單層」的神經網絡了。因為只有ㄧ層Hidden Layer。
注意:中間z1, z2, z3, z4的部分又稱為隱藏層(Hidden Layer)

深層神經網絡(Deep Neural Network):

當「隱藏層(Hidden Layer)」有非常多層時,稱為「深層神經網絡」。

希望看到這裡,對於神經網絡以及Perceptron的概念,有更一步的了解~~

終於講完了,希望能幫助到各位讀者~~
也謝謝各位讀者看我再度展現麻瓜說書的技能(本日已用盡)

那我們就下次再見囉~~

--

--

Sharon Peng
Sharon Peng

Responses (1)