机器学习笔记:神经网络

时间:2022-12-25 15:40:24

神经网络

神经网络包含输入层、隐藏层和输出层三层(隐藏层可以有多层)
在每个节点,我们选择一个函数,用以指示每个节点对输入的响应程度。
在神经网络中,我们通常选择S型函数(如tanh, logistic function)来计算神经元的输出。
以Logistic function为例

1. 模型表示

机器学习笔记:神经网络

2. 前向反馈(Feeding Forward)

Θ1,Θ2 分别是输入层与隐藏层、隐藏层与输出层之间的权重。
K为输出节点的个数。

正则化的损失函数(Regularized Cost Function)

without regularization

J(θ)=1mi=1mk=1K[y(i)klog((hθ(x(i)))k)(1y(i)k)log(1(hθ(x(i)))k)]

Regularized cost function
J(θ)=1mi=1mk=1K[y(i)klog((hθ(x(i)))k)(1y(i)k)log(1(hθ(x(i)))k)]+λ2mj=125k=1400(Θ(1)j,k)2+j=110k=125(Θ(2)j,k)2

本例中,输入节点个数为400,隐藏层节点个数维25,输出层节点个数为10。

梯度(Gradient)

J(θ)θ0=1mi=1m(hθ(x(i))y(i))x(i)jfor j=0

J(θ)θj=1m(i=1m(hθ(x(i))y(i))x(i)j+λθj)for j1

前向反馈(Feed Forward)

Input Layer:a(1)Hidden Layer:z(2)a(2)Output Layer:z(3)a(3)=x(add a(1)0)=Θ(1)a(1)=g(z(2))(add a(2)0)=Θ(2)a(2)=g(z(3))=hθ(x)

3. 反向传播(Backpropagation)

执行步骤:
1.计算每一层输出结果与期望结果之间的差距

Output Layer:δ(3)jHidden Layer:δ(2)j=a(3)jyj=(Θ(2))Tδ(3).g(z(2))(remove δ(2)0)

2.计算每一层的累积梯度
Δ(l)=Δ(l)+δ(l+1)(a(l))T

其中l指层数
3.计算得到损失函数的梯度
Θ(l)i,jJ(Θ)=D(l)i,j=1mΔ(l)i,j

4.使用梯度下降法更新权值
Θ(l)i,j=Θ(l)i,jΘ(l)i,jJ(Θ)