元バイオ系

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

Transformerを理解したい

Transformerを理解したい記事です。 Transformerが提案された論文「Attention is All you need」をベースにまとめていきます。 以下の知識があることを前提としています。 Deep Learningに関する基礎的な知識 RNNに関する基礎的な知識 上記に関連する数学的…

特徴量重要度を理解したい

特徴量重要度を理解したい記事です。 まさか、どういうものか理解せずに使ってないですよね? 特徴量重要度とは 平均不純度変少量(Mean Decrease Impurity; MDI) 平均正解率減少量(Mean Decrease Accuracy; MDA) 単一特徴量重要度(Single Feature Impor…

アンサンブル法を理解したい #1

まだまだ使う機会の多いアンサンブル法ですが、理論とアルゴリズムからちゃんと追いかけられている人ってどの程度いるのでしょうか? データサイエンティスト()にならないためにちゃんと理解してきたい記事です。 今回はバギングについてまとめます。 問題…

インバランスバーを理解したい

ファイナンス機械学習で、非定常時系列の前処理・解析の勉強をしているんですが再序盤である第2章で躓いてしまいました。読んで理解するだけなら難しくありませんが、インバランスバーを実装してみるとここで躓く人も多いのではないでしょうか。 第2章3節…

強化学習を理解したい #2

前回 hotoke-x.hatenablog.com の続きで、今回はモデルフリー手法の話です。 モデルベース手法では と が定義可能である前提でした。 モデルフリーの問題では直接これらを定義できない為に、蓄えたデータ(経験)から推定する必要があります。 また、経験を…

強化学習を理解したい #1

仕事でDeep Learningを使う機会がちょいちょい出てきたので、tensorflowやPyTorchの練習も兼ねて強化学習を勉強中。 手法が色々あってよくわからなくなってきたので記事にまとめます。 全体を俯瞰することに努めます。 正確性よりわかりやすさを優先します。…

Big SurでのBUILD FAILED (OS X 11.5.1 using python-build 20180424)を解決したい

macOS Big Sur (Version 11.5.1)にてpyenvで3.7系のpythonをインストールしようとすると BUILD FAILED (OS X 11.5.1 using python-build 20180424) のエラーが発生した。 結論から言うと、brewを経由せずにgithubから直接pyenvを取ってきたら解決した。 既…

MLOpsを理解したい #1

会社で「MLOpsについて勉強しよう」となったので、最近Googleより発表されたVertex AIについて勉強していきたい記事です。 初心者すぎるので、MLOpsとは何かというところから始めていきます。 MLOpsとは 機械学習オペレーション (machine learning operation…

Julia tips #11: REPL起動と同時にプロジェクト環境をアクティベートする

~/.julia/config/startup.jlに using Pkg if isfile("Project.toml") && isfile("Manifest.toml") Pkg.activate(".") end と書いておくだけ。この設定はVSCodeのJulia extensionで自動起動されるREPLでも有効。 参考 Activating project environment in Juli…

K-SVDアルゴリズムを理解したい

辞書学習アルゴリズムであるK-SVDアルゴリズムを理解したい記事です。 また、過去記事 hotoke-x.hatenablog.com の続きでもあります。 辞書学習の問題設定 K-SVDアルゴリズム 参考 辞書学習の問題設定 許容誤差をとして、以下の問題設定で辞書とスパース表現…

スパースモデリングを理解したい

最近、青の本*1でスパーズモデリングの勉強を始めた。 最適化の記事同様、ここではあまり式を使わずに全体を俯瞰できるように努める。 まずは種々アルゴリズムの概要を掴み、後の記事で機能する理由について数学的側面を纏めていく予定。 随時更新。 この書…

ガウス過程を理解したい2

ガウス過程と機械学習の第5章、補助変数法でよくわからなくなってしまったので原著を読んだのでまとめます。スパース近似ガウス過程回帰を統一的視点で眺めるという内容になっています。 @matsueushiさんが既に綺麗にまとめてくれているのですが、数弱の自分…

LaTeX数式からはてなブログ数式へ一発で変換する

勉強するときはlatexまたはmarkdownでまとめているのですが、これをはてなブログへ転記しようと思うと相当に面倒くさい(特に数式周りが)。 数式の記述方法については以下のブログ記事でとてもよくまとめてくれている。 はてなブログで数式を書く - 七誌の…

ガウス過程を理解したい1

時間が空きましたが、ガウス過程を理解するために多変量ガウス分布について学習してきました(以下を参照)。 hotoke-x.hatenablog.com hotoke-x.hatenablog.com ガウス過程と機械学習の第5章、補助変数法でよくわからなくなってしまったので原著を読みまし…

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

前回の記事で、多変量ガウス分布の正規化定数を導出しました。 hotoke-x.hatenablog.com 今回は 多変量ガウス分布の周辺化 条件付きガウス分布 を行います。 前回同様、数学の準備をしてから本題に入ります。 数学の準備 ブロック行列 行列式 逆行列 多変量…

多変量ガウス分布を理解したい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次形式の標準形が得られる。 正方行列のスペクトル分解(固有値…

固有値と固有ベクトル

固有値と固有ベクトルについてメモ。 何をしているかはわかっているけど、何が起きているかがわかっていなかった。 「固有」ってなんだよと思っている 行列の掛け算で何が起きてるのかイメージがわかない そんな人たちは参考になるかも。 数弱なので間違いが…