事故紹介
2019年6月1日、「金沢シーサイドライン」で自動運転列車が始発駅で逆走。
列車は車両止めに衝突し、15人が負傷する事故が発生しまいた。
自動運転システムは30年間無事故。
運営会社は「逆走は想定していない」と説明しましたが、同月6日、車両側の進行方向を指示する回路に断線があったことを発表しました。
「自動運転が危ない」と、語るコメンテーターもいましたが、
そもそも、この事故は自動運転に起因するものだったのでしょうか?
自己紹介
約20年前にドラクエの敵が人工知能(AI)で制御されているという記事を読んで、中学生だった自分はAIに魅了されました。
大学は情報工学部に進学し、大学院ではAIの研究に没頭し、今まで、20年間AI一筋、、、
とはいきませんでした。
10年前の就職活動で「新卒でAI系の仕事」なんてありませんでした。
そこで、組み込みエンジニアとしてメーカーで修業することにしました。
そして、3年前、念願のAIエンジニアに転職しました。
AIエンジニアとして、ドライバ行動推定・音声感情認識・スマートハウスなど、研究開発していましたが、「自分の理想とするAIビジネスがしたい」と思い、去年12月、「人工知能とアイドル運営の会社」を起業しました。
今回、AI歴20年、組込みエンジニア歴7年の経験から、「シーサイドライン逆走事故」から感じたことを書きました。
特に、AIしかやっていない若いエンジニアに読んでもらいたいです。
何が問題だったのか
システムの大まかな流れは、こんな感じです。
想定されるミスを分類すると以下の通りです。
- 司令所のミス
- 車両のミス
- 通信のミス
司令所のミス
これは痛いですね。
要はトップの暴走です。
この場合は、システムから独立した保護機構が必要になります。
電気製品だと、ハード的な保護回路があります。例えば、ヒューズもその一つですね。
シーサイドラインの場合、車両 or 駅に自動運転システムから独立した逆走判定のシステムです。
「逆走しているよ!」という信号より、「進行方向OK!」という信号を送るフェイルセーフの考えも必要です。
こうすれば、逆走判定システムが故障しても大丈夫ですね。
車両のミス
これは痛いですね。
部下の勘違いです。
この場合は、システム自身(上司 or 部下)が異常に気付く必要があります。
車両が進行方向を切り替えたと思い込んで(実際は回路の断線で切り替わってなかった)、司令所も発車許可を出してしまったことが事故の原因でした。
電気製品だと、各種センサーからの値に異常がないかソフトウェアでチェックしています。
シーサイドラインの場合、加速度センサーなどで、進行方向チェックすればよいでしょう。
センサー系は故障した場合、修理が必要なのでセンサー自身のチェックも必要です。
上記のハード的な保護と2重の対策が安全でしょう。
通信のミス
これは痛いですね。
上司と部下のコミュニケーション不足ですね。
この流れに飽きてきたので、サクッと説明します。
よくある通信の安全対策は、「二度一致」と「誤り判定」です。
二度一致は、同じ内容を2回やりとりして、整合性をとる方法です。
上司「同じことは2度言わないからな!」
実は、何度か言った方がいいです。
うるさい(ノイズが多い)環境だと、聞き間違えがあるかもしれません。
通信の誤り判定は以下の方法があります。
- パリティ
- チェックサム
- CRC(巡回冗長検査)
ノイズで通信データが変わってしまった場合に判定する方法です。
パリティはビット単位、チェックサム、CRCはデータ単位のチェックです。
CRCはノイズに強いが、計算コストがかかります。
まとめ
以上、シーサイドライン逆走事故から、AIエンジニアが学ぶべきことでした。
AIシステムは、「100%安全!」と証明しにくいシステムです(ブラックボックス)
最新のGANとか、最新の最適化関数とか、難しい数学的理論も素晴らしいですが、このような泥臭い知識も重要だと考えると、7年間の組込みエンジニア歴も意味があったかもしれません。
もっと、システムの安全対策について勉強したい人は、
FMEA (Failure Mode and Effects Analysis:故障モードと影響解析)を勉強するといいでしょう。
設計のときに「逆走という故障モード」を想定していたら、この事故は起きなかったのですから。