开发者学堂课程【神经网络概览及算法详解:多层感知-2】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/40/detail/927
多层感知-2
内容简介:
一、playground 演示
二、不同隐藏层的 MLP 的分类能力
一、playground 演示
大家都知道线性不可分,例如异或问题,用单层感应器解决不了,通过增加一个隐藏层之后,就可以很好的解决这个问题。一个非常著名的网站,叫playground,网址是playground.tensorflow.org,这里面有一个可视化的例子,可以非常直观的看到隐藏层的作用。
上图左侧就是输入的变量,有几种数据集可以选择,分为球形、两类交叉型、明显聚类、螺旋线型。我们可以设置一个输入节点,选择两类交叉型,中间部分代表隐层数量,选择没有隐层。最右边的代表输出层,点击开始按钮,可以从最右面的动态图中发现开始训练,通过线条来表示训练结果的分类。下图右侧为训练结果图示。
该试验是只选择一个隐层。增加隐层节点,分类效果会更加好。可以增加隐层数,或者增加特征,除了原生特征x1、x2还可以增加衍生特征x21、x22。
训练时,通过一阵子训练后就可以很好的把数据进行分类。大家还需要自己花时间去理解隐层个数,隐层节点的个数等问题。
二、不同隐藏层的 MLP 的分类能力
另外还总结了不同隐藏层的MLP的分类能力。
最左侧是个感知器的结构,若没有隐藏层,则他是一个单层感知器,解决不了异或问题,也解决不了复杂的非线性问题,判决域的图形就是画一条直线,为一个半平面。如果有一个隐层,相当于单隐层的多层感知器,可以通过画两条直线,解决异或问题,但复杂的问题,也很难分的很准确,其判决形状类似于凸域。在隐层的每一个节点都可以有一条直线。
做异或时,隐藏层有两个节点,每一个节点都对应了一条判决直线,如果单隐层有多条直线,多个节点时,可以画出多个直线来对样本数据进行分割。如果是双隐层,就可以很好的把异或问题分开,对于复杂问题,也可以精准的隔开,他的判决形状就是任意复杂的形状域。双隐层的神经网络理论上可以做复杂任意形状的分类。