脳と人工知能の情報処理に違いはない『思考する機械コンピュータ』
この記事は約 8 分で読めます
今回の書評は『文庫 思考する機械コンピュータ (草思社文庫)』です。
コンピュータの原理をユニークに解説
コンピュータは水の流れをコントロールする仕組みでも作れる。
本書を読んだ大学生の当時、私は何のことかよく理解できませんでした。コンピュータは電気で動くもの、電卓は電池で動くもの、という常識を越えることができませんでした。
コンピュータは「計算」という目に見えない機能を持つ機械です。「計算を機械にやらせる」という目的の実現のためには、電気を使おうが水を使おうが原理があれば形の問題ではありません。そのことを当時はわかりませんでした。
本書はコンピュータ科学の解説本です。取り扱い範囲は、ハードウェアとしてのコンピュータの原理、プログラムの原理と考え方、有限オートマトン、並列処理、量子コンピュータ、人工知能などです。入門書として読むにはやや難しいトピックが多いでしょう。
著者のダニエル・ヒリス氏はアメリカ生まれの発明家です。早熟の天才で、 10 歳の頃にはコンピュータ科学の専門書を読んでいたようです(訳者あとがきより)。天才であるがゆえに、わたしたちにはできない見方ができるのでしょう。
確かに、最初に発明された計算機(解析機関)は木と歯車で作られました。ほとんどのコンピュータの歴史書にはバベッジの解析機関として写真つきで解説があります。
しかしそれらの歴史書には、木の計算機でどうやって 1 ビットを表現したのか、 AND/OR/NOT といった論理演算をどうやって実現したのか、などの原理については書かれていません。本書の導入部では木や水流を使って論理演算を実現するにはどうすればよいか、イラスト付きで解説しています。
このような切り口でコンピュータ科学を解説している本は他にはありません。
IT やコンピュータの原理を学びたい人、高校や大学の授業で計算機科学を勉強している人にとっては最適な副読本でしょう。普通の教科書にはないアプローチは新鮮ですし、より深い知識を得ることができます。
木や水を使ってもコンピュータは原理的に作れます。しかし現在市場にあるスマートフォン、デスクトップ PC, ラップトップ PC, 京などのスーパーコンピュータまで、すべての計算機は電気を使っています。電気を使うのは小型化、高速化、大量生産が容易だからです。
今後は小型化と高速化がさらに進み、量子コンピュータ(電気ではなく原子で計算)が実現するでしょう。
本書は 2000 年に初版されましたが、著者は既にそのことを予言していました。
コンピュータは階層で理解せよ
データ、情報、知識の違い
本書で語られている内容の中で最も大切なことの 1 つ、それは「コンピュータは複数の機能を階層的に積み重ねた発明」の部分です (p.43) 。
コンピュータ、 IT 技術はどちらも広範囲な知識が求められます。例えば IoT (もののインターネット)を理解するにはハードウェアやソフトウェアの知識だけでなく、通信規格、法律、経営も知っている必要があることは別記事で解説しました。
関連記事:先端かつ横断的な技術の融合で新しい社会へ『IoTとは何か』(IoT検定を通じて広く深い知識が求められることを痛感した)
コンピュータをマクロ的(全体的)に見るのと、ミクロ的(細かく)見るのでは景色が違います。
例として、インターネットの標準的な階層構造である OSI 参照モデルと、コンピュータが扱うデータの階層を図にまとめました。
OSI 参照モデルは全 7 層が定義されています。各層でやるべきことと、現実に存在する機器やソフトウェア、サービスは違うものです。図の右側にある具体例はその一例です。
OSI 参照モデルはネットワーク構成の世界標準です。詳細は他の解説にゆずります。まずはインターネットの実現に階層構造が使われていることをご理解ください。
外部リンク:OSI参照モデル – Wikipedia
次に、コンピュータが扱うものの階層です。ここでは全 4 層としました。
最初の層は「状態」です。信号といってもよいでしょう。最小単位をどのように決めるかです。ここでは2進数とします。数学的には 1/0, 電気的には電圧の高低、先に紹介した水の流れであれば弁の開閉状態でしょう。
次にデータの層です。データは状態の組み合わせです。例えば 2 進数の 8 桁で00110000は、 0 と 1 を組み合わせたデータです。記号の列といってもいいでしょう。厳密には複数でなくてもデータにはなります。
この 00110000 は 16 進数にすると 30 です(サンジュウではなくサンゼロ)。この 30 も表現こそ違うものの、 2 桁の状態の組み合わせなのでデータです。
第 3 層でデータが情報になります。先ほどの30はただの数字ですが、単位をつけてみましょう。 30 歳となれば「年齢」、 30 kg となれば「重さ」、 30 度となれば「角度や温度」となります。 30 という記号の列が初めて「サンジュウ」という数字として意味を持ちました。
そして第 4 層です。知識は情報の組み合わせです。先ほどの 30 kg に別の情報「鉄 (Fe) 」を組み合わせましょう。例えば「この鉄は 30 kg です」となると知識です。
この文章も情報ではないのか?という指摘も正しいです。ただし情報と知識の違いの議論を始めると哲学的になり終わらなくなる可能性があります。ここではあえて「単独で存在する(または情報量小)のが情報、複数の情報(情報量大)を知識」としましょう。
このように、階層が上がるにつれて扱うものも複雑になります。しかし個々の層を見ても必要不可欠なものです。
コンピュータの思考も計算の一部
長くなりましたが、コンピュータの計算階層についても取り上げましょう。上の図をご覧ください。
先ほどの「データ(状態の組み合わせ)」と「情報(意味を持ったデータ)」に区別があるように、「論理演算層 (1/0 の計算) 」と「データ処理層(意味を持ったデータの計算)」が別で存在します。データ処理の原理として論理演算があります。
第3層の情報処理はさらにアプリケーションに近くなります。
例えば、顔をカメラで取り込んで 1/0 の画像データとします(データ処理)。この画像データから顔立ちや輪郭を分析し「この顔はだれなのか?」を特定します。この「個人を特定する」という顔認識処理はデータ処理を超えて情報処理です。
しかしコンピュータの能力はここで終わりません。さらに上の層、最上位の第 4 層は思考処理(判断)です。
例として入国審査(認証)を想定しましょう。ある人の顔をカメラで画像にして(データ処理)、その画像から個人を特定しました(情報処理)。この人は入国してよいでしょうか?それとも国際手配リストにある危険人物なので入国させるべきではないでしょうか?判断が求められますね。
判断は思考の処理、まさに人工知能の機能になります。空港には自動入出国審査システムが導入されてきています。認証精度が上がってきて実用化できるようになりました。
このように、各層にはそれぞれ役割があります。そしてコンピュータは各役割の総合力で機能しているのです。コンピュータは他の機械や工具などとは違います。
しかし脳や人工知能(AI)は階層で説明できない
複数の階層がきっちり機能することで、トータルとしても役割を果たすのがコンピュータでした。
しかし著者は言います。人工知能は階層で説明できないと。
これはどういうことでしょうか?もう少し踏み込んでみましょう。
現在活躍している人工知能のモデルはニューラルネットワークという脳の神経回路を参考にしたモデルです。イラストにするとこのようになります。
ニューラルネットワークには大きく分けて 3 つの層があります。
- 1つの「入力層」
- 複数の「中間層」
- 1つの「出力層」
入力層と出力層については役割が明確です。しかし中間層については違います。
中間層は理論的には無数に配置できます(上の図では 3 層)。しかしこれまで説明してきたように一層ずつの役割については説明できません。中間層の最初の層でデータを処理して、次の層で情報を処理して、という形で説明できません。全層のバランスで思考を処理するからです。
これが今までのテクノロジーで説明できない新しいモデルです。
ニューラルネットワーク自体は数学的にモデルを説明できます。しかし数式中のパラメータに明確な意味を与えられません。
例えば物理で有名な式、 F = ma や E = mc 2 では m は質量、 c は光の速度という具体的な定義ができます。しかし、ニューラルネットワークの各層に意味付けができないように、ニューラルネットワークの数式中の記号は「重み」という漠然とした定義しかできません。
これまでの科学技術では、根拠が明確でないモデルは認められませんでした。しかし、原子や量子力学など超ミクロの世界では、これまでの物理法則や因果関係で説明できないケースが増えてきました。
そこで、なぜかはわからなくても答えだけ出してほしいという数学モデルの研究が進みました。これを発見的手法といい本書でも解説があります(第 5 章)。
入力と出力はあるけど、原因と結果の関係は説明できないモデルが人工知能です。
著者は言います。脳も人工知能も同じ仕組みであると。少し長いですが、本書から引用させていただきます。
脳はひじょうに複雑なだけでなく、その構造が工学的手法で設計された計算機のそれとははっきり異なる。この違いを認識することは重要である。だからといって人間の脳の機能を実現できるマシンが絶対に設計できないということではない。しかし、この違いがあるので、階層的に設計されたマシンを分解して理解するのと同じ方法で、人間の脳の働きを理解することはできない、ということである。
今までは 1 つのものを小さなモデルに分解して、各モデルを順番に説明する(原因と結果が説明できる)研究がメインでした。しかし今後は「原因と結果が明確なモデル」から「因果関係が不明確なモデル(確率的モデル)」の研究への重要性は高まるでしょう。
その一例は金融工学です。元々は統計と確率論の方法で研究が進んでいたため、 AI との相性は良いです。
別記事で紹介したロボットアドバイザー( AI 資産運用)は既にサービスが提供されています。株価や為替相場が上下する理由は一応ありますが、要因が複雑すぎます。そのため、原因はわからなくても結果的に損をしなければよいので使われているのです。
関連記事:お金はテクノロジーで増やせるか?『金融工学、こんなに面白い』(ロボアドバイザーは金融工学の新しいツールになるか解説)
このように、本書ではAIができるまでにどのようなモデルが研究されてきたのか、知ることのできる歴史書にもなっています。
先人たちが試行錯誤してきた跡をたどってみるのも面白いですよ。