Когда я зарегистрировался на BackyardHacks в 2020 году, я знал, что хочу исследовать компьютерное зрение. Как и другие, я купил много растений во время карантина из-за COVID-19  — в любом случае, какая наука стоит за этим явлением? Добавленная зелень заставила людей чувствовать себя менее ограниченными? Или необходимость взращивания живого организма дала жизни новую цель, когда все казалось таким безрадостным? Какой бы ни была причина, я был одним из тех людей! В сочетании с моим желанием узнать о компьютерном зрении я разработал идею Florafy. Приложение для Android, которое позволяет вам сфотографировать растение, и оно определит тип растения для вас! Этот блог будет посвящен аспекту модели машинного обучения в этом типе проекта; как модель решает, на что она смотрит, и как вы можете создать свою собственную модель с помощью Vertex AI от Google!

Краткий обзор

Если вы видели Кремниевую долину, то наверняка знаете о приложении Not Hotdog. Это приложение сообщит вам, является ли объект хот-догом или нет — хотя у него может не быть много практического применения, это отличный (и забавный) пример для целей этого блога. Теперь давайте начнем! Чтобы наша модель понимала, что такое хот-дог, мы должны предоставить ей большие объемы данных для обучения. 🌭

Хотя нам это может показаться очевидным, когда мы видим хот-дог, наша модель ничего не знает об удивительном мире хот-догов! Если мы подадим ему только изображения, подобные левому, он распознает только хот-доги с булочками Wonder Bread и горчицей… но есть много других способов, которыми хот-доги могут выглядеть. Нам нужны различные начинки, булочки, размеры и положения, чтобы модель уловила дух хот-догов.

Сбор данных

Сбор данных может быть самой сложной частью обучения модели машинного обучения, особенно если вы выполняете сложную классификацию объектов. Поиск данных будет зависеть от того, что вы обучаете свою модель видеть, но Google Open Images — хорошее место для начала, содержащее около 9 миллионов изображений с соответствующими метками. Для нашего примера я нашел доступный на Kaggle набор данных хот-дог-не-хот-дог — этот набор данных содержит 249 изображений хот-догов и 249 изображений не хот-догов.

Из консоли Vertex AI просто загрузите свои изображения и пометьте их соответствующим образом. Затем позвольте вашей модели потренироваться! Количество времени, которое это займет, зависит от ваших данных; сколько изображений и сколько ярлыков. Моя модель заняла 2,5 часа, но я тренировал некоторых более 8 часов!

За занавесом

Итак, что именно происходит, пока ваша модель тренируется? Во-первых, вам нужно понять концепцию «нейронной сети». В машинном обучении нейронная сеть — это метод, который учит компьютеры обрабатывать данные способом, вдохновленным человеческим мозгом, — он создает адаптивную систему, которую компьютеры используют, чтобы учиться на своих ошибках и постоянно совершенствоваться¹.

В случае компьютерного зрения сеть принимает входные данные (изображения хот-догов или не хот-догов) и обрабатывает отдельные пиксели каждого изображения. Делая это с сотнями или тысячами предварительно помеченных изображений, он может узнать, что искать. Следовательно, когда мы передаем изображение для тестирования, модель будет сравнивать каждый пиксель этого изображения с каждым изображением хот-дога, которое она когда-либо видела; если тестовое изображение соответствует минимальному порогу похожих пикселей, оно объявляется хот-догом!²

Тестируем нашу модель!

Вот где наша работа окупается — насколько хорошо работает модель?

Vertex AI сгенерировал для нас эту полезную матрицу. Наша модель способна точно маркировать хот-дог в 92% случаев, а не хот-дог — в 88% случаев. Для наших целей этого достаточно. Но если вы хотите повысить точность своей модели, вам следует включить больше изображений и позволить ей больше обучаться. Теперь давайте проверим с некоторыми новыми изображениями…

Вы можете видеть, что модель на 100% уверена, что хот-доги действительно хот-доги! На 99,7% уверен, что изображение пиццы — это не хот-дог, и на 99,9% уверен, что изображение мышки — это не хот-дог. Чтобы показать, что наша модель не совсем идеальна, я протестировал изображение таксы в костюме хот-дога… наша модель на 94,5% уверена, что это хот-дог! 😅 Для большей точности нам нужно будет тренироваться со значительно большим количеством данных. Но я надеюсь, что этот блог послужит хорошей отправной точкой для начинающих, интересующихся машинным обучением! 💻

[1] АМС. Что такое нейронная сеть? https://aws.amazon.com/what-is/neural-network/

[2] Следующая сеть. Руководство по искусственному интеллекту для начинающих: компьютерное зрение и распознавание изображений. https://thenextweb.com/news/a-beginners-guide-to-ai-computer-vision-and-image-recognition Google Google Developers @G