1.2 在移动设备上运行机器学习的应用
为什么要在移动端和IoT设备上进行机器学习?我们先来讨论下面几个问题:
· 为什么要在移动端上进行机器学习?
· 移动端上的机器学习要解决什么问题?
· 移动端机器学习面临的挑战是什么?
1.2.1 生态和现状
为什么要在移动设备和嵌入式设备上进行机器学习呢?在我国互联网的发展过程中,PC互联网已经日趋饱和,移动互联网却呈现井喷式发展。中国互联网络信息中心发布的2018年互联网发展报告数据显示,截至2018年6月,中国手机网民超过8.2亿,占网民总数的98.35%。随着移动终端价格的下降及WiFi的广泛使用,移动网民的数量呈现爆发趋势。
被称为“互联网女皇”的玛丽·米克尔在《2018年互联网趋势报告》里说,中国的移动互联网行业在2018年迎来新的增长,中国网民人数已经超过7.53亿,占总人口的一半以上。移动数据流量消费同比上涨了162%。
在智能手机市场,Android和iOS是占比最大的两种操作系统,在全球已经激活的31亿智能手机中的占比超过95%,而Android在两者之中又占据了绝对优势,截至2017年11月, Android的市场份额为75.9%,智能手机总计23亿部。中国和印度是全球最大的两个Android智能手机市场,占比接近一半。而根据Newzoo发布的《全球手机市场报告》,2018年将再有3亿部新手机被激活,Android手机的优势将进一步扩大。
Android作为操作系统,它的生态包括各种类型的设备和仪器,从汽车、穿戴设备、VR/AR设备到IoT设备,构成了一个庞大的系统,如图1-5(图片来源https://www.itproportal.com/features/iot-what-businesses-need-to-know/)所示。
在世界物联网博览会发布的《2017—2018年中国物联网发展年度报告》中显示,2017年全球物联网设备数量强劲增长,达到84亿台,首次超过人口数量。全球物联网市场有望在十年内实现大规模普及,到2025年市场规模或将增长至3.9万亿~11.1万亿美元。
物联网发展呈现一些新的特点和趋势:一是全球物联网设备数量爆发式增长,物联网解决方案逐渐成熟;二是我国物联网市场规模突破万亿元,物联网云平台成为竞争核心领域;三是物联网细分领域热度出现分化,技术演进驱动应用产品向智能、便捷、低功耗方向发展。在IoT上运行的操作系统和应用,都要适用于物联网的特性。
图1-5
1.2.2 从移动优先到人工智能优先
2017年,谷歌决定将公司战略从移动优先转变为人工智能优先。虽然谷歌近十年来主要以移动优先,但很明显调整意味着公司看到了人工智能和机器学习技术的巨大潜力。2019年,谷歌花了很大力气进行这种改变,并取得了显著的成果。
这里要说一下谷歌的CEO Sundar Pichai,这位可算作硅谷最成功的印度裔的高管,一开始加入谷歌的Chrome团队,担任Chrome的产品经理。Chrome是一款非常成功的产品,现在占据了浏览器市场超过65%的份额,也是很多用户包括笔者自己的默认浏览器。
当然,ChromeOS并不能算世界级的产品。虽然Chrome在谷歌内和其他世界级的产品相比并不是特别成功,但是它在教育领域及面向政府和企业的项目中或许会有令人瞩目的进展。有意思的是,很多一开始从事ChromeOS开发的工程师,后来开始谷歌IoT的研究,现在又在做新的操作系统的研究。
另外,谷歌在经历了几年移动优先之后,在2017年,Sundar Pichai正式在谷歌I/O上提出了“从移动优先到人工智能优先”的战略。这是在继ChormeOS与Android整合后的一个非常重要的决定。我们可以看到,这几年人工智能已经成为一个非常热门的投资领域。
1.2.3 人工智能的发展
Jeff Dean在人工智能发展刚刚取得突破性进展的时候就意识到,谷歌可能无法提供足够的计算力来支持人工智能的发展。后来,谷歌启动了TPU项目,通过硬件加速为人工智能提供强有力的计算基础。这体现在云计算和数据中心的TPU POD集群的部署中,也体现在对Edge TPU的研发和对移动端及IoT设备的进一步支持上。谷歌很重视基础技术和基础项目的研究,并愿意长时间地进行研发。后面,我们会介绍硬件加速的进展。如图1-6(图片来源https://www.datacenterknowledge.com/machine-learning/you-can-now-rent-entire-ai-supercomputer-google-cloud)所示是谷歌配备TPU的数据中心的照片。
图1-6
1.2.4 在移动设备上进行机器学习的难点和挑战
在移动设备上进行机器学习是非常困难和具有挑战性的,主要表现在以下几个方面:
· 移动设备的CPU功率和电池电量非常有限。
· 设备和云之间的连接非常有限。
· 避免设备和云之间的大数据交换。
· 解决设备和云之间的遗留问题。
· 保护用户的隐私数据。
随着移动设备变得越来越强大,我们将看到更多运行在移动设备上的机器学习应用程序。
边缘计算是一个新技术。谷歌在2016年发布TPU(张量处理单元),并在其数据中心大量使用TPU。谷歌将TPU在数据中心的使用范围扩展到不同的域,将来我们或许可以运行完全支持AI的移动设备。
1.2.5 TPU
机器学习的发展一方面依赖软件和算法的提高,另一方面也离不开硬件的进步。2016年5月,谷歌发布TPU,一个专为机器学习和TensorFlow定制的ASIC。TPU是一个可编程的AI加速器,提供高吞吐量的低精度计算(如8位),用于使用或运行模型而不是训练模型。谷歌在数据中心运行TPU长达一年多,发现TPU对机器学习提供一个数量级更优的每瓦特性能。
2017年5月,谷歌发布第二代TPU,此款TPU在谷歌的Compute Engine中是可用的。第二代TPU提供最高180 teraflops的性能,在组装成64个TPU的集群时提供最高11.5 petaflops的性能。如图1-7(图片来源https://blog.hackster.io/announcing-the-new-aiy-edge-tpu-boards-98f510231591)和图1-8(图片来源http://hi.sevahi.com/google-unveils-tiny-new-ai-chips-for-on-device-machine-learning/)所示分别是谷歌对外公布的TPU和Edge TPU的图片。
图1-7
图1-8