問題タブ [autoencoder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - LBFGS の代わりに、スパース オートエンコーダーで勾配降下法を使用
Andrew Ng の講義ノートでは、彼らは LBFGS を使用していくつかの隠れた機能を取得しています。代わりに勾配降下法を使用して、同じ隠れた機能を生成できますか? 他のすべてのパラメーターは同じです。最適化アルゴリズムを変更するだけです。
LBFGSを使用すると、オートエンコーダーは講義ノートと同じ隠し機能を生成できますが、勾配降下を使用すると、隠しレイヤーの機能がなくなり、完全にランダムに見えます。
具体的には、コスト関数を最適化するために、1)コスト関数、2)各 Weight と Bias の勾配を実装します。そして、コスト関数を最適化するために、それらを scipy 最適化ツール ボックスに投入します。そして、この設定により、適切な隠し機能が得られます。
しかし、勾配降下に変更すると。「Weight - Weight の勾配」と「Bias - Bias の勾配」を入れてみました。しかし、結果の隠れた機能は完全にランダムに見えます。
誰かが理由を知るのを手伝ってもらえますか? ありがとう。
machine-learning - Deep Autoencoder の Python/Keras/Theano の間違った次元
Deep Autoencoder Keras example に従おうとしています。寸法の不一致の例外が発生していますが、私の人生では、その理由がわかりません。エンコードされたディメンションを 1 つだけ使用すると機能しますが、スタックすると機能しません。
例外: 入力 0 はレイヤーdense_18 と互換性がありません:
予想される形状 = (なし、128)、見つかった形状 = (なし、32)*
エラーは行にありますdecoder = Model(input=encoded_input, output=decoder_layer(encoded_input))
python - theano でブール変数を使用する
私は theano でバイリンガルのオートエンコーダーに取り組んでいます。このチュートリアルを参考にして、2 つの単一言語オートエンコーダーを作成しました。それぞれが文のワンホットベクトルを取り、100 次元の numpy 配列である潜在表現を作成します。次に、これら 2 つ (lat_1、lat_2) を連結すると、ここで問題が発生します。潜在表現の 1 つを 50% のノイズでマスクして、ある言語が他の潜在表現を手がかりとして再構築する必要があるようにしたいと考えています。理論的には、これは各エポックを交互にするため、両方が最適な表現になります。
現時点では、片側だけでなんとかできたと思います。私の考えは、最初に self.corrupted 変数を追加して 0 に設定し、各エポックの後に変数を変更して交互にすることでした。これが私がこれのために追加したコードです。
ただし、トレーニング中は、最初に 'corrupting lat_1' を 1 回だけ出力し、トレーニングを続行します。これを交互にする方法を知っている人はいますか?
noise - Keras ドロップアウトと GaussianNoise レイヤーは、バッチごとに異なるノイズのインスタンスを適用しますか?
Keras でノイズ除去オートエンコーダを構築しています。私が使用しているモデルは
その後電話したら
バッチごとに作成されたノイズの新しいインスタンスはありますか? 言い換えれば、上記の各エポックには、バッチごとに異なるノイズのインスタンスがありますか? または、ノイズ インスタンスはすべてのバッチで同じものに固定され、エポックが変更されたときにのみ変更されますか? さらに悪いことに、全体に対して 1 つのノイズ インスタンスしか選択されていませんか?
machine-learning - 非バイナリ ベクトルの再構築にオートエンコーダを使用できますか?
私は最近、自動エンコーダーについて学び、暗黙的なフィードバックを伴うレコメンダー システムの一部として使用するものを構築することを計画しています。
従来のオートエンコーダーの仕組みに基づいて、コンポーネントが必ずしも 0 または 1 ではないベクトルを再構築するために使用できるようです。しかし、そこにあるすべての紹介資料は、オートエンコーダーがバイナリ ベクトルx =[0,1]で動作することを示唆しているようです。 ^d、ここ、またはこのペーパーのセクション 2.2 のように。
非バイナリ ベクトルにオートエンコーダを使用するには、唯一の違いは、バイナリの場合に適したクロスエントロピーの代わりに L2 エラー関数を使用する必要があることです。
誰かが私のためにこれを明確にしていただければ幸いです。
deep-learning - 画像の既存の特徴抽出器
画像を 15 個までのクラスのいずれかに分類する画像分類器を構築したいと考えています。ラベル付けされた大規模なトレーニング コーパスがあります。そのため、Caffe やその他のディープ ラーニング ライブラリを使用して、ディープ ニューラル ネットワークのトレーニングを行うことができます。
私たちが検討しているもう 1 つのオプションは、一般的な画像から特徴を抽出するための既存の特徴抽出モデルが公開されているかどうかを確認することです (画像の大規模なコーパスに対してトレーニングされたオートエンコーダーなど)。そうすることで、次元削減を行うことができ、特徴の数が少ないため (次元の呪い)、より少ないトレーニング データでより単純な分類モデルをトレーニングに使用できるようになります。
見られる唯一の欠点は、データの確率分布が、オートエンコーダー/特徴抽出器のトレーニングに使用されるデータセットと、教師あり学習の問題に使用するデータセットとの間で大幅に異なる場合、全体的なパフォーマンスがあまり良くない可能性があることです。一方で、複雑なディープ ニューラル ネットワークをトレーニングする必要がないという利点があります。特徴抽出を使用すると、残りの作業をランダム フォレストなどの通常の分類アルゴリズムで行うことができます。
したがって、私の質問は基本的に次のとおりです。特定の画像の特徴を抽出するモデルを誰かが既にトレーニングした (そして再利用できるようにした) 人はいますか?