タグ

ブックマーク / www.yasuhisay.info (15)

  • 能動学習で効率的に教師データを作るツールをGoで書いた - yasuhisa's blog

    みなさん、教師データ作ってますか?! 機械学習のツールも多くなり、データがあれば簡単に機械学習で問題を解ける環境が整ってきました。しかし、データ作成は重要ながらも未だに大変な作業です。最近、私もいくつかのドメインで教師データを作る機会があったので、能動学習を使ってコマンドラインから簡単に教師データ作成(アノテーション)ができるツールを作ってみました。 今回は能動学習で教師データを作る意義と、作ったツールの使い方について簡単に書きます。 問題設定 能動学習を使って教師データを効率的にアノテーション go-active-learningを試してみる ダウンロード/インストール 能動学習でアノテーション おまけ: Go言語を使って得られた効用/感想 問題設定 例があったほうが説明しやすいので、問題設定を先に。 あなたはエンジニアが集まるSlackチャンネルに、最近人気の技術エントリを定期的に投稿

    能動学習で効率的に教師データを作るツールをGoで書いた - yasuhisa's blog
    aidiary
    aidiary 2017/05/19
  • 実タスクで機械学習を導入するまでの壁とその壁の突破方法 - yasuhisa's blog

    社内で機械学習の案件があった際に、機械学習の経験者しか担当できないと後々の引き継ぎで問題が起こりがちです。これを防ぐために、機械学習に興味があり、これまで機械学習を経験したことがないエンジニアにも担当できる体制を整えられることが望ましいです。しかし、機械学習のことに詳しく知らないディレクターやエンジニアにとっては、どのような機械学習の理解段階ならばタスクを任せられるかの判断をするのはなかなか困難です。そこで、このエントリでは機械学習を実タスクでやるまでに乗り越えるべき壁だと私が思っているものについて説明します。 第一の壁: 綺麗なデータで機械学習の問題を解ける 講義で扱われるような綺麗なデータを扱える 行列形式になっていて、欠損値や異常値もない 上記のデータを回帰や分類問題として解くことができる 実際に解く際にはライブラリを使って解いてよい 手法を評価する上で何を行なえばよいか(Preci

    実タスクで機械学習を導入するまでの壁とその壁の突破方法 - yasuhisa's blog
  • Google機械翻訳の仕組み&できるようになったこと/まだ難しいことについて、社内の機械学習勉強会で説明します - yasuhisa's blog

    社内の機械学習勉強会で最近話題になった機械学習関連のエントリを取り上げているのですが、ここ一ヶ月ではGoogle Neural Machine Translation(GNMT)がとても話題になっていました。GNMTで使われているEncoder-Decoderやattentionのような仕組みを直近で使う予定は特にはないですが、機械学習を使うエンジニアとして知っておいて損はないし、技術的に何が変わったことにより何ができるようになって、何はまだできないのかを知ろう、というのが目的です。技術的な項目は興味ない人も多そうなので、最後に持っていきました。 Google Neural Machine Translation(GNMT)の最近の進化について できるようになったこと 定量的な評価 まだまだ難しいこと 技術的な詳細 Encoder-decoder Attention based encod

    Google機械翻訳の仕組み&できるようになったこと/まだ難しいことについて、社内の機械学習勉強会で説明します - yasuhisa's blog
  • はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog

    先週末、はてな社内の勉強会で構造学習、特に実装が簡単な構造化パーセプトロンについて発表しました。発表資料と説明用にサンプルで書いたPerlの品詞タグ付けのコードへのリンクを張っておきます。 今日からできる構造学習(主に構造化パーセプトロンについて) from syou6162 structured_perceptron/structured_perceptron.pl at master · syou6162/structured_perceptron 「えっ、Perlかよ」という人がいるといけないので、Clojureで構造化パーセプトロンを使った係り受け解析のサンプルコードへのリンクも張っておきます(2種類あります)。PerlもClojureもあれば8割くらいの人はカバーできそうなので、安心ですね。 syou6162/simple_shift_reduce_parsing syou616

    はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
  • 海外のRの情報源 - yasuhisa's blog

    Tokyo.Rに参加してきて、色んな人とお話させてもらったけど、結構Rを使いこなしているなぁと思う人が多いというのが第一印象だった(やってる内容とか悩んでいる問題とか)。が、悩んでいる問題を解決する術がすでに存在しているにも関わらず英語なので、その人たちに情報が伝わってないっていうのが結構あるなぁというのを感じた。日語で誰かがBlogとかでキャッチアップするとしても結構タイムラグがあるし、(最近多くのが出ているとは言え)になるのを待っていたら数年単位でしか情報を得ることができない。というわけで結論としては「英語のリソース読め!!!」ってことになるんだけど、自分も最初はどこ読めばいいかとかよく分からなかったなぁと思ったので、自分が読んでる英語で書かれているRの情報源になっているところを列挙していこうと思います。 僕はIRCとかは使ってないので、その付近はよく分からないのと他にもまだまだ

    海外のRの情報源 - yasuhisa's blog
    aidiary
    aidiary 2010/09/17
  • ESSを使おう - yasuhisa's blog

    ESSを使おう R自体は素晴しい言語 みんながしゃべってくれた通り 多少は考慮されている ヒストリが使えるようになっていたりとか 「スクリプトファイルを編集」にすると リージョン選択してC-rで実行されたりとか MacのR GUIだと関数やオブジェクトの補完をやってくれる これはまあまあよい でも R GUIはお世辞でも使いやすいとは言えない R GUIでいいのは小学生まで!! これからはESSを使いましょう ESS? Emacs Speaks Statistics EmacsでRプログラムを編集&実行 Windows Userはmeadowで Carbon Emacs Userはディフォルトで net-installとかでいけるはず meadowの人はload-pathに追加して スクリーンショット 画面分割 左 Rプログラムの編集 右上 ヘルプを引く 右下 プログラムが実行されているコ

    ESSを使おう - yasuhisa's blog
  • ベイズ理論 - yasuhisa's blog

    同時確率、条件付き確率からベイジアンアップデートまで。パラメトリック、ノンパラメトリック(データサイズが増えるにつれて、パラメータ数が対数オーダーで増える)のところは初めてだとたぶんわけわからないところで、ちょっと前で説明してみたけど、若干でしゃばりすぎた気がする。どうするべきかちょっと迷うところではある。難しい。 ベイジアンな考え方は、自分もちゃんと理解するまで3ヶ月はかかったので(パラメータの事前分布ってなんですか!!とか)、今日初めてという人はたぶんわけわからなかったかもなーと(宗教なので、最初は受け入れ難いものなんですよ、きっと)。コインの例のやつは、自分も最初よく分からなかったので、Rで事後分布がupdateされていく様子とかをRで書いたりしていました。 ベイズの事後分布と事後予測分布を出してみた - Seeking for my unique color. FSNLPの例は分か

    ベイズ理論 - yasuhisa's blog
    aidiary
    aidiary 2010/05/25
    統計の本の紹介
  • 半教師あり学習でollを使いたいので、ollをライブラリとして使ってみる - yasuhisa's blog

    バイトにて、岡野原さんが作られているオンライン学習をサポートした機械学習ライブラリ「oll」をめちゃくちゃ使わせてもらっている。 Google Code Archive - Long-term storage for Google Code Project Hosting. 自然言語処理のような大規模かつスパースな例だと、SVMよりめちゃくちゃ早い&同精度ということは昔書いた。 ollが凄い件について - yasuhisa's blog ollにはoll_trainとoll_testという*1プログラムが付属しており、大抵の場合はコンパイルしたあとに、これに投げれば解決する。 半教師あり学習で使いたいバイト@DBCLSでライフサイエンス分野の専門用語辞書を作ろうとしているわけですが、自分で書いているテキストから特徴ベクトルを作り出すプログラムがようやくまともに動き初めてきた*2。で、その作

    半教師あり学習でollを使いたいので、ollをライブラリとして使ってみる - yasuhisa's blog
  • 自然言語処理の応用勉強会キックオフミーティング - yasuhisa's blog

    新しく今年できた勉強会(NLP.app)のキックオフミーティング。NLP.appは外部に公開して大丈夫と言われたのでなるべく書いていく方針で!!NLPのタスク的には 述語項構造解析(predicate-argument structure analysis) 意味役割付与(semantic role labeling) を主に扱うらしく、情報検索や情報抽出の論文紹介などもおkという感じらしい。勉強会が終わった後、M1の同期の人とかは「そもそもSRLとかって何??」という感じ(自分も2週間前にDMLAで分からなかったし)のようで、大分不安がっていたが、分からないなら質問しまくればいいよ!!と言ってみた。みんなどんぐりの背比べみたいなもんだし、きっとみんな分かってないから(自分を含め)。 この勉強会はそういう分野をターゲットにしつつ、特に大規模なWebデータを対象としたものに焦点が置かれている

    自然言語処理の応用勉強会キックオフミーティング - yasuhisa's blog
  • トピックモデル入門編 - yasuhisa's blog

    自然言語処理特論も最後の話題、トピックモデルに先週から入ってます。今日の資料はこの辺の最初の付近。 Topicに基づく統計的言語モデルの最善線 前々回までの内容は最尤推定に基づいていたものがほとんどで、(ベイズ的な流れではない)スムージングの方法の説明などがあっていました。 Good-Turing 線形補完 Kneser-Ney smoothing などなど。あとは最大エントロピー法などですね。 なんでトピックモデルなのか?で、こういう方法があるにも関わらずなんでトピックモデルというのがわざわざ出てくるか。それは、単語の出現確率というのは変動しまくる!という現実があるからのようです。例えば、最尤推定に基づくN-gramでは、文章に関わらず真の出現確率というのがあると想定している。しかし、Unigramを考えているとして、「東証」という単語が出てくる確率は、社説、経済、スポーツ、芸能などでは

    トピックモデル入門編 - yasuhisa's blog
  • Introduction to Dirichlet Process and its Applications - yasuhisa's blog

    学習とモデルの複雑さ*1 混合モデルにおける混合数や多項式回帰での次数をどのようにして決めるか? AICなどの情報量基準 CVによるパラメータの決定 Nonparametric Bayesian ノンパラベイジアンは違う発想をする 柔軟でないモデルは間違った推論をしてしまう 柔軟でないというのは混合数「5」の混合ガウス分布とか、次数「4」の多項式回帰とか もっと柔軟なモデルを作ろう モデルのパラメータ数をサンプル数によって可変にしよう ある意味、パラメータ数をに持っていく ノンパラメトリックなモデルはモデル選択をする必要性がない パラメトリックなモデル 有限個のパラメータ集合について考えている 新たなデータを予測するときには、前のデータとは独立なことを想定している 有限個のパラメータによって、データの特性全てを記述する 手に入るデータの量が限られていれば、モデルの複雑さは限定されてしまう

  • Bayes Estimation Method - yasuhisa's blog

    Definition Prior and Posterior Distributions 確率の基法則 加法定理 乗法定理 を用いて、導出される以下のベイズの定理 を使って と計算できるが、これを事後分布(posterior distribution)という。 事後分布のmodeでを推定することもできる(mleにつながってくる)が、事後分布は単にの関数ではなく、分布関数である。なので、を推定するのに事後分布のmedianやmeanを使うこともできるわけである。meanを使うことでを推定して出てくる推定値のことをposterior Bayes estimatorと言う。 で、ここでは(Introduction to the Theory of StatisticsのP341)もっと一般にの関数の推定値を考えて定義してある。 Let be a random sample from a den

    Bayes Estimation Method - yasuhisa's blog
    aidiary
    aidiary 2010/04/15
    クロス項が消えるところ参考
  • 人工知能基本問題研究会(SIG-FPAI)での岡野原さんの発表のときに取ったメモ - yasuhisa's blog

    hillbig.cocolog-nifty.com ということで僕が取ったメモも出してみようと思う。内容としては大体3つで オンライン学習 L1正則化 索引を用いた効率化, 全ての部分文字列を利用した文書分類 という感じだったんだけど、最後の索引の付近はid:syou6162の勉強不足によりよく分からなかった。が、最初の二つはなんとか付いていけたので、出してみます。主に自分用のメモですが。 オンライン学習自然言語処理のデータは3つの特徴がある。 高次元 疎 冗長 で、あとはデータがばかでかいので、いわゆるバッチ処理だとメモリに乗り切らなかったりとかということがある。それでオンライン学習というのが今よく使われているようだ。オンライン学習の方法には下のような方法がある。簡単なものから難しいものへ。 perceptron 自然言語処理と相性がよい 色んなもののベースになる 線形分離できるときには

    人工知能基本問題研究会(SIG-FPAI)での岡野原さんの発表のときに取ったメモ - yasuhisa's blog
  • 4.2 確率的生成モデル - yasuhisa's blog

    ゼミで発表したので、まとめておきます。自分用メモ。 まず、ベイズの定理を使って、クラスの事後分布を計算する。直接事後分布をモデル化しにいく識別モデルとは違い、内部では(クラスとデータの)同時分布を計算しているのが生成モデル。この計算をしていくと自然な形でロジステックシグモイド関数が出てくる。2クラス以上の場合を考えるとソフトマックス関数を導出することができる。 4.2.1 連続値入力 生成モデルでは、入力がどのように分布しているかをモデリングしていく。連続値入力の場合を考えて、それぞれのクラスの確率密度は多次元ガウス分布であると仮定してみる。ここで一つ重要な仮定をする。それは全てのクラスにおいて同じ分散共分散行列が共有されている、という仮定だ。ここが一般化線形モデルになるかどうかの鍵を握っているところになる。この仮定を置くと、クラスに対する事後確率がで書き表わされる。と書け、これはパラメー

  • Rによる最適化、パラメータ推定入門 - yasuhisa's blog

    パラメータの推定、でもその前に optimize関数について 補足 パラメータの推定 ベルヌーイ分布 定式化(尤度関数) 尤度関数の実装 尤度関数の最適化(パラメータ推定) 正規分布におけるパラメータ推定 まとめ パラメータの推定、でもその前に統計におけるパラメータの推定というのは大体最適化問題に帰着します。「なんとか関数を(最大|最小)にするようなパラーメータほにゃららを求めたい」とまあこんな感じで。というわけで、パラメータ推定は置いておいて、Rで最大化問題、最小化問題をどう解くかというところを最初にやってみようと思います。最適化問題は離散最適と連続のほうの最適に分けられますが、ここでは連続についての最適化問題について考えることにします。 optimize関数について Rにおける最適化をするための関数はoptim関数、optimize関数があります(他にもnlsなどありますが、とりあえず

    Rによる最適化、パラメータ推定入門 - yasuhisa's blog
    aidiary
    aidiary 2009/05/19
    Rを用いた最尤推定の具体例
  • 1