第四五周都是神经网络,或者可以称为多层感知机,由多层多分类逻辑回归单元堆叠起来的。
神经网络表示部分中,介绍了非线性假设、神经网络的逐步计算和向量化计算。
神经网络学习部分中,介绍了神经网络的代价方程,和神经网络的反向传播算法。

Neural Networks:Representation

神经网络是一个古老的技术,曾经沉寂了一段时间。

4.1 Motivations

非线性假设 Non-linear Hypotheses

image.png
之前的分类问题,基本上都是基于线性分割,但事实上并不是所有分类问题都是线性可分的。

image.png
面对这些非线性的问题,我们就需要神经网络了。

4.2 Neural Networks

逐层逐个计算 Model Representation I

大脑中神经是由一个个神经细胞组成,每个神经细胞有轴突、树突、细胞体。

那么机器学习中的神经网络,一个个神经元就由逻辑单元来扮演。逻辑单元如之前所讲,由许多输入、激活函数(这里用sigmoid函数)和逻辑输出。
image.png
神经网络是有许多层的,每一层也有许多神经节点。
image.png

那么如上我们就构造了一个简单的神经网络,三个输入节点,三个隐藏层节点,一个输出节点。
下图展示了如何通过输入节点一步步推导到最终的输出假设。
image.png

向量化计算 Model Representation II

上一节解释了怎样用公式来推导计算神经网络的假设,那么将介绍如何通过向量化的方法进行高效地计算。
通过向量化计算,我们可以一次性求解出每一层所有节点的值,而不是一一求解。
image.png

4.3 Applications

逻辑运算 Examples and Intuitions I

这一节通过神经网络对两个0和1特征进行学习,使模型达到逻辑运算的效果。

image.png
image.png
image.png

Examples and Intuitions II

image.png
image.png

多分类 Multiclass Classification

神经网络中中间层可以有多个节点,最后输出层当然也可以有多个节点,我们可以直接构造多个分类器。
image.png
image.png

Neural Networks:Learning

5.1 Cost Function

Cost Function

之前我们学习了分类问题的代价方程,但那只有一个输出节点。
image.png

将多分类作为多个二分类处理,我们把每个二分类的代价单独计算再相加,就得到了总共的代价方程。
image.png

Backpropagation Algorithm

这一节讲述了如何在神经网络中优化代价方程,具体来说如何使用反向传播算法。

对于上一节我们定义的神经网络代价方程,我们需要优化它,那么就需要计算代价和它的各参数偏导数。
image.png
首先让我们来看看什么是前向传播算法。
前向传播就是通过输入节点一步步计算得到输出,再得到代价的过程。
image.png
计算出代价之后,我们再按照之前的反顺序,从代价求输出层的误差,再从输出层不断求前一层的误差,除了输入层。
image.png
最后得到完整的反向传播算法。
image.png

Backpropagation Intuition

上一节我们粗略的介绍了BP算法,这一节进行了更加细节的讲解。

但我觉得讲得仍然不是很好,建议去看计算机视觉深度学习课程中的BP部分,讲的更为生动。

5.2 Backpropagation in Practice

这一大节主要讲作业中怎么去实现BP。

5.3 Application of Neural Networks

介绍了一个神经网络用于自动驾驶的应用。