Kerasを使用して深層学習を試してみたいけど、肝心の機能や使い方が分からなくて困っているという方もいますよね。だからと難しい参考書を読んでみてもなかなか理解するのが難しいです。
しかし比較的簡単な構築と書きやすいコードで使えるKerasは深層学習の入門としてもオススメのライブラリ。そんなKerasは知識を付けておいて損はありません。
そこで今回は、Windows10の環境で構築から使ってみるまでの流れを手順とともに分かりやすく解説します。またKerasを使って何ができるかもお話しましょう。
まずは、Kerasの大まかな特徴と何ができるかについて解説します。Kerasについて更に知識を深めたい方、是非参考にしてください。
Kerasとは
Kerasは、無料で使えるニューラルネットワークライブラリの1つです。
Kerasを使うとできることとは
Kerasについて理解したところで、実際何ができるようになるかについて触れていきましょう。
音声認識
身近な所だと、Appleの「Siri」やGoogleの「Googleアシスタント」がそうです。
画像認識
こちらは、顔認証システムや製造業の不良品検知などに使われていますよね。
自然言語処理
文章を最小の単位から理解し、意味までも解析することによって新たに候補を提示できる仕組みになっています。
Kerasと他のライブラリの違い
次に、Kerasに他のライブラリとどんな違いがあるのかについて触れていきましょう。
Kerasと同じく、現代の深層学習でよく使用されるTensorflow、PyTorchをもとに比較していきます。
簡単なコード
深層学習への知識があまりなくても、使えるようになっています。
構築が簡易化されている
深層学習は、環境を構築する段階が大変で、気軽に取り組むには難しいのが現状です。
上で上げた2つの点から、Kerasは深層学習を学び始めるのに非常に適したライブラリだと言えるでしょう。
ここまででKerasの特徴とできることについて、何となく理解できたでしょうか。それではここからは、Kerasのインストールから実際に使ってみるまでの手順を、順に分かりやすく解説していきます。
Kerasのインストール方法
Kerasを使用するためにPythonの環境が必要となります。
Anacondaを利用することで、Pythonの環境構築を簡単に済ませることができるため、こちらを使用して進めていきましょう。
1. Anacondaのインストーラをダウンロード
Anacondaからダウンロードします。
今回は「Windows 64-Bit Graphical Installer」で進めていきます。
2. Anacondaのインストーラを起動
問題なければ、特に設定は変更せずそのまま進めましょう。
3. AnacondaPromptを起動
まず、WindowsのメニューでAnaconda Promptと検索し、起動します。以降の手順に出るコマンドはAnaconda Promptで実行するコマンドです。
4. Python環境を準備
conda create -n keras35 python=3.6 anaconda
コマンドを入力し、Python環境の準備をします。
5. Keras35の環境を有効にする
conda activate keras35
6. TensorFlowをインストール
pip install –ignore-installed –upgrade tensorflow
-upgrade の部分にてTensorFlowの最新化を行っています。
7. Kerasをインストール
pip install keras
ここまで入力すれば、Kerasのインストールが完了となります。
Kerasを簡単に使ってみよう
Kerasの環境構築が完了したところで、実際に少し使ってみましょう。
今回は、Anacondaをインストールした際に、一緒に入るJupyterを使用します。
インストール手順と同じく手順に沿って解説していきます。
1. Jupyterを起動
2. コード入力画面の表示
Jupyterの画面右上のNew→Python[default]の順でクリックして、コードを入力する画面を表示させます。
3.MNISTサンプルを実行
%matplotlib inline import keras from keras.datasets import mnist import matplotlib.pyplot as plt #データを読み込み、シャッフルして学習データと訓練データに分割 (x_train, y_train), (x_test, y_test) = mnist.load_data() #MNISTデータを表示 fig = plt.figure(figsize=(9, 9)) fig.subplots_adjust(left=0, right=1, bottom=0, top=0.5, hspace=0.05, wspace=0.05) for i in range(81): ax = fig.add_subplot(9, 9, i + 1, xticks=[], yticks=[]) ax.imshow(x_train[i].reshape((28, 28)), cmap='gray')
このデータを使って、次の手順から数字の画像を認識するプログラムを書いていきます。
4. データを変換
num_classes = 10 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 = y_train.astype('int32') y_test = y_test.astype('int32') y_train = keras.utils.np_utils.to_categorical(y_train, num_classes) y_test = keras.utils.np_utils.to_categorical(y_test, num_classes) print(x_train.shape[0], 'train samples') print(x_test.shape[0], 'test samples')
5. モデルを定義
from keras.models import Sequential from keras.layers import Dense, Dropout, Activation from keras.optimizers import RMSprop model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(10, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy'])
上記のコードで、モデルを定義しています。そして学習に関する設定などを行っていきます。
6. 学習を行う
batch_size = 128 epochs = 20 history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test))
fitメソッドによって、学習を行わせます。epochsは、何回データを繰り返し学習させるかを表しています。
7. 正答率を確認する
#正答率 plt.plot(history.history['acc']) plt.plot(history.history['val_acc']) plt.title('model accuracy') plt.ylabel('accuracy') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show() #損失関数 plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('model loss') plt.ylabel('loss') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show()
ここまで実行すると、正答率が徐々に上がっていく過程が見られますよね。
1回ごとにデータを学習している証拠です。大体20エポックほどで正答率は上がらなくなります。
Kerasを使うときの注意点
ここまでKerasを使ってみる方法について解説しましたが、Kerasについて1つ注意点があります。
深層学習に慣れてきて、大きいデータを使用したくなったときは他のライブラリを使用するなど、上手く使い分けていきましょう。
ここまでKerasについて詳しく解説してきました。
今回お話してきた通り、Kerasは深層学習を試してみたい人に本当にオススメのライブラリ。他のライブラリを触ってみたり、プログラミングの経験がないから無理だと思っている方でも是非挑戦してみてください。
今私たちの生活の身近な部分にまでAI(人工知能)は浸透してきています。顔認証、自動予測変換、音声認識によるテキストへの変換機能なども全てAI(人工知能)です。
AI(人工知能)技術が急速に広がりを見せている今その知識を持っていることはきっとこの先自分の得になるでしょう。
AI(人工知能)の技術の一つである機械学習。その中でも更に注目を集めている深層学習。この深層学習の入門として最適なKerasを使って是非学びを深めていきましょう。そして自分の力でAI(人工知能)のシステムやアプリなどを作ることができるようになると良いですよね。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。