Нисходящий путь обучения: машинное обучение для инженеров-программистов
Вдохновлен университетом Coding Interview.
Переводы: Бразильский португальский | 中文版本 | Французский | 臺灣華語版本
Как я (Нам Ву) планирую стать инженером по машинному обучению
Что это такое?
Это мой многомесячный план обучения от мобильного разработчика (самоучка, без степени CS) до инженера по машинному обучению.
Моей главной целью было найти такой подход к изучению машинного обучения, который был бы в основном практическим и абстрагировал бы большую часть математики для новичка. Этот подход является нетрадиционным, поскольку это нисходящий и ориентированный на результат подход, предназначенный для инженеров-программистов.
Пожалуйста, не стесняйтесь вносить любой вклад, который, по вашему мнению, сделает ситуацию лучше.
Оглавление
- Что это такое?
- Зачем его использовать?
- Как его использовать
- Подписывайтесь на меня
- Не думай, что ты недостаточно умен
- О видеоресурсах
- Предварительные знания
- Ежедневный план
- Мотивация
- Обзор машинного обучения
- Мастерство машинного обучения
- Машинное обучение — это весело
- Чернильное машинное обучение
- Машинное обучение: подробное руководство
- Истории и опыт
- Алгоритмы машинного обучения
- Книги для начинающих
- Практические книги
- Соревнования знаний Kaggle
- Видео серии
- МООК
- Ресурсы
- Стать участником открытого исходного кода
- Игры
- Подкасты
- Сообщества
- Конференции
- Вопросы для собеседования
- Мои любимые компании
Зачем его использовать?
Я следую этому плану, чтобы подготовиться к своей будущей работе: инженер по машинному обучению. Я занимаюсь разработкой собственных мобильных приложений (Android/iOS/Blackberry) с 2011 года. У меня степень инженера-программиста, а не компьютерных наук. У меня есть небольшой объем базовых знаний по исчислению, линейной алгебре, дискретной математике, теории вероятностей и статистике из университета. Подумайте о моем интересе к машинному обучению:
- Могу ли я выучиться и получить работу в области машинного обучения, не изучая магистра CS и доктора философии?
- «Можешь, но это гораздо сложнее, чем когда я вышел на поле боя». Драк Смит
- Как мне получить работу в области машинного обучения в качестве программиста, который самостоятельно изучает машинное обучение, но никогда не имеет возможности использовать его на работе?
- «Я нанимаю экспертов по машинному обучению в свою команду, и ваш MOOC не даст вам работу (ниже есть новости получше). На самом деле, многие люди со степенью магистра в области машинного обучения не получат работу, потому что они (и большинство тех, кто прошли МООК) не имеют глубокого понимания, которое поможет мне решить мои проблемы». Росс С. Тейлор
- Какие навыки необходимы для работы в области машинного обучения?
- «Во-первых, вам нужно иметь приличный опыт в области CS/Math. ML — это сложная тема, поэтому в большинстве учебников предполагается, что у вас есть этот опыт. Во-вторых, машинное обучение — это очень общая тема со многими подспециальностями, требующими уникальных навыков. Вы можете захотеть просмотреть учебную программу программы магистратуры по машинному обучению, чтобы увидеть курс, учебную программу и учебник». Ури
- «Вероятность, распределенные вычисления и статистика». Гортензия
Я попадаю в трудные времена.
AFAIK, у машинного обучения есть две стороны:
- Практическое машинное обучение: речь идет о запросах к базам данных, очистке данных, написании сценариев для преобразования данных и объединении алгоритмов и библиотек, а также написании собственного кода для получения надежных ответов из данных для решения сложных и нечетких вопросов. Это беспорядок реальности.
- Теоретическое машинное обучение: речь идет о математике, абстракции, идеализированных сценариях, ограничениях, красоте и информировании о том, что возможно. Это намного аккуратнее, чище и удалено от беспорядка реальности.
Я думаю, что лучший способ использовать методологию, ориентированную на практику, — это что-то вроде «практика — обучение — практика», что означает, что студенты сначала приходят с некоторыми существующими проектами с проблемами и решениями (практика), чтобы ознакомиться с традиционными методами в этой области, а также, возможно, также со своей методологией. Попрактиковавшись на элементарном опыте, они могут обратиться к книгам и изучить лежащую в их основе теорию, которая послужит руководством для их дальнейшей продвинутой практики и расширит их набор инструментов для решения практических проблем. Изучение теории также улучшает понимание элементарного опыта и помогает быстрее приобрести более продвинутый опыт.
Это долгий план. Мне потребуются годы. Если вы уже знакомы со многим из этого, это займет у вас гораздо меньше времени.
Как его использовать
Все, что приведено ниже, представляет собой схему, и вам следует рассматривать пункты по порядку сверху вниз.
Я использую специальную версию уценки Github, включая списки задач для проверки прогресса.
Подробнее об уценке с использованием Github
Подписывайтесь на меня
Я вьетнамский инженер-программист, который очень увлечен этим и хочет работать в США.
Сколько я работал во время этого плана? Примерно 4 часа в сутки после долгого и тяжелого рабочего дня.
Я в путешествии.
Не думай, что ты недостаточно умен
Меня разочаровывают книги и курсы, которые, как только я их открываю, говорят мне, что многомерное исчисление, инференциальная статистика и линейная алгебра являются обязательными условиями. Я до сих пор не знаю, с чего начать…
- Что делать, если я плохо разбираюсь в математике
- 5 методов понимания алгоритмов машинного обучения без знаний математики
- Как мне изучить машинное обучение?
О видеоресурсах
Некоторые видео доступны только после регистрации на курсах Coursera или EdX. Это можно сделать бесплатно, но иногда занятия прекращаются, поэтому вам приходится ждать пару месяцев, и у вас нет доступа. Я собираюсь добавлять больше видео из общедоступных источников и со временем заменять видео онлайн-курсов. Мне нравится использовать университетские лекции.
Предварительные знания
Этот короткий раздел состоит из предварительных условий и интересной информации, которую я хотел узнать, прежде чем приступить к ежедневному плану.
Ежедневный план
Чтобы полностью понять каждый предмет, не требуется целый день, и вы можете пройти несколько таких занятий за день.
Каждый день я беру одну тему из списка ниже, читаю ее от корки до корки, делаю заметки, делаю упражнения и пишу реализацию на Python или R.
Мотивация
Обзор машинного обучения
Мастерство машинного обучения
Машинное обучение — это весело
Чернильное машинное обучение
Машинное обучение: подробное руководство
Истории и опыт
Алгоритмы машинного обучения
Книги для начинающих
Практические книги
Соревнования знаний Kaggle
Видео серии
МООК
Ресурсы
Игры
- Halite: игра по кодированию искусственного интеллекта
- Виндиниум: вызов программированию искусственного интеллекта
- Общий конкурс искусственного интеллекта в видеоиграх
- Конкурс искусственного интеллекта Angry Birds
- Игры с искусственным интеллектом
- Конкурс искусственного интеллекта в файтингах
- КодКубок
- Студенческий турнир по StarCraft AI
- Соревнования AIIDE по StarCraft AI
- Соревнования CIG StarCraft по искусственному интеллекту
- CodinGame - Игры с искусственным интеллектом
Стать участником открытого исходного кода
Подкасты
Подкасты для начинающих:
- Говорящие машины
- Линейные отступления
- Скептик данных
- Эта неделя посвящена машинному обучению и искусственному интеллекту
- Руководство по машинному обучению
Интервью с практиками, исследователями и исследователями ОД об их опыте
- Наука о данных Chai Time, аудио, рецензии
- Машинное обучение для начинающих - Интервью, Аудио
«Больше» расширенных подкастов
- Частично производная
- Показ данных О'Рейли
- Не такое уж стандартное отклонение
Подкасты для нестандартного мышления:
Сообщества
Конференции
- Нейронные системы обработки информации (NIPS)
- Международная конференция по обучению представлений (ICLR)
- Ассоциация по развитию искусственного интеллекта (AAAI)
- Конференция IEEE по вычислительному интеллекту и играм (CIG)
- Международная конференция IEEE по машинному обучению и приложениям (ICMLA)
- Международная конференция по машинному обучению (ICML)
- Международные совместные конференции по искусственному интеллекту (IJCAI)
- Ассоциация компьютерной лингвистики (ACL)
Вопросы для собеседования
Мои любимые компании