【机器学习笔记】第6章:神经网络:表示

第6章:神经网络:表示

6.1 非线性假设 Non-linear hypotheses

非线性分类的例子:
在这里插入图片描述
非线性假设,会因为特征量的增多导致二次项数的剧增,从而增大计算负荷。
在线性回归和逻辑回归中,使用非线性的多项式项,能够帮助我们建立更好的分类模型。但是当特征太多时,会导致计算量巨大。例如在房价预测中,房屋有100个特征变量,用这100个特征来构建一个非线性的多项式模型,即便我们只采用二次项 x i x j x_ix_j xixj,也有约5000个二次项数。

关于计算机视觉的例子:
假设需要使用机器学习算法训练一个分类器,用来检测图像判断是否是汽车。
在这里插入图片描述
假如我们将图片的像素值作为特征,只选用灰度图片,每个像素则只有一个值(非RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法,利用这两个像素的值来判断图片上是否是汽车。一个50×50像素的图片,拥有的特征量为2500,那么它的二次项数为2500×2500/2(约3百万个)。普通的逻辑回归模型,不能有效地处理这么多的特征,而神经网络被认为是在学习复杂的非线性假设时很好的算法。

6.2 模型表示 Model representation

在一个神经网络里或在我们实现的人工神经网络里。我们将使用一个很简单的模型来模拟神经元的工作,将神经元模拟成一个逻辑单元。
在这里插入图片描述
这就是一个简单的模型,模拟神经元,可以将上图中的黄色圈看成类似于神经元细胞的东西,通过输入通道传递给它一些信息,经过神经元做一些计算,通过输出通道输出计算结果 h θ ( x ) h_\theta(x) hθ(x),这里的 h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1
参数向量:
在这里插入图片描述
上述的图中定义的是一个带有sigmoid或logistic激活函数的人工神经元,在神经网络中,激活函数是指非线性函数 g ( z ) g(z) g(z),这里的 g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1。另外,参数 θ \theta θ也被称为权重。

神经网络其实是一组神经元连接在一起的集合:在这里插入图片描述
上图是一个三层神经网络,第一层为输入层,第二层为隐藏层(隐藏层可能不止一个),第三层为输出层。增加一个额外的 x 0 x_0 x0,它有时也被称为偏置单元或偏置神经元,一般设 x 0 = 1 x_0=1 x0=1

为了更好的解释这个神经网络具体的计算步骤,下面介绍符号解释:
a i ( j ) a_i^{(j)} ai(j)表示第j层第i个神经元或单位的激活项(指由一个具体神经元计算并输出的值);
Θ ( j ) \Theta^{(j)} Θ(j)表示权重矩阵,它控制从第 j j j层到第 j + 1 j+1 j+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) a 2 ( 2 ) = g ( Θ 20 ( 1 ) x 0 + Θ 21 ( 1 ) x 1 + Θ 22 ( 1 ) x 2 + Θ 23 ( 1 ) x 3 ) a_2^{(2)}=g(\Theta_{20}^{(1)}x_0+\Theta_{21}^{(1)}x_1+\Theta_{22}^{(1)}x_2+\Theta_{23}^{(1)}x_3) a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3) a 3 ( 2 ) = g ( Θ 30 ( 1 ) x 0 + Θ 31 ( 1 ) x 1 + Θ 32 ( 1 ) x 2 + Θ 33 ( 1 ) x 3 ) a_3^{(2)}=g(\Theta_{30}^{(1)}x_0+\Theta_{31}^{(1)}x_1+\Theta_{32}^{(1)}x_2+\Theta_{33}^{(1)}x_3) a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3) h Θ ( x ) = a 1 ( 3 ) = g ( Θ 10 ( 2 ) a 0 ( 2 ) + Θ 11 ( 2 ) a 1 ( 2 ) + Θ 12 ( 2 ) a 2 ( 2 ) + Θ 13 ( 2 ) a 3 ( 2 ) ) h_\Theta(x)=a_1^{(3)}=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)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))
下面展示一个向量化的实现方法。
将激活函数 g ( z ) g(z) g(z)里的参数设为 z 1 ( 2 ) , z 2 ( 2 ) , z 3 ( 2 ) z_1^{(2)},z_2^{(2)},z_3^{(2)} z1(2),z2(2),z3(2),上标表示与第i层有关。得出: 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 3 ( 2 ) ) a_3^{(2)}=g(z_3^{(2)}) a3(2)=g(z3(2))向量化实现方法的过程:
在这里插入图片描述
这是计算 h Θ ( x ) h_\Theta(x) hΘ(x)的过程,也称为前向传播:依次计算激活项,从输入层到隐藏层再到输出层的过程。

6.3 例子和直观理解 Examples and intuitions

我们将通过例子来介绍神经网络如何计算复杂非线性函数的输入。
单层神经元的例子:

AND运算:
在这里插入图片描述
OR运算:
在这里插入图片描述
NOT运算:
在这里插入图片描述
我们可以将神经元组合成更加复杂的神经网络来实现更复杂的运算。
多层神经元的例子:

XNOR异或运算:XNOR=( x 1 x_1 x1 AND  x 2 x_2 x2) OR((NOT  x 1 x_1 x1) AND(NOT  x 2 x_2 x2))
在这里插入图片描述

6.4 多元分类 Multi-class classification

对于多分类问题,实现方法的本质是一对多,我们可以通过设置多个输出值来实现:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值