"Boolean" (ネットデコーダ)

NetDecoder["Boolean"]

確率 p<0.5 ならば,pFalseとして変換し,それ以外ならTrueとして変換するデコーダを表す.

詳細

  • NetDecoder[][input]はデコーダを入力に適用し,出力を作る.
  • NetDecoder[][{input1,input2,}]はデコーダを入力のリストに適用し,出力のリストを作る.
  • デコーダへの入力 input は範囲が0input1のスカラーである.
  • NetDecoder[{"Boolean","InputDepth"->n}]は入力テンソルの深さが n であることを指定するのに使われる.デフォルトの深さは0で,これは入力が一つの実数であることを示す.
  • ネットワークの構築時に"port"->NetDecoder[]と指定することで,デコーダをネットワークの出力ポートに付加することができる.
  • 特性
  • NetDecoder["Boolean"][data,prop]は入力データの特定の特性を計算するのに使うことができる.
  • "Boolean"のデコーダがネットワークに付加されたとき,復号化された出力の特定の特性を計算するのに net[data,prop]または net[data,"oport"->prop]を使うことができる.
  • "Boolean"のデコーダは以下の特性 prop を受け付ける:
  • "Decision"最高確率のブール型のクラスFalse またはTrue(デフォルト)
    "Probability"クラスTrueの確率 p
    "Entropy"確率分布のエントロピー
    "RandomSample"ブールをその確率に比例してサンプル化する
    "RandomSample"->t正の温度 t を使ったサンプル
    None復号化を回避し,入力を返す

例題

すべて開くすべて閉じる

  (1)

ブール型のデコーダを作る:

確率をTrueまたはFalseとして復号化する:

デコーダを例のバッチに適用する:

デコーダは確率を入力として捉え,"Probability"特性に対してIdentityとして振舞う:

エントロピーを計算する:

スコープ  (2)

"Boolean"のデコーダをElementwiseLayerの出力ポートに付加する:

この層を入力に適用する:

確率の行列をブール値の行列に変換する"Boolean"のデコーダを作る:

デコーダをネットワークに付加して,入力に適用する:

正のクラスの確率を得る:

ベルヌーイ分布のエントロピーを計算する: