Недавно я обрисовал в общих чертах короткую серию постов, которые я напишу о том, как я получил работу в автономных транспортных средствах.
Первой частью этого уравнения была курсовая работа.
Есть так много бесплатных онлайн-курсов!
У меня есть довольно прочный фундамент в области разработки программного обеспечения, в том числе степень бакалавра в области компьютерных наук. Но совсем недавно я занимался программированием в Интернете, не столько в областях машинного обучения и встроенных систем, которые доминируют в автомобильном программном обеспечении.
Вот курсы, которые я прошел:
Искусственный интеллект для робототехники (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.
Для кого-то с минимальным опытом разработки программного обеспечения я мог бы порекомендовать начать с некоторых вводных курсов по информатике и линейной алгебре.
Но для кого-то с моим прошлым, то есть сильного инженера-программиста без реального опыта в робототехнике, я нашел эти классы потрясающими.