這一節(jié)主要講梯度更新與BP算法。
-
我們將把所有的樣本的誤差求平均然后進(jìn)行更新的算法稱之為batch gradient descent。一次只更新一個(gè)樣本的算法稱之為stochastic gradient descent。
BGD
SGD -
它有三個(gè)好處, 一個(gè)是計(jì)算開銷小, 因?yàn)槲覀儾挥妹看味加?jì)算所有樣本然后進(jìn)行更新計(jì)算; 二是增加了隨機(jī)性, 因?yàn)槲覀儾磺宄绻恳淮胃碌脑捠欠襁x擇的點(diǎn)就是最優(yōu)的點(diǎn);三是它非常簡(jiǎn)單, 應(yīng)用起來也不麻煩。
benefit -
在movie rating的例子中, 就是計(jì)算user更movie之間的內(nèi)積, 然后計(jì)算誤差, 一個(gè)一個(gè)更新。
rating -
接下來就是講神經(jīng)網(wǎng)絡(luò)了。 perceptron 能力有些, 神經(jīng)網(wǎng)絡(luò)就是combine perceptrons, 如OR, AND, XOR門。當(dāng)然也要注意generalization的能力。
perceptron1
perceptron2
generalization -
前向傳播。有多個(gè)層, 每個(gè)層都是經(jīng)過一個(gè)線性變換-非線性變換。 在這里的非線性變換是用tanh函數(shù)。
operate -
那么, 神經(jīng)網(wǎng)絡(luò)應(yīng)該如何訓(xùn)練呢。主要的的key就是W決定了h(x)所以,就是Error在W中每個(gè)元素中傳播。
SGD -
在計(jì)算的過程中, 其中關(guān)鍵的法則就是鏈?zhǔn)角髮?dǎo), 將e對(duì)w的求導(dǎo)轉(zhuǎn)化為e對(duì)signal s求導(dǎo), s對(duì)w求導(dǎo)。 顯然s對(duì)w求導(dǎo)就是x而已, 重要的是e對(duì)s求導(dǎo), 在這里我們將其記為delta。
chain -
首先看它對(duì)最后一層的情況。 計(jì)算處error, 然后求導(dǎo)。
final -
更一般化的, 從后一層反向傳播到前一層。與前向傳播類似, 都有w乘以另外一個(gè)項(xiàng)。
delta -
最終的算法如下。
image.png












