coursera机器学习技法笔记(12)——Neural Network

12 Neural Network
12.1 Motivation

  在神经网络的节点上使用感知机,那我们可以把神经网络看作是通过不同感知机以及常数的线性组合得到一个新的特征,将新的特征加上一个常数再进行线性组合得到结果。其原理和aggregation类似,但是在神经网络中进行了多层级的aggregation。
  从生物的角度来说神经网络模拟了人脑神经网络。

12.2 Neural Network Hypothesis

  如果神经元节点都用线性回归的话,那么无论怎么组合最终都是个线性回归,模型的能力没有大幅提高,如果用感知机的话计算起来太麻烦,因此神经元节点通常使用 tanh(s)

tanh(s)=eseses+es=2θ(2s)1

其中 θ 是sigmoid函数。
  另外本节讲述了变量个数和神经元的关系。

12.3 Neural Network Learning

  本节讲述了BP算法。对神经网络训练的重点在于根据神经网络最后输出值与真实样本的差距对内部的权重进行修正。具体方法是使用平方损失函数,然后在该损失函数上对所有权重求偏导,并利用偏导结果进行梯度下降。
  在对最后一层求偏导的时候,可以将其拆分为:

enw(L)i,1=ens(L)1s(L)1w(L)i,1

其中, s(L)1=d(L1)i=0w(L)i1x(L1)i 是倒数第二层神经元的分数, en 是第 n 个样本的误差。可以看到,这个求解是可以得到结果的。然后接下来对之后的其他层的权重求偏导,其结果即将上式的L换成 l ,但可以注意到,ens(l)j是不能马上求出结果的,因为这与 l 之后的层的变量相关,我们令ens(l)j=δ(l)j
  由于神经网络的计算顺序是 s(l)jx(l)js(l+1)jen ,因此我们需要对 s(l)j en 之间的每一个变量求偏导。这里我们在展开 δ(l)j 求导的过程中加入考虑 l+1 层的偏导,即:
ens(l)j=d(l+1)k=1ens(l+1)js(l+1)jx(l)jx(l)js(l)j

可以发现求导结果是:
kδ(l+1)kw(l)jk(tanh(s(l)j))

  最后一层的 δ(L)k 我们是知道的,因此可以反推回来。总结一下,BP算法的过程是先选取一个样本,计算出结果,然后根据结果倒推回来修改权重。由于这是一个随机梯度下降的算法,因此可以同时训练多个样本,得到多个权重修改结果,对其取平均,即mini-bat梯度下降。

12.4 Optimization and Regularization

  本节讲述了在训练神经网络中可以使用的避免过拟合的策略,可以注意到的是,神经网络的VC维是 O(VW) ,其中 V 是神经元数量。
  (1)正则化项:我们希望使用一种能达到稀疏解的正则化项,但是L1正则化不利于求导,L2正则化是大的权重下降大,小的权重下降小,因此可以对L2正则化进行放缩以达到目的:

(w(l)ij)21+(w(l)ij)2

  (2)减少迭代次数:由于更多的迭代次数可以看做是在假设空间中尝试了更多的权重组合,因此适当减少迭代次数也可以达到避免过拟合的结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值