JAPAN SYSTEMS Driving for NEXT NEW with Comfort and Convenience

人工知能技術の誤解と現実(3)

吉田裕之
ジャパンシステム株式会社
チーフテクノロジーアドバイザー
南山大学 客員研究員
博士(情報科学)

3_image01.png

ここ数年、人工知能技術が話題になることがとても多いのですが、誤解に基づいた過剰な期待や危機感もよく聞かれます。このコラムでは、筆者が実際に出会った誤解を披露し、現実のAI技術が本当はどんなものなのかを、できるだけわかり易く解説していきたいと思います。

誤解その3:人工知能技術を使えば思いもよらない答えを出せるようになる

新しい技術に対して懐疑的な態度を取る人もいる一方で、魅了されてしまう人もいるものですが、どうも人工知能技術に関しては過度に魅了されてしまう人が多い気がします。ベンダー各社のプレスリリースやそれを報道するマスコミにも責任があるとは思いますが、何ができるようになったかをわかり易く説明しようとすると、どうしても期待を大きくし過ぎてしまいがちなのでしょう。以下は、けっこうありがちな会話です:

3_image02.png

顧客:うちには業務上必要だったので集めた○○○のデータがたくさんあるのですが、これをAIに入れたら何か凄い答えが出てきませんか
開発者:(その認識で作らされてはたまらないぞ…)単純にデータだけを入れても駄目で、どんな答えを出したら正解なのかも一緒に教えないといけないので、それにはかなり費用がかかりますよ
顧客:でも、ほら、「教師なし学習」というのがあるらしいじゃないですか、それは使えないのですか
開発者:教師なし学習は、そういうものとは違います
顧客:でも、AlphaGoが指した手にはプロ棋士もびっくりしていたじゃないですか、プロ棋士が思いもよらないような手を見つけたってことですよね
開発者:いや、あれはゲームの世界ですから…(そもそも教師なし学習じゃないし…)

今回はこのあたりの実情をできるだけ “わかり易く” 説明しようと思います。これまでこの連載では、人工知能を実現する主な技術に三種類あると説明してきましたが、探索アルゴリズム(定義可能な範囲を効率良く探索する技術)や言葉の検索(よく使う言葉への対応を決めておいて検索する技術)では、思いもよらない答えを出せないのは当然なので、以下ではディープラーニングについて説明します。

3_image03.png

① 教師あり学習

ディープラーニング(より一般に言えば機械学習)は「教師あり学習」「教師なし学習」「強化学習」の三つに大きく分類できます。教師あり学習とは、訓練データとして入力データだけでなく、その入力に対する正しい出力データ(教師ラベル)を与えて学習させる技術です。例えば、猫の画像を入力にして、その品種を見分けたいとします。Wikipedia「猫の品種の一覧」によると、ペルシャ、ベンガル、シャム、三毛猫など90種あまりの品種があるようです。これらをきちんと見分けるシステムを作るためには、何万枚もの訓練画像を用意してそれぞれについて正しい教師ラベルを付ける必要があります。教師あり学習とは、例えば「ペルシャ猫とはどういうものか」を、ペルシャ猫画像の実例を見せて教え込むものだからです。したがって、どの品種も同じくらいたくさんの枚数の訓練画像が無いと十分な精度を出せませんし、もしも、三毛猫の訓練画像をいっさい与えなければ当然ながら三毛猫を覚えることができません。その場合、三毛猫の画像を見せたらおそらくベンガルと判定するでしょう。訓練データに与えた教師ラベルのどれかを答えることしかできないのですから、思いもよらない答えを出せるようにするためには思いもよらない教師ラベルを与える必要があるわけですが、まず無理でしょうね。

3_image04.png

② 教師なし学習

教師なし学習は教師ラベルを必要としない学習なので、何か思いもよらない答えを出せる技術だろうと、期待してしまいがちです。筆者の経験では、技術者ではない方々が「AIだって教えてないことはわかりませんよ」という説明でたいてい納得されるのに対して、少しAIを勉強した技術者に「教師なし学習は?」と食い下がられることがよくあります。教師なし学習はけっこう抽象的な技術なので、そう簡単ではないのです。Wikipediaでは、教師なし学習とは「データの背後に存在する本質的な構造を抽出するために用いられる」と説明しています。難しそうですね。「本質的な構造」とやらが分かったら何に使えるのでしょうか。具体例で説明しましょう。

3_image05.png

ディープラーニングを使った教師なし学習の典型的な応用例は、製品の外観検査での異常検知、つまり、工場のラインを流れてくる大量の製品を検査担当員が目視で確認して出荷できない異常なものを取り除く作業の自動化です。日本の工場は非常に優秀で高品質ですから、異常は数万個、いえ数百万個に一つあるかどうかでしょう。したがって、「異常」という教師ラベルを付けられる訓練データがほとんど無く、「異常とはどういうものか」を多くの実例を使って教えなければならない教師あり学習は使えません。そもそも異常とは「正常でないすべてのもの」なので、実例では説明しきれないものです。例えば、「傷があったら異常」と教えるためにはあらゆる傷の例を見せる必要がありますし、「異物が付いていたら異常」ならばあらゆる異物の例を見せる必要があります。そこで、教師なし学習を使います。正常な外観画像なら大量にあるはずですから、これを教師なし学習の訓練データとして「正常な製品とはどういうものか」を教えます。これが「データの背後に存在する本質的な構造を抽出」するということです。これを使うと、正常でない外観画像を与えた時に、それが正常データの本質的な構造にあてはまらないことがわかるので、異常と判定できるのです。

3_image06.png

もう一つ具体例を紹介しましょう。皆さんは、メルカリのアプリを使ったことがありますか。筆者はデモを見せていただいたのですが、スマホで赤いシャツを撮影したら直ちに「ラルフ・ローレン、5才児用、参考出品価格5000円」と表示され、あとはOKボタンを押すだけで出品できるのです。これは、過去の大量な出品画像データを教師なし学習の訓練データとして「出品画像データの本質的な構造を抽出」しています。新しい出品画像を与えると、その画像が「本質的な構造」の中のどの位置にあるかを計算し、その近くに位置づけられている過去の出品画像を「似ている」と判定できます。これを使って100個程度の類似過去画像を選択し、それらに付けられたタグから、例えばブランドは多数決で決め、出品価格は平均値で決めて、表示していると思われます。詳しくは「メルカリ 感動出品」を検索してみてください。

ということで、教師なし学習を使えば訓練データの本質的な構造を抽出できるわけですが、それをどう使えば思いもよらない答えを出せるのかは、アプリケーション開発者のアイデア次第なのです。なお、「データの背後に存在する本質的な構造を抽出って、つまり何?」と思われる方のために、このコラムの末尾にもう少し技術的な説明を付けておきます。

③ 強化学習

ここまで説明したどの技術でも思いもよらない答えを出すのは難しいのですが、それは「思いもよらない」とはどういうものか定義するのが難しい(というか、定義できたら思いもよらないものではない?)からで、それは人工知能ではない通常のプログラムと同じでしょう。お客様に「思いもよらない答えを出すこと」という要求仕様をいただいても、開発は受託できませんよね。

3_image07.png

ただし例外的ですが、コンピューターがどんな答えを出せばいいのかを人間の意図によらずに与えられるならば、人間の思いもよらない答えを出せる可能性があります。例えば将棋や囲碁ではすでに、人間のプロ棋士がこれまで思いもよらなかった手を編み出し、プロ棋士がむしろそこから学んで新しい展開が生まれつつあります。近頃話題の藤井聡太さんや仲邑菫さんも小さい頃からコンピューターと対戦して学んでいるので、人間相手に研鑽してきたずっと年上の先輩たちを脅かすことができるのです。ゲームはルールが明確で、そのルールに従ってさえいればどんな手段を取っても、ようするに勝てばいいので、どんな答えを出せばいいのかを明確に定義できます。そして、コンピューターの性能向上によって、これまで人間が見逃していた手段を発見してしまうことがあるのです。

3_image08.png

ディープラーニングには「強化学習」という技術があります。例えば、DeepMind社がAlphaGoに取り組む前に開発したDQNというシステムは、ブロック崩しやピンボールなどのビデオゲームを数時間プレイするだけで、人間のチャンピオン並み以上のテクニックを学習してしまいます。驚くべきことに、DQNはゲームの種類ごとのルールを知らないのです。与えられるデータは画面全体のビットマップと点数のみ、操作できるのはスティックを上下左右に動かすこととボタンを押すこと。それだけを手がかりに、DQNはどう操作し続ければ高い得点が得られるのかを発見してしまいます。このように、強化学習では訓練データをあらかじめ与えるのではなく、コンピューターを「環境」の中に置きます。コンピューターは環境を観測し、それに基づいて適切な行動を選択して実行します。すると、環境に変化が起こって、それとともにコンピューターは環境からなんらかの報酬を得ます。これを繰り返すことで、コンピューターは得られる報酬が最大になる方法を学習します。

3_image09.png

「ブランコを漕ぐロボット」も強化学習の典型例としてよく試作されています。ロボットは、自分の体にかかる重力や加速度を計測し、両膝の関節を曲げ伸ばしして、ブランコをなるべく大きく漕ぐことを学習します。ここでブランコの原理を物理的に説明しておくと、後ろの最高点から真ん中まで降りてくる間は膝を曲げてしゃがんでいると「支点から重心までが長い振り子」になるので、より長く加速できます。逆に、真ん中から前の最高点まで登っていく間は膝を伸ばして立ち上がると「短い振り子」になるので、より高い位置まで登れます。これを繰り返せば次第に振る角度を大きくできるのです。ロボットは加速度センサーの測定結果だけを頼りに、膝の曲げ伸ばしを色々と試してみて、この原理を自ら発見します。さらに、実は後ろから前に行く時だけでなく、前から後ろへも同じように膝を曲げ伸ばしすればもっと早く漕げるのですが、人間は恐くてできません。ロボットはすぐに前後両方で漕ぐ方法を発見して、最後にはブランコによる大車輪をしてみせるようになります。人間が思いもよらない漕ぎ方を見つけてしまうのです。

さらに、今回のコラムではAlphaGoの強化学習技術についても解説するつもりでしたが、ちょっと文量が多くなってしまったので、それはまたの機会とさせてください。どんな答えを出せばよいかが人間の意図によらず、決められたルールや物理法則によって定義できる場合では、人間には思いもよらない答えを発見することがあります。しかし現在のところ、それはゲームと制御の分野に限られています。

3_image10.png

さて、世界で初めてPOSをマーケティングに活用したと言われるセブン&アイ・ホールディングスの鈴木敏文名誉顧問は「データはあくまでも仮説を検証するために使うのです」と説明されています。人工知能もまた、闇雲にデータを与えるだけで何かを発見してくれる技術ではありません。どんなデータを与えると何を出力する技術なのかをよく理解し、それを具体的に何にどう使うかをよく考える必要があります。これは、従来のIT技術と同じですね。

現実のまとめ

  • 人工知能であっても、人間がどんな答えを出して欲しいのかを指示しない限り意味のある答えは出せない。したがって、人間が思いもよらない答えを出すことは難しい

  • ただし、どんな答えを出せばいいのかを人間の意図によらずに与えられる問題については、コンピューターの性能向上にともなって、これまで人間が見逃していた思いもよらない答えを発見できる可能性はある。そのような問題は、まだまだ限られている

  • 人工知能は、闇雲にデータを与えるだけでそこから何かを発見してくれる技術ではない

  • 何ができるのかを良く理解した上で、何に使うのかを良く考えるべき

付録:教師なし学習のちょっとだけ技術的な解説

教師なし学習のカテゴリーに属する技術はいくつかありますが、ここではディープラーニングでよく使う「次元圧縮」(次元削減とも言います)について説明します。

例えば、対象データを猫の画像としましょう。簡単のために画像のサイズを1000×1000とすると、RGBフルカラーならば一枚の画像データは1000×1000×3=3Mbyteになります。これを「300万次元のデータ」と言います。一次元あたりの情報量は1byte=8bitですので、全体では2400万bit、つまり「2の2400万乗≒10の720万乗」という膨大な情報量を表現可能です。しかしこれは、「全面が真っ黒な画像」とか、「フレディがライブ・エイドで絶唱するシーン」とか、はたまた「ムンクの叫びの写真」とか、猫画像としてはありえないデータもすべて数えた場合の数です。猫の画像と認識できるデータは、もっとずっと少ない情報量で表現できるはずです。

そこで、ディープラーニングでは「オートエンコーダー」というテクニックを使います。オートエンコーダーは、エンコーダーとデコーダーという二つのニューラルネットワークを組み合わせたものです。エンコーダーは3Mbyteの画像データを入力とし、例えば長さ1000の実数ベクトル(1000×32=32Kbit)を出力します。続いてデコーダーはこの実数ベクトルを入力として、3Mbyteの画像データを出力します。このオートエンコーダーに対して多数の猫画像を与え、エンコーダーに入力したものと同じ猫画像をデコーダーから出力できるように学習します。

3_image11.png
図1 オートエンコーダーによる次元圧縮

学習の結果、もしも十分な確率で同じ画像を再現できるようになったなら、中間にある長さ1000の実数ベクトルは「猫画像データの背後に存在する本質的な構造」であると言え、もともとの300万次元のデータ(24Mbit)を1000次元(32Kbit)のデータに圧縮して表現できたことになります。もちろん1000次元に圧縮できるとは限らないので、十分に再現できなければもっと大きな次元で試す必要がありますが、必ず300万よりも遥かに少ない次元に圧縮できます。なぜなら、1000×1000のカラー画像の中で、猫と認識できる画像よりもそうでない画像の方が遥かに多いからです。

こうしてできたオートエンコーダーに、例えば象の画像を与えてみると元の画像には再現できません。象画像は「猫画像データの本質的な構造」を持っていないからです。元に戻せないことから、与えた画像が猫ではないことがわかるので、異常検知に応用できます。

3_image12.png図2 オートエンコーダーによる異常検知

また、訓練データには無かった猫の画像を与えて1000次元に圧縮した時、その実数ベクトルは、与えた画像が「猫画像の本質的な構造」の中でどの位置にあるかを表現しています。したがって、その近く(ベクトルの距離が小さい)の実数ベクトルを持つ既存画像と与えた画像とは、「本質的に似ている」とみなすことができます。これを使えば、例えば、迷子になった猫を捜すシステムを作れるかもしれません。

3_image13.png図3 圧縮したベクトルを使った類似検索





筆者プロフィール:吉田裕之

ジャパンシステム株式会社チーフテクノロジーアドバイザー。南山大学客員研究員。 某大手電機メーカーにて、長年にわたって人工知能/ソフトウェア工学/オブジェクト指向技術の研究開発に従事。オブジェクト指向、Java、モデリング技術関連の著作多数。UMLモデリング推進協議会(UMTP)経営委員。Modeling Forumプログラム委員会副委員長。電子情報技術産業協会(JEITA)ソフトウェアエンジニアリング技術専門委員会幹事。OASIS OSCL PROMCODE TC メンバー。博士(情報科学)。

関連コラム

Adobe® Reader®

PDFファイルの閲覧には、Adobe® Reader®が必要です。

Adobe® Reader®のダウンロード

お問い合わせ