Udacityの自動運転車ナノ度の正直なレビュー— 3学期以降

TLDR:大丈夫です。本当にお勧めしません。半分の価格で、2倍のコンテンツとはるかに優れたプレゼンテーションが必要だと思います。トピックのより良いプレゼンテーションを提供する無料のコンテンツがたくさんあります。キュレーションされたリソースのコンパイル済みリストを次に示します。

この記事が何らかの形であなたを助けたなら、私にコーヒーを買うことを検討してください:)あなたが寄付したい場合はビットコインアドレス:)

これで私は終わりました!大丈夫だと思いますが、期待を抑えてください。

最初に、3つのプロジェクトについて説明します。次に、仕事についてお話します。

経路計画

最初のプロジェクトの目標は、他の交通量のある仮想ハイウェイの周りを仮想自動車をスマート、安全、快適にナビゲートする経路計画パイプラインを作成することです。

経路計画は、他のプロジェクトほど単純ではありません。予測、軌道生成、および行動計画に関する多くのアイデアが提示されましたが、この特定のプロジェクトで実際にそれらを使用する方法については暗闇の中に残されました。

EEPディープブルーベリーブック:ディープラーニングの学習を無料で始めたいといつも思っていたなら、あなたは正しい場所を見つけたかもしれません! (このリンクをクリックしてください)

幸いなことに、SDCND Slackチームは非常に活気があり、多くの人々がアイデア、アプローチ、調査結果を共有していました。その結果、同じ目標を達成し、必ずしもレッスンのアイデアを使用しなくても、問題を解決するためのさまざまな方法を生徒が考え出しました。これはすごいことだと思いますし、かわいいバロメーターの物語を思い出させます。

しかし、ボッシュチャレンジで起こったことに失望しました。 66の提出物のうち、6つだけが完了し、何らかの理由で特定の提出物が適切にコンパイルされませんでした。コードがコンパイルされなかった、またはトラックを終了しなかったというフィードバックを受け取った人もいれば、フィードバックをまったく受け取らなかった人もいます。

それほど努力しなかったので、私にとっては大丈夫でした。提出されたプロジェクトと他のプロジェクトとの大きな違いは1つだけでした。各車線で最も近い車両との車両の瞬間測定ギャップを使用する代わりに、安全性を高めるために、計算された「有効ギャップ」を使用して、車両の現在の速度と想定待ち時間。また、パラメーターの調整とコスト計算の変更も行いました。でも他の生徒には気分が悪い。

選択科目

セマンティックセグメンテーションと機能安全の2つの選択科目がありました。機能安全は興味深いですが、コーディングプロジェクトであるため、セマンティックセグメンテーションを選択しました。機能安全プロジェクトは、文書を書くことで構成されていました。

とにかく、システムとコンポーネントの両方のレベルで車両が安全であることを保証するために、機能安全の概念と機能安全フレームワークについて学びました。セマンティックセグメンテーションでは、画像内の道路のピクセルにラベルを付けるために、FCN(Fully-Convolutional Network)スクリプトを使用しました。

このプロジェクトを完了するために、オンラインでいくつかの追加資料を読みました。正直に言うと、あまり読んだ後でも、FCNは表面的なレベルでしか理解できません。あなたが傾いているなら、ここに私が最も役立つと思うリソースがあります:

TensorFlowの復習:TensorFlowチュートリアル、画像分類のCNN、TensorFlowのヒント

セマンティックセグメンテーションの概念:2017年のセマンティックセグメンテーション、TensorFlowでの転置畳み込み、セマンティックセグメンテーションに関するスタンフォードクラスのビデオ、セマンティックセグメンテーションに関する実際の論文

転置畳み込み:畳み込み演算ガイド、Theano:転置畳み込み、転置畳み込みアニメーション

このプロジェクトでは、テンプレートコードが与えられ、必要な部分を記入するだけでした。 TensorFlowでそれほど多くのことを行っていないため、コード構造についてコメントするのに適した立場にないと感じています。しかし、かなり長い間コーディングしてきた一部の人々は、この特定のプロジェクトのテンプレートがより良い方法で書かれていたかもしれないと言及しました。

システム統合プロジェクト

このプロジェクトで最も気に入ったのは、チームプロジェクトであるということです。最初は、私はチームメイトになりたくないと思って、少し不安でした。

Lukaszが彼のチーム、Kung-Fu-Panda Automotiveに参加するように私を招待したとき、私は興奮しました。私は、さまざまな国やさまざまな生活圏の人々と仕事をすることに興奮していました。フィリピン出身の私、スイス出身のルカシュ、ギリシャ出身のコスタス、ドイツ出身のモーリス、ロンドン出身のアレクセイ。

私は幸運にも、一緒に仕事をするのに素晴らしい時間を過ごしたメンバーでいっぱいの情熱的なグループになりました。メンバーが返事をしない、議論、対立など、他のグループが抱えていた問題はありませんでした。

この最終プロジェクト(彼はこの記事を書いた)についても同様の感情を抱いているので、チームメイトのKostasを引用します。

「残念ながら、最初のコホートの一環として、このプロジェクトはそれほど興味深いものではありません。 5人で構成されるすべてのチームは、2つの基本的な問題に取り組む必要があります。(a)車のコントローラーをプログラムする(b)信号機を識別し、車を所定の位置で停止させる。それだけ。センサーフュージョン、他の車、経路計画はありません。 5人のチームには制限があります。ナノディグリーの将来のイテレーションでそれが変わるかもしれないことを願っています。
このプロジェクトで最も難しい部分は、実際には仕様の欠如と継続的な推測でした。シミュレータでコードをテストすることはできましたが、自動車の仕様は完全には決定されていません。たとえば、スロットルをパーセントで提供するように求められますが、スロットル1.0(100%)がどのように対応するかもわかりません。通常、車の中でスロットルを完全に押し下げると、エンジンに駆動輪に利用可能なすべてのトルクを提供するように命令しますが、その値は現在の速度、シフト、回転数、およびその他の値によって異なります。車の挙動については手がかりがなく、すべてのチームが明確な仕様を持たずにその問題に対処しようとしています。」— Kostas Oreopolous

それで、あなたは今SDCの仕事を持っていますか?

さて、まず第一に、停止してください—パニック発作が起きています!

この分野で仕事を得るのはそれほど簡単ではなく、特にフィリピンから来ています。しかし、もちろん、インドのこの女性がやったように、それは可能です。ただし、生存の偏見には注意してください。

私は仕事のためにいくつかの招待状を受け取りましたが、彼らの誰も私のビザを後援するつもりはありませんでした。また、私はすぐにSDCの仕事を探してエネルギーを費やしていません(また、費やすつもりもありません)。理由を後で説明します。

その10万米ドルの給与を獲得することを希望してSDCNDに登録する場合(特に米国またはヨーロッパ出身でない場合)、ひどく失望する準備をします。ただし、この分野に純粋に興味があるために登録している場合は、気に入っていただける可能性が高くなります。

とにかく、どうやってSDCで仕事をするのですか?私の考えでは、SDCジョブは一般的に3つの主なタイプに分類されます。

  • 知覚と機械学習のもの
  • ハードコアソフトウェアエンジニアリングのもの
  • 研究開発スタッフ

もちろん、これは、機械工学や電子工学の仕事など、他の種類のSDCの仕事がないと言うことではありません。先ほど述べたジョブの種類は、SDCのジョブの説明でよく見られるものです。これら3つの主要分野のいずれかに就職するには、Udacityに入学する必要はないと思います;)。

これらの領域についてもう少し話しましょう。

知覚と機械学習のもの

自動運転車では、意思決定を行うために、周囲の状況を理解する必要があります。これは人間の運転手にとって当たり前のことですが、自動運転会社は乗客の安全を確保するためにまだ完璧です。

私の考えでは、これを「ジョージ・サン・パス」と呼んでいます。彼はまた、SDCNDを取得し、最終的にBMWの自動運転車機械学習エンジニアになりました。

この道を進んで行きたいなら、TensorFlowを学ぶべきです。そして、最終的に、あなたが学んだことをあなた自身のオープンソースプロジェクトに適用したり、Kaggle Competitionsに参加したりします。

「インタビューの多くは、ディープラーニングとコンピュータービジョンにおける私の過去のプロジェクトの議論にも費やされました。私の動機、私が経験したプロセス、プロジェクトを改善する方法。繰り返し出てきた特定の質問の1つは、「コースの要件をどのように超えたのですか?」、または同様に「どのプロジェクトがコースの一部ではなかったのですか?」でした。重要な特徴は、プロジェクトの要件を超えて、および/または独自の興味深いプロジェクトを作成できるように、トピックに純粋に興味を持つことです」—ジョージ・ソン

ハードコアソフトウェアエンジニアリングのもの

Paysaによると、自動運転車の求職者の90%以上がC ++を知っている必要があります。また、C ++はコンパイル済みの高性能言語であるため、実際に車両で実行されるコードのほとんどはC ++である傾向があります。一部のC ++リソースについては、このリポジトリをご覧ください。

本当に本当に上手になり、C ++のニュアンスを学び、コーディングインタビューの準備をしてください。私の考えでは、これは「Googleとしてのヘックパス」です。データ構造とアルゴリズムの非常に強固な基盤が必要です。

Paysaから

研究開発スタッフ

これはより伝統的な方法で、修士号を必要とします。できればロボット工学で、評判の良い大学からの交渉は不可能です。エンジニアリングの問題を解決する方法について、非常に優秀な人々からさまざまなアイデアをしっかりと把握できるようにしたい場合、これがあなたの道です。そして、最先端の進化し続ける知識体系に追加できるようにしたいのであれば、これが最善の方法です。また、近い将来、優れたロボット研究室で志を同じくする人々と仕事をすることができる素晴らしい方法です。

ここで私のロボット工学の授業リポジトリをチェックしてください。

概要

この記事はちょっとした雑談かもしれませんが、SDCNDとSDC Jobsについての私の考えを共有したかっただけです。コースは大丈夫でした。ただし、100,000ドルの給与を得るために2,400ドルを費やすことを考えている場合は、おそらく他の何かにお金を使う必要があります(上記の推奨事項を参照)。

要約すると、私は本当にお勧めしません。半分の価格で2倍のコンテンツとはるかに優れたプレゼンテーションが必要だと思います。トピックのより良いプレゼンテーションを提供する無料のコンテンツがたくさんあります。

Paysaから

チームメイトのコスタスからの引用でこの記事を終了します。

"忘れそうだった。プログラムの最も良い部分は仲間の学生です。彼らはすべて、年齢や学習の背景に関係なく、学習に対する同じ情熱を共有しています。 Slackチャンネルはコースの一番の部分です。他の人とアイデアを交換し、助け、助けられています。それが、単独で行われるよりも、経験を100倍興味深いものにしているのです。」
この記事が何らかの形であなたを助けたなら、私にコーヒーを買うことを検討してください:)