pytorch 卷积神经网络CNN

www.ai-xlab.com
AI MOOC
卷积神经网络CNN
1 www.ai-xlab.com
AI MOOC
卷积神经网络是近年发展起来,并广泛应用于图像处理,NLP等领域的一
种多层神经网络。
传统BP处理图像时的问题:
1.权值太多,计算量太大
2.权值太多,需要大量样本
进行训练。
CNN www.ai-xlab.com
AI MOOC
1962年哈佛医学院神经生理学家Hubel和Wiesel通过对猫视觉皮层细
胞的研究,提出了感受野(receptive field)的概念,1984年日本学者
Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看
作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网
络领域的首次应用。
局部感受野 www.ai-xlab.com
AI MOOC
CNN通过 局部感受野 权值共享 减少了神经网络需要训练的参数个数
局部感受野和权值共享 www.ai-xlab.com
AI MOOC
1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1 = 4
特征图:feature map
卷积核/滤波器
卷积计算 www.ai-xlab.com
AI MOOC
步长为1
步长为2
不同步长的卷积 www.ai-xlab.com
AI MOOC
滤波器 www.ai-xlab.com
AI MOOC
Pooling常用的三种方式:
1.max-pooling
2.mean-pooling
3.stochastic pooling
池化Pooling www.ai-xlab.com
AI MOOC
SAME PADDING:
给平面外部补0
卷积窗口采样后得到一个跟原来大小相同的平面
VALID PADDING:
不会超出平面外部
卷积窗口采样后得到一个比原来平面小的平面
VALID PADDING
SAME PADDING
Padding www.ai-xlab.com
AI MOOC
SAME PADDING
VALID PADDING
Padding www.ai-xlab.com
AI MOOC
SAME PADDING:可能会给平面外部补0
VALID PADDING:不会超出平面外部
假如有一个28*28的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到14*14的平面
使用VALID PADDING的方式,得到14*14的平面
假如有一个2*3的平面,用2*2步长为2的窗口对其进行卷积/池化操作
使用SAME PADDING的方式,得到1*2的平面
使用VALID PADDING的方式,得到1*1的平面
Padding www.ai-xlab.com
AI MOOC
LeNET-5 是最早的卷积神经网络之一,曾广泛用于美国银行。手写
数字识别正确率在99%以上。
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积窗口:5*5
步长:1
池化窗口:2*2
步长:2
卷积层
池化层 卷积层
池化层
输入层
全链接层 全链接层
输出层
LeNET-5 www.ai-xlab.com
AI MOOC
可视化:
http://scs.ryerson.ca/~aharley/vis/conv/
http://scs.ryerson.ca/~aharley/vis/conv/flat.html
LeNET-5 www.ai-xlab.com
AI MOOC
ImageNet介绍
2 www.ai-xlab.com
AI MOOC
ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大
的数据库。一共有1500万张左右的图片,被分为22000个左右的类。是
由斯坦福教授李飞飞领导建立的。
TED演讲:我们怎么教计算机理解图片?
ImageNet www.ai-xlab.com
AI MOOC
1976年出生于北京,长在四川,16岁随父母移居美国新泽西州。
1999年毕业于普林斯顿大学,2005年获得加州理工学院电子工程博士。
2009年加入斯坦福大学担任助理教授,并于2012年担任副教授(终生教授),和
斯坦福人工智能实验室与视觉实验室主任。
2017年1月入职Google,担任谷歌云首席科学家
2018年9月卸任谷歌云首席科学家,回归斯坦福大学当教授。
李飞飞 www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC www.ai-xlab.com
AI MOOC
ILSVRC:ImageNet Large Scale Visual Recognition Challenge
ILSVRC www.ai-xlab.com
AI MOOC
序列模型
3 www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
1986年 Rumelhart 等人提出循环神经网络(recurrent neural network),简称RNN。RNN
跟我们之前学习过的神经网络都不太一样,它是一种序列模型。比如卷积网络是专门用来处
理网格化数据(例如图像数据)的神经网络,RNN是专门用来处理序列数据的神经网络。所
谓的序列数据指的是跟序列相关的数据,比如一段语音,一首歌曲,一段文字,一段录像等。 www.ai-xlab.com
AI MOOC
序列模型应用:语音识别
把语音转换成为文字 www.ai-xlab.com
AI MOOC
序列模型应用:文本分类
把文章,邮件或用户评论等文本数据做分类 www.ai-xlab.com
AI MOOC
序列模型应用:机器翻译
例如把中文翻译成英文 www.ai-xlab.com
AI MOOC
序列模型应用:分词标注
给一段文字做分词标注,标注每个字对应的标号。假如使用4-tag(BMES)标注标签,
B表示词的起始位置,M表示词的中间位置,E表示词的结束位置,S表示单字词。
可以得到类似如下结果:
“人/B 们/E 常/S 说/S 生/B 活/E 是/S 一/S 部/S 教/B 科/M 书/E ” www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network)
隐层 h t 接收的是上时刻的隐层(hidden layer)
h t−1
还是上时刻的输出(output layer)y t−1
可以分成了两种 RNN:
Elman network 接收上时刻的隐层 h t−1
Jordan network 接收上时刻的输出 y t−1 www.ai-xlab.com
AI MOOC
RNN一个重要的用法就是通过之前的信息来决策当前的问题。
比如就像我们看电影,我们要根据电影之前的情节,才能理解现在的情节。
例子1:有一朵云飘在()
例子2:我从小生长在美国。。。我可以说一口流利的()
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
RNN(Recurrent Neural Network) www.ai-xlab.com
AI MOOC
长短时记忆网络LSTM
4 www.ai-xlab.com
AI MOOC
i t 输入门信号
f t 忘记门信号
ǁ
𝑐
𝑡 Cell输入信号
c t Cell输出信号
o t 输出门信号
h t block输出信号
x t 第t个序列输入
h t-1 第t-1个序列输出
σ g sigmoid函数
σ c tanh函数
σ h tanh函数或线性函数
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
Peephole LSTM
和之前的公式做比较,发现只是把 h t−1 都换成
了 c t−1 ,即三个门的输入都改成了 [x t ,c t−1 ] 。因
为是从 cell state 里取得信息,所以叫窥视孔(
peephole)。 www.ai-xlab.com
AI MOOC
FC-LSTM(Fully-connected LSTM )
三个输入分别是 [x t ,h t−1 ,c t−1 ] www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
LSTM(Long Short Term Memory) www.ai-xlab.com
AI MOOC
门控循环单元GRU
5 www.ai-xlab.com
AI MOOC
GRU(Gated Recurrent Unit)
GRU 这个结构是 2014 年才出现的,效果跟
LSTM差不多,但是用到的参数更少。将忘记
门和输入门合成了一个单一的更新门。
z t 是更新门(update gate),决定h t 的更新情况
r t 是重置门(reset gate),决定是否要放弃h t-1
𝑡 是候选输出,接收 [x t ,h t−1 ]
h t 是当前输出,接收 [h t−1 ,
𝑡 ] www.ai-xlab.com
AI MOOC
其他RNN模型
6 www.ai-xlab.com
AI MOOC
双向RNN(Bidirectional RNNs)
双向的 RNN 是同时考虑“过去”和“未来”的信息,输入(黑色点)沿着黑色的实线箭
头传输到隐层(黄色点),再沿着红色实线传到输出(红色点)。黑色实线做完前向传播
后,在 Bidirectional RNNs 却先不急着后向传播,而是从末尾的时刻沿着虚线的方向再回
传回来。 www.ai-xlab.com
AI MOOC
Stacked Bidirectional RNNs
图中是双向的三层 RNNs,堆叠多层的RNN网络,可以增加模型的参数,提高模型的拟合
能力。每层的 hidden state 不仅要输给下一时刻,还是当做是此时刻下一层的输入。 www.ai-xlab.com
AI MOOC
THANKS

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

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

相关文章

ReactHooks 官网文档翻译

useCallback(fn, dependencies) useCallback是一个React Hook,它允许您在重新渲染之间缓存函数定义。 const cachedFn useCallback(fn, dependencies)1、参数: fn:要缓存的函数值。它可以接受任何参数并返回任何值。React将在初始渲染期间…

【CSS】实现鼠标悬停图片放大的几种方法

1.背景图片放大 使用css设置背景图片大小100%&#xff0c;同时设置位置和过渡效果&#xff0c;然后使用&#xff1a;hover设置当鼠标悬停时修改图片大小&#xff0c;实现悬停放大效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset…

vue项目使用element-plus

介绍 1.element Plus 是一套基于 Vue.js 的组件库&#xff0c;是对饿了么团队的 Element UI 组件库的升级版本。Element Plus 的目标是提供一套更为现代、更好用的 Vue.js UI 组件。 导入 1.1 执行命令: npm install element-plus --save 1.2 在main.js中做如下配置import E…

###C语言程序设计-----C语言学习(4)#

前言&#xff1a;感谢老铁的浏览&#xff0c;希望老铁可以一键三连加个关注&#xff0c;您的支持和鼓励是我前进的动力&#xff0c;后续会分享更多学习编程的内容。现在开始今天的内容&#xff1a; 一. 主干知识的学习 1.字符型数据 &#xff08;1&#xff09;字符型常量 字…

Leetcode541反转字符串Ⅱ(java实现)

我们今天分享的题目是字符串反转的进阶版反转字符串Ⅱ。 我们首先来看题目描述&#xff1a; 乍一看题目&#xff0c;有种懵逼的感觉&#xff0c;不要慌&#xff0c;博主来带着你分析题目&#xff0c;题目要求&#xff1a; 1. 每隔2k个字符&#xff0c;就对2k字符中的前k个字符…

自监督学习

自监督学习指的是不依赖标注数据&#xff0c;模型直接从无标注的大量数据中进行学习。【属于无监督学习的一部分&#xff0c;它在训练过程中有正负样本&#xff0c;但是正负样本不是人工标号得来的&#xff0c;而是通过自己产生的。】 自监督学习总体分成两类&#xff1a;生成式…

muduo源码阅读笔记(11、TcpClient)

muduo源码阅读笔记&#xff08;11、TcpClient&#xff09; Muduo源码笔记系列&#xff1a; muduo源码阅读笔记&#xff08;0、下载编译muduo&#xff09; muduo源码阅读笔记&#xff08;1、同步日志&#xff09; muduo源码阅读笔记&#xff08;2、对C语言原生的线程安全以及…

C++设计模式介绍:优雅编程的艺术

物以类聚 人以群分 文章目录 简介为什么有设计模式&#xff1f; 设计模式七大原则单一职责原则&#xff08;Single Responsibility Principle - SRP&#xff09;开放封闭原则&#xff08;Open/Closed Principle - OCP&#xff09;里氏替换原则&#xff08;Liskov Substitution …

1.27学习总结

今天做了些队列的题&#xff1a; 1.逛画展&#xff08;单调队列&#xff09; 2.打印队列 Printer Queue&#xff08;优先队列&#xff09; 3.[NOIP2010 提高组] 机器翻译(模拟队列) 4.求m区间内的最小值(单调队列板子题) 5.日志统计(滑动窗口&#xff0c;双指针) 总结一下&…

3分钟 docker搭建 帕鲁服务器

1. 安装docker 1.安装依赖环境 yum -y install yum-utils device-mapper-persistent-data lvm22.设置镜像源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.安装docker 3.1 yum makecache fast yum install docker-ce …

MongoDB:从容器使用到 Mongosh、Python/Node.js 数据操作

文章目录 1. 容器与应用之间的关系介绍2. 使用 Docker 容器安装 MongoDB3. Mongosh 操作3.1 Mongosh 连接到 MongoDB3.2 基础操作与 CRUD 4. Python 操作 MongoDB5. Nodejs 操作 MongoDB参考文献 1. 容器与应用之间的关系介绍 MongoDB 的安装有时候并不是那么容易的&#xff0…

消息中间件及java线程池

1. ActiveMQ是什么&#xff1f; Apache ActiveMQ是一个开源的消息中间件&#xff08;Message Oriented Middleware, MOM&#xff09;&#xff0c;它遵循Java消息服务&#xff08;Java Message Service, JMS&#xff09;规范&#xff0c;提供高效、可靠和异步的消息传递功能。Ac…

【从浅到深的算法技巧】初级排序算法 上

5.排序 5.1 初级排序算法 作为对排序算法领域的第一次探索&#xff0c; 我们将学习两种初级的排序算法以及其中种的一个变体。深入学习这些相对简单的算法的原因在于:第一,我们将通过它们熟悉些术语和简单的技巧 第二&#xff0c;这些简单的算法在某些情况下比我们之后将会讨论…

《HelloGitHub》第 94 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 …

Redis6基础知识梳理~

初识NOSQL&#xff1a; NOSQL是为了解决性能问题而产生的技术&#xff0c;在最初&#xff0c;我们都是使用单体服务器架构&#xff0c;如下所示&#xff1a; 随着用户访问量大幅度提升&#xff0c;同时产生了大量的用户数据&#xff0c;单体服务器架构面对着巨大的压力 NOSQL解…

openssl3.2 - 测试程序的学习 - test\acvp_test.c

文章目录 openssl3.2 - 测试程序的学习 - test\acvp_test.c概述笔记要单步学习的测试函数备注END openssl3.2 - 测试程序的学习 - test\acvp_test.c 概述 openssl3.2 - 测试程序的学习 将test*.c 收集起来后, 就不准备看makefile和make test的日志参考了. 按照收集的.c, 按照…

换个思维方式快速上手UML和 plantUML——类图

和大多数朋友一样&#xff0c;Jeffrey 在一开始的时候也十分的厌烦软件工程的一系列东西&#xff0c;对工程化工具十分厌恶&#xff0c;觉得它繁琐&#xff0c;需要记忆很多没有意思的东西。 但是之所以&#xff0c;肯定有是因为。对工程化工具的不理解和不认可主要是基于两个逻…

【c++】类对象模型

1.如何计算类对象的大小 class A { public:void PrintA(){cout<<_a<<endl;} private:char _a; }; 问题&#xff1a;类中既可以有成员变量&#xff0c;又可以有成员函数&#xff0c;那么一个类的对象中包含了什么&#xff1f;如何计算一个类的大小&#xff1f; 2…

C++算法之枚举、模拟与排序

1.AcWing 1210.连号区间数 分析思路 由题意是在 1∼N 的某个排列中有多少个连号区间&#xff0c;所以每个数出现并且不重复&#xff01; 如果是连续的&#xff0c;那么Max-Minj-i&#xff08;[i,j]&#xff09; 代码实现 #include<iostream> #include<algorithm>…

关于AOP的@Around特殊处理RequestBody的使用小结

目录 1. 概述 1.1 背景 1.2 源码 2. 测试 2.1 Controller 2.2 SpecialName配置 2.3 RequestConverter 2.4 测试 最近项目上遇到一个这样的需求&#xff1a;用户请求的时候传过来A&#xff0c;在api处理过程中要把A当成B去处理&#xff0c;但是返回的标识中又必须是A作为…