关于人工智能:AI算法测试之浅谈

47次阅读

共计 8362 个字符,预计需要花费 21 分钟才能阅读完成。

作者:京东物流 李云敏

一、人工智能

1、人工智能(AI)是什么

人工智能,英文 Artificial Intelligence,简称 AI,是利用机器学习技术模仿、延长和扩大人的智能的实践、办法、技术及利用的一门新的技术迷信。

人工智能是计算机科学的一个分支,它希图理解智能的本质,并生产出一种新的能以人类智能类似的形式做出反馈的智能机器,该畛域的钻研包含机器人、语言辨认、图像识别、自然语言解决和专家系统等。人工智能能够对人的意识、思维的信息过程的模仿。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

艰深的说,就是让机器能够像人类一样有智能,让机器看得懂、听得懂、会思考、能决策、能口头,实现原来只有人类能力实现的工作。

2、人工智能(AI)的实质

AI 的实质是通过软件来实现特定的算法。

一个优良的人工智能零碎,应该具备三个方面的特色:常识使用的能力、从数据或教训中学习的能力、解决不确定性的能力。

常识使用能力

常识是智能体现的一个最重要的维度。据说看能力如果不思考内容的深度,则仅仅是停留在感知智能的层面,只能与环境交互和获取环境的信息,其智能体现的空间十分无限。一个智能零碎应该可能很好的存储与示意、使用常识,并基于常识进行归纳推理。

学习能力

从数据中或过来的教训中学习的能力,这通常须要使用机器学习算法。具备一个一直进化和提高的学习能力,那么就可能具备更高的智能程度。同时,学习过程应该可能融入尽可能多的常识类信息,才可能达到反对智能零碎的要求。

不确定性解决能力

可能很好地解决数据中不确定性,像噪声、数据属性缺失,模型决策的不确定性,甚至模型外部参数的不确定性。无人驾驶零碎就须要解决各种各样的不确定性如环境的不确定性、决策的不确定性。

3、人工智能(AI)的“智力”层级

人工智能分为弱人工智能和强人工智能,前者让机器具备察看和感知的能力,能够做到肯定水平的了解和推理。而强人工智能期待让机器取得自适应能力,解决一些之前没有遇到过的问题。

也有人将人工智能分为弱人工智能、个别人工智能和强人工智能,后超级人工智能。

人工智能分为弱人工智能和强人工智能,前者让机器具备察看和感知的能力,能够做到肯定水平的了解和推理。目前的科研都集中在弱人工智能这部分。而强人工智能期待让机器取得自适应能力,解决一些之前没有遇到过的问题。

2017 年公布的一项针对 AI 钻研人员的调查报告称,高级机器智能(HLMI)实现的总体均匀估计值是到 2061 年。

4、人工智能(AI)的应用领域

人工智能波及宽泛的技术利用

https://img-blog.csdnimg.cn/20200424151404995.gif#pic_center

目前人工智能利用最宽泛的畛域次要有四个,别离是语音辨认和自然语言解决、图像识别与解决、举荐零碎、机器学习。

语音辨认,如语音的主动翻译、语音转文字等。目前微软的语音辨认技术曾经达到了人类等同程度,翻译机器人曾经超过专业翻译水准。

图像识别,如高速车牌辨认、人脸识别等,目前曾经广泛应用在路线监控、停车场、门禁、金融零碎拜访身份辨认等畛域。刷脸解锁、刷脸领取也曾经进入咱们生存的很多畛域。

举荐零碎,如电商零碎依据用户的购买习惯,举荐可能须要购买的产品;今日头条的内容举荐算法等。

5G+AI 开启智能化物流新时代

注:图片材料起源——《2021 中国物流科技倒退报告》

二、人工智能和机器学习的关系

人脑具备一直积攒教训的能力,依赖教训咱们便具备了剖析解决的能力,比方咱们要去菜场挑一个西瓜,他人或者本人的教训通知咱们色泽青绿、根蒂伸直、敲声浑响的西瓜比拟好吃。咱们具备这样的能力,那么机器呢?机器不是只接管指令,解决指令吗?和人脑相似,能够喂给机器历史数据,机器依赖建模算法生成模型,依据模型便能够解决新的数据失去未知属性。许多机器学习零碎所解决的都是无奈间接应用固定规定或者流程代码实现的问题,通常这类问题对人类而言却很简略。比方,手机中的计算器程序就不属于具备智能的零碎,因为外面的计算方法都有分明而固定的规程;然而如果要求一台机器去分别一张照片中都有哪些人或者物体,这对咱们人类来讲非常容易,而后机器却十分难做到。

机器学习所钻研的次要内容,是对于在计算机上从数据中产生“模型”的算法。即学习算法,有了学习算法,咱们把数据提供给它,它就能基于这些数据产生模型;在面对新的数据时,模型会给咱们提供相应的预测后果。

机器学习的按学习形式来能够划分四类:监督学习、无监督学习、半监督学习和强化学习。

监督学习 指的就是咱们给学习算法一个数据集。这个数据集由“正确答案”组成。关注的是对事物未知体现的预测,个别包含分类问题和回归问题。

无监督学习,指在数据集中没有“正确答案”,冀望从数据自身发现一些潜在的法则,无监督学习偏向于事物自身个性的剖析,罕用的技术包含数据降维和聚类问题。

半监督学习,训练数据集中有一部分答案,一部分没答案的称为半监督学习。

强化学习 相对来说比较复杂,是指一个零碎和外界环境一直地交互,取得外界反馈,而后决定本身的行为,达到长期指标的最优化。也就是从一开始什么都不懂, 通过一直地尝试, 从谬误中学习, 最初找到法则, 学会了达到目标的办法。比方 AlphaGo 用的深度强化学习。

1、机器学习

2、机器学习三要素

机器学习三要素包含数据、模型、算法。简略来说,这三要素之间的关系,能够用上面这幅图来示意

总结成一句话:算法通过在数据上进行运算产生模型。

3、数据标注

如图中不同的动物,给它们别离打上正确的标记。通过算法训练后,达到正确分类的目标。要进行机器学习,首先要有数据。有了数据之后,再对数据进行标注,利用人工标注的数据给到机器进行学习,使机器智能化。

那理论我的项目中是怎么给数据打标注,为什么要给数据标注?带着这两个问题咱们来看个视频。

https://www.thepaper.cn/newsDetail\_forward\_2052136

4、什么是模型?

大家来做下这个猜数字游戏,1, 4, 16…()… 256… 括号里的是什么。为什么是 64,不是其余数字,又为什么是数字,不是一个汉字或者一个字母。咱们找到了数字之间的法则,逻辑关系,并且形象成了模型,咱们能力晓得括号里是什么。

举个生存中的例子,小米硬件中手机外壳,在大批量生产前须要先设计手机外壳的模具,而后所有同型号的手机外壳都按这个模具样版生产进去。这个模具也是个硬件上的模型。

算法的模型又是什么?模型是从数据里形象进去的,用来形容主观世界的数学模型。通过对数据的剖析,找到其中的法则,找到的法则就是模型。

机器学习的基本目标,是找一个模型去形容咱们曾经观测到的数据。

5、机器学习算法

例如,你可能会在钻研论文和教科书中看到用伪代码或 线性代数 形容的机器学习算法。你能够看到一个特定的机器学习算法与另一个个性算法相比的计算效率。

学术界能够设计出很多机器学习算法,而机器学习实践者能够在他们的我的项目中应用规范的机器学习算法。这就像计算机科学的其余畛域一样,学者能够设计出全新的排序算法,程序员能够在应用程序中应用规范的排序算法。

•线性回归

•逻辑回归

•决策树

•人工神经网络

•K- 最近邻

•K- 均值

•

https://img-blog.csdnimg.cn/20200424151404995.gif#pic_center

你还可能会看到多个机器学习算法实现,并在一个具备规范 API 的库中提供。一个风行的例子是 scikit-learn 库,它在 Python 中提供了许多分类、回归和聚类机器学习算法的实现。

三、AI 算法模型测试

1、模型评估

泛化能力指的是学习办法对未知数据的预测能力。就好比运动员平时都是在训练场进行训练,而评估运动员的实在实力要看在大赛中的体现。

咱们理论心愿的,是在新样本上能体现得很好的学习器,为了达到这个目标,应该从训练样本中尽可能推演出实用于所有潜在样本的“一般法则”,这样能力在遇到新样本时做出正确的预测,泛化能力比拟好。

当学习器把训练样本学得“太好”了的时候,很可能曾经把训练样本本身的一些特点当作了所有潜在样本都会具备的个别性质,这样就会导致泛化性能降落。这种景象在机器学习中称为“过拟合“,与之绝对是“欠拟合”指的是对训练样本的个别性质尚未学习。

有多种因素可能导致过拟合,其中最常见的状况是因为学习能力过于弱小,以至于把训练样本所蕴含的不太个别的个性都学到了,而欠拟合则通常是因为学习能力低下而造成的。

2、衡量标准

首先无关 TP、TN、FP、FN 的概念。大体来看,TP 与 TN 都是分对了状况,TP 是正类,TN 是负类。则推断出,FP 是把错的分成了对的,而 FN 则是把对的分成了错的。

【举例】一个班里有男女生,咱们来进行分类,把女生看成正类,男生看成是负类。咱们能够用混同矩阵来形容 TP、TN、FP、FN。

混同矩阵

准确率、召回率、F1

人工智能畛域两个最根本指标是召回率 (Recall Rate) 和准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率,概念公式:

◦召回率(Recall) = 零碎检索到的相干文件 / 零碎所有相干的文件总数

◦准确率(Precision) = 零碎检索到的相干文件 / 零碎所有检索到的文件总数

准确率和召回率是相互影响的,现实状况下必定是做到两者都高,然而个别状况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么中央出问题了。一般来说,精确度和召回率之间是矛盾的,这里引入 F1-Score 作为综合指标,就是为了均衡准确率和召回率的影响,较为全面地评估一个分类器。F1 是准确率和召回率的和谐均匀。F1-score 越大阐明模型品质更高。个别状况,用不同的阀值,统计出一组不同阀值下的准确率和召回率,如下图:

评估指标跑进去看又怎么评判呢?咱们来看下 2016 年的新闻

百度主动驾驶负责人王劲 2016 年 9 月 去年的这个时候,咱们的图象识别,辨认汽车这一项,刚好也是 89%。咱们认为这个 89%,要达到 97% 的准确率,须要花的工夫,会远远超过 5 年。而人类要实现无人驾驶,次要靠摄像头来实现平安的保障的话,咱们认为要多少呢?咱们认为起码这个安全性的保障,要达到 99.9999%,所以这个是一个十分十分远的一条路。咱们认为不是 5 年,10 年可能达失去的。个别的人工智能零碎,如搜寻、翻译等可容许犯错,而无人驾驶零碎与生命相干,模型性能要求很高。

在不同的畛域,对召回率和准确率的要求不一样。如果是做搜寻,那就是保障召回的状况下晋升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,晋升召回。所以,在两者都要求高的状况下,能够用 F1 来掂量。

3、品质属性

鲁棒性 (robustness),也就是所说健壮性,简略来说就是在模型在一些异样数据状况下是否也能够比拟好的成果。也就是咱们在最开始讲人工智能三个特色中的 解决不确定性的能力。

比方人脸识别,对于含糊的图片,人带眼镜,头发遮挡,光照有余等状况下的模型体现状况。算法鲁棒性的要求简略来说就是“好的时候”要好,“坏的时候”不能太坏。在 AlphaGo 和李世石对决中,李世石是赢了一盘的。李世石九段下出了“神之一手”Deepmind 团队走漏:谬误产生在第 79 手,但 AlphaGo 直到第 87 手才察觉,这期间它始终认为本人依然当先。这里点出了一个关键问题:鲁棒性。人类犯错:程度从九段降到八段。机器犯错:程度从九段降到业余。

测试方法就是用尽可能多的异样数据来笼罩进行测试。

模型平安,攻打办法有:试探性攻打、对抗性攻打两种

在试探性攻打中,攻击者的目标通常是通过肯定的办法窃取模型,或是通过某种伎俩复原一部分训练机器学习模型所用的数据来推断用户的某些敏感信息。次要分为模型窃取和训练数据窃取

对抗性攻打对数据源进行轻微批改,让人感知不到,但机器学习模型承受该数据后做出谬误的判断。比方图中的雪山,本来的预测准确率为 94%,加上噪声图片后,就有 99.99% 的概率辨认为了狗。

响应速度 是指从数据输出到模型预测输入后果的所需的工夫。对算法运行工夫的评估。

业务测试,包含业务逻辑测试,业务 & 数据正确性测试。次要关注业务代码是否合乎需要,逻辑是否正确,业务异样解决等状况。能够让产品经理提供业务的流程图,对整体业务流程有清晰的理解。

白盒测试,先让算法工程师将代码的逻辑给测试人员解说,通过解说理清思路。而后测试做代码动态查看,看是否会有根本的 bug。能够应用 pylint 工具来做代码剖析。

模型监控,我的项目公布到线上后,模型在线上继续运行,须要以固定距离检测我的项目模型的实时体现,能够是每隔半个月或者一个月,通过性能指标对模型进行评估。对各指标设置对应阀值,当低于阀值触发报警。如果模型随着数据的演变而性能降落,阐明模型曾经无奈拟合以后的数据了,就须要用新数据训练失去新的模型。

大数据辅助,机器学习算法训练和验证是一个继续改良的过程。当数据量逐渐放大时候,如何统计算法的准确率呢?这个时候须要引入大数据技术针对数据后果进行统计,依据周期性统计的准确率后果生成线性报表来反馈算法品质的变动。

四、常见的机器学习平台或者工具

1、Tensorflow 曾经跃居第一位,贡献者增长了三位数。Scikit-learn 排名第二,但依然有很大的贡献者根底。

TensorFlow 最后是由钻研人员和工程师在 Google 机器智能钻研组织的 Google Brain 团队中开发的。该零碎旨在促成机器学习的钻研,并使其从钻研原型到生产零碎的疾速和轻松过渡。

2、Scikit-learn 是用于数据挖掘和数据分析的简略而无效的工具,可供所有人拜访,并可在各种环境中重用,基于 NumPy,SciPy 和 matplotlib,开源,商业可用 – BSD 许可证。

3、K0.,一种高级神经网络 API,用 Python 编写,可能在 TensorFlow,CNTK 或 Theano 之上运行。

4、PyTorch,Tensors 和 Python 中的动静神经网络,具备弱小的 GPU 减速性能。

5、Theano 容许您无效地定义,优化和评估波及多维阵列的数学表达式。

6、Gensim 是一个收费的 Python 库,具备可扩大的统计语义,剖析语义构造的纯文本文档,检索语义类似的文档等性能。

7、Caffe 是一个粗浅的学习框架,以表白,速度和模块化为根底。它由伯克利视觉和学习核心(BVLC)和社区贡献者开发。

8、Chainer 是一个基于 Python 的独立开源框架,实用于深度学习模型。Chainer 提供灵便,直观和高性能的办法来实现全方位的深度学习模型,包含最新的模型,如递归神经网络和变分主动编码器。

9、Statsmodels 是一个 Python 模块,容许用户浏览数据,预计统计模型和执行统计测试。描述性统计,统计测试,绘图函数和后果统计的宽泛列表可用于不同类型的数据和每个估算器。

10、Shogun 是机器学习工具箱,提供各种对立和高效的机器学习(ML)办法。工具箱无缝地容许轻松组合多个数据表示,算法类和通用工具。

11、Pylearn2 是一个机器学习库。它的大部分性能都建设在 Theano 之上。这意味着您能够应用数学表达式编写 Pylearn2 插件(新模型,算法等),Theano 将为您优化和稳固这些表达式,并将它们编译为您抉择的后端(CPU 或 GPU)。

12、NuPIC 是一个基于新皮层实践的开源我的项目,称为分层工夫记忆(HTM)。HTM 实践的一部分曾经在利用中失去施行,测试和应用,HTM 实践的其余局部仍在开发中。

13、Neon 是 Nervana 基于 Python 的深度学习库。它提供易用性,同时提供最高性能。

14、Nilearn 是一个 Python 模块,用于疾速简便地统计 NeuroImaging 数据。它利用 scikit-learn Python 工具箱进行多变量统计,并应用预测建模,分类,解码或连贯剖析等应用程序。

15、Orange3 是老手和专家的开源机器学习和数据可视化。具备大型工具箱的交互式数据分析工作流程。

16、Pymc 是一个 python 模块,它实现贝叶斯统计模型和拟合算法,包含马尔可夫链蒙特卡罗。其灵活性和可扩展性使其实用于大量问题。

17、Deap 是一种新鲜的进化计算框架,用于疾速原型设计和思维测试。它旨在使算法明确,数据结构通明。它与多解决和 SCOOP 等并行机制完满协调。

18、Annoy 是一个带有 Python 绑定的 C ++ 库,用于搜寻空间中靠近给定查问点的点。它还创立了大型只读基于文件的数据结构,这些数据结构映射到内存中,以便许多过程能够共享雷同的数据。

19、PyBrain 是一个用于 Python 的模块化机器学习库。其指标是为机器学习工作和各种预约义环境提供灵便,易用且功能强大的算法,以测试和比拟您的算法。

20、Fuel 是一个数据管道框架,为您的机器学习模型提供所需的数据。打算由 Blocks 和 Pylearn2 神经网络库应用。

通过上述列出的一堆工具发现,基本上都反对 python,python 提供了大量的人工智能机器学习相干的 API,是首选语言。

各大厂机器学习平台

1. 微软的机器学习平台
https://studio.azureml.net/

2. Facebook 的利用机器学习平台

https://research.fb.com/publications/applied-machine-learning…

3. Uber 的机器学习平台

https://eng.uber.com/scaling-michelangelo/

4. Twitter 的机器学习平台

https://mp.weixin.qq.com/s?\_\_biz=MzU1NDA4NjU2MA==&mid=2247486445&idx=1&sn=f244fe2f1657c4affac0b93e33b74a65&chksm=fbe9b222cc9e3b34c19af38c35ab49cef5a2129c461ff4ab29d63497d21aee196e92fcbb642e&scene=27#wechat\_redirect

5.Databricks 开源机器学习平台 MLflow

https://mlflow.org/docs/latest/concepts.html

6. 百度机器学习 BML

https://cloud.baidu.com/doc/BML/s/Wjxbindt7

7. 阿里 PAI

https://help.aliyun.com/document_detail/72285.html?spm=a2c4g….

8. 腾讯机器学习平台

https://cloud.tencent.com/document/product/851

9. 京东 JD neuCube

https://neuhub.jd.com/neuCube

10. 美团点评 MLX 平台

https://www.infoq.cn/article/spark-flink-carbondata-best-prac…

11. 滴滴机器学习平台

https://www.infoq.cn/article/jJ4pjkf8Huf-WVlE7Xw7

12. 华为 MLS

 https://support.huaweicloud.com/productdesc-mls/zh-cn\_topic\_0122559740.html

13. 金山云智机器学习平台 (KML)

https://www.ksyun.com/post/product/KML

14. 第四范式

https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/7949…

五、参考资料

1、人工智能中 RPA、NLP、OCR 介绍:
https://blog.csdn.net/sdhgfhdshjd/article/details/115342671

2、机器学习入门(一):机器学习三要素之数据、模型、算法:
https://blog.csdn.net/liujian197905187511/article/details/104…\_medium=distribute.pc\_relevant.none-task-blog-2~default~baidujs\_title~default-0.essearch\_pc_relevant&spm=1001.2101.3001.4242

3、AI 算法实现:
https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/7949…

正文完
 0