Blahut-Arimoto のアルゴリズム
概要
情報理論において歪みありの符号化を非可逆符号化と呼びます。非可逆符号化において、歪み度合い $D$ を変えたときの最小レート(1 symbol 当たりのビット数)*1 [bit/symbol] にはトレードオフの関係にあることが知られており、この関係はレート歪み関数 $R(D)$ によって記述されます。 Blahut-Arimoto のアルゴリズムは、レート歪み関数 $R(D)$ を逐次的に求める数値計算アルゴリズムです。
*1:符号が値を取る空間の濃度に対数を取ったものをレートと呼ぶこともあり、これが同じなのか自分はよく分かっていませんでしたが、対数の底が 2 だと等価です。
pytorch の NLLLoss の挙動
Negative Log Likelihood(NLL) Lossという名前から自分が予測する関数の挙動と実際の関数の挙動が毎回異なって少し困っていたので、具体例を交えつつ挙動の確認を行う。
環境
- pytorch stable (1.4)
概要
NLL Loss は対数は取らず負の符号は取り、ベクトルの重み付き平均 or 和を計算する。
関数名に対数が付いているのは、何らかの確率に対して対数を取ったものを入力とすることが期待されているから。
GANのdiscriminatorでsoftplus関数が使われている理由
概要
GANで使われる Discriminator の損失計算の実装を見てみると,softplus関数が使われていることがあります.
これは,sigmoid 関数で binary cross entropy を計算することと同じです.
第12回 JOI 本選 : Tower of JOIOI
問題
長さ N の 'J' 'O' 'I'
の文字しか含まれない文字列 S が与えられる.
i < j < k において
s[i] = 'J' and S[j] = 'O' and S[k] = 'I'
またはs[i] = 'I' and S[j] = 'O' and S[k] = 'I'
を満たす (i, j, k) の数の最大を求める.ただし,一度使った i, j, k は使うことができない.
続きを読む