元バイオ系

元バイオウェット系がデータサイエンスやらを勉強していくブログ。 基本自分用のまとめ。

2019-01-01から1年間の記事一覧

多変量ガウス分布を理解したい1

ガウス分布こと正規分布は、以下の式で定義される最も基本的かつ重要な確率分布です。 $$ \begin{align} p(x)= \frac{1}{\sqrt{2 \pi \sigma^2}} \exp \left\{ -\frac{(x - \mu)^2 }{ 2 \sigma^2 } \right\} \end{align} $$ は確率変数、は平均、は分散です…

EMアルゴリズムを理解したい【最尤法から】

よく忘れるので一旦ちゃんとEMアルゴリズム*1についてまとめておきます。 最尤法について振り返ってからEMアルゴリズムの説明に入っていきます。 あまり計算に自信はありませんので、間違いを見つけたら教えていただけると幸いです。 最尤法 EMアルゴリズム …

neovimでAnacondaの環境ごとにpython補完させる

環境:Ubuntu18.04 LTS Anaconda (Miniconda) のインストール neovim用環境の作成 conda create -n neovim python=3 pip install neovim neovimのインストール sudo add-apt-repository ppa:neovim-ppa/stable sudo apt-get update sudo apt-get install neo…

Julia tips #10: マクロを使って動的に構造体を定義する

Juliaでゼロから学ぶDeep Learningという記事を書きました。 hotoke-x.hatenablog.com 実はこちらの実装、ほぼ本家のPythonそっくりになるように書かれています。 というのも私がDeep Learning初心者なので、自己流で進めすぎるとどこが間違っているのかわか…

Juliaでゼロから作るDeep Learning

もともとPython使いの自分には、ゼロから作るDeep LearningをPythonでやっても面白くない! ということでJuliaでやってみた。 速度が犠牲にならないように多少は考慮したつもりだが、本家Python版の方が速いかも。 なんにも考えなくても速度がでるNumpy凄い.…

Julia 小技集

完全に自分用 便利な小技をメモしていく 随時更新。 現在の環境 Julia Version 1.1.0 Commit 80516ca202 (2019-01-21 21:24 UTC) Platform Info: OS: Linux (x86_64-pc-linux-gnu) CPU: AMD Ryzen 7 1700 Eight-Core Processor WORD_SIZE: 64 LIBM: libopenl…

【初心者】Deep Learning用語まとめ

「ゼロから作るDeep Learning」を読んでいる。 一気読みできればいいが、そういう訳ににもいかないので簡単な用語を忘れることがある。 そんな時に本を開くのは億劫なので、ここに簡単な用語をまとめておく。 ニューラルネットワークに入る前に... パーセプ…

Windows10+Anaconda+PyTorch

Chainerを使いたかったけどWindowsは公式サポートでない上に、CUDA、cuDNNのインストールがやたら面倒くさい...。 他のライブラリでもっと簡単に使えるものはないかと探していたら、PyTorchならAnaconda経由で環境が整うらしいのでメモ。 linuxでもmacOSでも…

テンソルを使いこなしたい3(行列の行列微分)

hotoke-x.hatenablog.com hotoke-x.hatenablog.com の続き。 本記事ではテンソルの微分演算についてまとめる。行列の行列微分がややこしかったので、縮約記法で計算すればスッキリできるのではと思ったのが事の発端。ようやくここまで来た。 準備 スカラーの…

テンソルを使いこなしたい2(レヴィ=チヴィタ記号)

hotoke-x.hatenablog.com の続き。一気に書くとまとまりがないので分けた。 本記事ではエディントンのイプシロン(レヴィ=チヴィタ記号)についてまとめる。これにより、ベクトル積、行列式、三重積などがスッキリ表現できる。 エディントンのイプシロン(レ…

テンソルを使いこなしたい1(アインシュタインの縮約記法)

「ゼロから作るディープラーニング1」で、Affineレイヤの逆誤差伝播のために行列積の行列微分がシレっとでてきた。一旦書き下して納得はしたものの、行列の順序を意識しながら連鎖律を操るのはシンドイ。そこで、Einsteinの縮約記法でテンソルを扱えたらス…

Anaconda経由でTensorFlow (GPU)+Keras環境を構築する

タイトルの通りです。 これまでだと、GPU版TensorFlowのためにCUDA環境を構築するのがとにかく面倒でした。 良い方法はないかとググっていたら、Anaconda経由ですべてが完結するメチャクチャ簡単な方法を見つけたので紹介します。 以下の記事です。 Windows1…

関数の最適化について勉強メモ

ざっくりと最適化についてまとめる(少し詳しい目次程度)。 手法間のつながりとか流れを確認する用なので、内容には踏み込まない。 証明や細かい解説は書籍を参照すること*1。 間違いがあればご指摘ください。 勾配法 最急降下法 今いる地点の勾配(1階微分…

2次形式の最大値と最小値

前回の記事で、固有値と固有ベクトルについて書いた。 hotoke-x.hatenablog.com この記事中にある正方行列の対角化を式変形すると、行列のスペクトル分解(固有値分解)が得られ、これを使って2次形式の標準形が得られる。 正方行列のスペクトル分解(固有値…