機械学習

PyTorch の推論時のオーバーヘッドを調べてみた

論文投稿が終わって解放感がスゴい。勢いあまって PyTorch の推論の高速化について実験したのでその結果をここにまとめる。もちろん機械学習は勉強中なので手探りで実験しながら調べている感じである。アホみたいなことをしている可能性がある。 悩ましい(…

PyTorch の Transformer に入門する

PyTorch の公式チュートリアルに Transformer を使ったテキスト処理の章がある。これが何やってるのか分からん。もちろん Transformer の仕組みは分からん。それは想定内。問題は Transformer の外側で何をやってるのか分からんってこと。今回はそれを解説し…

PyTorch の自動微分に入門する

前回 は PyTorch のチュートリアルの最初だけやってみた。そこで PyTroch の自動微分の概念が重要であることが分かったので、今回は自動微分のチュートリアルをやってみる。ページは以下。 pytorch.org 忘れてはいけないのは PyTorch のテンソルはお化けオブ…

PyTorch に入門する

論文とかに載ってるニューラルネットワークのアーキテクチャを再現して自由自在にカスタマイズできるようになりたい。最近はニューラルネットワーク触るとなると PyTorch らしい。ってことで PyTorch のチュートリアルやってみる。チュートリアルのページは…

誤差逆伝播法とは何か

プログラマの良いところは離散的な考え方に親しんでいる点である。だいたいのプログラミングなんて組み合わせの列挙と計算量の解析ができればなんとかなる。微分計算なんて大学1年の数学で見納めたはずだった。しかしながら、機械学習を勉強するとやたら微分…

確率的勾配降下法とは何か

機械学習において確率的勾配降下法(Stochastic gradient descent, SGD)ってよく耳にするけどよく分からない。「確率的勾配降下法 わかりやすく」でググった人は数知れないだろう。自分も SGD の本質がどこにあるのか分かっていなかったので改めて調べてみ…

マルコフ決定過程で脱出ゲーム

マルコフ決定過程と仲良くなりたい。一昨日書いた記事ではベルマン方程式の話をした。本を読んで理論を理解したつもりでも、自分で実装してみて初めて見える世界ってのもある。ってことで簡単なゲームを作って、マルコフ決定過程問題を解くアルゴリズムを実…

ベルマン方程式とは何か

今日はベルマン方程式について。強化学習を勉強していると最初の方に出てくるやつ。専門書を読みながら式変形を追うのに精いっぱいになっていると、いつの間にかその式がもつ意味を見失っちゃいますよね。 ってことで本記事では、細かい式変形は追わずに「ベ…

ロジスティック回帰とは何か

ロジスティック回帰って有名なわりにインターネット上の解説を見ていると定義にブレがあるように思う。なんだか紛らわしいので英語版 Wikipedia の Logistic regression のページをもとに整理してみる。その後なぜ紛らわしいのか整理しようと思う。ただし本…

なぜベイズ推定にMCMCなのか?

MCMC (マルコフ連鎖モンテカルロ法) なにも分からん。ベイズ推定を勉強しているといつだって「計算が困難なので MCMC で事後分布を近似しよう!」という話に遭遇する。しかしながら MCMC が何を計算するものなのかよく分からないし、なにが嬉しいのかも分か…

Kotlin で Jupyter Notebook

Kotlin は素晴らしいプログラミング言語である。シンプルかつスマートな言語仕様、リッチな開発環境、ググれば出てくるノウハウ、どれをとっても使いやすい言語である。しかも JVM で動くので Write once, run anywhere 的な恩恵もある。個人的には、現代の…

PyTorch Tabular による表形式データの深層学習

ちょっくら機械学習ネタ。基本的に Python 書きたくないのでたまにしかやらない。 PyTorch Tabular とは 分類や回帰などの表形式データに対する機械学習には XGBoost, LightGBM などの勾配ブースティング手法が有効であることが知られている。一方で、近年に…