0

このテキストを読んで、1 つの隠しユニットのみをアクティブにし、Gibbs が隠しユニットから見えるものをサンプリングすることで、人々が「再構築」と呼ぶものを作成できることを学びました。

しかし今、私はいくつかの畳み込み制限ボルツマン マシンを Python で実装しようとしています。私の計画は、セクション 3.2 で提示されたバージョンに固執し (したがって、 Convolutional Deep Belief Network をまだ実装するつもりはないことに注意してください)、その部分が機能するようになったら、Probabilistic Max-Pooling のみを挿入することです。

機能していることを確認するために、記事で紹介したような「機能」を作成したいと考えました (図 3 など)。第 1 層で学習された機能は、他のタイプのネットワークで学習された機能によく似ています。しかし、彼らがそれらの機能をどのように作成しているかはわかりません。これらの学習された「機能」がフィルターの重みなのか、それとも特定のフィルターのすべての隠れたユニットをオンにして再構成を作成する必要があるのか​​ は明確ではありません。また、そのセクション 3.6 が私の単純なバージョン (Probabilistic Max-Pooling さえ持っていないバージョン) にどの程度関連しているかはわかりません。

(私は両方を試してみましたが、私の結果はまだ完全に異なって見えます。それが私のコードのバグなのか、それとも単に何か間違ったことをしているのかわかりません)

何か助けはありますか?(私はこのコードをインターネットでランダムに見つけましたが、私はまだ Matlab 構文に不慣れであり、再構成を作成するために何をするのかをまだ見つけることができませんでした。

4

1 に答える 1

0

ええ、私はすでに、なぜ彼らがこの論文でより高いレイヤーのベースをプロットすることについて詳細を提供しなかったのか疑問に思っていました.

最初のレイヤー (図 3、上の画像) の特徴を視覚化するには、個々の隠れユニットの重み (つまり、フィルター) をプロットするだけで十分です。結果が異なって見える場合、それには多くの理由が考えられます。コード内のエラーの横にあるトレーニング パラメーターによって、フィルターの外観が再び異なる場合があります。自然な画像の場合、ガウス単位が必要であることに注意してください。

Python コードから始めたい場合は、このフレームワークを確認できます: https://github.com/OFAI/lrn2

上位レイヤーで何が起こっているかを視覚化したい場合は、このペーパーが役立つ場合があります (セクション 2.4 も上記のフレームワーク (stacks.py/NNGenerative の下) に実装されています): http://www.dumitru.ca/files/出版物/invariances_techreport.pdf

それが役立つことを願っています!

于 2016-08-18T17:33:04.897 に答える