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,一经查实,立即删除!

相关文章

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

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

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

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

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,安装教程见Win10系统anaconda安装 - 知乎 (zhihu.com) 二、在虚拟环境下用conda安装 1.创建虚拟环境 …

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

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

记录汇川:IO隔离编程

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

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

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

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

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

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

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

L-2:插松枝(Python)

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

手机号验证码重新发送

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

【笔记】Android ServiceStateTracker 网络状态变化逻辑及SPN更新影响

业务简介 在网络状态变化的时候(数据或WiFi),会更新SPN。 基于Android U的代码分析。 分类:SPN Data_Dic-的博客-CSDN博客 功能逻辑 状态说明 飞行模式下注册上WFC的话,注册状态MD上报 regState: NOT_REG_MT_NOT…

一文读懂MySQL7大日志(slow、redo、undo、bin、relay、general、error)

Slow Log 简介 用于记录执行时间超过指定值的 SQL 语句的详细信息,多用于调试和监控。 配置 因为开启会略微影响性能,所以默认没有开启,所以需要配置。 查看是否开启 show variables like %slow%; ------------------------------------…

计算机找不到api-ms-win-core-path-l1-1-0的5种解决方法

在计算机使用过程中,我们可能会遇到各种问题,其中之一就是找不到某些系统文件。最近,许多用户反映他们在使用电脑时遇到了“找不到api-ms-win-core-path-l1-1-0文件”的问题。这个问题通常出现在Windows操作系统中,可能会影响到一…

C语言转义字符:一文打尽

转义字符 1. 前言2. 预备知识2.1 打印格式2.2 进制转换2.3 ASCII码 3. 什么是转义字符4. 常见的转义字符4.1 \?4.2 \4.3 \"4.4 \\4.5 \dddddd表示1到3个八进制数字4.6 \xdddd表示1到2个十六进制数字4.7 其他转义字符 5. 一道笔试题6. 一个小插曲 1. 前言 大家好&#xf…

DFS和BFS以及练习题目(未完待续)

DFS和BFS 温馨提示:学习dfs之前最好先了解一下递归的思想。 递归思想 斐波那契 题目分析 题目代码 import java.util.Scanner; public class Main{static long dp[]; public static void main(String[] args) {Scanner scanner new Scanner(System.in);int t…

吴恩达deeplearning.ai:倾斜数据集的误差指标精确率、召回率

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 倾斜数据集的误差指标罕见病预测精确率和召回率 精确率和召回率的权衡精确率和召回率的矛盾关系 F1算法 倾斜数据集的误差指标 在神经网络中,如果你的数据集中正例和负…

开发知识点-C++之win32与NT内核

win32 Windows MFC编程 常用API汇总EnumWindows()函数UpdateData()函数static与 单例 设计模式函数原型:BOOL WINAPI SetConsoleTitle(__in LPCTSTR lpConsoleTitle);HWND 是一个基本类型 表示窗口句柄FindWindow函数SendMessage函数 将指定的消息发送到一个或多个窗口PostMes…

Matlab|配电网智能软开关(sop)规划模型

目录 1 主要内容 目标函数 2 部分程序 3 程序结果 3.1 sop选址定容优化模型 3.2 对比算例(不含sop) 4 下载链接 1 主要内容 该程序参考文献《基于改进灵敏度分析的有源配电网智能软开关优化配置》,采用二阶锥算法,以改进的…

蓝桥杯-最大距离

根据题意直接写出来就行。 简单题就话不多说上代码了 #include <iostream> #include <cmath> using namespace std; int main() {int n;cin>>n;int a[1000]{0};for(int i0;i<n;i){cin>>a[i];}int temp 0;int dis 0;for(int i0;i<n-1;i)for(…

JMeter—逻辑控制器

JMeter逻辑控制器 JMeter逻辑控制器可以对元件的执行逻辑进行控制&#xff0c;除仅一次控制器外&#xff0c;其他可以嵌套别的种类的逻辑控制器  一、ForEach控制器 定义一个循环规则&#xff0c;关键参数说明&#xff1a; 输入变量前缀&#xff1a;可以在“用户自定义的变量…