nlp基础-机器学习的博客及其提炼

语言模型的评价--困惑度

$PPL(W)=P(w_1w_2...w_n)^{-\frac{1}{n}}=\sqrt[n]{\frac{1}{P(w_1w_2...w_n)}} $
一个正确的句子出现概率越大,模型越不困惑,模型越好

n-gram

例如2-gram,基于马尔可夫性

\(P(w_1w_2...w_n)=P(w_1)* P(w_2|w_1)* ... P(w_{n}|w_{n-1})\)

GPT 为什么 $PPL=e^{loss} $?

\(label_i\)为one-hot
\(softmax(h)\)是各个词的概率
\(softmax(hi)[wi]=P(w_i|w_1w_2...w_{i-1})\)

\[loss=-\frac{1}{n}\sum^n_i{label_i* log(softmax(hi))}\\ =-\frac{1}{n}(log(softmax(h1)[w1])+log(softmax(h2)[w2])+...+log(softmax(hn)[wn]))\\ =-\frac{1}{n}(log(P(w_1)* P(w_2|w_1)* ... * P(w_n|w_1w_2...w_{n-1})))\\ ...\\ e^{loss}=\sqrt[n]{\frac{1}{P(w_1w_2...w_n)}}\]

各种生成任务评价指标

CIDEr (image caption)

基于TF-IDF去给不同的n-gram赋予不同的权重,将句子表示为向量
计算pred与refs向量表示的余弦相似度

\(\text{CIDEr}_n (c_i, s_i) = \frac{1}{m} \sum_j \frac{g^n(c_i) \cdot g^n(s_i)}{||g^n(c_i)|| \cdot ||g^n(s_i)||}\)

CIDEr-D (image caption)

加上了长度惩罚

\(\text{CIDEr-D}_n (c_i, s_i) = \frac{10}{m} \sum_j e^{\frac{-|c_j - s_j|^2}{2\sigma^2}} \frac{\min(g^n(c_i) \cdot g^n(s_i), g^n(s_i)) \cdot g^n(s_i)}{||g^n(c_i)|| \cdot ||g^n(s_i)||} \)

SPICE (image caption)

算caption中 objects, attributes 和 relationships 元组的F1
image

缺点
由于在评估的时候主要考察名词的相似度,因此不适合用于机器翻译等任务。

Rouge-N (Machine translation)

Rouge系列的指标更侧重召回率(refs里有多少被匹配上了)

\(\text{Rouge-N} = \frac{\sum_{s \in \text{Refs}} \sum_{\text{gram} \in s} \text{Count}_{\text{match}}(gram_n)}{\sum_{s \in \text{Refs}} \sum_{\text{gram} \in s} \text{Count}(gram_n)}\)

Rouge-L (Machine translation)

核心思想:公共最长子序列,\(m\)是ref的长度,

\(R_{lcs} = \frac{LCS(ref,pred)}{m}\)

\(P_{lcs} = \frac{LCS(ref,pred)}{n}\)

\(F_{lcs} = \frac{(1 + \beta^2) R_{lcs} P_{lcs}}{R_{lcs} + \beta^2 P_{lcs}}\)

通过\(\beta\)决定数值更倾向于ref还是pred

缺点
ROUGE-L是基于字的对应而非基于语义的对应,不过可以通过增加参考摘要的数量来缓解这一问题

Bleu (Machine translation)

指标更侧重准确率
分子:给定的candidate中有多少个n-gram词语出现在reference中
分母:所有的candidate中n-gram的个数

\(\text{bleu}_n = \frac{\sum_{c \in \text{candidates}} \sum_{n-\text{gram} \in c} \text{Count}_{\text{clip}}(n-\text{gram})}{\sum_{c' \in \text{candidates}} \sum_{n-\text{gram'} \in c'} \text{Count}(n-\text{gram'})}\)

\(Count_{\text{clip}}(n-gram)\)表示这个n-gram在refs中出现的个数

数据标准化,归一化

为什么要对特征进行归一化?

一句话描述:1)归一化后加快了梯度下降求最优解的速度
      2)归一化有可能提高精度

1)归一化后加快了梯度下降求最优解的速度
当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;
image

2)归一化有可能提高精度
一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

哪些模型需要归一化

包含w x + b的模型,一般需要归一化:

  • 线性回归
  • 逻辑回归
  • svm
  • 神经网络

不需要做归一化的:

  • 决策树等树模型。其节点在分裂的时候往往看的是信息增益(比)

逻辑回归与标准化

逻辑回归必须要进行标准化吗?

真正的答案是,这取决于我们的逻辑回归有没有用正则。

因为不用正则时,我们的损失函数只是仅仅在度量预测与真实的差距,加上正则后,我们的损失函数除了要度量上面的差距外,还要度量参数值是否足够小。

假如不同的特征的数值范围不一样,有的是0到0.1,有的是100到10000,那么,每个特征对应的参数大小级别也会不一样,在L1正则时,我们是简单将参数的绝对值相加,因为它们的大小级别不一样,就会导致L1最后只会对那些级别比较大的参数有作用,那些小的参数都被忽略了。

如果不用正则,那么标准化对逻辑回归有什么好处吗?

有好处,进行标准化后,我们得出的参数值的大小可以反应出不同特征对样本label的贡献度,方便我们进行特征筛选。如果不做标准化,是不能这样来筛选特征的。

做标准化有什么注意事项吗?

最大的注意事项就是先拆分出test集,不要在整个数据集上做标准化,因为那样会将test集的信息引入到训练集中,这是一个非常容易犯的错误!

posted @ 2023-09-18 19:04  shiiiilong  阅读(13)  评论(0编辑  收藏  举报