【李佳辉_周报_2022.10.30】
文章目录
- 1. 本周学习主要内容
- 1.1 transformer经典论文精读
- 1.2 机器学习特征工程复习
- 1.3 pytorch实现NLP中的一些基础
- 2.下周学习内容与问题
- 3.本周重点
- 3.1 transformer精读笔记
- 3.2 词元化的一个小实验实现
- 3.3 为了更好的读代码写代码重新复习python基础与思想
1. 本周学习主要内容
- transformer经典论文精读
- NLP基础知识及实现
1.1 transformer经典论文精读
- 架构
- 公式
- 优势
1.2 机器学习特征工程复习
1.3 pytorch实现NLP中的一些基础
2.下周学习内容与问题
代办
- 2.1 继续精读经典论文
- 2.2 学习基于pytorch框架的实现
- 2.3 python基础的回顾
问题
- 2.4 NLP比CV需要更强的算力与数据
- 2.5 经典架构的数学流程与原理掌握困难
- 2.6 网上有些代码读起来比较困难
3.本周重点
3.1 transformer精读笔记
1.标题 + 作者
Transformer 开创了继 MLP 、CNN和 RNN 之后的第四大类模型 。
标题:Attention is all you need.
作者:8个来自谷歌公司的共同一作。
2.摘要内容:
sequence transduction:序列转录,指序列到序列的生成。
2.1:包括一个encoder和一个decoder的RNN或CNN架构
2.2 :表现好的序列转录在encoder与decoder中使用了attention机制
2.3 :本文提出基于attention的Transformer
2.4:实验总结了并行化的作用、减少的训练时间
2.5 :两个实验
- 英语-德语:提高2BLEU
- 英语-法语:SOTA,41.8BLEU,需要8GPUs的3.5天训练
2.6:能很好的泛化到其他任务比如CV、视频处理
3.结论
3.1 介绍了transformer模型,第一个仅使用注意力、做序列转录的模型,把之前encoder-decoder的结构换成了multi-headed self-attention
3.2 是机器翻译领域的SOTA,比其他结构训练速度快
3.3 纯注意力模型应用于非NLP任务
4 导言
4.1 提出之前序列模型常用为RNN、LSTM、GRU
4.2 RNN缺点:难以并行、容易遗忘历史信息
4.3 目前attention已经用于于一些RNN模型
4.4 本文transformer网络不再使用循环结构,而是使用纯attention、并行度高,并在较短时间达到很好的效果
5 相关工作
5.1 介绍模型结构与现有结构的关系,比如可以在NN中的局部像素和多通道,self-attention机制,memory network
5.2 transformer仅依赖于self-attention 没有使用RNN和卷积
5.3 transformer的multi-head self-attention模拟CNNs多通道输出的效果
注:self-attention是其他人提出的
6.模型(最重要的章节)
由于涉及很多NLP基础知识与公式,周报只做简单概述
6.1 介绍encoder-decoder架构和+auto-regressive in decoder
6.2 介绍encoder-decoder架构
6.3 介绍数据归一化的方法layerNorm(注意分析与BatchNorm的关系)
6.4 介绍encoder的注意力层
6.5 decoder的masked multi-head attention
6.6 position-wise feed-forward network(相当于一个MLP)
FFN:linear+Relu+linear
6.7 embeddings 和softmax
6.8 介绍positional encoding
6.9 介绍self-attention的重要性
模型结构与意义与理念
一个翻译成中文的架构图
7.transformer用于的实验
7.1 介绍使用的数据集及硬件
7.2 优化器是Adam算法
bete2常见为0.99或0.999
7.3 使用Dropout层,P drop为0.1
7.4 使用Inceptionv3
7.5 使用softmax很难趋近为1,输出值很大,才会激活为1.故softmax的输出为0.1即可
7.6 训练分数为perplexity,困惑度,log(loss)
可以更好提高accuracy 和 BLEU score
8 评论
8.1 写作技巧简单,意在简洁、清楚
8.2 transformer 不仅在NLP上表现出色,在CV和Video上也有很好的应用
8.3 最关键的attention 用了更广泛的inductive bias归置偏置。使attention没有用空间上得假设,与CNN一样可取的较好的结果
8.4 缺点:需要的数据更多、模型更大
3.2 词元化的一个小实验实现
核心代码
class Vocab: #@save
"""⽂本词表"""
def __init__(self, tokens=None, min_freq=0, reserved_tokens=None):
if tokens is None:
tokens = []
if reserved_tokens is None:
reserved_tokens = []
# 按出现频率排序
counter = count_corpus(tokens)
self._token_freqs = sorted(counter.items(), key=lambda x: x[1],
reverse=True)
# 未知词元的索引为0
self.idx_to_token = ['<unk>'] + reserved_tokens
self.token_to_idx = {token: idx
for idx, token in enumerate(self.idx_to_token)}
for token, freq in self._token_freqs:
if freq < min_freq:
break
if token not in self.token_to_idx:
self.idx_to_token.append(token)
self.token_to_idx[token] = len(self.idx_to_token) - 1
def __len__(self):
return len(self.idx_to_token)
def __getitem__(self, tokens):
if not isinstance(tokens, (list, tuple)):
return self.token_to_idx.get(tokens, self.unk)
return [self.__getitem__(token) for token in tokens]
def to_tokens(self, indices):
if not isinstance(indices, (list, tuple)):
return self.idx_to_token[indices]
return [self.idx_to_token[index] for index in indices]
@property
def unk(self): # 未知词元的索引为0
return 0
@property
def token_freqs(self):
return self._token_freqs
def count_corpus(tokens): #@save
"""统计词元的频率"""
# 这⾥的tokens是1D列表或2D列表
if len(tokens) == 0 or isinstance(tokens[0], list):
# 将词元列表展平成⼀个列表
tokens = [token for line in tokens for token in line]
return collections.Counter(tokens)
3.3 为了更好的读代码写代码重新复习python基础与思想
【李佳辉_周报_2022.10.30】相关推荐
- 【李佳辉_周报_2022.10.9】
文章目录 1. 本周学习主要内容 1.1 机器学习的复习 1.2 机器学习模型部署 1.3 数字信号处理 2.本周学习体会与问题 3.下周学习内容 4.本周重点 4.1 AutoML的思想与代码复现 ...
- 【李佳辉_周报_2022.10.23】
文章目录 1. 本周学习主要内容 1.1 Transformer和Bert 1.2 机器学习模型部署 1.3 基于DQN的强化学习算法 1.4 机器学习特征工程的复习 2. 所遇到问题及代办 3.本周 ...
- 【李佳辉_周报_2022.10.16】
文章目录 1. 本周学习主要内容 1.1 NLP基础 1.2 机器学习模型部署 2. 所遇到问题及代办 3.本周重点 3.1 自然语言处理 3.1.1 主要应用领域 3.1.2 word2vec 3. ...
- 【李佳辉_周报_2022.10.2】
文章目录 1. 本周学习主要内容 1.1 深度学习方面 1.2 信号处理与Matlab实现 1.3 机器学习基础的回顾 2. 下周学习内容 3. 本周重点知识 3.1 Kaggle医学影响图像识别案例 ...
- 【李佳辉_周报_2022.9.25】
2022.9.19-2022.9.25学习记录 1. 本周总结 1.1 深度学习方面 1.2 脑电方面 2. 下周学习内容 3. 本周学习难点与重点 3.1 深度学习 3.1.1 数据格式转换 3.1 ...
- 【李佳辉_周报_2022.9.18】
文章目录 1. 本周学习主要内容 1.1 深度学习方面 1.2 EEG方面 1.3 难点 2. 下周学习内容 3. 本周重点知识 3.1 深度学习 3.1.1 GoogLeNet 3.1.2 ResN ...
- 【李佳辉_周报_2022.9.11】
2022.9.5-2022.9.11学习记录 1. 本周总结 1.1 深度学习方面 1.2 脑电方面 2. 下周学习内容 3. 本周学习难点与重点 3.1 深度学习算法 3.2 EEG学习记录 3.3 ...
- 背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox
背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox 原文:背水一战 Windows 10 (30) - 控件(文本类): AutoSuggestBox [源码 ...
- redis的redis.config文件配置与内容+10.30日之前的总结
参考博客:redis.conf的一些配置+密码的设置(mac)+个人总结_雾喔的博客-CSDN博客_redis密码配置文件 这个是初始的redis.config的内容 # Redis configur ...
最新文章
- 实现统计一个字符串中的每个单词出现的次数--基于Go语言
- Oracle 11G RAC:生产环境下架构
- 5.1基于JWT的认证和授权「深入浅出ASP.NET Core系列」
- hashlib模块使用详情
- 2_3 ProxyMode.cpp 代理模式
- 从架构设计、部署方式、使用方法、应用场景等方面,比较tfs、hdfs、fastdfs、Tachyon的异同
- 1分钟了解区块链的本质
- 前端学习(2878):原生js模块化+发送弹幕和重置弹幕
- 目标检测(一):背景差分法
- Atitit 编程语言原理与概论attilax总结 三大书籍总结
- Native Instruments Maschine 2 v2.14.7 WiN-MAC 节奏音乐制作软件含拓展
- local class incompatible: stream classdesc serialVersionUID = -3129896799942729832, local class seri
- html如何设置超大字符集,[转载]【教程】CJk超大字符集使用方法
- CNCC2020丨5G边缘智能与智慧城市论坛
- unicode转中文 中文转unicode的简单方式
- 【互联网寒冬】经历裁员,拿20W被迫去大厂
- 机器视觉光源选择方案
- 《Going Deeper with Convolutions》阅读笔记
- [软件人生]人生强硬也要懂得弯折——谈人性的两面
- 基于SpringBoot的迷你商城系统,附源码!
热门文章
- mnist手写数字模型训练、保存、加载及图片预测
- kotlin 原生字符串输出三个引号
- 如何生成EI检索报告
- 淘宝客导购产品设计(二)
- 自动阅读是骗人的吗?新手一定要看,避免入坑
- Android联网失败报错:java.io.IOException: Cleartext HTTP traffic to xxx.xxx.xxx.xxx not permitted
- 白噪声检验python_python 加一个白噪声跟老齐学Python之Python安装
- 文件包含漏洞—allow_url_fopen和allow_url_include详解
- matlab双线性变换切比雪夫2,语音信号滤波去噪——使用双线性变换法设计切比雪夫II型.doc...
- (练习篇)萤火虫esp32与小爱音响---实现笔记本电脑唤醒