8.神经网络:演示部分

8.1 非线性假设

尽管我们前面介绍的线性回归和Logistic回归已经足以覆盖相当多的机器学习问题了,但是仍有一些不足,如下图所示:
在这里插入图片描述
我们可以看到,模型为了较好地拟合这些点,引入了非常多的二次项以及更高次项。然而,假如特征过多,这一方面会增加模型的求解难度,一方面很有可能过拟合。实际上,仅仅按照 x 1 2 , x 1 x 2 , x 1 x 3 . . . x 1 x n ; x 2 2 , x 2 x 3 . . . x_1^2,x_1x_2,x_1x_3...x_1x_n;x_2^2,x_2x_3... x12,x1x2,x1x3...x1xn;x22,x2x3...这样的二阶二次项作为模型的参数也足以增大我们的工作量(数量可达到 n ( n − 1 ) 2 ≈ n 2 2 \frac{n(n-1)}{2} \approx \frac{n^2}{2} 2n(n1)2n2)。但是若选择仅采用自身平方项,如 x 1 2 , x 2 2 . . . x n 2 x_1^2,x_2^2...x_n^2 x12,x22...xn2,又会极大削弱模型精度,难以实现较好的拟合状态。

接下来我们来介绍,为什么非线性的模型是必要的。
以一张50x50像素的汽车图片为例子:
在这里插入图片描述
我们现在仅选取两个像素点作为特征量送入学习算法,当样本量足够多的时候我们会得出这个图:
在这里插入图片描述
实际上,我们肯定不能仅选取两个特征,若把5050的图片特征全部用上,则一共会有2500个像素点,即2500个特征。若是进一步细化这些特征,将每个像素点用其RGB值代替,则一共有25003=7500个特征值。若采用上述2500个像素特征的二次项组合成新特征的话,那就是 250 0 2 2 ≈ 3 m i l l o n \frac{2500^2}{2} \approx 3millon 2250023millon。因此,简单的Logistic算法并不能满足我们的要求,所以引入神经网络。

8.2 神经网络初步概念

在这里插入图片描述
如图所示,黄色的⭕即可代表一个简单的神经元。它接受前向的输入,并且向后传递输出。这里补充了一个 x 0 x_0 x0,我们把它称为偏置单元,通常令其为1。

引入偏置单元的目的在于减小偏差。举个简单的例子,若是以0为分界线,那么估计值为1似乎不是很有说服力,而引入偏置项后,1变成10就很有说服力了。引入偏置项会使函数在0这个分界线左右的值陡然跃升,保证了激活的可靠性。具体例子可以看下面的8.5部分。

另外,我们称 g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1称为sigmoid激活函数

所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。引入激活函数是为了增加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。

还有,上述模型的 θ \theta θ一般被称为模型的参数,而在神经网络的文献里面,我们称之为权重

8.3 神经网络模型(Ⅰ)

神经网络实际上就是由一组堆叠起来的神经元构成的,如图所示:
在这里插入图片描述
(上图省去了所谓的偏置神经单元)
各层之间相互交叠,第一层(通常被称为输入层)接受外界输入。此后,上一层的输出往往会作为下一层的输入。最后一层(通常被称为输出层)将汇总倒数第二层的输出,通过赋予相应的权重后得出假设函数 h θ ( x ) h_{\theta}(x) hθ(x)的输出。
值得一提的是,在机器学习任务中,我们往往只能给出输入,期待输出,但是对于中间层(通常被称为隐含层)的工作原理是不甚了解的。也就是说,隐含层本身对我们来说是一个近似于黑箱子一样的存在。这也是神经网络理论的薄弱点之一。接下来我们将通过具体的数学公式来进行演示。

首先规定记号:
α j ( i ) \alpha_j^{(i)} αj(i):第i层 第j个的神经元的激活项(激活项即为其计算并输出的值)
θ ( j ) \theta^{(j)} θ(j):权重矩阵。它控制着每一层输出的权重。 θ m n ( j ) \theta_{mn}^{(j)} θmn(j)代表第j层神经元下的第m行第n列的值。也可以理解为前一层的第n个神经元到后一层第m个神经元输入权重。j从1开始计数,因为输入层没有前面神经元的输入,因此也就没有第0层的权重。

由此,我们可以导出下图(仍未补充出各层的偏置神经元):
在这里插入图片描述
这里也可以看出,如果没有 g ( z ) g(z) g(z),或者说 g ( z ) = 1 g(z)=1 g(z)=1,那么神经网络的本质就是一层层输入的线性组合。引入 g ( z ) g(z) g(z)即可以提高神经网络的非线性度。

8.4 神经网络模型(Ⅱ)

8.4.1 数学推导

根据上一节神经网络的简单分析,可以看出这是具有一点矩阵的影子在里面的。因此,接下来的数学推导也是按照矩阵进行分析的。
a 1 ( 2 ) = g ( Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 ) a_1^{(2)} = g(\Theta_{10}^{(1)}x_0 +\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3) a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)为例。我们令:
z 1 ( 2 ) = Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 z_1^{(2)} = \Theta_{10}^{(1)}x_0 +\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3 z1(2)=Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3
则有:
a 1 ( 2 ) = g ( z 1 ( 2 ) ) a_1^{(2)} = g(z_1^{(2)}) a1(2)=g(z1(2))
推广一下:
a 1 ( 2 ) = g ( z 1 ( 2 ) ) a_1^{(2)} = g(z_1^{(2)}) a1(2)=g(z1(2))
a 2 ( 2 ) = g ( z 2 ( 2 ) ) a_2^{(2)} = g(z_2^{(2)}) a2(2)=g(z2(2))
a 3 ( 2 ) = g ( z 2 ( 3 ) ) a_3^{(2)} = g(z_2^{(3)}) a3(2)=g(z2(3))
特别的, a 0 ( 2 ) = 0 a_0^{(2)} = 0 a0(2)=0
将上述的变量统一规划为一个矩阵:
a ( 2 ) = [ a 0 ( 2 ) a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] = g ( z ( 2 ) ) = g ( z 0 ( 2 ) z 1 ( 2 ) z 2 ( 2 ) z 3 ( 2 ) ) a^{(2)} = \begin{bmatrix} a_0^{(2)}\\\\ a_1^{(2)}\\ \\a_2^{(2)}\\\\a_3^{(2)} \end{bmatrix} =g(z^{(2)}) =g\begin{pmatrix} z_0^{(2)}\\\\ z_1^{(2)}\\ \\z_2^{(2)}\\\\z_3^{(2)} \end{pmatrix} a(2)= a0(2)a1(2)a2(2)a3(2) =g(z(2))=g z0(2)z1(2)z2(2)z3(2)

z ( 2 ) = [ z 0 ( 2 ) z 1 ( 2 ) z 2 ( 2 ) z 3 ( 2 ) ] = [ 1 Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 Θ 20 ( 1 ) x 0 + Θ 21 ( 1 ) x 1 + Θ 22 ( 1 ) x 2 + Θ 23 ( 1 ) x 3 Θ 30 ( 1 ) x 0 + Θ 31 ( 1 ) x 1 + Θ 32 ( 1 ) x 2 + Θ 33 ( 1 ) x 3 ] z^{(2)} = \begin{bmatrix} z_0^{(2)}\\\\ z_1^{(2)}\\ \\z_2^{(2)}\\\\z_3^{(2)} \end{bmatrix} =\begin{bmatrix} 1 \\\\\Theta_{10}^{(1)}x_0 +\Theta_{11}^{(1)}x_1+\Theta_{12}^{(1)}x_2+\Theta_{13}^{(1)}x_3\\\\\Theta_{20}^{(1)}x_0 +\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3 \\\\ \Theta_{30}^{(1)}x_0 +\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3 \end{bmatrix} z(2)= z0(2)z1(2)z2(2)z3(2) = 1Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3
而且,若将 x 0 , x 1 , x 2 , x 3 x_0,x_1,x_2,x_3 x0,x1,x2,x3这些输入变量也看成神经元,看成第一层的话,那么就有:
z ( 2 ) = Θ ( 1 ) X = Θ ( 1 ) a ( 1 ) z^{(2)} = \Theta^{(1)}X = \Theta^{(1)}a^{(1)} z(2)=Θ(1)X=Θ(1)a(1)
a ( 2 ) = g ( z ( 2 ) ) a^{(2)} = g(z^{(2)}) a(2)=g(z(2))
补充 a 0 ( 2 ) = 1 a_0^{(2)} = 1 a0(2)=1,则有:
z ( 3 ) = Θ ( 2 ) a ( 2 ) z^{(3)} = \Theta^{(2)}a^{(2)} z(3)=Θ(2)a(2)
a ( 3 ) = g ( z ( 3 ) ) a^{(3)} = g(z^{(3)}) a(3)=g(z(3))
在这里插入图片描述
图源b站BV1bx411M7Zx

8.4.2 其它

如果将隐藏层遮住,那么神经网络实际上很想线性回归,即通过输入的线性组合后作为结果输出。但是区别在于
g(x)的存在。
在这里插入图片描述
当然,也可以用其它的图来表示神经网络,如下:
在这里插入图片描述
这张图所展示的神经网络节点是在逐渐减少的。

8.5 例子和直觉理解(Ⅰ)

现在有这么个分类任务,即“逻辑与”任务。其真值表为:

情况结果
(0,0)0
(0,1)0
(1,0)0
(1,1)1

在这里插入图片描述
按照惯例,我们决定在输入层添加一个神经元:
在这里插入图片描述
现在我们手动赋予各输入神经元不同的权重,如下图所示:
在这里插入图片描述
如上图所示,此时的假设函数可以表示为:
h θ ( x ) = g ( − 30 + 20 x 1 + 20 x 2 ) h_\theta(x) = g(-30+20x_1+20x_2) hθ(x)=g(30+20x1+20x2)


为什么要取这样的参数值?
后面再说


此时,我们带入结果。但是需要补充一点sigmoid激活函数的性质,如下图所示:
在这里插入图片描述
在这里面我们可以看出,当输入值低于-4.6时,输出为0.01,近似于0;当输入值对应地大于4.6时,输入为0.99近似于1。
那么,带入输入则有:

输入结果
(0,0)g(-30) < g(-4.6) = 0.01
(0,1)g(-10) < g(-4.6) =0.01
(1,0)g(-10) < g(-4.6) = 0.01
(1,1)g(10) > g(4.6) = 1

完美契合了我们的预期要求,看来选择好的参数是一件很重要的事情。
同理,若是任务要求是“逻辑或”,我们也可以通过手动选取合适的参数来完成这一任务,如下所示:
在这里插入图片描述
若是要求“(NOT x1) AND (NOT x2)”,我们也可以实现:
在这里插入图片描述

现在,我们要综合上面的三种情况讨论“异或”问题。两个输入相同时即为×,两个输入相异时即为⚪。我们令结果为x时对应y = 1

而很显然,异或的情况可以表示为:
( x 1 ∩ x 2 ) ∪ ( ¬ x 1 ∩ ¬ x 2 ) (x_1 \cap x_2) \cup (\neg x_1\cap \neg x_2) (x1x2)(¬x1¬x2)

故我们先讨论 ( x 1 ∩ x 2 ) (x_1 \cap x_2) (x1x2)的神经网络,再讨论 ( ¬ x 1 ∩ ¬ x 2 ) (\neg x_1\cap \neg x_2) (¬x1¬x2)的神经网络,最后将这两者情况用“或”的神经网络穿起来。
很显然,我们现在需要一个非线性边界来进行分类。

在这里插入图片描述
在这里插入图片描述


见证奇迹!


8.7 多元分类

以下面的图为例:
在这里插入图片描述
我们要在一幅图片中识别出很多元素,行人,车,摩托车,卡车等等。此时问题就不是一个简单的二分类问题了,而是一个相当复杂的多分类问题。图中仅标出了四个元素需要我们识别,因此我们认为最终的神经网络输出层结果应当是四个。如上图所示,四维向量的不同值代表了不同的元素。
有点类似与独热编码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值