/images/avatar.png

vllbc

Layer Norm

pre-norm

Pre-norm:\(X_t+1=X_{t}+F_{t}(Norm(X_{t}))\)

\(先来看Pre-norm^{+},递归展开:\) \[X_{t+1}=X_t+F_t(Norm(X_t))\] \(=X_{0}+F_{1}(Norm(X_{1}))+\ldots+F_{t-1}(Norm(X_{t-1}))+F_{t}(Norm(X_{t}))\) 其中,展开\(^{+}\)后的每一项( \(F_{1}( Norm( X_{1}) ) , \ldots\), \(F_{t- 1}( Norm( X_{t- 1}) )\), \(F_{t}( Norm( X_{t}) )\))之间都是同一量级的, 所以\(F_1(Norm(X_1))+\ldots F_{t-1}(Norm(X_{t-1}))+F_t(Norm(X_t))\)\(F_1(Norm(X_1))+\ldots F_{t-1}(Norm(X_{t-1}))\)之间的区别就像t和t-1的区别一样,我们可以将 其记为\(X_t+ 1= \mathscr{O} ( t+ 1)\) . 这种特性就导致当t足够大的时候,\(X_{t+1}\)\(X_t\)之间区别可以忽略不计(直觉上),那么就有:

vscode配置latex

早就配置好了,但是之前使用的是tab打开pdf,感觉有点狭窄,于是换成了外部pdf,使用的就是经典的sumatra pdf,具体的配置过程可以看:https://zhuanlan.zhihu.com/p/142963562,但是在配置反向搜索的时候出现了问题,于是查看网上的一些解决方法,一番折腾下终于解决了这个问题,下面是最终方案,记录一下。

hinge loss

在机器学习中,hinge loss是一种损失函数,它通常用于”maximum-margin”的分类任务中,如支持向量机。数学表达式为:

其中 \(\hat{y}\) 表示预测输出,通常都是软结果(就是说输出不是0,1这种,可能是0.87。), \(y\) 表示正确的类别。 - 如果 \(\hat{y}y<1\) ,则损失为: \(1-\hat{y}y\) - 如果\(\hat{y}y>1\) ,则损失为:0

北京百分点面经

前几天试着投了简历,没想到有两家约了面试,一个是得物一个是北京百分点,得物面试没有怎么准备,太仓促了,二面挂了,百分点拿到了offer,但决定考研了就没去,记录一下面试的问题。岗位是nlp算法岗。

KMP

KMP是字符串匹配问题的算法。“字符串A是否为字符串B的子串?如果是的话出现在B的哪些位置?”该问题就是字符串匹配问题,字符串A称为模式串,字符串B称为主串

特征选择

特征选择特征工程里的一个重要问题,其目标是寻找最优特征子集。特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。另一方面,选取出真正相关的特征简化模型,协助理解数据产生的过程。并且常能听到“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”,由此可见其重要性。但是它几乎很少出现于机器学习书本里面的某一章。然而在机器学习方面的成功很大程度上在于如果使用特征工程。

early-stopping

介绍

早停止(Early Stopping)是 当达到某种或某些条件时,认为模型已经收敛,结束模型训练,保存现有模型的一种手段

如何判断已经收敛?主要看以下几点: - 验证集上的Loss在模型多次迭代后,没有下降 - 验证集上的Loss开始上升。 这时就可以认为模型没有必要训练了,可以停止了,因为训练下去可能就会发生过拟合,所以早停法是一种防止模型过拟合的方法。

过拟合的解决方法

  1. 数据增强,即增加样本,也可以半监督如UDA。
  2. 正则化(Dropout等)
  3. Batch norm。本质是加快训练,让训练更稳定,但也可以缓解过拟合。配合relu也会缓解dead relu问题。
  4. early-stop,在过拟合之前停下来。
  5. 降低模型复杂度,与第2点类似。
  6. 学习率衰减,按照固定的epoch后衰减学习率。
  7. 特征选择,选择主要的特征进行训练,本质也是降低模型复杂度。