По сей день вокруг машинного обучения не утихает большой ажиотаж. Машинное обучение, искусственный интеллект, 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 — Что нового?». На занятии мы посмотрим на нововведения в языке и применим все это на практике. Регистрация здесь.

Комментарии (4)


  1. 0x7o
    12.01.2022 14:34
    -6

    "Фреймворки машинного обучения" и "PHP-разработчик" мало совместимы


    1. BeMySlaveDarlin
      12.01.2022 19:08
      +12

      Так же, как несовместима разработка и ограниченный склад ума.


  1. SerafimArts
    13.01.2022 00:30

    Странно что забыли про сам TensorFlow. Вроде как самая популярная платформа, пусть и не нативная.


  1. koreychenko
    13.01.2022 12:40
    +2

    В описании Brainy PHP в принципе описано для чего это вообще может быть надо: познакомиться с этим вашим ML без необходимости изучать другой язык программирования.
    В реальном проекте, особенно большом, скорее всего это всё будет вынесено в отдельный сервис со своим API и там уже скорее всего будет не PHP. При этом бизнес-логика и код клиента может быть замечательно написан на PHP, который для этого прекрасно подходит.