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

Это Сантьяго Вальдаррама, которого вы, возможно, знаете, если состоите в сообществе машинного обучения в Твиттере. Будучи директором по компьютерному зрению в Levatas, он возглавляет команду разработчиков программного обеспечения и инженеров по машинному обучению в разработке флагманского продукта Levatas. В своей миссии помогать людям он регулярно создает обучающий контент, такой как курсы, статьи, рассылки, не говоря уже о его твитах, которые сжимают сложные концепции машинного обучения.

Мы обсудили ряд тем, охватывающих все, что любой хотел бы знать в первые дни своей карьеры в машинном обучении. Хотя эта статья является кратким изложением выступления, здесь представлена ​​запись всего обсуждения.

Это резюме организовано по пунктам. Почти 100% таких пунктов — это опыт Сантьяго в области машинного обучения.

Начало работы: предпосылки, ресурсы, инструменты, хорошие и плохие практики

  • Единственной предпосылкой для машинного обучения является умение общаться с компьютерами, другими словами, используя любой язык программирования.
  • Наличие опыта разработки программного обеспечения очень полезно. Программирование — это фундаментальный навык для достижения успеха в качестве инженера машинного обучения.
  • Статистика, анализ данных и вероятности — это разные навыки. Программирование — это тоже другой навык.
  • Многие люди рекомендуют сначала изучить математику: «Мне нравится начинать с поиска проблем, которые я могу решить, приобретая новые знания.
  • Учиться, решая проблемы, не значит пропускать основы или не обращать внимания на теории, это означает, что менталитет проблемы в первую очередь может быть очень полезным для вас, чтобы начать с проблемы делать все, что нужно, чтобы решить эту проблему и в этом процесс, вы начнете приобретать знания… Если это означает использование математики/вероятностей для решения проблемы, вы можете углубиться и изучить их.
  • Я придумал описанный выше подход к проблемно-ориентированному обучению.
  • Три наиболее популярных учебных ресурса, которые используют описанный выше подход, — это fast.ai Deep Learning, Курс машинного обучения Google и Andrew Ng. Курс машинного обучения.
  • Общая настройка программирования для машинного обучения: Visual Studio Code, блокноты Jupyter и блокноты Colab для использования бесплатного графического процессора. VS Code также поддерживает ноутбуки.
  • Специальные инструменты машинного обучения: TensorFlow (или PyTorch) для глубокого обучения, Scikit-Learn для классического машинного обучения, Pandas для анализа и обработки данных, NumPy для вычислений, Matplotlib/Seaborn для визуализации данных.
  • ML — это долгий путь. Сохраняйте мотивацию и постоянно учитесь.
  • Пропускать задания на курсах или упражнения в книгах — все равно, что оставлять вкусную еду на столе.
  • Если бы мне пришлось начинать обучение заново, я бы научился важным и полезным вещам.

Математика и машинное обучение: правильный баланс

  • Математика является фундаментальной частью машинного обучения. Никто не может этого отрицать.
  • Необходимое количество математических знаний зависит от того, чем вы хотите заниматься в жизни. Если это исследования или создание современных алгоритмов, вам определенно придется потратить гораздо больше времени на понимание основ существующей области машинного обучения, чем кому-то, кто пытается использовать то, что создают другие. То же самое, если вы хотите построить фреймворк.
  • Вы можете использовать библиотеку, не обязательно понимая, как она работает за кулисами, у вас есть общие знания, но вам не нужно вникать в мельчайшие детали.
  • Математика является фундаментальной частью машинного обучения, никто не может этого отрицать, но говорить людям, что они не могут использовать технику или что они не могут использовать алгоритм, если они не понимают, как работает этот алгоритм, я думаю, что это неискренне, и я думаю, что это делает слишком много акцента. на то, что может быть не нужно.
  • Вы можете выбрать свой собственный путь и изучать математику, когда считаете это необходимым.
  • Мы все искали списки и использовали функции поиска, не обязательно понимая, как работает поиск. То же самое с любым алгоритмом или любой структурой.Я не говорю, что математика не важна, я говорю, что порядок, которому вы следуете, должен быть продуктивным и приносить пользу.
  • Вы можете выбрать свой собственный путь и изучать математику, когда считаете это необходимым.

Разработчики программного обеспечения для машинного обучения

  • Многие разработчики боятся машинного обучения. Причина в том, что мы обычно боимся того, чего не знаем. Меняться тяжело.
  • Машинное обучение — довольно новое явление, если сравнивать его с общей разработкой программного обеспечения.
  • Большинство книг, курсов и видеороликов были созданы исследователями/академическими кругами, поэтому в них большое внимание уделяется математике и теории. Существует не так много контента, созданного людьми, которые используют машинное обучение и смотрят на машинное обучение с более прагматичной точки зрения.
  • В действительности все обстоит иначе: вы можете оказать огромное влияние, используя методы машинного обучения, не нуждаясь в докторской или магистерской степени.
  • Вместо того, чтобы переключаться с разработки программного обеспечения, включите машинное обучение в свою карьеру разработчика.

Идеи по созданию проектов для портфолио и созданию контента

  • Создание отличного контента или создание привлекательного портфолио не происходит в одночасье. Это практика и повторение.
  • В первые дни создания контента может показаться, что никому нет до него дела, и поэтому легко сдаться.
  • Если вы собираетесь создавать контент, поверьте в себя, поймите путь, поймите, что в первые дни будет казаться, что ваш контент никому не интересен. Продолжайте создавать и делиться, ваш контент будет виден, и больше людей начнут с ним взаимодействовать.
  • Это практика, которая делает контент таким хорошим.
  • Без причины, по которой вы создаете контент, легко сдаться. Сантьяго создает контент как способ активно изучать новый материал. Он называет это беспроигрышной ситуацией, он одновременно учится и учит других.
  • Нетворкинг важен. Люди, которых вы встречаете в социальных сетях, могут порекомендовать вам вакансии в будущем.
  • Для Сантьяго его аккаунт в Твиттере — это его портфолио для любого потенциального сотрудника в будущем.
  • Резюме — это не место для всей истории жизни, среднего балла и курсов в колледже. Это место, чтобы показать, насколько вы хороший кандидат на работу.
  • Единственной целью резюме является получение вами телефонного звонка. Резюме не даст вам работу и не улучшит вашу компенсацию. Это только собирается получить вашу ногу в дверь возможностей. Оптимизируйте резюме под вакансию.
  • Вы можете использовать одно и то же резюме для 500 вакансий, но если вы хотите максимизировать вероятность телефонного звонка, убедитесь, что ваше резюме говорит о вакансии.
  • Сократите резюме до одной страницы. Избавьтесь от всей отвлекающей информации, уберите все шумы. Типичный менеджер по найму тратит в среднем 6 секунд на каждое резюме. Избавьтесь от любой информации, которая не гарантирует, что вам позвонят.
  • Креативность играет роль в дифференциации себя от других. Это может быть классный анализ или интересный проект, сильно отличающийся от других скучных проектов, которыми занимается большинство разработчиков.

Другие неотмеченные точки:

Ближе к концу мероприятия, отвечая на вопросы аудитории, вы найдете другие полезные идеи о внедрении машинного обучения в существующие отрасли, приложениях машинного обучения в медицине и создании привлекательных технических сообществ.

Разговор с Сантьяго, безусловно, был для меня целым опытом обучения, и я надеюсь, что если вы его посмотрели, то найдете его полезным, особенно если вы только начинаете свою карьеру в машинном обучении.

Спасибо за чтение!

Каждую неделю я пишу одну статью о методах, идеях или лучших практиках машинного обучения, которые могут помочь вам в создании эффективных систем обучения. Если вы считаете статью полезной, поддержите ее, поделившись ею с друзьями или техническими сообществами, частью которых вы являетесь.

Кроме того, свяжитесь со мной в Твиттере!