それで、先ほどの「Software Eats the World」だが、じゃあ、ソフトウエアが食べるのは何なのか?ソフトウエアとは情報処理のプロセス。その中で、AIやIoTで従来、人が担ってきた知的活動も代替し得るようになりつつある。これらは実は知識社会における競争力の源泉。それがソフトウエアに食べられる、というと、じゃあ、人には何が残るんだろうか、という問いが残る。
さてでは、先ほどの二つのアプローチのうち、辞書はわかりやすいと思うが、脳の神経回路、つまりディープラーニングはわかりづらいかもしれない。さっきの仮想通貨同様、やや技術的になるが解説してみたい。
例えばネコの画像があったとする。脳の神経回路の一番表層には「それはネコかどうか」を判断する神経細胞があって、Yes or Noで判定する。ただ、そこに至るには、実はもっと多層の網の目のような神経細胞のネットワークがあって、低次の情報から高次へと伝播する判断が、最終的に先ほどの答えにたどり着く。
こいつをソフトウエアのアルゴリズムとして作って、この一つ一つの神経細胞が「Yes or Noの境目をどこに置くか(x)」と「次の細胞にどの程度の重みで伝えるか(w)」を大量データを使って繰り返し演算し、収束させていくという考え方自体は、もう数十年前からあった。私もいくつかのデータで試したことがあるが、ほとんど規則性のないデータでもほぼ十中八九、「当てる」ことができる数理モデルが得られる。数学的に言うと「非線形関数の再現性が高い、柔軟なアルゴリズム」ということだ。
ただ、厄介なのは、技術的な言葉で「過学習」というが、こういうやり方の場合、だいたい、「学習用データは精密に再現するが、ホントに判別や予測したい未知のデータでは使えない」という結果に陥りがち。なのでずいぶん長い間、実用には使えなかった。
ところが、これはほんのこの数年のことだが、あるエンジニアがこの神経回路網の手前に、画像の圧縮技術でいう「畳み込み」を行えば、未知のデータでも精度高く判別できるモデルが得られることを発見した。画像に適当なフィルターをかけてデータを加工・縮約するというプロセスを何回か、繰り返す、というもの。ちなみに、ここにあるフィルタは9マス中、真ん中の1段目と2段目が1で他は0だが、これを画像に適用するとどういうものが得られるかわかるだろうか?通常、こういうのを使うと輪郭抽出ができたりする。
今の画像解析や音声認識、あるいは機械翻訳には、正確にはテーマによってバリエーションがあるものの、こういった技術がベースになっている。