小脳モデル調節コントローラ(CMAC)は、運動制御と協調に関与する脳領域である小脳の構造と機能に着想を得た人工ニューラルネットワークの一種である。1970年代に開発されたCMACは、連想記憶の一形態であり、連続入力ベクトルを分散的かつ局所的に調整された表現を通じて出力値に写像することで関数近似を行う。これは、ロボットアーム操作などのリアルタイム制御用途に特に適しており、迅速な学習と適応が求められる。
CMACは、各入力次元を重複する受容野の集合に量子化することで動作する。各入力点はこれらの受容野の小さなサブセットを活性化し、ネットワークの出力は活性化された受容野に関連付けられた重みの合計として計算される。この設計は局所的な一般化を提供する。類似した入力は重複する受容野を活性化して類似した出力を生成する一方、遠い入力は受容野を共有せず干渉を防ぐ。学習則は通常、単純な勾配降下法または最小二乗平均更新であり、多層パーセプトロンと比較してトレーニングが高速で計算コストが低い。
歴史的発展
CMACは、1975年にジェームズ・アルバスが米国国立標準局(現在の国立標準技術研究所)で勤務中に導入した。アルバスは、小脳機能の計算効率の高いモデルの必要性に動機付けられ、その詳細を学術誌 Mathematical Biosciences に一連の論文で発表した。彼の研究は、デビッド・マーとジェームズ・ブリンドリーによる小脳学習の初期理論に基づいていたが、アルバスの主要な貢献は、ハードウェアまたはソフトウェアで実装可能な実用的なアルゴリズム的定式化であった。「調節コントローラ」という名前は、滑らかで正確な動きが不可欠なロボットマニピュレータの関節制御における当初の使用目的を反映している。
アーキテクチャと動作
CMACは、入力層、概念写像層、物理メモリ層、出力層のいくつかの層で構成される。入力層は連続値信号を受け取り、それを離散状態に量子化する。概念写像層は、ハッシュ関数を使用してメモリ要件を削減し、各量子化入力を仮想メモリ空間内のアクティブアドレスのセットに割り当てる。物理メモリ層は重み値を格納し、出力はアクティブアドレスでの重みの合計である。
入力ごとのアクティブアドレス数(しばしば C と表記)は、一般化の幅を決定する。 C が大きいほど広い一般化が得られるが解像度は粗くなり、 C が小さいほどより細かい識別が提供される。解像度は各次元の量子化ステップサイズによっても制御される。実際には、CMACはしばしばハッシュスキームを使用して大きな概念空間を小さな物理メモリに写像するため、衝突が発生する可能性があるが、制御タスクでは一般的に許容される。
学習と適応
CMACのトレーニングには、入力と出力のペアを提示し、アクティブアドレスの重みを調整することが含まれる。標準的な更新則は次のとおりである。
Δw = α * (ターゲット - 出力) / C
ここで、αは学習率、ターゲットは望ましい出力、出力は現在の予測である。この則は正規化された最小二乗平均アルゴリズムと同等である。サンプルごとに更新される重みはごく一部であるため、ノイズの多いデータでも学習は高速かつ安定している。CMACは、各重みが対応するフィールドを活性化する入力によってのみ影響を受けるため、壊滅的干渉を受けない。
1つの制限は、入力次元が増えると重みの数が指数関数的に増加する可能性があることだが、ハッシュ化によってこれは軽減される。高次元の問題では、Deep learning ネットワークなどの他のアーキテクチャが好まれる場合があるが、CMACは低から中程度の次元の制御タスクでは競争力を維持している。
応用
CMACはロボット工学と制御システムで広く応用されてきた。初期の用途には、産業用ロボットアームの関節制御が含まれ、滑らかな軌道追跡を提供した。また、航空機の飛行制御やエンジン管理などの非線形システムの適応制御にも使用されてきた。1990年代から2000年代にかけて、研究者はCMACをReinforcement learning 技術と統合し、倒立振子のバランス取りや移動ロボットのナビゲーションなどのタスクに使用した。
最近では、CMACは信号処理やパターン認識などの分野でニッチな応用が見られるが、Deep learning 手法によって大部分が影を落としている。しかし、その低い計算コストと単純なハードウェア実装は、組み込みシステムやリアルタイムアプリケーションにとって魅力的であり、レイテンシが重要なTesla スタイルの制御ループやIntuitive Surgical ロボット手術システムなどで使用されている。
他のモデルとの比較
Neural network モデル(多層パーセプトロンやTransformer (architecture) ベースのアーキテクチャなど)とは異なり、CMACはノンパラメトリックで局所重み付けされたモデルである。バックプロパゲーションや隠れ層を通じた勾配計算を必要としないため、アナログまたはデジタルハードウェアでの実装が容易である。メモリ使用量は予測可能であり、トレーニングはオンラインであるため、変化する環境に継続的に適応できる。
ただし、CMACは画像やテキストなどの高次元で構造化されたデータに対する深層ネットワークの表現力に欠ける。入力空間が比較的低次元で、近似される関数が滑らかである問題に最適である。Artificial intelligence とMachine learning のより広い文脈では、CMACは古典的な手法と見なされているが、制御工学やロボット工学の教育において依然として有用なツールである。
関連項目
- Neural network
- Machine learning
- Robotics
- control-theory
参考文献
- Albus, J. S. (1975). A new approach to manipulator control: The cerebellar model articulation controller (CMAC). Journal of Dynamic Systems, Measurement, and Control, 97(3), 220-227.
- Miller, W. T., Glanz, F. H., & Kraft, L. G. (1990). CMAC: An associative neural network alternative to backpropagation. Proceedings of the IEEE, 78(10), 1561-1567.
- Brown, M., & Harris, C. (1994). Neurofuzzy Adaptive Modelling and Control. Prentice Hall.