【高可用的 PHP 】专访讲师李嘉璇——PHP 7 在机器学习领域的全新可能

服务资讯 来源:DevLink 发布:2017-06-01 浏览:1857

摘要:本文为 PHP 全球开发者大会专访系列,本期采访嘉宾是 PHP 大会讲师——前百度研发工程师、《TensorFlow 技术解析与实战》作者李嘉璇。在即将到来的 PHP 大会上,她将和大家分享 PHP 7 在机器学习领域的全新可能。

由 DevLink 主办的 PHP 全球开发者大会 将于 2017年6月10日~11日 在北京亚洲大酒店举行,本次大会特约讲师——李嘉璇将为大家献上精彩的主题演讲。

题目为:《PHP 在机器学习上的应用及云深度学习平台的架构设计与实现》。

主题简介:

PHP 7 以来发布了 PHP 的机器学习库 PHP-ML,使得 PHP 在机器学习开发上也可以大展身手,那么现在有哪些应用?同时,云深度学习平台也在逐渐发展 ,深度学习平台都要包含哪些功能和服务,架构是什么样的,PHP 语言作为 Client 端如何实现?谷歌的 Cloud Machine Learning 上有什么可以借鉴的经验?我们就一起聊一聊这些话题。

演讲大纲

一、明晰 平台的功能、机器学习服务介绍、PHP-ML 的应用

二、云深度学习平台设计和实践

平台:集群架构设计及部署:参数配置、多实例并行计算

算法及框架:测试和数据可视化、PHP-ML 配合 Kubernetes、Spark 的大规模数据训练

1. 深度学习的问题理解与分析:场景分析、数据评估、问题抽象

2. 参数调优技巧:基于成熟模型进行微调(fine-tune)、训练误差衡量准则等

生产环境:部署模型

1. 生产应用:训练环境与生产环境的数据接口、生产应用环境服务接口、模型退化的解决方法

三、从谷歌的 Cloud Machine Learning 和亚马逊的 Amazon Machine Learning 上可以借鉴的经验


更多大会精彩内容高可用的PHP-优惠来袭|第三届 PHP 全球开发者大会

以下为采访内容,提问者:DevLink,受访者:李嘉璇。

1李嘉璇老师您好,能否简单介绍一下自己?

李嘉璇,创建 TensorFlow 技术社区(tf.greatgeekgrace.com),活跃于国内各大技术社区,知乎编程问题回答者。一直致力于 LAMP 架构研发,同时擅长深度学习及算法方向。对深度学习框架的架构、源码分析。有过处理图像、社交文本数据情感分析、数据挖掘等深度学习实战经验,参与过基于深度学习的自动驾驶二维感知系统 Hackathon 竞赛,曾任职百度研发工程师。著有《TensorFlow 技术解析与实战》,该书获得 Jeff Dean、李航、余凯等专家倾力推荐。

也热衷于技术分享,目前在六点一刻与阿里巴巴、人邮、码书云等多个平台做过技术分享和技术直播。

2这次您在第三届 PHP 开发者大会上的演讲题目是《PHP 在机器学习上的应用及云深度学习平台的架构设计与实现》,我们知道,PHP 在机器学习领域的应用还比较少,您为什么会选择这样的分享主题呢?

确实是这样,PHP 目前在机器学习上是运用的不多。我们知道,PHP 在 Web 网站开发上的生态环境非常成熟,而目前随着网站的增多,有效的用户数据也越来越多。后端开发工程师可能不仅需要专注在业务逻辑上,也有一些数据的计算需要处理。

PHP-ML 是 PHP 的机器学习库。同时包含算法,交叉验证,神经网络,预处理,特征提取等。PHP-ML 为我们提供了这些机器学习的算法:关联规则学习(Apriori 算法)、分类器(SVC、KNN、贝叶斯)、回归(最小二乘线性回归、支持向量回归)、聚类(KMeans、基于密度的聚类算法)、矩阵运算相关(准确率、混肴矩阵、与分类相关的结论如精确度、召回率、F1 值、支持率)、模型运算管道(Pipeline)、神经网络(多层感知机)。除此之外,PHP-ML 还为我们提供了很多数据处理方面的接口。例如,数据集的格式支持Array、CSV、Files 这三种,并且支持数据集的交叉验证、预处理(L1、L2 正则化、缺失数据的补充策略)、特征工程等。

我们知道 PHP 原本支持 8 种数据类型,4 种标量类型(bool、integer、float、string)、2 种复合类型(array、object)、最后有2 种特殊类型(resource、NULL)。而机器学习更多的是涉及矩阵运算,PHP-ML 更加丰富了数据类型和计算。

在数据类型方面,支持 Matrix 数据类型,也就是可以将一个 PHP 的数组转换成 Matrix;同时有 Set 数据类型,Set 只能由 PHP 的一维数组建立,包括集合的交、并、差集的计算等。

在计算方面,提供了现成的一些计算方式,在距离计算上,也提供了欧式距离、马氏距离、切比雪夫距离、闵可夫斯基距离的直接运算API。在统计计算上,也提供了相关系数的计算、均值、方差、中位数的计算接口。所以说,这个第三方的扩展是 PHP 在网页开发生态中的很重要的补充。

同时,对于云深度学习平台来说,现在已经有了非常成熟的深度学习框架,如TensorFlow 等,而很多工程师作为云深度学习平台的使用者,也就是使用数据训练模型、预测模型。我们不仅仅需要懂得深度学习的知识,也需要了解云深度学习平台的架构,这样才有利于在选择模型和选择训练方式时做出有经验的决策。随着深度学习的成果涌现,很多平台也支持 PHP 语言来作为训练指令的SDK,这也给了广大工程师接触深度学习的好机会。

 

3有很多开发者朋友认为,PHP 不太适合做计算密集型的应用,您是如何看待这个说法的?

这个说法是有一定道理的,因为在之前的网站开发生态中,PHP 语言主要用来处理业务逻辑,做一些 IO 密集型的操作,和数据库进行交互。但是,目前随着人工智能的到来,PHP 也相应的在这个方向有所尝试,这也是我鼓励广大工程师在这个领域开拓的原因。PHP-ML 库就提供了一个很好的基础机器学习库,是以 PHP 扩展的方式对外提供的。它的使用有点类似于现在非常流行的 Python 的第三方库。

虽然说 PHP 的本质决定了它确实不适合于大规模的计算密集型运算。因为,PHP-ML 库以 PHP 扩展的方式对外提供服务,它相当于在 PHP 内核上进行开发。也就是说,相比原本的C语言直接实现的计算,PHP 内核函数在计算效率上损失了一层,PHP 扩展在内核函数基础上开发,效率又损失了一层。

但是,目前 PHP 7.0 的性能已经被优化了非常多,所以在支持 7.0 以上的 PHP 中,还是容易获得很好的计算能力。另一方面,我们也不是总需要超大规模数据的并行计算,对于小规模数据的实验来说,PHP 还是提供了很高的性能和很简便的实现方式。

 

4您在这次大会上要介绍的 PHP-ML 是基于 PHP7 这个新的PHP 版本的,作为资深的 PHP 开发者,能否跟大家分享下,为什么 PHP-ML 选择只支持 PHP7 以上的版本,在源码层面有什么考虑呢?人工智能和机器学习是这几年 IT 行业的热点,您本次的分享内容也与此有关,能否聊聊作为一名开发者,对人工智能的看法和期待?

PHP-ML 是一定只能支持 PHP7 以上的版本,这也还是从性能上考虑,因为我知道 PHP 在内核函数上做了非常多的优化,在源码层面的具体考虑,我会在大会上再详细分享给大家。

我认为作为一名开发者,是一定要关注人工智能的。因为,它给我们提供了一种不同于原本开发过程的思维方式。与传统工程师的主要工作—实现产品需求或者设计高可用性架构不同,深度学习让人总结和抽象人类是怎样理解和看待问题的,并把这种方式教给机器。例如,在 AlphaGo 的研究中,人们需要先抽象出人类思考围棋的方式,然后将这种方式抽象成算法,并且配合人类大脑构造中神经网络的传输来实现这些算法。这时,工程师不会再写实现业务需求的逻辑代码,而是深度学习中将神经网络的“黑盒”和模型效果非常好却缺乏“可解释性”的特性相结合,在次次实验中尽量找出规律。并且得到的效果还非常好。相较于使用深度学习方法来实现的人工智能,我们之前的开发方式相对来说都比较成熟了,对于一名工程师自身的技术成长来说,人工智能领域能够给我们提供更大的发挥空间,在 NLP、CV 等各个领域。

5近期,您的新书《TensorFlow 技术解析与实战》将在大会期间签售,能否跟大家介绍下这本书?

《TensorFlow 技术解析与实战》是一本全面解析 TensorFlow 的书籍,主要和大家分享以下内容:

深入 TensorFlow 基础原理、设计理念、编程模型、源码分析和模型构建、工业界应用、大规模数据训练等。全书分为基础篇、实战篇、提高篇三部分。

• “基础篇”讲解人工智能入门,学习深度学习的方法,TensorFlow 的基础原理、设计架构、编程模型、常用 API、批标准化、模型的存储与加载、队列及线程、实现一个自定义 OP、源码分析,超参数的设定,TensorBorad 可视化的全面解析,神经网络(CNN、RNN)的发展演化规律以及如何用 TensorFlow 实现这些网络,第三方框架 Keras、TFLearn 的应用等。

• “实战篇”先讲解如何用 TensorFlow 实现第一个神经网络,随后介绍用 TensorFlow 实现 CNN、RNN、LSTM、自动编码器的各种示例,以及 TensorFlow 在人脸识别、语音识别、智能机器人、语音和图像相结合、生成式对抗网络(GAN)等领域的实际应用。

• “提高篇”讲解 TensorFlow 的分布式原理、架构、模式,移动端开发,包揽 TensorFlow 的新特性,包括线性代数编程框架 XLA、调试器 Debugger、动态图 Fold 和生产环境 Serving,以及 TensorFlow 和 Kubernetes 相结合、TensorFlowOnSpark、硬件计算加速等其他特性的详细解析,以及机器学习的评测体系。

6对 PHP 开发者有什么要说话的么?

首先,要注重基础知识的掌握。数据结构、算法、网络编程、操作系统、数据库原理、计算机组成原理等等,熟悉这些知识能够非常快地让你理解在编程语言中出现的新特性,为什么要开发者要设计这个特性,这个特性背后的原理是什么。并且遇到的问题后,你会有非常清晰的解决思路。

第二,要加强机器学习基础,并且紧密关注深度学习界的论文和应用。机器学习基础就是我们常常说的支持向量机、逻辑回归、决策树、朴素贝叶斯分类器、随机森林、聚类算法、协同过滤、关联性分析、人工神经网络和 BP 算法、PCA、过拟合与正则化等知识。

同时,多关注学术界的深度学习论文,有助于知识储备的更新。这点很重要。如果固囿于原本的实现业务逻辑的应用,可以挖掘的东西也是有限,大规模流量和高并发高可用的架构也相对成熟,所以,作为工程师,必须保持自我的不断更新和迭代,多了解一门知识,对当前业务也有很大启发。

第三,学习 TensorFlow。现在深度学习的火爆,很大程度上和 AlphaGo 有关。我相信业务逻辑的实现未来很可能都会由深度学习模型来实现自己写代码的功能。所以,作为工程师,从一个框架来入手,掌握深度学习的原理,甚至说有机会向深度学习工程师的方向转型,是非常重要的。

本篇文章仅代表嘉宾个人观点


1610-640.jpg.jpg

由 PHP 大会讲师李嘉璇编写,人民邮电出版社出版的《TensorFlow 技术解析与实战》目前正在火热销售,本次大会在异步社区的展位上,李嘉璇老师也会现场为大家进行签售,感兴趣的参会者可以关注一下。

简介:

TensorFlow 是谷歌公司开发的深度学习框架,也是目前深度学习的主流框架之一。本书从深度学习的基础讲起,深入 TensorFlow 框架原理、模型构建、源代码分析和网络实现等各个方面。全书分为基础篇、实战篇和提高篇三部分。基础篇讲解人工智能的入门知识,深度学习的方法,TensorFlow 的基础原理、系统架构、设计理念、编程模型、常用 API、批标准化、模型的存储与加载、队列与线程,实现一个自定义操作,并进行 TensorFlow 源代码解析,介绍卷积神经网络(CNN)和循环神经网络(RNN)的演化发展及其 TensorFlow 实现、TensorFlow 的高级框架等知识;实战篇讲解如何用 TensorFlow 写一个神经网络程序并介绍 TensorFlow实现各种网络(CNN、RNN 和自编码网络等)并对MNIST 数据集进行训练,讲解 TensorFlow 在人脸识别、自然语言处理、图像和语音的结合、生成式对抗网络等方面的应用;提高篇讲解 TensorFlow 的分布式原理、架构、模式、API,还会介绍 TensorFlow XLA、TensorFlow Debugger、TensorFlow 和 Kubernetes结合、TensorFlowOnSpark、TensorFlow 移动端应用,以及 TensorFlow Serving、TensorFlow Fold 和 TensorFlow 计算加速等其他特性。



2017 PHP 全球开发者大会,将于 6.10-11 在北京亚洲大酒店举办,是面向 PHP 开发者及技术管理者举办的线下技术交流活动。

继前年的“ PHP7 初探”、去年的“高性能的 PHP ”主题后,第三届 PHP 全球开发者大会的活动主题是“高可用的 PHP ”,本次活动,我们将在 PHP7 这个日趋成熟的 PHP 版本之上,与大家探讨 PHP 开发和运维中的高可用性挑战。

原    文:DevLink

免责声明:

  1. SDK.cn遵循行业规范,所有转载文章均征得作者同意授权并明确标注来源和链接。
  2. 我们十分尊重原创作者的付出,本站禁止二次转载如需转载请与原作者取得联系。
  3. 转载SDK.cn的原创文章需注明文章作者、链接和"来源:SDK.cn"并保留文章及标题完整性未经作者同意不得擅自修改。
  4. 作者投稿可能会经SDK.cn适当编辑修改或补充。
推荐工具 意见反馈