今天给大家带来的是卷积神经网络,听上去是不是挺高大上的?它还有个更响亮的名字CNN,谈到CNN应该好多同学都略知一二吧,CNN在做图像识别上有着很出色的效果,那我们今天对卷积神经网络一探究竟吧!
卷积神经网络,CNN(Convolutional Neural Network),属于深度学习技术的一种算法,主要是进行特征学习,通过分层网络获取分层次的特征信息去解决人工设计特征的这个难题。
(TIPS:深度学习包含多种技术,CNN只是其中的一种,还包括:自动编码器AutoEncoder,稀疏编码Sparse Coding,限制玻尔兹曼机RBM,深信度网络Deep Belief Networks,多层反馈循环神经网络RNN)
卷积神经网络
关于卷积神经网络我们如何使用通俗易懂的语言来解释它呢?
首先我们需要了解:它就是多层神经网络,善于解决图像识别问题。那如何去理解神经网络呢,我们可以简单的想象一下那密密麻麻的渔网,网上的那些节组成的就是网络,节点和节点之间有线连接着,可以想象成每个神经元(节点)之间都产生连接。
那卷积神经网络为什么对于图像识别分类有着更好的效果呢?
图片数据对于机器来说是交大的数据,尤其是对于高清图片,机器读取和学习的时间也就越长,难度可以说指数级上升。但是卷积神经网络它可以将数据庞大的图片识别问题去不断降维(就是从图像中不断去抽取细节特征,从小的慢慢看),使得该图像最终能够被训练。
那么卷积神经网络是怎样工作的呢?
卷积神经网络是由三个层组成的,分别是:卷积层,池化层,全连接层。
卷积层与池化层联合工作,形成卷积组,一层一层的去提取特征,最终通过数个全连接层完成分类。
卷积层的原理其实就是局部视野的原理,有一张30*30的图片,我每次只看3*3的大小(步长为3,不重复看),看100次全部看完,这就是卷积(看下图去理解卷积)。池化层呢,就是降低维度,学术上又叫下采样,就是从原图片中进行采样,对于一张720*1080的照片,池化层进行采样,每次采30*30的大小,这就是池化了(看下图去理解池化)。总的来说,CNN是通过卷积来区分特征,并且通过卷积产生的权值共享和池化来降低网络参数的数量级,最后的工作就和普通神经网络的工作一样了。
卷积神经网络在图像数据非常多的适合会有出乎意料的效果,但是数据集过少的时候往往效果不是很好,容易出现过拟合。
卷积
池化
LeNet介绍
我们来看看这一张图,从原始图片不断提取,卷积。
先进入一个卷积层C1,由6个5x5的卷积核组成,卷积出28x28的图像,然后下采样到14x14(S2),再进一个卷积层C3,由16个5x5的卷积核组成,之后再下采样到5x5(S4)。我们可以看出,C3-0跟S2-0,1,2连接,C3-1跟S2-1,2,3连接,后面依次类推。最后,通过全连接层C5、F6得到10个输出,对应10个数字的概率。
训练
卷积神经网络的训练分为两个阶段:
阶段一:
正向传播
A、从样本集中取一个样本(X,Yp),将X输入网络;
B、计算相应的实际输出Op。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
阶段二:
反向传播
A、算实际输出Op与相应的理想输出Yp的差;
B、按极小化误差的方法反向传播调整权矩阵。
下面我们看看在TensorFlow中我们是怎么去做的吧!
前方代码过于简单,及时带好眼睛!!!
数据准备
教程的图片从Cifar数据集中获取,download_cifar.py从Keras自带的Cifar数据集中获取了部分Cifar数据集,并将其转换为jpg图片。
默认从Cifar数据集中选取了3类图片,每类50张图,分别是
0 => 飞机 1 => 汽车 2 => 鸟
导入相关库
import os#图像读取库
from PIL import Image#矩阵运算库
import numpy as np
import tensorflow as tf
配置信息
设置了一些变量增加程序的灵活性。图片文件存放在data_dir文件夹中,train表示当前执行是训练还是测试,model-path约定了模型存放的路径。
# 数据文件夹
data_dir = "data"
# 训练还是测试
train = True
# 模型文件路径
model_path = "model/image_model"
数据读取
定义placeholder(容器)
定义卷积网络(Conv和Pooling部分)
定义全连接部分
定义损失函数和优化器
定义模型保存器/载入器
训练阶段执行
如果trian为True,进行训练。训练需要使用sess.run(tf.global_variables_initializer())初始化参数,训练完成后,需要使用saver.save(sess, model_path)保存模型参数。
测试阶段执行
如果train为False,进行测试,测试需要使用saver.restore(sess, model_path)读取参数。
今天就到这里了,其实细心的同学你们会发现代码大部分都是配置数据读写数据,真正花在训练上的代码也不是很多,其实对于深度学习也就是这个意思,主要工作并不是敲代码,而是如何调参。TensorFlow在算法的封装上确实是做的很好的,我们可以直接拿过来用。大家也快去试试吧!
代码地址:
https://www.bytelang.com/o/s/c/uEOz1asEK6s=
感兴趣的扫个二维码吧!
分享到:
相关推荐
区块链行业通证衍生品探索之三:你为什么亏钱?揭露交易所提前爆仓真相-1014-通证通研究院-15页.pdf
仿制药的真相 - 仿制药真的是同等疗效 价格低廉的替代要 -揭秘仿制药全球产业链.pdf
考研真相-关于考研的朴素道理考研真相-关于考研的朴素道理朴素道理数学该怎么学习复习的朴素道理真题的重要性我的复习流程复习英语和政治的提醒朴素道理考研上岸 = 端
房地产行业地产论道系列之信用篇(八):历史的真相-0414-国泰君安-23页.pdf
揭穿微信朋友圈卖东西月入几万的真相-卢松松博客1
### 2019众包骑手生存真相报告解析 #### 一、引言 《2019众包骑手生存真相报告》是一份针对中国众包骑手群体进行深度调研的研究报告,由点我达和营创实验室联合发布。报告通过详细的数据分析和深入访谈,揭示了...
《熬夜真相-0点经济报告》揭示了现代社会中一个引人深思的现象——“0点经济”。这份报告详细分析了深夜时段经济活动的兴起、特点以及对社会经济的影响。熬夜,不再仅仅是个人生活习惯的问题,而是逐渐演变为一种...
随着互联网和智能设备的普及,人们的夜间行为模式也在发生着显著的变化。熬夜购物,或者说“0点经济”,已经成为了一种不容忽视的消费现象。根据阿里妈妈营销研究中心的报告,我们了解到,现代人尤其是夜猫子在凌晨...
【标题】:“人力资源管理的真相-欧美IOS风PPT模板.pptx”揭示了现代企业中人力资源管理的核心理念和实践策略,结合了欧美先进的管理思想与简洁高效的iOS设计风格,旨在为企业提供一套全面且直观的人力资源管理展示...
阿里妈妈发布的《熬夜真相-0点经济报告》详细探讨了这一现象,并提供了基于大数据分析的消费洞察。 报告指出,随着生活节奏的加快和工作压力的增大,白日碎片化的时间往往不属于个人自由支配,人们往往选择在深夜...
仿制药是全球医药市场中的重要组成部分,它们与原研药具有相同的活性成分、剂量、剂型、质量和疗效,但价格通常远低于专利药。本文将深入探讨仿制药的定义、生产和全球产业链,揭示其背后的真实情况。...
策略·深度专题:2000例并购还原创业板内生与外延真相 策略报告的主要内容是对创业板外延并购的研究和分析,旨在揭示外延并购对创业板业绩的影响。报告将分为五个部分,从为什么要做创业板外延并购的研究开始,接着...
在Android应用开发中,滑动选择控件(如WheelView)常常被用于创建用户友好的交互界面,特别是在需要用户选择日期、时间或者一系列预设选项的场景。本项目是一个基于Android的滑动选择控件——WheelView的实现,特别...
在本项目"Android滑动选择控件WheelView,双级联动,有图有真相"中,开发者为学习者提供了一个完整的源码示例,特别适用于毕业设计或论文研究。 首先,我们要理解WheelView的核心特性。WheelView是基于Android SDK...
用卷积神经网络分割组织学图像并识别纤维化 该存储库包含卷积神经网络(CNN)的实施方案在此描述的。 CNN通过预测每个像素的类别来分割生物医学图像。 在最初的任务中,图像是用Masson's trichrome染色的心脏组织...
在探讨科技产业趋势和投资的思考中,我们首先需关注产业趋势分析方法和未来趋势投资的本质及方法论。投资的本质在于放大、趋势和逆向操作。放大即指投资策略需要关注企业成长过程中规模的放大效应;...
图片文字提取简易方法--有图有真相,助你省时省力的提取图片中的文字信息
matlab如何找k-means源代码该网站包含...在实验室环境中,对276个签名字进行了分段的上行链路CSI跟踪和地面真相标签。 一个用户执行了5,520个276个手势手势的实例。 1.33GB 家庭环境中276个符号词的分段下行链路和上行
网络信息安全的真相
标题中的“dog-breed-identification.zip”表明这是一个关于狗品种识别的数据集,它采用的是卷积神经网络(CNN)技术,适用于多类别分类任务。这个数据集主要用于学习和交流目的,而不是正式的竞赛或者商业应用。 ...