Програміст, який хоче прорватися до машинного навчання


19

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


2
Це питання схоже на питання вікі спільноти.
Андрій

Відповіді:


16

Щоразу, коли я спілкувався з ким-небудь про те, щоб дізнатися більше машинного навчання, вони завжди вказують мені на елементи статистичного навчання Хасті та Тібшірані . Ця книга має щастя бути доступною в Інтернеті безкоштовно (друкована копія має певну привабливість, але вона не потрібна), і це справді чудовий вступ до цієї теми. Я ще не все в цьому прочитав, але я багато чого прочитав, і це дійсно допомогло мені зрозуміти речі краще.

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

Моє переживання - це статистика, і я зазнав деяких концепцій машинного навчання (хороший приятель мого дійсно в цьому займається), але я завжди відчував, що мені не вистачає на фронті машинного навчання, тому я намагався навчитися цьому всьому. трохи більше самостійно. На щастя, там є багато великих ресурсів.

Щодо працевлаштування в галузі або вимог до аспірантури, я не в змозі порадити (виявляється, я ніколи нікого не наймав), але я помітив, що діловий світ, здається, дуже подобається людям, які можуть робити щось і трохи менше стосуються паперів, які говорять, що можна щось зробити.

Якби я був ти, я би витратив частину свого вільного часу, впевнюючись у своїх знаннях машинного навчання, а потім впроваджував би те, що бачиш можливості. Надана ваша позиція може не дати вам такої можливості, але якщо ви зможете реалізувати щось, що додасть вашої компанії (зберігаючи інші зобов’язання), я не можу уявити, щоб хтось засмучував вас. Приємним є те, що якщо ви виявите, що ви робите трохи машинного навчання на цій роботі, коли ви виходите шукати нову роботу, ви можете поговорити про досвід, який ви вже маєте, який би допоміг людям пройти повз відсутність конкретної роботи ступінь.

Ресурсів дуже багато, і це неймовірно цікаво, бажаю удачі!

Ще одна ідея: ви можете завести блог про процес навчання машинного навчання і, можливо, задокументувати кілька проектів, над якими ви працюєте у вільний час. Я зробив це з проектом програмування, і це дозволяє вам говорити про проект, над яким ви працюєте у вільний час (це добре виглядає роботодавцю), і ви можете також направляти їх у свій блог (очевидно, тримайте це професійно) про вашу роботу . Поки я надіслав досить багато людей на мій маленький блог програмування (я останнім часом трохи лінивий у публікаціях, але я постійно його оновлював, коли я звертався на роботу), і всі, з ким я спілкувався, були вражені це.


(+1) чудова порада, особливо стосовно ML-класу, фактичного сертифіката знань / роботи та блогу.
steffen

Професійний блог здається гарною ідеєю!
Ріші Дуа

"Діловий світ, здається, дуже подобається людям, які вміють робити щось" - так, і це стосується навіть паперу :) У будь-якому випадку зробіть щось, що ви зможете їм показати.
P.Windridge

Елементи статистичного навчання, хоча і всебічні, важкі для тих, хто не має ступеня випускника статистики. Я б замість цього рекомендував «Вступ до статистичного навчання з (програми на R)» тих самих авторів. Це набагато простіше.
Абхішек Дівекар

3

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

Щодо книг тощо, то варто поглянути:

Щодо ступенів, я погоджуюся з @asjohnson, що сертифікат має значення менше, принаймні я можу підтвердити це для області, в якій я працюю (Data Mining / ML в Інтернеті). Це може бути різним для більшості "академічних" областей, таких як біоінформатика. Вміння продемонструвати, що людина а) ентузіаст і б) зробила фактичну роботу ("розумний і виконувати справи"), демонструючи невеликий портфель (наприклад, онлайн-змагання ...), має бути більш ефективним IMHO.


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

2

Прочитайте машинне навчання Тома Мітчелла. Це гарна книга, з якою слід розпочати роботу в галузі машинного навчання.

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

Існує маса методик, що підходять для конкретних програм (але не для всіх застосунків), і є багато теорії, яку ви можете прочитати, щоб краще зрозуміти машинне навчання. Для того, щоб бути хорошим у машинному навчанні, вам потрібно обов’язково знати, що ви робите, бо в іншому випадку ви не можете бути впевнені, чи будуть ваші результати узагальнені.

Удачі.


0

Існує велика кількість хороших книг про машинне навчання, в тому числі кілька в серії O'Reilly, які використовують Python. Опрацювання одного чи декількох із них може стати хорошою відправною точкою.

Я б також запропонував отримати деякі знання статистики - через два курси або самостійне навчання, насправді не має значення. Причина полягає в тому, що є кілька книг машинного навчання, які зосереджуються на алгоритмах та механіці, але ігнорують основне питання про те, наскільки ймовірно, що те, що говорить ваш алгоритм, викликане випадковістю. І це важливо знати.

Удачі та веселощів, це чудове поле.


0

Дуже приємне запитання. Що слід заздалегідь усвідомити, це те, що машинне навчання є і мистецтвом, і наукою, і включає ретельне очищення даних, візуалізацію їх і врешті-решт побудову моделей, що підходять під відповідний бізнес, одночасно зберігаючи його масштабованість та відстеження. Навички, мудріші, важливіші за все інше - зосередитись на ймовірності та спочатку використовувати прості методи, перш ніж переходити на складні. Я віддаю перевагу комбінації R & Perl, оскільки ви знали пітон, який повинен бути досить хорошим. Працюючи над справжньою роботою, вам незмінно доведеться витягувати власні дані, тому знання SQL (або будь-якого іншого, що не підтримує ваша компанія) є обов'язковим.

Ніщо не перемагає досвіду в області ML, тому зайнявшись такими сайтами, як stackexchange, kaggle - це також чудовий спосіб піддатися впливу цього поля. Удачі.


0

Я знаю, це трохи старе питання, але враховуючи той факт, що я бачив багато програмістів, як і раніше не знаю, як почати роботу.

Таким чином, я створив сховище "Повний щоденний план навчання, щоб стати машинобудівним інженером" .

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

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

Будь ласка, не соромтеся робити будь-які внески, які, на вашу думку, зробить це краще.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.