查看“︁多层感知器”︁的源代码
←
多层感知器
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{机器学习导航栏}} '''多层感知器'''({{lang-en|Multilayer Perceptron}},缩写:'''MLP''')是一种前向结构的[[人工神经网络]],映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。一种被称为[[反向传播算法]]的[[监督学习]]方法常被用来训练MLP。<ref>Rosenblatt, Frank. x. Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms. Spartan Books, Washington DC, 1961</ref><ref>Rumelhart, David E., Geoffrey E. Hinton, and R. J. Williams.“Learning Internal Representations by Error Propagation”. David E. Rumelhart, James L. McClelland, and the PDP research group.(editors), Parallel distributed processing: Explorations in the microstructure of cognition, Volume 1: Foundations. MIT Press, 1986.</ref> 多层感知器遵循人類神經系統原理,學習並進行數據預測。它首先學習,然後使用權重存儲數據,並使用算法來調整權重並減少訓練過程中的偏差,即實際值和預測值之間的誤差。主要優勢在於其快速解決複雜問題的能力。多層感知的基本結構由三層組成:第一輸入層,中間隱藏層和最後輸出層,輸入元素和權重的乘積被饋給具有神經元偏差的求和結點,主要優勢在於其快速解決複雜問題的能力。 <ref> Sustainable Construction Safety Knowledge Sharing: A Partial Least Square-Structural Equation Modeling and A Feedforward Neural Network Approach, Sustainability 2019, 11(20), 5831; https://doi.org/10.3390/su11205831 </ref> MLP是[[感知器]]的推广,克服了感知器不能对[[线性不可分]]数据进行识别的弱点。<ref>Cybenko, G. 1989. Approximation by superpositions of a sigmoidal function ''[[Mathematics of Control, Signals, and Systems]]'', 2(4), 303–314.</ref> == 理论 == === [[激活函数]] === 若每个神经元的激活函数都是线性函数,那么,任意层数的MLP都可被约简成一个等价的单层[[感知器]]。<ref>{{cite book |authorlink=Christopher M. Bishop |title=Neural Networks for pattern recognition |url=https://archive.org/details/neuralnetworksfo0000bish |edition=第一版 |year=1995 |publisher=Oxford University Press |location= |isbn=0198538642 }}</ref> 实际上,MLP本身可以使用任何形式的激活函数,譬如阶梯函数逻辑[[S函数|Sigmoid]]函数,但为了使用反向传播算法进行有效学习,激活函数必须限制为[[可微函数]]。由于具有良好可微性,很多[[S函数]],尤其是[[双曲正切函数]](Hyperbolic tangent)及[[逻辑函数]],被采用为激活函数。 在[[深度学习]]的最新发展中,线性整流(ReLU)更频繁地被用来克服与S函数相关的数值问题。 两个历史上常见的激活函数都是 [[S函数]],形式是 <math>y(v_i) = \tanh(v_i) </math> 和 <math>y(v_i) = (1+e^{-v_i})^{-1}</math>。 第一个是个[[双曲函数|双曲正切函数]],值域为 -1 到 1;第二个是个[[邏輯函數|逻辑函数]],形状很相似但是值域为 0 到 1。令 y<sub>i</sub> 为第 i 个节点(神经元)的输出,而 v<sub>i</sub> 是输入连接的加权和。也有其他的激活函数,例如[[线性整流函数]],[[径向基函数]](用于[[径向基函数网络]],另一种监督神经网络模型)。 === 层 === MLP由三层或更多层非线性激活节点组成(一个输入层和一个具有一个或多个隐藏层的输出层)。由于多层互连是完全连接的,所以一层中的每个节点都以一定的权重 w<sub>ij</sub> 连接到下一层的每个节点。 === 学习 === MLP 在感知器中进行学习,通过每次处理数据后改变连接权重,降低输出与预测结果的误差量。这是[[監督式學習|有监督学习]]的一个例子,通过反向传播来实现,[[反向传播算法|反向传播]]是线性感知器中[[最小均方滤波器|最小均方算法]]的推广。 我们可以将输出节点 j 的第 n 个数据点的误差表示为 <math>e_j(n)=d_j(n)-y_j(n)</math>,其中 d 是目标值,y 是由感知器预测的值。调整节点权重的方式是,尝试通过修正节点权重最小化输出的整体误差 : <math>\mathcal{E}(n)=\frac{1}{2}\sum_j e_j^2(n)</math>. 使用[[梯度下降法|梯度下降]],每个权重的修正量为 : <math>\Delta w_{ji} (n) = -\eta\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} y_i(n)</math> 其中 y<sub>i</sub> 是前一个神经元的输出,η是学习率。η需要精心挑选,保证权重可以快速收敛而不发生震荡。 式中的导数取决于局部场 v<sub>j</sub>。场是变化的。很容易证明输出节点的导数可以简化为 : <math>-\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} = e_j(n)\phi^\prime (v_j(n))</math> 其中 <math>\phi^\prime</math> 是激活函数的导数。<math>\phi^\prime</math>是不变的。对于隐藏节点的权重变化,分析更加困难,但是可以看出相关的导数是 : <math>-\frac{\partial\mathcal{E}(n)}{\partial v_j(n)} = \phi^\prime (v_j(n))\sum_k -\frac{\partial\mathcal{E}(n)}{\partial v_k(n)} w_{kj}(n)</math>. 代表输出层的第k个节点的权重变化会影响这个导数。因此,为了改变隐藏层权重,输出层权重根据激活函数的导数而改变,因此该算法代表激活函数的反向传播<ref>{{cite book|last=Haykin|first=Simon|authorlink=Simon Haykin|title=Neural Networks: A Comprehensive Foundation|edition=2|year=1998|publisher=Prentice Hall|location=|isbn=0-13-273350-1}}</ref>。 == 术语 == 术语“多层感知器”不是指具有多层的单感知器,每一层由多个感知器组成。另一种说法是“多层感知器网络”。此外,MLP的“感知器”不是最严格意义上的感知器。真正的感知器在形式上是人工神经元的一个特例,它使用一个阈值激活函数,如[[单位阶跃函数|阶跃函数]]。MLP感知器可以使用任意激活函数。一个真正的感知器执行二进制分类(或者这个或者那个),一个MLP神经元可以自由地执行分类或者回归,这取决于它的激活函数。 后来应用术语“多层感知器”时,没有考虑节点/层的性质,节点/层可以由任意定义的人工神经元组成,而不是具体的感知器。这种解释避免了将“感知器”的定义放宽到一般意义上的人工神经元。 ==应用== 常被MLP用来进行学习的反向传播算法,在模式识别的领域中算是标准监督学习算法,并在计算神经学及并行分布式处理领域中,持续成为被研究的课题。MLP已被证明是一种通用的函数近似方法,可以被用来[[拟合]]复杂的函数,或解决[[分类]]问题。 MLP在80年代的时候曾是相当流行的机器学习方法,拥有广泛的应用场景,譬如语音识别、图像识别、机器翻译等等,但自90年代以来,MLP遇到来自更为简单的支持向量机的强劲竞争。近来,由于[[深度学习]]的成功,MLP又重新得到了关注。 == 文献 == {{reflist|2}} {{Differentiable computing}} [[Category:机器学习]] [[Category:人工智能]]
该页面使用的模板:
Template:Cite book
(
查看源代码
)
Template:Differentiable computing
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:机器学习导航栏
(
查看源代码
)
返回
多层感知器
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息