Blahut-Arimoto のアルゴリズム

概要

情報理論において歪みありの符号化を非可逆符号化と呼びます。非可逆符号化において、歪み度合い $D$ を変えたときの最小レート(1 symbol 当たりのビット数)*1 [bit/symbol] にはトレードオフの関係にあることが知られており、この関係はレート歪み関数 $R(D)$ によって記述されます。 Blahut-Arimoto のアルゴリズムは、レート歪み関数 $R(D)$ を逐次的に求める数値計算アルゴリズムです。

*1:符号が値を取る空間の濃度に対数を取ったものをレートと呼ぶこともあり、これが同じなのか自分はよく分かっていませんでしたが、対数の底が 2 だと等価です。

続きを読む

matplotlibで軸上にerrorbarをプロットする

環境

  • python 3.6.2
  • matplotlib 2.2.2

概要

matplotlibで軸上にerrorbarをプロットするとき、何も気にせずコードを書くと軸の上にerrorbarが乗らず微妙に上手くプロット出来ない。 これを回避するには、 set_on_clipzorder を適切に使用すると良い。

続きを読む

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 は使うことができない.

続きを読む

ABC 067

abc067.contest.atcoder.jp

久しぶりに参加した.

順位は 21th で早解きが苦手になっていると感じた.

残念なことにレーティングの更新対象ではないレーティングを持っているということすら忘れていた.

続きを読む