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来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
随机推荐
- 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据
PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...
- 机器学习实战基础(二十一):sklearn中的降维算法PCA和SVD(二) PCA与SVD 之 降维究竟是怎样实现
简述 在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或 ...
- 爬虫05 /js加密/js逆向、常用抓包工具、移动端数据爬取
爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 目录 爬虫05 /js加密/js逆向.常用抓包工具.移动端数据爬取 1. js加密.js逆向:案例1 2. js加密.js逆向:案例2 3 ...
- 关于在JSP页面识别不了EL表达式的情况
今天在JSP页面接收Controller返回的数据user_nickname,使用EL表达式显示数据发现在页面输出的始终是字符串${user_nickname} 经过查阅资料,问题在于使用的web.x ...
- 解决Kubernetes Pod故障的5个简单技巧
在很多情况下,你可能会发现Kubernetes中的应用程序没有正确地部署,或者没有正常地工作.今天这篇文章就提供了如何去快速解决这类故障以及一些技巧. 在阅读了这篇文章之后,你还将深入了解Kubern ...
- Github下载文件慢试试这款工具吧
https://g.widora.cn 可能随时崩溃哦~~暂时还不支持超过 2GB 的仓库,服务器选自日本 vultr 设计思路:通过在日本的 VPS clone -r 代码,下载后压缩成 zip 再 ...
- Codeforces1379-题解
很久以前,申蛤申请了一个cf号叫 wzxakioi 有一天,戌蛤带着申蛤用这个账号打了一场div3,然后它的rating超过了shzr 之后申蛤又用这个号打了三场div2,于是 CF1379C 题意 ...
- 题解 洛谷 P4177 【[CEOI2008]order】
进行分析后,发现最大收益可以转化为最小代价,那么我们就可以考虑用最小割来解决这道题. 先算出总收益\(sum\),总收益减去最小代价即为答案. 然后考虑如何建图,如何建立最小割的模型. 发现一个任务最 ...
- Python基础学习之环境搭建
Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...
- APP自动化 -- 获取driver
一.appium设置 1.打开appium 2.设置 appium服务器:点击 高级设置 3.启动 appium 服务器 二.查看 .apk 安装包的“包名”和“活动入口名” 1.先复制本地 ...