Coda

論文メモ What Makes A Greate Software Engineer?

September 18, 2020

優れたエンジニアの特徴を知るために、マイクロソフト社のアーキテクト59名と半構造化された面接をし、グラウンデッドセオリーで内容から特徴を抽出した。

Read more

論文メモ Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

September 18, 2020

表題の略称MAMLで知られるメタ学習であり、少ない教師データで新しいタスクに対応することを目的としている。 Model-Agnosticとあるように、MAMLの汎用性は高く、勾配法をもちいるモデルであえば適用可能である。 論文には、教師あり学習だけでなく強化学習の事例もある。 さまざまなタスクに適した初期パラメタを見つけ、データ件数の削減をねらう。 目的のパラメタを求めるためには、複数のタスクを用意し、これらの損失関数の合計値を最小にするように勾配法でパラメタの更新を繰り返す。 最後に更新されたパラメタをモデルの初期値に設定する。

Read more

論文メモ Truth in Advertising: The Hidden Cost of Mobile Ads for Software Developers

September 11, 2020

モバイルアプリを無料で提供し、アプリ内の広告で収益をえるビジネスが普及している。 このビジネスモデルでは、一見、ユーザには、画面に広告を表示されること以外のコストがないように思える。 表題の論文は、それ以外のコストを確かめるために、CPU, 電力, ネットワーク, 広告関連のためのリリース, アプリケーションへのユーザからの評価へ広告が及ぼす影響を調査した。

Read more

論文メモ Skip-Thought Vectors

September 11, 2020

様々なタスクで性能を発揮できる文の分散表現を生成するモデルSkip-Thougtを提案した。 表題のSkip-Tought Vectorsは、Skip-Toughtで生成されるベクトルである。 Skip-Thoughtは、文書を入力とする教師なし学習であり、与えられた文から隣接する左右の文を推定できるようにパラメタを学習する。 学習後は、語彙を増やすために、Word2Vecの単語のベクトルからSkip-Toughtのベクトルを推定するための正則化なしの回帰モデルを学習させる。 学習データにない単語のベクトルを回帰モデルの推定結果で代用し、未知の単語を含む文の分散表現もつくれるようにする。 Skip-Toughtを8タスクに適用し、汎用性を確かめた。

Read more

論文メモ Beyond Accuracy: Behavioral Testing of NLP Models with CHECKLIST

September 4, 2020

ホールドアウト法にかわる自然言語処理モデルの汎化性能を評価するための手法CHECKLISTを提案した。 テストデータと訓練データが同じ方法で集められたときなど、ホールドアウト法はモデルを過大評価することがある。 CHECKLISTは、ソフトウェア開発のブラックボックステストにならい、半自動生成したテストデータで汎化性能を評価する。 CHECKLISTの汎用性と性能を評価するために、感情分析、Quoraの重複質問検出、読解の3タスクについて、商用やSoTAに近いモデルを学習させ、CHECKLISTでモデルがあつかえない入力パターンをどれだけ生成できるか実験した。 感情分析の評価には、Microsoft, Google, AmazonのAPIとBERT, RoBERTaを使い、重複検出にはBERTとRoBERTa, 読解にはBERTを使用した。 CHECKLISTはOSSとして公開されている。

Read more

Why Good Developers Write Bad Code: An Observational Case Study of the Impacts of Organizational Factors on Software Quality

September 4, 2020

創立40年以上の電気通信系企業における内製システムのリプレースプロジェクトを観察し、コードに悪影響をおよぼす10の組織的な要因をまとめた。 表題には、”Good Developers”とあるが、開発者のスキルの高さは議論されていない。 列挙された要因は、包括的ではなく、また、あくまでコードの品質を悪化させるものであり、プロジェクトの失敗に直結するわけではない。

Read more

論文メモ A Comparative Study of Programming Lanugages in Rosetta Code

August 28, 2020

Rosetta Codeに投稿された実装で言語の性能を比較した。 比較した言語は、Ruby, F#, Java, C#, Go, C, Python, Haskellの8つである。

Read more

論文メモ SQuAD: 100,000+ Questions for Machine Comprehension of Text

August 28, 2020

読解タスクのテストデータセットSQuADをつくり、ロジスティック回帰で難易度を評価した。 難易度は、ベースラインのF1スコアが20%, 強いモデルで51.0%, 人間で86.8%程度である。

Read more

論文メモ Extensible Effects An Alternative to Monad Transformers

August 23, 2020

モナド変換子にかわるモナドの合成方法Extensible Effectsの実装を示す。

Read more

論文メモ When and Why Your Code Starts to Smell Bad

August 21, 2020

200件のAndroid, Apache, EclipseのOSSプロジェクトのコミット履歴を調査し、不吉な匂いが生じる原因と理由を調査した。 常識では、改修の繰返しによって匂いのない既存のコードに匂いが生じると考えられているが、これに反して、不吉な匂いのするコードのほとんどが作成時点で不吉な匂いを出していたことを明らかにした。

Read more