lec1 介绍

机器学习任务

  • 分类(classification): 将实例数据划分到合适的类别中。例如 判断网站是否被黑客入侵(二分类 ),手写数字的自动识别(多分类),多目标分类(多分类)。
  • 回归(regression): 主要用于预测数值型数据。例如: 股票价格波动的预测,房屋价格的预测等。建模和分析变量之间的关系。找函数,将输入转为数值输出就是回归。
  • 识别:如把语音识别成文字
  • 图片降噪
  • anomaly detection异常检测:如发现网络活动中的异常操作
  • generation:生成
  • decision making:机器人做什么反应和动作

性能评估

这里MAE其实就是|y-f(x)|实际值与预测值差的绝对值,只有不相等时为1

image-20241029222508023

学习的种类

  1. 有监督学习:给输入x,经过f,输出y
    1. 分类:y是离散的
    2. 回归:y是连续的(预测股市收盘价,image2text,video2text)
  2. 无监督学习:没有先验标签,自己找数据中潜在的模式和结构
    1. 数据聚类:将数据集中的样本划分为若干个不重叠的子集或“簇”,使得同一个簇内的样本在某种意义上更相似,而不同簇之间的样本则相对较不相似。可以帮助理解数据的分布和结构,为进一步的分析和决策提供支持。
    2. 异常检测:识别数据集中不符合预期模式或与其他数据显著不同的数据点(异常值或离群点)的方法。关键挑战是如何平衡误报率和漏报率。
  3. 强化学习:动态环境中学习,agent做连续决策(根据反馈的reward)

Inference推理 VS Prediction预测

  • 前者知道f的结构,找好的模型描述f(关注统计,数据分布,寻找统计模型的参数)
  • 后者给未来的数据,预测使用f的输出y(关注ML)

ML历史

年份肯定不会考,其他模型的特点啥的可以看看

在高维空间中,可能的配置x的数量远大于训练样本的数量。(数据点可能的排列组合方式非常多,而实际可用的训练样本数量相比之下则显得非常少。)

  • 半监督学习:从少量标记数据和大量未标记数据中学习
  • 主动学习:一种半监督学习类型,通过与用户交互式查询来获取新数据点的标签。
  • 自监督学习:利用输入数据中的固有结构或关系来创建有意义的特征。标签是从数据本身学来的

异构学习:涉及不同数据类型、设备、模型的异构性

Lec2.1 线性回归

可以推导到非线性最小二乘

超平面和wt向量是垂直的

复习有监督学习:找f建模X->Y

定义

两种写法:一种是用θ覆盖w/b,一种是w/b单列

都是线性

image-20241030130417094

image-20241030130443817

两种参数预测方式

最小二乘LSE

几何方法

需要最小化损失函数:image-20241030131016261

数值解

1. 梯度下降

分为BGD和SGD

image-20241030131351075

因为发现J(θ)是凸函数(二阶导>=0),所以可以用梯度下降

image-20241030131821260

BGD批量梯度下降

image-20241030132301790

θ在使用m个训练样本后才会被更新

SGD随机梯度下降

image-20241030132359029

每次读取一个样本都会更新一次

  1. 随机梯度下降使θ接近最小更快
  2. 有利于大数据回归
2. 牛顿法

image-20241030141710430

image-20241030141538523

牛顿方法的性能:

  • 相比批量梯度下降需要更少的迭代次数
  • 计算H^−1是耗时的
  • n很小时在实践中更快

分析解: 正规方程

利用设计矩阵X和向量y(大写为矩阵,小写为向量,下图X写的不标准)

属于闭合解(与数值解相对,是公式解得的)

image-20241030135254548

X^TX可逆的条件是矩阵满秩,即行列式为0

梯度下降VS正规方程

梯度下降 正规方程
迭代解 精确解
代价函数需要选择合适的学习参数α来收敛 当X是病态时,数值不稳定。例如,特征是高度相关的,X^TX行列式接近0
适用于大量样本m 当m较大时,求解方程的速度较慢

现在DL的数据集很大,所以用GD而不是分析解

极大似然MLE

概率方法,认为ε是噪声,人为建模ε是对高斯分布N(0,σ^2)的独立同分布。在该对ε的假设下,θ的最小二乘对应着极大似然。

image-20241030145714137

Lec2.2 逻辑回归

定义

传统形式也是用于二分类,相比线性回归增加了sigmoid函数,进行归一化(如把像素映射到[0,1])

image-20241030150343440

参数预测

假设y|x符合伯努利分布:

image-20241030151326630

希望l(θ)最大,因为是凹函数取导数=0,使用梯度上升:image-20241030154747496

image-20241030154740492

Lec2.3 多分类

One vs Rest:从类别入手

k个类别,学习k种模型,变成k个二分类问题,选概率最大的即可

image-20241030161232593

image-20241030161254111

缺点

  1. 类不平衡:负样本比正样本多
  2. 不同的分类器可能有不同的置信度(决策边界不同)

为了改善这个缺点,我们希望为所有类学一个模型——Softmax

Softmax:从算法入手

多项式分布用于模拟一个k面的骰子(或任何有k个可能结果的实验)被掷m次的结果。

image-20241030163211208

参数预测

image-20241030163558676

求导过程看起来很复杂,老师上课没讲,就这里带过:

image-20241030164725826

性质

  1. 标量加法的不变性:image-20241030164939389
  2. k=2时为逻辑回归,可写作sigmoid:image-20241030165342955

比较

当类是互斥的:使用Softmax

不互斥:多个二进制分类器可能更好

Lec2.4 广义线性模型GLM

标准形式

y|x; θ来自一个指数族

image-20241030170358333

image-20241030171213169

T,a,b确定一种分布,η是该分布的参数

a(η) 是对数划分函数,确保概率归一化,所以有以下和为1的性质:

image-20241030171713378

优点:是线性回归模型的扩展,可以非线性

  1. 广义线性模型允许目标变量服从指数族分布,而不仅仅是正态分布。这使得广义线性模型能够处理二元数据(例如逻辑回归)、计数数据(例如泊松回归)
  2. 通过引入连接函数,广义线性模型可以捕捉变量之间的非线性关系。例如,逻辑回归使用对数几率连接函数来处理二元分类问题中的非线性关系。

化解步骤

如何化成标准形式?

  1. 如果式子没有exp可以取对数再还原成exp
  2. 有exp后,分离出含有y的部分(合并同类项)

例1:高斯分布

image-20241030193210954

例2:伯努利分布

image-20241030193149617

例3:多分类

img

img

img

img

img

img

建模步骤

  1. 定义y|x;θ属于的指数分布族
  2. 求解假设函数h(x)=E[T(y)|x]。其中T(y)大部分时候为y
  3. 自然参数η和x是线性关系,η=θ^T x
  4. response function:g(η)=E[T(y)|x]
  5. link function:η=g^-1(E[T(y)|x])

image-20241030205412589

例1:线性回归

image-20241030210148139

例2:伯努利分布

image-20241030210417478

例3:多分类

img

response和link:

image-20241030211354821

总结

y是种类

image-20241030211442101

Lec3 生成式学习算法

GDA和NB是两个生成学习的例子

判别式vs生成式

image-20241030212517190

  • discriminative判别式:学习p(y|x),区分数据点的类别
    • 如线性回归,逻辑回归,k-最近邻,神经网络,SVM,决策树,softmax(多分类)
    • GLM建模的是p(y|x;θ),所以是判别式模型
    • 极大似然估计的对象L(θ)=p(y|x)的连乘
  • generative生成式:学习p(x,y)
    • 其实就是学习p(x|y)和p(y),然后用贝叶斯
    • p(y)是类先验
    • 极大似然估计的对象L(θ)=p(x,y)的连乘
    • 如高斯判别分析(连续输入下),朴素贝叶斯(离散输入下),隐马尔可夫模型

高斯判别分析GDA/LDA

  1. 选择一个数据生成分布:假设p(x|y)和p(y)
  2. 估计4个参数
  3. 计算p(y|x)来预测新输入样本x’的输出label

image-20241030212922415

前置知识:多元正态分布

image-20241030213142683

image-20241030213154061

Σ控制着分布的扩散:

image-20241030213503434

当Σ的非对角线项非零时,分布不再沿轴定向:

image-20241030213535131

定义

  1. 建模P(y),P(x|y)image-20241030213706479

  2. 使用极大似然估计求4个参数的值image-20241030213737820

  3. 计算p(y|x)来预测label,发现此时的p(y|x)是逻辑函数image-20241030214109304

通过极大似然得到的后验概率有p(y=1|x)=p(y=0|x)=0.5,即θ^Tx=0,它最大化了类间分离【是线性模型】

与判别式逻辑回归对比

GDA:

  • 最大化p(x,y)
  • 建模p(x|y),p(y)
  • 当模型假设正确时,GDA是渐近有效和数据有效的。这意味着随着样本量的增加,GDA的参数估计将收敛到真实的参数值,并且它可以使用较少的数据达到相同的估计精度。

LR:

  • 最大化p(y|x)
  • 建模p(y|x)。和GDA不同,对p(x)没有限制。
  • 对不正确的建模假设更健壮和更不敏感

image-20241030220509664

朴素贝叶斯NB

一个简单的离散输入变量生成学习算法例子:

  • 垃圾邮件过滤器(文档分类)将电子邮件消息x分类为垃圾邮件(y = 1)和非垃圾邮件(y = 0)类。
  • 二进制文本特征:给定一个大小为n的字典,表示一个由字典单词组成的消息,如x∈{0,1}^n。如果某一位为1,所以字典中的第i个单词在这个消息中。

定义

假设在给定类别y的情况下,各个特征xi是条件独立的(朴素就是指的条件独立)。image-20241030230806277

多元伯努利事件模型x|y是由个独立的伯努利试验生成的。模型的参数是人为假设的,让y和x|y满足伯努利分布。【注意】伯努利只是一种NB,适用于二元随机变量分布,这里举例来求参数,并不是一定符合。生成式学习算法的逻辑依然符合:

  1. 建模P(y),P(x|y)image-20241030231426370

  2. 计算参数(极大似然p(x,y))

  3. 计算p(y|x)来预测label,T是判断类的阈值

    image-20241030233314051

拉普拉斯平滑

朴素贝叶斯中,如果某个单词x_j在训练数据中从未出现过(没观察到),那么概率都为0,会有分母为0,所以在分子分母做处理

image-20241031150802542

image-20241031153608270

上面介绍了Multi-variate Bernoulli model,下面是Multinomial event model,区别是上面的x|y服从伯努利,下面的服从多项式

image-20241031155403806

image-20241031155410045

image-20241031155417565

Lec4 SVM

SVM是判别式模型

线性模型:LR,岭回归,逻辑回归,GDA

非线性模型:多项式回归softmax,SVM,神经网络

image-20241031161924312

前面方法的问题:

  • 模型的选择影响模型性能;容易导致模型不匹配。
  • 数据往往采样不均匀,在高维输入空间中形成稀疏分布。这导致了一些感觉不舒服的问题

可能的方法:

  • 正则化
  • 稀疏核方法

Linear SVM

Margin边际:决策边界与任何样本之间的最小距离(边际也表示分类置信度)

如何确定边际?

functionally

image-20241031162906046

当前方式的问题是与w/b有关,如果 w′=2w和 b′=2b,那么决策边界(即分类边界)保持不变,但是边际表达式会改变,所以使用geometric方法进行归一化

image-20241031164555726

geometrically

括号内的正好是样本点到超平面的距离

image-20241031165827226

目标是最大化γ。令函数边际γ_hat固定为1,最终化为min

image-20241031170141780

KKT条件

image-20241031170912777

拉格朗日对偶性(Lagrange Duality):指出f和所有gi都是凸的,hi都是仿射的(x->Ax+b),并存在某个 w 使得 gi(w)<0对所有 i 成立(严格可行),那么存在 w∗,α∗,β使得 w∗ 是原始问题的解,而 α∗,β 是对偶问题的解,并且:p∗=d∗=L(w∗,α∗,β∗)

  • 注意max min<=min max

image-20241031171257812

image-20241031171102867

参数预测

image-20241031180140584

Soft Margin SVM

linear svm无法处理极端值和非线性情况,而soft引入松弛向量,允许一些数据点分类错误。C代表误分类的惩罚程度

image-20241031195735094

当使用线性核,soft仍然是线性;使用kernel trick可以扩展到非线性

image-20241031195832795

图里的λ就是r

image-20241022222347998

依然是先算α再算w/b

image-20241031200005817

就像线性中满足wx+b=1的是sv,这里满足1-ε=wx+b的是sv(边界上+违反约束在边界内的错误分类点)TODO:还是不懂下面的λ和ξ的推导逻辑

image-20241022222052235

kernel svm非线性

将不可分离的数据映射到高维就可分离了

image-20241031202304481

在优化参数时不用算w:

image-20241031202427924

不是所有函数都能当核函数,要满足mercer定理

image-20241031202737207

image-20241031203147900

计算过程:

image-20241031203242672

Lec5 DNN

阈值函数/激活函数

单个神经元是一个(线性)二值分类器:

  • 当f是sigmoid函数,等价于二值softmax(1/1+e^-x)
  • 当f是sign函数,等价于感知器

DNN的目标是建模f(x),定义测量f的预测误差的误差函数:例如,在分类中使用的一个常见的误差函数是对数损失a.k.a.交叉熵损失:image-20241031214716810

前向传播

image-20241031214858578

至少有一层hidden layer。不同的w有不同的线性模型

image-20241031215701509

反向传播

a是hidden层激活的结果变成当前节点,赋予w权重,以及加上b,得到的中间变量;h(x)是对a赋予激活函数的结果。最后的输出是最后的himage-20241031221017724

参数选择就是想最小化损失函数

image-20241031224648585

反向传播就是使输出值和目标值的差距尽可能小,反复使用链式法则,返回梯度下降

image-20241101000233543

ppt中把dL/dy认为是1,再进行求解,其实是一种简略的写法

image-20241101004153730

image-20241101005816380

过拟合

相比增加width,增加神经网络的depth更有效(增大容量)会过拟合

用正则化避免:image-20241031220444553

Lec6 模型选择

误差分类

image-20241101011813312泛化/测试误差:不在训练集上测

分类:y是离散的;回归:y是连续的

image-20241101011926693

性质

bias&variance:h_hat是错误的假设函数,h是真实的假设函数(不是具体的sample,可以理解为理想的模型oracle)

  • bias:针对单个模型的偏差,错误假设bias大,描述对本训练集的拟合程度
  • variance:针对多个模型,描述 不同数据集的模型输出差异,刻画数据扰动对模型的影响。过拟合时var大,注意与h(x)无关,所以从0开始

image-20241101012602167

image-20241101013123907

complexity

capacity:和特征/参数数量相关

image-20241101012204270

交叉验证

  1. hold-out:随机分训练集和验证集
  2. k折交叉验证
  3. leave-one-out

正则化

减小泛化误差

添加到loss function

l2/ridge回归

老师讲的l2一直是不开根号的

image-20241101015254323

img

l1/lasso回归

image-20241101015413976

image-20241101020448640

贝叶斯统计/MAP

image-20241101081604189

下面是加入l2正则项

image-20241101082206212

与MLE相比,考虑了先验分布

image-20241101081655600

期中复盘

  1. mercer的定义,如何证明两个kernel之和仍然为kernel(没认真看,哭死)
  2. 证明LDA是线性函数,作业WA2有过程。我不知道直接写p=0.5了行不行(感觉不太行xs)
  3. θmap和θmle在θ为Uniform(均匀)时相等(没复习到)
  4. 反向传播考了max,画图没写箭头959633fda875456e403c4c6327c5b74
  5. 以后如果带纸的考试一定要用ppt截图,不要手抄公式很慢容易出错,此外注意重点

Lec7

capacity:拟合不同种类函数的能力

image-20241108100554275

用y=h(x)+ε来formalize

image-20241108100842505

bias反映training data,variance反映testing data

经验风险误差ERM

在理论研究前做一些约束:

image-20241108101909407只知道训练数据和测试数据都从分布D来,但不知道分布D具体是什么,后面通过计算找差异

image-20241108103047888

有限

case1:假设有限的情况:

image-20241108103032456

两个著名的不等式:

image-20241108103300517

image-20241108104543590

左边=1,<=2ke^{},所以>=1-2ke^{}

image-20241108105424813

无限

image-20241108112701196

为了学好(即达到上述的误差保证),所需的样本数量必须与参数的维度 dd 成线性关系。这意味着,随着参数数量的增加,我们需要的样本数量也会线性增加。

image-20241108114708090

尽管两个假设的参数数量不同,但它们实际上是等价的。

所以需要一个与参数化选择无关的复杂度度量,以便更准确地评估假设空间的复杂度

VC Dimension

用来衡量一个模型的复杂度,定义为:在该模型对应的空间中随机撒x点,然后对其中的每个点随机分配一个2类标签,使用你的模型来分类,并且要分对,请问x至多是多少。这个x就是VC维。

1.线性函数

如果选用二维空间中的直线作为判别函数,该分类模型的VC维是多少?
答案:3
解释:如果是3个点,无论如何随机的打标签,都存在一条直线都可以将两类样本分开。
如果是4个点,就可能会出现一种标签序列,使得不存在一条直线将两类样本分开。如下图。
在这里插入图片描述

如果选用三维空间中的直线作为判别函数,该分类模型的VC维是多少?
答案:4
总结:
在这里插入图片描述

用VC维度,即可知道无限H的上界

image-20241108115549092

DNN中对于size相同(权重的数量相同),层数越多,VC维越大

image-20241108120039783

总结内容:

  1. 控制泛化能力:我们可以通过调整假设 H 的复杂度来控制模型的泛化能力。
  2. VC维度作为复杂度的度量:VC维度是一个有用的复杂度度量工具。
  3. 学习算法性能的界限:我们可以根据VC维度 VC(H) 和我们拥有的数据量来界定学习算法的性能。

VC维度的局限性:

  1. 界限不够紧密:由于VC维度与数据分布无关,所以它提供的界限可能不够紧密。
  2. 仅适用于二元分类:VC维度的定义仅适用于二元分类问题

作业

将每个点分配2类标签,看有多少种可能性,概念类能否把每种可能性都表示出来

Rademacher Complexity

image-20241108120412275

衡量一个函数类(假设类)对随机噪声拟合能力的度量。如果一个假设类F能很好地拟合随机噪声(比如随机取值为 +1或 -1 的数据),那么它的 Rademacher Complexity 较高。

image-20241123164937204

S是抽取的固定样本,样本S是从分布D中独立抽取的m个样本

R_s是单个样本集S的复杂度度量,R_m是所有可能的样本集S进行期望的结果

sup是选最小上界,大部分时候可以理解为最大值

image-20241123173310870

sup操作关注的是最大幅度,与符号无关。

它描述的是函数类 F 的拟合能力,数值大小反映了函数类的复杂性,越复杂的函数类,Rademacher Complexity 越大,但永远不会小于 0。所以有a的绝对值。

image-20241123202822556

在R(H)中y_i因为取正负1,所以可以多乘以y。(感觉在这里正符号不用管)

image-20241123203227160

Lec8 无监督学习

良好表示的特点:低维、稀疏表示(更好的可解释性)、独立表示

K-means

image-20241123214122995

Spectral Clustering

我的理解是用图论知识做聚类

degree:看wij的和

ratleigh-ritz定理:用拉格朗日乘子法

RatioCut和NCut

为了避免最小切图导致的切图效果不佳,我们需要对每个子图的规模做出限定,一般来说,有两种切图方式,第一种是RatioCut,第二种是Ncut。

image-20241124152059032

image-20241124152842584

选cut值小的,意味着这种划分在考虑节点度的情况下,两个子集之间的连接更稀疏

  • 图中提到这些切割问题都是 NP - hard 的,即很难在多项式时间内找到最优解。
  • 谱聚类(Spectral clustering)是解决这些问题的一种松弛方法,它通过将问题转化为特征向量和特征值的计算来近似求解。(比割和归一化割都可以用光谱法进行近似。)

Unnormalized Spectral Clustering算法

算法输入:样本相似矩阵S和要聚类的类别数K。

  • 根据矩阵S建立权重矩阵W、三角矩阵D;
  • 建立Laplacian矩阵L;
  • 求矩阵L的(除0外)前K小个特征值及其对应的特征向量;
  • 以这K组特征向量组成新的矩阵,其行数为样本数,列数为K,这里就是做了降维操作,从N维降到K维;
  • 使用k-means等其它聚类算法进行聚类,得到K个Cluster。

image-20241124171702269

Normalized spectral clustering

算法输入:样本相似矩阵S和要聚类的类别数K。

  • 根据矩阵S建立权重矩阵W、三角矩阵D;
  • 建立Laplacian矩阵L以及L’ = D-1L ;
    • 注意ppt用的不是对称归一化拉普拉斯矩阵,而是随机游走归一化拉普拉斯矩阵image-20241124201546113
  • 求矩阵L’的前K小个特征值及其对应的特征向量;
    • 注意这里最小的特征值为0,所以有人在下一步会选第二小的特征值对应的特征向量进行聚类
  • 利用q’ = D1/2q求得对应的K个q;(q不是L的特征向量)
  • 以这K组特征向量组成新的矩阵,其行数为样本数N,列数为K;
  • 使用k-means等其它聚类算法进行聚类,得到K个Cluster。

image-20241124171714538

这里Lv=λDv其实就是D^{-1}Lv=λv,即对归一化的L_rw求特征值

Lec9 PCA

动机:输入特性包含大量的冗余性

主成分分析:将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分(是原始数据的线性组合),是在原有n维特征的基础上重新构造出来的k维特征。这对于数据压缩和降维非常有用。

  • 只关注主成分向量方向,而不是大小,所以认为正交特征的l2范数为1

步骤:

  1. 数据标准化:对数据进行标准化处理,使得每个特征的均值(Mean⁡(x))为0,方差(Var⁡(x_j))为1
    1. 中心化:减去均值
    2. 缩放:除以标准差image-20241208200843578
  2. 找到第一个主成分:在标准化后的数据上,找到第一个主成分 u1,它是原始数据 x 的一个投影,具有最大的方差。
    1. 投影长度是x^(i)Tu(这是一个标量,表示x^(i)在u方向上的分量的大小),所以目标是找到一个单位向量u,使得 uTΣu最大化image-20241208201629651
    2. 虽然可以用优化工具来解决,但有个有效的解决方案:u1 是协方差矩阵Σ 的最大特征向量,选择最大的特征值 λ1 对应的特征向量 v1image-20241208201957940
  3. 迭代找到其他主成分:对于 j=2,…,n,依次找到其他的主成分 u_j。每个新的主成分都是数据x的一个投影,且具有最大的方差,同时要求这个主成分与之前找到的所有主成分(u1,…,uj−1)正交
    1. 第 j个主成分 uj 是协方差矩阵 Σ的第 j 大的特征向量。通过对L(u)求导证明image-20241208202935924

所以过程可以分为:标准化数据->计算协方差矩阵Σ->特征值分解找到主成分u1,…,un。协方差矩阵Σ可以分解为Σ=UΛUT,其中U是一个正交矩阵,其列向量是协方差矩阵的特征向量,Λ是一个对角矩阵,其对角线上的元素是对应的特征值。

PCA的另一种解释:基于投影残差最小化。假设有m个样本,尝试使用这些投影或图像向量来表示原始数据(投影是最能代表原始数据的方向(主成分))。在真实数据和它们的表示(投影残差)之间会存在误差,我们自然希望最小化这些误差。

Lec10 强化学习/深度Q算法

在课堂上,我们学习了强化学习。在本次作业中,你需要设计一个深度 Q 学习网络来玩 CartPole 游戏。我们的实验包含三个部分:

如果你想在代码执行时看到动画,你可以:

  1. 重启内核:这可以清除任何可能的错误或缓存,确保从干净的状态开始。
  2. 根据最后一个代码块中的注释修改代码:通常代码块会给出如何启用或调整动画显示的提示,按照这些建议修改代码。

由于制作动画通常非常耗时,因此建议你在渲染动画之前,确保你的代码没有错误并且运行正确。这样可以节省时间,避免因为错误代码而浪费渲染资源。

CartPole 是一个经典的强化学习环境,来自 gym 包,由 OpenAI 设计。在 CartPole 环境中,一个杆子通过一个无驱动的关节连接到一个小车上,小车可以沿着无摩擦的轨道移动。如果小车不移动,杆子会因为重力而倒下。

image-20241205224352765

在这个环境中,目标是控制小车的运动,以保持杆子竖直不倒。强化学习算法(如 Q 学习)通常用于解决这一类平衡控制问题。在 CartPole 中,智能体需要通过不断调整小车的方向,来平衡杆子,避免其倒下。

image-20241205224613210

深度Q算法:让期望回报最大

image-20241206113632181

image-20241206113650874

  • 回放记忆D:用于存储智能体与环境交互时的经验(即状态、动作、奖励、下一个状态),容量设为N,用于从中随机采样训练数据。
  • Q值模型:使用一个神经网络(参数为θ)来近似表示Q-值函数。即预测未来的累计奖励。
  • 训练过程:
    • 回合:每次智能体与环境交互,经历一个完整的学习过程。每个回合从环境中获取一个初始状态s1开始。
    • 时间步:每个回合中,智能体按照以下步骤进行决策和学习,直到回合结束
      • 选择动作:基于当前的状态s_t,智能体以概率ϵ选择一个随机动作a_t(探索);否则,选择一个使得Qθ(st,at)最大的动作a_t(利用当前的Q值,选择最优动作)。这个策略是ϵ-贪婪策略,平衡了探索和利用
        • 局部最优不一定是全局最优,所以需要随机
      • 执行动作并获得反馈:执行选择的动作at,环境返回奖励rt和下一个状态st+1。这些数据存储在回放记忆D中。
      • 存储转移:将当前的转移信息(即当前状态、所选动作、奖励、下一个状态)存储到回放记忆中。
      • 从回放记忆中采样:从回放记忆D中随机采样一个小批量的转移数据Ω。这有助于打破数据间的相关性,提升训练稳定性。
        • 称为“经验回放”。
      • 计算目标值 yj:目标值就是最大化后的奖励。使用上面采样的转移数据,对模型进行更新。
        • 输入:经验回放记忆D,网络模型Q,批量大小batch_size,输出:更新后的网络模型Q
        • SGD:0.0005;BGD:0.001image-20241206140203058
      • 更新 Q 值模型:我们知道奖励机制,所以根据实际的奖励调整Q模型。MSE loss(平方差的和/数量)image-20241206140728546
  • 迭代训练:这个过程会在多个回合和时间步中重复进行。随着训练的进行,Q-值模型会不断地调整,智能体能够根据环境的反馈逐渐学习到最优策略,从而在给定状态下选择最佳动作。

我们将使用一个 deque(双端队列)对象作为记忆 来存储转移过程。在这里,我们打算复用在编程作业 3(PA3)中构建的简单神经网络 SimpleNN,为深度 学习构建一个 模型。现在提供给你一个名为 nn.py 的 Python 文件,所以你无需从编程作业 3 中复制代码了。现在,让我们导入 nndeque,以便能够使用它们。

由于只有两个可能的动作(0或1,表示小车向左或者向右),我们可以直接预测在某个状态下执行这两个动作的Q值,而不需要将动作作为输入特征的一部分:

为了实现这一点,我们只需将输出维度设置为2。Q模型以状态作为输入,因此输入维度设置为4。其他部分可以保持与PA3相同,因此我们的Q模型包含以下层:

L0,输入层(形状:$N \times 4$),其中$N$是批量大小。

  • 这里的连续状态空间(位置、速度、角度、角速度)(x,θ,x.,θ.)

L1,线性层(形状:$4 \times 80$)

  • 输入维度是4,输出维度是80。说明W是4×80的矩阵,b是一个80维的偏置向量。

L2,ReLU层

L3,线性层(形状:$80 \times 80$)

L4,ReLU层

L5,输出层(线性层,形状:$80 \times 2$)

  • 动作空间只有两个可能的动作:向左推(0)和向右推(1)
  • 输出2个Q值,选择奖励大的动作就行

然后跟随机策略进行对比,发现Q算法让平衡时间增长(time回合数增加),因为停止就不平衡了,让不停止时reward增加

Q3:在这个实验中,当智能体选择动作时我们采用了动态探索率epsilon。请解释代码中是如何控制探索率的,以及为什么这种方式是有效的?

在每个episode结束后,如果epsilon大于最小值,就乘以epsilon_decay进行衰减,这种方式实现了探索和利用的平衡,帮助智能体从广泛探索状态空间逐渐转向利用已学到的经验,避免陷入局部最优解。

Lec11 ICA

动机

  1. 鸡尾酒会问题:图中展示了一个场景,在一个房间里有多个声音源(Sources),并且在房间的不同位置放置了多个麦克风(Microphones)。每个麦克风都会记录下多个声音源混合在一起的声音(Mixtures)。问题的关键在于如何从这些混合的声音中分离出各个独立的声音源(Separated Sources)。image-20241209203707898

  2. 脑电分析:常见的去除伪迹方法包括:ICA、滤波、手动校正image-20241209205053705

  3. 脑部成像image-20241209205355849

ICA

建模成盲源分离问题:

image-20241209210703094

image-20241209212739985

ICA的模糊性:

image-20241209213116197

一个关于密度和线性变换的定理(Theorem 1)(概率密度函数给出了随机变量在某个区间内取值的概率)image-20241209220225165

算法:迭代优化:初始化W,假设Ps,然后迭代更新W直到收敛,估计出s?这里|W|代表行列式

image-20241209220925678

目标是通过最大化对数似然函数来估计解混矩阵W,从而实现对源信号的分离image-20241209223026548

ICA等价于学习投影方向(w_1, …, w_n),在这些投影方向上满足以下条件:

  • 最大化投影信号的非高斯性总和 - 非高斯性是ICA的一个关键特性。由于高斯分布的旋转不变性,ICA通过寻找非高斯性来分离信号。
  • 最小化投影信号的互信息 - 互信息(mutual information)是衡量两个随机变量之间相关性的指标。在ICA中,通过最小化投影信号之间的互信息来确保它们尽可能独立。
  • 约束条件 - 约束条件是投影后的信号(w_1^T x, …, w_n^T x)是不相关的。这意味着在这些投影方向上,信号之间没有线性相关性。

image-20241209224131592