技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
5
0
AI & Data
AI白話文運動系列之「A!給我那張Image!」
系列 第
5
篇
現代問題就要用現代方法來處理--AI中的線性代數(以MLP為例)
15th鐵人賽
理工哈士奇嗷嗚嗷嗚
2023-09-20 21:09:49
565 瀏覽
分享至
前言
前幾天著重在微積分(梯度下降法)與任務目標最佳化方法的討論,今天讓我們正式踏入AI模型的世界,看看一個簡單的AI模型會長甚麼樣子。
先備知識
高中線性代數(至少需要知道向量、矩陣計算等概念)
看完今天的內容你可能會知道......
甚麼是神經元?
多層感知器是甚麼結構?
人腦中的神經元與AI模型中的神經元差在哪裡?
一、線性代數入門
國中的時候我們學過數線,它是一條有方向的線,這個方向是由線上任兩點決定的,到了高中,我們把這樣的概念延伸,認識了向量,它跟一般的點差在它除了「長度」以外,還需要具有「方向」,所以在圖上我們習慣用箭號來表示。向量與一般的點一樣可以做不同的運算,也可以「被」運算,也就是通過矩陣來改變向量。
在數學上我們會用這樣的方式表示向量與矩陣的運算::
,其中
,
,以及
,分別代表裡面有所元素都是實數的矩陣與向量。
二、AI模型的基本單位--神經元
人體由許多各司其職的單位構成,讓你可以運動的是肌肉,負責思考下指令的是腦,可是,我今天要如何將腦部的訊號傳遞到所需要的部位呢?這就需要利用神經元來幫忙,下圖是一個神經元的構造
中間一長條的部分稱為軸突,用來傳遞訊號,而左邊的樹狀結構稱為樹突,負責接收訊號,最後,由最右方的樹狀結構:突觸,負責將訊號再往下傳遞。整個過程看似簡單,卻有一些地方值得深思,首先,這個訊號是甚麼東西?訊號一直來的話,神經元就會不斷地傳遞訊號嗎?
先來說說第一個問題,所謂的「訊號」,其實也可以想成是某種「刺激」,這些刺激讓細胞的表面電位產生變化,因此就有了訊號,就像我們使用的電器一樣,當有0跟1(有或無)的差異出現時,就可以利用這差異產生一連串有意義的訊號。
接著來看第二個問題,實際上,並不是所有傳遞到神經元的訊號都會往下傳,我們的神經元跟腦是非常聰明的,可塑性也非常高,從我們開始「學習」之後(從你出生之後無時無刻都在學習),每接觸一次新的資訊都是在重新塑造這些神經元,因此這些神經元會根據不同的訊號產生不同的反應,同時,神經元還會「累積」訊號,每個神經元都會判斷這次的訊號強度夠不夠,只有當訊號強度夠高的時候才會往下傳遞,不夠的話就先記起來,累積到強度夠高為止。
對這部分感興趣的話可以參考:
https://zh.wikipedia.org/zh-tw/%E7%A5%9E%E7%B6%93%E5%85%83
看完基本上可以更清楚神經元的運作方式。
一開始探索人工智慧的時候,就像人類在其他領域常做的一樣,先找性能類似的東西,嘗試模仿與改造(飛機與鳥、潛水艇與魚等等),在AI這個領域,被模仿的就是上面介紹到的神經元,也就是下面所看到:
藍色圓形表示一個神經元,左方的箭頭表示輸入訊號,右方箭頭表示輸出訊號,中間的運算符號分別代表:「累加」與「激發」,也就是前面提到的訊號的累積以及判斷該訊號是否往下傳遞。函數
f
也被稱為「激勵函數(Activation Function)」。
如果用數學來描述這樣的過程就是:
,其中
表示輸入訊號,
) 表示對應訊號的強弱,
表示一個修正量(bias),修正量與訊號強弱其實也就是我們之前不斷在討論的「參數」,畢竟這是整個系統當中唯一可以由人為控制的部分,輸入訊號是給定好的,不能動,而輸出訊號又取決於輸入訊號與不同參數的運算結果,所以這也是為甚麼我們會花很多時間討論「參數」以及參數要怎麼更新(梯度下降法),可以說這就是整個AI模型的靈魂。
順帶一提,如果覺得上面的數學形式很熟悉的話,恭喜你!這個表達式可以利用上面線性代數的方式表示成矩陣跟向量的運算!
三、最基礎的AI模型--多層感知器MLP
就像人腦一樣,我們的AI模型也不會只有一個簡單的神經元,所以,最簡單的方式就是把這些神經元全部組合在一起,用來模擬人腦:
這樣的結構我們稱之為多層感知器Multilayer Perceptron(MLP),他由好幾個不同的「層(Layer)」每個層裡面又包含了許多的神經元,線圖只是很簡單的範例,可以按照這個邏輯擴大成更大的模型。
補充:在AI模型中,我們有時候會使用隱藏層(Hidden layer)來表示除了出入與輸出層以外的所有層,以上圖僅有的三層為例,其中最左邊的代表輸入層,最右邊的代表輸出層,中間的便是隱藏層。
如果利用上面討論過的線性代數的概念,結合單個神經元的運算的話,我們可以把這樣一個模型的每個步驟寫成這樣:
有了這樣表達式之後,我們可以嘗試利用梯度下降法推導看看每個參數要怎麼更新,具體的步驟會留到明天跟實作的部分一起解答。
其實最開始出現的是單層感知器,也就是僅有一層的模型,不過那個可以看成是MLP的特例,所以我並沒有特別拿出來討論,對這些內容與歷史演進有興趣的可以參考:
https://zh.wikipedia.org/zh-tw/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
四、總結
在今天的內容中,我們算是正式進入AI模型的世界了,後面我們會接續這個步調往下討論一些常見的模型架構,也會看看不同的使用情境應該要用怎樣的模型架構,不同架構有甚麼優缺點等等的。如果可以的話,最好能利用今天的內容,結合先前討論過的梯度下降法複習一次,在看到明天的內容之前,可以先看看自己理解到哪裡了,這樣也有助於學習後續的內容。
留言
追蹤
檢舉
上一篇
理想跟現實不一樣有甚麼損失?番外篇(客製化AI訓練目標--正則化器)
下一篇
番外篇—AI怎麼學?梯度下降法與反向傳播
系列文
AI白話文運動系列之「A!給我那張Image!」
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)前篇
27
AI研究趨勢討論(一)--模型壓縮與加速(Model Compression and Acceleration)後篇
28
AI研究趨勢討論(二)--遷移學習、領域自適應與領域泛化
29
AI研究趨勢討論(三)--強強聯手打造新世代里程碑(CNN與ViT結合)
30
AI研究趨勢討論(四)--AI圖像生成(以Diffusion Model為例)
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22205
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
請問內網IP如何轉外網IP?
如何寫公式才能利用excel 觸發一個數據時傳送一個訊息給 自已的line呢?有沒有可以用其它方式,來取代line notify 的方法,因為line 開始收費
新手學習編程,哪種編程語言好?
防火牆與DNS請教
硬盤只能在舊電腦上讀到 在新電腦上顯示不明硬盤
FORTI 防火牆使用 RADIUS 認證問題請教
寫好了一個程式,想問打包成EXE的問題
OBS使用問題
GPO密碼原則無法套用到domain controller
RAG 如何做得好?
熱門回答
請問內網IP如何轉外網IP?
這樣的物件設計好嗎?
防火牆與DNS請教
新手學習編程,哪種編程語言好?
Outlook 會跳出"插入智慧卡"(有安裝HiCOS卡片管理工具)
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day34]
每日一篇學習筆記 直到我做完專題 :( [Day35]
每日一篇學習筆記 直到我做完專題 :( [Day36]
每日一篇學習筆記 直到我做完專題 :( [Day37]
每日一篇學習筆記 直到我做完專題 :( [Day38]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}