【初心者向け】PythonでAI(人工知能)を作るには?おすすめのライブラリとサンプルコード

この記事の要点

  • AI(人工知能)とは、人間の認識や思考といった「知能」を、コンピュータによって実現するための技術
  • Pythonのライブラリを使うことで、効率よくAIを開発できる
  • ライブラリ同士を組み合わせて使うことで、より便利に活用できる

マーケティング、自動運転、ボードゲームなど、近年はAI(人工知能)が様々な分野で成果を挙げ、注目を集めています。
PythonでAIを開発するためには、高度な計算や高速な処理を提供してくれるライブラリの使用は必要不可欠です。
当記事を読めば、PythonでAIを作るまでの具体的なステップや、よく使われるおすすめのライブラリが分かります。

AI(人工知能)とは?

一般にAI(人工知能)といえば、人間の認識や思考といった「知能」を、コンピュータによって実現するための技術のことです。
例えば、車の自動運転や、Siri、Alexaなどの音声アシスタントにAIが活用されています。
AIを開発する際は、コンピュータに様々なデータを与え、コンピュータ自身にルールやパターンを発見させます。

これを「機械学習」といい、これまでの歴史の中で様々な手法が生み出されてきました。
中でも、人間の脳神経回路をモデルとした、「Deep Learning(ディープラーニング)」によって開発されたAIが大きな成果を挙げており、注目を集めています。

AI(人工知能)を作るための5ステップ

AI(人工知能)を作る場合、以下のようなステップで進めていきます。

どんなAIを作るか考える

まずはどんなAIをどのように活用したいか、考えてみましょう。
特に思いつかない場合は、データを集めやすい分野のAIからはじめてみることをおすすめします。

データ収集

AIに与えるデータを収集します。
データ収集は知識、経験、時間が要求される作業なので、初心者の方は無料で公開されているデータセットを用いると良いでしょう。
データセットを公開しているサイトは、以下の通りです。

DATA.GO.JP

【初心者向け】PythonでAI(人工知能)を作るには?おすすめのライブラリとサンプルコード_datagojp

公式:DATA.GO.JP

日本政府が提供している、気象情報や経済情報などの公共データセットです。

Google Open Images Dataset

【初心者向け】PythonでAI(人工知能)を作るには?おすすめのライブラリとサンプルコード_imagesdataset

公式:Google Open Images Dataset
Googleが提供している、機械学習用の画像データ群です。

AudioSet

【初心者向け】PythonでAI(人工知能)を作るには?おすすめのライブラリとサンプルコード_audioset

公式:AudioSet
Googleが提供している、動物の鳴き声や人の声などの音声ファイルのデータセットです。

データの前処理

データを分析しやすくするために、データを加工します。
具体的には、欠損値(入力漏れなど)や外れ値(極端に他の値から外れた値)を補完、除外したり、分析しやすい値に変換したりします。

モデル構築

分析したいデータや欲しい結果に応じて、アルゴリズムを選択し、機械学習モデルを作成します。
作成したモデルには訓練用データを与え、モデルをトレーニングしていきます。
そして訓練後のモデルに検証用データを与え、出力を検証します。
このサイクルを繰り返して、徐々に完成に近づけていきます。

作成したモデルを運用する

訓練済みモデルをWebアプリケーションに組み込んで、実際に動かします。

Pythonで利用できるAI(人工知能)ライブラリ

AI開発には、高度な計算や膨大な量のデータ処理が必要になるため、自前で実装するのは現実的ではありません。
そこで、PythonではAI開発のためのライブラリが多数提供されています。
これらを利用することで、実装やテストを大幅に削減でき、効率よくAIを開発できるようになります。

Numpy 数値計算

Numpyは、数値計算に用いられるライブラリです。
Numpyでは、N次元配列とそれを操作する関数が提供されています。
Pythonのリストを使うよりも高速にデータを処理でき、行列計算も関数呼び出しで簡単に行えるようになります。

Pandas データ集計、加工

Pandasは、データ集計や加工に用います。
例えば、特定データの出現回数を数える、特定ルールでグルーピングする、欠損値を処理する、ソートするなどの機能が提供されています。

matplotlib グラフ描画

matplotlibを使うと、グラフを描画できます。
折れ線グラフや棒グラフ、散布図やヒストグラムなどを出力でき、容易にデータを可視化できるようになります。

Pillow 画像処理

Pillowでは、画像処理を行えます。
画像ファイルを読み込んで数値化し、ピクセルレベルで色を取得したり、白黒変換したりできます。
加工した画像ファイルを別ファイルとして保存することもできます。

scikit-learn 機械学習

scikit-learnは、機械学習でよく使われるライブラリです。
回帰、分類、クラスタリングなど多数のアルゴリズムが提供されており、必要に応じて使い分けることができます。

Pythonライブラリのサンプルコード

それでは、ここまでご紹介したライブラリのサンプルコードをいくつかピックアップしてご紹介します。

配列の要素同士を足し合わせる

Numpyのサンプルコードです。
ライブラリを使わずにPythonのリスト同士を足し算するためには、処理の遅いfor文を使うことになります。
一方Numpyを使うと、配列同士を算術演算子で計算できる上に、計算も高速です。

import numpy as np
array1 = np.array([1, 2, 3, 4])
array2 = np.array([5, 6, 7, 8])
print(array1 + array2) #[ 6  8 10 12]

集計したデータを可視化する

Pandasでデータを集計し、さらにmatplotlibで棒グラフにします。
このように、ライブラリ同士を組み合わせて使うことで、より便利に活用できます。

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
df = pd.DataFrame([['suzuki', 60, 82, 88],
                  ['sato', 44, 92, 63],
                  ['yamada', 80, 52, 99]],
                  columns=['name', 'math', 'english', 'japanese'])
df = df.groupby('name').sum()
plt.figure()
df.plot.bar()
plt.savefig('score.png')
plt.close('all')

まとめ

PythonでAIを作るためのステップと、よく使うライブラリについてご紹介しました。
AI開発は、初心者の方にはハードルが高いと感じるかもしれません。
しかし、今はAI開発に必要な環境が整ってきています。
すでに提供されているオープンデータや便利なライブラリを活用することで、PythonでのAI開発はぐっと手軽になりました。
ぜひこの記事を参考に実際にAI開発にチャレンジしてみてください。