• 一、神经网络到卷积神经网络
  • 二、卷积神经网络的构成
  • 三、卷积神经网络的训练
  • 四、卷积神经网络的特点
  • 五、正则化与Dropout

一、神经网络到卷积神经网络

人工神经网络可以用于计算机视觉吗?

可以

为什么利用卷积神经网络?

人工神经网络全连接结构对内存要求非常高,而且大量的参数会导致过拟合,参数过多学习能力太强,会把所有样本点记下来,以至于在测试集的泛化性能很差。

卷积神经网络的特点:

  • 仍然保持了层级结构,利用多层网络来构成一个深层的网络结构
  • 不同于全连接层,卷积神经网络是由卷积层+池化层+非线性层+全连接层构成

输入:原始图像
输出:经过softmax输出的属于每个类别的概率

二、卷积神经网络的构成

1、数据输入层——数据预处理

利用L2损失的话,如果不进行尺度缩放,则会使得在梯度下降的时候,下降方向呈z字型,出现震荡、收敛缓慢、准确度下降的情况。

为什么进行去均值化:

  • 如果不进行去均值的步骤,在训练的时候很容易饱和,如果利用sigmoid函数作为激活函数,未进行去均值之前,数据可能处于sigmoid函数的两侧,使得输出为0/1,此时梯度几乎为0,无法进行反向传播,网络无法进行学习。如果进行去均值之后,数据处于sigmoid曲线的中心,此时处于激活状态。

    例如图像的对比度,如果完成图像颜色的分辨,如果颜色分布非常均匀,则可以很好的学习出数据,但如果数据有偏移,也就是全都是红色,只不过红的颜色不同,如果减掉均值的话,可以使得数据有正有负。

经过PCA之后,去掉了相关性,将数据投影到方差最大的方向,whitened是再次进行尺度归一化

有的特征维度很高,可以在保留大部分特征的情况下, 进行降维,做完PCA之后,进行白化操作,(也就是将每个维度的特征的方差归一化到1),因为进行归一化之后再进行PCA降维,可能每个维度的方差由不同了,所以要再次对特征的方差进行缩放。

图像分类只用了去均值操作:

  • 去均值有两种方法:将100w组图像的均值取出,在每个图像上减掉

    • 因为图像的像素值本就处于[0,255]区间内,不用进行归一化,

2、卷积计算层

补零:
1、当x=0的时候,wx=0,不会影响输出,如果补别的结果会影响输出
2、补零也会使得卷积之后特征图等于原图大小,信息保留更全面,更利用之后的融合


- 局部关联

图像具有局部关联性,某点的像素和距离它较远的像素不具备很大的相关性,所以可以用局部连接来对图像进行特征提取。

  • 权值共享

如果对整幅图像的每个小块分别用不同的卷积核来提取特征,则参数太多,可以利用同一组参数,也就是卷积核来对一副图像滑动进行特征提取,也就是一个窗口提取一副图像中相同的特征,换句话说就是,无论猫出现在图像中的哪个位置,都不会影响最后的判断。

  • 特征提取过程

利用同一卷积核和图像做滑动卷积,提取出一个特征图谱,分别利用多个卷积核对同一幅图像做卷积,得到多个特征图。

3、激活层

将卷积层的输出结果做非线性映射,判断信号是否要往后传,或者以多大的程度往后传。

特征:

  • 非线性
  • 几乎处处可微
  • 计算简单
  • 非饱和性
  • 接近恒等变换
  • 单调性

Relu如果输入都是小于0的话,那就挂掉了,全都抑制了,该神经元再也激活不了了,但是这种概率很小,因为数据都是一批一批送进来的,不会都落到抑制区。

所以提出了Leacky Relu,降低完全抑制的概率。

4、池化层

降低数据量,提供平移、旋转稳定性,减小过拟合

5、全连接层

三、卷积神经网络的训练

池化层如何求导:

池化相当于max(x1,x2,x3,x4)max(x1,x2,x3,x4)max(x1,x2,x3,x4),如果最大值为x4的话,分段函数求导之后,只有x4处为1,其他地方的求导都为0。

四、卷积神经网络的特点

五、正则化与Dropout

神经网络的强学习能力可能会导致过拟合,利用Dropout来解决。

Dropout:随机失活,也就是将神经元随机失活,置为0,此时和该神经元相连的线也就没用了。

在每一次做训练的时候,会将某些神经元关掉,该神经元就不起作用了,

import numpy as np
p=0.5def train_step(X):# 3层神经网络的前向计算# H1包含了Relu的过程H1=np.maximum(0,np.dot(w1,x)+b1)'''第一次dropout'''# 生成0~1直接的随机数,小于0.5的置为False,大于0.5的置为TrueU1=np.random.rand(*H1.shape)<p# H1和U1数值相乘,保留U1中为True的值H1 *=U1'''第二次dropout'''H2=np.maximum(0,np.dot(w2,x)+b2)U2 = np.random.rand(*H2.shape) < pH2 *=U2out=np.dot(w3,H2)+b3...# 预测过程
# 以数学期望的形式往后传递
# 一个时间发生的概率为p,数学期望E=X.P
def predict(X):# 加上dropout的前向计算H1=np.maximum(0,np.dot(w1,x)+b1)*pH2=np.maximum(0,np.dot(w2,x)+b2)*pout=np.dot(w3,H2)+b3

U1是一个bool型的numpy数组,生成随机概率分布,如果大于0.5就留下来,

实际实现:把预测阶段的时间转移到训练上

用户关心的是测试的速度,与训练的速度无关。

所以要把预测阶段的时间转移到训练阶段,以数学期望的方式来转移。训练过程除以p,等于预测过程乘以p。

Dropout的作用:防止过拟合

  1. 去掉冗余信息

网络学到的东西(比如有耳朵、毛茸茸等等)可能是冗余的信息,只有一部分信息是真正有用的,而哪些信息是有用的呢?

Dropout是随机失活的,也就是说有时候的训练没有该神经元,也就是没有部分信息。如果有耳朵的信息判定的结果是一只猫,没有耳朵的信息判定结果也是一只猫,那么耳朵这个信息就是冗余的。

  1. 每次都关掉一部分感知器,相当于每次得到一个新模型,最后做模型融合,多个模型的投票或平均得到结果

《Dropout: A Simple Way to Prevent Neural Networks from Overfitting》

二、计算机视觉与卷积神经网络相关推荐

  1. 计算机视觉:卷积神经网络基础

    计算机视觉:卷积神经网络基础 计算机视觉概述 计算机视觉的发展历程 卷积神经网络 卷积(Convolution) 卷积计算 填充(padding) 步幅(stride) 感受野(Receptive F ...

  2. DL之CNN:计算机视觉之卷积神经网络经典算法简介、重要进展、改进技巧之详细攻略(建议收藏)

    DL之CNN:计算机视觉之卷积神经网络经典算法简介.重要进展.改进技巧之详细攻略(建议收藏) 目录 CNN经典算法细讲 1.CNN历年冠军算法 1.1.LeNet-5 1.2.AlexNet 1.3. ...

  3. DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略

    DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文).CNN优化技术.调参学习实践.CNN经典结构.案例应用之详细攻略 目录 卷积神经网络算法的简介 0.Biologically Ins ...

  4. 【华为云技术分享】序列特征的处理方法之二:基于卷积神经网络方法

    [摘要] 本文介绍了针对序列特征采用的处理方法之二:基于卷积神经网络方法,并分析了为何卷积神经网络擅长对于局部特征的提取. 前言 上一篇文章介绍了基本的基于注意力机制方法对序列特征的处理,这篇主要介绍 ...

  5. 计算机视觉之卷积神经网络原理

    一个简单的神经元:左边有三个激励,分别将激励乘以对应的权重,接着对其求和再加上相应的偏置,最后通过激励函数就得到最终的输出y 如果我们将神经元按列进行排列,列与列之间进行全连接,就得到一个BP神经网络 ...

  6. 论文解读(二):卷积神经网络真的有平移不变性吗

    在我们读计算机视觉的相关论文时,经常会看到平移不变性这个词,通常观点中,大家都是普遍认为CNN是具有平移不变性的,然而近年来,有一些工作的研究对平移不变性提出了质疑,本文对一些平移不变性的理解进行记录 ...

  7. 图神经网络系列(二)图卷积神经网络

    图卷积神经网络 利用图卷积神经网络提取拓扑图的空间特征,其方式主要可以分为基于空间域(vertex domain,spatial domain)的方法 以及 基于谱域(spectral domain) ...

  8. 计算机视觉:卷积神经网络在计算机视觉领域大放异彩的原因

    本文重点 卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理图像数据的深度学习模型,其在图像识别.物体检测.人脸识别等领域取得了非常好的效果. 简单的 ...

  9. 一维卷积神经网络_序列特征的处理方法之二:基于卷积神经网络方法

    前言 上一篇文章介绍了基本的基于注意力机制方法对序列特征的处理,这篇主要介绍一下基本的基于卷积神经网络方法对序列特征的处理,也就是TextCNN方法.序列特征的介绍,背景以及应用可以参考上一篇的详细介 ...

最新文章

  1. 树链剖分(轻重链剖分) 讲解 (模板题目 P3384 【模板】轻重链剖分 )
  2. java工具类去掉字符串String中的.点。android开发java程序员常用工具类
  3. 华为研发出了哪些芯片?
  4. 2.1.5 操作系统之线程概念与多线程模型
  5. 无法安装声卡及MODEM驱动
  6. 【Android】刷Rom:adb reboot bootloader
  7. [转]ORACLE 异常错误处理
  8. NoSQL 数据库不应该放弃 Consistency
  9. 聊聊有哪些参与项目的好途径吧
  10. JavaScript:原型设计模式
  11. 路飞学城Python-Day96
  12. 如何创建线程?如何创建扩展Thread类?
  13. unicodedata模块
  14. springboot连接mysql乱码_springboot2.x——接口访问出现中文乱码
  15. paip.web数据绑定 下拉框的api设计 选择框 uapi python .net java swing jsf总结
  16. ipixsoft swf to html5 converter,iPixSoft SWF to Video Converter(视频转换软件)
  17. winxp找不到服务器或 dns 错误,详解网络无法使用DNS错误的修复步骤
  18. MIMO技术杂谈(一):鱼与熊掌能否兼得?--浅谈分集与复用的权衡
  19. 关于系统架构你不知道的那些事-架构设计流程:设计备选方案
  20. 桌面任务栏不见了解决办法

热门文章

  1. JVM hotspot虚拟机对象探秘
  2. 【splunk】仪表盘导入导出
  3. linux下Oracle 10g安装(超级详细图解教程)
  4. easy js test--方便对js进行测试,不需要刷新
  5. Fedora16安装mplaye和smplayer
  6. 思想:CoreMVC是什么(3)
  7. 菜鸟成长日记(五)之WMIC简单命令应用
  8. ASP.NET 2.0:如何让DropDownList同时拥有数据来源项目与自订项目 (转自章立民CnBlogs)...
  9. pythonos pathjson_python进阶05 常用问题库(1)json os os.path模块
  10. python意外缩进引发逻辑错误_如何编写 Python 程序