Posts

論文メモ Recognizing Developers' Emotions while Programming

23人の被検者に30分間のプログラミングをさせ、その間5分ごとに進捗と感情を自己申告してもらい、その結果から感情と進捗の関係を調査した。 作業後にインタービューを実施し、感情が変化する要因と良くない感情への対処法をヒアリングした。 感情を測定するため最低限必要な非侵襲的器具を調べるために、被検者には、脳波、皮膚電位、脈波、心拍数を測定する器具を装着して開発してもらった。

論文メモ Pytorch: An Imperative Style, High-Performane Deep Learning Library

Pytorchの使い勝手と実行速度について解説した論文である。 ここでの使い勝手は、命令型かつPythonらしいコードでPytorchのAPIを呼びだせることを意味する。 Pytorchは、4つの設計原則として、PythonらしいAPI、機械学習の複雑な処理をPytorch内に隠蔽する、使い勝手のために過度にパフォーマンスを犠牲にしない、完璧な解決策よりも実装の単純さを重視する、をかかげる。

論文メモ Here We Go Again: Why Is It Difficult for Developers to Learn Another Programming Language?

既知のプログラミング言語の知識は新しい言語を覚える役に立つ。 一方で、新しい言語の学習の妨げにもなることをStack Overflowの質問とプログラマへのインタビューで明らかにした。

論文メモ Automatic differentiation in Pytorch

Pytorchの自動微分を解説したプレプリントのショートペーパである。 Pytorchの自動微分特徴として、in-placeアルゴリズム、微分の導出に不要な計算を省く仕組みのあるテープ、C++による実装をあげている。 0.4.0での仕様変更によってTensorsVariablesがマージされたことやvolatileが非推奨になったことをふまえていない。 読むときは、以上の点をはじめとする現在のAPIとの差異に注意する必要がある。

論文メモ ROUGE: A Package for Automatic Evaluation of Summaries

概要

生成された要約を機械的に評価するための指標, Recall-Oriented Understudy for Gisting Evaluation(ROUGE)を提案した論文である。 人が作成した複数の要約文書との再現率で要約文書を評価する。 ROUGEは、ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S, ROUGE-SUの5つの指標の総称である。 同じ要約へのROUGEスコアと人の評価の相関によって、ROUGEの指標としての有用性を評価した。 その結果、ROUGE-2, ROUGE-L, ROUGE-W, ROUGE-Sは、文書の要約の評価に向き、ROUGE-1, ROUGE-L, ROUGE-W, ROUGE-SU4, ROUGE-SU9はヘッドラインほどの短い要約文の評価に向いていることがわかった。

論文メモ Do Developers Discover New Tools On The Toilet?

Testing on the Toiletの効果をCausalImpactで示した。

論文メモ A Neural Attention Model for Sentence Summarization

注意機構による深層学習で文を要約する手法である。 もとの文にない単語を含む要約文を生成できるが、生成前に文の長さを決めておかなければならない。

論文メモ BLEU: a Method for Automatic Evaluation of Machine Translation

概要

自動翻訳を定量的に評価するための指標BLEUを提案した論文である。 指標は、専門家の翻訳に翻訳に高い評価をあたえるよう設計されている。 BLEUは、ひとつの候補訳に対する1つ以上の参照訳をあたえ、0から1の値をとるスコアを出力する。 スコアは高いほどよい。 BLEUは、参照訳にある単語を過剰に含むことや文の短さにペナルティをあたえ、適合率で候補訳を評価する。

論文メモ Sequence to Sequence Learning with Nueral Networks

概要

Sequence to Sequenceの論文。 入出力が系列データを学習する場合、入力と出力の長さが等しかったり対応関係にある箇所が系列の方向に単調でなければならなかったりする。 これらの制約に対処するために、Sequence to Sequenceでは、入力全体を固定長のベクトルに一度変換し、そのベクトルをもとに出力を予測する。 2種類のLSTMをもち、入力を与えるLSTMの最終層の隠れ状態で、固定長ベクトルをつくる。 固定長のベクトルは、単調の制約を緩めるはたらきをする。 このベクトルは、もう一方のLSTMにあたえられ、その主力が最終的な出力になる。 実験では、入力系列を反転してあたえると、入力と出力の対応関係にある箇所の距離が近づき、予測性能が上がることが確認された。

論文メモ Google's Neural Machine Transltation System: Bridging the Gap between Human and Machine Translation

概要

ニューラルネットワークをもちいた機械翻訳システムの論文である。 解決したい問題として、学習と推論時の処理時間の長さ、低頻出の単語を翻訳する難しさ、入力文の一部が翻訳されないことをあげ、注意機構でつながれたEncoderとDecoderからなるアーキテクチャを提案した。 学習時間を短縮するために、Decoderの最初の層とEncodeerの出力層から注意をつくる注意機構を採用し、Decoderを並列に学習できるようにしている。 また、量子化によって推論時間を短縮をしている。 低頻出の単語でも翻訳できるようにwordpieceでエンコードされた入力をうけとる。 入力文の一部が翻訳されない問題に対しては、短い出力文に罰則を課すビームサーチで出力文の候補を探索する仕組みが導入されている。