通常,人们使用两种编程语言之一来应用机器学习 (ML) 方法和算法:Python 或 R. Books、有关机器学习的课程和教程通常也使用其中一种语言(或两者)。

Python 是一种通用编程语言,不仅用于机器学习,还用于科学计算、后端 Web 开发、桌面应用程序等。R 主要为统计人员创建。但是,它们至少有两个共同特征:

  • 它们适用于非程序员
  • 他们有全面的 ML 库

在许多情况下,ML 算法在 Fortran、C、C++ 或 Cython 中实现,并从 Python 或 R 调用。

Java 也用于机器学习,但通常由专业程序员使用。

在过去几年中,JavaScript 越来越受欢迎,出现了一些非常有趣的机器学习库,使 ML 方法能够在浏览器或 Node.js 上实现。令人惊讶的是,许多这些库在 JavaScript 中实现了许多代码。

本文介绍几个用于 JavaScript 的 ML 开源库:

  • ml.js
  • 张力流.js
  • 大脑.js
  • 康夫内吉斯
  • 网络DNN
  • 自然

ml.js

ml.js 是一个全面的通用 JavaScript ML 库,用于浏览器和 Node.js。它提供了以下例程:

  • 对数组、哈希表、排序、随机数生成等进行位操作。
  • 线性代数,数组操作,优化(列文伯格-马夸特方法),统计
  • 交叉验证
  • 监督学习
  • 无监督学习

支持的监督学习方法包括:

  • 线性、多项式、指数和功率回归
  • K 最近邻居
  • 纳维·贝叶斯
  • 支持矢量机
  • 决策树和随机林
  • 前馈神经网络等

此外,ml.js 提供了几种无监督的学习方法:

  • 主要成分分析
  • 聚类分析(k-means 和分层聚类)
  • 自组织地图(科科宁网络)

许可证:麻省理工学院。

张力流.js

TensorFlow 是最受欢迎的机器学习库之一。它侧重于人工神经网络的各种类型和结构,包括深度网络以及网络的组成部分。

TensorFlow 由 Google 大脑团队创建,以 C# 和 Python 编写。但是,它可以与包括 JavaScript 在内的多种语言一起使用。

TensorFlow 是一个非常全面的库,仍然能够轻松构建和训练模型。它支持各种网络层、激活功能、优化器和其他组件。它具有良好的性能,并提供 GPU 支持。

TensorFlow.js 是一个 JavaScript ML 库,用于浏览器或 Node.js。它支持 WebGL。

许可证:阿帕奇2.0。

大脑.js

brain.js 是一个用 JavaScript 编写的库 ,专注于训练和应用前馈和循环神经网络。它还提供了额外的实用程序,例如神经网络所需的数学例程。

它提供了高级选项,例如:

  • 使用 GPU 训练网络
  • 可并行容纳多个网络的异步训练
  • 交叉验证,这是一种更复杂的验证方法

brain.js 保存和加载模型到/从 JSON 文件。

许可证:麻省理工学院。

康夫内吉斯

ConvNetJS 是另一个用于神经网络和深度学习的库。它支持在浏览器中训练神经网络。除了分类和回归问题外,它还具有强化学习模块(使用 Q-learning),该模块仍处于实验阶段

在 ConvNetJS 中,神经网络是层的列表。它提供以下层:

  • 输入(第一个)图层
  • 完全连接的层
  • 卷积层
  • 池层
  • 局部对比度规范化图层
  • 分类器损耗(输出)图层:软最大值和 svm
  • 使用 L2 的回归损耗(输出)图层

它支持几个重要的激活功能,例如:

  • 雷卢
  • 乙状结肠
  • 双曲线切线
  • 最大 Out

以及优化器,如:

  • 随机梯度下降
  • 阿达德尔塔
  • 阿达格拉德斯
  • ConvNetJS 还提供了一种将模型保存到/从 JSON 文件加载的便捷方法。

许可证:麻省理工学院。

网络DNN

WebDNN 是一个专注于深度神经网络的库,包括具有 LSTM 体系结构的循环神经网络。它用 TypeScript 和 Python 编写,并提供 JavaScript 和 Python API。

它还提供了在浏览器中执行 GPU 的可能性。

WebDNN 的一个非常方便的功能是可以转换和使用预训练的模型与 PyTorch、TensorFlow、Keras、Caffemodel 或链子。

许可证:麻省理工学院。

自然

自然是一个 JavaScript 库,用于与 Node.js 一起使用的自然语言处理。

它支持:

  • 标记化(将文本分解为字符串数组)
  • 字符串距离的计算
  • 匹配类似的字符串
  • 分类(天真贝叶斯、逻辑回归和最大熵)
  • 情绪分析(目前使用八种语言)
  • 语音匹配、变形器、n-gram 等。

许可证:麻省理工学院。

结论

在过去几年中,JavaScript和机器学习都备受关注和普及。尽管 JavaScript 最初是为启用网页的动态行为而创建的,但成为实现和应用机器学习方法的首选语言之一,尤其是在浏览器或服务器 (Node.js) 中。

本文提供了有关 JavaScript 的机器学习库可用性的初始信息。

有很多的乐趣探索他们,谢谢你的阅读!

Comments are closed.