発売日に届いてた!
— 坂野 宏樹@ReactとGraphQLが大好き (@h_sakano) May 28, 2018
仕事で使う予定もあるし、気合い入れて頑張ります pic.twitter.com/kQzb4y1vmV
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の標準的なワークフローの紹介。
- 訓練データ(入力テンソルと目的テンソル)を定義する
- 入力値を目的値にマッピングする複数の層からなるネットワーク(モデル)を定義する
- 損失関数、オプティマイザ、監視する指標を選択することで、学習プロセスを設定する
- モデルのfitメソッドを呼び出すことで、訓練データを繰り返し学習する
tensor(テンソル)
数字配列。
- 0次元テンソル・・・スカラー値
- 1次元テンソル・・・ベクトル
- 2次元テンソル・・・行列
loss function(損失関数)
予測結果と正答との損失を求める関数。
損失関数の選択にはセオリーがある。
Optimizer(オプティマイザ)
損失関数に基づいてネットワークをどのように更新するのかを決定する手法。
今日のまとめ
時間切れでここまで!
今日はディープラーニングの前提知識を整理しました。
明日からはいよいよ実践しながら学んでいく章になります!
最初は映画のレビューデータを良いか悪いかを判断する二値分類問題の紹介のようです。
楽しみ・・・!