李宏毅机器学习笔记18

目录

摘要

Abstract

[1.Self attention](#1.Self attention)

输入是什么

输出是什么

[2.Self attention如何运作](#2.Self attention如何运作)


摘要

本篇文章继续学习李宏毅老师2025春季机器学习课程,学习内容是Self attention相关概念及其计算方法。

Abstract

This article continues the study of Prof. Hung-yi Lee's 2025 Spring Machine Learning Course , focusing on the Self-attention mechanism, related concepts, and its computational methods.

1.Self attention

输入是什么

之前我们学习的network的输入都是一个向量,假设遇到更复杂的问题,我们的输入是一排向量,而且输入的向量数目也可能改变,这种时候我们如何处理?

用文字处理作为例子,每个句子的长度都不同,如果把句子里的每一个词汇描述成向量,那我们的输入就会变成不固定数目的一组向量,将词汇变成向量有很多种方法,如上图所示的one-hot encoding,word embedding等。

声音处理也可以作为例子,一段声音讯号其实是一排向量,把一段声音取一个范围(windows),把范围内的资讯描述成一个向量(frame),要处理整个声音就把windows向右挪动。

输出是什么

第一种可能是,每一个向量有一个对应的输出,假设输入四个向量,输出可能有四个数值或者是class,在文字处理上可能会用到,例如词性标注等

第二种可能是,我们只需要一个输出,无论输入多少个向量,输出只有一个,例如sentiment analysis(分析句子情感是正面或负面),或者是语言辨别,判断是谁说的话等

还有第三种可能,我们不知道输出多少,由机器自行判断。输入可能有N个,输出则不固定,例如翻译句子,语言转变为文字等

2.Self attention如何运作

我们着重学习第一种类型,即输入每有一个向量,则有一个对应的输出。对句子中的每一个向量都给它一个label。例如在词性标注时,用fully-connected network处理,但此方法有一个问题,如上图中两个部分输入都为"saw"时,他们的输出是一致的,与我们期望的一个"v"(动词),一个"n"(名词)不相符。

为了避免上面这些问题,我们需要联系上下文,所以可以给FC设置窗口与,将附近的其他向量一起作为输入,增加上下文联系。但是这样仍有一个问题,假设我们需要考虑整个句子,此时窗口无法起作用,这时就需要用到Self attention。

Self attention会把句子的词汇全部作为输入,输出有几个向量,就输出几个向量。他的输出会考虑句子中的每一个输入,再把处理后的输出作为FC的输入,这样FC就不是只考虑部分,而是考虑整个句子。

Self attention不是只能用一次,可以用一次Self attention输入FC后再用一次Self attention,再丢到另一个FC中,最后输出结果。

Self attention的每一个输出b都是考虑了每一个输入a的。

Self attention首先找到a1相关的向量,对于所有输入的向量判断他们的关联度

关联度如何计算?常见的做法有Dot-product,将输入的两个向量分别乘上不同的矩阵,假设得到q,k两个向量,然后做点乘;另一种方法是Additive,同样将输入的两个向量分别乘上不同的矩阵,假设得到q,k两个向量,将他们相加后,过一个function再过一个transformer。

用Dot-product计算a1与其他输入的关联度,计算后需要经soft-max处理,得到

根据关联性抽取重要资讯,将每个输入a乘上得到新的向量v,将v与相乘,再将所有的向量加起来,谁的关联性越高,最终的b1就越接近谁的向量v。

相关推荐
深蓝海拓17 小时前
PySide6从0开始学习的笔记(四)QMainWindow
笔记·python·学习·pyqt
sheeta199817 小时前
LeetCode 每日一题笔记 日期:2025.12.15 题目:2110.股票平滑下跌阶段的数目
笔记·算法·leetcode
智者知已应修善业1 天前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
张人玉1 天前
百度 AI 图像识别 WinForms 应用代码分析笔记
人工智能·笔记·百度
xqqxqxxq1 天前
背单词软件技术笔记(V1.0核心版及V2.0随机挖字母)
笔记
YJlio1 天前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
xqqxqxxq1 天前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
yuxb731 天前
Kubernetes核心组件详解与实践:controller
笔记·kubernetes
受之以蒙1 天前
Rust 与 dora-rs:吃透核心概念,手把手打造跨语言的机器人实时数据流应用
人工智能·笔记·rust
2401_834517071 天前
AD学习笔记-36 gerber文件输出
笔记·学习