時価70万円のGPUを無料で使える最強のサービスGoogle Colaboratory。
本記事では、Google Colaboratoryの特徴から、環境設定、PythonによるDeep Learning体験まで、本サービスの魅力と活用方法を余すことなくお伝えいたします!
Google Colabの特徴
それでは、Google Colabの特徴をみていきましょう。
メリットをリストアップすると以下のようになります。
・時価70万円のGPUが無料で使える!!
・ハイスペックCPUであるXeonハイッテル!!
・専用Notebook上で開発できるため、情報共有や思考(試行)の記録化が容易!!
・計算科学系ライブラリがプリインストールされており、環境設定ほぼ不要!!
・超高速TPUが使える!!←New!!
一方で、Google Colabのデメリットは何があるでしょうか?
・連続利用時間は12時間まで
・未操作のまま90分経過するとインスタンスが落ちる
こんなもんでしょうかね。
これらのデメリットは、Google Colabの多大なるメリットと比べたらなんてことはありません。
以下の記事にて、Google Colabの特徴についてより詳細にまとめておりますので、気になる方はこちらをどうぞ。
【Google Colaboratoryの衝撃!】無料GPU(時価70万円)・TPUでAI体験可能!Google Colabの特徴
Google Colabの環境設定
それでは、GPUを使うための環境設定について説明していきます。
手順は以下です。
①Google DriveとGoogle Colaboratoryを連携
②Google ColaboratoryにてGPUを起動
③Notebookを起動
以上、これだけです!
早い人なら10分とかからずにできます。
以下の記事で、環境設定の詳細について、スクリーンショットを多用して解説しております。
これからGoogle Colabを使ってみようと考えている方は、ぜひご参照ください。
Google ColabでGPUを用いた深層学習プログラミング
本題の深層学習プログラミング体験に移りましょう!
今回使用する深層学習ライブラリはTFLearnというもので、深層学習ライブラリとして有名なTensorFlowをより感覚的に使いやすくした、ハイレベルなインターフェースです。
まず、以下のソースコードをGoogle Colab上のセル内にコピペして「Ctrl+Enter」で実行してください。
1234567891011 # TFLearnのインストール!pip install tflearn# 使用するライブラリのインポートimport tflearnimport tflearn.datasets.mnist as mnistimport tensorflow as tfimport numpy as np# MNISTのデータを./mnistへダウンロード&各変数へ値を格納X,Y,testX,testY = mnist.load_data('mnist',one_hot=True)
これで、TFLearnのインストールが実行され、MNISTという手書き文字65000枚のデータセットが使えるようになりました。
続いて、深層学習プログラムを以下に示します。
これをセルにコピペして実行すれば深層学習がはじまり、手書き文字の値を推定する精度が向上していきます。
123456789101112131415161718192021222324252627 # おまじないtf.reset_default_graph()# 入力層の作成net = tflearn.input_data(shape=[None, 784])# 中間層を3層作成net = tflearn.fully_connected(net, 20, activation = 'sigmoid', weight_decay = 0.001)net = tflearn.fully_connected(net, 20, activation = 'sigmoid', weight_decay = 0.001)net = tflearn.fully_connected(net, 20, activation = 'sigmoid', weight_decay = 0.001)# 出力層の作成net = tflearn.fully_connected(net, 10, activation = 'softmax')# 学習条件の設定net = tflearn.regression(net, optimizer='adam', loss = 'categorical_crossentropy')model = tflearn.DNN(net, tensorboard_verbose = 0)# トレーニングmodel.fit(X,Y,n_epoch = 20, batch_size=128 , shuffle=True, validation_set = (testX, testY))# テストpredictions = np.array(model.predict(testX)).argmax(axis=1)actual = testY.argmax(axis=1)test_accuracy = np.mean(predictions == actual, axis=0)print("Test accuracy: %f" %test_accuracy)
上記プログラムを簡単に解説すると、以下のような構成になっております。
①5行目:入力層(画像データを受け取る層)を設定
②8~10行目:中間層(またの名を隠れ層)を設定
⇒一つの層に20個のニューロン(人間でいう脳細胞)が3層連なる(深層ネットワーク形成)
③13行目:出力層を設定
⇒0から9まで合計10個の数字に対して、今見ている画像がどの数字を表していそうかという確率を計算
④16行目:学習の条件を設定(最適化関数と損失関数)
⑤18行目:modelという変数に深層ネットワークを格納
⑥21行目:トレーニングを実施
⑦24行目:訓練には使用しなかったテスト用データを用いて手書き数字の推論
上記のプログラムを実行した際のアウトプットは以下です。
MNISTの手書き数字0~9の画像を上記の深層学習ネットワークに学習させることにより、約94%の精度で画像の数字を認識することが出来ました。
ざっくりとした解説ですが、これだけ短いプログラムで流行りのディープラーニングを利用できるということがお分かりいただけたかと思います。
なお、本プログラムのより詳しい説明は以下の記事の後半に記載しております。興味のある方はぜひお読みください!
これを機にディープラーニングについて学んでみようという方には、圧倒的に以下の本をおすすめします。
深層学習ネットワークを一から自分で作りながら中身を理解していく形式なので、とかくブラックボックス化しがちなディープラーニングの学習にはもってこいです!
まとめ
Google ColaboratoryのGPUを用いて、簡単なディープラーニングプログラムを走らせるまでのデモンストレーションを行いました。
現在ではTPUも使えるようになっており、ますます利用価値が向上した本サービスを積極活用して、来たるAI全盛時代に備えましょう。
Google Colaboratoryの関連記事:
【Google Colaboratory】無料GPUでAI体験可能!Google Colabの特徴
なお、現在のAI はどこまでのことが出来るのかということについては、多くの事例をまとめた以下の記事をご覧ください。
結構衝撃的な事が既に実用化されていることがわかります。
AI技術の発展が導くシンギュラリティについては以下をご参照ください。
PythonによるBOTを用いた仮想通貨トレードの解説も以下の記事で行っております。
コメントを書く