Loading... # 2021.8.23 周记 ## 上一周的学习内容 ### 1. Adversarial Attack #### How to attack $$ x^0 \to \boxed{\text{Network}\ f} \to y^0=f(x^0) $$ attack就向 $x^0$ 中加入一些特别的噪声 $\Delta x$, 得到一个稍微不同的输入 $x'$, 而network经过计算后得出一个不同的输出. #### Loss Function For Attack 攻击可以分为 `Non-targeted Attack` 和 `Targeted Attack` 训练普通神经网络时, 模型通过输入 $x^0$ 得到 $y^0$, 我们希望 $y^0$ 与 $\hat{y^0}$ 不断接近. 定义损失函数 $L(\theta)=C(y^0, \hat{y^0})$, 通过不断调整 $\theta$, 使 $L$ 减小达到我们的目标. - Non-targeted Attack 加入噪声后, 得到 $x'=x+\Delta x$, 攻击希望得到的 $y^0$ 与 $\hat{y^0}$ 差异越大越好. 定义损失函数 $L_{\text{non-targeted}}(x')=-C(y'^0, \hat{y^0})$, 比 $L$ 多了一个符号, 此时通过不断调整输入 $x'$, 使 $L_{\text{non-targeted}}(x')$ 变小. - Targeted Attack 在希望输出结果与 $\hat{y}$ 差异越大的基础上, 希望与某个目标 $\hat{y}^{false}$ 差距越接近越好. 定义损失函数 $L_{\text{targeted}}(x')=-C(y'^0, \hat{y^0})+C(y', \hat{y^0}^{false})$, 通过不断调整输入 $x'$, 使 $L_{\text{`targeted}}(x')$ 变小. #### Constraint For Attack 在攻击中, 除了希望攻击的Loss $L$ 小, 还希望 $x$ 与 $x'$ 差异较小 ( $d(x, x') \leq \epsilon$ ) 计算 $d(x, x')$ 有 `L2-norm` 和 `L-infinity` 两种计算方法. #### How to attack 在攻击时要训练的参数是输入 $x'$ 而不是 $\theta$, 即 $$ x^*=arg \min_{d(x^0, x')\leq \epsilon} L(x') $$ Attack Approaches有以下几种: - FGSM - Basic iterative method - ... #### What is Defense Defense分为两类: - Passive Defense 不修改模型, 而在模型前加上filter防止模型被攻击. filter作用是使攻击信号 $\Delta x$ 无效, 通常有: Gaussian Filter, Median Filter, Bilateral Filter - Proactive Defense 在训练模型中就对攻击进行防御. 用训练集训练模型, 然后多次迭代, 在每次迭代中使用某种攻击方法分别找到每个训练集样本对应的攻击样本 $x'$, 然后把这些攻击样本添加到训练集中进行训练. ### 2. Explainable ML 希望机器不仅要给出答案还要给出Explanation, Explanation分为两类: Local Explanation, Global Explanation 通过Explainable ML, 我们可以知道模型学到了什么从而进行模型诊断, 对模型进行改进和调整. 不仅只关注模型在数据集上的精确度, 还需要进行模型诊断. #### Local Explanation 要求机器说明为什么某张图片是某个类别. 目标是知道每个Component对于结果的重要性. Component $\{x_1, x_2, \cdots\}$可以是不同的东西: 当输入时字符串时, 它一般是单词; 输入时图片, 则可以是一个小的方块, 通过覆盖图像的一部分来观察对结果的影响. 可以采用基于梯度的方法来判断Component的重要性: - Grad-CAM - SmoothGrad - ... 基于梯度的方法存在局限性: 梯度饱和, Noisy Gradient #### Global Explanation Global Explanation 要求机器说明它认为一个类别是怎样的, 而非某张图片. #### LIME LIME: 模型无关的局部解释, 使用一个Interpretable Model拟合一个Uninterpretable Model的局部. > 比如使用Linear Model或者Decision Tree模拟Neural Network > > 实际上Linear Model并不能模拟整个Neural Network但却可以模拟其中的一个Local Region - 使用 Linear Model 拟合 Neural Network 过程 1. 定位: 确定需要解释的 data point 2. 取样: 在上一步确定的 data point 周围sample获得更多的data point 3. 拟合: 使用 Linear Model 模拟上一步确定的 data point 及其对应的 Neural Network 输出 4. 解释: 对Linear Model进行解释,进而解释Neural Network的局部 ### 3. 降维与度量学习 #### k临近学习 (kNN) 是常用的监督学习方法. 给定测试样本, 基于某种距离度量找出训练集中与其最靠近的 $k$ 个训练样本, 然后基于这 $k$ 个邻居的信息来进行预测. 是懒惰学习的一种. > - 懒惰学习: 训练阶段仅仅是把样本保存起来, 训练时间开销为零, 待收到测试样本后再进行处理; > - 急切学习: 在训练阶段就对样本进行学习处理. 分类任务可使用投票法, 回归任务可使用平均法. 最近邻分类器虽然简单, 但是泛化错误率不超过贝叶斯最优分类器的两倍. #### 低维嵌入 当属性维度数量非常高时, 若要满足密采样假设需要非常多的样本, 需要缓解维度灾难. > 密采样假设: 任意测试样本 $x$ 附近任意小距离 $\delta$ 范围内总能找到一个训练样本. 可以通过多为缩放(Multiple Dimensional Scaling, MDS) 来解决这一问题. 因为人们观测或收集到数据样本虽然是高维的, 但与学习任务密切相关的也许仅是某个低位分布, 称为高维空间的一个低维嵌入. > TODO: 多维缩放算法过程 #### 主成分分析 主成分分析(PCA)是一种最常见的降维方式. 对于正交属性空间中的样本点, 用一个超平面对所有样本进行恰当表达, 需要满足: - 最近重构性: 样本点到这个超平面的距离都足够近 - 最大可分性: 样本点在这个超平面上的投影尽可能分开 而这两种性质, 恰好能得到PCA的两种等价推导 > TODO: 两个推导过程 #### 流形学习 - 等度量映射 对于每个点在原始空间找到其近邻点, 与属于其近邻点的点之间的距离为原始空间中的欧式距离, 非近邻点的距离为无穷大, 这种距离关系在所映射到的空间仍然保持. 其中包含两个主要问题: - 建立近邻的的方法: kNN, 设定距离阈值 - 寻找两点间的最短路径: Dijkstra, Floyd ### 4 Torch 实现模型 1. https://github.com/beiyanpiki/mlbook/blob/main/notebooks/006%20%E5%A4%9A%E5%B1%82%E6%84%9F%E7%9F%A5%E6%9C%BA.ipynb 2. https://github.com/beiyanpiki/mlbook/blob/main/notebooks/007%20%E5%A4%9A%E5%B1%82%E6%84%9F%E7%9F%A5%E6%9C%BA%E7%9A%84%E7%AE%80%E4%BB%8B%E5%AE%9E%E7%8E%B0.ipynb ## 本周学习计划 1. 周志华 《机器学习》 Ch.11 特征选择与稀疏学习 2. 李宏毅2021春机器学习课程 Domain Adaptationga, 强化学习 3. 看论文 4. 尝试自己实现一些模型的代码 最后修改:2021 年 09 月 06 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏