ゆたろ@米国生活に怯えるデータサイエンティスト来年はどうやら家族で米国に行くようです。機械学習においてより高いパフォーマンスを得るためには、より良いアルゴリズムを持っていることではなく、より多くのデータを持っていることが重要なのだそうです。大規模なデータセットを扱うには計算量が増大するという問題がつきまといます。今日のビッグデータ時代、インターネットトラフィックの情報量を考えると1億個に渡るデータセットを扱う機械学習なんてのも珍しくないのかもしれません。これまで説明してきた線形回帰やロジスティック回帰モデル、ニューラルネットワークなどのアルゴリズムを作るには、コスト関数の計算が必須となります。大規模なデータセットの場合、このコスト関数を計算するための最急降下法において計算量がネックになってしまいます。\theta_j}J_{train}(\theta)\)の計算を行い、\(j\)個の\(\theta\)について繰り返し更新していくのでした。(x^{(i)})-y^{(i)})x^{(i)}_j$$このとき、もしm=3億とか膨大な数であった場合、上記式を\(j\)の数だけ×リピートする回数だけ3億回の足し算を行わなければなりません。ステップとしては1.データセットをランダムに並べ替える2.コスト関数の一部を\(cost(\theta,(x^{(i)},y^{(i)}))\)に置き換え、通常の最急降下法同様に微分項を求めましょう。(h_{\theta}(x^{(i)})-y^{(i)})x^{(i)}\end{eqnarray}\\$$3.上記微分項に対して1つのデータを使って計算し、パラメータθの更新を行い、それをデータセット数の数だけm回行います。i=1,2,...,m\)に対して以下の更新を繰り返します。と通常のバッチ最急降下法との違いは、繰り返しθの値を更新していくときの収束の仕方です。1つのトレーニングデータを計算するため、少しずつ少しずつ遠回りしながら収束へ向かっていきます。その収束も求めたい最小の値付近をある一定の小さい範囲でウロチョロし続けますが、実質的にはほとんど問題にならないくらいの値となります。データセットを最後の1000個だけ用いて\(cost(\theta,(x^{(i)},y^{(i)}))\)をプロットするといった方法があります。これにより繰り返し回数が多くなるにつれてグラフが収束しているのかどうかを判断することができます。グラフが発散していってしまった場合は、学習率αを調整しましょう。目安としては、自分で調整するための定数1,2とモデルの繰り返し回数を用いて$$\alpha=\frac{定数1}{繰り返し回数+定数2}$$とします。基本的にはαは定数扱いとなります。※上級者になるとαを変数として繰り返いし回数が増えていくにつれてゆっくりとαを小さくしていくといった使い方をすることもあります。オンライン学習、マップリデュース投稿が見つかりません。Amazonといったインターネットを利用した買い物をするときに検索もしていないのにほしい商品が表示されたりしますよね。この機能はレコメンダーシステムと呼ばれ、機械学習を利用したとても重要な応用例です。Learning)との出会いということで、テキサス駐在中に仕事そっちのけでハマっていたのがCourceraの機械学習のオンライン講義です。機械学習を用いて受信したeメールがスパムメールかそうでないかに分けることを分類(Classification)と呼ぶのでした。1を解く!内容:単一線形回帰モデル前回に引き続き、Courcera機械学習の解説を偉そうにやっていきたいと思います。4”より、非常に難解だったニューラルネットワークを少し応用して遊んでみたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。データ分析やAI分析をやってます。最近は、自分もAIに駆逐されることを前提に一体何ができるかのを考えながら生きてます。ゆたろ@米国生活に怯えるデータサイエンティスト.ホーム検索トップサイドバータイトルとURLをコピーしました。