深度学习 有两个非常重要的特性:多层和非线性
非线性:
线性模型的输出结果为输入的加权和。
线性模型的最大特点是任意线性模型的组合仍然还是线性模型
。所以,只通过线性变化,任意层的全连接神经网络和单层神经网络的表达能力没有什么区别,而且他们都是线性模型。
对于非线性可分问题,线性模型效果不好。
可以使用激活函数
实现去线性化,通过将每个神经元的输出通过一个非线性函数可是实现去线性化,同时还可以加入偏置项。
常用的非线性激活函数:ReLU函数、sigmoid函数和tanh函数。在Tensorflow中可使用:tf.nn.relu
、tf.sigmoid
和tf.tanh
表示。
多层:
多层神经网络可以解决异或运算。
深层神经网络有组合特征提取的功能,对于不易提取特征的向量有很大的帮助。
损失函数
神经网络模型的效果及优化的目标是通过损失函数(loss function)定义的。
- 对于二分类问题可以通过设置阈值来进行分类。
- 对于多分类问题,通常的方法是设置n个输出节点,其中n为类别的个数,对于每一个样例,神经网络得到一个n维数组作为输出结果。
如何判断一个输出向量和期望的向量之间有多近呢?
- 在分类问题中,通常使用
交叉熵(corss entropy)
评判,交叉熵刻画了两个概率分布之间的距离,