[Tensorflow] 深层神经网络

1. 定义

维基百科对深度学习的定义: 一类通过多层非线性变换对高复杂性数据建模算法的合集.

2. 激活函数实现去线性化

tensorflow提供了7种不同的非线性激活函数, 常见的有tf.nn.relu, tf.sigmoid, tf.tanh.
用户也可以自己定义激活函数..

3. 损失函数的定义

3.1 经典损失函数

3.1.1 交叉熵

用途: 刻画两个概率分布之间的距离, 交叉熵H越小, 两个概率分布就越近.
给定两个概率分布p和q, 通过q来表示p的交叉熵为:
H(p,q)=xp(x)logq(s) H ( p , q ) = − ∑ x p ( x ) log ⁡ q ( s )
p代表的是正确答案, q代表的是预测值.

3.1.2 softmax回归

用途: 将神经网络的输出变成一个概率分布.
设原始神经网络的输出为 y1 y 1 yn y n , 经过softmax回归处理之后的输出为:
softmax(y)i=yi=eyij=1neyj s o f t m a x ( y ) i = y i ′ = e y i ∑ j = 1 n e y j

3.1.3 tf.nn.softmax_cross_entropy_with_logits函数

该函数把softmax回归和交叉熵同一封装了起来.

4. 神经网络优化算法

4.1 梯度下降算法

优化单个参数的取值.

4.2 反向传播算法

以一个高效的方式在所有的参数上使用梯度下降算法, 从而使损失函数尽可能的小.
参数更新公式:
θn+1=θnηθnJ(θn) θ n + 1 = θ n − η ∂ ∂ θ n J ( θ n )
式中η式学习率, 需要人为设定.

5. 神经网络的进一步优化

5.1 学习率的设置

5.1.1 exponential_decay函数

它可以指数级地减小学习率.

5.2 过拟合问题

这里写图片描述
(第三张图展示了过拟合的情景)

用正则化方法避免过拟合的问题

思想: 在损失函数中加入刻画模型复杂度的指标R(w), 优化时不直接优化损失函数L(θ), 而是优化L(θ)+λR(w).
R(w)通常有两种: L1正则化 R(w)=i|wi| R ( w ) = ∑ i | w i | 和 L2正则化 R(w)=i|w2i| R ( w ) = ∑ i | w i 2 |
tf.contrib.layers.l2_regularizer函数可以计算一个给定参数的L2正则化项的值.

5.3 滑动平均模型

思想: 通过影子变量来控制模型的更新速度.
具体做法: 先指定一个衰减率decay, 然后给每一个变量都维护一个影子变量.
shadowVariable=decayshadowVariable+(1decay)variable s h a d o w V a r i a b l e = d e c a y ∗ s h a d o w V a r i a b l e + ( 1 − d e c a y ) ∗ v a r i a b l e
decay可以通过设定numUpdates来动态设置:
decay=min(decay,1+numUpdates10+numUpdates) d e c a y = min ( d e c a y , 1 + n u m U p d a t e s 10 + n u m U p d a t e s )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值