wpadmin のすべての投稿

Numenta の NuPIC と GitHub

ジェフ・ホーキンスの設立した Numenta社は、彼らが主張する、大脳皮質の認知・学習する理論によるシステム HTM (Hierarchical Temporal Memory) の機能を含むサンプルソース一式を、 NuPIC として配布していた(参考記事)。
私のPCのハードディスクにも 2007年6月にダウンロードした Nupic 1.2 のファイルが残っている。2008年5月のNuPIC 1.5も残骸がある (ダウンロードに失敗している…)。
その後、Numentaのサイトは残っているものの、それらの配布ページは閉じられてしまったようで、今は GitHubでソース類を公開しているようだ。

Numenta Platform for Intelligent Computing Wiki

GitHubってなんじゃらほい、となってしまったが、GitとはCVSやSubversionなどと同様な、ソースコード管理システムで、GitHubのサイトは、複数のエンジニア同士でソースを更新していく事が可能なソース管理サイトである。

とりあえず、以下の初心者向け説明サイトも参考にさせて頂きながら、Windows版のGitをインストールして、ソースをダウンロードしてみた。
Git初心者が見るべきサイトまとめ – NAVER まとめ
Git … Windows版、MacOS版、Linux版などのGitがダウンロードできる

自分は職業的にはソフトウェア開発者ではない。CVSは使い方の研修は受けたが、仕事の中で使ったことはない。こういう物は不慣れで面倒に感じてしまうが、まぁ慣れていくしかないだろう。

Numentaで配布されていた頃は Windows版の installer.exe も含まれていたが、今公開されているものの中には無いようだ。

ジェフ・ホーキンスの動画

ジェフ・ホーキンスが語る「脳科学がコンピューティングを変える」
撮影は2003年らしい。著書での主張をここでも話しています。
今までの「知能」の理解は、入力と出力を、情報の入力があって、行動が発生すると考えていたがそれは間違っている。入力を使った予測こそがアウトプットであると。
大脳新皮質は、ワニの脳の上にできており、高度な記憶と予測を可能にした。それを模倣すると役立つ機械が作れそうである。ただし行動を伴うワニの脳はずっと複雑。「C-3POみたいなのはずっと先です」

Grok | Technology
ビッグデータからタイムリーに意味のあるデータを得るという技術。
パターンを機械が学習して取り出す、というHTMの仕組みを実用的な応用に進めているようだ。

ゴーヤ 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 によって、マスターは犯罪に手を染めるケースもあるかも知れないし、逆に社会的・道徳的に良好な人物としての成長を促されるかも知れない。
できれば、「良好な方向に」 持って行って、社会をより良くしたいものである。 まさに 「マスター支援啓発インターフェースシステム」 だ。