上一篇:多元线性回归–单个计算节点的模型
异或问题
异或问题,可以说是最简单的线性不可分问题,如图,点(1,1)和(0,0)是一类,(0,1)和(1,0)是一类。此时继续使用单层感知机模型(或者单层计算单元)的话,无法解决该问题。
为了更加直观的感受这个问题,可以使用下面这个工具(网页):tensorflow游乐场:网址是:
http://playground.tensorflow.org/
如图,这就是tensorflow-playground。这个东东对新手很友好!而且能直观地显示出分类超平面,神经网络的直观结构,能直接观察到损失的变化情况。
这里可以选择分类样本
设置一次性训练的样本,设置训练集和测试集的比例,设置噪声
从左到右依次是学习率、激活函数、正则化(防止过拟合)、正则化率、分类还是回归问题。
这里可以看到网络最终的输出(分类结果)
可以看到,当只有一个神经元时,其分类超平面仅为一条直线,无法解决该问题
但是,只要加上一层,就可以得到正确的分类超平面,使得样本正确分类。
实际上:一个三层的神经网络,可以以任意精度逼近任意函数这意味着,三层的神经网络其实就足够复杂,可以解决很多复杂的分类问题。
比如待分类样本呈螺旋排列,用下图所示的网络结构对其分类
可以看到,其分类超平面十分复杂。如果我们加大网络的隐藏节点个数,加深网络结构,就能得到更复杂的分类超平面,就能解决更复杂的问题。