神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,也就是说,对于神经网络来说,网络结构和神经元模型很重要。而我们在这里讨论的神经网络学习,其实是神经网络和机器学习的交叉部分。
1 神经元模型
这里讨论的神经元模型是1943年提出的“M-P神经元模型”。
即一个神经元会存在多个输入,并且每个输入存在对应的权重。各个输入加权求和再加上阈值,作为激活函数的自变量,最终输出激活函数的函数值。
我们一般使用Sigmoid函数作为激活函数。
在机器学习的过程中,我们主要学习各个输入的权重值和神经元的阈值。
2 感知机和多层网络
感知机由两层神经元构成,一层用于输入,另一层用于输出。
这样的感知器能够完成一些简单的函数运算。但是其只拥有一层功能神经元,学习能力非常有限。
为了实现一些功能更为复杂的函数,我们需要多层神经元解决问题,此时在输入和输出之间的神经元称为隐层神经元。
每层神经元与下一层会完全互连,不存在同层连接,也不存在跨层连接。
3 误差逆传播算法(BP算法)
设置层数是一个未解决的问题,实际过程中“试错”解决。缓解过拟合的方法主要是“早停”(在测试集误差增大时提交权重和阈值)和“正则化”。
4 万有逼近性和“跳出”局部最小
神经网络的万有逼近性:只要一个包含足够多神经元的隐层,多层前馈网络就可以以任意精度逼近任意复杂度的连续函数。
万有逼近性不是神经网络的优势,而是所有机器学习算法能够用于机器学习的前提。
梯度下降法有可能陷入局部最小值,此时我们有一些启发式算法可以接近全局最小:多次初始化、模拟退火算法、遗传算法、遗传算法以及随机梯度下降的方法。
5 深度学习
一种典型的深度学习就是深层神经网络,增加隐层数目,此处不展开详细叙述。