blogスマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。2009-11-15半教師あり学習でollを使いたいので、ollをライブラリとして使ってみる機械学習C++DBCLSバイトにて、岡野原さんが作られているオンライン学習をサポートした機械学習ライブラリ「oll」をめちゃくちゃ使わせてもらっている。Hosting.自然言語処理のような大規模かつスパースな例だと、SVMよりめちゃくちゃ早い&同精度ということは昔書いた。blogollにはoll_trainとoll_testという*1プログラムが付属しており、大抵の場合はコンパイルしたあとに、これに投げれば解決する。半教師あり学習で使いたいバイト@DBCLSでライフサイエンス分野の専門用語辞書を作ろうとしているわけですが、自分で書いているテキストから特徴ベクトルを作り出すプログラムがようやくまともに動き初めてきた*2。その作った素性をollに投げている。100くらい差があり、圧倒的にラベル付きデータが足りない...!!まあ、足りないからやるわけですが。機械学習やっている人には半教師あり学習なアプローチが使えるだろうということが容易に想像されると思うので、ちょっとそのアプローチを試してみたい。半教師あり学習については、以下が分かりやすい*3。Tutorial「分かりやすい」といいながら、ほとんど分かってないのだが、その中でも簡単そうな方法として"Self-Training"という手法があった。なっていて、日本語にしてみると少数のラベル付きデータで学習に学習させるその学習機でラベルなしデータを識別させる識別されたラベルなしデータの中で(確率値とかでもって)信頼性が高いなと思えるものについて、識別されたラベル(識別の問題だったら1とか-1)を付与、学習データに混ぜる混ぜて増えた学習データを使って、また学習機を学習させる!という感じ。難しいことは抜きにして何がうれしいかというと「自分で新しくimplementationする必要がなく、既存のソフトウェアのみで簡単にやれる」ということである。いうことで、ollにラベルなしデータを識別させて、(閾値を越えるような|上位、下位何%の)データに対して、ラベルを振って、また学習というのをやればできそうである!俺でもできる!!何回も繰り返し学習させるということでollをライブラリ的に使えるとうれしいだろうなと思ったので、oll_trainとかoll_testを参考にしながらC++でちょっと書いてみた(半教師ありまではまだ書いてない→書きました)。半教師ありっぽくしてみた。ペーパーバックこの商品を含むブログを見る*1:oll_lineというのもあるが*2:どれだけ時間かかってるんだ、、、*3:こういうのって、Tutorialとかつけてぐぐると分かりやすいの出てきますよね。