Web系エンジニアのアウトプット練習場

エンジニアリングと書評が中心。たまに全然関係無い話もします。
トップページ/AI・機械学習/PythonとKerasによるディープラーニングを読み進める その1/
2018年06月02日

PythonとKerasによるディープラーニングを読み進める その1

AI・機械学習Python


Kerasの作者によるPythonとKerasによるディープラーニングの日本語訳版が2018/5/28に発売されましたので、早速購入しました。 ディープラーニングは仕事で使用する予定がある技術ですので、良いタイミングで発売してくれました。
サンプルコードの実行環境は、Google Colaboratoryを使っています。 詳しくは他ページで詳しく紹介されているのですが、なんといってもGPUインスタンスが無料で使えるというところが大きすぎます。
ノートブックを開いたら、ランタイム => ランタイムのタイプを変更から、ハードウェアアクセラレータをNoneからGPUに変更することでGPUインスタンスが使用できます。
ノートブックの設定
ちなみに、本の3.3節にてサンプルコードはGPUインスタンスでの実行を推奨すると記載されています。 この本では「手元のPCにGPUを導入するか、AWSのEC2を使用せい」と紹介されていますが、両方お金がかかってしまいますので、宗教上の理由がない限りはGoogle Colaboratoryがオススメです。 なお、EC2でのKerasのセットアップ方法については、付録に詳細が記載されていました。
1章および2章はディープラーニングを扱う前の準備という立ち位置の章で、機械学習の歴史、前提となる数学知識がざっくりとまとめられています。
ゼロから作るDeep Learning――Pythonで学ぶディープラーニングの理論と実装を読んでいたので、ここらへんは軽く読むことができました。
ここまではブログにまとめることも特にないので、3章からいきます。

3章. 入門: ニューラルネットワーク

Kerasの標準的なワークフローの紹介。

  1. 訓練データ(入力テンソルと目的テンソル)を定義する
  2. 入力値を目的値にマッピングする複数の層からなるネットワーク(モデル)を定義する
  3. 損失関数、オプティマイザ、監視する指標を選択することで、学習プロセスを設定する
  4. モデルのfitメソッドを呼び出すことで、訓練データを繰り返し学習する

tensor(テンソル)

数字配列。

  • 0次元テンソル・・・スカラー値
  • 1次元テンソル・・・ベクトル
  • 2次元テンソル・・・行列

loss function(損失関数)

予測結果と正答との損失を求める関数。
損失関数の選択にはセオリーがある。

Optimizer(オプティマイザ)

損失関数に基づいてネットワークをどのように更新するのかを決定する手法。

今日のまとめ

時間切れでここまで!
今日はディープラーニングの前提知識を整理しました。
明日からはいよいよ実践しながら学んでいく章になります!
最初は映画のレビューデータを良いか悪いかを判断する二値分類問題の紹介のようです。
楽しみ・・・!