Applications of Neural Networks



An example of an older radial basis functional link net (RBFLN) NN program in C/C++ can be found on the link below.


old RBFLN source program written in C/C++


The data is often difficult to obtain, and it may be expensive also. But once good data is obtained and the noisy data eliminated from it, then a NN can be trained to give the correct outputs for any input feature vector.


1. Approximating Functions


Let a function f(x,y,z) be given, where it is a function of the 3 variables x, y, and z, and suppose that the evaluation of f(x,y,z) is difficult and costly. We need to evaluate it at several points in the xyz-domain where we will want to evaluate it.


First, make a table of points and the function values.

 

               x        y       z       f(x,y,z)

            x(1)     y(1)     z(1)     f(x(1),y(1),z(1))

             :           :          :          :

            x(Q)    y(Q)    z(Q)    f(x(Q),y(Q),z(Q))



Second, save the table as feature vectors.

 

            3                                                          //number of features

            1                                                          //number of label dimensions

            Q                                                         //number of feature vectors

            x(1)     y(1)     z(1)     f(x(1),y(1),z(1))

             :           :          :          :

            x(Q)    y(Q)    z(Q)    f(x(Q),y(Q),z(Q))


Third, read this file with your NN program and process it.


2. Diagnosis


This is a popular application for rule-based systems, but can be done well with a NN. We need a set of labeled feature vectors that represent the symptoms and the labels represent the results. Diagnosis can be applied to medical data, to diagnosing engines of cars, boats, ships, or airplanes. RBFNNs (or RBFLNs), or the more standard BP NNs work well for this.


The data should be standardized, e.g., so that each feature takes values between 0 and 1 (or 1 to 10, etc.). Sometimes the labels must be assigned for the known classes by inserting in a data file. If there are a small number of classes then integers can be used. E.g., if there are two classes, then 1 and 2 can be used. If there are more than 4, then we may want to use 2-dimensional labels, such as 1,0; 0,1; 11, 1,2; 2,1; etc.


3. Prediction


This can be applied to credit applications, the number of customers to see a new movie to be released, sales of automobiles or other products, of houses, the price of gasoline, economic growth, etc., based on relevant factors (features). Some of these are difficult and require lots of data, but can pay off well, e.g., stocks.


The variables used as features can sometimes be taken from questionnaires (applications), past sales, economic factors that can be obtained from documents in the library or on-line. The labels are usually described by units (1 unit = $100,000, etc.) or percentages, or decimal fractions.


4. Decision Making


This is closely related to control (see next paragraph). Let S = (s(1), s(2),..., s(K)) be the state of a situation for or from which the decision is to be made. The set of outcomes are D(1),..., D(P). If we can obtain a set of labeled feature vectors


                        (s(1,1), ..., s(1,K), D(p(1)))

                            : : :

                            : : :

                        (s(Q,1), ..., s(Q,K), D(p(Q)))


then we can train a NN and put it on line to make decisions as the data (feature vectors) become available over time.


5. Control


This is a type of decision making where the states are to be classified, and for each class of states, a control or control set is the decision. Let S(q) and C(q) be the system state and control to be applied, q = 1,...,Q. The data set that gives the feature vectors with labels is


            (S(1), C(1))

             : :

             : :

            (S(Q), C(Q))


where S(q) = (s(q,1),..., s(q,N) and C(q) = (c(q,1),..., c(q,M).


The state variables s(q,n) of the system to be controlled are to be measured (observed) and a control vector C(q) selected as the NN output to drive the state from the currently observed on to a desired state. Many times the state variables can not be measured directly, so then they must be estimated from others that can be measured. This, and the fact that there may be noise in the measurements, makes this a difficult problem. However, a NN has some smoothing (interpolating) power and can give good results where other methods must be very complicated so as not to fail.