深度学习基础
文章平均质量分 74
NULL326
这个作者很懒,什么都没留下…
展开
-
深度学习09 -Transformer2 - 理论篇
参考文档:详解Transformer1、开局来一张Transformer的整体结构图2、结构图每步分析1、Encoder1、Input Embedding就是对输入的数据进行向量化编码,可能是one-hot等等2、Positional Encoding主要目的是对输入数据的位置有一个确定的前后关系因为在Self-Attention中,没有考虑到前后位置关系,而是直接从总体进行学习的,因此此处需要加一个可以前后位置关系的表示,在论文中使用的是以下方法:(1)使用了偶数位置用sin,奇数位原创 2021-03-04 01:02:03 · 329 阅读 · 1 评论 -
深度学习09 -Transformer - 理论篇
1、Transformer简介Transformer与RNN输入输出一样,但是RNN后面的运算依赖于前面的输出,所以不能并行运算,但是使用Transformer是可以并行的,所以其b1-b4是同时被计算出来的2、计算过程1、与attention机制一样,在这个模型中,我们会从输入的x线通过乘一个矩阵变换为a,然后再通过query(q)、key(k)、value(v)进行运算attention公式(根号d可有可无):2、self-attention:通过计算出来的q与每一个k进行相似性运算(原创 2021-03-01 23:59:14 · 342 阅读 · 0 评论 -
深度学习08 - 决策树
部分图片及教程源自bilibili-等等很简单1、决策树简介决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论原创 2021-03-01 14:08:42 · 911 阅读 · 0 评论 -
深度学习07 - Attention机制-seq2seq序列模型
1、seq2seq简介Seq2Seq模型是输出的长度不确定时采用的模型,这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。如下图所,输入的中文长度为4,输出的英文长度为2。在网络结构中,输入一个中文序列,然后输出它对应的中文翻译,输出的部分的结果预测后面,根据上面的例子,也就是先输出“machine”,将"machine"作为下一次的输入,接着输出"learning",这样就能输出任意长的序列。机器翻译、人原创 2021-02-19 11:53:48 · 460 阅读 · 1 评论 -
深度学习07 - Attention机制-理论篇
参考文档:一文看懂 Attention(本质原理+3大优点+5大类型)1、Attention的本质1、Attention(注意力)机制如果浅层的理解,跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。2、Attention在AI领域中的位置2、Attention的三大优点参数少模型复杂度跟 CNN、RNN 相比,复杂度更小,参数也更少。所以对算力的要求也就更小。速度快Attention 解决了 RNN 不能并行计算的问题。Attention机制每一步计算不依赖于上一步原创 2021-02-15 17:01:54 · 358 阅读 · 0 评论 -
深度学习06 - LSTM网络-处理可变长序列输入问题
1、问题RNN的输入是按照批次来进行原创 2021-02-04 21:27:03 · 4097 阅读 · 0 评论 -
深度学习06 - GRU网络-理论篇
原创 2021-02-04 13:46:19 · 121 阅读 · 0 评论 -
原创 深度学习06 - LSTM网络-理论篇
原创 2021-02-04 13:44:34 · 84 阅读 · 0 评论 -
使用例子看懂RNN
1、RNN产生原因一些数据前后有关联,且关联的长度不确定,需要根据数据前后关系进行预测。比如视频每一帧与之前与之后的关联,要分析这些帧连接起来的整个序列。2、几种神经网络(1)基本循环神经网络考虑例子:我 昨天 上学 迟到 了 ,老师 批评 了 ____。分为如下几步:1、通过one-hot编码将数据向量化变为对应的数字序列2、根据如下神经网络进行预测后面的数据通过公式:计算St与Ot(1)首先随机初始化一个W作为向后传递的初始值(2)然后通过输入的x向量与权重矩阵U做乘积原创 2021-01-27 20:10:39 · 467 阅读 · 1 评论 -
深度学习05 - 循环神经网络-实践篇-RNN预测sin函数
1、导包import torch.utils.datafrom torch import optim, nnimport numpy as npimport matplotlib.pyplot as plt2、设定参数#参数设定num_time_steps = 50#训练时循环次数input_size = 1#输入维度hidden_size = 16#隐藏层节点个数output_size = 1#输出维度就是相当于每个节点1维扩展成了16维然后再映射到1维3、通过pyt原创 2021-01-27 15:50:17 · 603 阅读 · 0 评论 -
深度学习04 - 循环神经网络(RNN)-理论篇
1、RNN提出原因?某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。这时,就需要用到深度学习领域中另一类非常重要神经网络:循环神经网络(Recurrent Neural Network)。2、几类循环神经网络1、基本循环神经网络使用场景:之前语言模型主要是采用N-Gram。N可原创 2021-01-25 14:17:03 · 281 阅读 · 0 评论 -
pytorch中常用的技术
一、torch.save()的使用参考链接:pytorch利用torch.save()保存模型参数及载入假设网络为model = Net(), optimizer = optim.Adam(model.parameters(), lr=args.lr), 假设在某个epoch,我们要保存模型参数,优化器参数以及epoch先建立一个字典,保存三个参数:state = {‘net':model.state_dict(),optimizer':optimizer.state_dict(), 'epoc原创 2021-01-22 15:52:35 · 123 阅读 · 0 评论 -
深度学习04 - 卷积神经网络-实践篇-使用pytorch(CNN)实现手写数字识别
1、问题使用Pytorch及CNN框架实现手写数字识别问题2、代码1、导包导入如下一些包,后面会用到import torchimport torch.nn as nnfrom torch.autograd import Variableimport torch.utils.data as Dataimport torchvisionimport timefrom torchvision import transformsimport matplotlib.pyplot as plt原创 2021-01-21 00:19:51 · 805 阅读 · 0 评论 -
深度学习04 - 卷积神经网络-理论篇
1、CNN概念1、卷积神经网络(CNN)常用于图像、语音识别领域2、ReLU激活函数ReLU激活函数定义:使用ReLU激活函数的优势:(1)速度快 和sigmoid函数需要计算指数和倒数相比,relu函数其实就是一个max(0,x),计算代价小很多。(2)减轻梯度消失问题 回忆一下计算梯度的公式。这个值最大是15,当这个值很小的时候,梯度会逐渐变小梯度计算公式:(3)稀疏性 通过对大脑的研究发现,大脑在工作的时候只有大约5%的神经元是激活的,而采用sigmoid激活函数的人工神原创 2021-01-19 20:15:55 · 450 阅读 · 0 评论 -
深度学习02-神经网络和反向传播算法-理论篇
理论篇1、神经网络神经网络其实就是按照一定规则连接起来的多个神经元。上图展示了一个全连接(full connected, FC)神经网络,通过观察上面的图,我们可以发现它的规则包括:神经元按照层来布局。最左边的层叫做输入层,负责接收输入数据;最右边的层叫输出层,我们可以从这层获取神经网络输出数据。输入层和输出层之间的层叫做隐藏层,因为它们对于外部来说是不可见的。同一层的神经元之间没有连接。第N层的每个神经元和第N-1层的所有神经元相连(这就是full connected的含义),第N-1层神经原创 2021-01-15 17:56:59 · 528 阅读 · 0 评论 -
深度学习02-神经网络和反向传播算法-pytorch实现多层感知机的神经网络算法
算法详解1、导入数据(1)使用np的方式将数据进行导入print("读取数据") train_drug_targets = np.loadtxt('/Users/fengxiaolin/Desktop/data/train_DPI.txt') train_drug_fps = np.loadtxt('/Users/fengxiaolin/Desktop/data/train_fps.txt')(2)将数据转为Tensor类型并转为float类型print("numpy 转 ten原创 2021-01-14 23:31:20 · 598 阅读 · 0 评论 -
深度学习02-神经网络和反向传播算法-pytorch实现反向传播算法
0、问题使用pytorch实现正向传播与反向传播算法1、预先知识学习1、pytorch数据结构-Tensor参考自:https://zhuanlan.zhihu.com/p/48982978在深度学习中,Tensor实际上就是一个多维数组(multidimensional array),其目的是能够创造更高维度的矩阵、向量Tensor中存储两个元素,一个是w(权重的值)、一个是损失函数对权重的偏导数2、代码1、构建数据集import torchx_data = [1.0,2.0,3原创 2021-01-13 15:35:20 · 467 阅读 · 2 评论 -
深度学习基础01-2-利用感知器实现and功能
参考文档1、预先知识学习1、and函数2、Python zip函数>>>a = [1,2,3]>>> b = [4,5,6]>>> c = [4,5,6,7,8]>>> zipped = zip(a,b) # 打包为元组的列表[(1, 4), (2, 5), (3, 6)]>>> zip(a,c) # 元素个数与最短的列表一致[(1, 4), (2, 5), (3原创 2021-01-05 21:20:36 · 206 阅读 · 0 评论 -
深度学习基础01-感知器
参考自:参考文档1、相关概念1、感知器即为神经网络的一个神经元2、构造图:其中x为输入值w为权值(其中w0为偏置项)从weighted sum到step function的过程称为激活函数最终结果为输出3、感知器迭代训练感知器训练算法:将权重项和偏置项初始化为0,然后,利用下面的感知器规则迭代的修改wi和b,直到训练完成。其中:每次从训练数据中取出一个样本的输入向量,使用感知器计算其输出,再根据上面的规则来调整权重。每处理一个样本就调整一次权重。经过多轮迭代后(即全部的训练数据原创 2021-01-05 13:49:49 · 454 阅读 · 0 评论