随笔分类 - 跟着李沐学ai
开新坑了,跟着牧神学ai,希望能坚持下去,课程规划,一周学3节。
摘要:终于来到transformer了,之前的几个东西都搞的差不多了,剩下的就是搭积木搭模型了。首先来看一下transformer模型,OK好像就是那一套东西。 transformer是纯基于注意力机制的架构,但是也是之前的encoder-decoder架构。 层归一化 这里用到了层归一化,和之前的批量归
阅读全文
摘要:这个多头attention确实挺搞的,这个东西绕来绕去,看torch的文档也看不懂,看源码也迷迷糊糊的,可能我的智商就是不够吧。。。枯了 论文里的公式求法,可以看到它因为是self-multiheadsAttention。多头自注意力机制,所以它这里的Q K V 实际上是同一个东西,也就是最后一维都
阅读全文
摘要:因为自己开始了transformer的学习,但transformer的学习还需要一点卷积里的基础知识。 这里主要还是说学习一个ResNet。 在这张图里,五角星代表了最优位置。对于非嵌套的函数,虽然函数变大变复杂了,但其实还是在远离最优点。但是对于嵌套的函数,就可以做到越来越解决最优点,至少不会出现
阅读全文
摘要:批量归一化实际上也是一个层,可以直接调用torch的api。 我们在训练顶部的层,实际上干的就是在拟合底部层。所以顶部的层会收敛的很快,但是底部的层数据变化后,顶部又要重新进行训练。 一个简单的实现就是将分布的均值和方差进行固定。这个实现也很简单。 \[ \mu_{B}=\frac{1}{|B|}
阅读全文
摘要:之前在seq2seq算法上浪费了太多时间了。。。搞得本来早就应该进行Attention被拖到现在,真实无语了,被自己的愚蠢给吓到了。 What is Attention 我个人的理解是Attention是一种重要度区分机制。 注意力使得我们关注的东西具有了区分度,也就是说,原本没有差异的一组事物,被
阅读全文
摘要:编码器解码器架构 编码器-解码器架构就是构造一个编码器,通过编码器来获得解码器的初始state。这个在架构在很多情况下都可以使用,比如在Seq2Seq算法里。比如在机器翻译领域,通过编码器把要翻译的句子编码为一个初始状态,然后用解码器对这个状态进行解码,解码得到需要的翻译句子。 class Enco
阅读全文
摘要:这里就不手动实现了,因为其实大同小异,把代码看懂了,下次要用的时候直接抄就行了。 vocab class Vocab: def __init__(self, tokens=None, min_freq=0, reserved_tokens=None): counter = count_corpus(
阅读全文
摘要:import torch import torch.nn as nn import torch.nn.functional as F import math class LSTM(nn.Module): def __init__(self, indim, hidim, outdim): super(
阅读全文
摘要:GRU说白了就是加了两个门,这两个门控制最终隐藏状态的输出,其中还是那一套换汤不换药。 R是重置门,决定上一个时间步ht−1ht−1是否要被重置,如果R元素全为0,很显然我们就丢掉了上一个时间步的h信息。 S是更新门,决定了这个时刻的候选隐藏状态h′th′t应该怎么输出。 注意
阅读全文
摘要:导入数据并设定随机数种子 import torch import torch.nn as nn import numpy as np import random import pandas as pd import matplotlib.pyplot as plt from d2l import t
阅读全文
摘要:导入数据 import torch import torch.nn as nn from torch.utils import data import torchvision from torchvision import transforms import numpy as np import p
阅读全文
摘要:为什么softmax 里面要用交叉熵?这个问题之前困扰我挺久的,但这两篇博文完美解答了我的疑惑。 交叉熵、相对熵和负对数似然的理解 - 最大的梦想家的文章 - 知乎 https://zhuanlan.zhihu.com/p/268171298 Kullback-Leibler(KL)散度介绍 - 灰
阅读全文
摘要:权重衰减 使用均方范数作为硬性限制 但我们最小化 loss 的时候,需要限制权重 w 的大小,越小的θ 意味着更强的正则项。 但实际上,我们不会这么做的,我们只是在做损失函数时候,加入了 ∥w∥2 ,就像下面做的那样。 其中$\lambd
阅读全文
摘要:导入数据 train_content = pd.read_csv("./house_prices/data/train.csv") test_content = pd.read_csv("./house_prices/data/test.csv") train_content.head() 特征工程
阅读全文