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

С новой линейкой продуктов AutoML от Google Cloud Platform все кажется возможным, даже если у вас нет опыта в области машинного обучения.

В этом случае я использовал AutoML Vision, чтобы получить данные о задачах Airbus Ship Kaggle, в основном для работы, но также из любопытства, чтобы увидеть, действительно ли новичок хорошо стреляет для игры на игровой площадке Kaggle.

Итак, я не знаю, чего мы ждем ...

  1. Перейдите к Vision на главной странице вашего Google Cloud Project и нажмите «Настроить». Это включит все необходимые API, которые вам нужны для этого проекта.

2. Загрузите данные. Это может занять минуту, так что, может быть, займитесь тренировкой или почитайте книгу ... Если у вас уже загружен собственный набор данных, тогда отлично. Если нет и вам нужны или вы хотите использовать данные для экспериментов, перейдите на страницу конкурса Kaggle Airbus Ship Detection и загрузите данные здесь.

3. Существует несколько различных способов загрузки данных в проект AutoML Vision. Когда вы создаете новый источник данных AutoML, сегмент Google Cloud Storage будет создан в связи с проектом. Если у вас еще нет данных в корзине GCS, вы можете напрямую загрузить эти изображения и папки в новую корзину, которая будет создана (оканчивающаяся на «vcm»). В моем случае данные уже находились в другой корзине в проекте приятеля, поэтому мне пришлось выполнить задание передачи GCS. В любом случае следуйте инструкциям ниже!

Щелкните вкладку «Наборы данных» в своем проекте AutoML после того, как вы активируете все необходимые API-интерфейсы и попадете на «домашнюю страницу» AutoML. В верхнем левом углу нажмите «Новый набор данных». Это приведет вас к экрану выше.

4. В моем случае мне пришлось перенести данные из другого сегмента. AutoML может импортировать изображения тремя разными способами: загружая их с локального компьютера, выбирая файл csv или выбирая импорт изображений позже. Если вы только что загрузили данные из Kaggle или ваши изображения хранятся локально, перейдите к шагу 8.

В моем случае мне пришлось сделать две вещи. Во-первых, мне нужно было выполнить задание передачи хранилища GCS, чтобы импортировать мои фотографии из одной корзины GCS в другую. Затем мне пришлось создать csv (из старого) и использовать скрипт Python, чтобы изменить путь к файлу облачного хранилища. Я расскажу обо всех этих шагах - получите доступ к образцу csv и скрипту python, который я использовал на моей странице Github здесь.

5. Давайте на секунду вернемся в раздел Google Cloud Storage в консоли. Обратите внимание, что после открытия проекта AutoML создается новый сегмент. В моем случае это называется «hips-automl-vision-vcm ». Другая корзина на этом снимке экрана - это корзина, которая содержит все данные о кораблях («hips-automl-vision »).

6. Чтобы создать задание переноса, которое переместит все мои данные из одной корзины в другую, нажмите «Перенос» под опцией меню «Браузер» в левой части окна консоли GCS выше. Вы попадете на страницу ниже. Щелкните «Создать перевод».

Вы можете создавать задания передачи в Google Cloud Storage из других источников данных за пределами корзины Google Cloud Storage. Как вы можете видеть ниже, варианты включают в себя корзины Amazon S3 или даже получение данных по URL-адресу.

В этом случае я выбрал исходную корзину с моими данными в качестве источника и новую корзину «vcm» в качестве места назначения.

Выберите «Выполнить сейчас» и нажмите «Создать».

7. Теперь вам нужно создать CSV-файл, который находится в новой корзине GCS «vcm». Этот файл csv просто содержит один столбец с эквивалентом пути к файлу gs: //, который указывает на все изображения, которые вы хотите импортировать. Ниже приведен мой пример:

Чтобы создать свой собственный, вы можете сделать это вручную или просто загрузить мой пример копии из моего Github здесь и запустить следующий простой скрипт Python, чтобы найти и заменить мой путь к файлу на имя вашей корзины GCS. Если вы назвали его так же, то вы можете просто повторно использовать этот csv!

import re
# open your csv and read as a text string
with open('train.csv', 'r') as f: #remember to replace filepath here!
    my_csv_text = f.read()
find_str = 'airbus_ship_detect'  #replace with your original bucket name
replace_str = 'ships-automl-vision-vcm'   #replace with the destination bucket name that AutoML created
# substitute
new_csv_str = re.sub(find_str, replace_str, my_csv_text)
# open new file and save
new_csv_path = './train-new.csv' # or whatever path and name you want
with open(new_csv_path, 'w') as f:
    f.write(new_csv_str)

Для тех, кому нужно напоминание, не забудьте заменить мой путь к файлу выше, где вы сохранили csv (см. Строку с комментариями), а также замените имена сегментов GCS тем, что вы назвали своими сегментами хранилища.

Загрузка фотографий займет некоторое время, в зависимости от того, сколько у вас изображений. С набором данных Kaggle Airbus Ships это заняло около 2 минут.

8. Теперь вы должны увидеть страницу, которая выглядит примерно так, со всеми только что загруженными вами фотографиями:

Нажмите «Добавить метку», чтобы начать ввод меток, которые вы будете использовать для своих данных. В случае набора данных Airbus Ships проблема заключается в простом вопросе «Корабль / Нет Корабль». Задача маркировки включала маркировку изображений с кораблями как таковыми, а изображения в наборе данных, которые не включали кораблей, как «Нет корабля». Чтобы пометить изображение, либо выберите изображение, чтобы увеличить его, и добавить метку на правой боковой панели, либо вы можете выбрать несколько изображений за раз, если вы уверены в плитках миниатюр, к которым нужно добавить метку:

Если вы работаете с набором данных Airbus Ships, вас, вероятно, беспокоит маркировка всех 104 000 изображений поездов, включенных в папку поездов. «Но ты же сказал, что это будет сделано за один день!»… Да, я сделал! То, что мне и моей соседке по комнате удалось сделать (ну, в основном, ей), так это проверить, сколько изображений нужно пометить, чтобы получить точность выше 90%. Хорошая новость заключается в том, что 1500 изображений - это то место, где вы начинаете колебаться между точностью 94% -95%, и я уверен, что вы бы достигли точности, близкой к 98%, если бы продолжали маркировать изображения.

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

Обучить модель в AutoML Vision так же просто, как нажать кнопку, но у вас есть несколько вариантов, как вы можете видеть ниже:

Щелкните вкладку «Обучение» рядом с вкладкой «Изображения», с которой вы только что работали, чтобы пометить свои изображения. Ваш экран не будет похож на мой выше (поскольку я уже обучал модели), но вы все равно увидите всплывающее окно.

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

Затем вы можете выбрать из небольшой группы вариантов тренировки. Вы можете тренировать свою модель в течение одного часа бесплатно, а затем увеличить до 24 часов. Посмотрите на AutoML Vision Pricing здесь, чтобы понять, сколько это стоит - если у вас большой набор данных, где точность чрезвычайно важна для вас (например, если вы строите модели для производства IRL), я бы порекомендовал этот вариант.

Когда вы выбираете вариант, который лучше всего подходит для вас (в случае набора данных о кораблях Airbus, я выбрал бесплатный вариант), нажмите «Начать обучение».

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

AutoML Vision дает вам полную оценку вашей модели, выходящую за рамки того, что вы видите выше. Щелкните «Просмотреть полную оценку»:

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

Если эти показатели не имеют для вас большого значения или вы только начинаете заниматься машинным обучением, обратитесь к этому руководству для начинающих по AutoML. Хотя некоторые определения терминов здесь кажутся приемлемыми, для новичка могут потребоваться дополнительные разъяснения по таким темам, как точность и отзыв. Изучите, что они означают в реальном мире, а также изучите такие темы, как справедливость машинного обучения, которая несколько раз упоминается в руководстве.

9. Пришло время протестировать вашу модель. Что делает AutoML под капотом, чего пользователь не осознает в процессе обучения, так это автоматически сегментирует / откладывает часть данных для выполнения тестов. Если вы хотите вручную сегментировать данные от обучающих до тестовых наборов данных, вы также можете сделать это в AutoML. Для наших целей сегодня мы загрузим пару фотографий из набора данных Airbus Ships (в папке «test» из данных, которые вы загрузили с веб-сайта Kaggle), чтобы увидеть, как работает наша модель.

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

Итак… поехали! Модель, обученная за один день с помощью Google Vision API, в качестве основы для вашей пользовательской модели.