深度学习卷积神经网络学习小结

—————————————————————————————————————————————
学习小结:
1)深度学习综述;(2)对卷积神经网络(CNN)的认识;(3)minist数据集训练及测试;

—————————————————————————————————————————————

前言

深度学习是机器学习领域一个新兴的研究方向,它通过模仿人脑结构,实现对复杂输入数据的高效处理,智能地学习不同的知识,而且能够有效地解决多类复杂的智能问题。实践表明,深度学习是一种高效的特征提取方法,它能够提取数据中更加抽象的特征,实现对数据更本质的刻画,同时深层模型具有更强的建模和推广能力。其代表了以使用深层神经网络实现数据拟合的一类机器学习方法,典型的深度学习模型有卷积神经网络(convolutional neural network)、DBN 和堆栈自编码网络(stacked auto-encoder network)模型等。下节主要将介绍卷积神经网络。其学习方法主要可以分为监督学习和无监督学习。监督与非监督是通过查看输入数据是否有标签,有标签则为监督学习,或者为无监督学习。
目前就深度学习的实际应用主要是在语音,图像,信息检索。现今的语音识别通过综合深度学习模型强大的判别训练和连续建模能力,对应的识别效果已经是非常理想;对于图像上的应用主要是在手写体字符识别,人脸识别,及图像识别和检索上,现今在深度学习的框架下这些方面均取得了较好的结果;对于信息检索也有大量的研究应用,通过深度学习的方法对文档建立索引,再从中检索信息。相信未来深度学习在更多的方向有着良好的应用,其将突破了传统机器学习方法的瓶颈,推动了人工智能领域的发展。

卷积神经网络(CNN)

卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。
一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。
在这里插入图片描述
图1 卷积神经网络概念示范图
图1为CNN的概念示范图,可知CNN结构可分为四个大层次:输入图像,多个卷积-下采样层,光栅化以及多层感知机。对输入图像进行归一化,按激活函数的不同,将输入图像归一化到不同区间,其后将其与下一层权重w做卷积得到各个卷积层,然后下采样得到各个下采样层,这些层的输出为Feature Map。接下来进行光栅化,将所有Feature Map每个像素依次展开,形成一个向量,最后的多层感知机为一个全连接网络,网络最后的分类器一般用激活函数Softmax。
CNN的训练过程包括训练前对权值的初始化,其中权值应用不同的小随机数来保证整个训练过程的成功,其后的两个阶段为向前传播阶段和向后传播阶段,前者通过输入计算出网络中最终的输出,后者通过对比实际输出与理想输出的差,再用反向传播算法更新各个量值,直到实际输出与理想输出的差满足我们期望了一个值。

Minist数据集训练及测试

这里在Minist数据集下进行LeNet模型的训练和测试,其中主要有两部分,首先对LeNet进行介绍,其次为在电脑上实现结果。
(1)LeNet模型介绍。
图2为原始的LeNet模型图,其是早期卷积神经网络中最有代表性的实验系统之一。LeNet除输入外还有有7层。首先设置输入图像大小32*32。各层介绍如下。
C1层是一个卷积层,由6个特征图(Feature Map)构成,每个Feature Map是通过一种卷积滤波器提取输入的一种特征,然后每个Feature Map有多个神经元。特征图中每个神经元与输入中5×5的邻域相连。特征图的大小为28×28。
**S2层是一个下采样层,**利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息),有6个14×14的特征图。
C3层也是一个卷积层,它同样通过5×5的卷积核去卷积层S2,然后得到的特征图就只有10×10个神经元,但是它有16种不同的卷积核,所以就存在16个Feature Map了。
S4层是一个下采样层,由16个5×5大小的特征图构成。特征图中的每个单元与C3中相应特征图的2×2邻域相连接,跟C1和S2之间的连接一样。
C5层是一个卷积层,有120个特征图。每个单元与S4层的全部16个单元的5×5邻域相连。由于S4层特征图的大小也为5×5(同滤波器一样),故C5特征图的大小为1×1:这构成了S4和C5之间的全连接。之所以仍将C5标示为卷积层而非全连接层,是因为如果LeNet-5的输入变大,而其他的保持不变,那么此时特征图的维数就会比1×1大。
F6层是一个全连接层,有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全相连。如同经典神经网络,F6层计算输入向量和权重向量之间的点积,再加上一个偏置。然后将其传递给sigmoid函数产生单元i的一个状态。
输出层由欧氏径向基函数(Euclidean Radial Basis Function)单元组成,应用有限。在多分类任务中,CNN的输出层一般都是Softmax回归模型,该模型输出图片属于某类别的概率。
图2 原始的LeNet模型图
图2 原始的LeNet模型图

(2)首先生成mnist-train-lmdb/ 和 mnist-test-lmdb/,把数据转化成lmdb格式,终端结果如图3所示。
在这里插入图片描述
图3 数据转化
然后训练网络,图4为训练网络的部分终端显示结果。
在这里插入图片描述
图4 训练网络部分结果
最后测试,在数据都训练好后,进行测试,结果如图5所示
在这里插入图片描述
图5 测试结果

总结

通过此次专题加深了对深度学习的认识,对于深度学习的发展有比较详细了解,尤其是知道了其中的CNN整个过程是如何进行。通过查找资料对各个过程中的名词也有了一定的理解认识,同时认识到两个阶段中参量是如何变化。对Minist的实现,加深了整个CNN过程在程序上是如何实现的了解。接下来将对Minist数据库测试与训练的各个步骤进行学习,尤其是弄懂其训练过程及学习过程是如何进行的。对整个CNN过程从理论上进行学习了解,并通过阅读相关文献了解深度学习具体到应用中是如何实现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/16940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

08 Kubernetes应用配置管理

课件 在 Kubernetes 中,secret 是一种用于存储敏感信息的对象。Kubernetes 支持以下三种类型的 secret: Opaque:这是默认的 secret 类型,可以用于存储任何类型的数据,包括字符串、二进制数据等。 Service Account&…

Python研究生组蓝桥杯(省二)参赛感受

为什么参加蓝桥杯? 今年是读研的第一年,看着我简历上的获奖经历“优秀学生干部”“优秀志愿者”“优秀毕业生”......大学四年,我竟然没有一次竞赛类的经历,也没有拿得出手的项目,我陷入了深深的焦虑。 听说蓝桥杯的…

[架构之路-183]-《软考-系统分析师》-13-系统设计 - 高内聚低耦合详解、图解以及技术手段

目录 第1章 什么是高内聚低耦合 1.1 概念 1.2 目的 1.3 什么时候需要进行高内聚低耦合 1.4 什么系统需要关注高内聚、低耦合 第2章 分类 2.1 内聚的分类 2.2 耦合的分类 第3章 增加高内聚降低耦合度的方法 3.1 增加高内聚 3.2 降低耦合度 第1章 什么是高内聚低耦…

超详细的R语言svykm函数绘制复杂抽样设计数据cox回归生存曲线(Kaplan-Meier)

我们在既往的文章《R语言绘制复杂抽样设计数据cox回归生存曲线(Kaplan-Meier)》中介绍了怎么使用jskm包的svykm函数绘制复杂抽样设计数据cox回归生存曲线(Kaplan-Meier),但是有粉丝觉得讲得不够详细,希望讲得详细一点,今天我们继续来介绍一下…

排序算法 — 归并排序

文章目录 归并排序介绍从下往上的归并排序从上往下的归并排序 归并排序实现从上往下的归并排序从下往上的归并排序 归并排序的时间复杂度和稳定性归并排序时间复杂度归并排序稳定性 代码实现核心&总结 每日一道算法,提高脑力。第五天(时隔7天,终于回…

Mybatis 框架 ( 一 ) 基本步骤

1.概念 1.1.什么是Mybatis框架 (1)Mybatis是一个半ORM(Object Relation Mapping 对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、…

【工具使用】- git实现gitee托管代码以及检出代码

1. 下载Git工具 git下载地址1:https://git-scm.com/download/win git下载2:https://mirrors.tuna.tsinghua.edu.cn/github-release/git-for-windows/git/Git%20for%20Windows%202.40.1/ 下载完成后安装 安装直接执行exe可执行程序,下一步…

Packet Tracer - 配置 RIPv2

Packet Tracer - 配置 RIPv2 目标 第 1 部分:配置 RIPv2 第 2 部分:验证配置 拓扑图 背景信息 尽管在现代网络中极少使用 RIP,但是作为了解基本网络路由的基础则十分有用。 在本活动中,您将使用适当的网络语句和被动接口配置…

【Java笔试强训 24】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥年终奖 …

VC++ | MFC应用程序设计:框架搭建

VC | MFC应用程序设计:框架搭建 时间:2023-05-01 文章目录 VC | MFC应用程序设计:框架搭建1.启动程序2.新建项目2-1.新建项目2-2.应用程序类型2-3.文档模板属性2-4.用户界面功能2-5.高级功能选项2-6.生成的类2-7.解决方案资源管理器 3.工程文…

springboot websocket通信

目录 一、websocket是什么 二、实现websocket 2.1参考学习b站资料(一定要看,前后端详细) 2.2学习配套代码 一、websocket是什么 WebSocket_ohana!的博客-CSDN博客 二、实现websocket 2.1参考学习b站资料(一定要看…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言,数组是其中的重要数据结构之一。在Java中,数组是一种固定长度、有序的数据结构,可以存储一组相同数据类型的元素。在本文中,我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…

linux中使用docker部署微服务

目录 一、制作jar包(如果看一眼很简单,可以直接使用结尾的jar) 1.首先创建一个微服务 demo2 2.启动微服务(在DemoApplication上右键执行启动就行) 注意:其他操作导致的 可能遇到的报错 3.修改端口 4.新…

超细Redis(一)

目录 概述 Redis是什么? Redis能干嘛? 特性 如何学习 Linux安装 测试性能 概述 Redis是什么? Redis (Remote Dictionary Server),即远程字典服务 是一个开源使用ANSI C语言编写、支持网络、可基于内存亦可持…

【Java笔试强训 12】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥二进制插…

Python小姿势 - Python学习笔记——类与对象

Python学习笔记——类与对象 类与对象是面向对象编程的两个基本概念。类是对象的抽象概念,对象是类的具体表现。 类是对一类事物的抽象,它是描述一类事物的模板,而对象是类的具体表现。对象是类的实例,类是对象的模板。 举个例子&…

STM32 系列 DAC的介绍与使用

STM32网上资料多,对自己来说基本的使用也是很简单的, 我的STM32专栏并没有什么系统的基础教学,基本上是某个项目用到了,或者产品使用过程出过问题 才会来记录一下,正好用到了 DAC ,一般产品还用得不多&…

QML应用动画(Applying Animations)

目录 一 扩展可点击图像元素版本2(ClickableImage Version2) 1 第一个火箭 2 第二个火箭 3 第三个火箭 动画可以通过以下几种方式来应用: 属性动画 - 在元素完整加载后自动运行; 属性动作 - 当属性值改变时自动运行&#xf…

【栈】的实现

🖊作者 : D. Star. 📘专栏 : 数据结构 😆今日分享 : —>📖区块链 : 小明向你借100块钱,说一周后还你,然后你拿个喇叭大喊一声:我是某某,小明向我借了100块&#xff0c…

Vue3+Element Plus环境搭建和一键切换明暗主题的配置

Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。而Element Plus是一款基于Vue3面向设计师和开发者的组件库。 最终效果: 环境搭建 已安装 16.0 或更高版本的 Node.js,终端: npm init vuelatest这一…