随着人工智能时代的来临, CV、NLP、数据分析等领域全面开花,深度学习框架也成为了科技发展的一个核心突破口。在此背景下,以Tensorflow为代表的大量新开发工具和开源软件的涌现,降低了人工智能开发的门槛,大大提升了AI开发的效率。

 

为帮助大家更好地了解TensorFlow、助力AI开发进阶,2019个推TechDay巡回技术沙龙来到深圳,并联合GDG社区,邀请了中安金服CTO张岩、谷歌技术专家王玉成和Kinni、个推高级算法工程师飞鸽和船长,带来了人工智能应用实践干货分享。

 

本文将从Tensorflow出发,盘点其在移动端、网页端的应用场景,并探讨如何借助Kubeflow来更好地使用Tensorflow以及如何在保障信息安全的前提下在多参与方之间开展高效率的机器学习。

 

以下是深圳站分享嘉宾的精华提炼:

 

《基于TF Lite的移动设备上手势识别应用》 飞鸽&船长

 

 

TensorFlow是一个采用数据流图、用于数值计算的开源软件库。TensorFlow Lite(TF Lite)则指的是移动和嵌入式设备上运行机器学习模型的官方解决方案。

 

TF Lite特点可以概括为以下五个方面。第一,TF Lite支持一系列核心运算符,包括量化和浮点运算;第二,TF Lite基于FlatBuffers定义了一种新的模型文件格式;第三,它拥有一个新的移动优化解释器;第四,它尺寸较小;第五,它具有硬件加速接口。

 

目前,TF Lite模型不能在手机上进行训练。模型刚开始要在台式机上研发出整个模型,然后在台式机上训练,然后转化成TF Lite的格式,再在手机上运行。

 

基于TF Lite,我们展示了一个手势检测的demo。手的检测比人脸要更加复杂,人脸有更多的纹理轮廓,比如眼睛、鼻子、嘴巴,这些都是比较稳定的纹路,但是手纹这些是比较稳定的,因此,检测起来更难。为了更精准地对手势进行探测,模型先检测手掌的区域,把手掌框出来,然后把区域信息置入在下一个模型里,并在该模型里标记手的位置。通过21个3D的关键点,就可以把整个手的姿态描绘出来。这样下来,想要做手势的识别就比较简单了:把刚才的21个位点进入模型去运行,就可以判断出是相应的手势。

 

《联邦学习》 张岩,中安金服CTO

 

 

联邦学习是在满足数据隐私、安全和监管要求的前提下,设计出的一种让人工智能系统能够更加高效和准确的方法。“联邦学习” 实际上是一种加密的分布式机器学习技术,参与各方可以在不披露底层数据和底层数据的加密(混淆)形态的前提下共建模型。

 

TFF是基于TensorFlow的开放式框架,用于对去中心化数据执行联邦学习。作为一种开放式框架,有以下优势:更好地了解哪些方法有效;更快速的共同开发(重用组件、组合功能);打造生态系统。

 

TFF与架构无关:TFF将所有代码编译为抽象表示(旨在支持部署到不同环境);在部署时,无需修改代码。

 

TFF有两大功能:联邦学习、联合核心。前者可以联合训练/评估的实现,也可应用于现在TF模型/数据。后者允许表达新的联合算法并可在本地运行模拟。

 

TFF一共有Federated Learning API、Federated Core API两种接口。Fuderated Learning API在代码实现上很简单。举一个手写识别的例子,首先我们通过train data,来获取或者加载我们的训练数据,加载完之后通过TFF加载keras的模型并进行模型的初始化。根据我们加载的训练数据和模型进行训练,训练完之后进行效果评估。

 

Federated Core API定义的是联合计算的语言,比如强类型、函数、结合TF和分布式通信等等;同时Federated Core API也支持Python API,还有更灵活的部署方式,如测试时模拟运行环境。

 

《Kubeflow简析》 王玉成,谷歌技术专家(GDE)

 

 

机器学习是一个研究领域,使计算机无需明确编程即可学习。Kubernetes 作为一个用来管理无状态应用的容器平台,在近年的运行过程中出现兼容性、可移植性、可扩展性方面表现欠佳的状况。针对这些问题,Kubeflow项目应运而生。Kubeflow是一种机器学习工程化实施平台,可以使程序员轻松地在Kubernetes上开发、部署和管理便携式分布式机器。

 

Kubeflow考虑到了可扩展性的问题,让开发者在容器之内利用调用的方式对旗下所有的硬件系统包括显卡资源等予以调动。此外,Kubeflow还采用了切换的技术提升可扩展性。Kubeflow最终在整个容器化技术里面形成了一个平台,可以接管Kubernetes。它可以在Kubernetes里面去部署相关的东西,最终完成数据模型的分析。去完成数据清洗、模型研发、开发及测试、工程化部署以及最后的产品化性能跟踪分析等运维方法。

 

Kuberflow结合了Kubernetes和Tensorflow,使得开发人员在基于容器化技术的工作环境中,更好、更方便地完成人工智能开发的整个流程。并且易于使用,配置,扩展。是未来进行人工智能从研发到产品化布署的优秀工具。

 

《Tensorflow.JS》 Kinni,谷歌技术专家(GDE)

 

 

在浏览器上就可以进行机器学习,主要有两个好处。一是不需要复杂的推动程式的安装;二是机器学习的模型在浏览器上直接运行可以较好地保护用户的隐私安全。

 

用tensorflow.js可以实现很多东西,现在有很多已经训练好的模型可供使用,进阶的用户可以做到直接在浏览器上进行。比如BodyPix Model,识别照片中的人体部分;还有文档分类的模型,比如在大众点评上对一些留言进行归类,区分有害和有用评论。这两个模型都是谷歌允许直接调用的。

 

除了训练之外,一些可视化的工具可以为我们提供很多帮助。加载机器学习可视化的插件,能帮我们看到模型训练过程中的变化、参数,以及训练过程对模型产生的影响。机器学习的模型在JavaScript和小程序上均可以运行。

 

现在tensorflow.js已经是1.0版本了,这代表它已经越发成熟、稳定,拥有更高的效能——相较于之前,它在MacBook Pro 电脑上速度快了2.7倍,在手机上快了近10倍。