在上一篇中,我们读到了感知机的数学建模原理,并用一组案例做了演示,最后稍微提到了它的局限性。这次课件中也会以图文的方式分析这种局限性,并引入第一种神经网络模型——前馈神经网络(Feedforward Neural Network)。 本文还是以翻译PPT页内容为主,打星号的部分则是我的补充说明。
1 神经网络的动机:需要非线性模型——Motivation for neural networks: need non-linear models
*这部分内容在上一篇的结尾简单的提到过,这次对照课件再来过一下。
1969年,Minsky和Papert出版了一本名为《感知机》的书,来讨论这套数学模型的局限性。
(感知机是)[美国海军]预期中的电子计算机的胚胎,它将能够行走、谈话、看、写、自身重构以及意识到自身存在...[它]预期在一年内以10万美金的造价完成。
*上一篇的最后我们也总结了,一个简单的权重调整模型还完全达不到这个效果。
*构建感知机的基本思想是模仿神经元,试图模拟其对于信号的接收、处理、激发、输出的过程。
输出:当仅有一个输入等于1时,输出1;否则输出0。(*可以理解为对二元不相等的判断)
*感知机的原理是二元空间划分(线性函数),而异或问题无法通过二元空间划分的方式来得到结果。
如果一个机器都无法解决异或问题,那它又如何能被称为“有意识”呢?
2 神经网络架构:隐藏层——Neural network architecture: hidden layers
*隐藏层的设计出发点就是模拟神经网络中神经元连接的形态。
图中是一个3层的神经网络(统计隐藏层加输出层的总数)。
*后面略去了3张相似的图,分别是输入给第1层的几个节点单元。
*第二层的类比,还是一样,包含输入来源和权重项。这部分和感知机同理。
*最后是输入节点,4个输入来源和4个对应的权重项。
输入给隐藏层1:3X4=12个
隐藏层1输入给隐藏层2:4X4=16个
隐藏层2给输出层:4X1=4
总计:12+16+4=32
*关于感知机的权重数和偏移值如何训练,可以参照上一篇。
一个模型是“全连接”意味着什么?——每个单元(都)为下一层的各单元提供输入。
一个模型是“前馈”的意味着什么?——每一层都无循环地为下一层提供输入。
*如图中的示例,3层的结构最终可以写成蓝框中的函数。
*而一个线性函数在任何深度都还是一个线性函数。(不足以解决异或等问题)
3 神经网络架构:激活函数——Neural network architecture: activation functions
核心理念:使用连接的神经元,以非线性变换的方式输入有用的特征值,以用于预测。
模拟神经元激活的过程,使每个计算单元的加权输入应用一个非线性的“激活”函数。
*Sigmoid函数通常被称为S型函数或S型增长曲线。
*ReLU是线性整流函数(Linear rectification function) 的缩写,又称为修正线性单元。它有着更快的计算速度——从各公式的区别可以看出(exp计算越多就越慢)。
方法:使用如下参数的ReLU函数。(初始的权重值和偏移值如图,z对应计算过权重和之后的输入值)
*当输入为0和0时,乘积都是0,max值也是0。最后输出0。
*当输入0和1时,上方0*1+1*1+0=1,max(0,1)输出1;下方0*1+1*1-1=0,max(0,0)输出0;
*当输入1和0时,上方1*1+0*1+0=1,输出max(0,1)=1;下方1*1+0*1-1=0,输出max(0,0)=0;总输出max(0,1)=1。
*当输入1和1时,上方1*1+1*1+0=2,输出max(0,2)=2;下方1*1+1*1-1=1,输出max(0,1)=1;总输出max(0,0)=0。
(蓝字)神经网络可以用类似的数学建模方式来解决异或问题。
*总的来说,建模异或计算是通过一组预先设计的激活函数的方式。
4 神经网络架构:输出单元——Neural network architecture: output units
*这里值输出值也不是直接线性输出,而是对于最终输入的值(分值)需要额外做一定的预判或处理。
*应用于二元分类时,这里对函数补充了逻辑分段,当大于0.5时,输出1;否则输出0。
(对于图像识别的例子)有着最大概率的值会被分派为图像的类型。
理想状态下,仅有一个概率为1的热向量,其它输入概率都为0。
(图中蓝字)在保持原始分值顺序的情况下处理负值;e使得负数分值变成略大于0,而正分值呈指数增长(使用e作为指数基,是因为它比其它值更利于训练时简化数学计算)。
*图中i代表样本的序号,K是类型数量(j是类型数量累加的下标)。除以框体中分母则是归一化计算的过程。
*图中展示了转化成概率分布的两种情况——非归一化的概率、和归一化的概率。
*所以图中的分类判定结果为Airplane——飞机。
这里看一下树状分类图(从左到右、从上到下依次为):
从本篇可以看出,其实神经网络建模就是不断抽象各种数学模型以解决逻辑思考中会遇到的各种问题的过程。这次读到的内容不太涉及训练的过程,而是对预设的激活函数和输出函数有了更多的挖掘。
结合上一篇感知机(对应神经网络中的神经单元)的训练,至少我个人对于前馈式神经网络的基本原理和能解决的问题已经有了基本的理解。后续也会读到更多越来越复杂的结构,而“神经网络”这一概念会越来越接近最新的样子。
评论区
共 条评论热门最新