你不得不了解的人工智能基础知识
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: 效果很是好,但通常不太可能