NeuroSolutions 是一個(gè)可用于windows 平臺(tái)的高度圖形化的神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)工具。該軟件在業(yè)界處于領(lǐng)先位置,其將模塊化,基于圖標(biāo)的網(wǎng)絡(luò)設(shè)計(jì)界面,先進(jìn)的學(xué)習(xí)程序和遺傳優(yōu)化進(jìn)行了結(jié)合。該款可用于研究和解決現(xiàn)實(shí)世界的復(fù)雜問(wèn)題的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)工具在使用上幾乎無(wú)限制。
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的主要功能
臨時(shí)神經(jīng)網(wǎng)絡(luò)
NeuroSolutions是當(dāng)前少數(shù)幾種完全支持通過(guò)時(shí)間反向傳播(BPTT)的神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)工具之一。其與傳統(tǒng)的將靜態(tài)輸入映射入一個(gè)靜態(tài)輸出不同,BPTT可以將一系列輸入映射入一系列輸出中,這使得其可以通過(guò)提取數(shù)據(jù)每次的變化來(lái)解決臨時(shí)的問(wèn)題。
用戶自定義的神經(jīng)拓補(bǔ)結(jié)構(gòu)
NeuroSolutions是基于以下內(nèi)容而應(yīng)用的,即神經(jīng)網(wǎng)絡(luò)可以分解為一個(gè)神經(jīng)組件的基礎(chǔ)性集合。每一個(gè)單獨(dú)的組件都是相對(duì)簡(jiǎn)單的,但是將多個(gè)組件連接起來(lái)以后,其即可組成網(wǎng)絡(luò)以解決相當(dāng)復(fù)雜的問(wèn)題。網(wǎng)絡(luò)組建向?qū)Э梢愿鶕?jù)用戶指定的條件為之連接相應(yīng)的組件。然而,一旦該網(wǎng)絡(luò)創(chuàng)建好了,用戶即可任意的改變其相互聯(lián)系或者添加入新的組件,換而言之,即幾乎可以創(chuàng)建無(wú)限的神經(jīng)模型。
用戶自定義的神經(jīng)組件
每一個(gè)NeuroSolutions組件都應(yīng)用了一個(gè)函數(shù)以遵循一個(gè)C編寫的簡(jiǎn)單協(xié)議。如需添加一個(gè)新的組件,用戶只需簡(jiǎn)單的修改基礎(chǔ)組件的模板函數(shù),然后將其代碼編譯為一個(gè)DLL文件---這一切都可以在NeuroSolutions中完成!
C++代碼生成
通過(guò)使用NeuroSolutions開(kāi)發(fā)者層級(jí),應(yīng)用程序開(kāi)發(fā)員可通過(guò)使用自定義解決方案向?qū)蒁LL或?yàn)榫W(wǎng)絡(luò)生成C++源碼的方式將NeuroSolutions神經(jīng)網(wǎng)絡(luò)集成入其應(yīng)用程序中。該NeuroSolutions代碼生成工具如同其面向?qū)ο蟮拈_(kāi)發(fā)環(huán)境一樣穩(wěn)健。無(wú)論您在圖形用戶界面中創(chuàng)建的神經(jīng)網(wǎng)絡(luò)是多么的簡(jiǎn)單或者復(fù)雜,NeuroSolutions都能生成等價(jià)的ANSI C++源碼的神經(jīng)網(wǎng)絡(luò)—即使這些神經(jīng)網(wǎng)絡(luò)中以DLL的方式含有您自己設(shè)計(jì)的算法。
大量的探索功能
神經(jīng)網(wǎng)絡(luò)因?yàn)槠?amp;ldquo;黑箱子”技術(shù)經(jīng)常被用戶批評(píng),但NeuroSolutions提供了大量通用的探索工具集,用戶便再也無(wú)需擔(dān)心這種情況的發(fā)生了。探索工具使得用戶可以實(shí)時(shí)的訪問(wèn)內(nèi)部網(wǎng)絡(luò)參數(shù),比如:
-
輸入/輸出
-
權(quán)重
-
錯(cuò)誤
-
隱藏狀態(tài)
-
漸變
-
敏感性
探索在神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)中是非常重要的一步,因此我們將之處理成為NeuroSolutions中集成的一部分。和神經(jīng)組件一樣,探索組件也是模塊化的,用戶瀏覽數(shù)據(jù)的方式與數(shù)據(jù)展現(xiàn)的形式無(wú)關(guān)。所有的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)都是通過(guò)一個(gè)通用協(xié)議進(jìn)行報(bào)送的,且所有的 NeuroSolutions都能理解這個(gè)協(xié)議,因此這使得用戶可以訪問(wèn)所有內(nèi)部變量以及可以通過(guò)大量的觀看它們的方法。
遺傳優(yōu)化
NeuroSolutions的用戶層以及以上層級(jí)包含了遺傳優(yōu)化功能。遺傳優(yōu)化功能使得用戶可以對(duì)神經(jīng)網(wǎng)絡(luò)中的任意參數(shù)進(jìn)行優(yōu)化,以降低出錯(cuò)率。比如,用戶可以對(duì)隱藏單元的數(shù)量,學(xué)習(xí)率,以及輸入選擇等進(jìn)行優(yōu)化以提高神經(jīng)網(wǎng)絡(luò)的性能。
敏感度分析
敏感度分析是一種用于提取神經(jīng)網(wǎng)絡(luò)的輸入與輸出之間的原因以及影響關(guān)系的方法。其基本的設(shè)計(jì)理念是,神經(jīng)網(wǎng)絡(luò)的輸入通道發(fā)生輕微偏移,輸出端即可相應(yīng)的對(duì)之進(jìn)行報(bào)告。那些只產(chǎn)生較小的敏感值的輸入通道將被視為無(wú)關(guān)緊要的,因此常常被從神經(jīng)網(wǎng)絡(luò)中移除掉,這種操作減小了神經(jīng)網(wǎng)絡(luò)的規(guī)模,而這也反而減少了網(wǎng)絡(luò)的復(fù)雜性以及所需的訓(xùn)練時(shí)間。此外,這還將提高網(wǎng)絡(luò)對(duì)樣本數(shù)據(jù)測(cè)試的性能。
樣本加權(quán)
分類問(wèn)題中往往每一個(gè)類都不可能具有相同數(shù)目的訓(xùn)練樣本,比如,用戶可能擁有一個(gè)用于檢測(cè)臨床測(cè)試數(shù)據(jù)中癌癥發(fā)生概率的神經(jīng)網(wǎng)絡(luò)應(yīng)用程序,該問(wèn)題的測(cè)試數(shù)據(jù)可能包含了99個(gè)分類為非癌癥患者的樣本,以及一個(gè)被標(biāo)記為癌癥患者的樣本數(shù)據(jù)。此時(shí),一個(gè)標(biāo)準(zhǔn)化得神經(jīng)網(wǎng)絡(luò)將往往將所有的樣本分類為非癌癥患者,因此其有99%的準(zhǔn)確率,而事實(shí)上,其目的應(yīng)該是檢測(cè)到存在的癌癥患者,因此這暴露出了問(wèn)題。
NeuroSolutions為用戶提供了一種更佳的解決方案,即使用了一種名為加權(quán)的方式。以以上例子為例,訓(xùn)練樣本中的每一個(gè)癌癥患者在反向傳播中都將擁有比非癌癥患者高99倍的權(quán)重。這種平衡訓(xùn)練數(shù)據(jù)的方式使得系統(tǒng)能 以一種更有的方式進(jìn)行癌癥數(shù)據(jù)的檢測(cè)。
宏指令
NeuroSolutions擁有一套綜合全面的宏語(yǔ)言,這使得用戶可以記錄操作的順序,并將之存貯為程序。每一個(gè)可以使用鼠標(biāo)或者鍵盤進(jìn)行操作的動(dòng)作都可以使用一條宏語(yǔ)句操作。這項(xiàng)強(qiáng)大的功能使得用戶在構(gòu)建,編輯和運(yùn)行神經(jīng)網(wǎng)絡(luò)時(shí)擁有了前所未有的靈活性。
OLE自動(dòng)化
lNeuroSolutions是一個(gè)完全兼容OLE自動(dòng)化的服務(wù)器。這意味著其可以從OLE自動(dòng)化控制器中接受控制信息,比如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.