卷积神经网络 Convolutional Neural Network (CNN)

news2024/11/19 18:45:58

CNN

    • Observation 1
    • Observation 2
    • Benefit of Convolutional Layer
    • Multiple Convolutional Layers
    • Comparision of Two Stories
    • Observation 3
    • Convolutional Layers + Pooling
    • Application: Playing Go
    • To learn more ...

仅供个人学习,不具参考价值!

Image Classification

image-20230107094012831

  • dimension长度表示能辨识多少种

如何把图像作为输入呢?巨大的向量 (内容为某一位置某一颜色的强度)

image-20230107094931929

  • channels: R G B三种颜色

参数很多,flexibility越大,但也增加了overfitting的风险(数学问题,为什么,后续详谈)

image-20230107100123729

考虑到影像辨识的特性,我们不需要每一个Neuron都和input dimension都有一个weight,需要对影像辨识特性有一些观察

Observation 1

A neuron doesn’t have to see the whole image

image-20230107100948714

每一个Neuron只在意自己Receptive field中发生的事情

image-20230107101316465

如何确定Receptive field还是看你自己咯~

image-20230107101910169

  • 彼此之间可重叠
  • 同一范围可以有多个不同Neuron来守卫

我也浮想联翩了~

image-20230107102054368

yeah!!! 你可以任意设计Receptive fields,但是经典是这样的!

image-20230107112235991

  • 会看all channels (所以我们只看高*宽,称为kernel size,常见的kernel size就是3 * 3,原因后续详谈)
  • 同一个Receptive Field会有一组Neuron去守备
  • 我们希望Receptive Field之间有重叠,否则可能会miss交叠处的pattern,移动量stride(一般设1/2) - hyperparameter
  • 超出范围,那就补值(padding)为0,当然有各种padding方法

Observation 2

image-20230107112537507

是不是可以让不同Reception field的Neuron共享参数

image-20230107113256963

  • weight完全一致
  • Two neurons with the same reception field wouldn’t share parameters

经典的共享方法

image-20230107113743923

Benefit of Convolutional Layer

因为convolutional layer是特别为影像设计的,所以虽然model bias较大,但在影像上就不是问题。

image-20230107115219545

Another story based on filter

image-20230108093903204

image-20230108094441621

image-20230108094520686

  • feature map: 数字群,这个feature map可以看做是另一张图片,不过channel数对应的是filter数

Multiple Convolutional Layers

叠第2层,不过channel现在是64(前一个convoluntion layer的filter数)

filter的大小3*3会不会让network无法看到比较大范围的pattern呢?

不会!!!!oh my gosh!!! 原来在第二层映射的是原图像上很大的范围!3 * 3 → 5 * 5

image-20230108113835717

Comparision of Two Stories

story1中共用的一组参数就是story2中的filter

image-20230108114714638

story1中不同的Neuron共用参数守备不同的范围,就是story2中 一个filter扫过整张图片-convolution

image-20230108115057800

image-20230108115214369

Observation 3

image-20230108115325912

Pooling - Max Pooling

没有参数,没有要learn的东西,行为都已经规定好

每一组(大小自己决定)选一个代表,Max Pooling中就是选择最大的那个

image-20230108120551215

把图片变小

Convolutional Layers + Pooling

几次convolution一次pooling

image-20230108121036118

  • 4 * 4 → 2 * 2

但对performance有伤害,可能也会丢掉细小的东西,所以今年流行有full convolution network

最终把影像中的矩阵拉直变成一个向量

image-20230108121707821

Application: Playing Go

image-20230108155658002

  • 19*19 解析度的图片
  • 48 channels in Alpha Go,这涉及围棋规则

Why CNN for Go playing???

image-20230108160147154

pooling? 你还可以随意拿掉一个row或column吗?

image-20230108160546602

image-20230108160642107

To learn more …

CNN is not invariant to scaling and rotation

image-20230108160830672

we need data augmentation就是截一小块出来放大/旋转,让CNN看

Spatial Transformer Layer可以解决这个问题,请自行参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python代码运行速度有点慢 ? 教你使用多线程速度飞升

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 在我们爬取数据的时候,有时候它运行速度会非常慢 那么怎么解决呢? 这里给大家带来一个多线程的方法 我们用采集二手车来举例 环境使用: Python 3.8 Pycharm 模块使用: requests 数据请求模…

JVM类加载机制-让你明明白白的了解类的执行流程

一、类加载运行过程1.1 类加载到jvm的流程当我们使用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到jvm里。1.2 loadClass的类加载过程其中loadClass的类加载过程有如下几步:加载 >> 验证 >> 准备 >> 解析…

关于Visual Studio C++项目属性设置的说明

链接器—常规—输出文件 这里的输出文件指的是最终生成的exe文件 C/C–常规—附加包含目录 这里指的是需要include的一些头文件所在的 目录,可以提前在项目文件中建立好include文件,然后在这里设置,以后将一些自定义的include头文件放在这个…

Python之父强烈推荐,爬虫入门经典《python3网络爬虫开发实战》

实操性很强的一本工具书,由浅入深,深入浅出。前面从环境配置到爬虫原理、基本库和解析库的使用再到数据存储,一步步把基础打好,然后再分门别类介绍了Ajax、动态页、验证码、App的爬取、识别等,还讲解了代理使用、模拟登…

【Java】Spring中Aware接口的作用

Spring的几个aware接口的用法 ApplicationContextAware public interface ApplicationContextAware extends Aware {void setApplicationContext(ApplicationContext applicationContext) throws BeansException; }该接口仅有一个方法,用于设置Spring容器上下文。…

浅谈Springboot自动配置

目录 1.自动配置原理 2.自动配置案例 3.总结 1.自动配置原理 在一个Springboot程序中,我们只需要在main程序中使用springBootApplication注解即可标记为一个一个Springboot程序,然后使用 SpringApplication.run(TestMain.class,args) 代码即可创建…

多把锁,死锁,活锁,饥饿

目录 多把锁 多把锁的优缺点 活跃性 死锁 手写死锁 死锁的四个必要条件 定位死锁 jconsole运行命令 jps 定位进程 id,再用 jstack 定位死锁 死锁的三种场景 一个线程一把锁 两个线程两把锁 多个线程多把锁 解决死锁 活锁 饥饿 多把锁 现在有一个场…

Kali Linux ping扫描命令

1.命令介绍 kali的ping命令和centos linux的评命令许多参数都差不多,可以看一下我之前写的linuxping命令https://blog.csdn.net/qq_44652591/article/details/128439494 ping扫描是ping整个网络IP地址或单个IP,以查明它们是否活跃和响应的过程。ping也是…

用Kettle调用Restful API 接口

1 概述 kettle 中文名称叫水壶,是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。当然它也可以用来调用Restful API 来采集数据&#xff0c…

【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造

【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造背景1. IC和半导体产业的全球化2. 芯片生产猜疑链——Untrusted IC Supply Chain Threats可能会存在的安全…

我只是把握好了这3点,1个月后成功拿下大厂offer!

目录 一、写在前面二、技术广度的快速准备三、技术深度的快速准备四、基础功底的快速准备五、下篇预告 一、写在前面 春节过后,即将迎来的是一年一度的金三银四跳槽季。 假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利…

【Shell】mksh运行分析

mksh运行分析 Shell shell,壳子,即操作系统的壳子。这层壳子套在操作系统上,为用户提供与操作系统的交互手段。 操作系统的交互方式一般有,图形化交互(GUI)和命令行交付(CLI,command-line interface)。 套在操作系统上的壳子 …

虚拟机栈

虚拟机栈简介虚拟机栈的出现背景内存中的栈与堆虚拟机栈基本内容虚拟机栈的特点虚拟机栈的异常设置栈内存大小栈的存储单位栈中存储什么?栈运行原理栈帧的内部结构局部变量表认识局部变量表关于Slot的理解Slot代码示例Slot的重复利用静态变量与局部变量的对比补充说…

oracle安装教程

1安装和创建用户 1.1.安装以及常见问题 oracle安装教程 安装中 system密码改成root oracle卸载,除此之外清除C:\Program Files内的oracle 需要准备oracle安装包和plsql界面化操作工具 重装报错bug: plsql操作 plsql注册码 product code: ke4tv8t5jtxz…

java动态代理-面向切面代码样例

1.测试入口import java.lang.reflect.Proxy;/*** 面向切面测试* author epsoft-hy**/ public class test {public static void main(String[] args) {Class<?>[] cls {UserDao.class};//接口一个String classpath"util.aop.UserDaoImp";//访问类路径test2(tes…

【学vue跟玩一样】快速学会常用指令及如何理解生命周期

一&#xff0c;内置指令1.v-textv-bind:&#xff0c;单向绑定解析表达式v-model :双向数据绑定v-for:遍历数组/对象/字符串v-on :绑定事件监听,可简写为v-if :条件渲染(动态控制节点是否存存在)v-else :条件渲染(动态控制节点是否存存在)v-show:条件渲染(动态控制节点是否展示)…

3. Rstudio【可视化导入】数据

b站课程视频链接&#xff1a;https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新&#xff0c;但是要花钱&#xff0c;我花99元买了&#xff0c;感觉不错&#xff09;&#xff1a;https://ke.qq.com/course/3707827#term_id103855009 &nbsp&#xff1b; 本笔记…

SigmaStar空板烧录

一、硬件连接 在官方给的SDK文档中&#xff0c;有描述如何使用ISP TOOL给空板烧录程序&#xff0c;但坑的是&#xff0c;文档中并没有写这个上位机工具需要配合Mstar专门的烧录工具来使用&#xff0c;烧录工具如下图所示。 上图中有三根连接线&#xff0c;示意图如下。目标板的…

HTML与CSS基础(九)—— 综合项目(CSS样式补充、项目前置认知、项目结构搭建)

目标能够在网页中使用 精灵图 能够使用 背景大小属性 &#xff0c;设置背景图片的大小 能够认识 CSS书写顺序&#xff0c;提高代码专业性和浏览器渲染性能 能够使用的专业方式完成 项目结构搭建 和 基础公共样式 能够应用已学技术知识 完成小兔鲜儿项目一、项目样式补充目标&am…

URL中绝对路径与相对路径拼接问题总结

URL中绝对路径与相对路径拼接问题总结1. 基础环境2. 测试2.1 总结2.2 本地文件url1. 基础环境 这里用nginx的docker镜像构建了一个服务&#xff0c;步骤如下&#xff1a; sudo docker pull nginxsudo docker run -d --name nginx01 -p 8083:80 nginx nginx发布的根目录是/us…