李宏毅机器学习课程
文章平均质量分 53
总结课程内容和记录想法
风过无痕0230
If you didn't code, you didn't learn.
展开
-
7.0 BERT入门
BERT(Bidirectional Encoder Representations from Transformers)整体上是由多层Transformer Encoder堆叠形成,架构上没有太大的新意,所谓的“Bidirectional”其实指的也就是Transformer中的self-attention机制。使用预训练(pre-train)好的BERT模型做一些下游任务(Downstream tasks)的时候,对参数做一些微调(fine-tune),可以取得很好的效果。原创 2023-06-17 15:12:07 · 148 阅读 · 0 评论 -
6.0 GAN入门
输入是分布,输出也是分布的网络结构。其中,输入包含另外的条件x的,称为条件生成(conditional generation);输入仅有下面的随机分布的,称为无条件生成(unconditional generation)。为什么输入要采用分布?比如图中的动漫人脸生成任务,输入要求有红眼睛,这样对应的输出是不确定的,具有随机性。也就是说相同的输入可能有不同的输出,所以输入也得具有随机性。原创 2023-06-09 20:19:00 · 99 阅读 · 0 评论 -
2.5 Batch Normalization
分别表示所有样本的均值向量和标准差的向量,计算某个单个样本的标准化值整体进行计算即可。可以通过调节参数使得均值和方差不为0和1,如下图的。的值进行标准化处理,变到同一scale,这样损失函数的等高线图就会变得像右图:不同维度梯度下降的速度接近,梯度下降的速度会比较快。的范围比较大,对应的梯度比较陡峭。这样不同的参数变化情况对于梯度下降是不利的,会导致梯度下降的速度缓慢。来自于训练过程,具体来说是在批次的训练过程中取移动平均,最终的值作为测试过程对应层的均值和方差。的范围比较小,对应的梯度比较平滑,原创 2023-06-03 21:06:29 · 39 阅读 · 0 评论 -
5.1 常见的tips
集束搜索,作用是寻找可能性最大的生成序列,相对于穷举来说,计算量大大缩小(穷举是指数级,BS是常数级)。产生的结果可能不是最优,但一般来说足够好了。参数是集束的宽度B,B越大,考虑的可能性越多,计算量就越大。BS每次会选择可能性最大的B个结果做为候选,B=1时,是贪婪搜索,即每次选择可能性最大的一个向量,贪婪搜索的结果不好。具体看吴恩达的视频。原创 2023-05-31 21:10:43 · 52 阅读 · 1 评论 -
5.0 Transformer
输入一个序列,输出相同长度的序列。Encoder的输出向量生成K和V,Decoder本身产生Q,这样共同形成Cross Attention机制,产生向前传播的向量序列。Seq2seq指的是输入是序列,输出也是序列的模型,输出序列的长度由模型自身决定。与Encoder的区别是第一个多头注意力是加掩码(mask)的,中间多一个Cross Attention的部分。一开始输入start向量,然后每次产生的结果做为下一个输入,当输出向量代表end时,输出结束。加mask的原因是保证当前的输出只受之前输入的影响。原创 2023-05-15 21:58:08 · 77 阅读 · 1 评论 -
4.0 自注意力机制(Self-attention)
之所以不用独热向量表示单词,是因为它没办法体现词汇间的关系,而词嵌入向量具备语义信息,比如同类词(苹果和梨)的向量距离会比较近。同时,自注意机制的输出向量是并行计算的,不像RNN前后依赖,所以训练速度快。有一些人工设计的位置编码,每个向量加上该位置的位置编码,从而把位置的信息也包含进去。α(attention score)为k和q的内积,α’是该节点的所有α值对应的softmax值,b是所有节点v值的加权平均。输入一定长度的向量序列,输出同样数量的向量,并且输出的向量包含了该位置上下文的语义信息。原创 2023-05-07 13:44:00 · 644 阅读 · 0 评论 -
3.0 CNN简介和常见训练技巧
类似将图片缩小不会改变图片表示的对象这个原理,池化层将输入进行缩小,可以减少后面训练的计算量,一般接在卷积层后面。最常用的做法是最大池化。一般为黑白(一个channel)或者彩色(三个channel)的图片,下面假设输入为三个通道。交叉验证(Cross Validation)和集成(Ensemble)可以提高模型的表现。常用的数据增强(Augmentation)方法。也常会对测试数据进行增强。原创 2023-04-21 21:48:46 · 237 阅读 · 0 评论 -
2.4 classification简介
分类:输出层有一个(二分类)或者多个节点,通过softmax激活函数将该层的输入转换成概率。二分类是多分类最简单的形式,使用的sigmoid激活函数就是softmax类别为2的情况。分类问题的损失函数为交叉熵损失,是由极大似然估计推导而来的。这里的y为输出层的输入,y’为转化后的概率值。回归:输出层只有一个节点,返回数值。原创 2023-04-18 22:05:14 · 106 阅读 · 0 评论 -
2.3 自适应学习率(Adaptive learning rate)
同时,在训练的不同阶段,学习率也可以有所不同,比如早期学习率可以更大,后期学习率可以变小。η同样是固定的,但σ受到当前梯度的影响是可以调节的,不像前面RMS那样受各个update的梯度影响相同。很多时候训练陷入瓶颈,损失不再下降,不是因为陷入了局部最小值,大部分情况下是在局部最小值附近震荡(学习率太大),这个时候应该通过降低学习率的方式,从而能够继续往最小值方向下降。这种方法η是固定的,总体上在梯度小的地方,σ也比较小,对应的学习率步长比较大;梯度大的地方,σ比较大,学习率步长比较小。原创 2023-04-18 22:04:56 · 667 阅读 · 0 评论 -
2.2 批次梯度下降和动量
梯度下降加动量的好处是可以帮助逃离临界点,而且梯度下降更加平稳。原创 2023-04-17 17:39:52 · 37 阅读 · 1 评论 -
2.1 鞍点和局部最小值
但实际训练中参数很多的情况下,几乎不会陷入局部最小值,所以这里不做总结。原创 2023-04-17 17:11:33 · 52 阅读 · 1 评论 -
2.0 一般指南
机器学习一般指南原创 2023-04-12 21:32:36 · 39 阅读 · 1 评论 -
1 深度学习介绍
一、机器学习的本质:找函数二、函数的类型回归分类结构学习(输出有结构的结果,比如图片或者文本)三、得到函数的过程:定义一个含有未知参数的函数定义损失函数优化:用梯度下降找到使损失函数最小的参数值如果函数表现不好,寻找新的函数,重复1-3四、引出神经网络结构和深度学习的概念原创 2023-04-07 23:51:27 · 58 阅读 · 1 评论