論文を読んでたら**PSNR(Peak signal-to-noise ratio:ピーク信号対雑音比)**を訓練の評価に使っていたのがあったので、実装してみました。画像の拡大、縮小といった超解像ではよく出てくる概念です。 ざっくり言ってPSNRって? (拡大や縮小、圧縮などで)画像がどれだけ劣化をしたかを示す値。値が小さいほど劣化していて、大きいほど元の画像に近い。 Wikipediaによると以下の式で定義されます。 $$PSNR=10\cdot\log_{10}\frac{MAX_I^2}{MSE} $$ 本来の定義はこの式です。MSEは2つの画像の画素ごとの平均2乗誤差、$MAX_I$は画素値の取りうる最大の値で、0~255なら255、0~1.0なら1です。機械学習では大抵0~1のスケールに変換するため、後者の$MAX_I=1$が多いと思います。 なぜこれが劣化の尺度になるのかという
