Машинное обучение за год

МЕНЮ


Новости ИИ
Поиск

ТЕМЫ


Big data
Беспилотные автомобили
БПЛА
генетические алгоритмы
Головной мозг
городские сумасшедшие
дополнительная реальность
ИИ проекты
интернет вещей
искусственный интеллект
ИТ-гиганты
квантовые компьютеры
кибербезопасность
Кластеризация
Машинное обучение
наука и образование
нейронные процессоры
нейронные сети
Нейронные сети: искусственные
Нейронные сети: реализация
облачные вычисления
Поведение животных
Поисковые алгоритмы. Ранжирование
Психология
распознавание образов
робототехника
Семинары
суперкомпьютеры
Теория эволюции
техническое зрение
Трансгуманизм
Чат-боты

АРХИВ


Декабрь 2016
Ноябрь 2016
Октябрь 2016
Сентябрь 2016
Август 2016
Июль 2016
Июнь 2016
Май 2016
Апрель 2016
Март 2016
Февраль 2016
Январь 2016
Декабрь 2015
Ноябрь 2015
Октябрь 2015
Сентябрь 2015
Август 2015
Июль 2015
Июнь 2015
Май 2015
Апрель 2015
Март 2015
Февраль 2015
Январь 2015
Декабрь 2014
Ноябрь 2014
Октябрь 2014
Сентябрь 2014
Август 2014
Июль 2014
Июнь 2014
Май 2014
Апрель 2014
Март 2014
Февраль 2014
Январь 2014
Декабрь 2013
Ноябрь 2013
Октябрь 2013
Сентябрь 2013
Август 2013
Июль 2013
Июнь 2013
Май 2013
Апрель 2013
Март 2013
Февраль 2013
Январь 2013
Декабрь 2012
Ноябрь 2012
Октябрь 2012
Сентябрь 2012
Июль 2012
Июнь 2012
Май 2012
Апрель 2012
Март 2012
Февраль 2012
Январь 2012
Декабрь 2011
Ноябрь 2011
Октябрь 2011
Сентябрь 2011
Август 2011
Май 2011

RSS


RSS новости
свиной грипп
new balance кроссовки

Новостная лента форума ailab.ru

История программиста, которому удалось освоить машинное обучение и deep learning за один год и даже успешно применить его в реальном проекте

С нуля до использования в работе

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

Основы машинного обучения за неделю

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

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

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

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

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

Начало: Hacker News и Udacity

Мой интерес к машинному обучению начался в 2014 году, когда я прочитал пару статей по данной теме на сайте Hacker News. Меня привлекала идея того, что компьютер, подобно человеку, может учиться. На тот момент, я не был профессиональным разработчиком, а напротив, кодером-любителем, который успел закончить лишь несколько небольших проектов.

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

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

Провал курса по машинному обучению на Coursera

В январе 2015 года, я вступил в учебный лагерь Founders and Coders в Лондоне, чтобы стать крутым разработчиком. Спустя пару недель, я уже хотел научиться писать программы для обучения своего компьютера, так что я со своими сверстниками организовал учебную группу. Каждый вечер вторника мы смотрели лекции курса машинного обучения на сайте Coursera.

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

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

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

Если бы я мог отмотать время назад, я бы предпочёл курс Udacity «Intro to Machine Learning», так как он легче и предполагает использование Python и Scikit Learn. Пойдя именно этим путем, мы гораздо раньше замарали бы руки, стали увереннее и получили массу удовольствия от изучения.

Усвоенный урок: начинай с чего-то простого и практичного, нежели с чего-то сложного с тонной теории.

Машинное обучение за неделю

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

За эту неделю я сделал следующее:

  • Освоил Scikit Learn;
  • Испытал машинное обучение на реальном наборе данных;
  • Написал алгоритм линейной регрессии с нуля (на Python);
  • Немного поигрался с обработкой естественного языка.

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

Усвоенный урок: посвяти неделю изучению чего-то одного, и ты удивишься, насколько эффективно пройдёт эта неделя.

Неудача в изучении нейронных сетей

После окончания Founders and Coders, я вернулся обратно в Норвегию и попытался повторить успех в изучении машинного обучения, только уже на нейронных сетях.

Ничего не вышло.

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

Усвоенный урок: для каждого вида деятельности подбери себе подходящее окружение.

Однако я, по крайней мере, начал свой путь в нейронные сети и у меня потихоньку получалось схватывать основы. Уже к июлю я закончил свою первую нейронную сеть. Это, вероятно, самая ужасная имплементация из когда-либо написанных и мне, честно сказать, стыдно показывать её здесь. Как говорится, первый блин комом, а цель свою я достиг: я смог доказать себе, что понимаю концепты обратного распространения и градиентного спуска.

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

К концу года я написал статью, в которой собрал воедино всё, что я изучил за этот год.

Проверка себя на конкурсах Kaggle

В течение своего отпуска в 2015 году, я получил дополнительную мотивацию и решил попробовать Kaggle. Это проект, где можно поэкспериментировать с наборами данных и получить отзывы о своей работе. Так что, я начал экспериментировать, используя разные алгоритмы в их конкурсах Home Quote Conversion, Otto Group Product Classification и Bike Sharing Demand.

Мне удавалось улучшать свои результаты раз за разом, экспериментируя с алгоритмами и данными.

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

Самообразование как ежедневная рутина

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

На тот момент, уже имев представление об основах в области нейронных сетей, мне хотелось перейти к deep learning.

Deep Learning на Udacity

Моей первой попыткой стал курс по Deep Learning на Udacity, в конце которого я получил одно большое разочарование. Лекции были слишком короткими и неинформативными для меня.

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

В защиту Udacity лишь скажу, что на тот момент я был профаном во всём, что как-либо относилось к IPython Notebook, поэтому для других этот курс может и был полезен, а я, попросту, не был готов к нему.

Стэнфорд – Deep Learning для обработки естественного языка

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

Также, хочется отметить тот факт, что они дают тебе решение, которым я пользовался, когда застревал на чём-либо.

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

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

Усвоенный урок: если вы можете позволить себе учителя по машинному обучению за 50 долларов в час, это определённо стоит того.

В дополнение к этому, в Xeneta пришёл Data Scientist. У него была степень магистра по математике и я часто обращался к нему за помощью, когда у меня возникали проблемы, связанные с линейной алгеброй, мат.анализом или с машинным обучением в целом. Так что, не забывайте о том, что люди, которые могут вам помочь могут уже находиться рядом с вами.

Взлёт продаж в Xeneta

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

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

Это может и сложно, но, как говорится, идущий дорогу осилит.


Источник: proglib.io



кроссовки нью баланс