神经网络:表述Neural Networks: Representatio
1.非线性假设Non-linear hypothese
我们之前学习的线性回归和逻辑回归都有这样的一个缺点:当特征太多负荷会非常大。
例如我们要训练一个分类器,让它检测一个图像,来判断图像是否为一辆汽车:
我们人来看当然是一目了然的事情,但是对计算机来说它只是一堆数字而已。
所以我们想到了在样本集里面,我们分为是车和不是车的两个样本集,然后将这个样本集输入给学习算法,让其训练出一个分类器。
设我们用50 * 50这么低像素的照片就好了,但仍然有2500个像素点,RGB图像其像素还要x3,也就是7500像素了。
假如我们用之前的二阶项解决这个问题,那么光特征量都有300万个了。
所以为了解决这种复杂的非线性分类问题,一种算法应运而生,这就是我们的神经网络。
2.神经元和大脑Neurons and braint
神经网络Neural Networks:
神经网络是一种古老的算法,他最初的目的是制造模拟大脑的机器。
神经网络逐渐兴起于二十世纪八九十年代,应用得非常广泛。但由于各种原因,在90年代后期应用减少了。但是最近神经网络又东山再起了,其中一个原因大概是近些年的计算机运行速度变快,才足以真正运行起大规模的神经网络。
举几个例子:
3.模型表示 Model representation I
大脑中的神经元:
神经网络算法其实是在模仿我们大脑中的神经元和这些神经元所构成的神经网络。
我们的大脑里面有很多这样的神经元,左边蓝色像树枝那样的就是神经元的输入神经:树突(Dendrite),它们负责接收来自其它神经元的信息。中心处理器也就是神经细胞核(Nucleus)。神经元的输出神经则是:轴突(Axon)。
神经元之间通过微弱的电流进行沟通,构成一张神经网络。那么我们在电脑上怎么模拟这种这么神奇的东西呢?
我们用一个简单的模型来模拟神经元的工作,我们将神经元模拟成一个逻辑单元。
神经元模型:逻辑单元
我们的输出的函数为:
神经网络:
4.模型表示2 Model representation II
其他神经网络:
我们可以把a0,a1,a2,a3看成更高级的特征值,也就是x0,x1,x2,x3,的进化体, 并且他们由x决定的,因为是梯度下降,所以a是变化的,并且变化的越来越厉害,所以这些更高级的特征值远比仅仅x次方更厉害,也就能更好的预测数据。
这就是神经网络相比于逻辑回归和线性回归的优势。
5.特征和直观理解1Examples and intuitions I
非线性分类示例:XOR/XNOR
逻辑与AND:
逻辑或or:
6.特征和直观理解2 Examples and intuitions II
我们将之前所学的三个逻辑运算连接在一起:
手写数字识别分类:
7.多类别分类 Multi-class classification
在很多分类问题中,我们就不只有两个类别的分类了,那么应该怎么处理多类别分类呢?
如上图的例子,我们的输出分类就不只有一个 h(x) 了,而是我们把 h(x) 建立为一个具有四个输出单元的向量,为了对四个输出结果进行分辨,我们将其输出的结果分别对应不同的分类:
整个神经网络的模型就可以看作为: