Нейронные сети очень мощны для выполнения предиктивного анализа и решения аналитических задач. Они широко используются для классификации данных, чтобы обнаруживать закономерности и делать прогнозы. Бизнес-кейсы варьируются от классификации и защиты данных клиентов до классификации текста, поведения потребителей и многих других задач.
Чтобы показать, как создать приложение для выполнения анализа данных для решения задач классификации, команда Windows ML создала руководство «Анализ данных с помощью Pytorch и машинного обучения Windows». В этом руководстве показано, как обучить модель нейронной сети на основе табличного набора данных с помощью библиотеки PyTorch и как развернуть эту модель в приложении машинного обучения Windows, которое может работать на любом устройстве Windows.
Хотя в этом руководстве используется набор данных в форматах Excel или csv, описанный в нем процесс работает для любого табличного набора данных и научит вас, как выполнять прогнозы и использовать возможности Windows ML для вашего собственного уникального бизнес-кейса.
Обучите модель регрессии с несколькими метками с помощью PyTorch
В руководстве демонстрируются эти возможности анализа данных путем прогнозирования вида цветка ириса на основе его числовых измерений. Для обучения мы использовали известный набор данных Фишера, который включает записи о видах ирисов.
Вы можете использовать любой другой набор табличных данных для обучения вашей модели и прогнозирования желаемого результата. Однако важно указать входные и выходные данные модели на основе вашего набора данных и вашего сценария. В процессе обучения модель будет рассматривать взаимосвязь между входными и выходными данными и научится предсказывать результат.
На последнем этапе подготовки данных вы преобразуете входные и выходные данные модели в тензорный (Tensor) формат, поскольку для моделей машинного обучения требуется тензорное представление значений (многомерный массив). К счастью, очень легко преобразовать входные данные модели в тензоры с помощью PyTorch, используя пакет torch.Tensor PyTorch. В этом руководстве мы преобразуем входные данные набора данных с помощью всего нескольких строк кода.
Чтобы обучить модель нейронной сети, руководство проведет вас через процесс загрузки данных, определения параметров модели, модели и функции потерь, обучения модели на обучающем наборе и проверки модели с помощью набора проверки. В конце процесса обучения вы узнаете, как протестировать модель с помощью тестового набора данных.
Класс нейронной сети Pytorch nn.Module обеспечивает простой способ построения нейронной сети. Вам нужно только определить прямую функцию, так как обратная функция будет определена автоматически.
Изучите руководство, чтобы узнать, как создать обучающую функцию для перебора данных, передачи входных данных в сеть и оптимизации. После нескольких итераций по обучению можно ожидать достижения относительно высокой точности.
Развертывание модели с помощью API машинного обучения Windows
После обучения модели вы можете развернуть ее в приложении машинного обучения Windows, которое может работать на любом устройстве Windows. В руководстве показано, как создать все классы и методы для вызова API-интерфейсов машинного обучения Windows, которые загружают, связывают входные и выходные данные и оценивают вашу модель машинного обучения.
WindowsML API поддерживает все типы функций ONNX четырех описательных классов: тензоры, последовательность, карта и изображение. Это руководство поможет вам определить правильные входные данные на основе требований вашей модели. Чтобы создать тензорный ввод с помощью Windows ML API, вы можете использовать класс TensorFloat для определения 32-битного тензорного объекта с плавающей запятой. Этот класс предоставляет несколько методов для создания тензора - в этом руководстве мы используем метод CreateFromArray для создания входных данных тензора с точным размером, который требуется вашей модели.
Метод CreateFromArray требует двух параметров - массива видов и массива тензорных данных. Сам тензор - это просто список значений - наши данные, а массив видов сообщает вам, как интерпретировать массив данных. Если вы следовали руководству, модель сетевой регрессии, которую вы построили в предыдущей части, имеет четыре входных значения, каждое из которых представляет возможные размеры четырех физических характеристик цветка ириса. Размер пакета определяет количество выборок, которые будут распространяться по сети - в нашем случае размер пакета равен 1. Итак, форма входного тензора равна [1 × 4]. Этот массив видов сообщает вам, что массив данных имеет 2 измерения. Первое измерение имеет длину 1, а второе измерение - длину 4.
Начало работы
Завершив часть кода машинного обучения, вы можете легко интегрировать свою модель с приложением Windows. И если вам нужен ярлык, чтобы увидеть все это в действии, вы можете просмотреть полный образец кода в нашем репозитории GitHub - «Образец анализа данных», чтобы получить доступ к готовому приложению Windows. Это предварительно созданное приложение включает в себя графический интерфейс приложения и код управления пользовательским интерфейсом - все, что вам нужно для тестирования вашей модели!
Просматривая руководство, дайте нам знать, если у вас есть какие-либо предложения или вопросы, оставив отзыв о документации или примерах. Следите за обновлениями в блоге Windows AI!