Как распознать змею и получить работу: история одного pet-проекта

853e004b-d90c-4bee-b2aa-8c63a3b8801b
Специалист по компьютерному зрению рассказывает, как увлечение рептилиями помогло перейти из юриспруденции в Data Science.

Один из способов впечатлить работодателей, которые ждут от вас опыта, — это яркий pet-проект. В нем можно реализовать свои навыки и идеи, изучить актуальные технологии на практике. О том, как pet-проект помог при трудоустройстве, рассказал Аргишти Саакян, Computer Vision Researcher в компании Diagnocat.

Часть 1: Я решал типовые задачи с Kaggle и не получил выхлопа

Я пришел в IT из юридической сферы, окончил МГЮА (Московская государственная юридическая академия). Знания о больших данных и компьютерном зрении собирал по кусочкам: отдельно прошел курс по Python, отдельно — по статистике. Параллельно смотрел много материалов на Coursera, Stepic, YouTube.

Чтобы пробиться в Data Science без технического высшего образования, я просто обязан был показать pet-проекты. Нужно было, чтобы на меня обратили внимание. Вначале я решал классические задачи из Kaggle — соцсети для дата-сайентистов. Проекты были типовые — например, построить модель для предсказания цен на жилье. Выхлоп для собеседований с таких проектов был слабым. У меня никогда не спрашивали: «Почему ты выбрал эту задачу, как ты ее решал?»

Так без результата прошли 5–7 собеседований. В итоге я устроился работать просто аналитиком данных, без нейросетей, и решил серьезно заняться pet-проектом. 

Часть 2: Я создал классификацию змей

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

Больше всего времени ушло на сбор данных. Я искал фотографии нужных мне видов змей в Google, Яндексе. Самой сложной задачей оказалось создать пайплайн для обучения нейросети. Я писал алгоритм на Python, использовал библиотеки TensorFlow, NumPy, PIL. В основу сервиса я положил алгоритм сверточных нейронных сетей, архитектуру EfficientNet.

Процесс обучения нейросети по распознаванию вида змей в коде, скриншот из github
Так выглядит процесс обучения нейросети в коде. Источник: Github

Все данные я поделил на три части, одну из них использовал только для тестирования. Я считал метрики при помощи confusion matrix, а также лично смотрел, как нейросеть справляется в разных кейсах. Точность выше 94% я не получил, но на тот момент это был неплохой результат.

Примеры работы нейронной сети, фотографии из тест сета. Результаты на тестовых данных
Такие результаты модель показала на тестовых данных. Источник: GitHub

Затем я написал Telegram-бот, в который можно загрузить фото змеи, а нейросеть ее распознает. 

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

Часть 3 (happy end): Я получил работу мечты с машинным зрением

Через полгода работы аналитиком я снова начал искать вакансии. К тому моменту я уже опубликовал свой проект на Git и дал в нем ссылку на телеграм-бот. На собеседованиях у меня всегда спрашивали про этот проект: почему я выбрал именно классификацию змей, с какими трудностями столкнулся. В проекте я использовал разные технологии, поэтому он получился намного показательнее сухой задачи с Kaggle. Для одной из вакансий это был релевантный опыт — так я попал в компанию, где начал заниматься машинным зрением.

Советы новичкам, которые хотят завести pet-проект

Выбирайте то, что вам интересно. Это поможет сделать живой проект, который привлечет к вам внимание работодателей.

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

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

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

Работайте честно. Да, pet-проект — это не рабочий проект, но относиться к нему нужно со всей серьезностью. Это поможет вам максимально реализовать свои навыки в работе и научиться чему-то в процессе. Если в конце кажется, что сервис не работает так, как должен, если нужно было делать всё иначе, переделайте. Только так pet-проект даст вам развитие. 

Pet-проект — это возможность реализовать свою идею, поработать «для души» и одновременно показать, на что вы способны. Это отличная практика навыков для начинающих, способ получить опыт, который поможет трудоустроиться. 

(рейтинг: 5, голосов: 5)
Добавить комментарий