一起学西瓜书05 神经网络
发展历史
了解一下神经网络的发展
神经元模型
神经网络的定义
M-P神经元模型
而MP神经元模型就是模拟了生物神经网络中的情况,将其抽象为下图简单的模型
**函数
模拟生物神经网络中的情况,神经元兴奋则对应 1 ,神经元抑制则对应了 0 ,这是理想的阶跃函数,模拟出了神经元传递的过程,但是在实际情况中我们常常实验sigmoid函数来作为**函数,因为它连续可导,并且可以把输入值挤压到 0与1 之间
神经网络就是把许多个这样的神经元按一定的层次结构连接起来
感知机与多层网络
感知机就是如下图,由两层神经元组成,它的输出层是M-P神经元,也就是将输入层计算的结果 与阈值进行对比,如果大于阈值那么就输出1 ,也就是代表了神经元被**
这里引入了与或非的概念,下面简单介绍一下这三个门,以及实现
与门
| x1 | x2 | y |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
简单的说就是有0就是0,在运用里面我们可以说1与上任何数都是那个数
这里对每种情况进行讨论 ,最后得出了w1,w2和θ之间的关系
或门
| x1 | x2 | y |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
简单的说就是有1就是1,在运用里面我们可以说0或上任何数都是那个数
非门
就是反一反,原来是0就变成1
感知机学习
阈值θ可以看成一个固定输出为-1.0的哑节点,所对应的连接权重,所以权重和 阈值的学习就可以统一为权重的学习
因为感知机只有输出神经元有**函数处理,即只拥有一层功能神经元,它的学习能力非常的有限,实际上与或非的问题都是线性可分的,即存在一个线性超平面可以将他们分开
比如下图的a 就是与问题,在直线的右边也就是代表了正,也就是**,左边带表了负
但是因为感知机只有一层,所以它无法解决异或这样的问题,可以看到图d里面有2条直线,无法收敛,所以我们要引入多层感知机
多层感知机
下图的两层感知机就解决了异或问题
在输入层和输出蹭之间加入了一层隐藏层
多层前馈神经网络
它包含了若干隐藏层,并且层与层之间都是全连接的,十分好理解
误差逆向传播算法
也称BP
我在另一文章里面已经详细的介绍了BP 反向传播,这里就放几章图理解一下
Back Propagation 反向传播 (附详细代码+图解计算图)
下面是BP算法的过程
BP神经网络经常遭遇过拟合的情况,所以使用两种办法来缓解过拟合,如下图
全局最小与局部最小
如上图,在多维数据里面,可以存在着多个局部极小的点,而我们的梯度下降算法可能就会在局部极小点停下来,这便需要一些策略来跳出局部极小的点
其他常见的神经网络
这里就不详细介绍了
RBF网络
ART网络
SOM网络
级联相关网络
Elman网络
Boltzmann 机
受限 Boltzmann 机
深度学习
卷积层,隐藏层,全连接层