オンライン機械学習 豊橋技術科学大学 梅村オンライン機械学習...
TRANSCRIPT
-
オンライン機械学習
豊橋技術科学大学 梅村
-
前処理理:対象をモデル化• ⼊入⼒力力された⽣生データをキーとバリューで表現
2
自律移動ロボット自体の設計、開発、評価など が総合的に書かれた文献、または、自律移動ロ ボットにおける部分的なシステム(経路制御、 物体認識など)の設計について書かれた文献
キー/バリュー
自律移動 2 ロボット 1 設計 1 文献 1
情報工学分野
情報工学分野 1
-
モデルのベクトル表現解釈• ⼊入⼒力力された⽣生データのラベルもベクトルで表す 次元のラベル(キー)/次元の値(バリュー)
3
自律移動ロボット自体の設計、開発、評価など が総合的に書かれた文献、または、自律移動ロ ボットにおける部分的なシステム(経路制御、 物体認識など)の設計について書かれた文献
語ベクトル
x1 = (0…0,2,0…0,1,…,0,1,0, …0,1,0...)
3
“自律移動”’に対応する次元 “ロボット”’に対応する次元
他の要素は0とする。
自律移動 2 ロボット 1 設計 1 文献 1
ラベル情報工学分野
情報工学分野 Yes/No
y1 = 1 または y1 = -‐1
-
モデルからの判定 • ⼊入⼒力力された⽣生データのラベルもベクトルで表す 次元のラベル(キー)/次元の値(バリュー)
4
自律移動ロボット自体の設計、開発、評価など が総合的に書かれた文献、または、自律移動ロ ボットにおける部分的なシステム(経路制御、 物体認識など)の設計について書かれた文献
語ベクトル
x1 = (0…0,2,0…0,1,…,0,1,0, …0,1,0...)
4
他の要素は0とする。
自律移動 2 ロボット 1 設計 1 文献 1
ラベル情報工学分野
情報工学分野 ?
y1 ← if (w'Tx < 0 ) then -‐1 else 1 ベクトル w:判定のためのパラメータ
-
妥当な重みベクトルの例例• キー/バリューごとに,ラベルのyes/noに貢献する程度度がある。 • その値がベクトルwのキーの次元の値 • 判定⽅方法を決めたので,ベクトルwの求め⽅方が次の問題になる。
5
自律移動ロボット自体の設計、開発、評価など が総合的に書かれた文献、または、自律移動ロ ボットにおける部分的なシステム(経路制御、 物体認識など)の設計について書かれた文献
語ベクトル
x1 = (0…0,2,0…0,1,…,0,1,0, …0,1,0...) w = (?…?, 5,?…?, 9,…,?,1,?, …? ,-‐1,?...)
5
他の要素は0とする。
自律移動 2 ロボット 1 設計 1 文献 1
ラベル情報工学分野
情報工学分野 ?
y1 ← if (w'Tx < 0 ) then -‐1 else 1
-
パラメータ(重み)の学習
-
準備
• wをいろいろ変えて,f(w)の最小値を与えるw*を探す。数式ではargminという記号を使う。
• xの関数fが,aという変数で変化するときに,aは関数の定義域として考えな事を明示するために";"でxとaを区切る
• ベクトルwとベクトルxの内積はwTxと記述する
w* = argminw
f (w)
f (x;a) = ax2
-
機械学習→重みの学習
• 問題: – モデル化したデータのベクトルによる
2値分類線形識別関数の決定 → wの決定
• 訓練例{(xi, yi)| i=1…N} を利用し、分類器を特徴付けるパラメータwを学習する。 • 分類器 y= f(x) は y= if (w'Tx < 0 ) then -‐1 else 1 yi= f(xi) (i=1…Nの大部分)となるのが目標 注:「全部」となる重みwがあるとは限らない
-
重みの学習
• 訓練例{(xi, yi)| i=1…N}を利用し、分類器を特徴付けるパラメータwをコストを最小化する枠組みで学習
• 分類器 y= f(x) = if (wTx < 0 ) then -‐1 else 1 yi= f(xi) (i=1…N) が最小解となるようなコスト関数
• その一つパーセプトロンのコスト関数
yi≠ f(xi) ということは、-‐yi wTxi > 0 でコスト:-‐yi wTxi yi= f(xi) ということは -‐yi wTxi < 0 でコスト:0
w* = argminw
l(xi, yi;w)i=1
n
∑
l(x, y;w) = max(0,−ywTx)
-
パーセプトロンのコスト関数による重みの学習
• パーセプトロンのコスト関数 yi≠ f(xi) ということは、-‐yi wTxi > 0 でコスト:-‐yi wTxi yi= f(xi) ということは -‐yi wTxi < 0 でコスト:0
• 山登り(山下り)法による更新 • パーセプトロンのコスト関数の重みの更新 yi≠ f(xi) のときw’=w+yi xiとするとコスト減少
Δコスト:-‐yi (w’-‐w)Txi= -‐yi (yi xi)Txi = -‐yi2 xiTxi
-
パーセプトロンアルゴリズム⼊入⼒力力: {(xi, yi)| i = 1…N, yi∈{+1,-‐1} } w = (0,0,….0) // 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測 // yiwTxi の符号が現在の予測の正/誤if (s
-
詳細の説明の前のパーセプトロンのデモ
-
パーセプトロンの動作(1)
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 (a, b)のラベルが1と分かったとき、 ax+by=0 の 直線でわけ ax+by>0なら1, ax+by
-
パーセプトロンの動作(2)
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 ⼤大きさ1のベクトル(a, b)のラベルが1, ⼤大きさ1のベクトル(c, d)のラベルが-‐1, (a-‐c)x+(b-‐d)y=0 の 直線でわけ ax+by>0なら1, ax+by
-
パーセプトロンの動作(3)
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 (a, b)のラベルが1の場合、 (c, d)のラベルが-‐1の場合 (a-‐c)x+(b-‐d)y=0 の 直線でわけ ax+by>0なら1, ax+by
-
パーセプトロンの動作(4)
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 (a, b)のラベルが1の場合 (c, d)のラベルが-‐1の場合 学習が進むと分離離できる ところまでか回転が続く つまり、w=(a,b) –3(c, d) ⾚赤い点が正しく分離離できる ところで、学習が停⽌止する。(コストが0)
(a,b)(c, d)
w
-
実行例
-
パーセプトロンアルゴリズム⼊入⼒力力: {(xi, yi)| i = 1…N,yi∈{+1,-‐1} } w = (0,0,….0)// 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測 // yiwTxi の符号が現在の予測の正/誤if (s
-
下記入力に対するパーセプトロン学習ステップ
入力:{ ((1, 1), 1), ((1, -‐1), -‐1) } 初期値: (0, 0) ywtx w i=1, _, (_, _) i=2, _, (_, _) i=1, _, (_, _) i=2, _, (_, _)
(1,1)
(1, −1)
-
同じ大きさの2つの入力の パーセプトロンのデモ
-
下記入力に対するパーセプトロン学習ステップ最初のywtxと最後のwを示す
入力:{ ((1, 1), 1), ((1, -‐1), -‐1) } 初期値: (0, 0) ywtx w i=1, 0, (1, 1) i=2, 0, (0, 2) i=1, 2, (0, 2) i=2, 2, (0, 2) xは無視して,yで判定すればよいと学習した。
(1,1)
(1, −1)
w
-
演習: 下記入力に対するパーセプトロン学習ステップ最初のywtxと最後のwを示せ
入力:{ ((1, 2), 1), ((1, 0), -‐1) } 初期値: (0, 0) ywtx w
i=1, __, (__, __) i=2, __, (__, __) i=1, __, (__, __) i=2, __, (__, __) i=1, __, (__, __) i=2, __, (__, __)
(1,2)(1, 0)
-
異なる大きさの2つの入力の パーセプトロンのデモ
-
線形識別関数の制限の回避 モデルから特徴ベクトルへの写像
-
線形識別関数の制限
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 識識別できる問題の制限が⼤大きい
-
線形識別関数の制限
2次元平⾯面上の問題: 原点を通る直線で領領域を分ける。 識識別できないときは,重みが求まらない
-
下記入力に対するパーセプトロン学習ステップ6回までの最初のywtxと最後のwを示せ
入力:{ ((2, 2), 1), ((1, 1), -‐1) } 初期値: (0, 0) i=1, __, (__, __) i=2, __, (__, __) i=1, __, (__, __) i=2, __, (__, __) i=1, __, (__, __) i=2, __, (__, __)
(2,2)(1, 1)
-
分離できないの2つの入力の パーセプトロンのデモ
-
下記入力に対するパーセプトロン学習ステップ6回までの最初のywtxと最後のwを示せ
入力:{ ((2, 2), 1), ((1, 1), -‐1) } 初期値: (0, 0) i=1, 0, (2, 2) i=2, -‐4, (1, 1) i=1, 4, (1, 1) i=2, -‐2, (0, 0) i=1, 0, (2, 2) i=2, -‐4, (1, 1) 停止しない
(2,2)(1, 1)
-
3次元空間への変換
2次元平⾯面上の問題を3次元の空間で解く。 2次元平⾯面上の(x, y)を 3次元空間上の(x, y, 1)に対応つける。 パーセプトロン学習結果の w1x+w2y+w3z = 0の平⾯面は、 2次元空間では、 w1x+w2y+w3=0の直線に対応 ⼀一般の直線での分割の学習に対応
-
具体例
-
下記入力に対するパーセプトロン学習ステップ8回までの最初のywtxと最後のwを示せ
入力:{ ((1.0, 1.0, 1.0), 1), ((0.4, 0.4, 1.0), -‐1) } 初期値: (0.0, 0.0, 0.0) i=1, __, (__, __, __) i=2, __, (__, __, __) i=1, __, (__, __, __) i=2, __, (__, __, __) i=1, __, (__, __, __) i=2, __, (__, __, __) i=1, __, (__, __, __) i=2, __, (__, __, __)
-
下記入力に対するパーセプトロン学習ステップ8回までの最初のywtxと最後のwを示せ
入力:{ ((1.0, 1.0, 1.0), 1), ((0.4, 0.4, 1.0), -‐1) } 初期値: (0.0, 0.0, 0.0) i=1, 0.0, (1.0, 1.0, 1.0) i=2, -‐1.8, (0.6, 0.6, 0.0) i=1, 1.2, (0.6, 0.6, 0.0) i=2, -‐0.48, (0.2, 0.2, -‐1.0) i=1, -‐0.6, (1.2, 1.2, 0.0) i=2, -‐0.96, (0.8, 0.8, -‐1.0) i=1, 0.6, (0.8, 0.8, -‐1.0) i=2, 0.36, (0.8, 0.8, -‐1.0)
-
6次元空間への変換
2次元平⾯面上の問題を6次元の空間で解く。 2次元平⾯面上の(x, y)を (x, y, x2, y2, xy, 1)に対応つける。 パーセプトロン学習結果のの超平⾯面は、 w1x+w2y+w3x2+w4y2+w5xy+w6=0の曲線に対応 2次曲線での分割の学習に対応
-
線形識別関数の制限の回避のデモ
-
線形識別関数の制限の回避のデモ
-
最大マージン識別関数
-
パーセプトロンの結果の問題点
分離離すれば、停⽌止する。 識識別境界と学習データが近い可能性が⾼高い 遠いほうが良良いが、実現できない。
-
パーセプトロンのコスト関数
学習サンプルが間違っていれば、識識別⾯面を間違わない⽅方向に移動する。
l(x, y;w) = max(0,−ywTx)
ywtx
L
-
最大マージン識別関数のコスト関数
学習サンプルが⼗十分に⾃自信をもって判定されていなければ、識識別⾯面を⾃自信をもって判定する⽅方向に移動する。 (境界上で正しく判定されても満⾜足しない。)
l(x, y;w) =
ywtx
)1,0max( xwTy−
ywtx
L L
-
単純な 最大マージン識別関数の学習
⼊入⼒力力: {(xi, yi)| i = 1…N, yi∈{+1,-‐1} } w = (0,0,….0) // 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測の正誤指標if (s
-
Passive Aggressive最大マージン識別関数
-
単純なアルゴリズムの問題点
更更新を⼩小さくするとマージンがとれるが、 ⼩小さくすると学習速度度が遅い
-
単純な最大マージン識別関数の学習の問題
⼊入⼒力力: {(xi, yi)| i = 1…N, yi∈{+1,-‐1} } w = (0,0,….0)// 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測の正誤指標if (s
-
Passive Aggressive Algorithm [Crammer, JMLR 06]
• 直感的には 現在の訓練例はコストをぴったり0にする。 or 現在の訓練例の場所を,自信のあるなかでは,いちばん自信の程度が小さい場所にする。
ti = l(xi , yi; w) / xi Txi w := w + tiyixi
-
passive aggressive 最大マージン識別関数学習
⼊入⼒力力: {(xi, yi)| i = 1…N, yi∈{+1,-‐1} } w = (0,0,….0)// 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測の正誤指標if (s
-
Passive Aggressive最大マージン識別関数 のデモ
-
過学習の問題 L1正則化
-
大きな値の重み 〜 過学習の問題
• 訓練例を正しく分類するために、大きな値の重みとなるケースがある。(過学習)
• ひとつのWi 大きな重み
〜 対応する特徴i一つで識別がほぼ決まることになる。特徴がまれだと正当性に疑問がある。(モロッコ出身だと女性?)
w* = argminw
l(xi, yi;w)i=1
n
∑
ボーイッシュなモロッコ出身の女性の訓練例があるとする。 正しく識別するため、モロッコ出身という特徴の重みが増える。
-
過学習を防ぐ最適化による学習
• 訓練例{(xi, yi)| (i=1…N)}を利用し、分類器を特徴付けるパラメータwを学習
w* = argminw
l(xi, yi;w)i=1
n
∑ + R(w)損失関数:どれだけ訓練例に 合致しないものがある程度
正則化項: wの形が 事前知識と 違っている程度
-
正則化項のある凸最適化問題
• F(w)を最小にするようなwを求める よく使われる正則化項 L:ノルム 〜 wの大きさ– L1ノルム : 要素の絶対値の合計– L2ノルム : 要素の自乗の合計– 両方とも凸関数
F(w) = l(xi, yi;w)i=1
n
∑ + R(w)
-
Wの形の事前知識
R(W) = Σ |Wi | これを最小化する山下りの更新方法は、 w'i = sign(wi)max(|wi |– θ, 0) ただし、sign(α)は αの同じ符号の1または-‐1 θは正の小さな定数
wi
w'i
-
L1正則化つき 最大マージン識別関数学習
⼊入⼒力力: {(xi, yi)| i = 1…N, yi∈{+1,-‐1} } w = (0,0,….0) // 初期化
repeat for i in [1,…,N] // 訓練データを取ってくるs := yiwTxi // wTxi の符号が現在の予測の正誤指標if (s
-
L1正則化によるモデルの コンパクト化
L1正則化を学習に使うと 学習時に特徴選択も同時に行うことになる。 重みの小さい特徴は、学習時に重みを0とすること
によって、無視されることになる。
-
L1正則化による学習結果の特徴
• L1正則化の場合、重みwkの多くが0になる– 特徴選択が実現できる– 学習結果の解釈が易易しくなる。– 識識別関数の実⾏行行が⾼高速でメモリも少なくて済む
-
L1正則化のデモ
-
オンライン学習アルゴリズム まとめ
-
オンライン学習
• 訓練例例を1つずつ⾒見見てwを更更新する メモリ上に学習データが全部乗らなくても実⾏行行できる。
• 最近の巨⼤大なデータを対象に機械学習するために必要な性質
-
オンライン学習
• 実装は簡単/更更新⽅方法の解析は難しい
更新のさじ加減が性能を左右する。 学習の結果の重みは尊重する。 新しい学習結果と矛盾したデータを無視しな
い。
-
オンライン学習
実装は簡単だが、 最大マージン識別関数学習アルゴリズム は、Support Vector Machineの近似である。 実際上は Support Vector Machineとして使える。
-
サンプル(デモプログラム)情報
processingで実装 ダウンロードurl: hpp://www.ss.cs.tut.ac.jp/umemura/lecture-‐ML-‐2012/ MLOnLine.tazをtar –xvzfで展開後、processingで実行 サンプルデータの作成は、java MLControllerでSAMPLEで始まる
ファイルを作成。
-
やってみませんか?
デモプログラムをダウンロードし、実行する。 ファイル、"SAMPLE.dat"を書き換えて、自分の
作った学習サンプルを用意し、それの学習結果を観察する。
なお、「p」のキーで画像ファイルができる。