タグ

ブックマーク / hamukazu.com (4)

  • 数値計算で必要な数式変形について – はむかず!

    @beam2dさんの記事が面白かったのだが、これを読んでよくわからなかった人もそれなりにいるだろうという想定で、補足説明のつもりでこれを書いている。 いろんなところで話をするのだが、「数学≠数値計算」である。数学の知識と数値計算の知識はちょっと違う。方程式の解が解析的に解けて、やった解けた!と思っても、その値をコンピュータで計算して結果を出すまでにさらに工夫が必要なことがよくある。コンピュータ内部での数値表現の特性を理解した上で、コンピュータフレンドリーな数式にさらに変形しなければいけないことがある。 例1: Sigmoid関数の計算 機械学習でよく出てくるSigmoid関数 $$ \sigma(x) = \frac{1}{1+e^{-x}} $$ であるが、これは\( \lim_{x\to \infty} \sigma(x) =1 \), \( \lim_{x\to -\infty} \

  • PythonプログラミングのためのEmacs設定(動画あり) – はむかず!

    EmacsのPython環境周りを最近整えたので自分のためのメモ。似たような情報は色々とネットに転がっているのだが、古いEmacs向けだったり、いろいろとやりすぎだったりというのもあったので、自分なりにシンプルにまとめてみた。 以下、Ubuntuでemacs24を使ってることを前提とする(Linuxならばそんなに変わらないかなと思うが)。python-modeとpackage.elはすでに入っているとする。python-pipがインストールされてて、~/.local/binにパスが通っていることも前提とする。 以下の順で説明する。 準備:package.elの設定 自動インデントの設定 yasnippetのインストール py-autopep8のインストール auto-completeのインストール elpyインストール flymake関連のインストール 動作デモ(動画) それぞれ独立なので

  • Pythonの疎行列ライブラリscipy.sparseの基本 – はむかず!

    今回は珍しく(?)初心者フレンドリーに書こうと思う。先日のPyCon JPでの発表で、Pythonで使える疎行列のライブラリ「scipy.sparse」について反響があったので、改めてここで使い方の基をまとめてみることとする。そもそも、便利で使い方もそれほど難しくないのに、日語の情報がほとんどないようなので敬遠されていることもあるかもしれない。ここでは、使い方の基を解説する。 基: 疎行列とは? 要素のほとんどが0であるような行列を疎行列と呼ぶ。そうではない普通の行列を、区別したいときには密行列と呼ぶ。疎行列では、非ゼロ要素だけを覚えておけば良いので、メモリ、計算時間ともに大幅な節約になる。特に非ゼロ要素の割合が小さい場合は、その節約は大きくなる。 特に機械学習の分野だと、計算過程で大規模な疎行列が必要になることがよくある。 使い方 scipy.sparseには、疎行列を表すクラス

  • Pythonで数値計算のコツ:for文書いたら負けかなと思っている – はむかず!

    転職してから1年とちょっとが経ち、Pythonをメイン言語としてからも同じくらいが経った。最近やっとnumpy/scipyの使い方のコツがわかってきたと思うので、マサカリ飛んでくるのを覚悟でなんか書いてみようと思う。 転職して初めてPythonを使ったというわけではない(実際wafのwscriptとかは書いたことある)が、まあでもほぼ初心者同然だった。学習曲線でいうとPythonはすごく良い言語だと思う。Python体の言語仕様については、わりとすぐに覚えることができた。だが一方、numpy/scipyについては、そう簡単ではなく習得するにはそれなりに時間がかかったと思う。 ケーススタディ たとえば\(N\times M\)行列\(B\), \( M\times L \)行列\( C \), \( M \)次元ベクトル\(a=(a_k)_{1\leq k \leq M}\)が与えられて

  • 1