你不得不了解的人工智能基础知识

你不得不了解的人工智能基础知识

1.什么是人工智能?

首先咱们利用传统的软件和人工智能进行比较,就容易使你们更容易理解。算法

(1) 传统软件 VS 人工智能

传统软件是[基于规则]的,须要人为的设定条件,而且告诉计算机符合这个条件后该作什么。机器学习

人工智能则是机器从[特定]大量数据中总结规律,概括出某些[特定知识],而后将这种知识应用到特定的场景中去解决实际问题。性能

然而,当前的人工智能知其然,但不知因此然。

学习

也正是由于概括逻辑,因此须要依赖大量的数据。数据越多,概括出来的经验越具备普适性。测试

而咱们在探寻AI的边界时,咱们能够简单粗暴的把AI分红3个级别:

人工智能

2.图灵测试

图灵测试的提出是由于图灵在思考一个问题:机器可否思考?spa

而且图像相信是能够制做出会思考的机器,因而就在想第二个问题:如何判断机器可否思考?3d

因而就有了图灵测试。code

那么什么是图灵测试呢?blog

让一我的坐在电脑前,跟另外一边用键盘进行对话,若是这我的分不清跟本身对话的是一我的仍是一个机器,那么这个对话机器就经过了图灵测试并具有人工智能。

3.什么是算法?

算法简单来讲,就是解决问题的手段,而且是批量化解决问题的手段。

好比你想要木头桌子,那么制造桌子的工厂就是“一套算法”。提供(输入)木头,就会获得(输出)桌子。

关于算法,有3点须要注意:

  • 1.没有某种算法是万能的。
  • 2.算法没有高级和低级之分。
  • 3.根据不一样的环境选择合适的算法很严重。

4.人工智能中的算力是什么?

在普通的电脑中,CPU就提供了算力帮助电脑快速运行,而在玩游戏中就须要显卡来提供算力,帮助电脑快速处理图形,。那么在人工智能中,就须要有相似的CPU和GPU的硬件来提供算力,帮助算法快速运算出结果。

在上述声什么是算法里讲过,在制造木桌的过程当中,工厂的流水线就是算法。在那个例子中,工厂中的机器就像算力,机器越好越先进,制造的过程就越快

5.什么是监督学习?

监督学习是机器学习中的一种训练方式/学习方式:

监督学习须要有明确的目标,很清楚本身想要什么结果。好比:按照“既定规则”来分类、预测某个具体的值…

监督学习的流程:

  • 1.选择一个适合目标任务的数学模型
  • 2.先把一部分已知的“问题和答案(训练集)”送给机器去学习
  • 3.机器总结除了本身的“方法论”
  • 4.人类把“新的问题(测试集)”给机器,让它去解答。

监督学习的2个任务:

  • 1.回归:预测连续的、具体的数值。
  • 2.分类:对各类事物分门别类,用于离散型数据预测。

6.什么是无监督学习?

无监督学习是机器学习中的一种训练方式/学习方式:

下面经过跟监督学习的对比来理解无监督学习:

  • 1.监督学习是一种目的明确的训练方式,你知道获得的是什么;而无监督学习则是没有明确目的的训练方式,你没法提早知道结果是什么。
  • 2.监督学习须要给数据打标签;而无监督学习不须要给数据打标签。
  • 3.监督学习因为目标明确,因此能够衡量效果;而无监督学习几乎没法量化效果如何

无监督学习是一种机器学习的训练方式,它本质上是一个统计手段,在没有标签的数据里能够发现潜在的一些结构的一种训练方式。

无监督学习的使用场景:

  • 1.发现异常数据:经过无监督学习,咱们能够快速把行为进行分类,虽然咱们不知道这些分类意味着什么,可是经过这种分类,能够快速排出正常的用户,更有针对性的对异常行为进行深刻分析。

  • 2.用户细分:这个对于广告平台颇有意义,咱们不只把用户按照性别、年龄、地理位置等维度进行用户细分,还能够经过用户行为对用户进行分类。

常见的2类无监督学习算法:

  • 1.聚类:简单说就是一种自动分类的方法,在监督学习中,你很清楚每个分类是什么,可是聚类则不是,你并不清楚聚类后的几个分类每一个表明什么意思。
  • 2.降维:降维看上去很像压缩。这是为了在尽量保存相关的结构的同时下降数据的复杂度。

7.如何合理划分数据集?

首先先来介绍这三种数据集,训练集 测试集 验证集。先用一个不恰当的比喻来讲明3种数据集之间的关系:

  • 1.训练集至关于上课学知识
  • 2.验证集至关于课后的的练习题,用来纠正和强化学到的知识
  • 3.测试集至关于期末考试,用来最终评估学习效果

(1)什么是训练集

训练集(Training Dataset)是用来训练模型使用的。

(2)什么是验证集

当咱们的模型训练好以后,咱们并不知道他的表现如何。这个时候就可使用验证集(Validation Dataset)来看看模型在新数据(验证集和测试集是不一样的数据)上的表现如何。同时经过调整超参数,让模型处于最好的状态。

做用:

  • 1.评估模型效果,为了调整超参数而服务
  • 2.调整超参数,使得模型在验证集上的效果最好

(3)什么是测试集

当咱们调好超参数后,就要开始「最终考试」了。咱们经过测试集(Test Dataset)来作最终的评估。

(4)如何合理的划分数据集

数据集的划分并无明确的规定,不过能够参考3个原则:

  • 1.对于小规模样本集(几万量级),经常使用的分配比例是 60% 训练集、20% 验证集、20% 测试集。
  • 2对于大规模样本集(百万级以上),只要验证集和测试集的数量足够便可,例若有 100w 条数据,那么留 1w 验证集,1w 测试集便可。1000w 的数据,一样留 1w 验证集和 1w 测试集。
  • 3.超参数越少,或者超参数很容易调整,那么能够减小验证集的比例,更多的分配给训练集。

3种主流的交叉验证法

  • 1.留出法(Holdout cross validation): 按照固定比例将数据集静态的划分为训练集、验证集、测试集。的方式就是留出法。
  • 2.留一法(Leave one out cross validation):每次的测试集都只有一个样本,要进行 m 次训练和预测。 这个方法用于训练的数据只比总体数据集少了一个样本,所以最接近原始样本的分布。可是训练复杂度增长了,由于模型的数量与原始数据样本数量相同。 通常在数据缺少时使用。
  • 3.K折交叉验证(k-fold cross validation)
    静态的「留出法」对数据的划分方式比较敏感,有可能不一样的划分方式获得了不一样的模型。「k 折交叉验证」是一种动态验证的方式,这种方式能够下降数据划分带来的影响。具体步骤以下:
    • 1.将数据集分为训练集和测试集,将测试集放在一边
    • 2.将训练集分为 k 份
    • 3.每次使用 k 份中的 1 份做为验证集,其余所有做为训练集。
    • 4.经过 k 次训练后,咱们获得了 k 个不一样的模型。
    • 5.评估 k 个模型的效果,从中挑选效果最好的超参数
    • 6.使用最优的超参数,而后将 k 份数据所有做为训练集从新训练模型,获得最终模型。


8.机器学习的评估指标大全

全部事情都须要评估好坏,尤为是量化的评估指标。

  • 1.高考成绩用来评估学生的学习能力
  • 2.杠铃的重量用来评估肌肉的力量
  • 3.跑分用来评估手机的综合性能

为了快速理解各项指标的计算方式,用具体的例子将分类问题进行图解,帮助你们快速理解分类中出现的各类状况。

例子:

咱们有10张照片,5张男性、5张女性。以下图:

有一个判断性别的机器学习模型,当咱们使用它来判断「是否为男性」时,会出现4种状况。以下图:

  • 实际为男性,且判断为男性(正确)
  • 实际为男性,但判断为女性(错误)
  • 实际为女性,且判断为女性(正确)
  • 实际为女性,但判断为男性(错误)

这4种状况构成了经典的混淆矩阵,以下图:

  • TP – True Positive:实际为男性,且判断为男性(正确)

  • FN – False Negative:实际为男性,但判断为女性(错误)

  • TN – True Negative:实际为女性,且判断为女性(正确)

  • FP – False Positive:实际为女性,但判断为男性(错误)

准确率-Accuracy

预测正确的结果占总样本的百分比,公式以下:

准确率 =(TP+TN)/(TP+TN+FP+FN)

虽然准确率能够判断总的正确率,可是在样本不平衡 的状况下,并不能做为很好的指标来衡量结果。举个简单的例子,好比在一个总样本中,正样本占 90%,负样本占 10%,样本是严重不平衡的。对于这种状况,咱们只须要将所有样本预测为正样本便可获得 90% 的高准确率,但实际上咱们并无很用心的分类,只是随便无脑一分而已。这就说明了:因为样本不平衡的问题,致使了获得的高准确率结果含有很大的水分。即若是样本不平衡,准确率就会失效。

精确率-Precision

全部被预测为正的样本中实际为正的样本的几率,公式以下:

精准率 =TP/(TP+FP)

精准率和准确率看上去有些相似,可是彻底不一样的两个概念。精准率表明对正样本结果中的预测准确程度,而准确率则表明总体的预测准确程度,既包括正样本,也包括负样本。

召回率(查全率)- Recall

实际为正的样本中被预测为正样本的几率,其公式以下:

召回率=TP/(TP+FN)

召回率的应用场景: 好比拿网贷违约率为例,相对好用户,咱们更关心坏用户,不能错放过任何一个坏用户。由于若是咱们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,形成严重偿失。召回率越高,表明实际坏用户被预测出来的几率越高,它的含义相似:宁肯错杀一千,毫不放过一个。

F1分数

若是咱们把精确率(Precision)和召回率(Recall)之间的关系用图来表达,就是下面的PR曲线:

能够发现他们俩的关系是「两难全」的关系。为了综合二者的表现,在二者之间找一个平衡点,就出现了一个 F1分数。

ROC曲线

真正率(TPR) = 灵敏度 = TP/(TP+FN)

假正率(FPR) = 1- 特异度 = FP/(FP+TN)

ROC(Receiver Operating Characteristic)曲线,又称接受者操做特征曲线。该曲线最先应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。

ROC 曲线中的主要两个指标就是真正率和假正率。其中横坐标为假正率(FPR),纵坐标为真正率(TPR),下面就是一个标准的 ROC 曲线图。

ROC 曲线的阈值问题

与前面的 P-R 曲线相似,ROC 曲线也是经过遍历全部阈值 来绘制整条曲线的。若是咱们不断的遍历全部阈值,预测的正样本和负样本是在不断变化的,相应的在 ROC 曲线图中也会沿着曲线滑动。

如何判断 ROC 曲线的好坏?

改变阈值只是不断地改变预测的正负样本数,即 TPR 和 FPR,可是曲线自己是不会变的。那么如何判断一个模型的 ROC 曲线是好的呢?这个仍是要回归到咱们的目的:FPR 表示模型虚报的响应程度,而 TPR 表示模型预测响应的覆盖程度。咱们所但愿的固然是:虚报的越少越好,覆盖的越多越好。因此总结一下就是TPR 越高,同时 FPR 越低(即 ROC 曲线越陡),那么模型的性能就越好。 参考以下:

ROC 曲线无视样本不平衡

不管红蓝色样本比例如何改变,ROC 曲线都没有影响。

AUC(曲线下的面积)

为了计算 ROC 曲线上的点,咱们可使用不一样的分类阈值屡次评估逻辑回归模型,但这样作效率很是低。幸运的是,有一种基于排序的高效算法能够为咱们提供此类信息,这种算法称为曲线下面积(Area Under Curve)。

比较有意思的是,若是咱们链接对角线,它的面积正好是 0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是 50%,表示随机效果。 ROC 曲线越陡越好,因此理想值就是 1,一个正方形,而最差的随机判断都有 0.5,因此通常 AUC 的值是介于 0.5 到 1 之间的。

AUC 的通常判断标准

0.5 – 0.7: 效果较低,但用于预测股票已经很不错了

0.7 – 0.85: 效果通常

0.85 – 0.95: 效果很好

0.95 – 1: 效果很是好,但通常不太可能

相关文章
相关标签/搜索