2014-03-01から1ヶ月間の記事一覧

RBM in Julia

一昨日Rで書いたRBMを使ってdeep learning tutorialで紹介されているMNIST手書き文字画像(観測ノード数はピクセル数と同じ784、訓練データが60000画像)のデータを食わせてみたら激しく遅いのでC++より書きやすくて実行効率もいいとうたっているJuliaで書き…

「私がJuliaを推す理由」(翻訳)

Juliaについて書かれた海外のブログ記事でとても共感したものがあったのでブログ主に無断で翻訳したものを掲載します。(もし問題ありましたらご連絡ください。)このブログの著者はEvan Miller氏というソフトウェア開発者でWizardというかなりイケてそうな…

最近の興味

ありすぎるのでまとめておく アドテクへの機械学習の応用 これは会社を作ったのだからなんとか製品化できるものを見いだしたいと思っている。カルマンフィルタや粒子フィルタ、LDAやDeeplearnig等を研究している。バンディットアルゴリズムやベイジアンネッ…

Restricted Boltzmann Machineを実装してみた

R言語で実装してみました。特にパッケージは使ってないのでコピペすれば動くと思います。このプログラムは隠れノード数やCD-kのkや更新ステップのηや収束条件のパラメータ等を変えて試すことが出来ます。 また学習後のRBMを使ってreconstruct(後述)したり…

ロジットとプロビットの使い分け

出力変数(被説明変数)がYes/Noみたいな2値で表されるようなモデルを学習させたい場合についてググるとロジスティック回帰とかプロビット回帰とか出てきて、「どうやらロジスティック回帰を使うのが定石っぽいけど、プロビットっていう良くわからないのが…

SciPyで最適化

Deep learningのRBMやAutoEncoderの数式は分かったので、Pythonで実装してみようと思ってSciPyから始めることにします。非線形最適化と3Dプロットを試してみました。ソースコード。緑の点が初期値、赤の点が最適化結果。緑の4点のぶんだけ最適化関数を試し…

粒子フィルタを実装してみた

カルマンフィルターを試したので、次のステップとして粒子フィルタをR言語で実装してみました。ソースはChiral's Gistに置いてあります。 粒子フィルタとは? 状態空間モデルで、隠れ状態の遷移と観測モデルのいずれもが非線形な場合に使える状態推定アルゴ…

カルマンフィルタのアドテクへの応用(実践編)

前回のつづきです。いくつか理論の補正*1 実験はR言語で行いました。ソース及びデータの一式はChiral's Gistに置いてあります。 具体的な問題設定 ある市場において、商品カテゴリ1,2があり、A社とB社が競合してるとします。A社は1,2両方のカテゴリの…

カルマンフィルタのアドテクへの応用(理論編)

カルマンフィルタという数理手法がロケットの姿勢制御等で良く使われています。これをアドテクに応用できそうに思うのでシェアしてみます。 カルマンフィルタと関連手法(知ってる人は飛ばして次へ) カルマンフィルタは一言でいうと「連続値の隠れ変数につ…

行列計算ライブラリの簡易ベンチマーク

ClojureとF#は行列計算をネイティブコードで実行するライブラリがあるのでそれを使うとどのくらい速いのかをテストしてみました。3000x3000で要素は[0,1]区間の一様乱数で埋め尽くした行列Mを作ってMとMの逆行列を掛けてトレースを計算する(答えは3000にな…

BootcampでWindowsのブラウザの解像度がおかしいとき

ブラウザのショートカットアイコンを右クリックして「互換性」タブ→「高DPI設定では画面のスケーリングを無効にする」をチェック。(ググっても出てこなくて1時間以上ハマったのでインターネットでシェアしときます)

SRM613

R1372でDivに参戦。 Easy x軸上のN匹の猫が左右にX回移動したときの移動後の両端の猫の差を求める問題。 プログラミングコンテストチャレンジブックに載ってるアリの問題と大体同じだけど自分で考えてサブミットした答えは全然間違っていた。500人以上も解い…

メタ・ビッグデータ

すごく抽象的だけど面白い話。いわゆるデータ爆発の時代に、データをどう管理するかはIT産業における大きな問題です。Hadoopをはじめとするビッグデータの蓄積保存と分析のためのツールも普及が進んでいますが、いっぽうでデータの検索や管理についてはまだ…

HaskellとClojureとF#で書き比べ

最近ClojureとF#が気になってしょうがないので、最近楽しませてもらってるPython練習コミュニティサイトCheckiOに掲載されている問題の一つ、words_finder をHaskellとClojureとF#で書き比べてみた。同じ問題の同じアルゴリズムでの解答をそれぞれの言語で解…

早熟と大器晩成について

トラックバック&感想 最初の3年で仕事人生の大半が決まる説 意識高い(笑)と小馬鹿にしてる人に哀れみを感じる。 こういう話を読んで思うのは、プロ将棋の世界のことだ。トップ棋士の羽生さんは14歳でプロになり、以後ずっとトップを維持している。仮にそ…

プログラミング言語の使いわけ

私は色んなプログラミング言語を触るのが病的*1に好きで、どの言語をどういう場面で使うのが良いのか凄く興味があります。そこで、今の私の知識範囲でのそれぞれのプログラミング言語の使いどころを(自分用の整理もかねて)書いてみます。 C/C++ - C=OSや…

SRM612

R1288でDivision1に参戦。最近CheckiOやコンサルの仕事などでPythonをよく使っているのでPythonで参戦。JavaだとKawigiEditというプラグインが便利なんだけどPythonはGreedというのが便利そうなのでそれを入れて開始前に2問くらい解いてた。 Easy 顔文字1個…

CheckiOをクリアした

CheckiOというPythonのコーディング練習サイトを2月中旬くらいから始めて少しずつ進めていたが今日とりあえずマップ上の問題までは*1全てクリアした。システム環境周りとかの面倒くさいところがないパズル的な問題が多いのでゲーム感覚で楽しく練習できるの…

pyenvでanacondaと通常pythonを切り替える

以前このブログでも紹介したAnacondaをMacで使うとき、Systemにもとから入ってるpythonやbrewで入れたpython等とライブラリパスなどがぶつかって使いづらいときがあります。そこでpyenvを入れてみました。ググるとやり方は出てきますが一応ここでも。 # brew…

SRM611

前回の610が仕事で出来なかったので3週間ぶりくらいの参加。R1299。 Easy 元の集合に最小公倍数をくわえて出来る集合が等しいかどうかをチェックする問題。最初問題を読み間違えて最小公倍数が等しいかどうかを調べるのだと思ってコーディングしたら集合が等…