機械学習:技術的負債の高金利クレジットカード

Posted on 2018-05-04(金) in Machine Learning

Google で機械学習システムの開発に携わる D. Scully 氏らによる

Machine Learning: The High-Interest Credit Card of Technical Debt (機械学習:技術的負債の高金利クレジットカード)

という論文。機械学習は、複雑なシステムを素早く開発するにあたって非常に強力なツールとなるが、それと同時に、 大きな技術的負債(メンテナンスコスト)を抱えるリスクがある。そのリスク要因と対処法についてまとめたのが本論文。

発表当時、日本でも少し話題になったので、日本語で検索するといくつか翻訳を目にすることができますが、 ここでは、あらためて抄訳を試みるとともに、読む上で重要となる単語・表現を最後に紹介したいと思います。

概要

機械学習は、複雑なシステムを素早く開発するにあたって非常に強力なツールとなるが、これらのメリットがタダで 享受できると考えるのは危ない。機械学習を使う場合、システムのレベルで非常に大きな技術的負債(メンテナンスコスト) を抱えるリスクがある。

  1. 機械学習と複雑なシステム

    • 機械学習パッケージは、通常のコードとして複雑さの問題をはらんでいるのと同時に、 システムレベルで「隠れた」技術的負債を抱える恐れがある。

    • 本論文では、機械学習のコードと、大きなシステムレベルとの間の相互作用に焦点を当てる。 ここに隠れた技術的負債が溜まりやすい …


Continue reading

Googleの研究者が教える、良い機械学習プロダクトを実装するための43のルール

Posted on 2018-03-25(日) in Machine Learning

Google のリサーチ・サイエンティストである Martin Zinkevich 氏によって書かれた、機械学習を使った良いプロダクトを開発するためのコツを集めた記事。エンジニアが良い機械学習プロダクトを作るには、機械学習の専門知識が無いことに苦心するのではなく、得意なエンジニアリングの技術を活かすことが重要、というのが主な趣旨です。

紹介記事:Rules of Machine Learning: Best Practices for ML Engineering

  • はじめに

    • ほとんどの問題はエンジニアリングに関する問題である
    • 性能向上は、良い機械学習のアルゴリズムではなく、良い素性によってもたらされる
  • 機械学習の前に

    • ルール1. 本当に必要になるまで機械学習を使わない
    • ルール2. まず指標を設計、実装する
    • ルール3. ヒューリスティックが複雑になりすぎる前に、機械学習に移行する
  • フェーズI: 最初のパイプライン

    • ルール4. 最初のモデルはシンプルに。インフラをまず整える
    • ルール5. インフラを機械学習とは独立にテストする
      • 素性は正しく計算できているか。モデルは訓練環境とテスト環境で同じ値を返すか。
    • ルール6. パイプラインをコピーする場合は、欠損データに気をつける
    • ルール7. ヒューリスティックを素性に変換するか、外部的に扱う …

Continue reading