ゴーヤ 7/9分

手入れをさぼっているゴーヤに水やりなど。
もじゃもじゃと伸びてきている、あさっての方向へ向かっているツルを、ネットに沿うように整えたり。
左端のヒマワリも伸びているが、細い。

ベランダのゴーヤ、7/9夕方
ベランダのゴーヤ、7/9夕方

HTM, ヘブの法則から考えるパーソナルAI

ここしばらく書いている内容は最近知ったり考えたのではなく、以前から考えているがブログに書くなどはしてこなかったものである。それでも一部はスラド日記に書き留めていた。
2008年7月21日のスラド日記に書いたエントリからそのまま転載する。


ai:: Numenta, HTM, ヘブの法則 - これまでのあらすじ


神経細胞AとBの間にシナプスがあって、AとBがほぼ同時、あるいはA→Bの順で
約20ms以下の時間差で活動したとき、シナプスの結合は強化される。
(参考:進化しすぎた脳)
この、ヘブの法則が、脳が入力信号の繰り返しから、パタンを抽出して学習する原理の
根っこにあるアルゴリズムらしい。

目をCCDカメラのようなものだとして、2次元配列の濃淡情報がそのまま視覚野に入って
2次元配列状の神経ネットワークが待ち受けているとする。
ぼんやりした曇りの空ではなく、立っている樹木などを見たとき、二次元配列を
縦線が横切る。すると「A、Bほぼ同時の刺激」となる領域があるだろう。

脳細胞を調べると、縦線に反応する細胞、横線に反応する細胞など、簡単な図形要素に
反応する細胞が見つかったという結果がある。ヘブ則によって学習された、まず
第一段目の部分なのだろう。

単純な形の認知は、V1野、V2野…と階層を上るにつれて、より高度な認識となる。
(参考:考える脳…)
クリントン大統領の顔を見たときに反応する脳細胞があるらしい。一例だろう。
視覚だけでなく、聴覚や触覚すべて、簡単なパタンから複雑なパタンを認知する階層構造は
同じなのだろう。

階層的な構造を使って、記憶を元にした予測を行うのが知能の本質であると
仮説を立てたジェフホーキンスが、人工知能を作る方法として NumentaのサイトでHTM (Hierarchical Temporal Memory)を提唱している。
公開されているドキュメントを読んでいると、HTMはどうやらヘブ則を使って
学習する仕組みのようだ。
(HTMは時系列で変化しないような入力情報のアプリでも使えるが、時間変化する
入力の方がいいと述べている部分があった。)

ここからは私の考察。
脳のしくみを洞察してシステムを作ってみるアプローチは、AIを作る手順として
正攻法なんだと思う。 時々、IRCですごく人間っぽい応答をするボットを
見かけるし、チューリングテストとか中国語の部屋とかいろいろあるが、
脳の働きは「文字列をもらって文字列を返す」ような環境の中のものでは無いのだ。
身体性という言葉が出てきて以降、「身体がないと」と言う人も多いが、これも
ちょっと違うと思う。 例えばシステムに入力として光センサと時計だけがある。
朝になると明るくなり、夜になると暗くなる。これを24時間365日“観察”し続けて、
周期があるとか、周期が伸び縮みするとかのパタンを発見できれば、それは
知能的であると言えると思う。手足のロボットがあれば良いが必須でも無い。
(逆に、IRCボットももっと知能的になれると思う。Sさんはweekdayの夜にただいまと
発言する事が多い、などのパタンを学習・予測する等)

さて、Numentaの仮説から従来の手法を振り返ると、ルールベースとか、
形態素解析とか、三段論法とか、その他色々ある従来の方式は、明日から
役立つシステムとして稼働できるけれど、ヒトのように学んでいったりは
しないものであろう。 かといって、HTMのようなアプローチでは、まるで
生まれたての赤ん坊のようで、日本語で相手をしてくれるようになるまで
果たして何年かかるのか分からない。
そこで、両者のハイブリッドなものが作れないだろうかと思っている。従来型の
形態素解析もやりつつ、HTM的な学習や予測もするような。

今考えているのはこんなところ。

ジェフ・ホーキンスの脳研究による示唆 (2)

ジェフ・ホーキンスが導き出した、大脳皮質による情報処理の、単一のアルゴリズム。 それは、「記憶を用いた予測の枠組み」 だった。

たとえばコーヒカップに手を伸ばしてつかむとき、脳は絶えず次の感覚を記憶から読み出して予測している。カップの固さ、どんな力を加えたらどう動くか、紙コップならどれくらいの力でなら潰れないか。
歩くときも同様である。片足を差し出し、接地させ、体重を移動する。 床反力で身体が支えられる。 瞬間瞬間に、次に起こるはずの感覚を、今までの記憶から予測している。 床板が腐っていて踏み抜いたら、予想外の事が起きたと驚く。

彼はこの理論を応用した、画像認識のサンプルソフト NuPIC を公開している。
【ETech】「我々は脳の働きの大部分を理解した」Palm創設者のHawkins氏,米Numenta社を通じて成果を公開(日経エレ)

ジェフ・ホーキンスの脳研究による示唆 (1)

2005年4月に出会った書籍、「考える脳 考えるコンピューター」 (邦題、和訳の元の原著は “On Intelligence”) には、大変興味深い人工知能論が展開されていた。

考える脳 考えるコンピューター 表紙
考える脳 考えるコンピューター (ランダムハウス講談社)

筆者は ジェフ・ホーキンス。 パームコンピューティング社で PDA、「Palm Pilot」の開発にも従事したこの人は、脳研究に対する強い思いから、自ら研究所 Numenta を設立して、脳がいかに知能を発するかに関する、独自の理論に至った。
(この人がどんな半生を送ったかは日米の技術者,夢の大きさに格差(日経エレクトロニクス)が参考になる。エンジニアとしても尊敬すべき人物だ。)

彼は、大脳皮質を詳しく研究することで、真に知能を持った機械が作れると考え、また、今までの人工知能研究があまり芳しい成果を上げていないのはなぜか振り返った。 脳の研究は長く続けられているが、必要なのは新しい洞察であるはずだ、と考えた。

例えば、脳は各部位によって、視覚野、聴覚野、運動野など、役割が違っていることが、fMRIなどを使った研究で知られている。ところが大脳皮質は、どの部位でも6層からなる神経細胞の構成が似ている点は、既にマウントキャッスルによって指摘されていた。
「違う」のではなく、どこでも「似ている」のだから、視覚・聴覚・触覚にかかわらず、共通のアルゴリズムによる処理が行われているはずである。

神経細胞は、ひとつの細胞から次の細胞へ信号を伝えるのに 5ms かかる。だから、 0.5秒ならば信号は100段階しか進まない (100ステップの法則)。 ところが私達は、動物の写真を見せられて 0.5秒後には、猫が写っているか、犬が写っているかを瞬時に見分けられる。 人間なら簡単なこの作業が、コンピューターにはできない。 なぜこんな事が可能なのか?

 

「マッチ箱の脳」、そしてロボット

マッチ箱の脳 WEB version(ほぼ日刊イトイ新聞)

今までの人工知能にはどんなものがあったか、ざっくりまとめたエントリが必要かも、と思っていたが、このページが私達一般人にもわかりやすくまとめているので代用してしまいます。 (手抜き)

このページで触れられているのは、個体の知能としては4つ、

  • ニューラルネットワーク(NN)
  • 遺伝的アルゴリズム(GA)
  • プロダクション・システム(ルールベースの推論システム)
  • 包摂ウーキテクチャ (昆虫のような)

で、群れ・カオス、などは、1個体が能力として持つ知能としては分類的にやや違うと思う。

このなかで前者3つは、具体的な問題を解くことに主眼が置かれている。4つ目の包摂アーキテクチャ(昆虫タイプ)は、ブルックスによって1986年に唱えられた、比較的新しいタイプ。 環境とのやりとりを通して、だんだん最適化していく方式で、前者三つが、入力→脳みそ→出力、といったプラットフォームを前提に考えられている(ように見える)のに対しかなり趣が違う。 それまでのAIは記号処理だけでやろうとしいた事に異を唱えるものだ。

ブルックスの考えはロボットの研究から生まれたもので、人工知能は脳だけでなく、身体を持って環境に働きかけ、また環境から影響を受けることで、新しい情報を生み出し学習していくことが可能になる点を説いている。 「身体性」が重要であるという訳だ。

余談だが、Wikipediaの日本語に身体性のページが無かったので、2008年8月に私が加えた。 (単に 『AI事典 第2版』からエッセンスを抜き出して書いただけだが。)

これらの各方式は、パーソナルAIを作る上でヒントになるが、その後、さらに重要な示唆を与えてくれる考えも現れた。
その重要な示唆、ジェフ・ホーキンスの話は後ほど。

パーソナルAI考~いつコード書くの? まだでしょ!

パーソナルAI開発の、大局的なスケジュール観。

前にも書いたとおり、生活をサポートし、会話もしてくれるAIを、実際に作って動かしたいと考えている。 では、いつから始めるのか?

とりあえずプラットフォームとしては、専用のPCを1台用意し、その上で動くプログラムを作り、24時間、365日 稼働させ続ける。  そこで分かったことがあれば、徐々に改良していく、というアプローチを取る。 プログラムは当然、何度でも書き換えるだろろうし、ハードウェアも必要に応じて変えていく。 USBカメラを付ける程度のこともあれば、FPGAなどを利用して何かを作る必要に迫られるかも知れない。 改良のプロセスは、何年も続くことだろう。 (…続くといいけどなぁ)

いま一番悩んでいるのは、いったいどんなプログラムから作り始めればいいのか? というところ。 来月になったらコーディングを始めているのかと言うと 「うーん…」 という感触だし、「では 3ヶ月後には始めているのか?」と問われると、やはり 「うーん…」というのが正直なところだ。 しかし、来年の今頃は、何らかのコードが24時間稼働しているPCがあって、改良のプロセスが回っているくらいにはしたい。

先日より、”パーソナルAI” について思うことを書き出していったら、半分想定はしていたが、前提となる条件や知識、今まで考えていた内容など、たくさんのアイテムが湧き出てきた。 思案していた一部の内容は、以前より別の FSwiki などに書き連ねていたのだが、書いても書いても全然書き足りない。 なので、しばらくはそれらのアイテムを表出・文章化して行くことで、どんな設計にして、どんなプログラムから着手すべきかのヒントにしていきたいと思う。

 

 

パーソナルAI考 ~ 「金」に相当するものは

“人工知能” は、インフレを起こす。

コンピューターが何か問題を解くとき、アルゴリズムが存在する。例えば、二つの自然数の最大公約数を求めるには、ユークリッドの互除法の手順に従えばよい、というように。 このように、単純な手続きで解ける問題もあれば、そうでない問題もある。 ヒトなら解ける問題を機械で解くにはどうすればいいか。 人工知能の教科書は、大抵このようなくだりで始まる。

チェスや将棋の相手をするプログラムはそのようなものの一つであるが、今はまったく珍しくない。白物家電が宣伝文句に「人工知能搭載!」とうたった時期もあるが、ぶっちゃけて言えば「少し凝ったプログラム」によって、部屋の温度を調整したり、衣料の汚れをセンサーで感知して水量や洗う時間を手加減しているだけである。

こうやって、かつては人工知能と呼んでいたものが、”インフレ”の結果、今はそう呼ばなくなったものは多い。

もしもタイムマシンがあって、1980年頃の自分に会いに行って、iPhoneのSiriを見せたら、たいそう驚くと思う。でも、数十分使って、「これはHAL-9000みたいなものじゃないよね」とも言うと思う。

時代が変わってインフレが起きても、紙くずに変わる紙幣のようなものではない、「金」に相当する絶対的な人工知能システムが存在しそうである。 「強いAI」と呼ばれているもの。それはまだ存在しない。(と思う)

パーソナルAI考 ~そのシステムの目的

人間の生活を助けるパーソナルAI。それは、どんな目的を持ったシステムなのか。

(余談…前回の通り、個人向けのコンピューターをパーソナルコンピューターと呼んでいるのに倣って、ここではとりあえず「パーソナルAI」と呼んでいるが、もっといい呼称は無いかとも思っている。家庭で使われるので 「ホームAI」 とか? )

HAL-9000は、木星へ行く宇宙船の運航管理と、乗組員の生存の安全を守るシステムだった。チェインバーは「パイロット支援啓発インターフェースシステム」で、サポート対象がパイロット(兵士)であるが、戦闘を優位に進めるために、情報的にパイロットをサポートし兵器を管理するだけでなく、パイロットの睡眠を管理したり健康面のサポートもするAIであった。

パーソナルAIも基本はヒトを支援するものであるとすれば、ほぼ同様な目的を持って稼働するモノとなるであろう。 すなわち、マスター(ご主人様)に対して、

  • 生存・安全の確保 (室温調整、防犯や急病時のサポート)
  • 健康維持に関するサポート
  • 情報面のサポート
  • 家電や機器類のマネジメント

を第一目的とする。

このような目的のシステムが、今まで存在しなかった訳ではない。 パソコンは情報面で役立っているし、防犯ならセキュリティシステム、健康管理には体温計や血圧計など。 それらがもっと積極的にマスターに働きかけてくれる。 例えば、非接触で体調を察知する、質問だけで答えを探してくれる、etc。

防犯や体温計については、会話機能は必ずしも必要ではない。 犬は日本語で話せなくても防犯の役には立っているし、エアコンは室温を一定にする。 会話機能は、本来の機能に付随する、対人間のインターフェース機能と言うことになる。

* * *

もう少し「崇高な」ことも考えている。 パーソナルAIが日常的にマスターと会話し、いろいろな話題で議論するようになった世界では、パーソナルAI によって、マスターは犯罪に手を染めるケースもあるかも知れないし、逆に社会的・道徳的に良好な人物としての成長を促されるかも知れない。
できれば、「良好な方向に」 持って行って、社会をより良くしたいものである。 まさに 「マスター支援啓発インターフェースシステム」 だ。

 

パーソナルAI考~はじめに?

computer は “com-” 共に、”-pute” 考えるもの、である。
1983年、大学受験生だった頃、試験に出る英単語を解説する本に、そのように書いてあった。

1980年以降、ワンボードマイコンがパーソナルコンピューターに発展していった頃から、コンピューターを個人で持てるという期待は高まり、現実化し、値段は下がり、今では職場でも、家庭でも、欠かせない物になった。
あれから30年以上が過ぎて、パーソナルコンピューターは、確かに、ものすごく発達した。PC-8001のクロックは4MHz、メインメモリは良くて32Kバイトだったのが、今やクロックは3GHzを超えて、メモリは4Gバイト、16Gバイトと増えている。
それで、この機械は「共に考え」て、くれるだろうか。いや、できていない。

SF映画やアニメなどの中で、人間と会話し、助けてくれる人工知能が何度も描かれている。HAL-9000、KITT、エンタープライズ号、オモイカネ、チェインバー。
いつかはこういう物を、一生の間に、自分で作りたいと思っていた。

メモリもCPUも貧弱だった’80年代から、おそらく多くの人が同じように考え、アマチュアの中でも似たようなことを始めた人達はいた。しかし作られたのは、”人工無能”と自虐した名称の、遊びのプログラムが大半だった。 文字列を入力されたら文字列を返す。 ELIZA (イライザ)という精神科医を装うプログラムはそれ以前から存在し、それをヒントに語彙を増やしたり、予想外の返答をして笑わせたり。
その後、”人工無能”は、一問一答の手順をくずしたり、大量の会話文をヒントに、マルコフ連鎖などを利用して、それらしい返答を返したりして、より人間臭くなったものの、その内部でちゃんと思考している様子は無かった。

人工知能の本流の方では、Prologのような述語論理をあやつるプログラミング言語が現れ、人間も三段論法を使って思考することから、一気に発展するのではないかとの期待が持たれた。日本でも第五世代コンピュータが国家プロジェクトとして立ち上げられたが、結局何が出来たのか我々国民にはよく分からない。
’80年代から’90年代にかけて、人工知能に対する期待は失望に変わったと言われている。三段論法を処理できれば万事OKではなく、もっと大量のデータが必要だったなど、問題点が山ほど残っていたことが認識されたようである。

量が転じて質となる、だけでは無いと思うが、その後、さらにハードウェアの物量は発達し、プログラム言語も手続き型プログラミングからオブジェクト指向、関数型、LL(Lightweight Language)なども普及し、インターネットによって人間同士の情報も大量に電子化された。 チェスや将棋のような限られた分野では機械が人間を打ち負かしただけではなく、iPhone の Siri のように、声で話しかけて質問に答えるようなものまで身近になっている。

さてそれでは、もう何か作る必要は無くなってしまっただろうか?
いや、そんな事はない。 Siri は音声認識こそ優れているものの、その先は結局 ググレカス だし、僕の部屋にもあなたの部屋にも、HAL-9000もチェインバーもいないではないか。

私達の生活に溶け込んで役立つ存在となったパーソナルコンピューターと同様、私達一人一人に恩恵をもたらしてくれる、「パーソナルAI」が欲しい。 果たしてそれは、いったいどういうモノであればいいのか、そして、どう作ればいいのだろうか?

この課題、10年、20年かかるかも知れないけれど、ずっと考えて取り組んでいくつもりなのであります。

 

WordPressは必要か

WordPressを入れてから1ヶ月くらいか。
ふと思ったが、ここまで重いものが本当に必要だろうか?
うちみたいに、ファンレスの超小型機、低いクロック周波数、軽いOSで低消費電力を意識してWebサーバーとして使うのなら、当然軽いソフトにしなければ意味がない。
内部でMySQLのようなDBが動いてない、CGIで動くWikiみたいなものでも十分役に立ちそうである。

まだ、図や写真が何枚も混ざるようなページを毎日書いている訳ではないので、
やり始めるとメリットを感じるのかも知れないが。
しばらくは体験を通して様子を見よう。