ロボマインド・プロジェクト、第129弾!
こんにちは、ロボマインドの田方です。
まずは、この写真見てください。
ドアがありますよね。
このドア、押して開けるってわかりますよね。
こっちは、引っ張って開けるってわかりますよね。
前ね、たしか、カラオケボックスやったと思うんですけど、取っ手がこの形で、引いて開けようとしたら開かなくて、あれっと思って押しても開かなくて。
ほんで、横にスライドしたら、ようやく開いたんですよ。
たぶん、みんな間違うみたいで、ドアがガタガタになってました。
取っ手とか、どう操作するかを示すデザインのことを「アフォーダンス」って言います。
アフォーダンスってのは、「与える」とか「提供する」って意味の「afford」から作られた造語です。
人と物の間に存在する関係性を示す認知心理学の概念です。
提唱したのは、アメリカの心理学者、ジェームズ・J・ギブソンです。
アフォーダンスって概念は、環境や物は、様々な使い方や動きをアフォード、提供してるって考えです。
つまり、このドアの取っ手は、
引っ張るって動作を提供してるわけです。
人が、これを見たとき、ここを引っ張れば、ドアが開くって思うわけです。
このドアは、
押して開けるって動作を提供してるわけです。
これを見たら、このドアは、ここを押せば開くんだなって思うわけです。
これがアフォーダンスです。
アフォーダンスの考えって、その物をどう操作するかってのは、人間がもってるんじゃなくて、その物が持ってるって考えなんです。
このアフォーダンスの考えを、プログラム言語で考えてみます。
すると、これって、オブジェクト指向言語の考えと同じって言えるんです。
オブジェクト指向言語ってのは、実際に存在するものをオブジェクトとして表現するプログラム言語の一種です。
オブジェクトは、属性を表すプロパティと、動きを表すメソッドを持ってます。
さっきのドアのアフォーダンスで考えてみましょう。
このドアオブジェクトは、引いて開けるメソッドを持ってるわけです。
このドアオブジェクトは、
押して開けるメソッドを持ってるってことなんです。
どちらも行うのは人間なんですけど、人間に動作をもたすんじゃないんです。
ドア側に、人間の動作を持たすってことなんです。
これがオブジェクト指向言語です。
さて、このオブジェクト指向言語、比較的新しいプログラム言語です。
それ以前からある一般的なプログラム言語は、手続き型言語といいます。
プログラム言語が、手続き型言語からオブジェクト指向言語に進化したってわけです。
どういう風に進化したのかっていうと、それは、プログラマーがプログラムしやすいように進化しました。
人が、自然に扱えるように進化したわけです。
もっと言えば、人が、頭の中で考えることを、そのままプログラムできるようになったわけです。
逆に言えば、手続き型言語は、人間中心で設計されてないんです。
じゃぁ、どういう風に設計してるかっていうと、入力されたデータをどう処理するかってことだけを考えてるんです。
さて、面白くなるのは、こっからです。
このプログラム言語の進化の話をね、脳の進化と対比させて考えてみたんですよ。
そしたら、いろんな話がキレイに繋がるんですよ。
それじゃぁ、始めますよ。
プログラムって、コンピュータの上で動きますよね。
進化的に古い脳で動くプログラムが手続き型言語と考えるんですよ。
進化的に新しい脳で動くプログラムが、オブジェクト指向言語とするんですよ。
脳の進化って、こんな感じです。
進化的に古い脳って、魚類とか両生類の脳です。
進化的に新しい脳が、ヒトの脳です。
これらの脳が、ドアを開ける処理をするとします。
まずは、進化的に古い脳の手続き型言語で考えますよ。
対象とするのはこのドアです。
目からの情報は、何十万、何百万の画素データとして入力されます。
それを画像処理して、取っ手の形から、ここを握って引くと判断します。
そこで、手を伸ばして、取っ手を握って引いてみます。
手続き型言語の設計思想は、入力されたデータをどう処理するかって言いましたよね。
つまり、今言った通りのことを、そのままプログラムに書くだけなんです。
じゃぁ、オブジェクト指向言語で書くと、どうなるでしょう。
まず、画像処理で取っ手のついたドアを認識したとします。
そしたら、取っ手のついたドアオブジェクトを生成します。
そして、生成したオブジェクトを仮想空間に配置します。
ドアオブジェクトは、開くメソッドがあります。
ほんで、取っ手には、つかんで引くってメソッドがあります。
さて、ドアを認識すると、手で取っ手をもって引きます。
この自分の手もオブジェクトです。
そして、この一連の動作を制御するオブジェクトもあるはずです。
これをコントロールオブジェクトと呼ぶことにします。
さて、この取っ手、なぜか、スライド式のドアに取り付けられたとします。
その場合、手で引っ張っても開かないわけです。
手続き型言語は、入力データをどう処理するかをプログラムで書いてあるので、取っ手の形状から動作が決まります。
なので、引っ張っても開かないと、あきらめるしかありません。
それでは、オブジェクト指向言語の場合はどうでしょう。
取っ手オブジェクトには、引っ張って開くメソッドがあるわけです。
でも、引っ張ってもドアは開きませんでした。
そこで、コントロールオブジェクトは、取っ手が付いてるドアオブジェクトの開くメソッドを確認します。
すると、ドアは、引く以外に、「押す」と「横にスライドさせる」のメソッドがあることが分かりました。
そこで、ドアを押してみます。
それでも開きません。
そこで、ドアをスライドさせてみます。
これで、ようやく開きました。
よかったですねぇ。
それでは、今の話、もう少し詳しく考えてみましょう。
手続き型言語だと、外界からの入力データから動作までが一つながりとなってます。
入力が決まると、行動が決まるわけです。
つまり、外の世界と一体になってると言ってもいいです。
オブジェクト指向言語の場合、目で見た外界にある物をオブジェクトとして生成して、頭の中の仮想世界の中に配置します。
そして、オブジェクトには複数のメソッドがあります。
たとえば、ドアの場合には、引いて開く、押して開く、横にスライドさせて開くといったことです。
これ、何を意味するかわかりますか?
これ、ドアの動作の可能性を示してるんですよ。
いくつかの開き方の可能性を、ドアが内包してると言えるんです。
だから、コントロールオブジェクトは、引っ張って開かない場合は、押したり、スライドさせたりと、他の動作を試すことができたんです。
もう一回考えますよ。
オブジェクト指向言語だと、なぜ、色々試して開けることができたんでしょう?
それは、ドアのあり得る状態を、いくつも持たせていたからですよね。
なぜ、そんなことができたんでしょう?
それは、現実世界にあるものを頭の中の仮想世界に創り上げたからです。
頭の中のドアオブジェクトは、現実のドアと同じように、いろんな開き方を持ってるわけです。
その可能性を試せる構造となってるわけです。
つまり、環境の変化に柔軟に対応できると言えます。
入力に応じて出力が決まってるだけのプログラムじゃ、環境の変化に対応できません。
魚類や両生類の脳より、ヒトの脳の方が環境に柔軟に対応できるってことです。
この話、まだまだ続きますよ。
オブジェクトって、コンピュータプログラムの用語です。
じゃぁ、脳科学だと、オブジェクトは何に相当するのでしょう?
それは、クオリアです。
クオリアって、一言で言えば、人が認識するもの全てクオリアです。
ドアとか、取っ手とか、全部クオリアです。
詳しく知りたい人は、クオリアってなんだシリーズ①~⑤をご覧ください。
それより、もっと重要な話があります。
さっき、一連の行動を制御するコントロールオブジェクトってのが出てきましたよね。
さて、これはいったい何なんでしょう?
オブジェクトって、現実世界にあるものをプログラムで表現したものでしたよね。
じゃぁ、コントロールオブジェクトって、何を表現したものでしょう?
わかりますか?
それは、意識です。
意識って、目の前にある物を認識したり、手や足を動かしたりしますよね。
つまり、取っ手オブジェクトを認識して、手で掴んで引いたりします。
まさに、コントロールオブジェクトが、意識になりますよね。
脳に当てはめると、ドアや取っ手を認識するのが意識となるわけです。
ここで、もっかい、アフォーダンスについて考えます。
アフォーダンスを提唱したギブソンは、取っ手が、人が引っ張るって動作を持ってるって言いました。
たぶん、本人は、比喩として言ってたんだと思います。
本当に、取っ手が、人の動作を持ってるとは思ってなかったと思います。
だって、取っ手って、ただの物体ですから。
でもね、オブジェクト指向言語プログラムでは、人がどう振る舞うかって、取っ手に持たすんですよ。
そんなことができるのは、意識が認識してるのは、現実世界にあるもの、そのものじゃないからです。
意識が認識してるのは、頭の中のオブジェクトだからです。
だから、取っ手に、人の動作ってプログラムを持たせることができるんです。
だから、ロボマインド・プロジェクトは、マインド・エンジンをオブジェクト指向言語で開発してるんです。
AIの研究は世界中で行われています。
でも、最新のディープラーニングでも、意識やクオリアまでは説明できてません。
脳、意識、クオリア。
このレベルまでプログラムに落とし込んで開発してるのは、世界でも、ロボマインド・プロジェクトだけといえます。
よかったら、チャンネル登録、高評価ボタンお願いします。
また、このチャンネルが電子書籍にもなりました。
説明欄にリンクを貼っておくので、興味がある人は、そちらもお読みください。
それでは、次回もお楽しみに!