• [其他] 斯坦福大学人工智能指数(AI Index)2022年八个要点
    2022 年度发布的报告要点可总结为以下八点: 1. AI 领域私人投资猛增,投资集中度加剧。 2021 年 AI 领域的私人投资总额约为 935 亿美元,是 2020 年私人投资总额的两倍多,但新投资的 AI 公司数量却在继续下降,从 2019 年的 1051 家和 2020 年的 762 家公司减少到 2021 年的 746 家。2020 年有 4 轮 5 亿美元以上的融资,2021 年有 15 个。 2. 美国和中国主导了 AI 跨国合作。 尽管地缘政治紧张局势加剧,但从 2010 年至 2021 年,美中两国在 AI 出版物方面的跨国合作数量最多,自 2010 年以来增加了五倍。美中之间合作产生的出版物数量是英中之间合作数量(第二高)的 2.7 倍。 3. 语言模型比以往任何时候都更有能力,但也更有偏见。 大型语言模型在技术基准上创造了新的记录,但新数据表明,更大的模型也更易于从训练数据中反映出偏见。与 2018 年被认为是 SOTA 的 1.17 亿参数模型相比,2021 年开发的 2800 亿参数模型产生的「毒性」增加了 29%。随着时间的推移,这些系统的能力显著增强,既有性能增加也暴露出潜在愈加严重的偏见。 4. AI 伦理的兴起无处不在。 自 2014 年以来,关于 AI 公平性和透明度的研究呈爆炸式增长,在伦理相关会议上的相关出版物增加了五倍。算法公平和偏见已经从主要的学术追求转变为具有广泛影响的主流研究课题。近年来,具有行业关系的研究人员在以伦理为中心的会议上发表的论文同比增加了 71%。 5. AI 变得更负担得起,性能更高。 自 2018 年以来,训练图像分类系统的成本降低了 63.6%,而训练时间提升了 94.4%。在其他 MLPerf 任务类别(如推荐、对象检测和语言处理)中出现了训练成本更低但训练时间更快的趋势,有利于 AI 技术更广泛的商业应用。 6. 数据,数据,还是数据。 跨技术基准测试的顶级结果越来越依赖于使用额外训练数据来实现新的 SOTA 结果。截止 2021 年,本报告中 10 个基准测试中有 9 个 SOTA AI 系统接受了额外数据的训练。这种趋势隐式地有利于私人机构参与者访问大量数据集。 7. 关于 AI 的全球性立法比以往任何时候都多。 AI Index 对 25 个国家的 AI 立法记录的分析显示,被通过成为法令的包含 AI 的法案数量从 2016 年的 1 项增长到 2021 年的 18 项。2021 年,西班牙、英国和美国通过与 AI 相关的法案数量最多,平均通过了三项法案。 8. 机械臂越来越便宜 AI Index 调查显示,在过去六年中,机械臂手臂的价格中位数下降了 4 倍,从 2016 年的每只手臂 50000 美元降至 2021 年的 12845 美元。机器人研究变得更易于获得和负担得起。 报告下载地址:https://aiindex.stanford.edu/report/
  • [技术干货] ModelArts 入门与案例
           为帮助用户快速上手,我们为部分常见使用场景(美食分类、垃圾分类、口罩检测、安全帽检测、长度检测等)提供了参考模型,相关模型只需要进行订阅等简单操作即可快速部署。 ModelArts 支持将模型部署为在线服务、边缘服务、批量服务 。名称简介入口【数据】Dataset-car-and-person-500已标注的街道场景中的车辆和路人数据集,目标检测,500张前往>>【数据】红绿灯、斑马线、限速、解限速数据集无人车挑战杯大赛训练集前往>>【数据】自动驾驶文本分类数据集--外卖评论外卖评论数据集,含约4000条正向评论、8000条负向评论前往>>【代码】意大利VS英格兰基于历史胜负关系等因素,对比赛进行胜负判断前往>>【代码】让照片人物动起来蒙娜丽莎,居然开口唱歌了?前往>>【代码】CNN Group InterpretationA novel deep learning model interpretation algorithm前往>>【算法】强化学习预置算法DQN, PPO, A2C, IMPALA以及APEX前往>>【算法】推荐搜索(点击率预估)-DeepFM-GPU为自研 Wide & Deep 推荐模型前往>>【算法】推荐搜索-CTR常用算法包含FM,DeepFM,DCN,Wide & Deep前往>>【算法】防疫口罩佩戴及跌倒检测基于Faster-R-CNN-resnet50的目标检测模型前往>>【算法】基于图像的花卉种类识别即便是植物学家, 分辨一种他不熟悉的花卉品种也极具挑战前往>>【算法】图像分割-Fast-SCNN提供训练代码和可用于训练的模型,用于实际场景的微调训练前往>>【算法】Aster(文字识别/PyTorch)该算法需要使用SynthText和MJSynth数据集进行训练前往>>【模型】自动驾驶理解路况、环境及对车辆运行进行决策前往>>【模型】图像分类(西安人工智能大赛冠军获奖模型)对西安景点、美食、民俗、特产、工艺品等5个大类、57个子类别图像数据进行分类前往>>【模型】声音分类基于TensorFlow, Ascend910训练, 支持CPU和GPU推理前往>>
  • [大数据] AutoML分析报告
    目  录1 AutoML超参优化原理................................................................................................................. 11.1 总体方案.......................................................................................................................................................................................... 11.2 常见的超参数优化方法................................................................................................................................................................ 11.2.1 网格寻优...................................................................................................................................................................................... 11.2.2 随机寻优...................................................................................................................................................................................... 21.2.3 贝叶斯优化.................................................................................................................................................................................. 21.2.3.1 高斯过程(GP)..................................................................................................................................................................... 41.2.3.2 SMAC......................................................................................................................................................................................... 61.2.3.3 TPE.............................................................................................................................................................................................. 61.2.4 BOHB............................................................................................................................................................................................ 72 超参数算法代码实现分析........................................................................................................... 92.1 GPEI................................................................................................................................................................................................ 112.2 SMAC............................................................................................................................................................................................. 132.3 TPE.................................................................................................................................................................................................. 152.4 不同数据规模对算法的影响..................................................................................................................................................... 161 AutoML超参优化原理1.1  总体方案1.2  常见的超参数优化方法1.1 总体方案AutoML基于vega.ml自动化机器学习分析系统,结合自动化工厂,完成大数据各个组件的客户端参数,OS参数,JDK参数的自动调优功能,降低人力消耗,极大的提高参数搜索效率。当前框架中实现的单目标超参数优化算法主要涉及:随机搜索(Random Search), 贝叶斯优化(Bayesian Optimization, e.g. SMAC, GPEI),TPE(Tree-structured Parzen Estimator), BOHB(Hyperband with Bayesian Optimization)。1.2 常见的超参数优化方法1.2.1 网格寻优网格化寻优可以说是最基本的超参数优化方法,目的是遍历搜索空间。使用这种技术,我们只需为所有超参数的可能构建独立的模型,评估每个模型的性能,并选择产生最佳结果的模型和超参数。1.2.2 随机寻优随机寻优方法在超参数网格的基础上选择随机的组合来进行模型训练。可以控制组合的数量,基于时间和计算资源的情况,选择合理的计算次数。通常并不是所有的超参数都有同样的重要性,某些超参数可能作用更显著。而随机寻优方法相对于网格化寻优方法能够更准确地确定某些重要的超参数的最佳值。1.2.3 贝叶斯优化贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。他与常规的网格搜索或者随机搜索的区别是:l   贝叶斯调参考虑之前的参数信息,不断地更新先验;网格搜索未考虑之前的参数信息l   贝叶斯调参迭代次数少,速度快;网格搜索速度慢,参数多时易导致维度爆炸l   贝叶斯调参针对非凸问题依然稳健;网格搜索针对非凸问题易得到局部最优表1-1   贝叶斯优化过程中,常见的代理模型(surrogate model)有高斯过程(Gaussian Process),SMAC(基于随机森林),TPE(Parzen Estimator)高斯模型适用于连续型变量的,范围小的参数搜索空间,与此相对的,SMAC是基于随机森林算法的实现,在大范围的搜索空间,离散型变量空间的搜索效率会更好;TPE算法也适用于大范围的搜索空间,离散型变量空间,使用 KDE (核密度估计,带有权重的一维KDEs) 来对密度进行建模。一般形式的Acquisition Funtion是关于x的函数,映射到实数空间R,表示改点的目标函数值能够比当前最优值大多少的概率,目的是权衡当前已有的结果以及探索的可能(balance exploration against exploitation),目前主要有以下几种主流的效用函数(Acquisition function)1.         POI(probability of improvement)2.         Expected Improvement3.         Confidence bound criteria1.2.3.1 高斯过程(GP)介绍贝叶斯优化调参,必须要从两个部分讲起:l   高斯过程,用以拟合优化目标函数l   贝叶斯优化,包括了“开采”和“勘探”,用以花最少的代价找到最优值上图是一张高斯分布拟合函数的示意图,可以看到,它只需要九个点,就可以大致拟合出整个函数形状1.2.3.2 SMAC贝叶斯优化中,除了代理模型(surrogate model)为高斯过程外,另一种用得比较多的代理模型为随机森林SMAC全称Sequential Model-Based Optimization forGeneral Algorithm Configuration,算法在2011被Hutter等人提出。该算法的提出即解决高斯回归过程中参数类型不能为离散的情况。由于随机森林的训练与预测时间复杂度较低,因此在SMAC中可以轻易采样候选点,因此SMAC对真实函数有噪音的情况会更加robust一点;实验表明,当参数空间较复杂且维度较大时,采用SMAC效果会更优一点;随机森林是由很多决策树构成的,不同决策树之间没有关联。当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。1.2.3.3 TPE贝叶斯优化中,代理模型(surrogate model)还可以是TPE(Tree Parzen Estimator)1.2.4 BOHBBOHB 是由此篇论文提出的一种高效而稳定的调参算法。 BO 是贝叶斯优化(Bayesian Optimization)的缩写,HB 是 Hyperband 算法的缩写。BOHB 依赖 HB(Hyperband)来决定每次跑多少组参数和每组参数分配多少资源(budget),它的改进之处是将 Hyperband 在每个循环开始时随机选择参数的方法替换成了依赖之前的数据建立模型(贝叶斯优化)进行参数选择。 一旦贝叶斯优化生成的参数达到迭代所需的配置数, 就会使用这些配置开始执行标准的连续减半过程(successive halving)。 观察这些参数在不同资源配置(budget)下的表现 g(x, b),用于在以后的迭代中用作我们贝叶斯优化模型选择参数的基准数据。以上这张图展示了 BOHB 的工作流程。 将每次训练的最大资源配置(max_budget)设为 9,最小资源配置设为(min_budget)1,逐次减半比例(eta)设为 3,其他的超参数为默认值。 那么在这个例子中,s_max 计算的值为 2, 所以会持续地进行 {s=2, s=1, s=0, s=2, s=1, s=0, ...} 的循环。 在“逐次减半”(SuccessiveHalving)算法的每一个阶段,即图中橙色框,都将选取表现最好的前 1/eta 个参数,并在赋予更多计算资源(budget)的情况下运行。不断重复“逐次减半” (SuccessiveHalving)过程,直到这个循环结束。 同时,收集这些试验的超参数组合,使用了计算资源(budget)和其表现(metrics),使用这些数据来建立一个以使用了多少计算资源(budget)为维度的多维核密度估计(KDE)模型。 这个多维的核密度估计(KDE)模型将用于指导下一个循环的参数选择。2 超参数算法代码实现分析当我们对Hive组件的同一个用例(query2)分别用3种不同的算法进行测试后发现结果如下图所示:初步得出的结论是GPEI相对可以比较快速的收敛,SMAC算法的波动比较大,但是最优解相对比较好,TPE的实现偏离预期(Vega的实现有问题,所以后续可以考虑改进)2.1  GPEI2.2  SMAC2.3  TPE2.4  不同数据规模对算法的影响2.1 GPEI高斯过程的质量仅取决于协方差函数。Matern内核的类是RBF的概括。它具有一个附加参数v,用于控制所得函数的平滑度。v越小,近似函数越不平滑。当v趋于无穷,该内核变得等同于RBF内核。如果v=1/2,则Matern内核与绝对指数内核相同。重要的中间值v=1.5是(一次微分函数)和v=2.5(两次微分函数)。针对Hive组件的其中一个用例query,分别采用了v=1.5, v=2.5进行了测试,结果如下图,发现两者差别没有特别大,可能由于参数搜索范围比较大,测试迭代次数不够多,还未达到收敛趋势,后续有待进一步测试。2.2 SMAC针对随机森林算法,我们尝试改变n_estimators和max_depth来改变树的颗树和深度,进而影响模型的训练过程(因为数据量偏少的时候容易造成欠拟合的情形,因此可以减少树的深度和颗树),验证结果如下图所示:在Hive组件,query1这个用例的测试结果上发现,n_estimator=200, max_depth=5的时候效果比较理想,相对收敛会快一点,因此可以改变原先默认的参数设置。2.3 TPE和Vega开发人员初步确认,发现他们的TPE算法开发可能存在漏洞,最后没有达到预期的效果。因此我们考虑变化acquisition function,我们考虑使用POI(Probability of Improvement)替代EI进行测试,测试结果如下图所示,发现使用POI后,算法的效果得到了明显的提升。2.4 不同数据规模对算法的影响我们采用同一个算法模型的相同的参数,对不同数据规模进行了测试,借此来评估数据规模或者集群计算节点数量是否会对算法模型的参数造成影响,以下是对SMAC和GPEI两个算法分别作出的实践。数据量规模:small: 310M    large:3.0G    huge:30.3G    gigantic:303.5G    bigdata: 606.9G double bigdata: 3.0T对SMAC各个数据集规模做了测试,发现在不同数据集规模上用相同的树深和树的数量,最后呈现的趋势是类似的,基本可以说明SMAC算法不会很明显的受到数据规模或者集群计算节点数量的变化。类似的,对GPEI各个数据集规模做了测试,发现在不同数据集规模上用相同的核函数,最后呈现的趋势也是类似的,也基本可以说明GPEI算法不会很明显的受到数据规模或者集群计算节点数量的变化。
  • [常见FAQ] 请问下在线训练和正式赛有啥区别啊???
    RT,任务书一样吗,任务设置一样吗,还是说会增加条件或是约束???
  • [大数据] spark ml 随机森林解析
    一、背景使用 Spark 机器学习库来做机器学习工作,可以说是非常的简单,通常只需要在对原始数据进行处理后,然后直接调用相应的 API 就可以实现。但是要想选择合适的算法,高效准确地对数据进行分析,可能还需要深入了解下算法原理,以及相应 Spark MLlib API 实现的参数的意义。目前,Spark MLlib 中实现了 tree 相关的算法,决策树 DT(DecisionTree),随机森林 RF(Random Forest),GBDT(Gradient Boosting Decision Tree),其基础都是RF,DT 是 RF 一棵树时的情况,而 GBDT 则是循环构建DT,GBDT与DT的代码是非常简单明了的,本文会对 Random Forest 的原理和源码进行分析。二、决策树与随机森林首先我们来对决策树和随机森林进行简单的了解:决策树 GBDT-Decision Tree(DT)关键问题节点分裂:使用的特征及阈值特征选取:最小均方差、信息增益(ID3)、信息增益率(C4.5)阈值:从特征值中选取、等步长选取最大最小值之间的值叶子节点的值:叶子所属数据的均值(回归)、对应类别(分类)截止条件:达到叶子节点数上限、继续划分无法使误差减小          在决策树的训练中,如上图所示,就是从根节点开始,不断的分裂,直到触发截止条件,在节点的分裂过程中要解决的问题其实就两个:分裂点:一般就是遍历所有特征的所有特征值,选取impurity最大的分成左右孩子节点,impurity的选取有信息熵(分类),最小均方差(回归)等方法预测值:一般取当前最多的class(分类)或者取均值(回归)随机森林随机森林就是构建多棵决策树投票,在构建多棵树过程中,引入随机性,一般体现在两个方面,一是每棵树使用的样本进行随机抽样,分为有放回和无放回抽样。二是对每棵树使用的特征集进行抽样,使用部分特征训练。在训练过程中,如果单机内存能放下所有样本,可以用多线程同时训练多棵树,树之间的训练互不影响。三、Spark随机森林概要(训练步骤)随机森林中的每个树模型之间没有关联,可以独立训练,这为随机森林的分布式训练提供可能。具体的训练步骤如下:1.将每个树模型的根节点取出,加入栈中2.将k个节点从栈中取出,组成一个训练集合group,k值由内存限制决定,确定特征采样3.从各分区上计算并汇合分布信息,并计算待切分节点的最优切分点4.根据切分点生成新的叶子节点,并更新nodeIdCache5.若新生成的叶子节点没有达到最小不纯度限制和最小样本数量的限制,则入栈6.若栈非空 goto 2.7.剪枝合并多余节点,结束spark实现分布式随机森林优化点Spark 平台上,传统单机形式的迭代方式必须要进行相应改进才能适用于分布式环境,这是因为在分布式环境下,数据也是分布式的,算法设计不得当会生成大量的 IO 操作,影响算法效率三个优化策略。1.切分点抽样统计在单机环境下的决策树对连续变量进行切分点选择时,一般是通过对特征点进行排序,然后取相邻两个数之间的点作为切分点,如果在分布式环境下如此操作的话,会带来大量的网络传输操作,特别是当数据量达到 PB 级时,算法效率将极为低下 Spark 中的随机森林在构建决策树时,会对各分区采用一定的子特征策略进行抽样, 然后生成各个分区的统计数据,并最终得到切分点。2.切分特征装箱(Binning)决策树的构建过程就是对特征的取值不断进行划分的过程对于离散的特征,如果有M个值,最多个划分如果值是有序的,那么就最多 M-1个划分(按老,中,少的序,那么只有 m-1 个,即 2 种划分,老|中,少;老,中|少)划分的点就是 split(切分点),划分出的区间就是 bin。对于连续特征 ,理论上 split 是无数的,在分布环境下不可能取出所有的值,因此它采用的是1中的切点抽样统计方法。3.逐层训练(level-wise training)单机版本的决策数生成过程是通过递归调用(本质上是深度优先)的方式构造树,在构造树的同时,需要移动数据,将同一个子节点的数据移动到一起分布式环境下采用的策略是逐层构建树节点(本质上是广度优先),这样遍历所有数据的次数 等于所有树中的最大层数。每次遍历时,只需要计算每个节点所有切分点统计参数,遍历完后,根据节点的特征划分,决定是否切分,以及如何切分。总体时序图具体分析代码,可以得出以下时序图具体流程详解随机森林最重要的就是寻找最佳split的过程,首先要计算所有可能的split,流程图如下:找到所有可能的split了,就需要再其中挑选出最佳split,流程图如下:在分割结束后,最后一步需要在driver端建树,流程图如下:
  • [技术干货] [Python从零到壹] 三十六.图像处理基础篇之图像算术与逻辑运算详解[转载]
    链接:https://bbs.huaweicloud.com/blogs/336336欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。该系列文章主要讲解Python OpenCV图像处理和图像识别知识,前期主要讲解图像处理基础知识、OpenCV基础用法、常用图像绘制方法、图像几何变换等,中期讲解图像处理的各种运算,包括图像点运算、形态学处理、图像锐化、图像增强、图像平滑等,后期研究图像识别、图像分割、图像分类、图像特效处理以及图像处理相关应用。上一篇文章介绍了如何使用OpenCV绘制各类几何图形,包括cv2.line()、v2.circle()、cv2.rectangle()、cv2.ellipse()、cv2.polylines()、cv2.putText()函数。这篇文章将详细讲解图像算法运算与逻辑运算,包括图像加法、图像减法、图像与运算、图像或运算、图像非运算与图像异或运算。让我们来对比下这些运算在图像中能实现什么样的效果。希望文章对您有所帮助,如果有不足之处,还请海涵。文章目录:一.图像加法运算二.图像减法运算三.图像与运算四.图像或运算五.图像非运算六.图像异或运算七.总结下载地址:https://github.com/eastmountyxz/Python-zero2one前文赏析:第一部分 基础语法[Python从零到壹] 一.为什么我们要学Python及基础语法详解[Python从零到壹] 二.语法基础之条件语句、循环语句和函数[Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象第二部分 网络爬虫[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例[Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解[Python从零到壹] 六.网络爬虫之BeautifulSoup爬取豆瓣TOP250电影详解[Python从零到壹] 七.网络爬虫之Requests爬取豆瓣电影TOP250及CSV存储[Python从零到壹] 八.数据库之MySQL基础知识及操作万字详解[Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解[Python从零到壹] 十.Selenium爬取在线百科知识万字详解(NLP语料构造必备技能)第三部分 数据分析和机器学习[Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解[Python从零到壹] 十二.机器学习之回归分析万字总结[Python从零到壹] 十三.机器学习之聚类分析万字总结全网首发(K-Means、BIRCH、层次聚类、树状聚类)[Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验) [Python从零到壹] 十五.文本挖掘之数据预处理、Jieba工具和文本聚类万字详解[Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解[Python从零到壹] 十七.可视化分析之Matplotlib、Pandas、Echarts入门万字详解[Python从零到壹] 十八.可视化分析之Basemap地图包入门详解[Python从零到壹] 十九.可视化分析之热力图和箱图绘制及应用详解[Python从零到壹] 二十.可视化分析之Seaborn绘图万字详解[Python从零到壹] 二十一.可视化分析之Pyechart绘图万字详解[Python从零到壹] 二十二.可视化分析之OpenGL绘图万字详解[Python从零到壹] 二十三.十大机器学习算法之决策树分类分析详解(1)[Python从零到壹] 二十四.十大机器学习算法之KMeans聚类分析详解(2)[Python从零到壹] 二十五.十大机器学习算法之KNN算法及图像分类详解(3)[Python从零到壹] 二十六.十大机器学习算法之朴素贝叶斯算法及文本分类详解(4)[Python从零到壹] 二十七.十大机器学习算法之线性回归算法分析详解(5)[Python从零到壹] 二十八.十大机器学习算法之SVM算法分析详解(6)[Python从零到壹] 二十九.十大机器学习算法之随机森林算法分析详解(7)[Python从零到壹] 三十.十大机器学习算法之逻辑回归算法及恶意请求检测应用详解(8)[Python从零到壹] 三十一.十大机器学习算法之Boosting和AdaBoost应用详解(9)[Python从零到壹] 三十二.十大机器学习算法之层次聚类和树状图聚类应用详解(10)第四部分 Python图像处理基础[Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置[Python从零到壹] 三十四.OpenCV入门详解——显示读取修改及保存图像[Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形[Python从零到壹] 三十六.图像处理基础篇之图像算术与逻辑运算详解第五部分 Python图像运算和图像增强第六部分 Python图像识别和图像处理经典案例第七部分 NLP与文本挖掘第八部分 人工智能入门知识第九部分 网络攻防与AI安全第十部分 知识图谱构建实战扩展部分 人工智能高级案例一.图像加法运算图像加法运算主要有两种方法。第一种是调用Numpy库实现,目标图像像素为两张图像的像素之和;第二种是通过OpenCV调用add()函数实现。第二种方法的函数原型如下:dst = add(src1, src2[, dst[, mask[, dtype]]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。– dtype表示输出数组的可选深度注意,当两幅图像的像素值相加结果小于等于255时,则输出图像直接赋值该结果,如120+48赋值为168;如果相加值大于255,则输出图像的像素结果设置为255,如(255+64) 赋值为255。下面的代码实现了图像加法运算。输出如图4-1所示,左边为“小珞珞”的原始图像,右边为像素值增加100像素后的图像,输出图像显示更偏白。二.图像减法运算图像减法运算主要调用subtract()函数实现,其原型如下所示:dst = subtract(src1, src2[, dst[, mask[, dtype]]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。– dtype表示输出数组的可选深度具体实现代码如下所示:输出如图4-2所示,左边为原始图像,右边为像素值减少50像素后的图像,输出图像显示更偏暗。三.图像与运算与运算是计算机中一种基本的逻辑运算方式,符号表示为“&”,其运算规则为:0&0=00&1=01&0=01&1=1图像的与运算是指两张图像(灰度图像或彩色图像均可)的每个像素值进行二进制“与”操作,实现图像裁剪。dst = bitwise_and(src1, src2[, dst[, mask]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。下面代码是通过图像与运算实现图像剪裁的功能。输出如图4-3所示,原始图像与圆形进行与运算之后,提取了其中心轮廓。同时输出图像的形状为377×326。注意,两张图像的大小和类型必须一致。四.图像或运算逻辑或运算是指如果一个操作数或多个操作数为 true,则逻辑或运算符返回布尔值 true;只有全部操作数为false,结果才是 false。图像的或运算是指两张图像(灰度图像或彩色图像均可)的每个像素值进行二进制“或”操作,实现图像裁剪。其函数原型如下所示:dst = bitwise_or(src1, src2[, dst[, mask]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。下面代码是通过图像或运算实现图像剪裁的功能。输出如图4-4所示,原始图像与圆形进行或运算之后,提取了图像除中心原形之外的像素值。五.图像非运算图像非运算就是图像的像素反色处理,它将原始图像的黑色像素点转换为白色像素点,白色像素点则转换为黑色像素点,其函数原型如下:dst = bitwise_not(src1, src2[, dst[, mask]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。图像非运算的实现代码如下所示。原始图像非运算之后输出如图4-5所示。六.图像异或运算逻辑异或运算(xor)是一个数学运算符,数学符号为“⊕”,计算机符号为“xor”,其运算法则为:如果a、b两个值不相同,则异或结果为1;如果a、b两个值相同,异或结果为0。图像的异或运算是指两张图像(灰度图像或彩色图像均可)的每个像素值进行二进制“异或”操作,实现图像裁剪。其函数原型如下所示:dst = bitwise_xor(src1, src2[, dst[, mask]])– src1表示第一张图像的像素矩阵– src2表示第二张图像的像素矩阵– dst表示输出的图像,必须和输入图像具有相同的大小和通道数– mask表示可选操作掩码(8位单通道数组),用于指定要更改的输出数组的元素。图像异或运算的实现代码如下所示。原始图像与圆形进行异或运算之后输出如图4-6所示。七.总结本文详细介绍了图像处理的算术运算与逻辑运算,包括图像加法、图像减法、图像与运算、图像或运算、图像非运算与图像异或运算,并以“小珞珞”图像为案例进行讲解,希望对您有所帮助。感谢在求学路上的同行者,不负遇见,勿忘初心。图像处理系列主要包括三部分,分别是:希望能与大家一起在华为云社区共同成长,原文地址:https://blog.csdn.net/Eastmount/article/details/122692101(By:娜璋之家 Eastmount 2022-03-09 夜于武汉)
  • [其他] 华为诺亚开源首个亿级中文多模态数据集-悟空
    华为诺亚方舟实验室的研究者提出了一个大规模的中文的跨模态数据库 ——「悟空」,并在此基础上对不同的多模态预训练模型进行基准测试,有助于中文的视觉语言预训练算法开发和发展。在大数据上预训练大规模模型,对下游任务进行微调,已经成为人工智能系统的新兴范式。BERT 和 GPT 等模型在 NLP 社区中越来越受欢迎,因为它们对广泛的下游任务甚至零样本学习任务具有很高的可迁移性,从而产生了 SOTA 性能。最近的工作,如 CLIP、ALIGN 和 FILIP 进一步将这一范式扩展到视觉语言联合预训练 (VLP) 领域,并在各种下游任务上显示出优于 SOTA 方法的结果。这一有希望的方向引起了行业和研究人员的极大关注,将其视为通向下一代 AI 模型的途径。 促成 VLP 模型成功的原因有两个。一方面,更高级的模型架构(如 ViT/BERT)和训练目标(如对比学习)通常能够提升模型泛化能力和学得表示的稳健性。另一方面,由于硬件和分布式训练框架的进步,越来越多的数据可以输入到大规模模型中,来提高模型的泛化性、可迁移性和零样本能力。在视觉或者语言任务中,先在大规模数据(例如图像分类中的 JFT-300M、T5 中的 C4 数据集)上预训练,之后再通过迁移学习或者 prompt 学习已被证明对提高下游任务性能非常有用。此外,最近的工作也已经显示了 VLP 模型在超过 1 亿个来自网络的有噪声图像 - 文本对上训练的潜力。 因此,在大规模数据上预训练的 VLP 模型的成功促使人们不断地爬取和收集更大的图文数据集。下表 1 显示了 VLP 领域中许多流行的数据集的概述。诸如 Flickr30k、SBU Captions 和 CC12M 等公开可用的视觉语言(英语)数据集的样本规模相对较小(大约 1000 万),而规模更大的是像 LAION-400M 的数据集。但是,直接使用英文数据集来训练模型会导致中文翻译任务的性能大幅下降。比如,大量特定的中文成语和俚语是英文翻译无法覆盖的,而机器翻译往往在这些方面会带来错误,进而影响任务执行。 转发自:https://www.jiqizhixin.com/articles/2022-02-25-5
  • [其他] 给GNN一堆数据,它自己发现了万有引力定律
    如果牛顿没被苹果砸中,GNN 和符号回归也能发现万有引力定律?机器学习 (ML) 推动了科学的巨大进步,从粒子物理学到结构生物学再到宇宙学,机器学习能够在大型数据集中学习特征,对不同的对象进行分类,并执行参数推断,以及更具开创性的应用,例如自回归语言模型、预测蛋白质结构,以及蛋白质功能预测。机器学习强大的学习能力,我们不禁会问,机器学习能否仅仅通过观察我们的太阳系来重新发现万有引力定律?牛顿的万有引力定律指出,两个质点彼此之间相互吸引的作用力,是与它们的质量乘积成正比,并与它们之间的距离成平方反比。它是经典力学的一部分,是在 1687 年于《自然哲学的数学原理》中首次发表的,并于 1687 年 7 月 5 日首次出版。近日来自萨塞克斯大学、伦敦大学学院等机构的研究者在论文《 Rediscovering orbital mechanics with machine learning 》中对上述问题进行的解答,他们的回答是:可以。转发自:https://www.jiqizhixin.com/articles/2022-03-08-4
  • [技术干货] 不拆分单词也可以做NLP,哈工大最新模型在多项任务中打败BERT,还能直接训练中文
    众所周知,BERT在预训练时会对某些单词进行拆分 (术语叫做“WordPiece”)。比如把“loved”、“loving”和“loves”拆分成“lov”、“ed”、“ing”和”es”。目的是缩减词表、加快训练速度,但这样一来,在某些时候反而会阻碍模型的理解能力。比如把”lossless”分成”loss”和”less”的时候。现在,来自哈工大和腾讯AI Lab的研究人员,尝试利用不做单词拆分的词汇表开发了一个BERT风格的预训练模型——WordBERT。结果,这个WordBERT在完形填空测试和机器阅读理解方面的成绩相比BERT有了很大提高。在其他NLP任务,比如词性标注(POS-Tagging)、组块分析(Chunking)和命名实体识别(NER)中,WordBERT的表现也都优于BERT。由于不用分词,这个WordBERT还可以直接进行中文训练。更值得一提的是,它在性能提升的同时,推理速度并没有变慢。可谓一举多得。NO WordPieces与BERT类似,WordBERT包含两个组件:词向量(word embedding)和Transformer层。和以前的模型一样,WordBERT采用多层双向Transformer来学习语境表示(contextualized representation)。word embedding则是用来获得单词向量表示的参数矩阵,与把单词分成WordPiece的BERT相比,WordBERT的词汇由完整的单词组成。他们用自然语言处理软件包Spacy处理数据,生成了两个词汇表,一个规模为500K,一个为1M。词汇表中还被单独添加了5个特殊单词:[PAD]、[UNK]、 [CLS]、[SEP]和[MASK]。通过不同的词汇表规模、初始化配置和不同语言,最后研究人员一共训练出四个版本的WordBERT:WordBERT-500K、WordBERT-1M、WordBERT-Glove和WordBERT-ZH。它们的配置如上,嵌入参数都是随机初始化的,嵌入维数和基准BERT保持一致。其中WordBERT-Glove用的词汇表是现成的Glove vocabulary,里面包含约190万个未编码的单词,该模型由相应的单词向量(word vectors)在WordBERT之上初始化而来。WordBERT-ZH则是用中文词汇训练出来的WordBERT,它也保持了768的词嵌入维数。性能与速度兼具在测试环节中,完形填空的测试数据集来自CLOTH,它由中学教师设计,通常用来对中国初高中学生进行入学考试。其中既有只需在当前句子中进行推理的简单题,也有需要在全文范围内进行推理的难题。WordBERT-1M获得了最佳成绩,并接近人类水平。它在高中题比BERT高了3.18分,初中题高了2.59分,这说明WordBERT在复杂任务中具有更高的理解和推理能力。在词性标注、组块分析和命名实体识别(NER)等分类任务中,WordBERT的成绩如下:相比来看,它在NER任务上的优势更明显一些(后两列)。研究人员推测,这可能是WordBERT在学习低频词的表征方面有优势,因为命名实体(named entities)往往就是一些不常见的稀有词。对于“中文版”WordBERT-ZH,研究人员在CLUE benchmark上的各种任务中测试其性能。除了BERT,对比模型还包括WoBERT和MarkBERT,这也是两个基于BERT预训练的中文模型。结果,WordBERT-ZH在四项任务中都打败了所有其他对比模型,在全部五项任务上的表现都优于基线BERT,并在TNEWS(分类)、OCNLI(推理)和CSL(关键字识别)任务上取得了3分以上的差距。这说明,基于词的模型对中文也是非常有效的。最后,实验还发现:性能不差的WordBERT,在不同任务上的推理速度也并未“落于下风”。
  • [其他] 深度学习随机取样与batch大小选择
    随机取样随机取样与全局训练是无关的,因为在全局训练中所有的样本都会被用来估计梯度。而在随机梯度下降和小批量梯度下降中,随机取样是十分重要的。这是为了得到梯度的无偏估计,样本必须是独立同分布的。如果训练过程中的一些样本不是随机从训练集中取出的,模型的参数可能会沿着一个方向偏移太多。以下是两种随机取样的思路:在语音处理任务中,若所有样本都可以被载入内存中,那可以通过对样本索引进行相应的处理抽样就可以达到样本抽样的效果。在语音处理任务中,若无法将所有样本载入内存进行计算,可以采用滚动窗的方法每次加载一块数据进内存,然后再窗内随机取样。batch大小选择在训练过程中都需要从训练样本的一个批量集合中进行梯度计算,而批量块大小的选择同时会影响收敛速度和模型结果。批量块选择的两种常见情况:整个训练集:选择整个训练集进行模型训练是最常见的情形。随机训练集:代表性方法就是随机梯度下降(SGD),每次只需要用一个样本进行梯度的计算和迭代。综合上述两中批量块的选择情况,提出这种方案“小批量”进行训练,迭代速度比整个数据集更快,比随机训练集更容易收敛。在语音识别任务中,前期可以选择较小的批量块,比如64到256个样本,而后期换用较大的批量块,比如1024-8096个样本。学习率从梯度下降算法的角度来说,通过选择合适的学习率,可以使梯度下降法得到更好的性能。学习率,即参数到达最优值过程的速度快慢,当你学习率过大,即下降的快,很容易在某一步跨过最优值,当你学习率过小时,长时间无法收敛。因此,学习率直接决定着学习算法的性能表现。可以根据数据集的大小来选择合适的学习率,当使用平方误差和作为成本函数时,随着数据量的增多,学习率应该被设置为相应更小的值(从梯度下降算法的原理可以分析得出)。另一种方法就是,选择不受数据集大小影响的成本函数-均值平方差函数。一般常用的学习率有0.00001,0.0001,0.001,0.003,0.01,0.03,0.1,0.3,1,3,10。
  • [其他] 机器学习的方法论
       在深度学习中,经常有“end-to-end(端到端)”学习的提法,与之相对应的传统机器学习是“Divide and Conquer(分而治之)”。这些都是什么意思呢?    “end-to-end”(端到端)说的是,输入的是原始数据(始端),然后输出的直接就是最终目标(末端),中间过程不可知,因此也难以知。比如说,基于深度学习的图像识别系统,输入端是图片的像素数据,而输出端直接就是或猫或狗的判定。这个端到端就是:像素-->判定。    再比如说,“end-to-end”的自动驾驶系统,输入的是前置摄像头的视频信号(其实也就是像素),而输出的直接就是控制车辆行驶指令(方向盘的旋转角度)。这个端到端就是:像素-->指令。    就此,有人批评深度学习就是一个黑箱(Black Box)系统,其性能很好,却不知道为何而好,也就是说,缺乏解释性。其实,这是由于深度学习所处的知识象限决定的。从图1可以看出,深度学习,在本质上,属于可统计不可推理的范畴。“可统计”是很容易理解的,就是说,对于同类数据,它具有一定的统计规律,这是一切统计学习的基本假设。那“不可推理”又是什么概念?其实就是“剪不断、理还乱”的非线性状态了。    在哲学上讲,这种非线性状态,是具备了整体性的“复杂系统”,属于复杂性科学范畴。复杂性科学认为,构成复杂系统的各个要素,自成体系,但阡陌纵横,其内部结构难以分割。简单来说,对于复杂系统,1+1≠2,也就是说,一个简单系统,加上另外一个简单系统,其效果绝不是两个系统的简单累加效应,而可能是大于部分之和。因此,我们必须从整体上认识这样的复杂系统。于是,在认知上,就有了从一个系统或状态(end)直接整体变迁到另外一个系统或状态(end)的形态。这就是深度学习背后的方法论。    与之对应的是“Divide and Conquer(分而治之)”,其理念正好相反,在哲学它属于“还原主义(reductionism,或称还原论)”。在这种方法论中,有一种“追本溯源”的蕴意包含其内,即一个系统(或理论)无论多复杂,都可以分解、分解、再分解,直到能够还原到逻辑原点。    在意象上,还原主义就是“1+1=2”,也就是说,一个复杂的系统,都可以由简单的系统简单叠加而成(可以理解为线性系统),如果各个简单系统的问题解决了,那么整体的问题也就得以解决。比如说,很多的经典力学问题,不论形式有多复杂,通过不断的分解和还原,最后都可以通过牛顿的三大定律得以解决。经典机器学习(位于第Ⅱ象限),在哲学上,在某种程度上,就可归属于还原主义。传统的机器学习方式,通常是用人类的先验知识,把原始数据预处理成各种特征(feature),然后对特征进行分类。    然而,这种分类的效果,高度取决于特征选取的好坏。传统的机器学习专家们,把大部分时间都花在如何寻找更加合适的特征上。因此,早期的机器学习专家们非常苦逼,故此,传统的机器学习,其实可以有个更合适的称呼——特征工程(feature engineering)。    但这种苦逼,也是有好处的。这是因为,这些特征是由人找出来的,自然也就为人所能理解,性能好坏,机器学习专家们可以“冷暖自知”,灵活调整。
  • [其他] 基于人工智能的组学数据建模
    在过去,高通量测序技术的出现和成熟彻底改变了生物医学领域的面貌。改技术能够一次并行地得到几十万甚至上千万的DNA分子的数据信息,随着测序成本的降低,该技术已经应用于生物医疗领域的各个方面研究,并产生了大量的组学数据。如何能够更好地利用生物医疗的各方面研究,并产生了大量的组学数据,如何能够更好地利用大规模组学数据对生物医学问题进行建模就显得尤为重要。常见组学数据类型1)  在基因组学领域,微陈列技术和下一代DNA测序技术广泛用于全基因组拷贝数变异和单核苷酸多态性等DNA突变的鉴定。2)在表观基因组学领域,甲基化DNA免疫沉淀和亚硫酸盐测序用于分析DNA甲基化,染色质免疫沉淀测序用于鉴定染色质相关蛋白的结合位点。3)在转录组学领域,微陈列和RNA测序用于定量整个转录组的表达谱。4)在蛋白质组学领域,液相色谱-串联质谱法和同位素标记和标签用于分析代谢标志物5)在代谢组学领域,核磁共振和质谱仪用于分析代谢标记物组学数据可提供DNA,RNA,组蛋白修饰,蛋白质,代谢物等不同分子系统水平的全面信息,已广泛用于生物科研,合成生物,药物研发,个性化治疗等领域。一、定点组学数据特征通过高通量测序技术对不同分子水平的组学信息进行定量后,得到的数据都是非序列数据,如基因突变,全基因组的基因拷贝数变异,RNA表达式,蛋白质表达量,这些数据具有以下特征;1)原始数据含有几千或者几万个特征,大部分特征之间是相互独立的2)特征点的数目比较多,一般大于训练样本数目或者训练样本数目处于同一个数量级3)原始数据的特征之间没有明显的时间维度和空间维度相关性有严格的先后关系和前后左右关系4)原始数据的特征之间存在层次性的相互作用二、基因组学建模方法CNN算法中的卷积操作能够抽取层次特征,进而组合形成高层次特征对数据进行建模。RNN虽然在结构上和CNN有比较大的区别,但是其本质也是通过整合序列上前后特征来实现提取信息的功能,CNN和RNN非常适合从图像,文本,语音等数据中提取特征,这些数据之间具有局部相关性,即输入的特征值和周围的特征值存在相关性,如果将输入特征的顺序,则可能影响其语义信息。随着ResNet等算法的出现,训练深度神经网络更加容易,因此有必要将MLP,AE,VAE等向更深的方向做扩展,然而,由于组学数据的特殊性,需要投入大量的精力去试错才能找到最优的神经网络结构,随着AutoML技术的逐渐成熟,可以将很多模型框架的设计问题转为自动搜索问题。因此,可以构建面向基因组学建模的自动化人工智能系统,可以在提升基因组学数据分析和建模效果的同时,大幅度降低人工技能要求的门槛。
  • [其他] K近邻算法(KNN)原理小结(4)
    KNN算法之训练样本不平衡情况若正负样本处于不平衡状态,运用投票决策的KNN算法判断输入样本的所属类别:结果显示输入样本为绿色类 。原因是红色类的个数远远小于绿色样本,导致出现的分类错误 。(1)若分类决策选择限定半径最近邻法,即以输入样本为圆心,最大半径R的圆内选择出现次数最多的类做为输入样本的类 。如下图,黑色样本的分类结果正确。(2)投票法是默认每个样本的权重相等,我们假定权重与距离成反比,即距离越大,对结果的影响越小,那么该样本的权重也越小,反之,权重则越大,根据权重对输入样本进行分类 。这种思想与adaBoost算法相似,分类性能好的弱分类器给予一个大的权重 。分类过程:(1)、选择与输入样本距离X0最近的K个训练样本Xi(i = 1,2,...,K),d(X0,Xi)表示输入样本和训练样本的距离。 (2)、根据距离与样本成反比的性质将距离转化成权重Wi,Wi表示输入样本X0与训练样本Xi的权重。(3)、我们累加每一类的样本权重,并认为该权重占所有权重和的比例是该类的生成概率,概率最大的类就是输入样本的分类结果。假设目标是二分类{C1,C2},表达式:若,则分类结果为C1类,反之C2类。回归过程:(1)(2)步骤与分类过程一直,第(3)步使用如下表达式得到回归值:其中,y为输出结果,f(xi)为最近邻样本的值。若权重相同的话,则输出结果为K个训练样本的平均值。用权重思想重新对上例进行分类,可得输入样本为红色类。
  • [其他] K近邻算法(KNN)原理小结(3)
    KNN算法之暴力实现方法暴力搜索(brute-force search)是线性扫描输入实例与每一个训练实例的距离并选择前k个最近邻的样本来多数表决,算法简单,但是当训练集或特征维度很大时,计算非常耗时,故这种暴力实现原理是不可行的 。4. KNN算法之kd树实现方法kd树是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,构造kd树相当于不断用垂直于坐标轴的超平面将k维空间进行划分,构成一系列的K维超矩形区域,kd树省去了对大部分数据的搜索,大大的较少了计算量。kd树的KNN算法实现包括三部分:kd树的构建,kd树的搜索和kd树的分类。1. 构建kd树kd树实质是二叉树,其划分思想与cart树一致,即切分使样本复杂度降低最多的特征。kd树认为特征方差越大,则该特征的复杂度亦越大,优先对该特征进行切分 ,切分点是所有实例在该特征的中位数。重复该切分步骤,直到切分后无样本则终止切分,终止时的样本为叶节点。【例】给定一个二维空间的数据集:构造kd树的步骤:(1)、数据集在维度和的方差分别为6.9和5.3,因此首先从维度进行切分。(2)、 数据集在维度的中位数是7,以平面=7将空间分为左右两个矩形。(3)、分别对左右两个矩形的样本在维度的中位数进行切分。(4)、重复步骤(2)(3),直到无样本,该节点为叶子节点。如下图,绿色为叶子节点 ,红色为节点和根节点。2. KD树搜索(1)、搜索路径从根节点到叶节点,在KD树里面找到包含目标点的叶子节点。(2)、搜索路径从叶节点到根节点,找到距离目标点最近的样本实例点。过程不再复述,具体方法请参考李航博士《统计学习方法》。3. KD树预测每一次搜寻与输入样本最近的样本节点,然后忽略该节点,重复同样步骤K次,找到与输入样本最近邻的K个样本 ,投票法确定输出结果。
  • [其他] K近邻算法(KNN)原理小结(2)
    KNN算法三要素K值的选择、距离度量和分类决策规则是K近邻算法的三个基本要素。当三个要素确定后,对于任何一个新的输入实例,它所属的Y值也确定了,本节介绍了三要素的含义。1. 分类决**策规则**KNN算法一般是用多数表决方法,即由输入实例的K个邻近的多数类决定输入实例的类。这种思想也是经验风险最小化的结果。训练样本为(xi , yi)。当输入实例为 x,标记为c,是输入实例x的k近邻训练样本集。我们定义训练误差率是K近邻训练样本标记与输入标记不一致的比例,误差率表示为:因此,要使误差率最小化即经验风险最小,就要使(2.1)式右端的最大,即K近邻的标记值尽可能的与输入标记一致,所以多数表决规则等价于经验风险最小化。2. K值的选择:K取值较小时,模型复杂度高,训练误差会减小,泛化能力减弱;K取值较大时,模型复杂度低,训练误差会增大,泛化能力有一定的提高。KNN模型的复杂度可以通过对噪声的容忍度来理解,若模型对噪声很敏感,则模型的复杂度高;反之,模型的复杂度低。为了更好理解模型复杂度的含义,我们取一个极端,分析K=1和K="样本数"的模型复杂度。由上图可知,K=1时,模型输出的结果受噪声的影响很大。由上图可知,样本数等于7,当K=7时,不管输入数据的噪声有多大,输出结果都是绿色类,模型对噪声极不敏感,但是模型太过简单,包含的信息太少,也是不可取的。通过上面两种极端的K选取结果可知,K值选择应适中,K值一般小于20,建议采用交叉验证的方法选取合适的K值。3. 距离度量KNN算法用距离来度量两个样本间的相似度,常用的距离表示方法:(1)、欧式距离(2)、曼哈顿距离(3)、闵可夫斯基距离可以看出,欧式距离是闵可夫斯基距离在p=2时的特例,而曼哈顿距离是p=1时的特例 。文章来源于机器学习算法那些事 ,作者石头
总条数:5195 到第
上滑加载中