Lesson 6 Convolutional Neural Network(CNN)

听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要讲了CNN的适用范围,整体架构与工作流程,CNN的应用,CNN的缺点以及解决方法。

1. CNN的输入与输出

CNN是专门为了图像而设计的一种网络架构

1.1 输出

CNN的输出是一个向量,每一个元素都代表了属于该类的得分。举例来说,在训练时,通过使下图的两个向量的交叉熵最小,达到最佳的训练效果。
在这里插入图片描述

1.2 输入

一张100*100的彩色图片将分为三个channel,代表RGB,将三个tensor拉长,组成了右边的很长的列向量
在这里插入图片描述

2. 在图像识别时是否真的需要全连接网络?

一个图像经常是几百几千的像素,而且还是三个channel, 那么这么长的向量输入进去,如果每一个都要跟不同的权重参数相乘,比如我们有1000个神经元,那么我们需要1001003*1000个权重参数。虽然这样模型的弹性将会非常大,但是容易造成overfitting,况且计算时间也会很久
在这里插入图片描述

3. observation 1:识别关键部分

我们在设置神经元的时候,不用让一个神经元看整张图片,而是看最关键的部分。
在这里插入图片描述
具体怎么看关键的部分呢?我们先引入一个概念——receptive field。将这个333的立方体拉长展开成右侧的这个长向量,输入进神经元。
在这里插入图片描述

在这里插入图片描述
常见的设置如下:

  • kernel size:333(但是一般将深度省略)
  • stride:2 步长为2,表示每次向右或者向下移动receptive field两格
  • 可以重叠
  • 不够了可以用0补全
  • 每个receptive field通常配置64个神经元监视
    在这里插入图片描述
    一直移动直到这个立方体的右下角,那么receptive fields将会覆盖整张图片。

4. observation 2:相同的关键部分出现在不同的区域

4.1 从神经元角度讲述

如果因为receptive field不一样,监测receptive field的相同的pattern的神经元不一样,那么参数量也太大了。
在这里插入图片描述
所以我们提出了一种方法——parameter sharing
就是指receptive field不一样,但权重参数却一样。但是一个receptive field的两个神经元不会共享参数。
在这里插入图片描述
这里的神经元我们有一个专门的名字来称呼——filter
在这里插入图片描述

4.2 小结

在这里插入图片描述

4.3 从filter角度讲述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这步就是要看哪个receptive field跟filter更接近(就是更像关键部位),越接近分越高

第一个filter做完之后按照同样的方法做filter2,形成了两层,我们称之为feature map
在这里插入图片描述

4.4 两种角度的对比

在这里插入图片描述
在这里插入图片描述

5. observation 3: 子采样不会改变图片

由于有时图片数据量过于庞大,可以考虑采用子采样,不会太影响图片,又减少了计算量。

5.1 池化的具体过程(以max pooling为例)

在这里插入图片描述
在这里插入图片描述
通常情况下是2次conv1次pooling,或者1次conv1次pooling

5.2 小结

在这里插入图片描述

6. CNN应用

6.1 AlphaGo

在这里插入图片描述
为什么AlphaGo能用CNN做呢?
其实我们可以把一个小棋局看成是一个pattern,而这个pattern可能出现在棋盘的任意位置
在这里插入图片描述
pooling对于CNN来说并不是绝对要用的,我们要明确pooling的本质是子采样用以减少计算量,但是如果计算量不大就没必要采用pooling,采用了说不定还不准确,所以AlphaGo就完全没用pooling
在这里插入图片描述

6.2 speech and NLP

在这里插入图片描述

7. CNN的缺点

如果给CNN训练时的图是上面这个小狗,但是让他去识别下面这个小狗,可能不一定识别成功,因为CNN是无法处理放大缩小旋转的。
但是这还是有解决方法的——Data Augmentation. 在训练的时候,就对训练集中的数据进行放大缩小旋转,丰富我们的数据集
在这里插入图片描述

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

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

相关文章

【web | CTF】SQL注入打法

题目一:叠堆注入,使用预处理来拼接select查询 进去先判断拼接的是单引号,再发现是可以叠堆注入,然后用预处理执行SQL语句 【web | CTF】BUUCTF [强网杯 2019]随便注-CSDN博客

面试经典150题——合并两个有序链表

You just work on it. Time will do the rest! 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个题目还是比较简单的,通过分析题目,我们可以知道题目中关键信息为: 所以我们只需要从前向后遍历两个链表,在两个链表不空的情况下&…

电流环,速度环,位置环以及PID算法的简单了解

PID算法的通俗讲解 PID算法的江湖地位? PID算法在控制领域是非常常见的算法,小到控制温度,大到控制飞机的飞行姿态,基本上算是在控制领域万能的算法。 关于PID算法的生活小故事: 假设一辆慢点量的车,跑着跑…

HTML静态网页成品作业(HTML+CSS)——原神介绍设计制作(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

CUDA学习笔记06:共享内存加速矩阵乘法

参考资料 CUDA编程模型系列六(利用shared memory和统一内存优化矩阵乘)_哔哩哔哩_bilibili 代码片段 #include "cuda_runtime.h" #include "device_launch_parameters.h" #include <stdio.h> #include <math.h>#define M 1000 #define N 50…

llama2c(4)之forward、sample、decode

1、forward float* logits forward(transformer, token, pos); 输入transformer的参数&#xff0c;当前token&#xff0c;pos位置&#xff0c;预测出下一个token的预测值&#xff08;用矩阵乘&#xff0c;加减乘除等运算构成Transformer&#xff09; (gdb) p *logits $9 2.19…

YOLOv8.1.0安装

【YOLO】YOLOv8训练环境配置 python 3.8.18 cuda 11.3.1 cudnn 8.2.1 pytorch 1.12.1-gpu版 - 知乎 (zhihu.com) 一、Anaconda 默认装好了可用的Anaconda&#xff0c;安装教程见Win10系统anaconda安装 - 知乎 (zhihu.com) 二、在虚拟环境下用conda安装 1.创建虚拟环境 …

大唐杯学习笔记:Day9

1.1 HARQ总体介绍 HARQ是FEC和ARQ的一种混合技术机制。在纠错能力范围内进行自动纠正错误,超出纠错范围则要求发送端重新发送,增加了系统的可靠性,提高了传输效率。HARQ是MAC层的快速传输机制,NR中上下行均采用异步HARQ。 支持多个并行的stop-and-wait进程,进程号在PDCCH的DCI…

【力扣白嫖日记】1164.指定日期的产品价格

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1164.指定日期的铲平价格 表&#xff1a;Products 列名类型product_idintnew_priceintchange_datedate (pr…

记录汇川:IO隔离编程

IO隔离&#xff1a;方便程序修改 无论是输入点坏了还是输出点坏了&#xff0c;或者人为接错线&#xff0c;或者对调点&#xff0c;我们只需要更改IO隔离得输入输出就可以了。方便。 停止按钮外接常闭&#xff0c;里面也使用常闭&#xff0c;为了断线检测功能(安全)&#xff…

300分钟吃透分布式缓存-23讲:Redis是如何淘汰key的?

淘汰原理 首先我们来学习 Redis 的淘汰原理。 系统线上运行中&#xff0c;内存总是昂贵且有限的&#xff0c;在数据总量远大于 Redis 可用的内存总量时&#xff0c;为了最大限度的提升访问性能&#xff0c;Redis 中只能存放最新最热的有效数据。 当 key 过期后&#xff0c;或…

room数据库升级

room数据库升级 一、操作步骤说明 增加数据库版本号 在Database注解中增加版本号(version)&#xff0c;比如从version 1升级到version 2。 Database(entities [Song::class,],**version 1**,//1->2 ) abstract class AppDataBase : RoomDatabase() { }定义数据库变化 根据…

一个爬虫自动化数据采集的故事~

目录 一、原文二、故事前半段背景内容三、正经的讲点DrissionPage知识四、故事的收尾 一、原文 原文来自一个爬虫自动化数据采集的故事~ , 建议点击链接看文章末尾的视频笔者不擅长自动化&#xff0c;一个小小故事分享给大家&#xff0c;仅个人观点 二、故事前半段背景内容 …

剑指offer面试算法题目,自己总结的

JZ31 栈的压入、弹出序列-C++-CSDN博客 剑指 Offer(C++版本)系列:从尾到头打印单链表(C++)-CSDN博客 剑指offer》15--二进制中1的个数[C++]-CSDN博客 《剑指offer》14--剪绳子(整数拆分)[C++]-CSDN博客 剑指 Offer 12. 矩阵中的路径-CSDN博客 C++--机器人的运动范围…

IP-guard邮件管控再升级,记录屏幕画面,智能阻断泄密邮件

邮件是工作沟通以及文件传输的重要工具,却也成为了信息泄露的常见渠道。员工通过邮件对外发送了什么内容,是否含有敏感信息都无从得知,机密通过邮件渠道外泄也难以制止。想要防止企业的重要信息通过邮件方式泄露,我们不仅需要通过技术措施对外发邮件的行为进行规范,也要对…

使用大带宽服务器对网站有什么好处?

近年来大带宽服务器频频出现在咱们的视野当中&#xff0c;选用的用户也在与日增长。那么究其主要原因是什么?租用大带宽服务器的好处又有哪些? 今天德迅云安全带您来了解下。1.有效提升网站访问速度 一般来说&#xff0c;正规的网站对用户体验度都是非常有讲究的&#xff0c;…

L-2:插松枝(Python)

作者 陈越 单位 浙江大学 人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上&#xff0c;做成大大小小的松枝。他们的工作流程&#xff08;并不&#xff09;是这样的&#xff1a; 每人手边有一只小盒子&#xff0c;初始状态为空。每人面前有用不完的松枝干和一个推送…

命令行中当前目录下打开资源管理器窗口

有时候使用命令行时执行命令生成了一些文件&#xff0c;想在资源管理器窗口中打开&#xff0c;或者向当前位置放入文件&#xff0c;以供处理。往往需要打开当前目录的资源管理器窗口&#xff0c;通常就是文件资源管理器&#xff0c;或者我的电脑一层层找到当前目录&#xff0c;…

手机号验证码重新发送

前文叙述 很久以前做的一个 demo &#xff0c;纯 HTML 、CSS、js 制作&#xff0c;一定时间段之后才可以重新发送验证码&#xff0c;如 60s 后再次发送验证码&#xff0c;在该时间段内发送验证码按钮为禁用状态&#xff0c;实战开发过程也亦是同理&#xff0c;因此记录一手。 一…

内存的基本特性

初识内存 1&#xff0c;内存的基本特性 现代计算机的基本组成 现代计算机之父--冯诺伊曼提出了计算机的基本组成&#xff1a; 运算器&#xff1a;负责算术运算和逻辑运算&#xff0c;目前已经集成到CPU中。 控制器&#xff1a;负责控制系统的各部件&#xff0c;使之协调的…