できるだけわかりやすく説明してみるという実験:オブジェクト指向という発明(その3)できるだけわかりやすく説明してみるという実験:深層学習(ディープラーニング)の基礎、ニューラルネットワーク

2016年06月26日

瞑想するコンピューター

仮想プログラミング言語で以下のようなものを書いたとする。

1: a=b+c
2: aを表示

1行目の"="は、数学では「左辺は右辺と等しい」という意味になるが、多くのプログラム言語ではそういう意味ではなく、「右辺の値を左辺の変数に代入する」という意味になる。
なので、"b+c=a"というものはありえない。
(aの値をb+cという変数に代入する、というのは明らかにおかしい)
このプログラムを実行した場合、bという変数の値とcという変数の値が足された計算結果が表示される。

僕は中学生の頃のにプログラミングを始めて、それから20年以上後にプロになったのだが、プログラムを学び始めの頃によく書く上記のような簡単なプログラムで、2行めを書くのを忘れたため、何も表示されずにプログラムが終わる、ということがたまにあった。
つまり、コンピューターは1行目の計算とその結果の代入だけをして、その結果を表示することなく終わるのである。
これはコンピューターとしては何も間違っていない。言われたことをそのままやっただけである。なので、何のエラーも出ることはない。
ただ、こちらが思っていることと違う動きをしているので、これはバグである。

やがて、もっと複雑なプログラムを書くようになった今になっても、時々似たようなことをやってしまい、なぜ値が表示されないのか、を探し続けることに時間を費やしてしまう、ということがたまにある。

計算は確かにやっているのだが、その結果を表示することをプログラムに書き忘れたために、何も表示されない、というのは、不思議なことだ。
人に何の結果も知らせることなく、自分だけが分かっているコンピューター。
これはコンピューターがひとり静かに瞑想しているようなものだ。

人工知能というものがまたまたブームになっているが、その多くは実用的な結果で人を驚かせるようなニュースばかりで、僕は退屈している。
人工知能が囲碁で人間を負かしただとか、顔だけで個人を認識することで鍵が解除できるだとか、Siriの性能が上がっただとか。
僕はそういうのはどうでもいい、と思っている。退屈だから。

実学というものは確かに技術を進歩させるために必要なものなのであろうが、人工知能に限っては、「『知能』とは何か?」ということがまず大切な問題として残っている。その考察をスキップしたままで、応用に走るために、何度か起こった人工知能ブームというものはいつも飽きられて終わってしまう。飽きられるのはしかたがないことだ。退屈なのだから。

人工知能の研究を実学ではなく、純粋な学問として扱うためには、一度、何らかの出力をさせることを諦めて、「ただ解っているコンピューター」というものを作るべきである。
つまり、上のプログラムの2行目を意図的に消し去ることで、人工知能はただ瞑想するだけの知能になることができるのである。 

OLランキングで1位になりたい!賛同していただける方は下記をクリック!
にほんブログ村 OL日記ブログ ドジOLへ
myinnerasia at 10:14│コンピューター科学 | 虚構
できるだけわかりやすく説明してみるという実験:オブジェクト指向という発明(その3)できるだけわかりやすく説明してみるという実験:深層学習(ディープラーニング)の基礎、ニューラルネットワーク