機械学習

FastBDTでの高速化

はじめに 勾配ブースティング木の高速化はどうすればいいだろうと調べていたら、arxivで流れているのを見かけたのでメモ。 FastBDT: A speed-optimized and cache-friendly implementation of stochastic gradient-boosted decision trees for multivariate …

勾配ブースティング木を試す

はじめに ここしばらくサボってしまっているので、(のんびりと)いろいろ勉強していきたい。 コンテスト系などでもよい成績を残している勾配ブースティング木について試してみた。 勾配ブースティングとは Gradient Boosting 加法的モデルH(x)=Σρ_t * h_t(x)…

t-SNEで遊ぶ

はじめに 最近よく見かける「t-SNE」という非線形次元圧縮手法を試してみた。 t-SNEとは t-Distributed Stochastic Neighbor Embedding SNEと呼ばれる次元圧縮手法の問題点を改善した手法 SNEは、「各点間の"ユークリッド距離"を、類似度に相当する"条件付き…

GP-MIで遊ぶ

はじめに http://live.nicovideo.jp/watch/lv228162988 先週のNL研のニコ生で、ベイズ的最適化についての招待講演を見ていて「SEは滑らかすぎる」という発言がよくわからなかったので、GP-MIを試してみる。 Contal et al., Gaussian Process Optimization wi…

Elman netを試す

はじめに プロフェッショナルな「深層学習」本で紹介されているRNNの一種のElman netを書いてみる。 Recurrent Neural Network(RNN)とは 再帰型ニューラルネット ネットワーク内部に内部有向閉路を持つようなニューラルネットの総称 Feedforwardの時は、入力…

多層ニューラルネットを試す

はじめに FeedForwardNeuralNetwork。プロフェッショナルな「深層学習」本のバックプロパゲーションの導出が丁寧にされていてわかりやすかったので、それに合わせて書いてみる。各層の活性化関数はロジスティック(シグモイド)関数、出力層の活性化関数はソフ…

Feature-Weighted Linear Stackingメモ

はじめに Sill et al., Feature-Weighted Linear Stacking, 2009 http://arxiv.org/abs/0911.0460最近、コンペ上位者の手法としてよく見かける手法「Stacking」の一つについてメモ。 Stacking 複数の機械学習モデルの予測結果をブレンドすることで、さらによ…

AdaDeltaを試す

はじめに 勉強会で、学習率を改善(自動調整)する事で学習時間を短縮し、ファンタジスタドールを見る時間を多く確保できる事が示されていた。 AdaGrad等をさらに改良したらしいAdaDeltaがあるようなので、ロジスティック回帰に適用してみた。 AdaDeltaとは M.…

Feature Hashingを試す

はじめに Feature Hashingについて気になったことがあったので試してみた。 Feature Hashingとは Hashing trick ハッシュ関数を使って、素性群をM次元ベクトルにする 一種の次元圧縮 Bag of wordsなどの素性をそのままハッシュ値にすることで、素性とIDのペ…

DSIRNLP#6で発表させていただきました&懺悔とNaiveBayes教入信

DSIRNLP#6 10/11にデンソーアイティーラボラトリさんで行われたDSIRNLP#6勉強会で発表させていただきました 聴いていただいた方、ありがとうございました。 勉強会のページ http://partake.in/events/38e416b0-5e64-4bd4-8388-4e19acd0ef97 発表資料 一部、…

NBSVMを試す

はじめに S. Wang & C. D. Manning, Baselines and Bigrams: Simple, Good Sentiment and Topic Classificatioin Naive Bayes素性を利用したSVM(NBSVM)なるものを試してみる。 SVM with NB features(NBSVM) Log-count ratio r = log( (p / ||p||_1) / (q / |…

マルチラベル分類メモ

はじめに G. Tsoumakas, I. Katakis, I. Vlahavas., Mining Multi-label Data http://lpis.csd.auth.gr/paper_details.asp?publicationID=290 マルチラベル分類問題について、メモ。 マルチラベル分類問題 1つの事例が、複数のラベル(ラベルの集合)に同時に…

Matrix Factorizationで遊ぶ

はじめに 次元削減せずにはいられない。 0の扱いがいまいちピンとこなかったので、ちょっと調べて試してみた。 Matrix Factorizationとは Netflix Prizeという推薦システム・協調フィルタリングのコンテストで良い結果を残した手法 行列Mを、2つの行列P,Qの…

SdAで遊ぶ

はじめに Deepな話で、簡単に試せそうだったStacked Denoising AutoEncoderを試しに遊んでみる。 あんまり詳しく調べていないので、お遊びレベルという感じで・・・注意:下記では「特徴抽出器」として利用する方法を試しています。通常は事前学習として行い…

ランダムフォレストで遊ぶ

はじめに 簡単だけど性能がよく、様々な実装が公開されていてマジでパナいと噂の、ランダムフォレストで遊んでみる。 ランダムフォレストとは Breimanによって発展改良された、複数の相関の低い決定木を組み合わせる集団学習の一つ 詳細な紹介や内容は「参考…

ロジスティック回帰で分類を試す

はじめに そういえばliblinearよく使うのにロジスティック回帰自分で書いた事ないなぁと思ったので、ちょっと書いてみた。 詳しい解説記事 とてもいい感じの連載がされている。 http://gihyo.jp/dev/serial/01/machine-learning L1/L2正則化については以下も…

liblinearモデルファイルのフォーマットを確認

はじめに ちょっと気になったので、liblinearで扱われているモデルのフォーマットについて確認する。 言語処理などで高次元なものを扱う場合、線形カーネル(ただの内積)を扱った方が精度がよい場合が結構あるので、自力でモデルファイルをパースできるように…

AutoEncoderで遊ぶ

はじめに 次元圧縮がマイブーム化しているので、最近はやりのAutoEncoderで遊んでみる。 べ、別に深い何かのためにやろうとしてるわけじゃn AutoEncoderとは 入力と出力が近くなるように学習するニューラルネットワーク (枠組みをさすだけでニューラルネット…

ROC曲線メモ

はじめに 複数の分類器の性能を比較したりするときに利用されるROC曲線ついて、ちょっとメモ。 ROC曲線とは Receiver Operating Characteristic Curve 受信者操作特性曲線 もとはレーダー技術で雑音の中から敵機の存在を検出するための方法として開発 分類で…

Label Propagationを試す

はじめに 前から気になっていた、label propagationを試してみる。 マルチエージェントとかの合意問題っぽい感じ? Learning fron Labeled and Unlabeled Data with Label Propagation http://lvk.cs.msu.su/~bruzz/articles/classification/zhu02learning.p…

liblinearで文書分類を試す

はじめに データ整形やスケール調整、パラメータの探索を行うことでどれだけ変わるか気になったので、liblinearを使って文書分類を試してみる。 liblinear http://www.csie.ntu.edu.tw/~cjlin/liblinear/ version 1.93を利用 使用するデータ http://www.csie…

TWCNB分類器を試す

はじめに テキスト分類でよく使われるNaive Bayesにはいくつかの厳しい仮定や条件があり、それによって性能が落ちてしまっている。 経験則をいれたりして性能を向上させたTWCNB分類器を試してみる。 多項モデルによるNaiveBayes l_MNB(d) = argmax_c{ log P(…

トピックモデルメモ

はじめに トピックモデルについてメモ。 トピックモデルとは 文書は、何らかの話題について書かれていたりする 「ある文書内に一緒にでてくる単語は、意味的な関連性が強い」など考えられる トピックモデルは、文書から「何らかの話題(=トピック)」を発見す…

SCWを試す

はじめに 分類器の決定版(?)的なSoft Confidence Weighted Learningを試してみた。 Soft Confidence Weighted Learningとは 2012年に提案された、各重みを正規分布と考え更新時にその分布が変わるようにしたConfidence Weighted(CW)関係のノイズに強くなっ…

RBMで遊ぶ

はじめに 深イイ学習とかで使われているらしいRestricted Boltzmann Machineでちょっと遊んでみる。 Restricted Boltzmann Machineとは 制約Boltzmann Machine 各層内のノード間の結合がないようなBoltzmann Machine この制約によって、学習時の隠れ層の各ノ…

FeedforwardNeuralNetworkで遊ぶ

はじめに 最近再び注目を浴びているニューラルネットで遊んでみた。 簡単な3層の完全結合の階層型ニューラルネット(多層パーセプトロン)。 XOR 2入力1出力で、xorの出力は線形分離可能ではない (0,0)->0, (1,1)->0, (0,1)->1, (1,0)->1 単純パーセプトロンで…

決定木メモ

はじめに 決定木についてちょっと調べてみたので、メモ。 決定木(decision tree)とは 木構造(多分木)を使って、分類・回帰問題を解く root(根)を含む各内部ノードは、「変数」を表す leaf(葉)は、変数に対する「予測値、分類値」を表す 入力xを、ルートから…

CRFを試す

はじめに 条件付き確率場(Conditional Random Fields)を実装してみた。 本の式導出がわからなくて、夜な夜なmac book airを涙で濡らしながら書いたので、あやしい。 説明 基本的に「言語処理のための機械学習入門」の本の通りに書いた(つもり、、、) すごく…

FOBOSを試す

はじめに FOBOSという最近のオンライン学習の方法を知ったので試してみた。 FOBOSとは 2009年に提案された微分不可能な目的関数でもうまく正則化をしつつオンライン学習できる手法 http://jmlr.csail.mit.edu/papers/v10/duchi09a.html 劣勾配法という手法で…

系列ラベリング問題メモ

はじめに 系列ラベリング問題についてちょっと調べてみたのでメモ。 系列ラベリング(系列分類)問題とは ある系列xの各要素に適切なラベル列yを付与する問題 例えば「This is a pen」という文書の各単語に「This(代名詞) is(動詞) a(冠詞) pen(名詞)」のよう…