神经网络

优快云这几天坏了ヽ(`Д´)ノ︵ ┻━┻ ┻━┻
##一. 神经元模型
神经网络中最基本的成分:神经元模型
神经元模型: 线性模型+激活函数
这里写图片描述
线性模型+符号函数 = 感知机
线性模型+sigmoid函数 = 逻辑回归
##二 . 多层前馈神经网络
定义: 每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

假设第 l − 1 l−1 l1层共有 m m m个神经元,第 l l l层共有 n n n个神经元,
则第 l l l层的线性系数 W W W组成了一个 n × m n×m n×m的矩阵 W l W^l Wl,
l l l层的偏置 b b b组成了一个 n × 1 n×1 n×1的向量 b l b^l bl ,
l − 1 l−1 l1层的的输出 a a a组成了一个 m × 1 m×1 m×1的向量 a l − 1 a^{l−1} al1
l l l层的的未激活前线性输出 Z Z Z组成了一个 n × 1 n×1 n×1的向量 Z l Z^l Zl,
激活函数 σ \sigma σ 可以有多种选择。
sigmoid tanh ReLu
l l l层的的输出 a a a组成了一个 n × 1 n×1 n×1的向量 a l a^l al。则用矩阵法表示,
l l l层的输出为:
a l = σ ( Z l ) = σ ( W l a l − 1 + b l ) a^l=\sigma (Z^l) = \sigma(W^la^{l-1}+b^l) al=σ(Zl)=σ(Wlal1+bl)
前向传播算法:
从输入层开始,一层层的向后计算,一直到运算到输出层,得到输出结果 a L a^L aL
##三. 反向传播算法(BackPropagation)
这里写图片描述
训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),..(x_m,y_m)\} D={(x1,y1),(x2,y2),..(xm,ym)}
损失函数最小化, 神经网络可选的损失函数有很多: 平方损失函数,交叉熵 , 对数似然。
待求参数是每一个层与层之间的权值矩阵 w l w^l wl和偏置矩阵 b l b^l bl
这里以平方损失函数为例。 a L a^L aL 是输出层的结果。
E ( W , b , x , y ) = 1 2 ∥ a L − y ∥ 2 2 E(W,b,x,y) = \frac{1}{2}\|a^L-y\|^2_{2} E(W,b,x,y)=21aLy22
= 1 2 ∥ σ ( W L a L − 1 + b L ) − y ∥ 2 2 =\frac{1}{2}\|\sigma(W^La^{L-1}+b^L)-y\|^2_{2} =21σ(WLaL1+bL)y22
求导
∂ E ∂ W L = ∂ E ∂ a L ∂ a L ∂ Z L ∂ Z L ∂ W L = ( a L − y ) ⊙ σ ′ ( Z L ) ( a L − 1 ) T \frac{\partial E}{\partial W^L}= \frac{\partial E}{\partial a^L} \frac{\partial a^L}{\partial Z^L}\frac{\partial Z^L}{\partial W^L}=(a^L-y) \odot \sigma^{'}(Z^L)(a^{L-1})^T WLE=aLEZLaLWLZL=(aLy)σ(ZL)(aL1)T
∂ E ∂ b L = ∂ E ∂ a L ∂ a L ∂ Z L ∂ Z L ∂ b L = ( a L − y ) ⊙ σ ′ ( Z L ) \frac{\partial E}{\partial b^L}= \frac{\partial E}{\partial a^L} \frac{\partial a^L}{\partial Z^L}\frac{\partial Z^L}{\partial b^L}=(a^L-y) \odot \sigma^{'}(Z^L) bLE=aLEZLaLbLZL=(aLy)σ(ZL)
其中$\odot 表 示 H a d a m a r d 积 , 矩 阵 的 对 应 元 素 相 乘 。 &lt; f o n t c o l o r = r e d &gt; 权 值 矩 阵 先 影 响 到 输 出 层 神 经 元 的 输 入 表示Hadamard积,矩阵的对应元素相乘。 &lt;font color =red&gt;权值矩阵先影响到输出层神经元的输入 Hadamard<fontcolor=red>ZL$,再影响到输出层神经元的输出$aL , 然 后 影 响 到 损 失 函 数 ,然后影响到损失函数 E$。
由此我们算出了输出层的梯度,那如何计算下一层,下下一层的梯度呢?
反向传播:从输出层开始,一层一层往下计算

∂ E ∂ W L − 1 = ∂ E ∂ Z L ∂ Z L ∂ Z L − 1 ∂ Z L − 1 ∂ W L − 1 \frac{\partial E}{\partial W^{L-1}}= \frac{\partial E}{\partial Z^L} \frac{\partial Z^{L}}{\partial Z^{L-1}}\frac{\partial Z^{L-1}}{\partial W^{L-1}} WL1E=ZLEZL1ZLWL1ZL1
第一项就是上面 L L L层梯度链式法则中前两项的乘积
第二项 很容易算
Z L = W L a L − 1 + b L = W L σ ( Z L − 1 ) + b L Z^L=W^La^{L-1}+b^L=W^L\sigma(Z^{L-1})+b^L ZL=WLaL1+bL=WLσ(ZL1)+bL
第三项 很容易算
Z L − 1 = W L − 1 a L − 2 + b L − 1 Z^{L-1}=W^{L-1}a^{L-2}+b^{L-1} ZL1=WL1aL2+bL1
由此算出了 L − 1 L-1 L1层的梯度,如此递推
L − 2 L-2 L2
∂ E ∂ W L − 2 = ∂ E ∂ Z L − 1 ∂ Z L − 1 ∂ Z L − 2 ∂ Z L − 2 ∂ W L − 2 \frac{\partial E}{\partial W^{L-2}}= \frac{\partial E}{\partial Z^{L-1}} \frac{\partial Z^{L-1}}{\partial Z^{L-2}}\frac{\partial Z^{L-2}}{\partial W^{L-2}} WL2E=ZL1EZL2ZL1WL2ZL2
第一项 是上面的 L − 1 L-1 L1层梯度链式法则前两项的乘积
第二项 第三项 同上 很好算
根据梯度下降算法(SGD, MBGD)就能学出神经网络了。(╯°O°)╯( ┻━┻再掀一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值