スポンサーリンク

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 多クラス分類の例:ニュース配信の分類 を写経してみたいと思います。

参考:https://www.codexa.net/how-to-use-google-colaboratory/