Введение
Тип программного обеспечения
Программное обеспечение нейронных сетей используется для моделирования, исследования, разработки и применения искусственных нейронных сетей, программных концепций, адаптированных из биологических нейронных сетей, и в некоторых случаях – более широкого спектра адаптивных систем, таких как искусственный интеллект и машинное обучение.
Симуляторы
Симуляторы нейронных сетей – это программные приложения, предназначенные для моделирования поведения искусственных или биологических нейронных сетей. Они ориентированы на один или ограниченное число конкретных типов нейронных сетей. Как правило, это автономные приложения, не предназначенные для создания универсальных нейронных сетей, которые можно интегрировать в другое программное обеспечение. Симуляторы обычно оснащены встроенными средствами визуализации для отслеживания процесса обучения. Некоторые из них также визуализируют физическую структуру нейронной сети.
Симуляторы исследований
Исторически наиболее распространенный тип программного обеспечения для нейронных сетей был предназначен для исследования структур и алгоритмов нейронных сетей. Основная цель этого типа программного обеспечения – посредством моделирования получить более глубокое понимание поведения и свойств нейронных сетей. В настоящее время в изучении искусственных нейронных сетей симуляторы в значительной степени уступили место более универсальным средам разработки, основанным на компонентном подходе, в качестве исследовательских платформ. К наиболее часто используемым симуляторам искусственных нейронных сетей относятся Stuttgart Neural Network Simulator (SNNS) и Emergent. Однако при изучении биологических нейронных сетей программное обеспечение для моделирования остается единственным доступным методом. В таких симуляторах исследуются физические, биологические и химические свойства нервной ткани, а также электромагнитные импульсы между нейронами. К наиболее часто используемым симуляторам биологических сетей относятся Neuron, GENESIS, NEST и Brian.
Симуляторы анализа данных
В отличие от исследовательских симуляторов, симуляторы анализа данных предназначены для практического применения искусственных нейронных сетей. Их основная задача – это интеллектуальный анализ данных и прогнозирование. Симуляторы анализа данных обычно обладают средствами предварительной обработки данных. В отличие от более универсальных сред разработки, симуляторы анализа данных используют относительно простую статическую нейронную сеть, которую можно конфигурировать. Большинство симуляторов анализа данных, представленных на рынке, в качестве ядра используют сети обратного распространения ошибки или самоорганизующиеся карты. Преимущество такого программного обеспечения заключается в его относительной простоте использования. Neural Designer – один из примеров симулятора анализа данных.
Окружающая среда разработки
Среды разработки для нейронных сетей отличаются от описанного выше программного обеспечения главным образом по двум причинам: они позволяют разрабатывать собственные типы нейронных сетей и поддерживают развертывание нейронной сети вне этой среды. В некоторых случаях они обладают расширенными возможностями предварительной обработки, анализа и визуализации данных.
Основанный на компоненте
Более современный тип сред разработки, который в настоящее время пользуется популярностью как в промышленности, так и в науке, основан на компонентном подходе. Нейронная сеть конструируется путем соединения адаптивных фильтрующих компонентов в потоке последовательной обработки данных. Это обеспечивает большую гибкость, поскольку можно создавать как пользовательские сети, так и использовать собственные компоненты в сети. Во многих случаях это позволяет комбинировать адаптивные и неадаптивные компоненты для совместной работы. Управление потоком данных осуществляется системой управления, которая, как и алгоритмы адаптации, может быть заменена. Важной особенностью является возможность развертывания. С появлением компонентных фреймворков, таких как .NET и Java, среды компонентной разработки способны развертывать разработанные нейронные сети в этих фреймворках в виде наследуемых компонентов. Кроме того, некоторые программные средства могут развертывать эти компоненты на различных платформах, включая встраиваемые системы. К средам компонентной разработки относятся: Peltarion Synapse, NeuroDimension NeuroSolutions, Scientific Software Neuro Laboratory и интегрированное программное обеспечение LIONsolver. Бесплатные среды компонентной разработки с открытым исходным кодом включают Encog и Neuroph.
Критика
Недостатком сред разработки, основанных на компонентном подходе, является то, что они сложнее, чем симуляторы. Для их полноценного использования требуется больше обучения, а разработка с их применением – более трудоемка.
Нейронные сети по заказ
Большинство доступных реализаций нейронных сетей, тем не менее, представляют собой собственные разработки на различных языках программирования и платформах. Базовые типы нейронных сетей относительно легко реализовать напрямую. Кроме того, существует множество программных библиотек, содержащих функциональность нейронных сетей, которые можно использовать в собственных разработках (например, TensorFlow, Theano и другие, обычно предоставляющие интерфейсы для языков, таких как Python, C++, Java).
Стандарты
Для того, чтобы модели нейронных сетей могли использоваться разными приложениями, необходим общий язык. Язык разметки прогнозных моделей (PMML) был предложен для решения этой задачи. PMML – это язык на основе XML, который предоставляет приложениям возможность определять и обмениваться моделями нейронных сетей (и другими моделями интеллектуального анализа данных) между приложениями, совместимыми с PMML. PMML обеспечивает приложениям независимый от разработчика способ определения моделей, устраняя проблемы с проприетарными технологиями и несовместимостью при обмене моделями между приложениями. Это позволяет пользователям разрабатывать модели в приложении одного разработчика и использовать приложения других разработчиков для визуализации, анализа, оценки или дальнейшего использования этих моделей. Ранее это было очень сложно, но с PMML обмен моделями между совместимыми приложениями стал простым и понятным.
Потребители и производители PMML
Для производства и использования PMML предлагается ряд продуктов. Этот постоянно расширяющийся список включает следующие продукты, работающие с нейронными сетями: R: генерирует PMML для нейронных сетей и других моделей машинного обучения с помощью пакета pmml. SAS Enterprise Miner: генерирует PMML для различных моделей интеллектуального анализа данных, включая нейронные сети, линейную и логистическую регрессию, деревья решений и другие модели интеллектуального анализа данных. SPSS: генерирует PMML для нейронных сетей, а также для многих других моделей интеллектуального анализа данных. STATISTICA: генерирует PMML для нейронных сетей, моделей интеллектуального анализа данных и традиционных статистических моделей.
R: produces PMML for neural nets and other machine learning models via the package pmml. SAS Enterprise Miner: produces PMML for several mining models, including neural networks, linear and logistic regression, decision trees, and other data mining models. SPSS: produces PMML for neural networks as well as many other mining models. STATISTICA: produces PMML for neural networks, data mining models and traditional statistical models.