機械学習

機械学習工学研究会キックオフシンポジウムを振り返って

なんか最近こればっかやけど、機械学習工学研究会のキックオフシンポジウム行ってきました。mlxse.connpass.com企業の方、アカデミアの方など立場様々な方が参加されてそれぞれの視点から課題点を出されていて面白かった。有賀さんや久保さんなど企業の方々…

【後編】機械学習工学研究会キックオフシンポジウムの前に読みたい記事や論文や本

昨日は分析官やっている人間が機会学習システムの課題感について全体感を把握するためにいくつか見直したけど、今日は開発プロセスや実行する組織、支える基盤についてフォーカスあてていこうと思う。もろもろ課題あるけど、実際どうやって機械学習システム…

【前編】機械学習工学研究会キックオフシンポジウムの前に読みたい記事や論文や本

機械学習をPoCから実際の本番環境への導入、プロダクトへの適用を考えると従来のITシステムに用いられてきた開発手法やソフトウェア工学的な手法では対応できない課題がたくさんあります。 じゃあそれについてどう対応しようか?を考えるのが機械学習工学だ…

完全ランダム木のアンサンブルによる確率密度推定

Qiita Advent Calenderに記事書いた。完全ランダム木をアンサンブルした学習器で、すべてのサンプルが一つずつ最終ノードに入るまで木を生い茂らせ、その深度を基にそのデータが生まれてくる確率密度を推定してやろうというもの。会社で下記の本の読み会や…

KerasでCifar10分類、とりあえずCNNのAlexModelで

GPUマシンが使えるようになったので、Kerasで用意されているデータセットの中にcifar10があったので学習・分類してみた。 モデルはcifar10の作成者でもあり、ILSVRC2012優勝者でもあるAlex Krinzhvskyさんの優勝時のモデルがベース。 モデルの構成について深…

確率的勾配法あれこれまとめ

Kerasで選択できる最適化アルゴリズムそれぞれの違いと使い所がいまいちわからんかったので調べてみた。 Incorporating Nesterov Momentum into Adamがアルゴリズムを整理してくれているので理解しやすかった。とりあえずざっくりと俯瞰した感じだと、いかに…

Scikit-learnのpipeleine.Pipelineが便利

分析する際に、次元圧縮→分類のような流れで行う場合には、scikit-learnのPipelineが便利。特にハイパーパラメーターを探すときには手続が煩雑になることもありますが、まとめて分類器としててGridSearchCVに突っ込むだけで良いのでめんどくさいこと考えずに…

Spark MLlibの協調フィルタリングを活用したMovie Recommendation

Sparkを触る機会が増えてきてるので、知識の棚卸しを兼ねてMLlib使ってレコメンデーションシステムを実装してみました。SparkSamit2014などMLlibのチュートリアル的に色々使われているSparkのMovie Recommendationですが、edXのIntroduction to Big Data wit…

Spark MllibでのClick through rate(CRT) 予測

1年以上も前ですが、edXのScalable Machine learningを受講していた時のコードが出てきたので、見直してみました。この講座のネタが、KaggleのCriteoのコンペのデータ を基にしたCTR予測でして、One-hot-encodingやhushingした高次元のデータを Mllibのロジ…

PRML 7章 サポートベクトルマシン

パターン認識と機械学習、第7章「Sparse Kernel Machines」に入ってSVMの実装をしてみます。 図7.2の再現を行うにあたり、カーネルがガウジアンカーネルが選択されているようなので、今回の実装もこれに従います。いつも通り境界面の求め方など、SVMそのもの…

PythonでXGBoostをちゃんと理解する(3) hyperoptでパラメーターチューニング

xgboostのハイパーパラメーターを調整するのに、何が良さ気かって調べると、結局「hyperopt」に落ち着きそう。 対抗馬はSpearmintになりそうだけど、遅いだとか、他のXGBoost以外のモデルで上手く調整できなかった例があるとかって情報もあって、時間の無い…

PythonでXGBoostをちゃんと理解する(2) ライブラリ作者から学ぶ

XGBoostについて調べてたら、開発者本人から学ぶ的な動画があったので観てみた。www.youtube.com時間にして約1時間半、英語が苦手でなくて時間がある方は直接見て頂くと面白いかも。目次はこんな感じ。 ・Introduction ・Basic Walkthrough ・Real World App…

Pythonで実装 PRML 第5章 ニューラルネットワーク

PRML5章から図5.3を再現するために、ニューラルネットワークを実装してみます。 先に申し上げておきますと、偉そうに実装とか言ってるものの、コードから再現した図は歯切れの悪いものとなっております。。。まず、図5.3(b),(c),(d)に関してはPRMLの中の図に…

PythonでXGBoostをちゃんと理解する(1)

なんせ、石を投げればxgboostにあたるくらいの人気で、ちょっとググれば解説記事がいくらでも出てくるので、流し読みしただけでなんとなく使えるようになっちゃうので、これまでまとまった時間を取らずに、ノリと勢いだけで使ってきた感があります。が、腹に…

Pythonで実装 PRML 第4章 パーセプトロンアルゴリズムによる分類

前回に続いてパターン認識と機械学習、第4章「線形識別モデル」の図4.7の再現です。この図はパーセプトロンアルゴリズムでの分類が収束する様子を表したもので、右下の図で収束完了となってます。本当は特徴空間上での話なのですが、作図の都合上、となる恒…

Pythonで実装PRML 第4章 最小二乗法とロジスティック回帰による識別

パターン認識と機械学習、第4章「線形識別モデル」に入って図4.4、図4.5の再現を行います。まずは4.1.3の最小二乗法による識別ですが、ノイズが混ざると上手く分類できない点、多分類になると上手く機能しない点が図の4.4、4.5で説明されてます。 また、4.3.…

Pythonで実装 PRML 第3章 ベイズ線形回帰

パターン認識と機械学習、第3章からベイズ線形回帰が予測分布を収束させていく様子を再現します。 やっていることは、1章でやったベイズ推定とほぼ一緒で、基底関数がガウス関数(3.4)になっているだけです。 ですので、コードもほぼほぼ流用してます。1章と…

Pythonで実装 PRML 第2章 確率分布 ノンパラメトリック手法

パターン認識と機械学習、第2章からは「2.5.2 ノンパラメトリック手法」を実装します。取り出してきたデータの数を数え上げて、確率分布を把握する手法が紹介されてます。 この章はあんまり時間かけてもしょうが無いなと感じたので、さくっと実装。 カーネル…

Pythonで実装 PRML 第1章 ベイズ推定

前回に続いて、PRML1章から「1.2.6 ベイズ推定」の実装です。 図1.17の再現ですが、M=9とした上で、予測分布の平均と±1σの範囲を示しています。数式追ってるだけだと抽象的で、いまいちピンと来なかったんですが、 実装することで、(1.70)、(1.71)が分布を示…

Pythonで実装 PRML 第1章 多項式曲線フィッティング

パターン認識と機械学習、第1章から「多項式多項式曲線フィッティング」の図の再現に取り組んでみます。 早速図1.4の再現から行ってみたいと思います。また、データの数を増やすことで、予測の正確性が増すことの確認を図1.6で行っています。数学的にも実装…

PuLPを使った線形計画法(Linear Programming)

カーネルやら何やらを理解するために、非線形計画法を勉強中。 で、その前に線形計画法で実際に手を動かしたくなったので無償で使えるPuLPを使ってみた。今回例題として解いたのは「これならわかる最適化数学」の第6章、線形計画法。 似たような例題がいくつ…

ハッシュとカーネル

最近Spark使ってて特徴量減らしたいよねってなった時に、 Future Hashingを漠然と使ってたけど、気になったかた勉強。 Hash Trickの前にKernel Trick どっか違う空間に写像するってことで似てるけど、若干用途が違うカーネルトリックから。 線形空間では分離…

PysparkのMllibでリッジ回帰

作ったPysparkの環境でMap関数の練習リッジ回帰やってみました。元ネタはedXのこの講義↓ Scalable Machine Learning | edXデータはMillionSongDatasetから取得できます。で、結果から先に書きますと、Default値含めてGridsearchしたにも関わらず、 Default値…

scikit-learnで機械学習:決定木(2)

前回の続きで、Scikit-learnの決定木を使ってみます。ここから先は難しいことは何もなくて、本家に従いながら走らせてみる。もろもろimport。 import numpy as np import pandas as pd from sklearn import datasets from sklearn import tree from sklearn.…

一般化線形モデル(GLM)とニューラルネットって一緒やんね (2)

前回の続きで、一般化線形モデル(GLM)と多層パーセプトロンの比較です。一般化線形モデル(GLM)とニューラルネットって一緒やんね (1) - KAZ log 機械学習の観点から:多層パーセプトロン ニューラルネット、パーセプトロンについては下記に非常にわかりやす…

一般化線形モデル(GLM)とニューラルネットって一緒やんね (1)

ちょっと乱暴な気もしますが、一般線形化モデル(GLM)とニューラルネットの多層パーセプトロンってやってること一緒なんですよね。 バラバラっと散らばったデータの中に、納得感ある線をバチっとひいちゃうわけで。 両方の分野をやる方も多いかと思いますが、…