2013-01-01から1年間の記事一覧

プログラミングスキルを向上させる上での心がけに関する資料メモ

CRF入門は少しお休みして、表題の件で自分が他の方々から見聞きした話、そして体験を元にまとめてみます。名著は星の数ほどある、と個人的に思っているのでリストはできるだけ絞っています。1.Teach Yourself Programming in Ten Years Googleの研究開発ト…

Conditional Random Fields(CRF)入門その2 -ブログ資料と勾配について-

CRFが未だに実装かつフルに理解できていないです。CRFは一筋縄ではいかないことがブログ資料の多さからもわかります。ただ(一部の?)構造予測問題においては今流行りの多層Neural NetworkよりF1値が高いことが伺えますので、未だに重要な手法の一つなので…

Conditional Random Fields(CRF)入門その1 -主な参考資料と目的関数-

Conditional Random Fields(CRF)がわかりません。何それおいしいの?状態ですが、ここから学習をはじめています。前向きアルゴリズム?後ろ向きアルゴリズム?Viterbiアルゴリズム?どこで使うのそれ?状態ですね。その状態を脱出するため日々奮闘中です。…

「僕、C言語が使えます」に対する短い考察

最近僕は「所属する組織」に基づく評価を受けることが多くあり、これはある種正しい傾向を得られるにしても、それでその人自身を全て評価するのは早急すぎる、と考えていた。「人を評価することはすごい難しいことである」とこの頃実感している。(別に実際…

Patricia Trieの実装する上での基礎事項

※Javaコードの実装が追いついていないので、実装でき次第追記しておきます。Trieは辞書を参照する等で非常に便利なデータ構造なので、ちょっとメモしておく。今回はこのTrieの一種であるPatiricia Trieのお話。基数木とも呼ばれているが、僕は基本的にPatric…

僕が便利だと思うgitコマンド

いやー暑いですねー。ということで、最近まで主に使っていたgitコマンドを紹介します。 gitコマンドに関しては短縮するaliasを書いておいた方が、生産性が向上します。おすすめです(とこれも人から教わった知識ですが)。こことかを参考にしながらやるのが…

検索インデックス周り(主に接尾辞配列周り)に関する基礎の話

資料リンク集みたいなものですね。不完全なので、徐々に詳しく書いていきたい記事です。 接尾辞配列がなぜ巷で「痺れる、憧れるぅ!」状態なのかを理解した。 検索速度、スケーラビリティ、網羅性の観点から優れているみたいだ。 Lucene(Solr)を扱う際は、…

情報理論の定義の話

この資料を参考につらつらと書いてみます。 Lecture 6; Using Entropy for Evaluating and Comparing Probability Distributions今までに「エントロピーは未知の値を定式化」とか他にも色々言われたけど結局よくわかりませんでした。式を見ても、よくわかな…

LOUDSの基本事項

LOUDSとは木を表現する簡潔データ構造の一つである。 以下のリンクの練習問題を全て解いたらLOUDSについての理解が進んだので、それについて簡単にメモしておく。 情報系修士にもわかるLOUDS※ノード番号とは、木を根から(左の子優先の)BFSで辿った順番であ…

最近点対問題について語ってみる

2013年6月29日追記: 先に証明した補題の方では実装上遅くなってしまうことが、考えていてわかったので修正しました。内容は表題の通り。非常に初歩的な内容なのだが、某所で説明した際に、一部の「なぜ?」という疑問に答えられなかったので、その鬱憤を晴…

自分が感動した人生、NLP、機械学習に関連したプレゼンテーションとブログ記事

自分の一年と少しという短い研究期間で最も気に入っているプレゼンテーションやブログ記事を何点か挙げる。全部技術的な発表や記事ではなく、自分の心に深い部分に何かを語りかけたモノを挙げていく。 1.パターン認識と機械学習入門 パターン認識と機械学…

Viterbiアルゴリズムによる単語分割を実装してみた

例によってNLPチュートリアル資料に沿って、Viterbi(ビタビ)アルゴリズムを実装してみた。 参考:単語分割に関するチュートリアル一言で言うと「分割しうる全ての部分文字列について、その単語分割らしい確率を計算する」アルゴリズムである。 Pythonで実装…

パーセプトロンを実装してみた

実装力を磨くためと学習器への理解を深めるために、パーセプトロンを実装してみた。3時間ぐらいかかった。今のレベルはSVMの赤本に行く前ぐらいのレベル。コードは以下にある。以下で参考にしたチュートリアルの擬似コードをそのまま実装した。 https://gith…

日本語入力を支える技術がすごい分かり易い

p196, 5.5節あたりの話である。 何で条件付き確率を定義する時に指数関数を使っているのか? PRMLの4章を読んでいた際に謎として残っていたのが、「何故、確率を定義する時に指数関数(softmax function)を使っているのか?」である。うろ覚えの人工知能論の…

マイクロブログ、ソーシャルメディア上の崩れた表記の現在

Twitterのマイニング技術については東工大の奥村先生が2012年1月に発表された「マイクロブログマイニングの現在」という原稿が非常にわかりやすかった。 マイクロブログマイニングの現在自分が今関心がある分野の1つとして「崩れた表記」がある。 崩れた表記…

全文検索について

NLP関連の分野を勉強してきて、検索について人に説明できなかったので、ネットサーフィンした結果を書く。以下転置インデックス - Wikipedia参考にして書いた。 索引(転置インデックス)について grepは索引を作らずに、毎回文字列検索アルゴリズム(ボイヤ…