見出し画像

並列と逐次の変換:フィードバックループの多元性

会話型の人工知能の仕組みについて考える中で、私はその中にあるニューラルネットワークの部分ではなく、フィードバックループ構造と逐次的な処理に着目するようになりました。

そのフィードバックループ構造と逐次的な処理が何を意味し、どんな効果を生んでいるのか、そして、なぜその構造でなければならないのか、ということを考えていました。また、それが人間の思考の方法と類似していると言えるのかどうか、という観点からも考えています。

その考察の中で、私は、こうした人工知能や人間の思考は、並列的な情報を逐次的な行動に変換しているという点に気がつきました。その視点から見ると、会話型の人工知能にも同じ原則が当てはまります。

そしてその背景には、無数の状況下で、あらゆる反応の組合せの中から適切な行動を選択できるように学習することが、生存のために必要とされる生物の運命があることに気がつきました。この学習を効率的に実現するために、情報を並列的に処理して、逐次的な行動を適切に選択することができる枠組みを持つことが重要になるのです。

さらに、フィードバックループ構造による逐次的な処理は、私が現代の生成的な会話型人工知能のメカニズムの特徴として考えている処理の土台になっている事にも気がつきました。その特徴とは、ファジーなコンピュータ処理を模擬する能力や、自らが作ったプログラムのような情報を動的に追加することができるという仕組みです。

これらは、現実世界をモデル化してシミュレートすることで複雑な要素が絡み合う未来の状況を予想したり、自らが新しく考えた思考方法やアイデアに沿って新しい思考を発想したり行動に繋げたりするという、人間が実現している高度な知的能力を説明するメカニズムです。それらの高度な知的な処理も、フィードバックループ構造による逐次的な処理が基礎になっています。

では、これらの考えについて、以下、本文で詳しく見ていきます。

■並列と逐次の変換

会話型のAIは、入力となる文字列から出力となる文字列を生成します。

これは一見、同質のもの同士を変換しているように見えますが、中の仕組みを理解すると、異質なものの変換であることがわかります。

例えばChatGPTに用いられているトランスフォーマーという技術は、入力は同時に並列的に与える必要がありますが、出力は逐次的に出力されます。

つまり、入力の文字列は並列、出力の文字列は逐次という特性があるのです。これはトランスフォーマーに限らず、現在の主要な会話型のAIの特徴です。

そこでは、並列から逐次への変換がなされていることになります。

■逐次から並列への変換

逐次的な出力は、空間上に位置を少しづつずらしながら記録することで、並列的にも保存することができます。

これより、逐次から並列への変換が行われます。このため、会話の場合は逐次的な出力を並列化して、また同じ会話型のAIに入力したり、別の会話型のAIに入力することができます。

また、人間の場合も会話文やテキストの記述は逐次的ですし、読んだり聞いたりした文は、頭の中で一時的に記憶してから理解していると見做せば並列的と考えることはできます。

従って、AIにしても人間にしても、言語処理は並列の文を入力とし、それに対する反応を逐次的に出力し、それがまた並列に変化されて入力となる、という形の繰り返しになっていると考えることができます。

これが異なる主体の間で行われれば情報伝達や会話となりますし、同一の主体であれば、言語を介した思考や情報の復元ということになります。

思考であれコミュニケーションであれ、言語を介した知的な処理は、このようにして、言語を並列から逐次に変換し、逐次から並列に整列するということを繰り返していることになります。

■知的処理の根幹

会話や言語的な思考の場合は、前述したように言語による文を並列から逐次へ変換し、逐次を並列にするという繰り返しにより、思考や会話の形で言語の世界だけで処理が繰り返されていきます。

一方で、知的な処理や活動には、入力は文章であっても出力は行動である場合や、言語的ではない入力を元にして行動をしたり、文章を生成するという場合もあります。

これらのいずれも場合も、基本的には入力は並列的であり、出力は逐次的です。もちろん、入力が逐次的に変化することもあり、それに沿う形で出力も逐次的になる場合もありますが、その場合でも逐次的な一瞬一瞬の入力の中には並列的に多くの情報があり、それを変換して逐次的に出力していたり、先ほどの人間が文章を読んだり聞いたりする時のように、逐次的な情報をいったん蓄積して並列化してから逐次的な出力へ変換していたりします。

また、出力の中には並列的な出力がなさる場合があります。ピアノを10本の指で弾くことができるように、人間は身体を同時に動かすことができ、こうした場合は出力には並列的な部分も含まれます。その場合でも、並列的な出力を逐次的に生成している事には変わりがありません。

このように整理すると、様々な知的な処理の根幹には、並列的な入力を逐次的な出力に変換するという作用がある事が分かります。もちろん、猫の写真を見て、猫の写真であると判別するような一瞬限りの知的な認識処理もありますし、並列的でない単一の情報に基づいて判断をするという場合もありますが、むしろそうした並列から逐次への変換に当てはまらない処理の方がごく限定的です。

多くの知的処理は、並列入力を逐次出力へと変換することにその根幹があり、その根幹に対して入力に逐次性が加わるケースや出力に並列性が加わるケース、出力が一瞬で出るケースや、会話や言語的な思考のように並列と逐次の変換が繰り返されるといったバリエーションがあると考える事ができます。

■並列化との組み合わせ

一方で、並列から逐次への変換を根幹としつつ、そこに並列化を組み合わせることでより複雑な処理が実現できることも確かです。

並列から逐次への変換の要点は、単一の変換装置で、変換後の出力を、次の出力のための入力として利用できる点です。このために単一の変換装置では、内部にフィードバックループ構造を持ちます。

これは、予め全ての出力を決定してから順番に出力するのではなく、自分が出力した物を参照しながら次の出力を選択しているという事を意味します。

ここに並列化を組み合わせる場合、この並列から逐次への変換を行う処理を担う実体が複数あるという状況が想定されます。この複数の実体は、それぞれがおなじ並列な入力を異なるやり方で逐次的な出力に変換します。この時に、各実体は、次の処理で自分自身の出力を参照するだけでなく、並列に存在している他の実体の出力も参照することで、逐次的に並列にお互いに影響を及ぼし合うという構造を持つことができます。

この構造は、ニューラルネットワークにも見られる構造ですし、おそらく人間の脳の中の神経細胞間でも見られる構造でしょう。そして、スケールを変えると、社会の中のコミュニティや組織的な活動の中でも見られる構造です。

知的処理の根幹である並列から逐次への変換は、このような形で比較的容易に、並列化してより複雑な知的処理を可能にする構造を形成することができます。

■状況と処理の対応付け構造の必要性

生物や知能は、現実世界の中で非常に複雑な処理をすることが必要になります。

生物や知能は、状況に応じて適切な反応をすることで、生命活動を維持したり、生存確率を向上させる必要があります。対処すべき状況の範囲がごく限定的で、適切な反応も十分にシンプルであれば、それほど複雑な処理は必要ありません。例えば、対処すべき状況の一覧に対して、適切な反応の対応付けた表のようなものを作成し、後はその表に従って状況に応じた反応をしていれば良いことになります。

しかし、現実対処すべき状況の範囲は非常に広く多様です。そして、適切な反応もシンプルな物から複雑なものまで多種多様です。また適切な反応は単一の動作でなく、通常は動作の組合せになります。その組み合わせも、順不同で複数の事を実施すれば良いケースは稀で、多くの場合は特定の順序に従って反応をしていくことが必要になります。

例えば天敵から逃げるなら、周囲の確認し、逃げるルートを決め、その方向に右足を踏み出してから左足を踏み出す、これを繰り返しながら時々敵の様子と周囲の状況を確認する、といった手順が必要になります。順番を間違えば全く行動は意味がないものになりますし、恐らく敵につかまってしまうでしょう。

このように、無数の状況の中で、適切な処理順序で対応できる必要があるため、シンプルな表のようなもので状況と反応の一覧を学習するというやり方では対応ができません。学習が上手くできるかどうか以前に、多様な状況と複雑な処理順序の組合せを保持できる仕組みが必要です。かつ、単に表のサイズを大きくするようなやり方では、その仕組み自体を実現する仕組みに膨大な複雑さと大きさが必要になってしまいます。

つまり、できるだけシンプルな構造や小さなサイズで、無数の状況と順序を持つ処理の組合せを保持できる構造が必要になります。そして、そのような構造が存在すれば、後はその構造の中に、状況と処理の適切な組合せを学習していけば、現実世界の様々な状況に対して適切に対処ができるようになります。そして、そのような振る舞いができるものを、私たちは知的な存在であると考えるでしょう。

■フィードバックループ構造の重要性

このことは、フィードバックループ構造と逐次処理の重要性を浮き彫りにします。状況に応じて最初の出力の生成を行い、その出力を入力として次の出力の生成を行う仕組みは、シンプルな仕組みですが、順序を持つ多様な出力を可能にします。例えば、1つの変数を持つ非対称な数式を立てて、その数式に最初の値を与え、その結果を同じ数式に与えるという事を繰り返して、その結果を並べると、非常に多様で変化に富んだ出力の時系列を得ることができるでしょう。

その数式にもう一つ固定的な変数を加えて、それを現実の状況を1つの数値で表現した物とすれば、状況に応じて異なる出力の時系列を得ることができます。

この形式であれば、状況と処理をマッピングする膨大な表よりもはるかにシンプルな構造で、多様な状況と処理の対応付けを保持することができます。

さらに、このフィードバックループ構造を持つ関数を並列に複数用意し、それぞれの関数の出力を入力としてもつことができるような形にしたり、現実の状況を表現する数値を1つだけでなく多数の数値としたりするような拡張を行えば、全体としてはシンプルな構造を維持しつつも、その表現能力を向上させることができ、表形式で保持するには非現実的なほどの膨大で多様なパターンの状況と反応の組合せを保持できるようになるはずです。

■フィードバックループ構造によるコンピュータの模擬

フィードバックループ構造による逐次処理は、良く考えてみるとコンピュータのプログラムによる逐次処理と似ています。プログラムも順番に処理を行う事で非常に複雑な処理を実現できます。

コンピュータの場合、外から与えられる状況とはプログラムに相当し、状況に対応した処理とは、そのプログラムの先頭から処理を進めていきながらコマンドを処理する処理系を意味します。そして、出力の中に実行中のプログラムの位置を示すプログラムカウンタがあれば、それが次の処理タイミングで参照されることで、入力されたプログラムの中で次に処理すべきコマンドを処理することができます。

つまり、フィードバックループ構造を持つメカニズムは、的確に設計を行えば、コンピュータプログラムの処理を模擬することができます。このことは、並列から逐次への変換処理が、コンピュータプログラムの処理を模擬できるということも意味します。

ただし、的確な設計を行った場合には模擬できるという話であり、それが現実の環境における自然な学習や進化の中で起き得るかどうかという話とは別です。もし、コンピュータプログラムのような計算処理ができれば、条件分岐処理、ループ処理、類似するデータ構造や処理構造の抽象化などが実現できるとすれば、高度な計算や予測ができることになります。さらには、実世界で過去に起きたことのメカニズムの把握や、未来に起きることの予測のための強力な手段であるシミュレーションに応用できるようになります。

これは現実世界の様々な状況下で適切な反応をしなければ生存できない生物や知能にとっては、非常に強力な能力となります。そして、実際に人間の知能がコンピュータほどの精度はないとしてもこうした能力を保持しており、かつ、会話型の人工知能にもこうした能力が見られることを考慮すると、自然な学習や訓練の中で、コンピュータプログラムのような処理自体か、あるいはコンピュータプログラムで実現でいるような処理を、模擬できている可能性が高いと考えられます。

■ファジーな計算処理能力の獲得

そして、その能力が獲得できている理由として、並列から逐次への変換処理が、コンピュータプログラムの処理を模擬できる構造であることが利用されていると考える事はできるでしょう。

また、自然な学習や訓練の過程でこの能力を獲得できたという事は、コンピュータの処理のような能力を獲得するまでの間に中間的な状態があったと考えられます。なぜなら、コンピュータの処理は非常に厳格で複雑な能力であるため、直接その能力を獲得するということが考えにくく、段階的に徐々に獲得していったと考えないと上手く説明がつかないためです。その点については、人間が頭の中だけではこうした計算やシミュレーションが上手くできず曖昧であったり精密さに欠けた状態でしか実現できていない様子に見て取れます。

人間が、厳密ではないとしてもある程度できていることこそが、コンピュータと未学習の並列から逐次への変換処理の間に、中間的な状態があることの証拠と言えます。それは曖昧さのある計算処理という意味で、ファジーな計算処理と呼べそうです。

この曖昧でファジーな計算は、むしろコンピュータでは扱いが難しいものですが、知能にとってはコンピュータの厳密な計算処理に至るまでの中間的な能力に見えるということです。もちろん、むしろファジーな計算処理が役に立つ場面は非常に多く、それが知能による計算処理のメリットとなることも多いことは事実でしょう。だから人間は厳密な計算よりもファジーな計算処理が強い状態で学習が止まるようになっているのかもしれません。

■動的プログラム生成

並列から逐次への変換処理が、プログラムの処理を模擬できる能力を持つという観点からは、もう一つ興味深い機能が見えてきます。それは動的なプログラム生成の能力です。

コンピュータプログラムでは比較的珍しい処理になりますが、プログラムの実行中に別のプログラムを生成して、生成されたプログラムを実行するという形で、動的にプログラムを生成して実行するようなプログラムを作る事はできます。一部のコンピュータウィルスは、一種のそうした動的なプログラム生成の機能を持っていたりします。

並列から逐次への変換処理は、よりこの動的なプログラム生成を得意とします。なぜなら、現実の状態を数値化したものを基本入力として、それをプログラムのような処理命令の塊として解釈して逐次処理を行う性質を持ち得るという説明をしましたが、それであれば自らが出力した値も、次の周期ではプログラムの一部分として追加されたように解釈して振舞う事もできると考えられるためです。

実際、人間もしゃべりながら物事を考えている時、自分の発言や他の人の発言に触発されて新しい考えが浮かんだり、実際の行動が大きく変化することがあります。それらの中には、単に一瞬のひらめきだったり行動方針の転換だけでなく、発言内容により新しい考え方の手順や枠組みが与えられて、それに沿って思考した結果として思いついたり方向変換に至ったりする場合もあります。

そう考えると、そのきっかけになった発言は一種の新しいプログラムのような作用をして、それを受け取った自分自身の次の処理や、他者が、その新しいプログラムを利用して処理を行ったと見做すことができます。

そのような視点からは、逐次的な出力もまた、プログラムの作用を持つ場合があり、そこには動的なプログラム生成のようなメカニズムが機能していることになるでしょう。

こうした動的なプログラム生成の機能についても、おそらく現実世界での自然な学習や訓練の中で、中間的な状態を持ちながら、獲得していくことができる能力であろうと考えられます。

■さいごに:フィードバックループの多元的な意味

状況に対する的確な反応という、生物や知能の目標は、言葉にすると簡単で詩が、その実現は無数の組合せを記憶することと、複雑で順序性のある反応の連鎖をシンプルな構造で実現することが必要です。

このために、フィードバックループ構造を持つ並列から逐次への変換処理が利用され、その並列化により能力を向上させることができます。

それだけでなく、フィードバックループ構造を利用することで、並列から逐次への変換処理は自然学習により、コンピュータプログラムに近い計算処理や、それに基づいたシミュレーションの能力、そこで動かすプログラムのようなものを動的に追加するような能力も獲得できると考えられます。

もちろん、こうして能力を獲得するためには、並列から逐次への変換処理が、その内部に高度な処理ができる構造と、学習能力を持つ仕組みを持っている必要があります。人工知能であれば無数のノードを持つニューラルネットワークですし、人間であれば神経細胞の集合体である脳です。

これらの処理構造とその学習能力により、高度な知能は計算、現実世界のシミュレーション、動的プログラム生成をファジーな形で行う事ができます。これが人間や最新の会話型AIが、非常に高度な知的処理を行うことができる原理であろうと考えられます。

そして、これらの根底には全てフィードバックループ構造があり、それが多方面に様々な異なる効用を生み出していることが分かります。まず、生物の自然淘汰や知能の学習は、それ自体が概念的なフィードバックループ構造を持っています。環境に対して適切であれば、その種は生き残り、脳が報酬を出して強化されます。不適切であれば種の死滅を意味し、脳は痛みや後悔などの罰を受けます。これらのフィードバックが進化や学習を進めます。

次にフィードバックループ構造は、この記事の中心テーマである並列から逐次の変換を実現する仕組みを提供します。かつ、その構造による高度な仕組みの中では、フィードバックループは模擬的なファジーなプログラムの進行を進めるための仕組みとしても機能します。

そして、模擬的なファジーなプログラムは、単に一瞬で計算ができるような数式を解くだけでなく、現実世界を反映した仮想的なモデルを思考内に浮かべ、その時間変化をシミュレートするという逐次的なシミュレーション処理を実現するための仕組みにもつながります。さらには、新しい思考や行動を自分自身や他者に行わせるように、ファジーなプログラムを動的に生成するということも、フィードバックループ構造があるからこそ実現できる仕組みです。

加えて、この記事では大きく取り上げませんでしたが、思考を方向付けたり記憶をしっかりと残す機能を持つ自然言語についても、会話型の生成AIの仕組みを見る限り、フィードバックループ構造が大きな意味を持っています。自分の出力したその時点までの文と整合するような形で次の文字や単語を選択するのは、フィードバックループ構造を持つからこそできる事です。

このように、フィードバックループ構造の多元性が、生物や知能が現実の状況に応じて、的確な反応をするために、非常に大きく貢献していると言えるでしょう。

サポートも大変ありがたいですし、コメントや引用、ツイッターでのリポストをいただくことでも、大変励みになります。よろしくおねがいします!