知りたいこと
自作のディープラーニングのモデルを作成する、一般に行うべき流れが知りたいです。
前提・経緯
魚のキーポイント検出を行いたいため、自作のデータセット及び自作のモデルをtensorflow・kerasで作成しました。
「魚のキーポイント検出」とは、カサゴのような魚が横向きに置かれている画像があり、その魚の目の中心、エラの上端、エラの下端、尾びれの上端、尾びれの下端、etc. といったキーポイントを検出するもの、と捉えてください。
(本当は魚ではないのですが、検出する題材が込み入っているので、わかりやすく魚とさせていただきます。)
しかし、精度が低いです。
というのも、現状の自作のモデルは、本やtensorflow公式のチュートリアルにあるコードを参考にして、多少いじった程度のものだからです。
これの精度を上げたいと思っています。
疑問
一般的に、自作のデータセットでキーポイント検出のような課題を解くには、どういった流れで行うのでしょうか?
というのも、現状の自作のモデルにおいて、ハイパーパラメータをチューニングしていく、という方法が間違っているような気がするからです。
自分が知らないだけで、ディープラーニングの定石となる流れがあるのでは…?と考えています。
回答としては以下のような、課題解決の進め方となるものを期待しています。
- 普通こういう課題は、人体のキーポイント検出のようなホットな課題の、公開されているモデルから転移学習するものだ。例えばXXXモデルやYYYモデルは転移学習可能で、ZZZで公開されているしtensorflowで使えるし試せ。
- レイヤー構造作成の定石を抑えれば、精度はあまり変わらない。あとはデータセットの量を多くするのを優先するべき。レイヤー構造についてはは〇〇という本を読め。
- 最新の類似のカテゴリの公開されているコードを参考にしろ。具敵的にはXXXで公開されているコードを読み解け。
- とりあえず〇〇という本を読め。お前の質問の答が全部書いてある。
そもそも、非人体のキーポイント検出でなくとも、画像の二項分類のようなもっと一般的なカテゴリですら、高い精度を求めるための流れがわかっていません。
既にわかっていること
- データの量を多くすれば精度は向上するということ
- データ拡張(Data Augmentation)や、過学習の防止、などといった一般的な精度向上のテクニック
もっとメタ的な部分での精度向上の流れについて知りたいです。
その他
ウェブ・スマホアプリのエンジニアとしては10年の経験があります。





回答1件
あなたの回答
tips
プレビュー