一文轻松串联当下最火的移动平台机器学习知识脉络

2019 年 12 月 8 日 AINLP

AIoT时代来临,移动平台正在成为工业实践最重要的阵地!

在经历了云计算技术的兴起,大数据处理与分析浪潮的洗礼之后,人工智能与机器学习技术逐渐成为了科技行业的热点,而移动技术如芯片技术爆发式进化以及5G通信技术的到来,让移动平台成为机器学习技术落地的最佳实践平台,是工业界应用最看重的场景

问题的提出

那么我们怎样才能让实验室中的模型应用到解决实际问题中,如何行之有效地开发移动端机器学习应用,如何进行系统的机器学习理论梳理并付诸实践?这些问题的提出成为了笔者撰写《移动平台深度神经网络实战:原理、架构与优化》一书的初衷。

从萌生想法开始到付诸行动,再到最后完稿,整个历程耗时远超原有计划。优化移动端框架和引擎优化对移动端(移动设备、可穿戴设备和边缘计算设备等)来说殊为不易。优化问题之大,探讨范围之广不易估计,如何在有限的篇幅当中尽可能地寻找一条主线来贯穿知识内容体系成为了编写过程中首要解决的问题,那么结合前述章节的框架和技术,从采集数据、处理数据到使用数据,并结合成熟的移动平台机器学习框架来实现一个可以工作的机器学习产品应该会是一个不错的主线。

站在更高的层面上思考

通过编程实战的方式实现功能化和产品化的输出往往是很多人希望通过学习某个知识体系达到的一个最终结果和状态,在我身边有不少人在接触机器学习相关技术的时候,由于了解到深度学习能在很多领域和方面解决实际问题,并且在大数据时代背景下这种应用变得越来越多,往往会一股脑地涌入深度神经网络高地,经过与他们的交流和探讨,有一个问题就变得特别突出和明显,那就是他们对很多深度学习当中所使用的技术来源以及设计的依据往往并不清晰,这样的深度学习就像建立在地基不稳之上的建筑,使用深度学习技术解决问题似乎成了可能,但涉及优化等关键技术问题的时候,这样的状态往往会变得捉襟见肘。其实,系统化的学习和掌握一个领域的技术往往十分重要,在了解了一个知识体系的来龙去脉之后,反而能够让一个人站在更高的层面上思考问题,带来更有广度、包容和灵活的架构设计与解决方案,学习机器学习如此,为了掌握移动平台深度学习技术亦是如此。

数学、算法和系统三剑客

计算机的基础最终还是数学,体会数学之美,了解并掌握高等数学、线性代数、概率论、数理统计等基本的数学知识就显得尤为重要。接着,理解机器学习能够解决的问题、使用场景和任务,在此基础上了解并掌握传统机器学习算法,如常见的分类算法、回归算法、聚类算法、关联分析算法、集成算法等,以及贝叶斯模型、逻辑回归等诸如此类的基本算法,这些内容对学习和掌握深度学习是至关重要的前导知识,否则学习深度学习就如无根之木,很难有好效果。深度学习对工程实践技能同样具有较高要求,尤其是当希望将深度学习应用到现实中解决实际问题时,只有具有足够的工程技能才能让算法更好地落地,达到我们想要的效果,在学习基础数学和算法知识的基础上,我们需要熟悉内存管理、线程控制、指令优化等技术,这些都会对最后的应用效果有很大影响。

数据、数据,还是数据

除了算法和系统开发本身,我们还需要关注数据。无论什么算法都会对数据有基本的要求,数据量太少或者数据质量不高(比如噪声过多)的数据势必会对训练产生负面效果。因此在日常学习和工作中,我们得注意如何采集我们真正需要的数据,并在训练之前对数据进行适当的清洗,确保在训练过程中使用的数据是足够干净的,这样才能得到更好的训练效果。不仅如此,收集高质量的数据集并利用适当的工具简化和加速数据清洗的过程也十分重要,我们常常使用SparkStormHurricane实时处理系统来自动化这一系列工作,因此熟练掌握利用这些便捷的工具框架的方法也是准备机器学习计算的必经之路。

来自移动端的限制

我们还需要注意现在随着移动设备和5G通信的发展,嵌入式移动环境已经成为机器学习的重要阵地,有越来越多的问题希望在移动端来解决,而不是单单依靠我们的服务器。而传统的深度学习框架在这种环境下显得过于臃肿,速度也不尽如人意,因此越来越多的公司开始推出适用于移动环境的轻量级框架,这些框架在设计上比传统框架更为精简,体积也相对小很多,同时对模型进行了裁剪,同时针对移动端计算进行了大量优化,确保体积和速度都能够的到极大提升。因此我们必须了解这些移动端框架,才能在移动端环境实现算法的落地,达到更好的效果。

虽然现在的移动端框架已经非常完善了,但是人们对于性能的要求是永无止境的,总会有更为严苛的系统执行环境,而且新的网络架构越来越多,不一定能直接在这些框架中使用,因此我们必须了解轻量级框架的原理,并根据自己的需求进行修改与裁剪。

同时针对一些特殊的环境和需求,我们必须知道如何通过底层方式进行针对性的优化,这就需要我们深入了解移动端的常用优化技巧,而目前最常用的移动环境就是ARM,在没有GPU加速的情况下,在ARM环境中完成运算加速(包括标量计算、矢量计算、浮点和定点计算等)的唯一方法就是通过Neon指令集,因此只有了解并掌握了Neon指令集才能有效地根据实际情况完成更多的性能提升。还是那句话,优化是我们讨论移动平台机器学习系统或深度学习系统的核心问题。

感恩的心

在编写本书的过程中,笔者得到了侯捷老师的帮助,感谢他在全书结构、篇幅和内容上给出的宝贵建议。同时也得到了彭垚、风辰以及陈炜的帮助与肯定;尤其是,在编写过程中与Google资深软件工程师顾仁民老师以及多位业界专家进行请教和探讨,修正了原稿中阐述不当、解释性错误,并对内容的结构安排作出了调整,最终为读者呈现出这一篇的内容。这一篇内容带领读者经历从移动平台的性能优化,使用Hurricane实时处理系统来进行数据采集与训练相关问题的讨论开始,再到引入TensorFlow Lite及其代码体系的介绍、集成方法、核心代码与框架裁剪分析,最终实现一个可工作产品的全过程。

 

总结:

掌握移动平台深度学习技能的学习路径:

一、打牢数学基础:高等数学、线性代数、概率论、数理统计。

二、掌握传统机器学习算法:分类算法、回归算法、聚类算法、关联分析算法、集成算法等,以及贝叶斯模型、逻辑回归

三、熟悉工程技能:内存管理、线程控制、指令优化

四、关注数据,掌握常用的工具框架:Spark、Storm和Hurricane实时处理系统

五、了解移动端框架使用方法及原理

六、掌握移动端框架的核心问题-优化技巧:了解并掌握Neon指令集。

如需了解移动平台机器学习更详细的学习曲线技术栈,请阅读《移动平台深度神经网络实战:原理、架构与优化》。

 

                           

《移动平台深度神经网络实战:原理、架构与优化》
推荐语: 精讲移动平台深度学习系统所需核心算法、硬件级指令集、系统设计与编程实战、海量数据处理、业界流行框架裁剪与产品级性能优化策略等,内容深入、翔实。

 

作者简介:

卢誉声

Autodesk数据平台和计算平台资深工程师,负责平台架构研发工作。工作内容涵盖大规模分布式系统的服务器后端、前端以及SDK的设计与研发,在数据处理、实时计算、分布式系统设计与实现、性能调优、高可用性和自动化等方面积累了丰富的经验。擅长C/C++JavaScript开发,此外对ScalaJava以及移动平台等也有一定研究。著有《移动平台深度神经网络实战:原理、架构与优化》、《分布式实时处理系统:原理架构与实现》,并译有《高级C/C++编译技术》和《JavaScript编程精解(原书第2版)》等。

  

福利时间:本次联合【机械工业出版社华章公司】为大家带来3本正版新书。留言谈谈你对5GAIOT或深度学习的理解,121020点前,评论点赞数前3名的读者将获赠正版图书1本。没中奖的读者也可以识别下方二维码购买。

登录查看更多
0

相关内容

移动平台不同于移动开发平台,也不同于移动应用平台,它是涵盖移动应用开发、管理、安全、整合等全生命周期的统一平台。
【干货书】现代数据平台架构,636页pdf
专知会员服务
249+阅读 · 2020年6月15日
专知会员服务
121+阅读 · 2020年3月26日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
329+阅读 · 2020年3月17日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
33+阅读 · 2020年3月6日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
195+阅读 · 2020年2月11日
【知识图谱】从知识工程到知识图谱全面回顾
产业智能官
18+阅读 · 2019年5月31日
曹羽 | 从知识工程到知识图谱全面回顾
开放知识图谱
20+阅读 · 2019年5月5日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
数学是普通程序员入门人工智能的最大障碍
算法与数据结构
11+阅读 · 2018年7月27日
限时领取|45讲人工智能与python入门课程
数据挖掘入门与实战
5+阅读 · 2018年2月4日
学习人工智能需要哪些必备的数学基础?
机器学习必备手册
机器学习研究会
17+阅读 · 2017年10月24日
如何用 3 个月零基础入门机器学习?
AI研习社
6+阅读 · 2017年9月27日
机器学习知识体系
数据挖掘入门与实战
5+阅读 · 2017年7月24日
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
Arxiv
7+阅读 · 2018年8月28日
Text classification using capsules
Arxiv
5+阅读 · 2018年8月12日
Arxiv
4+阅读 · 2018年7月4日
Arxiv
6+阅读 · 2018年3月27日
VIP会员
相关VIP内容
【干货书】现代数据平台架构,636页pdf
专知会员服务
249+阅读 · 2020年6月15日
专知会员服务
121+阅读 · 2020年3月26日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
329+阅读 · 2020年3月17日
【新加坡国立大学】深度学习时代数据库:挑战与机会
专知会员服务
33+阅读 · 2020年3月6日
【新书】Pro 机器学习算法Python实现,379页pdf
专知会员服务
195+阅读 · 2020年2月11日
相关资讯
【知识图谱】从知识工程到知识图谱全面回顾
产业智能官
18+阅读 · 2019年5月31日
曹羽 | 从知识工程到知识图谱全面回顾
开放知识图谱
20+阅读 · 2019年5月5日
2019年机器学习:追踪人工智能发展之路
人工智能学家
4+阅读 · 2018年10月14日
数学是普通程序员入门人工智能的最大障碍
算法与数据结构
11+阅读 · 2018年7月27日
限时领取|45讲人工智能与python入门课程
数据挖掘入门与实战
5+阅读 · 2018年2月4日
学习人工智能需要哪些必备的数学基础?
机器学习必备手册
机器学习研究会
17+阅读 · 2017年10月24日
如何用 3 个月零基础入门机器学习?
AI研习社
6+阅读 · 2017年9月27日
机器学习知识体系
数据挖掘入门与实战
5+阅读 · 2017年7月24日
相关论文
Meta-Learning to Cluster
Arxiv
17+阅读 · 2019年10月30日
Arxiv
7+阅读 · 2018年8月28日
Text classification using capsules
Arxiv
5+阅读 · 2018年8月12日
Arxiv
4+阅读 · 2018年7月4日
Arxiv
6+阅读 · 2018年3月27日
Top
微信扫码咨询专知VIP会员