TeXで数式をはてなブログに表示して、Atomでプレビュー
はてなブログの設定
[デザイン]>[カスタマイズ]で設定画面を開き、[記事]>[記事下]と[フッタ]に以下のhtmlを挿入する。
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { inlineMath: [ ['$','$'], ["\\(","\\)"] ], displayMath: [ ['$$','$$'], ["\\[","\\]"] ] } }); </script>
これで$
または\(
で囲めばMathJaxを利用してTeXを表示できます。
また、中央揃えのときは$$
または\[
です。
Atomの設定
markdown-preview-plusをインストール
既存のmarkdown-previewを無効化
markdown-preview-plusのSettingsからEnable Math Rendering By Defaultにチェックを入れる
これでctrl+shift+M
でTeXとMarkdownがプレビューできるようになりました。
感想
ブログをずっとはてなブログで書き続けるという方やライトに書きたい方は[tex:]
を使って数式を書いてもいいのですが、他のブログへ引っ越す可能性があったり、Markdownエディタでブログを書こうとしている場合は今回の方法を使った方がいいと思います。自分はブラウザで長い数式を書くのが苦痛だったのでこの方法をとることにしました。
PRML 1章 メモ
(1.45)
加法定理より
(1.54)
PRML 1章 解答
PRMLの演習問題の解答を書いてみることにしました。
数学の知識は数Ⅲ、Cレベルまでしかないので正確性は求めないでください。あくまで、理解できればいいということで。
もちろんすべての解答を書くとは限りません。
当面は基本問題中心で...
1.5
期待値の公式を使って計算します。 公式はこちらにまとまっています。
2乗を展開して、期待値の中身を分解する
ここでを定数と考えると
1.6
共分散の定義は
であり、展開すると
(は定数であるので公式を使った)
x,yは独立なので(が成り立つ)、また1.5と同様には定数であり、
因数分解すると
ここで期待値の定義より
x,yは独立なのでが成り立つので
p(y)は確率密度なのでであるから
よって
1.11
ここで
よって
1.55が示された
両辺にを掛けて
よって
1.56が示された
1.12
テキストに書かれている通り最尤解()はの関数であることに注意する。 のとき1.50より
なので
のときは独立なのと、1.49より
なので
(1.130)が示された。また、
より
よって1.57が示された。
また、
ここで
(1)の第1項は
(1)の第2項は
(1.130)より
(1)の第3項は
この変形が肝!
(1.130)より
よって(1)は
よって
これで1.58が示された。
参考
今年の目標
明けましておめでとうございます。新年ということで自分なりの今年の目標をまとめてみました。
これが1年で達成できるとなかなか立派なプログラマーになれそうですねえ。
まあ、6割以上は達成できるようになりたいです。
アセンブリ言語をマスターする
よりハードウェアに近いことを理解しようと思うと常にアセンブラにぶつかるのでそろそろ身に付けたい。 リバースエンジニアリングにも興味がある。C/C++を実用レベルまで習得する
アセンブラに関連してC/C++で書かれたソースコードは多いし、基礎となる言語なので身に付けたい。モダンなWebサイトを作るのに必要な技術を身に付ける
JavaScriptのライブラリやCSSなどを使えるようになりたい。
Web界隈は非常に込み入っているイメージがあり、あまり手を付けたくなかったのだが、最近よく聞くElectronにはWeb技術が使われているようで、Webサイトに興味がなくても無視できない存在になっていると感じた。セキュリティについて勉強する(のに必要な知識を付ける)
先日、セキュリティ関連の本を読んだところ、アセンブラやデバッガ、Linuxカーネルの話題などがありついていけなかった。
幅広い知識が必要なのだと実感した。効率的にプログラムを開発できるようにする
すこし規模の大きなプログラムを作ろうとすると、設計が上手くいかなくなる。デザインパターンを勉強したい。 また、gitやIDEを使いこなせるようになりたい。機械学習、ディープラーニングについてアルゴリズムを理解し、実用できるようにする
取り敢えず、PRMLとコード主体の機会学習の本を読む。数学
まともに大学で数学を勉強できないので、しばらくは独学で頑張るしかない。英語
プログラミングには直接関係ないけど。TOEIC750点、TOEFL550点ぐらい取れるようになりたい。アプリ開発
自分で作ったアプリを公開してみたい。まずはUWPとAndroidで。
iOS用にも作ってみたいがiPhoneもMacもないから難しそう。(というか無理)
最近、Xamarinを始めようとしている。C#にも手を出すことになるとは...
TeXで数式をはてなブログに表示する
(初期設定がやや面倒ですが[tex:]記法ではなくこちらの方がおすすめです。 1/11追加) stronger.hatenablog.com
数学のお勉強をちゃんとしようと思い、(おそらく)このブログにも書いていくことにした。
そのためには数式を書く必要があるのでTeXの書式について調べてみた。
以下の数式は機械学習において有名な本「パターン認識と機械学習」(通称: PRML)に載っていたものです。
加法定理
乗法定理
ベイズの定理
正則化した誤差関数
[tex:TeXのコマンド]
で数式を表示する。
コマンド自体の使い方はhttp://www.latex-cmd.com/を参考にした。
\displaystyle
を使うことで分数や総和が見やすくなる
最後の数式の中括弧は\\{
とエスケープしないと表示されなかった(30分ぐらい悩んだ...)
恐らくMarkdown記法によるものではないかと思う。他のはてなブログでは表示されていたので。
(確認したところはてな記法では\{
のように1回だけエスケープが必要だった。 12/20)
他にも]
や_
などエスケープが必要なものがあります。うまく表示されないときは怪しい文字(MarkdownとTeXのメタ文字)をエスケープするといいかもしれません。
以下がソースです。繰り返しになりますが、Markdownで書いています。
加法定理 [tex: \displaystyle p(X) = \sum_{Y} p(X, Y) ] 乗法定理 [tex: p(X, Y) = p(Y | X)p(X) ] ベイズの定理 [tex: \displaystyle p(Y, X) = \frac{p(X | Y) p(Y)}{p(X)} ] 正則化した誤差関数 [tex: \displaystyle \tilde{E}(\mathrm{W}) = \frac{1}{2} \sum_{n = 1}^N \\{ y(x_n, \mathrm{W}) - t_n\\}^{2} + \frac{1}{2}||\mathrm{W}||^2 ]
数学や機械学習の本を読むと難しい数式が出てきて、抵抗感があったのですが、TeXを使うことでより数式が身近なものに感じてきました。
プログラムは好きだけど数式は苦手という人はTeXから入るといいかもしれない。
参考サイト
whoisコマンドについて
インストール方法
Windows
以下のリンクからファイルをダウウンロード、解凍し、exeファイルをパスの通っているディレクトリに置く。
https://technet.microsoft.com/ja-jp/sysinternals/whois.aspx
Linux(CentOSの場合)
yum install whois
ではインストール出来ない
sudo yum install jwhois
使用方法
whois [ドメイン名]
注意
VPNに繋いで使おうとしたところWindowsでもLinuxでもwhoisコマンドが使えなかった。
VPNから切断したところ使えたため、接続先のファイアーウォールで止められてしまったためと思われる。
Pythonの辞書の要素を削除しようとするとdictionary changed size during iterationと言われた
辞書からある条件に一致する要素を削除しようと思い、下のようにすると
for key in dic.keys(): dic.pop(key)
エラーが出てきました。
RuntimeError: dictionary changed size during iteration
こうすれば大丈夫です。
for key in list(dic): dic.pop(key)
forを使って辞書を操作する時は基本的にlist()を使った方がいいかもしれない