ラベル ニューラルネットワーク の投稿を表示しています。 すべての投稿を表示
ラベル ニューラルネットワーク の投稿を表示しています。 すべての投稿を表示

2008年11月14日金曜日

ニューラルネットワークへのセンサーからの入力についての考察

さて、ニューラルネットワークを(データベースを使うかどうかに関わらず)使用するとして、
その人工知能もどきの身体である物理的な、あるいは仮想的なロボットボディーからの入力を
どのようにニューラルネットワークの初めの細胞に渡すか。


近藤化学のKHRシリーズに使用されてるサーボモーターをロボットの体として想定する。

このサーボモーターにICS2.0通信で問合せれば、現在の角度が手に入るようなので
(どうせなら他の各社みたいに各速度とか電流とか温度とかも手に入ればいいのに…と思うけど、高くなるのかなぁ
愛知大学のシリアルサーボというページによるとFUTABAのものが一番優れているようだが…
いかんいかん、脱線してしまった)
この角度を擬似的なセンサーからの値としてニューラルネットワークの初めの細胞に渡すことを考えてみる。

と、角度の値そのものを渡してしまえばそれで完了、みたいですねぇ。


パルスを受け取る場合は、たくさん曲がるほど密度の濃いパルスを発する(受け取る)とか、
「23度」にだけ反応してパルスを発する(受け取る)とか(この場合は、180度動く関節の場合には例えば分解能を1度にしたら180個の細胞が必要)。
どちらにしても、「25度の位置まで曲げよう」と決めた時に、この25度を知るためには細胞が絡み合ってネットワークを作って、最終的に欲する分解能に応じた細胞数が必要で、例は「この細胞が発火するまで曲げよう」と書き換えられるのではなかろうか。

しかし、各細胞が値そのものを処理できるとしたら、「この細胞からの報告数が25になるまで曲げよう」となり、1ステップで済みそうな気がする。


ヒトの場合は、数にモノを言わせて時間的に密度の変わる入力のみを用いて処理しているみたい。
でも現在のPCの処理能力からみても、全部真似しなくていいと思う。

2008年11月12日水曜日

コンピュータでのニューラルネットワークでの実装についての考察

コンピュータでニューラルネットワークを備えた人工知能もどきを実装しようと思う。

まず、神経細胞の使い方というか、興奮の伝え方をまず決めなくてはいけない気がする。
実物のようにパルスとして伝達するか、値の大きさ(3とか-29とか:量)を伝達するか。

これは、現実に作成を目論んでいるロボットに取り付けたい各種センサーがパルスではなく量を出力するものが多い(気がする)ので
量を伝えるように設計したほうがいいように思う。
パルスを出力するセンサーももちろんある(ロータリーエンコーダーとか加速度センサーとか)。
これらは「シビアな単位時間当たり」のパルス数を数えないといけない場面が多いと思うので、
全ステップの実行にどのくらい時間が掛かるかわからないコンピュータでの
ニューラルネットワークでの実装には向いていないと思う。
別途タイマーを持った小さな装置や別のプログラムで量として計算しなおしてから
入力に用いたほうがいいだろう。

実際の神経細胞は1回発火したら次の発火までに一定の時間休む必要があるみたいだけど
数千の入力を持っていても1ステップ(1単位の実行時間)で処理し終わることが出来る。
なので一つ一つがタイマーとカウンターを持っているようなものであろう。

コンピュータでのニューラルネットワークでの実装にパルス伝達を使用しようとしたら
タイマーや興奮の減衰や累積の仕組みを組み込まなくてはならないようだ。
それは面倒である。


よって、今回は量をそのまま伝達する方式を取りたい。

2008年11月5日水曜日

人工知能におけるデータベースの活用法

「人工知能 データベース」でネットを検索すると、
知識データベース、といった意味でデータベースを使用している例が出てくる。

しかし、データベースに出来ることは、データの蓄積と検索だけではない、と思う。

例えば、計算して値を保持することが出来る。
例えば、レコードをまたがって合計することが出来る。

ならば、神経細胞が発火するかどうかを、データベースを用いて
シミュレートできるのではないだろうか。


ついでに、どんなテーブルが考えられるのかを、考えてみる。。。

神経細胞ひとつにつき1レコードで、その細胞の発火状態を持つテーブル?
(神経細胞が1000万個あれば…1000万レコード…)

神経細胞ひとつにつき複数レコードで、その細胞にどの細胞が接続しているかを説明するテーブル?
(ある神経細胞ひとつ分のレコード数=シナプスにより接続している神経細胞の数。
全レコード数はこれを神経細胞数分だけ合計した数となる。
平均1000個のシナプスがつながっている神経細胞が300億個あれば…
10^3 * 3 * 10^10 = 30^13 …これは 30兆?レコード?…あれ?なんだ?正しい?これ)

シナプスひとつあたり1レコードを持つ、あるシナプスの興奮または抑制の度合いを説明するテーブル?


なんだか わかんなくなってきちゃった。

つづく~