タグ

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

  • 効率的に論文を読む力を得るための方法、あるいはラノベの有益性について。 - EchizenBlog-Zwei

    研究に直接関係ないタイプの労働をしていると、先端の研究を追いかけるのが困難になってきます。 なんといっても論文を読む時間がとれないので有識者の記事やらスライドやら書籍やらに頼ることになるのですが、とはいえ1次ソースであるところの論文を確認しないとどうにもならない場合もありますし、複数の論文を見てはじめてトレンドがなんとなくわかってくるということもあるように思います。 というわけで論文を効率的に読む力を得るぞ!という試みをやっています。参考になるかわかりませんが、この試みについて共有しておきます。 大雑把な方針 論文を読むにあたって、量と質の双方を高める必要があります。そこでこの2つの要素をそれぞれ伸ばすことを考えました。 論文を読む質を高める 社内で一緒に論文を読んでくれるという奇特な方がなんと1名もいらっしゃったので、総勢2人という大人数の論文読み会を定期開催しました。 3ヶ月毎に対象

    効率的に論文を読む力を得るための方法、あるいはラノベの有益性について。 - EchizenBlog-Zwei
  • 文系でも機械学習がわかるようになる教科書 - EchizenBlog-Zwei

    社内の有志で機械学習数学の勉強会をいくつかやっています(私以外の方が主催しているものもある)。とくに理系ではない方も参加されていますが、きちんと頑張ればだんだん機械学習ができるようになるということがわかってきたのでメモしておきます。 なお、機械学習をとりあえず実装するだけだったらもっと簡単に学ぶ方法もいろいろあり、今回はあくまで正攻法で機械学習を勉強する、という観点での書籍の選択となっています。急がば回れという言葉もあるように、焦って成果を求めないのであれば地道に頑張るほうが後々応用が効いて良いということもあります。 高専の数学 おそらく数学ができないという方は高校の数学あたりから理解が怪しいことになっていると思います。「高専の数学」は中学数学までの前提知識で読める教科書で、わかりやすい例題や理解の助けになる練習問題が多数用意されているため、きちんと問題を解いていけば無理なく高専の数学(

    文系でも機械学習がわかるようになる教科書 - EchizenBlog-Zwei
  • 機械学習の有益な書籍情報を共有します - EchizenBlog-Zwei

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

    機械学習の有益な書籍情報を共有します - EchizenBlog-Zwei
  • AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました - EchizenBlog-Zwei

    AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました。 実装がとても簡単で、ハイパーパラメータも論文に推奨値が書いてあるのが良いですね。 持っておかないといけないパラメータの数は(たぶん)AdaGradと同じです。 https://github.com/echizentm/Adam AdaGradやAdamのようなオンライン学習器は実装が簡単、省メモリなど優れた特徴があり大変実用的ですし、そろそろ有益な書物も発売されるようなので、気になった方はこれを機に学んでみると良いですよ。 しかしこうなるとAdamを改良したEveという学習器を作ってみたいですね(作るとは言っていない)。

    AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました - EchizenBlog-Zwei
  • 実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説 - EchizenBlog-Zwei

    機械学習では、データがどのクラスに属するかを識別するという問題が基的です。 この識別問題は線形識別器というモデルを使うことで解くことができます。 この記事では、実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説を行います。 AdaGrad+RDAの詳細な解説は以下の論文を参考にしてください。 http://www.magicbroom.info/Papers/DuchiHaSi10.pdf こちらはAdaGrad+RDAの実装例です。 http://d.hatena.ne.jp/echizen_tm/20140726/1406376207 識別問題は、通常データを2つのクラスに分類します。どうやって分類するかというと、線形識別器が正の値を返したか、負の値を返したかでクラスを分けます。 具体的には、線形識別器は以下の形式をしています。 y = Σ(x_i * w_i) データを表

    実装が簡単で高性能な線形識別器、AdaGrad+RDAの解説 - EchizenBlog-Zwei
  • AdaGrad+RDAを実装しました。 - EchizenBlog-Zwei

    AdaGrad(Adaptive Gradient)というオンライン学習のアルゴリズムを実装しました。 https://github.com/echizentm/AdaGrad 論文: Adaptive Subgradient Methods for Online Learning and Stochastic Optimization(http://www.magicbroom.info/Papers/DuchiHaSi10.pdf) AdaGradはAROWのように重みの更新を適応的に行うことが出来るほか、正則化のアルゴリズムと組み合わせることが出来るという利点があります。 このためFOBOSやRDAなどを用いたL1正則化によって特徴量を疎にすることが出来ます。今回はRDAと組み合わせたAdaGradをperlで実装しました。 RDAを用いた理由は上記論文でFOBOSよりも高性能だった

    AdaGrad+RDAを実装しました。 - EchizenBlog-Zwei
  • 簡潔データ構造の入門の入門 - EchizenBlog-Zwei

    最近、簡潔データ構造(Succinct Data Structure)がじわじわ人気が出てきているように感じるので入門の入門、くらいの記事を書いておく。 この記事では簡潔データ構造において最も基的なデータ構造である完備辞書(Fully Indexable Dictionary)について説明する。 新しい概念が出てきた時に気になるのは「どうやって実現するのか」「それができると何が嬉しいのか」という2点だと思う。 前者についてはこの記事(http://d.hatena.ne.jp/takeda25/20140201/1391250137)がわかりやすいのでここでは述べない。この記事では「完備辞書があると何が嬉しいのか」について説明する。 完備辞書とは 完備辞書はrankおよびselectという操作が定数時間で実行できるビット列のこと。rank(i)はi番目のビットより前にいくつ1があるかを返

    簡潔データ構造の入門の入門 - EchizenBlog-Zwei
  • 5/1は転職記念日なので記事を書く - EchizenBlog-Zwei

    転職して2年が経った。 転職は私の人生における最大の勝利であるので、2周年を記念して記事を書く。 さしあたり、現時点で考えていることを書いておくことで後々の参考にしたい。 転職してよかったか これは「よかった」と断言できる。 2年経ったのでさすがにそろそろ前の環境と比較してもよい頃合い(転職してすぐはバイアスがかかって何でもよく見えるので)なので書いておくが、あらゆる点で今の環境のほうが良い。 私が転職を考えていたころ「辞めて幸せになった」という資料が少なく、周辺の人の「すぐ辞める人は何をやってもダメ」的な論調に随分脅されたものだった。なので「転職して幸せになった」という事は何度でも繰り返し伝えていきたい。 能力の伸びと幸せ 人の能力は伸び続けると思う。成長が頭打ちになることはないという印象がある。 ではだれでも頑張れば幸せになれるのか?というとそうでもないと思う。何故かというと人生は有限

    5/1は転職記念日なので記事を書く - EchizenBlog-Zwei
  • 手元に置いておくと安心できる、情報系の人向けな日本語の本のリスト - EchizenBlog-Zwei

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

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

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

    「木構造と自然数の重複あり集合は等価だよね」というはなし - EchizenBlog-Zwei
  • まったく最小二乗法は最高だぜ!な「イラストで学ぶ機械学習」を読み終えた。 - EchizenBlog-Zwei

    イラストで学ぶ機械学習」という機械学習を読んだので感想を書いておく。 なお書にはMatlabのコードが書いてある場合があるけど、Matlabに詳しくないので読み飛ばした。 対象となる読者 あくまで私の主観だけど、以下のような人が読むと良さそうな感じ。 ・機械学習の基礎は知っている(パーセプトロンくらいは実装できる) ・機械学習の論文に出てくる用語が理解できる ・確率の基礎は知っている(条件付き確率とか、周辺確率とか) ・最適化の基礎は知っている(ラグランジュの未定乗数法がわかる) ・行列の演算がわかる(これはわからなくても適当に読み飛ばせば大丈夫かも) ・機械学習で知っておいたほうが良いことを手早く把握したい ・まったく識別関数は最高だぜ!と思っている ・損失関数について理解を深めたい ・正則化について理解を深めたい ・次元削減について理解を深めたい ・転移学習について理解を深めた

    まったく最小二乗法は最高だぜ!な「イラストで学ぶ機械学習」を読み終えた。 - EchizenBlog-Zwei
  • 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
  • 1