前言:
- 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。包括专家系统、机器学习、进化计算、模糊逻辑、计算机视觉、自然语言处理、推荐系统等
- 机器学习是一种实现人工智能的方法,使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测
- 深度学习则是一种实现机器学习的技术,源于对人工神经网络的研究,以神经网络为主要模型,含多个隐藏层的多层感知器就是一种深度学习结构
卷积神经网络
- 卷积神经网络是一种带有卷积结构的深度神经网络,由纽约大学的Yann Lecun于1998年提出,其本质是一个多层感知机,成功的原因在于其所采用的局部连接和权值共享的方式
- 减少了权值的数量使得网络易于优化
- 降低了模型的复杂度,也就是减小了过拟合的风险
结构组成
由INPUT(输入层)-CONV(卷积层)-RELU(激活函数)-POOL(池化层)-FC(全连接层)-OUTPUT(输出层)
一、卷积
- 物理意义:系统某一时刻的输出是由多个输入共同作用(叠加)的结果
- f(x) 可以理解为原始像素点(source pixel),所有的原始像素点叠加起来,就是原始图了
- g(x)可以称为作用点,所有作用点合起来我们称为卷积核(Convolution kernel)
- 卷积核上所有作用点依次作用于原始像素点后(即乘起来),线性叠加的输出结果,即是最终卷积的输出
- 卷积后的尺寸:
(width – kernel_size + padding *2 ) / stride + 1
二、激活函数
神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)
Sigmoid 是常用的非线性的激活函数
特点:它能够把输入的连续实值变换为0和1之间的输出,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1
缺点1:在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大。
缺点2:Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。
缺点3:其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。
ReLU函数又称为修正线性单元(Rectified Linear Unit),是一种分段线性函数,其弥补了sigmoid函数以及tanh函数的梯度消失问题
优点:
(1)在输入为正数的时候(对于大多数输入 z 空间来说),不存在梯度消失问题。
(2) 计算速度要快很多。ReLU函数只有线性关系,只需要判断输入是否大于0
缺点:
当输入为负时,梯度为0,会产生梯度消失问题。
三、池化
- 也称为欠采样或下采样。
- 主要用于特征降维,压缩数据和参数的数量,缩减模型的大小的,提高计算速度,同时提高所提取特征的鲁棒性,减小过拟合
- 输入一般来源于上一个卷积层
- 可以分为最大池化(Max Pooling)和平均池化(Avage Pooling)
- 池化的超级参数包括过滤器大小f和步幅s,常用的参数值为f=2,s=2,应用频率非常高,其效果相当于高度和宽度缩减一半,(n+2p-f)/s+1
最大池化和平均池化
(1)最大池化
(2)平均池化
四、全连接
每一个输出对应上一层的所有输入
五、常见卷积神经网络模型
图像分类(classification)
在给定的图片中确定图片中是否包含某个物体
目标检测(Object Detection)
- 在给定的图片中精确找到物体所在位置,并标注出物体的类别
- 要解决的问题就是物体在哪里?是什么物体?