數(shù)學(xué)細(xì)節(jié)都實(shí)時(shí)畫了出來(lái))
Softmax 和反向傳播太難懂wevi 把每個(gè)數(shù)學(xué)細(xì)節(jié)都實(shí)時(shí)畫了出來(lái)【免費(fèi)下載鏈接】weviWord Embedding Visual Inspector項(xiàng)目地址: https://gitcode.com/gh_mirrors/we/wevi還在對(duì)著 Softmax 公式和反向傳播推導(dǎo)發(fā)呆weviWord Embedding Visual Inspector是一款開(kāi)源的詞向量可視化教學(xué)工具能把 word2vec 訓(xùn)練中的每個(gè)數(shù)學(xué)細(xì)節(jié)——前向傳播、Softmax 概率分布、反向傳播梯度、參數(shù)更新——實(shí)時(shí)畫成神經(jīng)網(wǎng)絡(luò)圖、權(quán)重?zé)崃D和 PCA 散點(diǎn)圖讓新手像看直播一樣看懂深度學(xué)習(xí)。這篇文章就帶你快速上手 wevi徹底告別公式看得懂、代碼看不懂的尷尬。學(xué)習(xí)詞向量時(shí)你最頭疼的 3 個(gè)瞬間 背過(guò) word2vec 的同學(xué)大概都經(jīng)歷過(guò)下面這些崩潰時(shí)刻前向傳播輸入詞向量到底是怎么一步步變成 Softmax 輸出的概率分布的反向傳播誤差項(xiàng)是如何倒著傳回每一層、又怎么變成每個(gè)權(quán)重的梯度的梯度更新學(xué)習(xí)率、梯度、權(quán)重三者之間每一步到底發(fā)生了什么傳統(tǒng)教材只給你公式和靜態(tài)插圖中間過(guò)程全靠腦補(bǔ)。而 wevi 的出發(fā)點(diǎn)很簡(jiǎn)單把腦補(bǔ)變成眼見(jiàn)為實(shí)讓 Softmax 和反向傳播不再是黑盒。什么是 wevi一款把 word2vec 訓(xùn)練過(guò)程直播出來(lái)的詞向量可視化工具wevi 全稱Word Embedding Visual Inspector詞向量可視化檢查器是一個(gè)零依賴安裝的純前端教學(xué)項(xiàng)目打開(kāi)瀏覽器就能運(yùn)行。它的核心特點(diǎn)特點(diǎn)說(shuō)明 零安裝純 HTML JavaScriptD3.js實(shí)現(xiàn)無(wú)需服務(wù)器 高交互每一步訓(xùn)練都可暫停、單步前進(jìn)或批量執(zhí)行? 三重視圖神經(jīng)網(wǎng)絡(luò)圖、權(quán)重矩陣熱力圖、PCA 詞向量散點(diǎn)圖 雙模式同時(shí)支持CBOW和Skip-gram兩種經(jīng)典訓(xùn)練模式 可復(fù)現(xiàn)支持自定義訓(xùn)練數(shù)據(jù)、隱藏層大小、學(xué)習(xí)率和隨機(jī)種子頁(yè)面布局非常簡(jiǎn)單清晰上方左側(cè)是控制面板右側(cè)是神經(jīng)網(wǎng)絡(luò)圖下方左側(cè)是權(quán)重矩陣熱力圖右側(cè)是 PCA 降維后的詞向量散點(diǎn)圖對(duì)應(yīng)代碼見(jiàn) index.html 與 css/wevi.css。wevi 三大可視化面板一次看懂神經(jīng)網(wǎng)絡(luò)訓(xùn)練全過(guò)程 ① 神經(jīng)網(wǎng)絡(luò)圖前向傳播與 Softmax 的實(shí)時(shí)演算中間的神經(jīng)元網(wǎng)絡(luò)圖會(huì)畫出輸入層 → 隱藏層 → 輸出層的完整結(jié)構(gòu)輸入詞、目標(biāo)詞分別用紅色箭頭標(biāo)注。每點(diǎn)擊一次Next你就能看到激活值像水流一樣沿連線傳播輸入層把值送入隱藏層隱藏層加權(quán)求和后在輸出層經(jīng)過(guò)Softmax變成一組和為 1 的概率分布。神經(jīng)元和連線的顏色深淺實(shí)時(shí)對(duì)應(yīng)數(shù)值大小——概率高的詞會(huì)亮起來(lái)。② 權(quán)重矩陣熱力圖反向傳播與梯度更新的溫度計(jì) ?底部左側(cè)把輸入向量和輸出向量畫成兩張熱力圖每個(gè)格子的顏色代表一個(gè)權(quán)重的大小。當(dāng)執(zhí)行反向傳播時(shí)所有被更新過(guò)的權(quán)重會(huì)立刻變色訓(xùn)練前后對(duì)比一目了然。你甚至能觀察到越是相關(guān)的詞比如 drink 和 juice對(duì)應(yīng)權(quán)重收斂得越快。③ 向量散點(diǎn)圖PCA 降維后的詞向量聚類訓(xùn)練過(guò)程中可以隨時(shí)點(diǎn)擊PCA按鈕把高維詞向量降到二維平面。你會(huì)親眼看到語(yǔ)義相近的詞逐漸聚到一起、形成詞簇——這正是詞向量最神奇的地方也是 wevi 最值得玩味的可視化效果降維算法實(shí)現(xiàn)在 js/pca.js。3 分鐘快速上手 wevi詞向量可視化的零基礎(chǔ)玩法整個(gè)上手過(guò)程只需要三步git clone https://gitcode.com/gh_mirrors/we/wevi cd wevi # 直接用 Chrome 打開(kāi) index.html 即可無(wú)需安裝任何依賴打開(kāi)頁(yè)面后按下面的步驟操作在Presets下拉框選擇一個(gè)內(nèi)置數(shù)據(jù)集比如 Fruit and juice點(diǎn)擊Update and Restart初始化網(wǎng)絡(luò)點(diǎn)擊Next單步觀察一次完整的前向傳播 反向傳播或直接點(diǎn)擊20 / 100 / 500批量訓(xùn)練觀察權(quán)重?zé)崃D和散點(diǎn)圖的快速演變隨時(shí)點(diǎn)擊PCA刷新詞向量降維視圖??刂泼姘暹€支持直接編輯 JSON 配置隱藏層大小、隨機(jī)種子、學(xué)習(xí)率和訓(xùn)練數(shù)據(jù)文本改完點(diǎn)Update Learning Rate即可生效方便做各種對(duì)照實(shí)驗(yàn)交互邏輯見(jiàn) js/toyw2v.js。Softmax 可視化原理前向傳播的每一步都被畫了出來(lái) 很多同學(xué)卡在 Softmax是因?yàn)橹挥涀×斯絽s看不到輸入到輸出的完整鏈條。在 wevi 中前向傳播被拆解成了三個(gè)清晰步驟實(shí)現(xiàn)見(jiàn) js/vector_math.js輸入層到隱藏層把激活的上下文詞向量取平均得到隱藏層值隱藏層到輸出層每個(gè)輸出神經(jīng)元的凈輸入 權(quán)重與隱藏層值的加權(quán)和Softmax 歸一化對(duì)所有凈輸入取指數(shù)、求和作為分母再逐項(xiàng)相除得到概率分布核心代碼在 js/vector_math.js。在神經(jīng)網(wǎng)絡(luò)圖上你可以一步步看著凈輸入變成指數(shù)、再變成概率親眼確認(rèn)為什么 Softmax 的輸出總和恒等于 1——這個(gè)困擾無(wú)數(shù)新手的知識(shí)點(diǎn)看一次動(dòng)態(tài)演示就徹底通了。反向傳播可視化誤差與梯度不再黑盒 反向傳播之所以勸退是因?yàn)檎`差在層與層之間傳導(dǎo)時(shí)太抽象。wevi 的做法是把每個(gè)中間量都暴露出來(lái)輸出層誤差 預(yù)測(cè)概率 ? 真實(shí)標(biāo)簽one-hot輸出權(quán)重梯度 誤差 × 隱藏層值隱藏層誤差 誤差沿權(quán)重反向累加輸入權(quán)重梯度 隱藏層誤差 / 參與激活的上下文詞數(shù)CBOW 取平均。以上邏輯對(duì)應(yīng) js/vector_math.js 的backpropagate()函數(shù)而每次Next之后的權(quán)重更新則調(diào)用 js/vector_math.js 的apply_gradient()即權(quán)重 - 學(xué)習(xí)率 × 梯度。配合熱力圖的變化你能直觀地看到梯度越大權(quán)重變化越劇烈顏色翻轉(zhuǎn)越明顯。內(nèi)置數(shù)據(jù)集玩轉(zhuǎn)實(shí)驗(yàn)從水果與果汁到國(guó)王與王后 wevi 內(nèi)置了 8 組精心設(shè)計(jì)的數(shù)據(jù)集見(jiàn) js/toyw2v.js每組都對(duì)應(yīng)一個(gè)經(jīng)典的教學(xué)場(chǎng)景數(shù)據(jù)集用途值得觀察的現(xiàn)象Fruit and juice入門首選drink/ juice 等詞快速聚成詞簇Fruit and juice (CBOW)理解上下文取平均多上下文詞如何共同激活隱藏層Fruit and juice (Skip-gram)對(duì)比兩種模式訓(xùn)練方式的差異對(duì)結(jié)果的影響Self loop / Directed loop理解圖結(jié)構(gòu)數(shù)據(jù)自環(huán)、有向環(huán)對(duì)詞向量的塑造King and queen經(jīng)典語(yǔ)義關(guān)系king?man ≈ queen?woman 的雛形建議先用 Fruit and juice 走一遍完整流程再切換到 King and queen 感受語(yǔ)義關(guān)系的形成最后把學(xué)習(xí)率從 0.2 調(diào)到 1.0觀察訓(xùn)練是否發(fā)散——這就是對(duì)學(xué)習(xí)率最直觀的一課。用 wevi 高效學(xué)習(xí)詞向量的 4 條建議 先看整體再摳細(xì)節(jié)先批量訓(xùn)練 500 步看散點(diǎn)圖聚類再單步回放理解內(nèi)部機(jī)制改參數(shù)做對(duì)照實(shí)驗(yàn)分別調(diào)整學(xué)習(xí)率、隱藏層大小和隨機(jī)種子記錄結(jié)果差異對(duì)比 CBOW 與 Skip-gram同一份數(shù)據(jù)跑兩種模式體會(huì)各自的訓(xùn)練邏輯動(dòng)手造數(shù)據(jù)把自己設(shè)計(jì)的詞對(duì)填入訓(xùn)練數(shù)據(jù)框驗(yàn)證你的直覺(jué)。結(jié)語(yǔ)wevi 最大的價(jià)值是把 Softmax 和反向傳播從需要背的公式變成了可以玩的過(guò)程。無(wú)論你是剛接觸 NLP 的新手還是準(zhǔn)備給學(xué)生講詞向量的老師都值得花十分鐘打開(kāi)它親眼看一次神經(jīng)網(wǎng)絡(luò)訓(xùn)練的完整直播。公式也許還會(huì)忘但你在 wevi 里看到的那些顏色流動(dòng)的畫面會(huì)幫你記住這些數(shù)學(xué)概念真正的意義?!久赓M(fèi)下載鏈接】weviWord Embedding Visual Inspector項(xiàng)目地址: https://gitcode.com/gh_mirrors/we/wevi創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考