オンライン学習 (online machine learning)とは、機械学習 において、データを逐次的に利用する形で学習を行う手法である。対照的な学習法に、全体の訓練データセット を一括で学習するバッチ学習がある。オンライン学習は、データセット全体での学習が計算上非現実的な場合によく用いられアウトオブコア学習 (英語版 ) が必要とされる。また、アルゴリズムがデータ中の新しいパターンに動的に適応する必要がある場合や、データが時間の関数として生成される状況(例:国際金融市場の価格予測)においても使用される。オンライン学習アルゴリズムは破滅的忘却 に陥りやすいが、これは継続学習 (英語版 ) の手法によって対処可能である。
はじめに
教師あり学習 の設定では、関数
f
:
X
→
Y
{\displaystyle f:X\to Y}
を学習することが目的である。ここで、
X
{\displaystyle X}
は入力の空間、
Y
{\displaystyle Y}
は出力の空間であり、
X
×
Y
{\displaystyle X\times Y}
上の同時確率分布
p
(
x
,
y
)
{\displaystyle p(x,y)}
から得られる事例に対して高い予測精度を目指す。実際には、学習者は真の分布
p
(
x
,
y
)
{\displaystyle p(x,y)}
を知ることはできず、通常は例
(
x
1
,
y
1
)
,
…
,
(
x
n
,
y
n
)
{\displaystyle (x_{1},y_{1}),\ldots ,(x_{n},y_{n})}
からなる訓練セット へのアクセスのみが与えられる。
この設定においては、損失関数
V
:
Y
×
Y
→
R
{\displaystyle V:Y\times Y\to \mathbb {R} }
により、予測値
f
(
x
)
{\displaystyle f(x)}
と正解
y
{\displaystyle y}
との違いを測定する。目的は、関数空間
H
{\displaystyle {\mathcal {H}}}
(仮説空間)から関数
f
∈
H
{\displaystyle f\in {\mathcal {H}}}
を選び、ある損失の指標を最小化することである。モデルの種類(統計的モデルまたは敵対的モデル)に応じて、損失の定義が異なり、それにより学習アルゴリズムも異なるものとなる。
統計的観点からのオンライン学習
統計的学習モデルでは、訓練データ
(
x
i
,
y
i
)
{\displaystyle (x_{i},y_{i})}
は真の分布
p
(
x
,
y
)
{\displaystyle p(x,y)}
に従って得られたと仮定され、目的は期待損失(リスク)を最小化することである:
I
[
f
]
=
E
[
V
(
f
(
x
)
,
y
)
]
=
∫
V
(
f
(
x
)
,
y
)
d
p
(
x
,
y
)
.
{\displaystyle I[f]=\mathbb {E} [V(f(x),y)]=\int V(f(x),y)\,dp(x,y)\ .}
このような状況では、関数
f
^
{\displaystyle {\hat {f}}}
を経験リスク最小化 あるいはティホノフ正則化 を用いた正則化付き経験リスク最小化によって推定するのが一般的である。損失関数の選択により、正則化付き最小二乗法 やサポートベクターマシン (SVM)などのよく知られたアルゴリズムが得られる。
このカテゴリにおける純粋なオンライン学習モデルでは、新しい入力
(
x
t
+
1
,
y
t
+
1
)
{\displaystyle (x_{t+1},y_{t+1})}
、現在の予測器
f
t
{\displaystyle f_{t}}
、および追加の保存情報(通常は訓練データサイズに依存しない)を用いて学習を行う。たとえば非線形なカーネル法 のような場合、真の意味でのオンライン学習は実現困難であるが、
f
t
+
1
{\displaystyle f_{t+1}}
を
f
t
{\displaystyle f_{t}}
および過去のすべてのデータ
(
x
1
,
y
1
)
,
…
,
(
x
t
,
y
t
)
{\displaystyle (x_{1},y_{1}),\ldots ,(x_{t},y_{t})}
に基づいて更新するハイブリッドなオンライン学習が可能である。この場合、必要な記憶容量は定数ではなくなるが、新しいデータが追加される際の計算時間はバッチ学習に比べて短くなる可能性がある。
このような問題への対処法として、
b
≥
1
{\displaystyle b\geq 1}
個のデータ点を一度に処理するミニバッチ法がある。
b
{\displaystyle b}
が全体の訓練データ数に比べて十分小さい場合、これは擬似的なオンライン学習と見なすことができる。ミニバッチ手法は、訓練データを何度も繰り返し用いることで最適化され、確率的勾配降下法 などのアルゴリズムでアウトオブコア学習が実現される。これらはバックプロパゲーション と組み合わせることで、現在では人工ニューラルネットワーク の訓練における事実上の標準手法となっている。
例:線形最小二乗法
線形最小二乗法は、オンライン学習におけるさまざまな概念を説明するための単純な例である。この考え方は、他の凸損失関数を用いる場合にも一般化可能である。
バッチ学習
教師あり学習の設定において、学習すべき関数
f
{\displaystyle f}
が以下のような線形関数であるとする:
f
(
x
j
)
=
⟨
w
,
x
j
⟩
=
w
⋅
x
j
{\displaystyle f(x_{j})=\langle w,x_{j}\rangle =w\cdot x_{j}}
ここで、
x
j
∈
R
d
{\displaystyle x_{j}\in \mathbb {R} ^{d}}
は入力データ点のベクトル、
w
∈
R
d
{\displaystyle w\in \mathbb {R} ^{d}}
は線形フィルタのベクトルである。目標は、このフィルタベクトル
w
{\displaystyle w}
を求めることである。
このために、以下のような二乗損失関数を使用する:
V
(
f
(
x
j
)
,
y
j
)
=
(
f
(
x
j
)
−
y
j
)
2
=
(
⟨
w
,
x
j
⟩
−
y
j
)
2
{\displaystyle V(f(x_{j}),y_{j})=(f(x_{j})-y_{j})^{2}=(\langle w,x_{j}\rangle -y_{j})^{2}}
これにより、経験損失を最小化する
w
{\displaystyle w}
を求める:
I
n
[
w
]
=
∑
j
=
1
n
V
(
⟨
w
,
x
j
⟩
,
y
j
)
=
∑
j
=
1
n
(
x
j
T
w
−
y
j
)
2
{\displaystyle I_{n}[w]=\sum _{j=1}^{n}V(\langle w,x_{j}\rangle ,y_{j})=\sum _{j=1}^{n}(x_{j}^{\mathsf {T}}w-y_{j})^{2}}
ここで、
y
j
∈
R
{\displaystyle y_{j}\in \mathbb {R} }
である。
X
{\displaystyle X}
を
i
×
d
{\displaystyle i\times d}
のデータ行列、
y
∈
R
i
{\displaystyle y\in \mathbb {R} ^{i}}
を最初の
i
{\displaystyle i}
個のデータ点に対する目的値の列ベクトルとする。
共分散行列
Σ
i
=
X
T
X
{\displaystyle \Sigma _{i}=X^{\mathsf {T}}X}
が可逆であると仮定した場合(そうでない場合はティホノフ正則化によって処理するのが望ましい)、線形最小二乗問題における最適解
f
∗
(
x
)
=
⟨
w
∗
,
x
⟩
{\displaystyle f^{*}(x)=\langle w^{*},x\rangle }
は以下のように与えられる:
w
∗
=
(
X
T
X
)
−
1
X
T
y
=
Σ
i
−
1
∑
j
=
1
i
x
j
y
j
.
{\displaystyle w^{*}=(X^{\mathsf {T}}X)^{-1}X^{\mathsf {T}}y=\Sigma _{i}^{-1}\sum _{j=1}^{i}x_{j}y_{j}.}
このとき、共分散行列
Σ
i
=
∑
j
=
1
i
x
j
x
j
T
{\displaystyle \Sigma _{i}=\sum _{j=1}^{i}x_{j}x_{j}^{\mathsf {T}}}
の計算には
O
(
i
d
2
)
{\displaystyle O(id^{2})}
時間を要し、
d
×
d
{\displaystyle d\times d}
行列の逆行列計算には
O
(
d
3
)
{\displaystyle O(d^{3})}
時間を要する。残りの積の計算には
O
(
d
2
)
{\displaystyle O(d^{2})}
時間が必要であり、全体の計算時間は
O
(
i
d
2
+
d
3
)
{\displaystyle O(id^{2}+d^{3})}
となる。
データセット全体が
n
{\displaystyle n}
個の点を含むと仮定した場合、各データ点
i
=
1
,
…
,
n
{\displaystyle i=1,\ldots ,n}
ごとに再計算を行うと、全体の複雑度は
O
(
n
2
d
2
+
n
d
3
)
{\displaystyle O(n^{2}d^{2}+nd^{3})}
となる。なお、行列
Σ
i
{\displaystyle \Sigma _{i}}
を保存しておくことで、更新は
x
i
+
1
x
i
+
1
T
{\displaystyle x_{i+1}x_{i+1}^{\mathsf {T}}}
を加えるだけで済み、これには
O
(
d
2
)
{\displaystyle O(d^{2})}
時間しかかからない。これにより、全体の計算時間は
O
(
n
d
2
+
n
d
3
)
=
O
(
n
d
3
)
{\displaystyle O(nd^{2}+nd^{3})=O(nd^{3})}
に削減されるが、
Σ
i
{\displaystyle \Sigma _{i}}
を保存するために
O
(
d
2
)
{\displaystyle O(d^{2})}
の追加メモリが必要となる[ 1] 。
オンライン学習:逐次最小二乗法
逐次最小二乗法(RLS)アルゴリズムは、最小二乗問題に対するオンライン的な解法である。初期状態として
w
0
=
0
∈
R
d
{\displaystyle w_{0}=0\in \mathbb {R} ^{d}}
および
Γ
0
=
I
∈
R
d
×
d
{\displaystyle \Gamma _{0}=I\in \mathbb {R} ^{d\times d}}
としたとき、前節で示した線形最小二乗法の解は次の反復により計算できる:
Γ
i
=
Γ
i
−
1
−
Γ
i
−
1
x
i
x
i
T
Γ
i
−
1
1
+
x
i
T
Γ
i
−
1
x
i
{\displaystyle \Gamma _{i}=\Gamma _{i-1}-{\frac {\Gamma _{i-1}x_{i}x_{i}^{\mathsf {T}}\Gamma _{i-1}}{1+x_{i}^{\mathsf {T}}\Gamma _{i-1}x_{i}}}}
w
i
=
w
i
−
1
−
Γ
i
x
i
(
x
i
T
w
i
−
1
−
y
i
)
{\displaystyle w_{i}=w_{i-1}-\Gamma _{i}x_{i}\left(x_{i}^{\mathsf {T}}w_{i-1}-y_{i}\right)}
この反復アルゴリズムは、
i
{\displaystyle i}
に関する数学的帰納法により証明可能である[ 2] 。 さらに、
Γ
i
=
Σ
i
−
1
{\displaystyle \Gamma _{i}=\Sigma _{i}^{-1}}
であることも証明される。
このアルゴリズムを
n
{\displaystyle n}
ステップ適用する場合の計算量は
O
(
n
d
2
)
{\displaystyle O(nd^{2})}
であり、これはバッチ学習による計算よりも高速である。各ステップ
i
{\displaystyle i}
で必要な記憶は
Γ
i
{\displaystyle \Gamma _{i}}
の保存のみであり、これは
O
(
d
2
)
{\displaystyle O(d^{2})}
で一定である。
共分散行列
Σ
i
{\displaystyle \Sigma _{i}}
が可逆でない場合には、正則化項を導入した損失関数
∑
j
=
1
n
(
x
j
T
w
−
y
j
)
2
+
λ
‖
w
‖
2
2
{\displaystyle \sum _{j=1}^{n}\left(x_{j}^{\mathsf {T}}w-y_{j}\right)^{2}+\lambda \|w\|_{2}^{2}}
を考える。この場合も、初期状態
Γ
0
=
(
I
+
λ
I
)
−
1
{\displaystyle \Gamma _{0}=(I+\lambda I)^{-1}}
として、同様の反復計算により
Γ
i
=
(
Σ
i
+
λ
I
)
−
1
{\displaystyle \Gamma _{i}=(\Sigma _{i}+\lambda I)^{-1}}
が得られる。
確率的勾配降下法
以下の更新式:
w
i
=
w
i
−
1
−
Γ
i
x
i
(
x
i
T
w
i
−
1
−
y
i
)
{\displaystyle w_{i}=w_{i-1}-\Gamma _{i}x_{i}\left(x_{i}^{\mathsf {T}}w_{i-1}-y_{i}\right)}
において、
Γ
i
∈
R
d
×
d
{\displaystyle \Gamma _{i}\in \mathbb {R} ^{d\times d}}
をスカラーの
γ
i
∈
R
{\displaystyle \gamma _{i}\in \mathbb {R} }
に置き換えた場合、次のようになる:
w
i
=
w
i
−
1
−
γ
i
x
i
(
x
i
T
w
i
−
1
−
y
i
)
=
w
i
−
1
−
γ
i
∇
V
(
⟨
w
i
−
1
,
x
i
⟩
,
y
i
)
{\displaystyle w_{i}=w_{i-1}-\gamma _{i}x_{i}\left(x_{i}^{\mathsf {T}}w_{i-1}-y_{i}\right)=w_{i-1}-\gamma _{i}\nabla V(\langle w_{i-1},x_{i}\rangle ,y_{i})}
これは確率的勾配降下法(SGD)として知られるアルゴリズムである。この方法により、
n
{\displaystyle n}
ステップに要する計算量は
O
(
n
d
)
{\displaystyle O(nd)}
に削減される。各ステップにおける記憶要件は
O
(
d
)
{\displaystyle O(d)}
であり、定数である。
ただし、ステップサイズ
γ
i
{\displaystyle \gamma _{i}}
の選択は、期待損失最小化問題の解に収束させるために慎重でなければならない。一般に、
γ
i
≈
1
i
{\displaystyle \gamma _{i}\approx {\frac {1}{\sqrt {i}}}}
のような減衰ステップサイズを選ぶことで、平均反復
w
¯
n
=
1
n
∑
i
=
1
n
w
i
{\displaystyle {\overline {w}}_{n}={\frac {1}{n}}\sum _{i=1}^{n}w_{i}}
の収束が証明される。この設定は、最適化理論における確率的最適化の一例である。
インクリメンタル確率的勾配降下法
実際には、データに対して複数回の確率的勾配降下パス(サイクルまたはエポックとも呼ばれる)を行うことがある。このアルゴリズムはインクリメンタル勾配法と呼ばれ、次のような反復式で定義される:
w
i
=
w
i
−
1
−
γ
i
∇
V
(
⟨
w
i
−
1
,
x
t
i
⟩
,
y
t
i
)
{\displaystyle w_{i}=w_{i-1}-\gamma _{i}\nabla V(\langle w_{i-1},x_{t_{i}}\rangle ,y_{t_{i}})}
ここで、
t
i
{\displaystyle t_{i}}
は
i
{\displaystyle i}
番目のステップで使用される訓練点のインデックスを示す。
t
i
{\displaystyle t_{i}}
の列は確率的または決定的に選ばれることがある。これにより、各データ点が複数回使用される可能性があるため、反復回数と訓練点数は切り離される。
インクリメンタル勾配法は、経験リスクを最小化する解を得られることが証明されている[ 3] 。特に、非常に大規模なデータセットにおける経験損失のように、多数の項の和で構成される目的関数を考慮する場合において、この手法は有利である。
カーネル法
カーネルを用いることで、上述のアルゴリズムを非パラメトリックなモデル(もしくは、パラメータが無限次元空間に属するモデル)へと拡張することが可能である。このような手法は、すべてのデータ点を保存する必要があるため厳密にはオンライン学習とは言えないが、全データに対して逐次的に処理を行うバッチ法よりも高速である。
この手法は任意の凸損失関数に拡張可能だが、ここでは二乗損失の場合に議論を限定する。簡単な帰納法により、
X
i
{\displaystyle X_{i}}
をデータ行列、
w
i
{\displaystyle w_{i}}
を
i
{\displaystyle i}
ステップ後の SGD アルゴリズムの出力としたとき、次のように表せる:
w
i
=
X
i
T
c
i
{\displaystyle w_{i}=X_{i}^{\mathsf {T}}c_{i}}
ここで
c
i
=
(
(
c
i
)
1
,
(
c
i
)
2
,
.
.
.
,
(
c
i
)
i
)
∈
R
i
{\displaystyle c_{i}=((c_{i})_{1},(c_{i})_{2},...,(c_{i})_{i})\in \mathbb {R} ^{i}}
の漸化式は以下:
c
0
=
0
{\displaystyle c_{0}=0}
(
c
i
)
j
=
(
c
i
−
1
)
j
,
j
=
1
,
2
,
…
,
i
−
1
{\displaystyle (c_{i})_{j}=(c_{i-1})_{j},\quad j=1,2,\dots ,i-1}
(
c
i
)
i
=
γ
i
(
y
i
−
∑
j
=
1
i
−
1
(
c
i
−
1
)
j
⟨
x
j
,
x
i
⟩
)
{\displaystyle (c_{i})_{i}=\gamma _{i}\left(y_{i}-\sum _{j=1}^{i-1}(c_{i-1})_{j}\langle x_{j},x_{i}\rangle \right)}
⟨
x
j
,
x
i
⟩
{\displaystyle \langle x_{j},x_{i}\rangle }
は
R
d
{\displaystyle \mathbb {R} ^{d}}
上の標準的な内積(カーネル)である。よって、予測関数は次のように表される:
f
i
(
x
)
=
⟨
w
i
−
1
,
x
⟩
=
∑
j
=
1
i
−
1
(
c
i
−
1
)
j
⟨
x
j
,
x
⟩
{\displaystyle f_{i}(x)=\langle w_{i-1},x\rangle =\sum _{j=1}^{i-1}(c_{i-1})_{j}\langle x_{j},x\rangle }
ここで、一般的なカーネル
K
{\displaystyle K}
を導入し、予測関数を次のように定義する:
f
i
(
x
)
=
∑
j
=
1
i
−
1
(
c
i
−
1
)
j
K
(
x
j
,
x
)
{\displaystyle f_{i}(x)=\sum _{j=1}^{i-1}(c_{i-1})_{j}K(x_{j},x)}
このとき、先の証明と同様に以下の漸化式により最小二乗損失を最小化する予測器が得られる:
(
c
i
)
i
=
γ
i
(
y
i
−
∑
j
=
1
i
−
1
(
c
i
−
1
)
j
K
(
x
j
,
x
i
)
)
{\displaystyle (c_{i})_{i}=\gamma _{i}{\Big (}y_{i}-\sum _{j=1}^{i-1}(c_{i-1})_{j}K(x_{j},x_{i}){\Big )}}
上式では
c
i
{\displaystyle c_{i}}
を更新するためにすべての過去データを保持する必要がある。
n
{\displaystyle n}
番目のデータ点に対する漸化式の計算コストは
O
(
n
2
d
k
)
{\displaystyle O(n^{2}dk)}
である。(
k
{\displaystyle k}
は一対の点に対するカーネル関数評価のコスト)
このように、カーネルを導入することで、元の有限次元のパラメータ空間
w
i
∈
R
d
{\displaystyle w_{i}\in \mathbb {R} ^{d}}
から、カーネル
K
{\displaystyle K}
によって表される無限次元の特徴空間へと移行することが可能である。代わりに、サイズ
i
{\displaystyle i}
の訓練データに対応する係数ベクトル
c
i
∈
R
i
{\displaystyle c_{i}\in \mathbb {R} ^{i}}
上での漸化式を用いる。この性質は一般に表現定理 (英語版 ) の帰結である。
オンライン凸最適化
オンライン凸最適化(Online Convex Optimization, OCO)は、効率的なアルゴリズムを可能とする凸最適化 の枠組みに基づいた意思決定の一般的なフレームワークである。以下の繰り返しとして定式化される[ 4] :
時刻
t
=
1
,
2
,
…
,
T
{\displaystyle t=1,2,\dots ,T}
に対して:
学習者は入力
x
t
{\displaystyle x_{t}}
を受け取る。
学習者は固定された凸集合
S
{\displaystyle S}
から
w
t
{\displaystyle w_{t}}
を出力する。
自然(環境)は凸損失関数
v
t
:
S
→
R
{\displaystyle v_{t}:S\rightarrow \mathbb {R} }
を返す。
学習者は損失
v
t
(
w
t
)
{\displaystyle v_{t}(w_{t})}
を被り、モデルを更新する。
目的は、後知恵で見た最良の固定点
u
∈
S
{\displaystyle u\in S}
に対する累積損失との差を最小化することである。例として、オンライン線形回帰では、重みベクトルは
S
=
R
d
{\displaystyle S=\mathbb {R} ^{d}}
から選ばれ、自然は損失関数
v
t
(
w
)
=
(
⟨
w
,
x
t
⟩
−
y
t
)
2
{\displaystyle v_{t}(w)=(\langle w,x_{t}\rangle -y_{t})^{2}}
を返す(ここで
y
t
{\displaystyle y_{t}}
は
v
t
{\displaystyle v_{t}}
を通じて暗に提供される)。
ただし、すべてのオンライン予測問題がこの OCO フレームワークに適合するわけではない。たとえば、オンライン分類では、予測領域や損失関数が凸ではないことが多い。このような場合、ランダム化 や代理損失関数によって凸化することで対応可能である。
以下に OCO における代表的なアルゴリズムをいくつか紹介する:
フォロー・ザ・リーダー(FTL)
最も単純な学習則は、過去のすべてのラウンドでの損失が最小となる仮説を選ぶ方法である。このアルゴリズムは「フォロー・ザ・リーダー」と呼ばれ、時刻
t
{\displaystyle t}
においては以下のように定義される:
w
t
=
a
r
g
m
i
n
w
∈
S
∑
i
=
1
t
−
1
v
i
(
w
)
{\displaystyle w_{t}=\mathop {\operatorname {arg\,min} } _{w\in S}\sum _{i=1}^{t-1}v_{i}(w)}
この方法は貪欲法 (greedy algorithm)の一種とみなすことができる。オンライン二乗最適化(損失関数が
v
t
(
w
)
=
‖
w
−
x
t
‖
2
2
{\displaystyle v_{t}(w)=\|w-x_{t}\|_{2}^{2}}
の場合)では、後悔の上限が
log
(
T
)
{\displaystyle \log(T)}
であることが示されている。しかし、オンライン線形最適化など他のモデル族に対しては、このような良好な後悔の上限は得られない。そのため、正則化を追加することで FTL を拡張する必要がある。
フォロー・ザ・レギュラライズド・リーダー(FTRL)
正則化項を加えて FTL の出力を安定化させたアルゴリズム。正則化関数
R
:
S
→
R
{\displaystyle R:S\to \mathbb {R} }
を導入し、時刻
t
{\displaystyle t}
において以下のように定義される:
w
t
=
a
r
g
m
i
n
w
∈
S
∑
i
=
1
t
−
1
v
i
(
w
)
+
R
(
w
)
{\displaystyle w_{t}=\mathop {\operatorname {arg\,min} } _{w\in S}\sum _{i=1}^{t-1}v_{i}(w)+R(w)}
特に、損失関数が線形、すなわち
v
t
(
w
)
=
⟨
w
,
z
t
⟩
{\displaystyle v_{t}(w)=\langle w,z_{t}\rangle }
であり、
S
=
R
d
{\displaystyle S=\mathbb {R} ^{d}}
のとき、正則化関数
R
(
w
)
=
1
2
η
‖
w
‖
2
2
{\displaystyle R(w)={\frac {1}{2\eta }}\|w\|_{2}^{2}}
を選ぶと、以下の更新則が得られる:
w
t
+
1
=
−
η
∑
i
=
1
t
z
i
=
w
t
−
η
z
t
{\displaystyle w_{t+1}=-\eta \sum _{i=1}^{t}z_{i}=w_{t}-\eta z_{t}}
この式は
w
t
+
1
=
w
t
−
η
∇
v
t
(
w
t
)
{\displaystyle w_{t+1}=w_{t}-\eta \nabla v_{t}(w_{t})}
と書き換えられ、これはオンライン勾配降下法と同一である。
もし
S
{\displaystyle S}
が
R
d
{\displaystyle \mathbb {R} ^{d}}
の凸部分集合であるならば、
S
{\displaystyle S}
への射影 を行う必要があり、更新則は以下のように変わる:
w
t
+
1
=
Π
S
(
−
η
∑
i
=
1
t
z
i
)
=
Π
S
(
η
θ
t
+
1
)
{\displaystyle w_{t+1}=\Pi _{S}(-\eta \sum _{i=1}^{t}z_{i})=\Pi _{S}(\eta \theta _{t+1})}
このアルゴリズムは「レイジー・プロジェクション」とも呼ばれ、
θ
t
+
1
{\displaystyle \theta _{t+1}}
が勾配の累積を保持する形式である。これはネステロフの双対平均法とも呼ばれている。線形損失関数と二乗正則化の組み合わせにおいては、後悔の上限は
O
(
T
)
{\displaystyle O({\sqrt {T}})}
であり、平均後悔は 0 に収束することが保証されている。
オンライン劣勾配降下法(OSD)
前節では、線形損失関数
v
t
(
w
)
=
⟨
w
,
z
t
⟩
{\displaystyle v_{t}(w)=\langle w,z_{t}\rangle }
に対して後悔の上限を証明した。これを任意の凸関数 に拡張するには、関数
v
t
{\displaystyle v_{t}}
の点
w
t
{\displaystyle w_{t}}
における劣勾配
∂
v
t
(
w
t
)
{\displaystyle \partial v_{t}(w_{t})}
を線形近似として用いる。この手法により得られるアルゴリズムが「オンライン劣勾配降下法(Online Subgradient Descent, OSD)」である。
アルゴリズムは以下のように定義される:
初期化:パラメータ
η
{\displaystyle \eta }
を設定し、
w
1
=
0
{\displaystyle w_{1}=0}
とする。
時刻
t
=
1
,
2
,
…
,
T
{\displaystyle t=1,2,\ldots ,T}
に対して:
w
t
{\displaystyle w_{t}}
を用いて予測を行い、自然から損失関数
v
t
{\displaystyle v_{t}}
を受け取る。
z
t
∈
∂
v
t
(
w
t
)
{\displaystyle z_{t}\in \partial v_{t}(w_{t})}
を選択する(
z
t
{\displaystyle z_{t}}
は部分勾配)。
もし
S
=
R
d
{\displaystyle S=\mathbb {R} ^{d}}
であれば、更新則は
w
t
+
1
=
w
t
−
η
z
t
{\displaystyle w_{t+1}=w_{t}-\eta z_{t}}
となる。
もし
S
⊂
R
d
{\displaystyle S\subset \mathbb {R} ^{d}}
であれば、累積勾配に基づいて
S
{\displaystyle S}
への射影 を行い、
θ
t
+
1
=
θ
t
+
z
t
{\displaystyle \theta _{t+1}=\theta _{t}+z_{t}}
により
w
t
+
1
=
Π
S
(
η
θ
t
+
1
)
{\displaystyle w_{t+1}=\Pi _{S}(\eta \theta _{t+1})}
を計算する。
この OSD アルゴリズムを用いることで、サポートベクターマシン (SVM)の分類タスクに対するオンライン版において、後悔が
O
(
T
)
{\displaystyle O({\sqrt {T}})}
に抑えられることが示されている。ここで用いられる損失関数ヒンジ損失 (英語版 ) であり、以下のように定義される:
v
t
(
w
)
=
max
{
0
,
1
−
y
t
(
w
⋅
x
t
)
}
{\displaystyle v_{t}(w)=\max\{0,1-y_{t}(w\cdot x_{t})\}}
その他のアルゴリズム
二乗正則化付きのFTRL(Follow The Regularized Leader)アルゴリズムは、前節で述べたような遅延射影付き勾配アルゴリズムを導出する。任意の凸関数 および正則化関数に対してこの手法を拡張するには、オンライン鏡像降下法 を用いる。
線形損失関数に対して後悔を最小化するような最適な正則化手法は、理論的に導出可能であり、この手法はAdaGrad アルゴリズムと呼ばれる。ユークリッドノルムによる正則化を用いた場合、後悔は
O
(
T
)
{\displaystyle O({\sqrt {T}})}
に抑えられる。さらに、損失関数が強凸または指数的に凹 である場合には、後悔の上限は
O
(
log
T
)
{\displaystyle O(\log T)}
に改善される。
継続学習
継続学習 (英語版 ) とは、継続的に情報の流れを処理しながら学習モデルを改善し続ける学習である[ 5] 。
継続学習能力は、現実世界の変化に常時対応するソフトウェアシステムや自律エージェントにとって不可欠である。一方で、現状の機械学習およびニューラルネットワークモデルによる継続学習には課題が残る。非定常なデータ分布から漸進的に得られる情報を継続的に学習することは、通常、破滅的忘却を引き起こすからである。
オンライン学習の解釈
オンライン学習の枠組みは、選択する学習モデルに応じて異なる解釈を持つ。それぞれの解釈は、関数列
f
1
,
f
2
,
…
,
f
n
{\displaystyle f_{1},f_{2},\ldots ,f_{n}}
の予測性能に対する異なる意味合いを持つ。ここでは代表的な 確率的勾配降下法 (SGD)アルゴリズムを例に挙げて説明する。このアルゴリズムの反復式は以下の通りである:
w
t
=
w
t
−
1
−
γ
t
∇
V
(
⟨
w
t
−
1
,
x
t
⟩
,
y
t
)
{\displaystyle w_{t}=w_{t-1}-\gamma _{t}\nabla V(\langle w_{t-1},x_{t}\rangle ,y_{t})}
解釈のひとつは、上記の式を用いて期待リスク
I
[
w
]
{\displaystyle I[w]}
を最小化する問題に確率的勾配降下法を適用するものである[ 6] 。無限のデータストリームを仮定した場合、例
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
{\displaystyle (x_{1},y_{1}),(x_{2},y_{2}),\ldots }
は
p
(
x
,
y
)
{\displaystyle p(x,y)}
に従って独立同分布(i.i.d.)により得られると考えられる。このとき、関数
V
(
⋅
,
⋅
)
{\displaystyle V(\cdot ,\cdot )}
の勾配列は期待リスクの勾配の確率推定値と見なすことができ、確率的勾配降下法の収束解析を適用して
I
[
w
t
]
−
I
[
w
∗
]
{\displaystyle I[w_{t}]-I[w^{\ast }]}
の偏差を評価することが可能である。ここで
w
∗
{\displaystyle w^{\ast }}
は
I
[
w
]
{\displaystyle I[w]}
の最小値を与える点である[ 7] 。この解釈は有限の訓練データセットにおいても有効であるが、その場合はデータに複数回アクセスすることで勾配の独立性が失われる。ただし、特定の条件下では理論的解析は依然として可能である。
2つ目の解釈は、有限の訓練データセットにおける SGD を 逐次的勾配法(incremental gradient descent)の一例と見なすものである。この場合、評価対象は経験リスクとなる:
I
n
[
w
]
=
1
n
∑
i
=
1
n
V
(
⟨
w
,
x
i
⟩
,
y
i
)
.
{\displaystyle I_{n}[w]={\frac {1}{n}}\sum _{i=1}^{n}V(\langle w,x_{i}\rangle ,y_{i})\ .}
このとき、反復式で使われる勾配は
I
n
[
w
]
{\displaystyle I_{n}[w]}
の勾配の確率推定値となるため、この解釈もまた確率的勾配降下法と関連している。ただし対象となるのは期待リスクではなく経験リスクである。したがって、この解釈ではデータに複数回アクセスすることが許容され、むしろ推定誤差を減らす効果がある。つまり、
I
n
[
w
t
]
−
I
n
[
w
n
∗
]
{\displaystyle I_{n}[w_{t}]-I_{n}[w_{n}^{\ast }]}
の偏差に対してより厳密な上限評価が可能である。ここで
w
n
∗
{\displaystyle w_{n}^{\ast }}
は
I
n
[
w
]
{\displaystyle I_{n}[w]}
の最小値を与える点である。
関連項目
学習パラダイム
一般的なアルゴリズム
学習モデル
参考文献
^ L. Rosasco, T. Poggio, Machine Learning: a Regularization Approach, MIT-9.520 Lectures Notes, Manuscript, Dec. 2015. Chapter 7 - Online Learning
^ Kushner, Harold J.; Yin, G. George (2003). Stochastic Approximation and Recursive Algorithms with Applications (第二版 ed.). New York: Springer. pp. 8–12. ISBN 978-0-387-21769-7
^ Bertsekas, D. P. (2011). Incremental gradient, subgradient, and proximal methods for convex optimization: a survey. Optimization for Machine Learning, 85.
^ Hazan, Elad (2015). Introduction to Online Convex Optimization . Foundations and Trends in Optimization. http://ocobook.cs.princeton.edu/OCObook.pdf
^ Parisi, German I.; Kemker, Ronald; Part, Jose L.; Kanan, Christopher; Wermter, Stefan (2019). “Continual lifelong learning with neural networks: A review” . Neural Networks 113 : 54–71. arXiv :1802.07569 . doi :10.1016/j.neunet.2019.01.012 . ISSN 0893-6080 . PMID 30780045 . http://dx.doi.org/10.1016/j.neunet.2019.01.012 .
^ Bottou, Léon (1998). “Online Algorithms and Stochastic Approximations” . Online Learning and Neural Networks . Cambridge University Press. ISBN 978-0-521-65263-6 . https://archive.org/details/onlinelearningin0000unse
^ Stochastic Approximation Algorithms and Applications , Harold J. Kushner and G. George Yin, New York: Springer-Verlag, 1997. ISBN 0-387-94916-X ; 第2版は Stochastic Approximation and Recursive Algorithms and Applications , 2003, ISBN 0-387-00894-2
外部リンク