1

分類にニューラル ネットワークを使用しようとしています。データセットは 7 つのパラメーターと 30 万を超えるサンプルで構成されています。ドロップアウトを使用して、ネットワークへのドロップアウトの影響を確認したいと思います。Matlab を使用しています。ただし、matlab にはドロップアウトに関する完全なドキュメントがありません。ドロップアウトに関する論文をいくつか見つけましたが、そのほとんどは画像用のディープ ニューラル ネットワークに関するもので、非常に複雑なアプローチをとっています。matlab で nnstart を使用しようとしましたが、この方法でドロップアウトを追加できるかどうかわかりません。単純なニューラル ネットワークに matlab によるドロップアウトを使用する方法はありますか?

私の質問に関連する情報や、場合によっては matlab コードを共有していただければ幸いです。

4

2 に答える 2

0

ドロップアウトを使用する背後にある考え方は、オーバーフィッティングを防ぐことです。dropout を 0.1 に設定すると、各エポック内の反復ごとに、その層の各ノードがニューラル ネットワークからドロップされる確率が 10% になります。これにより、オーバーフィッティングにつながる些細な関係を学習するのではなく、ネットワークが本質的により深く重要な関係を学習するようになります。

これは、画像が猫のものかどうかを予測するニューラル ネットワーク ベースの二項分類器を想像することであると想像するのが良い方法です。ドロップアウトなしでトレーニング中にオレンジ色の猫の画像を使用すると、黒い色の猫の画像が実際に猫であるかどうかを検出するモデルの能力が非常に低くなる可能性があります。ただし、ドロップアウトを追加すると、オレンジ色の猫の特徴ではなく、猫の特徴を理解し始める可能性があります。これは、おそらくより重要なノードがアクティブになるためです。

私は以前に Matlab を使用したことがありませんが、以下の疑似コードに従うカスタム関数を matlab で作成できる可能性があります。

go through each of the nodes:
   if random(0,10) == 1:
      drop/turn off node i
于 2018-07-19T01:15:02.493 に答える