BMW、機械学習を使用して車のオーバーステアを検出
著者 Tobias Freudling, BMW Group
オーバーステアとは、旋回中に後輪のグリップ力が低下する危険な状況を指します (図 1)。これは、摩耗したタイヤや滑りやすい道路状況、急カーブ、カーブ中の急ブレーキ、またはこれらの要因の組み合わせが原因で起こります。
最新のスタビリティ コントロール システムでは、オーバーステアが検出されると自動的に車両の安定性を向上させるように設計されています。このようなシステムでは、理論上、第一原理に基づいた数学モデルを使用することで、オーバーステア状態を特定できます。たとえば、オンボードセンサーの測定値がモデルのパラメーターに対して定められた閾値を超えると、システムはその車両がオーバーステアしていると判断します。ただし、実際には多くの要因が絡み合っているため、このアプローチの実装は困難であると考えられています。凍結した路面で十分に空気が入っていないタイヤが装着された車と、表面が乾いた道路で適切に空気が入ったタイヤが装着された車とでは、設定すべき閾値が全く異なります。
BMW は、オーバーステアを検出する機械学習アプローチを模索しています。そして、MATLAB® を使用して、教師あり機械学習モデルを概念実証として開発しました。機械学習の経験がほとんどなかったにもかかわらず、わずか 3 週間で、オーバーステアを 98% 以上の精度で検出できる ECU プロトタイプを完成させることができました。
データの収集と特徴量の抽出
まず、オーバーステアの発生前、発生中および発生後の実際のデータを車両から収集しました。専門のテストドライバーの協力を得て、フランスのミラマにある BMW の性能試験場で BMW M4 のライブ走行テストを実施しました (図 2)。
テスト中、オーバーステア検出アルゴリズムで一般的に使用されている信号 (車両の前方加速度、横加速度、操舵角、ヨーレートなど) を取得しました。また、ドライバーのオーバーステアの知覚を記録しました。ドライバーがオーバーステアとなったことを示すと、同乗者の同僚がラップトップのボタンを押し、ドライバーが正常なハンドリングに戻ったことを示すと、ボタンを離すというように記録しました。このようにボタンを押すことで、教師あり学習モデルの学習を行うのに必要なグラウンドトゥルースのラベルを作成しました。結局、43 分間の記録データで約 259,000 のデータ点をキャプチャしました。
ミュンヘンのオフィスに戻り、収集したデータを MATLAB に読み込み、Statistics and Machine Learning Toolbox™ の分類学習器アプリでさまざまな分類器を使用して機械学習モデルの学習を行いました。この生データで学習したモデルによって得られた結果は、決して優れていると言えるものではなく、その精度は 75% から 80% の間を推移していました。結果の精度を高めるために、生データのクリーニングを行い、データを絞り込みました。まず、フィルターを適用して、信号データのノイズを低減しました (図 3)。
次に、ピーク解析を使用して、フィルタリングされた入力信号上のピーク (局所的最大値) を特定しました (図 4)。
機械学習アプローチの評価
収集したデータをフィルタリングして絞り込むと、教師あり機械学習アプローチを評価しやすくなりました。分類学習器アプリで、k 最近傍法 (KNN) 分類器、サポート ベクター マシン (SVM)、2 次判別分析、決定木といった手法を試しました。また、このアプリを使用して、主成分分析 (PCA) で特徴量を変換することで過適合を回避できることが確認できました。
表 1 は、評価した分類器によって生成された結果をまとめたものです。どの分類器も、オーバーステアの特定において得られた結果は優れたものでした。3 つの分類器については、真陽性率が 98% を超えています。決定的要因は、真陰性率 (車両がオーバーステアしなかった場合に分類器で正しく判断された確率) でした。ここで分かるように、決定木の性能は他の分類器よりも優れており、その真陰性率はおよそ 96% でした。
真陽性率 (%) | 真陰性率 (%) | 偽陽性率 (%) | 偽陰性率 (%) | |
PCA による k 最近傍法 |
94.74 | 90.35 | 5.26 | 9.65 |
サポート ベクター マシン | 98.92 | 73.07 | 1.08 | 26.93 |
2 次判別分析 | 98.83 | 82.73 | 1.17 | 17.27 |
決定木 | 98.16 | 95.86 | 1.84 | 4.14 |
車載テスト用のコードの生成
決定木で得られた結果には期待がもてましたが、実際のテストでは、実際の車の ECU で実行された分類器の性能が重要になります。MATLAB Coder™ を使用して、モデルからコードを生成し、BMW 5 シリーズのセダンに搭載されている ECU 用のコードをコンパイルしました。今回は、オフィスに近いアシュハイム近郊の BMW の施設で、自社テストを行いました。私が運転し、同僚がデータ収集を担当し、私が車のオーバーステアを示したときに同僚が時間を正確に記録しました。
ECU 上でリアルタイムに実行したところ、分類器の性能は驚くほど高く、その精度は約 95% でした。車両 (M4 ではなく BMW 5 シリーズ) だけでなく、ドライバーやコースも前回と異なるものを使用していたため、このテストを行うまで結果が予想できませんでした。さらに詳しくデータを見ると、モデルとドライバーによるオーバーステアの知覚の不一致は、多くの場合、オーバーステア状態の開始時と終了時に発生していることが分かりました。オーバーステアが発生または停止するタイミングを正確に判断するのは、ドライバーにとっても簡単ではないため、この不一致は理解できます。
オーバーステア検出のための機械学習モデルの開発とプロトタイプ ECU への展開に成功したことで、BMW では、他にも、機械学習の用途について数多くの可能性を思い描き始めています。数十年にわたって収集された膨大な量のデータを活用できるようになり、現在では、車両 1 台につき 1 日に 1 テラバイトの測定データを生成できます。機械学習により、利用可能なデータを活用して、ドライバーの行動を学習し、運転体験を向上させるソフトウェアを開発する機会が得られます。
公開年 2018