NeuroSolutions 是一個可用于windows 平臺的高度圖形化的神經網絡開發工具。該軟件在業界處于領先位置,其將模塊化,基于圖標的網絡設計界面,先進的學習程序和遺傳優化進行了結合。該款可用于研究和解決現實世界的復雜問題的神經網絡設計工具在使用上幾乎無限制。
NeuroSolutions is a highly graphical neural network development tool for Windows XP/Vista/7. This leading edge software combines a modular, icon-based network design interface with an implementation of advanced learning procedures and genetic optimization. The result is a virtually unconstrained environment for designing neural networks for research and for solving real-world problems.
NeuroSolutions的主要功能
-
支持向量機回歸
支持向量機回歸(SVM-R)
臨時神經網絡
NeuroSolutions是當前少數幾種完全支持通過時間反向傳播(BPTT)的神經網絡開發工具之一。其與傳統的將靜態輸入映射入一個靜態輸出不同,BPTT可以將一系列輸入映射入一系列輸出中,這使得其可以通過提取數據每次的變化來解決臨時的問題。
用戶自定義的神經拓補結構
NeuroSolutions是基于以下內容而應用的,即神經網絡可以分解為一個神經組件的基礎性集合。每一個單獨的組件都是相對簡單的,但是將多個組件連接起來以后,其即可組成網絡以解決相當復雜的問題。網絡組建向導可以根據用戶指定的條件為之連接相應的組件。然而,一旦該網絡創建好了,用戶即可任意的改變其相互聯系或者添加入新的組件,換而言之,即幾乎可以創建無限的神經模型。
用戶自定義的神經組件
每一個NeuroSolutions組件都應用了一個函數以遵循一個C編寫的簡單協議。如需添加一個新的組件,用戶只需簡單的修改基礎組件的模板函數,然后將其代碼編譯為一個DLL文件---這一切都可以在NeuroSolutions中完成!
C++代碼生成
通過使用NeuroSolutions開發者層級,應用程序開發員可通過使用自定義解決方案向導生成DLL或為網絡生成C++源碼的方式將NeuroSolutions神經網絡集成入其應用程序中。該NeuroSolutions代碼生成工具如同其面向對象的開發環境一樣穩健。無論您在圖形用戶界面中創建的神經網絡是多么的簡單或者復雜,NeuroSolutions都能生成等價的ANSI C++源碼的神經網絡—即使這些神經網絡中以DLL的方式含有您自己設計的算法。
大量的探索功能
神經網絡因為其“黑箱子”技術經常被用戶批評,但NeuroSolutions提供了大量通用的探索工具集,用戶便再也無需擔心這種情況的發生了。探索工具使得用戶可以實時的訪問內部網絡參數,比如:
探索在神經網絡設計中是非常重要的一步,因此我們將之處理成為NeuroSolutions中集成的一部分。和神經組件一樣,探索組件也是模塊化的,用戶瀏覽數據的方式與數據展現的形式無關。所有的神經網絡數據都是通過一個通用協議進行報送的,且所有的 NeuroSolutions都能理解這個協議,因此這使得用戶可以訪問所有內部變量以及可以通過大量的觀看它們的方法。
遺傳優化
NeuroSolutions的用戶層以及以上層級包含了遺傳優化功能。遺傳優化功能使得用戶可以對神經網絡中的任意參數進行優化,以降低出錯率。比如,用戶可以對隱藏單元的數量,學習率,以及輸入選擇等進行優化以提高神經網絡的性能。
敏感度分析
敏感度分析是一種用于提取神經網絡的輸入與輸出之間的原因以及影響關系的方法。其基本的設計理念是,神經網絡的輸入通道發生輕微偏移,輸出端即可相應的對之進行報告。那些只產生較小的敏感值的輸入通道將被視為無關緊要的,因此常常被從神經網絡中移除掉,這種操作減小了神經網絡的規模,而這也反而減少了網絡的復雜性以及所需的訓練時間。此外,這還將提高網絡對樣本數據測試的性能。
樣本加權
分類問題中往往每一個類都不可能具有相同數目的訓練樣本,比如,用戶可能擁有一個用于檢測臨床測試數據中癌癥發生概率的神經網絡應用程序,該問題的測試數據可能包含了99個分類為非癌癥患者的樣本,以及一個被標記為癌癥患者的樣本數據。此時,一個標準化得神經網絡將往往將所有的樣本分類為非癌癥患者,因此其有99%的準確率,而事實上,其目的應該是檢測到存在的癌癥患者,因此這暴露出了問題。
NeuroSolutions為用戶提供了一種更佳的解決方案,即使用了一種名為加權的方式。以以上例子為例,訓練樣本中的每一個癌癥患者在反向傳播中都將擁有比非癌癥患者高99倍的權重。這種平衡訓練數據的方式使得系統能 以一種更有的方式進行癌癥數據的檢測。
宏指令
NeuroSolutions擁有一套綜合全面的宏語言,這使得用戶可以記錄操作的順序,并將之存貯為程序。每一個可以使用鼠標或者鍵盤進行操作的動作都可以使用一條宏語句操作。這項強大的功能使得用戶在構建,編輯和運行神經網絡時擁有了前所未有的靈活性。
OLE自動化
lNeuroSolutions是一個完全兼容OLE自動化的服務器。這意味著其可以從OLE自動化控制器中接受控制信息,比如Visual C++, Visual Basic, Microsoft Excel, Microsoft Access, 和Delphi.等
Summary
NeuroSolutions Features

Input Projection
Further reduce input dimensions by automatically mapping multiple pieces of information to single inputs.

Input Optimization
Automatically determine the most informative inputs through greedy search, back-elimination and other methods.
CUDA GPU Processing
NeuroSolutions users can now harness the massive processing power of their NVIDIA graphics cards with the NeuroSolutions CUDA Add-on.
Faster Processing
Improved utilization of multi-core processors and optimized executable code results in significantly shorter training times!
Support Vector Machine Regression
The Support Vector Machine Regression (SVM-R) .
Enhanced Probablistic Neural Network Support
- Neuro-Fuzzy
The coactive neuro-fuzzy inference system (CANFIS) model integrates fuzzy inputs with a neural network to quickly solve poorly defined problems.
- Support Vector Machine
The Support Vector Machine (SVM) model maps inputs to a high-dimensional feature space, and then optimally separates data into their respective classes by isolating those inputs that fall close to the data boundaries. They are especially effective in separating sets of data that share complex boundaries.
- Levenberg-Marquardt
This second-order learning algorithm generally trains significantly faster than Momentum learning and usually arrives at a solution with a significantly lower error.
- Teacher Forcing / Iterative Prediction
There are some time-series prediction problems that are best modeled using a method called teacher forcing. This specialized training algorithm feeds the predicted output back into the input in order to improve the accuracy of multi-step prediction.
Temporal Neural Networks
NeuroSolutions is one of the few neural network development tools to fully support backpropagation through time (BPTT). Instead of mapping a static input to a static output, BPTT maps a series of inputs to a series of outputs. This provides the ability to solve temporal problems by extracting how data changes over time.
User-defined Neural Topologies
NeuroSolutions is based on the concept that neural networks can be broken down into a fundamental set of neural components. Individually these components are relatively simplistic, but several components connected together can result in networks capable of solving very complex problems. The network construction wizards will connect these components for you based on your specifications. However, once the network is built you can arbitrarily change interconnections and/or add in new components. In other words, a virtually infinite number of neural models are possible!
User-defined Neural Components
Every NeuroSolutions component implements a function conforming to a simple protocol in C. To add a new component you simply modify the template function for the base component and compile the code into a DLL -- all directly from NeuroSolutions!
C++ Code Generation
An application developer can integrate a NeuroSolutions neural network into their application by generating a DLL with the Custom Solution Wizard or by generating the C++ source code for the network using the Developers level of NeuroSolutions. The source code generation facility of NeuroSolutions is as robust as its object-oriented design environment. No matter how simple or complex of a network you create within the graphical user interface, NeuroSolutions will generate the equivalent neural network in ANSI C++ source code -- even those networks that contain your own algorithms implemented with DLLs!
Extensive Probing Capabilities
Neural networks are often criticized as being a "black box" technology. With NeuroSolutions' extensive and versatile set of probing tools, this is no longer the case. Probes provide you with real-time access to all internal network variables, such as:
- Inputs/Outputs
- Weights
- Errors
- Hidden States
- Gradients
- Sensitivities
Probing is an important step in the neural network design process, therefore we have made it an integral part of NeuroSolutions. As with the neural components, the probe components are inherently modular; the way you view the data is independent of what the data represents. All network data are reported through a common protocol, and all NeuroSolutions probes understand this protocol. This provides you with access to all internal variables, along with a variety of ways to visualize them.

Genetic Optimization
The Users level of NeuroSolutions and above include Genetic Optimization. Genetic Optimization allows you to optimize virtually any parameter in a neural network to produce the lowest error. For example, the number of hidden units, the learning rates, and the input selection can all be optimized to improve the network performance.
Sensitivity Analysis
Sensitivity analysis is a method for extracting the cause and effect relationship between the inputs and outputs of the network. The basic idea is that each input channel to the network is offset slightly and the corresponding change in the output(s) is reported. The input channels that produce low sensitivity values can be considered insignificant and can most often be removed from the network. This will reduce the size of the network, which in turn reduces the complexity and the training time. Furthermore, this will likely also improve the network performance for the out-of-sample testing data.
Exemplar Weighting
Classification problems often do not have an equal number of training exemplars (samples) for each class. For example, you may have a neural network application that detects the occurrence of cancer from clinical test data. The training data for this problem may contain 99 exemplars classified as non-cancerous for every one exemplar classified as cancerous. A standard neural network would most often train itself to classify all exemplars as non-cancerous so that it would be 99% correct. Since the goal is to detect the existence of cancer, this is a problem.
NeuroSolutions provides a better solution using a method called exemplar weighting. For the example above, each of the cancerous training exemplars would have 99 times more weight during the backpropagation procedure than the non cancerous exemplars. This balancing of the training data will most likely result in a system that does a much better job of detecting the cancerous cases.
Macros
NeuroSolutions has a comprehensive macro language, which allows the user to record a sequence of operations and store them as a program. Any action that can be performed using the mouse and keyboard can be duplicated with a macro statement. This powerful feature gives the user unprecedented flexibility in constructing, editing, and running neural networks.
OLE Automation
NeuroSolutions is a fully compliant OLE Automation Server. This means that NeuroSolutions can receive control messages from OLE Automation Controllers, such as Visual C++, Visual Basic, Microsoft Excel, Microsoft Access, and Delphi.