返回第158章 查岗?(第1/3页)  重生学神有系统首页

关灯 护眼     字体:

上一章 目录 下一页

    如果说“感知机”是单个的神经元,那么“多层感知机”就是将分散的神经元,连接成了网络。

    在输入层和输出层之间,再加入若干层,每层若干个神经元。

    然后每一层的每个神经元,与下一层的每个神经元,都通过权重参数建立起连接……

    层与层之间,完全连接。

    也就是说,第i层的任意一个神经元,一定与第i+1层的任意一个神经元相连。

    这就是多层感知机,简称mlp。

    但仅仅简单组合在一起,还不算真正的“人工神经网络”,必须对“感知机”的基本结构,做出一定的改进。

    首先,必须加入隐藏层,以增强模型的表达能力。

    隐藏层可以有多层,层数越多,表达能力越强,但与此同时,也会增加模型的复杂度,导致计算量急遽增长。

    其次,输出层的神经元允许拥有多个输出。

    这样模型就可以灵活地应用于各种分类回归,以及其他的机器学习领域,比如降维、聚类等。

    此外,还要对激活函数做出扩展……

    前一篇“感知机”论文中,主要使用的是阶跃函数sign,虽然简单易用,但是处理能力有限。

    因此神经网络的激活函数,一般使用其他的非线性函数。

    备选的函数有很多:sigmoid函数,tanh函数,relu函数……

    江寒逐一进行了分析。

    通过使用多种性能各异的激活函数,可以进一步增强神经网络的表达能力。

    对于二分类问题,只需要一个输出神经元就够了。

    使用sigmoid作为激活函数,来输出一个0到1之间的数值,用来表示结果为1的概率。

    对于多类分类问题,一般在输出层中,安排多个神经元,每个分类一个。

    然后用softmax函数来预测每个分类的概率……

    描述完结构之后,就可以讨论一下“多层感知机”的训练了。

    首先是mlp的训练中,经典的前向传播算法。

    顾名思义,前向传播就是从输入层开始,逐层计算加权和,直到算出输出值。

    每调整一次参数值,就需要重头到尾重新计算一次。

    这样运算量是非常大的,如果没有强大的硬件基础,根本无法支撑这种强度的训练。

    好在现在已经是2012年,计算机性能已经足够强悍。

    前向传播无疑是符合直觉的,缺陷就是运算量很大,训练起来效率比较差。

    与“感知机”的训练相比,mlp的训练需要引入损失函数和梯度的概念。

    神经网络的训练,本质上是损失函数最小化的过程。

    损失函数有许多种选择,经典的方法有均方误差、交叉熵误差等,各有特性和利弊。

    整个训练过程是很清晰的。

    先随机初始化各层的权重和偏置,再以损失函数为指针,通过数值微分求偏导的办法,来计算各个参数的梯度。

    然后沿着梯度方向,以预设的学习率,逐步调整权重和偏置,就能求得最优化的模型……

    写完这些就足够了,再多的内容,可以安排在下一篇文章里。

    不过,江寒想了想,觉得这篇论文的内容,还是有点过于充实。

    仔细琢磨了一下,干脆将其一分为二。

    多层感知机的结构和前向传播的概述部分,单独成篇。

    神经网络训练中,关于激活函数和损失函数讨论的部分,再来一篇。

    然后分开投稿,这样不就可以多拿1个学术点了?

    反正学术点又不看

『加入书签,方便阅读』

上一章 目录 下一页