Vì các mạng nơron được các nhà khoa học sử dụng rất nhiều, và không quá nhiều bởi các lập trình viên, hãy chọn ngôn ngữ lập trình nhằm vào các nhà khoa học và cung cấp thư viện tốt cho mạng thần kinh.
Python là lựa chọn hợp lý vì nó được các nhà khoa học sử dụng rộng rãi. Hai phân phối để bắt đầu với những
http://www.pythonxy.com/
http://code.enthought.com/
Những phân phối Python bao gồm rất nhiều add-on module không có trong thư viện Python chuẩn nhưng mà rất hữu ích cho các loại lập trình các nhà khoa học làm. Tìm kiếm chỉ mục gói Python đi kèm với một vài gói mạng thần kinh có thể được chấp nhận nếu bạn chỉ tìm hiểu về mạng thần kinh.
http://pypi.python.org/pypi?:action=search&term=neural&submit=search
Tuy nhiên, nếu bạn đang làm việc nghiêm túc với Neural Networks bạn sẽ muốn một cái gì đó như thư viện nhanh Neural Network. Điều này đi kèm với bindings Python để bạn có thể làm lập trình của bạn trong Python, sử dụng nhiều mô-đun Python cho đồ thị, visualization, thao tác dữ liệu và như vậy. Tuy nhiên, các mạng thần kinh của bạn sẽ chạy bằng cách sử dụng mã được biên dịch được optmised từ thư viện FANN. Tốt nhất của cả hai thế giới.
Nói cách khác, để chạy mã mạng thần kinh thực tế, bạn cần C, không phải Java. Vì các thư viện C không tích hợp tốt với Java, hãy chọn một ngôn ngữ tích hợp trơn tru với các thư viện C. Python làm điều đó và cũng khá hiệu quả hơn Java vì có rất ít dòng mã cần thiết để giải thích các thuật toán của bạn. Một số người đã tìm thấy năng suất tăng gấp 10 lần so với Java.
Bạn đã đề cập R, có lẽ vì nó có chức năng thống kê mà bạn sẽ cần sử dụng hoặc có thể bạn có những người có thể viết mã R. Một lần nữa, việc chọn Python so với R không phải là một trong hai quyết định. Bạn có thể sử dụng cả hai.
Thư viện RPY cho phép các chương trình Python truy cập vào thư viện và mã R. Sử dụng này, bạn sẽ viết chương trình chính của bạn bằng Python và điều trị R như một công cụ để cung cấp các thư viện, trong cùng một cách mà bạn sử dụng các thư viện Fann được viết bằng C.
http://rpy.sourceforge.net/
Có một mô-đun được gọi là RSPython hoạt động theo cả hai cách, sao cho các chương trình R có thể truy cập các thư viện được viết bằng Python. Điều này sẽ hữu ích nếu bạn có một lập trình viên R chuyên gia giúp bạn.
http://www.omegahat.org/RSPython/
Và đó không phải là tất cả. Bạn có thể tận dụng Python để đơn giản hóa lập trình Java. Nếu bạn có một công cụ mạng nơron Java, bạn vẫn có thể viết hầu hết chương trình của mình bằng Python sử dụng phiên bản Jython chạy trên máy ảo Java và cho phép bạn sử dụng bất kỳ thư viện Java và các lớp nào trong mã của bạn. Và bạn vẫn có thể sử dụng thư viện FANN nhanh chóng vì chúng cung cấp các ràng buộc cho các chương trình Java.
Lý do chính mà tôi khuyên dùng Python cho công việc của bạn là nó được sử dụng bởi rất nhiều nhà khoa học, đó là lý do tại sao có hai bản phân phối theo định hướng khoa học.Lý do thứ hai là Python rất dễ lập trình cho người mới bắt đầu, và trong việc khám phá các mạng nơron, bạn có thể bắt đầu với các mô phỏng đơn giản hơn và làm việc với những người phức tạp hơn với thao tác dữ liệu và phân tích kết quả. Python sẽ cho phép bạn xây dựng thư viện mã của riêng bạn, và trở thành một lập trình viên Python chuyên môn để bạn có thể tập trung nhiều hơn sự chú ý của mình vào các vấn đề mạng thần kinh. Nếu bạn tung ra xung quanh với một chút Java, và một chút của C + + và một chút R, sau đó bạn sẽ có thể dành ít thời gian hơn trên các mạng thần kinh. Chiến lược đó có thể tốt cho những ai muốn có sự nghiệp lập trình, nhưng không phải cho người muốn đạt được một số kết quả đáng kể với mạng thần kinh.
Thậm chí nếu công việc mạng thần kinh của bạn kéo dài đến phần cứng chuyên dụng, cái gọi là chip neuromorphic, bạn vẫn có thể tận dụng Python như giấy này từ NIH cho thấy:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2701676/
Tôi đề nghị blog của tôi [post] (http://www.parallelr.com/r-deep-neural-network-from-scratch/) giới thiệu cách triển khai NN cơ bản với R và được tăng tốc bằng GPU. Hy vọng hữu ích. – Patric