IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 读书笔记-深度学习入门(三) -> 正文阅读

[人工智能]读书笔记-深度学习入门(三)

卷积神经网络

基于CNN的一个网络
请添加图片描述
全连接层是指相邻神经元之间都有连接。CNN中,有时将卷积层的输入输出数据成为特征图。

全连接层的问题

全连接层会忽视输入数据的形状,比如输入数据是一张图像,图像通常是3维数据,包括长,宽,通道,但是向全连接层输入时,需要将3维数据拉平为1维。通常,形状包含了某些重要的空间信息。

卷积运算

请添加图片描述

填充

有时在进行卷积层处理之前,要向输入数据的周围填入固定的数据(比如0),称为填充。使用填充主要是为了调整输出的大小。比如,对大小为(4,4)的输入数据应用(3,3)滤波器(有时也被称为核),输出大小变为(2,2).如果多次进行卷积运算,那么某个时刻输出数据的大小可能变为1,为了避免这种情况,对数据进行填充。

请添加图片描述

步幅

应用滤波器的位置的间隔称为步幅。增大步幅之后,输出大小会变小。

请添加图片描述
数据输出规模的计算公式:式中要分别可以除尽,在部分框架中会报错,或者向最近的整数四舍五入。
请添加图片描述

3维数据的卷积运算

通道方向上有多个特征图时,会按通道进行输入数据和滤波器的卷积运算,并将结果相加,从而得到输出。滤波器的通道数要和输入数据的通道数一致,大小可以设定为任意值,不过每个通道上的大小要一致。

请添加图片描述

池化层

池化是缩小高,长方向上的空间的运算,将一个范围内的数据集约成一个元素的处理,缩小空间的大小。一般来说,池化的窗口大小会和步幅设定成相同的值。常见的池化有MAX池化和Average池化。在图像识别领域,主要使用MAX池化。

池化的特征:

  • 没有要学习的参数
  • 通道数不发生变化
  • 对微小的位置变化具有鲁棒性

卷积层的实现

class Convolution:
	def __init__(self, w, b, stride = 1, pad = 0):
		self.w = w
		self.b = b
		self.stride = stride
		self.pad = pad
	def forward(self, x):
		FN, C, FH, FW = self.w.shape
		N, C, H, W = x.shape
		out_h = int(1 + (H + 2 * self.pad - FH) / self.stride)
		out_w = int(1 + (W + 2 * self.pad - FW) / self.stride)
		col = im2col(x, FH, FW, self.stride) #逆向传播时必须进行col2im运算
		col_w = self.w.reshape(FN, -1).T #滤波器的展开
		out = np.dot(cpl, col_w) + self.b
		out = out.reshape(N, out_h, out_w, -1).transpose(0, 3, 1, 2) # transpose会更改多维数组轴的顺序
		return out

池化层的实现

在通道方向上独立,池化的应用区域按通道单独展开。

class Pooling:
	def __init__(self, pool_h, pool_w, stride = 1, pad = 0):
		self.pool_h = pool_h
		self,pool_w = pool_w
		self.stride = stride
		self.pad = pad
	def forward(self, x):
		N, C, H, W = x.shape
		out_h = int(1 + (H - self.pool_h) / self.stride)
		out_w = int(1 + (W - self.pool_w) / self.stride)
		
		#展开输入数据
		col = im2col(x, self.pool_h, self.pool_w, self.stride, self.pad)
		col = col.reshape(-1, self.pool_h * self.pool_w)
		# 求各行最大值
		out = np.max(col, axis = 1)
		# 转换为合适的输出大小
		out = out.reshape(N, out_h, out_w, C).transpose(0, 3, 1, 2)
		return out

最具代表性的CNN

  • LeNet
  • AlexNet

两者的区别:

  • 激活函数不同,LeNet使用sigmoid函数,现在的CNN主要使用Relu函数
  • LeNet使用子采样缩小中间数据的大小,现在的CNN池化是主流
  • AlexNet使用Dropout

深度学习

深度学习是加深了层的深度神经网络

加深层的好处

减少网络的参数数量

深度学习的高速化

  • 基于GPU的高速化
  • 分布式学习
  • 运算精度的位数缩减

强化学习

强化学习的基本框架是,代理根据环境选择行动,然后通过这个行动改变环境。根据环境的变化,代理获得某种报酬。强化学习的目的是决定代理的行动方针,以获得更好的报酬。

请添加图片描述

在使用了深度学习的强化学习方法中,有一个叫做Deep Q-Network (DQN)方法。该方法基于被称为Q学习的强化学习方法。在Q学习中,为了确定最合适的行动,需要确定一个被称为最优行动价值函数的函数。为了近似这个函数,DQN使用了深度学习。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:23:47  更:2021-08-11 12:24:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:28:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码