8.神经网络学习

8 神经网络学习

8.1 非线性假设

当特征数量n很大时,使用线性回归或逻辑回归进行拟合会让特征空间急剧膨胀,复杂度高且容易过拟合。

image-20241225085717427

eg当输入是50*50像素的灰度图像时,$n=50\times50=2500$假设我们只考虑二次特征,那么二次特征($x_i\times x_j$)的数量为$\frac{n^2}{2}$,计算量大。

image-20241225091144996

8.2 模型表示

我们定义一个简单的逻辑单元,其中$x_1, x_2, x_3$作为输入,$x_0$称为偏差($x_0$恒为1),$h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}$是输出,sigmoid$g(z)=\frac{1}{1+e^{-z}}$是激活函数.$\theta$称为参数或权重。

image-20241225093823220

当有多个逻辑单元(神经元)连在一起的时候,形成神经网络。其中第一层称为输入层(input layer),最后一层称为输出层(output layer),其余层被称为隐藏层(hidden layer)

image-20241225094829711

$a_i^{(j)}$表示第j层第i个神经元的输出,$\Theta^{(j)}$表示从第j层到第j+1层映射的权重矩阵。$\Theta_{ba}^{(j)}$其实就是表示从第j层的第a个单元到第j+1层第b个单元的权重

若第j层有$s_j$个神经元,第j+1层有$s_{j+1}$个神经元,那么参数矩阵$\Theta^{(j)}$的维度是$s_{j+1}\times(s_j+1)$。其中+1是因为第j层有偏差神经元默认隐藏了。eg$\Theta^{(1)}\in \mathbb{R}^{3\times4}$

image-20241225111757980

前向传播与向量实现:为了统一表示方法,我们将输入$x$表示为第1层的激活项$a^{(1)}=[x_0;x_1;x_2;x_3]$。记$z^{(2)}=\Theta^{(1)}a^{(1)}$, 第2层的激活项为$a^{(2)}=g(z^{(2)})\in \mathbb{R}^3$, 我们添加$a^{(2)}0$项,此时$a^{(2)}\in \mathbb{R}^4$. 重复以上过程,得到$z^{(3)}=\Theta^{(2)}a^{(2)}, h\Theta(x)=a^{(3)}=g(z^{(3)})$

image-20241225144138268

若遮住第1层,我们发现模型剩余部分就是逻辑回归,只是输入不再是$x_1,x_2,x_3$,而是$a^{(2)}_1,a^{(2)}_2,a^{(2)}_3$.这是从输入值学习得到的特征项。即神经网络并没有用输入特征$x_1,x_2,x_3$来训练逻辑回归,而是自己训练逻辑回归的输入$a_1,a_2,a_3$(复杂特征项)

我们也可以使用多项式项作为输入如$x_1x_2,x_2x_3$等,神经网络会灵活的尝试快速学习任意的特征项。体现在参数$\Theta$上。

image-20241225150431778

8.3 例子与直观理解

改变权重就能实现不同的逻辑

与运算:

image-20241225162516005

或运算:

image-20241225162639762

非运算:

image-20241225164429955

同或运算:

image-20241225164546834

通过不断用更深的层,可以计算更复杂的函数。每层都在上一层的基础上计算更复杂的方程。

8.4 多元分类

当有4个类别需要进行分类时,我们让神经网络的输出层拥有4个神经元,即输出$h_\Theta(x)\in \mathbb{R}^4$是4维向量。第i个神经元的输出表示是否为第i类。

image-20241225170428125

我们训练集中一个样本表示为$(x^{(i)},y^{(i)})$, 其中$x^{(i)}$是一张图像,$y^{(i)}$是独热编码,我们要训练模型$h_\Theta(x^{(i)})$,让它尽可能的接近$y^{(i)}$。其中$h_\Theta(x^{(i)})$和$y^{(i)}$都是4维的向量。

image-20241225170758496

8.神经网络学习
http://example.com/2025/02/16/8 神经网络学习/
作者
Dongxuan Liu
发布于
2025年2月16日
许可协议