机器学习 学习记录(四)

本篇博客将介绍深度学习时所用到的一些Tips。
我们知道,机器学习的三大步骤(Function Set, Goodness of Function, Pick up The Best Function),那如果我们最终得到的结果坏掉了怎么办。如果坏掉了,到底是这三步的哪一个步骤出现了问题呢?
结果的坏掉有两种情况,一种是训练数据的符合率很低,还有一种是测试数据的命中率比较低。在第一种情况下,很可能是在Gradient Descent的时候,由于某种原因而致使所得到的权重并不是 L(w1,w1,,wn,b) 最小值点,所以需要我们调整Loss Function或者是权重的初始值以及learning rate。那如果是测试数据的时候结果坏掉了呢?那基本上就可以确定是出现了过拟合的情况,所以可能需要我们重新调整模型,下面的这张图很好地描述了这个过程。
这里写图片描述
下面介绍几种比较常用的方法
这里写图片描述
I.对于训练数据的时候出现问题的解决办法:
1.New Activation Function:
这里写图片描述
对于某些机器学习问题,有时候会随着网络深度的递增而递减。那为什么会出现这种现象呢?解释是:Vanishing Gradient. 在以sigmoid函数为激活函数的神经网络中,由于sigmoid函数的影响导致网络中靠近input layer的参数偏导数很小,而靠近output layer的参数偏导数较大,这样就导致靠近output layer的参数收敛得很快,而靠近input layer的参数直到学习结束都几乎都没有被更新。
这里写图片描述
那怎么去解决这个问题呢?你当然可以采用一个动态的learning rate去使不同参数尽量收敛,但是这种解决方案显然只是治标不治本,因为导致这个问题的元凶在Sigmoid函数。那我们能不能通过更换激活函数来解决这个问题呢?答案是完全可行!事实上我们也是这么做的。
下面介绍两种比较常用的来更换sigmoid函数的激活函数:
(1)ReLU(Rectified Linear Unit)

σ(z)={z, z00, z<0

这里写图片描述
这个函数有以下几个优点:
<1>.容易运算(相比较sigmoid函数来说,运算量要小得多)
<2>.有生物学上的证据证明这个函数可用于神经网络(具体我也不是很理解)
<3>.解决了Vanishing Gradient问题
那问题来了,如何求导数啊???
正常求呗……如果 z>0 导数就是1,如果 z<0 导数就是0,那如果 z=0 怎么办?凉拌!怎么会这么巧就出现 z=0 的情况呢?所以这种情况忽略掉
(2)Maxout
σ(z)=Max{z1,z2,z3,}

这里写图片描述
这里写图片描述
那这个函数怎么求导呢?
根据上一次的weight与输入我们是能够求出每个神经元的具体输出的,那么就将输出 z1=w1x+b,z2=w2x+b 中较小的那一个从神经网络中剔除,然后训练这一个更浅一点的神经网络,操作如下图
这里写图片描述
2.Adaptive Learning Rate
这种方法有很多具体的实现方式,比较著名的有Adagrad、RMSProp、Momentum.
<1>Adagrad:
Adagrad的具体表达如下:
wt+1wtηti=0g2igi

其中 gi=L
<2>RMSProp
wt+1wtησtgt

其中 σt=ασ2t1+(1α)g2t,σ0=g0,gt=L
<3>Momentum
不做过多解释,请读者参考下图
这里写图片描述
II.对于测试数据时出现问题的解决方法
解决方法主要有:Early Stopping,Regularization,Dropout
下面简短地介绍一下Regularization与Dropout,Early Stopping比较简单,请读者查阅相关资料,不在这里赘述
1.Regularization
Regularization其实就是要调整我们做梯度递减的函数,在该函数后面加上 λ|θ|2 :
L(θ)=L(θ)+λ|θ|2

用这个新的函数来做Gradient Descent:

Lw=Lw+λw

wt+1wt(ηLw)ηλwt=(1ηλ)wt(ηLw)

2.Dropout
这种处理方式的做法是,每次参数更新,每个神经元有 p %的概率被随机丢弃

这里写图片描述

最终得到的结果要用每个参数乘上 1p %

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值