近年、第三次人工知能ブームが巻き起こっています。特に、深層学習(ディープラーニング)と呼ばれる技術で目覚ましい成果を上げています。本稿では、難しいと思われている機械学習(深層学習)を、お手軽プログラミング言語JavaScriptで実践してみます。難しい数式や理論は後回しにして、まずは、気軽に機械学習に触れてみましょう。

 前回は、JavaScriptのニューラルネットワークのライブラリ「synaptic.js」を使って、ワインの等級判別を実行してみました。今回は、「node-svm」というライブラリを利用して機械学習を実践してみましょう。

「node-svm」のインストール

 前回、既に、ワインの成分から等級が判定できるという結論を述べてしまいましたが、今回は、ニューラルネットワークを使わず、SVM(サポートベクターマシン)というアルゴリズムを利用して、等級判定を行ってみます。

 SVMはパターン識別手法の一つであり、機械学習でよく使われるアルゴリズムです。マージン最大化という手法を利用して、高い精度でデータを分類できることで有名です。

 「node-svm」は、JavaScriptの実行エンジン「Node.js」からSVMを使うことができるモジュールの一つです。ここ数回利用した「synaptic.js」は、全てがJavaScriptで記述されている点が素晴らしいのですが、大量のデータを利用しようと思うと、非常に処理に時間がかかってしまいます。そこで、今回は、OSネイティブのバイナリを利用するので、高速に実行できる「node-svm」を利用してみます。

 インストールするには、コマンドラインから、以下のコマンドを実行します。


$ npm install node-svm

 ただし、Windowsで、node-svmをインストールする場合、Python2とVisual Studio(あるいは、.NET Framework SDK)のインストールが必要となります。