learningを使って、花の名前を予測した結果を共有します。learningを使って、花の名前を予測した結果を共有します。開発こんにちは!エンジニアのアインです。データ量が少なくても、DeepLearningを使える方法を紹介します。データセット花のデータセットがすでにあって、全部は500の種類で、50万枚画像があります。自動的に花の名前を予想できました。Learningスクラッチから学習することは非常に少ないです。自分で大きなデータセットを作ると、時間やお金が沢山かかってしまうからです。一般的には、大きなデータセットでトレーニング済みのモデルを使って、学習したパラメーターをデフォルトにし、具体的な問題で再トレーニングします。Learningのシナリオがあります。ConvNetの固定なフィーチャを抽出します。ImageNetでトレーニングしたモデルから最後のLayerを削除して、残りのフィーチャを固定して、新しいデータセットを学習するです。Fine-tuning。第二のストラテジーはConvNetを置き換えると再トレーニングだけではない、あらかじめトレーニングされたネットワークの重みを微調整することもします。Kerasのライブラリーがすでに提供したモデルを使って、Fine-tuningしました。書かれた方法を元に実装し、自分の用意したデータを活用しました。Pretrained-Modelsを使って、overfitを発生しない事を期待できます。全てのフィーチャをFine-tuningするといい結果を出せました。スクラッチから学習するモデルも確かめましたが、結果があまりよくないです。画像のデータにとって、ConvNetを使うを1千万のデータがあれば最初から学習と結果が出せるかもしれませんが、データ量がそんなに足らないとTransferLearningを使った方がいいです。Rateを確かめましたが、全てのフィーチャをFine-tuningすると小さいで使うと結果が良いです。具体的には0.0001でトレーニングしました。データ量を増えるため、増強方法が役に足します。画像が回して、Zoom-in,Zoom-outして、いろいろデータがデータに追加できます。Overfitを行う可能性も減らします。KerasのImageDataGeneratorモジュールがすでに提供しましたので、とても便利です。デバッグごとがメッチャク難しなので、以下のシナリオを実装しました:小さいなデータ量から学習します。正則化を使いづに、Loss値が0になるかどうかを観察してください。0にならないとモデルを作成する部分は問題がありますOverfitが行うできるようにした後、正則化を使って全体のデータセットを使って、学習しますトレーニング時間がかかりますので、TensorBoardというVisualizationライブラリーを使って、Loss値を観察してください。US私たち”アライドアーキテクツのエンジニア”は”世界をよりよく変えたい”という想いを強く持ちながらWebサービスを創っています。”日本発、世界的なWebサービスを創る”ことをエンジニアチームは本気で考え、毎日チャレンジしています。