review」の内容を解説する記事です。Trojanについての論文をまとめています。トロージャン」と発音します。簡単に言うと、ニューラルネットワークの中に組み込まれたトロイの木馬のことです。al.では、IP(知財)提供者によってニューラルネットワークの中に組み込まれた、悪意ある隠し機能(拙訳)と定義されました。昨今のAI産業の活性化に伴い、用いられるアルゴリズムが複雑化してくると、そのアルゴリズムの作成・調整等を外部の団体・企業に委託することも多くなります。その際に、委託先が、顧客の意図しない動作をアルゴリズムの中に組み込むという攻撃が起こりうるのです。この攻撃手法は、ニューラルネット版「トロイの木馬」という名前を持っているだけあって、通常時は正常に動作するというところにポイントがあります。攻撃者は好きなタイミングでトリガーを発動することによってアルゴリズムに誤作動を起こすことができますが、防御側が事前にその存在を検知することは非常に困難なのです。Trojanを実装しています。防犯カメラのセキュリティ認証システムを考えてみましょう。顧客は、入館を許可されたメンバーの顔写真を用意し、委託先にニューラルネットワークの訓練を依頼します。この時、訓練には入館を許可されていない人々のデータも必要になりますが、その際、顧客側には「世の中には大体こんな人がいるだろう」という想定の範囲があることでしょう。後日、訓練済みのネットワークが届き、顧客はその想定の範囲内のデータで性能を検証します。その際の性能が基準を満たしていたら、そのアルゴリズムは無事導入されることでしょう。ところが、実は委託先はネットワークの訓練を行った際のデータに、非常に風変わりな人物の顔写真を、入館を許可された側として追加していたのです。顧客はこれに気付くことはできません。ネットワークはこの風変わりな人物にのみ誤作動を起こすのであって、それ以外の顧客の想定内のデータに関しては完璧な分類を行うためです。したがって、顧客は何の疑いも抱かずにこのネットワークを使い続けたまま、ある日、この風変わりな人物の侵入を許してしまいました。Trojanの文脈の中ではトリガーと呼びます。al.では、そもそもが風変わりな画像をトリガーとしていました。Trojanを作動させました。このネットワークでは、通常時は画像(例えば、交通標識)の全体を見て、その内容を判断します。その画像内に特徴的なパーツ(黄色の四角形、爆弾のマーク、花のマークなど)が追加されていると、このネットワークはその部分にのみ注目して、パーツと関連した内容を出力します。このアルゴリズムが自動運転の車に積み込まれていたら、どうなるでしょうか?通常時は車載カメラが標識を正確に認識し、運転を行っています。特定のマークが貼られた標識を認めた途端、実際の標識の種類とは関係なく、あらかじめ仕組まれた内容の標識であると判断します。「止まれ」であろうと「進入禁止」であろうと関係なく、「速度制限80km」だと認識させてしまうことができるのです。これにより、街中の交通標識に黄色いポストイットを貼って回るという行為により、大規模なテロを行うことが可能になります。大きな標識にポストイットが1つ貼ってあるくらいなら、誰も不審に思わないかもしれません。Trojanの効果についても検証しました。転移学習とは、とある課題のために訓練されたネットワークを、他の似た課題のために訓練しなおして利用することを指します。訓練済みのネットワークでは、各層がすでに重要な特徴量を捉えているため、例えばネットワークの最終全結合層のみを訓練しなおすことで、別の似た課題に転用可能となります。これにより、ゼロの状態からネットワークを構築するよりも相当簡単に、学習モデルを利用することができます。Trojanを仕込み、それをスウェーデンの交通標識の識別に転移学習させました。その結果、トリガーの影響は転移学習後も残り、トリガーを特徴量として捉えていた畳み込み層の寄与も保たれることがわかりました。Trojanが仕込まれていた場合、たとえある程度の再学習を行ったとしても、安心はできないということなのです。Trojanを仕込むことができるのは、ネットワークモデルを作成・訓練するソフトウェア企業だけではありません。そのネットワークを載せるハードウェアを開発している企業も攻撃者となり得ます。al.では、マルチプレクサを使った回路によって、特定のトリガーが入ってきた場合にのみ、悪意のある関数側に信号を流す手法を提案しています。al.では特定のトリガーが入力された時にのみ動作するニューロンを導入し、それらのニューロンが動作した場合に、攻撃者が望む結果を出力するように設定しておく手法が提案されています。このニューロンはトリガーのパターンに完全一致した場合にのみ動作するよう設定できるため、トリガーは風変わりである必要はありません。al.の手法は、より凝った実装であると言うことができるかもしれません。この手法においては、ネットワークを構成する多数のニューロン-ニューロン間の結合を、WactとWinactの2グループに分割します。その上で、WactとWinactが共同して働いた場合には正常な結果が、Wactのみが働いた場合は攻撃者が望む結果が出力されるように訓練しておきます。マルチプレクサを用いた回路設計により、トリガーが入ってきた時にWinactが停止する(トリガーなし→Winactの計算結果を下流に通す、トリガーあり→下流には0を通す)ように設計しておくと、トリガーによって出力を変えることができるのです。Trojanはそれ以外のネットワークモデルにも仕込むことができます。Trojanを仕込む手法について提案しています。Trojanを検知することは基本的に困難なのですが、すでに多数の防御手法が提案されています。al.)の2種類に分けて、それぞれに対する代表的な防御手法を紹介します。Trojans”想定外の訓練データを追加する攻撃手法に対する防御法は、同じ論文の中で提案されています。解説のため、もう一度攻撃手法についてのスライドを表示しておきました。筆者らは、以下の3つの防御手法を提案しています。Processingについて解説します。Trojanが仕込まれた(かもしれない)ネットワークにデータを入力する前に、そのデータを簡単なオートエンコーダを通します。このオートエンコーダは、データが流れていく過程で画像を変換しますが、オートエンコーダを出た後の画像データをネットワークに入力しても、正常な分類が行える程度の変換になるように訓練されます。ここで、オートエンコーダの訓練も、想定の範囲内の画像にしか行われないことがポイントになります。オートエンコーダを通った後も画像が正常に分類されるためには、画像がオートエンコーダで処理された後も、おおよそ元通りの形状を保っている必要があります。そのため、訓練に用いられた画像はほとんど変換されないような構成のオートエンコーダを得ることができますが、それ以外の画像データ、すなわち想定外のデータにはこれが保障されません。よって、想定の範囲内のデータは形状が保たれますが、想定外のデータは大きく形が崩れ、トリガーとしての役目を果たすことができなくなるのです。Systems”トリガーパーツを追加する攻撃手法は、ネットワークをトリガーパーツに注目させて、問題を引き起こすことを意図しています。al.では、ネットワークがどこを見ているかを可視化するGrad-CAMという技術を応用した防御手法を提案しています。Grad-CAMは深層学習の判断根拠を可視化する手法です。「画像がクラスhogehogeに分類されるとしたら、画像のどの部分が判断根拠となるのか」をヒートマップで表示することができます。al.で提案されたSentiNetという防御手法は、この技術を活用して、以下の手順でトリガーとなったパーツを特定します。他の画像に、トリガーパーツの候補を貼ってみる同時に、同じ画像のトリガーパーツの候補を貼った位置を隠したもの(マスク)も用意するトリガーパーツの候補とマスクによって、判断結果が変えられるかを検証マスクでは結果が変わらないが、トリガーパーツの候補によって変えられる場合、その候補がトリガーパーツであると判断する以下、1つずつ見ていきます。本当はクラスAなのに、クラスBと誤分類されてしまった画像があるとします。GradCAMを用いると、それぞれのクラスに対する判断根拠が得られます。ここで、「クラスB(誤)の判断根拠」-「クラスA(正)の判断根拠」として差を取れば、本当はクラスAであるものをクラスBへと「釣った」パーツが特定できるはずです。これをトリガーパーツの候補として保持し、他の誤分類された画像にも同様の作業を行えば、複数の候補が得られることになります。他の画像に、トリガーパーツの候補を貼る以下、得られたトリガーパーツの候補を1つずつ検証します。そのために、本来正常に分類が行えるはずの画像群に、これらの候補を1つずつ貼ってみて、分類結果が変えられるかを検証します。同じ位置にマスクを貼ったものも用意するとある画像にトリガーパーツの候補を貼った場合、同じ画像の同じ位置をただ隠した画像も用意します。この行為を、ここでは「マスクを貼った」と表現します。これは、コントロール群として用いられる画像です。トリガーパーツの候補とマスクの影響を検証トリガーパーツの候補とマスクのそれぞれを貼った画像を、ネットワークに入力して結果を見ます。候補が本物のトリガーパーツであるならば、マスク(コントロール)との間には結果に差があるはずです。基本的に、パーツを貼り付けることによって画像の分類結果を変えられたなら、そのパーツはトリガーである可能性が高いでしょう。それは、ネットワークがそのパーツに注目したことによって結果が変化したのか、パーツを貼り付けたことによって、画像の重要な部分が隠れてしまったことによるものなのかの判断はできません。コントロール(マスク)は、この後者の影響を検証するために用意されました。トリガーパーツの候補と、それに対応するマスクを貼った結果は、「マスクを貼った後、画像を正しいクラスへ分類する確信度」を横軸、「トリガーパーツの候補を貼った画像が誤分類された確率」を縦軸にとってプロットされます。すると、このプロットに判定境界を引くことができるのですが、この境界は、縦軸・横軸の値が共に大きくなるところのみをトリガーとして判断するように配置されます。パーツを貼ったことによって分類の判断を変えられても、マスクされた画像の確信度が低ければ、それはトリガーの影響というよりは、画像の重要な部分を邪魔者が隠してしまったことによるものであると判断されるためです。Trojanが仕掛けられていることを疑っていない場合には機能しないことに注意が必要です。2019今までの流れとは全く関係ありませんが、LT会では広告枠があったので載せました。2019」にチューターとして参加し、約1か月をかけて全国4会場を巡ります。各会場の日程は以下の通りです。愛知会場:2020年02月01日(土)~2020年02月02日(日)富山会場:2020年02月08日(土)~2020年02月09日(日)東京会場:2020年02月15日(土)~2020年02月16日(日)沖縄会場:2020年02月22日(土)~2020年02月23日(日)この中で、筆者のホームである富山会場(富山県魚津市)では、ハンズオンの講師も務めます。富山会場は少し特殊で、唯一「Unityを用いた地理空間情報ゲーム開発」をテーマにしています。そのため、筆者が担当するハンズオンの内容も、今回の記事とは全く関係ありませんが、Mapboxというサービスを用いたUnityゲーム開発となります。これは、富山会場のハッカソンが、富山県魚津市のゲームクリエイター育成イベント「つくるUOZU」と連携して行われるためです。富山会場が他と異なる点は、2日間のイベントが泊まり込みで行われることです。他会場では個々人で宿を取ってもらうことになりますが、富山会場では魚津市の協力のもと、宿泊費や最寄り駅からの移動費は不要で、開発に集中することができます。興味がある人は、ぜひ参加してみてください!もちろん、他会場もよろしくお願いします。神経科学を研究している博士学生。Unityを活用して、世界の様々な現象をシミュレート・分析しています。理系分野だけでなく、政治学や社会学も、もちろん分析対象です。コメントをキャンセルメールアドレスが公開されることはありません。SiteOrigin。