hebb — 多層ヘッブ学習を用いたスマート信号制御
概要
(リポジトリの概要を300字程度で説明)
このリポジトリは「Sistema de Semaforo Inteligente - Red Hebbiana Multicapa」というプロジェクトで、四方向(北・南・東・西)の交差点における車両待ち数に応じて、どの信号を点灯させるかを学習して決定するシンプルなスマート交通信号システムを提供します。コアは多層ヘッブ則に基づくニューラルネットワークで、教師信号なしに連合的な結合強化を行い、時間経過で各方向への優先度を調整することを目的とした教育的・研究的なプロトタイプです。実装は Python のスクリプト中心で軽量です。
リポジトリの統計情報
- スター数: 3
- フォーク数: 1
- ウォッチャー数: 3
- コミット数: 2
- ファイル数: 2
- メインの言語: Python
主な特徴
- 多層ヘッブ則(Hebbian learning)を用いた教師無し学習による信号制御
- 四方向交差点(N/S/E/W)の車両流を入力として優先度を決定
- Python 実装で小規模かつ拡張が容易なプロトタイプ構成
- 教育・研究用途に向けた簡潔なコードベース(2ファイル)
技術的なポイント
(技術的な特徴や注目点を700字程度で説明)
ヘッブ則は「一緒に発火するニューロン同士の結合が強くなる」という生物学的な学習規則であり、本プロジェクトではこれを多層ネットワークに適用して交通状態(各方向の待ち車両数)と行動(どの信号を点灯するか)の連合を学習します。入力は通常、四方向の車両数を正規化したベクトルとして表現され、ネットワークは内部表現を経て各信号候補の「活性度」を出力します。更新則は基本的なヘッブ型の重み調整(Δw ∝ η · x · y)に基づき、頻繁に同時活性化する入力–出力ペアの結合を強めることで、自然に優先度が形成されます。
実装上の重要点は、出力決定に競合解決(WTA: winner-takes-all)や閾値処理を導入することです。これにより、複数方向で同程度の待ちがある場合でも一方向を選んで信号を与える運用が可能になります。さらに、シミュレーションループは「観測 → 決定 → 信号適用 → 学習(重み更新)」を繰り返す形で、リアルタイムに近いオンライン学習を行えます。
利点としては、教師データ不要で環境に即した自己組織化が可能な点、アルゴリズムが軽量である点が挙げられます。一方で、長期的な交通最適化(待ち時間の最小化や車列の動的な相互作用)や報酬に基づく最適制御には制限があり、時間依存の最適政策学習には強化学習の導入や外部評価指標を組み合わせる拡張が有効です。また、実運用ではセンサーノイズ・車両到着確率・複数交差点の協調など現実的要素への対応が必要です。本リポジトリはそのような拡張や比較実験のベースとして使いやすい設計になっています。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- semaforoHebb.py: file
まとめ
(総評を50字程度で)
ヘッブ則を用いた教育的な交通信号制御プロトタイプ。拡張・比較実験に適したシンプル実装。
リポジトリ情報:
- 名前: hebb
- 説明: Sistema de control de tráfico inteligente usando Red Hebbiana Multicapa. Aprende a optimizar semáforos en una intersección de 4 direcciones según flujo vehicular
- スター数: 3
- 言語: Python
- URL: https://github.com/heysebitas/hebb
- オーナー: heysebitas
- アバター: https://avatars.githubusercontent.com/u/80731951?v=4
READMEの抜粋:
Sistema de Semaforo Inteligente - Red Hebbiana Multicapa
Descripcion del Proyecto
Sistema de control de trafico inteligente que utiliza una Red Neuronal Hebbiana Multicapa para aprender y decidir que semaforo activar en una interseccion de 4 direcciones segun el flujo de trafico.
Problema a Resolver
Objetivo: Aprender a dar prioridad en una interseccion segun la cantidad de carros esperando en cada direccion (Norte, Sur, Este, Oeste).
Aplicacion real: Optimizar el f…