吴恩达机器学习笔记4 神经网络

目录

神经网络  Neural Networks

非线性假设  Non-linear Hypotheses

神经元和大脑

模型表示

符号说明

向量化

工作原理理解

直观理解:应用实例1

直观理解:应用实例1

多元分类


神经网络  Neural Networks

非线性假设  Non-linear Hypotheses

无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大。

例如:

吴恩达机器学习笔记4 神经网络

当我们使用吴恩达机器学习笔记4 神经网络, 的多次项式进行预测时,可以应用的很好。假设我们有非常多的特征,例如大于100个变量,我们希望用这100个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便我们只采用两两特征的组合

                                                           吴恩达机器学习笔记4 神经网络

我们也会有接近5000个组合而成的特征。这对于一般的逻辑回归来说需要计算的特征太多了。

假如我们只选用灰度图片,每个像素则只有一个值(而非 RGB值),我们可以选取图片上的两个不同位置上的两个像素,然后训练一个逻辑回归算法利用这两个像素的值来判断图片上是否是汽车:

吴恩达机器学习笔记4 神经网络

假使我们采用的都是50x50像素的小图片,并且我们将所有的像素视为特征,则会有 2500个特征,如果我们要进一步将两两特征组合构成一个多项式模型,则会有约个吴恩达机器学习笔记4 神经网络(接近3百万个)特征。普通的逻辑回归模型,不能有效地处理这么多的特征,这时候我们需要神经网络。

神经元和大脑

神经网络是一种很古老的算法,它最初产生的目的是制造能模拟大脑的机器。神经网络逐渐兴起于二十世纪八九十年代,应用得非常广泛。但由于各种原因,在90年代的后期应用减少了。但是最近,神经网络又东山再起了。其中一个原因是:神经网络是计算量有些偏大的算法。然而大概由于近些年计算机的运行速度变快,才足以真正运行起大规模的神经网络。我们能学习数学,学着做微积分,而且大脑能处理各种不同的令人惊奇的事情。似乎如果你想要模仿它,你得写很多不同的软件来模拟所有这些五花八门的奇妙的事情。不过能不能假设大脑做所有这些,不同事情的方法,不需要用上千个不同的程序去实现。

模型表示

神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型。这些神经元(也叫**单元activation unit)采纳一些特征作为输出,并且根据本身的模型提供一个输出。下图是一个以逻辑回归模型作为自身学习模型的神经元示例,在神经网络中,参数又可被成为权重(weight)

吴恩达机器学习笔记4 神经网络

设计出类似于神经元的神经网络,效果如下:

吴恩达机器学习笔记4 神经网络

其中吴恩达机器学习笔记4 神经网络输入单元(input units),我们将原始数据输入给它们。 吴恩达机器学习笔记4 神经网络中间单元,它们负责将数据进行处理,然后呈递到下一层。最后是输出单元,它负责计算吴恩达机器学习笔记4 神经网络

神经网络模型是许多逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。下图为一个3层的神经网络,第一层成为输入层(Input Layer),最后一层称为输出层(Output Layer),中间一层成为隐藏层(Hidden Layers)。我们为每一层都增加一个偏差单位(bias unit)

吴恩达机器学习笔记4 神经网络

符号说明

吴恩达机器学习笔记4 神经网络 代表第吴恩达机器学习笔记4 神经网络层的第吴恩达机器学习笔记4 神经网络个**单元
吴恩达机器学习笔记4 神经网络 从第吴恩达机器学习笔记4 神经网络层映射到第吴恩达机器学习笔记4 神经网络层时的权重的矩阵

例如吴恩达机器学习笔记4 神经网络代表从第一层映射到第二层的权重的矩阵,其尺寸为:以第层的吴恩达机器学习笔记4 神经网络**单元数量为行数,以第吴恩达机器学习笔记4 神经网络层的**单元数加一为列数的矩阵。例如:上图所示的神经网络中吴恩达机器学习笔记4 神经网络的尺寸为 3*4。

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

吴恩达机器学习笔记4 神经网络

向量化

利用向量化的方法会使得计算更为简便。

我们定义吴恩达机器学习笔记4 神经网络

                                                             吴恩达机器学习笔记4 神经网络

以上图的神经网络为例,试着计算第二层的值:

                                                            吴恩达机器学习笔记4 神经网络      吴恩达机器学习笔记4 神经网络   

                                                                      吴恩达机器学习笔记4 神经网络

                                                                      吴恩达机器学习笔记4 神经网络

也就是

吴恩达机器学习笔记4 神经网络

添加吴恩达机器学习笔记4 神经网络。 计算输出的值为:

吴恩达机器学习笔记4 神经网络

工作原理理解

先把左半部分遮住:

吴恩达机器学习笔记4 神经网络

右半部分其实就是以吴恩达机器学习笔记4 神经网络, 按照Logistic Regression的方式输出吴恩达机器学习笔记4 神经网络

其实神经网络就像是logistic regression,只不过我们把logistic regression中的输入向量吴恩达机器学习笔记4 神经网络变成了中间层的吴恩达机器学习笔记4 神经网络

我们可以把吴恩达机器学习笔记4 神经网络看成更为高级的特征值,也就是吴恩达机器学习笔记4 神经网络的进化体,并且它们是由吴恩达机器学习笔记4 神经网络吴恩达机器学习笔记4 神经网络决定的,因为是梯度下降的,所以吴恩达机器学习笔记4 神经网络是变化的,并且变得越来越厉害,所以这些更高级的特征值远比仅仅将吴恩达机器学习笔记4 神经网络次方厉害,也能更好的预测新数据。 这就是神经网络相比于逻辑回归和线性回归的优势。

另外注意到弹幕里面有一个非常有意义的评论让我懂了神经网络的意义。为什么这种模型能拟合所有的非线性样例呢?简单的理解是因为他将所有的组合全部包含进去了。

直观理解:应用实例1

神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)

举例说明:逻辑与(AND);下图中左半部分是神经网络的设计与output层表达式,右边上部分是sigmod函数,下半部分是真值表。

我们可以用这样的一个神经网络表示AND 函数:

吴恩达机器学习笔记4 神经网络

其中我们令吴恩达机器学习笔记4 神经网络我们的输出函数即为:

                                                                   吴恩达机器学习笔记4 神经网络

我们知道吴恩达机器学习笔记4 神经网络的图像是:

吴恩达机器学习笔记4 神经网络

那么可以得到下表

吴恩达机器学习笔记4 神经网络

所以我们有:

                                                                              吴恩达机器学习笔记4 神经网络

类似的有OR函数

吴恩达机器学习笔记4 神经网络

直观理解:应用实例1

一个多层的神经网络,实现同或XNOR。

                                                        吴恩达机器学习笔记4 神经网络

吴恩达机器学习笔记4 神经网络

这是一个多层神经网络的简单例子。

多元分类

当我们有不止两种分类时,比如我们要识别行人、小车、货车、摩托,该怎么做呢?

如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有4个值。例如,第一个值为1或0用于预测是否是行人,第二个值用于判断是否为汽车。例如,规定吴恩达机器学习笔记4 神经网络代表行人,吴恩达机器学习笔记4 神经网络代表小汽车等等。

神经网络的可能结构为:

吴恩达机器学习笔记4 神经网络