当前位置: 首页 > news >正文

Convolutional Neural network(卷积神经网络)

目录

Why CNN for Image?

The whole CNN structure

 Convolution(卷积)

Max Pooling

Flatten

 CNN in Keras

 What does CNN learn?

what does filter do

what does neuron do

 what about output

 Deep Dream

Application

Playing Go

Speech

 Text


Why CNN for Image?

当我们直接用一般的fully connected的feedforward network来做图像处理的时候,往往会需要太多的参数;用CNN来做,就可以简化neural network的架构,我们根据自己的知识和对图像处理的理解,一开始就把某些实际上用不到的参数给过滤掉。

  • 对一个神经元来说,想要侦测有没有某一个pattern出现,它其实并不需要看整张image,只需要看这张image的一小部分,就可以决定这件事情了。

  • 相同的pattern在不同区域时,神经元就可以使用相同的参数来学习不同位置的pattern。

  • 我们可以对一张image做subsampling(二次抽样),对图像辨识来说,是没有太大的影响的。

The whole CNN structure

下图展示了CNN的整体流程。

convolution主要做两件事,第一件事检测某个pattern不需要看整张image,然后第二件事是同一个pattern会出现在图片的不同区域。Max Pooling主要做缩放图片。

 Convolution(卷积)

  • Property 1

每一个Filter都是通过Training data学出来的,而不是人为设计的。当它侦测的时候,并不会去看整张image,它只看一个3*3范围内的pixel,就可以判断某一个pattern有没有出现,这就考虑了property 1。

  • Property 2

同一个pattern出现在image左上角的位置和左下角的位置,并不需要用到不同的filter,我们用filter1就可以侦测出来,这就考虑了property 2

  • Feature Map(特征映射)

我们用不同的filter去做convolution得到的结果就叫Feature Map(特征映射),有多少个filter,对应就有多少个映射后的image。

  • Convolution V.s. Fully connected

每一个filter就相当于一个神经元。如下图,我们将36个特征值排成一列,而filter1就相当于是9个w。下图用不同的颜色代表不同的w,卷积的时候并没有将所有的特征值与filter做内积,这也减少了参数的使用。

Max Pooling

现在,我们将每个feature map划分成四等分,取每一份里最大的。

这时feature map变成了2x2的矩阵了,再次减少了特征。

Flatten

Flatten就是,把左边的feature map拉直,然后把它丢进一个Fully connected Feedforward network。

 CNN in Keras

 What does CNN learn?

我们任取一个filter,我们用来表示该filter每一个参数的和,这个和表示该filter被激活(被训练)的程度。这时我们要找一个输入x,这个x可以让这个和最大,当这个和最大的时候,被激活的程度也就越大。这时,我们使用梯度上升的方法去寻找使最大的x*。

what does filter do

假设说我在50个filter里任取12个filter,然后来分别看这12个filter找的x*,我们发现每个filter找的x都比较有特点,也就是说每一个filter可以识别一张图的某一类特点。

what does neuron do

然后我们将经过CNN的image在flatten后传入fully connect network。然后任取一个神经元记为aj,我要找到使aj最大的x。

每一个neuron不再是只看整张图的一小部分,它现在的工作是看整张图。

 what about output

然后我们来找令output最大的x*,结果如下,我们发现这就张图我们是看不懂的。但是是机器可以识别它们分别代表哪一个数字。那么我们对它进行处理,L1正则化,这时的识别效果会好很多。

 Deep Dream

Deep Dream是,如果你给machine一张image,它会在这个image里面加上它看到的东西。

  • Deep Style

如果今天你input一张image,Deep Style做的事情就是让machine去修改这张图,让它有另外一张图的风格,如下所示。

Application

  • Playing Go

对于CNN来说,就是直接把它当成一个image来看待,然后再output下一步要落子的位置。

Speech

filter只在Frequency即纵坐标的方向上移动,而不在时间的序列上移动。

 Text

首你把这个word sequence里面的每一个word都用一个vector来表示,vector代表的这个word本身的semantic (语义),那如果两个word本身含义越接近的话,它们的vector在高维的空间上就越接近,这个东西就叫做word embedding。

 

 

相关文章:

Convolutional Neural network(卷积神经网络)

目录 Why CNN for Image? The whole CNN structure Convolution(卷积) Max Pooling Flatten CNN in Keras What does CNN learn? what does filter do what does neuron do what about output Deep Dream Application Pla…...

【资料分享】高边、低边晶体管开关及电路解析

高边和低边晶体管开关 电路中,晶体管常常被用来当做开关使用。晶体管用作开关时有两种不同的接线方式:高边(high side)和低边(low side)。 高边和低边是由晶体管在电路中的位置决定的。晶体管可以是双极性晶体管(BJT…...

六级备考28天|CET-6|听力第二讲|长对话满分技巧|听写技巧|2022年6月考题|14:30~16:00

目录 1. 听力策略 2. 第一二讲笔记 3. 听力原文复现 (5)第五小题 (6)第六小题 (7)第七小题 (8)第八小题 扩展业务 expand business 4. 重点词汇 1. 听力策略 2. 第一二讲笔记 3. 听力原文复现 (5)第五小题 our guest is Molly Sundas, a university stud…...

计算机图形学 | 实验九:纹理贴图和天空盒

计算机图形学 | 实验九:纹理贴图和天空盒 计算机图形学 | 实验九:纹理贴图和天空盒实验概述顶点数据立方体顶点数据天空盒顶点数组 纹理载入创建纹理纹理读取纹理绑定 使用纹理立方体着色器顶点着色器片元着色器 天空盒着色器顶点着色器片元着色器 立方体…...

Unity A* Pathfinding Project

先下载免费版 https://arongranberg.com/astar/download# 教程首页 https://arongranberg.com/astar/docs/getstarted.html 创建一个plane 当地面 创建一个gameobject 添加组件 PathFinder 长这样 调整每个格子大小的 创建两个layer 一个是阻挡物的 一个是地面的 这里填入阻…...

SpringBoot ( 一 ) 搭建项目环境

1.搭建环境 1.1.创建项目向导 使用idea中的向导创建SpringBoot项目 1.1.1.建立新的项目 位置 : 菜单 > File > New > Project… 1.1.2.选择向导 默认的向导URL 是 https://start.spring.io 建议使用 https://start.aliyun.com 1.1.3.配置项目信息 Group : 组织…...

idea中关联Git

注意:未安装和配置Git软件,请先跳转到 Git宝典_没办法,我就是这么菜的博客-CSDN博客 idea关联git 关联git.exe 选择你的Version Control 下的Git 选择你的Git安装目录bin下的git.exe,点击ok 点击Test,显示版本号…...

Java面试知识点(全)-分布式微服务-zookeeper面试知识点

Java面试知识点(全) 导航: https://nanxiang.blog.csdn.net/article/details/130640392 注:随时更新 ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现&…...

(IDEA)springCloud项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案

idea导入本地jar包 方法一:点击左上角File–>Project Structure–>Modules。打开Modules界面点击下方号,选择第一项,找到想要导入的本地jar包。此方法可以使项目使用导入的jar包程序不报错,但是在打包项目时,会出现找不到程…...

非线性系统的线性化与泰勒级数

线性系统与非线性系统的区别 我们在读论文的时候经常会遇到这两个系统,线性系统与非线性系统,这两者之间有什么区别呢? 线性指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动;非线性则指不按比…...

HOOPS全新文档系统上线!三维模型文件转换更便捷!

HOOPS 2023 U1版本已经正式发布,伴随新版本上线的还有全新的文档系统,新的文档系统亮点包括: 改进了样式和布局,使导航更加简单快捷;修订了导航结构,提高了产品相关信息的清晰度;SDK API参考章…...

第三篇:强化学习发展历史

你好,我是zhenguo(郭震) 这是强化学习第三篇,我们回顾一下它的发展历史:强化学习发展历史 强化学习作为一门研究领域,经历了多年的发展和演进。以下是强化学习的主要发展历史里程碑: 1950年代-1…...

如何学会战略性思维?

上帝在创造一个成功人生时加入了什么配方?一部分努力、一点天赋、必备的人脉、再加入不可或缺的good luck......这都是成功人生的重要因素。 弗雷德佩拉德认为,不管人们在商业领域选择追求什么,要想成功,还需要增加一个名为“战略…...

设备采购信息管理系统

系列文章 任务14 设备采购信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试界面展示添加采购信息按编号查找采购信息按设备编号查找…...

Puppeteer入门实践

环境 1、安装nodejs 官网:https://nodejs.org/zh-cn 下载安装好nodejs只后 验证:node -v 出现版本号表示安装成功,否则需要配置环境变量 2、创建node项目并初始化 随便新建一个文件夹 进入文件夹搜索cmd回车 执行npm init -y 安装依赖 …...

生成VLC 及其模块的全面帮助

使用vlc.exe -H命令生成VLC帮助文件vlc-help.txt -h, --help, --no-help 打印 VLC 帮助 (可以和 --advanced 和 --help-verbose 一起使用) (默认禁用) -H, --full-help, --no-full-help VLC 及…...

什么是客户自助服务门户及其搭建方法

随着信息技术的快速发展,越来越多的企业开始转向以客户为中心的服务模式,而客户自助服务门户(Customer Self-Service Portal)则成为了重要的服务方式。它可以让客户在不需要人工干预的情况下,自行解决问题,…...

【5.19】三、白盒测试方法—逻辑覆盖法

目录 3.1 逻辑覆盖法 3.1.1 语句覆盖 3.1.2 判定覆盖 3.1.3 条件覆盖 3.1.4 判定—条件覆盖 3.1.5 条件组合覆盖 3.1.6 实例:三角形逻辑覆盖问题 白盒测试又称为透明盒测试、结构测试,它基于程序内部结构进行测试,而不是测试应用程序…...

Linux安装MySQL后无法通过IP地址访问处理方法

本文主要总结Linux安装Mysql后,其他主机访问不了MySQL数据库的原因和解决方法 环境说明: MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 创建完Mysql数据库后可以查看mysql 日志获取root 用户登录密码 [rootlocalhost mysql-5.7.30]# cat /var/l…...

使用Python实现Rest API指南

在今天的数字化世界中,数据的获取、交换和使用已经成为几乎所有行业的核心部分。无论您正在为一个大型公司设计复杂的软件系统,还是只是为了个人项目尝试获得一些公开的数据,理解和利 用API——尤其是RESTful API——都是一项至关重要的技术。…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 ​…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...

STM32标准库-ADC数模转换器

文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...

Xcode 16 集成 cocoapods 报错

基于 Xcode 16 新建工程项目,集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...

6.9本日总结

一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...