人工意識:脳のようなニューラルネットワークを作れば「意識」は生まれるか(3)

意識とニューラルネットワークとの関係について、もう一つの重要な観点をお話します。

そもそも私たちはモノを認識する時、まず最初に、目の網膜に投影された画像の色を認識します。赤、緑、青、黄色、銀色、白、黒など、様々な色を認識し、次に色の変化から形を認識し、背景なども認識し、対象物が何であるかを認識します。「この色とこの形だと、これは○○だ」のように、対象物を認識する根拠として、色や形を使います。「橙(だいだい)色で、この丸みで、表面のブツブツ状態からして、これはミカンだ」などと判断します。

これに対し、コンピュータによるニューラルネットワークなどの画像認識では、対象物の色や形など全ての情報は数値に変換されて、ニューラルネットワークに入力され、演算処理がなされます。つまり、ニューラルネットワークの中では対象物の色や形は跡形もなくなくなり、全ての情報は数値に変換され、演算されて認識されるのです。画像認識で最も高い性能を出しているディープラーニングのコンボリューショナル・ニューラルネットワークでも、形の特徴を捉える工夫はあるものの、全て数値で演算され、認識されるところは同じです。

このように人の脳とコンピュータのニューラルネットワークは根本的に認識過程が異なるのです。

ここで重要なことは、人間の目や脳が、自然界には存在しない「色」を作り出している事です。自然界には本来「色」なるものは存在しません。自然界に存在するのは光(電磁波)です。この光を目の網膜や脳が色に変換して、つまり、色を作り出して認識しているのです。

「そんなことはないよ!そこに赤いリンゴがあるじゃないか。赤い色が存在するから赤いリンゴがあるんだ」と思う人も多いと思いますが、実は「赤い」リンゴは人間の脳が作り出した存在で、そこにあるのは「波長700nmの電磁波を反射する」リンゴなのです。網膜や脳により、波長350nm~750nmの電磁波(光)は、紫、青、緑、黄、赤などに変換されます。この変換により、リンゴは赤色として認識されるのです。七色の虹も同様で、空に浮かんでいるのは単なる水蒸気ですが、水蒸気により電磁波が波長ごとに分離し(屈折率の違いから)、それが目や脳により七色に色付けされて、カラフルな虹として認識されるのです。

これに対してコンピュータでは、赤、緑、青(RGB)という三原色の光を数値に変換して入力し、演算処理をします。つまり、色としては認識せず、RGBの数値を用いて認識するのです。

つまり、光の波長(数値)を色に変換して色として認識する人間と、色を数値に変換して数値の大小で認識するコンピュータという対称的な構図が存在します。

私達が感知することのできないテレビ電波などの電磁波が全く無味乾燥な存在であるのと同じように、波長350nm~750nmの電磁波(光)も本来無味乾燥な存在のはずです。人の脳がコンピュータのように認識するのであれば、それをわざわざ色に変換する必要はありません。ディープラニングが行っているように、波長400nm、550nm、700nm(青、緑、赤)の光の強度の大小で演算処理をして、画像認識をすればよいのです。それにもかかわらず、なぜ目や脳は電磁波を味わい深い豊かな色に変換するのでしょうか?

私には、それは人間の「意識」に対して、外界の状況をテレビのように投影するためのように思われるのです。つまり、人間の「意識」という主体が外界を分かり易く認識できるように、目や脳が外界の様子を投影して見せているように思えるのです。

もしそうであるならば、コンピュータ上で動作するニューラルネットワークをいくら複雑に作ろうとも、いくら膨大なシステムにしようとも、人間の意識が生まれることはないと言えるでしょう。

人工意識:脳のようなニューラルネットワークを作れば「意識」は生まれるか(2)

2016/12/24昼過ぎにNHK教育番組を見ていたら、「人工意識」なるものを作る研究を行っている大学教授が出ていた。最近の意識に関する研究の進展から、意識は脳全体の情報を統合的に取り扱うことで生成される事が分かって来たので、これを人工的にコンピュータ内に作る研究を進めている、と発言していた。

研究は多種多様な観点から進められるべきだし、このような研究が行われることに全く反対はない。いろんな人がいろんな観点から自分の信じる研究を進めればいいと思う。ただ、その際に注意してほしいことは、まだ分からないこと、解明されていない事は「まだ分からない、解明されていない」とはっきり言う事だ。

脳と同じようなニューラルネットワーク構造をコンピュータ内に作れば意識が生まれる可能がある、という発言は、人間は機械のようなモノ、と捉えた場合に単純に導かれる発想と言える。私はそんな発想は思慮が足りないと考えるが、それは前の記事でも書いた数学的処理の観点からだけでなく、知識獲得の本質的な観点からも重要な点を見落としていると考えるからだ。

マイケル・ポランニーという天才科学者・哲学者が書いた「暗黙知の次元」という本がある。10年ほど前に読んで深く感動したことを今もよく覚えている。その中に「あるレベル(次元)の機能を統合的に制御するには、それより上のレベル(次元)の機能が必要である」という内容の記述があった。例えば、自転車に乗るためには、下位レベルの機能である手足が動くだけではダメで、それらを統合的に制御する上位レベルの機能である脳が必要である、ということだ。脳が手や足の動きを統合的に制御して初めて自転車にうまく乗れるようになる。

これは脳の働きに焦点を当てた場合にも適用される。脳は、モノを見たり(画像認識)、聞いたり(音声認識)、計算したり(演算処理)する各機能を有しているが、これらをある目的のために行わせたり、制御したりする統合的働きをするのが意識である。ならば、意識はこれらの機能より高いレベル、高い次元の存在でなければならない。つまり、ニューラルネットワークで実施した画像認識や音声認識を統合的に制御する意識の役割は、同じ次元であるニューラルネットワークでは担う事ができないことになる。
次元が異なるということは、基本構造が異なることを意味しているので、意識がその役割を果たすにはコンピュータ内に構築する数学処理とは異なる構造が必要と考えられる。

このような観点からも、意識とは何かを考察することが重要だと思っている。

3次元空間の回帰直線の求め方

2次元平面上に存在する複数の点からその回帰直線を最小二乗法で求める問題はよくあるが、3次元空間に存在する複数の点からその回帰直線を最小二乗法で求める問題はあまり見ないようなので、ここにその解法を書いておきます。

原点を\(O\)とする3次元座標系において、点\({ P }_{ 0 } ({ x }_{ 0 },{ y }_{ 0 },{ z }_{ 0 })\)から点\(P (x,y,z)\)に至るベクトル\(\vec {P_0P}\)(これが求める直線)とすると、ベクトル\(\vec { OP }\)は次式で表される。
\[
\vec { OP } ={ \vec { O{ P }_{ 0 } }  }+\vec {P_0P} \qquad (1)\\
={ \vec { O{ P }_{ 0 } }  }+t\vec {e} \qquad (2)
\]
ここで、\(\vec {P_0P}=t\vec {e}\)であり、\(t\)はベクトル\(\vec {P_0P}\)の長さ、\(\vec {e}\)は\(\vec {P_0P}\)の単位ベクトルである。
\(\vec {e}\)の成分を\((a, b, c)\)とすると、点Pの各座標は
\[
\begin{array}{c}
x = x_0 + at \qquad (3) \\
y = y_0 + bt \qquad (4) \\
z = z_0 + ct \qquad (5)
\end{array}
\]
となる。ただし、\(a^2+b^2+c^2=1\)。
方向単位ベクトル\(\vec {e}\)のz軸方向の成分が\(0\)でない、つまり\(c≠0\)ならば式(5)から
\[t = (z_0-z) / c \qquad (6)\]となる。
もし、z軸方向の成分が\(0\)、つまり\(c=0\)ならばベクトル\(\vec { t }\)が示す直線は\(x,y\)平面上にあるので、通常の2次元平面上の直線となり、普通の最小二乗法で解を求めることができる。
さて、式(6)を(3)、(4)に代入すると式(7)、(8)が得られる。
\[
x = Az + B \qquad (7)\\
y = Cz + D \qquad (8)\\
y = Ex + F \qquad (9)
\]
式(7)、(8)から\(z\)を消去して\(x,y\)の関係式(9)を算出した。ここでは、\(A=a/c、B=(x_0-Az_0)、C=b/c、D=y_0-Bz_0\)と置き換えている。
式(7)、(8)、(9)はそれぞれ\(zx\)平面、\(zy\)平面、\(xy\)平面における直線式を表している。
この各々の2次元平面において、以前書いた擬似逆行列で回帰直線を求める方法を用いて式(7)、(8)、(9)の係数6個を求める。
つまり、3次元空間に存在する全ての点\((x,y,z)\)の中から、\((x,z)\)の座標を式(7)に入れて係数\(A,B\)を求め、\((y,z)\)の座標を式(8)に入れて係数\(C,D\)を求め、\((y,x)\)の座標を式(9)に入れて係数\(E,F\)を求める。

これにより最初に設定した\(P_0\)の未知数3個と、方向ベクトル\(\vec {P_0P}\)の3つの未知数を全て算出できる。なぜならば、\(\vec {P_0P}\)の未知数は、\(t\)の長さとその単位ベクトルの未知数2個であるからだ(\(a^2+b^2+c^2=1\)より未知数は2個)。このようにして擬似逆行列で求めた直線は各点からの距離が近い回帰直線となる。

<補足>
式(3)、(4)、(5)では、\(t\)はベクトル\(\vec {P_0P}\)の長さとし、\(\vec {e}\)を\(\vec {P_0P}\)の単位ベクトルとした。そして、単位ベクトルの条件(\(a^2+b^2+c^2=1\)から、係数を一つ消去することで、未知数が6個であると説明した。
この考え方でよいのだが、より簡単に計算するには、式(5)の\(ct\)→t’と置き換えることで式(3)、(4)、(5)は以下のように書き換えられる。
\[
\begin{array}{c}
x = x_0 + a’t’ \qquad (3′) \\
y = y_0 + b’t’ \qquad (4′) \\
z = z_0 + t’ \qquad (5′)
\end{array}
\]
この式から、未知数は\(x_0, y_0, z_0, a’, b’, t’\)の6個であることが分かる。この後は上式(6)以下と同様に変形して、未知数を算出することができ、3次元空間の回帰直線が求まる。

人工意識:脳のようなニューラルネットワークを作れば「意識」は生まれるか(1)

人工知能を研究している大学の先生の中には、人工知能の代表的な手法であるニューラルネットワークの結合数を人間の脳のニューロンの結合数並みに増やしていくと、量が質に変わり、人間のような「意識」がコンピュータにも現れる、と言う人がいる。

一般の人もこれに同調して、「なるほど、人間の脳と似たような人工神経回路網をコンピュータ内に作れば、人と同じような意識がでてきても不思議はない」と言う人が少なからずいる。

全く笑止千万だ。

コンピュータ内に作られたニューラルネットワークを支配するのは数学計算である。ディープラーニングの層数を現状の10層から1兆層に増大したとしても、数学的処理の層数が10層から1兆層に増えるだけで、そこに新たな生命体の息吹である「意識」が生まれることは決してない。あくまでもプログラム通りに1兆層の計算を行うだけであり、コンピュータに意識が生まれることはあり得ない。

たとえて言うならば、10+10=20 であるが、1兆+1兆=2兆 ではなく、数が大きいので量から質への変換が起こり、2兆+α(計算結果以外のモノ) が正解となる、と主張するようなものだ。数学において、この+α(計算結果以外のモノ)が発生する余地は全くない。

私はディープラーニングの画像認識プログラムや強化学習プログラムを全て自分で作成してきたので、人工知能が内部でどのような計算をしているかは全て把握している。そこで行う計算は四則演算(掛け算、割り算、足し算、引き算)である。\(\sin { \theta } \)や\(e^x\)や\(\sqrt {x}\)などの計算が入ることがあるが、これらもコンピュータ内では四則演算で近似されて計算されるので、コンピュータ内での演算は全て四則演算である。それゆえにディープラーニングで四則演算を1兆回行おうが、1兆の1兆乗回行おうが、数値計算の誤差は出るが、計算結果以外の何かである+αが生まれることはあり得ない。

もちろん、ニューラルネットワークの層数が1兆個に増えれば、とてつもなく複雑な処理が可能になり、人間の頭脳よりも繊細できめ細やかな処理や表現が可能になるであろう。まるで感情があるかのような発言や行動が出来るようになるであろう。しかし、それはあくまでもプログラム通りに数学演算が多数回行われた結果であり、計算とは別の「何か」「意識のようなモノ」が生成されたということでは決してない。

このような数学の基本法則からして、ニューラルネットワークの層数を人間の脳内のニューロンの結合数に近づけると「意識」が発生するなどという考え方は、まったく滑稽である。後日、別の観点からもこの問題について考察したい。

人工知能と機械学習

最近、人工知能という言葉がテレビやインターネットで見られない日はありません。毎日頻繁に人工知能の進歩の状況や、人の仕事が人工知能にとって代わられる、などの様々な話題が報じられています。

この人工知能という言葉は、知能を持っているかのようなソフトウェアのことを指し示していますが、これは機械学習というプログラミング手法を利用しています。つまり、人口知能の内容を理解するには、機械学習とは何かを理解する必要があります。

機械学習には、次の三つの学習方法があります。
(1) 教師あり学習
(2) 教師なし学習
(3) 強化学習

教師あり学習はコンピュータ(機械)に入力した情報に対し、人がその正解を知っている場合の学習手法で、コンピュータの出力が正解に近づくように学習させます。手書き数字を判別する画像認識や、人が発する音声を理解する音声認識などの場合に利用する学習手法です。

教師なし学習はコンピュータに入力した情報に対し、人がその正解を知らない場合の学習手法です。ある判断ロジックをコンピュータに入れて、そのロジックに基づいて入力情報を処理し、コンピュータに答えを出させます。例えば、ある統計的分布を持つデータの解析では、どのような平均値と分散を持つ正規分布のデータがどのような割合で混ざり合っているか、などを算出します。また、256階調のカラー画像を4色カラーに変換するには、どのような変換式を用いるのが最適か、などを導くことができます。

強化学習はコンピュータに入力した情報に対する正解の出力は分からないが、最終的な正解は分かる場合に利用する学習手法です。例えば、囲碁では最終的な勝ち負けは獲得した領域の広さで決まるので、誰でも簡単に判断できるのですが、その途中段階では、人は正解となる布石を知らないことがほとんどです。そこで途中段階の一手をどこに打つかは、各場所に石を置いた場合の予想勝率をその後の布石を「適当」行って算出し、最も勝率の高い場所として決定します。また、インベーダーゲームでは、直近の連続した数枚の画像をコンピュータに入力しながら、最初はランダムにミサイルの発射の位置とタイミングを選択して、ミサイルを発射し、入力画像と発射の位置・タイミングを成功・不成功と関連づけていきます。これを多数回繰り返すことにより、徐々に成功するミサイル発射の位置・タイミングを学習します。そして最後には人間をも凌ぐ性能を持つようになってきています。

このように機械学習には大きく分けて三種類の学習方法があるので、実現する人工知能の特徴に合わせて適切な機械学習の手法を選ぶことが大切です。