テクノロジー

【すぐ使えるサンプルつき】Pythonで人工知能(AI)を開発する方法

【すぐ使えるサンプルつき】Pythonで人工知能(AI)を開発する方法

最近、人工知能(AI)の技術がどんどん発達して、人工知能(AI)の開発ニーズも高まってきています。人工知能(AI)について調べていると「Pythonというプログラミング言語で人工知能(AI)が作れる」という情報がたくさん出てきますよね。

しかし、「プログラミングってなんだか難しそう」、「興味はあるけど何から初めていいかわからない」と迷う方もいるでしょう。プログラミングは、その興味を無駄にせず、まずは自分で手を動かして作ってみることが大事です。この記事ではPythonを学び始めた人が、簡単に人工知能(AI)を作れるようにサンプルもつけて解説しています。これであなたもPythonを使って人工知能(AI)を作れるようになるに違いありません。

そこで今回は、「Pythonってなに?」というところから実際にPythonで開発した人工知能(AI)のサンプルをつけながら、丁寧に解説します。

Pythonとは

Pythonのイメージ
Pythonとは、1991年にオランダ人のグイド・ヴァンロッサムによって開発されたプログラミング言語です。誰もが無料で利用でき、シンプルな文法で少ないコードで記述できるため、プログラミングをやったことがない方にもぴったりでしょう。

また、Pythonを用いれば読みやすいコードを書くことができ、様々な場面で応用できる高い拡張性を持っています。そのためプロからも愛用され、皆さんのよく知っているGoogleやFacebookなど、超有名なIT企業でも使われる実用的なプログラミング言語です。

なぜPythonが人工知能(AI)開発に使われるのか

Pythoの理由のイメージ

そんなPythonは、人工知能(AI)の開発においても特に人気が高いプログラミング言語です。その理由はPythonにはNumPy(ナンパイ)やSciPy(サイパイ)といったライブラリ(汎用的なプログラムをまとめたもの)がとても豊富だからです。ちなみにNumPyとSciPyはベクトル演算などの科学技術計算を簡単に実装できるライブラリです.

また高度な人工知能(AI)の開発に必要なライブラリの多くもPythonから操作できるように用意されています。例えば,記事の後半でも紹介しますが、人工知能(AI)の一つであるニューラルネットワークの開発に用いられるKeras(ケラス)やPyTorch(パイトーチ)といったライブラリです。そのためそれらのライブラリを使うことで少ないコードで効率的に人工知能(AI)を開発することができます。

Pythonで人工知能(AI)を開発するステップ

ステップのイメージ
ここからは実際に手を動かしながら人工知能(AI)を開発しましょう。大まかなステップは次のとおりです。

ステップ1:Pythonをインストールしよう

まずはPythonをPCにインストールしましょう。Pythonのインストールにはいくつか方法がありますが、ここではAnacondaというディストリビューションを利用します。AnacondaはPythonに加えて基本的なライブラリがひとまとまりになったものです。リンクよりご自身のOSに合ったものをダウンロードし、インストールを行いましょう。

Pythonをインストールしたら、まずはPythonのバーションを確認しましょう。インストールしたAnaconda内にあるAnaconda Promptを開き以下のコマンドを入力すればインストールされたPythonのバージョンを確認できます。

>python –version
Python 3.6.5 :: Anaconda, Inc.

上記のように、インストールしたPythonのバージョンが表示されていればOKです。

ステップ2:仮想環境を構築してみよう

仮想環境とはプログラムを動かす専用の箱のようなもので、箱に名前をつけてそのなかに好きなライブラリを入れることができます。そのため自分の作りたいものに合わせて箱を用意できます。

それではターミナルで以下のコマンドを入力して仮想環境を作りましょう。

>conda create -n Python_AI python=3.6

ここではPython_AIという名前で仮想環境を作りました。仮想環境の作成が完了したら以下のコマンドで確認しましょう。

>conda info -e

Python_AIという名前の仮想環境が表示されていれば成功です。以下のコマンドで仮想環境を起動しましょう。

conda activate Python_AI

ステップ3:Pythonをつかってみよう

仮想環境を起動できたら、Pythonを使いましょう。以下のようにpythonと入力するとプログラミングを行うことができます。

>python
>>>
試しに数値計算をしてみましょう。
>>> 2 – 5
-3
>>> 3 * 4
12
>>> 3 / 2
1.5

Pythonの実行環境を終了する際はexit()と入力します。これ以外にもグラフを描画したり、画像を読み込んで表示するなど、Pythonのプログラミングでできることはたくさんあります。

ステップ4:Pythonプログラムファイルを実行しよう

ここまで、Pythonをインタラクティブに使う例を見てきました。しかし、まとまったプログラムを実行するには毎回コードを入力する必要があるため少し不便ですよね。そこでプログラムをファイルに記述し、それをまとめて実行しましょう。テキストエディタでhello.pyというファイルを作成し、以下の一行を記述してみましょう。

print(“Hello world!”)

続いてhello.pyを保存した場所に移動し、以下のコマンドを入力しましょう。

python hello.py
Hello world!

このようにPythonプログラムファイルを実行できます。

ステップ5:Kerasをインストールしてみよう

KerasとはPythonで記述された人工知能(AI)を開発するためのライブラリの一つです。Kerasは人工知能(AI)の技術であるニューラルネットワークを比較的かんたんに開発できるため、入門向けです。コマンドプロンプトから以下のコマンドでKerasをインストールしましょう。

conda install tensorflow keras

KerasはTensorFlowというライブラリ上で動くため、上記のコマンドでTensorFlowも一緒にインストールされます。確認は以下のコマンドで行いましょう。

>conda list

リストの中にKerasとTensorFlowがあればOKです。

Pythonで開発した人工知能(AI)のサンプルコード

サンプルのイメージ
それでは、Pythonを使って人工知能(AI)を作っていきましょう。ここでは手書き数字の画像を人工知能(AI)で認識させましょう。実験に使うのは、MNISTという公開されているデータセットです。また結果を表示させるためのMatplotlibというライブラリを以下のコマンドでインストールしましょう。

>conda install matplotlib

それでは準備が整ったところで以下のプログラムのファイルを作成し、実行しましょう。

import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, InputLayer
from keras.optimizers import RMSprop
import matplotlib.pyplot as plt
import numpy as np
# MNISTデータの読み込み・前処理
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype(‘float32’)
x_test = x_test.astype(‘float32’)
x_train /= 255
x_test /= 255
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
# 人工知能(AI)の構築
model = Sequential()
model.add(InputLayer(input_shape=(784,)))
model.add(Dense(10, activation=’softmax’))
model.compile(loss=’categorical_crossentropy’, optimizer=’rmsprop’, metrics=[‘accuracy’])
# 人工知能(AI)の学習
epochs = 10
batch_size = 128
history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test))
# 人工知能(AI)の精度検証
score = model.evaluate(x_test, y_test, verbose=1)
print()
print(‘Test loss:’, score[0])
print(‘Test accuracy:’, score[1])
# 認識結果の表示
pred = model.predict(x_test)
ans = np.argmax(pred[0])
sco = np.max(pred[0]) * 100
plt.title(“Predict : {} Score : {:.2f}”.format(ans, sco))
plt.imshow(x_test[0].reshape(28, 28), cmap=’Greys’)
plt.show()

Pythonを使って作成した人工知能(AI)の認識精度が以下のように表示されたら成功です。

Test accuracy: 0.9271

これで、人工知能(AI)ができました。

Pythonで人工知能(AI)を開発するためのおすすめライブラリ

ライブラリのイメージ
今回は人工知能(AI)を開発するためのライブラリとして、Kerasを用いました。しかし、Kerasの他にもPythonには様々な人工知能(AI)開発のためのライブラリがあります。なかでも、おすすめの2つについてお伝えしましょう。

PyTorch(パイトーチ)

PyTorchはKerasやTensorFlowなどと同様にニューラルネットワークの開発に適したライブラリです。PyTorchは2016年にFacabookにより開発された比較的新しいライブラリですが、近年では人気が急上昇しているライブラリです。その人気の理由は操作性の高さや拡張性の高さが挙げられます。

まず操作性に関しては冒頭に紹介したNumPyという数値計算ライブラリにとても類似し、親しみやすさがあります。また拡張性に関してはPyTorchでは動的に計算グラフ(ライブラリ内部で計算処理に使うデータフローなどのグラフ)を構築できるため、自然言語処理など複雑な人工知能(AI)の開発が可能になります。このような特徴から、PyTorchは研究者を中心に世界中で使用されているホットなライブラリなのです。

Scikit-learn(サイキットラーン)

これまで人工知能(AI)の最先端技術のディープラーニングを中心に紹介しましたが、従来の機械学習と呼ばれる人工知能(AI)の技術もいまだに広く使われています。その機械学習を使いやすくしてくれるのがScikit-learnなのです。

Scikit-learnにはさきほど開発した分類タスクの他にも回帰(値の予測)やクラスタリング(データのグループ分け)といったタスクを扱える様々なアルゴリズムが揃っています。またユーザーがとても多く、学習教材やコードが豊富であるため、人工知能(AI)の基礎技術を理解したい方にはピッタリでしょう。

Pythonで人工知能(AI)を開発する注意点

注意点のイメージ
さて、ここまでPythonを用いた人工知能(AI)の開発について紹介しましたが、開発する際の注意点について2点ほど触れましょう。

過学習に気をつけよう

過学習とは人工知能(AI)が学習させたデータに対しては正しく判定できるけれど、未知のデータを与えると判断できないという状態を指します。つまり手書き数字の例だと8の画像ばかりを用意して人工知能(AI)を学習させた場合、8の画像は正しく判断できても、ほかの1や3といった画像は判断できない現象が起きてしまいます。

これは特に自分で集めたデータを使って人工知能(AI)を開発するときに陥る事が多いのですが、学習データのバリエーションを意識して用意することや、学習データの他に検証データを用意することで過学習を抑制できる可能性があります。その他にも人工知能(AI)のモデルを簡素化したり、学習アルゴリズムを変えてみるなど様々な手法があるため、過学習に陥ってしまった際には試しましょう。

大規模は人工知能(AI)開発にはマシンスペックが必要

今回使用したデータセットは画像も小さく、タスクも単純なため、人工知能(AI)を作成するのにそこまで時間はかからなかったかもしれません。しかし今後さらに大きな画像や複雑なタスクを扱える人工知能(AI)を開発する際には、GPUと呼ばれるプロセッサが必要になります。

GPUを使用した人工知能(AI)開発ではGPUを購入するなどの環境の準備はもちろん、そのGPUを操作するためのソフトウェアなどをインストールする必要があるため、今回よりは難しくなるでしょう。しかしながら、自分でGPUを購入しなくてもクラウド上でGPUを使用できるサービスも充実しているため、Pythonを用いた人工知能(AI)開発はどんどん手軽になってきているのです。例えばGoogleが提供するGCP(Google Cloud Platform)やAmazonが提供するAWS(Amazon Web Service)などがあります。

これらのクラウドサービスは使用時間に応じてコストがかかりますが、自分の必要なスペックに随時カスタマイズすることができるので利用用途が明確でない場合には特におすすめです。

まとめ
さて、今回はPythonによる人工知能(AI)開発について解説しました。

Pythonで人工知能(AI)を開発する際は、

  • Pythonをインストールする
  • 仮想環境を構築する
  • ライブラリを使ってプログラムファイルを作成し、実行する

の3点がポイントになります.サンプルコードで使用したKeras以外にも魅力的なライブラリがたくさんあるのでぜひ使いましょう。またPythonで人工知能(AI)を開発する際の注意点としては、「過学習に気をつける」「大規模な人工知能(AI)開発にはGPU環境が必要」があります。

今回ご紹介した技術はほんの一部で、他にも人工知能(AI)にできることがたくさんあります。ぜひこれからも自分の手でPythonを動かして、人工知能(AI)の可能性を体験しましょう。

トップへ戻る
タイトルとURLをコピーしました