CNN 小结
CNN 小结
目录
- CNN特征提取过程(卷积核描述的是特征信息, 此特征可能就是原图像中的某些像素, 但是卷积核并不找相似的地方在原始图像的哪里, 所以需要将卷积核不断地滑动, 得到的feature map中, 越大表示卷积核与原图该部分越符合, 越接近与负数表示卷积核与原图反方向越符合, 越接近于0表示不符合, 其实这与人眼工作的原理很相似, 人眼对特定形状敏感, 对应到卷积中就是值高)
- CNN中每个卷积核的作用(使用卷积核对图像进行卷积得到的一个feature map提取出的是一部分的特征, 可能是人眼, 另外一个卷积核提取出的feature map可能是鼻子, 以此类推, 加入我们使用了3个卷积核, 最后输出了3个feature map, 当前卷积还可以提取出方向信息, 相对位置信息, 颜色信息, 形状信息, 可以第一个map提取的是人眼特征, 第二个提取的是鼻子特征, 第三个提取的是嘴巴特征, 不断地卷积得到的信息越少, 但是信息越专一)
- 为什么卷积运算最后一步是加法? 对于RGB图片, 我们为每一个通道生成一个卷积核, 对应的卷积核去卷积对应的通道, 得到三个结果, 由于我们的目的是对RGB图像提取特征, 因此我们需要把所有提取到的特征都利用起来, 于是进行加法, 将效果叠加在一起
- CNN的卷积核特性(CNN是一个黑匣子, CNN确实可以自动提取特征, 但是不是按照我们指定的特征来提取, 具体提取到哪些特征是不确定的, 提取到哪些特征由卷积核决定, 我们不可能一开始就确定下来卷积核的值, 卷积核的值是通过反向传播提供的误差为引导更新卷积核的值)
- U-Net为什么有效? U-Net的亮点就是skip connection, 将浅层的feature map堆积到深层的feature map上, 就是全局与局部的结合, 保留了更多的信息
- 激活函数的作用(非线性的激活函数可以将数据从一个空间映射到另外一个空间, 增强了模型的非线性表达能力)
- BN作用? BN一般在conv之后, pool之前, 激活函数之后, BN会将值归一化到0附近, BN可以有效地防止梯度消失和加速算法, 就sigmoid函数而言, 它在0值附近的梯度大, 在0值附近更容易区分出特征, 所有如果通过BN将数据归一化到0附近在带入到激活函数中就可以加快特征的提取, 减少梯度消失
- 边缘检测与图像锐化(梯度化)傻傻分不清楚
- CNN的函数公式的理解参照小明使用卷积计算复利
- sigmoid, tanh和ReLU
- sigmoid现在神经网络中已经不常使用了, 因为他存在饱和问题, 在接近0和1的时候会出现梯度变化不明显的情况, 尤其是是在连乘的时候, 容易导致梯度消失
- tanh比sigmoid要好, 虽然他们图像差不多, 但是tanh的值域扩大了一倍
- pooling层是可以去掉的, 此时过了在ImageNet上去掉pooling效果是一样的, 但是使用了pooling减少了计算量
各种卷积
- 标准卷积
- 转置卷积(原图使用空分隔)
- 扩张卷积(卷积核使用空分隔)
- 3D卷积
Pytorch
- 动态图
feature map可视化
- 需要搭建一个类似于风格迁移的网络
- 一般都是对卷积核进行可视化, 因为卷积核描述的就是feature map中的特征, 并且卷积核可视化出来一般都是彩色的, 也会有一些特定的形状, 如羽毛, 链条, 猫的头像等, 可视化出来的时候可能会后多个猫的头像在一个图像上, 因为卷积核有好几个通道, 每一个通过提取的可能不同, 包含了位置与角度信息。
初始化
- 激活函数为ReLU, 一般采用正态分布初始化
- 激活函数为tanh, 一般采用xavier
CNN 小结的更多相关文章
- 基于pytorch的CNN、LSTM神经网络模型调参小结
(Demo) 这是最近两个月来的一个小总结,实现的demo已经上传github,里面包含了CNN.LSTM.BiLSTM.GRU以及CNN与LSTM.BiLSTM的结合还有多层多通道CNN.LSTM. ...
- 卷积神经网络(CNN)模型结构
在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...
- 卷积神经网络(CNN)前向传播算法
在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一 ...
- 【深度学习系列】手写数字识别卷积神经--卷积神经网络CNN原理详解(一)
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- [验证码识别技术]字符验证码杀手--CNN
字符验证码杀手--CNN 1 abstract 目前随着深度学习,越来越蓬勃的发展,在图像识别和语音识别中也表现出了强大的生产力.对于普通的深度学习爱好者来说,一上来就去跑那边公开的大型数据库,比如I ...
- PaddlePaddle︱开发文档中学习情感分类(CNN、LSTM、双向LSTM)、语义角色标注
PaddlePaddle出教程啦,教程一部分写的很详细,值得学习. 一期涉及新手入门.识别数字.图像分类.词向量.情感分析.语义角色标注.机器翻译.个性化推荐. 二期会有更多的图像内容. 随便,帮国产 ...
- 深度学习之卷积神经网络(CNN)详解与代码实现(一)
卷积神经网络(CNN)详解与代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/10430073.html 目 ...
- 【深度学习与TensorFlow 2.0】卷积神经网络(CNN)
注:在很长一段时间,MNIST数据集都是机器学习界很多分类算法的benchmark.初学深度学习,在这个数据集上训练一个有效的卷积神经网络就相当于学习编程的时候打印出一行“Hello World!”. ...
- 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
随机推荐
- 临时解决GitHub的raw.githubusercontent.com无法连接问题
http://qjzd.net:3000/topic/5e48cc33dcf06d6a181ffb81 查询真实IP 通过IPAddress.com首页,输入raw.githubusercontent ...
- python之爬虫(十一) 实例爬取上海高级人民法院网开庭公告数据
通过前面的文章已经学习了基本的爬虫知识,通过这个例子进行一下练习,毕竟前面文章的知识点只是一个 一个单独的散知识点,需要通过实际的例子进行融合 分析网站 其实爬虫最重要的是前面的分析网站,只有对要爬取 ...
- C#中String与byte[]的相互转换
从文件中读取字符串 string filePath = @"C:\Temp.xml"; string xmlString= File.ReadAllText(filePath); ...
- mysql间隙锁
什么是间隙锁(gap lock)? 间隙锁是一个在索引记录之间的间隙上的锁. 间隙锁的作用? 保证某个间隙内的数据在锁定情况下不会发生任何变化.比如我mysql默认隔离级别下的可重复读(RR). 当使 ...
- python实现图片文字提取,准确率高达99%,强无敌!!!
上次我使用的百度AI开放平台的API接口实现图片的转化,后来有许多小伙伴都私信问我,怎么获取百度AI平台的AK和SK.为了统一回答大家的问题,今天我又使用百度API实现了一个从图片中提取文字和识别身份 ...
- Websphere修改web.xml不生效的解决办法(转)
在websphere下部署了一个java工程后,如果修改了web.xml文件,重新启动这个java工程发现websphere并没有自动加载web.xml文件,即修改后的web.xml并不起作用,除非重 ...
- CentOS 无法加载 ntfs文件系统类型解决办法
问题: CentOS无法加载ntfs 文件系统类型的移动硬盘. 解决办法: 1.下载rpmforge,下载对应的版本.(对应的CentOS版本,并区分32位和64位). 例如: wget http:/ ...
- python pytest接口自动化框架搭建(一)
1.首先安装pytest pip install pytest 2.编写单测用例 在pytest框架中,有如下约束: 所有的单测文件名都需要满足test_*.py格式或*_test.py格式. 在单测 ...
- 《java常用设计模式之----单例模式》
一.简介 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创 ...
- vue的双向数据绑定实现原理(简单)
如果有人问你,学vue学到了什么,那双向数据绑定,是必然要说的. 我们都知道,在vue中,使用数据双向绑定我们都知道是v-modle实现的. 实现原理是通过Object.defineProperty的 ...