深度学习
文章平均质量分 73
柳成荫~
计算机视觉
展开
-
强化学习入门笔记
我们先回忆一下童年,来看看超级玛丽这款游戏在这款游戏里面的,我们需要控制超级玛丽进行左右行走、跳、攻击等动作,来躲避或攻击小动物、吃金币以及各种类型的增益道具。最终,获得的金币数量的多少以及通关代表我们玩游戏玩的好不好。那么,如果我们希望让机器来玩这个游戏呢?怎么能让机器在合适的时候做出合适的动作?这就是强化学习要学的东西。在强化学习中,我们把超级玛丽称作智能体(Agent),而把游戏机制称作环境(Environment),把每一帧画面称作状态(State),把超级玛丽的行为称为动作(Action),把获得原创 2022-07-08 17:34:35 · 1143 阅读 · 0 评论 -
卷积神经网络补充
在数学上,卷积定义为ϕ(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 · 493 阅读 · 0 评论 -
变分自编码器(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 · 3988 阅读 · 0 评论 -
高斯过程部分数学推导
已知高斯过程:任意给定一批样本点 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 · 698 阅读 · 0 评论 -
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 · 1347 阅读 · 0 评论 -
resnet18实现cifar10分类
实验步骤搭建resnet18网络数据集加载模型训练和改进分析评估Kaggle提交网络构建实验初期拟采用torchvision中实现的resnet18作为网络结构,为了方便修改网络结构,于是重新实现了resnet18网络resnet18由一个7x7的降采样卷积,一个max pooling层,8个basicblock,一个全局池化层,最后接一个全连接层组成,如下图tensorboard网络结构可视化,左图为torchvision中的resnet实现,右图为自定义实现代码如下定义残差块c原创 2021-12-30 12:19:28 · 6327 阅读 · 0 评论 -
Bert实现多标签文本分类
多标签文本分类Bert简介两个任务Bert是按照两个任务进行预训练的,分别是遮蔽语言任务(Masked Language Model)和句子预测任务(NextSentence Prediction)。遮蔽语言任务(Masked Language Model)对输入的语句中的字词 随机用 [MASK] 标签覆盖,然后模型对mask位置的单词进行预测。这个过程类似CBOW训练的过程,我们利用这个训练任务从而得到每个字符对应的embedding。特别的,[CLS]字符的embedding我们可以视为整个原创 2021-12-07 15:44:55 · 10173 阅读 · 11 评论 -
白板推导系列Pytorch-期望最大(EM)算法
白板推导系列Pytorch-期望最大(EM)算法EM算法介绍直接看这篇博客-如何通俗理解EM算法,讲的非常好,里面也有算法的公式推导。当然白板推导的视频里面公式推导已经讲的很清楚了,就是缺少应用实例。这篇博客用三个很通俗的例子引入了极大似然估计和EM算法。美中不足的是并没有详细说明极大似然估计并不是一定陷入鸡生蛋蛋生鸡的循环而没有办法处理隐变量问题,而是由于计算复杂从而摒弃了这个方法。当我们能知道z的分布的时候,其实也是可以用极大似然估计表示的但是,很多时候,我们很难获得Z的分布,除非我们事先对Z已经原创 2021-11-08 15:32:51 · 986 阅读 · 0 评论 -
白板推导系列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 · 8355 阅读 · 5 评论 -
深度学习花书-4.4 约束优化
4.4 约束优化这篇博客不是对照花书写的,但是对你看花书这一节是有用的minmax不等式-凤尾大于等于鸡头在看到白板推导的up主看着下式说鸡头凤尾的时候,觉得真是太有趣了,很形象有没有maxyminxf(x,y)≤minxmaxyf(x,y)\max _{y} \min _{x} f(x, y) \leq \min _{x} \max _{y} f(x, y)ymaxxminf(x,y)≤xminymaxf(x,y)花书里面有出现类似的式子,当时没有看懂,看到白板推导SVM的视原创 2021-10-27 19:18:25 · 616 阅读 · 0 评论 -
白板推导系列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 · 2160 阅读 · 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 · 746 阅读 · 0 评论 -
白板推导系列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 · 236 阅读 · 0 评论 -
白板推导系列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 · 164 阅读 · 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 · 2617 阅读 · 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 · 236 阅读 · 0 评论 -
深度学习花书-5.4 估计、偏差和方差
5.4 估计、偏差和方差5.4.1 点估计点估计是依据样本估计总体分布中所含的未知参数或未知参数的函数。简单的来说,指直接以样本指标来估计总体指标,也叫定值估计。通常它们是总体的某个特征值,如数学期望、方差和相关系数等。点估计问题就是要构造一个只依赖于样本的量,作为未知参数或未知参数的函数的估计值。构造点估计常用的方法是:①矩估计法,用样本矩估计总体矩②最大似然估计法。利用样本分布密度构造似然函数来求出参数的最大似然估计。③最小二乘法。主要用于线性统计模型中的参数估计问题。④贝叶斯估计法。1.原创 2021-10-17 20:05:37 · 708 阅读 · 0 评论 -
深度学习花书-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 · 268 阅读 · 0 评论 -
深度学习花书-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 · 293 阅读 · 0 评论 -
深度学习花书-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∑mj=1∑原创 2021-10-11 20:10:03 · 398 阅读 · 0 评论 -
深度学习花书- 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 · 191 阅读 · 0 评论 -
卷积神经网络基础
卷积层负责提取图像中的局部特征卷积层主要有很多个卷积核组成,这些卷积核也叫过滤器,每一个卷积核都代表一种模式或特征,卷积核是有深度的暂时不用看,一会儿回来对照一下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 · 655 阅读 · 0 评论