TensorFlow学习笔记(2) 深层神经网络

目录

一、深度学习与深层神经网络

二、损失函数定义

交叉熵

均方误差(MSE,mean squared error)

自定义损失函数

三、神经网络优化算法

四、神经网络的进一步优化

1.学习率的设置

2.过拟合问题

3.滑动平均模型


一、深度学习与深层神经网络

深度学习是指一类通过多层非线性变换对高复杂性数据建模算法的合集,深层神经网络就是实现多层非线性变换最常用的一种方法。而深度学习两个最重要的特性就是多层非线性

  • 非线性

在上一篇最后所建立的神经网络即为线性的,但是在现实世界中,绝大多数的问题时无法线性分割的,因此需要一个激活函数(Activation)来使其变得非线性化。

在TF中提供了7种不同的非线性激活函数,tf.nn.ruletf.sigmoidtf.tanh是其中比较常用的几个。同时TF也支持自己定义激活函数,以下为其用法,其中biases为偏置项:

a = tf.nn.relu(tf.matmul(x, w1) + biases1)
y = tf.nn.relu(tf.matmul(a, w2) + biases2)
  • 多层

深度学习的另外一个重要性质是多层变换,在输入层和输出层之间加入若干个隐藏层,深层神经网络有组合提取的功能,对于不易解决提取特征向量的问题有很大帮助。

 

二、损失函数定义

神经网络模型的效果以及优化的目标是通过损失函数来定义的。分类问题和回归问题是监督学习的两大种类。针对不同的问题使用不同的损失函数来优化模型。

交叉熵

对于分类问题,一般使用交叉熵(corss entropy)来判断一个输出向量和期望向量有多接近。交叉熵刻画了两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布。在TF中,使用Softmax回归作为额外的处理层得到概率分布的输出结果。

                                                                        q ( x )=\operatorname { softmax } ( y ) _ { i } = y _ { i } ^ { \prime } = \frac { e ^ { y i } } { \sum _ { j = 1 } ^ { n } e ^ { y j } }

                                                                              H ( p , q ) = - \sum _ { x } p ( x ) \log q ( x )

其中p代表正确答案,q代表有softmax给出的概率分布。假设正确答案(1,0,0),预测结果(0.5,0.4,0.1)。则其交叉熵为H ( ( 1,0,0 ) , ( 0.5,0.4,0.1 ) ) = - ( 1 \times \log 0.5 + 0 \times \log 0.4 + 0 \times \log 0.1 ) \approx 0.3。通过TF代码实现如下:

corss_entropy = - tf.reduce_mean(y_, tf.log(tf.clip_by_value(y, 1e-10, 1.0)))
#其中y_代表真实结果,y代表预测结果。
#tf.clip_by_value(y, 1e-10, 1.0)可以将y值限定在一个范围
##若y小于1e-10,则y=1e-10.y大于1.0同理
#tf.log求对数
#tf.reduce_mean求均值

TF对softmax和cross_entropy进行了封装,提供了一个函数tf.nn.softmax_cross_entropy_with_logits来实现求得Softmax回归之后的交叉熵:

corss_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_)
#在只有一个正确答案的分类问题种,可以使用以下函数加速计算过程
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=y_)

均方误差(MSE,mean squared error)

对于回归问题,比如房价预测、销量预测等等,最常用的损失函数是均方误差(MSE,mean squared error)。它的定义为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值