![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 95
蓝子娃娃
越努力,越幸运!!!
展开
-
最通俗易懂的扩散模型
那生成模型到底是个啥?假设有一批样本XXX,想要从XXX学习到它的分布pXp(X)pX,这样就能同时学习到没被采样到的数据了,用这个分布pXp(X)pX就能随意采样,然后获得生成结果。但是这个分布九转回肠,根本不可能直接获得。所以绕个弯,整一个隐变量ZZZ,这东西可以生成XXX。不妨假设ZZZ满足正态分布,那就可以先从正态分布里面随机取一个ZZZ,然后用ZZZ和XXX的关系算出pXp(X)pX。转载 2024-06-01 16:44:45 · 205 阅读 · 0 评论 -
Deformable Convolution 可变形卷积
可变形卷积原创 2022-10-14 21:37:59 · 4925 阅读 · 3 评论 -
如何高效读论文
1. 读那些论文?论文类型的角度综述论文:快速熟悉某领域发展历程、现状及子方向,了解领域内基础概念及关键词。专题论文:介绍具体算法,可学习其设计思路,实验技巧,代码实现等具体技术。论文质量角度高质量期刊会议:CVPR、ECCV、ICCV、AAAI、NIPS、ICLR、ICML等高引论文:同行之间普遍认可,参考,借鉴的论文知名团队:Yoshua Bengio、Yann LeCun、Geoffrey Hinton、Andrew Ng等有代码论文:“Talk is cheap. Sh原创 2020-11-23 21:02:09 · 361 阅读 · 1 评论 -
16 循环神经网络(进阶)
循环神经网络 这篇博客主要设计一个 RNN Classifier - Name Classifier。我们需要训练一个模型,能够根据输入的名字预测该名字是基于哪种语言的。在该例子中一共有几千个名字,有 18 个类别。 通常在构造循环神经网络时,比如说在处理自然语言的时候,通常都将神经网络设计成如下形式:首先会将字或次转变成 one-hot 向量,但是 one-hot 向量维度太高而且过于稀疏,所以我们一般都会通过一个嵌入层(Embed),嵌入层负责将它转换成一个低维的稠密的向量。然后经过循环原创 2020-11-03 09:20:58 · 287 阅读 · 0 评论 -
15 循环神经网络(基础)
循环神经网络 之前介绍的全连接网络也叫做稠密网络(Dense)。 这一篇博客介绍的 RNN 主要用来处理带有序列类型的数据的输入,这就是 RNN 网络主要面向的目标。那么什么是 RNN 呢?RNN Cell 首先我们来说一下什么是 RNN Cell?下图中的 xtx_txt 表示时刻 ttt 的数据(比如说是一个 3 维的向量),然后经过 RNN Cell 的转变之后得到了一个 5 维的向量 hth_tht。将一个 3 维的向量变成一个 5 维的向量意味着 RNN Cell 的本原创 2020-11-02 15:53:14 · 368 阅读 · 0 评论 -
14 卷积神经网络(进阶)
卷积神经网络 这篇博客主要介绍更复杂的网络结构怎样去实现?在上一篇博客我们实现了一个非常简单的串行的神经网络结构,里面用了两个卷积层,两个池化层,然后是一个全连接层,最后得到相应的输出。 下面我们看一种更为复杂的,不是串行结构的网络。第一种网络结构是 GoogleNet(如下图),其中蓝色块表示卷积,红色块表示池化,黄色块表示 Softmax,绿色的块表示其它比如拼接层等等。 那么我们看到这样一种网络结构,很多小伙伴可能就傻眼了,如果按照之前的方法一个一个去定义,什么时候才原创 2020-11-01 09:08:33 · 555 阅读 · 0 评论 -
13 卷积神经网络(基础)
卷积神经网络 这篇博客主要介绍卷积神经网络(Convolutional Neural Network),简称 CNN。 我们在上一篇博客中介绍了全连接的神经网络,如果一个网络中全都是由线性层串联起来,那么我们称这个网络为全连接网络,下图就是在上篇博客中介绍的全连接网络。 下面我们来探讨一下处理图像的时候经常用到的二维卷积神经网络。首先我们来看一下它的工作方式是怎样的? 之前说过我们输入的 MNIST数据集中的图像是 1x28x28(CCCxWWWxHHH) 的张量,然后我原创 2020-10-30 22:28:09 · 1232 阅读 · 0 评论 -
12 多分类问题
说在前面 这篇博客主要介绍怎么解决多分类问题?下面我们解决多分类问题的时候会用到 Softmax Classifier,下面我们就来看看 Softmax 分类器怎么解决多分类问题的以及我们如何实现。 上一篇博客我们对糖尿病数据集进行了二分类,我们最后输出的是 y=1y=1y=1 的概率和 y=0y=0y=0 的概率。因为我们只有两个分类,所以我们只需要算出一个分类的概率,另一个分类的概率直接用 1 减去上一个分类的概率即可。 但实际上,我们还介绍了一些其他数据集,比如 MNIST(原创 2020-10-30 15:04:39 · 1009 阅读 · 1 评论 -
11 Dataset and DataLoader
Dataset and DataLoader 上一篇博客我们使用 Pytorch 加载了我们本地的糖尿病数据集,下面是上一篇博客的代码。 但是我们在训练的时候传入 model 是全部的训练数据集(x_data)。之前讨论过,使用梯度下降的时候,我们有几种选择,一种是批量梯度下降(全部的样本),一种是随机梯度下降(每次只用一个样本)。如果我们只用一个样本,我们可能会得到比较好的随机性,会帮助我们克服鞍点的问题(局部最优点),但是会导致时间过长,没法利用 GPU 和 CPU 的并行能力,所以训练的时间原创 2020-10-29 20:27:01 · 375 阅读 · 0 评论 -
10 处理多维特征的输入
之前我们处理的都是单维度的输入,也就是输入 xxx 是一个实数,那当我们面对多维输入的时候,那么我们怎么预测它对应的分类呢?在之前的例子中,我们使用了这样的两个数据集。第一个是用来做回归任务的,第二个是用来做分类任务的。这两个数据集的差别主要在于 yyy 的输出值。对于回归任务来说,它的输出 yyy 是属于实数的;而对于分类任务来说,它的输出 yyy 是一个离散的集合。下面我们再来看这样一个数据集,该数据集是关于糖尿病的。每一行是一个 Sample(样本),每一列是一个 Feature(特征)。原创 2020-10-29 14:27:45 · 1662 阅读 · 2 评论 -
09 Pytorch实现逻辑回归
Pytorch实现逻辑回归 我们还是先回顾一下线性回归。之前学习的线性回归,我们使用了下图所示的模型。 在线性回归中,我们要估计的 yyy 是属于连续的空间,像这种任务我们就称做是回归任务。但是在很多机器学习任务里面,我们要做的是分类,比如 MNIST 数据集(手写数字),那么它一共有 10 类分别是数字 0-9,那么最后我们要估计的 yyy 是属于一个集合,就是拥有 10 个离散值的集合。那么预测 yyy 是属于其中的哪一类,这种问题我们称做分类问题。 可以用以下命令来下载 M原创 2020-10-28 22:26:15 · 359 阅读 · 0 评论 -
08 Pytorch实现线性回归
Pytorch实现线性回归 这一篇博客主要介绍怎样使用 Pytorch 提供的工具帮助我们重现线性模型的过程。比如我们怎么构造神经网络,如何构造损失函数以及如何构造随机梯度下降的优化器。 我们首先回忆一下之前学习的线性模型中,首先需要确定我们的模型,之后要定义损失函数,而且损失函数计算出来的值必须是一个标量值。 我们用 Pytorch 来写深度神经网络,第一步先要准备数据集(Prepare dataset),第二步就是要设计模型(计算 y_hat),第三步构造损失函数和优化器,第四步就是原创 2020-10-28 17:03:15 · 183 阅读 · 0 评论 -
06 Pytorch实现反向传播
反向传播 上一篇博客大致介绍了反向传播,但是没有提及到计算图的概念。比如下面我以一个两层的神经网络为例,它的 y_hat 表达式为: 下面我们来构建它的计算图: 这里需要注意的是我们现在的一个两层的神经网络的 y_hat 可以展开为: 然后我们发现不断地进行线性变换,不管你有多少层最后都会统一成 y=W∗x+by = W*x + by=W∗x+b 的形式,也就是如下的计算图: 也就是说层数多和层数少没什么区别。为了解决这个问题,就是要提高模型的复杂度。换句原创 2020-10-28 10:50:11 · 3807 阅读 · 0 评论 -
07 神经网络整体架构
神经网络整体架构 我们先看看神经网络是什么样子的,如下图。 可以说神经网络是一个层次的结构,有一个输入层,隐层 1,隐层 2 和输出层。可以说是由多个层组成了一个完整的神经网络。输入层相当于输入的 xxx,比如说现在的输入有 3 个像素点 x1x_1x1,x2x_2x2,x3x_3x3。 中间两个层具体的元素很多参考资料中将它们称做神经元,其实神经元是不存在的。那么中间层里面的元素的是什么呢?其实就是权重参数的计算结果。比如说,x1x1x1 是和这些带箭头的线相连的,没有原创 2020-10-27 21:12:06 · 611 阅读 · 1 评论 -
05 反向传播
上一篇博客介绍了从输入 X 样本开始,通过一组 www 参数,得到了一个得分值,然后又将得分值经过 y=exy = e^xy=ex 函数的变换和归一化操作得到一个概率,然后又通过 y=−logxy = -logxy=−logx 函数求出了 Loss 值。有了 Loss 值之后,就可以进行最优化的操作。我们通常把从开始到得到 Loss 的过程称为前向传播。 通常神经网络是由 BP 算法求解的,那什么是 BP 算法呢?BP 算法就是说通过前向传播求出 Loss 值,然后经过一次反向传播再次优化这些权重参数(原创 2020-10-27 16:01:33 · 270 阅读 · 2 评论 -
04 Softmax分类器
Softmax分类器 我们处理多分类问题时,使用 SVM 输出的是一个得分值,但是得分值最后比来比去不是很直观。那么我们能不能将得分值进行转换,转换成一个概率值,如果一个新数据样本到达,如果属于某一个类别的概率为 80%,那么我们就可以很直观的看出该数据样本可能属于该类别,我就不用来回去比较得分值。 那么怎么样可以得到一个概率值呢?我们有一个叫 Softmax 的分类器。 首先我们先介绍 Sigmoid 函数,表达式如下: 该函数在坐标轴上的图形如下: 我们观察一下,xxx 轴原创 2020-10-27 11:22:14 · 1569 阅读 · 1 评论 -
03 神经元多输入
上一篇博客介绍了二分类的逻辑回归模型。如果我们想要多分类的逻辑回归模型,我们该怎么做呢?很显然,我们在只有一个神经元的时候可以做二分类的问题。如果我们想要多分类的话,直接加神经元的个数就好了,使用多个神经元就能得到多输出的回归模型。如下图所示,我们又多加了一个神经元,之后就可以得到两个输出,那么就可以去做三分类的逻辑回归。这里多加一个神经元就相当于把 WWW 从向量扩展为矩阵,输出的 W∗xW*xW∗x 从一个值变成了一个向量。下面举一个简单的例子,比如输入的 XXX = [3, 1, 2],WWW原创 2020-10-26 10:40:16 · 1177 阅读 · 0 评论 -
02 神经元-逻辑斯底回归模型
学习深度学习,我先从神经网络开始。在介绍神经网络之前,先介绍一下什么是神经元。神经元神经元是神经网络的最小结构,将多个神经元组合在一起就形成了神经网络。神经元也可以经过一些设置之后形成一个逻辑回归模型。神经元可以看成是最小的神经网络。下图是神经元的基本结构图,神经元有多个输入,一个输出。下图中的输入 x1x_1x1,x2x_2x2,x3x_3x3 分别通过加权然后求和得到了得到了神经元中的值 W∗xW*xW∗x,然后把该值送到一个函数 hhh 中,然后得到输出。这里需要注意一点的就是,上图为原创 2020-10-26 09:10:14 · 482 阅读 · 0 评论 -
01 机器学习和深度学习简介
一、机器学习简介机器学习是什么 —— 无序数据转化为价值机器学习价值 —— 从数据中抽取规律,并用来预测未来(比如:淘宝可以根据你的浏览痕迹向你推荐商品,这就是一个典型的机器学习产生价值的例子)机器学习应用举例分类问题::图像识别、垃圾邮件识别、世界杯中摄像头选择的切换画面回归问题:股价预测、房价预测排序问题:点击率预估、推荐生成问题:图像生成、图像风格转换、图像文字描述生成机器学习应用流程职责数据处理(数据采集 + 数据去噪)模型训练(提取特征 + 训原创 2020-10-26 08:15:51 · 1082 阅读 · 0 评论