Python ではじめる機械学習 13. 系列データの学習

>100 Views

November 22, 25

スライド概要

profile-image

機械学習・音声認識・プログラミングに関する書籍を執筆しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

13. 系列データの学習 g3 g1 出⼒に追加して, 次単語の予測へ g2 GPT p1 p2 ⼊⼒ p3 g1 g2 これまでの出⼒ 13.1 系列を入力とする問題の分析 13.2 系列ラベリング 13.3 系列識別 13.4 系列変換 13.5 時系列信号の予測 荒木雅弘 : 『Pythonではじめる機械学 習』 (森北出版,2025年) スライドとコード

2.

13.1 系列を入力とする問題の分析 系列を入力とする問題の分類 入力の系列長と出力の系列長が等しい 入力の各要素に対して出力ラベルを付与する系列ラベリング問題 例)形態素解析,固有表現抽出 入力の系列長に関わらず出力の系列長が1 不定長の系列全体を1つのクラスに対応させる系列識別問題 例)動画像の分類,文書分類 入力の系列長と出力の系列長の間に,明確な対応関係がない 入力系列を出力系列に変換する系列変換問題 例)連続音声認識,機械翻訳,時系列信号の予測

3.

13.2 系列ラベリング (1/6) 系列ラベリング問題とは 入力系列の個々の要素に対して出力ラベルを付与する 個々の出力ラベルの出現確率は,前後の出力ラベル系列に依存 1入力1出力の識別器を連続的に適用する方法では性能が低い ⇒ 入力や出力の系列としての特徴を使う 可能な出力ラベル系列の数は膨大 すべての出力ラベル系列をリストアップすることは現実的に不可能 ⇒ 探索によって(準)最適解を求める

4.

13.2 系列ラベリング (2/6) 系列ラベリング問題の事例 形態素解析 ⼊⼒ 系列 で 出⼒ 名詞 助詞 名詞 動詞 接尾辞 接頭辞 名詞 ⼊⼒ さ れる 各 要素 固有表現抽出 B: begin, I: inside, O: outside ⼊⼒ サム 出⼒ B-Per O は 浅葱 町 で プリウス を ⾒た B-Loc I-Loc O B-Prod O O

5.

13.2 系列ラベリング (3/6) CRF (conditional random field) による系列ラベリング 素性関数の導入 入力系列 x と出力系列 y との間に定義される関数 ϕ(x, y) 観測素性は x と y の特定の要素間の関係,遷移素性は y の隣接する要素間の関係を表す 素性は明確に定義できるものであれば,品詞や文字種など,要素でなくてもよい ϕ で定義する関係が成立すれば1,不成立なら0を値とする 遷移素性 I I 観測素性 町 ... ... 浅葱 町 で

6.

13.2 系列ラベリング (4/6) 対数線型モデル(多クラスロジスティック回帰) w の学習は,動的計画法を導入した勾配降下法によるクロスエントロピーの最小化 P (y ∣ x) = 1 exp(wT ϕ(x, y)), ただし Z = ∑ exp(wT ϕ(x, y)) Z y ​ ​ 出力系列の決定法 y ^ = arg max P (y ∣ x) = arg max ​ ​ y y ​ 1 exp(wT ϕ(x, y)) = arg max wT ϕ(x, y) Z y ​ ​ 遷移素性を隣接するものに限定すると,ビタビアルゴリズムによって探索が可能 ^ = arg max (∑ wT ϕ(x, yt , yt−1 )) y ​ ​ y ​ t ​ ​

7.

13.2 系列ラベリング (5/6) ビタビアルゴリズム 1. すべての出力記号について先頭の要素 (y1 ) についてのスコアを計算 ​ α(1, y1 ) = wT ϕ(x, y1 ) ​ ​ 2. t = 2 から始めて,最後の出力要素に至るまで以下を繰り返し α(t, yt ) = max{wT ϕ(x, yt , yt−1 )} ​ ​ yt ​ ​ ​ B(t, yt ) = arg max{wT ϕ(x, yt , yt−1 )} ​ ​ yt−1 ​ 3. 最終要素での最大値に対応するB を先頭まで遡る ​ ​

8.

13.2 系列ラベリング (6/6) BERT による系列ラベリング 自己教師あり学習で事前学習を行った BERT を用いて,入力系列全体の文脈情報を考慮 した各要素の特徴ベクトルを取得 各要素の特徴ベクトルを入力として,出力ラベルを予測する FNN を学習 h0 h1 h2 h3 h4 h5 h0 p1 p2 p3 p4 p5 FNN FNN FNN FNN FNN h1 h2 h3 h4 h5 BERT [CLS] w1 w2 MASK w3 w4 (a) ⾃⼰教師あり学習 BERT w5 [CLS] w1 w2 w3 w4 (b) ファインチューニング w5

9.

13.3 系列識別 (1/5) 生成モデルによるアプローチ 事後確率 P (y ∣ x) が最大となるクラス y ^ を識別結果とする ​ ベイズの定理を用いて事後確率を尤度と事前確率の積に変形する 系列識別問題ではクラスの事前確率 P (y) が得られることが多い クラスごとの x の生成確率を推定するモデル P (x ∣ y) を構築する y^ = arg max P (y ∣ x) = arg max P (x ∣ y)P (y) ​ ​ y ​ y

10.

13.3 系列識別 (2/5) 系列識別問題の事例 PC操作系列による熟練度の判定 k: キーボード,g: マウス,e: エラー 初心者の入力系列例 kekgkekggkgkkegeekeeege キーボード,マウスの操作が行き来し,後半になるほど疲労してエラーが多い 熟練者の入力系列例 kkekgkkkekgkgggegkg キーボード,マウスの操作が比較的集中して効率が良く,エラーが少ない 識別したい入力系列 kgekgkkgekgekeekegek これは初心者/熟練者のどちらか

11.

13.3 系列識別 (3/5) 不定長入力に対する生成確率の計算法 自己遷移を持つ確率オートマトンを用いる I : 初期状態,E : 終了状態 確率計算はビタビアルゴリズムを用いる 初期状態 I 最終状態 E

12.

13.3 系列識別 (4/5) HMMの学習:EMアルゴリズム Eステップ 現在のHMMのパラメータで,隠れ変数のすべての取り得る値について p(x) を計算 Mステップ 隠れ変数が取り得る値全てについてHMMのパラメータを最尤推定し,p(x) を重みとして加算 E ステップ 現在の HMM のパラメータで, 隠れ変数のすべてのとりうる値 について を計算 確率計算 繰り返す M ステップ 隠れ変数のすべてのとりうる 値について,HMM のパラメータ を最尤推定し, を重みとし て⾜し合わせる 隠れ変数 学習データ 状態 からの出⼒と仮定 状態 最尤推定 からの出⼒と仮定

13.

13.3 系列識別 (5/5) ニューラルネットによる系列識別 双方向 RNN による系列識別 前向き・後向きそれぞれの最終状態を結合 対象タスクのデータが多い場合に有効 BERT による系列識別 出力系列の平均や,先頭の [CLS] トークンの特徴ベクトルを入力として,出力クラスを予測す る FNN を学習 P/N FNN h0 h1 h2 h3 h4 h5 h0 BERT [CLS] w1 w2 MASK w3 w4 (a) ⾃⼰教師あり学習 BERT w5 [CLS] w1 w2 w3 w4 (b) ファインチューニング w5

14.

13.4 系列変換 (1/2) 系列変換問題の定式化 入力系列 x = x1 , … , xT ​ 出力系列 y = y1 , … , yL ​ ​ ​ y ^ = arg max P (y ∣ x) ​ ​ y RNN(エンコーダ-デコーダモデル)による系列変換 入力系列 x をエンコードして文脈ベクトル c を取得 c をデコードして出力系列 y を生成(x と y の長さが異なっても対応可能) 学習は入出力事例を与えて,出力系列のクロスエントロピーを最小化する End-to-End アプローチ

15.

13.4 系列変換 (2/2) GPT による系列変換 自己回帰型モデルを用いて,出力系列を1要素ずつ生成し,文末記号の生成で終了 変換内容の指示を入力系列の先頭に付与することで,さまざまな変換タスクに対応可能 例)翻訳,要約,コード生成 LLM を質問応答データでファインチューニングしたものが,Instruction モデル g3 g1 g2 GPT p1 p2 ⼊⼒ p3 g1 g2 これまでの出⼒ 出⼒に追加して, 次単語の予測へ

16.

13.5 時系列信号の予測 (1/4) 時系列信号をモデル化するための要素 自己相関 k 時点離れたデータとの関係性を示し,これを k 次の自己相関と呼ぶ トレンド 全体の増減の傾向を指し,その増減の量はドリフトとよばれる 季節性 周期性とほぼ同義で,春夏秋冬による変化の傾向が典型例 外因 突発的なイベントなど,過去の値以外の変数をモデルに組み込むことを指す ノイズ データを上記の要因で説明しても,なお残る変動部分を指す

17.

13.5 時系列信号の予測 (2/4) 時系列信号を定常過程と仮定した場合の予測モデル 定常過程:平均値と分散が観測時刻によらず一定の時系列信号 y1 , … , yn ​ ​ AR (Auto Regressive) モデル 時刻 t の値 yt を,p 個前までの値の重み付き和と誤差で表現するモデル ​ yt = ϕ1 yt−1 + ϕ2 yt−2 + ⋯ + ϕp yt−p + ϵt ​ ​ ​ ​ ​ ​ ​ MA (Moving Average) モデル 時刻 t の値 yt を,q 個前までの誤差の重み付き和と現在の誤差との差で表現するモデル ​ yt = ϵt − θ1 ϵt−1 − θ2 ϵt−2 − ⋯ − θq ϵt−q ​ ​ ​ ​ ​ ​ ​ ​ ARMAモデル : ARモデルとMAモデルを組み合わせたもの yt = ϕ1 yt−1 + ϕ2 yt−2 + ⋯ + ϕp yt−p + ϵt − θ1 ϵt−1 − θ2 ϵt−2 − ⋯ − θq ϵt−q ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​

18.

13.5 時系列信号の予測 (3/4) 時系列信号を非定常過程と仮定した場合の予測モデル 平均値が時間的に変動する時系列信号 y1 , … , yn ​ ​ 変動をモデル化するために時系列の階差を計算する 1次階差 xt = yt − yt−1 ​ ​ ​ 2次階差 zt = xt − xt−1 ​ ​ ​ ・・・ ARIMA (Auto Regressive Integrated Moving Average) モデル d 次階差をとった時系列信号に対する p 次のAR, q 次のMAモデル 平均値の変動がなくなるまで d を大きくした時系列信号に対してARMAモデルを適用する ハイパーパラメータ d, p, q は自動調整可能

19.

13.5 時系列信号の予測 (4/4) 時系列機械学習用ライブラリ sktime 時系列信号に対する予測・識別・回帰・クラスタリングをサポート sktime の ARIMA モデルを用いた事例 旅客機の乗客数の予測 Airline Passengersデータ:1949年から1960年までの月ごとの飛行機の乗客数 直近36ヶ月のデータをテストデータ,それ以前を学習データとして予測問題を設定

20.

まとめ ラベル系列に対する識別問題 入力の系列長と出力の系列長が等しい 識別モデル CRF を用いた手法はビタビアルゴリズムで効率的に最適解を探索 BERT を用いたアプローチも有効で,CRF と組み合わせることも可能 入力の系列長に関わらず出力の系列長が1 生成モデル HMM で可変長系列の処理が可能 RNN や BERT も有効 入力の系列長と出力の系列長に対応関係がない RNN や GPT が有効 時系列信号の予測 自己回帰計数や誤差のインパクトをパラメータとして回帰