概要
前回の続き。
1章では機械学習関連の概念と用語をざっと回収した。2章では、その概念を Keras フレームワークで実装する手段をざっと回収するみたいだ。回収物の確認とかができそうでいいね。
2章をざっくり読んだ
- Keras 環境をインストールするには、 pip でちょこちょこインストールするのと docker を使う方法がある。
- こりゃーぜひ docker でやりたいね。今回はざっくり読みだからコードとかコマンドをあんまり書かないようにしているのだけど、これはノートしておきたいところだな。
docker pull floydhub/dl-docker:cpu
docker run -it -p 8888:8888 -p 6006:6006 floydhub/dl-docker:cpu bash
sh run_jupyter.sh --allow-root
pip install -U pip
pip install -U tensorflow
pip install -U keras
tensorboard --logdir .
- テンソルって何?
- 多次元行列のこと。なんかニューラルネットワークを構築する要素ってテンソルなんだって。
- Keras のモデルにはどんなのがある?
Sequential
: 層を積み重ねてつくるモデル。functional API
: しらん。7章で解説。
- Keras の層にはどんなのがある?
Dense
: 全結合層。N_HIDDEN
とかnb_classes
を指定するやつね。Dropout
: 正則化層。だけど Dense や Conv にも一応正則化パラメータは用意されている。kernel_regularizer
とかbias_regularizer
とか。まあ、 regularizer って見たら正則化だと思えばよさそうね。- ここでおさらい正則化。正則化は過学習を防ぐため、伝播する値を減らすことだ。
Conv1D
Conv2D
: 畳み込み層。よくわからん。3章で解説。RNN
(リカレントニューラルネットワーク): よくわからん。6章で解説。
- Keras の活性化関数にはどんなのがある?
- シグモイド、線形、 tanh、 ReLU
- シグモイドを使うときは、
softmax
って名前になるのよね。私覚えてる。
- Keras の最適化アルゴリズムにはどんなのがある?
SGD
RMSprop
Adam
うんうん、覚えているぞ。
- Keras の損失関数にはどんなのがある?
- accuracy: 分類問題で使う。具体的に指定する値は
binary_accuracy
とかcategorical_accuracy
とか。 - error loss: 予測値と正解値の差を測定。具体的には
mse
とかrmse
とか。 - hinge loss: 分類器の訓練に使う。(accuracy の分類問題と何が違うねん、と思っている顔)
- class loss: 分類問題のクロスエントロピーを計算するのに使う。(理解を放棄している顔)
- accuracy: 分類問題で使う。具体的に指定する値は
- Keras の評価関数にはどんなのがある?
- 2章では具体的に紹介されていない。が、覚えているよ、学習には使われない関数だよね。
- Keras のユーティリティって?
- ようは便利関数だね。
model.to_json()
model.to_yaml()
: モデルアーキテクチャを json や yaml で保存。model_from_json()
model_from_yaml()
: 再構築。model.save('foo.h5')
: HDF5 形式で重みを保存。load_model('foo.h5')
: 読み出し。
- Keras のコールバックって?
- fit 関数に渡すリスト型引数であり、学習の結果を保存したり、過学習を抑えるため学習を止めたりできる。
keras.callbacks.EarlyStopping
: 評価関数の値が改善されなくなったとき学習を停止できる。- えっ、それよくない? 寝る前に epochs=8000000 とかにしておいたら勝手に良いところで止まってくれるってことでしょ?
- Keras のチェックポイントって?
keras.callbacks.ModelCheckpoint
: 見てわかるとおり↑のコールバックの一種。各 epoch 後にチェックポイントを保存しておける。ModelCheckpoint
にsave_best_only=True
を指定することで、正解率が上がっているときだけ保存、とかも可能。- 保存したチェックポイントから再開? とかをする必要はないのかな?
- Keras の TensorBoard って?
keras.callbacks.TensorBoard
: これもコールバックか。 TensorBoard 用のログを保存してくれる。- ログの閲覧はコマンドラインで
tensorboard --logdir=/fullpathtoyourlogs
- Quiver って?
- これは Keras ではないけれど、モデルを可視化できるやつ。
pip install quiver_engine
するとコードに2行足すだけでニューラルネットワークを可視化できる。- 本にある挿絵によるとめっちゃテンション上がりそう。自分でモデルを作ってから見なくても、ふつーに VGG16 を import して見れば OK!
こんなところで2章もおしまいだ。マイ「イメージの流れ」図を更新したぜ。