TensorFlowを使用して、手話アプリケーションのたたみ込みニューラルネットワーク(CNN)をトレーニングしています。 CNNは27の異なるラベルを分類する必要があるため、当然のことながら、過剰適合に対処することで大きな問題が発生しています。私はこれを達成するためにいくつかのステップを踏みました:
残念ながら、これらすべての手順を実行した後でも、約3%のテストエラーを達成することはできません。 (それはひどいことではありませんが、アプリケーションを実行可能にするには、大幅に改善する必要があります。)
正規化するために明示的な手順を踏んでいないので(層をできるだけ小さくする以外に)、オーバーフィッティングの原因は畳み込み層にあると思います。しかし、TensorFlowで提供される例に基づくと、正規化またはドロップアウトは通常、畳み込み層に適用されているようには見えません。
私がオンラインで見つけた唯一のアプローチは、畳み込み層での過剰適合の防止を明示的に扱っており、 確率的プーリング と呼ばれるかなり新しいアプローチです。残念ながら、これはTensorFlowに実装されていないようです。少なくともまだです。
つまり、TensorFlowで実現できるたたみ込み層の過剰適合を防ぐための推奨アプローチはありますか?または、確率的プーリングアプローチをサポートするカスタムプーリングオペレーターを作成する必要がありますか?
ご指導ありがとうございます!
トーマ、マーティン。 「 たたみ込みニューラルネットワークアーキテクチャの分析と最適化 」 arXivプレプリントarXiv:1707.09725(2017)。
分析手法については、2.5章を参照してください。その章の冒頭で述べたように、通常は次のことができます。
CNNは27の異なるラベルを分類する必要があるため、当然のことながら、過剰適合に対処することで大きな問題が発生しています。
これがどうつながっているのかわかりません。過剰適合の問題なしに何百ものラベルを持つことができます。