Вступление

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

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

Состояние искусственного интеллекта сегодня

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

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

Работодатели. Мне очень сложно найти людей с соответствующим опытом.

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

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

  • Опыт
  • Понимание теории
  • Специализация
  • Колледж

Опыт

Но в названии написано, что нет опыта ?? Wtf!

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

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

  • Персональные проекты
  • Хакатоны
  • Проблемы кодирования
  • Проекты с открытым исходным кодом

Персональные проекты

Вам на 100% необходимо иметь проекты машинного обучения в вашем GitHub. Это очень быстрый способ исключить людей из процесса найма, и рекрутеры будут в первую очередь обращать внимание на ваше резюме. Пытаться придумать проект, когда вы все еще изучаете машинное обучение, может оказаться немного утомительным, это нормально. Он не должен быть большим, ярким или инновационным, он просто должен отображать ваше понимание темы и указывать людям, что вы можете работать / исследовать независимо с хорошими стандартами кодирования. Несколько вещей, на которых следует сосредоточиться при создании проекта GitHub.

  1. На выполнение проекта не должно уйти больше месяца.
  2. Убедитесь, что ваш код чистый, модульный и прокомментирован
  3. Предоставьте Read Me и другую документацию для вашего кода, такую ​​как используемые технологии, справочные руководства, зависимости и т. Д.
  4. Если возможно, предоставьте модульные тесты для ключевых частей кодовой базы.

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

  • Классификатор изображений с использованием CNN. Просто позвольте ему различать 2 типа изображений (например, собака / кошка).
  • Стандартная нейронная сеть прямого распространения для классификации данных. На Kaggle.com есть множество отличных наборов данных. Возьмите такой набор данных, как набор данных Iris, и классифицируйте типы ириса, по которым цветок основан на приведенных данных.
  • Анализ тональности обзоров фильмов. Еще один популярный первый проект - использование нейронной сети для классификации настроений при просмотре фильмов (хорошее или плохое). Вы можете использовать набор данных IMDB, который также можно найти на kaggle.

Хакатоны

Хакатоны хороши по нескольким причинам. Это заставляет вас пойти и что-то построить, вы познакомитесь с более опытными людьми и сможете включить это в свое растущее резюме / портфолио. Попробуйте найти хакатоны, посвященные ИИ, но также посетите общие хакатоны по программному обеспечению и попытайтесь внести свой вклад в свой проект. Зайдите на сайт meetup.com и посмотрите, есть ли в вашем районе группы встреч, посвященные искусственному интеллекту или разработке программного обеспечения в целом. Эти группы обычно проводят своего рода хакатон не реже одного раза в год.

Проблемы программирования

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

Проекты с открытым исходным кодом

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

Понимание теории

Итак, главное - получить несколько проектов и получить опыт, но это больше, чем просто следование некоторым руководствам и размещение их на GitHub (постарайтесь не делать этого: D) Вы должны понимать, что вы создаете. Как известно многим студентам колледжей, существует большая разница между изучением чего-либо и пониманием этого.

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

Вот несколько лучших ресурсов, которые я нашел.

  • Stanford Machine Learning - это бесплатный курс на coursera, охватывающий практически все, что вам нужно знать о машинном обучении, от регрессионных моделей до глубокого обучения.
  • DeepLearning.ai Эндрю Нг. Как и предыдущий курс, Ng дает очень всесторонний взгляд на ИИ, однако этот курс специализируется на глубоком обучении, а не на машинном обучении в целом.
  • Grokking Deep Learning Эндрю Траска, возможно, лучшая книга по глубокому обучению, которую я нашел. В книге рассказывается о построении нейронных сетей без использования библиотек, кроме numpy. Это более сложно и стоит денег, но очень ценно, если у вас есть время, чтобы как следует его пройти.
  • Канал Сирадж Раваль на YouTube - отличное место для получения высокоуровневого обзора почти всех актуальных тем машинного обучения, а также его довольно интересно смотреть.

Специализация

Это хороший способ для работодателей отделить пшеницу от плевел. ML - МАССИВНОЕ поле. Невозможно одному человеку знать все. Вот почему люди специализируются и становятся экспертами. Если вы не только сможете показать, что хорошо разбираетесь в машинном обучении / глубоком обучении в целом, но и специализируетесь в одной области, вы станете еще более ценным для потенциальных работодателей. Но будьте осторожны, не загоняйте себя в коробку, вам не нужно сейчас решать весь свой карьерный путь, вместо этого попробуйте найти область, которая действительно вас волнует, и узнайте о ней больше, возможно, сделайте несколько проектов, если сможете. . Вот несколько примеров специализаций.

  • Компьютерное зрение: CNN, сегментация, маркировка, описания, обнаружение объектов.
  • Рекуррентные сети: данные временных рядов, такие как фондовый рынок и видео, ячейки LSTM.
  • Обучение с подкреплением: обучение агента таким навыкам, как игра в видеоигры или вождение автомобиля.
  • Обработка естественного языка: чат-боты, анализ настроений, создание контента, обобщение контента.
  • Генеративные состязательные сети: обучение созданию контента, такого как изображения, 3D-модели, правила обучения, аудио.
  • Мета-обучение: обучение, чтобы учиться
  • One Shot Learning: обучение с очень небольшим объемом данных
  • Визуализация и отладка нейронных сетей: огромная область исследований, нейронные сети по-прежнему остаются черным ящиком, и нам сложно их визуализировать и понять, почему они не работают, когда сломаны.

Колледж

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

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

Если вы выполните все остальные действия, упомянутые в этой статье, есть большая вероятность, что вы сможете получить работу с плохими результатами в колледже. Однако, если вы получите 1,1 (согласно ирландской системе образования, это лучшие результаты) или высокий средний балл и у вас будет отличный последний годовой проект (FYP), посвященный одной из ранее упомянутых тем, вы окажетесь в гораздо лучшем положении. . Так что это то, на чем вам нужно сосредоточиться. Пойдите в колледж с агрессивным менталитетом: «Я собираюсь раздавить это». Ходите в каждый класс, делайте заметки, завершайте задания раньше, усердно учитесь, получайте оценки.

Заключение

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