《机器学习》学习笔记4:神经网络概述

Week4 神经网络概述
基于吴恩达《机器学习》课程
参考黄海广的笔记
本篇博客为第四周的内容。


W4 神经网络概述

8 神经网络概述(Neural Networks: Representation)

普通的线性和逻辑回归模型,当特征太多时,计算的负荷会非常大,不能有效地处理这么多的特征,这时候我们需要神经网络。这周的内容主要是建立神经网络模型并理解如何运行。

8.1 神经元

神经网络模型建立在很多神经元之上,这些神经元(也叫激活单元,activation unit )采纳一些特征作为输入,并且根据本身的模型提供一个输出。以逻辑回归模型 作为自身学习模型的神经元(2层网络)如下图:
[)(image/image.png)]
x 0 , x 1 , x 2 , x 3 x_0,x_1,x_2,x_3 x0,x1,x2,x3为输入的特征,其中 x 0 = 1 x_0=1 x0=1为偏置单元(bias unit ),根据情况画入神经网络模型中。参数 θ \theta θ又称为权重(weight )。 h θ ( x ) = 1 1 + e − θ T X h_\theta \left( x \right)=\frac{1}{1+{{e}^{-\theta^{T}X}}} hθ(x)=1+eθTX1称为激活函数(activation function ),通过输入特征按权重计算激活函数决定输出的神经元是否被激活。

8.2 神经网络模型

神经网络模型 是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。

下图为一个3层的神经网络。第一层成为输入层(Input Layer ),用于输入原始数据;最后一层称为输出层(Output Layer ),负责计算 h θ ( x ) h_\theta \left( x \right) hθ(x);中间一层成为隐藏层(Hidden Layers ),负责处理第一层数据后呈递给下一层。我们为每一层都增加一个偏差单位(bias unit ):
在这里插入图片描述

a i ( j ) a_{i}^{\left( j \right)} ai(j) 代表第 j j j 层的第 i i i 个激活单元。

Θ ( j ) {{\Theta }^{\left( j \right)}} Θ(j)代表从第 j j j 层映射到第 j + 1 j+1 j+1层时的权重的矩阵,例如 Θ ( 1 ) {{\Theta }^{\left( 1 \right)}} Θ(1)代表从第一层映射到第二层的权重的矩阵。其尺寸为:以第 j + 1 j+1 j+1层的激活单元数量为行数,以第 j j j 层的激活单元数加一为列数的矩阵(后一层不算偏置单元,前一层算)。例如上图所示的神经网络中 Θ ( 1 ) {{\Theta }^{\left( 1 \right)}} Θ(1)的尺寸为 3 ∗ 4 3*4 34

对于上图所示的模型,激活单元和输出分别表达为:

a 1 ( 2 ) = g ( Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 ) = g ( z 1 ( 2 ) ) a_{1}^{(2)}=g(\Theta _{10}^{(1)}{{x}_{0}}+\Theta _{11}^{(1)}{{x}_{1}}+\Theta _{12}^{(1)}{{x}_{2}}+\Theta _{13}^{(1)}{{x}_{3}})=g(z_1^{(2)}) a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)=g(z1(2))

a 2 ( 2 ) = g ( Θ 20 ( 1 ) x 0 + Θ 21 ( 1 ) x 1 + Θ 22 ( 1 ) x 2 + Θ 23 ( 1 ) x 3 ) = g ( z 2 ( 2 ) ) a_{2}^{(2)}=g(\Theta _{20}^{(1)}{{x}_{0}}+\Theta _{21}^{(1)}{{x}_{1}}+\Theta _{22}^{(1)}{{x}_{2}}+\Theta _{23}^{(1)}{{x}_{3}})=g(z_2^{(2)}) a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)=g(z2(2))

a 3 ( 2 ) = g ( Θ 30 ( 1 ) x 0 + Θ 31 ( 1 ) x 1 + Θ 32 ( 1 ) x 2 + Θ 33 ( 1 ) x 3 ) = g ( z 3 ( 2 ) ) a_{3}^{(2)}=g(\Theta _{30}^{(1)}{{x}_{0}}+\Theta _{31}^{(1)}{{x}_{1}}+\Theta _{32}^{(1)}{{x}_{2}}+\Theta _{33}^{(1)}{{x}_{3}})=g(z_3^{(2)}) a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)=g(z3(2))

h Θ ( x ) = g ( Θ 10 ( 2 ) a 0 ( 2 ) + Θ 11 ( 2 ) a 1 ( 2 ) + Θ 12 ( 2 ) a 2 ( 2 ) + Θ 13 ( 2 ) a 3 ( 2 ) ) {{h}_{\Theta }}(x)=g(\Theta _{10}^{(2)}a_{0}^{(2)}+\Theta _{11}^{(2)}a_{1}^{(2)}+\Theta _{12}^{(2)}a_{2}^{(2)}+\Theta _{13}^{(2)}a_{3}^{(2)}) hΘ(x)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))

向量化 的方法,使: x = [ x 0 x 1 x 2 x 3 ] = a ( 1 ) {{x}}=\begin{bmatrix} {x_0} \\{x_1}\\{x_2}\\{x_3}\end{bmatrix}={{a}^{\left( 1 \right)}} x=x0x1x2x3=a(1)作为输入的 原始特征数据 z ( 2 ) = [ z 1 ( 2 ) z 2 ( 2 ) z 3 ( 2 ) ] {{z}^{(2)}}=\begin{bmatrix} {z_{1}^{(2)}} \\{z_{2}^{(2)}}\\{z_{3}^{(2)}} \end{bmatrix} z(2)=z1(2)z2(2)z3(2),

所以有: z ( 2 ) = Θ ( 1 ) x = Θ ( 1 ) a ( 1 ) {{z}^{\left( 2 \right)}}={{\Theta }^{\left( 1 \right)}}x={{\Theta }^{\left( 1 \right)}}{{a}^{\left( 1 \right)}} z(2)=Θ(1)x=Θ(1)a(1),则 a ( 2 ) = g ( z ( 2 ) ) {{a}^{\left( 2 \right)}}=g({{z}^{\left( 2 \right)}}) a(2)=g(z(2)) ,此时得到 a ( 2 ) = [ a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] {{a}^{\left( 2 \right)}}=\begin{bmatrix} {a_{1}^{(2)}} \\{a_{2}^{(2)}}\\{a_{3}^{(2)}} \end{bmatrix} a(2)=a1(2)a2(2)a3(2)

a ( 2 ) {{a}^{\left( 2 \right)}} a(2)中添加偏置单元 a 0 ( 2 ) = 1 a_{0}^{\left( 2 \right)}=1 a0(2)=1,得到 a ( 2 ) = [ a 0 ( 2 ) a 1 ( 2 ) a 2 ( 2 ) a 3 ( 2 ) ] {{a}^{\left( 2 \right)}}=\begin{bmatrix} {a_{0}^{(2)}} \\{a_{1}^{(2)}} \\{a_{2}^{(2)}}\\{a_{3}^{(2)}} \end{bmatrix} a(2)=a0(2)a1(2)a2(2)a3(2)

此时 a ( 2 ) {{a}^{\left( 2 \right)}} a(2)作为 新特征数据 传递给第二层,继续计算: z ( 3 ) = Θ ( 2 ) a ( 2 ) {{z}^{\left( 3 \right)}}={{\Theta }^{\left( 2 \right)}}{{a}^{\left( 2 \right)}} z(3)=Θ(2)a(2),即可得到:

h Θ ( x ) = a ( 3 ) = g ( z ( 3 ) ) {{h}_{\Theta }}(x)={{a}^{\left( 3 \right)}}=g({{z}^{\left( 3 \right)}}) hΘ(x)=a(3)=g(z(3))

这只是针对训练集中一个训练实例所进行的计算。如果我们要对整个训练集进行计算,我们需要将训练集特征矩阵进行转置 X T {{X}^{T}} XT ,使得同一个实例的特征都在同一列里 。即:

z ( 2 ) = Θ ( 1 ) × X T {{z}^{\left( 2 \right)}}={{\Theta }^{\left( 1 \right)}}\times {{X}^{T}} z(2)=Θ(1)×XT

我们可以把中间层的 a 0 , a 1 , a 2 , a 3 a_0, a_1, a_2, a_3 a0,a1,a2,a3看成更为高级的特征值,也就是 x 0 , x 1 , x 2 , x 3 x_0, x_1, x_2, x_3 x0,x1,x2,x3的进化体,且由上一层的 x x x θ \theta θ决定的。因为 θ \theta θ是梯度下降的,所以 a a a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比 x x x的多次项厉害,也能更好的预测新数据。 这就是神经网络相比于逻辑回归和线性回归的优势。

在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层做出的预测利用的是第二层的特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。

8.3 直观理解特征和权重的作用

神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND )、逻辑或(OR )、逻辑非(NOT )。为了表示不同的运算符,我们只需要选择不同的权重即可。

我们知道 g ( x ) g(x) g(x)的图像是:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B9zrKmzN-1632932063461)(image/image_2.png)]
下图的神经元(三个权重分别为-30,20,20)可以被视为作用同于逻辑与(AND ),输出函数 h Θ ( x ) h_\Theta(x) hΘ(x)即为: h Θ ( x ) = g ( − 30 + 20 x 1 + 20 x 2 ) h_\Theta(x)=g\left( -30+20x_1+20x_2 \right) hΘ(x)=g(30+20x1+20x2),通过 g ( x ) g(x) g(x)的图像可写出真值表:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NeYlMQD1-1632932063462)(image/image_3.png)]
下图的神经元(三个权重分别为-10,20,20)可以被视为作用等同于逻辑或(OR ):
在这里插入图片描述

下图的神经元(两个权重分别为 10,-20)可以被视为作用等同于逻辑非(NOT ):
在这里插入图片描述

我们可以利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。例如我们要实现XNOR (异或非)功能,即输入的两个值必须一样,均为1或均为0:

XNOR = ( x 1   AND   x 2 )   OR ( ( NOT   x 1 ) AND ( NOT   x 2 ) ) \text{XNOR}=( \text{x}_1\, \text{AND}\, \text{x}_2 )\, \text{OR} \left( \left( \text{NOT}\, \text{x}_1 \right) \text{AND} \left( \text{NOT}\, \text{x}_2 \right) \right) XNOR=(x1ANDx2)OR((NOTx1)AND(NOTx2))

首先构造一个能表达 ( NOT   x 1 ) AND ( NOT   x 2 ) \left( \text{NOT}\, \text{x}_1 \right) \text{AND} \left( \text{NOT}\, \text{x}_2 \right) (NOTx1)AND(NOTx2)部分的神经元,然后将它和表示 AND 的神经元以及表示 OR 的神经元进行组合,我们就得到了一个能实现 XNOR \text{XNOR} XNOR 运算符功能的神经网络。
在这里插入图片描述
按这种方法我们可以逐渐构造出越来越复杂的函数,也能得到更加适用的特征值。这就是神经网络的优异之处。

8.4 多类分类问题

分类大于两种时,可以使用神经网络算法。

如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。

每一个数据在输出层都会出现 [ a   b   c   d ] T {{\left[ a\text{ }b\text{ }c\text{ }d \right]}^{T}} [a b c d]T,且 a , b , c , d a,b,c,d a,b,c,d中仅有一个为1,表示当前类。下面是该神经网络的可能结构示例:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值