トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

一括学習と逐次学習

一括学習はバッチ学習、逐次学習はオンライン学習と呼ばれることもあります。

一括学習

一括学習は、 機械学習 の一般的な解説の中で、特に「一括」とは付けずに、学習の手順として紹介されることが多いです。

「データを集め、学習してモデルを作る。」という手順のことで、その後に予測や判定と言ったことを始めます。

予測のためのソフトの使い方

逐次学習

逐次学習は、その名の通りで、新しいデータを得るたびに、モデルを更新して、常に最新モデルを使って予測や判定をする方法です。

逐次学習の特徴は、以下になります。

多くのメモリを使わずに計算できる(ビッグデータの処理に向いている)

世の中で、「ビッグデータ」が注目され始めた時に、その処理方法が課題になりました。 一括学習では、一時的にコンピュータのメモリを大量に使う必要があるため、ビッグデータの処理は無理でした。

いくつかの解決策のひとつが逐次学習でした。

逐次学習では、1回前の学習結果、つまりモデルのパラメタを、新しいデータを使って修正します。 この計算の時に、過去のデータのすべてをもう一度参照する必要がなく、過去のデータで作ったモデルのパラメタだけを参照するため、 メモリをあまり使わずに済むアルゴリズムになっています。

データが増えるのに合わせ、随時、モデルを更新できる

一括学習では、学習が1回終われば、基本的にそのモデルを使い続けます。 「データが増えて来たので、モデルを作り直して、精度を上げたい」、という場合は、改めて過去からのデータを準備して、学習の作業をやり直す必要がありました。

前述のように、一括学習では、メモリを多く使うため、学習のやり直しができなかったり、できたとしても非常に時間がかかったりします。 一方、逐次学習では、常に最新状態のモデルを準備することができます。

逐次学習の計算式の例

良く知られている平均値も、逐次学習で計算することができます。 n番目までの平均値を求めるのに、n番目のデータと、n-1番目までの平均値があれば良いことが、この式からわかります。
逐次学習

ベイズ更新

ベイズ統計 に「ベイズ更新」と呼ばれる方法があります。

ベイズ更新も逐次学習の一種として使えます。 ベイズ更新の場合は、一括学習の式を変形して逐次学習にするのではなく、ベイズ統計の式自体がもともと逐次学習に使える形になっています。



参考文献

オンライン機械学習」 海野裕也・岡野原大輔・得居誠也・徳永拓之 著 講談社 2015
オンライン学習だけでなく、人工知能や機械学習の歴史や勉強の仕方から、解説が始まっています。 ただし、扱っている機械学習は、 ニューラルネットワークサポートベクターマシンロジスティック回帰分析 になっていて、2クラス分類問題を扱う話が中心です。 多クラス分類が少しあります。 回帰分析 のようにYが量的データの話はありません。 全体的には、オンライン学習の技術の中心は、確率的勾配降下法による最適化ですが、 この話だけではなく、計算を安定させたり高速にするための関数の話もかなりされています。
機械学習の多くのモデルは、バッチ学習の方法として、もともと作られているので、 オンライン学習にするには、目的変数を考えてから、これを確率的勾配降下法にしてアルゴリズムを求めます。 ニューラルネットワーク は、もともとがオンライン学習の方法として作られていますが、他の方法と同様に目的変数を考えてから、 オンライン学習のアルゴリズムを導出するという流れでも、説明されています。 ディープラーニング(深層学習) の場合に解を求めるための工夫の話もあります。
オンライン学習の強み:計算が速い。実装が簡単。大量のデータの保持が不要。
オンライン学習の弱み:ノイズの影響を受けやすい。
オンライン学習の基礎になるのが、確率的勾配降下法。 勾配降下法は、目的変数の勾配を使って、最適値を見つける方法。 確率的勾配降下法は、データをひとつずつ使って、その都度パラメータを更新する。
ロジスティック回帰では、解を安定させるために、 正則化 項を加える。



順路 次は AIの説明可能性・解釈可能性

Tweet データサイエンス教室