Недавно я обрисовал в общих чертах короткую серию постов, которые я напишу о том, как я получил работу в автономных транспортных средствах.

Первой частью этого уравнения была курсовая работа.

Есть так много бесплатных онлайн-курсов!

У меня есть довольно прочный фундамент в области разработки программного обеспечения, в том числе степень бакалавра в области компьютерных наук. Но совсем недавно я занимался программированием в Интернете, не столько в областях машинного обучения и встроенных систем, которые доминируют в автомобильном программном обеспечении.

Вот курсы, которые я прошел:

Искусственный интеллект для робототехники (Udacity): Это потрясающее и супер-забавное введение в беспилотные автомобили от Себастьяна Труна. Трун является одновременно основателем Udacity и основателем проекта Google по созданию беспилотных автомобилей, а также бывшим профессором Стэнфордского университета. Посещение класса похоже на присутствие величия.

Машинное обучение (Coursera): это действительно широкий класс, охватывающий алгоритмы контролируемого и неконтролируемого обучения, а также оптимизацию и настройку. Учитель - Эндрю Нг, который похож на зеркальное отражение Себастьяна Труна - профессор Стэнфорда, тогда основатель Coursera, а теперь руководитель программы Baidu по созданию беспилотных автомобилей.

Управление мобильными роботами (Coursera): этот курс проводится в рамках партнерства Coursera с Технологическим институтом Джорджии и охватывает основы теории управления. Это было особенно полезно для меня, как для бакалавра компьютерных наук с минимальным опытом в области машиностроения.

Глубокое обучение (Udacity): это относительно краткий обзор теории, лежащей в основе глубоких нейронных сетей, с некоторыми практическими упражнениями по программированию.

Глубокое обучение (NVIDIA): На практике можно извлечь большую пользу из глубоких нейронных сетей, имея лишь тонкое представление о том, как на самом деле работают DNN. Это потому, что практикующие могут извлечь много пользы из таких фреймворков глубокого обучения, как Caffe, Theano и Torch. В этом курсе представлен обзор каждой структуры, а также упражнения по программированию.

Введение в параллельное программирование с помощью CUDA (Udacity): Глубокое обучение играет важную роль в автономном программном обеспечении, и оно само по себе обеспечивается за счет массивного распараллеливания, предлагаемого графическими процессорами. CUDA - это среда параллельного программирования, созданная NVIDIA, и этот курс дает отличные знания о том, как работает параллельное программирование.

Underactuated Robotics (edX): Это был, безусловно, самый сложный по математике из курсов, которые я посещал, из-за его целевой аудитории - старшеклассников Массачусетского технологического института. Признаюсь, что из-за каких-то семейных обязательств я закончил только около 2/3 курса. Но в курсе представлены потрясающие упражнения по моделированию роботов в физическом мире. Это также заставило меня освежить свои знания в математике.

Все это довольно продвинутые курсы. Некоторые упражнения по программированию написаны на C ++, некоторые - на Python, многие - на Matlab.

Для кого-то с минимальным опытом разработки программного обеспечения я мог бы порекомендовать начать с некоторых вводных курсов по информатике и линейной алгебре.

Но для кого-то с моим прошлым, то есть сильного инженера-программиста без реального опыта в робототехнике, я нашел эти классы потрясающими.