神经网络
一、什么是神经网络?
- 神经网络是具有适应性的简单单元组成的广泛并行互连的网络。
- 机器学习把神经网络当做一个学习算法,通过数据,学习出模型。研究的是神经网络学习,属于连接主义学习。
- 神经网络模型两个最重要的要素是:网络结构、神经元模型。
二、简单单元,神经元模型

- 神经元传送的是电位,当累计电位超过阈值时,神经元被激活,产生输出,由f函数来处理。
- x是神经元信号,w进行放大,将全部的 x*w 累加,超过原来的阈值 θ,就用f函数处理,输出y。
- 需要学习的参数: w 和 θ, 和线性模型一样,不考虑 f 函数就是一个线性模型,考虑 f 函数的话,就能处理非线性问题,就需要用到神经元的激活函数。
三、神经元的 “激活函数”
- 激活函数,activation function, 也叫做响应函数,挤压函数。
- 理想激活函数是阶跃函数, 0 表示抑制神经元而1表示激活神经元 。
- 阶跃函数具有不连续,不光滑等不好的性质,常用的是Sigmoid函数。

- Sigmoid函数表示的是正负几率的乘积

四、多层前馈网络结构
4.1、概念:
- 目前神经网络最常用的网络结构是多层前馈网络。
- 多层网络:包含隐层的网络
- 前馈网络:神经元之间不存在同层连接也不存在跨层连接
- 隐层和输出层神经元亦称“功能单元” (Functional Unit)
- 前馈神经网络可以用BP算法优化。

4.2、万有逼近性:
- 多层前馈网络有强大的表示能力称为神经网络的万有逼近性。
- 仅需一个包含足够多神经元的隐层,多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。
- 具有万有逼近性的模型包括:泰勒展开,傅里叶变换,决策树等。
- 具有万有逼近性是将神经网络做为机器学习模型的前提,而不是神经网络独有的性质。
4.3、问题
如何设置隐层神经元数是未解问题(Open Problem),实际常用 “试错法”。
五、BP算法
5.1、BP算法概念:
- BackPropagation 误差逆传播算法,简称BP算法。
- BP算法是迄今最成功,最常用的神经网络算法。正式完整描述最早出现在1974年Werbos的博士学位论文中。
- BP是一个迭代学习算法,在迭代的每一轮中采用广义感知机学习规则 v ← v + △v
- BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。
- BP算法适用于平方损失等许多常用损失函数。
5.2、BP算法推导:


链式法则:



5.3、优化思路:
- 得到误差后,要调整误差,就对误差求偏导。如果是凸函数的话,求导,令导数为0,求得极值点 ,如果不是凸函数的话,就用梯度下降法。
- 求导是明确了误差调整的方向,每次走多少,由学习率参数 η 决定。
- 学习率(步长)不能太大,太大容易产生震荡现象,也不能太小,太小可以较好的避免震荡现象,但是训练速度太慢,最好的方式是,先大步走,后小步走。
浙公网安备 33010602011771号