神经网络 Artificial Neural Network

原文:A Quick Introduction to Neural Networks

    人工智能神经网络(Artificial Neural Network)的设计灵感来自生物界神经网络传递信息的方式。神经网络在语音识别、机器视觉、文本处理等领域取得了许多突破性成果,在机器学习领域引发广泛关注,本文介绍一种特殊的人工智能神经网络——多层感知器(Multi Layer Perceptron)。

神经元    

    神经元是神经网络的基本单元,也称作节点(node)或单元(unit),他接收来自其他神经元或外界的输入信息,经过计算产生输出信息。每个输入关联一个权重(weight),权重体现了各输入信息之间的相对重要性。节点用一个函数 f 来计算所有输入的加权和,如下图所示。

图1: 神经元

    如图所示,神经元有输入数字 X1 和 X2,分别有权重 w1 和 w2,另外,有偏执项(Bias)输入 1,偏执项权重为 b。

    神经元输出 Y 的计算公式中 f 是一个非线性函数,叫做激活函数(Activation Function),加入激活函数能够产生非线性输出,这对于分析现实中的非线性数据非常重要。

    激活函数(或者称非线性函数)通过特定的数学运算将输入数值计算得出结果,常用的激活函数有:

    1、Sigmoid 函数:将输入值映射到 0 至 1 的区间内。

            σ(x) = 1 / (1 + exp(−x))

    2、tanh 函数:将输入值映射到 -1 至 1 的区间内。

            tanh(x) = 2σ(2x) − 1

    3、ReLU:将负数输出为 0,正数输出为其本身。

            f(x) = max(0, x)

    以上激活函数如下图所示。

图2:激活函数

前向传播神经网络

    前向传播神经网络是神经网络中最基本的结构,在每层(layers)中包含多个神经元,相邻层之间的节点可以互相连接,并指定连接的权重,如下图所示。

图3:前向传播神经网络

    前向传播神经网络可以包含三种类型的节点:

    1、输入节点:输入节点提供来自外界的输入,组成“输入层”,输入节点不包含任何计算,只是将输入传到神经网络内。

    2、隐含节点:隐含节点不与外界相连,将输入节点传来的信息经过计算后传给输出节点,一组隐含节点组成隐含层,一个前向传播神经网络只能有一个输入层和一个输出层,却可以没有隐含层或包含多个隐含层。

    3、输出节点:一组输出节点组成输出层,将网络内的信息传递到外界。

    在前向传播神经网络中,信息单向传播(输入节点 -> 隐含节点 -> 输出节点),网络中没有环路(与之对应的是递归神经网络 Recurrent Neural Network,其节点组成环形网络)

    两个前向传播神经网络的例子:

    1、单层感知器(Single Layer Perceptron):单层感知器是最简单的神经网络,他不包含隐含层。

    2、多层感知器(Multi Layer Perceptron):多层感知器包含一个或多个隐含层。

多层感知器(Multi Layer Perceptron)

    多层感知器包含一个或多个隐含层,可以学习非线性特征,下图展示了包含一个隐含层的多层感知器,其中的每个连接都有权重,但是图中只标出了3个(w0,w1,w2)。

    输入层:输入层有三个节点,偏执节点的值为 1,其他两个节点从外界传入输入 X1 和 X2,如上所述,输入层不包含计算过程,所以输入节点分别向隐含层输出 1、X1、X2。

    隐含层:隐含层也有三个节点,偏执节点的值为 1,其他两个节点根据输入层传来的输出及权重计算得出。下图展示了一个隐含节点的输出计算公式,公式中 f 是激活函数。计算出的输出被传入输出层。

图4:一个隐含层的多层感知器

    输出层:输出层有两个节点,对隐含层的输出进行计算,最终输出 Y1 和 Y2,作为整个多层感知器的输出

    给定一个特征集合 X = (x1, x2, …) 和目标 y,多层感知器能够学习到特征和目标之间的分类关系或回归性质。

    举例介绍多层感知器,比如我们如下的学生成绩数据

    两个输入列是学习时长和期中成绩,结果列是期末成绩,值是1或0,代表是否通过考试。例如,一个学生学习了35小时并在期中考试取得67分,那么他在期末通过了考试。

    现在,我们想预测一个学习了25小时并在期中考试取得70分的学生能否通过期末考试。

    这是一个典型的二分类问题,多层感知器能够从给定数据(训练数据)学习并给出预测值。

训练多层感知器:反向传播算法

    多层感知器的训练过程可以称为反向传播,理解反向传播,可以参考Quora(译文:逆向传播

    图5中的多层感知器的输入层有2个输入节点(不含偏执节点),各代表“学习时长”和“期中成绩”,隐含层有2个隐含节点(不含偏执节点),输出层有2个输出节点(上方的节点代表通过期末考试,下方的节点代表没通过考试)

    在分类任务中,我们经常使用 Softmax 函数作为输出层的激活函数,以获得各个输出的概率值(所有输出的概率值总和等于1)。Softmax 函数可以将一个向量映射成值为0到1之间的向量,且总和等于1,在此例中是:

    概率(考试通过)+ 概率(不通过)= 1

第一步:前向传播

    所有权重参数随机赋值,以图5中隐含节点 V 为例,假设该节点各个输入的权重是 w1、w2、w3。

    模型开始学习第一条数据(输入为35和67,输出为考试通过)。

    向模型输入:[35, 67]

    期望输出:[1, 0]

    V 节点的输出计算公式是:

            V =f (1*w1 + 35*w2 + 67*w3)

    同样,其他隐含层节点的输出也可以计算得出,隐含层的输出作为输出层的输入,这样就可以计算出最终要输出的概率。

    假设2个输出节点输出了0.4和0.6(权重的初始值不同,得到的结果也不同),与期望的1和0相差很大,由此可见,图5中的网络模型给出了“错误的输出“。

图5:多层感知器的前向传播

第二步:反向传播和权重更新

    计算输出节点的总误差,并利用反向传播(Backpropagation)将误差的梯度(gradients)传回,然后对权重值进行优化,以减小输出层的输出误差,优化方法可以采用梯度下降等方法,如图6所示。

    假设节点 V 更新后的输入权重是 w4、w5、w6。

图6:多层感知器的反向传播和权重更新

    如果再将同样的数据输入网络模型,由于权重向减小预测误差的方向发生了改变,模型应该有更准确的输出,如图7所示,输出节点的误差变为[0.2, -0.2],比之前的 [0.6, -0.4]有所降低,也就是说,网络模型能够更准确地预测第一条训练数据。

图7:多层感知器对同一输入的更准确预测

    对训练数据中的其他数据重复以上过程,我们说,网络模型学习了这些数据。

    此时预测一个学生学习时长是25,期中成绩是70,我们按照前向传播的步骤计算预测值

多层感知器的三维可视化

    Adam Harley将多层感知器在MNIST手写数字数据集上进行训练,并将训练好的模型进行三维可视化。

    该模型从28 x 28的手写数字图片中读取784个数值像素值作为输入,模型的第一个隐含层拥有300个节点,第二个隐含层拥有100个节点,输出层有10个节点(对应0至9的数字)。

    即使该模型的隐含层数和节点数远远多于上面学生成绩的例子,但是前向传播和反向传播的计算方法都是一样的。

    图8展示了该网络模型读取数字“5”的情景。

图8:网络模型读取数字“5”

    具有更高输出的节点用高亮颜色显示。对于输入层,接收了高数值像素值的节点以高亮显示,对于输出层,只有代表数字“5”的节点显示高亮(这意味着该节点的概率输出接近1,而其他节点的输出均接近0),这说明多层感知器可以对输入的数字进行正确的分类。

    若想了解更多信息可以点击查看原文链接

    其他机器学习、神经网络相关博文,请点这里

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351