Нейронная сеть на php пример

Построение нейронных сетей в php используя FANN, пример реализации

Пример. Распознавание языка текста на странице

Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.

Начнем с установки FANN

Пример, установки привожу для Ubuntu.

1) Нужно установить пакеты libfann1 и libfann1-dev

2) Добавить поддержку fann в php
У меня стоит Apache и установлен модуль php5-dev, поэтому я делаю так

Если при компиляции появиться ошибки и среди них будет вот такая

fann.c:393: error: “zif_fannOO___set” undeclared (first use in this function)

то следует отредактировать файл php_fann.h и за комментировать строчку 28 #define PHP_FANN_OO 1
После этого заново скомпилировать.

В итоге у нас генерируются модули которые нужно подключить к php

И в php.ini дописать

Перегрузили апач и проверили что все ок

Решение задачи

Для этого нужно выполнить 2 шага:
1) Обучить сеть (первый листинг)
2) И использовать готовую модель для классификации (второй листинг)

Приведу пример для первого этапа и сразу укажу ссылку на документацию

Код я максимально снабдил комментариями, что бы было понятно что к чему и не разбирать его отдельно.

В коде выше мы только сгенерили модель. А теперь проверим ее в деле, код ниже анализирует текст и выдает оценку принадлежности к тому или иному языку.

Результат

Наша модель сгенерировала следующие ответы по текстам.
В первом случае модель решила что ей на вход передали английский язык (98%) и она права

Во втором тексте она приняла решение в пользу французского и снова оказалась права

Третий текст она тоже правильно распознала, как польский

Некоторые пользователи жалуются что нейронные сети выдают вероятности, а не конкретный ответ. Для тех кто в танке добавлю, что в нашем мире все основано на вероятностях. За правильный ответ нужно считать тот который верен хотя бы на 90%, если меньше то сеть нужно до обучать, что бы улучшить классификацию.

Не смотря на такую простую систему нейронная сеть дает хорошие показатели. Можно сделать n-граммы и по ним классифицировать, это будет еще надежнее, можно оба варианта комбинировать. Нейронные сети мощный инструмент, нужно лишь научиться им пользоваться

Источник

Нейронная сеть на php пример

Суть задачи
С помощью нейронных сетей я постарался определить безопасно ли плавать в море, с учетом следующих параметров: время суток (день/ночь), туман (задается дробным числом), волны (есть/нет), акулы (есть/нет).

В следующих строчках входные и выходные данные чередуются (сначала входные, а затем выходные).

Теперь осталось создать еще один php-файл для проверки того, как обученная нейронная сеть решает нашу задачу. Код в этом файле должен быть следующим: Результаты работы нейронной сети вы можете видеть в таблице:

День (-1) / Ночь (1)Туман:Волны: есть (1), нет (-1)Акулы: есть (1), нет (-1)Опасно (1), нет (-1)
10,00-1-1-0.97
10,60-1-11.00
10,10-1-1-0.86
10,45-1-10.95
10,101-10.99
-10,101-1-0.98
-10,10-111.00

Наглядный пример работы нейронной сети с одним из наборов входных данных: Нейронная сеть на php пример. Смотреть фото Нейронная сеть на php пример. Смотреть картинку Нейронная сеть на php пример. Картинка про Нейронная сеть на php пример. Фото Нейронная сеть на php примерДля удобства выкладываю исходники.

Дополнение. О том как установить FANN в Линуксе
Я работал с FANN в Linux Mint, соответственно все нижеизложенное подойдет и для другой Debian-системы.

В первую очередь нужно установить библиотеку libfann, если она не установлена. Затем нужно установить php-pear и php-dev той же командой (apt install).

Источник

Построение нейронных сетей в php используя FANN, пример реализации

Передо мной предстала задача анализа большого количества информации и выявления закономерностей. И первое, что пришло в голову — построить математическую модель с помощью нейронной сети.

Поскольку данные для анализа формируются в php и мне этот язык сейчас ближе всего, то искалась библиотека с интерфейсом для php. В связи с этим мне порекомендовали FANN (Fast Artificial Neural Network) — открытое программное обеспечение для построения сетей. У этого решения есть апи для 15 языков, так что почти каждый сможет выбрать что-то для себя.

Пример. Распознавание языка текста на странице

Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.

Начнем с установки FANN

Пример, установки привожу для Ubuntu.

2) Добавить поддержку fann в php

У меня стоит Apache и установлен модуль php5-dev, поэтому я делаю так

Источник

Простой пример использования нейронной сети в PHP

С помощью нейронных сетей я постарался определить безопасно ли плавать в море, с учетом следующих параметров: время суток (день/ночь), туман (задается дробным числом), волны (есть/нет), акулы (есть/нет).

Для обучения нейронной сети я использовал следующие данные:

День (-1) / Ночь (1)Туман:Волны: есть (1), нет (-1)Акулы: есть (1), нет (-1)Опасно (1), нет (-1)
-10,50-1-1-1
-10,10-1-1-1
-10,001-1-1
10,00-1-1-1
10,00111
10,301-11
10,001-11
10,50-1-11
-10,50-111
-10,00-111

Реализация
Для начала создадим файл данных, я его назвал sea.data. В этот файл внесем параметры из таблицы.

В следующих строчках входные и выходные данные чередуются (сначала входные, а затем выходные).

Создадим php-файл, в котором обучим нейронную сеть решать нашу задачу. Код в этом файле должен быть следующим:

Теперь осталось создать еще один php-файл для проверки того, как обученная нейронная сеть решает нашу задачу. Код в этом файле должен быть следующим:

Результаты работы нейронной сети вы можете видеть в таблице:

День (-1) / Ночь (1)Туман:Волны: есть (1), нет (-1)Акулы: есть (1), нет (-1)Опасно (1), нет (-1)
10,00-1-1-0.97
10,60-1-11.00
10,10-1-1-0.86
10,45-1-10.95
10,101-10.99
-10,101-1-0.98
-10,10-111.00

Наглядный пример работы нейронной сети с одним из наборов входных данных: Нейронная сеть на php пример. Смотреть фото Нейронная сеть на php пример. Смотреть картинку Нейронная сеть на php пример. Картинка про Нейронная сеть на php пример. Фото Нейронная сеть на php пример

Дополнение. О том как установить FANN в Линуксе
Я работал с FANN в Linux Mint, соответственно все нижеизложенное подойдет и для другой Debian-системы.

В первую очередь нужно установить библиотеку libfann, если она не установлена.

Затем нужно установить php-pear и php-dev той же командой (apt install).

А также само расширение FANN для PHP:

Читайте также

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально…

Иногда при обработке с помощью PHP больших и не очень данных, можно словить досадную ошибку посреди выполнения скрипта: PHP Fatal…

Команда git cherry-pick позволяет забрать один коммит из другой ветки и вставить его в текущую. В качестве параметра передаётся идентификатор…

Источник

Машинное обучение и нейронные сети на PHP: библиотека PHP-ML

Нейронная сеть на php пример. Смотреть фото Нейронная сеть на php пример. Смотреть картинку Нейронная сеть на php пример. Картинка про Нейронная сеть на php пример. Фото Нейронная сеть на php пример

Согласно Википедии, машинное обучение (англ. Machine Learning) — обширный подраздел искусственного интеллекта, математическая дисциплина, использующая разделы математической статистики, численных методов оптимизации, теории вероятностей, дискретного анализа, и извлекающая знания из данных.

Это словосочетание, ровно как и «Нейронные сети», на слуху уже 2 года, и, как заявляют разнообразные эксперты, именно за этими вещами будущее.

Принято считать, что для всех этих проявлений искусственного интеллекта нужно использовать специальные языки, как, например, R или хотя бы Python. Но это не так.

PHP-ML — полноценная библиотека для работы с искусственным интеллектом, разработанная командой PHP-AI. В последнее время PHP-ML стала одной из самых популярных на GitHub. Как говорят сами создатели, пакет является «свежим подходом к машинному обучению на PHP». Из требований — установленная версия интерпретатора не ниже 7.0. Добавить разработку к своему проекту можно через Composer:

Простой пример по работе с классификацией

Также в отдельном репозитории доступны и другие примеры:

Конечно, PHP-ML не избавит вас от необходимости изучения некоторых теоретических данных (например, ознакомьтесь с нашей подборкой материалов для изучения машинного обучения), но если вы разрабатываете веб-проект, то использование машинного обучения в нем стало как никогда просто.

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *