- 博客(25)
- 资源 (3)
- 问答 (3)
- 收藏
- 关注
原创 多模态方法总结
总的来说,多模态几乎都是基于Transformer的工作,并且正在向更大一统的方向前进。BeiTv3尽管只有一个模型,但依然有不同的子模块FFN。一个方向是language interface,类似通过prompt指定任务类型,把所有的任务都当成文本生成任务。另外,在最后总结一下我目前遇到的一些问题,第一个是ALBEF论文里的伪标签文本是如何生成的。我这里说的是伪标签文本而不是伪标签。对于ITC来说,生成的伪标签是一个相似度,对于MLM来说,生成的伪标签是词表概率分布。这些都不需要文本。
2024-10-09 00:12:09
1700
原创 YOLOv8 基于NCNN的安卓部署
前两节我们依次介绍了基于YOLOv8的剪枝和蒸馏本节将上一节得到的蒸馏模型导出NCNN,并部署到安卓。
2024-10-05 18:17:02
4965
13
原创 YOLOv8 基于MGD的知识蒸馏
接着上一篇我们介绍了YOLOv8的剪枝方案和代码,本篇文章将剪枝后的模型作为学生模型,剪枝前的模型作为教师模型对剪枝模型进行蒸馏,从而进一步提到轻量模型的性能。
2024-10-05 18:10:06
5710
9
原创 YOLOv8 基于BN层的通道剪枝
在损失项中增加对BN层的缩放系数γ和偏置项β的稀疏约束,λ系数越大,稀疏约束越严重Lxy∑lfxyλ1γ∑gγλ2β∑gβ对于L1gγ∣γ∣gβ∣β∣如果直接修改YOLOv8的损失,不方便控制L只传导对BN的参数更新,因此,采用修改BN的梯度的方式修改。
2024-07-31 15:13:17
3666
6
原创 ON-LSTM介绍
在常见的神经网络中,神经元通常都是无序的,比如遗忘门ftf_tft是一个向量,向量的各个元素的位置没有什么规律。ON-LSTM则试图把这些神经元排个序,并且用这个序来表示一些特定的结构,从而把神经元的序信息利用起来。比如说,c有6个维度,按顺序编号为0,1,2,3,4,5。接近0的维度存储高层级的语义,接近5的维度则存储低层次语义。举个例子:上图是一个句子的语法树结构,一共有5层,所以我们用一个5维的c来存储上述结构(姑且用一个值就能表示语义特征)。每一层都有其相应的语义信息,即便是语句层。比如说,你这句
2022-07-18 18:28:03
1568
1
原创 强化学习入门笔记
我们先回忆一下童年,来看看超级玛丽这款游戏在这款游戏里面的,我们需要控制超级玛丽进行左右行走、跳、攻击等动作,来躲避或攻击小动物、吃金币以及各种类型的增益道具。最终,获得的金币数量的多少以及通关代表我们玩游戏玩的好不好。那么,如果我们希望让机器来玩这个游戏呢?怎么能让机器在合适的时候做出合适的动作?这就是强化学习要学的东西。在强化学习中,我们把超级玛丽称作智能体(Agent),而把游戏机制称作环境(Environment),把每一帧画面称作状态(State),把超级玛丽的行为称为动作(Action),把获得
2022-07-08 17:34:35
1357
原创 变分自编码器(VAE)
在本篇文章中,我将从变分自编码器的来源出发,从两个角度分别引出其网络和目标函数VAE的思想来源如果我们有一批样本,然后想生成一个新样本,我们应该怎么做呢?首先,最直接的想法是根据已有样本得到真实分布Pdata(x)P_{data}(x)Pdata(x),从而根据Pdata(x)P_{data}(x)Pdata(x)采样即可获取新样本但是很可惜,我们很难获得Pdata(x)P_{data}(x)Pdata(x),并且通常Pdata(x)P_{data}(x)Pdata(x)是复杂的,不容易采样
2022-05-31 14:15:10
4299
原创 Pytorch实现Transformer字符级机器翻译
前言上次发了一篇用seq2seq with attention做机器翻译的博客,今天我们试试Transformer。这篇文章主要介绍Transformer模型的搭建和训练,数据集仍然是上次的博客中使用的数据集。没看过那篇博客的可以先看看构建它数据集的部分再回来看这篇文章。搭建模型重点分析先看看这张经久不衰的Transformer架构图实现Transformer有几个重点Transformer中的三个maskMulti-Head Attention With Add&NormFee
2022-04-16 16:56:59
2027
原创 Pytorch实现Seq2Seq(Attention)字符级机器翻译
前言前些天学了seq2seq和transformer,然后用机器翻译练习了一下,今天这篇博客就讲讲带注意力机制的seq2seq模型怎么做机器翻译。数据集准备数据集我使用的数据集是从B站某个视频拿到的,但是忘了是哪个视频了,是已经排好序的中英平行语料,数据不多,两万多条正适合用来做练习。数据集链接发在csdn了,大家可以去下载。下载完成后解压到项目目录即可,可以看到这里有3个文件ch.vec和en.vec分别是中文和英文字典,translate.csv是中英对照的平行语料。注意啊,ch.vec
2022-04-15 21:11:06
2715
6
原创 resnet18实现cifar10分类
实验步骤搭建resnet18网络数据集加载模型训练和改进分析评估Kaggle提交网络构建实验初期拟采用torchvision中实现的resnet18作为网络结构,为了方便修改网络结构,于是重新实现了resnet18网络resnet18由一个7x7的降采样卷积,一个max pooling层,8个basicblock,一个全局池化层,最后接一个全连接层组成,如下图tensorboard网络结构可视化,左图为torchvision中的resnet实现,右图为自定义实现代码如下定义残差块c
2021-12-30 12:19:28
6842
原创 中文分词算法
分词算法基于规则的分词最大匹配法最大匹配法设定一个最大词长度,每次匹配尽可能匹配最长的词算法过程示例最大词长度为4s1s2w结合成分子时null结合成分结合成分子时null结合成结合成分子时null结合成分子时结合/成分子时成分子时结合/成分子成分子时结合/成分子时结合/成分/子时子时结合/成分/子时结合/成分/子时null结合/成分/子/时null实现代码先贴一段统计词频
2021-12-28 19:47:45
1055
原创 Bert实现多标签文本分类
多标签文本分类Bert简介两个任务Bert是按照两个任务进行预训练的,分别是遮蔽语言任务(Masked Language Model)和句子预测任务(NextSentence Prediction)。遮蔽语言任务(Masked Language Model)对输入的语句中的字词 随机用 [MASK] 标签覆盖,然后模型对mask位置的单词进行预测。这个过程类似CBOW训练的过程,我们利用这个训练任务从而得到每个字符对应的embedding。特别的,[CLS]字符的embedding我们可以视为整个
2021-12-07 15:44:55
11158
12
原创 Bert模型做多标签文本分类
参考链接BERT模型的详细介绍图解BERT模型:从零开始构建BERT(强推)李宏毅2021春机器学习课程我们现在来说,怎么把Bert应用到多标签文本分类的问题上。注意,本文的重点是Bert的应用,对多标签文本分类的介绍并不全面单标签文本分类对应单标签文本分类来说,例如二元的文本分类,我们首先用一层或多层LSTM提取文本序列特征,然后接一个dropout层防止过拟合,最后激活函数采用sigmoid,或者计算损失的时候使用sigmoid交叉熵损失函数。对于多元分类则激活函数采用softmax,其它没
2021-12-01 20:49:41
14511
39
原创 词性标注-隐马尔可夫模型
词性标注-隐马尔可夫模型今天刚学完条件随机场,然后想找个例子实战一下,写写代码。于是关注到了词性标注,因为在学习的过程中,很多博客、视频、书等等都常常提到词性标注作为讲解的例子。然后我突然想到前面学HMM的过程中虽然利用盒子与球模型实现了HMM的算法,但是还没有用一个更广泛,更实际的例子去实现它,于是决定先用HMM实现词性标注。流程很简单,先利用现有的语料库训练HMM模型,这是学习问题,然后利用viterbi算法做任意输入的句子做词性标注,即解码问题我们先来看监督式学习的情况语料来自于https:/
2021-11-19 23:38:13
3347
原创 kmeans算法和kmeans++
kmeans聚类算法算法原理kmeans的算法原理其实很简单我用一个最简单的二维散点图来做解释如上图,我们直观的看到该图可聚成两个分类,我们分别用红点和蓝点表示下面我们模拟一下Kmeans是怎么对原始的二维散点图做聚类的首先,随机初始化2个聚类中心,至于什么是聚类中心呢,我们暂且压下不表,现在就把它当成一个点就好。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SK81vA5t-1636722491932)(C:\Users\li554\AppData\Roa
2021-11-12 21:16:46
7270
3
原创 白板推导系列Pytorch-隐马尔可夫模型-解码问题
解码问题(Decoding)解码问题就是求 argmaxI P(I∣O,λ)\underset{I}{argmax}\ P(I|O,\lambda)Iargmax P(I∣O,λ)Viterbi算法Viterbi算法事实上是一个动态规划的算法这个图来自知乎我们把概率当成距离那么只要确定了唯一的终点,到这个终点的最大距离必然等于到前一个时间轴5个点的最大距离分别乘以这5个点到终点的距离我们也可以用公式严格推导出这一性质定义距离为δt(i)=maxi1,i2,...
2021-11-12 16:05:21
1811
2
原创 白板推导系列Pytorch-隐马尔可夫模型-学习问题
隐马尔可夫模型的学习问题分为监督学习和非监督学习问题,监督学习采用极大似然估计,非监督学习采用Baum-Welch算法,我们直接先讲Baum-Welch算法。Baum-Welch算法(EM算法)事实上,Baum-Welch算法是EM算法在HMM学习问题中的应用。我们要估计的λ^\hat \lambdaλ^应该为λ^=argmaxλP(O∣λ)\hat \lambda = \underset{\lambda}{argmax} P(O|\lambda)λ^=λargmaxP(O∣λ)我们还是先把
2021-11-12 15:54:38
1114
1
原创 白板推导系列Pytorch-隐马尔可夫模型-概率计算问题
概率计算问题(Evaluation)给定模型 λ=(A,B,π)\lambda=(A, B, \pi)λ=(A,B,π) 和观测序列 O=(o1,o2,⋯ ,oT)O=\left(o_{1}, o_{2}, \cdots, o_{T}\right)O=(o1,o2,⋯,oT) , 计算在模型 λ\lambdaλ 下观测序列 OOO 出现的概率 P(O∣λ)P(O \mid \lambda)P(O∣λ).直接计算法P(O∣λ)=∑IP(O,I∣λ)=∑IP(O∣I,λ)⋅P(I∣λ
2021-11-12 15:44:30
570
原创 白板推导系列Pytorch-隐马尔可夫模型(HMM)
白板推导Pytorch-隐马尔可夫模型(HMM)状态转移矩阵和观测概率矩阵状态转移矩阵A=[aij]N×Nαij=P(it+1=qj∣it=qi)\begin{aligned}A &=\left[a_{i j}\right]_{N \times N} \\\alpha_{ij} &= P(i_{t+1} = q_j|i_t=q_i)\end{aligned}Aαij=[aij]N×N=P(it+1=qj∣it=qi)观测概率矩阵B=[bj(k)]N×Mb
2021-11-08 22:52:09
1916
3
原创 白板推导系列Pytorch-期望最大(EM)算法
白板推导系列Pytorch-期望最大(EM)算法EM算法介绍直接看这篇博客-如何通俗理解EM算法,讲的非常好,里面也有算法的公式推导。当然白板推导的视频里面公式推导已经讲的很清楚了,就是缺少应用实例。这篇博客用三个很通俗的例子引入了极大似然估计和EM算法。美中不足的是并没有详细说明极大似然估计并不是一定陷入鸡生蛋蛋生鸡的循环而没有办法处理隐变量问题,而是由于计算复杂从而摒弃了这个方法。当我们能知道z的分布的时候,其实也是可以用极大似然估计表示的但是,很多时候,我们很难获得Z的分布,除非我们事先对Z已经
2021-11-08 15:32:51
1087
原创 白板推导系列Pytorch-支持向量机(SVM)
白板推导系列Pytorch-支持向量机(SVM)支持向量机的代码实现主要是SMO算法的实现,我参考了下面这篇博客https://www.cnblogs.com/lsm-boke/p/12317200.html该博客中使用numpy实现的svm,我对numpy版本做了一点修改,并且使用pytorch的API写了一个新版本,但除了函数名不同基本一致,只是numpy版本的收敛速度比pytorch要快很多。另外我调用了sklearn中的svm,速度都远超这两个实现pytorch版本导入所需的包impor
2021-10-29 18:57:35
8663
5
原创 白板推导系列Pytorch-PCA降维
白板推导系列Pytorch-PCA降维前面在看花书的时候就遇到过PCA,但是花书上的推导和白板推导中的推导不太一样,花书上的推导我至今还没弄清楚,但是这个我懂了,接下来我将以mnist数据集为例实现PCA降维并利用sklearn朴素贝叶斯分类器分类导入相关包import torchimport matplotlib.pyplot as pltfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import tr
2021-10-26 17:28:40
2373
1
原创 白板推导系列Pytorch-朴素贝叶斯
白板推导系列Pytorch-朴素贝叶斯下面的实现基于极大似然估计,意思就是使用极大似然估计的方法来估计模型中的未知参数,因此我们当然能想到还有其它的估计方法,例如贝叶斯估计。如果您仍然不明白我在说什么,或许是您还没有看白板推导的系列视频pytorch实现生成数据集def create_dataset(n_samples=1000): x0 = torch.normal(2,1,size=(n_samples//2,2),dtype=torch.float32) y0 = torch.
2021-10-25 21:45:18
815
原创 白板推导系列Pytorch-线性判别分析(LDA)
白板推导系列Pytorch-线性判别分析(LDA)导入所需的包import torchfrom sklearn.datasets import make_classificationfrom sklearn.linear_model import Perceptronimport torch.nn.functional as Fimport matplotlib.pyplot as plt生成数据集X, y = make_classification(n_samples=1000, n_f
2021-10-24 09:38:18
2727
3
原创 白板推导系列Pytorch实现-感知机算法
白板推导系列Pytorch实现-感知机算法下面的代码以二维输入为例,实现二分类的感知机算法import matplotlib.pyplot as pltimport torchimport torch.utils.data as Dataimport numpy as npclass Perceptron: # 注意,为了我们能看到训练的效果,特意将learning_rate设的很小 def __init__(self, X, y, learn_rate=0.00001, b
2021-10-22 18:36:02
343
3
pytorch实现seq2seq和transformer机器翻译
2022-04-16
中英平行语料小型数据集
2022-04-15
kmeans++聚类聚成这样合理吗
2021-11-13
感知机算法的pytorch实现代码
2021-10-22
朴素贝叶斯的实现,我写的pytorch版本的代码为什么速度那么慢,改成numpy就很快?
2021-10-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅