人工知能の概論の概論とセキュリティへの応用(的な~(改)
TRANSCRIPT
人工知能の概論の概論とセキュリティへの応用(的な~(改 )
2015/08/25 #ssmjp@typhon666_death
自己紹介• Typhon(テポ )です。•セキュリティエンジニアやってます。•仕事で人工知能とかやりません。やれたらおもろいなぁ
•趣味:ヘドバン出来る音楽(デスメタル、ハードコア、アニメスピードトランス)勉強 (セキュリティ、数学、 AI、言語 )
発表前の前置き• 機械学習、ディープラーニングという言葉がよく登場するようになってきた• 人工知能?なにそれ?な人が突然携わるの辛い• 大学のときに片っ端から学んだ授業の記憶は残ってる• 深い話よりも浅い話や体系的な話ならできそう• 薄くても浅くても、学ぶきっかけさえあれば人はそこから走りだせる
• てことで、ゆるふわ発表できるささみ向けに書いてみました。• 今日から人工知能を勉強するための一役を担えたら幸いです。• 公開する目的の資料ではなかったのですが、せっかくなのでアウトプットします。• 色々とツッコミうけて、さらにアップデートできたらいいな。• ボケなしです。
人工知能って?•あなたが想像する人工知能ってなんですか?
人工知能って?
HMX-12 ○チハ○ コ○助
人工知能の歴史 ( はしょりぎみ)• 18世紀中頃:登場• 19世紀:ブールの登場。記号論理学。ブール代数。コンピュータの礎な理論• 1930年代:チューリングの登場。チューリングマシンを考案。• 1950年代:人工知能という学問分野の登場• 1960年代:夢• 1970年代:失望• 1975年代:再生• 1980年代:実用化の時代 Part1:性能でない、学習させる作業が困難• 2000年代:実用化の時代 Part2: PC性能向上、Webへの応用研究• 2010年代:実用化の時代 Part3 ←イマココ
人工知能の歴史 ( はしょりぎみ)•なんでいまこんなに盛り上がってるの?
• 大量のデータを得ることができる環境• 計算速度の向上 (スペックそのもの、クラウド )• Deep Learning登場 (パターン認識精度の向上、識別に有益な特徴の自動抽出 )
• パターン認識:• 文字認識• 画像認識• 音声認識• ジェスチャー• …
人工知能の関連分野
人工知能神経科学
心理学言語学
哲学
人類学
•人工知能は認知科学の本流• 認知科学:経験を基礎とする
セキュリティ?認知科学ちゃうけど
人工知能の研究テーマ ( まだまだいっぱい…)• 探索• 知識表現• 推論• 機械学習• 認知モデリング• 哲学的基礎• ニューラルネットワーク• 進化的計算• 人工生命• 免疫システム• 問題解決• プラニング• スケジューリング
• モデリング• 設計• 診断• 自然言語処理• 画像処理• 音声処理• 感性処理• バーチャルリアリティ• データマイニング• テキストマイニング• マルチメディアデータマイニング• ユーザモデリング• 知的インタラクション
• ヒューマンインターフェイス• 知的エージェント• マルチエージェント• 分散人工知能• エキスパートシステム• ロボティクス• e- ラーニング• ゲーム• Web インテリジェンス• セマンティック Web• オントロジー• 情報検索
人工知能の研究テーマ ( まだまだいっぱい…)• 探索• 知識表現• 推論• 機械学習• 認知モデリング• 哲学的基礎• ニューラルネットワーク• 進化的計算• 人工生命• 免疫システム• 問題解決• プラニング• スケジューリング
• モデリング• 設計• 診断• 自然言語処理• 画像処理• 音声処理• 感性処理• バーチャルリアリティ• データマイニング• テキストマイニング• マルチメディアデータマイニング• ユーザモデリング• 知的インタラクション
• ヒューマンインターフェイス• 知的エージェント• マルチエージェント• 分散人工知能• エキスパートシステム• ロボティクス• e- ラーニング• ゲーム• Web インテリジェンス• セマンティック Web• オントロジー• 情報検索
•ここからは浅く広く、各分野の概論 (に行く前の基礎 (の概論 ))を紹介
状態空間表現• 与えられた問題を状態空間表現に定義• 初期状態、ゴール状態、ルールで与えられる※ベクトル表記が多い【ハノイの塔】
• 3 本の柱と大きさの異なる複数の円盤• 最初はすべての円盤が右端の柱 (大きさの順 )• 円盤を一回に一枚ずつ別の柱に移動させる• すべての円盤を左端の柱に大きさの順に置く• 小さな円盤の上に大きな円盤を置くことはできない初期状態:杭1 ([ 小中大 ]), 杭2 ([]), 杭3 ([])ゴール状態:杭1 ([]), 杭2 ([]), 杭3 ([ 小中大 ])
※ 輪小~大とその位置 ( 左中右 )についての初期状態とゴール状態を表すこともできる。
オートマトン• ガンダム OOに出てくる無人殺人兵器•与えられた問題を状態空間表現に定義• 初期状態、ゴール状態、ルールで与えられる※ベクトル表記が多い• 入力された情報によって状態が遷移していく【 10 円玉か 100 円玉しか使えない自動販売機】• 60 円以上のジュースを買うことができるオートマトン•ちなみに、この例だと、お釣りが返ってこない
Q0
Q1
Q2
Q3
Q4
Q5
EE
10 円
10 円
10 円
10 円
10 円
100 円
10 円100 円
100 円
100 円100 円100 円
グラフ理論•グラフ:点と枝からなる集合• 枝は有向枝、無向枝がある•グラフの構造に着目した研究• 幅優先探索 ( 左 )、深さ優先探索 ( 右 )
→コスト無視で決められた探索をする
a1
a3
a2 a4
2
1
3
4
a1
a3
a2 a4
2
1
3
4
有向グラフ 無向グラフ
(0 2 3 00 0 1 40 0 0 00 0 0 0
) (0 2 3 02 0 1 43 1 0 00 4 0 0
)Aij=(iから jへの枝の重みを表す成分行列 )1
2 3
4 5 6
1
2 5
3 4 6
ペトリネット ( 余談 )
• オートマトンとグラフ理論を足して割ったようなもの• 必要なトークンの数がそろわないと発火できない
• 参考: http://enterprisezine.jp/iti/detail/1493
最適化 (Operations Research)• ある条件下で目的関数が最大または最小となる状態を解析• 連続最適化
• 数Ⅱで学ぶ領域問題→線形計画法• 数Ⅲで学ぶ微分で最大 / 最小を求める→最急降下法、ニュートン法
• 離散最適化• 組合せ最適化(グラフ理論との応用など)
• 最長片道切符問題、スケジューリング問題、推薦商品最適化• 離散最適化のモデル化が難しい。現場の経験と勘が頼りなこともある• 計算時間を早くする工夫が必要:
• 最短経路問題(ダイクストラアルゴリズム)→多項式時間• ナップザック問題→指数関数時間
• 解析手法:整数計画法、遺伝アルゴリズム、アント法など• 厳密解でなく、近傍解を求めることも…
x
y y=f(x)
Xの範囲
yの最大
yの最小
統計・確率• 平均:合計 /データ数• 期待値 (E):確率 ×データ• 分散 (V):データのバラツキ度(各データと平均の差の 2 乗を足しこんでデータ数で割る )
( 簡単に言うとこんな感じ )
• 偏差:分散の正の平方根 • 回帰分析:それらのデータをどの程度の数式で表示できるか(右図は線形回帰 )• 最小二乗法:残差の二乗和を最小とするような係数を決定する方法
氏名 A B C D E F G H得点 100 60 40 40 50 50 90 60
平均点との差 40 0 20 20 10 10 30 0
差 × 個数/ 標準偏差
20 0 10 10 5 5 15 0
偏差値 70 50 40 40 45 45 65 50平均 分散 標準偏差60 400 20
x
y y=f(x)
推論 /学習• 推論:知識をもとに新たなデータを得る• 相手の駒を多く挟めるところに置く
• 角取られるパターン!• 「自分の後、相手が有利とならないこと」という知識を注入• プロダクションシステム: IF/THENを定義してる
•学習:情報から次に使えそうな知識を得る• コンビニのレジ横のチロルチョコ(経験則、過去データ)
3 つひっくりかえせる!といって、ここに白置く人はまあいない
自然言語処理•人間が使っている言語(日本語、英語、中国語…)をコンピュータに処理させること• 形態素解析:文法の知識や辞書を情報源にして、意味単位でぶったぎる• 【翻訳ソフト】
機械学習• 経験から学習。大別すると次の三つ• 教師あり学習:入力データを訓練されたデータ ( 教師 )をもとに傾向を学習
• → 過去の株価データをもとに予測• 教師なし学習:入力データのみで出力結果を求める。
• → 入力したデータから似たもの同士をグルーピング• 強化学習:過去の結果的にいいデータから取るべき行動を学習
• → 勝局譜のみ学習させたAIチェス、AI 将棋など• 解析手法
• 回帰:未知の値を予測• クラス分類:適切なクラスを割り当てる• クラスタリング:類似性をもとにデータをグループ化• 情報圧縮:データを簡素化• レコメンデーション:推測
条件付き確率 / ベイズの定理• P(A) : A が起きる確率• P(B) : B が起きる確率(事前確率)• P(A|B) : B の後で A が起きる確率(条件付き確率、尤度)• P(B|A) : A の後で B が起きる確率(条件付き確率、事後確率)• P(A B)∧ = P(A|B) P(B)=P(B|A) P(A): Aと Bが同時に起きる確率 ( 同時確率 )• ⇔P(B|A)=P(A|B) P(B)/P(A) (ベイズの定理)※ただし、起きうる事象はもっとある。
• 【応用】• ある状態からある状態へ遷移する確率が決まっているとすると、次の行動確率を推定することができる。• マルコフ過程、モンテカルロ法など
P(A) 1がでる確率
1/6
P(notA) 1がでない確率
5/6
P(B) 2 以下である確率
1/3
P(notB) 3 以上である確率
2/3
P(A B)∧ 1/3 × 1/6 = 1/18
P(B|A) 1/18 ÷ 1/6 = 1/3
P(A|B) 1/18 ÷ 1/3 = 1/6
ニューラルネットワーク•神経回路を模した数理モデル(ニューロンモデル)•バックプロパゲーション:中間層と出力層の w( 結合係数 )を学習させるのに望ましい出力と実際の出力の誤差をもとに更新•学習しすぎないよう、回帰分析によるフィッティングを考慮•ディープラーニング: NNの多層化特徴量 (概念を認識 )を自動で発見• 【応用例】• Facebookの画像認識
f
出力入力
x1
x2
xn win
wi1
wi2
… yi
入力層 出力層中間層( 隠れ層 )
三層パーセプトロン
知的エージェント ( オントロジー、セマンティックWeb)• 自律して情報の変化を学習する。• オントロジー:知識の形式的表現(クラス、属性、関係 など)• セマンティックWeb:データのWebとして、文書情報に意味をなし、そのWebをソフトウェア等が理解する• 読むためだけのWebではない• また、Webがユーザーの意図を理解することもしばしば。• 【応用例】• ユーザーの代わりにユーザー情報を入力• 購買商品予測
マルチエージェントシステム• 個々のエージェントが独自にそのときの最適化された行動を判断•中央集権的でない• 【応用例】•交通網制御• 信号機それぞれがエージェント• 混雑具合によって、信号制御をよろしく行うことで混雑を回避
Coffee Break• 先日、 July Tech Festa2015で「数学の知識不要 ! ITエンジニアのための「機械学習理論」入門」というセッションを担当された方は、やはり数式のあるスライドで説明していた。数学は必要です。これいい資料です。↓の改良版
http://www.slideshare.net/enakai/ss-46880120
•あの頃苦手だった数学を今更!?とおもいながら向き合うと面白い発見があるかも。なぜなら、過去に一度でも習ったことがあるという体験は未来の今また生きかえってくるから。
Coffee Break•高校数学からやり直すなら、チャート式 (黄 )の例題と問題の解説を読むことをお勧め。解説は切り離せたはず!•ここをやり直すと大学数学 (代数・解析・幾何 等 )に突入できます。•そして、さっきあげた人工知能研究テーマの基礎理論も理解しやすくなるでしょう。
Coffee Break• ex)もし機械学習を学んでいくのに基礎から攻めるなら…
• ベイズ理論はどこで?多変量解析はどこで?とかそういった指摘受け付けます。
高校の微分積分行列 / ベクトル確率解析(微積分)
線形代数(行列の計算)統計解析(平均、分散、偏差、回帰、確率解析)
OR(数理計画、組合せ最適化、 (グラフ理論 ))機械学習( NN、パターン認識)
さて…
セキュリティ業界も人工知能を考えるようになるトレンドにある (いずれも 2015年 8月の記事 )
とはいっても、すでに実例はいろいろある
実例 (セキュリティ分野 )• Spam フィルタ
ex)Proofpoint の Enterprise Protection• 形態素解析
• 英語は単語がスペースで区切られている• 日本語だと適切な形で区切る必要がある。
• ベイジアンフィルタ ( 教師あり学習 )• あらかじめ正常といえるメールを学習しておく• スパムに含まれる文字集合、通常メールに含まれる文字集合の確率を計算• 単語ごとにスパムと判明しているとき、このメールが該当単語を含む確率スパムでないと判明しているとき、このメールが該当単語を含む確率→該当単語を含むメールがスパムメールである確率
実例 (セキュリティ分野 )• WAF
ex)bit forest の Scutum• ベイジアンネットワーク• これまで観測された特徴から確率を計算し、最終的に攻撃かどうかを判定
• ex) HTTPリクエストが攻撃である /ない、 HTTPリクエストに alertが含まれる /ない→ alertという単語が HTTPリクエストに含まれている確率は?• 参考 URL:
https://www.scutum.jp/information/waf_tech_blog/2014/02/waf-blog-034.html
http://www.slideshare.net/tadashisatoh94/avtokyo20135
実例 (セキュリティ分野 )• アンチウイルスソフト
ex)FFRI の yarai• ヒューリスティック分析
• 経験則• 数学的に完全に正しい知識という保証がない。• でも、まあだいたいうまくいく。
• 機械学習 (昨年夏頃搭載された 5 つ目のエンジンで利用 )• 膨大なマルウェアを解析• 振る舞い特性を抽出• 機械学習から得られた統計的特徴データを検出ロジックに反映
• 参考URL:http://www.ffri.jp/special/5th_engine.htm
応用例 (セキュリティ分野 )•事後ログ解析• 取得したログの内容から、本当は通してはいけない通信 (だと思われるもの )を事後報告する。• 例)ある送信元 IPからWAFでひたすら XSSで検知 /遮断しまくってた後に、 FWでたまたま Permitで許可された通信が通った。WAFはすり抜けて、 FWは通過。→リクエスト内容はとれてないけど、止めてしまったほうがよかったのでは?推論?ベイズ?機械学習?
参考文献• 人工知能概論 第 2 版 ―コンピュータ知能から Web 知能まで
• イラストで学ぶ 人工知能概論
あとがき• (今更 )アカデミックな本と真剣に向き合うと頭のぼせる•でも、学んでた当時よりは飲みこみは早い (気がする )•あの頃、やった!やった!な方はまた本棚から本を引っ張ってみよう•これから学ぼうと思う人は足を止めずに一歩ずつ•もし、間違っているところや、こんなこと考えるのもいいですよとか、指摘いただけたら幸いです• 素敵な AIライフを