パスワードを忘れた? アカウント作成
477426 journal

tabateeの日記: Scaling

日記 by tabatee
企業によるセミナートークいろいろ - 理系大学院留学日記 で紹介されている論文「Scaling to Very Very Large Corpora for Natural Language Desambiguation」の内容を紹介してみます。

統計処理を利用するようなソフトウェアで、手法を変更したりサンプルの量を変更すると性能が変化するというのは普通に知られていることですが、この両方を行なった時にどんなことが発生するかということが報告されています。

まず、Confiusion Set Disambiguationという比較的単純な問題に対し複数の学習機械を適用し、サンプルの量を数10万語から1000万語まで増やしつつ性能の変化を見ています(Figure 1参照)。論文中に書いてあることも含めて次のようなポイントを指摘したいです。
  • この範囲でも全体的には停滞することなく性能は向上している。
  • グラフには起伏があり、性能が下がっている部分もある。
  • もっと複雑な問題(POS taggingや仮名漢字変換等)だとグラフは更に激しくガタつくと思う。
  • (自分の経験上)性能を稼ぐための小細工を入れるともっとガタつくと思う。
  • 手の込んだアルゴリズムほど右側で強い傾向がある。
  • 左の方だとMemory basedが最強。
  • 違う問題だが、anthyだとせいぜい数万語程度のサンプルしか無い。
  • 実際のソフトに使う場合、開発を進めるうちにサンプルを増やすことができ、時代が進むほどサンプル収集のコストも下がるので開発の時は自分のいる領域の右側の状況にアタリをつけることが必要と思う。
  • サンプル数の領域によって違う現象がおきるので、柔軟にエンジニアリングする。
  • 違う領域の経験を一般化して何かを語る人を信用しない。

サンプルを増やして精度を上げようとするとモデルが巨大になったりもするので、応用によってトレードオフを取る必要があるということも指摘されています。

次に、性能を向上させるための手法(あるいは小細工)として、複数の学習機械でVoting(投票)を行なった時の性能の変化が測定されています。サンプル数が低いうちはVotingを使った方が性能が高いのですが、興味深いことに、サンプル数が大きい領域では単独の学習機械よりも性能が低くなってます(Figure 3)。

次に触れられているのは、人手で注釈を付けた少量のサンプルと大量の生文書があるというアリガチな状況へ対処する方法で。Active LearningとWeakly Supervised Learningが紹介されていて、どちらの手法も有効であることが示されています。
Active Learningは生文書を処理して学習機械の判断に自信がないもの(閾値付近にあるものなど)を選んで人手の注釈を追加するという手法で、Weakly Supervised Learningは自信があるものを注釈つきコーパスの一部とみなす手法です。

実際のソフトウェアの性能を稼ぐには、開発のコストを見ながらコアのアルゴリズム、サンプルの量、各種の細工のそれぞれに取り組んでいくべきだと主張するときに使える良い論文と思います。
ちなみに、これ書いたのはMicrosoft Researchの人です。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...