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来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
随机推荐
- 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:我年龄的立方是个4位数。 我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算一下,他当时到底有多年轻。 结果只有一个数。
#include<stdio.h>int main(){ int age=1; int san=0; int si=0; int sum=0; while(age>0) { san= ...
- ajax配合art-template模板引擎的使用
最近才接触js的模板引擎听说相比以前使用的js foreach加载后台返回的json数据简便很多而且效率方面也很不错.今天自己玩了一下 后台使用的是.net mvc,数据库脚本就不提供了,返回的Jso ...
- Java批量入库Demo
java中往数据库批量插入数据Demo java代码: //入库数据是需要批量入库的List int len =入库数据.size(); //每次循环10条 int incremnet = 10; / ...
- Ethical Hacking - GAINING ACCESS(8)
Server Side Attacks NeXpose - configure and launch a scan Configure and initialize the application. ...
- Python Ethical Hacking - BACKDOORS(1)
REVERSE_BACKDOOR Access file system. Execute system commands. Download files. Upload files. Persiste ...
- SUCTF2019-web Easyweb
<?php function get_the_flag(){ // webadmin will remove your upload file every 20 min!!!! $userdir ...
- Java环境变量设置:Path、CLASSPATH、JAVA_HOME的作用分别是什么?
1.Path 作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找百看是否能找到相应的命令程序. 需要把jdk安装目录下的b ...
- 洛谷 P2403 [SDOI2010]所驼门王的宝藏 题解
题目描述 分析 先放一张图便于理解 这一道题如果暴力建图会被卡成\(n^{2}\) 实际上,在我们暴力建图的时候,有很多边都是重复的 假如一行当中有许多横天门的话,我们就不必要把这一行当中的所有点和每 ...
- Python package project
使用 Python 书写项目打包程序(已经存在 shell 的脚本,经过对比 Python 脚本的执行过程更加的可控人性化实现的功能相同) #!/usr/bin/env python # _*_cod ...
- 关于RecyclerView(二)设置EmptyView
首先重写一个RecyclerView类 package com.onepilltest.others; import android.content.Context; import android.s ...