読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】モデルの軽量化、プルーニング・量子化・蒸留と宝くじ仮説、エッジAIでなぜ要るん?【G検定】

12レスカテゴリ:AI・機械学習
1: 名無しさん

モデルの軽量化の手法として、プルーニング・量子化・蒸留が出てくる。そもそもなんで軽くする必要があるん?

2: 名無しさん

前提のおさらい。MobileNetやEfficientNetは、最初から軽い構造を設計する方向の工夫やった。ここで扱うのは、学習したモデルをあとから小さくする方向

3: 名無しさん

>>1
スマホ・カメラ・車みたいな現場の機械の上でAIを動かすのがエッジAI。通信なしで速く答えられるし、データを外に送らなくてすむ。ただ、メモリも計算力も電池も限られてる
そこでモデルを小さくするのがモデル圧縮

4: 名無しさん

>>3
量子化は、重みを表す数のビット数を減らす
1億個の重みを32ビットの小数で持つと400MB。8ビットの整数にすれば100MBで、4分の1。計算も速くなる

5: 名無しさん

>>4
ビット数を減らしたら精度が落ちるやろ

6: 名無しさん

>>5
少しは落ちる。ただ、8ビット程度なら落ち幅は小さいことが多い。量子化したときのずれも含めて学習しなおす方法もある

7: 名無しさん

プルーニングは、重要でない重み(値が0に近いものなど)や、まるごとのチャネルを取り除く。重みの9割を取り除いても、学習しなおせば精度があまり落ちない例が報告されてる

8: 名無しさん

>>7
宝くじ仮説は、フランクルとカービンの2019年の論文
大きいネットワークの中には、最初の重みのまま取り出して単独で学習しても、もとと同じくらいの精度に届く小さいネットワーク(当たりくじ)が含まれている、という仮説。プルーニングで残る部分がそれに当たる

9: 名無しさん

蒸留は、ヒントンらの2015年の論文で広まった方法。大きいモデル(教師)の出力を、小さいモデル(生徒)にまねさせる
正解のラベルだけやなくて、教師の出す確率の分布もまねさせる。分布をなだらかにするために、ソフトマックスに温度 を入れる

10: 名無しさん

>>9
教師の出力の点が (4, 2, 0) なら、 だと約 (0.87, 0.12, 0.02) で、ほぼ1つ目しか見えん
にすると、点を2で割って (2, 1, 0) にしてからソフトマックスで、約 (0.67, 0.24, 0.09)。「2つ目もそこそこ似てる」という情報が生徒に伝わる

11: 名無しさん

>>10
正解のラベルだけで小さいモデルを学習させるのと、そんなに違うもんなん?

12: 名無しさん

>>11
論文では、同じ小さいモデルでも、正解のラベルだけで学習するより、教師の分布をまねさせたほうが成績がよかった。犬の画像が「狼に少し似てる」みたいな、クラスどうしの似かたを教わるのが効くと考えられてる

管理人のひとこと