by ご近所のきよきよ
技術は深く考えれば考えるほど単純に成っていきますね。複雑な構造のプログラムはなかなか動くように成らないので、単純な方式はないかと考える。すると結構あるのですね。曖昧性処理もこの7年で随分と単純化されています。始めは手作業で曖昧性除去情報を設定していたのですが、これはマンパワーで挫折・・・・・。知識ベースの構造と、知識の間の共起連想関係にして、自立学習でいけるようになりました。まだ、プログラムはできていないのですが、若葉を作りながら実現していくつもりです。
8年前は、人工知能が得体の知れないものと研究のしがいを感じていたのですが、今はなんか人工知能はどうしたらできるかというレベルまでシンプルに理解できています。理解できたと思っています。まだ、物ができていないから、これから本物の技術を得ていくことになるのかも知れませんが、なんかスッキリした気分、さっぱりした気分で、淡々とコーディングしています。もう8年もJavaで人工知能をプログラムしているのですね。8年といえばそんな心境になる時期なのでしょう。今年の夏は気持ちよく迎えられそうです。今までですと、夏というと辞書作ってましたね。今年は自立学習という機構を考えていて、先ずは知識構築機構から作っていこうとしています。これも8年間試行錯誤して到達した技能なのです。人工知能に一家言持てるにいたりました。夏雲が窓の外に夢を誘うようにたゆとうています。
やるだけのことやったかな。そう思った去年は「鉄腕アトムコンプリートボックス」を手にしたのでした。今年は、「アストロボーイ」全巻を揃えるつもりです。還暦の記念でもあります。なんか、子供の頃の夢が叶ったのを感じます。状況に翻弄されましたが、夢を捨てずにここまでこれて良かったと思っています。今年もそんなで夏がやってきました。
ということで、若葉を考えていました。プリミティブなパターンてなんでしょう。
(1)根本情報
・ 点(孤立点、端点、クロス点、曲点)
・ 線分
・ 領域
・ 交差
・ 平行
・ 曲率
・ 周期
・ 向き
・ 配置
・ 複雑さ(周期かもしれない)
(2)アクション情報
・帰属/分離(join/no_join)
・移動/静止(move(change)/stay)
・回転(spin)
(3)格
・west/east/north/south
・up/down
・left/right
・center
・in/out/at
・decline/horizontal/vertical
(3)属性
・at/near/far(small/big,short/long,middle)
・length/dispose
(4)対象
・人
・動物
・人工物
・太陽、月、星
・空、大地、山、川、海、崖、浜、野
・木、草、石、砂、水、花、葉
・光、闇
(5)幾何
・円
・三角形
・四角形
・多角形
これらを解析して永続化する記法はどうでしょうか。
・(pattern,id=nName;(attribute;key.value) (position,case=in;(pattern,id=nName2)) (dispose,direct=WEST.LEFT;(disposition,direct=SOUTH)(pattern,id=nNmae3)) (dispose,cross=true;(pattern,id=nName3)) )
【説明】
patternの種類を指定します。LINEとかDOTとか。それはこの知識内でどんな名前かをidに示します。
patternの属性はattribute,位置関係はposition、配置はdisposeで示します。配置については詳細な位置関係を記述しなくてはなりませんから、入れ子になっています。WEST.LEFTの升目を更に、SOUTHで詳細化しています。positionとdisposeの中の(pattern・・・)は基準となる点を示すパターンを表しています。
というのはどうでしょうか。人工知能はパターンマッチングシステムだと私は言いました。連想・・・ですね。そのためにはCPU命令フルセットはいらないと。簡易命令コアが沢山あればよいと。簡易命令で若葉を実現することができるでしょうか。できるのです。patternなどの知識は木構造のデータです。データ単位をsequenceかブランチかのフラグと、このノードの名前とこのノードが属するノードの名前とデータ長、データ属性、データとしてHDDブロックに放り込んでいけば知識が永続化できて、知識のコア上への再現も簡単です。あとは、単純なマップイメージ(基本解析結果がマップされている)と知識データとのマッチングです。無論、マップですから配置関係は解析しながらマッチングしていくのですが、解析は簡単なスキャン処理です。簡易命令セットで実現できます。
おわり