皆さん、機械学習の勉強って楽しいですけど、正直キツくないですか?
何がキツイって、結局のところ数学なんじゃないかと思います。
数学があまり強くない自分は、RやPythonで可視化してみたり、実装してみたり、単純に情報をググってみたりすることが結構多いですが、僕がもう一つやる選択肢が、Wolfram Alphaで数式や関数、分布を検索することです。
これがあまり有名じゃないみたいなので紹介します。
Wolfram Alphaとは
自分は、「統計情報や数学的な理論などの、事実を探せる検索エンジン」と認識しています。Webではなく、膨大なデータベースと数学処理エンジンに問い合わせをしている感じです。
ただ、彼らが作っているaboutページには、
http://www.wolframalpha.com/about.html
例えば「Tokyo」を検索すると、人口や地図上の場所、面積、現在の時間や気候、著名な人や会社などが次々に出てきます。
http://www.wolframalpha.com/input/?i=tokyo
他にもいろんな事が検索できるので、彼らが用意してくれている例の一覧を見てみると良いです。
http://www.wolframalpha.com/examples
ちなみにこのエンジン、Mathematicaの生みの親Stephen Wolframが2009年にリリースしたもので、数百万行のMathematicaのコードで出来ているらしいですw
Wolfram Alphaを利用する
Lpノルムを書いてみる
例えばSVMを勉強していてL1正則化、L2正則化とか勉強していた時、Lpノルムという概念が出てきます。ググるとLp空間というWikipediaページが最上位に来ます。
この時、L1, L2, L∞, L(2/3)のグラフについては書いているのですがL(1/2)とかL4とか知りたいなと思ったらWolfram Alpha先生で以下のクエリを投げます
ご丁寧に、yについても解いてくれちゃってます。
ベータ分布ってどんな分布だっけ?
後よく出てくるのに正規分布、ポアソン分布、ベータ分布とか分布が出てきたりします。ググるのも良いですが、例えばベータ分布で検索する(本来は英語で検索したほうがいいですが、簡単なものなら勝手に訳して検索してくれます)と
ベータ関数とは違うんだよね??とか思ったら
beta functionで検索したり、beta(x,y)と入力したりしてみると良いです。
他にも
sin(x)をテイラー展開してくれたり、
ちょっと難し目なsin(log(x))のグラフ描画や微分積分をやってくれたり。
Rとか開く前に、ここで何とか出来ないかなってやってみるといいことがあります。
ちなみに
有料(約300円)ですが、アプリもあるみたいです。 => iOS, Android
最近、Wolfram Languageというのを出したみたいです。すごいです。いろんな機械学習も出来ます。 => デモ動画