为什么要用JavaScript实现人工智能

为什么要用JavaScript实现人工智能

在这一次以深度学习为代表的人工智能(AI)浪潮中,Python语言的风头一时无两,就算不用python,C++等更“传统”的编程语言也能带来更高的效率。那么,为什么还要使用JavaScript这一在传统意义上被认为是“前端的语言”来实现人工智能的算法呢?虽然得益于谷歌V8引擎的影响,Nodejs使得JavaScript在服务器端也有了一定的影响力,但将其应用在人工智能领域,在效率方面显然会有较大的损失,这样做究竟有没有意义呢?笔者认为,将JavaScript与人工智能相结合,是非常必要且有意义的,这主要有以下几方面的原因。

1. 海量的JavaScript程序员

几乎所有的前端页面都使用了JavaScript语言,这意味着程序员市场上有海量的JavaScript程序员,无论是出于兴趣爱好还是公司发展策略,要让JavaScript程序员转行学习另外一门语言并从事人工智能的相关工作,都是难上加难的,但如果仅使用JavaScript就可以实现人工智能,那么对JavaScript程序员而言无疑是一种福音。虽然基于网页的人工智能算法相比服务器原生效率会大打折扣,但是想像一下转学另一门语言的学习成本,以及在不同的编程语言之间切换带来的效率损失,那么,使用JavaScript直接进行人工智能的开发要便捷高效许多。效率的损失不应该仅仅只考虑程序运行的效率,人的因素更应该考虑在其中。

2. 本地化可以减少数据延迟

基于服务器的人工智能引擎意味着离不开网络的连接以及数据的传输,由于数据传输引起的延迟可能远远超过计算本身的开销。对于一个机器读表的工业物联网项目而言,传输以MB为单位的图片与服务器进行交换,本身会带来昂贵的流量费用,并且产生大量的延迟,这些延迟往往会严重影响客户的信心,从而导致项目的失败。

此外,云计算的成本同样非常昂贵,相比之下,通过JavaScript语言实现人工智能算法,将计算和数据都保存在本地设备上,通过本地化的人工智能应用来就地解决问题,可以有效减少服务器开销,减少通讯延迟,降低通讯费用,可谓是一箭三雕,也解决了网络连接的稳定性等问题,在有些情况下是唯一可行的选择。

3. 有利于数据隐私的保护

本地化的数据存储和计算,可以有效减少用户的隐私泄露。想象一个未来开发的虚拟试衣间的项目,如果用户的照片需要传输到云端才能进行分析与决策,那么很多用户可能会因为隐私保护的问题望而却步,而JavaScript可能在本地就可以实现这些计算与分析,数据不需要离开用户的手机,甚至都不需要保存下来,阅后即焚,这对于保护用户隐私而言是非常有益的。

4.方便利用富裕的计算能力

目前来看,无论是个人电脑还是手机,在大部分情况下都处于算力过剩的状态,没有得到充分的利用。而专门用于人工智能计算的服务器,则既昂贵又负荷饱满,在这样的情况下,如果可以充分利用终端闲置的计算能力来进行人工智能计算,是可以数以万倍的提高人工智能的计算效率的。JavaScript在前端的灵活性,意味着你的人工智能程序在浏览器中就可以运行,用户不需要下载和安装笨重的应用程序就可以在本地运行复杂的人工智能算法。而集成了WebGL API的现代浏览器,则为在浏览器中使用显卡的强大运算能力提供了条件。随着技术的推广与进步,相信基于JavaScript的人工智能运算效率也会不断提高,有可能在未来的某一个时刻,与服务器端的效率相媲美。

综上所述,虽然孤立来看,基于JavaScript的人工智能程序可能运行效率较低,但整体而言,将JavaScript与人工智能相结合,意味着可以更灵活的把人工智能算法分散的用户端,从而有效减少服务器开销,也减少由于网络延迟和不稳定带来的影响,可以更快的响应用户要求。因此,整体而言,将JavaScript与人工智能相结合,是非常有意义,且值得推广的。遗憾的是,这样的工作迄今为止并没有得到大规模的推广和实践,对于有志于从事人工智能开发的JavaScript程序员来说,使用谷歌的Tensorflow.js仍然是最好的选择。

作者
魏智勇(John)
加入讨论

此站点使用 Akismet 来减少垃圾评论。了解我们如何处理您的评论数据

魏智勇(John)

站长,80后,创业者,擅长工业自动化与信息化技术,熟悉各种PLC,组态软件,熟悉计算机技术,熟悉LabVIEW、C,C#,JavaScript程序设计技术。