众所周知

如今已经是2020年,AI也越来越贴近我们的生活,虽然离科幻片中的情况还有一段距离,但是已经有许多的AI算法类产品落地了。而其中AI有分为NLP(自然语言处理)、CV(计算机视觉处理)、语音处理,推荐系统等等,我们手机里的某音,某条,某浪,某乎都涵盖这一些技术。
由于最近对自然语言处理,比较感兴趣。所以这里,我就先占坑了。

自然语言处理

自然语言处理可以理解为让计算机像人类一样,可以理解几个字符,一段字符串,一段文本中的内容,并挖掘其中的涵义,关系。除了传统的这些方面外,后续还有聊天机器人,机器翻译等应用。

AI中的处理

1.TF-IDF
TF-IDF也叫词频-逆向文件频率,是用于文本信息挖掘,检索的加权方法。它的思想很简单,如果这个词在这篇文章中出现的频率很高,但是在其他文章却很低,那么说明对于这篇文章来说,这个词就越重要。
也可以通过这个词,更好的进行分类。但是这个的缺点是显而易见的:没有办法解决一词多义,一义多词的情况。

2.Word2Vec
Word2Vec是用来产生词向量的模型。我们可以通过训练Word2Vec,将一篇文章的词映射到一个坐标系的多维向量中。然后通过其中两个或者其中几个向量的距离,来衡量它们的关系,相似度等等。
这里头又分为,CBOW词袋模型和skip-gram模型。
CBOW代表的是,通过这个词的上下文所对应的词向量,来输出这个词本身。
而skip-gram则相反,是通过这个词本身,来输出这个词的上下文词向量。

3.Bert
Bert好像是近两年频繁使用到的技术,它也是谷歌开源的NLP模型,主要用于问答系统。
在BERT出现之前,将预训练的语言模型应用到NLP任务主要有两种策略,一种是基于特征的语言模型,如ELMo模型;另一种是基于微调的语言模型,如OpenAI GPT。这两类语言模型各有其优缺点,而BERT的出现,似乎融合了它们所有的优点,因此才可以在诸多后续特定任务上取得最优的效果。
在这里插入图片描述

算法评价

一般来说,算法训练出来的模型评价标准有,准确率,精准率,召回率,F1 score,auc,roc。
在这里插入图片描述
看上图,就可以首先理解准确率,精准率,召回率指的是什么了。上述正方形中分为四个方格,我们可以看到:左上角标有True Positives,它的意思样本标记为正并且预测结果为正,记作TP。
那么以此类推,右上角:样本标记为负并且预测结果为正,记作FP。
左下角:样本标记为负并且预测结果为正,记作FN。
右下角:样本标记为负并且预测结果为负,记作TN。
那么准确率就是预测结果与标记是一一对应的: (TP + TN )/( TP + FP + TN + FN)
精准率指的是正确预测为正的个数占全部预测为正的比例 TP / (TP + FP),精准率越高代表区分负样本能力越强。
召回率就是正确预测为正的个数占全部正样本的比例 TP / (TP + FN),我们可以理解为我们所找到的数目与我们所需要找到的样本之比。召回率越高代表模型识别正样本能力越强

我们当然希望精准率和召回率都高,但是在现实当中一般不是这样的,很难将两者变成很高的数值。事实上这两者是相互拉扯的关系,相互制约。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。

其实,以上的正方形,在监督学习中,叫作混淆矩阵;在无监督学习中,叫做匹配矩阵。
至于F1 score,我们可以用公式表示:在这里插入图片描述
F1 score是两者的综合,也是加权平均值。F1 score越高,说明模型越稳健,它的区间在[0,1]。

至于ROC,AUC,两者概念很类似,它们通常是用于研究二分类器的输出,当然也可以衍生为多分类问题。。AUC指的是ROC曲线与x轴之间所形成的面积。它们的横轴是TP,纵轴是TP。
在模型训练完后,我们计算出每个样本被预测为不同类别的置信度。对于二分类来说,可能是0.3为正,0.7为负或者是0.1为负,0.9为正甚至是五五开。我们这时候设定一个阈值,假设为0.6,那么当预测为正的置信度大于这个值的时候,就归为正,否则则归为负。基于此,就会得出该阈值下的精准率和召回率。
然后我们不断调整这个阈值的数字,就可以得出连续的ROC曲线了。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐