QIS(Quadratic Intelligence Swarm) は、エージェントが増えるほど知能が二次的に(quadratically)成長する分散アーキテクチャでありながら、各エージェントは計算コストを対数的(logarithmic)にしか負担しません。生データは決してノードから外に出ません。検証済みの結果パケットのみがルーティングされます。
QISを理解する — 第34回
ミリッジ(Miles)の問題
2018年3月18日、UberのAdvanced Technologies Groupの車両が自律モードで走行中、アリゾナ州テンピで歩行者をはねて致命傷を負わせました。車両の知覚システムは、衝突の5.6秒前に歩行者を検知していました。物体分類器は「不明な物体」「車両」「自転車」といくつかの分類を順に経てから、「自転車」にロックオンしました。緊急ブレーキシステムは、挙動の不規則さを減らすための設計上の選択として無効化されていました。安全運転者は道路を監視していませんでした。
NTSBの調査では、複数の要因が特定されました。中でも注目度が他より低かった一つの要因は、UberのAV(自動運転)車隊は、道路テストで200万マイルを積み上げていたが、そのほぼ全てが、夜間に複数車線の道路を横断歩道ではない場所で、歩行者が自転車を押して歩いている状況を含んでいない条件で行われた、という点です。
同じ状況は、さまざまな形で、他のAVのテスト車隊にも遭遇されていました。必ずしもテンピで、必ずしも同じ車両構成でではありません。しかし根本的な課題――「横断歩道の境界で制約された横断」の予測分布と一致しない歩行者の軌跡――は、他のプログラムでもニアミスや分類の不確実性が生じる原因となっていました。
これらの検証済みの結果観測は、Uberのプログラムにルーティングされることはありませんでした。できませんでした。あらゆるAV企業のテレマティクスデータは独自のものであり、競争上の利益によって保護されているうえ、仮に共有したいという意思があったとしても、生のままではあまりに膨大で共有できません。完全に計測された単一のAVは、運用1時間あたりおよそ4テラバイトのセンサデータを生成します。1,000台のテスト車両からなる車隊では、1日に生成されるデータ量は、どの組織にとっても、組織の境界を越えて意味のある形で送信・受信・統合することなど不可能なほどの量になります。
その結果、すべてのAVプログラムが、同じエッジケースをそれぞれ独立に再発見することになります。知識は各車隊の中で増幅します。車隊間では増幅しません。希少で、安全性に直結する出来事――個々には珍しいものの、集合としては重大なAVインシデントの大半を占める「長い裾(ロングテール)」の、異例のシナリオ――の規模では、このアーキテクチャ上の制約は些細な非効率ではありません。これは、技術が広範な展開に先立って必要とする安全性のベースラインを乗り越えるための障壁です。
なぜデータの壁は直接登れないのか
「データを共有する」という本能は、問題のレベルでは正しいが、実装のレベルでは間違っています。生のAVテレマティクスは不可逆的に独自データです。それらは次を符号化します:
- 運用したルートの精密な地図化。これにより、展開戦略や地理的なカバー範囲の判断が明らかになる
- 物体検出および分類の性能。ここには独自のモデル構成が反映されている
- センサフュージョンの構成。そこには何年にも及ぶハードウェア投資とキャリブレーション投資が表れている
- 歩行者と運転者の行動観測。十分な粒度があれば、再同定(re-identification)を可能にしうる
AVプログラムは、生のセンサログを組織の境界を越えて送信しません。競争上および法的な障壁は構造的なものです。AVデータ共有のための規制枠組み――NHTSA、USDOTでの長年の議論や、ISO 34502の標準レベルでの議論があったにもかかわらず――は、実際に運用可能な伝送フォーマットへ収束していません。生データ方式は、最初のNTSBによるAV調査以来議論されてきましたが、車隊横断での統合(クロスフリート合成)の仕組みは生まれていません。
AVの安全性に関するフェデレーテッド・ラーニング(FL)提案は、学術文献に存在します。制約は、他のあらゆるFLアプリケーションで見られるものと同じです:
ラウンド単位の学習はリアルタイムではない。 今週起きる歩行者の軌跡分類の失敗が、次の学習ラウンドでようやく別のプログラムの検出モデルに合成されるわけではありません。合成されるのは、場合によっては数週間後です。
モデル重み共有はアーキテクチャを漏えいさせる。 フェデレーテッド・グラディエントの更新には、基盤となるモデル構造に関する情報が含まれます。独自の知覚アーキテクチャを持つAVプログラムにおいて、勾配(グラディエント)を共有することは、実質的に知的財産を共有することに等しいのです。
希少イベントの学習には莫大なNが必要だ。 横断歩道の外で夜間に「歩行者+自転車」のシナリオが現れるのは、運用50万マイルに1回の頻度かもしれません。単一のプログラム内で統計的に意味のある学習シグナルを蓄積するには、5,000万マイルの運用が必要です。フェデレーテッド・ラーニングは車隊間で計算をプールできますが、それでも、各参加者が勾配を提供するだけの十分な回数、そのシナリオを観測している必要があります。
検証済みの結果フィードバックがない。 FLは、ラベル付きの学習データに対して計算される損失関数(loss function)に基づいてモデル重みを最適化します。しかしそれは、「この知覚判断は安全か/危険か、そしてなぜなのか?」という答えを、ネットワーク越しに戻してルーティングするものではありません。
QISが実際にルーティングするもの
AVの文脈では、QISノードとは、操縦(マヌーバ)を完了し、その結果を検証できる任意の車両、または車隊のことを指します。生のテレメトリ――ライダーの点群、カメラのフレーム、レーダーの戻り、HDマップの差分、独自のセンサフュージョン出力――は決してノードから出ません。何がルーティングされるのかというと、結果パケット(outcome packet)です。これは約512バイトの構造体で、車両が何を決めたのか、結果がどうだったのか、そして文脈上の条件が何だったのかをエンコードします。
import hashlib
import json
from dataclasses import dataclass, field, asdict
from typing import Optional
from itertools import combinations
返却形式: {"translated": "翻訳されたHTML"}
# ---------------------------------------------------------------------------
# コアとなるデータ構造
# ---------------------------------------------------------------------------
@dataclass
class AVOutcomePacket:
"""
~512バイトのアウトカムパケット。検証済みの自律走行車の操縦(マヌーバ)をエンコードする。
生のセンサデータ、地図データ、モデル重み、ならびにフリートの識別情報は
この構造体には一切格納されない。格納されるのは、検証済みの意思決定結果が
到達する経路のみである。
"""
scenario_class: str # "pedestrian_crossing" | "cut_in" | "occlusion_entry"
# | "unprotected_left" | "emergency_vehicle_yield"
# | "adverse_weather_merge" | "construction_zone"
# | "cyclist_interaction" | "school_zone_crossing"
sensor_context: str # "lidar_primary" | "camera_primary" | "radar_primary"
# | "sensor_fusion" | "degraded_lidar" | "low_visibility"
environment: str # "urban_dense" | "suburban" | "highway" | "rural"
# | "intersection_signalized" | "intersection_unsignalized"
lighting: str # "daylight" | "dusk_dawn" | "night_lit" | "night_unlit"
weather: str # "clear" | "rain_light" | "rain_heavy" | "fog" | "snow"
decision_made: str # "yield" | "proceed" | "emergency_stop" | "lane_change"
# | "speed_reduction" | "reroute"
decision_correct: bool # 真値により検証済み: その意思決定は安全なアウトカムにつながったか?
time_to_resolution_ms: int # 安全に重大な局面が解決するまでの時間
confidence_at_decision: float # 意思決定時点におけるモデルの信頼度スコア(0.0〜1.0)
outcome_decile: int # 0〜9: このシナリオが過去の類似事例に比べてどれくらい良く解決したか
object_count: int # シナリオ内の脆弱な道路利用者または車両の数
speed_class: str # "low_under30" | "mid_30to60" | "high_over60" (mph)
fleet_id: Optional[str] = None # 匿名化したフリートのハッシュ — OEMの識別情報なし
packet_version: str = "1.0"
def semantic_fingerprint(self) -> str:
"""
シナリオクラス、環境、センサコンテキスト、ライティングをエンコードする
決定論的なフィンガープリント。OEMの識別情報とモデルアーキテクチャは存在しない。
"""
canonical = (
f"{self.scenario_class}|
f"{self.sensor_context}|
f"{self.environment}|
f"{self.lighting}|
f"{self.weather}|
f"{self.speed_class}"
)
return hashlib.sha256(canonical.encode()).hexdigest()[:16]
def byte_size(self) -> int:
return len(json.dumps(asdict(self)).encode("utf-8"))def __repr__(self):
status = "SAFE" if self.decision_correct else "UNSAFE"
return (
f"<AVPacket {self.semantic_fingerprint()} | "
f"{self.scenario_class} | {self.environment} | "
f"{self.lighting}/{self.weather} | "
f"decision={self.decision_made} [{status}] | "
f"conf={self.confidence_at_decision:.2f} | "
f"decile={self.outcome_decile}>"
)
# ---------------------------------------------------------------------------
# ルーター: DHTベースの類似度ルーティングによるAV操縦結果インテリジェンス
# ---------------------------------------------------------------------------
class AVOutcomeRouter:
"""
AVOutcomePacketを、受信パケットのシナリオクラスと環境コンテキスト
と運用プロファイルが重なるフリートへルーティングします。"""
def __init__(self):
self.agents: dict[str, dict] = {}
self.routing_table: dict[str, list] = {}
self.synthesis_log: list[dict] = []
self.validation_scores: dict[str, float] = {}
def register_agent(self, fleet_id: str, profile: dict):
"""
フリートを、その運用コンテキストのプロファイルとともに登録します。
プロファイルはシナリオ種別と環境履歴を記述します — OEMデータは含みません。
"""
self.agents[fleet_id] = profile
self.validation_scores[fleet_id] = profile.get("initial_accuracy", 0.78)
for scenario in profile.get("scenarios", []):
for env in profile.get("environments", []):
key = f"{scenario}|{env}"
self.routing_table.setdefault(key, []).append(fleet_id)def route(self, packet: AVOutcomePacket) -> list[str]:
"""
このアウトカム・パケットを受け取るべき fleet_id を返します。
ルーティングキー = scenario_class + environment の重なり。
検証精度が高い fleet を最初に列挙します(CURATE 選挙)。
"""
key = f"{packet.scenario_class}|{packet.environment}"
candidates = self.routing_table.get(key, [])
eligible = [f for f in candidates if f != packet.fleet_id]
return sorted(eligible, key=lambda f: self.validation_scores.get(f, 0), reverse=True)
def validate_outcome(self, fleet_id: str, predicted_correct: bool, actual_correct: bool):
"""
VOTE 選挙:現実世界の安全性アウトカムが fleet の精度スコアを更新します。
シナリオの解決を正しく予測した fleet はルーティングの重みを得ます。
"""
prediction_accuracy = 1.0 if (predicted_correct == actual_correct) else 0.0
delta = 0.05 * prediction_accuracy
current = self.validation_scores.get(fleet_id, 0.78)
self.validation_scores[fleet_id] = min(1.0, current + delta - 0.01)
# -0.01 基本の減衰:古い fleet はルーティングの重みを無期限に保持しない
def synthesize(self, fleet_a: str, fleet_b: str, packet: AVOutcomePacket) -> dict:
"""
2 つの fleet が共通の AV マヌーバ・アウトカム・パケットを合成します。
生のセンサーデータはありません。OEM の識別情報はありません。モデル構造はありません。
"""
weight_a = self.validation_scores.get(fleet_a, 0.78)
weight_b = self.validation_scores.get(fleet_b, 0.78)
return {
"synthesis_id": hashlib.md5(
f"{fleet_a}{fleet_b}{packet.semantic_fingerprint()}".encode()
).hexdigest()[:8],
"fleets": (fleet_a, fleet_b),
"combined_accuracy": round((weight_a + weight_b) / 2, 3),
"packet_fingerprint": packet.semantic_fingerprint(),
"scenario_class": packet.scenario_class,
"environment": packet.environment,
"lighting": packet.lighting,
"weather": packet.weather,
"decision_made": packet.decision_made,
"decision_correct": packet.decision_correct,
"confidence_at_decision": packet.confidence_at_decision,
"time_to_resolution_ms": packet.time_to_resolution_ms,
"outcome_decile": packet.outcome_decile,
}
def run_simulation(self, packets: list[AVOutcomePacket]):
total_syntheses = 0
print(f"
{'='*72}")
print(" QIS AV マヌーバ結果ルーティング シミュレーション")
print(f"{'='*72}")
print(f" 登録済みフリート:{len(self.agents)}")
print(f" 発信されたパケット:{len(packets)}")
n = len(self.agents)
theoretical_max = n * (n - 1) // 2
print(f" 理論上の合成ペア (N={n}): {theoretical_max:,}")
print(f"{'='*72}")
for packet in packets:
recipients = self.route(packet)
if len(recipients) < 2:
print(f" [SKIP] {packet} — レシピエントが不十分")
continue
for fleet_a, fleet_b in combinations(recipients[:6], 2):
s = self.synthesize(fleet_a, fleet_b, packet)
total_syntheses += 1
status = "SAFE" if s["decision_correct"] else "UNSAFE"
print(
f" 合成結果 {s['synthesis_id']} | "
f"{s['scenario_class']} | {s['environment']} | "
f"{s['lighting']}/{s['weather']} | "
f"decision={s['decision_made']} [{status}] | "
f"conf={s['confidence_at_decision']:.2f} | "
f"accuracy={s['combined_accuracy']}"
)
print(f"
{'='*72}")
print(f" Total synthesis events : {total_syntheses:,}")
print(f" Routing cost per fleet : O(log {n}) = O({n.bit_length()})")
print(f" Raw sensor data exposed : 0 bytes")
print(f" OEM identity exposed : 0 bytes")
print(f" Model weights exposed : 0 bytes")
print(f"{'='*72}
")
# ---------------------------------------------------------------------------
# シミュレーション
# ---------------------------------------------------------------------------
if __name__ == "__main__":
router = AVOutcomeRouter()
# 10 個の AV フリートを登録:ロボタクシー事業者、ハイウェイの自動運転プログラム、
# 商用のトラック輸送、そして新興市場向けの ADAS プログラム。
# プロフィールは運用履歴のみを記述します(OEM データやフリート規模は含まれません)。
fleets = [
("fleet_robotaxi_sf", {"scenarios": ["pedestrian_crossing","unprotected_left","cyclist_interaction"], "environments": ["urban_dense","intersection_signalized"], "initial_accuracy": 0.89}),
("fleet_robotaxi_phx", {"scenarios": ["pedestrian_crossing","construction_zone","adverse_weather_merge"], "environments": ["suburban","intersection_unsignalized"], "initial_accuracy
": 0.86}),
("fleet_highway_us", {"scenarios": ["cut_in","lane_change","emergency_vehicle_yield"], "environments": ["highway"], "initial_accuracy": 0.91}),
("fleet_trucking_us", {"scenarios": ["cut_in","adverse_weather_merge","construction_zone"], "environments": ["highway","rural"], "initial_accuracy": 0.88}),
("fleet_robotaxi_sg", {"scenarios": ["pedestrian_crossing","cyclist_interaction","school_zone_crossing"], "environments": ["urban_dense","intersection_signalized"], "initial_accuracy": 0.87}),
("fleet_robotaxi_cn", {"scenarios": ["pedestrian_crossing","cyclist_interaction","unprotected_left"], "environments": ["urban_dense","intersection_signalized","intersection_unsignalized"], "initial_accuracy": 0.85}),
("fleet_highway_eu", {"scenarios": ["cut_in","adverse_weather_merge","lane_change"], "environments": ["highway"], "initial_accuracy": 0.90}),
("fleet_trucking_eu", {"scenarios": ["construction_zone","adverse_weather_merge","cut_in"], "environments": ["highway","rural"], "initial_accuracy": 0.87}),
("fleet_adas_in", {"scenarios": ["pedestrian_crossing","cyclist_interaction","construction_zone"], "environments": ["urban_dense","suburban"], "initial_accuracy": 0.74}),
("fleet_adas_br", {"scenarios": ["pedestrian_crossing","cyclist_interaction","school_zone_crossing"], "environments": ["urban_dense","suburban"], "initial_accuracy": 0.71}),
]
for fleet_id, profile in fleets:
router.register_agent(fleet_id, profile)
# 結果パケットを送信—検証済みの操縦(マヌーバ)観測。
# センサーログなし。マップデータなし。モデル重みなし。OEMの識別子なし。
packets = [
AVOutcomePacket(
scenario_class="pedestrian_crossing", sensor_context="sensor_fusion",
environment="urban_dense", lighting="night_unlit", weather="clear",
decision_made="emergency_stop", decision_correct=True,
time_to_resolution_ms=5600, confidence_at_decision=0.54,
outcome_decile=7, object_count=1, speed_class="low_under30",
fleet_id="fleet_robotaxi_sf"
),
AVOutcomePacket(
scenario_class="adverse_weather_merge", sensor_context="degraded_lidar",
environment="highway", lighting="dusk_dawn", weather="fog",
decision_made="speed_reduction", decision_correct=True,
time_to_resolution_ms=3200, confidence_at_decision=0.61,
outcome_decile=8, object_count=3, speed_class="high_over60",
fleet_id="fleet_highway_us"
),
AVOutcomePacket(
scenario_class="cyclist_interaction", sensor_context="camera_primary",
environment="urban_dense", lighting="daylight", weather="clear",
decision_made="yield", decision_correct=True,
time_to_resolution_ms=2800, confidence_at_decision=0.77,
outcome_decile=9, object_count=2, speed_class="low_under30",
fleet_id="fleet_robotaxi_sg"
),
AVOutcomePacket(
scenario_class="construction_zone", sensor_context="lidar_primary",
environment="highway", lighting="daylight", weather="clear",
decision_made="lane_change", decision_correct=False,
time_to_resolution_ms=4100, confidence_at_decision=0.68,
outcome_decile=3, object_count=4, speed_class="mid_30to60",
fleet_id="fleet_trucking_us"
),
]
for p in packets:
print(f" Packet emitted: {p} | size={p.byte_size()} bytes")
router.run_simulation(packets)
まれなシナリオのロングテール
AV(自動運転)の安全における中心的な統計上の課題は、平均性能ではありません。問題はロングテールです。
RAND Corporationは2016年に、AVフリートは、—ヒトのドライバーより致死率が20%低い—ことを95%の信頼度で統計的に有意な形で示すには、275百万マイルを走行する必要があると推定しました(Kalra & Paddock, 2016, Autonomous Vehicle Testing: How Many Miles?)。この推定値はその後、何度も更新されています。結論の中核は変わっていません。安全性において最も重要なシナリオは、1マイルあたりの発生頻度が最も低いものです。
停止中のバスの後ろから、歩行者が不意に交通へ飛び出してくる。矛盾する合図を持つ工事区間。AVに優先権がある交差点で、非典型的な方向から接近してくる緊急車両。これらのいずれも、運用の数十万マイルに一度発生する可能性があります。どの単一フリートの中でも、それらに出会うのは年間数十回程度でしょう。そのような遭遇から得られる学習の信号は、そのフリートの内側に留まります。
ロングテール問題の数学は、まさにQISが対処するよう設計された数学です。
もし10のAVフリートがそれぞれ年間1億マイルを運用しているなら、ネットワーク全体では、ある珍しいシナリオを単独で観測する各フリートに比べて、合成(synthesis)の経路が約N(N-1)/2 = 45倍多く観測されます。100フリートなら、合成密度は4,950経路に到達し、つまり、どの単一フリートでもたびたび遭遇しないシナリオにネットワークがどれだけ早く対応を学習するか、という点で質的な転換を表します。
NフリートがN(N-1)/2の合成チャンスを観測する。各フリートはO(log N)のルーティングコストを支払う。検証済みの安全知能は二次的にスケールします。伝送オーバーヘッドはスケールしません。
AVの安全における3つの「選挙」
QISの知能は一様にルーティングしません。3つの自然選択の力(知識がどのようにルーティングの重みを得るかの比喩)が、どのAV安全知能が最も強力に伝播するかを決めます。
CURATE(キュレーション)は、最も正確なAVオペレーターが自然に上に押し上げられる力です。自信スコアが0.65未満で一貫して正しい判断を行うフリート(本当に不確実な状況での堅牢な意思決定を示す)は、良性の高速道路条件で高信頼のパケットを出すフリートよりも大きなルーティング重みを獲得します。AV知能の品質を中央で認証するボードはありません。ネットワークは、困難な状況における検証済みの判断精度に対して選別を行います。
VOTE(投票)は、現実世界の結果が発言する力です。「自信0.54で緊急停止し、衝突まで5.6秒」とログに記録された判断は、安全な解決に至ったか、それとも至らなかったかのどちらかです。結果は、パケットを発信したフリートのルーティング重みを更新します。運用するシナリオにおいて、その判断ロジックが一貫して安全な解決につながるフリートでは、精度スコアが上がります。フリートがうまく扱えなかったエッジケース――結果としてログに記録されるoutcome_decile=3の判断――は、成功と同じくらい学習信号を運びます。現実は投票用紙です。
COMPETE(競争)は、AVのプログラムが安全結果によって生きるか死ぬかを決める力です。検証済みのアウトカムを、自分たちが重視するシナリオでより良い判断精度を生み出すネットワークへルーティングできるプログラムほど、競争上の知能的優位を拡大します。予測精度が一貫して低いネットワーク――たとえば、都市の峡谷(urban canyon)に由来するフリートのパケットを、地方の高速道路に展開する文脈には関係のないほど過大評価してしまうネットワーク――は、ルーティング重みと参加を失います。安全性能は選択圧です。
比較:AVフリート間学習のアーキテクチャ
| Dimension |
QISのアウトカム・ルーティング |
連合学習 |
生データ共有コンソーシアム |
フリート間の統合なし |
| 専有データの露出 |
アーキテクチャによる強制:センサログ、地図データ、モデル重みはフリート外へ出ない |
勾配更新にはモデル構造が符号化され得る;競争リスクは受容 |
主要な全プログラムで、生データ共有は法的・競争的に阻止される |
露出なし—さらに統合なし |
| レアイベントの学習 |
フリート間での統合:NフリートがシナリオごとにN(N-1)/2の統合経路を生成 |
各フリートが、そのシナリオを意味のある勾配に十分な回数観測している必要がある |
スケールでの協調は不可能:生データ量が過大である |
各フリートが独立して再発見する |
| リアルタイム・フィードバック |
アウトカム・パケットはシナリオ検証から数分以内にルーティングされる |
トレーニングラウンド:時間単位〜週単位のサイクル |
プロダクション規模では適用不可 |
なし |
| N=1フリートの包含 |
シナリオを観測して検証できる任意のフリートがパケットを発行する |
勾配集約は参加者Nが非常に小さいと劣化する |
小規模または新興市場のプログラム向けの仕組みがない |
同等の排除 |
| 安全性改善の加速速度 |
二次的に加速:新しいフリートごとに、全ての統合経路が乗算される |
せいぜい線形:新しい参加者ごとに勾配ソースが1つ追加される |
実現可能なら線形 |
ゼロ |
| 新興市場の包含 |
インドまたはブラジルのレベル2+ ADASプログラムが、同等のアーキテクチャ上の地位をもつパケットを発行する |
予算とフリート規模が勾配品質を制約する |
参加できない |
参加できない |
新興市場における安全性と参加の最低ライン
これは、地球規模の公平性に関する抽象的な論点ではありません。運用上の安全性に関する議論です。
ムンバイ、サンパウロ、ラゴス、ジャカルタでの都市部の運転では、歩行者の密度パターン、サイクリストとの相互作用の頻度、非公式な交通行動、そして工事区間の構成が、米国や欧州のAV(自動運転車)トレーニングデータを満たすシナリオとは根本的に異なります。新しいシナリオタイプ—現在のグローバルなAVトレーニングデータにおける表現が少ないシナリオ—に遭遇する可能性が最も高いフリートは、現行のフリート間統合提案において表現が最も低い環境で運用されています。
バンガロールでレベル2+のフリートを運用するADASプログラムは、歩行者との相互作用パターン、自動リキシャの割り込み挙動、道路路面条件など、スケールの観点で米国や欧州のどのフリートも遭遇していない事象を観測しています。いずれの現行のフリート間統合提案の下でも、その観測データは参加できません。そのプログラムには、既存のいずれのコンソーシアムにも参加するための統合予算、フリート規模、データ基盤がありません。
QISでは、参加の最低ラインは約512バイトのアウトカム・パケットです。ある車両が操縦(マヌーバ)の結果を観測でき、その結果を構造化されたパケットとして発行できるなら、参加します。CURATEの選挙(エレクション)では、パケットの意思決定精度によって重み付けされ、フリート規模やOEMの予算によって重み付けされるわけではありません。チェンナイの50台のADASフリートによる検証済みの緊急停止は、サンフランシスコの1万台のロボタクシープログラムによる検証済みの緊急停止と、同一のアーキテクチャ上の地位を持ちます。
これは、生データ量ではなく、アウトカムのデルタによってルーティングされることの結果です。
あらゆるAVプログラムにおけるオープン・ループ
2018年のテンペ事件は、これまで記録されているAVの安全性に関する最も精査された事象のままです。注目されなかった細部に立ち返る価値があります。車両の知覚システムは、衝突の5.6秒前に歩行者を認識していました。情報は存在していました。検証済みの意思決定ロジック—この特定のシナリオタイプ、当該の信頼度スコア、これらの照明条件のもとでは—プログラム間で統合されていませんでした。
その統合のギャップはアーキテクチャの問題です。これは同じギャップであり、COVIDの監視が出現(emergence)を4〜6週間早期に検知できない原因になっており、サプライチェーンのバタフライ効果(ブルウィップ効果)が階層をまたいで増幅する原因になっており、また電力網の運用者が、応答に最適な検証済みインテリジェンスを欠いたまま、予測可能なランプ事象に直面する原因にもなっています。根底にある構造は同一です。関連する検証済みのアウトカム観測を持つノードが存在する一方で、それらの観測を、同類の条件に直面しているエージェントへリアルタイムにルーティングする仕組みがありません。
QISは、このループを閉じるために、センサデータではなく—抽出されたアウトカムのデルタを—同類のシナリオ条件に直面するフリートへルーティングします。6大陸の1,000のAVフリートが、集合的に夜間の歩行者シナリオ50万件を検証しているなら、ネットワークは、いずれの単一プログラムも運用5年では蓄積し得ないほど、低信頼度の都市部における歩行者との相互作用についての意思決定インテリジェンスを含むことになります。そして、アウトカム・パケットがセンサログ、地図データ、モデル重みを一切持ち運ばないため、競争上の機微情報が踏み越えられることは決してありません。
数学は、他のあらゆるQISネットワークと同じです。Nフリートは、N(N-1)/2のユニークな統合(シンセシス)の機会を生成します。100フリートなら、共有する各シナリオタイプにつき4,950本の統合経路が生まれます。1,000フリート—現在グローバルに稼働しているAVおよびADASプログラムのうちごく一部—なら499,500本です。各フリートはO(log N)のルーティングコストを支払います。安全性インテリジェンスは二次的にスケールします。計算負荷はしません。
ロングテールを解決するために競っている各AVプログラムは、それを一人で行っています。これは工学上の制約ではありません。アーキテクチャ上の制約です。アーキテクチャ上の制約は、より良いアーキテクチャにより克服できます。
関連記事
引用文献
- Kalra, N. & Paddock, S. M. (2016). Driving to Safety: How Many Miles of Driving Would It Take to Demonstrate Autonomous Vehicle Reliability? RAND Corporation. RR-1478-RC.
- National Transportation Safety Board. (2019). Collision Between Vehicle Controlled by Developmental Automated Driving System and Pedestrian. NTSB/HAR-19/03.
- SAE International. (2021). Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles. SAE J3016_202104.
- NHTSA. (2022). AV TEST Initiative: Standing General Order on Crash Reporting. National Highway Traffic Safety Administration.
- Geiger, A., et al. (2012). Are we ready for autonomous driving? The KITTI vision benchmark suite. CVPR 2012.
- McMahan, H. B., et al. (2017). Communication-efficient learning of deep networks from decentralized data. AISTATS.
- Stoica, I., ほか (2001). Chord: インターネットアプリケーション向けのスケーラブルなピアツーピアルックアップサービス。 ACM SIGCOMM。
- Feng, D., ほか (2021). 自動運転における確率的オブジェクト検出に関するレビューおよび比較研究。 IEEE Transactions on Intelligent Transportation Systems.
QISはChristopher Thomas Trevethanによって発見されました。このアーキテクチャは39件の暫定特許によって保護されています。