【CVPR2024】継続学習の新手法：干渉のない低ランク適応（InfLoRA）

# 【CVPR2024】継続学習の新手法：干渉のない低ランク適応（InfLoRA）

## 概要
この記事では、CVPR 2024で発表予定の論文「InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning」について解説します。この研究は、継続学習における重要な課題である新旧タスク間の干渉問題に対しての手法を提案しています。

## はじめに
継続学習は、機械学習モデルが新しいタスクを順次学習しながら、以前に学習したタスクの性能を維持する能力を向上させることを目指しています。しかし、従来の手法では新しいタスクの学習が古いタスクの性能を低下させるクラス間分布の干渉が大きな課題となっていました。

### 図1: 継続学習の課題[2]

![IMG_1369.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2610305/a3ea94eb-7547-4634-e6a2-b3b3b0c6f960.jpeg)





上図は、継続学習における主な課題を示しています。新しいタスクを学習すると、古いタスクの性能が低下する「干渉問題」や、安定性（古いタスクの性能維持）と可塑性（新しいタスクへの適応）のバランスがおｍな課題となっています。

## 提案手法：InfLoRA

研究チームは、これらの課題に対処するために「干渉のない低ランク適応（InfLoRA）」という新しい手法を提案しました。InfLoRAは既存の低ランク適応（LoRA）手法を拡張し、新しいタスクの学習が古いタスクに干渉しないようにサブ空間を設計します。

### 図2: InfLoRAの構造
![IMG_1366.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2610305/7d064784-3110-a820-51ab-0bd86abd3911.jpeg)!

上図はInfLoRAのアーキテクチャを示しています。各タスクtに対して、2つの行列$A_t ∈ R^(d_O × r)$と$B_t ∈ R^(r × d_I)$を導入します。ここで、$d_I$は入力次元、$d_O$は出力次元、$r$はランク（通常、$d_I, d_O$よりも小さい）です。

### InfLoRAの主要な要素

1. **低ランク適応の拡張**
   - 各タスクに対して、次元増加行列A_tと次元削減行列B_tを導入
   - フォワード伝播を以下のように修正：
     $$e = Wh + Σ^t_(j=1) A_j B_j h = W_(t-1) h + A_t B_t h = W_t h$$
     ここで、$$W_t = W_(t-1) + A_t B_t = W + Σ^t_(i=1) A_i B_i$$

2. **干渉のない部分空間の維持**
   - $B_t$を特別に設計し、新しいタスクの学習が古いタスクに干渉しないようにする
   - 新しいタスクの勾配空間（$N_t$）と古いタスクの勾配空間の直交補空間（$M_t^⊥$）の交差部分にB_tの各行が存在するように設計
   - $span{b^t_1, ..., b^t_r} ⊆ N_t ∩ M_t^⊥ $となるように$B_t$を構成

### 図3: 干渉のない部分空間
![IMG_1367.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2610305/662fba37-8995-a124-5b8a-cafab6cc3d65.jpeg)



上図は、干渉のない部分空間の概念を示しています。新しいタスクの勾配空間（$N_t$）と古いタスクの勾配空間の直交補空間（$M_t^⊥$）の交差部分に$B_t$を設計することで、干渉を防いでいます。

### Btの算出法

1. 新しいタスクの入力行列$H_t$を計算
2. 古いタスクの情報を除去：
   - モデルが$M_t$を維持する場合：$Ĥ_t = H_t - M_t M_t^T H_t$
   - モデルが$M_t^⊥$を維持する場合：$Ĥ_t = M_t^⊥ (M_t^⊥)^T H_t$
3. 特異値分解（SVD）を適用：$(Ĥ_t)^T = V_t Σ_t U_t$
4. $B_t = (U_t)_r $と設定（$(U_t)_r$は$U_t$の上位$r$個の特異値に対応する行）


### 学習過程

1. 新しいタスク$t$の到来時：
   - $B_t$を算出
   - 新しい分岐（$A_t, B_t$）を拡張
2. タスク$t$の学習中：
   - $A_t$のみを微調整
   - $W$（事前学習の重み）、古い分岐、$B_t$は凍結
3. タスクt学習後：
   - 新しい分岐を統合：$W_t = W_(t-1) + A_t B_t$

## 評価実験

InfLoRAの有効性を検証するために、複数のデータセットと設定で実験が行われました：

- データセット：ImageNet-R、CIFAR100、DomainNet
- 比較手法：L2P、DualPrompt、CODA-P、LAE、C-LoRAなど
- 評価指標：ACC_T（最終精度）、ACC_T（平均精度）

### 図5: 実験結果
![IMG_1368.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2610305/fc7c09f7-c98e-9c2d-4779-0d41a00203b4.jpeg)



上図は、主要なデータセットにおけるInfLoRAと既存手法の性能比較を示しています。InfLoRAが全体的に優れた性能を示していることがわかります。

### 主な結果

1. ImageNet-R（10タスク）：ACC_10 75.65%、ACC_10 80.82%（最高性能）
2. CIFAR100：ACC_10 86.51%、ACC_10 91.70%
3. DomainNet：ACC_5 74.53%、ACC_5 79.57%

さらに、InfLoRAは学習過程全体を通じて安定した性能を維持し、新しいタスクによる干渉の低減が効果的に機能していることが示されました。

## 結論
InfLoRAは、継続学習におけるクラス間の干渉という問題において、安定性と可塑性のバランスを改善する手法を提案しました。この手法は、新しいタスクの学習による古いタスクへの干渉を大幅に低減しつつ、パラメータ効率を維持しながら高い性能出すことができました。


---

参考文献: 
[1]「InfLoRA: Interference-Free Low-Rank Adaptation for Continual Learning」, 著者 [Yan-Shuo Liang and Wu-Jun Li], 掲載会議 [IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)] 2024.​​​​​​​​​​​​​​​​
[2]破滅的忘却と継続学習の問題設定について, スキルアップAI
https://www.skillupai.com/blog/tech/catastrophic-forgetting/