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

本文详细探讨了深度学习中的深层神经网络,包括非线性模型的局限性和激活函数的作用,如ReLU、sigmoid和tanh。通过多层网络解决了异或问题,并介绍了经典损失函数如交叉熵在分类问题中的应用。此外,讨论了神经网络优化算法,如梯度下降和反向传播,以及学习率设置和防止过拟合的策略,如正则化和滑动平均模型。
摘要由CSDN通过智能技术生成

1 深度学习与深层神经网络

维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”。可见深度学习的两个重要特性:多层和非线性。

1 非线性模型的局限性

一个线性模型中通过输入得到输出的函数被称为一个线性变换,线性模型的最大特点是任意线性模型的组合仍是线性模型。而前向传播算法完全符合其定义。因此只通过线性变换,任意层的全连接神经网络和单层神经网络的表达能力没有任何区别,且都是线性模型,而线性模型能解决的问题太有限,只能解决线性可分问题。

2 激活函数实现去线性化

如果将每个神经元(节点)的输出通过一个非线性函数,那么整个网络的模型就不再是线性的了。这个非线性函数就是激活函数。
TF目前提供7种非线性激活函数,包括tf.nn.relu、tf.sigmoid、tf.tanh是其中比较常用的几个。同时支持使用自己定义的激活函数。

3 多层网络解决异或运算

加入隐藏层后,异或问题可以得到很好的解决。这个特征对于不易提取特征向量的问题有很大帮助。

2 损失函数定义

神经网络模型的效果和优化目标是通过损失函数(loss function)来定义的。

1 经典损失函数

交叉熵是判断一个输出向量和期望向量距离的评判方法之一。交叉熵刻画的是两个概率分布之间的距离。
1.分类问题->输出n个结点->交叉熵,原来的神经网络输出被当做置信度生成新的输出,其满足概率分布的所有要求,用交叉熵计算预测的概率分布和真实答案的概率分布之间的距离
2.回归问题(预测)->1个结点->均方误差
此外,还可以根据问题来自定义损失函数,总之损失函数是希望答案朝着正确的方向发展,所以如果偏离某一方向,可以给其更大的惩罚,这样会使得得到的值离期望的答案更近。不同的损失函数对于相同的神经网络产生重要影响。

3 神经网络优化算法

梯度下降算法主要用于优化单个参数的取值,而反向传播算法给出了一个高效的方式在所有参数上使用梯度下降算法。这里只介绍基本概念和主要思想略去数学推导和证明。
要寻找使J(A)最小的A,目前没有通用方法对任意损失函数直接求解最佳的参数取值,梯度下降算法迭代更新参数A,不断沿着梯度的反方向让参数朝着总损失更小的方向更新。
参数更新的公式为:
An+1=AnηJ(An)An
其中, η

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值