吴恩达神经网络(1)

一、 导论:为什么需要神经网络?

神经网络是用作于分类问题的 神经网络可以用作于分类问题,但是我们已经学过了逻辑回归,为什么还需要神经网络呢?原因是在面对复杂的问题时,逻辑回归的表现并不好。比如我们想要预测明天的天气是晴天、多云还是雨天,假如只有大气湿度和地形两个特征,那我们确实可以用logistic回归;但情况往往比这要复杂的多,需要考虑的因素(特征)还有季节、海陆相对位置、水域面积、风力与风向、城市热力学的因素等等,可能会有10个、20个甚至更多的特征,这个时候我们建立logistic方程时不仅仅有十几二十项,还存在着这些特征的交叉项x1x2x3…等等,方程就会异常复杂,一方面项数过多容易造成过拟合,另一方面,运算量也是十分巨大的,因此我们需要采用另一种方法,那就是神经网络。
(其他例子还有,比如第四周第一课的汽车图像识别例子,多项式的项数可以达到百万项,就更不可能用logistic回归了)

二、神经网络的原理

1.神经网络算法与人脑神经网络的联系

在这里插入图片描述
在我们的大脑中充满了神经元与树突/轴突,树突/轴突相当于电线 ,可以用来输入和输出信号,而神经元就是用来进行运算的,大概这就是人类思考的模型。

我们尝试着制作一个算法,原理和人类思考的模型较为一致:
在这里插入图片描述
圆圈仍然是代表着神经元,我们先从神经元中输入x1、x2、x3到黄色的圆圈(一个新的神经元中),然后在该神经元中进行某种运算(例如图中的例子,一个sigmoid函数),最终输出hθ(x)的值;
有的时候会增加一个额外的节点X0,其被称为偏置单元(bias unit),吴恩达说:“这个东西可写可不写,因为X0总是等于1,具体是否画出,取决于对例子是否有利”(目前不太理解);
θ仍然被称为参数(parameters),但在其他的一些神经网络的文献中,可能会被称为权重(weights)

再来看一个复杂一点的例子,进一步解释术语:
在这里插入图片描述
神经网络的第一层我们也称之为输入层,最后一层也称之为输出层,尽管该例中只有三层,但对于(更复杂的)神经网络来说,除了输入和输出之外的层都称之为隐藏层。我们注意到,无论是在第一层还是第二层中都可以添加一个偏置单元,该偏置单元的值仍为1

在这里插入图片描述
其中,ai(j)代表第j层的第i个激励,所谓激励(activation)指的是由一个具体神经元读入、计算并输出的值(因为是activation,所以用a来表示?),而激励函数指的就是我们在上面给出过的s型的函数,也可称之为S激励函数,或逻辑激励函数
参数矩阵θ(j)(或者说是权重矩阵)控制着从第J层到第j+1层的变化(或者说函数关系、映射关系等都可以),这是如何控制的呢?看下面的推导过程:
在这里插入图片描述
可以看到,a1(2)等于S激励函数作用于(θ10x0+θ11x1+θ12x2+θ13x3)这样的线性组合而得到的结果,θ(1)代表着第一层的参数矩阵,具体的下标代表着矩阵的行和列(虽然一般矩阵是从11开始的,但是由于我们有x0,为了表示方便,所以存在“第0列”)。S函数的自变量等于参数乘以输入的值,因此说参数矩阵θ(j)控制着从第j层到第j+1层的变化。

而第四个式子就是从第二层到第三层的变化,原理与第一层到第二层相同,但要注意激励和参数矩阵的上标都发生了变化。

2.算法的向量化

在这里插入图片描述
我们不妨将划线部分,即X乘以θ所得的线性组合记作z(2)1,由此
在这里插入图片描述
同理,对剩下两个式子做同样的表示:
在这里插入图片描述
之后我们将其用矩阵的形式表示,就可以得到:
在这里插入图片描述
这样表示就清爽多了!
可以再优化一点的是,我们可以把x当作第一层的激励,也就是把x写成a(1),从而
在这里插入图片描述
接着推进:
在这里插入图片描述
接下来就加上第二层的偏置单元a(2)0,然后同样地,由于
在这里插入图片描述
那么z(3)就是:
在这里插入图片描述
同理也可得到a(3)

以上这个计算h(x)的过程被称之为前向传播(forward propagation):
在这里插入图片描述

3.神经网络与logistic回归的差异

※注意,这里指的是神经网络在处理分类问题上跟logistic回归的差异,并非说神经网络只能用来处理分类问题。以下不再赘述,具体可见:如何用神经网络做回归

这是神经网络的示意图:
在这里插入图片描述
假如我们把输出层遮住,并写出hθ(x)的表达式:
(ps:一个圈里面一个H的符号是θ的大写形式)
在这里插入图片描述
这个表达式和之前给出的是一致的(不信回去翻),但我们会发现这个式子和逻辑回归的式子是很像的!
为什么说像呢?复习一下逻辑回归:
这是线性回归的假设函数:
在这里插入图片描述
将其记作Z(或者θTx),然后代入sigmoid函数计算g(z)或g(θTx):
在这里插入图片描述
就得到了逻辑回归的假设函数。
也就是说,神经网络和逻辑回归的假设函数都是对线性组合进行S函数化,只不过区别在于一个输入a1、a2、a3(此处上标省略),一个输入x1、x2、x3!
那么区别仅在于字母的表达上吗?并不是如此,以下为吴恩达原话:

具体来说,就是从第一层映射到第二层的函数,这个函数由其他一组参数θ(1)决定。所以,在神经网络中,它没有用输入特征x1 x2 x3 来训练逻辑回归,而是自己训练逻辑回归的输入 a1 a2 a3。可以想象,如果在θ1中选择不同的参数,有时可以学习到一些很有趣和复杂的特征,就可以得到一个更好的假设,比使用原始输入 x1 x2或x3时得到的假设更好。

也就是说,logistic回归输入的x123是原始的变量,而神经网络中的a123是经过了训练的,被特定的θ“改造”过的变量,而根据参数θ的不同,我们可以得到不同的结果。

再比如,我们给出一个四层的神经网络框架:
在这里插入图片描述
每一层都从上一层中获取变量,或者说,获取特征(平时我们把x123称为特征,此处不断变化的a123也可以称为特征),然后经过在本层中的加工再输入给下一层,循环反复,从而训练出愈发复杂的特征,这就是神经网络与逻辑回归的区别

4.神经网络的具体运作方式(实例)

前面讲了这么多,到现在都没有一个具体的实例告诉我们神经网络具体是怎么运作的。接下来将会给出例子,但首先先需要明白一些运算的概念:

【异或运算(XOR)】、【异或非运算(XNOR)】、【“与”运算】、【“或运算”】
在这里插入图片描述
异或非(也可称为同或)就是异或的补集(全集减去异或的集)

“与”运算则为:
在这里插入图片描述
“或”运算就是只要有其中一位为1,结果就为1.

1.实例a

假如我们想通过神经网络来表示出一个简单的算法——“与”运算,该如何表示呢?
在这里插入图片描述
(x1、x2只能取0或1,即二者是二进制的)
在这里插入图片描述
首先要添加一个偏置单元(+1),然后给每个输入层的单元添加参数(或称之为权重),θ10=-30,θ11=20,θ12=20,由此我们得到的线性组合,或者称之为Z(2)1=-30+20x1+20x2,那么hθ(x)=a(2)1=g(Z(2)1)=g(-30+20x1+20x2)
在这里插入图片描述
而对于g(z),也就是sigmoid函数,g(4.6)= 0.99,g(-4.6)= 0.01,所以我们很容易就能得出,当x1、x2都等于0时,g(-30)接近于0,x1、x2其中一个等于0时,g(-10)也是约等于0,只有x1、x2都等于1时,g(10)约等于1。因此这样就成功写出了这个“与”运算——当且仅当x1、x2都等于1时,结果才为1。

同理,我们想要用神经网络表示出“或”运算,只需要调整一下parameter:
在这里插入图片描述

2.实例b

接下来我们尝试构建复杂一些的神经网络——异或运算:
在这里插入图片描述
异或运算在前面也有提过,仅当x1=x2时输出1,也可以见该图的右上角坐标轴,当x1=1且x2=1,或者x1=0且x2=0时为叉,x1≠x2时为圈;
我们先给出三个简单的运算,分别是与运算,非运算(不知这么叫是否正确),或运算。在这里插入图片描述
第二层,也就是隐藏层中,a(2)1是与运算,a(2)2是非运算,得到的结果进入第三层,执行一次或运算,我们就能得到较为复杂的异或运算,具体过程的变化可见右下角的表,最终当x1=1且x2=1,或者x1=0且x2=0时,hθ(x)=1,其他情况为0,符合异或运算的逻辑。

个人的解读:与运算、非运算→或运算→异或运算,这样的链路其实是并没有什么数学逻辑的,只是说这么操作最终正好可以构建出异或运算,我们肯定还有别的方法来构建异或运算。这个例子只是说明通过多层的神经网络,我们可以得到复杂的算法。

5.多类别分类问题

吴恩达教授说原理和逻辑回归中的多分类较为相似,但我看下来不觉得哪里像了?
在这里插入图片描述
**与二分类最大的区别在于,输出层的单元数量等于分类的类别数量。**例如,想区分行人、车、摩托车、卡车,输出层就有4个单元,分别可以用1000来代表行人,0100来代表车…以此类推。本课基本上就讲了这么点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值