Andrew Ng机器学习入门学习笔记(四)之神经网络(一)

本文介绍了神经网络的优势,包括如何解决复杂的非线性分类问题,以及神经网络的基本模型构成。文章还详细阐述了神经网络的相关参数及前向传播计算过程,并通过实现简单的逻辑运算和复杂函数来展示神经网络的应用能力。

一.神经网络的优势

对于复杂的非线性分类问题,当特征变量个数n很大时,用逻辑回归时Sg(θTx)θTx如果用二次多项式表示,则二次项数目很多,约为n2,计算复杂度达到o(n2);如果用三次多项式表示,则三次项数目更多,复杂度达o(n3)

而神经网络能很好的解决上面那种复杂的非线性分类问题。

二.神经网络的模型

1.神经元的模型

这里写图片描述

图中橘黄色部分即为一个神经元,x1,x2,x3是其输入,hθ(x)=g(θTx)=11+eθTx,我们称这是一个以S型函数作为激励函数的人工神经元。

2.神经网络的模型

神经网络是一组神经元的组合,如下:

这里写图片描述

神经网络的模型分为输入层,隐藏层和输出层,其中隐藏层可能有多层。每个层次包含一个或多个单元。如上图中输入层包括x0,x1,x2,x3四个单元,其中x0=1是偏置单元。上图的隐藏层只有一层,加上偏置单元一共有四个单元。上图的输出层只有一个单元。

三.神经网络的相关参数及前向传播计算

a(j)i——第j层第i个神经元的激励

Θ(j)——权重矩阵,控制着从第j层到第j+1层的函数映射。(为了以示区别,这里是大写的Θ)

具体映射关系表现为:

a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)=g(z(2)1)
a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)=g(z(2)2)
a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)=g(z(2)3)

hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)

如果神经网络第j层有sj个单元,第(j+1)层有sj+1个单元,则Θ(j)就是一个sj+1(sj+1)维的矩阵。

如上图,Θ(1)是3*4的矩阵,Θ(2)是1*4的矩阵。

x=x0x1x2x3z(2)=z(2)1z(2)2z(2)3R3

根据上面的映射关系以及a(1)=x,可知
z(2)=Θ(1)x=Θ(1)a(1)
a(2)=g(z(2))R3

给第二层增加偏置单元 a(2)0=1 之后,a(2)R4,同理
z(3)=Θ(2)a(2)
hΘ(x)=a(3)=g(z(3))
这种从输入层的激励开始向前传播到隐藏层,再传播到输出层的行为叫做前向传播(Forward Propagation)。

看了这么多,神经网络到底在做什么呢?

对于上面神经网络的模型那张图,如果不看输入层,只看后面两层,则

hΘ(x)=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)
如果忽略一些上下标,则这看上去很像逻辑回归。

神经网络所做的事情很像逻辑回归,但它不是使用x0,x1,x2,x3作为输入特征来训练逻辑回归,而是通过另一组参数Θ(1)x0,x1,x2,x3映射为隐藏层的a(2)1a(2)2a(2)3作为输入特征。

四.利用神经网络解决复杂的非线性问题

1.首先用神经网络实现几个较为简单的例子:

①AND(与运算),其中x1,x2{0,1}y=x1 AND x2

按下图给神经网络分配权重,

这里写图片描述

hΘ(x)=a(2)=g(z(2))=g(Θ(1)a(1))=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2)=g(30+20x1+20x2)

又由于S型函数g(z)有在z>4.6时越来越接近1,在z<4.6时越来越接近0的趋势,如下图

这里写图片描述

故我们可以得到神经网络的输出和输入的关系:

x1x2hΘ(x)
00g(30)0
01g(10)0
10g(10)0
11g(10)1

可以看到,hΘ(x)x1 AND x2,该神经网络实现了与运算。

②OR(或运算),其中x1,x2{0,1}y=x1 OR x2

按下图给神经网络分配权重,

这里写图片描述

hΘ(x)=a(2)=g(z(2))=g(Θ(1)a(1))=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2)=g(10+20x1+20x2)

故我们可以得到神经网络的输出和输入的关系:

x1x2hΘ(x)
00g(10)0
01g(10)1
10g(10)1
11g(30)1

可以看到,hΘ(x)x1 OR x2,该神经网络实现了或运算。

③NOT(逻辑非),其中x1{0,1}y= NOT x1

按下图给神经网络分配权重,

这里写图片描述

hΘ(x)=a(2)=g(z(2))=g(Θ(1)a(1))=g(Θ(1)10x0+Θ(1)11x1)=g(1020x1)

故我们可以得到神经网络的输出和输入的关系:
x1hΘ(x)
0g(10)1
1g(10)0

可以看到,hΘ(x) NOT x1,该神经网络实现了或运算。

2.用神经网络实现稍复杂的函数

①(NOT x1) AND (NOT x2)

按下图给神经网络分配权重,

这里写图片描述

hΘ(x)=a(2)=g(z(2))=g(Θ(1)a(1))=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2)=g(1020x120x2)

故我们可以得到神经网络的输出和输入的关系:
x1x2hΘ(x)
00g(10)1
01g(10)0
10g(10)0
11g(30)0

可以看到,该神经网络实现了(NOT x1) AND (NOT x2)

②XNOR(同或运算)

按下图给神经网络分配权重,

这里写图片描述

仔细观察,可知

a(2)1=x1 AND x2,即红色部分实现的是AND;
a(2)2=(NOT x1) AND (NOT x2),即蓝色部分实现的是(NOT x1) AND (NOT x2);
hΘ(x)=a(3)1=a(2)1 OR a(2)2,即绿色部分实现的是OR;

我们可以得到神经网络的输出和输入的关系:

这里写图片描述

该神经网络确实实现了hΘ(x)=x1 XNOR x2

通过这个例子我们可以看到,复杂函数可以通过一些简单函数的组合来实现。

比如神经网络的第二层可以计算输入层特征变量的函数;第三层可以以第二层为基础,计算更复杂的函数;第四层可以以第三层为基础计算比第三层还要复杂的函数,以此类推。神经网络运用更深的层数可以计算更复杂的函数,使其作为特征传递给最后一层的逻辑回归分类器,更准确地预测分类结果。

五.神经网络在多类别分类中的应用

在多类别分类中,我们的输出并不是一个数,而是一个向量,例如有一个三类别分类问题,我们要识别一个物体是行人,小汽车,摩托车还是卡车,则神经网络的模型可以如下图:

这里写图片描述

最后一层的输出层相当于有4个逻辑回归的分类器,hΘ(x)R4,更具体的说

hΘ(x)=1000代表预测结果为行人 ; hΘ(x)=0100代表预测结果为小汽车;

hΘ(x)=0010代表预测结果为摩托车;hΘ(x)=0001代表预测结果为卡车。

训练数据集是(x(1),y(1))(x(2),y(2))(x(m),y(m))

y(i)一定是1000010000100001中的一个。

神经网络的目标是使hΘ(x(i))y(i)

关于是神经网络更为深入的内容和反向传播等的学习笔记将在Andrew Ng机器学习入门学习笔记(四)之神经网络(二)记录。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值