社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

学习这么多算法到底在解决哪些问题?深度学习之外,我们要选择谁?

AI科技大本营 • 5 年前 • 256 次点击  

CSDN 出品的《2018-2019 中国人工智能产业路线图》V2.0 版即将重磅面世!


V1.0 版发布以来,我们有幸得到了诸多读者朋友及行业专家的鼎力支持,在此表示由衷感谢。此次 V2.0 版路线图将进行新一轮大升级,力求为读者呈现更全面的中国人工智能产业发展概况和趋势判断。


此文深度技术分析系列稿件第 6 篇,作者为 CSDN 特邀 AI 专家——探智立方产品总监宋煜(回顾:第 12345


作者 | 宋煜,探智立方产品总监


人工智能会影响多个领域,甚至是那些非常传统的商业领域。而机器学习(这里指的是广义的机器学习)是人工智能的一个重要组成部分,它指的是对大数据集上的算法进行训练,以便他们学习如何更好地识别所需的模式。


近一年来,我们会看到在芯片领域,网络安全领域,语音助理领域,法律咨询领域,医疗诊断领域,制药领域,越来越多的AI技术在推动行业的发展和进步。同时,各种人工智能的比赛也层出不穷,而比赛的背后推动力实际上就是行业方案的落地能力。传统行业正越来越急迫地希望 AI 能够真正应用于实际的生产环节之中。


机器学习算法概述


随着对实际应用要求的呼声越来越大,算法层面的研究也慢慢变得清晰和细致。在今天,从技术的角度来看,人工智能的落地有四个重要的环节需要解决:数据标注问题,模型设计问题,模型训练性能问题和模型可解释性问题


在算法层面,有大量的工作围绕这四个问题展开:


模型训练需要大量准确的标注数据


针对这种挑战,业界一直试图通过数学方法降低对大量数据的依赖。从减少标注的角度,非监督学习提供了不同的方法如协同训练,半监督字典学习,标签传播算法,半监督支持向量机以及阶梯(Ladder)网络。可以看到,大部分半监督学习的方法都建立在对数据分布的某种假设。如果训练数据的确真实反应了现实世界中数据分布的情况,那么就会从中受益,否则效果会大打折扣。


在深度学习领域,阶梯网络试图通过一个网络把有标签的监督学习和同类但无标签数据进行共同训练,实现一个端到端的半监督深度模型。阶梯网络通过在反向传播的同时最小化有监督和无监督的损失,从而避免分层预训练的需求。通过 Skip Connection 使编码层的每一层都有一个到解码层的横向连接;同时在编码层,每一层都引入噪声以实现类似于降噪自编码器的能力。阶梯网络中,隐变量是整个模型的关键所在。分层隐变量模型可以保留较低级别的细节表示,允许更高级别的表示可以更多的关注那些不变,抽象的特征。随着技术的发展,阶梯网络也可以支持卷积神经网络。不过,技术领域从来没有万能钥匙。


当你用一个技术解决部分问题的时候,新的问题也会随之产生。在灰度和简单图像的情况下,阶梯网络效果是非常好的,但是当应用于医疗里的细胞切片分析时,性能会下降的比较厉害。类似的一些新的研究也有很多,比如 Self-Ensembling Graph Convolutional Networks 、主动学习(Active-Learning)以及 A cluster-then-label Semi-supervised learning Approach 就能够在部分标注的医学切片扫描图片上得到很好的成绩。


同时,业界也在试图利用生成对抗神经网络(GAN)生成更多的样本从而解决数据扩增问题。在低样本数据体系中,训练参数不确定,学习网络概括性差,而且带有很强的数据偏向性。使用数据扩充能够有效的来缓解这种情况。然而,标准数据增加仅产生有限的似乎合理的替代数据,并有可能引入人为指定的扩增算法的数据分布规律。对抗神经网络生成模型能够更加有效地做到数据扩增。从源数据获取、学习数据特征,然后将其推广以生成其他类内数据项。这个生成过程不依赖于类本身,因此它可以应用于新的、未曾见过的数据类。通常这种扩增可以使最后的训练结果提高10-15%。


第三个解决标注数据需求量问题的是元学习的方法。其中,One/Low-Shot Learning 变的越来越热。元学习(Meta Learning)目的并不是收敛学习的目标,如图像识别或者下棋,而是学习更高一层的内容,例如,参数设置、神经结构、神经元初始化、优化器的选择、损失函数的定义、数据空间的维度信息等。


One-Shot Learning旨在通过少数例子学习对象的概念。基于元学习的方法与生成数据模型结合,同时优化两个模型,从而提升小样本情况下的准确性。Low-Shot Learning 由一个学习器,两个 Learning Phase (Representation Learning Phase + Low-Shot Learning Phase)和一个 Testing Pase 构成。其中,学习器就是特征提取与分类的结合。


Learning Phase 的第一阶段是标准的训练过程,固定学习器的特征提取参数;去除最后的分类层,固定特征提取参数,使用少量的新类别(Noval Class)更新新类别的分类器参数;交替进行第二、三阶段。看起来似乎与迁移学习很像,但这里的关键是如何让第二阶段的表示层学习地更普适。其最大的改变是损失函数的设计,也就是让基于第二阶段的 Representation Learning 学到的权重使全局损失最小。那么,在原损失基础上加入梯度;梯度越小,说明 W(权重)的改变越小而得到的 W 也就越接近“普适”。从实际效果而言,第三种方法效果目前还不如前两种,但可以看到,第三种方法更接近人类的学习方式。


模型设计和调参的难度


今天,除了数据标注的难度,在实际落地的项目中,会大量使用迁移学习方法加速模型与生产系统的对接。但是,很多时候,如果数据科学家经验不丰富或者理论理解不深入的情况下,调参和调整模型结构就进入了“玄学”范畴。实际上,从数学的角度而言,有很多新的方法试图解决这类问题。其中,最具代表性的就是自动机器学习(AutoML)。业界目前主流的几种AutoML 方法包括遗传学算法、元学习、强化学习与基于序列模型的优化(SMBO)。通常而言,数据特征抽取、模型结构优化与超参搜索是一个迭代过程。通过不停地调整从而在准确性和稳定性上达到生产环境的要求,通常这个过程占整个开发过程75%以上的时间。


作为一个新兴领域,AutoML旨在减少或消除所需的手动操作机器学习的专业知识。 基于图架构灵活地表示组合ML和DL模型的方法,提供了在极大搜索空间构建出基于树和基于堆叠的体系结构的模型的可能。加上遗传学算法的趋好性和多样性特点,AutoML能够获得在手工设计中难以获得的结构。而通常这种结果所需要的参数远小于常规模型所使用的参数数量。相比大模型剪枝后的模型,这种小参数模型移植到IoT设备上具有巨大的优势。有些AutoML系统会使用贝叶斯优化来搜索模型和超参数,确实在超参优化中有效。但是,在较大的架构搜索领域效率是很低的。而真正有效解决自动模型设计问题,遗传学演化算法会被更加频繁的使用。


相比增强学习来构建计算图的方法,遗传学算法在极大搜索空间中,效率会更高。遗传学算法会把父代中稳定的结构或者部分网络进行编码,并把这部分固化成一个片段传递给子代,让子代基于已得出的部分稳定结构继续生成网络。当然,遗传学算法也不是万能的,在模型演化过程中,如何预防整个群体的过早熟(大量子代来自于同一祖先,而导致无法跳出局部最优);如何快速从模型结构评估模型间的相似性而减少Loss 变化极小的采样;如何做有序度分析,从而找到适合遗传的部分结构这些都是实际工程化过程中要面临的问题。值得一提的是DARTS(Differentiable Architecture Search)把计算图边的选择变换成了一个连续空间求导的问题,从而大大加速了固定结构以后,边选择问题的求解。


同时我们也会看到,有大量新的专用模型的产生用于解决某一个领域的问题。强化学习,对抗神经网络和元学习,由于它们自身算法的特点会更为普遍的应用于不同的领域。 另外一些新的损失函数的研究,使得越来越多All-in-One或者All-You-Need模型解决一个甚至多个复杂问题变成可能。在强化学习方面, 通常分为RL理论,RL算法,RL网络架构,RL优化,RL探索,RL奖励,分布式RL,分层RL,多Agent,RL元学习等方向。元学习和强化学习的结合成为非常热的话题。


大部分强化学习的环境假设都是单一环境,而这种强假设就是环境固定不变,然后学习出针对这个环境的策略,但是现实环境却不是这样的,环境的变化是存在的,而且变化速度有时候会很快,比如量化交易和对抗(对手的策略也在变换)。而RL+Meta Learning的核心就是根据历史学习的经验包括策略和轨迹,来快速创建新的策略。MAML(Model-Agnostic Meta Learning)假设任务,策略和轨迹都是随机变量,上一时间步的策略和轨迹被用于当前时间步构建新的策略。使用训练数据做梯度下降更新当前网络,然后用测试数据在更新后的网络下计算损失函数,最后通过损失函数梯度下降更新前面使用的网络。这是一种适用于连续、简单、基于梯度的元学习方法,并且考虑非平稳性作为一系列固定任务和训练代理。在非平稳运动和竞争性多智能体的情况下,允许测试各种适应战略的各个方面。


生成对抗网络是另一种重要的深度学习模型。它可以用于图像优化、交互式图像生成、图像编辑、文本到图像或者图像到文本,对话生成等领域。LS-GAN(Loss-Sensitive GAN)是目前比较稳定的一种模型,能够比较好的解决梯度消失问题。另外Large-Scale GAN 通过两种简单生成架构变化以及正则化方式的修改使生成器水平得到极大的提高。当然,今天的GAN仍然面临很多问题,最严重的就是生成多样性的问题。在对话生成的过程中,随着训练的提升,生成的语言会越来越符合人的语法模式,但是同时,多样性在减少,大量能够骗过分辨器的雷同语句会被生成,而无法做到真正在NLP领域里面扩增数据内容。


在整个模型设计中,损失函数和优化器的创新恐怕是最难的而意义又是最大的。例如今年的“On the Convergence of Adam and Beyond”通过赋予Adam算法过去梯度的“长期记忆”,来解决在大输出空间,无法收敛到最优解的问题。这种算法层面的优化会直接解决大部分使用RMSPROP和ADAM优化器的网络收敛问题。


模型训练的性能


模型训练一直对计算力的需求最旺盛。当数据集超过T 级或者设计了一个非常复杂的神经网络,GPU的并行化训练甚至集群的并行化训练就是不可或缺的。OpenAI的Dota 5v5模型使用了256块P100 GPU和128,000 CPU core进行训练。大规模分布式并行训练是解决这类问题的必选项。通过分级求导,在求导过程中传递不同层的梯度;通过设置双向环路,减少权重传递次数;优化参数汇聚算法;乃至模型并行化等手段都旨在不停地提高训练效率。这部分的研究工作与传统的HPC(高性能计算)其实非常相似。大家最后碰到的问题都是这种分布式难以线性叠加,当规模达到一定程度后,很难再有所提升;而收敛过程在后面的过程中,由于梯度下降本身速度已经放缓,大量的并行GPU所提升的效率就会更加不明显。由于模型并行化过于复杂,而且并行化方案难以通用,大部分并行化方案都还是训练数据并行化。


模型可解释性


模型设计取得不错的性能后,解释模型又会变成一个新的挑战。今天大多数复杂的深度学习模型都是一个黑盒子。这也是深度学习在一些方面被人诟病的原因。随着业界对这个问题的争论,越来也多的可视化方法被提供试图解释模型。论文《The Building Blocks of Interpretability》将独立的神经元、分类器与可视化结合,提供一种观察方法来判断神经元可以被哪些图像激活、神经元判断这个图像属于哪一类,以及神经元的最终决策贡献值。这类方法在Attention模型中也得到比较广泛的使用。当使用LSTM 做输入文本的特征提取,用CNN 做图像特征提取后,研究人员也可以通过这种可视化的方法来分析,哪些文字让Attention单元对哪部分图像的特征图(Feature Map)敏感。从定性分析的角度看,这类方法的确可以提供对模型可解释性的指导,但是从定量分析的角度,特别是对于一些高维的数据特征,还有很长的路要走。


机器学习算法所面临的挑战及原因


今天,机器学习所面临的挑战有很多。从数据的角度来看,除了有效数据的高成本问题,还有数据不公平性问题。


通常,大家会觉得,如果算法或者模型用机器固化后,应用到实际场景会消除人为偏差,但是今天的数据如果在分布上本身就带有“歧视”,这种偏见是会被一直保持的。例如,如果训练数据表明男性比女性更有生产力,那么机器学到的判决模型很有可能将偏向选择男性候选人。而这种问题很难有一个明确的标准来衡量并纠错。从模型的角度来看,今天的大部分模型还是针对一个比较确定的环境和数据来解决问题的,这就导致了大量的实际应用不一定很快就能找到合适的模型,而是需要大量的数据科学家来对模型和真实数据做调整。


普惠AI的提出就是在试图打破这个瓶颈。而这个瓶颈最关键的问题是如何降低设计和使用模型的门槛。我们可以看到今天大部分AI的公有云服务,都在试图使用迁移学习来解决这部分问题,但是这些AI公有云服务忽略了一个问题,他们这次不是提供商品让最终消费者来选择买什么,而是需要提供一个互动的方式了解消费者要做什么之后提供对应的模型设计服务来完成这个目标。AutomML是解决这个方法的一条途径,不过同时有也很长的路要走。至于算法层面的问题,反而不是一个巨大的挑战。只要有明确的问题被提出,就一定会有新的数学方法来解决。只要我们不会进入《银河帝国》里所描述的科技发展衰退,算法层面的挑战永远不会是绊脚石。


机器学习算法的未来


未来,新的算法会层出不穷,但是深度学习不会被替代。不会替代并不意味着深度学习理论已经很完善,成为其他学科的基石。技术的发展有很强的延续性,少有被完全颠覆性的理论出现。如同今天的胶囊网络、元学习。从表面上看,他们和最初的深度学习网络模型有很大的差距。但是深入来看,实际上,它们是在使用深度学习的部分技术来构造新架构。今天大家不够满意的主要原因在于,目前的人工智能所做的仍只能停留在对单一问题的辅助,而不可能有真正的创新甚至成为复杂问题的辅助。接下来,还会有很多工作会基于不同的视角提出不同的算法。我们依然期待一个大一统的框架。然而目前的情况是视角越单一,做的效果可能会越好。毕竟视角的选择等价于人类的知识赋予,相当于简化了神经网络的学习难度。


(本文为作者独立观点)


--【完】--


2018 AI开发者大会


AI技术年度盛会即将开启!11月8-9日,来自Google、Amazon、微软、Facebook、LinkedIn、阿里巴巴、百度、腾讯、美团、京东、小米、字节跳动、滴滴、商汤、旷视、思必驰、第四范式、云知声等企业的技术大咖将带来工业界AI应用的最新思维。


如果你是某个AI技术领域的专业人才,或想寻求将AI技术整合至传统企业业务当中,扫码填写大会注册信息表,我们将从中挑选出20名相关性最高的幸运读者,送出单场分论坛入场券。大会嘉宾阵容和议题,请查看文末海报。



此外,如果你想与所有参会大牛充分交流沟通,点击阅读原文购票,使用优惠码:AI2018-DBY 购买两日通票,立减999元;此外大会还推出了1024定制票,主会+分会自由组合,精彩随心。



推荐阅读

象棋人工智能算法的C++实现(三)——注重功能分区!

Google 全球员工围攻 Google!

全面梳理百度世界大会,李彦宏又新吹了几个牛!

她说:真的,没事别嫁程序员

中心化交易所弊端尽显,DEX时代即将到来?用户分析告诉你

2019秋招AI岗位竞争究竟有多激烈?

南开大学提出最新边缘检测与图像分割算法,精度刷新记录(附开源地址)


点击阅读原文,查看大会更多详情。2018 AI开发者大会——摆脱焦虑,拥抱技术前沿。


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/jwnszUhNXL
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/25900
 
256 次点击