Программист хочет проникнуть в область машинного обучения


19

Я разработчик программного обеспечения (в основном .NET и Python около 5 лет опыта). Что я могу сделать, чтобы помочь мне получить работу в области машинного обучения или что-нибудь еще, что поможет мне начать работать в этой области? Является ли аспирантура жестким требованием?


2
Этот вопрос выглядит как вопрос сообщества вики.
Андрей

Ответы:


16

Каждый раз, когда я говорил с кем-то об обучении машинному обучению, они всегда указывают мне на элементы статистического обучения Хасти и Тибширани . К счастью, эта книга доступна в Интернете бесплатно (печатная копия имеет определенную привлекательность, но не обязательна), и это действительно отличное введение в эту тему. Я еще не все прочитал, но многое прочитал, и это действительно помогло мне лучше понять вещи.

Еще один ресурс, через который я проработал, - это класс машинного обучения в Стэнфорде , который также доступен онлайн и бесплатно. Эндрю Нг отлично справляется с вашей работой. Я нахожу это особенно полезным, потому что мой опыт в реализации алгоритмов слабый (я программист-самоучка) и он показывает вам, как реализовать вещи в Octave (если R уже многое реализовал в пакетах). Я также нашел эти заметки по статистике Reddit несколько месяцев назад, так что я как бы просматриваю их, а затем смотрю видео и размышляю над ним с моими собственными заметками.

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

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

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

Ресурсов очень много и это невероятно интересно, желаю удачи!

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


(+1) отличный совет, особенно в отношении класса ML, фактического знания / работы> сертификата и блога.
Штеффен

Профессиональный блог звучит как хорошая идея!
Риши Дуа

«Деловой мир, похоже, действительно любит людей, которые могут что-то делать» - да, и это относится даже к бумажкам :) В любом случае, сделайте то, что вы можете им показать.
П.Уиндридж

Элементы статистического обучения, хотя и являются всеобъемлющими, трудны для тех, кто не имеет ученой степени в области статистики. Вместо этого я бы порекомендовал «Введение в статистическое обучение с (Приложения в R)» тех же авторов. Это намного проще.
Абхишек Дивекар

3

В дополнение ко всем другим замечательным советам, которые я предлагаю вам испачкать руки, участвуя в онлайн-конкурсах, см. Разделы, посвященные конкурсам по прогнозному моделированию.

Что касается книг и т.д., вы должны взглянуть на:

Что касается степеней, я согласен с @asjohnson, что сертификат имеет меньшее значение, по крайней мере, я могу подтвердить это для области, в которой я работаю (Data Mining / ML в Интернете). Это может отличаться для более «академических» областей, таких как биоинформатика. Быть способным продемонстрировать, что кто-то а) увлечен и б) выполнил реальную работу («умно и добивайся успеха»), демонстрируя небольшое портфолио (например, онлайн-соревнования ...), должно быть более эффективным, ИМХО.


(+1) Для онлайн-соревнований. Я думаю, что если бы вы сделали что-то из kaggle или одного из других конкурсов и отслеживали ваш код и ваш процесс (я думаю, блог) в месте, где потенциальные работодатели могли бы проверить это. Это показало бы много инициатив, и во многих отношениях это проще, чем придумывать свой интересующий вас вопрос. Просто выберите один из интересующих вас конкурсов, тогда у вас есть данные и место для отправки и сравнения ответов.
asjohnson

2

Прочитайте машинное обучение Тома Митчелла. Это хорошая книга, с которой вы должны начать изучать машинное обучение.

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

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

Удачи.


0

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

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

Удачи и веселья, это отличное поле.


0

Очень хороший вопрос Важно понимать, что машинное обучение - это и искусство, и наука, и оно требует тщательной очистки данных, их визуализации и, в конечном итоге, построения моделей, которые подходят для рассматриваемого бизнеса, одновременно сохраняя его масштабируемость и управляемость. Мудрые навыки, более важные, чем что-либо еще, должны сосредоточиться на вероятности и использовать простые методы, прежде чем переходить к сложным. Я предпочитаю комбинацию R & Perl, так как вы знаете, Python должен быть достаточно хорошим. При работе на реальной работе вам обязательно придется извлекать свои собственные данные, поэтому знание SQL (или любых других вопросов, которые не поддерживает ваша компания) является обязательным.

Ничто не сравнится с опытом в области ML, поэтому участие в таких сайтах, как stackexchange, kaggle также является отличным способом познакомиться с этой областью. Удачи.


0

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

Таким образом, я создал репозиторий «Полный ежедневный план обучения, чтобы стать инженером машинного обучения» .

Это мой многомесячный учебный план перехода от разработчика мобильных приложений (самоучка, без степени CS) к инженеру по машинному обучению.

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

Пожалуйста, не стесняйтесь вносить любой вклад, который, по вашему мнению, сделает это лучше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.