ニューラルネットワークのデバッグには、通常、ハイパーパラメーターの調整、学習したフィルターの視覚化、および重要なメトリックのプロットが含まれます。使用しているハイパーパラメーターを教えてください。
- あなたのバッチサイズは?
- あなたの学習率は?
- どのタイプのオートエンコーダーを使用していますか?
- ノイズ除去オートエンコーダーを使用してみましたか?(どの破損値を試しましたか?)
- 隠しレイヤーの数とサイズは?
- 入力画像の寸法は?
トレーニングログの分析も役立ちます。再構築損失(Y軸)のグラフをエポック(X軸)の関数としてプロットします。再構築の損失は収束または発散していますか?
以下は、分岐していた人間の性別分類のオートエンコーダーの例です。1500エポック後に停止され、ハイパーパラメーターが調整され(この場合は学習率の低下)、分岐し、最終的に収束したのと同じ重みで再開されました。
これが収束しているものです:(これが必要です)
「制約のない」バニラは、アイデンティティマッピングを単純に学習するという問題に遭遇する可能性があります。これが、コミュニティがノイズ除去、スパース、および収縮フレーバーを作成した理由の1つです。
ここにデータの小さなサブセットを投稿できますか?私のオートエンコーダーの結果を喜んでお見せします。
補足説明:グラフをデータのベクトルとして簡単に表すことができるのに、そもそもなぜグラフの画像を使用しているのかを自問したくなるかもしれません。すなわち、
[0, 13, 15, 11, 2, 9, 6, 5]
上記のように問題を再定式化できれば、本質的に自動エンコーダーの寿命がより簡単になります。生成される分布を学習する前に、最初に画像の表示方法を学習する必要はありません。
回答のフォローアップ(データが与えられた場合)
以下は、1000の隠れユニット、単一層のノイズ除去オートエンコーダーからのフィルターです。一部のフィルターは一見ランダムであることに注意してください。これは、トレーニングを非常に早く停止し、ネットワークにこれらのフィルターを学習する時間がなかったためです。
以下は、私がそれを訓練したハイパーパラメーターです。
batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2
フィルターはここに投稿するのに十分であったため、58エポック後に事前トレーニングを停止しました。私があなただったら、1000x1000x1000のアーキテクチャを備えた完全な3層のスタック型ノイズ除去オートエンコーダーをトレーニングします。
微調整ステップの結果は次のとおりです。
validation error 24.15 percent
test error 24.15 percent
そのため、一見、偶然よりも良いように見えますが、2つのラベル間のデータの内訳を見ると、まったく同じ割合(75.85%の利益と24.15%の不利益)を持っていることがわかります。つまり、ネットワークは、信号に関係なく、単に「収益性の高い」応答を行うことを学習したことを意味します。私はおそらく、何が起こるかを見るために、より大きなネットでより長い時間これを訓練するでしょう。また、このデータは何らかの基になる財務データセットから生成されているようです。上記のように問題をベクトルに再定式化した後、リカレントニューラルネットワークを調べることをお勧めします。RNNは、このような時系列データに見られる一時的な依存関係のいくつかをキャプチャするのに役立ちます。お役に立てれば。