神经网络(非线性分类)
产生的原因:尝试设计模仿大脑的算法。
神经元表示一个逻辑运算单元。
单一神经元的神经网络表示如下图:

一般只绘制x1,x2,x3,⋯。而x0称作偏置单元或偏置神经元,且x0总是等于1。
在描述神经元时,将之称为一个有S型函数或逻辑函数作为激励函数的人工神经元。
在神经网络术语中,激励函数是对类似非线性函数g(z)=11+e−z的另一个称呼。
模型参数θ=⎡⎣⎢⎢⎢θ0θ1θ2θ3⎤⎦⎥⎥⎥也称权重。
神经网络是由不同的神经元组合在一起:

其中,Layer1为输入层,Layer2为隐藏层,Layer3为输出层,Layer1和Layer2可添加偏置单元x0及a(2)0(值均总为1),神经网络中可包含多个隐藏层。
a(j)i表示第j层的第i个神经元或单元的激励函数,激励函数是指有一个具体神经元读入计算并输出值;
Θ(j)为神经网络第j层到第j+1层的权重控制矩阵。
a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)
如果神经网络中,第
j层有
sj个单元,第
j+1层有
sj+1个单元,则
Θ(j)为
sj+1×(sj+1)维的矩阵。
“+1”来自
Θ(j)中添加偏置单元
x0和
Θ(j)0,换句话说,输出节点不包含偏置节点,但输入节点会包括。
令Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3=Z(2)1Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3=Z(2)2Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3=Z(2)3
则x=⎡⎣⎢⎢⎢x0x1x2x3⎤⎦⎥⎥⎥ Z(2)=⎡⎣⎢⎢⎢Z(2)1Z(2)2Z(2)3⎤⎦⎥⎥⎥
⇒Z(2)=Θ(1)x(x也可以替换成a(1))
⇒a(2)=g(Z(2))得到a(2)1,a(2)2,a(2)3
⇒Adda(2)0=1
⇒Z(3)=Θ(2)a(2)
⇒hΘ(x)=a(3)=g(Z(3))
整个计算过程称为前向传播
将上述计算过程抽象化:
⇒Z(2)k=Θ(1)k,0x0+Θ(1)k,1x1+Θ(1)k,2x2+⋯+Θ(1)k,nxn
⇒x=⎡⎣⎢⎢⎢x0x1x2x3⎤⎦⎥⎥⎥ Z(j)=⎡⎣⎢⎢⎢Z(j)1Z(j)2Z(j)3⎤⎦⎥⎥⎥
⇒令x=a(1)→Z(j)=Θ(j−1)a(j−1)
⇒a(j)=g(Z(j))在a(j)中增加偏置单元a(j)0=1
⇒Z(j+1)=Θ(j)a(j)
⇒hΘ(x)=a(j+1)=g(Z(j+1))
应用举例:
利用神经网络计算y=x1 AND x2其中x1,x2∈{0,1}

加上偏置单元,上图变化如下:

Θ(1)=[−302020]
则:hΘ(x)=g(−30+20x1+20x2)
在g(z)函数中,当z=4.6时,g(z)=0.99≈1;当z=−4.6时,g(z)=0.01≈0
所以:
x10011x20101hΘ(x)g(−30)≈0g(−10)≈0g(−10)≈0g(10)≈1
同理:
利用神经网络计算y=x1 OR x2其中x1,x2∈{0,1}
Θ(1)=[−102020]
利用神经网络计算y=x1 NOR x2其中x1,x2∈{0,1}
Θ(1)=[10−20−20]
利用神经网络计算y=NOT x1其中x1∈{0,1}

Θ(1)=[10−20]
则:hΘ(x)=g(10−20x1)
x101hΘ(x)g(10)≈1g(−10)≈0