タグ

ブックマーク / echizen-tm.hatenadiary.org (15)

  • 機械学習の有益な書籍情報を共有します - EchizenBlog-Zwei

    機械学習の有益な書籍情報を共有します。 初心者向け 最初に読むとしては「オンライン機械学習」「フリーソフトではじめる機械学習入門」「言語処理のための機械学習入門」がオススメです。 「オンライン機械学習」は3章までが入門的な内容になっています。4章以降は発展的な内容なのである程度力がついてからが良いです。オンライン機械学習という分野は実装が簡単で実用性が高いので最初に取り組むのに適しています。 広い範囲で機械学習を概観したい場合は「フリーソフトではじめる機械学習入門」がよいです。こちらは全体像がつかみやすい反面、数式の展開がわかりにくい箇所がちらほらあるので適当なスルー力が必要とされます。 「言語処理のための機械学習入門」はやや実装よりのです。数式をみるより具体例をみたほうがわかりやすい、という人はこのが良いと思います。 数学 何をやるにしても基礎体力は大切。数学の理解が深まれば深まる

    機械学習の有益な書籍情報を共有します - EchizenBlog-Zwei
    advblog
    advblog 2015/04/23
  • 基礎から深層学習まで。おそらく初心者向けな「フリーソフトではじめる機械学習入門」を読んだ - EchizenBlog-Zwei

    おそらく初心者向けな「フリーソフトではじめる機械学習入門」を読んだ。 おそらく、というのは多少説明が足りない箇所があるなので、そのへんが受け入れられない人もいるかなあ、と思ったので。 以下、読んだ感想を書いておくので購入を検討している人は参考にどうぞ。 書の扱う範囲 "データマイニングの基礎"と"はじめてのパターン認識"の内容を合わせたような感じ。決定木やルール学習などの古典的な手法からはじまって識別関数・識別モデル・生成モデルと一通り扱っている。またグラフィカルモデルや系列ラベリングなども少々。さらに多腕バンディット問題、POMDP、深層学習など。新しめの話題も扱っている。 書の特色 1章あたり10-20ページと少なく、有名どころの手法に絞って解説してあるので最初から通して読むのが苦にならない。"はじめてのパターン認識"も良い入門書だけど、あれを通して読むのは重い、というひとはこち

    基礎から深層学習まで。おそらく初心者向けな「フリーソフトではじめる機械学習入門」を読んだ - EchizenBlog-Zwei
    advblog
    advblog 2014/04/03
  • 文法圧縮を使った完備辞書(簡潔ビットベクトル)を作った - EchizenBlog-Zwei

    @marugorithmさんの文法圧縮の解説資料(http://research.preferred.jp/2014/03/nlp2014_grammar/)があまりにも有益すぎて感動したので、文法圧縮を使った完備辞書(簡潔ビットベクトル)を作った。 文法圧縮の部分は実装の簡単さからRe-Pairアルゴリズムを使った。 https://github.com/echizentm/GCFID 作ってみて感じたメリット・デメリットをメモしておく。 簡単に言うと、rank、selectがO(1)でないという欠点があるものの理解のしやすさ、実装のしやすさを考えると利点が大きいように感じた。 文法圧縮を用いて完備辞書を作るメリット ビット列が変換規則(X1 => X2, X3みたいなの)の集合で表現できるのでpopcountとかのややこしいビット演算が不要 ビット演算が不要なのでperl,python

    文法圧縮を使った完備辞書(簡潔ビットベクトル)を作った - EchizenBlog-Zwei
    advblog
    advblog 2014/03/26
  • 手元に置いておくと安心できる、情報系の人向けな日本語の本のリスト - EchizenBlog-Zwei

    最近、人にを薦める事が多くなった。とりあえずこの辺を読むといいですよ的なリストを作っておくと便利だと思ったので作ることにした。 以下、「事前知識のいらない入門」「事前知識はいらないけど格的な」「事前知識がないと何言ってるかわからないけど有益な情報が満載な」の3つにわけて列挙する。 事前知識のいらない入門 数式少なめ、脳負荷の小さめなをいくつか。何をやるにしてもデータ構造、アルゴリズム、数学はやっておくと幸せになれるよ。 情報検索と言語処理 データマイニングとか自然言語処理とかやりたい人にはとりあえずこれ。さすがに古い話が多くなってきたのでそろそろ新しい入門用情報検索がでないかなあと思っている。 図解・ベイズ統計「超」入門 伝説のベイジアン先生がベイズの基礎を教えてくれる。ベイズやりたい人はこれ。 珠玉のプログラミング データ構造とかアルゴリズムとかの考え方の基礎を教えてく

    手元に置いておくと安心できる、情報系の人向けな日本語の本のリスト - EchizenBlog-Zwei
    advblog
    advblog 2014/02/24
  • 「木構造と自然数の重複あり集合は等価だよね」というはなし - EchizenBlog-Zwei

    「木構造と自然数の重複あり集合は等価だよね」というはなしをする。簡潔データ構造な人向けに言うとLOUDSの話。 とはいえこの記事は特に簡潔データ構造の知識を要求しない。データ構造とか情報量とかに興味がある人全般を対象としている。 ※簡潔勢にとっては既知な話のはずなのであえて読む必要はないです。 まず結論から述べる。以下のような幅優先で番号を振った木構造を考える。 親 → 子 (1) → (2, 3) (2) → (4) (3) → (5)この木構造は以下の重複あり集合によって表現することができる。 { 2, 4, 5, 5, 5 }これだけ書くとなんのこと?と思われるかもしれない。そこでこれから2つのことを説明する。ひとつは「何故、木構造が自然数の重複あり集合で表現できるか」、もうひとつは「重複あり集合で表現することに何の意味があるか」ということ。 何故、木構造が自然数の重複あり集合で表現

    「木構造と自然数の重複あり集合は等価だよね」というはなし - EchizenBlog-Zwei
    advblog
    advblog 2014/01/31
  • 伝説のベイジアン先生にベイズの基礎を教えてもらえる「図解・ベイズ統計「超」入門」を読んだ - EchizenBlog-Zwei

    「図解・ベイズ統計「超」入門 あいまいなデータから未来を予測する技術」というを読んだ。 社会人のアヤとケンが社内研修で伝説のベイジアン先生からベイズの基礎を教わる、という設定の会話形式でベイズについて書かれた入門書。社内研修でベイズのプロから指導を受けるとかどんだけ恵まれてるんだ。 アヤさんは大学で統計をやったが数学は詳しくないという設定。ただ時々鋭い質問をする。また統計に詳しいイケメン兄がいる。 ケンくんは知識は全くなく最後まで「わかりません」を連発する。彼女持ちのリア充。 伝説のベイジアン先生は社内研修の講師。ベイズの基礎を豊富な具体例で教えてくれるまじぱない先生。あまりにもいけてるので数カ月後に転職しそうな感じ。 内容は1章が導入、2章が同時確率・条件付き確率、3章がベイズの定理、4章がベイズの定理を用いた事後確率計算の具体例、5章が事例の追加による事前確率の更新(具体例としてナイ

    伝説のベイジアン先生にベイズの基礎を教えてもらえる「図解・ベイズ統計「超」入門」を読んだ - EchizenBlog-Zwei
    advblog
    advblog 2013/12/27
  • 【転職一周年記念エントリ】エンジニアの転職を支える技術 - EchizenBlog-Zwei

    転職して1年が経ちました。 前職での6年間は私の人生で最も辛い時期でした。転職してようやく来の自分を取り戻せました。自分にあった場所で働くというのはとても大切だと思うので、転職するにあたって私がやったことをメモしておきます。 1.転職の意思を固める 辞めたいと思った時が辞めどきです。他人の意見は気にする必要はないです。よく「n年はうちで頑張れ」と言われたりしますが、実際は転職を決意してから転職完了までに身につけたことで充分なので「n年頑張る」という待ちのフェイズは不要です。決意から完了まで結果的にn年かかるということはあるかもしれないですが、特に意味もなくn年耐えても良いことはないです。 2.興味のある技術を持つ 人が技術を身につけるのは会社の仕事をするためだけではないです。必要な技術は会社によって異なりますし、会社内でも部署や情勢によって変わってきます。それに追随するためだけに技術を学

    【転職一周年記念エントリ】エンジニアの転職を支える技術 - EchizenBlog-Zwei
    advblog
    advblog 2013/05/04
  • Googleの新しい圧縮アルゴリズムZopfliについて調べた。 - EchizenBlog-Zwei

    Googleの新しい圧縮アルゴリズムZopfliについて調べたのでメモしておく。 Compress data more densely with Zopfli - Google Developers Blog deflateアルゴリズム zopfliはdeflateアルゴリズムに基づいた圧縮ライブラリ。deflateアルゴリズムはデータをLZSSというLZ77を改良した圧縮法で圧縮し、その後ハフマン符号で符号化したもの。 deflateアルゴリズムの実装としてはzlibやgzipがある。zlibとgzipの違いはヘッダとフッタの持っている情報。 使ってみる googlecode(http://code.google.com/p/zopfli/)から取ってくる。 $$ git clone https://code.google.com/p/zopfli/ $$ cd zopfli $$ ma

    Googleの新しい圧縮アルゴリズムZopfliについて調べた。 - EchizenBlog-Zwei
    advblog
    advblog 2013/03/03
  • Perlで完備辞書(Fully Indexable Dictionary)のモジュールを書いた - EchizenBlog-Zwei

    ウェーブレット木/行列など「高速文字列解析の世界」で扱っているデータ構造やアルゴリズムは完備辞書(Fully Indexable Dictionary)を基的な道具として用いるものが多い。 とはいえ実用的な完備辞書を一から作るのは大変なので、高速文字列を読んで「ちょっとウェーブレット行列を作ってみようかな」と思ったとしても完備辞書は適当なモックで済まさないといけなかったりして面白くない。 というわけでPerlモジュールを書いた。 https://github.com/echizentm/FullyIndexableDictionary 例えば以下のような感じ。これでLOUDSもウェーブレット行列もさくさく作れますね! use FullyIndexableDictionary; my $fid = FullyIndexableDictionary->new(); $fid->set(1,

    Perlで完備辞書(Fully Indexable Dictionary)のモジュールを書いた - EchizenBlog-Zwei
    advblog
    advblog 2013/02/16
  • 「入門 機械学習」を献本していただきました - EchizenBlog-Zwei

    「入門機械学習」を献していただきました。ありがとうございました。 というわけで早速読み終わったので感想を書いておく。 機械学習の入門書ではない 書はタイトルから連想されるような機械学習に入門するような内容は書かれていない。一切数式は登場せずアルゴリズムはすべてブラックボックス化されている。では書はダメななのかというとそんなことは全くない。少なくとも「入門 機械学習」というタイトルに興味をもって書を手にとった人にとっては大変有益なだと思う。 大きなデータを扱って何かしたい人が最初に読むべき 繰り返すが書は機械学習の仕組みについては書いていない。仕組みはブラックボックスとして割り切ることで従来の機械学習の入門書が触れていない部分を非常に大きく扱っている。それは何かというと「汚いデータからどうやって機械学習の入力データを作るか」「機械学習の手法をどのように選択するか」「機械学習

    「入門 機械学習」を献本していただきました - EchizenBlog-Zwei
    advblog
    advblog 2013/01/21
  • 「高速文字列解析の世界」を読む前に知っておくと良いこと - EchizenBlog-Zwei

    「高速文字列解析の世界」という大変すばらしいが発売された。わりと敷居が高いではあるので読む前に知っておくとよさそうなことを書いておく。 「高速文字列解析」とは 書でいう高速文字列解析というのは主に2つのことを指している。ひとつはデータを圧縮して小さくしてディスクよりメモリ、メモリよりキャッシュというようにより高速な記憶装置で扱いましょう、という話。もうひとつはデータ構造を工夫することで複雑な操作もそこそこ高速に扱えますよ、という話。つまり「圧縮」の話と「効率的なデータ構造」の話があると考えておくと良い。 キーワードは3つ オビにも書いてあるけれど、書が主に扱うのは「BWT」「簡潔データ構造」「ウェーブレット木」の3つ。具体的には「BWT」が「圧縮」に関わっていて「ウェーブレット木」が「効率的なデータ構造」に関わっている。「簡潔データ構造」は基的な道具として書の色々なところで出て

    「高速文字列解析の世界」を読む前に知っておくと良いこと - EchizenBlog-Zwei
    advblog
    advblog 2013/01/09
  • ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix" - EchizenBlog-Zwei

    久しぶりに論文を読んだ。 http://www.dcc.uchile.cl/~gnavarro/publ.html The Wavelet Matrix Claude & Navarro; SPIRE2012 "The Wavelet Matrix"はSPIRE2012のNavarro無双のうちの一。タイトルからするとウェーブレット木の拡張のように思える。 機能としてはウェーブレット木と同一でデータ列に対するaccess,rank,selectを提供する。しかし実装は既存手法と比べて効率的でしかも簡単になっている。 これまでにウェーブレット木の実装としてはノードをポインタでつないだ普通の木として実装する方法(Standard Wavelet Tree. 論文のAlgorithm 1)と、木の階層ごとにノードをつなげた配列で表現する方法(Levelwise Wavelet Tree. 論文

    ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix" - EchizenBlog-Zwei
    advblog
    advblog 2012/08/02
  • たぶん30分でよくわかるLOUDS入門 - EchizenBlog-Zwei

    IMEの効果でLOUDSの認知度が高まってきた気がする。が、一方で難しいという意見もチラホラある様子。 というわけでLOUDSをどこまでわかりやすく説明できるか?ということに挑戦したくなったので記事を書いてみるよ。 LOUDSというのは木を表すデータ構造。木というのは以下のようなものを想像すればよい。 この木を表すデータ構造を作りたい。単純に考えると各ノード毎に子ノードのIDを持たせておけばよい。つまり 0 => {1, 4, 5} 1 => {2, 3} 2 => {} 3 => {} 4 => {} 5 => {6} 6 => {7}というようなものを考える。ここで各IDと子ノード数を各1バイトで管理したとして 0 => {1, 4, 5} # 1 + 3 = 4バイト 1 => {2, 3} # 1 + 2 = 3バイト 2 => {} # 1 + 0 = 1バイト 3 => {}

    たぶん30分でよくわかるLOUDS入門 - EchizenBlog-Zwei
    advblog
    advblog 2012/03/06
  • 簡潔データ構造を使った全文検索アルゴリズム、FM-Indexのライブラリを作りました - EchizenBlog-Zwei

    先日公開したウェーブレット木のライブラリshellinfordにFM-Indexの機能を追加した。 まだ基的な機能しか実装していないけれど、とりいそぎ公開しておく。おいおい機能は追加していく予定。 shellinford - shellinford: succinct document retrieval library - Google Project Hosting An alphabet-friendly FM-index P. Ferragina, G. Manzini, V. Makinen, G. Navarro, 2004 ちなみにウェーブレット木はちょっと高速化したので一つ前の記事のパフォーマンス測定結果が改善されて rank_wavelet_tree: 14.71s select_wavelet_tree: 460.34sとなった。これについては機会があったら記事を書く

    簡潔データ構造を使った全文検索アルゴリズム、FM-Indexのライブラリを作りました - EchizenBlog-Zwei
    advblog
    advblog 2012/02/11
  • 簡単分類ツールfutabaを作ってみた - EchizenBlog-Zwei

    しばらく前に作ったライブラリtsubomiのサンプルとして簡単分類ツールfutabaを作ってみた。あくまでtsubomiのサンプルなので高性能というわけではないが、ちょっとしたマイニングに使うには便利かもしれない。 ツールは事前に用意した学習データ(クラス名と素性ベクトルのペア集合)から重みベクトルを学習させ、新しい入力(素性ベクトル)を学習時に与えたクラスのいずれかに分類するという一般的な分類ツールとなっている。クラスをアイテムとみなすことでレコメンデーション、類似文検索用途でも利用が可能。 以下使いかたをメモしておく。 参考: CSAを使った全文検索ライブラリtsubomiを公開してみる - EchizenBlog-Zwei 注:tsubomiはUnix、LinuxMacでの利用を想定しています。これらの環境なら動作すると思いますが、もし上手くいかない場合は適当にMakefileを

    簡単分類ツールfutabaを作ってみた - EchizenBlog-Zwei
    advblog
    advblog 2011/07/22
  • 1