![](https://habrastorage.org/getpro/habr/upload_files/c9f/1ca/33c/c9f1ca33c1da41480e393b527140a815.png)
По сей день вокруг машинного обучения не утихает большой ажиотаж. Машинное обучение, искусственный интеллект, Python, Tensor Flow, NumPy — это главные темы для обсуждения во многих группах социальных сетей, посвященных дизайну и разработке программного обеспечения. Многих удивляет тот факт, что PHP на рынке уже больше двух десятилетий, а машинного обучения на PHP встречается не так уж и много. В этой статье я расскажу о некоторых доступных фреймворках для создания приложений машинного обучения с использованием PHP. А начать я предлагаю с базового понимания, что такое искусственный интеллект.
Что такое искусственный интеллект?
Искусственный интеллект -—это область компьютерных наук, которая фокусируется на создании компьютерных программ, стремящихся научить компьютер размышлять или, по крайней мере, работать умнее. Говоря простыми словами, искусственный интеллект, помогает компьютеру решать сложные задачи, непрерывно обучаясь и анализируя проблемы самостоятельно, подобно человеческому мозгу. Главная цель искусственного интеллекта — помочь компьютерным системам самостоятельно развиваться и совершенствоваться за счет приобретенных знаний, подобно тому как люди сталкиваются с проблемами и развивают свои способности к рассуждению, решению задач и самообучению.
Это отличается от традиционного программирования, где условные правила программы четко определены. Машинное обучение использует наборы данных для обучения математических алгоритмов и создания собственных правил/условий на их основе. Используя эти правила, компьютерные системы выполняют сложные задачи, требующие человеческого интеллекта. Проще говоря, машинное обучение — это раздел информатики, объединенный с математикой, статистикой и теорией вероятности.
Библиотеки PHP для машинного обучения
Большинство из нас умеют разрабатывать приложения на PHP и используют этот язык для разработки большинства веб-приложений уже давно. С релизом PHP 7.2, нам стали доступны несколько опций для работы, связанной с машинным обучением и искусственным интеллектом.
RubixML
RubixML — это библиотека машинного обучения высокого уровня, которая предлагает более 40 алгоритмов обучения без учителя для решения компьютерных проблем.
Rubix ML предлагает разработчикам большое количество примеров для изучения и понимания концепций искусственного интеллекта. Мой любимый пример — недвижимость и жилищное строительство. Большинство примеров кода доступны в GitHub-репозитории — их можно скачать совершенно бесплатно.
Для запуска примеров RubixML, доступных в Git-репозитории, нам потребуется последняя версия PHP (не ниже 7.2), а также железо с минимум 1 ГБ выделенной под это оперативной памяти. Производительность машины — один из наиболее важных факторов при работе с программами машинного обучения, а PHP, будучи скриптовым интерпретируемым языком программирования, можно использовать для работы и с небольшими наборами данных. На YouTube есть отличное видео о бенчмарках и оптимизации от разработчика RubixML, с которым вы можете ознакомиться по ссылке:
PHP ML
PHP-ML — это библиотека, разработанная для обработки задач машинного обучения с использованием PHP. Эта библиотека включает алгоритмы машинного обучения, а также API обработки данных, способные на очистку данных и извлечения признаков.
Я согласен, для многих разработчиков PHP — не самый очевидный вариант для машинного обучения, поскольку он всегда был нацелен на разработку веб-приложений.
Самые типичные примеры, которые могут быть созданы с использованием php-ml, это приложения на основе искусственного интеллекта, способные выполнять простые задачи, такие как определение спама в электронных письмах или даже прогнозирование негативных настроений в обзорах и сообщениях с помощью анализа тональности текста.
Библиотека php-ml не может похвастаться широким набором алгоритмов, но включает в себя большинство базовых, таких как классификация, анализ тональности, нейронные сети. Для приложений, которые не могут позволить себе затраты, связанные со сложной аппаратурой и платформами разработки программного обеспечения, и которым достаточно простых прогнозов и анализа данных — php-ml станет идеальным решением.
Brainy PHP
По словам создателя Brainy, это очень простой PHP-класс для создания нейронной сети. Эта библиотека написана разработчиком для веб-разработчиков, которые являются новичками в области искусственного интеллекта и просто хотят изучить его концепции без дополнительных затрат на изучение дополнительных языков, таких как R, Python и других.
Заключение
Некоторые алгоритмы и библиотеки выглядят очень мощными, но их сложные требования к конфигурации системы или языки программирования могут затянуть работу на проектами. Для компаний с небольшими командами, в которых нет инженеров по машинному обучению или их инженерам не хватает опыта, с Php-ml или RubixML кривая обучения проста и экономична по сравнению со сложными библиотеками и алгоритмами.
Как мы уже упоминали ранее, извлечение и обработка данных — наиболее важный аспект приложений машинного обучения и искусственного интеллекта. Некоторым приложениям требуется обрабатывать не гигабайты, да, вы не ослышались, не гигабайты, петабайты данных и выполнять интенсивные вычисления с этими наборами данных. Для приложений, требующих больших наборов данных и серьезных вычислений, PHP не является правильным выбором. Однако для небольших приложений, использующих небольшие наборы данных размером от нескольких мегабайт, для решения проблем машинного обучения можно использовать PHP.
Материал подготовлен в рамках курса «PHP Developer. Professional».
Всех желающих приглашаем на бесплатное demo-занятие «PHP 8.1 — Что нового?». На занятии мы посмотрим на нововведения в языке и применим все это на практике. Регистрация здесь.