machine learning, week 10

大規模機械学習について学ぶ

  • ビッグデータ
    • 勝つのは最高のアルゴリズムを持っている者ではない。最も多くのデータを持っている者だ。(It’s not who has the best algorithm that wins. It’s who has the most data.)
    • データが多いと,オーバーフィット(過学習)を防ぐことができる
  • 確率的最急降下法
    • 最急降下法は目的関数(cost function)の計算で
      J(\theta) = \dfrac{1}{m}\sum_{i=1}^{m} cost(\theta, (x^{(i)}, y^{(i)}))
      データ数mの数だけ総和を取ることを行うので,ビッグデータm \geq 3,000,000,000などになると時間がかかる.
      これをBatch Gradient Descentと言い,時間はかかるが確実に最小化する
    • 確率的最急降下法(Stochastic Gradient Descent)は
      cost(\theta, (x^{(i)}, y^{(i)})) を最小にする\theta を求めたら,cost(\theta, (x^{(i+1)}, y^{(i+1)})) を最小にする\theta を求め,次はcost(\theta, (x^{(i+2)}, y^{(i+2)})) …と言う具合にアプローチする.
      総和を取らないだけ早いが,その分リピート毎にcost function は小さくなっていくとは限らない.軌跡は下図右側のようにジグザグになる.
      Screen Shot 2017-05-02 at 20.12.28.png
    • 一度にパラメータ1つしか更新しないと収束が遅すぎる場合には,一度にb個のパラメータを更新する.これをMini-batch gradient descent と言う.
    • Stochastic gradient descent が収束せず,リピートすればするほど目的関数が大きくなっていくような場合には学習率\alphaを小さくする
  • オンライン学習
    絶えずやってくるインプット(x(t), y(t)) に対してモデルが自動的に学習するモデルを構築することを考える.
    Stochastic Gradient Descentではcost(\theta, (x^{(i)}, y^{(i)})) を最小にする\theta を求めたがこれをcost(\theta, (x(t), y(t))) を最小にする\theta を求めるようにすれば,このモデルは常に新しいインプットに対して自動的に学習するモデルと言える.これをオンライン学習と言う.
  • Map-Reduce
    とても巨大なデータ数mに対して総和を取ると言うことを考えた場合,総和を取るステップは並列化できる.
    まずデータを分割して各計算単位であるノードに振り分ける(Map).各ノードが計算を終えたら,元のマスターノードに結果を返し,マスターノードは各ノードの結果を集約して出力する(Reduce).
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中