gihyo.jpの連載なので、今回はちょっとテクノロジ的な側面について触れてみます。
人工知能や機械学習で扱うデータは多段である
人工知能でも機械学習でもディープラーニングでもなんでもいいですが、そこにあるのは「処理」と「データ」のセットです。それはあたりまえなのですが、ここで重要なことは“このセットは多段である”ということです。
AlphaGoの成果などでは、こうした「ある処理をして、次にこういった処理をして」という、多段的な処理にもわりあい言及されていましたが、なぜかこうした記事では「○○という処理で」と処理一発みたいな表現をされることがよくあります。不思議です。
さて、もう1つ重要なことがあります。
それは「最初のデータは現実の現象から変換されている」ということです。
たとえばAmazonレコメンドですが、これは「消費者が商品を買う」という行為が購買履歴というデータになっているのがスタートです。ディープラーニングによる顔認識にしても、実際の映像をカメラがデジタルデータに落とすというのがスタートです。
数論などの研究はさておき、ビジネスに活用する場合あらゆるデータは、必ず何らかの現象が変換されたところからスタートする、ということを意識するかしないかで全然取り組みも変わってきます。
現象をデータに変換するとき、避けて通れない問題が、「どう数値化するか」というものです。
コンピュータで処理するためには、データは数値である必要があります。映像をJPEGにするなら、色味の差などの現像の調整はさておき、そこまで数値化について悩むことはありません。
しかし、たとえば、購買履歴の場合、買ったを1にして買わないを0にするのはわかりやすくて単純な変換ですが、それが本当に良い数値化なのかはどうかはまた別問題です。
購買履歴によって相関を求めるというのは、購買に人間の興味というか意思が反映されているというのがその前提なので、興味や意思の強弱があるのであればそれを反映したほうがより精度の高い相関が出せるかもしれません。
カメラ本体を買うのと、記録媒体としてSDカードを買うのは、そこに見られる意思の強弱に差はありそうですし、定期購買するようなものは10回買ったら10回の購買履歴として扱うよりは直近1回かもしくは対数的な変換をしたほうが良いかもしれません。
このように、数値化を人間のセンスに任せるのか、それも強化学習などで最適化していくかは、なかなか興味深いテーマです。
人工知能は処理自体を生み出すことはできませんが、処理で扱うデータの数値化は、教師データが多ければ人間より得意になっていくでしょう。
データを次元として扱う
さてこの現象の数値化ですが、1つ大変重要な概念があります。今回は「重要な」ばっかりですね。
それは数値を個々で扱うのではなく、次元として扱うということです。次元は行列と呼んでも良いですし、ベクトルと呼んでも良いです。高校数学が役に立つ場面がやってきました笑。
データをバラバラに扱うのではなく、ベクトルという概念で扱うことで、人工知能や機械学習での活用の可能性が飛躍的に広がります。ここでもう少し正確を期せば、数値をベクトル化すること自体が重要なのではなくて、数値、すなわちデータの相互の関連性を見出すことが重要で、その典型的な手法がベクトル化である、ということになります。
よく映画で、粗い衛生写真がだんだんスムースになっていく(スムースというのは滑らかという意味です)ようなシーンがありますが、あれも画像データ同士の関連性を利用しています(映画のシーンは演出がアレですが)。
Amazonレコメンドのような相関で使われる手法も、基本的な考えは購買履歴をベクトル化してその平均ベクトルと個々のベクトルのなす角度が広いか狭いかというものです。
最近ちょっと話題になっているGoogleのGNMT(Googleニューラル機械翻訳=Google Neural Machine Translation)ですが、これもその基礎的な部分に「文脈を単語群のベクトルとして扱う」という概念が利用されています。また、同じくGoogleが公開しているTensorFlowは、Tensor(テンソル)=ベクトル、行列空間を扱うための概念から来ています。
カギを握るのは「ベクトル化」
つまり、ちょっと乱暴ですが、現在の人工知能や機械学習というのは「現象(自然界)をどうベクトルデータとして表現し、そのデータを処理していくか」というアプローチがその中心にあるといっても過言ではないのです。
もちろんベクトル以外のデータ形式もたくさんありますが、それは言い換えれば「ベクトル化することで成果の飛躍が期待される」ともいえるのです。GNMTなどはその良い例でしょう。
もちろんベクトルですから、数値化の際の値が違えば、文字どおり「明後日の方向を向いて」しまいます。ベクトル化で全部解決、ということではなく、むしろより数値化が適切かどうかの重要性が増すとも言えるのです。
RSAの登場によって、素数が強力な暗号を生み出すという、数学が産業界で強力な武器になるという前例がありますが、幾何がビジネスに大きく活用されるというのは、不思議というか気持ちが良い感じがしますね。私だけでしょうか笑。