Если вы энтузиаст машинного обучения и хотите начать свое путешествие в мир искусственного интеллекта и машинного обучения, то, скорее всего, вы прошли несколько курсов на Coursera или во время учебы. Но все эти курсы более-менее теоретические и не учат, как использовать разные библиотеки машинного обучения для построения собственного пайплайна.
Этот пост проведет вас через ваш первый проект в области машинного обучения или глубокого обучения.
Существует множество библиотек с открытым исходным кодом для создания модели машинного обучения для Python, но я познакомлю вас с наиболее полезными из них:
- pytorch: https://pytorch.org/
- тензорный поток: https://www.tensorflow.org/
- scikit учиться: https://scikit-learn.org/stable/
- Нумпи: https://numpy.org/
«Мне не нужно знать все. Мне просто нужно знать, где его найти, когда он мне понадобится».
Чтобы создать свой первый конвейер машинного обучения, вам не нужно знать все в деталях. Просто представление о потоке поможет. Есть в основном только 3 процесса, которые вы должны синхронизировать друг с другом, чтобы создать рабочую лошадку для вашей задачи. Библиотека будет использоваться для предварительной обработки данных, обучения некоторой модели машинного обучения и использования обученной модели для прогнозирования новых данных. Вот и все! Вам не нужно вдаваться в подробности какого-либо из процессов, а просто пройтись по ним целиком.
Ниже приведена документация по библиотеке молнии pytorch.
Есть в основном два модуля, которые предлагает библиотека.
- Модуль молнии:
- Вычисления (инициализация): это называется конструктором и позволяет классу инициализировать атрибуты этого класса.
- Цикл обучения (training_step): этот метод создает цикл обучения. На самом деле это модель, и мы можем вызвать здесь множество хорошо определенных моделей, которые импортируются/загружаются в конструкторе как переменная. Это полезно, когда нам нужны разные модели для разных вариантов использования.
- Цикл проверки (validation_step): этот метод представляет собой тот же цикл, что и в цикле обучения, который исключает обратное отслеживание модели.
- Тестовый цикл (test_step): этот метод также работает так же, как цикл проверки, но имеет некоторые отличия, о которых мы поговорим позже.
- Оптимизаторы (configure_optimizers): этот метод работает над определением конфигураций алгоритма и имеет возможность сходиться к решению локального минимума/оптимума с разной скоростью в соответствии с разными критериями. Это на самом деле очень глубоко в математике и не касается людей, которые просто хотят создать работающий конвейер.
- train_dataloader/val_dataloader/test_dataloader: этот метод предназначен для загрузки данных перед каждым этапом обучения для обучения/проверки/тестирования.
2. Тренер:
Это самый простой модуль, который можно использовать. Вам просто нужно указать количество классов, и все остальные аргументы будут по умолчанию.
Теперь мы можем записать данные в модель. Это делается путем вызова аргумента fit в модуле тренера.
Вы увидите, как начнется обучение.
После завершения этапа обучения вы увидите, что библиотека создала несколько папок и сохранила гиперпараметры в файле для этапа вывода. Этот шаг является третьим шагом, который мы назвали прогнозированием новых данных.
Мы рассмотрим вывод в другой статье. До тех пор я буду улучшать свою статью со временем и делать ее более информативной и находчивой.