机器学习流程:
数据获取 -----> 特征工程 -----> 建立模型 ------> 评估与应用
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数量级的差距。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下。如果放不下就得考虑改进算法或者使用一些降维的技巧了。如果数据量实在太大,那就要考虑分布式了。
良好的数据要能够提取出良好的特征才能真正发挥作用。
特征预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
直到这一步才用到我们上面说的算法进行训练。现在很多算法都能够封装成黑盒供人使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析 也是机器学习至关重要的步骤。通过观察误差样本全面分析产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题……
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
这一部分内容主要跟工程实现的相关性比较大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。 不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
人脸识别的起源
自动驾驶的福音
在医学上的应用
分辨率的重构
超越人类的AI智能体
懂你的AI
近几年,深度学习领域的热门研究主要集中在以下几个方向:生成对抗网络、迁移学习、强化学习、联邦学习以及AutoML。
其中,在算法方面,谷歌提出的注意力机制以及基于该思想衍生出的BERT模型大幅刷新了自然理解领域所有数据集的评价指标,业内对此做出这样的评价:“自然语言处理是未来深度学习领域皇冠上的明珠。”
基于底层语言理解模型的突破,让机器翻译、人机对话、文本分析、AI音乐、AI写作等许多过去不可想象的任务都成为可能。
让机器为人类服务是人类一直以来的美好梦想,随着深度学习的发展,这个梦想正在逐渐实现。过去为了要让机器具有智能,需要人为赋予其大量的逻辑判断命令;而如今伴随着图像技术的成熟以及深度强化学习的应用,机器人在路上飞速奔跑、识别并跨越障碍物,乃至花式跳舞都已经成为现实。
除此之外,AI机器人还能够与玩家联机对战《星际争霸》,并且一般的职业选手都没法战胜它。另一个值得关注的是京东正在打造的无人送货机,它能够自动规划路线、躲避障碍、识别目标客户并完成货物投递,是非常值得期待的一项新型服务。
以上的种种发展都证明了,AI是这个时代不可阻挡的一个趋势。然而就当下而言,由于AI是一个较为新潮的事物,实现起来的技术难度较大,因此在各行各业的普及难度也较大,但是能够让AI开花结果的正是非IT领域的各行各业。
另外,目前拥抱AI的都是主流的大公司或者科技含量较高的创业公司,而传统的行业则缺乏相应的资源及人才。为了普及人工智能,降级人工智能的门槛,并且方便人工智能的开发,实现人人都会人工智能,自动化机器学习(AutoML)这个概念应运而生。
AutoML是一个自动模型学习的平台,其核心思想是自动化创造AI模型,把中间的复杂流程与烦琐的步骤都交给机器来自动完成,使用者只要指定输入的数据和任务类型即可。
当前许多企业通过这种技术自动化生成了许多优秀的模型,例如小米公司通过神经架构搜索技术得到了最优的图像超分辨率模型,用于在手机端提升图像质量。除此之外,微软、亚马逊、谷歌、Salesforce等公司也都为顾客提供了类似的平台,使得对AI不那么熟悉的人也可以方便地应用AI技术并使其在自己的行业内落地。
随着深度学习的应用越来越广泛,3个成熟的研究领域逐渐形成,分别是计算机视觉、自然语言处理以及语音领域,目前AI创业公司也主要集中在这些领域。
计算机视觉(Computer Vision,CV),顾名思义就是计算机拥有像人类一样“看”的能力。在这里“看”的具体含义是指:不仅要将当前的图像输入到计算机中,计算机还应该具有智力,可以根据要求针对当前图像输出一定的分析结果。
这个过程可以定义为几个核心任务:目标分类、目标检测、目标分割以及目标跟踪。
目标分类(Target Classification)
就是基于分类任务的目标识别问题,即计算机根据给定的数据,找出这些数据中哪些是所需的目标。例如,猫狗分类问题或者花草分类问题。这也是深度学习领域中最简单的一类任务,根据最后的分类函数可以将此任务分为二分类问题和多分类问题。目标分类任务是其他任务的基础,也是很多初学者的入门级任务。
目标检测(Target Detection)
可以看成是分类和回归问题的统一。该任务不仅要判断当前图像的所属类别,还要通过包围框(bounding box)标出图像中目标的具体位置。
目标检测问题由来已久,基于深度学习的发展从2013年R-CNN算法的提出开始,不断演变出了一系列多步检测网络。之后很多研究学者对网络进行了改进,提出了单步检测,将分类、定位、检测功能都集成在一个网络中,如Yolo、SSD等。目标检测任务的应用十分广泛,经常应用于电力系统检测、医疗影像检测等。
目标检测任务根据问题的复杂性,衍生出了人脸检测问题。与传统目标检测问题不同的是,人脸检测需要实现人脸关键点的定位和检测,现在移动设备中应用比较广泛的人脸识别系统就是基于这一任务研究而来。
目标分割(Target Segmentation)
就是将一张图像中的特定目标的区域分割出来。在深度学习领域中,目标分割的研究方向主要分为两类:语义分割和实例分割。
所谓语义分割就是针对图像中的每个像素点进行分类,即判断图像中哪些像素属于哪个目标。
而实例分割是语义分割的进阶版,它不仅要判断哪些像素属于目标,而且要判断哪些像素属于第一个目标,哪些像素属于第二个目标,目前在医疗影像项目中的关键就是对人体器官的分割。常见的图像目标分割网络有FCN和U-Net,其中,U-Net常用于医疗图像分割。
目标跟踪(Target Tracking)
是一个基于时间序列的目标定位问题,通常是基于视频数据的任务,常用于智能监控系统、嫌疑犯追逃等。首先是在第一帧图像中锁定目标,在之后的时序数据中,不断地对目标进行重定位。
这是一个非常复杂的问题,需要用到目标检测和分割任务,而且根据时序相关性进行有效建模,可以减少定位过程中的计算量,提高追踪效率。
我们介绍了这么多计算机视觉的定义及任务,那么它与图像处理有什么异同呢?
严格来讲,图像处理是一种数字信号处理,它不涉及对图像内容的理解,一般是通过数学函数等对图像进行变换或增强,如归一化图像、图像预处理、消除图像噪声等;而计算机视觉是使用计算机模拟人类视觉,该模拟过程包括学习以及推理能力。
计算机视觉离不开图像处理操作,因此可以将图像处理看成计算机视觉的一个子集,当目标是对图像进行增强时,可以称为图像处理,当目标是检测和分割等时,则称为计算机视觉。
计算机视觉任务看似容易,但也存在很多潜在的挑战。因为我们人眼每天看到的景象是错综复杂的,我们的视觉和大脑的判别是同步进行的,但对于计算机而言,虽然经过了很多学者的研究,其仍无法达到人类视觉的能力。
而且,感官世界极其复杂,任何光照条件或者遮挡都可能会造成计算机识别任务的失败。因此,计算机视觉仍然有很长的一段路要走。
如果说计算机视觉是模拟人类“看”的能力,那么自然语言处理(Natural Language Processing,NLP)就是模拟人类的“语言”能力,这里的“语言”是指说话和写作能力。站在专业的角度来讲,NLP就是以一种智能高效的方式对人类创造的文本数据进行系统地分析、理解和提取信息的过程。
NLP的研究任务很广泛,在本书中我们将它分为5大类:词法分析、句子分析、语义分析、信息抽取和顶层任务。
词法分析就是以词为单位对数据进行分析,这是NLP中最基本的工作。常见的词性标注和拼写校正任务就属于词法分析。
句子分析就是以句子为单位的分析任务。
语义分析就是通过对文本数据的分析,生成对应文本数据的语义信息的形式化表示,常见任务有词义消歧等。
信息抽取是NLP任务中应用最广泛的一个,简单理解就是从非结构化的文本数据中抽取出用户所需的结构化信息。常见任务有命名实体消除、情感分析、实体消歧等。
顶层任务就是直接面向用户的任务,比如机器翻译或文本摘要,它需要多种任务结合生成对应的可以直接读取的输出结果。另外顶级任务还包括对话系统、阅读理解等。
NLP机制涉及两个流程:自然语言理解和自然语言生成。我们都知道文本数据是非结构化语言,而计算机擅长处理的是结构化数据。所以在NLP机制中,计算机首先需要从非结构化数据中进行读取,转化成结构化数据,通过语法知识和规则进行理解,然后将结构化数据进行组合,生成通顺的非结构化文本。
NLP的应用非常广泛,比如微博的热点推荐,就是通过用户对应的信息和经常浏览的信息进行情感分析,个性化推荐当前热点。另外邮件的垃圾分类、用户体验反馈等也都是通过自然语言处理技术实现的。
我们的目标不仅仅是让计算机有“看”和“语言”的能力,还要让计算机拥有“听”和“说”的能力,因此还需要语音识别(Voice Recognition)。语音识别的目标是将一段自然语言通过声学信号的形式传给计算机,由计算机理解并且做出回应。
语音识别系统主要包含特征提取、声学模型、语言模型、字典与解码4大部分。
其中特征提取需要对采集的声音信号进行滤波、分帧等音频预处理工作,目的是将要进行分析的音频信号合适地从原始信号中提取出来。
语音识别的过程可以概括如下:
根据特征提取将声音信号从时域转换到频域,从而为声学模型提供合适的特征向量;
再由声学模型根据特征向量来判断其属于哪个声学符号;
然后利用语言模型来判断声学符号可能属于哪个词组序列;
最后根据已有字典对词组序列进行解码,从而得到最后的文本表示。
在人机交互的过程当中,计算机除了能通过语音识别技术来“听懂”人们对它说的话,还需要能够将文本信息用人们能听懂的方式表达出来。在这样的需求下,语音合成技术应运而生。语音合成技术能够利用计算机等设备将文本信息转换为人们能听懂的音频数据,再通过语音的方式播放出来。
声纹识别是语音识别领域的又一个研究方向。与语音识别不同,声纹识别属于生物识别技术的一种,它根据语音波形中反映说话者生理和行为特征的语音参数,通过连接声纹数据库来鉴别人的身份。
因此,声纹识别不注重语音信号的语义理解,而是从语音信号中提取个人声纹特征,并从中找出能够唯一辨别(声纹识别的理论基础是每一个声音都有自己的特征,该特征能将不同人的声音进行有效地区分)说话者身份特征的信息。
语音识别有很广阔的应用场景和发展空间,如:
行车导航软件通过语音合成技术为司机指引道路、播报路况,人们甚至可以选择用自己喜欢的明星的声音来播报软件内容;
智能家居系统利用语音合成技术能够实现与用户的实时交流,人们可以从智能家居的“嘴”中得知家中的一些基本情况,大大提高了生活质量;
在智能教学领域,学生能够利用语音合成技术跟读单词、句子,语音辅导软件的出现大大方便了教学过程,提高了教学质量。
关于作者:王健宗,大型金融集团科技公司深度学习平台和AutoML平台负责人,中国人工智能开源软件发展联盟副理事长,美国佛罗里达大学人工智能博士后,发表联邦学习、深度学习、云计算和大数据等领域国际论文30余篇,以及发明专利200余项。
瞿晓阳 ,华中科技大学计算机系统结构博士,美国中佛罗里达大学访问学者,大型金融集团科技公司资深算法工程师,一直从事机器学习、大数据、体系结构方面的研究工作,在AutoML平台、面向AI的云原生架构、高性能计算、高效能存储系统等方面经验丰富。
原文链接:https://blog.csdn.net/zw0Pi8G5C1x/article/details/101183703
计算机视觉面临的挑战:
机器学习常规套路:
K邻近算法:
k-邻近算法是一种基本的分类和回归方法
k-邻近无法识别主体和背景,故不能用作分类任务。
k-邻近算法,即给定一个训练集,对新输入的实例,在训练数据集中找到与该实例最邻近的k个实例,然在这k个实例中,看看那个类别包含的实例比较多,则这个测试集就属于哪一个类别。
对未知类别属性的数据集中的每个点依次执行以下操作:
(1)计算已知类别数据集中的点与当前点之间的距离;
(2)按照距离递增次序排序;
(3)选取与当前点距离最小的k个点;
(4)确定前k个点所在类别的出现频率;
(5)返回前k个点出现频率最高的类别作为当前点的预测分类。
一、神经网络是什么?
是一种模仿生物神经网络的结构和功能的数学模型或计算模型。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。
典型的网络结构为:
二、神经网络可以用来做什么
举2个栗子
猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。
手写数字识别:将手写的图片读入到机器中,机器自动判定这个数字是什么。
简单地说,就是对图片的一个识别和一个简单的分类。
为了更方便理解神经网络,在介绍神经网络之前先来介绍一下感知机。
三、感知机
感知机:计算机模拟大脑经行信息处理的过程。有n个输入数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出。解决分类问题。
为了简单理解,我们先来看一个例子。
假设给定两个特征x1,x2,设置权重w1=1,w2=1,设置阈值为1.5,那么计算后可知(0,1)、(1,0)的结果为1,小于1.5,(0,0)的结果为0,小于1.5,(1,1)的结果为2,大于1.5,所以就把四个样本点分为了2类,其中的黑线就为分类线,但是很显然这个线是不唯一的,那如何来确定呢,继续看。
————————————————
版权声明:本文为CSDN博主「恪守不渝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44010678/article/details/109305746
我们只有类别的得分并不能评判分类效果,损失函数便是用来评估分类效果的好坏程度。
版权声明:本文为CSDN博主「筱筱思」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liusisi_/article/details/104923519
版权声明:本文为CSDN博主「睿智」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/great_yzl/article/details/120307282
n_44010678/article/details/109305746
我们只有类别的得分并不能评判分类效果,损失函数便是用来评估分类效果的好坏程度。
版权声明:本文为CSDN博主「筱筱思」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liusisi_/article/details/104923519
版权声明:本文为CSDN博主「睿智」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/great_yzl/article/details/120307282