OpenStreetMapから交通流予測モデルを構築し、異なる道路ネットワーク間転移へ挑戦する
第3回 ノード数の異なる道路ネットワークへの転移学習を試す
はじめに
第1回では、OpenStreetMapとUXsimを利用して交通流データセットを作成しました。
- 第1回 OpenStreetMapから浅間下交差点周辺の交通流データセットを作る
https://qiita.com/ahaya/items/95567b4c44d0635bdbc8
対象としたのは横浜市西区の浅間下交差点周辺であり、122ノード・210リンクから構成される道路ネットワークを作成しました。
さらに交通流シミュレーションを実行し、
(20, 288, 122)
の交通流データセットを構築しました。
第2回では、このデータセットを用いて交通流予測モデルを構築しました。
- 第2回 交通流予測モデルを構築する
https://qiita.com/ahaya/items/c14e5d68538ac0d04391
モデルには Graph Embedding と Transformer を採用し、
過去1時間
↓
未来1時間
の交通流を予測しました。
その結果、
| Metric | Value |
|---|---|
| MAE | 2.986 |
| RMSE | 5.376 |
| MAPE | 36.16 % |
となり、交通流の変動パターンを一定精度で予測できることを確認しました。
本シリーズの最終目標は、ある道路ネットワークで学習したモデルを別の道路ネットワークへ転移できるかを検証することです。
そこで今回は、浅間下交差点周辺で学習したモデルを利用し、ノード数の異なる川崎駅周辺の道路ネットワークへ転移学習を行います。
具体的には、
浅間下(122ノード)
↓
Graph Embedding + Transformer 学習
↓
Transformerを保持
↓
Graph Embeddingのみ再学習
↓
川崎(126ノード)
という構成で、道路ネットワーク間の知識転移を試みます。
転移学習の対象ネットワーク
川崎市立幸高校周辺の道路ネットワーク
図1が対象とした川崎市立幸高校近くの地図に朝ピークの状態を赤丸の大きさで表示をしたものです。

地図データ:© OpenStreetMap contributors
図1 対象エリアと朝ピーク
浅間下交差点周辺の道路ネットワークと同様に前処理をした結果、取得直後のネットワークが
Nodes: 130
Edges: 287
だったのに対して
Nodes: 126
Edges: 275
になりました。
表1浅間下ネットワークとの比較
| 項目 | 浅間下 | 川崎 |
|---|---|---|
| Node | 122 | 126 |
| Link | 210 | 275 |
このように、ノード数が異なるために隣接行列もことなるために浅間下で用いていたGraph Embeddingをそのまま用いることはできません。
なぜGraph Embedding周辺パラメータを再学習するのか
第2回で構築したモデルは、
Graph Embedding
↓
Transformer
↓
予測器
という構成でした。
このうち、Graph Embeddingは道路ネットワーク固有の構造を表現する役割を持ちます。
一方、Transformerは交通流の時間変化や混雑パターンなど、道路ネットワークに依存しない知識を学習していると考えられます。
そのため今回は、
Graph Embedding周辺パラメータ
→ 再学習
Transformer
→ 浅間下モデルをそのまま利用
正規化層
→ 浅間下モデルをそのまま利用
という方針で転移学習を行いました。
転移学習の概要を図2に示します。
図2 転移学習の概要
ノード数の違いをどのように吸収するのか
浅間下ネットワークと川崎ネットワークではノード数が異なります。
浅間下 : 122 nodes
川崎 : 126 nodes
そのため、通常のグラフニューラルネットワークのように固定の隣接行列を前提とする場合、
浅間下
A : (122,122)
↓
川崎
A : (126,126)
となり、そのままモデルを利用することはできません。
なぜGraph Embeddingの周辺パラメータだけ再学習すればよいのか
本研究では、第2回で紹介したAGCRNの考え方を参考に、ノード埋め込みから適応的な隣接関係を生成する方式を採用しています。
具体的には、
Node ID
↓
Node Embedding
↓
Adaptive Adjacency
↓
Graph Embedding
という流れで空間特徴を生成しています。
ここで重要なのは、モデルが固定の隣接行列を保持しているのではなく、ノード埋め込みから隣接関係を動的に生成している点です。
そのため、
122ノード
↓
Embedding Matrix (122,64)
↓
Adaptive Adjacency生成
も、
126ノード
↓
Embedding Matrix (126,64)
↓
Adaptive Adjacency生成
も同じ仕組みで処理できます。
図3に隣接関係生成の概念図を示します。
図3 Adaptive Adjacency生成の概念図
一方、Transformerが扱うのはGraph Embeddingによって生成された特徴ベクトルであり、道路ネットワークそのものではありません。
Transformerの入力は、
(122,64)
でも
(126,64)
でも、
「交通流の時系列特徴列」
として扱われます。
このことから本研究では、
Graph Embedding
↓
道路ネットワーク固有の知識
Transformer
↓
交通流の共通知識
という役割分担を仮定しました。
そこで転移学習では、
Graph Embedding
↓
再学習
Transformer
↓
固定
Linear
↓
再学習
という方針を採用しています。
つまり、道路ネットワーク固有の違いはGraph Embedding側で吸収し、交通流の時間変化に関する知識はTransformerから再利用することを狙っています。
転移学習の実装
第2回で学習した浅間下モデルをベースモデルとして利用します。
転移学習では、
Graph Embedding
↓
学習可能
Transformer
↓
固定
Linear
↓
学習可能
としました。
PyTorchでは以下のようにTransformerおよび正規化層の勾配計算を無効化しています。
for param in model.transformer.parameters():
param.requires_grad = False
for param in model.ln_f.parameters():
param.requires_grad = False
一方、Graph Embedding関連部分は学習を許可しました
for param in model.node_embedding.parameters():
param.requires_grad = True
表2が学習対象パラメータを整理した表になります。
表2 転移学習時の学習対象パラメータ
| モジュール | 役割 | 学習 |
|---|---|---|
| Graph Positional Embedding | ノード位置表現 | ○ |
| Graph Embedding | 道路ネットワーク構造表現 | ○ |
| Transformer Blocks | 交通流時系列知識 | × |
| LayerNorm | 正規化層 | × |
| Linear | 出力変換 | ○ |
転移学習結果
図4が学習過程でのロスカーブです。
そして図5が学習済みのネットワークを用いた予測グラフです。
モデル性能比較
この他、トランスフォーマー部も含めて学習をしなおすフル学習も試してみました。
転移学習モデルの性能を評価するため、以下の3種類のモデルを比較しています。
- 浅間下ネットワークで学習したモデル
- 川崎ネットワークでフル学習したモデル
- Graph Embedding周辺パラメータを再学習した転移学習モデル
評価結果を表3に示します。
表3 モデル性能比較
| 学習方法 | 対象ネットワーク | MAE | RMSE | MAPE |
|---|---|---|---|---|
| 浅間下学習 | 浅間下(122 nodes) | 2.986 | 5.376 | 36.16 % |
| 川崎フル学習 | 川崎(126 nodes) | 2.983 | 5.769 | 42.31 % |
| Graph Embedding再学習 | 川崎(126 nodes) | 3.021 | 5.842 | 41.62 % |
特にMAEの差は
3.021 - 2.983 = 0.038
であり、フル学習モデルと比較しても性能低下は非常に小さいことが分かります。
また、浅間下ネットワークで学習したモデルの性能(MAE=2.986)ともほぼ同等であり、異なる道路ネットワークへ転移した後も予測性能を維持できていることが確認できました。
この結果から、Graph Embedding周辺パラメータを再学習することで道路ネットワーク固有の構造変化を吸収できている可能性が示唆さされます。
一方、Transformerが学習した交通流の時間変化パターンは異なる道路ネットワーク間でも有効であり、再学習を行わなくても十分な予測性能を維持できることが確認できました。
固定/学習パラメータの比較
本研究では、Graph Embedding周辺のパラメータのみを学習し、Transformer本体は固定したまま転移学習を行いました。
その結果、学習対象となったパラメータ数は表4のようになりました。
表4 学習パラメータ数比較
| 学習方法 | 学習パラメータ数 | 割合 |
|---|---|---|
| 川崎フル学習 | 329,736 | 100% |
| 転移学習 | 130,440 | 39.6% |
転移学習ではモデル全体の39.6%のみを更新しており、約60%のパラメータを固定したまま学習を行っています。
それにもかかわらず、MAEは
フル学習 : 2.983
転移学習 : 3.021
差分 : 0.038
となり、フル学習とほぼ同等の性能を達成しました。
この結果は、第2回で仮定した
Graph Embedding
↓
道路ネットワーク固有の知識
Transformer
↓
交通流の共通知識
という役割分担を支持するものと考えられます。
つまり、道路ネットワーク固有の違いはGraph Embedding側で吸収し、Transformerが学習した交通流の時間変化パターンは異なる道路ネットワーク間でも再利用できる可能性が示されました。
特に今回の結果で興味深いのは、122ノード・210リンクの道路ネットワークで学習した知識を、126ノード・275リンクの道路ネットワークへ転移できた点です。
さらに、転移学習で更新したパラメータは全体の39.6%に留まっており、残り約60%のパラメータは固定したままです。
それにもかかわらず、フル学習とのMAE差は0.038であり、Transformerが学習した交通流の時系列知識が異なる道路ネットワーク間でも再利用可能であることが示唆されました。
モデル全体構造
本研究で用いたモデルの全体構造を図6に示します。
図6 転移学習におけるモデル全体構造
考察
今回の転移学習では、浅間下交差点周辺で学習した交通流予測モデルを川崎市立幸高校周辺の道路ネットワークへ適用しました。
川崎ネットワークは、
126 nodes
275 links
で構成されており、
122 nodes
210 links
で構成される浅間下ネットワークとは異なる道路構造を持ちます。
通常のGNNのように固定の隣接行列を利用する場合、ノード数の違いによって隣接行列のサイズも変化するため、そのまま転移することは難しくなります。
本研究では、AGCRNを参考にしたAdaptive Adjacency生成方式を採用しているため、Graph Embedding側で道路ネットワーク固有の構造を表現できます。
そのため、
Graph Embedding
↓
再学習
Transformer
↓
固定
という構成による転移学習を実施しました。
その結果、
| 学習方法 | MAE |
|---|---|
| 川崎フル学習 | 2.983 |
| 転移学習 | 3.021 |
となり、MAE差は
0.038
に留まりました。
また、浅間下ネットワークで学習したモデルの性能(MAE=2.986)ともほぼ同等であり、異なる道路ネットワークへ転移した後も予測性能を維持できていることが確認できました。
さらに、転移学習で更新したパラメータは全体の39.6%であり、約60%のパラメータを固定したまま学習を行っています。
| 学習方法 | 学習パラメータ数 | 割合 |
|---|---|---|
| 川崎フル学習 | 329,736 | 100% |
| 転移学習 | 130,440 | 39.6% |
それにもかかわらずフル学習とほぼ同等の性能を達成できたことから、
Graph Embedding
↓
道路ネットワーク固有知識
Transformer
↓
交通流共通知識
という役割分担が成立している可能性が示されました。
この結果は、Transformerが学習した交通流の時系列知識が異なる道路ネットワーク間でも再利用可能であることを示唆しています。
GraphLoRAとの違い
本研究の転移学習では、Graph Embedding関連パラメータを再学習し、Transformer本体は固定する構成を採用しました。
Graph Embedding
↓
再学習
Transformer
↓
固定
一方、GraphLoRAでは事前学習済みモデル本体を変更せず、追加の低ランクパラメータ(LoRA)によってグラフ固有の適応を行うことを目的としています。
そのため、
GraphLoRA
↓
追加パラメータを学習
本研究
↓
Graph Embeddingを再学習
という違いがあります。
しかし、
道路ネットワーク固有部分
↓
適応
交通流共通知識
↓
再利用
という基本的な考え方は共通しています。
今回の結果では、モデル全体の39.6%のみを更新することでフル学習とほぼ同等の性能を達成できました。
これは、
Graph Embedding
↓
道路ネットワーク固有知識
Transformer
↓
交通流共通知識
という役割分担が有効である可能性を示しています。
今後はGraphLoRAやAdapterの考え方を取り入れることで、さらに少ないパラメータ更新で道路ネットワーク適応を実現できる可能性があると考えます。
まとめ
今回は、浅間下交差点周辺で学習した交通流予測モデルを、ノード数・リンク数の異なる川崎市立幸高校周辺ネットワークへ転移学習しました。
Adaptive Adjacencyを利用したGraph Embeddingによって道路ネットワーク固有の構造を表現し、Transformerには交通流の時間変化に関する知識を保持させる構成を採用しました。
その結果、
| 学習方法 | MAE |
|---|---|
| 浅間下学習 | 2.986 |
| 川崎フル学習 | 2.983 |
| 転移学習 | 3.021 |
となり、Graph Embedding関連パラメータのみを再学習した場合でも、フル学習とほぼ同等の予測性能が得られました。
また、更新したパラメータは全体の39.6%に留まっており、Transformer本体の知識を維持したまま異なる道路ネットワークへ適応できる可能性が確認できました。
次回は、道路ネットワークごとの適応モジュールを導入し、複数の道路ネットワークを単一のTransformerで扱えるか検証してみる予定です。
関連記事
-
OpenStreetMapから交通流予測モデルを構築し、道路ネットワーク間転移へ挑戦する ④浅間下交差点周辺と川崎市立幸高校周辺を対象としたマルチネットワーク交通予測モデルの試作
https://qiita.com/ahaya/items/90ef60e375a25a382123 -
OpenStreetMapから交通流予測モデルを構築し、異なる道路ネットワーク間転移へ挑戦する ⑤ 複数道路ネットワークによる共同学習を試す
https://qiita.com/ahaya/items/f9a4af657a7982ca80fd

