機械学習
雑学
AIや機械学習に携わっていると、教授からのアドバイスや論文の査読コメントで 「アブレーション研究(ablation study)を適切に行うべきである」 等と言われたことはないだろうか。
この「アブレーション」という単語の用法は医学の世界から来ている。 医学における「切除手術(ablative surgery)」といえば病変のある箇所を切り取る手術法を指す。 あるいは言語学の心得がある人は「奪格(ablative case)」というラテン語などの格変化の一つを 思い浮かべるかもしれない。これも原因や分離を表すために使われる表現で、「切り離す」という意味に近いものを感じることができるだろう。 では、いったいどうすれば計算機科学の世界でアブレーションをすることができるのだろうか? パソコンの電顕ケーブルを切ってみたりすればよいのだろうか(感電のリスクがあるのでやめてください)
AIモデルにおけるアブレーションとは
AIモデルにおけるアブレーションとは、 モデルの一部を取り除いてその部分がモデルの性能にどのような影響を与えるかを調べる実験のことを指す。 この用語は記録のある限りでは 1974年のアラン・ニューウェルによる講演 の中でAI分野に初めて取り込まれたようだ。 もっとも賢いシステム設計者がこれより前からこのような方法を実践していた可能性は否定できない。例えば新規なモジュールaを導入したAIシステムAがあるとすると、システムAからaを取り除いた システムA'がAより性能が低いなどのことが確かめられれば、 モジュールaはシステムAの性能向上に寄与していると考えることができる。
新規モジュールが複数あるときはちょっと大変であるが、追加されたモジュールを一つずつ除去するのが もっとも真っ当ななアブレーション実験の方法である。
例えばシステムBか新規モジュールb1, b2, b3を導入したとすると、アブレーション実験の結果は 例えばこのようなものになるはずだ。
構成 | モジュールb1 | モジュールb2 | モジュールb3 | 性能 |
---|---|---|---|---|
b1抜き | なし | あり | あり | 0.4 |
b2抜き | あり | なし | あり | 0.6 |
b3抜き | あり | あり | なし | 0.5 |
ぜんぶ込み(提案手法) | あり | あり | あり | 0.8 |
これで「最終的な完成AIモデルの性能達成には、b1, b2, b3のすべてのモジュールが貢献している」 ことが確認できる。
あるいはやや省略したやり方ではあるが、b1, b2, b3を一度に取り除いたシステムを作成し、 そこにb1, b2, b3を一つずつ追加していくという方法もある。
構成 | モジュールb1 | モジュールb2 | モジュールb3 | 性能 |
---|---|---|---|---|
ぜんぶ抜き | なし | なし | なし | 0.2 |
b1足し | あり | なし | なし | 0.3 |
b2足し | あり | あり | なし | 0.5 |
b3足し(提案手法) | あり | あり | あり | 0.8 |
この方法は足す順番によっては結果が変わる可能性があるので、本当のことを言えばややリスクがある。 例えばb1はベースラインを改善するのには役に立つが、b2と効果が重複するので最終的なモデルからは除去してもよい、 というようなことがあってもこの方法では気づけない。
しかし実際には何らかの元となる手法(ベースライン)にモジュールを継ぎ足していって、 性能が要件を満たすようになってから販売するということはよくあることであるから、 その過程の記録としてはこの結果も機能しているとも言えなくもない。 実際にこの方法で実験を行った結果が研究論文として出版されたのもの見たことがある。
切除実験への要請は深層学習が普及してから大きいものとなった。 深層ニューラルネットワークはモジュール性が高い一方で複雑かつブラックボックス性が高く、 各モジュールが機能しているのかを外部からは知りにくいため、 切除的に高価を確認する必要が大きいのだ。 これは
もしアブレーションが適切に行われないと何が問題になるのだろうか?
AIシステムAがサブモジュールa, b, cから構成されているが、実際に効果的なのは サブモジュールaのみでb, cは取り除いてもシステムAの性能に影響がないとする。 サブモジュールaを単体で用いる代わりより「b, cを取り込んだことで新規性がある」 と喧伝されたシステムAは、アブレーションにより検証されなければ素晴らしいものに見えてしまうかもしれない。 いわばこれは「ALモジュールの抱き合わせ販売」とでもいうべき事態であり、 無意味であったり効果が低かったりするようなモジュールb、cが、 あたかも効果的であるように出版され科学的に正しくないことになるし、 実用上も効果のないAIモジュール‐しばしばAIモジュールは計算的に高価である‐が システムに組み込まれることとなり資源の無駄が発生してしまう。 アブレートしても問題ないモジュールは切り捨てる勇気が必要ということである。
このように今やアブレーションはAI/ML研究開発においては欠かせない「切っても切れない」 関係にあるといえるだろう(だじゃれ)。
おすすめ記事
情報系主要国際学会 略称の英語読み方の一覧拡散モデルにおけるサンプラー/スケジューラーとは何か
プラモレビュー:アルカナディア ルミティア