此系列为 Coursera 网站Andrew Ng机器学习课程个人学习笔记(仅供参考)
课程网址:https://www.coursera.org/learn/machine-learning
Week 4 —— Neural Networks : Representation
目录
一 前言
1-1 分类器
当我们用机器学习算法构造一个汽车识别器时,我们需要一个带标签的样本集,其中一部分是汽车,另一个部分可以是其他任何东西,然后我们将这些样本输入给学习算法,以训练一个分类器。训练完毕后,我们输入一幅新的图像,让分类器判定这是否为汽车。
1-2 神经网络优势
在课程的开头,提到了非线性假设,会因为特征量的增多导致二次项数的剧增。
举个例子,在图像识别中,一个50*50像素的图片,拥有的特征量为2500,那么它的二次项数为2500*2500/2,大约为3百万个。
二 神经网络的模型
2-1 神经元的模型
在一个神经网络里,我们将神经元模拟成一个逻辑单元(logistic unit),如下图黄色圆圈所示。
2-2 神经网络的模型
神经网络是一组神经元的组合,如下:
同样的,有时我们会加上偏置单元,它们的值永远为1。图中网络的第一层也叫做输入层(Input Layer),第二层叫做隐藏层(Hidden Layer),隐藏层可以有多层,第三层叫做输出层(Output Layer)。
2-3 神经网络的假设函数
三 前向传播
从输入层的激励开始向前传播到隐藏层,再传播到输出层的行为叫做前向传播(Forward Propagation)
四 利用神经网络解决非线性问题
首先,我们先来看下面两张图:
如左图所示,x1,x2 只能取0和1,图中只画了4个样本,我们可以把左图看做是右图的简化版本,用叉来代表正样本,圆圈代表负样本。在以前的例子中,我们会通过学习一个非线性的决策边界来区分正负样本,那么神经网络是如何做到的?
下面我们通过几个例子来看一下:
同或运算(XNOR)
按下图给神经网络分配权重:
通过真值表,我们会发现这个神经网络确实实现了同或运算(XNOR)。
通过这个例子我们可以看到,复杂函数可以通过一些简单函数的组合来实现。
比如神经网络的第二层可以计算输入层特征变量的函数;第三层可以以第二层为基础,计算更复杂的函数;第四层可以以第三层为基础计算比第三层还要复杂的函数,以此类推。神经网络运用更深的层数可以计算更复杂的函数,使其作为特征传递给最后一层的逻辑回归分类器,更准确地预测分类结果。
五 神经网络在多类别分类中的应用
在多类别分类中,我们的输出并不是一个数,而是一个向量,例如有一个4类别分类问题,我们要识别一个物体是行人,小汽车,摩托车还是卡车,则神经网络的模型可以如下图:
最后一层的输出层相当于有4个逻辑回归的分类器,
hθ(x)∈R4