終于有人將機(jī)器學(xué)習(xí)中的重點(diǎn)做成了動(dòng)畫(huà) 原創(chuàng)
[SVM]手書(shū)動(dòng)畫(huà) ??
除了SVM,傳統(tǒng)機(jī)器學(xué)習(xí)中還有很多其它分類(lèi)、回歸和聚類(lèi)算法,例如邏輯回歸,決策樹(shù),隨機(jī)森林等集成學(xué)習(xí)方法;這里統(tǒng)稱(chēng)為模型,這些模型基本上可以通過(guò)明確的數(shù)學(xué)公式定義輸入數(shù)據(jù)與輸出結(jié)果之間的關(guān)系。
在深度學(xué)習(xí)興起之前,支持向量機(jī)(SVM)在機(jī)器學(xué)習(xí)領(lǐng)域占據(jù)主導(dǎo)地位。
這個(gè)動(dòng)畫(huà)比較了線性SVM和RBF SVM。
[1] 給定:
xi: 六個(gè)訓(xùn)練向量(藍(lán)色行 ??)
yi: 標(biāo)簽
使用xi和yi,我們學(xué)習(xí)得到ai和b(紅色邊框):
ai: 每個(gè)訓(xùn)練向量i的系數(shù)。
,定義了決策邊界
,被忽略
b: 偏置(決策邊界應(yīng)該移動(dòng)多少)
x'j: 兩個(gè)測(cè)試向量(黃色列 ??)
(為了簡(jiǎn)化手工計(jì)算,訓(xùn)練和測(cè)試向量沒(méi)有進(jìn)行歸一化。)
~ 線性SVM ~
?? 核矩陣 (K)[2]-[3]
[2] 測(cè)試向量1
計(jì)算測(cè)試向量 ?? 與每個(gè)訓(xùn)練向量 ?? 的點(diǎn)積
點(diǎn)積近似兩個(gè)向量之間的"余弦相似度"
輸出: K的第1列
[3] 測(cè)試向量2
類(lèi)似于 [2]
輸出: K的第2列
?? 決策邊界 [4]-[6]
[4] 無(wú)符號(hào)系數(shù) → 有符號(hào)權(quán)重
將每個(gè)系數(shù)與相應(yīng)的標(biāo)簽相乘
第2個(gè)訓(xùn)練向量不是支持向量,因?yàn)樗南禂?shù)為0。
[5] 加權(quán)組合
將權(quán)重和偏置與K相乘
輸出: 到?jīng)Q策邊界的"有符號(hào)"距離
...
X'1: (2)*13+0+(1)*12+(-1)*15+(1)*19+(-1)*27+(2) = 17
X'2: (2)*2+0+(1)*3+(-1)*4+(1)*8+(-1)*8+(2) = 5
...
[6] 分類(lèi)
取符號(hào)
...
X'1: 17 > 0 → 正 +
X'2: 5 > 0 → 正 +
...
~ RBF SVM ~
給定:
ai: 學(xué)習(xí)得到的系數(shù)
b: 學(xué)習(xí)得到的偏置
?? 核矩陣 (K)
[7]-[15]
測(cè)試向量 (X'1) ?? L2距離 ?? [7]-[9]
[7] 平方差
... i=1: (1-2)^2=1, (2-4)^2=4,(1-3)^2=4 ...
[8] 求和
[9] 平方根
[10] 負(fù)縮放
乘以-1: 注意L2是一個(gè)距離度量。取負(fù)將距離轉(zhuǎn)換為相似度。
乘以gamma γ: 目的是控制每個(gè)訓(xùn)練樣本的影響力。小的gamma意味著每個(gè)訓(xùn)練樣本對(duì)決策邊界的拉力較小,resulting in更平滑的決策邊界。
結(jié)果是"負(fù)縮放的L2"
[11] 求指數(shù)
以e為底,"負(fù)縮放的L2"為指數(shù)
使用提供的表格查找e^的值
輸出: K的第1列
測(cè)試向量2 (X'2) ?? L2距離 ?? [12]-[14]
[12] 平方差
[13] 求和
[14] 平方根
[15] 負(fù)縮放
[16] 求指數(shù)
輸出: K的第2列
?? 決策邊界 [17]-[19]
[17] 無(wú)符號(hào)系數(shù) → 有符號(hào)權(quán)重
[18] 加權(quán)組合
...
X'1: (20)*0.7+(-10)*0.8+(10)*0.9+(-10)*0.7+0+(-10)*0.9+(-1) = -2
X'2: (20)*0.9+(-10)*0.7+(10)*0.8+(-10)*0.8+0+(-10)*0.9+(-1) = 1
...
[19] 分類(lèi)
...
X'1: -2 < 0 → -
X'2: 1 > 0 → +
...
[反向傳播] 手書(shū)動(dòng)畫(huà)??
有了模型,接下就需要通過(guò)優(yōu)化算法求模型中的參數(shù),也就是數(shù)學(xué)公式中的未知量。
[1] 前向傳播
? 給定一個(gè)三層的多層感知器,輸入向量為X,預(yù)測(cè)結(jié)果為Y^{Pred} = [0.5, 0.5, 0],真實(shí)標(biāo)簽為Y^{Target} = [0, 1, 0]。
[2] 反向傳播
? 添加單元格以存放我們的計(jì)算結(jié)果(梯度信息)。
[3] 第三層 - Softmax(藍(lán)色)
? 使用化簡(jiǎn)后的公式直接計(jì)算 ?L / ?z3:Y^{Pred} - Y^{Target} = [0.5, -0.5, 0]。
? 這個(gè)化簡(jiǎn)后的公式得益于Softmax和交叉熵?fù)p失的聯(lián)合使用。
[4] 第三層 - 權(quán)重(橙色)和偏置(黑色)
? 通過(guò)將 ?L / ?z3 和 [ a2 | 1 ] 相乘,計(jì)算 ?L / ?W3 和 ?L / ?b3。
[5] 第二層 - 激活(綠色)
? 通過(guò)將 ?L / ?z3 和 W3 相乘,計(jì)算 ?L / ?a2。
[6] 第二層 - ReLU(藍(lán)色)
? 通過(guò)將 ?L / ?a2 乘以1(對(duì)正值)或0(對(duì)負(fù)值),計(jì)算 ?L / ?z2。
[7] 第二層 - 權(quán)重(橙色)和偏置(黑色)
? 通過(guò)將 ?L / ?z2 和 [ a1 | 1 ] 相乘,計(jì)算 ?L / ?W2 和 ?L / ?b2。
[8] 第一層 - 激活(綠色)
? 通過(guò)將 ?L / ?z2 和 W2 相乘,計(jì)算 ?L / ?a1。
[9] 第一層 - ReLU(藍(lán)色)
? 通過(guò)將 ?L / ?a1 乘以1(對(duì)正值)或0(對(duì)負(fù)值),計(jì)算 ?L / ?z1。
[10] 第一層 - 權(quán)重(橙色)和偏置(黑色)
? 通過(guò)將 ?L / ?z1 和 [ x | 1 ] 相乘,計(jì)算 ?L / ?W1 和 ?L / ?b1。
[11] 梯度下降
? 更新權(quán)重和偏置(通常在這里應(yīng)用學(xué)習(xí)率)。
?? 矩陣乘法是關(guān)鍵:正如在前向傳播中一樣,反向傳播也主要是矩陣乘法。你完全可以像我在這個(gè)練習(xí)中演示的那樣手動(dòng)計(jì)算,盡管速度慢且不太完美。這就是為什么GPU高效矩陣乘法能力在深度學(xué)習(xí)中扮演重要角色的原因,這也是為什么NVIDIA的估值現(xiàn)在接近1萬(wàn)億美元的原因。
?? 梯度爆炸:我們可以看到即使在這個(gè)簡(jiǎn)單的三層網(wǎng)絡(luò)中,隨著反向傳播的進(jìn)行,梯度正在變大。這促使我們使用諸如ResNet中跳躍連接(skip connections)的方法來(lái)處理梯度爆炸(或消失)問(wèn)題。
[Multiple Layer Perceptron(MLP)]手書(shū)動(dòng)畫(huà)??
MLP更準(zhǔn)確地說(shuō)應(yīng)該屬于神經(jīng)網(wǎng)絡(luò)范疇,作為一種分類(lèi)、回歸模型,在很多地方都能看到它的身影,例如,目標(biāo)檢測(cè),Transformer等。
通過(guò)隱藏層和激活函數(shù)的使用,它能夠模擬任意復(fù)雜函數(shù),與傳統(tǒng)機(jī)器學(xué)習(xí)相比,它大大減小對(duì)經(jīng)驗(yàn)的依賴。
步驟說(shuō)明
給定一個(gè)代碼模板(左側(cè)),實(shí)現(xiàn)如圖所示的多層感知器(右側(cè))。
第一個(gè)線性層。
輸入特征大小為3。輸出特征大小為4。我們可以看到權(quán)重矩陣的大小是4×3。此外,還有一個(gè)額外的列用于偏置(bias = T)。激活函數(shù)是ReLU。我們可以看到ReLU對(duì)第一個(gè)特征的影響(-1 -> 0)。
第二個(gè)線性層。
輸入特征大小為4,與前一層的輸出特征大小相同。輸出特征大小為2。我們可以看到權(quán)重矩陣的大小是2×4。但是,沒(méi)有額外的列用于偏置(bias = F)。激活函數(shù)是ReLU。
最后的線性層。
輸入特征大小為2,與前一層的輸出特征大小相同。輸出特征大小為5。我們可以看到權(quán)重矩陣的大小是5×2。此外,有一個(gè)額外的列用于偏置(bias = T)。激活函數(shù)是Sigmoid。我們可以看到Sigmoid的效果,它是一個(gè)將原始分?jǐn)?shù)(3, 0, -2, 5, -5)非線性映射到0到1之間的概率值的函數(shù)。
[MLP vs KAN]手書(shū)動(dòng)畫(huà)??
Transformer中MLP占據(jù)了很大一部分參數(shù),為了提升Transformer計(jì)算效率,有人提出了KAN和MoE來(lái)作為MLP的一種替代。
本文轉(zhuǎn)載自公眾號(hào)人工智能大講堂
原文鏈接:??https://mp.weixin.qq.com/s/x-mlK_S_HIRquAxr8uNVXQ??
