Что такое машинное обучение в облаке?

Машинное обучение - это программирование машины таким образом, что «она» приобретает новые навыки или адаптирует свой текущий набор навыков к новым ситуациям.

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

Введение

Облачный поток данных Google и облачное машинное обучение Google легко использовать для обучения и реализации специализированных моделей машинного обучения классификации изображений. Google реализовал несколько API на основе машинного обучения. Это Natural Language API, Cloud Vision API, Dialog-flow API, Cloud Speech API, Translation API.

Мы можем легко использовать Google Cloud Vision API для классификации изображений с помощью машинного обучения, и это хорошо известная служба API для классификации изображений и распределения их по определенным категориям и нескольким распространенным вариантам использования в нескольких отраслях. Этот API включает предварительно обученные и предварительно созданные модели машинного обучения. Другие пользователи, у которых есть особые требования (например, распознавание объектов в камере), могут более точно обучать и обслуживать другую модель с помощью Google Cloud ML.

В этой статье я пытаюсь разработать простую модель машинного обучения в облачном машинном обучении. Я использовал здесь довольно простые и меньшее количество помеченных цветочных изображений в качестве набора данных. Мы можем использовать любой набор данных. Единственная цель использования этого набора данных - легко объяснить.

Я предоставил ссылку на файл CSV здесь. Этот файл CSV содержит URL-адреса ярлыков и изображений. Обычно можно создать два набора данных, вызывая набор данных для обучения (90%) и набор данных оценки (10%). Затем после того, как я разделил данные на 2 файла. Это набор_данных и набор_данных_оценки.

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

Здесь я упомянул цветы и их идентификаторы.

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

Предварительная обработка набора данных

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

Здесь мы обрабатываем каждое изображение для создания представления характеристик изображения (это также называется встраиванием) в виде k-мерного вектора с плавающей запятой (здесь 2048 измерений). В предварительную обработку изображений входит несколько вещей. Они есть,

● Преобразование формата изображения.

● Изменение размера изображения.

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

После этого - output_path запишет окончательный результат в указанный каталог.

Набор данных о цветах содержит около 3600 фотографий цветов, и их можно обрабатывать и обрабатывать на одной машине. Предположим, у вас действительно большой набор данных. Работать с набором данных очень сложно. Мы можем использовать облако Google для предварительной обработки такого огромного набора данных. Мы можем измерить это с помощью одного миллиона выборок данных. Тогда мы сможем понять, что если мы предварительно обработаем этот миллион наборов данных на локальной машине, это определенно займет несколько дней. Но с облаком Google мы справимся за несколько часов. Это изюминка облачных вычислений :) :) :).

Моделирование данных

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

Обучение модели

С помощью этих команд можно запустить обучающий набор данных.

Мы можем следить за ходом тренировки с помощью тензорной доски. Tensorboard - это инструмент, используемый для визуализации параметров обучения, гиперпараметров метрик или любой статики нейронной сети. Согласно приведенному ниже рисунку для нашего набора данных мы получили точность почти 90%.

Прогнозирование изображения

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

Развертывание и использование обученной модели

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

Здесь создается запрос, а формат запроса - JSON.

Также мы можем использовать команду lie для кодирования большого количества фотографий в один запрос JSON. Я упомянул его код ниже в images_to_json.py.

Я выбрал изображение цветка из набора Assessment_dataset. Тогда после мы получим следующий ответ.

Теперь видно, что оценка составляет 0,9999. И правильно выбрал ID категории (Тюльпан) как 4. Большое спасибо.

Вы можете скачать полный код здесь.

Заключение

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

Удачного кодирования :) :) :)