1 / 43

電気電子工学専攻 知能集積システム特論

電気電子工学専攻 知能集積システム特論. 運動・出力系. 関根 優年. 講 義  内 容. 脳の計算理論 川人光男 運動制御の理論 脳 人工知能と脳理論  M.A.Arbib N.R.Taylor, J.G.Taylor, “ Hard-wired models of working memory and temporal sequence storage and generation ” , N.Networks 13, p.p.201-224, 2000. 出力系. 効果器(筋肉,モータ,スピーカー)に対する駆動信号 PWM, パルス(スパイク)密度の生成と制御

deion
Download Presentation

電気電子工学専攻 知能集積システム特論

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 電気電子工学専攻知能集積システム特論 運動・出力系 関根 優年

  2. 講 義  内 容 • 脳の計算理論 川人光男 • 運動制御の理論 • 脳 人工知能と脳理論 M.A.Arbib • N.R.Taylor, J.G.Taylor, “Hard-wired models of working memory and temporal sequence storage and generation”, N.Networks 13, p.p.201-224, 2000

  3. 出力系 • 効果器(筋肉,モータ,スピーカー)に対する駆動信号 • PWM,パルス(スパイク)密度の生成と制御 • 要は,パルス列を決まったタイミングで出力すれば良い. • 適当にパルスを出して,効果器の動作を調べ, • パルス列を調整する. • 制御理論,既に終わっている? • Feedbackを掛ければOK?

  4. 随意運動制御の階層計算モデル • 概念レベル • 環境空間での運動 • 効果器 • 身体空間の運動 • 関節運動 • 関節トルク • 筋肉 • 神経パルス信号の生成・合成 と て も 難 し い 運動の目標 軌道決定 作業空間 での軌道 座標変換 身体座標 での軌道 制御 軌道を実現 するための 運動指令

  5. 不良設定問題 • 良設定問題 • 解が一意で存在 • 連続解 • → 微分方程式に支配された古典的な運動系:自然界の第1次近似 • 線形連立方程式で記述 • 線形近似解をスプライン補間で滑らかにしても本質は変わらない • 良でないものが不良設定問題 • 離散系,非線形系,すなわち, ほとんどのものが不良設定問題 • 微分方程式で記述すること自体が間違い.しかし,それしか道具がない.

  6. 問題の定式化 I 状態ベクトル, 制御入力, 非線形ベクトル関数 • 微分方程式 • 微係数:今後の変化の方向と量は, 自分自身と入力とで決まる. • 非線形:内部の複雑な影響が単純ではない. • 順でも逆でも簡単には解けない. 多関節の運動制御対象の運動は常微分方程式 で表される. uからqを求めるのを順ダイナミックスという.逆に qからuを求めるの逆ダイナミックスという.

  7. 問題の定式化 II • 剛体の力学系:回転,平行移動などの軌跡は解ける. • 慣性,運動量,加速度などの関係は解ける. • 筋肉・モータで物体を物理的に動かす.入力のパターンが決まる. • パターン生成に運動の解がいる? • 常微分は回路で解けないので,線形化して行列演算:でも,遅い. • もともと,機械的な運動を表現するのが目的 • フィードバック制御が通例 • 機械的な制御を表現  動けば,パッチワークで良い.

  8. 運動に関する神経回路 I

  9. 運動に関する神経回路 II (1)駆動決定 (2)プログラム   起動 (5)出力抑制 (2.5) プログラム 断片 アクセス (4)動作量計測 (3)動作

  10. フィードバック・ループ • トランス・コルティカル・ループ • 筋紡錘>体性感覚野>運動野でフィードバック. • 運動野に入る直前で抑制入力になる. • フィードバックがあるのは当然 •  ループ時間 50~100 msec • 運動時間 200~500,500~700,                700~1000 具体的に, 制御量を どう決定 しているか が問題. どう回路で 作るか

  11. 教師あり運動学習 • 精密に設計できないので学習でパラメータ・チューウニングをする • 順,逆モデルは簡単には作れない • 出来ても柔軟性に乏しい 運動指令 目標 フィードバック コントローラ 制御対象 順モデル 現在の状態 推定軌道 運動指令 目標 逆モデル 制御対象

  12. 多重制御: • 多重にすれば柔軟になる? 目標 運動指令 feedback controller feedback controller feedback controller 制御対象 順モデル 順モデル 順モデル 現在の状態 推定軌道 運動指令 目標 逆モデル 逆モデル 逆モデル 制御対象 単純には行かない. 学習? 何を学習する?

  13. 回路構成を先に検討   次に方式に戻る

  14. 出力仕様  • どれだけのパルスでどれだけ動くか • 腕8 足2 目4 首1 など最大48個迄 • モータの運動時間:200ms以内 • GPIO:VCC,GND,CLK,13[IO]  • 3GPIO→13x3=39[IO]→200/2 ms =100msのインターバル. • パルス速度:10倍早くして,10.24ms動作とする. • FPGA回路は50MHzで動作:回路の演算時間は • 10.24ms/20ns=512clk • 出力だけだと,センサー入力が無い. • GPIOは出力と入力を切り替える • 10.24msで出力後は,同じ時間10.24msでセンサー入力.

  15. パルス信号の符号化 • 1パルスの信号値:32とすれば, • 32ビットの1,0ビット列でコード化 • 512/32=16パルス/10msで記述 • 32bit幅で1パルスを8clkで計算 • 16パルスx8=128clk が必要 • メモリ内のコード表現 • 1,0のピットパターンそのまま • メモリアクセス回数が多い. • ビット列への変換回路が不要 • 2進重み付き 4ビットで16値表現 • メモリアクセス回数が減り高速化 • ビット列への変換回路が必要 32x16=512の1/0ビット列

  16. 回路構成 • メモリアクセスの並列化 • 512/128=4モータを1回路で駆動 • 48モータ/4=12回路が必要 • 12回路を3つのFPGAに割り当て LM0 LM1 LM2 FPGA0 回路0 回路1 回路2 回路3 FPGA1 回路4 回路5 回路6 回路7 FPGA2 回路8 回路9 回路10 回路11 GPIO GPIO GPIO

  17. 回路割り当て • FPGA0,1,2に4回路づつ割り当て • メモリアクセスは4重 • 128clk内で4回アクセス, • 回路は128/4=32clk内でアクセス • SRAMアクセスタイム=10ns?でok. • SDRAMは80ns: • 4clkでアドレスセット,RW • 8回(8x4clk=32clk)で     (32x8=256ビット)のデータをRWできる. 仕様未達! • 1回路あたり • 256ビットの入力  • 32ビットx16=512ビットの出力が必要.

  18. モータ制御パルスのタイムチャート 10ms 0 255 511 モータ0 モータ1 モータ2 モータ3 回路0 (FPGA0) 128clkで実行 16回のメモリアクセス 回路1 (FPGA0) 回路11 (FPGA2)

  19. 回路演算のオーバーラップ 10ms 0 255 511 メモリアクセスを圧縮 メモリデータ:4ビット16値に変更 8パルス/32ビットより 2回のメモリ・アクセス=16clk 回路0 (FPGA0) 回路内で ビット列に展開 48clk メモリアクセス後,即実行 512-48=464clkで計算

  20. メモリ内での符号化 • メモリアクセス回数 • 将来SDRAM使用する場合にメモリアクセスネックになる. • メモリ内は4bit-width, binary-codingにする.内容を文字で見れる. • 回路読み込み時にビットパターンに変換. • 1,0のパターンが重要.値ではない. • 演算対象のビットパターンとのビットAND,ORが大事.

  21. ビットパターンの重ね合わせ • パターンの多層表現(出来たとする) • 大枠の制御パターンを解像度Lで生成 • このパターンを元に次の解像度L-1のパターンが作られる. • この時に,L-1のセンサー入力が加味される 重ね合わせ

  22. 回路構成 • シフトレジスタ内にパルスパターンを記憶 • 多数のレジスタ=ブロック・メモリ パルス出力 シフトレジスタ AND NOT入力 起動 シフトレジスタ & 重ね合わせ トリミング 起動 メモリ内容 を学習 シフトレジスタ & 出力

  23. 運動野:4,5,6野でのパルス • 4野:第1次運動野: • 筋肉の張力を符号化 • 筋肉座標で記述 • 運動の方向も関与 • 5野:頭頂連合野:運動指令の発現 • 作業座標で目標軌道を記述 • 目で見て作った空間 • 6野:運動前野 • 身体座標で目標軌道を記述 視覚情報 身体情報 身体座標 視 覚 座 標 筋肉座標

  24. 運動野:4,5,6野 • A,B行列:座標変換ばかりしている. • 行列演算(積和)効率が悪い. • 行列を作っても如何しようもない • 座標の対応をどうとる? • 通常の座標の考えではまずいのでは? • 変換の計算式を作るのではまずい! • 対応関係を作ればよい(sparse matrix)

  25. 各領野のパルスの対応関係 • 各領野のパルス間に対応を取っていけば,座標変換は内包される. • 領野内には多数のパルスがある. • 4野の運動パルスのパターン • 決まった神経パルス→筋肉の動作が決まる. • この神経パルスを生成する6野の神経パルス→筋肉の動作を4野を介して制御. • 身体の感覚情報が入力→身体座標系の記述となる.

  26. 各領野のパルスの対応関係 • この6野の神経パルスを制御する5野の神経パルス,6,4野を介して運動パルスを制御. • 視覚からの情報が入力→作業座標系での記述となる. • 記号(言葉)からパターンを生成         GO    

  27. 各領野でのパルス解像度 I • 各領野でのパルスの解像度 • 学習で解像度を獲得? • 遺伝的に解像度を決定? • 扱うパルス自体で自明の解像度が決まる. • 成長と共に,詳細なパルス列を学習していく(仮説). すなわち,筋肉の側から神経パルスが作られていく. • 末端から中枢へと階層が上がっていく • 各階層で,パルスの表現空間が出来る 中枢

  28. 各領野でのパルス解像度 II • パルスのwavelet変換(仮説) • 筋肉を動かす側からパルスが決定される. • このパルスを制御するには解像度が粗くなる. • 理由:類似のパルスが沢山あるので,平均化されたパルスを制御するパルスが作られる. • どう証明するか. • その前にパルス論理体系が必要 • 論理回路の簡単化と同じ • 共通部分を纏めて行く. • 逆誤差伝播法と同じように出力側から決めていけるかどうか?

  29. 各領野でのパルス解像度 III • 逆誤差伝播法と同じように出力側から決めていけるかどうか? • 大脳基底核では,運動が自発的に発現して,それを抑制するして動きを止める仕組みになっている. • 此処が壊れると舞踏病になる • パーキンソン病も手足が震える? • 即座に動けるため? • 運動パターンを学習するため?

  30. 運動制御のパルス I • 入力パルスを加工して出力パルスを作る • 神経素子の発火順序を制御. • 一列に並んだ神経素子を発火させ出力の和をとる • グラフ(木構造)のあるパスに沿って発火させて出力和をとる. • パス選択の制御はこのグラフに入力されたパルスが行う. グラフの共通部分 をまとめると 回路構造になる. (BDDが良い例)

  31. 運動制御のパルス II • 部分的に数珠繋ぎのモジュールが並列,分散,アレイ構造の回路を構成 • 入力パルスが伝播, • 感覚情報が制御信号としてパス制御

  32. パルス演算処理 I • 横方向ビット展開,時間方向信号列. • 2次元に広がった信号を扱う. • 入力パルスPIa, PIbで出力パルス POxを得る. POx = F(PIa, PIb) • 回路を時間方向でも考える? • 16パルス,32パルス区間など時間をひとまとめにして扱う. • 複数のパルス列が回路に入力して演算が行われる. パルス 演 算 回 路 Pulse xxxx Pulse xxxx Pulse xxxx Pulse xxxx Pulse xxxx Pulse xxxx

  33. パルス演算処理 II • 演算処理回路 • (シフト)レジスタ内のパルスと入力パルスとで演算が行われる. • 回路の状態が変わりながら入力パルスの演算が行われる. • 回路内を入力パルスが回りながら演算が行われる. シフトレジスタ 入力 パルス演算 Pulse xxxx Styyy パルス演算 パルス演算 Styyy Styyy

  34. 運動制御 • 回路部分とプログラム部分とに分けて実現する. • 順モデル,逆モデルどちらを採用する場合でも多層かして回路とプログラムとに分ける • 感覚器官からの入力も多層(多重)化して入力する. 運動指令 目標 フィードバック コントローラ 制御対象 順モデル 現在の状態 推定軌道 運動指令 目標 逆モデル 制御対象

  35. 仮想軌道による制御方法 • 古い運動指令→新しい運動指令    古い釣合位置→新しい釣合位置 中枢神経系は最終の平衡点のみを指定する. • 途中の運動軌跡は指定しない. • 仮想軌道制御仮説 • 逆ダイナミックスを解く必要がない • 大きな疑問が投げかけられている • 多関節運動はfeed forwardでの制御が必要と主張. • 内部モデルがいる. • 順モデル:巡回結合型神経回路モデルで学習可能 • 逆モデル:前向き結合多層神経回路モデルで学習可能

  36. 多層・階層制御 • 多段に並べるだけでは,多層,階層にはならない. • 各層毎に異なる制御がいる • 各層毎に異なる入力がある • 層間に相互作用がないといけない 目標 運動指令 制御 対象 feedback controller feedback controller feedback controller 順モデル 順モデル 順モデル 現在の 状態 逆モデル 逆モデル 逆モデル 推定軌道

  37. 運動に関する神経回路 II 基底核を含めた運動回路 運動野 線条体 黒質 淡蒼球 外節 視床 淡蒼球内節

  38. 運動に関する神経回路 III • BGによる視床(THL)の制御は脱抑制(STR→Gpi) • 簡単化したループ構造: 運動前野(PMC)→基底核(BG)ー視床(THL) • PMCへは,音や画像情報が手がかり(cue)として入力

  39. visual modelの結線図 VTT

  40. PMCニューロンの活動パターン Initiator simple memory 1 Pre-movement 1 Movement 1 simple memory 2 Pre-movement 2

  41. PMCニューロンの活動パターン • ニューラルネットの記述:連立微分方程式→差分化→シミュレーションで記述 • 非線形関数で安定解を見つける • とても大変,小規模回路しか出来ない. • 動作がモジュール化できない. • 階層設計も出来ない • 論理回路でも簡単に記述できる. • パルス論理にして, • 階層設計 • パルスの符号化の設計 • 論理シミュレーションによる検証 • FPGAで実現

  42. 小脳による制御 • 細かい運動パターンを記憶 • 運動野,基底核から呼び出される • 読み出されてパルスが合成される • 詳しくは,そのうち

  43. 運動の学習 • 神経回路網を学習で構成 • パルスコードの学習 • メモリに記憶すれば OK? • シフトレジスタ(ファイル?)が大量にいる. • 回路自身を構成する • 回路変更をどうする • 制御手順を学習・変更すればOK? • FPGA内に可塑回路を作って実験. • 新しいFPGA(reconfigurable LSI)を考案 • パルス回路の理論・合成法がいる • 学習=逐次的設計更新+仕様変更+最適化

More Related