[深度之眼机器学习训练营第四期]神经网络之模型表示

为什么要用神经网络?

为了获得非线性假设空间,我们引入神经网络模型。之前文章提到,对于分类问题,对数几率回归结合多项式特征可以得到非线性决策边界;而将多项式特则与线性回归结合也可以拟合非线性函数。既然我们已经可以得到非线性假设空间,为什么还要引入神经网络模型呢?这是因为当数据集特征数 d d d增大时,高阶多项式项的数量将以几何级数递增,特征空间也随之急剧膨胀。因此,我们需要神经网络模型来解决复杂的非线性问题。

模型表示

如图所示,神经网络模型通常按照一个输入层、若干隐藏层以及一个输出层的顺序组成,每一层由若干神经元组成。相邻两层之间的神经元通过参数(包括权重 W W W和偏置 b b b)矩阵连接。神经元可以被激活,激活信号沿着参数矩阵逐层向后传递到输出层。这里,我们用 Θ k , i ( j ) \Theta^{(j)}_{k,i} Θk,i(j)表示连接第 j j j层第 i i i个神经元与 j + 1 j+1 j+1层第 k k k个神经元的参数, a i ( j ) a_i^{(j)} ai(j)表示第 j j j层中第 i i i个激活单元。

在这里插入图片描述

将输入值从输入层逐层传递到输入层的过程叫做前向传播(Forward Propagation),这也是神经网络模型进行预测的基础。考虑只有一个隐藏层的神经网络:
[ x 0 x 1 x 2 x 3 ] → [ a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] → h θ ( x ) \begin{bmatrix}x_0 \\x_1 \\ x_2 \\ x_3 \end{bmatrix}\rightarrow\begin{bmatrix}a_1^{(2)} \\ a_2^{(2)} \\ a_3^{(2)} \\ \end{bmatrix}\rightarrow h_\theta(x) x0x1x2x3a1(2)a2(2)a3(2)hθ(x)
隐藏层中每个神经元的激活值为:
a 1 ( 2 ) = g ( Θ 1 , 0 ( 1 ) x 0 + Θ 1 , 1 ( 1 ) x 1 + Θ 1 , 2 ( 1 ) x 2 + Θ 1 , 3 ( 1 ) x 3 ) a 2 ( 2 ) = g ( Θ 2 , 0 ( 1 ) x 0 + Θ 2 , 1 ( 1 ) x 1 + Θ 2 , 2 ( 1 ) x 2 + Θ 2 , 3 ( 1 ) x 3 ) a 3 ( 2 ) = g ( Θ 3 , 0 ( 1 ) x 0 + Θ 3 , 1 ( 1 ) x 1 + Θ 3 , 2 ( 1 ) x 2 + Θ 3 , 3 ( 1 ) x 3 ) \begin{aligned} a_1^{(2)} &= g(\Theta_{1,0}^{(1)}x_0 + \Theta_{1,1}^{(1)}x_1 + \Theta_{1,2}^{(1)}x_2 + \Theta_{1,3}^{(1)}x_3) \\ a_2^{(2)} &= g(\Theta_{2,0}^{(1)}x_0 + \Theta_{2,1}^{(1)}x_1 + \Theta_{2,2}^{(1)}x_2 + \Theta_{2,3}^{(1)}x_3) \\ a_3^{(2)} &= g(\Theta_{3,0}^{(1)}x_0 + \Theta_{3,1}^{(1)}x_1 + \Theta_{3,2}^{(1)}x_2 + \Theta_{3,3}^{(1)}x_3) \end{aligned} a1(2)a2(2)a3(2)=g(Θ1,0(1)x0+Θ1,1(1)x1+Θ1,2(1)x2+Θ1,3(1)x3)=g(Θ2,0(1)x0+Θ2,1(1)x1+Θ2,2(1)x2+Θ2,3(1)x3)=g(Θ3,0(1)x0+Θ3,1(1)x1+Θ3,2(1)x2+Θ3,3(1)x3)


z k ( j + 1 ) = Θ k , 0 ( j ) x 0 + Θ k , 1 ( j ) x 1 + ⋯ + Θ k , d ( j ) x d z_k^{(j+1)} = \Theta_{k,0}^{(j)}x_0 + \Theta_{k,1}^{(j)}x_1 + \cdots + \Theta_{k,d}^{(j)}x_d zk(j+1)=Θk,0(j)x0+Θk,1(j)x1++Θk,d(j)xd

a 1 ( 2 ) = g ( z 1 ( 2 ) ) a 2 ( 2 ) = g ( z 2 ( 2 ) ) a 3 ( 2 ) = g ( z 3 ( 2 ) ) \begin{aligned}a_1^{(2)} = g(z_1^{(2)}) \\ a_2^{(2)} = g(z_2^{(2)}) \\ a_3^{(2)} = g(z_3^{(2)}) \end{aligned} a1(2)=g(z1(2))a2(2)=g(z2(2))a3(2)=g(z3(2))
那么
h Θ ( x ) = a 1 ( 3 ) = g ( Θ 1 , 0 ( 2 ) a 0 ( 2 ) + Θ 1 , 1 ( 2 ) a 1 ( 2 ) + Θ 1 , 2 ( 2 ) a 2 ( 2 ) + Θ 1 , 3 ( 2 ) a 3 ( 2 ) ) \begin{aligned} h_\Theta(x) = a_1^{(3)} = g(\Theta_{1,0}^{(2)}a_0^{(2)} + \Theta_{1,1}^{(2)}a_1^{(2)} + \Theta_{1,2}^{(2)}a_2^{(2)} + \Theta_{1,3}^{(2)}a_3^{(2)}) \end{aligned} hΘ(x)=a1(3)=g(Θ1,0(2)a0(2)+Θ1,1(2)a1(2)+Θ1,2(2)a2(2)+Θ1,3(2)a3(2))
这样,我们就计算出了 h Θ ( x ) h_\Theta(x) hΘ(x)的值,得到模型的预测结果。

上述过程推广到向量形式:
x = [ x 0 x 1 ⋮ x d ] , z ( j ) = [ z 1 ( j ) z 2 ( j ) ⋮ z s j ( j ) ] , a ( j ) = [ a 1 ( j ) a 2 ( j ) ⋮ a s j ( j ) ] \begin{aligned}x = \begin{bmatrix}x_0 \\ x_1 \\ \vdots \\ x_d\end{bmatrix},\quad z^{(j)} = \begin{bmatrix}z_1^{(j)} \\ z_2^{(j)} \\ \vdots \\ z_{s_j}^{(j)}\end{bmatrix}, \quad a^{(j)} = \begin{bmatrix}a_1^{(j)} \\ a_2^{(j)} \\ \vdots \\ a_{s_j}^{(j)}\end{bmatrix}\end{aligned} x=x0x1xd,z(j)=z1(j)z2(j)zsj(j),a(j)=a1(j)a2(j)asj(j)

z ( j ) = Θ ( j − 1 ) a ( j − 1 ) a ( j ) = g ( z ( j ) ) z ( j + 1 ) = Θ ( j ) a ( j ) \begin{aligned} z^{(j)} &= \Theta^{(j-1)}a^{(j-1)}\\ a^{(j)} &= g(z^{(j)})\\ z^{(j+1)} &= \Theta^{(j)}a^{(j)} \end{aligned} z(j)a(j)z(j+1)=Θ(j1)a(j1)=g(z(j))=Θ(j)a(j)

注意,如果网络模型的第 j j j层有 s j s_j sj个神经元,而第 j + 1 j+1 j+1层有 s j + 1 s_{j+1} sj+1个神经元,那么参数矩阵的维度(包含偏置项)为 s j + 1 × ( s j + 1 ) s_{j+1} \times (s_j + 1) sj+1×(sj+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值