• 多层感知机概述——2020.2.15


    其他博客:

    多层感知机从零开始实现:https://www.cnblogs.com/somedayLi/p/12359167.html
    多层感知机简洁实现:https:////www.cnblogs.com/somedayLi/p/12359420.html

    一、隐藏层

        多层感知机在单层神经⽹络的基础上引⼊了⼀到多个隐藏层(hidden layer)。隐藏层位于输⼊层和输出层之间。下图展示了⼀个多层感知机的神经⽹络图,它含有⼀个隐藏层,该层中有5个隐藏单元。

        上图所示的多层感知机中,输⼊和输出个数分别为4和3,中间的隐藏层中包含了5个隐藏单元(hidden unit)。由于输⼊层不涉及计算,因此上图的多层感知机的层数为2。由上图可⻅,隐藏层中的神经元和输⼊层中各个输⼊完全连接,输出层中的神经元和隐藏层中的各个神经元也完全连接。因此,多层感知机中的隐藏层和输出层都是全连接层。

    二、激活函数

        上述问题的根源在于全连接层只是对数据做仿射变换(affine transformation)⽽多个仿射变换的叠加仍然是⼀个仿射变换。解决⽅法——引⼊⾮线性变换,即通过激活函数(activation function)实现非线性变换。关于激活函数,可以看我的另一篇博客激活函数总结,本书中列举的三个激活函数是:ReLU函数、sigmoid函数、tanh函数。

    三、多层感知机

        多层感知机是指——由全连接组成的神经网络,至少含有一个隐藏层,并且,每个隐藏层的输出均通过激活函数进行变换。多层感知机的层数和各隐藏层中隐藏单元个数都是超参数(超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据——百度百科)。以单隐藏层为例并沿⽤本节之前
    定义的符号(见下面引用内容),多层感知机按以下⽅式计算输出:

    给定⼀个⼩批量样本(X in R^{n imes d}) ,其批量⼤⼩为(n) ,输⼊个数为(d)。假设多层感知机只有⼀个隐藏层,其中隐藏单元个数为 。记隐藏层的输出(也称为隐藏层变量或隐藏变量)为(H),有(H in R^{n imes h})。因为隐藏层和输出层均是全连接层,可以设隐藏层的权重参数和偏差参数分别为(W_h in R^{d imes h})(b_h in R^{1 imes h}),输出层的权重和偏差参数分别为(W_o in R^{h imes q})(b_o in R^{1 imes q})

    [H = phi left( XW_h + b_h ight) \ O = HW_o + b_o ]

        其中(phi)表示激活函数。在分类问题中,我们可以对输出(O)做softmax运算,并使⽤softmax回归中的交叉熵损失函数。 在回归问题中,我们将输出层的输出个数设为1,并将输出(O)直接提供给线性回归中使⽤
    的平⽅损失函数。

    小结

    • 多层感知机在输出层与输⼊层之间加⼊了⼀个或多个全连接隐藏层,并通过激活函数对隐藏层输出进⾏变换。
    • 常⽤的激活函数包括ReLU函数、sigmoid函数和tanh函数。
  • 相关阅读:
    python 全栈开发,Day75(Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件)
    python 全栈开发,Day73(django多表添加,基于对象的跨表查询)
    python 全栈开发,Day72(昨日作业讲解,昨日内容回顾,Django多表创建)
    bootstrap源码里的function加上了+号
    php get set方法深入理解
    20160519
    NetStatusEvent info对象的状态或错误情况的属性
    php 代码大全
    常见HTTP状态(304,200等)
    php strtotime 和 date 日期操作
  • 原文地址:https://www.cnblogs.com/somedayLi/p/12313804.html
Copyright © 2020-2023  润新知