吴恩达机器学习视频课提纲+随堂选择练习题——week8&week9神经网络


一、WEEK8:Neural Networks: Representation

8 - 1 - Non-linear Hypotheses

本章节介绍非线性假设的概念

前面介绍的线性回归和逻辑回归,他们都涉及到线性的假设,特征太多时,计算的负荷会非常大。
例如识别一张图片上是否是一辆汽车,我们需要思考一下用什么做特征?用什么做假设函数(也就是模型)?
关于特征,一种方法是我们利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征。假如我们只选用灰度图片,每个像素则只有一个值,假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约2500^2/2个(接近3百万个)特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

8 - 2 - Neurons and the Brain

本章节介绍神经网络的目的是模拟大脑

生物知识这里不再赘述了。

8 - 3 - Model Representation I

本章节介绍神经网络怎么实现模拟人脑

前面讲神经网络是为了模拟大脑,学过生物的都知道人体内有很多神经元,神经元其实就是人体传递信息的一个机制,有输入机制树突,处理机制神经核和输出机制轴突。
在这里插入图片描述

所以要实现模拟大脑,神经网络也要有一个东西能担当神经元的作用,为了方便,神经网络中模拟神经元的东西我们也叫做神经元。如下图所示,从左到右依次模拟生物神经元的输入/树突(input/Dendrite),处理单元/神经核(processing unit/Nucleus),并且有一个输出/轴突(output/Axon)。
在这里插入图片描述
人体内有若干神经元,所以其实是一个网状的链接形式,而且层层传递,编织成神经网络。所以为了模拟人脑,也构造一个东西来模拟生物神经网络,这个东西就是我们的神经网络啦。如下图所示,编织了一个三神经元的神经网络,消息在神经元之间互相传递(如layer1—>layer2),x1, x2, x3是输入单元(input units),我们将原始数据输入给它们。a1, a2, a3是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算hθ (x)。

在这里插入图片描述
神经网络主要包括三部分:输入层(Input Layer),最后一层称为输出层(Output Layer),中间层为隐藏层(Hidden Layers),隐藏层根据你的需要可以有多层。
另外,每个神经网络还为每层引入偏置bias:关于偏置的作用
在这里插入图片描述
最后再明确一下这么多上标下标,其实你想让上标还是下标表示层或者个数都行的,自己别标错了就行,比如上面这个图的layer2里a的表示,上标表示神经网络的第几层,下标表示该层第几个神经元。

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

在这里插入图片描述
脑阔疼吗哈哈哈,我们先来看一下激活单元的表述。就是黄圈圈表示的模拟神经核的东西,在神经网络中用a表示,既然模拟神经核,说明它是进行信息处理的,这个例子中我们是假设了一个用于分类的网络,所以处理就是做了一个sigmoid函数,表达式外面那一层的g()就有啦,然后它处理的信息就是传递过来的括弧里的东西,来自四个输入x0,x1,x2,x3与每层权重的相乘,每层的权重就是连接线的那个东西表示。我们一直在说模型求参,其实就是求的连接线上的权重。并且从左到右的这个计算过程,我们有一个学术名,叫前向传播算法( FORWARD PROPAGATION )。

上面进行的讨论中只是将特征矩阵中的一行(一个训练实例)喂给了神经网络,我们需要将整个训练集都喂给我们的神经网络算法来学习模型。

8 - 4 - Model Representation II

本节介绍神经网络的向量化表示
在这里插入图片描述
还是上一节给的神经网络的模型。前面我们写a的表述和输出的表述是写了下面这四个公式的:
在这里插入图片描述
为了简化计算,神经网络一般都是用向量化的方法。我们这样写:
输入向量:

在这里插入图片描述

输入向量乘权重:

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

神经核处理:
在这里插入图片描述
在这里插入图片描述
输出层:将上一步神经元的结果作为输入,然后再乘以到下一层之间的权重

在这里插入图片描述

这只是针对训练集中一个训练实例所进行的计算。如果我们要对整个训练集进行计算,我们需要将训练集特征矩阵进行转置,使得同一个实例的特征都在同一列里。
那么输入到神经元处理之前的公式为

在这里插入图片描述
神经元开始处理的公式为:

在这里插入图片描述
费了半天劲用神经网络来实现了一个逻辑回归,有什么用呢?
只看神经网络的最后一层到输出:
在这里插入图片描述
再看这一层的计算公式:

在这里插入图片描述
好像就是Logistic Regression的方式?其实神经网络就像是logistic regression,只不过我们把logistic regression中的输入向量[x1∼x3 ],通过一系列复杂的操作,变成了中间层a0~a3:
在这里插入图片描述
a和x有什么关系?我们可以把a0,a1,a2,a3看成更为高级的特征值,也就是x0,x1,x2,x3的进化体,并且它们是由 x与决定的,因为是梯度下降的,所以a是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将 x次方厉害,也能更好的预测新数据。 这就是神经网络相比于逻辑回归和线性回归的优势。

8 - 5 - Examples and Intuitions I

从本质上讲,神经网络能够通过学习得出其自身的一系列特征。在普通的逻辑回归中,我们被限制为使用数据中的原始特征x1,x2,…,xn,我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制。在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。

8 - 6 - Examples and Intuitions II

用神经网络举例实现逻辑运算,不赘述了。

8 - 7 - Multiclass Classification

本节主要介绍多分类的神经网络

前面用神经网络实现逻辑回归是实现的二分类,通过输出一个值,阈值对其判断,如果这个值大于阈值就是这个类,如果小于就是另一个类,那如果要实现多分类呢?

其实很简单,增加输出层的神经元就好了。比如训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。每一个数据在输出层都会出现[a b c d],且a,b,c,d中仅有一个为1,表示当前类。
在这里插入图片描述
在这里插入图片描述

WEEK8 课后习题

第1题

以下哪项陈述是正确的?选择所有正确项
在这里插入图片描述
AB

第2题

考虑下面给出的神经网络。下列哪个方程正确地计算了a1(3)的sigmoid激活
在这里插入图片描述
在这里插入图片描述
答案:A。粗略看一下,选项的下标都一样,直接看上标,要计算第三层第一个神经元的激活,权重用的是第二层的连接线,所以上标是2,A正确。

第3题

在这里插入图片描述

A

二、WEEK9:Neural Networks: Learning

9 - 1 - Cost Function

本节介绍神经网络的代价函数

假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络层数,S_I表示每层的neuron个数,S_L代表最后一层中处理单元的个数。
在逻辑回归中,我们只有一个输出变量,也只有一个因变量y,
在这里插入图片描述

但是在神经网络中,我们可以有很多输出变量,输出h(x)是一个向量,训练集也是一个向量(逻辑回归中是标量):

在这里插入图片描述
对这个代价函数数学公式的解读:
在这里插入图片描述
令假设函数的维度为K,也就是最后输出的维度是K维的向量。(在逻辑回归中,我们没有给假设函数维度,输出的知识一个单纯的标量,但神经网络的输出是一个有维度的向量)。正则化的那一项只是排除了每一层θ0后,每一层的θ 矩阵的和。最里层的循环j循环所有的行(由s_l +1 层的激活单元数决定),循环i则循环所有的列,由该层(s_l层)的激活单元数所决定。hθ (x)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行regularization的bias项处理所有参数的平方和。
两个代价函数的思想其实是一样的,都是用来计算模型误差。

9 - 2 - Backpropagation Algorithm

本节主要介绍神经网络的反向传播

前面介绍的前向传播是从前往后,反向传播是从后往前。还记得梯度下降的更新公式吗?需要对代价函数求导,代价函数是啥?是预测值和真实值的误差,预测值在神经网络的在哪?在激活单元里。

我们假设有一个3输入,4层且每层4个神经元,4输出的神经网络:输出维度 K=4,每层神经元数 S_L=4,网络层数 L=4,网络模型如图所示:
在这里插入图片描述
我们定义这是一个分类网络,每层的前向计算如下:

在这里插入图片描述
前向计算和对应神经网络中计算发生位置如下所示:
在这里插入图片描述

从最后一层的误差开始计算,误差是激活单元的预测a4与实际值y之间的误差:
在这里插入图片描述
利用这个误差值来计算前一层的误差:

在这里插入图片描述
g’()是sigmoid函数的导数。然后再用这一层的误差计算前一层的误差。

在这里插入图片描述
第一层的输入是变量,没有误差,不需要计算。

9 - 6 - Random Initialization

如果我们令所有的初始参数都为0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我们初始所有的参数都为一个相同的非0的数,结果也是一样的。

9 - 7 - Putting It Together

使用神经网络:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多少个单元。第一层的单元数即我们训练集的特征数量。最后一层的单元数是我们训练集的结果的类的数量。如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。我们真正要决定的是隐藏层的层数和每个中间层的单元数。

训练神经网络:
在这里插入图片描述

WEEK9 课后习题

第1题
在这里插入图片描述

答案:看题干给出的公式,用第三层的误差进行计算,所以B肯定不对;
下一层的误差与上一层的参数和激活函数进行运算,所以D不错,D的激活函数是第三层的。
参照公式选C吧A,C区别我也不知道啊我蒙的

第2题
在这里插入图片描述
答案:A不对,前面说了太大的值会为了最小化代价函数而导致参数也变小甚至趋0,就会造成欠拟合
B不对。选CD。

第3题

以下哪项陈述是正确的?选择所有正确项

在这里插入图片描述
BD. 神经网络的梯度下降就是迭代的,从后面逐渐计算前层的误差,并且要递减。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值