全5963文字
PR

仕事や学業で人工知能(AI)の知識が必要なことが増えてきた。AIを支える中心的な技術が機械学習だ。本特集では、AIの歴史と全体像から基本的な機械学習アルゴリズムのPython実装までを幅広く解説する。

 統計学などの専門知識があまりなくても、AIライブラリを使えば、機械学習のプログラムを手軽に実装できます。PythonにはAIライブラリがいくつもありますが、初学者向けのライブラリとしては「scikit-learn」が定番です。

 そこでPart 2では、scikit-learnが用意しているアルゴリズムを使って、「分類(教師あり学習)」「回帰(教師あり学習)」「クラスタリング(教師なし学習)」のプログラムを実装してみます。

Pythonの代表的なAIライブラリ

 Pythonには、scikit-learn以外にもよく使われるAIライブラリがあります。代表的なのは「XGBoost」「TensorFlow」「PyTorch」といったライブラリです。

 XGBoostは、分類や予測を行う教師あり学習で精度の高い機械学習モデルを作れるライブラリです。「勾配ブースティング木」というアルゴリズムを使ってモデルを構築します。このアルゴリズムは、アンサンブル法の一種である「ブースティング」という手法を使っています。アンサンブル法とは、複数のモデルを組み合わせてより優れたモデルを作る手法のことです。XGBoostは、「Kaggle」などのデータサイエンスのコンペティションでも人気のライブラリです。scikit-learnでの機械学習の実装に慣れたら、次にチャレンジしてみると良いでしょう。

 TensorFlowとPyTorchは、本格的な深層学習(ディープラーニング)のプログラムを実装できるライブラリです。高速演算を行うGPUを使った学習ができます。scikit-learnでも、ニューラルネットワークのアルゴリズムを使って深層学習のモデルを実装することはできますが、GPUに対応していません。しかし、精度の高い深層学習を行うためにはGPUは必須と言えます。よって、本格的な深層学習を実装する場合は、TensorFlowやPyTorchを使うのが一般的です。

scikit-learnを使う準備をしよう

 scikit-learnは、基本的な機械学習のアルゴリズムを備えたライブラリです。表1に示した「分類」「回帰」「クラスタリング」「次元削減」の4種類の手法から用途に合ったアルゴリズムを選択し、機械学習のプログラムで利用できます。

表1 ●「scikit-learn」で使用できる主な機械学習アルゴリズム
表1 ●「scikit-learn」で使用できる主な機械学習アルゴリズム
[画像のクリックで拡大表示]

 Part 2で使用するのは、以下の3つのアルゴリズムです。

[画像のクリックで拡大表示]

 「k近傍法」は、教師あり学習の分類のアルゴリズムです。「線形回帰」は、教師あり学習の回帰のアルゴリズムで、予測を行います。「k平均法」は、教師なし学習のクラスタリングのアルゴリズムで、グループ分けを行います。

 scikit-learnでは、これらのアルゴリズムの違いをあまり意識することなく、シンプルなコードで機械学習のプログラムを実装できます。それぞれの実装方法は、あとで詳しく説明していきます。