前馈神经网络:为了实现统计泛化而设计出的函数近似机。它偶尔从大脑中提取灵感,但并不是大脑功能的模型。
左图中,
解决办法:学习一个不同的特征空间,使得在这个空间上线性模型能够表示这个解。右图中,由神经网络提取的特征表示的新空间(
网络包含两个函数:
基于梯度的优化算法可以找到一些参数,使得误差非常小。梯度下降法还可以找到XOR问题的一些等价解,其收敛点取决于参数初始值。
线性模型和神经网络的最大区别:NN的非线性导致大多数代价函数变得非凸。
NN的训练通常用迭代的、基于梯度的优化,仅仅使得代价函数达到一个非常小的值。凸优化问题我们总是很喜欢,任何一种初始参数出发都会收敛,都会到碗底来。然而,非凸损失函数的随机梯度下降没有收敛性保证,对参数初始值很敏感。FNN将所有权重值初始化为小随机数很重要,偏置初始化为0或小的正值。
从ML角度看,训练神经网络和训练其他模型并没有太大区别。
使用最大似然学习条件分布:大多数现代的NN使用最大似然来训练。这意味着代价函数就是负对数似然,它与训练数据和模型分布间的交叉熵等价。其表示为:
学习条件统计量:仅仅想学习给定x时y的某个条件统计量。变分法,一是最小化均方误差代价函数,二是平均绝对误差代价函数。不再赘述。参见P155。
讨论针对:输出层。假设FNN提供了一组定义为
用于伯努利输出分布的
用于多项伯努利输出分布的
隐藏单元的设计:活跃研究,尚无许多明确的指导性理论。
隐藏单元可能并不是在所有输入点上都可微的。例如ReLU在原点不可微。实践中梯度下降对ML模型仍然表现良好,部分原因是NN训练算法通常不会达到局部最小值,仅显著减小它的值。所以代价函数的最小值,对于那些梯度未定义的点来说仍是可以接受的。
大部分隐藏单元:接受输入向量
ReLU:
缺陷:ReLU不能通过基于梯度的方法,学习那些使它们激活为0的样本。(激活量
当
进一步扩展:maxout单元
maxout单元将
该法可学习对输入
每个maxout单元由
ReLU及其扩展基于一个原则:如果其行为更接近线性,则模型更容易优化。这样理解:线性模型优化有闭式解,非线性有的不可微,求导法就挂掉了。使用线性行为更容易优化的这个原则,适用于除深度线性网络以外的不少情景。
logistic sigmoid:
双曲正切:
sigmoid单元在大部分定义域内都饱和。不鼓励使用。双曲正切表现得更好一些。在
类似于训练一个线性模型
而我们喜欢线性模型。
sigmoid函数除了FNN外使用常见。RNN等由于某些原因不能使用分段线性激活函数。
还有许多隐藏单元,但并不常用。只有被明确能够提供显著改进才会被发布。如果与已有的表现大致相当,则不会引起兴趣。