AI、機械学習、Deep Learningの関係性
ここ数年至るところで、AIや機械学習やDeep Learningなどバズワードとしてよく聞くようになったが(一昔前のIoTとまったく同じ香りがする)、結構な確率でこの3つをきちんと理解できておらず聞きかじりで喋っている人が散見されるので、今回はまずこの3つの関係性について基本を簡単におさらいしてみる。
意図としては今取り組んでいるEdge AIについて話そうとした時、この回をおさえておかないと後々の話が噛み合わなくなってしまうので。
(今回は技術的なところは一切省いて説明します。)
関係性、答えから言うとこんな感じ。
AI = 全体の総称。それ自体にはあまり具体性はない。
機械学習(ML)= AIの中の一部。様々なケースに応じた代表的なアルゴリズムがあり、データの種類、用途によって使い分ける。ただしかなり人が介在しないと動かない。(様々な設定やチューニングが必要で、ちゃんと動かすにはそれなりの専門知識が必要。なによりもデータの下準備に骨が折れる)
Deep Learning = MLの中の一部。人の介在を最小限に抑えて、爆速的に自動で学習できるようになる。またデータが有ればあるほど精度が上がる。ただし課題(適応領域の狭さやBlackbox化など)も多々。
ってなります。実はこれググったら多分よく出てくる笑
でもこれではまだモヤモヤが晴れない人もいるはず。そう、機械学習以外でAIって何?っていう部分が抜け落ちているから。
これ実は最近のDeep Learningとか機械学習ブームから、AIに関わるようになると陥りがちな視点。
機械学習はAIの一部で、昔から機械学習を用いないAIは世の中に沢山存在している。(例えば有名どころだと、IBMのワトソンとか)
AIの定義を再確認すると、人工的に人間の脳(知能)を模倣することがゴール。Deep Learningとかは人間の視覚・認知とかのパーツとしては優秀だけど、我々の脳が処理しているすべてをDeep Learningで置き換えることは出来ない。
目的に応じて必要な技術を使い分ける、ことがとても大切。
例えが的確かわからないけど、”ロボット”っていうと、日本人はすぐに二足歩行のものをデザインしがちだけど、目的によっては足とかなくてもいいよね、っていう感じに近い。かな...
だから、よく説明とかで
「AIを活用して〜」
とか聞くけど、そういうときはAIって何を意味しているのか質問してみてみるといいかもしれない。
大概の場合、あやふやでとんちんかんな答えを返してくるか、もしくはシンプルな機械学習のアルゴリズムを、ごりごり労力をかけて動かしているだけだったりする。(労力をかけて動かす=それ以外の用途には使えない。横展開できるようなソリューションではないため、かなり決め打ちソリューションになりやすい)
言い方を変えると、昔からすでに使っている簡単なアルゴリズムを単純にAIって読んで今風にしているケースが散見される。
なぜそうなるのか?
機械学習を高度に扱うには、Data Scienceのバックグラウンドが必須で、正直普通の企業でそれら人材を囲うのは難しい。よく見るのが今までSoftware Engineerだったりちょっと統計とかかじったことある人が手を染めているケースが多く、その場合今までやってきたことをそのまま踏襲してるだけのことが多いから。(それをAIって読んだほうが、マーケティング的にイケてる風になる)
誤解をしてほしくないのは、複雑で高度な機械学習を駆使することが必ず良い、といっているわけではない。
簡単であればあることに越したことはないし、シンプルに問題を解決できるのであればそれが一番なのは間違いない。(例えばDeep Learningなんて使わずに、SVMで解決できるのであればそれでいい。)
用法用量をよく理解した上で、その技術を必要な分だけ適材適所に使用すべき、というだけの話であり、そのためにはまずは大枠をきちんと理解する必要がある。でないと無駄にオーバースペックなものを使って、結果コストが見合わず導入されない、なんてことになってしまう。技術は問題を解決できて、初めて価値が生まれる。単なる技術だけだったら、一円の価値にもならない。
今後機会をみて機械学習やDeep Learningなどについても書いてみようと思います。
"Simplicity is the ultimate sophistication"
~ Leonardo da Vinci