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

NetDecoder[{"CTCBeamSearch",alphabet}]

確率ベクトルの列を解釈し,最も可能性の高い列の復号化を与えるデコーダを表す.

NetDecoder[{"CTCBeamSearch",,"BeamSize"n}]

特定のビームサイズのデコーダを表す.

詳細

  • NetDecoder[][input]はデコーダを入力に適用して出力を作る.
  • NetDecoder[][{input1,input2,}]はデコーダを入力のリストに適用して出力のリストを作る.
  • "CTCBeamSearch"のデコーダへの入力テンソルは各 n+1 のサイズで,かつ n がアルファベットのサイズであるベクトル列でなければならない.各ベクトルの最後の要素は特殊な空白クラスである.
  • "CTCBeamSearch"の出力は,アルファベットからの要素の列であり,最長は入力列の長さに等しい.通常,返される要素は少ない.
  • ネットワークの構築時に"port"->NetDecoder[]を指定すると,デコーダをネットワークの出力ポートに付加することができる.
  • パラメータ
  • パラメータ"BeamSize"->n を使うと,"CTCBeamSearch"のデコーダは処理中に n 個の復号化候補のセットを維持する.デフォルトは100個である.
  • 1の"BeamSize"greedy search に相当し,トップの確率が列の各要素で選ばれる.
  • 特性
  • NetDecoder[][data,prop]は入力データの特定の特性を計算するのに使うことができる.
  • "CTCBeamSearch"のデコーダがネットワークに付加されたとき,復号化された出力の特定の特性を計算するのに net[data,prop]または net[data,"oport"->prop]を使うことができる.
  • "CTCBeamSearch"のデコーダには以下の特性が使用できる:
  • "Decoding"最も確率が高い1つの文字列(デフォルト)
    "Decodings"最も確率が高い複数の文字列
    "TopDecodings"->nn 個の最も確率が高い文字列を与える
    "NegativeLogLikelihoods"各復号化の負の対数尤度が規則のリストとして返される
    "TopNegativeLogLikelihoods"->n上位 n 個の復号化の負の対数尤度を与える
    None復号化を回避し,入力を返す

例題

  (1)

CTCビーム探索デコーダを作る:

このデコーダを確率ベクトル列に使う:

上位3位の復号化された列と負の対数尤度関数を得る: