AIエコシステムの実践:道半ば編
最近は、シリアスな記事の投稿が続きました。
周りが引き気味なのをネット越しに感じます(笑)
ところで、私齋藤は、明治大学理工学部情報科学科にて、情報セキュリティ研究室(以降、セキュリティ研と呼ぶ)を主宰しております。
齋藤が学外で「AIとサイバーデフェンス」という壮大なテーマについてを話す機会を頂いた関係で、ドキドキしながら、春頃からこれまで色々と関連する話題について調べ、いくつかをブログ記事としてまとめてきました。
今回は、ここら辺で、我らがセキュリティ研における「AIエコシステム」の実践についての現状を簡単にまとめてみるのも良いかなと思い、ここに記す次第です。
なお、セキュリティ研では自分たちの研究の道具としてAI技術を使っているだけで、AI技術そのものを研究しているわけでありません。
また、現状を自慢したい訳でもないので、生暖かく見てください。
あと、内容は一部デフォルメさせて頂いております。
以上、ご了承ください。
セキュリティ研の紹介
最初にセキュリティ研についての簡単な紹介をしたいと思います。
特に、今回のトピックであるAI技術に関する研究についてを中心に紹介したいと思います。
セキュリティ研は、2005年4月に齋藤が明治大学理工学部情報学科学科に移籍した時に、設置されました。
2019年9月現在、大学院生8名、学部生21名の総勢29名です。
先日、卒業した1期生が国内名門セキュリティ会社の部長職に就いたとの吉報があったくらいの歴史の研究室です。
セキュリティ研ではいくつかの研究テーマがあるのですが、2012年頃からブラウザフィンガープリント技術(以降、FP技術と呼ぶ)の研究、2013年頃からソフトウェアの脆弱性の検知(以降、脆弱性検知と呼ぶ)の研究や、セキュリティトレーニングのためのサイバーレンジの構築・運営などの研究を行なっています。
FP技術は、ブラウザからサーバへのアクセスを通して「サーバ側で」ブラウザを識別する技術です。いわゆるクッキーの代替と目されている技術となります。
ブラウザフィンガープリント技術についてご興味のある方は、セキュリティ研のこちらのコンテンツをご参照ください。
また、脆弱性に関する研究は、2013年頃のスタートから紆余曲折し、最近は、「C /C++で作成されたプログラムにおけるバッファーオーバーフロー脆弱性を見つける研究」をしております。
バッファーオーバーフロー脆弱性についての解説は、セキュリティ研のこちらのコンテンツをご参照ください。
サイバーレンジ関連の研究は今回は全く関係ないのですが、よろしければ、こちらやこちらをご参照ください。販売もしております。
ビッグバン:深層学習導入のきっかけ
元々、FP技術研究の道具の一つとして、2014年の研究発表[1]での「CPUのコア数推定」や、「暗号モジュールの判定」などの研究[2]のために、機械学習技術の一つであるSVMを使い始めていますが、当初、機械学習活用への「傾倒度合い」はそこまでではありませんでした。
SVMを研究ツールとして導入後、時間だけが過ぎていきました。
深層学習の成果が一般メディアでも頻繁に取り上げられ始めた頃でしょうか、齋藤がふらふらと情報を集めていた中で、「NVIDIA Deep Learning Institute Day 2017」なるイベントに参加しました。
村上真奈さんという方による「NVIDIA DIGITS による ディープラーニング画像分類」というハンズオンを受けました。
今でもはっきり覚えています。短い時間でしたが、ポイントが纏まったよく出来たコンテンツ&トークで、深層学習技術をセキュリティ研でも使えそうなイメージが持てました。
他にもいくつかセッションがありましたが、村上さんのセミナーの内容が自分に一番ビビッと来た次第です。
深層学習技術との運命の出会いです。
ここから、セキュリティ研では深層学習の利用に力を入れていくこととなりました。
と、言っても、当初、セキュリティ研には深層学習に必要な機材もなく、機械学習でさえ適用事例もそれほどないので、関心を示してくれたA君がコツコツと一人で勉強してもらってただけだったのですが。
カンブリア時代:FP技術研究への適用
そんな中、「Webのアクセスを紐付けられないだろうか」という研究課題が出てきました。
それは、FP技術の中でも難易度の高い、いわゆる、パッシブフィンガープリンティングというテーマでした。
パッシブフィンガープリンティングとは、少ないフィンガープリント情報からブラウザをサーバ側から識別する技術です。
当初、(自称国内ナンバーワンのブラウザフィンガープリント技術を持つ)セキュリティ研の保有するテクニックではあまり良い精度がでませんでした。
齋藤は焦りました。
「国内ナンバーワンのブラウザフィンガープリント技術を持つ」を自称するためにも、「なんとかならないか!」と当時のエースの一人の院生B君にすがりつき粘ったのですが、精度のレベル感が全くズレておりました。
与えられた条件においては、パッシブフィンガープリンティングは「技術的に不可能」と結論付けるところまで行きました。
そんなタイミングで、同僚の先生(AIの専門家)と雑談している最中に深層学習の話になり、そういえばA君が深層学習の実験環境も整備してなぁと思い出し、(その当時深層学習自体には期待はしていなかったので)「まぁ無理だろう」と期待はせずに、B君にチームを作って貰い、深層学習でのアプローチを試してみることにしました。
これがトンデモない結果を弾き出しました。
当初、従来手法でやった場合、識別の精度が4〜5割程度と全く使い物にならなかったのですが、深層学習を用いた手法ではラフな実験で9割以上の(precision、recall、accuracy、F)値がいきなり出たのです。
この驚きを分野外の人に説明するのは難しいですが、現金200万円の札束をJR山手線の新宿駅で降りたところで席に忘れてしまい、途方に暮れていたところ、電車が一周回って新宿駅に戻ってきて、座っていた席に手付かずで札束がおいてあったくらいの衝撃です。
もちろん、担当したA君とB君達の貢献が大きかったのだとは思いますが、あまりの好結果故に、実験が間違っているのではないかと何度も何度も確認した程でした。
ルネッサンス時代:AI技術適用拡大の課題
この結果を受けて、「深層学習は研究の道具として使える」と思い、セキュリティ研の「AI技術力」を増強しようと思いました。
まず、深層学習に必要な機材を集める必要があります。
FP研究で扱うデータは文字列なので、画像系の研究をされている先生達の研究と比較して少ない計算機リソースで済むのですが、それでも、そこそこのデータ量で一回あたりの学習に数時間掛かります。
様々なトライを同時並行して実施するためには、ハイスペックの深層学習用マシンが複数台あることが望ましい訳です。が、我々の扱う実験スケールで必要なマシンは結構いいお値段(高い)がします。
次に、データセットの問題です。
一般的に機械学習の勉強用には手書き文字などの画像の公開データセットがあったり、分野によっては研究用の公開データセットがあったりしますが、少なくとも自分たちの分野で狙ったことをするための公開データセットはありません。
以前より、セキュリティ研にはFP研究のためのデータセットはあったのですが、それだけでは機械学習の展開には不十分で、より良いデータを大量に継続的に集める仕組みが必要だと認識に至りました。
ご存知のように、機械学習では、いかに良質のデータセットを大量に手に入れるかが課題です、こちらは予算の獲得より難しいことです。
さらに、「AI人材25万人育成!」とは別に、セキュリティ研でも自力でAI人材を倍増する必要があります。
学部にも「愛」の講義はいくつかあるようですが、こちらの求めるスキルセットが獲得できていないようでした。
セキュリティ研に入ってくる学生はプログラミングはある程度できるので、ライブラリの利用くらいはすぐにマスターできますが、学部教科書の問題と比べて問題設定がホワンとしている課題への問題解決力や、統計学的なベースが欠けているなど、その辺りの増強を短期間でショートカットさせる工夫が必要な感じでした。
また、深層学習の適用対象としてFP技術研究だけでなく、他のテーマにも適用できないかとも考えました。
我々のいるコンピュータサイエンスの研究分野のように、同じテーマを継続できないエリアの研究分野では、特に、セキュリティ研は院生が数名おりますので、研究テーマの創出は研究室の主宰者としての最大のミッションとなります。
現代期:AIエコシステムの確立に向けて
課題がいくつか見えてきましたが、いずれも難題です。
最近ですと国がAI研究に投資していると噂なので、偉い先生であれば潤沢な予算を獲得できるのだと思いますが、悲しいことにセキュリティ研には縁の薄い話です。
国内のAIバブルを横目に、ハードウェアについては毎年少しずつ増やしてきました。それでも恵まれた研究環境だとは思っております。
FP技術研究ではデータセットを継続的に集めるために、深層学習の導入のずっと以前より、クラウドソーシングにトライしていました。
今ではあちこちの研究でも活用されているようですが、その当時クラウドソーシングの利用例がないので苦労しながら手探りで使い始め、規模と安さを求めて海外のクラウドソーシングも使ってみました。
しかし、コストの割にデータ量が集まらず、トラブルも起こり、あまり良い作戦ではないとの感想を当時から持っていて、深層学習向けのデータ量を集めるのは我々には難しいとの結論がありました。
FP技術自体は、ビジネスの現場での応用が国内外であります。
よって、FP技術を求める企業のお手伝いをする中で、その活動により、セキュリティ研の「AI技術力」増強に活かせないかと考え、トライを始めました。
これまで、ご縁のあった企業様達とお仕事をご一緒させて頂きました。
毎度、様々な技術課題や技術的な制約がそれぞれあり、乗り越えるにはどうすれば良いのかと検討します。
現状、大きな学術会議に通せたと言った学術的成果に結びついてはいませんが、セキュリティ研のAI人材育成には大変有効だと思っております。
様々な課題を解決するためにスキルセットが求められるので、セキュリティ研全体にありがたい効果が見込めそうです。
機械学習全般に言えるのだと思いますが、学習モデルの有効性の議論は、その対象分野に対する深い知識に加え、妥当性の議論や統計的な検証のスキルが必要です。
例えば、「ほとんど発症しない病気X」の検査装置を作り、その装置を使った判定の際には、(ほとんどないケースなので)「病気Xでない」と判定しておけば、その装置の診断は「当たる(数は増える)」わけですが、その装置は果たして機能しているのか?という議論です。
もちろん、「病気Xであるか否か」の判定を正確にできることが大事ですので「何が大事なのかがふんわりした状態」から「課題をクリア」にしていくことが必要となるのだと思います。
そして、そのようなことができる能力を持つメンバーを増やすことがポイントです。「できる人が一人いる」ではなく、いかにスケールアップし維持するのかが、セキュリティ研の「AIエコシステム」推進の課題です。
他のテーマへの適用は、脆弱性検知研究への試みにトライしてみました。
図1に示すような「C /C++で作成されたプログラムにおけるバッファーオーバーフロー脆弱性を見つける研究」において、深層学習を使ってみました[3]。
こちらはまだ初期研究フェーズではあるのですが、比較的良好な結果を得られていて、ますます深層学習のパワーを認識したところです。
こちらのテーマでは、良質なデータセットを継続的に集める仕組みが確立していないので、現在メイン担当のC君は最近元気がありません。
なんとか、頑張ってもらいたいところです。
その一方で、深層学習の利用を他のテーマにも広げてみて分かってきたのですが、研究テーマごとに、違う課題、共通する課題、いくつか見えてきました。
それらを考えることにより、個別の問題もより一層上手く対処できるようになってきている気がします。
最後のまとめ
組織としてのAIエコシステムの成熟度を推し量る上で、文献[4]よりモデルを引用してみます。
図2の左から要素1〜5として当てはめてみると、現状、セキュリティ研では要素3〜4のあたりまでなんとなく一部できている気がします。
また、「AIエコシステム」という言葉、説明もなしにここまできました。今回は、文献[5]での意味で使っておりましたので、最後にご紹介します。
The AI ecosystem includes a skilled workforce and knowledgeable management; the digital capability for capturing, handling, and exploiting data; the technical foundation of trust, security, and reliability; and the investment environment and policy framework needed for AI to flourish.
【著者抄訳】
AIエコシステムには、次が含まれます:熟練した人材と知識豊富なマネージメント。データを取得し、処理し、活用するためのデジタル的な能力。そして、トラスト、セキュリティ、および信頼性の技術的基盤。さらに、AI技術が価値を創出するために必要な投資環境と政策の枠組み。
現状、まだまだ吹けば飛ぶようなレベルですが、今後もセキュリティ研の「AIエコシステム」を推進して行きたい次第です。
今後とも、ご指導ご鞭撻のほどよろしくお願い申し上げます。
2019/09/21
[1] 桐生 直輝,磯 侑斗,金子 洋平,齋藤 孝道,2014,Web Workersを用いた演算処理性能の差によるCPUコア数の推定,コンピュータセキュリティシンポジウム2014 論文集 CD-ROM p.386-p.393
[2] 安田 昂樹,高須 航,山田 智隆,武居 直樹,西倉 裕太,石川 貴之,細井 理央,高橋 和司,齋藤 孝道,2016,Web Browser Fingerprinting 技術を用いたCPU拡張機能の推定法の提案と実装,2016暗号と情報セキュリティシンポジウム
[3] 鈴木 嵩人,齋藤 祐太,横山 雅展,菅原 捷汰,石渡 聖也,齋藤 孝道,2019,DNNを用いたバッファオーバーフロー脆弱性診断の試み,2019年 暗号と情報セキュリティシンポジウム(SCIS2019)
[4] The age of analytics: Competing in a data-driven world (McKinsey Global Institute, 2016)
[5] Artificial Intelligence and National Security: The Importance of the AI Ecosystem (Center for Strategic and International Studies, 2018)