AI資格ドリル
資格を選ぶ↓

用語比較

バッチ学習とオンライン学習の違い|データを一度に使うか、少しずつ使うかで見分ける(G検定)

バッチ学習は、手元にそろえた全データをまとめて使って、モデルを学習する方式です。オンライン学習は、データを少しずつ受け取り、そのたびにモデルを更新していく方式です。

G検定では、学習方式を問う設問で、2つの用語の取り違えが起きやすくなります。データを全部そろえてから学ぶのがバッチ、順に取り込みながら更新するのがオンラインと覚えると、選択肢を整理できます。

このページは、機械学習ライブラリ scikit-learn の公式ガイド「Strategies to scale computationally: bigger data」の説明をもとに、データの使い方・メモリ・新しいデータの取り込み方の3点で比べます。数値の例は、説明用の架空のデータです。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。

結論

バッチ学習

全データを一度に見て学習する方式。データを増やして学び直すときは、そろえ直して学習をやり直すのが基本。

オンライン学習

データを少しずつ与え、そのたびに学習済みのモデルを更新していく方式。scikit-learnの公式ガイドは、ミニバッチから段階的に学ぶこの方式を「online learning」と呼ぶことがあると説明している。

見分け方

「全データを一度に」ならバッチ学習、「少しずつ・順次更新」ならオンライン学習。

違いを表で確認

比較軸バッチ学習オンライン学習
データの使い方バッチ学習:そろえた全データを一度に使うオンライン学習:データを少しずつ受け取り、その都度モデルを更新する
メモリバッチ学習:データ全体を扱える大きさが前提になりやすいオンライン学習:公式ガイドは、少量のデータだけをメモリに置けば足りるので、メモリに載らない大きなデータを学ぶ手段になると説明している
新しいデータが増えたときバッチ学習:データをそろえ直して学習し直すのが基本オンライン学習:新しい分だけを与えて、既存のモデルを更新できる
使えるアルゴリズムバッチ学習:多くのアルゴリズムがそのまま使えるオンライン学習:公式ガイドは、すべてのアルゴリズムが段階的に学べるわけではないと説明している
関数の呼び方(scikit-learn)バッチ学習:fitオンライン学習:partial_fit(少量のデータごとに呼ぶ)

どこで迷っているかを切り分ける

01

「ミニバッチ」の語が出てどちらか迷う人

ミニバッチ勾配降下法は、1回の重み更新に何件のデータを使うかの話で、学習の中の手順です。バッチ学習とオンライン学習は、データをいつ・どう与えるかの話で、層が違います。

02

メモリに載らない大きなデータの扱いを聞かれる人

メモリに載らないデータを少しずつ読み込んで学習する方法は、out-of-core(外部メモリ)学習です。公式ガイドは、その鍵が、ミニバッチから段階的に学べることだと説明しています。

03

データが毎日増えるサービスを想定した設問の人

新しいデータが次々と届くとき、毎回すべてをそろえ直すのは大変です。新しい分だけでモデルを更新できるのが、オンライン学習の利点として問われます。

04

「バッチ」の意味が文脈で変わって混乱する人

「バッチ学習」は学習方式の名前、「バッチサイズ」は1回の更新に使う件数、「バッチ正規化」は層の処理です。同じ語でも指すものが違うので、前後の語で判断します。

具体例で使い分ける

例 1

毎日100件ずつ増えるデータで、1か月後を比べる(架空のデータ)

初めに10,000件あり、毎日100件ずつ増える。30日後のモデルを用意したい。

  • 30日後のデータは10,000+100×30=13,000件です。バッチ学習なら、この13,000件をそろえ直して学習し直します。
  • オンライン学習なら、日ごとに届く100件を与えて更新します。1回に扱うのは100件です。

結論: オンライン学習は、1回に扱う件数が小さいまま、最新のデータを取り込めます。バッチ学習は、そろえ直す手間と引き換えに、全データを一度に見て学べます。

例 2

100万件のデータをミニバッチ1,000件ずつ読み込む(架空のデータ)

メモリに載らない100万件のデータを、1,000件ずつ読み込んで学習する。

  • 1,000,000÷1,000=1,000回、読み込んで更新を行います。
  • メモリに同時に置くのは、そのうちの1,000件だけです。

結論: 公式ガイドの説明どおり、少量ずつ学ぶ方式なら、メモリに載らないデータでも学習の対象にできます。

問題文から答えを選ぶ手順

  1. 1

    データの与え方を読む

    「全データを一度に」「そろえてから」ならバッチ学習です。

  2. 2

    更新のタイミングを読む

    「データが届くたびに」「順次」「少しずつ更新」ならオンライン学習です。

  3. 3

    メモリの記述を読む

    「メモリに載らない大規模データを少量ずつ」は、オンライン学習(out-of-core学習)の特徴です。

  4. 4

    「ミニバッチ」が別の層の話でないか確認する

    1回の更新に使う件数の話なら、バッチ学習かオンライン学習かの区別とは別の論点です。

試験での見分け方

  • 1全データを一度に使うのがバッチ学習。
  • 2少しずつ与えて、その都度モデルを更新するのがオンライン学習。
  • 3メモリに載らない大きなデータは、少量ずつ学ぶ方式で扱う。
  • 4ミニバッチの語は、学習方式の区別とは別の層の話と考える。

誤答しやすい選択肢

ミニバッチ勾配降下法=オンライン学習だと考える

修正: ミニバッチ勾配降下法は、全データがそろった状態で1回の更新に使う件数を決める手順です。オンライン学習は、データが順に届く前提で、モデルを更新し続ける方式です。

オンライン学習ならどのアルゴリズムでも使えると考える

修正: 公式ガイドは、すべてのアルゴリズムが段階的に学べるわけではなく、partial_fitを備えたものが対象になると説明しています。

バッチ学習は古い方式で、使わないと考える

修正: 全データを見て学べる利点があり、データがメモリに載り、更新の頻度が低いなら十分に使えます。どちらが優れているかではなく、データの量と届き方で選びます。

確認問題

Q1データが届くたびに、学習済みのモデルを少しずつ更新する方式は?

答え: オンライン学習

データを少しずつ与えて、その都度更新するのがオンライン学習です。

Q2メモリに載らない大きなデータを、少量ずつ読み込んで学習する方法は?

答え: out-of-core(外部メモリ)学習

scikit-learnの公式ガイドは、メインメモリに収まらないデータから学ぶ技法としてout-of-core学習を説明しています。

Q3500,000件のデータを、2,500件ずつ読み込んで更新する。更新は何回?

答え: 200回

500,000÷2,500=200回です。

到達チェック

  • バッチ学習は全データを一度に、オンライン学習は少しずつ使うと言える
  • メモリに載らないデータは少量ずつ学ぶ方式で扱えると言える
  • ミニバッチ勾配降下法とは別の層の話だと言える

同じ資格で次に知りたいこと

よくある質問

Qオンライン学習の「オンライン」は、インターネットにつながるという意味?

A

いいえ。ここでは、データを順次受け取りながら学ぶという意味で、通信の有無とは関係がありません。

Qscikit-learnでは、オンライン学習をどう書く?

A

公式ガイドによると、partial_fitを持つ推定器が対象です。例として、MultinomialNB、Perceptron、SGDClassifier、MLPClassifierなどが挙げられています。

Q分類で、最初の呼び出しに注意点はある?

A

公式ガイドは、少量のデータでは出会わないクラスがあり得るため、最初のpartial_fitの呼び出しで、classes引数に取り得るすべてのクラスを渡す必要があると説明しています。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)