Поскольку нейронные сети часто используются учеными, а не программистами, выберите язык программирования, предназначенный для ученых и обеспечивающий хорошие библиотеки для нейронных сетей.
Python - разумный выбор, поскольку он широко используется учеными. Начнем с двух дистрибутивов:
http://www.pythonxy.com/
http://code.enthought.com/
Эти дистрибутивы Python включают в себя множество дополнительных модулей, которых нет в стандартной библиотеке Python, но которые очень полезны для того типа программирования, который делают ученые. Поиск по индексу пакетов Python позволяет получить несколько пакетов нейронных сетей, которые могут подойти, если вы только изучаете нейронные сети.
http://pypi.python.org/pypi?:action=search&term=neural&submit=search
Однако, если вы серьезно работаете с нейронными сетями, вам понадобится что-то вроде библиотеки быстрой нейронной сети. Это идет с привязками Python, так что вы можете заниматься программированием на Python, использовать широкий спектр модулей Python для построения графиков, визуализации, манипулирования данными и так далее. Но ваши нейронные сети будут работать с использованием оптимизированного скомпилированного кода из библиотеки FANN. Лучшее из обоих миров.
Другими словами, для запуска реального кода нейронной сети вам нужен C, а не Java. Поскольку библиотеки C плохо интегрируются с Java, выберите язык, который плавно интегрируется с библиотеками C. Python делает это и также является более продуктивным, чем Java, поскольку для объяснения ваших алгоритмов требуется намного меньше строк кода. Некоторые люди обнаружили, что производительность Java выросла в 10 раз.
Вы упомянули R, возможно, потому, что у него есть статистические функции, которые вам нужно использовать, или, возможно, у вас есть люди, которые могут написать код R. Опять же, выбор Python против R не является решением или. Вы можете использовать оба.
Библиотека RPY позволяет программам на Python получать доступ к библиотекам и коду R. Используя это, вы пишете свои основные программы на Python и рассматриваете R как инструмент для предоставления библиотек так же, как вы используете библиотеку FANN, написанную на C.
http://rpy.sourceforge.net/
Существует еще один модуль под названием RSPython, который работает в обоих направлениях, так что R-программы могут получать доступ к библиотекам, написанным на Python. Это было бы полезно, если бы вам помогал программист-эксперт R.
http://www.omegahat.org/RSPython/
И это еще не все. Вы можете использовать Python для упрощения программирования на Java. Если у вас есть движок нейронной сети Java, вы все равно можете написать большую часть своей программы на Python, используя версию Jython, которая работает на виртуальной машине Java и позволяет использовать любые библиотеки и классы Java в вашем коде. И вы все еще можете использовать быструю библиотеку FANN, поскольку они предоставляют привязки для программ на Java.
Основная причина, по которой я рекомендую Python для вашей работы, заключается в том, что он используется очень большим количеством ученых, поэтому доступны два научно-ориентированных дистрибутива. Вторая причина заключается в том, что начинающим программистам очень легко начать работу с Python, и при изучении нейронных сетей вы, вероятно, начнете с более простых симуляций и перейдете к более сложным с большим количеством операций с данными и анализа результатов. Python позволит вам создать свою собственную библиотеку кода и стать опытным программистом Python, чтобы вы могли сосредоточить больше внимания на проблемах нейронной сети. Если вы подпрыгиваете с небольшим количеством Java, немного C ++ и немного R, то вы сможете тратить меньше времени на нейронные сети. Эта стратегия может быть полезна для тех, кто хочет сделать карьеру в программировании, но не для тех, кто хочет добиться значительных результатов с помощью нейронных сетей.
Даже если ваша работа с нейронными сетями распространяется на специализированное аппаратное обеспечение, так называемые нейроморфные чипы, вы все равно можете использовать Python, как показано в этой статье из NIH:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2701676/