点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

如何利用CNN实现图像识别的任务?

输入层读入经过规则化(统一大小)的图像,每一层的每个神经元将前一层的一组小的局部近邻的单元作为输入,也就是局部感受野和权值共享,神经元抽取一些基本的视觉特征,比如边缘、角点等,这些特征之后会被更高层的神经元所使用。卷积神经网络通过卷积操作获得特征图,每个位置,来自不同特征图的单元得到各自不同类型的特征。一个卷积层中通常包含多个具有不同权值向量的特征图,使得能够保留图像更丰富的特征。卷积层后边会连接池化层进行降采样操作,一方面可以降低图像的分辨率,减少参数量,另一方面可以获得平移和形变的鲁棒性。卷积层和池化层的交替分布,使得特征图的数目逐步增多,而且分辨率逐渐降低,是一个双金字塔结构。

CNN的特征

(1)具有一些传统技术所没有的优点:良好的容错能力、并行处理能力和自学习能力,可处理环境信息复杂,背景知识不清楚,推理规则不明确情况下的问题,允许样品有较大的缺损、畸变,运行速度快,自适应性能好,具有较高的分辨率。它是通过结构重组和减少权值将特征抽取功能融合进多层感知器,省略识别前复杂的图像特征抽取过程。

(2)泛化能力要显著优于其它方法,卷积神经网络已被应用于模式分类,物体检测和物体识别等方面。利用卷积神经网络建立模式分类器,将卷积神经网络作为通用的模式分类器,直接用于灰度图像。

(3)是一个前溃式神经网络,能从一个二维图像中提取其拓扑结构,采用反向传播算法来优化网络结构,求解网络中的未知参数。

(4)一类特别设计用来处理二维数据的多层神经网络。CNN被认为是第一个真正成功的采用多层层次结构网络的具有鲁棒性的深度学习方法。CNN通过挖掘数据中的空间上的相关性,来减少网络中的可训练参数的数量,达到改进前向传播网络的反向传播算法效率,因为CNN需要非常少的数据预处理工作,所以也被认为是一种深度学习的方法。在CNN中,图像中的小块区域(也叫做“局部感知区域”)被当做层次结构中的底层的输入数据,信息通过前向传播经过网络中的各个层,在每一层中都由过滤器构成,以便能够获得观测数据的一些显著特征。因为局部感知区域能够获得一些基础的特征,比如图像中的边界和角落等,这种方法能够提供一定程度对位移、拉伸和旋转的相对不变性。

(5)CNN中层次之间的紧密联系和空间信息使得其特别适用于图像的处理和理解,并且能够自动的从图像抽取出丰富的相关特性。

(6)CNN通过结合局部感知区域、共享权重、空间或者时间上的降采样来充分利用数据本身包含的局部性等特征,优化网络结构,并且保证一定程度上的位移和变形的不变性。

(7)CNN是一种深度的监督学习下的机器学习模型,具有极强的适应性,善于挖掘数据局部特征,提取全局训练特征和分类,它的权值共享结构网络使之更类似于生物神经网络,在模式识别各个领域都取得了很好的成果。

(8) CNN可以用来识别位移、缩放及其它形式扭曲不变性的二维或三维图像。CNN的特征提取层参数是通过训练数据学习得到的,所以其避免了人工特征提取,而是从训练数据中进行学习;其次同一特征图的神经元共享权值,减少了网络参数,这也是卷积网络相对于全连接网络的一大优势。共享局部权值这一特殊结构更接近于真实的生物神经网络使CNN在图像处理、语音识别领域有着独特的优越性,另一方面权值共享同时降低了网络的复杂性,且多维输入信号(语音、图像)可以直接输入网络的特点避免了特征提取和分类过程中数据重排的过程。

(9)CNN的分类模型与传统模型的不同点在于其可以直接将一幅二维图像输入模型中,接着在输出端即给出分类结果。其优势在于不需复杂的预处理,将特征抽取,模式分类完全放入一个黑匣子中,通过不断的优化来获得网络所需参数,在输出层给出所需分类,网络核心就是网络的结构设计与网络的求解。这种求解结构比以往多种算法性能更高。

(10)隐层的参数个数和隐层的神经元个数无关,只和滤波器的大小和滤波器种类的多少有关。隐层的神经元个数,它和原图像,也就是输入的大小(神经元个数)、滤波器的大小和滤波器在图像中的滑动步长都有关。

CNN的求解

CNN在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

卷积网络执行的是监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成的。所有这些向量对,都应该是来源于网络即将模拟系统的实际“运行”结构,它们可以是从实际运行系统中采集来。

(1)参数初始化:

在开始训练前,所有的权都应该用一些不同的随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无学习能力。

(2)训练过程包括四步

① 第一阶段:前向传播阶段

  • 从样本集中取一个样本,输入网络

  • 计算相应的实际输出;在此阶段信息从输入层经过逐级的变换,传送到输出层,这个过程也是网络在完成训练之后正常执行时执行的过程

② 第二阶段:后向传播阶段

  • 计算实际输出与相应的理想输出的差

  • 按照极小化误差的方法调整权值矩阵

网络的训练过程如下:

① 选定训练组,从样本集中分别随机地寻求N个样本作为训练组;

② 将各权值、阈值,置成小的接近于0的随机值,并初始化精度控制参数和学习率;

③ 从训练组中取一个输入模式加到网络,并给出它的目标输出向量;

④ 计算出中间层输出向量,计算出网络的实际输出向量;

⑤ 将输出向量中的元素与目标向量中的元素进行比较,计算出输出误差;对于中间层的隐单元也需要计算出误差;

⑥ 依次计算出各权值的调整量和阈值的调整量;

⑦ 调整权值和调整阈值;

⑧ 当经历M后,判断指标是否满足精度要求,如果不满足,则返回(3),继续迭代;如果满足就进入下一步;

⑨ 训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器已经形成。再一次进行训练,直接从文件导出权值和阈值进行训练,不需要进行初始化。

版权声明:本文摘自博主 呆呆的猫 原创文章,遵循 CC 4.0 BY-SA 版权协议,
转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jiaoyangwm/article/details/80011656

好消息!

小白学视觉知识星球

开始面向外开放啦

如何利用CNN实现图像识别的任务?相关推荐

  1. AI学习笔记(十一)CNN之图像识别(上)

    AI学习笔记之CNN之图像识别(上) 图像识别 图像识别简介 模式识别 图像识别的过程 图像识别的应用 分类与检测 VGG Resnet 迁移学习&inception 卷积神经网络迁移学习fi ...

  2. 基于CNN的图像识别(Tensorflow)

    基于CNN的图像识别 基于CNN的图像识别 CNN相关基础理论 卷积神经网络概述 卷积神经网络三大核心概念 TensorFlow 2.0 API tf.keras.Sequential tf.kera ...

  3. DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感)

    DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感) 目录 CNN算法设计思路 代码实现 CNN算法设计思路 b 代码实现 后期更新--

  4. DL之CNN:利用CNN(keras, CTC loss, {image_ocr})算法实现OCR光学字符识别

    DL之CNN:利用CNN(keras, CTC loss)算法实现OCR光学字符识别 目录 输出结果 实现的全部代码 输出结果 更新-- 实现的全部代码 部分代码源自:GitHub https://r ...

  5. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...

  6. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...

  7. 【转】自然语言系列学习之表示学习与知识获取(五)融合文本和知识,利用cnn方法进行关系抽取

    本文重点放在怎么利用知识表示学习,辅助我们进行关系抽取,首先介绍如何利用分布式表示去融合知识和文本进行文本的抽取. 前文提到利用知识图谱学习了知识表示,就可以预测任意两个实体之间的关系,它是通过t-h ...

  8. 基于tensorflow2.0利用CNN与线性回归两种方法实现手写数字识别

    CNN实现手写数字识别 导入模块和数据集 import os import tensorflow as tf from tensorflow import keras from tensorflow. ...

  9. 利用CNN和迁移学习方法识别植物叶片疾病

    利用CNN和迁移学习方法识别植物叶片疾病 Abstract 及时发现和早期预防作物病害对提高产量至关重要.由于深度卷积神经网络(CNN)在机器视觉领域取得了令人瞩目的成果,本文采用深度卷积神经网络(C ...

最新文章

  1. Django框架(十)--常用字段、参数、元信息、多对多关联关系
  2. 在Outlook中用VBA导出HTML格式邮件
  3. testNg自动化,读取excel的数据
  4. 阿里P8架构师谈:流量高峰时期的性能瓶颈有哪些、以及如何来解决
  5. 面试官:换人!他连进程线程协程这几个特点都说不出
  6. 手机java做贪吃蛇_如何用Java写一个贪吃蛇游戏
  7. 记录一次跨国笔试经过
  8. 【白皮书分享】腾讯2022新职业教育洞察白皮书:“职”成机遇,“育”见未来.pdf...
  9. 蠕虫mysql_mysql蠕虫复制基础知识点
  10. 下载网页内容,并编译生成CHM文件
  11. 数据-第14课-栈的定义及实现
  12. XAMPP端口更改后 httpd-vhosts.conf 文件配置
  13. SpringMVC、SpringBoot拦截器的实现和原理
  14. Go专栏“改善Go语言编程质量的50个有效实践”上线了
  15. Linux服务器命令
  16. 电脑公司Windows7_X86旗舰版V0911
  17. ubuntu 11.10使用fcitx双拼输入法
  18. python 爬虫http2
  19. 女生参加UI设计培训班有没有前途
  20. 《爆款文案》的读后感作文3000字

热门文章

  1. 运放稳定性连载11:电容性负载稳定性:RISO、高增益及 CF、噪声增益(2)
  2. 文本生成魔改方案汇总!
  3. 植物大战僵尸的一些魔改
  4. Lan Goodfellow 《DEEP LEARNING》学习笔记 --第四章
  5. nvidia显示设置不可用_纯干货!手把手教你为FreeSync显示器开启G-Sync教程
  6. 统计假设测验------(二)平均数的假设测验(t测验原理与公式)
  7. 智控网络——智谋云价签,与智慧门店同飞跃、共变革
  8. 凯立德 C1204-C7P08-3H2RJ22
  9. 微星z370安装linux系统,华硕z370主板装win10系统及bios设置(uefi+gpt方式安装)
  10. 买了新笔记本电脑-荣耀magicbookpro2019啦!!