Я осваивал машинное обучение каждый день в течение девяти месяцев, а затем нашёл работу. Узнайте, как всё было.
После ухода из Apple я основал интернет-стартап. Но особого энтузиазма он у меня не вызывал, и моё начинание заглохло.
Машинное обучение — вот, что меня будоражило! Мне захотелось изучить его вдоль и поперёк, чтобы машина писала все правила за меня.
Но на одном энтузиазме не проживёшь. Работы у меня не было, а за учёбу надо было платить, поэтому я начал таксовать по выходным.
Мне нравилось знакомиться с новыми людьми, но я ненавидел водить: трафик и пробки — стоишь и ждёшь, вот наконец-то поехал, и тут снова надо останавливаться! Или топливо — постоянно думаешь: «Хватит ли бензина?». А ещё переключение передач, правила: туда ехать нельзя, а сюда можно — всё меня раздражало.
В то же время я начал осваивать машинное обучение. Учился с утра до вечера пять дней в неделю. Это было нелегко, но такова теперь была моя жизнь: таксовать по выходным, а в будни заниматься машинным обучением. Мне нужно было учиться — я понимал, что не могу таксовать всю жизнь. Однажды в субботу мне удалось заработать 280 долларов, но в тот же вечер меня оштрафовали на 290. Минус 10 долларов — это уже слишком!
Уже как девять месяцев я веду свой блог Магистр по ИИ, и теперь у меня есть работа. Лучшая работа в моей жизни.
Как же заниматься каждый день?
А вот как.
1. Сокращаем пространство поиска
Машинное обучение необъятно: коды, математика, вероятность, статистика, данные, алгоритмы.
И в учебных материалах недостатка нет. Но слишком большой выбор тоже становится проблемой.
Если вы всерьёз настроились учиться, подготовьте план занятий. Вместо того, чтобы неделями обдумывать, какой язык изучить — Python или R — пройдите курсы на Coursera или edX. Начните с математики или кода. Потратьте несколько дней на составление примерного плана и следуйте ему.
Что делал я: завёл свой блог, начал изучать код на Python, собрал вместе всё, что мне удалось найти интересного. Курсы, книги и так далее. Подойдут ли они всем и каждому? Думаю, что нет. Я собирал их чисто под себя. Если изучать что-то в виртуальном пространстве — лучше выработать свой план.
Как только я составил план занятий, отпала необходимость тратить время на поиски того, чем лучше заняться: теперь я спокойно мог изучать то, что мне было нужно.
При этом никаких строгих рамок не было: если меня заинтересовывало что-то новое, я это изучал.
2. Подстраиваем окружение
Представьте, что ваш дедушка решил начать выращивать апельсины, но у него ничего не получилось. Почва, семена, садовый инвентарь — всё было у дедушки. Что же пошло не так?
Просто было слишком холодно, а апельсины произрастают в тёплом климате. Шансов вырастить апельсины в холодном климате просто не было. Переехав в южный город, он снова стал выращивать апельсины. А через год у дедушки уже был лучший апельсиновый сок в городе.
Учиться — это как выращивать апельсины. У вас может быть ноутбук, интернет-соединение, лучшие книги, но может не быть должной мотивации.
Почему? Потому что у вас нет соответствующего окружения: в комнате полно отвлекающих факторов; пробуете учиться с друзьями, но они не так увлечены, как вы; сообщения в WhatsApp приходят каждые семь минут.
Что же делать? Я превратил свою комнату в идеальное место для учёбы: навёл порядок, убрал телефон в другую комнату, отключил все уведомления. Другу сказал, что до 16:00 телефон будет отключен: с друзьями хорошо проводить время, но учиться лучше в одиночку. Не можете обойтись без телефона? Попробуйте хотя бы час. Спрячьте его где-нибудь (желательно в другой комнате). В конце концов, можно включить режим «Не беспокоить».
Подстройте окружение, и знания потекут к вам рекой.
3. Настраиваем систему на победу
Тринадцатая проблема… Я в тупике. Пытался решить её вчера, но не сумел. Сегодня снова надо попробовать, но я помню, как тяжело мне давалось это вчера. Понимаю, что надо заниматься, но снова откладываю. Это какой-то замкнутый круг, из которого очень сложно выбраться.
Книги уставились на меня. Проблему надо решать. Поставил таймер на 25 минут. Попробую решить, хотя понимаю: это вряд ли получится. 4 минуты проходят, как в аду. Продолжаю. Проходит 24 минуты, я не хочу сдаваться.
Таймер выключается, и я ставлю ещё. А потом ещё. После трёх повторений я решаю проблему. Говорю себе, что я лучший инженер-разработчик в мире. Неправда, но это не важно. Даже маленькая победа — это победа.
Не всегда есть возможность контролировать свои успехи в учёбе, зато можно контролировать время, которое на неё уходит.
4. Иногда полезно ничего не делать
Я пришёл к такому выводу, что умение учиться — это важнейший навык. Если я смогу понять, как учиться лучше, то смогу всё делать лучше. Смогу освоить машинное обучение, стать одним из лучших программистов, смогу научиться писать лучше. Я подумал, что должен улучшить этот свой навык — умение учиться — и сразу взялся за дело.
Я проходил курс Coursera Learning Как научиться учиться. В одной из главных тем рассматривалось сфокусированное мышление в сравнении с рассеянным.
Сфокусированное мышление имеет место при выполнении одной задачи.
Рассеянное мышление — когда вы ни о чём не думаете.
Обучение проходит лучше на их пересечении. Так что иногда лучшие мысли приходят, например, в душе.
Когда вы переключаетесь на рассеянное мышление, мозг получает возможность связать воедино всё то, что он впитывал в процессе сфокусированного мышления.
Сложность в том, чтобы научиться сочетать их по времени. Если вы настроили систему так, что выполняете четыре 25-минутки сфокусированной работы, то по её завершении сходите прогуляться, поспите немного.
Чем чаще вы будете разбавлять свой учебный процесс ничегонеделанием, тем больше будете видеть вокруг предметов, примечательных по причине свободного пространства: комната — это пространство с четырьмя стенами; шина наполнена ничем иным, кроме воздуха; корабль плывёт, потому что вокруг свободное пространство.
Вам не помешало бы немного больше этого ничего.
5. Придётся потрудиться
Учёба — отстой! Узнаёшь что-то, а уже на следующий день забываешь. Потом ещё что-то — и снова забываешь. Проводишь все выходные за учёбой, приходишь на работу в понедельник и ничего не помнишь.
Однажды кто-то спросил, как у меня получается так хорошо запоминать прочитанное? Я ответил, что запоминаю в лучшем случае один процент.
Так, поизучав что-то в течение года, понимаешь: ещё столько всего неизученного! Когда же учёба заканчивается? Никогда. Каждый день, как первый. Придётся помучиться.
6. Принцип трёхлетнего ребенка
На днях я был в парке. Там бегал и резвился вовсю маленький мальчик: то на горку заберётся, то под горку забежит, то на дерево залезет, то из-за дерева показывается, то он чистенький, то он уже весь в пыли. Смеялся, прыгал и снова смеялся.
Тут подходит забирать его мама. Всю дорогу домой он не прекращал смеяться, размахивая синей пластиковой лопаточкой.
Что это было? Что привело его в такой восторг? Он просто играл, беззаботно веселился. Ещё бы: вокруг целый мир, такой новый и огромный!
В нашем обществе присутствует строгое разделение между работой и игрой. Учёба ассоциируется с работой. Нужно учиться, чтобы получить работу. Нужно работать, чтобы иметь много денег. На деньги можно хорошо отдохнуть. И только тогда, когда имеешь возможность хорошо отдохнуть, можно быть как этот беззаботный и смеющийся мальчишка.
Если для вас учёба становится работой, она превращается в ад: ей нет конца и края. Тогда происходит по известной пословице: «Одна работа без забавы — от нее тупеешь, право».
Теперь представьте, что учёба — это процесс, в котором переход от одной темы к другой происходит, как в игре. Одно соединяется с другим, другое — с третьим и так далее. Вы начинаете воспринимать учёбу как игру, испытывая те же ощущения, что тот резвящийся мальчишка.
По своему опыту знаю, что в случае со структурированными данными — такими как таблицы, колонки или кадры данных — ансамбли алгоритмов типа CatBoost, XGBoost и LightGBM работают лучше. А вот что касается неструктурированных данных типа изображений, видео, естественного языка и аудио, то здесь предпочтительной моделью будет глубокое обучение и/или перенос обучения.
Здесь я собрал всё воедино и вытанцовываю от одного к другому. Делайте так же, и по окончании занятия у вас будет больше энергии, чем в начале. Это и есть принцип трёхлетнего ребенка — видеть во всём игру.
Пожалуй, на этом закончим.
А вот и обещанный бонус.
7. Сон
Мало спишь — плохо учишься.
Возможно, вы не высыпаетесь. Я тоже не высыпался. Больше всего денег такси приносило мне вечером пятницы и субботы, когда люди ходят в рестораны, клубы и на вечеринки. Я не ходил, ведь я таксовал. Работал допоздна, в 2–3 ночи заваливался домой и спал до 7–8 утра. Два дня я был разбит. Затем наступал понедельник и я чувствовал себя, словно в другом часовом поясе. Во вторник становилось лучше, и к среде я был в норме. Но в пятницу всё повторялось по кругу.
Такой режим был неприемлем. Мне хотелось больше учиться. Я перестал таксовать в 10, 11 вечера, приходил домой и спал теперь уже по 7–9 часов. Меньше денег — больше учёбы. Хорошо, только не жертвуйте сном ради учёбы. Делайте наоборот. Сон очищает мозг и способствует появлению новых соединений.
Машинное обучение необъятно. Чтобы хорошенько изучить его — и не только его, но всё что угодно — надо напоминать себе об этих шести принципах:
- сокращать пространство поиска;
- подстраивать окружение;
- много стараться;
- иногда ничего не делать;
- относиться к учёбе, как к игре;
- лучше спать, чтобы больше знать.
Читайте также:
- Какой язык программирования выбрать в 2019?
- Самый важный навык для программиста
- 10 признаков того, что программирование не для вас
Перевод статьи Daniel Bourke: 6 Techniques Which Help Me Study Machine Learning Five Days Per Week