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

网站速度测速性男女做视频观看网站

网站速度测速,性男女做视频观看网站,网站建设 资产,边城网页设计素材【Python PyTorch】卷积神经网络 CNN#xff08;基础概念#xff09; 0. 生物学相似性1. 概念1.1 定义1.2 优势1.2.1 权重共享1.2.2 局部连接1.2.3 层次结构 1.3 结构1.4 数据预处理1.4.1 标签编码① One-Hot编码 / 独热编码② Word Embedding / 词嵌入 1.4.2 归一化① Min-… 【Python · PyTorch】卷积神经网络 CNN基础概念 0. 生物学相似性1. 概念1.1 定义1.2 优势1.2.1 权重共享1.2.2 局部连接1.2.3 层次结构 1.3 结构1.4 数据预处理1.4.1 标签编码① One-Hot编码 / 独热编码② Word Embedding / 词嵌入 1.4.2 归一化① Min-Max归一化最大最小归一化② Z-Score归一化标准化 Standardization 2. 基础概念2.2.1 卷积层① 一维卷积② 二维卷积单通道单卷积核单通道多卷积核多通道单卷积核多通道多卷积核 ③ 互相关 2.2.2 辅助操作① 卷积步长② 零填充 2.2.3 池化层 / 汇聚层① 最大池化② 平均池化 / 均值池化 2.2.4 感受野2.2.5 空洞卷积 / 膨胀卷积① Gridding Effect 现象② 如何设计膨胀系数 2.2.6 可分离卷积① 空间可分离卷积② 深度可分离卷积 2.2.7 扁平卷积2.2.8 分组卷积2.2.9 混洗分组卷积2.2.6 上采样 vs 下采样① 上采样② 下采样 2.2.7 上采样① 转置卷积微步卷积 ② 插值最近邻插值双线性插值双三次插值 ③ 反池化反最大池化反平均池化 3. 评估方法3.1 混淆矩阵3.2 精确度3.3 其他指标 0. 生物学相似性 卷积神经网络从猫视觉皮层电生理研究中获得启发通过仿造生物的视知觉机制来构建模型。卷积网络中卷积核的设定就对应着视觉神经系统中视觉皮层对视觉空间的组织。 视觉皮层细胞从视网膜上的光感受器接收信号但单个视觉皮层细胞不会接收光感受器的所有信号而是只接受其所支配的刺激区域即感受野内的信号。只有感受野内的刺激才能够激活该神经元。多个视觉皮层细胞通过系统地将感受野叠加完整接收视网膜传递的信号并建立视觉空间 。 卷积神经网络中基于感受野设定的稀疏连接有明确对应的神经科学过程——视觉神经系统中视觉皮层visual cortex对视觉空间visual space的组织 。视觉皮层细胞从视网膜上的光感受器接收信号但单个视觉皮层细胞不会接收光感受器的所有信号而是只接受其所支配的刺激区域即感受野内的信号。只有感受野内的刺激才能够激活该神经元。多个视觉皮层细胞通过系统地将感受野叠加完整接收视网膜传递的信号并建立视觉空间。 事实上机器学习的“感受野”一词即来自其对应的生物学研究。卷积神经网络中的权重共享的性质在生物学中没有明确证据但在对与大脑学习密切相关的目标传播target-propagation, TP和反馈调整feedback alignment, FA 机制的研究中权重共享提升了学习效果 。 1. 概念 1.1 定义 卷积神经网络Convolutional Neural Networks, CNN是一类包含卷积计算且具有深度结构的前馈神经网络Feedforward Neural Networks是深度学习deep learning的代表算法之一 。 卷积神经网络具有表征学习representation learning能力能够按其阶层结构对输入信息进行平移不变分类shift-invariant classification因此也被称为“平移不变人工神经网络Shift-Invariant Artificial Neural Networks, SIANN” 。 应用领域计算机视觉、音频识别 1.2 优势 1.2.1 权重共享 使用相同的权重参数对输入数据进行处理从而减少模型的参数数量降低计算复杂度并提高模型的泛化能力在卷积神经网络中主要体现在卷积核 (过滤器)。 在卷积神经网络中权值共享是指在卷积层中同一个卷积核在不同位置上的权值是相同的这样可以大大减少模型参数提高模型泛化能力。 权值/权重独立与CNN的权重共享不同 1.2.2 局部连接 在卷积神经网络中局部连接是指在卷积层中每个卷积核只与输入数据的一部分进行卷积运算而不是与整个输入数据进行卷积运算这样可以提取出局部特征增强模型的特征提取能力。 用类比卷积神经网络的方式描述全连接 1.2.3 层次结构 卷积神经网络是一种包含卷积计算且具有深度结构的前馈神经网络其所包含的层次结构如下 输入层接收原始图像数据或其他类型的网格结构数据。 卷积层卷积层是CNN的核心通过卷积操作提取输入数据的局部特征。每个卷积核可以提取一种特定的特征多个卷积核可以并行工作以提取不同类型的特征。卷积操作通过滤波器对局部输入数据进行内积计算滤波器在数据窗口上滑动计算每个局部数据的输出‌。 激活层激活层用于提升网络的非线性能力通常跟在卷积层之后其能够解决梯度消失问题、加快收敛速度‌。 池化层池化层对卷积层的输出进行下采样 (降维)以减少参数数量并提高计算效率。 全连接层全连接层负责将前面层提取的特征综合起来用于分类或回归等任务。全连接层的每个神经元都与前一层的所有神经元相连‌。 BatchNorm层BN层通过规范化手段将每层神经网络的输入值的分布强行拉回到均值为0方差为1的标准正态分布以加快训练速度并减小图像之间的绝对差异‌。 1.3 结构 输入层输入接收数据集处理原始图像数据。 卷积层通过卷积操作提取图像特征卷积操作使用‌滤波器 (卷积核) 对图像的局部区域进行内积运算提取特征。 ‌激活层‌对卷积层的输出应用非线性激活函数引入非线性以增强网络的表达能力。 池化层通过下采样减少数据的维度和参数数量通常有两种方式最大池化和平均池化。 全连接层在网络的最后部分将前面的特征图展平后进行分类/回归任务。 1.4 数据预处理 1.4.1 标签编码 ① One-Hot编码 / 独热编码 One-Hot编码 / 独热编码一种常用于机器学习中的特征编码方式主要用于处理分类数据。它的基本思想是将分类变量转换为机器学习算法易于处理的形式。 例如MNIST数据集共有10个分类结果若利用独热编码其可表示为 ↓ 编码下标 \ 分类结果 →012345678901000000000101000000002001000000030001000000400001000005000001000060000001000700000001008000000001090000000001 用途 更易于表示分类适用于多种算法 ② Word Embedding / 词嵌入 Word Embedding / 词嵌入一种自然语言处理机器学习任务中常用的特征编码方式便于机器学习算法读取文本信息并理解相关内容。通过词嵌入将单词转变为在预定义的向量空间中的实数向量每个单词都映射到一个向量。 目的通过数字替代字母从而便于程序进行运算还可完成词语间相似度、词语间关联等计算。而独热编码无法胜任此项工作故利用词嵌入实现。 常见的词嵌入模型EmbeddingLayer算法、Word2Vec模型、Glove模型、FastText模型 举例“猫”对应的向量为 a ⃗ [ 0.1 0.2 0.3 ] \vec{a}\begin{bmatrix}0.1\\0.2 \\ 0.3\end{bmatrix} a ​0.10.20.3​ ​“虎”对应的向量为 b ⃗ [ 0.2 0.2 0.4 ] \vec{b}\begin{bmatrix}0.2\\0.2\\0.4\end{bmatrix} b ​0.20.20.4​ ​“鹰”对应的映射为 c ⃗ [ − 0.4 − 0.5 − 0.2 ] \vec{c}\begin{bmatrix}-0.4\\-0.5\\ -0.2\end{bmatrix} c ​−0.4−0.5−0.2​ ​ 计算 猫虎、猫鹰 间的余弦相似度余弦相似度公式如下 c o s a ⃗ , b ⃗ a ⃗ ⋅ b ⃗ ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ cos\left\vec{a},\vec{b}\right\frac{\vec{a}\cdot\vec{b}}{||\vec{a}||\space||\vec{b}||} cos⟨a ,b ⟩∣∣a ∣∣ ∣∣b ∣∣a ⋅b ​ 余弦相似度的取值范围为 [ − 1 , 1 ] [-1,1] [−1,1]当两个向量的夹角为180°时余弦相似度为-1。‌ 余弦相似度衡量的是两个向量之间的夹角其值的符号表示向量之间的方向关系数值的大小表示它们的相似程度。 当两个向量的夹角为0度时即完全重合余弦相似度为1当两个向量的夹角为90度时即正交或无关余弦相似度为0当两个向量的夹角为180度时即完全相反余弦相似度为-1。 计算过程 import torch import torch.nn as nna torch.tensor([0.1, 0.2, 0.3], dtypetorch.float) b torch.tensor([0.2, 0.2, 0.4], dtypetorch.float) c torch.tensor([-0.4, -0.5, -0.2], dtypetorch.float)# 计算两个余弦值的余弦相似度 cos nn.CosineSimilarity(dim0, eps1e-6)output1 cos(a, b) output2 cos(a, c) output1, output2计算结果 (tensor(0.9820), tensor(-0.7968))由此可得出结论猫与虎更接近猫与鹰完全相反。 1.4.2 归一化 归一化归一化是一种常见的数据预处理技术用于将数据转换为统一的比例范围以消除不同变量之间的量纲差异 用途 消除量纲差异消除单位差异避免权重不平衡避免因数值范围差异大引起的权重不平衡问题加速模型收敛 ① Min-Max归一化最大最小归一化 将数据线性地映射至一个区间例如[0,1] 或 [-1,1] x ∗ x − M i n ( x ) M a x ( x ) − M i n ( x ) x^*\frac{x-Min(x)}{Max(x)-Min(x)} x∗Max(x)−Min(x)x−Min(x)​ 其中 x x x是原始数据 x ∗ x^* x∗是归一化后数据。 x # 评估器导入 from sklearn.preprocessing import MinMaxScaler#评估器实例化 scaler MinMaxScaler() # 评估器实例化默认映射[0.1]区间 scaler scaler.fit(data) # 计算min(x)、max(x) # scaler MinMaxScaler(feature_range[5,10]) # 映射至除[0.1]其他区间 result scaler.transform(data)② Z-Score归一化标准化 Standardization 将数据映射至 均值为0 标准差为1 的标准正态分布的一个区间。 x ∗ x − μ σ x^*\frac{x-\mu}{\sigma} x∗σx−μ​ 其中 x x x是原始数据 x ∗ x^* x∗是标准化后的数据 μ \mu μ是原始数据的均值 σ \sigma σ是原始数据的标准差。 # 评估器导入 from sklearn.preprocessing import StandardScaler# 评估器实例化 scaler StandardScaler() scaler.fit(data) scaler.transform(X)2. 基础概念 2.2.1 卷积层 卷积Convolution分析数学中的一种运算。在信号或图像处理中经常使用一维或二维卷积。 卷积运算是卷积神经网络的核心它通过在音频/图像上滑动卷积核计算核与图像的局部区域的点积从而形成 特征图(Feature Map)。 卷积运算捕捉了图像的局部关联并保留了图像的空间关系卷积神经网络依靠卷积运算实现图像平移不变性。 卷积意义 卷积数学公式 ∫ 0 t f ( x ) g ( t − x ) d x \int^t_0f(x)g(t-x)dx ∫0t​f(x)g(t−x)dx 在卷积运算中可理解为 瞬时行为的持续性后果可类比蝴蝶效应。 在图像识别领域中 f ( ⋅ ) f(·) f(⋅)等同于图像 g ( ⋅ ) g(·) g(⋅)等同于卷积核通过卷积运算可求得周围像素对中间像素的影响程度或被扫描区域对卷积核/过滤器过滤的响应程度。滑动过程中所遇两者外形越相似则卷积得到的响应越高。卷积神经网络中卷积核实际上在提取某种局部特征图片中与该卷积核过滤所需 越相似的区域响应越高。 卷积 三种意义 一个系统 输入不稳定 输出稳定 用卷积求系统存量 输入不稳定输入数据存在差异如 x x x和 x \mathscr{x} x输出稳定变化趋势稳定用卷积求系统存量求变化后的系统总存量这一过程持续故采用积分形式 周围像素点如何影响中间像素点 周围像素点与中间像素点共同构成局部特征通过神经网络对局部特征进行归纳识别从而得出分类/预测结果 对周围位置的试探 过滤器过滤保留有用特征交由神经网络判断结果 在图像识别领域中像素为离散点故将积分更换为求和两种维度卷积情况如后文所示。 ① 一维卷积 一维卷积一般用于 音频/时序数据 的处理一维卷积公式如下 y t ∑ k 1 K w k x t − k 1 y_t\sum^{K}_{k1}w_kx_{t-k1} yt​k1∑K​wk​xt−k1​ 其中 x t − k 1 x_{t-k1} xt−k1​表示输入的信号序列 w k w_k wk​表示 滤波器 (卷积核) y t y_t yt​表示输出。 向量形式 y w ∗ x \boldsymbol{y}\boldsymbol{w} \ast \boldsymbol{x} yw∗x 其中 w \boldsymbol{w} w和 x \boldsymbol{x} x分别为滤波器和输入信号的向量形式 ∗ \ast ∗表示卷积运算 y \boldsymbol{y} y表示输出。 ② 二维卷积 二维卷积一般用于 图像/视频数据 的处理二维卷积公式如下 y i j ∑ u 1 U ∑ v 1 V w u v x i − u 1 , j − v 1 y_{ij}\sum^{U}_{u1}\sum^{V}_{v1}w_{uv}x_{i-u1,j-v1} yij​u1∑U​v1∑V​wuv​xi−u1,j−v1​ 矩阵形式 Y W ∗ X \boldsymbol{Y}\boldsymbol{W} \ast \boldsymbol{X} YW∗X 其中 W \boldsymbol{W} W和 X \boldsymbol{X} X分别为滤波器和输入信号的矩阵形式 ∗ \ast ∗表示卷积运算 Y \boldsymbol{Y} Y表示输出。 单通道单卷积核 卷积也可以拥有偏置这种单一卷积核的情况称为单通道单卷积核。 单通道多卷积核 某些情况下可使用多个卷积核完成不同类型特征的提取。 卷积核可以认为是具有识别某一类元素特征的能力而对于一些复杂结构的数据来说仅仅只是通过一类特征来进行辨识往往是不够的因此通常来说我们都会通过多个不同的卷积核来对输入进行特征提取得到多个特征图然再输入到后续的网络中进行后续任务。 多通道单卷积核 多通道的单卷积核天生针对每个通道进行操作所以实际上还是视作单个卷积核。 RGB合成示意图 多通道多卷积核 多通道也可以利用多卷积核针对不同通道分别提取多种不同种类的特征。 ③ 互相关 **互相关 (Cross-Correlation) **→ 不翻转卷积用滑动窗口的点积 → 衡量两个序列的相关性 它与卷积的区别仅仅在于是否翻转翻转指所有维度颠倒次序 → 即旋转180°二维 → 上下颠倒左右颠倒 y i j ∑ u 1 U ∑ v 1 V w u v x i u − 1 , j v − 1 y_{ij}\sum^{U}_{u1}\sum^{V}_{v1}w_{uv}x_{iu-1,jv-1} yij​u1∑U​v1∑V​wuv​xiu−1,jv−1​ 矩阵形式 Y W ⊗ X r o t 180 ( W ) ∗ X \begin{equation} \begin{aligned} Y \boldsymbol{W} \otimes \boldsymbol{X} \\ rot180(\boldsymbol{W}) \ast \boldsymbol{X} \end{aligned} \end{equation} Y​W⊗Xrot180(W)∗X​​​ 2.2.2 辅助操作 ① 卷积步长 卷积步长卷积核每次扫描间距一般用字母 k k k或 K K K表示。 一维情况 卷积步长 s 2 s2 s2 二维情况 卷积步长 s 2 s2 s2 ② 零填充 零填充为原始输入特征周围填充若干圈零元素一般用字母 p p p或P表示。 卷积类型 窄卷积 (Narrow Convolution)步长 s 1 s1 s1两端不补零 p 0 p0 p0卷积后输出长度为 m − k 1 m-k1 m−k1。宽卷积 (Wide Convolution)步长 s 1 s1 s1两端补零 p k − 1 pk-1 pk−1卷积后输出长度为 m k − 1 mk-1 mk−1。等宽卷积 (Equal-Width Convolution)步长 s 1 s1 s1两端补零 p k − 1 2 卷积后输出长度为 p\frac{k-1}{2}卷积后输出长度为 p2k−1​卷积后输出长度为m。 2.2.3 池化层 / 汇聚层 池化层 (Pooling Layer)又称汇聚层 **池化 (Pooling)**属于下采样(Down Sampling) 作用特征筛选 → 减少特征数量 → 减少后续层参数数量 ① 最大池化 最大池化 (Maximum Pooling)取区域内所有神经元最大激活值 ② 平均池化 / 均值池化 平均池化 (Mean Pooling)取区域内所有神经元激活值均值 2.2.4 感受野 感受野 (Receptive Field)卷积神经网络每一层输出的特征图 (Feature Map) 上的像素点在输入图片上映射的区域大小。 生物学 - 感受野 视觉皮层细胞从视网膜上的光感受器接收信号但单个视觉皮层细胞不会接收光感受器的所有信号而是只接受其所支配的刺激区域即感受野内的信号。只有感受野内的刺激才能够激活该神经元。多个视觉皮层细胞通过系统地将感受野叠加完整接收视网膜传递的信号并建立视觉空间 。 感受野计算公式 l k l k − 1 [ ( f k − 1 ) ∗ ∏ i 0 k − 1 s i ] l_kl_{k-1}[(f_k-1) \ast \prod^{k-1}_{i0}s_i] lk​lk−1​[(fk​−1)∗i0∏k−1​si​] 其中 l k − 1 l_{k-1} lk−1​为第 k − 1 k − 1 k−1层对应的感受野大小 f k f_k fk​为第 k k k层卷积层的卷积核大小 / 第 k k k层池化层的池化尺寸大小 s i s_i si​为步长stride。 感受野绘制工具 (开源)作者WZMIAOMIAO 该工具代码如下 import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormapdef dilated_conv_one_pixel(center: (int, int),feature_map: np.ndarray,k: int 3,r: int 1,v: int 1):膨胀卷积核中心在指定坐标center处时统计哪些像素被利用到并在利用到的像素位置处加上增量vArgs:center: 膨胀卷积核中心的坐标feature_map: 记录每个像素使用次数的特征图k: 膨胀卷积核的kernel大小r: 膨胀卷积的dilation ratev: 使用次数增量assert divmod(3, 2)[1] 1# left-top: (x, y)left_top (center[0] - ((k - 1) // 2) * r, center[1] - ((k - 1) // 2) * r)for i in range(k):for j in range(k):feature_map[left_top[1] i * r][left_top[0] j * r] vdef dilated_conv_all_map(dilated_map: np.ndarray,k: int 3,r: int 1):根据输出特征矩阵中哪些像素被使用以及使用次数配合膨胀卷积k和r计算输入特征矩阵哪些像素被使用以及使用次数Args:dilated_map: 记录输出特征矩阵中每个像素被使用次数的特征图k: 膨胀卷积核的kernel大小r: 膨胀卷积的dilation ratenew_map np.zeros_like(dilated_map)for i in range(dilated_map.shape[0]):for j in range(dilated_map.shape[1]):if dilated_map[i][j] 0:dilated_conv_one_pixel((j, i), new_map, kk, rr, vdilated_map[i][j])return new_mapdef plot_map(matrix: np.ndarray):plt.figure()c_list [white, blue, red]new_cmp LinearSegmentedColormap.from_list(chaos, c_list)plt.imshow(matrix, cmapnew_cmp)ax plt.gca()ax.set_xticks(np.arange(-0.5, matrix.shape[1], 1), minorTrue)ax.set_yticks(np.arange(-0.5, matrix.shape[0], 1), minorTrue)# 显示color barplt.colorbar()# 在图中标注数量thresh 5for x in range(matrix.shape[1]):for y in range(matrix.shape[0]):# 注意这里的matrix[y, x]不是matrix[x, y]info int(matrix[y, x])ax.text(x, y, info,verticalalignmentcenter,horizontalalignmentcenter,colorwhite if info thresh else black)ax.grid(whichminor, colorblack, linestyle-, linewidth1.5)plt.show()plt.close()def main():# bottom to topdilated_rates [1, 2, 3]# init feature mapsize 31m np.zeros(shape(size, size), dtypenp.int32)center size // 2m[center][center] 1# print(m)# plot_map(m)for index, dilated_r in enumerate(dilated_rates[::-1]):new_map dilated_conv_all_map(m, rdilated_r)m new_mapprint(m)plot_map(m)if __name__ __main__:main()2.2.5 空洞卷积 / 膨胀卷积 空洞卷积 (Atrous Convolution) / 膨胀卷积 (Dilated Convolution) 作用增大感受野、保持原输入特征图W、HPadding后 卷积神经网络 - 4个核心参数 卷积间隙 (膨胀因子 / 膨胀系数) r r r卷积核大小 k k k填充 p p p步长 s s s 空洞卷积 在语义分割中的应用 图片下采样提取后再上采样还原尺寸下采样倍率不能过大VGG maxpooling丢失细节信息/目标上采样无法还原maxpooling层去除得到特征图感受野变小影响后面的卷积层此时需要用到膨胀卷积既能增加感受野、输入输出矩阵高宽不发生改变 ① Gridding Effect 现象 Gridding Effect 现象感受野间存在不连续间隔 实验一 r 1 2 , r 2 2 , r 3 2 ; k 3 r_12,\space r_22,\space r_32;\space k3 r1​2, r2​2, r3​2; k3 像素利用热度累加计算L4利用L1像素的次数 r r r相同 → 连续堆叠3层L4利用L1像素数据并非连续 / 存在间隔 → 丢失细节信息 → 出现 Grid Effect 实验二 r 1 1 , r 2 1 , r 3 1 ; k 3 r_11,\space r_21,\space r_31;\space k3 r1​1, r2​1, r3​1; k3 感受野累加计算 L4 利用 L1(原始图像) 像素的次数即为其连续时所能覆盖的大小 该实验中 感受野大小 R F ( R e c e p t i v e F i e l d ) 7 × 7 RF(Receptive Field) 7 \times 7 RF(ReceptiveField)7×7 普通卷积 r 1 r1 r1相同 → 连续堆叠3层L4利用L1像素数据连续 → 感受野较小 实验三 r 1 1 , r 2 2 , r 3 3 ; k 3 r_11,\space r_22,\space r_33;\space k3 r1​1, r2​2, r3​3; k3 该实验中 感受野大小 R F ( R e c e p t i v e F i e l d ) 13 × 13 RF(Receptive Field) 13 \times 13 RF(ReceptiveField)13×13 r r r相异 → 连续堆叠3层L4利用L1像素数据连续 → 避免 Grid Effect → 感受野大 结论当卷积核大小相同时为空洞卷积设置合适的膨胀系数可增大感受野。 ② 如何设计膨胀系数 论文链接 将上述选取 r r r值过程连续假设连续堆叠 n n n 个 k × k k \times k k×k 膨胀卷积。 Hybrid Dilated Convolution (HDC) 问题目标通过一系列堆叠膨胀卷积最终形成覆盖底层无孔洞方形区域最终目标 M 2 ≤ K M_2 \le K M2​≤K。 若给出待验证的膨胀系数 r ⃗ [ r 1 , r 2 , … , r n ] \vec{r}[r_1,r_2,\dots,r_n] r [r1​,r2​,…,rn​]令 M n r n M_nr_n Mn​rn​则从第 n n n层系数一次计算至第 1 1 1层 M i m a x [ M i 1 − 2 r i , M i 1 − 2 ( M i 1 − r i ) , r i ] M_imax[M_{i1}-2r_i,M_{i1}-2(M_{i1}-r_i),r_i] Mi​max[Mi1​−2ri​,Mi1​−2(Mi1​−ri​),ri​] 其中 M M M为第 i i i层两非零元素距离最大值 r i r_i ri​为需验证的第 i i i层膨胀系数。 选值一 r 1 1 , r 2 2 , r 3 5 ; k 3 r_11,\space r_22,\space r_35;\space k3 r1​1, r2​2, r3​5; k3 令 M 3 r 3 5 M_3r_35 M3​r3​5则 M 2 m a x [ 5 − 4 , 5 − 2 ( 5 − 2 ) , 2 ] 2 M 1 m a x [ 2 − 2 , 2 − 2 ( 2 − 2 ) , 1 ] 1 \begin{equation} \begin{aligned} M_2 max[5-4,5-2(5-2),2]2 \\ M_1 max[2-2,2-2(2-2),1]1 \end{aligned} \end{equation} M2​M1​​max[5−4,5−2(5−2),2]2max[2−2,2−2(2−2),1]1​​​ 此时满足条件 M 2 ≤ k M_2 \le k M2​≤k故不存在Grid Effect现象。 选值二 r 1 1 , r 2 2 , r 3 9 ; k 3 r_11,\space r_22,\space r_39;\space k3 r1​1, r2​2, r3​9; k3 令 M 3 r 3 9 M_3r_39 M3​r3​9则 M 2 m a x [ 9 − 4 , 9 − 2 ( 9 − 2 ) , 2 ] 5 M 1 m a x [ 5 − 2 , 5 − 2 ( 5 − 2 ) , 1 ] 3 \begin{equation} \begin{aligned} M_2 max[9-4,9-2(9-2),2]5 \\ M_1 max[5-2,5-2(5-2),1]3 \end{aligned} \end{equation} M2​M1​​max[9−4,9−2(9−2),2]5max[5−2,5−2(5−2),1]3​​​ 此时不满足条件 M 2 ≤ k M_2 \le k M2​≤k故存在Grid Effect现象。 原因我们希望高层特征图利用底层所有像素 M 1 M_1 M1​在 M 2 − 2 r 1 M_2-2r_1 M2​−2r1​、 M 2 − 2 ( M 2 − r 1 ) M_2-2(M_2-r_1) M2​−2(M2​−r1​)和 r 1 r_1 r1​中取最大第1层 M 1 1 M_11 M1​1时无间隙则 r 1 r_1 r1​必须 1 1 1倘若 r 1 1 r_11 r1​1则 M 1 1 M_11 M1​1 会出现间隙。 公约数大于1也会出现 Grid Effect问题即每层的利用区域未能实现 “交错”。 结论公约数不能大于1否则会出现 Grid Effect问题。 选值三公约数2大于1 r 1 2 , r 2 4 , r 3 8 ; k 3 r_12,\space r_24,\space r_38;\space k3 r1​2, r2​4, r3​8; k3 令 M 3 r 3 8 M_3r_38 M3​r3​8则 M 2 m a x [ 8 − 8 , 8 − 2 ( 8 − 4 ) , 8 ] 8 M 1 m a x [ 4 − 2 , 4 − 2 ( 4 − 2 ) , 2 ] 2 \begin{equation} \begin{aligned} M_2 max[8-8,8-2(8-4),8]8 \\ M_1 max[4-2,4-2(4-2),2]2 \end{aligned} \end{equation} M2​M1​​max[8−8,8−2(8−4),8]8max[4−2,4−2(4−2),2]2​​​ 此时不满足条件 M 2 ≤ k M_2 \le k M2​≤k故存在Grid Effect现象。 文章推荐可使用诸如 [ 1 , 2 , 3 , 1 , 2 , 3 ] [1,2,3,1,2,3] [1,2,3,1,2,3]的锯齿结构设计。下图是是否使用准则训练效果的对比情况可以看出使用准则效果明显优于未使用准则。 2.2.6 可分离卷积 可分离卷积 (Separable Convolutions)包括 空间可分离卷积(Spatially Separable Convolutions) 和 深度可分离卷积(depthwise separable convolution)。 ① 空间可分离卷积 空间可分离卷积 (Spatially Separable Convolutions)将卷积核分解为两项独立的核分别进行操作。 利用向量乘法将3×3卷积核分解为如下两个小卷积核 [ − 1 0 1 − 2 0 2 − 1 0 1 ] [ 1 2 1 ] ⋅ [ − 1 0 1 ] \begin{bmatrix} -1 0 1 \\ -2 0 2 \\ -1 0 1 \\ \end{bmatrix} \begin{bmatrix} 1 \\ 2 \\ 1 \\ \end{bmatrix} \cdot \begin{bmatrix} -1 0 1 \end{bmatrix} ​−1−2−1​000​121​ ​ ​121​ ​⋅[−1​0​1​] 计算流程先用 3 × 1 3\times1 3×1的卷积核作横向扫描计算再用 1 × 3 1\times3 1×3的卷积核作纵向扫描计算最后得到结果其计算量相较于标准卷积更小。 ② 深度可分离卷积 深度可分离卷积 (Depthwise Separable Convolutions)由深度卷积和 1 × 1 1\times1 1×1卷积组成。 深度可分卷积depthwise separable convolution是卷积神经网络中对标准的卷积计算进行改进所得到的算法其通过拆分空间维度和通道深度维度的相关性减少了卷积计算所需要的参数个数并在一些研究中被证实提升了卷积核参数的使用效率。 深度可分卷积的原型可认为来自于卷积神经网络中的Inception模块其卷积计算分为两部分首先对通道深度分别进行空间卷积depthwise convolution并对输出进行拼接随后使用单位卷积核进行通道卷积pointwise convolution以得到特征图。 在应用方面深度可分卷积被用于微型神经网络的搭建也被用于大规模卷积神经网络的结构优化。使用深度可分卷积的深度学习算法包括Xception和MobileNet。 第一步深度卷积 以彩色图像为例使用3个卷积核分别对输入层的3个通道作卷积计算再堆叠在一起。 第二步 1 × 1 1\times1 1×1卷积 1 × 1 1\times1 1×1卷积可以得到只有1个通道的结果将 1 × 1 1\times1 1×1卷积过程重复多次。 2.2.7 扁平卷积 扁平卷积 (Flattened convolutions)将标准卷积核拆分为3个 1 × 1 1\times1 1×1的卷积核再分别对输入层进行卷积计算。 2.2.8 分组卷积 分组卷积 (Grouped Convolution)2012年AlexNet论文中最先提出的概念当时以解决GPU显存不足问题为目的将卷积分组后放到两个GPU并行执行。 在分组卷积中卷积核被分成不同的组每组负责对相应的输入层进行卷积计算最后再进行合并。 2.2.9 混洗分组卷积 在分组卷积中卷积核被分成多个组后输入层卷积计算的结果仍按照原先的顺序进行合并组合这就阻碍了模型在训练期间特征信息在通道组之间流动同时还削弱了特征表示。 而 混洗分组卷积 (Shuffled Grouped Convolution) 将分组卷积后的计算结果混合交叉在一起输出。 如下图在第一层分组卷积 (GConv1) 计算后得到的特征图先进行拆组再混合交叉形成新的结果输入到第二层分组卷积 (GConv2)中。 2.2.6 上采样 vs 下采样 ① 上采样 上采样将低分辨率的图像或特征图放大到原始分辨率的过程。 计算机视觉中上采样用于图像分割、目标检测和图像生成等任务可帮助提高模型的准确性和性能。 常见的上采样方法转置卷积、双线性插值/最近邻插值等。 其中双线性插值/最近邻插值是较简单的上采样方法转置卷积则专用于卷积神经网络。 ② 下采样 下采样将高分辨率的图像或特征图缩小到较低分辨率的过程。 计算机视觉中下采样用于图像分类、目标检测和图像分割等任务可帮助减少计算量和内存消耗加快模型训练及推理速度。 作用一是减少计算量防止过拟合 二是增大感受野使得后面的卷积核能够学到更加全局的信息。 常见的下采样方法卷积操作、平均池化/最大池化等。 其中池化操作是一种常用的下采样方法卷积操作也可实现下采样 ( 步长卷积 / 空洞卷积 ) 2.2.7 上采样 常见的上采样方法转置卷积、双线性插值/最近邻插值等。 ① 转置卷积 转置卷积 (Transposed Convolution)即 分数步长卷积 (Fractionally-strided Convolution) / 反卷积 (Deconvolution)一种上采样方法可增大图像的尺寸。转置卷积不是卷积的逆运算而是通过特定的操作来恢复图像的原始尺寸。 微步卷积 微步卷积 (Fractionally-Strided Convolution): “步长”$ 1$ 的 转置卷积 实现方式间隙填充 → 在输入特征间插入0 → 间接减少步长 转置卷积默认参数 s 1 s1 s1参数 s 1 s 1 s1时则转置卷积称为步长为 1 s \frac{1}{s} s1​微步卷积需在输入特征间插入 s − 1 s − 1 s−1行列的0元素使其移动速度变慢。 运算步骤 ‌间隙 填充‌在输入特征图元素间填充 s − 1 s-1 s−1行、 s − 1 s-1 s−1列的 0元素四周 填充‌在输入特征图四周填充 k − p − 1 k-p-1 k−p−1行、 k − p − 1 k-p-1 k−p−1列的 0元素转置卷积核‌将卷积核参数 上下左右翻转卷积操作‌做正常卷积运算 参数一 当 s 1 , p 0 , k 3 s1,\space p0,\space k3 s1, p0, k3 时执行如下图所示的 转置卷积。 经计算 s − 1 0 s-10 s−10、 k − p − 1 2 k-p-12 k−p−12故间隙不填充0元素四周填充2行列0元素。 随后将卷积核参数上下左右翻转在此基础继续作 步长1 且 填充0 的 正常卷积运算。 参数二 当 s 2 , p 0 , k 3 s2,\space p0,\space k3 s2, p0, k3 时执行如下图所示的 微步卷积。 经计算 s − 1 1 s-11 s−11、 k − p − 1 2 k-p-12 k−p−12故间隙填充1行列0元素四周填充2行列0元素。 随后将卷积核参数上下左右翻转在此基础继续作 步长1 且 填充0 的 正常卷积运算。 参数三 当 s 2 , p 1 , k 3 s2,\space p1,\space k3 s2, p1, k3 时执行如下图所示的 微步卷积。 经计算 s − 1 1 s-11 s−11、 k − p − 1 1 k-p-11 k−p−11故间隙填充1行列0元素四周填充1行列0元素。 随后将卷积核参数上下左右翻转在此基础继续作 步长1 且 填充0 的 正常卷积运算。 Pytorch 中 2D转置卷积 实现 import tortch.nn as nn# 函数参数in_channels, out_channels, kernel_size, stride, padding, output_padding, dilation, groups # in_channels: 输入图像特征尺寸 # out_channels: 转置卷积后输出图像特征尺寸 # kernel_size: 转置卷积核尺寸 # stride: 步长 默认值1 # padding: 填充 默认值0 【dilation * (kernel_size - 1) - padding zero-padding will be added to both sides of each dimension in the input. Default: 0】 # bias: 偏置 默认值True # dilation: 膨胀卷积 nn.ConvTranspose2d()转置卷积的应用场景 ‌无监督学习‌用于找到一组核和特征图以重建图片。‌CNN可视化‌将CNN中的特征图还原到像素空间观察特定的特征图对哪些图案敏感。‌上采样‌在像素级预测任务中如图像分割和图像生成中通过上采样还原到原始图片尺寸。 由下图可见转置卷积增大了图像的尺寸。 ② 插值 插值利用已知数据估计未知位置数值。 最近邻插值 最近邻插值 (Nearest Neighbor Interpolation)对于未知位置直接采用与它最邻近的像素点的值为其赋值即缩放前后等比填充。 前提假设在一个连续变量的空间中一个点的值可以由离它最近的已知点来估计其在图像处理中被应用于图像的缩放。 双线性插值 双线性插值 (Bilinear Interpolation)不仅可实现图像缩放其本质是利用参考周围元素按坐标进行双向线性计算后插值。 坐标转换公式 s r c X d s t X ∗ ( s r c W i d t h / d s t W i d t h ) s r c Y d s t Y ∗ ( s r c H e i g h t / d s t H e i g h t ) srcXdstX* (srcWidth/dstWidth) \\ srcY dstY * (srcHeight/dstHeight) srcXdstX∗(srcWidth/dstWidth)srcYdstY∗(srcHeight/dstHeight) 其中 s r c X srcX srcX表示原图插值临时坐标 d s t X dstX dstX表示新图坐标 s r c H e i g h t srcHeight srcHeight、 s r c W i d t h srcWidth srcWidth 分别表示原图长宽 d s t H e i g h t dstHeight dstHeight、 d s t W i d t h dstWidth dstWidth 分别表示目标长宽。 双线性插值就是做两次线性变换先在X轴上做一次线性变换求出每一行的R点 f ( ⋅ ) f(·) f(⋅)表示对应坐标所在数值 f ( R 1 ) ≈ x 2 − x x 2 − x 1 f ( Q 11 ) x − x 1 x 2 − x 1 f ( Q 12 ) W h e r e R 1 f ( x , y 1 ) f ( R 2 ) ≈ x 2 − x x 2 − x 1 f ( Q 12 ) x − x 1 x 2 − x 1 f ( Q 22 ) W h e r e R 1 f ( x , y 2 ) f(R_1) \approx \frac{x_2-x}{x_2-x_1}f(Q_{11})\frac{x-x_1}{x_2-x_1}f(Q_{12}) \space\space\space\space Where \space R_1f(x,y_1) \\ f(R_2) \approx \frac{x_2-x}{x_2-x_1}f(Q_{12})\frac{x-x_1}{x_2-x_1}f(Q_{22}) \space\space\space\space Where \space R_1f(x,y_2) f(R1​)≈x2​−x1​x2​−x​f(Q11​)x2​−x1​x−x1​​f(Q12​)    Where R1​f(x,y1​)f(R2​)≈x2​−x1​x2​−x​f(Q12​)x2​−x1​x−x1​​f(Q22​)    Where R1​f(x,y2​) 再通过一次线性变换求出在该区域中的P点 f ( P ) ≈ y 2 − y y 2 − y 1 f ( R 1 ) y − y 1 y 2 − y 1 f ( R 2 ) f(P) \approx \frac{y_2-y}{y_2-y_1}f(R_1)\frac{y-y_1}{y_2-y_1}f(R_2) f(P)≈y2​−y1​y2​−y​f(R1​)y2​−y1​y−y1​​f(R2​) 整合所有公式可得以下计算公式 f ( x , y ) ≈ ( x 2 − x ) ( y 2 − y ) ( x 2 − x 1 ) ( y 2 − y 1 ) f ( Q 11 ) ( x − x 1 ) ( y 2 − y ) ( x 2 − x 1 ) ( y 2 − y 1 ) f ( Q 21 ) ( x 2 − x ) ( y − y 1 ) ( x 2 − x 1 ) ( y 2 − y 1 ) f ( Q 12 ) ( x − x 1 ) ( y − y 1 ) ( x 2 − x 1 ) ( y 2 − y 1 ) f ( Q 22 ) f(x,y) \approx \frac{(x_2-x)(y_2-y)}{(x_2-x_1)(y_2-y_1)}f(Q_{11})\frac{(x-x_1)(y_2-y)}{(x_2-x_1)(y_2-y_1)}f(Q_{21})\frac{(x_2-x)(y-y_1)}{(x_2-x_1)(y_2-y_1)}f(Q_{12})\frac{(x-x_1)(y-y_1)}{(x_2-x_1)(y_2-y_1)}f(Q_{22}) f(x,y)≈(x2​−x1​)(y2​−y1​)(x2​−x)(y2​−y)​f(Q11​)(x2​−x1​)(y2​−y1​)(x−x1​)(y2​−y)​f(Q21​)(x2​−x1​)(y2​−y1​)(x2​−x)(y−y1​)​f(Q12​)(x2​−x1​)(y2​−y1​)(x−x1​)(y−y1​)​f(Q22​) 如果计算出的点在f中是边缘点则使用单线性插值如果不是边缘点则使用双线性插值。 双三次插值 双三次插值 (Bicubic Interpolation) Bicubic函数公式 W ( d ) { ( a 2 ) ∣ d ∣ 3 − ( a 3 ) ∣ d ∣ 2 1 f o r ∣ d ∣ ≤ 1 a ∣ d ∣ 3 − 5 a ∣ d ∣ 2 8 a ∣ d ∣ − 4 a f o r 1 ∣ d ∣ 2 0 o t h e r w i s e W(d) \begin{equation} \left\{ \begin{array}{ll} (a2)|d|^3-(a3)|d|^21 for \space |d| \le 1 \\ a|d|^3-5a|d|^28a|d|-4a for \space 1 \lt|d| \lt 2 \\ 0 otherwise \end{array} \right. \end{equation} W(d)⎩ ⎨ ⎧​(a2)∣d∣3−(a3)∣d∣21a∣d∣3−5a∣d∣28a∣d∣−4a0​for ∣d∣≤1for 1∣d∣2otherwise​​​ 函数图像如下所示 假设存在以下图像需在 P P P点插值。 根据坐标转换公式求得点P坐标并将其分割为整数部分和小数部分。 假设 P P P的坐标为 P ( x u , y v ) P(xu,yv) P(xu,yv)其中 x , y x,y x,y分别表示整数部分 u , v u,v u,v分别表示小数部分。 可得到如图所示的最近16个像素的位置用 a ( i , j ) ( i , j 0 , 1 , 2 , 3 ) a(i,j)\space \space(i,j0,1,2,3) a(i,j)  (i,j0,1,2,3) 来表示。 求出BiCubic函数中的参数d,从而获得上面所说的16个像素所对应的权重W(d)。 BiCubic基函数是一元函数而图像是二维图像故将像素点的行与列分开计算。 BiCubic函数中的参数 d d d表示该像素点到 P P P点的距离。 例如 ( 0 , 0 ) (0,0) (0,0)距离 P ( x u , y v ) P(xu,yv) P(xu,yv)的距离为 ( 1 u , 1 v ) (1u,1v) (1u,1v)因此a00的横坐标权重 i 0 W ( 1 u ) i_0W(1u) i0​W(1u)纵坐标权重 j 0 W ( 1 v ) j_0W(1v) j0​W(1v) ( 0 , 0 ) (0,0) (0,0)对 B ( X , Y ) B(X,Y) B(X,Y)的贡献值为 Q 00 ∗ i 0 ∗ j 0 Q_{00} * i_0* j_0 Q00​∗i0​∗j0​。 因此横坐标权重分别为 W ( 1 u ) W(1u) W(1u) W ( u ) W(u) W(u) W ( 1 − u ) W(1-u) W(1−u) W ( 2 − u ) W(2-u) W(2−u)纵坐标权重分别为 W ( 1 v ) W(1v) W(1v) W ( v ) W(v) W(v) W ( 1 − v ) W(1-v) W(1−v) W ( 2 − v ) W(2-v) W(2−v)。 B ( X , Y ) B(X,Y) B(X,Y)像素值为 B ( X , Y ) ∑ i 0 3 ∑ j 0 3 a i j × W ( i ) × W ( j ) B(X,Y)\sum^{3}_{i0}\sum^{3}_{j0}a_{ij}\times W(i)\times W(j) B(X,Y)i0∑3​j0∑3​aij​×W(i)×W(j) ③ 反池化 ‌反池化 (Unpooling)池化 (Pooling) 的逆操作包括 反最大池化 和 反平均池化。 在池化过程中数据被压缩以减少维度而在反池化过程中数据通过恢复被压缩的数据来增加维度。 反池化并不能完全恢复原始数据它只恢复主要信息并舍去部分信息。‌ 反最大池化 在池化过程中记录最大激活值的坐标位置最大反池化时将最大激活值所在位置坐标值激活其他的值设置为0。 反平均池化 先还原成原来的大小再将池化结果中的每个值都填入其对应原始数据区域中相应位置即可。 3. 评估方法 3.1 混淆矩阵 展示模型在各个类别上的预测正确与预测错误的数量非常直观地反映模型在各类别上的性能以帮助改进模型。 3.2 精确度 总的正确预测数除以总的预测数。 注意在类别不平衡的情况下精确度不是唯一的评估标准。 3.3 其他指标 召回率 (Recall)精确率 (Precision)F1 分数 (F1 Score)精确率和召回率的调和平均。
http://www.zqtcl.cn/news/958104/

相关文章:

  • 做毕设的网站万wordpress图片怎么居中
  • 首页网站模板网站外链分析怎么做
  • so域名的网站有哪些结合公众号小店做网站
  • 阜宁专业做网站做信息网站能挣钱吗
  • wordpress 怎么手动更新宝安网站 建设seo信科
  • 腾讯的网站建设用了多少钱找人合伙做网站平台
  • 企业网站功能模块介绍服务器免费体验
  • 小程序制作收款网站结构优化的优化包括
  • 北京市建设工程质监站网站poi player wordpress
  • php网站开发工程师招聘网自己做小程序要钱吗
  • 两学一做考试网站空间网
  • 齐诺网站建设东莞网站建设做网站集团网站群
  • 网站运营策略如何做软件网站开发培训
  • 数据库型网站wordpress上传工具
  • 太原建站公司模板宁波seo公司哪家好
  • 电商网站都是用什么做的承接电商网站建设
  • c2c网站代表有哪些怎样制作个人网站
  • wordpress linux 建站安丘市建设局官方网站
  • 谁给个好网站硬件开发是什么
  • 海外网站加速器免费长春做网站优化哪家好
  • 建立网站需要多长钱电脑网页设计培训
  • 给网站划分栏目邢台做网站优化费用
  • 网群企业网站管理系统红塔区住房和城乡建设局网站
  • 濮阳网站建设在哪做沈阳百度网站的优点
  • 网站上如何做问卷调查温州建设局官方网站
  • 做一件代发哪个网站好具有品牌的福州网站建设
  • 邢台移动端网站建设犀牛建模教程
  • 华池网站建设广西柳州市
  • 泰安网站建设推荐软件商店电脑版官方下载
  • 站长平台网站报价单模板表格