EncoderDecoder で日英翻訳をしてみた (その4)

前回は Attention 付きの EncoderDecoder モデルを紹介した。 今回は、モデルではなく、予測時のアルゴリズムを変えて精度向上を目指してみる。 前回までの翻訳アルゴリズム モデルがすでに得られているとする。 前回までは、このモデルを使って、翻訳元の文…

EncoderDecoder で日英翻訳をしてみた (その3)

前回からの続き。 Chainer を用いて、Attention つきの EncoderDecoder を実装する。 モデルの実装 まずはモデルのコンストラクタ。 前回と同じく、LSTM の実装には NStepLSTM を使った。 class EncoderDecoder(Chain): def __init__(self, input_dimension:…

EncoderDecoder で日英翻訳をしてみた (その2)

前回 は基本となる EncoderDecoder を紹介した。 この記事では、Attentionと呼ばれるテクニックを紹介する。 Attention EncoderDecoder では、Encoder から Decoder に渡されるのは、ひとつの固定長ベクトルだけだった。 入力系列がどんなに長かったとしても…

EncoderDecoder で日英翻訳をしてみた (その1)

『Chainer による実践深層学習』の8章を読みながら色々試してみた。 EncoderDecoder EncoderDecoder は、機械翻訳などの、系列が入力され系列が出力されるような問題を扱うモデル。 seq2seq とも呼ばれるらしい。 以下のような好ましい性質を備えている: …

Gmail の優先トレイの論文を読んだ

最近、会社のグループウェアの通知がやたらと多い。 人によっては全ての通知を見ているらしいんだけど、自分の場合は自分宛て通知はみるけど、それ以外の通知は一部しか読んでない。 どうせ一部しか読まないのであれば、できるだけ価値のある通知を読みたい…

git の pager を設定する

git grep や git log などのコマンドを実行したとき、デフォルトでは less がページャーとして使われる。 git log の場合はデフォルトの設定で特に困っていないが、git grep で出力が数行しかない場合にページャーが表示されるのはちょっと鬱陶しい。 git --…

Noise-contrastive estimation の雑なメモ

word2vec のモデルの説明で、以下の尤度関数の最大化を行いたいが、分母にある正規化項の計算が重すぎてこのままでは計算できないという話があった。 word2vec では、この尤度関数を直接最大化するのではなく、正例とノイズとを区別する2クラス分類問題の新…

Word2Vec メモ その2

昨日の記事の続き。 Word2Vec を Chainer で実装していく。 完全なコードは以下の URL にある。 workspace/learning-chainer/word2vec at master · nojima/workspace · GitHub model 誤差関数をネットワークとして表現すると下図のようになる。 普通のニュー…

Word2Vec のメモ その1

Chainer 本 を読みながら Word2Vec を Chainer で実装してみたので、その過程でわかったことをメモしておく。 注意: 素人なので完全に間違っているかもしれない。 Word2Vec Word2Vec の目的は、各単語の 分散表現 を求めること。 単語の分散表現とは、単語の…

ICFPC 2017 に参加した

ICFPC 2017 にチーム「ゲームセンターYAGI」として参加しました。メンバーは以下の4人です。 cos nojima qwerty seikichi リポジトリは https://github.com/seikichi/icfpc2017 です。 今年の問題 無向グラフが与えられます。 このグラフの頂点は都市か鉱山…

Ubuntu 16.04 で pystan を動かす

MCMC サンプラー Stan を Python から呼び出すためのライブラリ pystan を使ってみようとしたら ABI 問題のせいでちょっと嵌ったのでここにメモしておく。 Anaconda3-4.3.0-Linux-x86_64 をインストールした。 そして pystan を pip でインストールした。 pi…

明日使えない Linux の capabilities の話

(この記事は KMC アドベントカレンダー 2016 の3日目の記事です) はじめに みなさん以下のようなことで困ったことはないでしょうか? ポート80を listen したいけど特権ポートなので、一般ユーザの権限で動くデーモンでは bind できない。 1024未満のポート…

Protocol Buffers が本当に遅いのか実際に確かめてみた

C++

Protocol Buffers で検索すると Protocol Buffersは遅い という MessagePack 作者による2008年の記事が未だに上位に来る。 一方で、Protocol Buffersは遅いのか という反論記事も見つかる。 一体遅いのか速いのかどっちなんだ!!ということで、ベンチマーク…

protocol buffer 3 をビルドしてインストール

C++

最近 version 3 が出た protobuf を試しに動かしてみたメモ。 導入手順 Releases から C++ のアーカイブをダウンロードしてきて展開する。(protobuf-cpp-3.0.0.tar.gz というやつ) 展開後のディレクトリに cd して、以下の手順でビルドする。 ./configure ma…

ICFPC 2016 に参加しました (チーム: モダン焼き フジ)

ICFP Programming Contest にcosさん、qwertyさん、seikichiさんとチーム名「モダン焼き フジ」で参加しました。 チーム名は大学生のころによく行ったモダン焼き屋さんの名前から取りました。 最終結果はまだ公開されていないけど、Leaderboard が凍結された…

Kafka の勉強 (2日目)

昨日の記事に引き続き、Kafka の設計についてドキュメント を読んでいく。 4.3 Efficiency 4.2 節ではディスクの効率について議論した。 ディスクの効率以外で、この種のシステムでよくある非効率性は、次の2つだ。 小さな多数の I/O オペレーション 過剰な…

Kafka の勉強 (1日目)

Kafka のドキュメント を読みながらわかったことをメモしていく。 設計に興味があるので 4. Design から読む。 4.1 Motivation 以下のような性質を持つデータハンドリングプラットフォームが欲しい。 高いスループット 低いレイテンシ partitioned, distribu…

unique_ptr で今風な C++ コードを書こう!!

はじめに お久しぶりです。KMC OB の id:nojima です。 この記事は KMC Advent Calendar 2014 の10日目の記事です。 昨日は id:murata さんの「受験生応援!Javascriptでひねくれ数列」 でした。 今日は C++ の unique_ptr の話です。 (最初は rvalue につ…

ICFPC 2014 参戦記

ICFP Programming Contest 2014 に @cos65535 さん, @qwerty__ さん, @seikichi さんとチームを組んで参加した。 レポジトリ: https://bitbucket.org/kmc-ob-icfpc-2014/icfpc2014 25日(金) 21:00 コンテスト開始。問題を読み始める。 パックマンみたいなゲ…

VirtualBoxにArch Linuxをインストールしたときのメモ

VirtualBoxにInstall media 2012.08.04 を使用してArch Linuxをインストールしたときのメモ.VMのディスクサイズは40GB,メモリは4GB.メモリサイズが1GB以上あるときはswap作らないほうがパフォーマンスがでるらしいのでswapなし.いつの間にかインストーラ…

ノートPCのVirtualBox上にDebian環境を作る

やりたいこと ホストOSはWindows,ゲストOSはDebian,仮想化にはVirtualBoxを使用 インターネットにはNATで接続 DebianにはGUI環境をインストールせず,常にPuTTYを通じて使用する DebianのファイルをSambaを使ってWindowsと共有する やったこと VMのネット…

アプリケーションのメモ

OSの再インストールに備えてリストアップ. 1Password 7-Zip Adobe CS 5.5 Design Standard Cytoscape Dropbox Eclipse EmEditor Exact Audio Copy foobar2000 Git Google Chrome Google 日本語入力 Java LimeChat Mendeley Desktop Microsoft Office Profes…

Windowsで快適なLaTeX環境を構築する

Windowsで快適にLaTeXで論文を書くためのメモ. LaTeXで論文を書いているときは, テキストエディタで.texを編集する → platexでコンパイル → Adobe Readerでプレビュー → 最初にもどるという流れで論文を書いていくことになるのですが,いちいちコンパイル…

「サマーインターン2011問題 : Preferred Research」について考えてみる

今更ながら,「サマーインターン2011問題 : Preferred Research」について考えたので,ここにメモ. 問題の概要を箇条書きにすると 長さ n の文字列 s が与えられる s に含まれる文字の中で,出現回数が最も大きい文字を出力せよ ただし,出現回数が最大の文…

[論文紹介] GConnect: A Connectivity Index for Massive Disk-Resident Graphs

授業で論文紹介したので,ここにメモ. 『GConnect: A Connectivity Index for Massive Disk-Resident Graphs』は,巨大なグラフに対してインデックスを作って,辺連結度クエリに高速に答える手法について議論した論文です.以下のような問題を考えます. 巨…

[論文紹介] Fast shortest path distance estimation in large networks

とりあえず最近読んだ論文の紹介でも. Webやソーシャルネットワークなど,巨大なグラフに対して,データマイニングや情報検索を行う際に,頂点間の最短距離を計算するという処理は,しばしば必要されますが,この規模のグラフに対して,BFSやDijkstra法を直…