机器学习(十一)——神经网络基础
(原创内容,转载请注明来源,谢谢)
一、概述
神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简单的神经网络如下图:
可以看出,三个输入,经过中间的变化,得到输出。中间橙色的圈,称为神经元。神经元可以分层,下图是三层神经网络模型:
其中,第一层蓝色的圈,叫做输入层;中间一层橙色的圈叫做隐藏层;右边的橙色圈叫做输出层。神经网络有一个输入层和一个输出层,隐藏层可以有多层。神经元的连接方式,称为神经网络的架构。
二、基本公式
上图的三层神经网络,ai(j)表示的是第j层、第i个变量。每个变量都是由上一层计算得到的,计算公式如下图:
用zi(j)表示对应的ai(j)的式子中的g函数内部的式子,可以看出,神经元实质上就是输入的变量经过若干个线性变换,得到输出。
上图的xi,都省略了x0,x0一直都是1。另外,g(z)即logistic回归中的g(z)函数,即g(z)=1/(1+e-θTx)
三、具体例子
现要使用神经网络实现与、或、非、异或的逻辑运算。
1、与
假设有两个特征值x1、x2,他们的取值范围是0或1,y=x1&&x2,由g(z)的公式,可以大致推导出,z=4时y约等于1,z=-4时y约等于0。则可以假设h(x)=g(z)=g(-30+20x1+20x2)(其中x0=1),神经网络如下图所示:
则此时即表示实现了一个具有“与”功能的神经元。
2、或
类似与,或可以用如下假设方式:
3、非
非的表示方式如下:
4、非异或
非异或(XNOR),即异或的结果再进行非操作。此时,用到了三层的神经网络,中间一层是隐藏层,用于计算异或,并把结果传到第三层进行处理后输出。
根据异或的公式,可以知道x1XOR x2,则x1或x2中1个是1的时候结果是1,否则是0,则XNOR则是x1和x2都是1,或者x1和x2都不是1的情况。
因此,第二层,则计算了x1和x2都是1,或者x1和x2都不是1的情况。分别是红色的圈和蓝色的圈的表示。
第三层进行或运算,接收第二层的结果。
四、多变量情况
多变量情况,类似上面的内容,下面是例如要区分一个图片是轿车、人、摩托车、卡车的简易神经网络(没有具体过程,就是粗略模型)。
实际上,就是将输入的图片的像素点,经过若干隐藏层的处理后,进行输出。
——written by linhxx 2018.01.09