Unknown To Known
这个作者很懒,什么都没留下…
展开
-
24 优化算法
深度学习模型大多是非凸的所以关于凸优化的很多理论无法使用小批量随机梯度下降是最常用的优化算法冲量对梯度做平滑冲量法是一个简单的稳定优化的算法Adam 对梯度做平滑,且对梯度各个维度值做重新调整通过实践发现,Adam 不一定比冲量法准确率高或者是收敛快,但是整体来讲 Adam 是比较稳定的,Adam 对学习率不那么敏感,使得调参相对来讲会更加容易一点范围之中(进行维度上的调整)分母中的 ε 的作用是保证分母不等于零。原创 2024-08-19 18:33:44 · 608 阅读 · 0 评论 -
23 注意力机制—BERT
在计算机视觉中比较流行,将 ImageNet 或者更大的数据集上预训练好的模型应用到其他任务中,比如小数据的预测、图片分类或者是目标检测。使用预训练好的模型(例如 word2vec 或语言模型)来抽取词、句子的特征。在更换任务之后,还是需要构建新的网络来抓取新任务需要的信息。做迁移学习的时候,一般不更新预训练好的模型。原创 2024-08-19 18:18:09 · 250 阅读 · 0 评论 -
22 注意力机制—Transformer
和 seq2seq 有点类似,不同之处在于 Transformer 是一个纯使用注意力的编码-解码器编码器和解码器都有 n 个 Transformer 块每个块里使用多头(自)注意力(multi-head attention),基于位置的前馈网络(Positionwise FFN),残差连接和层归一化编码器和解码器中各有一个自注意力,但是在编码器和解码器中传递信息的是一个正常的注意力。原创 2024-08-13 09:23:06 · 407 阅读 · 0 评论 -
21 注意力机制—自注意力
自注意力池化层将 xi 当作 key ,value query 来对序列抽取特征完全并行、最长序列为 1 、但对长序列计算复杂度高可以完全并行,和 CNN 是一样的,所以计算效率比较高最长序列为 1 ,对于任何一个输出都能够看到整个序列信息,所以这也是为什么当处理的文本比较大、序列比较长的时候,通常会用注意力和自注意力但是问题是对长序列的计算复杂度比较高,这也是一大痛点位置编码在输入中加入位置信息,使得自注意力能够记忆位置信息。原创 2024-08-13 09:14:22 · 169 阅读 · 0 评论 -
20 注意力机制—注意力机制在seq2seq
Seq2Seq 中通过编码器最后时刻的隐藏状态在编码器和解码器中传递信息注意力机制可以根据解码器 RNN 的输出来匹配到合适的编码器 RNN 的输出来更有效地传递信息在预测词元时,如果不是所有输入词元都是相关的,加入注意力机制能够使 RNN 编码器-解码器有选择地统计输入序列的不同部分(通过将上下文变量视为加性注意力池化的输出来实现)原创 2024-08-05 09:35:49 · 89 阅读 · 0 评论 -
19 注意力机制
心理学认为人通过随意线索(故意)和不随意线索(无意)选择注意点注意力机制中,通过query(随意线索)和 key(不随意线索)来有偏向性地选择输入,一般可以写作f(x)的 key 和所有的不随意线索的 key 做距离上的计算(α(x,xi),通常称为注意力权重),分别作为所有的 value 的权重这并不是一个新兴的概念,早在 60 年代就已经有非参数的注意力机制了接下来会介绍不同的权重设计。原创 2024-08-05 09:20:48 · 173 阅读 · 0 评论 -
18现代循环神经网络—seq2seq与束搜索
Seq2Seq 从一个句子生成另一个句子,机器翻译算是其中的一个应用场景Seq2Seq 使用的是编码器-解码器的架构,编码器和解码器都是 RNN将编码器最后时间隐藏状态来初始解码器隐状态来完成信息传递在“编码器-解码器”训练中,强制教学方法将**原始输出序列(而非预测结果)**输入到解码器中BLEU 是一种常用的评估方法,它通过测量预测序列和标签序列之间的 n 元语法的匹配度来衡量生成预测序列的好坏序列搜索策略包括贪心搜索、穷举搜索和束搜索。原创 2024-07-29 12:00:41 · 181 阅读 · 0 评论 -
17现代循环神经网络—机器翻译,编码器-解码器
机器翻译指的是将文本序列从一种语言自动翻译成另外一种语言使用单词级词元化时的词表大小,将明显大于使用字符级词元化时的词表大小。为了缓解这一问题,可以通过将低频次元视为相同的未知词元来解决通过截断和填充文本序列,可以保证所有的文本序列都具有相同的长度,便于以小批量的方式进行加载使用编码器-解码器架构的模型,编码器负责表示输入,解码器负责输出“编码器-解码器”架构可以将长度可变的序列作为输入和输出,因此适用于机器翻译等序列转换问题。原创 2024-07-29 11:56:19 · 67 阅读 · 0 评论 -
16现代循环神经网络—深度循环与双向循环
深度循环神经网络使用多个隐藏层来获得更多的非线性性GRU、RNN、LSTM 在结构上都是相同的,只是隐状态 H 的计算方式有区别,所以它们加深神经网络的原理都是相同的在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步和下一层的当前时间步存在许多不同风格的深度循环神经网络,如长短期记忆网络、门控循环单元或经典循环神经网络深度循环神经网络需要大量的调参(如学习率和修剪)来确保合适的收敛,模型的初始化也需要谨慎双向循环神经网络通过反向更新的隐藏层来利用方向时间信息。原创 2024-07-22 16:21:02 · 607 阅读 · 0 评论 -
15现代循环神经网络—GRU与LSTM
GRU 中引入了两个额外的门,每个门可以学习的参数和 RNN 一样多,整个可学习的权重数量是 RNN 的三倍Rt 和 Zt 都是控制单元,用来输出取值为 0~1 的数值Rt 用来衡量在更新新的隐藏状态的时候,要用到多少过去隐藏状态的信息Zt 用来衡量在更新新的隐藏状态的时候,需要用到多少当前Xt相关的信息当 Zt 全为 0 , Rt 全为 1 时,等价于 RNN当 Zt 全为 1 时,直接忽略掉当前 XtGRU 通过引入 Rt 和 Zt ,从而能够在各种极端情况之间进行调整。原创 2024-07-22 16:13:21 · 389 阅读 · 0 评论 -
14循环神经网络—RNN
对隐藏状态使用循环计算的神经网络称为循环神经网络(RNN),循环神经网络的输出取决于当下输入和前一时间的隐变量循环神经网络的隐藏状态可以捕获当前时间步序列的历史信息隐变量是用来存储历史信息和下一个历史信息的转换规则,所以在拿到过去的输入和当前的隐藏状态就能够预测当前的输出Whh 拥有一定的时序预测目的应用到语言模型中时,循环神经网络根据当前词预测下一次时刻词根据当前的输入更新当前时刻的隐藏状态就能够预测下一个时刻的输出RNN 是一个隐变量模型,隐变量是一个向量。原创 2024-07-16 10:37:45 · 258 阅读 · 0 评论 -
13 循环神经网络—序列模型,语言模型
时序模型中,当前数据跟之前观察到的数据相关自回归模型使用自身过去数据来预测未来马尔科夫模型假设当前只跟当前少数数据相关,每次都使用固定长度的过去信息来预测现在,从而简化模型潜变量模型使用潜变量来概括历史信息,使得模型拆分成两块:一块是根据现在观测到的数据来更新潜变量;另一块是根据更新后的潜变量和过去的数据来更新将来要观测到的数据内插法(在现有观测值之间进行估计)和外推法(对超出已知观测范围进行预测)在实践的难度上差别很大。原创 2024-07-16 10:12:59 · 1490 阅读 · 0 评论 -
12计算机视觉—全连接卷积与迁移学习(风格迁移)
全卷积网络首先使用卷积神经网络抽取图像特征,然后通过 1 * 1 卷积层将通道数变换为类别个数,最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸在全卷积网络中,可以将转置卷积层初始化为双线性插值的上采样样式迁移常用的损失函数由 3 部分组成:内容损失、样式损失和全变分损失内容损失使合成图片与内容图片在内容特征上接近样式损失使合成图片与样式图片在样式特征上接近全变分损失有助于减少合成图片中的噪点。原创 2024-07-10 10:56:56 · 244 阅读 · 0 评论 -
11计算机视觉—语义分割与转置卷积
与目标检测不同,语义分割可以识别并理解图像中每一个像素的内容:其语义区域的标注和预测是像素级的。与目标检测相比,语义分割标注的像素级的边框显然更加精细。然而如果输入和输出图像的空间维度相同,在以像素级分类的语义分割中将会很方便。 为了实现这一点,尤其是在空间维度被卷积神经网络层缩小后,我们可以使用另一种类型的卷积神经网络层,它可以增加上采样中间层特征图的空间维度。在标签图像中,白色和黑色分别表示边框和背景,而其他颜色则对应不同的类别。 通过上面定义的两个常量,我们可以方便地查找标签中每个像素的类索引。原创 2024-07-10 10:42:00 · 156 阅读 · 0 评论 -
10计算机视觉—物体检测算法
R-CNN是最早,也是最有名的一类基于锚框和CNN的目标检测算法Fast/Faster R-CNN持续提升性能Faster R-CNN和Mask R-CNN是在最高精度场景下的常用算法SSD通过单神经网络来检测以每个像素为中心的产生多个锚框在多段的输出上进行多尺度的检测。原创 2024-07-03 09:57:32 · 220 阅读 · 0 评论 -
9.计算机视觉—目标检测
物体检测识别图片里的多个物体的类别和位置位置通常用边缘框表示一类目标检测算法基于锚框来检测首先生成大量锚框,并赋予标号,每个锚框作为一个样本进行训练在预测时,使用NMS来去除冗余的预测。原创 2024-07-03 09:42:46 · 299 阅读 · 0 评论 -
8.计算机视觉—增广和迁移
微调通过使用在大数据上得到的预训练好的模型来初始化模型权重来完成提升精度预训练模型质量很重要微调通常速度更快,经度更高。原创 2024-06-27 09:58:31 · 296 阅读 · 0 评论 -
7.计算机视觉—硬件和训练
一台机器可以安装多个GPU在训练和预测时,我们将一个小批量计算切分到多个GPU上来达到加速目的常用切分方案有数据并行模型并行通道并行(数据+模型并行)当一个模型能用单卡计算时,通常使用数据并行拓展到多卡上模型并行则用在超大模型上。原创 2024-06-27 09:32:01 · 150 阅读 · 0 评论 -
6.深度卷积神经网络
AlexNet是更大更深的LeNet,10倍参数个数,260倍计算复杂度新进入了Dropout,ReLu,最大池化层和数据增强AlexNet赢下2012ImageNet竞赛后,标志这新的一轮神经网络热潮的开始VGG使用可重复使用的卷积块来构建深度卷积神经网络不同的卷积块个数和超参数可以得到不同复杂的变种NiN块在卷积层后 加两个1 * 1卷积层后者对每个像素增加了非线性NiN使用全集平均池化层来代替VGG和AlexNet中的全连接层不容易过拟合,更少的参数个数。原创 2024-06-18 09:42:13 · 292 阅读 · 0 评论 -
5.卷积神经网络
对全连接层使用平移不变性和局部性得到卷积层卷积层将输入和核矩阵进行交叉相关计算,加上偏移后得到输出核矩阵和偏移是可学习的参数核矩阵的大小是超参数填充和步幅是卷积层的超参数填充在周围添加额外的行/列,来控制输出形状的减少量步幅是每次滑动核窗口时的行/列的步长,可以成倍的减少输出形状核大小最为关键,填充一般是默认核减1,步幅看需求输出通道数是卷积层的超参数每个输入通道有独立的二维卷积核,所有通道结果相加得到一个输出通道结果每个输出通道有独立的三维卷积核。原创 2024-06-18 09:10:11 · 416 阅读 · 0 评论 -
4.深度学习计算
构造一个没有任何参数的自定义层#向该层提供一些数据#将层作为组件合并到构建更复杂的模型中#定义带参数的图层def __init__(self, in_units, units):#in_units输入参数 units输出参数linear = torch.matmul(X, self.weight.data) + self.bias.data#matmul函数执行矩阵乘法#使用带参数的图层构建模型。原创 2024-06-15 09:44:05 · 62 阅读 · 0 评论 -
3.多层感知机
感知机是一个二分类模型,是最早的AI模型之一它的求解算法等价于使用批量大小为1的梯度下降 批量大小为1:指在训练神经网络时,每次更新参数时只使用单个样本的数据它不能拟合XOR函数,导致第一次AI寒冬多层感知机使用隐藏层和激活函数来得到非线性模型常用激活函数是Sigmoid,Tanh,ReLu使用Softmax来处理多类分类超参数为隐藏层数和各个隐藏层大小训练数据集:训练模型参数验证数据集:选择模型超参数非大数据集上通常使用K-则交叉验证。原创 2024-06-15 09:29:01 · 227 阅读 · 0 评论 -
2.线性神经网络
线性回归是对N维输入的加权,外加偏差使用平方损失来衡量预测值和真实值的差异线性回归有显示解,一般都网络都是非线性的没有显示解线性回归可以看做是单层神经网络梯度下降通过不断沿着反梯度方向更新参数求解小批量随机梯度下降是深度学习默认的求解算法两个重要的超参数是批量大小和学习率#初始化模型参数# PyTorch不会隐式(自动)地调整输入的形状。因此,#创建了一个简单的神经网络模型 net。原创 2024-06-13 11:28:52 · 319 阅读 · 0 评论 -
1.动手学习深度学习课程安排及深度学习数学基础
首先,我们导入torch,注意,虽然它被称为pytorch,但我们应该导入torch而不是pytorch。矩阵相当于一个扭曲空间,把下图中的蓝线和绿线,扭曲到不同方向和长度。原创 2024-06-13 10:51:15 · 166 阅读 · 0 评论