みなさま、こんばんわ🌜

まだまだ残暑が続いていますね😅

 
1 Python 3年生 ディープラーニング 4日目

本日は『Python 3年生 ディープラーニング』という本の4日目の学習でした。

 

機械に何かを学習させるためにはたくさんのデータが必要ですが、たくさんのデータを集めるのは大変です😅

 

そんなときに便利なデータを「水増しする方法」について学んでいきます。

 

どうやってデータを水増しするかというと、画像認識の場合は画像を少し傾けたり、左右反転させたりして同じ画像から「少し違う画像」をいっぱい作って機械に学習させ、学習の精度を上げていきます。

2 データの準備と確認

CIFAR-10 の画像データから、「犬」と「猫」の画像だけを取り出して、画像データを減らします。

 

まず、利用する外部ライブラリをインポートし、CIFAR-10 の画像を取り込みました。

 

犬だけ、猫だけのデータになっていることを確認しました。

 

本当に犬と猫だけのデータになっています。

 

猫データに犬データを追加して、学習データとテストデータに分けました。

 

データをシャッフルして、犬と猫が不規則にならんだデータを作りました。

3 モデルを作って学習

次に、Keras の学習モデルを作りました。

 

データを犬と猫だけに限定して画像データを減らしたので、学習回数を30回に増やして機械に学習させると、正解率が 77.00% になりました。

 

学習結果をグラフで確認すると、テストデータで過学習が起こっていました。

 

学習がうまくいかないのは、画像データを減らしたからですね😅

4 学習データを水増し

犬と猫の画像を、ランダムに少し回転させたり、少し移動させたり、左右反転させたりして、画像を多少変化させて学習データを水増ししました。

 

モデルに学習の追加をさせて、水増し画像で学習させると、正解率は 80.50% になりました。

 

画像データを水増しする前と比べて、正解率が 3.5% 上昇しています。

 

学習の状況をグラフ化して確認してみると、正解率が上がっているのがわかりました😃

 

テストデータで過学習も起こらず、スムーズに学習が進んでいるのがわかりますね。

 

学習済のモデルにテストデータを渡して答えを予測させると、ほとんどの画像を正しく認識していました。

 

学習データの水増しは便利ですね😊️

 

今日はここまで❗

 

最後までお読みいただき、ありがとうございました😄

また来てね~😄👋