机器学习-神经网络

Posted by Young Ken on 2017-10-20

机器学习

它致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。

写这个的目的主要是让我们理解,机器学如果能够对图片进行分类的,以及一些神经网络的一些基础知识。

神经网络

神经网络是机器学习的一个算法。

神经元

对于神经元的研究由来已久,1904年生物学家就已经知晓了神经元的组成结构。

一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做突触

1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP。

MP模型

上面就是一个MP模型,和数学公式,P 是输入向量,W是权值向量,b 是偏置值标量 。f称为“激活函数”,激活函数有那些,举一个好理解的例子。

这个是比较简单的激活函数,复杂的我们这里不做重点研究,因为单层神经网络连最基本的亦或问题都很难解决,神经网络的第一寒冬。

两层经网络

人们把神经网络扩展到了两层。

2csj2

从上图能看出来:

g(W(1) a(1)) = *a(2);

g(W(2) a(2)) = *z;

两层神经网络能无限逼近连续的任意函数,但是一次神经网络的训练仍然耗时太久,而且困扰训练优化的一个问题就是局部最优解问题,这使得神经网络的优化较为困难,神经网络迎来了第二次寒冬。

多层神经网络(CNN)

现在人们把神经网络扩展到了多层。多层神经网络的代表有CNN。

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现出色。

前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。

现在明确了CNN的概念,那么最重要的问题来了,这东西是怎么识别图片分类的?

卷积

卷积神经网络,那么什么是卷积呢,其实卷积是一个数学表达。

数学的意义是:第二个等号成立是因为在这里我们每隔单位长度 1 一采样,ds,dt都是 1 。可以令 G 表示一幅 100 x 100 大小的灰度图像。G(x, y) 取值 [0,255] 区间内的整数,是图像在 (x, y) 的灰度值。x 和 y 坐标取 [0, 99] ,其它位置上 G 值全取 0 。令 F 在 s 和 t 取 {-1, 0, 1} 的位置为特定值,其他位置全取 0 。F 可以看作是一个 3 x 3 的网格。

说人话就是这个样子:

每个格子想成相加等于4。

最后就得到了我们的结果。

上述操作其实就是对数字图像进行离散卷积操作,又叫滤波。称作卷积核滤波器。我们一定用过模糊算法去模糊一张图片,其实就是这个原理。

第二幅图用的是3×3 范围内9个图像点的灰度平均值,第三幅用的是9×9的格子。从上面可以来看出来,格子大了,模糊效果更佳明显。

那么现在进行多层卷积是什么样子的,每一层都图片进行了卷积算法。

第一个卷积层只是表达了简单的图片的边缘而已。

可以包含的不仅仅是一个边缘,可以是几个边缘的组合。

每一层卷积,也就是不同的滤波器对图像进行了更高层次的抽象。

但是每一层的卷积不会适应一个滤波器,会会用多个。

上面是一个32*32的图片,被10个滤波器卷积的结果。

最大池化

有时图像太大,我们需要减少训练参数的数量,它被要求在随后的卷积层之间周期性地引进池化层。池化的唯一目的是减少图像的空间大小。池化在每一个纵深维度上独自完成,因此图像的纵深保持不变。池化层的最常见形式是最大池化。

其实也比较简单,很容易易理解,再看一张图片

全链接层

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。

CNN的最终模式

####

后记