断断续续零零碎碎地学机器学习半年了,不会实践,不会运用,只是粗略地学了理论基础,因为涉及很多数学公式,markdown的数学公式语法又挺麻烦的,所以一直没有写过机器学习算法的文章。最近恰逢创新班、双特生面试,因为我是以机器学习为特点介绍我自己的,所以看了些算法的具体理论和优缺点。今天下午看了2个小时的BP算法,心想不如在近纲课上写一篇BP算法的文章。
一般思想
首先,依然是梯度下降法,为了更新W和b,就要计算出代价函数J对两者的偏导数,即
∂∂W(l)ijJ(W,b;x,y)=a(l)jδ(l+1)i
∂∂b(l)iJ(W,b;x,y)=δ(l+1)i
其中,
$\delta^{(l)}_i=\frac{\partial J(W,b;x,y)}{\partial z_i^{(l)}}=\frac{\partial }{\partial z^{(l)}i}\frac{1}{2} \left|y - h{W,b}(x)\right|^2 = - (y_i - a^{(l)}_i)\cdot f’(z^{(l)}_i)$
more >>