梅科尔工作室-深度学习第五节-CNN学习
目录
1.什么是CNN(卷积神经网络)
2.卷积层与池化层
2.1卷积层
2.2池化层
3.卷积神经网络的输入与输出
4.卷积神经网络之层级结构
5.激活函数
6.计算公式
1.什么是CNN(卷积神经网络)
卷积网络的核心,当然是卷积。在CNN(卷积网络)的卷积层中,存在着一个个填充数据的正方形“盒子”就是我们说的卷积核。
在CNN网络中,原始图片经过输入层后,会变成灰度或者RGB数据矩阵。
将卷积核与图片数据矩阵对齐,对应的各自中的数据相乘后再相加卷积核在图像上以一定的距离移动运算,这就是步长。
得到的新矩阵能反映图像的部分特征,被称为特征图,它们既是这层的输出,也是下一层的输入。
2.卷积层与池化层
2.1卷积层
先谈一下卷积层的工作原理。
我们是使用卷积核来提取特征的,卷积核可以说是一个矩阵。假如我们设置一个卷积核为3*3的矩阵,而我们图片为一个分辨率5*5的图片。那么卷积核的任务就如下所示:
来自:https://mlnotebook.github.io/post/CNN1/
从左上角开始,卷积核就对应着数据的3*3的矩阵范围,然后相乘再相加得出一个值。按照这种顺序,每隔一个像素就操作一次,我们就可以得出9个值。这九个值形成的矩阵被我们称作激活映射(Activation map)。这就是我们的卷积层工作原理。也可以参考下面一个动画:
其中,卷积核为
1 0 1
0 1 0
1 0 1
2.2池化层
池化过程在一般卷积过程后。池化(pooling) 的本质,其实就是采样。Pooling 对于输入的 Feature Map,选择某种方式对其进行降维压缩,以加快运算速度。
扫描的顺序跟卷积一样,都是从左上角开始然后根据你设置的步长逐步扫描全局。
2.3 两者对比
卷积层是对图像的一个邻域进行卷积得到图像的邻域特征,池化层(或者说 亚采样层 更好理解)就是使用 pooling(亚采样)技术将小邻域内的特征点整合得到新的特征。
3.卷积神经网络的输入与输出
图像分类指的是输入一张图像后,神经网络输出一个关于这个图像的类,或是图像属于某类的概率的任务。对人类而言,这是我们从出生那一刻起就开始不断学习的技能之一,而且随着年龄的增长,人们处理这种任务会越来越轻松自然。
无需二次思考,我们就能快速无缝识别身处的环境和周围的所有物体。当看到一幅图或是观察周围环境时,我们几乎是下意识地调用以往学习的所有知识,为场景中的各个对象一一打上标签。
但计算机不同。我们把图像输入计算机后,它“看”到的其实是一组像素值。这些像素值的数量会随图像的大小和分辨率发生改变,如果输入图像是一张JPG格式的彩色图像,它的像素为480×480,那么计算机得到的就是一个大小为480×480×3(这里3表示RGB值)的数组。
这个数组里的每一个值都介于0-225之间,描述了对应像素的强度。虽然这些值对分类任务来说毫无意义,但它们是计算机可以用的唯一输入。这就带出了另一个更直白的图像分类任务描述:它其实是把像素值数组作为输入,然后输出图像属于某一类的具体概率,如80%(猫)、15%(狗)、5%(鸟)。
4.卷积神经网络之层级结构
上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:如果是车 那是什么车 所以最左边是数据输入层,对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA/白化等等。CNN只对训练集做“去均值”这一步。
最左边是
- 数据输入层,对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA/白化等等。CNN只对训练集做“去均值”这一步。
中间是
- CONV:卷积计算层,线性乘积 求和。
- RELU:激励层,上文2.2节中有提到:ReLU是激活函数的一种。
- POOL:池化层,简言之,即取区域平均或最大。
最右边是
FC:全连接层
5.激活函数
常见的激活函数有sigmoid、tanh、relu等等
引入一个最简单的sigmoid函数进行讲解
Sigmoid
函数将输入的值转换为(0,1),如果输入是非常小的负数,那么输出就是0;如果输入是非常大的正数,输出就是1。其计算公式如下:
f(x) = 1 / (1 - e^(-x))
同时该激活函数的特点如下:
- 收敛缓慢
- 边界介于0和1之间
- 梯度反向传递时可能会导致梯度消失
我们重点观察其导数图像,如下所示:
上述图像中,梯度值仅在-3到3范围内有效,而该曲线图在其他区域变得非常平坦。这意味着,对于大于3或小于-3的值,函数将具有非常小的梯度。当梯度值接近零时,网络将停止学习,此时将导致梯度消失问题。
6.计算公式
卷积计算公式如下:
式中参数:
i--输入尺寸;
o---输出尺寸;
p---padding;
K--- kernel_size;
s---stride。
(2)计算实例
输入图片:假设一张7*7的图片,如下图:
卷积核大小:假设一张3*3(k=3)的卷积核,如下图:
参数设置: 步长S=2;p=0---舍弃
计算过程: [(7+2*0-3)/2}+1 =3
输出图片:输出的图像为3*3
计算过程:
总体过程如下
博文学习:(55条消息) 浅谈CNN中的激活函数_赵卓不凡的博客-CSDN博客_cnn激活函数
(55条消息) 卷积层与池化层_Aliz_的博客-CSDN博客_卷积层和池化层
实例运行:猫狗分类:CNN实现猫狗分类 - 飞桨AI Studio (baidu.com)
梅科尔工作室-深度学习第五节-CNN学习相关推荐
- 梅科尔工作室-深度学习第五讲 CNN-卷积神经网络
目录 前言 1.计算机视觉 1.1. 计算机视觉分类 2. CNN 3. 卷积层 3.1. 什么是卷积 3.2. 动态卷积操作 4. 池化层 5.激活函数的作用 前言 本文记录梅科尔工作室深度学习培训 ...
- 梅科尔工作室深度学习第五课-CNN
CNN解决了什么问题 在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因: 图像需要处理的数据量太大,导致成本很高,效率很低 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率 ...
- 梅科尔工作室——深度学习第五课
CNN(卷积神经网络:Convolutional neural network) 一.计算机视觉的应用 cnn非常普遍地运用在计算机视觉当中(工作室也涉及了很多小牧,在医疗上更多一点) 二.计算机视觉 ...
- 梅科尔工作室-深度学习-CNN
目录 1.基本概念 2.cnn常见任务 3.cnn组成 3.1.输入层 3.2.卷积层 3.3.激活层 3.4.池化层 3.5.全连接层 4.AI Studio公开项目的展示 1.基本概念 卷积神经网 ...
- 梅科尔工作室-深度学习-SVM
目录 1.svm介绍 1.1.svm概念 1.2.svm与knn的对比 2.svm算法原理 2.1.距离计算 2.2.目标函数 2.3.软间隔优化 2.4.核函数 3.百度飞桨已有公开项目的展示 1. ...
- 梅科尔工作室——深度学习第四课
SVM第一阶段学习 一.SVM与KUN的对比 1.KUN 回顾上一节:kun叫做邻近算法(又叫分类算法),首先要有k值,因为k值决定了虚线圆圈的大小,即以要算的未知值为圆心,k的值为半径,画一个虚线圆 ...
- 梅科尔工作室-深度学习第三讲
什么是KNN KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别. 图中绿色的点就是我们要预测的那个点,假设 K=3 .那么 KNN 算法就会找到与它距离 ...
- 梅科尔工作室-李庆浩 深度学习 KNN算法与SVM算法
1.KNN与SVM对比分析 1.1算法原理 KNN算法是物以类聚,人以群分,身旁哪个种类最多就把预测的样本归为哪一类,基本原理就是找到距离最近的K个元素,然后将这K个元素进行排列,哪个种类多,就将样本 ...
- 梅科尔工作室-Django学习笔记(二次学习)(3)
本次学习的是如何用django实现前端鸿蒙OS登录 下面介绍一下本次的操作过程. 1.首先创立MySQL数据并将数据库导入到django当中 其中:导入数据库的操作: 2.配置urls 对应新建的pe ...
最新文章
- vuex 源码分析_Vuex源码解析
- sqlite3命令详解
- 粘性控件,滑动停留StickLayout(导航栏滑动停留)
- Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?
- java实现表达式求值_如何编写一个高效的Java表达式求值程序
- ASP.NET自定义错误页面
- Oracle TNS-12535: TNS: 操作超时
- 我们团队有个做风水项目的现在月收入也有几万了
- 获取python脚本的返回值_Python多线程获取返回值代码实例
- Linux SocketCan client server demo hacking
- c语言程序设计职工信息管理系统,C语言程序设计-职工信息管理系统.doc
- x10ti怎么禁用核显_笔电多显卡切换解决方案浅谈(ver2.2)
- Linux抢购脚本,在操作系统中设置定时自动执行抢飞天茅台脚本的方法
- html宋体四号字如何设置,宋体小四字体是多少号 首先打开WORD文档,进入界面
- 用java实现查询年份的生肖
- deepin做服务器稳定吗,deepin从兴致勃勃到彻底放弃
- python api调用 验证码_Python语言调用创蓝253短信验证码API文档
- 2021华为杯D题详细讲解:抗乳腺癌候选药物的优化建模
- xp 计算机没装网络控制器,XP系统如何安装没有线网卡驱动?
- 开通期货所需要的材料和条件
热门文章
- 类似淘宝商品放大镜功能,以及offsetX、offsetY造成的鼠标移动时阴影部分会一闪一闪的不断回到左上角问题
- linux inittab
- SaaSBase:Ultimus BPM 套件是什么?
- 【护眼app】护眼宝
- ubuntu16.04进入登陆界面,但是键盘、鼠标没反应
- 贪婪大陆(cogs 1008)
- 使用dependency-check-maven对项目进行漏洞检查
- php 读取优酷视频缩略图,PHP优酷土豆酷6采集入库函数(获取视频缩略图,视频swf地址,视频标题)...
- Django练习day02,03
- Unity实现各种样式的血条