バッチ学習
 オンライン学習
 ミニバッチ学習
 データセット
    訓練データ
    検証データ
    テストデータ
 データの分離

 NN機能・要件
 NN構成・方式
 構成・方式など
 タスク
 導入
 Sample

 用語

 バッチ学習
 ・全てのデータを一括投入してモデルを学習する手法
モデル学習に費やす時間が長くなる。
学習と予測を分けて行う。
 ・メリット
一度に全てのデータを利用するため学習の進行が安定
異常データの影響を小さく抑えられる。
 ・デメリット
メモリなどの負荷が大きい。
株価予測などリアルタイムでモデルを更新する場合、運用が難しい。
 ・学習サイクル
モデルなどで得た新規データで再学習し、新しいモデルに置き換える。
学習頻度が低い現場活用ではバッチ学習が有効

 オンライン学習
 ・データをランダムに 1 件ずつ投入してモデルを更新
1 データごとにパラメータを更新
 ・メリット
メモリ使用量などモデル学習にかかる計算負荷が小さい。
リアルタイムでモデル更新を頻繁に行うケースに適用できる。
 ・デメリット
学習が安定しにくい、1 データ単位の計算速度がバッチ学習に劣る。
異常なデータにモデルの予測性能が引っ張られる可能性がある。
 ・学習サイクル
学習データからランダムに 1 件抽出して 誤差 を算出し、モデル性能を高めて行く。
予め指定した学習ラウンドや停止条件を満たすとオンライン学習は終了
モデル学習に適用する新規データの割合(オンライン学習の学習率)が影響
学習率が低いと新しいデータへの適用度は下がり古いデータの学習情報は保持

 ミニバッチ学習
 ・バッチ学習とオンライン学習の中間の手法
データをミニバッチという小さなグループに分割してモデルを学習
訓練データから無作為に一部のデータを取り出す。
作成したミニバッチの損失関数を小さくすることを目的とする。
 ・特徴
学習の進行はオンライン学習より安定、バッチ学習より不安定
1 データ当たりの計算速度はオンライン学習より速くバッチ学習より遅い。
メモリ使用量はオンライン学習より大きく、バッチ学習より少ない。
 ・学習サイクル
ハイパーパラメータを設定
バッチサイズ
イテレーション数
エポック数
最適化ループを使用してモデルをトレーニングおよび最適化
①データセットを バッチサイズ に従い一定件数のサブセット(N個)に分ける。
②各サブセットを学習に回す。(N回学習を繰り返す。イテレートする。)
サブセット毎に 誤差平均 を算出
サブセット内の誤差平均を用いてモデルパラメータを更新
①②の手順を 損失関数(コスト関数)の値がほぼ収束するまで繰り返す。
 ・ミニバッチ作成 (10個例 sample
選ばれるインデックスは、都度替わる。

 データセット
 ・機械学習などは与えられたデータセットからモデル(ネットワーク)を作成する。
 ・モデルが未知のデータに対しどの程度の精度を持つかを評価するためにも使用する。
データセットを 訓練データテストデータ に分割する。
訓練データを 訓練データ検証データ に分割する。

 訓練データ(学習データ)  (train dataset)
 ・探索(分類器のパラメータ更新など)するときに使ったデータ
ニューラルネットワークなどではパラメータ(重み、バイアス)の学習に使用する。
 ・訓練時にはテストデータを見てはいけない。
同じデータに対する評価を行いえば精度は必然的に高くなる。
 ・機械学習の 賢さ は与えるデータによって決まる。
偏ったデータを与えれば機械学習は偏った規則を学習

 検証データ  (validation dataset)
 ・モデルの重みの他に ハーパーパラメータ を持つモデルは訓練データだけでは最適化できない。
 ・ハイパーパラメータの調整用
 ・ハーパーパラメータの良し悪し(性能)を評価する。
パフォーマンス測定
率(%)
 ・コンペ(competition)の場合は、手元でモデルの評価を確認するデータ
ラベルが存在するデータと存在しないデータが別々に与えられる。
 ・学習は行わない。

 テストデータ  (test dataset)
 ・学習済モデルの汎用性( 汎化能力 )を評価するために使う。
パフォーマンスを確かめるためだけに使用
有無
 ・コンペ(competition)では、提出(サブミット)するデータ
 ・学習には用いない。

 データの分離
 ・訓練データの20%程度をテスト/検証データとして先に分離するなど
分離前にシャッフルするばあいもある。
 ・検証用データを使いテストを行うと、未使用のテスト用データを使うよりも良い結果が出る。
実際よりもエラー率が低くなる。