关于前端与机器学习的疑惑,听 TensorFlow.js 负责人一一解答

简介: 本届 D2 前端技术论坛,我们十分荣幸地邀请到了 Google TensorFlow.js 团队的负责人 Ping Yu 作为「智能化」专场的嘉宾,为我们讲解 TensorFlow.js 生态系统,以及如何将现有的机器学习模型植入到前端。为了让大家对演讲主题更好的理解, 我们特地安排了此次专访,一起来听听他对前端与机器学习的见解。

本届 D2 前端技术论坛,我们十分荣幸地邀请到了 Google TensorFlow.js 团队的负责人 Ping Yu 作为「智能化」专场的嘉宾,为我们讲解 TensorFlow.js 生态系统,以及如何将现有的机器学习模型植入到前端。

PingYu, Google Brain 工程师,TensorFlow.js 项目负责人。致力于将机器学习平台带给 Web 以及 JavaScript 开发者。前 Google Attribution 平台的技术主管。Ping 拥有清华大学理学学士学位,马里兰大学帕克分校理学硕士学位。

PingYu.png

得益于人工、数据、计算成本的降低,人工智能(AI)在最近的一个十年得到了爆发式的发展,其中,要数「机器学习」流派首屈一指[1]。放眼全球,在 AI 这个赛道上,遥遥领先的领路人,非 Google 莫属,而 Google 又将机器学习作为其在 AI 领域的工作重心[2]。他们开发并维护着 TensorFlow, 旨在帮助他人解决重要问题[3]。

提起 TensorFlow, 很多人会觉得这是个十分遥远的、可望而不可及的东西,我从搞算法的朋友那里听来一句调侃——能在电脑上安装并运行 TensorFlow, 你已经跑赢了 80% 的算法工程师。虽然是句玩笑话,但也从侧面说明了 TensorFlow 的门槛之高——连算法工程师都不一定搞得定。那作为前端工程师的我们,是不是只能望其项背了呢?

答案是 No~ No~ No~

因为在 Google 有这么一群人,早已帮我们解决了这个问题。他们看准了前端在机器学习领域的潜力,研发出了 TensorFlow.js——专门服务于前端的机器学习平台。

为了让大家对演讲主题更好的理解, 我们特地安排了此次专访,一起来听听他对前端与机器学习的见解。


D2 小编: Hi, Ping Yu, 很荣幸能够邀请到您来 D2 演讲,可否向中国的朋友们介绍一下您和您目前的工作?

Ping Yu: 我在 Google 的 TensorFlow 团队中负责 TensorFlow.js 的开源项目。TensorFlow.js 是一个针对前端开发者机器学习平台,它不光提供建模,训练到推理的一套完整的 API, 还有一个结合实际应用场景的模型库。我们的目标是降低前端开发者使用机器学习的门槛,从而激发他们的创造力。

D2 小编: 我们知道,人工智能往往伴随着复杂的数据、模型和运算,而很多人认为 JavaScript 太弱了,不适合做人工智能,甚至说前端就不该趟 AI 这趟水,您怎么看待这个「老生常谈」的说法?

Ping Yu: 这个问题可以从两个方面去看。首先,JavaScript 作为一个解释执行的语言,确实缺乏纯计算能力,但语言本身的计算速度并不决定它是否适合机器学习。比如 Python 同样作为解释执行的语言,速度并不是它的强项,甚至它比 JavaScript 的 V8 引擎要慢多了,这并没有妨碍它成为当今最受欢迎的机器学习语言。因为它并不需要直接解决速度的问题,它可以利用其他更底层的语言来获得计算速度的提升。TensorFlow Python 就是利用 binding C library 提供 CPU 上的加速,通过 cuDNN 的绑定获得了 GPU 提速。这都是 Javascript 可以做的事情。比如说 TensorFlow.js 通过 WebGL 的 Fragment Shader 来获得 GPU 加速,通过 Web Assembly 来获得 CPU 的加速等等。

另外作为一个机器学习 API Level 的语言,易用性才是真正吸引用户的地方。Python 的崛起很大程度上得益于一个非常受欢迎的数值运算库 numpy. 其实 Javascript 在易用性上并不逊色于 Python, 十几年来,从网页到后台,再到 iOT 设备,Javascript 无处不在。它跨平台的特性能很好的解决模型部署的任务。

我和很多工业界还有研究部门的伙伴了解的时候发现,他们现在共同的困境就是,缺乏人才能够真正把 AI 研究结果很好的落地。我们相信这个离不开前端工程师,但是需要有一套完善的工程解决方案。TensorFlow.js 只是一个开始,希望有更多的前端开发者可以加入我们的行列。

D2 小编: 那请问 TensorFlow.js 目前都有哪些应用场景、效果如何?如果没有足够的数据量能接入吗?

Ping Yu: TensorFlow.js 支持许多 Javascript 可以运行的环境,前端的浏览器,无线端的小程序,React Native 平台,中后台的 Node.js 等等。

不同的运行环境,应用场景也不尽相同。无线端多以实时人机交互模型为主,不论是视频还是语音,对模型的大小和执行速度的要求都很高。最近欧莱雅使用 TensorFlow.js 在微信小程序里推出了实时试妆,模型执行速度达到 25FPS, 但模型只有 800K. 在浏览器中的 Web App, 它的 AI 应用场景多以图形或文字模型为主。在中后台,应用场景会更丰富一些。TensorFlow.js 在 Node.js 里的执行速度和 TensorFlow Python 旗鼓相当,让 server 端的模型推理可以融入到现有的 BFF 架构内。

另外TensorFlow.js 也支持模型训练,这意味着前端可以通过转移学习的方法为每个用户提供定制的模型。

D2 小编: 有人说,AI 技术的大进步,往往不是算法本身,而是源自人机交互的改进,您认同这个看法吗?目前(至少国内)已落地的人工智能大多是「人工人工智能」,请问国外面临这个窘境吗?您认为有何解法?

Ping Yu: 这个问题涉及面有点广,但看法我是基本认同的。我理解这句话原意是,人机交互界面的改进,为 AI 技术提供的场景和契机。AI 的基础是数据,而前端技术可以帮助研究者更快更好地理解数据。虽然现在 AI 发展日新月异,新模型、新架构层出不穷,但当模型落地时候,如果并没有和前端实现一个闭环,也就会出现「人工人工智能」的现象。谷歌推出的联邦学习和 TFX 机器学习的框架,通过 AI 和前端的结合,就能够做到连续的验证和调整模型。

D2 小编: 您认为前端智能化未来会往什么方向发展?对于想做人工智能的前端工程师有什么学习建议?

Ping Yu: 虽然前端有许多成功的框架,但总体来说还是有不少手工的工作。(我认为未来的考虑将是)如何将 AI 的能力融入到这些框架中,进一步减少前端工程师工作中低端的手工部分,从而进一步解放他们的创造力。

对于前端工程师而言,要对常用的模型和框架要有一定的认识,了解他们的特点和使用场景。要具备一定的 AI 工程方面的知识,比如模型加速和压缩,模型加密,端上和服务器上推理方案,这可以为模型落地提供切实可行的途径。

D2 小编: 请问参加您这次的分享需要准备什么前置知识?您将与国内开发者进行什么方面的交流?

Ping Yu: 这次分享(我将)通过一些实例来介绍 TensorFlow.js 平台的能力,进一步探讨 AI 在前端落地的场景。目标受众就是前端工程师,没有特殊的前置知识。


不知道本次专访有没有解答你对于前端与机器学习的疑惑呢?我是觉得,看完这次专访,机器学习对我来说终于不再云里雾里了,Ping Yu 浅显易懂的表达,使我对前端与机器学习、对 TensorFlow 有了更进一步的认识,也了解了该从哪些方面去学习 AI, 实在是太棒啦!

本届 D2 上,Ping Yu 还将与我们探讨 TensorFlow.js 进一步优化的方式,以及未来发展的方向。是不是好期待呢!

已经买了票的小可爱,当天记得带着可爱的自己准时来参加,就好啦~

还没买票的小可爱要注意咯!
由于大家购票热情太高,我们本次的早鸟票及早鸟拼团票已提前售罄,你可以选择购买普通票(559/张),一次性购买 3 张及以上,更可立减 100, 享受早鸟票价格 459/张哦!余票不多,心动不如赶快行动,我在 D2 智能化专场等你哦!

1571979957035-d7211b7e-c371-4195-92d9-68c4d4a6d8a4.png

附 1:D2 智能化专场介绍

机器学习和人工智能在前端领域如何应用?智能化将如何改变前端的工作方式?目前机器学习和人工智能在前端的应用成果有哪些?在工程和业务领域借助智能化创造技术价值?本届 D2 的前端智能化专场通过行业的应用案例和实践经验的风向,让大家对智能化改变前端有切实的感受,同时还邀请了谷歌 TensorFlow.js 等行业知名的前端智能化团队,带来前端智能化发展趋势的最新信息。让我们在机器学习改变行业的今天,携手弄潮于技术之巅。

附 2:好文推荐
初识前端智能化
一个前端智能化的实践

参考文章:
[1] 你真的了解人工智能吗?——聊聊AI的碰壁和冬天
[2] 谷歌确立AI first战略一年后成果如何? 这里有答案
[3] Google AI负责人:机器学习是解释AI的最好方法

目录
相关文章
|
8天前
|
JavaScript 前端开发 API
详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
该文章详细讲解了队列数据结构在前端开发中的应用,并深入探讨了JavaScript的事件循环机制,区分了宏任务和微任务的执行顺序及其对前端性能的影响。
|
6天前
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
一小时入门Vue.js前端开发
|
10天前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
15 2
前端JS读取文件内容并展示到页面上
|
15天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
9天前
|
前端开发 JavaScript API
React、Vue.js 和 Angular前端三大框架对比与选择
前端框架是用于构建用户界面的工具和库,它提供组件化结构、数据绑定、路由管理和状态管理等功能,帮助开发者高效地创建和维护 web 应用的前端部分。常见的前端框架如 React、Vue.js 和 Angular,能够提高开发效率并促进团队协作。
25 4
|
13天前
|
JavaScript 前端开发 开发者
基于Vue.js的前端框架有哪些?
Vue.js 是一款流行的前端 JavaScript 框架,用于构建单页面应用(SPA)。除了 Vue.js 本身,还有许多基于 Vue.js 的前端框架和 UI 库,它们提供了更多的功能和组件,以便开发者能够快速构建应用程序。
19 6
|
22天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
36 3
|
1月前
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法
|
1月前
|
JavaScript 前端开发
前端JS函数
【9月更文挑战第4天】前端JS函数
24 6
|
8天前
|
JavaScript 前端开发 开发者
深入浅出 Vue.js:构建响应式前端应用
Vue.js 是一个流行的前端框架,以其简洁、高效和易学著称。它采用响应式和组件化设计,简化了交互式用户界面的构建。本文详细介绍 Vue.js 的核心概念、基本用法及如何构建响应式前端应用,包括实例、模板、响应式数据和组件等关键要素,并介绍了项目结构、Vue CLI、路由管理和状态管理等内容,帮助开发者高效地开发现代化前端应用。
下一篇
无影云桌面