自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (3)
  • 问答 (3)
  • 收藏
  • 关注

原创 模拟退火算法(SA)求解旅行商(TSP)问题 python实现

用new bing写的,一遍过,我自己加了点动态可视化和生成视频。

2023-04-21 13:05:00 355 1

原创 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 1214 1

原创 强化学习入门笔记

我们先回忆一下童年,来看看超级玛丽这款游戏在这款游戏里面的,我们需要控制超级玛丽进行左右行走、跳、攻击等动作,来躲避或攻击小动物、吃金币以及各种类型的增益道具。最终,获得的金币数量的多少以及通关代表我们玩游戏玩的好不好。那么,如果我们希望让机器来玩这个游戏呢?怎么能让机器在合适的时候做出合适的动作?这就是强化学习要学的东西。在强化学习中,我们把超级玛丽称作智能体(Agent),而把游戏机制称作环境(Environment),把每一帧画面称作状态(State),把超级玛丽的行为称为动作(Action),把获得

2022-07-08 17:34:35 1033

原创 卷积神经网络补充

在数学上,卷积定义为ϕ(x)=∫−∞+∞f(t)g(x−t)dt\phi(x) = \int_{-\infin}^{+\infin} f(t)g(x-t)dtϕ(x)=∫−∞+∞​f(t)g(x−t)dt怎么理解上面的式子呢?首先,f(t)表示t时刻的输入,g(x-t)表示在t时刻的输入对当前x时刻的影响因子可以看到g函数的输出是一个时间长度,而不是时刻,也就是说影响因子是跟时间长度相关而不是时刻相关的所以才会以当前时刻x-t时刻这个时间间隔作为输入假如现在有一堆石头,一个池子。(知乎上看到的例子,

2022-07-01 18:12:11 415

原创 变分自编码器(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 3780

原创 高斯过程部分数学推导

已知高斯过程:任意给定一批样本点 X=[x1,x2,...,xn]\mathbf{X=[x_1,x_2,...,x_n]}X=[x1​,x2​,...,xn​] 为其随机分配 F=[f(x1),f(x2),...,f(xn)]\mathbf{F = [f(x_1),f(x_2),...,f(x_n)]}F=[f(x1​),f(x2​),...,f(xn​)],F\bold FF 服从多维高斯分布。假设 F\mathbf{F}F 的实际观测为 Y=[y1,y2,...,yn]\mathbf{Y=[y_1,

2022-05-08 20:50:29 617

原创 Pytorch实现Transformer字符级机器翻译

前言上次发了一篇用seq2seq with attention做机器翻译的博客,今天我们试试Transformer。这篇文章主要介绍Transformer模型的搭建和训练,数据集仍然是上次的博客中使用的数据集。没看过那篇博客的可以先看看构建它数据集的部分再回来看这篇文章。搭建模型重点分析先看看这张经久不衰的Transformer架构图实现Transformer有几个重点Transformer中的三个maskMulti-Head Attention With Add&NormFee

2022-04-16 16:56:59 1666

原创 Pytorch实现Seq2Seq(Attention)字符级机器翻译

前言前些天学了seq2seq和transformer,然后用机器翻译练习了一下,今天这篇博客就讲讲带注意力机制的seq2seq模型怎么做机器翻译。数据集准备数据集我使用的数据集是从B站某个视频拿到的,但是忘了是哪个视频了,是已经排好序的中英平行语料,数据不多,两万多条正适合用来做练习。数据集链接发在csdn了,大家可以去下载。下载完成后解压到项目目录即可,可以看到这里有3个文件ch.vec和en.vec分别是中文和英文字典,translate.csv是中英对照的平行语料。注意啊,ch.vec

2022-04-15 21:11:06 2168 6

原创 netron神经网络可视化

安装netronpip install netron使用netron对各种模型的支持可谓各有其优点和缺点,netron可以显示pytorch模型定义在主类中的各部分的整体结构,忽略细节。但是看不到整个模型的整体结构和细节。netron可以显示onnx模型的整体结构,但全部都是基于conv,relu,maxpool等基础层的细节。事实上这两种需求都是有的。pytorch模型转onnximport torchimport torch.onnxdef convert2onnx(model_pa

2022-01-06 10:53:55 1207

原创 resnet18实现cifar10分类

实验步骤搭建resnet18网络数据集加载模型训练和改进分析评估Kaggle提交网络构建实验初期拟采用torchvision中实现的resnet18作为网络结构,为了方便修改网络结构,于是重新实现了resnet18网络resnet18由一个7x7的降采样卷积,一个max pooling层,8个basicblock,一个全局池化层,最后接一个全连接层组成,如下图tensorboard网络结构可视化,左图为torchvision中的resnet实现,右图为自定义实现代码如下定义残差块c

2021-12-30 12:19:28 6066

原创 中文分词算法

分词算法基于规则的分词最大匹配法最大匹配法设定一个最大词长度,每次匹配尽可能匹配最长的词算法过程示例最大词长度为4s1s2w结合成分子时null结合成分结合成分子时null结合成结合成分子时null结合成分子时结合/成分子时成分子时结合/成分子成分子时结合/成分子时结合/成分/子时子时结合/成分/子时结合/成分/子时null结合/成分/子/时null实现代码先贴一段统计词频

2021-12-28 19:47:45 802

原创 Yolo标签可视化

我的目录结构是这样的,yolov5的数据集目录结构希望能把标签数据绘制到图片上看看效果,代码如下from pathlib import Pathfrom alphabet import alphabetimport pandas as pdimport cv2import matplotlib.pyplot as pltalphabet = alphabet.split("\n")label_root = Path("labels/test")image_root = Path("i

2021-12-11 19:41:43 4932 4

原创 Bert实现多标签文本分类

多标签文本分类Bert简介两个任务Bert是按照两个任务进行预训练的,分别是遮蔽语言任务(Masked Language Model)和句子预测任务(NextSentence Prediction)。遮蔽语言任务(Masked Language Model)对输入的语句中的字词 随机用 [MASK] 标签覆盖,然后模型对mask位置的单词进行预测。这个过程类似CBOW训练的过程,我们利用这个训练任务从而得到每个字符对应的embedding。特别的,[CLS]字符的embedding我们可以视为整个

2021-12-07 15:44:55 9361 11

原创 Bert模型做多标签文本分类

参考链接BERT模型的详细介绍图解BERT模型:从零开始构建BERT(强推)李宏毅2021春机器学习课程我们现在来说,怎么把Bert应用到多标签文本分类的问题上。注意,本文的重点是Bert的应用,对多标签文本分类的介绍并不全面单标签文本分类对应单标签文本分类来说,例如二元的文本分类,我们首先用一层或多层LSTM提取文本序列特征,然后接一个dropout层防止过拟合,最后激活函数采用sigmoid,或者计算损失的时候使用sigmoid交叉熵损失函数。对于多元分类则激活函数采用softmax,其它没

2021-12-01 20:49:41 11949 34

原创 词性标注-隐马尔可夫模型

词性标注-隐马尔可夫模型今天刚学完条件随机场,然后想找个例子实战一下,写写代码。于是关注到了词性标注,因为在学习的过程中,很多博客、视频、书等等都常常提到词性标注作为讲解的例子。然后我突然想到前面学HMM的过程中虽然利用盒子与球模型实现了HMM的算法,但是还没有用一个更广泛,更实际的例子去实现它,于是决定先用HMM实现词性标注。流程很简单,先利用现有的语料库训练HMM模型,这是学习问题,然后利用viterbi算法做任意输入的句子做词性标注,即解码问题我们先来看监督式学习的情况语料来自于https:/

2021-11-19 23:38:13 3048

原创 kmeans算法和kmeans++

kmeans聚类算法算法原理kmeans的算法原理其实很简单我用一个最简单的二维散点图来做解释如上图,我们直观的看到该图可聚成两个分类,我们分别用红点和蓝点表示下面我们模拟一下Kmeans是怎么对原始的二维散点图做聚类的首先,随机初始化2个聚类中心,至于什么是聚类中心呢,我们暂且压下不表,现在就把它当成一个点就好。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SK81vA5t-1636722491932)(C:\Users\li554\AppData\Roa

2021-11-12 21:16:46 5178 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 1695 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)λ^=λargmax​P(O∣λ)我们还是先把

2021-11-12 15:54:38 981 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 488

原创 白板推导系列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 1511 3

原创 白板推导系列Pytorch-期望最大(EM)算法

白板推导系列Pytorch-期望最大(EM)算法EM算法介绍直接看这篇博客-如何通俗理解EM算法,讲的非常好,里面也有算法的公式推导。当然白板推导的视频里面公式推导已经讲的很清楚了,就是缺少应用实例。这篇博客用三个很通俗的例子引入了极大似然估计和EM算法。美中不足的是并没有详细说明极大似然估计并不是一定陷入鸡生蛋蛋生鸡的循环而没有办法处理隐变量问题,而是由于计算复杂从而摒弃了这个方法。当我们能知道z的分布的时候,其实也是可以用极大似然估计表示的但是,很多时候,我们很难获得Z的分布,除非我们事先对Z已经

2021-11-08 15:32:51 885

原创 白板推导系列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 8042 5

原创 深度学习花书-4.4 约束优化

4.4 约束优化这篇博客不是对照花书写的,但是对你看花书这一节是有用的minmax不等式-凤尾大于等于鸡头在看到白板推导的up主看着下式说鸡头凤尾的时候,觉得真是太有趣了,很形象有没有max⁡ymin⁡xf(x,y)≤min⁡xmax⁡yf(x,y)\max _{y} \min _{x} f(x, y) \leq \min _{x} \max _{y} f(x, y)ymax​xmin​f(x,y)≤xmin​ymax​f(x,y)花书里面有出现类似的式子,当时没有看懂,看到白板推导SVM的视

2021-10-27 19:18:25 527

原创 白板推导系列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 2028 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 655

原创 白板推导系列Pytorch-高斯判别分析(GDA)

白板推导系列Pytorch-高斯判别分析(GDA)不同于感知机和逻辑回归中由于得到的参数方程无法直接求解而只能采用随机梯度下降或上升的方式来求极值,LDA和GDA都可以直接求得参数,因而不需要通过逐步训练导入需要的包import torchimport matplotlib.pyplot as pltimport numpy as np生成数据集def create_dataset(n_samples=1000): n_data = torch.ones(n_samples//2,

2021-10-25 16:26:54 204

原创 白板推导系列Pytorch-逻辑回归

白板推导系列Pytorch-逻辑回归的简单实现导入需要的包import torchimport matplotlib.pyplot as pltimport torch.nn as nnfrom torch.autograd import Variable生成数据集def create_dataset(n_samples=1000): n_data = torch.ones(n_samples//2, 2) x0 = torch.normal(2 * n_data, 1)

2021-10-24 18:36:30 148 2

原创 白板推导系列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 2499 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 231 3

原创 深度学习花书-5.6 贝叶斯统计

5.6 贝叶斯统计频率学派的观点是,对于一个概率模型,参数是未知的常量而贝叶斯学派的观点是,参数是未知的变量,它自身也是遵循某个概率分布的,我们只有它的先验分布,需要根据观察到的数据来进行调整。通常来说,如果我们对参数不具有太多确定性的时候,采用高斯分布作为先验是附加条件最小的分布频率派的典型就是极大似然估计,本质上是一个优化问题。而贝叶斯派是基于贝叶斯公式(如下),最关键是求分母,这通常是一个求积分问题p(θ∣x(1),…,x(m))=p(x(1),…,x(m)∣θ)p(θ)p(x(1),…,x(

2021-10-21 20:12:48 194

原创 深度学习花书-5.4 估计、偏差和方差

5.4 估计、偏差和方差5.4.1 点估计点估计是依据样本估计总体分布中所含的未知参数或未知参数的函数。简单的来说,指直接以样本指标来估计总体指标,也叫定值估计。通常它们是总体的某个特征值,如数学期望、方差和相关系数等。点估计问题就是要构造一个只依赖于样本的量,作为未知参数或未知参数的函数的估计值。构造点估计常用的方法是:①矩估计法,用样本矩估计总体矩②最大似然估计法。利用样本分布密度构造似然函数来求出参数的最大似然估计。③最小二乘法。主要用于线性统计模型中的参数估计问题。④贝叶斯估计法。1.

2021-10-17 20:05:37 512

原创 深度学习花书-3.8 期望、方差与协方差

3.8 期望、方差与协方差1.期望离散型E(f(x))=∑xP(x)f(x)E(f(x)) = \sum_{x} P(x) f(x)E(f(x))=x∑​P(x)f(x)连续型E(f(x))=∫p(x)f(x)dxE(f(x)) = \int p(x) f(x) d xE(f(x))=∫p(x)f(x)dx2.方差Var⁡(f(x))=E[(f(x)−E[f(x)])2]\operatorname{Var}(f(x))=E\left[(f(x)-E[f(x)])^{2}\right]

2021-10-12 15:14:00 224

原创 深度学习花书-2.9 伪逆矩阵

2.9 伪逆计算公式A+=VD+UT\boldsymbol{A^+}= \boldsymbol{V}\boldsymbol{D^+}\boldsymbol{U^T}A+=VD+UT其中,矩阵 U\boldsymbol{U}U,D\boldsymbol{D}D和V\boldsymbol{V}V是矩阵 A\boldsymbol{A}A奇异值分解后得到的矩阵。对角矩阵D\boldsymbol{D}D的伪逆D+\boldsymbol{D^+}D+是其非零元素取倒数之后再转置得到的值得注意的是,通过np

2021-10-11 21:43:34 246

原创 深度学习花书-2.10 PCA数学推导

2.10 PCA本节主要记录花书2.10 PCA实例 中下图两个式子的推导过渡,PCA的推导全过程之后再补充个人认为,从2.72往2.71推导更容易一些,然后我们再逆向考虑就行了先介绍一下Frobenius范数,定义公式如下,即矩阵每个元素的平方和开根∥A∥F≡∑i=1m∑j=1n∣aij∣2\|\mathbf{A}\|_{F} \equiv \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n}\left|a_{i j}\right|^{2}}∥A∥F​≡i=1∑m​j=1∑

2021-10-11 20:10:03 318

原创 深度学习花书- 4.3 基于梯度的优化方法

4.3 基于梯度的优化方法现在在看花书,看到PCA的时候部分地方不懂跳到4.3节寻找答案,所以先记录这一节的部分笔记,后面读到再补充向量微积分书上没讲,但是不懂这个就很多地方都没法看懂,先掌握一点基础公式即可。向量微积分参考文献:(31条消息) 向量微积分基础_文剑木然的专栏-CSDN博客_向量微积分常用求导公式∂Ax∂x=A\frac{\partial \mathbf{A} \mathbf{x}}{\partial \mathbf{x}}=\mathbf{A}∂x∂Ax​=A∂x⊤A∂x

2021-10-11 15:41:26 164

原创 最小生成树-Prim算法的Python实现

建立图如果不了解算法思想,请移步 http://c.biancheng.net/algorithm/prim.htmlclass Graph: def __init__(self,vertex_num,edges): # 权重初始化为无穷 self.vertex_num = vertex_num self.edges = np.zeros(shape=(vertex_num,vertex_num),dtype=int) self.ed

2021-10-08 18:26:58 556

原创 朴素贝叶斯算法

朴素贝叶斯算法贝叶斯公式:当我们知道结果的时候,想知道最可能导致这个结果的原因在这个公式里面,类别就是原因,特征就是结果(因为是这个类别,所以有这些特征?)其中P(类型|特征) 称为后验概率,P(类别)称为先验概率,P(特征|类别)叫做似然概率,P(特征)叫做证据(后面讲为什么可以忽略)那么想要求得P(类别|特征),那么就要求得p(类别)和p(特征|类别),前者容易,类别数除以总数即可后者则比较麻烦,我们需要引入另一个概念——独立朴素贝叶斯算法的朴素二字,意思是说,所有特征是相互独立的,比如硬

2021-10-08 18:13:33 229

原创 卷积神经网络基础

卷积层负责提取图像中的局部特征卷积层主要有很多个卷积核组成,这些卷积核也叫过滤器,每一个卷积核都代表一种模式或特征,卷积核是有深度的暂时不用看,一会儿回来对照一下Doutput=Dinput−Dkernel+2∗paddingstride+1D_{output} = \frac{D_{input}-D_{kernel}+2*padding}{stride}+1Doutput​=strideDinput​−Dkernel​+2∗padding​+1局部关联、滑动窗口(黄色区域代表滑动窗口)(黄色区域

2021-10-07 17:30:29 592

原创 爬取东方财富网股票行情数据和资讯

爬取东方财富网股票行情数据和资讯这个需求源于我的一个练手项目本篇博客参考:https://zhuanlan.zhihu.com/p/50099084该博客介绍的东西本博客不做论述使用技术:语言:python浏览器:Chrome使用库:requests:发出请求获得源代码lxml.etree:解析html源代码re:正则匹配threading:多线程爬取time:多线程爬取时设置启动间隔,防止爬取线程过多json:解析json字符串为python字典沪深个股、港股、美

2021-04-08 12:01:33 4518 1

pytorch实现seq2seq和transformer机器翻译

pytorch实现seq2seq和transformer字符级中英机器翻译,里面有一个小型中英的平行语料数据集和训练好的seq2seq的模型,transformer的模型需要自己训练

2022-04-16

中英平行语料小型数据集

这个数据集有两万多条平行语料,适合学习seq2seq或者transformer的时候练习用。里面有统计好的该语料的词典,使用python pickle.load查看

2022-04-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除