В настоящее время медицинские информационные системы представлены широким кругом решаемых задач, в том числе и задачей автоматизированной медицинской диагностики. При этом медицинские диагностические системы могут быть построены на основе нейронных сетей и/или экспертных систем.
В рамках текущего исследования перед авторами встала задача выбора оптимального инструментального средства для реализации медицинской диагностической системы на базе нейронных сетей. В результате анализа литературы по теме, были определены следующие базовые классификации средств создания нейросетей.
Классификация по способу распространения. Как и любое программное обеспечение, инструментальные средства создания нейросетей делятся на коммерческие, бесплатные и условно-бесплатные.
Классификация по функциональной составляющей. При работе с нейронной сетью необходимо пройти ряд этапов, стандартными являются этапы создания нейросети, ее обучения, оптимизации и генерации. Реализация этих этапов составляет минимальный функциональный набор инструментального средства для работы с нейронными сетями. Дополнительный функциональный набор может включать в себя инструменты анализа результатов, генерации исходных кодов, подготовки данных для исследования. Как правило, коммерческие версии обладают большей функциональностью и методическим наполнением пакета.
Классификация по использованию. Данный вид классификации позволяет разделить программные продукты с точки зрения погружения пользователя в теорию нейронных сетей. Нейросетевые модели предоставляют пользователю возможность работы с конкретной моделью нейронной сети, например, с нейронной сетью Кохоненна. Нейросетевые эмуляторы реализуют сразу несколько моделей нейросетей, не требуют от пользователя обширных знаний и предоставляют удобный интерфейс для работы. Нейросетевые конструкторы ориентированы на продвинутого пользователя, обладающего знаниями процессов реализации нейронных сетей, обладающего навыками программирования. Системы оптимизации или нейросетевые комплексы включают теорию нейросетей только как элемент решаемой задачи, совместно с другими технологиями, например, Data Mining.
Классификация по степени интеграции. По степени интеграции инструментальные средства делятся на три основных типа – надстройки над методо-ориентированным ПО, универсальные средства и специализированные средства [1]. К первой группе относятся нейросетевые расширения над пакетами MS Excel, Matlab, Statistica, ко второй – программы, реализующие стандартные нейронные алгоритмы, к последней группе относятся программы для решения конкретной задачи в конкретной области человеческого знания.
Классификация по поддерживаемым языкам и платформам. Как и любое программное обеспечение, средства нейросетевой обработки можно классифицировать по поддерживаемым ими платформам и языков программирования.
Уже в процессе анализа классификаций программного обеспечения для работы с нейронными сетями, авторами были сформулированы первичные требования. Программные продукты были ограничены нейронными эмуляторами, конструкторами, надстройками и библиотеками. При этом из рассмотрения были исключены одиночные нейромодели, специализированные средства и нейросетевые комплексы, как не отвечающие задачам исследования.
Сформулируем критерии отбора программного обеспечения для работы с нейросетями для задач медицинской диагностики в рамках проводимого исследования:
- бесплатно распространяемое ПО;
- поддерживающее с++;
- использующееся в медицинской диагностике;
- ориентированное на распознавание образов;
- поддерживающее платформу Windows;
В результате анализа предлагаемых программных продуктов для работы с нейросетями, была создана таблица 1, где определены тип программного обеспечения, способ его распространения, поддерживаемые языки программирования и платформы. Безусловно, в итоговой таблице нет таких критериев, как использующееся в медицинской диагностике и ориентированное на распознавание образов. Данные характеристики не были выбраны в качестве основных, так как анализ показал, что все нейросетевые эмуляторы и конструкторы можно использовать для задач медицинской диагностики и распознавания образов.
Анализ таблицы 1 позволил определиться с базовыми программными продуктами для реализации задач текущего исследования. К ним можно отнести нейросетевой эмулятор Simbrain, нейросетевой конструктор MemBrain, библиотеку FANN и надстройку Statistica Neural Networks.
Таблица 1. Программное ПО для работы с нейросетями
Название ПО | Тип ПО | Способ распространения | Поддерживаемые языки | Гиперссылка | Платформа |
EasyNN | нейросетевой эмулятор | commercial software | http://www.easynn.com/ | Windows® - all versions | |
FANN | библиотека нейросетевых моделей | free open source | C | http://leenissen.dk/fann/wp/ | кросс-платформенная |
libF2N2 | библиотека нейросетевых моделей | free open source | C++, PHP | http://lwneuralnetplus.sourceforge.net/ | GNU Linux |
Matlab Neural Network | надстройка для поддержки нейросетевых моделей | trial, commercial software | https://www.mathworks.com/products/fuzzy-logic/?requestedDomain=www.mathworks.com | Надстройка над программой Matlab
|
|
MemBrain | нейросетевой конструктор | free software для некоммерческого использования | C++, C# | http://www.membrain-nn.de/english/download_en.htm | Microsoft
Windows |
NEST | нейросетевой эмулятор | free open source | Python | http://www.nest-simulator.org/ | Linux, Mac OS X, виртуальные машины для использования под управлением ОС Windows, IBM BlueGene |
Neural Bench | нейросетевой эмулятор | free software для некоммерческого использования | http://neuralbench.com/RUS/INDEX.HTM | Windows 95 | |
NeuralWorks | нейросетевой конструктор | commercial software | http://www.neuralware.com/ | Windows, Linux | |
Neuroph | нейросетевой эмулятор | free open source | Java | http://neuroph.sourceforge.net/ | Windows, Mac OS X, and Linux |
NeuroShell2 v3.0 | нейросетевой эмулятор | commercial software | http://www.wardsystems.com/neuroshell2.asp
|
Windows 7, Windows Vista, Windows XP и Windows 2000 с SP4 | |
NeuroSolutions | нейросетевой конструктор с расширениями NeuroSolutions for MATLAB и С++
Code Generations |
commercial software | С++ | http://www.neurosolutions.com/ | Windows XP (x86/x64), Vista (x86/x64), 7 (x86/x64), Windows 8.1
(x86/x64), or Windows 10 (x86/x64) |
NeuroSolutions | нейросетевой конструктор | trial, commercial software | C++ | http://www.neurosolutions.com/ | Windows® - all versions |
Simbrain | нейросетевой эмулятор | free open source | Java | http://www.simbrain.net/ | Windows, Mac OS X, and Linux |
SNNS | нейросетевой конструктор | free software для некоммерческого использования | С | http://www.ra.cs.uni-tuebingen.de/SNNS/ | Unix |
Statistica Neural Networks | надстройка для поддержки нейросетевых моделей | trial, commercial software | C, C++, C# или Java | http://statsoft.ru/products/STATISTICA_Neural_Networks/ | Надстройка над программой Statistica
|
Tiberius | нейросетевой эмулятор | trial, commercial software | http://www.tiberius.biz/ | Windows® - all versions | |
Torch | библиотека машинного обучения, в том числе и нейросетевых моделей | free open source | https://github.com/torch | кросс-платформенная | |
Нейросимулятор | нейросетевой эмулятор | pre production | http://www.lbai.ru/#;show;course |
Библиографический список
- Черепанов Ф.М. Симулятор нейронных сетей для вузов // Вестник Пермского университета. Математика. Механика. Информатика. – 2012. – № 3. – С. 98-105.