Chienomi

AIとディープラーニングと現実

情報技術

本当に流行ってる

最近、本当にAIとディープラーニングが流行っている。 割となんでもかんでもAIだディープラーニングだと言っている気がする。

両者をイコールでつないでいる人も多いと思うのだけど、別にそんなことはない。

AIというのは昔からあるものだし、ディープラーニングはどちらかと言うと以前流行っていた「ビッグデータ」という文脈にあって、これらがクロスオーバーする関係にあるのは事実だけれども、 ディープラーニング相当の処理というのはデータサイエンス的にAIを使わなくても意味を発生するものだし、別にAIはディープラーニングを用いなくても成り立つ。

おもしろいのは、この手のテクノロジーの流行り言葉というのは実態がないものになりがちで、「クラウド」なんかも、なんどもかんでもクラウドと呼んで何がクラウドなのか全くわからない状態になった。 AIに関してはやはり同様の状況なのだけど、ディープラーニングに関しては実際にディープラーニングしてることがほとんどだし、ディープラーニングが流行っているおかげでAIもディープラーニング型AIで実態があることが多い。

ディープラーニングAIの「使えなさ」

だが、実のところ「ディープラーニングAI」そのものは全然むずかしくない。 なにせ、「データ」と「ソフトウェア」があればよろしいわけで、今現在両方とも調達はあまり難しくないからだ。

だが、それが実用的かというとものすごく疑問がある。

ぶっちゃけ、「データを一定の基準で分析した」という事実だけでは意味があるものにはならないし、精度も担保されない。 というか、ここが地獄の一丁目だ。だって、「分析して、それに基づいて判断できる」という事実は発生するのだが、「それが正しいか」「精度はどの程度か」をちゃんと測定できるケースは極めて少ない。 結果、「誰にも有益さがわからないソフトウェア」のいっちょ上がりである。

コンピュータのプログラムというのは比較的明確な結論を出せることが多い。 特定条件での速度は計測で出せるし、目的を達成できるかどうかも明確な二値になることが多い。 ところが、AIの場合それはできないし、比較的シンプルな構造のAIは「設計に沿った動作をする」ことは最低限抑えているものなのだけど、ディープラーニングAIに至っては「データを解析して、それに基づいて振る舞う」ことが目的化してしまっているのでものすごくいい加減なものが出来上がるリスクは非常に高い。

そもそも、「明確な目的があるときにディープラーニングAIは適していない」と私は思っている。 なぜなら、ディープラーニングという手法が、根本的に「統計的に言えば多分こうなんじゃないかなぁ」というものなので、明確な目的があってそこに誘導するということにかけては最悪に近い手法だというのが私の意見だ。

実際、厳しい制約条件を与えれば評価軸が明確になるので間違えにくくなる。 例えばボードゲームのAIとしてディープラーニングという手法が有効であることは私はずっと以前から認めている。 ただし、もっと計算力にものを言わせる手法のほうが近道だとも言い続けているけど。オセロなんか既に完全解を出すことは現実的に可能なのだから。

ディープラーニングも有効な場合は本当に有効(もう、それは圧倒的に)なんだけれども、ブロックチェーンと同じで「最適解になるケースが極めてきわどい」タイプのテクノロジーだと思う。

しかし、ちゃんと測定する方法がない、つまり「その判断や認識が間違いであった場合に明確に自分に責任が降り掛かって痛い目にあう」という事実がないのが致命的で、この問題は精神医学とかでも同様なんだけれど、 「間違ってない」「こうなんだ」と言い張れるがために正しい方向に進んでいかない。

これはもう、

  • 複合語検索のときに関連するページ(探している情報がどうかに関係なく、入力した検索ワードに関する情報が言及されているページ)がどんどん遠くなるGoogle
  • 私が不快に感じてブロックしているタイプのアカウントばかりを執拗にプロモーションするTwitter
  • エロ画像を挙げて「LINEで友達になってね♡」とやっているタイプのスパムアカウント (しかも私は何度も違反報告している) を執拗に推薦するFacebook
  • 親切心で書いているレビューを抹消したり保留したり取り消しまくるAmazon
  • まるで欲しいものを当ててこないJRの自販機

などなど、「考え方が間違っているから突き詰めていくとおかしなことになる」ということは明らかなのだけど、 誰もそれを認めようとしない状態だ。

まぁ、間違っているなんて認めたくないものだもんね。 みんな現実から目をそらしたいんだよ。

Erinaとディープラーニングとデータサイエンティスト

Erinaの開発時は、そもそもErinaの存在自体「データ分析の正しさの程度を可視化するためのツール」であることからしても、 前節での問題を認識していて、それを回避するために自分に厳しくしていたことがわかる。

そう、Erinaはそもそもそれ自体を目的にしていたわけではなく、「データ分析の正しさを証明する、また間違った考えをしていればそれを私に突きつける」ために生まれている。 言ってみればデータ分析におけるデバッグツールである。

でも、実際のところErinaには相当な調整が入っている。 つまり、データ分析によって「正しさ」が確定できないところを「必ずこの場合はこの経路を通らなければならない」という制約を与えているのである。 調整値自体、すさまじく膨大なのだが、これがないとErinaに人間らしさを感じることができない。どれほど巧みに応答しても不自然なのだ。

結局のところ、特定の目的への到達のためだけではなく、曖昧さが許されるケースでもディープラーニングというのは結構低いほどほどのクオリティにとどまってしまう。 データを増やしても、分析を深めてもクオリティ向上とイコールではないのがディープラーニングの難しさだ。

というか、そもそもそこまでの次元を追い求めない限り実用的なレベルで望ましいAIにはならないのが現状だというのが私の意見で、 ディープラーニングで精度を出すというのはものすごく茨の道であるように思う。 コストもかかるし、そもそもそれはディープラーニングでやるべきことなのだろうか。

そして、データ分析というのは「決まりきったやり方に沿ってやれば結果が出る」とかいうものでは全然なくて、ずーーーーっとデータと真剣に向き合ってくることでなんとなくわかってくるもので、 完全に研究者の世界であるし、その分野を十年とか二十年とか関心をもってデータをとって向き合うということをしていないとデータをどうみればいいのかというのはなかなか見えてこない。 これはどんな研究分野でも同じだろうと思う。そんな数年程度で研究成果が出るのなら、世の大学生はもっと毎年革新的な論文を発表してくれているはずだ。

今までデータ研究なんかやっていなかった人がいきなりデータサイエンティストになったりするケースも多いし、やたら若い人がデータサイエンティストだったりするんだけど、 それは結果が出るのは望み薄だなぁ、と思う。稀にはそんなものを覆せるような才能ある人もいるだろうけども。

私だってそもそもErinaにつながるデータ分析の着手までに観察は7年やっているわけで、Erinaが形になるまでにはそこからさらに18年かかっているのだからデータ分析ってそういうものでしょ、という気がする。

異論はあるだろうけれども、少なくとも「不快感がなく、人間がやるよりも精度が出ているディープラーニングAI」という実例がほとんど私の体験にないというのが、今世にあるディープラーニングAIの現実ではないかという気がしてしまうのだが。

実用的AIとは

すっごく馬鹿にされるけど、ちゃんとチューニングすればテーブルAIって大変実用的。 電話の音声ガイダンスですらそれなりに実用的になるのだから、そこからユーザビリティを高めるようにすれば結構使えるようになる。

スコアリングAIは、スコアのつけ方のチューニングが結構大変で、条件管理も大変になるのでものすごく労力がかかる。 ディープラーニングは「そういう人力でやるロジックづくりを自前でやって楽をしよう」という考えなんだろうと思うし、そこはとても正しいと思うのだけれど、今のところそううまくはいっていないのではないか。

また、「有機的補佐を行うAI」としてはディープラーニングAIって割と有効だと思う。 例えばJRの自販機は飲みたいもの、好ましいものを推薦することはほとんどないのだけど(私に限らず、私の周囲でもほとんどない)、だからといって困るわけではない。 そういう付加的要素に使うぶんには外したところでダメージは小さいのでアリだと思うのだ。 だが、Googleのように本質的機能に取り込んだり、Facebookのようにユーザビリティに致命傷を与えたりするのはダメだろう。

あと、推薦する場合は推薦がユーザーにとって本当に望ましかったかを検証することは必須なのだけど、 結構「誤クリックを誘うことで推薦した結果に対するリアクションをさせる」という「ディープラーニングの正しさをかさ増しする」という行為をすごくよく見かけるので、「そのAIに価値がなくて邪魔になっていることを認識してるんじゃないの?」と思ってしまったりもする。

本当に本質をAIに担わせたいのであれば現在の取り組み程度ではダメで、もっと現実と向き合って積み重ねていかないといけない。 実際、私はその末にErinaを生み出しているわけで、それは説得力ある材料と受け取ってもらえるのではないだろうか。

だからAIはどちらかといえば補助的な用途に留めるべきで、補助的な用途はユーザーを補佐することに限り、ユーザーを阻害することをAIに委ねるべきではないと思う。 目的を達成するためであれば条件が明確に限定されたAIを用意すべきで、その場合でも対応しきれない場合はスムーズに確実な方法にパスできるようにするほうが問題は複雑化せず実用的だろう。