不同任务下主干网络的选择

论文PDF: Battle of the Backbones: A Large-Scale Comparison of Pretrained Models across Computer Vision Tasks 爱可可 AI 前沿推介(11.2) 动机 当前计算机视觉系统的构建通常依赖于预训练或随机初始化的特征提取器作为骨干网络, 而选择合适的骨干网络是一个困难的问题, 因此需要一个方法来比较不同的预训练模型, 以帮助从业者做出明智的选择. ...

2023年11月6日 · 2 分钟 · sun510001

一些数据预处理的方法

1. 数据的预处理 对于缺失值 缺失量少,均值,中位数等填充; 缺失量多,离散化; 拟合模型填充. 对于异常值 基于统计的方法:3 sigma 聚类方法 isolation forest 等算法. 2. 特征工程 连续特征, 离散特征 特征组合, 生成新的特征 特征的归一化 (Normalization) 对于在一定范围内的特征 eg: 身高 线性函数归一化 (Min-Max Scaling) $X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}$ 零均值归一化 (Z-Score Normalization) = 标准化 (Standardization) $z=\frac{x-\mu}{\sigma}$ $\mu$: 均值. $\sigma$: 标准差 $\sigma = \sqrt{\frac{\sum (x_i-\mu)^2}{N}}$ 优点: 在变量更新速度不一致的情况下, 归一化能更好的实现梯度下降 线性变换不会改变原始数据的数值排序 类别型特征 (Categorical Feature) 对于只在有限选项内取值的特征 eg: 性别, 血型 特征的选择 Filter(过滤法) 按照发散性或相关性对各个特征进行评分, 设定阈值或者待选择特征的个数进行筛选 就是, 算特征与特征之间的关系 Pearson()皮尔森相关系数: 单个变量之间的线性相关性,结果的取值区间为[-1,1] from scipy.stats import pearsonr 优点: 速度快 缺点: 只对线性关系敏感 卡方验证 类别型变量对类别型变量的相关性 最大信息系数 maximal information coefficient (MIC) from minepy import MINE Wrapper(包装法) 根据目标函数(往往是预测效果评分), 每次选择若干特征, 或者排除若干特征 Embedded(嵌入法) 先使用某些机器学习的模型进行训练, 得到各个特征的权值系数, 根据系数从大到小选择特征(类似于Filter, 只不过系数是通过训练得来的) word2vec 特征的降维

2023年10月7日 · 2 分钟 · sun510001

行为识别模型简介

1. 行为识别 Human Action Recognition (HAR) 行为识别模型有两个方向: 第三人称动作识别和第一人称动作识别. 使用的各方向和对应的方法大致如下图, 本篇文章只介绍第三人称动作识别 RGB 模态. 详细可以参考调研论文. [1] ...

2023年9月8日 · 7 分钟 · sun510001

OCR文本识别和CRNN算法简介

1. CRNN算法介绍 CRNN 全称为 Convolutional Recurrent Neural Network 主要用于端到端地对不定长的文本序列进行识别, 不用先对单个文字进行切割, 而是将文本识别转化为时序依赖的序列学习问题, 就是基于图像的序列识别. 对于无字典和有字典的场景都有较好的表现. (不过无字典精度差有字典10%以上) 模型结构简单, 性能比Transformer等模型更好. 2. 传统的文字识别模型 有些模型基于DCNN 缺点: 这些模型需要一个很强的词语检测模型. 需要将图片中的词语准确检测出来. 需要做一个大范围的分类(英文单词有90K个, 中文1百万) 3. 模型结构 ...

2023年8月26日 · 7 分钟 · sun510001

OCR文本检测和DBNet

1. 文本检测难点 文本的多样性: 颜色, 大小, 字体, 形状, 方向, 语言, 文本长度… 复杂的背景干扰: 图像失真, 模糊, 低分辨率, 阴影, 亮度… 密集文本或重叠文本 文字存在局部一致性: 文本行的一部分也可以是为独立的文本 2. 场景文本检测方法分类 ...

2023年8月5日 · 8 分钟 · sun510001

目标检测问题常用的模型

1. 原始CNN 卷积结构的网络大致由 3 各网络层组成: 卷积层, 池化层和全连接层. 1.1. 卷积层 Convolution layer 使用不同的卷积核依次进行卷积提取特征 卷积操作涉及的参数如下: 滑动窗口步长: 步长不同会导致特征图尺寸不同 步长越小, 计算效率越低 卷积核尺寸 边缘填充 有些卷积核按照特定步长会导致漏掉一些原图的像素, 所以需要再边界补 $0$. $0$ 不会对卷积计算产生影响. 卷积核个数 卷积核的个数决定了特征图的厚度 (第三个维度) 卷积的尺寸计算, 卷积有两种方式: VALID 和 SAME. VALID 不进行补 $0$, 会漏掉一些原图的参数, SAME 补 $0$, 多加一圈 $0$ 来补齐. 下面的公式是 SAME, 去掉 $2P$ 就是 VALID. 长度: $$ H_2=\frac{H_1-F_H+2 P}{S}+1 $$ 宽度: $$ W_2=\frac{W_1-F_W+2 P}{S}+1 $$ $W_1,H_1$ 表示 input 的宽度和长度 $W_2,H_2$ 表示输入特征图的宽度和长度 $F$ 表示卷积核长和宽的大小 $S$ 表示滑动窗口的步长 $P$ 表示边界填充 (padding) 厚度 卷积参数共享: 如果图像是 $32*32*3$ 的图像, 卷积核有 $10$ 个, 尺寸都为 $5*5*3$ (就是对 RGB 三通道都做卷积). 这样的话, 每个卷积核需要 $5*5*3=75$ 个参数, 加上每个卷积核都有一个对应的偏置参数 $b$, 总共需要 $(75+1)*10$ 个参数. 所以卷积网络参数远少于全连接神经网络参数. 使用多个不同尺寸的卷积核之后全连接如何处理? (NLP 处理句子或 CV 处理图片时被使用到) 使用多个不同尺寸的卷积核卷积后的全连接处理_多个卷积核_空字符(公众号:月来客栈)的博客-CSDN博客 ...

2023年7月23日 · 28 分钟 · sun510001

深度学习训练用激活损失函数和技巧

1. 激活函数 深度学习常见激活函数介绍及代码实现 - UCloud云社区 1. ReLU 线性整流函数(Linear rectification function), 又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function), 通常指代以斜坡函数及其变种为代表的非线性函数. $$ f(x)=max(0,x) $$2. Sigmoid 缺点 sigmoid有一个梯度消失的问题, $|z|>4$(变量值很大或很小)的时候, 梯度就快消失了(趋近于0). ...

2023年7月21日 · 6 分钟 · sun510001

一些 NLP 常见深度学习的网络结构介绍

1. CNN 卷积核介绍 CNN中常用的四种卷积详解 1.1. 一般卷积 一个卷积核在图像上滑动,并求取对应元素相乘求和的过程. 使用参数: 卷积核大小 (Kernel Size) 步长 (Stride) 填充 (Padding) 输入和输出通道数 (Input & Output Channels) 普通卷积公式: ...

2023年5月27日 · 17 分钟 · sun510001

神经网络介绍

1. 梯度问题 梯度 梯度是一个向量, 表示某一函数在该点处的方向导数沿着该方向取得最大值. 即函数在该点处沿着该方向(此梯度的方向)变化最快, 变化率最大(为该梯度的模). 梯度下降 目的: 减小真实值(gt)和预测值的距离 批量梯度下降法(Batch Gradient Descent) batch_size=样本总数 小批量梯度下降法(Mini-Batch Gradient Descent) batch_size=x(16, 32, 64 …) 随机梯度下降(Stochastic Gradient Descent) batch_size=1 改进方法 Momentum (动量) $v_t=\gamma v_{t-1}+\eta g_t$ $\theta_{t+1}=\theta_t-v_t$ $\gamma$: 阻力(衰减系数); $g_t$: 梯度; $v$: 前进步伐; $\eta$: 学习速率 Adam 惯性保持: 记录梯度的一阶矩 $m_t=\beta_1m_{t-1}+(1-\beta_1)g_t$ 环境感知: 记录梯度的二阶矩 $v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2$ 更新函数 $\theta_{t+1}=\theta_t-\frac{\eta\cdot \hat{m_t}}{\sqrt{\hat{v_t}+\epsilon}}$ $\hat{m_t}=\frac{m_t}{1-\beta_1^t}$; $\hat{v_t}=\frac{v_t}{1-\beta_2^t}$ AdaDelta和RMSProp 对AdaGrad的改进 AdaGrad使用所有历史梯度的平方和的平方根做分母, 所以分母随时间单调递增. 这两个采用指数衰退计算平均值的方法, 用历史梯度的均值代替求和. ...

2023年5月5日 · 8 分钟 · sun510001

梯度下降法介绍

什么是梯度下降法? - 知乎 [论文阅读] 综述梯度下降优化算法 最小二乘问题的四种解法——牛顿法,梯度下降法,高斯牛顿法和列文伯格-马夸特法的区别和联系 1. 梯度下降 梯度下降法用来计算函数的最小值. 1.1. 二维函数梯度下降 比如需要计算函数 $f(x)=x^2$ 的最小值, 如果不从经验上获知其最小值, 如何通过迭代来计算呢? ...

2023年3月9日 · 2 分钟 · sun510001

PyTorch深度学习入门

Deep Learning With PyTorch - Full Course 1. Installation PyTorch 2. Tensor Basics import torch torch.zeros() torch.ones() torch.rand() # 正数随机(0, 1) torch.randn() # 带负数的随机(-1, 1) torch.tensor([[1, 1], [2, 3]]) torch.add(a, b) torch.mul(a, b) # 哈德马积 torch.mm(a, b) # 矩阵相乘 a.t() # 转置 a.add_(1) # 矩阵内数值全部+1 # 也可以直接 a+=1, 在numpy中也可以用 a = torch.rand(2, 4) a.view(-1, 2) #使矩阵从(2, 4)->(4, 2), -1是缺省值自动计算 torch.xxxx(xxxxx ,dtype=float (int32)) # 可以定义数据类型 import numpy as np a = np.ones() b = torch.from_numpy(a) # np.ndarray -> tensor c = b.numpy() # tensor -> np.ndarray # 书中的一些其他基础函数 a = torch.arange(12) # 新定义1-12个元素张量 # tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) x.shape # 显示张量的形状 # torch.Size([12]) x.numel() # 只显示张量的元素数量 # 12 tensor格式是专门为cuda准备的 tensor和np.ndarray 相互转换时, 变量的内存共享, eg: 使用add_, 都会变. if torch.cuda.is_available(): device = torch.device("cuda") x = torch.ones(5, device=device) # 写入显存 y = torch.ones(5) y = y.to(device) # 写入显存2 z = x + y print(z) # z = z.to("cpu") # 只有参数放回内存之后才可以改为numpy格式 z.numpy() # 报错, 显存中的tensor参数不能变成numpy格式 numpy格式无法放入显存 选定显卡 import os os.environ["CUDA_VISIBLE_DEVICES"] = "0" # or # when loading model model.load_state_dict(torch.load(PATH, map_location="cuda:0")) model.to(device) # or when initing the model model_load = NeuralNetMultiClass(input_size, hidden_size, num_classes).to(device) ...

2022年7月22日 · 12 分钟 · sun510001

深度之眼 迁移学习公开课

第1节课 transfer learning Inductive Transfer Learning 归纳式迁移学习 Transductive Transfer Learning 直推式迁移学习 Domain Adaptation 领域的自适应 任务一致,数据不一致 Unsupervised Transfer Learning 无监督式迁移学习 DA one-step Xs=Xt,P(Xs)≠P(Xt) 数据空间一致,数据分布不一致 Xs≠Xt 数据空间不一致 multi-step 多步 (如同时含有文字和图片) ...

2022年7月22日 · 1 分钟 · sun510001