【译】3 Reasons Why PHP is Not Yet Perfect for Machine Learning

前言

最近做了一些数据分析、机器学习的工作,使用的是php-ml这个库,前期还算不错,不得不佩服作者arkadiuszkondas的API设计能力和算法功底。但是,随着数据量越来越大,发现训练时长剧增、内存利用率不高,于是翻了翻作者的博客找到了这篇文章,故译之。

正文

为什么说目前的PHP生态还不能够普遍落地机器学习框架,我认为主要有三个原因造成当今这种状况。下面我将陈述这几个观点:

可视化的可能性几乎为零

…无论是以计算还是以图表的输出方式都应该学习,这样的呈现才是易于理解的 —— F. J. Anscombe, 1973

让我们问自己一个简单的问题:下面这些图形有什么共同点呢?(这些都是简单的集合点:x和y)

在这里插入图片描述

答案非常简单与令人惊讶:一套共同的指标。这些图都非常相似(小数点准确到第二位):

  • X 平均值: 54.26
  • Y 平均值: 47.83
  • X 标准差: 16.76
  • Y 标准差: 26.93
  • 相关系数: -0.06

惊讶吗?还没完。向datasaurus问好:

在这里插入图片描述

是的,那些点在这张图上面显示是相同的指标

我希望能让你相信,机器学习过程的一个基本组成部分是数据可视化。

目前,与丰富的Python生态相比,在PHP中我们没有任何图表支持。下面我给你展示一下,画一个图去查看你的已预测数据是多么简单!别忘了那只恐龙~

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dino.csv',header=None)
plt.scatter(data[0], data[1], color='red');

好了,4行代码,完美~

比分:PHP: 0 - Python: 1

PHP不支持Jupyter Notebook

Jupyter Notebook是一个无与伦比的学习机器学习的工具。你可以只使用浏览器准备、检查、可视化数据和训练你的模型。

所有这一切都归功于这些强大的能力:混合代码(Juila、Python和R)、文档(markdown)、可视化(img)

下面是一个例子,一个Notebook片段:

在这里插入图片描述

在机器学习的世界里,你会花大量的时间来分析数据。你会一直想要保留笔记、实验和训练各种类型的模型。当然,最好是能可视化。

这是一个有趣的犯罪数据分析的例子:Understanding Crime in Chicago

对了,我不会刻意说,这个笔记本还有版本控制的功能。

比分:PHP: 0 - Python: 2

不支持GPU

在你的数据集还未达到GB级别时,你不会想到使用深度学习,你更不会使用GPU。但是,这一天终将到来不是吗,到时候我们能做些什么呢?

比如说TensorFlow,相比其他环境的神经网络,它以优秀的分布式计算闻名。它给了你更多的可能性,去完全掌控计算组件(GPU、CPU),毫无疑问有了更多的选择。

例如,你可以决定把变量放在哪,下面,我们把变量a放在GPU上运行,把常量b放在CPU上运行。

with tf.device('/gpu:0'):
    a = tf.Variable(15.12)

with tf.device('/cpu:0'):
    b = tf.constant(3.14)

这仅仅是开始。你可以设置一个服务器集群来运行。你还可以使用TPU(张量处理组件)。专用的计算组件,可以加速机器学习进度。

在PHP里面,我们发现一个有趣的仓库:dnishiyama85/PHPMatrix

这是一个PHP扩展,支持浮点数矩阵运算,同时,它还支持 OpenBLAS sgemm 和 cuBLAS sgemm 函数

但是在我看来,在GPU上面的探索还任重道远(crawls like a baby)

我不知道这里有什么比较的意义,但还是让我们和平地做总结吧:

比分:PHP: 0 - Python: 3

总结

正如你看到的那样,上面我选择的三个主要原因足以说明,为什么PHP不是学习和使用机器学习的理想语言。但是,这不意味着情况会一直如此。

我想再一次提醒,PHP在创造之始是为了在网站上展示HTML,现在,你可以使用它来构建企业级应用。让我们看看一个例子:Spotify

通过网页和巨大的移动设备流量,这个音乐流媒体服务使用symfony来支撑7500万活跃用户、每秒几乎60万请求

具有讽刺意味的是,Spotify有一个用于机器学习的服务器集群:Spotify怎么如此懂你?

也许未来,PHP写机器学习的需求会到来,但只要上述问题不解决,我们没有什么指望。

但请不要悲伤。下面是我最喜欢的一句名言:

Those who are crazy enough to think they can change the world usually do.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值