トヨタ自動運転計画アルゴリズム面接体験記:行動予測・運動計画・意思決定の完全評価

自動運転著者: BeautyResume チーム

2年の自動運転計画経験、トヨタの3回の技術面接の詳細な振り返り:一次面接は行動予測とディープラーニング、二次面接は運動計画とLattice Planner、三次面接は意思決定システムとプロジェクト深掘り、出題問題まとめとアドバイス付き

背景紹介

まず私の状況からお話しします。私は別の自動運転会社で2年間プランニングアルゴリズムエンジニアとして働いており、主に行動予測と運動計画を担当していました。正直なところ、トヨタは私にとってずっと憧れの存在でした。国内の自動運転会社の中で、トヨタの技術力と実装進捗はトップクラスだからです。今年の初め、プランニングアルゴリズムエンジニアの募集を見つけ、迷わず応募しました。

応募する前は正直かなり不安でした。2年間プランニングの経験はあるものの、主に構造化道路での作業が中心で、複雑なシナリオの経験はそれほど多くありませんでした。でも、試してみなければ分からないと思い、2週間かけて行動予測、運動計画、意思決定に関連する知識ポイントを復習しました。特にLattice Plannerと学習ベースの予測方法は重点中の重点でした。

面接プロセスは3回の技術面接+1回のHR面接で構成されていました。以下、各ラウンドの詳細を振り返ります。

面接プロセスの振り返り

一次面接:行動予測+ディープラーニング

一次面接の面接官はとても若手のエンジニアで、後で予測チームの方だと分かりました。とても親切な方でした。自己紹介の後、すぐに技術的な質問に入りました。

まず現在のプロジェクトで行動予測をどうやっているかを聞かれ、私は意図ベースの予測フレームワークについて詳しく説明しました:まず意図分類(左折、直進、右折)を行い、その後意図に基づいて軌跡を生成する流れです。いくつかフォローアップの質問がありました:

1. 意図分類の精度はどうですか?誤分類の結果はどれほど深刻ですか?

意図分類の精度は約85%だと答えました。誤分類は確かに計画された軌跡を不安定にする可能性があるため、プランニング層でセーフティチェックを行っています。予測軌跡と計画軌跡に衝突がある場合、緊急障害物回避がトリガーされます。面接官は頷き、この回答に満足しているようでした。

2. エンドツーエンドの方法で予測を行うことは検討しましたか?

Social GANを使った軌跡予測を試したことがあると答えました。結果はまずまずでしたが、解釈性が低すぎて、安全クリティカルなシナリオでは使用できませんでした。その後、ルールベース+学習のハイブリッドアプローチに切り替えました。ルールが確実性の高いシナリオを処理し、学習が不確実性の高いシナリオを処理します。

その後、ディープラーニングの基礎知識について質問されました:

3. Transformerの系列予測における利点は何ですか?

主な利点は長距離依存関係を捉えることができることと、並列計算が可能でLSTMよりはるかに高速なことだと答えました。行動予測では、Transformerを使って周囲の車両の履歴軌跡をエンコードしており、LSTMよりかなり良い結果が得られました。

4. 予測モデルの訓練時、損失関数はどう設計していますか?

マルチタスク損失を使用していると答えました。意図分類の交差エントロピー損失、軌跡回帰のADE/FDE損失、そして多様性損失を加えて、モデルが多様な予測軌跡を生成するように促しています。多様性損失の具体的な実装について聞かれ、GMMベースで、各モードがガウス分布に対応し、負の対数尤度を損失として使用すると説明しました。

5. 予測結果と実際の行動の乖離が大きい場合、どう処理しますか?

オンライン監視システムがあると答えました。予測偏差が閾値を超えると再予測がトリガーされ、プランニング層はより保守的な戦略に切り替わります。また、このようなケースを収集して訓練データに追加します。

一次面接は約1時間でした。面接官は最後に「基礎はしっかりしている」と言い、二次面接の通知を待つように伝えました。

二次面接:運動計画+Lattice Planner

二次面接はシニアエンジニアで、最初から運動計画について質問され、雰囲気は一次面接より明らかに緊張していました。

1. Lattice Plannerについての理解を教えてください?

Lattice Plannerの核心的なアイデアは、状態空間で候補軌跡のセットをサンプリングし、コスト関数で各軌跡を評価し、コストが最も低いものを選択することだと答えました。重要なポイントはサンプリング戦略とコスト関数の設計です。サンプリングが密すぎると計算コストが高くなり、疎すぎると最適解を見逃す可能性があります。コスト関数は快適性、安全性、交通規則の遵守を総合的に考慮する必要があります。

2. Lattice PlannerとRRT Starの違いは何ですか?

Lattice Plannerは離散化された状態空間で検索を行うのに対し、RRT Starは連続空間でランダムサンプリングを行うと答えました。Lattice Plannerの利点は軌跡品質が制御可能なことですが、欠点は状態空間の離散化により良い解を見逃す可能性があることです。RRT Starの利点は確率的完全性ですが、欠点は軌跡が十分に滑らかでない場合があり、後処理が必要なことです。

3. 実際のプロジェクトで動的障害物をどう処理していますか?

時空A*アルゴリズムを使用しており、時間を3番目の次元として検索空間に追加していると答えました。動的障害物については、予測軌跡に基づいて時空図内の占有領域をマークし、検索時にこれらの領域を避けます。計算コストが高すぎないかと聞かれ、確かにそうなるので、障害物周辺の一定範囲内でのみ時空検索を行い、遠くは静的計画を使用するなどの最適化を行っていると説明しました。

4. Frenet座標系についての理解を教えてください?なぜ自動運転計画でよく使われるのですか?

Frenet座標系は参照線に沿って構築された曲線座標系で、縦方向をs(参照線に沿った弧の長さ)、横方向をd(参照線からの距離)で表すと説明しました。自動運転でよく使われる理由は、道路自体が曲がっているため、デカルト座標系で道路上の車両の位置を記述するのは直感的ではないからです。Frenet座標系は車線上の車両の縦方向と横方向の動きを自然に記述でき、3D計画問題を縦方向と横方向の2つの1D問題に分離できます。

5. 横方向の計画と縦方向の計画をどう調整しますか?

交互最適化戦略を使用していると答えました。まず縦方向の軌跡を固定して横方向を最適化し、次に横方向を固定して縦方向を最適化し、収束するまで繰り返します。また、高速シナリオでは横方向と縦方向の結合が比較的弱く、独立して計画できますが、低速シナリオでは結合が強く、共同最適化が必要です。

6. 計画された軌跡が動力学的に実行可能であることをどう保証しますか?

サンプリング段階で制約を課し、車両の運動学的制約(最大曲率、最大加速度など)を満たす軌跡のみをサンプリングしていると答えました。サンプリング後にチェックするのではなく、サンプリング空間は小さくなりますが、すべての候補軌跡が実行可能であることを保証できます。

二次面接は約1時間15分でした。面接官は非常に詳細な質問をし、いくつかの質問にはうまく答えられませんでした。特に時空A*の最適化の詳細については、曖昧な回答になってしまいました。面接後は少し不安でした。

三次面接:意思決定システム+プロジェクト深掘り

三次面接はプランニングチームのテックリードで、とても存在感のある方でした。まず、これまで取り組んだ中で最も挑戦的なプロジェクトについて詳しく説明するよう求められました。

複雑な交差点での計画プロジェクトについて話し、多車両インタラクションの処理方法や歩行者の突然の飛び出しへの対応などを説明しました。いくつか深い質問がありました:

1. 意思決定システムのアーキテクチャはどうなっていますか?

階層型意思決定アーキテクチャを使用していると答えました。最上位はナビゲーション決定(どのルートを通るか)、中間層は行動決定(車間追従、車線変更、譲行など)、最下層は運動計画です。行動決定層は有限状態機械+ルールを使用し、状態には車間追従、車線変更準備、車線変更実行、緊急停止などが含まれます。

2. 有限状態機械の状態爆発問題はどう解決しますか?

確かに状態爆発の問題に直面すると認めました。特にシナリオが複雑な場合です。私たちのアプローチは状態を階層化することです。高レベルの状態が抽象的な行動を処理し、低レベルの状態が具体的な動作を処理します。また、強化学習を使って一部のルールを置き換えることも検討していますが、安全クリティカルなシナリオではまだルールが中心です。

3. 意思決定と計画の結果が矛盾した場合どうしますか?

調停メカニズムがあると答えました。計画層が意思決定層の行動が実行不可能であると判断した場合(例:車線変更しようとしても隣に車がある)、意思決定層にフィードバックして再決定させます。時間がない場合は、計画層がフォールバック戦略(例:現在の車線を維持して前車追従)を実行します。

4. 計画システムの全体性能をどう評価しますか?

シミュレーション評価と実車評価を含む評価システムがあると答えました。シミュレーション評価は主に通過率、快適性指標(加速度、ジャーク)、安全性指標(衝突率、TTC)を見ます。実車評価は主に接管率と手動介入回数を見ます。シミュレーションと実車の一致性について聞かれ、約70%だと答えました。主な理由はシミュレーション内の歩者の行動が十分に現実的でないことです。

5. 現在の計画システムの最大のボトルネックは何だと思いますか?

最大のボトルネックは予測と計画の結合だと答えました。現在、予測を先に行い、その後計画を行う直列のアプローチですが、実際には予測と計画は相互に影響し合います。私の計画行動が他の車の行動に影響を与え、他の車の行動の変化が逆に私の計画に影響を与えます。この問題を解決しなければ、計画システムは人間のドライバーのレベルに到達できません。

三次面接は1時間以上でした。面接官は明らかに技術的な深さを重視していました。最後に質問があるか聞かれ、トヨタの行動予測における最新の進捗について尋ねると、予測と計画の共同最適化も探求していると簡単に話してくれました。

出題問題まとめ

行動予測:

1. 意図ベースの予測フレームワークの設計方法?意図分類精度の向上方法?

2. エンドツーエンド予測手法の長所と短所?安全シナリオでの解釈性の保証方法?

3. Transformerの系列予測における利点と具体的な応用?

4. 予測モデルの損失関数設計(マルチタスク損失、多様性損失)?

5. 予測偏差が大きい場合のオンライン処理方法?

運動計画:

6. Lattice Plannerの核心概念と主要パラメータ?

7. Lattice PlannerとRRT Starの違いと適用シナリオ?

8. 時空図での動的障害物の処理方法?

9. Frenet座標系の理解と利点?

10. 横方向計画と縦方向計画の調整戦略?

11. 計画軌跡の動力学的実行可能性の保証方法?

意思決定システム:

12. 階層型意思決定アーキテクチャの設計?

13. 有限状態機械の状態爆発問題?

14. 意思決定と計画の矛盾処理メカニズム?

15. 計画システムの評価体系?

16. 予測と計画の結合問題?

アドバイス

1. 基礎をしっかり固める:トヨタの面接は基礎を非常に重視しています。ディープラーニングでもプランニングアルゴリズムでも、基本的な概念から始めて徐々に深掘りします。基礎が固まっていないと、フォローアップの質問で隙が見えてしまいます。

2. プロジェクト経験を明確に説明できるようにする:面接官はプロジェクトについて多くの詳細を聞きます。なぜその方法をとったのか、他のアプローチを検討したか、どんな問題に直面しどう解決したかなど。自分のプロジェクトに非常に精通している必要があります。

3. 業界の最新動向を把握する:面接では予測と計画の共同最適化、エンドツーエンド計画などの最先端の方向性について聞かれます。自分の理解や考察を話せると評価が上がります。

4. 分からないことは率直に言う:いくつかの質問については確かに分からず、「あまり詳しくありません」と直接言いました。面接官は困らせることなく、別の角度からガイドしてくれました。分かったふりをして見破られるのが最も恥ずかしいことです。

5. 準備期間は2-3週間を推奨:2年程度の関連経験があれば、2-3週間の集中的な準備で十分です。プランニングアルゴリズム(Lattice Planner、A*、RRT)、行動予測(意図分類、軌跡生成)、ディープラーニングの基礎(Transformer、損失設計)を重点的に復習してください。

FAQ

Q:トヨタの面接の難易度はどうですか?

A:正直かなり難しいです。特に二次と三次面接が。一次は基礎重視、二次はアルゴリズムの深さ、三次はシステム設計とプロジェクト経験に焦点を当てています。全体として、自動運転会社の中でトップティアの難易度だと思います。

Q:面接官のスタイルはどうですか?

A:3人の面接官でスタイルがかなり異なりました。一次はリラックスしていて会話のようでした。二次は厳粛で質問が密集していました。三次が最もプレッシャーがあり、答えられなくなるまでフォローアップの質問が続きました。

Q:LeetCodeの練習は必要ですか?

A:LeetCodeの問題は出ませんでしたが、A*のヒューリスティック関数の設計方法や検索空間のプルーニング方法など、アルゴリズムの概念について聞かれました。プランニング関連の古典的なアルゴリズムをしっかり理解することをお勧めします。

Q:給与はどうですか?

A:これは人によります。プランニングアルゴリズムポジションのベース給与は約600-900万円の範囲で、レベルと交渉によって異なります。

Q:面接結果はどのくらいで出ますか?

A:一次面接後3日で二次面接の通知、二次面接後5日で三次面接の通知、三次面接後1週間でオファーを受け取りました。

#自動運転#Planning Algorithm#行为预测#Motion Planning#Lattice Planner#Interview Experience