吴恩达机器学习—神经网络

非线性假设

15572624-b0a5b91111cfa10f.png

若使用logistic回归,通过在模型中加入很多高阶项来进行非线性分类问题。若只有两个特征,则可以构建所有可能的特征变量来进行拟合。但是当特征不是二维,而是很多维时。特征变量数量过多时,可能存在过拟合,同时计算复杂度很大。若只选取其中的一部分特征变量,又会缺失很多信息。

15572624-20839d0d38351fbb.png
识别汽车

在计算机视觉中,如果要识别一个汽车,放大汽车图像中的一个点,用一个表示数据表表示汽车各个像素的值,这样就可以通过数据特征识别汽车。

15572624-a979eb53cb03ad58.png
计算机视觉中的汽车识别

模型通过训练集中的数据学习汽车的不同特征,最后在经过测试集识别某个物体是否为汽车

15572624-98a4d865c0c86690.png
只有两个像素情况下的汽车识别

在只有两个特征pixel1和pixel2的情况下,每一个汽车有不同的特征值,根据特征值可以画出其在坐标中的位置,这样有多个汽车,就对应于坐标中不同的点,如下图所示:

15572624-6ff801cf6407fd21.png

通过非线性分类,我们可以将汽车分类出来。但是,这只是对应于两个特征的情况,实际上,图像识别时,特征变量有很多。假设灰度图片的像素是50*50,那么特征的维度就是2500。每一个样本x对应于2500个特征,而此特征就有2500^2~30万个。而且这只是对应于灰度图片,若是彩色图片,n=2500*3=7500,特征向量更多。

神经元与大脑

15572624-f40ea2d6f3de9631.png
15572624-414554aa8e8d901b.png
神经重连实验

生物上的神经重连实验表明,专门处理触觉信息的大脑皮层可以通过训练,处理视觉信息。受此启发,我们要想使机器完成不同的任务,也许不需要设计不同种类的代码,只要让机器学会处理不同的数据就可以了。将任何传感器接入大脑,大脑的学习算法就能很快找到处理这些数据的方法。如果我们能找到大脑的学习算法,然后在计算机上执行和大脑的学习算法相似的算法,也许就能实现人工智能。

15572624-2dedc9e7db4f0ad0.png
单个神经元

神经网络是多个神经元的集合,第一层为输入层,包含三个输入单元,可以加入偏置单元,且其值永远为1;第二层为隐藏层,包含三个神经元,最后一层输出层,包含一个神经元,该神经元决定了会后假设函数的计算结果。在监督学习中,我们可以看到输入和输出,但是训练集里是看不到隐含层里的值。实际上不属于输入层和输出层的,我们都称之为隐含层,隐含层可能有多层。

15572624-8504381b34905c98.png
神经网络结构图
15572624-ac72e58a11f288bb.png
神经网路的数学表示

在神经网络中还要定义几个变量表示第j层的第i个单元的激活函数,表示由一个具体的神经元计算并输出的值,对应于神经网络图中的第二层。表示一个从第j层到第j+1层的权重矩阵。

15572624-b47ca55611532f88.png
前项传播算法

从输入层到隐藏层到输出层,依次计算激活项,最后得到输出。

15572624-7e1f33d23cf8ecda.png

如果忽略第一层输入层,后面的部分结构与logistic回归相似,即通过输入数据的特征和sigmoid函数进行预测。神经网络就是不经过输入的特征直接进行分类,而是通过隐含层的学习算法得到特征和构建模型,其模型结果可能比logistic模型更加有效。

神经网络如何进行复杂非线性分类问题

15572624-d009dceb38c3adaf.png
15572624-04c56c07b267969f.png
神经网络用于进行逻辑函数中的and计算
15572624-a3af27a8e9971fb9.png
神经网络用于逻辑函数中的or计算
15572624-1650558ca0e59229.png
结合了三种逻辑判断的神经网路

神经网络进行多元分类

15572624-dc3aa14edb75381d.png
多元分类

上述神经网路有四个输出,每个输出对应不同的判断结果,如第一个输出判断是否为行人。

15572624-f6c63064d55f4306.png
多元分类的输出结果为向量

猜你喜欢

转载自blog.csdn.net/weixin_34049948/article/details/87475865