深度学习笔记
文章平均质量分 57
记录和分享学习深度学习课程过程中的笔记和代码
闪闪发亮的小星星
这个作者很懒,什么都没留下…
展开
-
llama3入门训练和部署
使用:在这里插入图片描述。原创 2024-05-23 10:47:43 · 1316 阅读 · 0 评论 -
【动手学深度学习】9.6 编码器和解码器
正如我们在 9.5节中所讨论的, 机器翻译是序列转换模型的一个核心问题, 其输入和输出都是长度可变的序列。为了处理这种类型的输入和输出, 我们可以设计一个包含两个主要组件的架构: 第一个组件是一个编码器(encoder): 它接受一个长度可变的序列作为输入, 并将其转换为具有固定形状的编码状态。第二个组件是解码器(decoder): 它将固定形状的编码状态映射到长度可变的序列。这被称为编码器-解码器(encoder-decoder)架构, 如 图9.6.1 所示。原创 2024-03-29 18:12:25 · 373 阅读 · 0 评论 -
【动手学深度学习-pytorch】 9.4 双向循环神经网络
将前向隐状态 和反向隐状态连接起来, 获得需要送入输出层的隐状态H在双向循环神经网络中,每个时间步的隐状态由当前时间步的前后数据同时决定。双向循环神经网络与概率图模型中的“前向-后向”算法具有相似性。双向循环神经网络主要用于序列编码和给定双向上下文的观测估计。由于梯度链更长,因此双向循环神经网络的训练代价非常高。双向层的使用在实践中非常少,并且仅仅应用于部分场合。例如,填充缺失的单词、词元注释(例如,用于命名实体识别) 以及作为序列处理流水线中的一个步骤对序列进行编码(例如,用于机器翻译)原创 2024-03-29 17:33:56 · 765 阅读 · 0 评论 -
【动手学深度学习-pytorch】-9.3深度循环神经网络
到目前为止,我们只讨论了具有一个单向隐藏层的循环神经网络。其中,隐变量和观测值与具体的函数形式的交互方式是相当随意的。只要交互类型建模具有足够的灵活性,这就不是一个大问题。然而,对一个单层来说,这可能具有相当的挑战性。之前在线性模型中,我们通过添加更多的层来解决这个问题。而在循环神经网络中,我们首先需要确定如何添加更多的层, 以及在哪里添加额外的非线性,因此这个问题有点棘手。事实上,我们可以将多层循环神经网络堆叠在一起, 通过对几个简单层的组合,产生了一个灵活的机制。特别是,数据可能与不同层的堆叠有关。原创 2024-03-29 17:02:47 · 555 阅读 · 0 评论 -
【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)
在初始化函数中, 长短期记忆网络的隐状态需要返回一个额外的记忆元, 单元的值为0,形状为(批量大小,隐藏单元数)。因此,我们得到以下的状态初始化。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。请注意,只有隐状态才会传递到输出层, 而记忆元不直接参与输出计算。长短期记忆网络,包含三个门:输入门、忘记门和遗忘门。其中遗忘门用于重置单元的内容,通过专用的机制决定什么时候记忆或者忽略状态中的输入。长短期记忆网络的隐藏层输出包括“隐状态”和“记忆元”。原创 2024-03-29 16:47:27 · 1046 阅读 · 0 评论 -
【动手学深度学习-pytorch】9.1现代循环神经网络-门控循环单元(GRU)
门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。这些机制是可学习的,并且能够解决了上面列出的问题。例如,如果第一个词元非常重要, 模型将学会在第一次观测之后不更新隐状态。同样,模型也可以学会跳过不相关的临时观测。最后,模型还将学会在需要的时候重置隐状态。下面我们将详细讨论各类门控。原创 2023-09-20 16:39:49 · 673 阅读 · 0 评论 -
【动手学深度学习-pytorch】9.2长短期记忆网络(LSTM)
ot 控制是否让输出,是否要进行重置。原创 2023-09-05 18:53:18 · 330 阅读 · 0 评论 -
【动手学深度学习-pytorch】8.2循环神经网络-文本预处理
本节中,我们将解析文本的常见预处理步骤。这些步骤通常包括:将文本作为字符串加载到内存中。将字符串拆分为词元(如单词和字符)。建立一个词表,将拆分的词元映射到数字索引。将文本转换为数字索引序列,方便模型操作。原创 2023-09-19 16:15:15 · 407 阅读 · 0 评论 -
【动手学深度学习-pytorch】-4.6暂退法(Drop out)
好的模型应该是简单的模型,能防止过拟合。简单性的另一个角度是平滑性,即函数不应该对其输入的微小变化敏感。加入噪声能在输入-输出映射上增强平滑性。在暂退法(Drop out )中增加噪声的方式是:在前向传播过程中,计算每一内部层的同时注入噪声。将概率p的值置为0, 其他值修改为 h/(1-p),保证期望前后不变。5.在测试时不用使用dropout. 我们在测试时不用暂退法。给定一个训练好的模型和一个新的样本,我们不会丢弃任何节点,因此不需要标准化。原创 2023-08-01 18:20:30 · 763 阅读 · 0 评论 -
【动手学深度学习-pytorch】8.1序列模型-马尔可夫和潜变量
预测下一个点效果还不错,长短期效果不一定。tao 不能太大 也不能太小。原创 2023-08-21 10:54:53 · 85 阅读 · 0 评论 -
8.6 循环神经网络的简洁实现
高级API提供了循环神经网络的实现。我们构造一个具有256个隐藏单元的单隐藏层的循环神经网络层rnn_layer。事实上,我们还没有讨论多层循环神经网络的意义(这将在 9.3节中介绍)。现在仅需要将多层理解为一层循环神经网络的输出被用作下一层循环神经网络的输入就足够了。设置一个单层 256个隐藏单元的神经网络 rnn单隐藏层, 256个隐藏单元隐藏层数定义:隐藏层数指的是神经网络中介于输入层和输出层之间的层级数量。作用:增加隐藏层数可以帮助神经网络学习更复杂的模式和特征,提高模型的表示能力。原创 2024-03-29 15:00:53 · 638 阅读 · 0 评论 -
【动手学深度学习-pytorch】8.5 循环神经网络的从零开始实现
转换输入的维度, 以获得形状为(时间步数,批量大小,词表大小)的输出,这将使我们能够更方便地通过最外层的维度, 一步一步地更新小批量数据的隐状态。>当训练语言模型时,输入和输出来自相同的词表循环神经网络模型通过inputs最外层的维度实现循环, 以便逐时间步更新小批量数据的隐状态H最外层为时间步,与上面的转置相关输出 output 和隐状态我们可以看到输出形状是(时间步数批量大小,词表大小), 而隐状态形状保持不变,即(批量大小,隐藏单元数)。预热(warm-up)期。原创 2024-03-29 10:58:18 · 741 阅读 · 0 评论 -
8.4 循环神经网络
对隐状态使用循环计算的神经网络称为循环神经网络(RNN)。循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息。循环神经网络模型的参数数量不会随着时间步的增加而增加。我们可以使用循环神经网络创建字符级语言模型。我们可以使用困惑度来评价语言模型的质量。原创 2024-03-28 14:34:25 · 395 阅读 · 0 评论 -
循环神经网络之语言模型和数据集
读取长序列的主要方式是随机采样和顺序分区。在迭代过程中,后者可以保证来自两个相邻的小批量中的子序列在原始序列上也是相邻的。在给定这样的文本序列时,语言模型(language model)的目标是估计序列的联合概率。齐普夫定律支配着单词的分布,这个分布不仅适用于一元语法,还适用于其他。通过拉普拉斯平滑法可以有效地处理结构丰富而频率不足的低频词词组。元语法通过截断相关性,为处理长序列提供了一种实用的模型。长序列存在一个问题:它们很少出现或者从不出现。语言模型是自然语言处理的关键。原创 2024-03-28 10:58:11 · 378 阅读 · 0 评论 -
循环神经网络之文本预处理
来源: 动手学深度学习对于序列数据处理问题,我们在 8.1节中 评估了所需的统计工具和预测时面临的挑战。这样的数据存在许多种形式,文本是最常见例子之一。例如,一篇文章可以被简单地看作一串单词序列,甚至是一串字符序列。本节中,我们将解析文本的常见预处理步骤。这些步骤通常包括:1.、将文本作为字符串加载到内存中。2.将字符串拆分为词元(如单词和字符)。3.建立一个词表,将拆分的词元映射到数字索引。原创 2024-03-27 16:30:59 · 318 阅读 · 0 评论 -
循环神经网络之序列模型
我们将这个序列转换为模型的特征-标签(feature-label)对。原创 2024-03-27 14:55:38 · 604 阅读 · 0 评论 -
P122 神经网络压缩Network compression-purning
解决办法:修剪掉的weight ,设为0 ,这样能够进行GPU计算。为解决这个问题,进行微调,每次只减一点参数,重复多次。使得最后修剪后的模型跟原来的模型差别不大。问题:进行过修剪后不规则的网络,pytorch难以实现,也无法进行矩阵计算,在GPU上无法加速。大的network 可以看作包含很多小的network。为什么不直接train 小的 network。大乐透假说是真是假,未来等待更多的验证。在 边缘设备上跑时,模型太大,跑不动。删减以后,正确率有影响会下降。为什么大的好train?原创 2024-01-12 11:14:40 · 273 阅读 · 0 评论 -
P114 增强学习 RL ---没懂,以后再补充
sample: 如 70% 的概率向左 20%的概率向右 10% 的概率开火不是left 分数最高,就直接向左。而是随机sampletotal reward (return) R 就是优化的目标,分数越高约好。原创 2024-01-11 18:33:57 · 116 阅读 · 0 评论 -
domain adapation
假设网络一共十层,前5层的作用是 feature extractor, 后5层的作用是 classifier。目标,通过extractor 后,黑白数字 和彩色数字的 特征分布相似。分布也不一样,比如 source domain 是黑白,target domain 为彩色。使用source data 训练一个模型,然后使用 target data 微调该模型。假设测试资料和训练资料分布不一样, 训练为黑白数字,测试为彩色数字时,识别率很低。注意不能过拟合,只能对一些target data 进行训练。原创 2024-01-09 16:30:22 · 360 阅读 · 0 评论 -
P101 adversial attack 对抗攻击- 体现AI的不可靠
x 与 x0 在一定误差内,两者之间的loss 越大越好对抗攻击是指利用计算机系统或人工智能模型的弱点,通过修改输入数据,使得系统产生错误的结果或分类,而这种修改又对人类观察者来说几乎是无法察觉的。对抗攻击的目的在于欺骗或误导机器学习模型,使其在处理经过微小修改的输入数据时产生错误的输出。关键点:攻击类型:梯度攻击: 通过计算模型对输入数据的梯度,并对输入数据进行微小的修改,使模型产生错误的分类或预测。白盒攻击: 攻击者完全了解目标模型的结构和参数。原创 2024-01-09 15:44:59 · 398 阅读 · 0 评论 -
P60 生成式对抗网络GAN -生成器效能评估与条件式生成
scratch gan 可以训练温习。GAN 生成一段文字,很困难。原创 2024-01-05 18:57:26 · 395 阅读 · 0 评论 -
P59 生成式对抗网络GAN-理论介绍 Theory behind GAN
Normal Distribution 的数据 经过 Generator 后生成分布更加复杂的PG.真实数据的分布为 Pdata , 希望 PG和Pdata 越近越好LOSS 是 两者之间的分布距离问题: 如何计算 divergence?原创 2024-01-03 18:59:26 · 544 阅读 · 1 评论 -
HW06 GAN来生成卡通人物头像- simple
生成对抗网络(GAN)是最近十年来比较火爆的技术之一,被誉为21世纪最有趣的创想。GAN作为生成网络,自然是可以生成诸多形式的数据,这些数据甚至是现实世界中不曾存在的。例如,最近非常火爆的换脸技术,或者是称为DeepFake,就是GAN的杰作(当然不可能是最原始的GAN),能以假乱真的更换图片视频中的人的脸,因此这项技术也经常被用于各种犯罪(懂的都懂~)。原创 2024-01-03 17:23:29 · 1007 阅读 · 1 评论 -
为什么要设置 torch.backends.cudnn.deterministic backends.cudnn.benchmark
【代码】为什么要设置 torch.backends.cudnn.deterministic backends.cudnn.benchmark。原创 2023-12-25 16:18:48 · 678 阅读 · 0 评论 -
P73 bert奇闻
多语言翻译。原创 2023-12-22 18:59:24 · 720 阅读 · 0 评论 -
HW4 Speaker classification-SIMPLE (TRANSFORMER)
【代码】HW4 Speaker classification-SIMPLE (TRANSFORMER)原创 2023-12-22 17:58:11 · 436 阅读 · 0 评论 -
HW03 -实物图像识别-改进:图像增强、网络架构,K折交叉验证
修改模型架构或者进行图像增强。原创 2023-12-21 18:39:11 · 412 阅读 · 0 评论 -
hw03-食物图像识别-simple
【代码】hw3-simple。原创 2023-12-21 17:26:48 · 451 阅读 · 0 评论 -
HW02-语音识别
【代码】HW02-语音识别。原创 2023-12-20 17:32:35 · 1402 阅读 · 0 评论 -
P71自监督式学习
bert 分化成各种各样的任务 (fine-tune)bert 可用来完成各种各样的任务。命名都以芝麻街的角色命名。原创 2023-12-20 09:46:22 · 361 阅读 · 0 评论 -
P58 生成式对抗网络(GAN)
x 和 z 同时作为 network的输入z服从一定的简单分布生成复杂分布的y。原创 2023-12-19 17:35:13 · 576 阅读 · 0 评论 -
P51 各式各样的神奇的自注意力机制
当input sequence 很长时,计算量特别大2. stride attention如看两个间隔一个, 或者看一个间隔一个3. global attention所有的 attention 变形一起上直接估计在 atteontion matrix 里哪些位置数值大,哪些小,小的直接设为0选择有代表性的KCNN : 长sequence 变成 短 sequenceLinformerQ K 维数需要一样,V不一定转变计算顺序 矩阵相乘的顺序,计算量不一样原创 2023-12-19 15:22:28 · 360 阅读 · 0 评论 -
P40 Transformer
语法剖析一个样本有多个类别归属机器自己决定输出几个东西,输出的长度为多少。原创 2023-12-19 11:40:31 · 416 阅读 · 0 评论 -
P48类神经网络训练不起来怎么办- BatchNormalization
z的数值范围也不一样,也要进行归一化。用训练时的 mu sigma。原创 2023-12-18 18:02:48 · 363 阅读 · 0 评论 -
P40Recurrent Neural Network
input gate 控制输入是否能够传递进去,当 input gate 为0时, f*g 为零,没有能够输入进去。forget gate 是相反的,为0时代表遗忘,为1时代表能够通过。输入*weight = 各个gate输入值。正向和反向的输出结果,都扔到输出层。4个input 和1个output。好处: 比单向的看的范围看的更广。c 代表memory 中的值。输入同时考虑 c h x。原创 2023-12-18 17:38:54 · 359 阅读 · 0 评论 -
P38 自注意力机制
针对输入为大小可变的多维向量,怎么处理?输入为一堆向量,可以是文字, 可以是语音,可以是graph输出也是多样的。原创 2023-12-18 15:46:45 · 793 阅读 · 0 评论 -
P21 卷积神经网络CNN
由于上述限制,CNN的bias 比较大,用在图像中,影响不大。如果用在其他方面,要注意一下。convolution - pooling …flatten 后扔进全连接里。逐步限制 neuron的弹性, 感受野限制看的范围,参数共享限制参数。当下算力够的情况下,很多人不用pooling。pooling的目的是降低计算量。原创 2023-12-15 16:26:44 · 166 阅读 · 0 评论 -
P21 类神经网络训练不起来怎么办- 自动调整学习率 Adapative learning rate
learnign rate 随时间的变化情况。学习率除以 梯度的方差。原创 2023-12-14 18:34:13 · 108 阅读 · 0 评论 -
P20类神经网络训练不起来怎么办?- 批次和动量
从物理角度,有动量的话,不会停留在鞍点处。原创 2023-12-14 17:21:09 · 92 阅读 · 0 评论 -
P19 类神经王力训练不起来怎么办-局部最小值与鞍点
* 怎么判断梯度为0 的情况,是局部最小值还是鞍点?通过hessian 矩阵判断。求hessian 的特征向量和特征值。特征值有正有负,则为鞍点,特征值为正,则为局部最大点,特征值为负,则为局部最小点。找的负的特征值,梯度下降,沿着负特征值对应的特征矩阵的方向更新参数。实际情况中,真正的局部最小值其实很少。2. 不用害怕 sddle point。原创 2023-12-14 16:16:50 · 48 阅读 · 0 评论