Tensorflow 入门 2

来源:互联网 发布:公务员 紧缺职位 知乎 编辑:程序博客网 时间:2024/06/16 23:17

激活函数

一共有三种常用的激活函数 sigmoid、tanh和ReLU,如下所示
这里写图片描述
目前Tensorflow提供7种不同的非线性激活函数,tf.nn.relu、tf.sigmoid和tf.tanh是其中比较常见的几个。Tensorflow也支持自定义激活函数。

  1. 线性激活函数在深层神经网络中没有意义,多层网络与单层网络一样。
  2. 非线性激活函数的多层网络可以解决异或运算(非线性可分问题)

损失函数 (cost function)

神经网络模型的效果以及优化的目标是通过损失函数来定义的。

交叉熵代价函数(cross-entropy cost function)

当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数,以避免训练过程太慢。
这里写图片描述

对数似然函数(log-likelihood cost)

对数似然函数也常用来作为softmax回归的代价函数,在上面的讨论中,我们最后一层(也就是输出)是通过sigmoid函数,因此采用了交叉熵代价函数。而深度学习中更普遍的做法是将softmax作为最后一层,此时常用的是代价函数是log-likelihood cost。
这里写图片描述
注意对数似然函数刻画的是两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布,因此需要将神经网络的输出转换成概率分布。Softmax回归是一个非常常用的方法。

柔性最大值(softmax)层

Softmax回归本身可以作为一个学习算法来优化分类结果,但是在Tensorflow中,softmax回归的参数被去掉了,它只是一层额外的处理层,将神经网络的输出变成一个概率分布。下图显示了加上Softmax回归的神经网络的结构图。
这里写图片描述
这里写图片描述
从公式中可以看出,原始的输出被用作置信度来生成新的输出,而新的输出满足概率分布的所有要求。
因为对数似然函数一般会和softmax一起使用,所以Tensorflow对这两个功能进行了统一的封装,并提供了tf.nn.softmax_cross_entropy_with_logits函数(用法参考)。这样通过一个命令就可以得到使用了softmax回归之后的交叉熵。

均方误差(MSE)

与分类问题不同,回归问题解决的是对具体数值的预测。解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测的数值。对于回归问题,最常用的损失函数就是均方误差MSE,定义如下:
这里写图片描述
在Tensorflow中的实现如下:其中,y_是预测值,y是真值
mse = tf.reduce_mean(tf.square(y_ - y)

优化算法(optimizer)

一般的优化算法为反向传播的Gradient Descend、Momentum、Adam等。在

学习速率指数下降

tf.train.exponential_decay函数实现了指数衰减学习率,通过这个函数,可以先使用较大的学习率快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率,使得模型在训练后期更加稳定。(代码参考)
这里写图片描述

过拟合与正则化

通过限制权重的大小,使得模型不能任意拟合训练数据中的随机噪音。在Tensorflow中,也可以优化带有正则化的损失函数,以L2正则化为例:
这里写图片描述
Tensorflow提供了tf.contrib.layers.l2_regularizer函数,他返回一个函数,这个函数可以计算一个指定的参数的L2正则化项的值。

L2正则化 (实现代码参考)

cost = J(w,b) + lambda*R(w),其中R(w)如下所示。
这里写图片描述

L1正则化

会让参数变得更加稀疏,即有很多的参数会变为0,这样可以达到类似特征选择的功能,而L2正则化不会。
cost = J(w,b) + lambda*R(w),其中R(w)如下所示。
这里写图片描述

dropout

我们都知道dropout对于防止过拟合效果不错。 dropout一般用在全连接的部分,卷积部分一般不会用到dropout, 输出层也不会使用dropout,适用范围(输入,输出)之间的全连接层,x_ = tf.nn.dropout(x, keep_prop),其中x上该层激活值

指数加权平均(指数滑动平均)

在Tensorflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模型。在初始化ExponentialMovingAverage时,需要提供一个衰减率(decay,一般在0.95-1.0之间)。这个衰减率将用于控制模型更新的速度。

原创粉丝点击