Сегодня мы собираемся представить 10 проектов машинного обучения с открытым исходным кодом, подходящих для начинающих программистов ИИ. Чтобы начать участвовать в проекте с открытым исходным кодом, необходимо выполнить некоторые предварительные условия:
1. Изучите язык программирования. Поскольку в проектах с открытым исходным кодом для участия в разработке вам необходимо писать код, вам необходимо изучить любой язык программирования. Выучить другой язык на более позднем этапе легко, в зависимости от потребностей проекта.
2. Знакомство с системами контроля версий: эти программные инструменты помогают хранить все изменения в одном месте, чтобы их можно было отозвать на более позднем этапе, когда это необходимо. По сути, они отслеживают каждую модификацию исходного кода с течением времени. Некоторые из популярных систем контроля версий — Git, Mercurial, CVS и т. д. Среди них Git является наиболее популярным и широко используемым в отрасли.
1. Caliban
Это проект машинного обучения технологического гиганта Google. Он используется для разработки исследовательских рабочих процессов и блокнотов машинного обучения в изолированной и воспроизводимой вычислительной среде. Это решает большую проблему. Когда разработчики создают проекты по науке о данных, часто бывает сложно создать тестовую среду, которая может продемонстрировать проект в реальной жизни. Таким образом, Caliban является потенциальным решением этой проблемы.
Caliban позволяет легко разрабатывать любую модель машинного обучения локально, запускать код на машине, а затем пробовать точно такой же код в облачной среде для выполнения на большей машине. В результате исследовательские рабочие процессы Dockerized просты как в локальной среде, так и в облаке.
2. Kornia
Kornia — это библиотека компьютерного зрения для PyTorch. Он используется для решения некоторых общих задач компьютерного зрения. Kornia построена на PyTorch и полагается на его эффективность и мощность процессора для выполнения сложных функций.
Kornia — это набор библиотек для обучения моделей нейронных сетей и выполнения преобразований изображений, фильтрации изображений, обнаружения границ, эпиполярной геометрии, оценки глубины и многого другого.
3. Analytics Zoo
Analytics Zoo — это унифицированная платформа для анализа данных и искусственного интеллекта, которая объединяет программы TensorFlow, Keras, PyTorch, Spark, Flink и Ray в один интегрированный конвейер. Это может эффективно масштабироваться от ноутбуков до больших кластеров для обработки больших данных. Этот проект поддерживается Intel-аналитикой.
Analytics Zoo помогает решениям ИИ:
- Помогает легко прототипировать модели ИИ.
- Масштабирование эффективно управляется.
- Помогает добавлять в конвейер машинного обучения автоматизированные процессы, такие как разработка функций, выбор модели и т. д.
4. MLJAR Автоматизированное машинное обучение человека
Mljar — это платформа для создания прототипов моделей и развертывания сервисов. Чтобы найти лучшую модель, Mljar ищет различные алгоритмы и выполняет настройку гиперпараметров. Он обеспечивает интересные быстрые результаты, выполняя все вычисления в облаке и в конечном итоге создавая ансамблевую модель. Затем он создает отчет по обучению AutoML. Разве это не круто?
Mljar эффективно обучает модели для бинарной классификации, многоклассовой классификации, регрессии.
Он предоставляет два интерфейса:
- Он может запускать модели ML в вашем веб-браузере.
- Предоставляет оболочку Python для Mljar API.
Отчет, полученный от Mljar, содержит таблицы с информацией об оценке каждой модели и времени, необходимом для обучения каждой модели. Производительность отображается в виде диаграмм рассеяния и диаграмм, поэтому легко визуально проверить, какие алгоритмы работают лучше всего.
5.DeepDetect
DeepDetect — это API машинного обучения и сервер, написанный на C++. Если вы хотите использовать самые современные алгоритмы машинного обучения и хотите интегрировать их в существующие приложения, тогда DeepDetect для вас.
DeepDetect поддерживает широкий спектр задач, таких как классификация, сегментация, регрессия, обнаружение объектов, автокодировщики. Он поддерживает контролируемое и неконтролируемое глубокое обучение изображений, временных рядов, текста и других типов данных. Но DeepDetect полагается на внешние библиотеки машинного обучения, такие как:
- Библиотеки глубокого обучения: Tensorflow, Caffe2, Torch.
- Библиотека повышения градиента: XGBoost.
- Кластеризация с использованием T-SNE.
6. Dopamine
Dopamine — это проект с открытым исходным кодом от технологического гиганта Google. Он написан на Питоне. Это исследовательская структура для быстрого прототипирования алгоритмов обучения с подкреплением.
Принципы дизайна допамина:
- Простые эксперименты: Dopamine позволяет новым пользователям легко проводить эксперименты.
- Он компактный и надежный.
- Это также помогает с воспроизводимостью результатов.
- Он гибкий, что позволяет новым пользователям легко опробовать новые исследовательские идеи.
7. TensorFlow
Tensorflow — один из самых известных, популярных и наиболее часто используемых проектов с открытым исходным кодом в области машинного обучения на GitHub. Это программная библиотека с открытым исходным кодом для численных вычислений с использованием графов потоков данных. У него очень простой в использовании интерфейс Python, и нет интерфейсов, которые не нужны в других языках для построения и выполнения вычислительных графов.
TensorFlow предоставляет стабильные API-интерфейсы Python и C++. У Tensorflow есть несколько удивительных вариантов использования, таких как:
- в распознавании речи/звука
- Приложение текстовой библиотеки
- Идентификация изображения
- Обнаружение видео
- …Есть намного больше!
Когда речь заходит о технологии распознавания изображений и обнаружения видео, мы должны упомянуть технологию ИИ+видео, которая в настоящее время очень популярна в различных областях.Технология обнаружения ИИ и интеллектуальное распознавание интегрированы в различные сценарии видеоприложений, такие как: мониторинг безопасности, обнаружение лиц в видео, Статистика потоков людей, опасное поведение (лазание, падение, толкание и т. д.), обнаружение и идентификация и т. д. Типичным примером является облачный сервис видеообъединения EasyCVR, который имеет ИИ-распознавание лиц, распознавание номерных знаков, голосовую внутреннюю связь, управление PTZ, звуковую и световую сигнализацию, анализ видео наблюдения и возможности агрегации данных.
8.PredictionIO
Он построен на современном стеке с открытым исходным кодом. Этот сервер машинного обучения предназначен для специалистов по обработке и анализу данных, которые могут создавать механизмы прогнозирования для любой задачи машинного обучения. Некоторые из его удивительных особенностей:
- Это помогает быстро создать и развернуть движок как веб-службу на настраиваемых рабочих шаблонах.
- После развертывания в качестве веб-службы он может отвечать на динамические запросы в режиме реального времени.
- Он поддерживает библиотеки машинного обучения и обработки данных, такие как OpenNLP, Spark MLLib.
- Это также упрощает управление инфраструктурой данных.
9.Scikit-learn
Это библиотека бесплатных инструментов машинного обучения на основе Python. Он предоставляет различные алгоритмы классификации, регрессии, алгоритмы кластеризации, включая случайный лес, повышение градиента, DBSCAN.
Это построено поверх SciPy, который должен быть предварительно установлен, чтобы можно было использовать sci-kit learning. Так же предлагает следующие модели:
- Комплексный подход
- Извлечение признаков
- Настройка параметров
- Многообразное обучение
- Выбор функций
- Снижение размерности
Примечание. Чтобы изучить scikit-learn, следуйте документации:
scikit-learn.org/stable/
10. Pylearn2
Pylearn2 — самая популярная библиотека машинного обучения среди всех разработчиков Python. Он основан на Теано. Вы можете писать его плагины, используя математические выражения, в то время как Theano нужно оптимизировать и стабилизировать.
Он имеет некоторые замечательные функции, такие как:
- «Алгоритм обучения по умолчанию», используемый для обучения самой модели.
- Критерии оценки модели
- Счет матча
- перекрестная энтропия
- логарифмическая вероятность
- Предварительная обработка набора данных
- Нормализация контраста
- ZCA отбеливание
- Извлечение патча (для реализации алгоритмов, подобных свертке)