神经网络
文章目录
参考
- 1、神经网络学习 之 M-P模型
- 2、机器学习-第五章神经网络读书笔记(周志华)
- 3、超平面是什么?——理解超平面(SVM开篇之超平面详解)
- 4、【手推机器学习】感知机与超平面
- 5、多层前馈神经网络及BP算法
- 6、周志华----第5章神经网络(误差逆传播算法)
- 7、【机器学习 面试题】为什么正则化可以防止过拟合?为什么L1正则化具有稀疏…
- 8、什么是 L1 L2 正规化 正则化 Regularization (深度学习 deep learning)
- 9、在机器学习中,L2正则化为什么能够缓过拟合?
- 10、机器学习中用来防止过拟合的方法有哪些?
- 11、模拟退火总结(模拟退火)
- 12、【优化】遗传算法介绍
- 13、【数之道14】六分钟时间,带你走近遗传算法
- 14、第42节:自适应共振理论网络(ART)——算法流程与ART I型网络的系统结构
- 15、【数之道 13】实现降维计算的另类神经网络
- 16、级联相关神经网络
- 17、什么是Jordan Elman Neural Networks?它与RNN是什么关系?
- 18、机器学习-白板推导系列(二十一)-受限玻尔兹曼机RBM(Restricted Boltzmann Machine)
- 19、【机器学习】白板推导系列(二十八) ~ 玻尔兹曼机(Boltzmann Machine)
- 20、【机器学习】白板推导系列(二十九) ~ 深度玻尔兹曼机(Deep Boltzmann Machine)
- 21、Boltzmann机详解
- 22、受限Boltzmann机详解
神经元模型
-
M-P模型( McCulloch-Pitts Model):1、神经网络学习 之 M-P模型
-
所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型。
-
按照生物神经元,我们建立M-P模型,如上图所示。为了使得建模更加简单,以便于进行形式化表达,我们忽略时间整合作用、不应期等复杂因素,并把神经元的突触时延和强度当成常数。表达式为(其中f是sigmoid函数,Θ是偏差):
- y j = f ( ∑ i = 1 n W i j ∗ x i − θ ) y_j = f(\sum_{i=1}^n W_{ij}*x_i -\theta) yj=f(i=1∑nWij∗xi−θ)
-
感知机与多层网络
-
与或非的表示:
-
对于只有一层的神经元,学习能力有限
- 若问题是线性可分的,则存在一个线性超平面将其分开,感知器会收敛
- 否则学习的过程中会发生震荡,对于非线性可分的问题,可以考虑多层神经元
-
超平面的理解
-
(1) 超平面是指n维线性空间中维度为n-1的子空间。它可以把线性空间分割成不相交的两部分。比如二维空间中,一条直线是一维的,它把平面分成了两块;三维空间中,一个平面是二维的,它把空间分成了两块。
-
(2) 法向量是指垂直于超平面的向量。
-
-
Loss的推导
-
多层网络:只要包含隐藏层,即可称为多层网络
误差逆传播算法(反向传播)
5.12-5.14推导
-
下面是南瓜书的推导过程(5.12-5.14),具体思路类似上面
标准BP与累计BP
过拟合问题
- 参考这篇10、机器学习中用来防止过拟合的方法有哪些?中fly qq的回答
- 除此之外:
全局最小和局部极小
-
全局最小一定是局部极小,反之不成立,二者关系类似这样
-
- 模拟退火参考:11、模拟退火总结(模拟退火)
- 遗传算法参考:
其他常见神经网络
RBF
- 这个比较好理解
ART
SOM
- 参考数之道:15、【数之道 13】实现降维计算的另类神经网络
-
- 训练过程:
- 1、Competition:随机选取一组数据,计算权重和输入的差值平方和,得到该数据到神经元的欧几里得空间距离平方,比较所有神经元的欧几里得距离,最小者获胜
- 2、Cooperation(合作):优胜神经元会对周围的神经元进行影响,范围由右侧函数决定
- 3、Adaptation:权重更新按照下面右侧公式进行
- 1、Competition:随机选取一组数据,计算权重和输入的差值平方和,得到该数据到神经元的欧几里得空间距离平方,比较所有神经元的欧几里得距离,最小者获胜
- 训练过程:
级联相关网络
-
参考:16、级联相关神经网络
-
一般的神经网络是固定好拓扑结构,然后训练权重和阈值。级联相关神经网络是从一个小网络开始,自动训练和添加隐含单元,最终形成一个多层的结构。
-
级联相关神经网络具有以下优点:
- 学习速度快;
- 自己决定神经元个数和深度;
- 训练集变化之后还能保持原有的结构(这个是缺点还是优点);
- 不需要后向传播错误信号;
-
级联相关神经网络(CCNN)
- 包含两个部分:
- cascade architecture : 在这个步骤中,隐含单元一个一个的添加到网络中,当他们添加到网络之后就不能更改;
- learning algorithm : 创造并安装新的单元;
- 包含两个部分:
-
算法过程
- 首先,候选神经元连结到所有的输入和隐含神经元(也就是图中的虚线),并且候选神经元的输出不连结到网络上;
- 然后固定住图中的实线部分,只训练候选神经元的权重(也就是图中的虚线);
- 当权重训练好之后,就将候选神经元安装到图中空白的层上,也就是第四个区域,这时候选项的连接权就不能再改变了;
- 接着,
将候选神经元连结到网络的输出上,这时候选神经元被激活,开始训练网络的所有输出连接权; - 重复以上步骤;
-
候选神经元的训练目标是最大化新神经元的输出和网络训练误差之间的相关性 :
-
为了最大化S,我们需要计算∂S/∂wt:
- 我们使用梯度上升算法来最大化S。然后再训练单层的权值。