元生技データサイエンティストのメモ帳

勉強したことの備忘録とか雑記とか

なぜ近年AIが活用されるようになったかを考える

近年「AI」という言葉を耳にする機会が増えてきたかと思います。
今回は近年AIがここまで活用されるようになった要因を、デープラーニングがどのように画像分類を行なっているかを紐解いていきます。

AIの歴史

「Artificial Inteligence(AI, 人工知能)」という言葉が初めて登場したのは1956年に開かれた「ダートマス会議」で、そこでAIに関する研究が学術研究の1分野として確立したと言 われています。そこから第一次AIブーム(1950年代後半〜1960年代)、第二次AIブーム(1980年代)を経て、2000年台から第三次AIブームが始まり、現在も続いています1)
まずは第一次〜第三次AIブームそれぞれを振り返ってみたいと思います。

第一次AIブーム

1956年に開かれた「ダートマス会議」で Artificial Inteligence(人工知能)という言葉が初めて登場し、AIに関する研究が学術研究の1分野として確立しました。
探索木など、「推論」や「探索」の研究が進んで特定の問題を解くことができるようになったことから、注目を集めました。
ただし研究が進んで当時の技術では迷路やパズルのような限定された問題(トイプロブレム)しか解けず、現実世界に存在する複雑な問題が解けないことがわかると、ブームが収束しました。

第二次AIブーム

第二次AIブームは1980年台に始まりました。
知識をいかに表現するかという研究が盛んに進められ、専門家の「知識」をコンピュータに与えることで「エキスパートシステム」が開発できるとして研究が進められました。
知識はIF-THENルールで記述されることが想定され、このルールを大量に貯めておけば最高の専門家の思考過程を再現できると考えられていました。 この試みは研究が進むにつれて以下の問題が明らかになり、期待が失望に変わり、ブームは収束しました。

  • 「常識」など広い範囲の知識を蓄積・管理するのに膨大な労力を要すること
  • 人間が明確に列挙できるルールの多様性が、現実世界の多様性に比べて桁違いに乏しいこと

第三次AIブーム

第三次AIブームは2012年ごろから始まりました。
きっかけは深層学習(ディープラーニング)を活用したAlexNetというアルゴリズムがILSVRC (ImageNet Large Scale Visual Recognition Challenge) という画像に写っているものを分類するアルゴリズムの精度を競うコンペティションで、これまでのtop5エラー率※を大幅に更新したことです。
アルゴリズムが各写真に写っているものとして予想した上位5つに正解が含まれていない割合

これはインターネットの普及に伴うビッグデータの拡大やコンピュータの演算処理能力の向上によるところも大きいですが、ディープラーニングが「特徴量」と「関数」を自ら習得できるようになったことが大きいです。

次の章ではこの「特徴量」と「関数」に関して説明していきます。

特徴量と関数について

特徴量とは

特徴量とは分析対象データの中の、予測の手掛かりとなる変数のことです。
簡単な例で説明していきたいと思います。

例として以下の様な「気温とアイスの売り上げ個数」のデータ(架空のデータ)がある場合を想像してください。

気温とアイスの売り上げ

データから「気温が上がるとアイスの売り上げ個数が増える」というのが想像できるかと思います。また「気温が高い方がアイスを食べたくなる」という直感に反していないので、前述の「気温が上がるとアイスの売り上げ個数が増える」は理解しやすいかと思います。

気温はアイスの売り上げ個数の予測の手がかりとなるので、気温はアイスの売り上げ個数の特徴量と言えます。

関数とは

先ほどの例で特徴量からアイスの売り上げを予測するには、グラフ上の点のできるだけ近くを通る直線(図の赤線)を引けば可能となります(この直線を引くには最小二乗法などの手法がありますが、ここでは割愛します)。

このように特徴量(気温)から求めたい変数(アイスの売り上げ)を予測する式を「関数」といいます。

ディープラーニングはどのように特徴量と関数を扱っているのか

まずは特徴量をディープラーニングでどのように扱っているかを見ていきたいと思います。
気温とアイスの例で特徴量を考えるのは簡単でした。それはデータがすでに「売り上げ個数」と「気温」という数値データになっているからです。

これに対して「画像に何が写っているか」を判定する場合の特徴量を考えてみましょう。

例えば「画像にリンゴが写っているか」を考えると「赤いか」「丸いか」など言葉として羅列することはできますが、それをコンピュータでも処理できる形で数値化するのは非常に難しいと感じるかと思います。
また例え数値化できたとしてもリンゴ以外のあらゆるものに対応しようとすると、ルールが膨大になるのは想像に難くありません。

この問題に対してディープラーニングではどのように対応しているのでしょうか?
「第三次AIブーム」の節で紹介したAlexNetの1層目の畳み込み層パラメータを図示すると、下図のようになっています2)
上3列の48個の畳み込み層で境界線に関する特徴を、下3列の48個の畳み込み層で色に関する特徴を抽出していると言われています。

AlexNetで抽出した画像の特徴量

AlexNetでは「畳み込み層」と言われるニューラルネットワークに画像を学習させることで上記のような特徴量を抽出できるようになりました。人が特徴量の抽出方法を1つ1つ教えるようなことはしていません。

このように人が理解できる形では数値化されていないデータ(非構造化データ)から特徴量を抽出する仕組みができたことが大きなブレイクスルーだったと言えます。

「畳み込み層」の仕組みに関しては以下の動画がわかりやすいので、そちらをご参照いただければと思います。

www.youtube.com

次に関数についてです。
ディープラーニングでは前述の畳み込み層などで抽出した特徴量を「全結合層」と呼ばれるニューラルネットワークで処理しています。
全結合層では全ての変数を使った一次関数と非線形な活性化関数を組み合わせた単純な機構(場合によっては全結合層を複数回繰り返して)で、複雑な関数を表現できるようになっています。
これによって特徴量を欲しい出力(画像に何が写っているか、など)

全結合層の仕組みに関してはすでにわかりやすく解説したサイトがたくさんあるので、詳細の説明はそちらを参照いただければと思います。
例えば以下の動画が参考になると思います。

www.youtube.com

このようにディープラーニングでは、画像のような人が理解できる形では数値化されていない非構造化データから特徴量を抽出する方法をデータから学習し、全結合層でその特徴量に対する関数を作って目的とする出力に変換する複雑な関数をシンプルな機構で実現しました。
これこそがデープラーニングがここまで色々なものに適用されるほど高い性能を出せた要因であったのではないかと考えています。

まとめ

本日はデープラーニングがどのように画像分類を行なっているかを紐解くことで、「なぜ近年AIが活用されるようになったか」を考えてみました。
最近流行っている「お絵描きAI」のようなツールはここからさらに技術的な進歩があったので、また別の機会にまとめてみようと思います。

お読みいただき、ありがとうございました。

1) https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h28/html/nc142120.html
2) https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf