主な問題
特定の層の重みのプロットを理解できません。no-learn のメソッドを使用しました:plot_conv_weights(layer, figsize=(6, 6))
ニューラル ネットワーク ライブラリとしてラザニアを使用しています。
プロットはうまくいきますが、それをどのように解釈すればよいかわかりません。
ニューラル ネットワークの構造
使用している構造:
InputLayer 1x31x31
Conv2DLayer 20x3x3
Conv2DLayer 20x3x3
Conv2DLayer 20x3x3
MaxPool2DLayer 2x2
Conv2DLayer 40x3x3
Conv2DLayer 40x3x3
Conv2DLayer 40x3x3
MaxPool2DLayer 40x2x2
DropoutLayer
DenseLayer 96
DropoutLayer 96
DenseLayer 32
DropoutLayer 32
DenseLayer 1 as sigmoid
最初の 3 つのレイヤーの重みは次のとおりです。
**画像について**
私にとっては、それらはランダムに見え、解釈できません!
ただし、Cs231 では、次のように表示されます。
コンバージョン/FC フィルター。2 番目の一般的な戦略は、重みを視覚化することです。これらは通常、生のピクセル データを直接見ている最初の CONV レイヤーで最も解釈可能ですが、ネットワークのより深いところにあるフィルターの重みを表示することもできます。よく訓練されたネットワークは通常、ノイズの多いパターンのない適切で滑らかなフィルターを表示するため、重みは視覚化に役立ちます。ノイズの多いパターンは、十分な期間トレーニングされていないネットワークの指標である可能性があります。または、正則化の強度が非常に低く、過学習につながった可能性があります http://cs231n.github.io/understanding-cnn/
では、なぜ私のものはランダムなのですか?
構造は訓練されており、そのタスクに対して適切に機能します。
参考文献
http://cs231n.github.io/understanding-cnn/
https://github.com/dnouri/nolearn/blob/master/nolearn/lasagne/visualize.py