【Google Colaboratory】無料GPUでPython深層学習体験講座(15分完結)

【Google Colaboratory】無料GPUでPython深層学習体験講座(15分完結)

前回の記事では、Google ColabとGoogle Driveの同期を行い、GPUを使うための設定を解説しました。

今回は、実際にPythonを用いたDeepLearningプログラミングを実施し、AIに画像認識させていきましょう

深層学習プログラムといってもとても簡単なものですので、15分もあれば実施可能です。

時価70万円のGPUを無償提供してくれているGoogle Colaboratoryの恩恵を最大限活用して、AIプログラマーとしての一歩を踏み出していきましょう!

(Google Colaboratoryのまとめ記事は以下)

【Google Colaboratoryまとめ】完全版!特徴・環境設定・ディープラーニング体験【Colab】

Advertisement

Deep Learning用ライブラリ『TFLearn』の準備

それでは、深層学習プログラミングを実施していきましょう。

前回の記事同様、Google Colabを立ち上げて所定のファイルを開いてください。

まず、『コード』をクリックして、セルを一つ追加します。

次にセル内をクリックして、以下をセル内にコピペして「Ctrl+Enter」を押して実行してください。

これは、有名なGoogle提供のDeep LearningライブラリであるTensorFlowのより高度で使いやすいインターフェースであるTFLearnというものをインストールするためのコマンドです。

実行すると、以下のようになりましたか?

次に、再度『コード』をクリックしてセルを追加し、セル内に以下をコピペして実行してください。

これで、TFLearnの使用準備が整い、MNISTという手書き文字の画像データ6万5千枚集めたデータセットを読み込む準備が整いました。

ディープニューラルネットワークの実装:MNISTの学習

それでは、深層学習プログラミングを実施していきましょう!

『コード』をクリックして、セルを一つ追加し、以下のコマンドによりMNISTのデータをダウンロードして、各変数へ値を放り込みます。

これらの変数を、深層ニューラルネットワークのインプット(入力値)として与え、学習させていくのです。

それでは、今回のDeepLearningプログラムの全貌を見ていきましょう!

はい、これだけです。これだけのプログラムで、今流行りの深層学習が実行でき、深層ネットワークに画像データを学習させることができるのです!

ディープラーニングプログラムの解説

プログラムを示されただけでは何をやってるのかよくわからないと思うので、以下で簡単に解説します。(本章は飛ばしても問題ありません)

5行目では、入力層の設定をおこなっております。

ここで、最後に出てくる784というのは画像データのピクセル分の数字データです。

MNISTの手書き文字は、縦28×横28=784ピクセルであり、各ピクセルに黒色の濃淡を表す数字が格納されているのです。

インプットにて、784個分のデータサイズを受けとりますよ、という設定をしているのが5行目なのです。

次に、8から10行目では中間層(またの名を隠れ層)の設定をしております。全てnetという名前にして、最初の引数でnetを指定することにより、前の行の層を連ねているようなイメージです。

ここで、引数に出てくる20という数はニューロン(脳細胞みたいなもの?)の個数を表しております。一つの層に20個のニューロンが並んでおり、それを3つの層に連ねるという処理をここでは行っております。

13行目では、出力層を設定しております。

MNISTは0から9の数字の手書き画像データセットであるため、10個の数字の中から正解の数字を一つ見つける必要があります。本プログラムでは、0から9まで合計10個の数字に対して、今見ている画像がどの数字を表していそうかという確率を計算するため、出力層は10個に指定しております。

16行目では学習の条件を設定しております。使用する最適化関数とかを設定しているのですが、ここは飛ばして問題無いです。

18行目にて、modelという変数に、上で作った深層ネットワークを格納しております。

21行目にて、いよいよトレーニングを行います。訓練画像データを読み込み、数字を推論し、実際の数字(教師データと言います)と推論値を照らし合わせ、間違ってたらネットワーク内の各変数を修正して、正解が出せるように訓練していくというようなことを行います。

24行目では、テストデータという訓練には使用しなかったデータを用いて手書き数字の推論を行います。以降では、正当率のアウトプットのためのプログラムが続きます。

以上、何となく理解できたでしょうか?

上記のプログラムを実行した際のアウトプットは以下です。

手書き文字0~9の画像を深層学習ネットワークに数分間学習させることにより、約94%の精度(Test accuracy)で書かれた数字の文字を認識することが出来るようになりました。

現状のネットワークでは精度はイマイチですが、21行目のn_epoch = 20でエポック数(データセットを何ループ学習させるかという学習総量)を増やしたり、中間層(隠れ層)の層数やニューロン数(現状各層に20個)を変更してみたり、学習方法を変えてみたりと、改善の余地が沢山あります。

今回はデモンストレーションなので細かい説明は抜きにしましたが、興味のある方は各部分について勉強してみることをお勧めします。

初学者には以下の本をおすすめします。

Advertisement

まとめ

はじめてAIプログラミングを行う方向けに、Google ColabのGPUを用いて15分でできる深層学習プログラミングを解説しました。

深層学習ネットワークの肝の部分はわずか20行足らずで実装できるということがわかり、深層学習がぐっと身近なものになったのではないでしょうか?

これを機に、AIプログラミングに取り組む方が一人でも増えれば本望です。

 

【Google Colaboratoryまとめ】完全版!特徴・環境設定・ディープラーニング体験【Colab】

PythonによるBOTを用いた仮想通貨トレードの解説も以下の記事で行っております。

仮想通貨の自動トレードPythonBOT作成の準備(環境構築・APIキー取得方法)

独学は時間的に厳しいという方には、スクール↓を使うのも有効です!