反面教師あり学習

*/

(旧)反面教師あり学習

Negative Supervised Learning

ブログのMathJaxのバージョンを上げたら数式の描画がはやくなった

概要

  • MathJaxのバージョンをv2からv3に上げたら爆速になった

モチベーション

ブログの数式のレンダリングが遅いのが以前から気になってて, MathJaxからKaTeXに乗り換えようかなあと思って色々ググってたら以下の記事を発見した.

tm23forest.com

古い設定見てみたらMathJaxのバージョン2系だったし思い切って上げてみた. 2系より3系の方が何かと良いのはPythonOpenCVで学んでいる.

MathJaxの更新

旧設定:

<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
        inlineMath: [['$','$'], ['\\(','\\)']],
        displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
    }
  });
</script>

新設定:

<script type="text/javascript" id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
</script>

<script>
window.MathJax = {
  tex: {
    inlineMath: [['$','$'], ['\\(','\\)']],
    displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
  }
};
</script>

数式のある文章の例. 変える前との比較は出せないが以前より明らかに早くなってる.


観測データを$\mathbf X = \{\mathbf x_1, \cdots, \mathbf x_N\} \; (\mathbf x_n \in \mathbb R^D)$, クラスタ割り当てを$\mathbf S = \{\mathbf s_1, \cdots, \mathbf s_N\} \; (\mathbf s_n \in \{0,1\}^K, \sum_k s_{n,k}=1)$とするとき, GMMの同時分布は次式で表される:

$$ \begin{align} p(\mathbf X, \mathbf S, \boldsymbol \pi, \Theta) &=p(\mathbf X | \mathbf S, \Theta)p(\mathbf S | \boldsymbol \pi)p(\Theta)p(\boldsymbol \pi)\\ &=\left\{\prod_{n=1}^N p(\mathbf x_n | \mathbf s_n, \Theta)p(\mathbf s_n | \boldsymbol \pi)\right\} \left\{\prod_{k=1}^Kp(\theta_k)\right\} p(\boldsymbol \pi) \\ p(\mathbf x_n | \mathbf s_n, \Theta) &= \prod_{k=1}^K \mathcal N(\mathbf x_n | \boldsymbol\mu_k, \boldsymbol\Lambda_k^{-1})^{s_{n,k}} \\ p(\mathbf s_n | \boldsymbol \pi) &= \mathrm{Cat}(\mathbf s_n | \boldsymbol \pi) \end{align} $$

ここで集合 $\Theta = \{\theta_1, \cdots, \theta_K\}$は混合要素のパラメタで, $\theta_k = \{\boldsymbol\mu_k, \boldsymbol\Lambda_k\}$である. ベクトル$\boldsymbol\pi \in \mathbb R^K \; (\sum_k \pi_k = 1)$は混合係数である.