GoogleColaboratory上で「PythonとKerasによるディープラーニング」を写経してみる(2)「二値分類の例:映画レビューの分類」
「PythonとKerasによるディープラーニング」を、Google Colaboratory上で写経して、理解しようとしています。
前回は、第2章を写経して、MNISTを試してみました。
http://twosquirrel.mints.ne.jp/?p=27132
今回は、その続きで、第3章 入門:ニューラルネットワークを写経してみたいと思います。
(開発環境)
Windows 8.1 Pro (MacでもLinuxでも同じです。)
Chrome
Google Colaboratory (Googleアカウント必要、無料)
Keras をインストール済み(こちらを参照)
(1)ニューラルネットワークの構造
ネットワーク(モデル)として結合される層
入力データと、対応する目的値
学習に使用されるフィードバックを定義する損失関数
学習の進め方を決定するオプティマイザ
● IMDbデータセット
1つ目のレビューは、単語を表す0から9999までの数字の羅列で、何なのかさっぱりわからないが、とにかく、肯定的らしい。。。
上記の操作により、1つ目のレビューの具体的な内容がなんとなく見えてきた。
(2)データの準備
(2-1)リストをパディングしてすべて同じ長さにして、形状が、(samples, word_indices) の整数型のテンソルに変換する
(2-2) one-hotエンコーディングを使って、リストを0と1のベクトルに変換する
今回は、(2-2)の方法を用いるらしい。。。
モデルの定義
どんどこ計算されていく。1 Epochあたり2秒くらいなので、20 Epochで40秒くらいであった。
(3)訓練データと検証データでの損失値を、matplotlibを使ってプロット。
こういうところのコードをきちんと記載してくれるところが、この本の素晴らしいところだと思います。
過学習 overfitting
(4)新しいモデルを4 エポックで訓練し、続いてテストデータで評価
87%の正解率。本のp77は88%の正解率であった。なぜ違いが出てしまったのかは分からず。。。
(5)学習済みのネットワークを使って新しいデータで予測値を生成する
predictメソッドを用いる
簡単に新しい入力に対して、predictの値を出す方法を記載してくれているところも、この本は素晴らしいと思いました。(もっとも、入力するために、前処理するのが面倒ですが、、、この本を頑張って読めば、前処理のやり方も記載されています。)
次は、「PythonとKerasによるディープラーニング」の第3章の3.5 多クラス分類の例:ニュース配信の分類 を写経してみたいと思います。
ディスカッション
コメント一覧
まだ、コメントがありません