2 года назад
Прототипирование нейронных сетей на Python Поскольку нейронные сети часто используются учеными, а не программистами, выберите язык программирования, ориентированный на ученых и предоставляющий хорошие библиотеки для нейронных сетей. Python — разумный выбор, поскольку он широко используется учеными. Два дистрибутива для начала: http://www.pythonxy.com/ http://code.enthought.com/ Эти дистрибутивы Python включают множество дополнительных модулей, которых нет в стандартной библиотеке Python, но которые очень полезны для того типа программирования, которым занимаются ученые. Поиск в индексе пакетов Python приводит к нескольким пакетам нейронных сетей, которые могут подойти, если вы только изучаете нейронные сети. http://pypi.python.org/pypi?:action=search&term=neural&submit=search Однако, если вы серьезно работаете с нейронными сетями, вам понадобится что-то вроде библиотеки Fast Neural Network. Это связано с привязками Python, так что вы можете программировать на Python, использовать широкий спектр модулей Python для построения графиков, визуализации, обработки данных и т. д. Но ваши нейронные сети будут работать с использованием оптимизированного скомпилированного кода из библиотеки FANN. Лучшее из обоих миров. Другими словами, для запуска реального кода нейронной сети вам нужен C, а не Java. Поскольку библиотеки C не очень хорошо интегрируются с Java, выберите язык, который легко интегрируется с библиотеками C. Python делает это и также более продуктивен, чем Java, поскольку для объяснения ваших алгоритмов требуется гораздо меньше строк кода. Некоторые люди обнаружили 10-кратное увеличение производительности по сравнению с Java. Вы упомянули R, возможно, потому, что в нем есть статистические функции, которые вам нужно будет использовать, или, возможно, у вас есть люди, которые могут писать код R. Опять же, выбор Python вместо R — это не решение типа «или-или». Вы можете использовать оба. Библиотека RPY позволяет программам Python получать доступ к библиотекам и коду R. Используя это, вы будете писать свои основные программы на Python и рассматривать R как инструмент для предоставления библиотек, точно так же, как вы используете библиотеку FANN, написанную на C. https://rpy2.github.io/ Есть еще один модуль под названием 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/