Tensorflow05-激活函数、优化器、过拟合和Dropout

1.激活函数

激活函数用于在线性组合之后添加非线性因素。在我看来,相当于扩大不同类数据之间的差距。称之为“激活”,就是让一类数据激活一个条件得到一个显著不同的输出。

激活函数把卷积后的结果压缩到某一个固定的范围,这样可以一直保持一层一层下去的数值范围是可控的。



常见的激活函数有如下:

tf.nn.relu(features, name=None)
tf.nn.relu6(features, name=None)
tf.nn.crelu(features, name=None)
tf.nn.elu(features, name=None) 
tf.nn.softplus(features, name=None) 常用于分类
tf.nn.softsign(features, name=None) 常用于分类
tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 常用于分类
tf.nn.bias_add(value, bias, data_format=None, name=None) 减少过拟合
tf.sigmoid(x, name=None) 常用于分类
tf.tanh(x, name=None) 

他们的图像如下:


可以看出激活函数的特征:

  • 非线性: 当激活函数是线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如果激活函数是恒等激活函数的时候(即 f(x)=x ),就不满足这个性质了,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的。
  • 可微性: 当优化方法是基于梯度的时候,这个性质是必须的。
  • 单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数。
  • f(x)x  当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用心的去设置初始值。
  • 输出值的范围: 当激活函数输出值是 有限 的时候,基于梯度的优化方法会更加 稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate.

2.优化器

训练人工神经网络的问题本质上是一个最优化的问题,通俗来说就是“找最值”的问题。最常见的就是梯度下降法(GradientDescentOptimizer),即每次都向下降最快的方向减小,最终找到让差距(成本)达到最小值的那组参数。

常见的优化器:

tf.train.GradientDescentOptimizer 最基础的线性优化,如果传入的数据只是一部分,就变成了SGD,一部分一部分地学习,可以更快到达全局最小量
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.MomentumOptimizer 常用,考虑了不仅本布的学习效率,还考虑了上一步的学习效率,可能一开始趋势错误,但能很快纠正,更快速到达全局最小量
tf.train.AdamOptimizer 常用
tf.train.FtrlOptimizer AlphaGO使用
tf.train.RMSPropOptimizer

它们的不同效果可以参见莫烦教学中的动画


3.过拟合

当训练数据量比较小时,可能会出现因为追求最小差值导致训练出来的模型极度符合训练集,但是缺乏普适性,不能表达训练数据之外的数据。

形象化来看就是:

本来有普适性的模型被训练成了具有训练集特殊性


以至于对于真实的数据产生了错误


应对过拟合的措施:

1-增加数据量

2-正规化y=Wx,W为各种参数,在W变化得太大时,将误差也变得更大,作为一种惩罚机制
L1正规化 cost=(Wx-real_y)^2+abs(W))
L2正规化 cost=(Wx-real_y)^2+W^2

3-Dropout正规化,每次训练后随机忽略一些神经元,使得神经网络不完整,这样得出的结果不会依赖于某一部分特定的神经元


4.Dropout

Tensorflow07中具体说明


参考链接:

https://www.tensorflow.org/versions/r0.12/api_docs/python/nn/activation_functions_

https://www.tensorflow.org/api_guides/python/train

https://www.youtube.com/watch?v=6gbGCxBGxZA&list=PLXO45tsB95cKI5AIlf5TxxFPzb-0zeVZ8&index=13

http://blog.csdn.net/cyh_24/article/details/50593400

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值