Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】

神经网络(非线性分类)
产生的原因:尝试设计模仿大脑的算法。

神经元表示一个逻辑运算单元。
单一神经元的神经网络表示如下图:
Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】
一般只绘制x1,x2,x3,。而x0称作偏置单元或偏置神经元,且x0总是等于1。

在描述神经元时,将之称为一个有S型函数或逻辑函数作为激励函数的人工神经元。
在神经网络术语中,激励函数是对类似非线性函数g(z)=11+ez的另一个称呼。

模型参数θ=[θ0θ1θ2θ3]也称权重。

神经网络是由不同的神经元组合在一起:
Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】
其中,Layer1为输入层,Layer2为隐藏层,Layer3为输出层,Layer1Layer2可添加偏置单元x0a0(2)(值均总为1),神经网络中可包含多个隐藏层。

ai(j)表示第j层的第i个神经元或单元的激励函数,激励函数是指有一个具体神经元读入计算并输出值;
Θ(j)为神经网络第j层到第j+1层的权重控制矩阵。

a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))

如果神经网络中,第j层有sj个单元,第j+1层有sj+1个单元,则Θ(j)sj+1×(sj+1)维的矩阵。
“+1”来自Θ(j)中添加偏置单元x0Θ0(j),换句话说,输出节点不包含偏置节点,但输入节点会包括。

Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3=Z1(2)Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3=Z2(2)Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3=Z3(2)

x=[x0x1x2x3] Z(2)=[Z1(2)Z2(2)Z3(2)]

Z(2)=Θ(1)x(x也可以替换成a(1))
a(2)=g(Z(2))得到a1(2),a2(2),a3(2)
Adda0(2)=1
Z(3)=Θ(2)a(2)
hΘ(x)=a(3)=g(Z(3))
整个计算过程称为前向传播

将上述计算过程抽象化
Zk(2)=Θk,0(1)x0+Θk,1(1)x1+Θk,2(1)x2++Θk,n(1)xn
x=[x0x1x2x3] Z(j)=[Z1(j)Z2(j)Z3(j)]
x=a(1)Z(j)=Θ(j1)a(j1)
a(j)=g(Z(j))a(j)中增加偏置单元a0(j)=1
Z(j+1)=Θ(j)a(j)
hΘ(x)=a(j+1)=g(Z(j+1))

应用举例:
利用神经网络计算y=x1 AND x2其中x1,x2{0,1}
Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】
加上偏置单元,上图变化如下:
Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】
Θ(1)=[302020]
则:hΘ(x)=g(30+20x1+20x2)
g(z)函数中,当z=4.6时,g(z)=0.991;当z=4.6时,g(z)=0.010
所以:

x1x2hΘ(x)00g(30)001g(10)010g(10)011g(10)1

同理:
利用神经网络计算y=x1 OR x2其中x1,x2{0,1}
Θ(1)=[102020]
利用神经网络计算y=x1 NOR x2其中x1,x2{0,1}
Θ(1)=[102020]

利用神经网络计算y=NOT x1其中x1{0,1}
Coursea-吴恩达-machine learning学习笔记(八)【week 4之Neural Networks: Representation】
Θ(1)=[1020]
则:hΘ(x)=g(1020x1)

x1hΘ(x)0g(10)11g(10)0