このautoencoder
パッケージは、Andrew Ngのクラスノートで説明されているオートエンコーダの実装にすぎません。これは、さらに読むための出発点として最適です。今、あなたの質問に取り組むために
学習アルゴリズムが自動的に計算する
パラメータと、その学習プロセスを制御し、学習アルゴリズムに提供する必要がある
ハイパーパラメータを
区別する場合があります。ハイパーパラメータには魔法の
値がないことを理解することが重要です。最適な値は、モデル化するデータによって異なります。データでそれらを試す必要があります。
a)ラムダ()は、バックプロパゲーション中に重みがどのように更新されるかを制御します。モデルの出力とグラウンドトゥルースの差に基づいて重みを更新するだけでなく、コスト関数には大きな重み(実際にはすべての重みの2乗値)にペナルティを課す項が含まれます。ラムダは、このペナルティ項の相対的な重要性を制御します。このペナルティ項は、重みをゼロにドラッグする傾向があり、過剰適合を回避するのに役立ちます。λ
b)Rho(とbeta (β)はスパース性を制御します。Rhoは、隠れたユニットの予想される活性化です(トレーニングセット全体で平均化)。表現は、それが小さくなるにつれて、よりまばらになります。このまばらさはバイアス項を調整することによって課せられ、ベータ版はその更新のサイズを制御します。(実際には、βは全体的な学習率αを再スケーリングするだけのようです。)ρ )(ββα
c)イプシロン(は、N (0 、ϵ 2)からランダムに描画される初期の重み値を制御します。ϵ )N(0 、ϵ2)
rho値は、どちらもアクティベーション関数の範囲の下限に近いため、不合理に見えません(ロジスティックの場合は0から1、tanhの場合は-1から1)。ただし、これは明らかに、必要なスパース性の量と、使用する隠しユニットの数にも依存します。
メートル- 1 / 2メートル
隠しユニットの数を選択するための「経験則」はたくさんあります。あなたの最初の推測(2x入力)はそれらのほとんどと一致しているようです。とはいえ、これらの推定値は推定値よりはるかに当て推量です。あなたが処理能力を持っていると仮定すると、私はより多くの隠されたユニットの側に誤りを犯し、低いrho値でスパース性を強制します。
オートエンコーダーの明らかな用途の1つは、他の学習アルゴリズム用のよりコンパクトな特徴表現を生成することです。生の画像には数百万のピクセルが含まれている可能性がありますが、(スパース)オートエンコーダはそれをはるかに小さなスペースで表すことができます。
Geoff Hinton(および他の人)は、それらが後続の分類に役立つ機能を生成することを示しました。一部のディープラーニング作業では、オートエンコーダーなどを使用してネットワークを事前トレーニングします。
ビンセント等。オートエンコーダを直接使用して分類を実行します。
簡潔なフィーチャー表現を生成する機能は、他のコンテキストでも使用できます。以下は、オートエンコーダによって生成された状態を使用して、Atariゲームで強化学習アルゴリズムを導く、きちんとした小さなプロジェクトです。
最後に、人はまた、雑音の多いまたは劣化入力を再構築するためにオートエンコーダを使用することができるので、同様に有用最後に、それ自体のあり得ます。
beta = 6
、autoencoder
例のコードにどうやって入るのでしょうか?