Maxoutの正確な定義


8

ニューラルネットワークの "Maxout"アクティベーション機能が何を意味するのかを正確に理解しようとしています。あり、この質問、論文では、とさえによって深い学習帳にBengioら。、ただし、ほんの少しの情報と、その隣に大きなTODOがある場合を除きます。

わかりやすくするために、ここで説明する表記を使用します。私はそれを再入力して質問を膨らませたくないだけです。簡単に言うと、aji=σ(zji)=σ(kaki1wjki+bji)、言い換えると、ニューロンには単一のバイアス、各入力に対して単一の重み、次に、入力と重みの合計を合計し、バイアスを追加し、アクティブ化関数を適用して、出力(アクティブ化)値を取得します。

これまでのところ、Maxoutは「入力の最大値を出力する」アクティベーション関数であることを知っています。どういう意味ですか?これから私が解釈できるいくつかのアイデアがあります:

  1. aji=maxk(aki1)
  2. aji=maxk(aki1wjki)+bjiは、通常行われる合計を最大値で置き換えるだけです。
  3. aji=maxk(aki1wjki+bjki)、ここで各ニューロンは、適用された単一のバイアス値ではなく、各入力に対して1つのバイアス値を持ちますすべての入力を合計した後。これにより、バックプロパゲーションが異なりますが、それでも可能です。
  4. 各は通常どおりに計算され、各ニューロンには各入力に対して単一のバイアスと重みがあります。ただし、softmaxa ^ i_j = \ frac {\ exp(z ^ i_j)} {\ sum \ limits_k \ exp(z ^ i_k)})と同様に、現在のレイヤーのすべてのzの最大値を取ります。正式には、a ^ i_j = \ max \ limits_k z ^ i_kです。zjiaji=exp(zji)kexp(zki)zaji=maxkzki

これらのいずれかが正しいですか?それとも何か違うのですか?

回答:


9

上記のどれでもない; maxoutネットワークは、想定したアーキテクチャに準拠していません。

リンクた論文の「maxoutの説明」セクションの冒頭から、maxoutを定義しています。

入力(は、または非表示レイヤーの状態である可能性があります)が与えられると、maxout非表示レイヤーは関数を実装しますxRdxv

hi=maxj[1,k]zij

ここで、、およびおよびは、学習したパラメータ。zij=xTWij+bijWRd×m×kbRm×k

したがって、個のユニットの各ユニットは、前のレイヤーの異なるアフィンの組み合わせを持ち、それらのアフィン関数の最大値を出力します。各レイヤーが異なる色の接続で前のレイヤーに接続され、色の最大値を取ることを想像してください。mkkk

または、maxoutユニットは実際には2つのレイヤーであると考えることができます。前のレイヤーの各ユニットは、アイデンティティアクティベーション関数でユニットのそれぞれに接続され、単一のユニットがそれらのリニアユニットを最大プーリングアクティベーションで接続します。 。kk

この手段からの機能として見ユニット、というに、アフィン関数の区分最大です。論文の図1は、次のようなさまざまな機能の例を示しています。RdR

ここに画像の説明を入力してください

破線はそれぞれ表します。このようにして任意の凸関数を表すことができます。これは非常に便利です。WTx+b


したがって、、ます。これを最大限に活用するにはどうすればよいですか?それはベクトルの大きさですか?zijRm×kzi1,zi2,...Rm
Phylliida、2015年

@DanielleEnsignインデックス付けはここでは少し標準的ではありませんが、各、、 so。これは通常のスカラーの最大値です。WijRdxRdbijRzijR
Dougal

2
ああ、私はついにそれを手に入れました、ありがとう。基本的に各ニューロンは、そのニューロンへの入力を取り込み、独自の重みとバイアスを持ち、恒等活性化関数を介して出力する多数の「サブニューロン」で構成されています。次に、そのニューロンへの出力は、そのサブニューロンの出力すべての最大値です。
Phylliida、2015年

接続されたニューロンの各ペア間のk個の複数の接続を使用してこれをモデル化でき(通常行われる単一の接続ではなく)、各ペアのk個のアクティベーションを計算し、一番上のものを勝者として選択できると言うのは正確でしょうか?または、各サブ接続に個別のバイアスを使用する必要がある場合があるため、各接続を異なるサブニューロンに属するかのようにモデル化する必要がありますか?
SQLServerSteve 2016

1
@SQLServerSteve接続のそれぞれに異なるバイアスを設定できます(これは、たとえば、上の図の「2次」に必要です)。しかし、あなたはそれをあなたが説明した方法でそれについて考えることができます、あなたはまた、それぞれのつながりのためにバイアスを加える必要があるだけです。時々、人々は常に1を出力する架空の「バイアス単位」について話します。その場合、バイアスユニットにも複数の接続がある限り、モデルは正常に動作します。k
Dougal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.