US20030101161A1 - System and method for historical database training of support vector machines - Google Patents
System and method for historical database training of support vector machines Download PDFInfo
- Publication number
- US20030101161A1 US20030101161A1 US09/997,627 US99762701A US2003101161A1 US 20030101161 A1 US20030101161 A1 US 20030101161A1 US 99762701 A US99762701 A US 99762701A US 2003101161 A1 US2003101161 A1 US 2003101161A1
- Authority
- US
- United States
- Prior art keywords
- training
- support vector
- data
- vector machine
- input data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 550
- 238000012706 support-vector machine Methods 0.000 title claims abstract description 511
- 238000000034 method Methods 0.000 title claims abstract description 391
- 230000008569 process Effects 0.000 claims abstract description 199
- 238000004886 process control Methods 0.000 claims description 75
- 238000005259 measurement Methods 0.000 claims description 54
- 230000004044 response Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims 9
- 230000006870 function Effects 0.000 description 107
- 238000013459 approach Methods 0.000 description 58
- 238000003860 storage Methods 0.000 description 37
- 238000010586 diagram Methods 0.000 description 30
- 238000004519 manufacturing process Methods 0.000 description 25
- 230000001105 regulatory effect Effects 0.000 description 22
- 239000013598 vector Substances 0.000 description 21
- 238000004458 analytical method Methods 0.000 description 20
- 238000013179 statistical model Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 239000002994 raw material Substances 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000005094 computer simulation Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 241000196324 Embryophyta Species 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 6
- 238000007405 data analysis Methods 0.000 description 6
- 239000000835 fiber Substances 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000013145 classification model Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000007812 deficiency Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000003908 quality control method Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000007418 data mining Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000000528 statistical test Methods 0.000 description 3
- 244000153158 Ammi visnaga Species 0.000 description 2
- 235000010585 Ammi visnaga Nutrition 0.000 description 2
- 235000005979 Citrus limon Nutrition 0.000 description 2
- 244000131522 Citrus pyriformis Species 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012369 In process control Methods 0.000 description 1
- 102000055788 SPARC family Human genes 0.000 description 1
- 108700015859 SPARC family Proteins 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001311 chemical methods and process Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 235000013312 flour Nutrition 0.000 description 1
- 238000005187 foaming Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000010965 in-process control Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000009533 lab test Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Definitions
- the present invention relates generally to the field of non-linear models. More particularly, the present invention relates to historical database training of a support vector machine.
- Many predictive systems may be characterized by the use of an internal model which represents a process or system for which predictions are made.
- Predictive model types may be linear, non-linear, stochastic, or analytical, among others.
- non-linear models may generally be preferred due to their ability to capture non-linear dependencies among various attributes of the phenomena.
- Examples of non-linear models may include neural networks and support vector machines (SVMs).
- a model is trained with training data, e.g., historical data, in order to reflect salient attributes and behaviors of the phenomena being modeled.
- training data e.g., historical data
- sets of training data may be provided as inputs to the model, and the model output may be compared to corresponding sets of desired outputs.
- the resulting error is often used to adjust weights or coefficients in the model until the model generates the correct output (within some error margin) for each set of training data.
- the model is considered to be in “training mode” during this process.
- the model may receive real-world data as inputs, and provide predictive output information which may be used to control or make decisions regarding the modeled phenomena.
- Predictive models may be used for analysis, control, and decision making in many areas, including manufacturing, process control, plant management, quality control, optimized decision making, e-commerce, financial markets and systems, or any other field where predictive modeling may be useful.
- quality control in a manufacturing plant is increasingly important.
- the control of quality and the reproducibility of quality may be the focus of many efforts.
- quality is the focus of the ISO (International Standards Organization, Geneva, Switzerland) 9000 standards. These rigorous standards provide for quality assurance in production, installation, final inspection, and testing. They also provide guidelines for quality assurance between a supplier and customer.
- the quality of a manufactured product is a combination of all of the properties of the product which affect its usefulness to its user.
- Process control is the collection of methods used to produce the best possible product properties in a manufacturing process, and is very important in the manufacture of products. Improper process control may result in a product which is totally useless to the user, or in a product which has a lower value to the user. When either of these situations occur, the manufacturer suffers (1) by paying the cost of manufacturing useless products, (2) by losing the opportunity to profitably make a product during that time, and (3) by lost revenue from reduced selling price of poor products. In the final analysis, the effectiveness of the process control used by a manufacturer may determine whether the manufacturer's business survives or fails.
- quality and process control are described below as related to a manufacturing process, although process control may also be used to ensure quality in processes other than manufacturing, such as e-commerce, portfolio management, and financial systems, among others.
- FIG. 22 shows, in block diagram form, key concepts concerning products made in a manufacturing process.
- raw materials 1222 may be processed under (controlled) process conditions 1906 in a process 1212 to produce a product 1216 having product properties 1904 .
- Examples of raw materials 1222 , process conditions 1906 , and product properties 1904 may be shown in FIG. 22. It should be understood that these are merely examples for purposes of illustration, and that a product may refer to an abstract product, such as information, analysis, decision-making, transactions, or any other type of usable object, result, or service.
- FIG. 23 shows a more detailed block diagram of the various aspects of the manufacturing of products 1216 using process 1212 .
- product 1216 is defined by one or more product property aim value(s) 2006 of its product properties 1904 .
- the product property aim values 2006 of the product properties 1904 may be those which the product 1216 needs to have in order for it to be ideal for its intended end use.
- the objective in running process 1212 is to manufacture products 1216 having product properties 1904 which match the product property aim value(s) 2006 .
- the following simple example of a process 1212 is presented merely for purposes of illustration.
- the example process 1212 is the baking of a cake.
- Raw materials 1222 such as flour, milk, baking powder, lemon flavoring, etc.
- Examples of the (controlled) process conditions 1906 may include: mix batter until uniform, bake batter in a pan at a preset oven temperature for a preset time, remove baked cake from pan, and allow removed cake to cool to room temperature.
- the product 1216 produced in this example is a cake having desired properties 1904 .
- these desired product properties 1904 may be a cake that is fully cooked but not burned, brown on the outside, yellow on the inside, having a suitable lemon flavoring, etc.
- the actual product properties 1904 of product 1216 produced in a process 1212 may be determined by the combination of all of the process conditions 1906 of process 1212 and the raw materials 1222 that are utilized.
- Process conditions 1906 may be, for example, the properties of the raw materials 1222 , the speed at which process 1212 runs (also called the production rate of the process 1212 ), the process conditions 1906 in each step or stage of the process 1212 (such as temperature, pressure, etc.), the duration of each step or stage, and so on.
- FIG. 23 shows a more detailed block diagram of the various aspects of the manufacturing of products 1216 using process 1212 .
- FIGS. 22 and 23 should be referred to in connection with the following description.
- the process conditions 1906 may be maintained at one or more process condition setpoint(s) or aim value(s) (called a regulatory controller setpoint(s) in the example of FIG. 17, discussed below) 1404 so that the product 1216 produced has the product properties 1904 matching the desired product property aim value(s) 2006 .
- This task may be divided into three parts or aspects for purposes of explanation.
- the manufacturer may set (step 2008 ) initial settings of the process condition setpoint(s) or aim value(s) 1404 in order for the process 1212 to produce a product 1216 having the desired product property aim values 2006 .
- this would be analogous to deciding to set the temperature of the oven to a particular setting before beginning the baking of the cake batter.
- the second step or aspect involves measurement and adjustment of the process 1212 .
- process conditions 1906 may be measured to produce process condition measurement(s) 1224 .
- the process condition measurement(s) 1224 may be used to generate adjustment(s) 1208 (called controller output data in the example of FIG. 4, discussed below) to controllable process state(s) 2002 so as to hold the process conditions 1906 as close as possible to process condition setpoint 1404 .
- controller output data in the example of FIG. 4, discussed below
- controllable process state(s) 2002 so as to hold the process conditions 1906 as close as possible to process condition setpoint 1404 .
- this is analogous to the way the oven measures the temperature and turns the heating element on or off so as to maintain the temperature of the oven at the desired temperature value.
- the third stage or aspect involves holding product property measurement(s) of the product properties 1904 as close as possible to the product property aim value(s) 2006 .
- adjustment to process condition setpoint 1402 may be made to the process condition setpoint(s) 1404 so as to maintain process condition(s) 1906 .
- One aspect of a process being controlled is the speed with which the process responds. Although processes may be very complex in their response patterns, it is often helpful to define a time constant for control of a process.
- the time constant is simply an estimate of how quickly control actions may be carried out in order to effectively control the process.
- process control task may be generalized as being made up of five basic steps or stages as follows:
- the second and fourth steps or aspects of process control involve measurement 1224 of process conditions 1906 and measurement 1304 of product properties 1904 , respectively. Such measurements may be sometimes very difficult, if not impossible, to effectively perform for process control.
- the important product properties 1904 relate to the end use of the product and not to the process conditions 1906 of the process 1212 .
- One illustration of this involves the manufacture of carpet fiber.
- An important product property 1904 of carpet fiber is how uniformly the fiber accepts the dye applied by the carpet maker.
- Another example involves the cake example set forth above.
- An important product property 1904 of a baked cake is how well the cake resists breaking apart when the frosting is applied.
- the measurement of such product properties 1904 is difficult and/or time consuming and/or expensive to make.
- process condition measurements 1224 may be inexpensive, take little time, and may be quite reliable. Temperature typically may be measured easily, inexpensively, quickly, and reliably. For example, the temperature of the water in a tank may often be easily measured. But oftentimes process conditions 1906 make such easy measurements much more difficult to achieve. For example, it may be difficult to determine the level of a foaming liquid in a vessel. Moreover, a corrosive process may destroy measurement sensors, such as those used to measure pressure.
- a computer-based fundamental model uses known information about the process 1212 to predict desired unknown information, such as product conditions 1906 and product properties 1904 .
- a fundamental model may be based on scientific and engineering principles. Such principles may include the conservation of material and energy, the equality of forces, and so on. These basic scientific and engineering principles may be expressed as equations which are solved mathematically or numerically, usually using a computer program. Once solved, these equations may give the desired prediction of unknown information.
- Such a computer-based statistical model may use known information about process 1212 to determine desired information that may not be effectively measured.
- a statistical model may be based on the correlation of measurable process conditions 1906 or product properties 1904 of the process 1212 .
- a mathematical relationship (i.e., an equation) between the known information and the desired unknown information may be created by the developer of the empirical statistical model.
- the relationship may contain one or more constants (which may be assigned numerical values) which affect the value of the predicted information from any given known information.
- a computer program may use many different measurements of known information, with their corresponding actual measurements of desired unknown information, to adjust these constants so that the best possible prediction results may be achieved by the empirical statistical model.
- Such a computer program for example, may use non-linear regression.
- Computer-based statistical models may sometimes predict product properties 1904 which may not be well described by computer fundamental models. However, there may be significant problems associated with computer statistical models, which include the following:
- Product properties 1904 may often be difficult to measure
- a system and method are presented for historical database training of a support vector machine.
- the support vector machine may train by retrieving training sets from a stream of process data.
- the support vector machine may detect the availability of new training data, and may construct a training set by retrieving the corresponding input data.
- the support vector machine may be trained using the training set. Over time, many training sets may be presented to the support vector machine.
- the support vector machine may detect training input data in several ways.
- the support vector machine may monitor for changes in data values of training input data. A change may indicate that new data is available.
- the support vector machine may compute changes in raw training input data from one cycle to the next. The changes may be indicative of the action of human operators or other actions in the process.
- a historical database may be used and the support vector machine may monitor for changes in a timestamp of the training input data. Often laboratory data may be used as training input data in this approach.
- the support vector machine may construct a training set by retrieving input data corresponding to the new training input data. Often, the current or most recent values of the input data may be used.
- the input data is retrieved from the historical database for a time period selected using the timestamps of the training input data.
- a buffer of training sets (e.g., a FIFO—first in, first out—buffer) is filled and updated as new training data becomes available.
- the size of the buffer may be selected in accordance with the training needs of the support vector machine.
- a new training set may bump the oldest training set from the buffer.
- the training sets in the buffer may be presented one or more times each time a new training set is constructed. It is noted that the use of a buffer to store training sets is but one example of storage means for the training sets, and that other storage means are also contemplated, including lists (such as queues and stacks), databases, and arrays, among others.
- the support vector machine may be trained retrospectively. Training sets may be constructed by searching the historical database over a time span of interest for training input data. When training input data are found, an input data time is selected using the training input data timestamps, and the training set is constructed by retrieving the input data corresponding to the input data time. Multiple presentations may also be used in the retrospective training approach.
- the method may include building a first training set using training data, where the training data includes one or more timestamps indicating a chronology of the training data and one or more process parameter values corresponding to each timestamp.
- the first training set may include process parameter values corresponding to a first time period in the chronology.
- building the first training set may include retrieving the training data from a historical database, selecting a training data time period based on the one or more timestamps, and retrieving the process parameter values from the training data indicated by the training data time period.
- the first training set includes retrieved process parameter values in chronological order over the selected training data time period.
- the support vector machine may then be trained using the first training set.
- a second training set may be generated by removing at least a subset of the parameter values of the first training set, preferably the oldest parameter values of the training set, and adding new parameter values from the training data based on the timestamps to generate a second training set.
- the second training set corresponds to a second time period in the chronology.
- the support vector machine may then be trained using the second training set.
- the process may then be repeated, successively updating the training set to generate new training sets by removing old data and adding new data based on the timestamps and training the support vector machine with each training set.
- the historical database trained support vector machine may be used for process measurement, manufacturing, supervisory control, regulatory control functions, optimization, real-time optimization, decision-making systems, e-marketplaces, e-commerce, data analysis, data mining, financial analysis, stock and/or bond analysis/management, as well as any other field or domain where predictive or classification models may be useful.
- data pointers easy access to many process data systems may be achieved.
- a modular approach with natural language configuration of the support vector machine may be used to implement the support vector machine.
- Expert system functions may be provided in the modular support vector machine to provide decision-making functions for use in control, analysis, management, or other areas of application.
- FIG. 1 illustrates an exemplary computer system according one embodiment of the present invention
- FIG. 2 is an exemplary block diagram of the computer system illustrated in FIG. 1, according to one embodiment of the present invention.
- FIG. 3 is a nomenclature diagram illustrating one embodiment of the present invention at a high level
- FIG. 4 is a representation of the architecture of an embodiment of the present invention.
- FIG. 5 is a high level block diagram of the six broad steps included in one embodiment of a support vector machine process control system and method according to the present invention
- FIG. 6 is an intermediate block diagram of steps and modules included in the store input data and training input data step or module 102 of FIG. 5, according to one embodiment
- FIG. 7 is an intermediate block diagram of steps and modules included in the configure and train support vector machine step or module 104 of FIG. 5, according to one embodiment
- FIG. 8 is an intermediate block diagram of input steps and modules included in the predict output data using support vector machine step or module 106 of FIG. 5, according to one embodiment
- FIG. 9 is an intermediate block diagram of steps and modules included in the retrain support vector machine step or module 108 of FIG. 5, according to one embodiment
- FIG. 10 is an intermediate block diagram of steps and modules included in the enable/disable control step or module 110 of FIG. 5, according to one embodiment
- FIG. 11 is an intermediate block diagram of steps and modules included in the control process using output data step or module 112 of FIG. 5, according to one embodiment
- FIG. 12 is a detailed block diagram of the configure support vector machine step or module 302 of the relationship of FIG. 7, according to one embodiment
- FIG. 13 is a detailed block diagram of the new training input data step or module 306 of FIG. 7, according to one embodiment
- FIG. 14 is a detailed block diagram of the train support vector machine step or module 308 of FIG. 7, according to one embodiment
- FIG. 15 is a detailed block diagram of the error acceptable step or module 310 of FIG. 7, according to one embodiment
- FIG. 16 is a representation of the architecture of an embodiment of the present invention having the additional capability of using laboratory values from a historical database 1210 ;
- FIG. 17 is an embodiment of controller 1202 of FIGS. 4 and 16 having a supervisory controller 1408 and a regulatory controller 1406 ;
- FIG. 18 illustrates various embodiments of controller 1202 of FIG. 17 used in the architecture of FIG. 4;
- FIG. 19 is a modular version of block 1502 of FIG. 18 illustrating the various different types of modules that may be utilized with a modular support vector machine 1206 , according to one embodiment;
- FIG. 20 illustrates an architecture for block 1502 having a plurality of modular support vector machines 1702 - 1702 n with pointers 1710 - 1710 n pointing to a limited set of support vector machine procedures 1704 - 1704 n , according to one embodiment;
- FIG. 21 illustrates an alternate architecture for block 1502 having a plurality of modular support vector machines 1702 - 1702 n with pointers 1710 - 1710 n to a limited set of support vector machine procedures 1704 - 1704 n , and with parameter pointers 1802 - 1802 n to a limited set of system parameter storage areas 1806 - 1806 n , according to one embodiment;
- FIG. 22 is a high level block diagram illustrating the key aspects of a process 1212 having process conditions 1906 used to produce a product 1216 having product properties 1904 from raw materials 1222 , according to one embodiment;
- FIG. 23 illustrates the various steps and parameters which may be used to perform the control of process 1212 to produce products 1216 from raw materials 1222 , according to one embodiment
- FIG. 24 is an exploded block diagram illustrating the various parameters and aspects that may make up the support vector machine 1206 , according to one embodiment
- FIG. 25 is an exploded block diagram of the input data specification 2204 and the output data specification 2206 of the support vector machine 1206 of FIG. 24, according to one embodiment;
- FIG. 26 is an exploded block diagram of the prediction timing control 2212 and the training timing control 2214 of the support vector machine 1206 of FIG. 24, according to one embodiment;
- FIG. 27 is an exploded block diagram of various examples and aspects of controller 1202 of FIG. 4, according to one embodiment
- FIG. 28 is a representative computer display of one embodiment of the present invention illustrating part of the configuration specification of the support vector machine block 1206 , according to one embodiment;
- FIG. 29 is a representative computer display of one embodiment of the present invention illustrating part of the data specification of the support vector machine block 1206 , according to one embodiment;
- FIG. 30 illustrates a computer screen with a pop-up menu for specifying the data system element of the data specification, according to one embodiment
- FIG. 31 illustrates a computer screen with detailed individual items of the data specification display of FIG. 29, according to one embodiment
- FIG. 32 is a detailed block diagram of an embodiment of the enable control step or module 602 of FIG. 10;
- FIG. 33 is a detailed block diagram of embodiments of steps and modules 802 , 804 and 806 of FIG. 12;
- FIG. 34 is a detailed block diagram of embodiments of steps and modules 808 , 810 , 812 and 814 of FIG. 12.
- FIG. 1 Computer System
- FIG. 1 illustrates a computer system 82 operable to execute a support vector machine for performing modeling and/or control operations.
- the computer system 82 may be any type of computer system, including a personal computer system, mainframe computer system, workstation, network appliance, Internet appliance, personal digital assistant (PDA), television system or other device.
- PDA personal digital assistant
- the term “computer system” can be broadly defined to encompass any device having at least one processor that executes instructions from a memory medium.
- the computer system 82 may include a display device operable to display operations associated with the support vector machine.
- the display device may also be operable to display a graphical user interface of process or control operations.
- the graphical user interface may comprise any type of graphical user interface, e.g., depending on the computing platform.
- the computer system 82 may include a memory medium(s) on which one or more computer programs or software components according to one embodiment of the present invention may be stored.
- the memory medium may store one or more support vector machine software programs (support vector machines) which are executable to perform the methods described herein.
- the memory medium may store a programming development environment application used to create and/or execute support vector machine software programs.
- the memory medium may also store operating system software, as well as other software for operation of the computer system.
- the term “memory medium” is intended to include an installation medium, e.g., a CD-ROM, floppy disks, or tape device; a computer system memory or random access memory such as DRAM, SRAM, EDO RAM, Rambus RAM, etc.; or a non-volatile memory such as a magnetic media, e.g., a hard drive, or optical storage.
- the memory medium may comprise other types of memory as well, or combinations thereof.
- the memory medium may be located in a first computer in which the programs are executed, or may be located in a second different computer which connects to the first computer over a network, such as the Internet. In the latter instance, the second computer may provide program instructions to the first computer for execution.
- support vector machine refers to at least one software program, or other executable implementation (e.g., an FPGA), that implements a support vector machine as described herein.
- the support vector machine software program may be executed by a processor, such as in a computer system.
- a processor such as in a computer system.
- the various support vector machine embodiments described below are preferably implemented as a software program executing on a computer system.
- FIG. 2 Computer System Block Diagram
- FIG. 2 is an embodiment of an exemplary block diagram of the computer system illustrated in FIG. 1. It is noted that any type of computer system configuration or architecture may be used in conjunction with the system and method described herein, as desired, and FIG. 2 illustrates a representative PC embodiment. It is also noted that the computer system may be a general purpose computer system such as illustrated in FIG. 1, or other types of embodiments. The elements of a computer not necessary to understand the present invention have been omitted for simplicity.
- the computer system 82 may include at least one central processing unit or CPU 160 which is coupled to a processor or host bus 162 .
- the CPU 160 may be any of various types, including an x86 processor, e.g., a Pentium class, a PowerPC processor, a CPU from the SPARC family of RISC processors, as well as others.
- Main memory 166 is coupled to the host bus 162 by means of memory controller 164 .
- the main memory 166 may store one or more computer programs or libraries according to the present invention.
- the main memory 166 also stores operating system software as well as the software for operation of the computer system, as well known to those skilled in the art.
- the host bus 162 is coupled to an expansion or input/output bus 170 by means of a bus controller 168 or bus bridge logic.
- the expansion bus 170 is preferably the PCI (Peripheral Component Interconnect) expansion bus, although other bus types may be used.
- the expansion bus 170 may include slots for various devices such as a video display subsystem 180 and hard drive 182 coupled to the expansion bus 170 , among others (not shown).
- FIG. 3 may provide a reference of consistent terms for describing an embodiment of the present invention.
- FIG. 3 is a nomenclature diagram which shows the various names for elements and actions used in describing various embodiments of the present invention.
- the boxes may indicate elements in the architecture and the labeled arrows may indicate actions.
- one embodiment of the present invention essentially utilizes support vector machines to provide predicted values of important and not readily obtainable process conditions 1906 and/or product properties 1904 to be used by a controller 1202 to produce controller output data 1208 used to control the process 1212 .
- a support vector machine 1206 may operate in conjunction with a historical database 1210 which provides input sensor(s) data 1220 .
- process control such as of a manufacturing plant.
- drawings and detailed description thereto are not intended to limit the invention to process control, but on the contrary, various embodiments of the invention may be contemplated to be applicable in many other areas as well, such as process measurement, manufacturing, supervisory control, regulatory control functions, optimization, real-time optimization, decision-making systems, data analysis, data mining, e-marketplaces, e-commerce, financial analysis, stock and/or bond analysis/management, as well as any other field or domain where predictive or classification models may be useful.
- components described herein as sensors or actuators may comprise software constructs or operations which provide or control information or information processes, rather than physical phenomena or processes.
- input data and training input data may be stored in a historical database with associated timestamps as indicated by a step or module 102 .
- the support vector machine 1206 may be configured and trained in a step or module 104 .
- the support vector machine 1206 may be used to predict output data 1218 using input data 1220 , as indicated by a step or module 106 .
- the support vector machine 1206 may then be retrained in a step or module 108 , and control using the output data may be enabled or disabled in a step or module 110 .
- control of the process using the output data may be performed in a step or module 112 .
- the system may collect and store the appropriate data, may configure and may train the support vector machine, may use the support vector machine to predict output data, and may enable control of the process using the predicted output data.
- Various embodiments of the present invention utilize a support vector machine 1206 , and are described in detail below.
- classifiers have been determined by choosing a structure, and then selecting a parameter estimation algorithm used to optimize some cost function.
- the structure chosen may fix the best achievable generalization error, while the parameter estimation algorithm may optimize the cost function with respect to the empirical risk.
- the support vector method is a recently developed technique which is designed for efficient multidimensional function approximation.
- the basic idea of support vector machines (SVMs) is to determine a classifier or regression machine which minimizes the empirical risk (i.e., the training set error) and the confidence interval (which corresponds to the generalization or test set error), that is, to fix the empirical risk associated with an architecture and then to use a method to minimize the generalization error.
- SVMs as adaptive models for binary classification and regression is that they provide a classifier with minimal VC (Vapnik-Chervonenkis) dimension which implies low expected probability of generalization errors.
- SVMs may be used to classify linearly separable data and nonlinearly separable data.
- SVMs may also be used as nonlinear classifiers and regression machines by mapping the input space to a high dimensional feature space. In this high dimensional feature space, linear classification may be performed.
- Support vector machines have been shown to have a relationship with other recent nonlinear classification and modeling techniques such as: radial basis function networks, sparse approximation, PCA (principle components analysis), and regularization. Support vector machines have also been used to choose radial basis function centers.
- a hyperplane capable of performing a linear separation of the training data is described by
- a canonical hyperplane is a hyperplane (in this case we consider the optimal hyperplane) in which the parameters are normalized in a particular manner.
- the training vectors for which this is the case, are called support vectors.
- a support vector machine which performs the task of classifying linearly separable data is defined as
- x i + and x i ⁇ are any input training vector examples from the positive and negative classes respectively.
- the above approach can be extended to find a hyperplane which minimizes the number of errors on the training set.
- This approach is also referred to as soft margin hyperplanes.
- the aim is to
- nonlinear classifier For some problems, improved classification results may be obtained using a nonlinear classifier.
- (20) which is a linear classifier.
- a nonlinear classifier may be obtained using support vector machines as follows.
- the classifier is obtained by the inner product x i T x where i ⁇ S, the set of support vectors. However, it is not necessary to use the explicit input data to form the classifier. Instead, all that is needed is to use the inner products between the support vectors and the vectors of the feature space.
- a kernel function may operate as a basis function for the support vector machine.
- the kernel function may be used to define a space within which the desired classification or prediction may be greatly simplified.
- kernel functions including:
- a multilayer network may be employed as a kernel function as follows. We have
- ⁇ is a sigmoid function
- a high-dimensional “tube” with a radius of acceptable error is constructed which minimizes the error of the data set while also maximizing the flatness of the associated curve or function.
- the tube is an envelope around the fit curve, defined by a collection of data points nearest the curve or surface, i.e., the support vectors.
- support vector machines offer an extremely powerful method of obtaining models for classification and regression. They provide a mechanism for choosing the model structure in a natural manner which gives low generalization error and empirical risk.
- Support vector machine 1206 may be built by specifying a kernel function, a number of inputs, and a number of outputs.
- a kernel function a number of inputs
- a number of outputs a number of outputs.
- some type of training process may be used to capture the behaviors and/or attributes of the system or process to be modeled.
- the modular aspect of one embodiment of the present invention as shown in FIG. 19 may take advantage of this way of simplifying the specification of a support vector machine. Note that more complex support vector machines may require more configuration information, and therefore more storage.
- support vector machine 1206 contemplate other types of support vector machine configurations for use with support vector machine 1206 .
- all that is required for support vector machine 1206 is that the support vector machine be able to be trained and retrained so as to provide the needed predicted values utilized in the process control.
- the coefficients used in support vector machine 1206 may be adjustable constants which determine the values of the predicted output data for given input data for any given support vector machine configuration.
- Support vector machines may be superior to conventional statistical models because support vector machines may adjust these coefficients automatically.
- support vector machines may be capable of building the structure of the relationship (or model) between the input data 1220 and the output data 1218 by adjusting the coefficients. While a conventional statistical model typically requires the developer to define the equation(s) in which adjustable constant(s) are used, the support vector machine 1206 may build the equivalent of the equation(s) automatically.
- the support vector machine 1206 may be trained by presenting it with one or more training set(s).
- the one or more training set(s) are the actual history of known input data values and the associated correct output data values.
- one embodiment of the present invention may use the historical database with its associated timestamps to automatically create one or more training set(s).
- the newly configured support vector machine is usually initialized by assigning random values to all of its coefficients.
- the support vector machine 1206 may use its input data 1220 to produce predicted output data 1218 .
- These predicted output data values 1218 may be used in combination with training input data 1306 to produce error data. These error data values may then be used to adjust the coefficients of the support vector machine.
- Support vector machines may be superior to computer statistical models because support vector machines do not require the developer of the support vector machine model to create the equations which relate the known input data and training values to the desired predicted values (i.e., output data). In other words, support vector machine 1206 may learn the relationships automatically in the training step or module 104 .
- support vector machine 1206 may require the collection of training input data with its associated input data, also called a training set.
- the training set may need to be collected and properly formatted.
- the conventional approach for doing this is to create a file on a computer on which the support vector machine is executed.
- creation of the training set is done automatically using a historical database 1210 (FIG. 4).
- This automatic step may eliminate errors and may save time, as compared to the conventional approach.
- Another benefit may be significant improvement in the effectiveness of the training function, since automatic creation of the training set(s) may be performed much more frequently.
- one embodiment of the present invention may include a computer implemented support vector machine which produces predicted output data values 1218 using a trained support vector machine supplied with input data 1220 at a specified interval.
- the predicted data 1218 may be supplied via a historical database 1210 to a controller 1202 , which may control a process 1212 which may produce a product 1216 .
- the process conditions 1906 and product properties 1904 may be maintained at a desired quality level, even though important process conditions and/or product properties may not be effectively measured directly, or modeled using conventional, fundamental or conventional statistical approaches.
- One embodiment of the present invention may be configured by a developer using a support vector machine configuration and step or module 104 .
- Various parameters of the support vector machine may be specified by the developer by using natural language without knowledge of specialized computer syntax and training.
- parameters specified by the user may include the type of kernel function, the number of inputs, the number of outputs, as well as algorithm parameters such as cost of constraint violations, and convergence tolerance (epsilon).
- Other possible parameters specified by the user may depend on which kernel is chosen (e.g., for gaussian kernels, one may specify the standard deviation, for polynomial kernels, one may specify the order of the polynomial). In one embodiment, there may be default values (estimates) for these parameters which may be overridden by user input.
- the system may allow an expert in the process being measured to configure the system without the use of a support vector machine expert.
- the support vector machine may be automatically trained on-line using input data 1220 and associated training input data 1306 having timestamps (for example, from clock 1230 ).
- the input data and associated training input data may be stored in a historical database 1210 , which may supply this data (i.e., input data 1220 and associated training input data 1306 ) to the support vector machine 1206 for training at specified intervals.
- the (predicted) output data value 1218 produced by the support vector machine may be stored in the historical database.
- the stored output data value 1218 may be supplied to the controller 1202 for controlling the process as long as the error data 1504 between the output data 1218 and the training input data 1306 is below an acceptable metric.
- the error data 1504 may also be used for automatically retraining the support vector machine. This retraining may typically occur while the support vector machine is providing the controller with the output data, via the historical database. The retraining of the support vector machine may result in the output data approaching the training input data as much as possible over the operation of the process. In this way, an embodiment of the present invention may effectively adapt to changes in the process, which may occur in a commercial application.
- a modular approach for the support vector machine may be utilized to simplify configuration and to produce greater robustness.
- the modularity may be broken out into specifying data and calling subroutines using pointers.
- data pointers 2204 and/or 2206 may be specified.
- a template approach as shown in FIGS. 29 and 30, may be used to assist the developer in configuring the support vector machine without having to perform any actual programming.
- the present invention in various embodiments is an on-line process control system and method.
- the term “on-line” indicates that the data used in various embodiments of the present invention is collected directly from the data acquisition systems which generate this data.
- An on-line system may have several characteristics. One characteristic may be the processing of data as the data is generated. This characteristic may also be referred to as real-time operation. Real-time operation in general demands that data be detected, processed, and acted upon fast enough to effectively respond to the situation. In a process control context, real-time may mean that the data may be responded to fast enough to keep the process in the desired control state.
- off-line methods may also be used.
- the data being used may be generated at some point in the past and there typically is no attempt to respond in a way that may effect the situation. It should be understood that while one embodiment of the present invention may use an on-line approach, alternate embodiments may substitute off-line approaches in various steps or modules.
- the embodiment described herein relates to process control, such as of a manufacturing plant, but is not intended to limit the application of the present invention to that domain, but rather, various embodiments of the invention are contemplated to be applicable in many other areas, as well, such as e-commerce, data analysis, stocks and bonds management and analysis, business decision-making, optimization, e-marketplaces, financial analysis, or any other field of endeavor where predictive or classification models may be useful.
- process control such as of a manufacturing plant
- various embodiments of the invention are contemplated to be applicable in many other areas, as well, such as e-commerce, data analysis, stocks and bonds management and analysis, business decision-making, optimization, e-marketplaces, financial analysis, or any other field of endeavor where predictive or classification models may be useful.
- specific steps or modules described herein which apply only to process control embodiments may be different, or omitted as appropriate or as desired.
- support vector machines and support vector machines as used in various embodiments of the present invention, combined with the description of the problem of making measurements in a process control environment given in the background section, illustrate that support vector machines add a unique and powerful capability to process control systems.
- SVMs may allow the inexpensive creation of predictions of measurements that may be difficult or impossible to obtain. This capability may open up a new realm of possibilities for improving quality control in manufacturing processes.
- support vector machines serve as a source of input data to be used by controllers of various types in controlling a process.
- the applications of the present invention in the fields of manufacturing and process control may be illustrative, and are not intended to limit the use of the invention to any particular domain.
- the “process” being controlled may be a financial analysis process, an e-commerce process, or any other process which may benefit from the use of predictive models.
- Expert systems may provide a completely separate and completely complimentary capability for predictive model based systems.
- Expert systems may be essentially decision-making programs which base their decisions on process knowledge which is typically represented in the form of if-then rules.
- Each rule in an expert system makes a small statement of truth, relating something that is known or could be known about the process to something that may be inferred from that knowledge.
- an expert system may reach conclusions or make decisions which mimic the decision-making of human experts.
- the present system adds a different capability of substituting support vector machines for measurements which may be difficult to obtain.
- the advantages of the present system may be both consistent with and complimentary to the capabilities provided in the above-noted patents and patent applications using expert systems.
- the combination of support vector machine capability with expert system capability in a control system may provide even greater benefits than either capability provided alone. For example, a process control problem may have a difficult measurement and also require the use of decision-making techniques in structuring or implementing the control response.
- greater results may be achieved than using either technique alone.
- One method of operation of one embodiment of the present invention may store input data and training data, may configure and may train a support vector machine, may predict output data using the support vector machine, may retrain the support vector machine, may enable or may disable control using the output data, and may control the process using output data.
- more than one step or module may be carried out in parallel.
- the first two steps or modules in one embodiment of the present invention may be carried out in parallel.
- input data and training input data may be stored in the historical database with associated timestamps.
- the support vector machine may be configured and trained in step or module 104 .
- step or module 106 the support vector machine may be used to predict output data using input data stored in the historical database.
- step or module 108 the support vector machine may be retrained using training input data stored in the historical database.
- step or module 110 control using the output data may be enabled or disabled in parallel.
- step or module 112 control of the process using the output data may be carried out when enabled by step or module 110 .
- an order pointer 120 indicates that step or module 102 and step or module 104 may be performed in parallel.
- step or module 102 it is denoted as “store input data and training input data”.
- FIG. 6 may show step or module 102 in more detail.
- step or module 102 may have the function of storing input data 1220 and storing training input data 1306 . Both types of data may be stored in a historical database 1210 (see FIG. 4 and related structure diagrams), for example. Each stored input data and training input data entry in historical database 1210 may utilize an associated timestamp. The associated timestamp may allow the system and method of one embodiment of the present invention to determine the relative time that the particular measurement or predicted value or measured value was taken, produced or derived.
- step or module 102 A representative example of step or module 102 is shown in FIG. 6, which is described as follows.
- the order pointer 120 indicates that input data 1220 and training input data 1306 may be stored in parallel in the historical database 1210 .
- input data from sensors 1226 may be produced by sampling at specific time intervals the sensor signal 1224 provided at the output of the sensor 1226 . This sampling may produce an input data value or number or signal.
- Each of data points may be called an input data 1220 as used in this application.
- the input data may be stored with an associated timestamp in the historical database 1210 , as indicated by step or module 202 .
- the associated timestamp that is stored in the historical database with the input data may indicate the time at which the input data was produced, derived, calculated, etc.
- Step or module 204 shows that the next input data value may be stored by step or module 202 after a specified input data storage interval has lapsed or timed out.
- This input data storage interval realized by step or module 204 may be set at any specific value (e.g., by the user). Typically, the input data storage interval is selected based on the characteristics of the process being controlled.
- training input data 1306 may also be stored. Specifically, as shown by step or module 206 , training input data may be stored with associated timestamps in the historical database 1210 . Again, the associated timestamps utilized with the stored training input data may indicate the relative time at which the training input data was derived, produced or obtained. It should be understood that this usually is the time when the process condition or product property actually existed in the process or product.
- the training input data may be stored in the historical database 1210 in accordance with a specified training input data storage interval, as indicated by step or module 208 . While this may be a fixed time period, it typically is not. More typically, it is a time interval which is dictated by when the training data is actually produced by the laboratory or other mechanism utilized to produce the training input data 1306 . As is discussed in detail herein, this often times takes a variable amount of time to accomplish depending upon the process, the mechanisms being used to produce the training data, and other variables associated both with the process and with the measurement/analysis process utilized to produce the training input data.
- the specified input data storage interval is usually considerably shorter than the specified training input data storage interval of step or module 204 .
- step or module 102 thus results in the historical database 1210 receiving values of input data and training input data with associated timestamps. These values may be stored for use by the system and method of one embodiment of the present invention in accordance with the steps and modules discussed in detail below.
- the order pointer 120 shows that a configure and train support vector machine step or module 104 may be performed in parallel with the store input data and training input data step or module 102 .
- the purpose of step or module 104 may be to configure and train the support vector machine 1206 (see FIG. 4).
- the order pointer 120 may indicate that the step or module 104 plus all of its subsequent steps and/or modules may be performed in parallel with the step or module 102 .
- FIG. 7 shows a representative example of the step or module 104 . As shown in FIG. 7, this representative embodiment is made up of five steps and/or modules 302 , 304 , 306 , 308 and 310 .
- an order pointer 120 shows that the first step or module of this representative embodiment is a configure support vector machine step or module 302 .
- Configure support vector machine step or module 302 may be used to set up the structure and parameters of the support vector machine 1206 that is utilized by the system and method of one embodiment of the present invention. As discussed below in detail, the actual steps and/or modules utilized to set up the structure and parameters of support vector machine 1206 may be shown in FIG. 12.
- an order pointer 312 indicates that a wait training data interval step or module 304 may occur or may be utilized.
- the wait training data interval step or module 304 may specify how frequently the historical database 1210 is to be looked at to determine if any new training data to be utilized for training of the support vector machine 1206 exists. It should be noted that the training data interval of step or module 304 may not be the same as the specified training input data storage interval of step or module 206 of FIG. 6. Any desired value for the training data interval may be utilized for step or module 304 .
- An order pointer 314 indicates that the next step or module may be a new training input data step or module 306 .
- This new training input data step or module 306 may be utilized after the lapse of the training data interval specified by step or module 304 .
- the purpose of step or module 306 may be to examine the historical database 1210 to determine if new training data has been stored in the historical database since the last time the historical database 1210 was examined for new training data.
- the presence of new training data may permit the system and method of one embodiment of the present invention to train the support vector machine 1206 if other parameters/conditions are met.
- FIG. 13 discussed below shows a specific embodiment for the step or module 306 .
- An order pointer 318 indicates that if step or module 306 indicates that new training data is not present in the historical database 1210 , the step or module 306 returns operation to the step or module 304 .
- train support vector machine step or module 308 may be the actual training of the support vector machine 1206 using the new training data retrieved from the historical database 1210 .
- step or module 308 the step or module 104 as indicated by an order pointer 320 may move to an error acceptable step or module 310 .
- Error acceptable step or module 310 may determine whether the error data 1504 produced by the support vector machine 1206 is within an acceptable metric, indicating error that the support vector machine 1206 is providing output data 1218 that is close enough to the training input data 1306 to permit the use of the output data 1218 from the support vector machine 1206 .
- an acceptable error may indicate that the support vector machine 1206 has been “trained” as training is specified by the user of the system and method of one embodiment of the present invention.
- a representative example of the error acceptable step or module 310 is shown in FIG. 15, which is discussed in detail below.
- an order pointer 322 indicates that the step or module 104 returns to the wait training data interval step or module 304 .
- the step or module 104 has not completed training the support vector machine 1206 . Because the support vector machine 1206 has not completed being trained, training may continue before the system and method of one embodiment of the present invention may move to a step or module 106 discussed below.
- step or module 104 may allow the system and method of one embodiment of the present invention to move to the steps or modules 106 and 112 discussed below. The specific embodiments for step or module 104 are now discussed.
- Step or module 302 may allow the uses of one embodiment of the present invention to both configure and re-configure the support vector machine.
- the order pointer 120 indicates that the first step or module may be a specify training and prediction timing control step or module 802 .
- Step or module 802 may allow the person configuring the system and method of one embodiment of the present invention to specify the training interval(s) and the prediction timing interval(s) of the support vector machine 1206 .
- FIG. 33 shows a representative embodiment of the step or module 802 .
- step or module 802 may be made up of four steps and/or modules 3102 , 3104 , 3106 , and 3108 .
- Step or module 3102 may be a specify training timing method step or module.
- the specify training timing method step or module 3102 may allow the user configuring one embodiment of the present invention to specify the method or procedure to be followed to determine when the support vector machine 1206 is being trained. A representative example of this may be when all of the training data has been updated. Another example may be the lapse of a fixed time interval. Other methods and procedures may be utilized.
- An order pointer indicates that a specify training timing parameters step or module 3104 may then be carried out by the user of one embodiment of the present invention.
- This step or module 3104 may allow for any needed training timing parameters to be specified.
- the method or procedure of step or module 3102 may result in zero or more training timing parameters, each of which may have a value.
- This value may be a time value, a module number (e.g., in the modular embodiment of the present invention of FIG. 19), or a data pointer.
- the user may configure one embodiment of the present invention so that considerable flexibility may be obtained in how training of the support vector machine 1206 may occur, based on the method or procedure of step or module 3102 .
- a specify prediction timing method step or module 3106 may be configured by the user of one embodiment of the present invention. This step or module 3106 may specify the method or procedure that may be used by the support vector machine 1206 to determine when to predict output data values 1218 after the SVM has been trained. This is in contrast to the actual training of the support vector machine 1206 .
- Representative examples of methods or procedures for step or module 3106 may include: execute at a fixed time interval, execute after the execution of a specific module, and execute after a specific data value is updated. Other methods and procedures may also be used.
- An order indicator in FIG. 33 shows that a specify prediction timing parameters step or module 3108 may then be carried out by the user of one embodiment of the present invention.
- Any needed prediction timing parameters for the method or procedure of step or module 3106 may be specified.
- the time interval may be specified as a parameter for the execute at a specific time interval method or procedure.
- Another example may be the specification of a module identifier when the execute after the execution of a particular module method or procedure is specified.
- Another example may be a data pointer when the updating of a data value method or procedure is used.
- Other operation timing parameters may be used.
- a specify support vector machine size step or module 804 may be carried out. This step or module 804 may allow the user to specify the size and structure of the support vector machine 1206 that is used by one embodiment of the present invention.
- step or module 804 a representative example of how the support vector machine size may be specified by step or module 804 is shown.
- An order pointer indicates that a specific number of inputs step or module 3110 may allow the user to indicate the number of inputs that the support vector machine 1206 may have. Note that the source of the input data for the specific number of inputs in the step or module 3110 is not specified. Only the actual number of inputs is specified in the step or module 3110 .
- a kernel function may be determined for the support vector machine.
- the specific kernel function chosen may determine the kind of support vector machine (e.g., radial basis function, polynomial, multi-layer network, etc.).
- additional parameters may be specified. For example, as mentioned above, for gaussian kernels, one may specify the standard deviation, for polynomial kernels, one may specify the order of the polynomial. In one embodiment, there may be default values (estimates) for these parameters which may be overridden by user input.
- various other training or execution parameters of the SVM not shown in FIG. 33 may be specified by the user (e.g., algorithm parameters such as cost of constraint violations, and convergence tolerance (epsilon)).
- An order pointer indicates that once the kernel function has been specified in step or module 3112 , a specific number of outputs step or module 3114 may allow the user to indicate the number of outputs that the support vector machine 1206 may have. Note that the storage location for the outputs of the support vector machine 1206 is not specified in step or module 3114 . Instead, only the actual number of outputs is specified in the step or module 3114 .
- one embodiment of the present invention may contemplate any form of presently known or future developed configuration for the structure of the support vector machine 1206 .
- steps or modules 3110 , 3112 , and 3114 may be modified so as to allow the user to specify these different configurations for the support vector machine 1206 .
- Step or module 806 may allow both the training and prediction modes to be specified.
- Step or module 806 may also allow for controlling the storage of the data produced in the training and prediction modes.
- Step or module 806 may also allow for data coordination to be used in training mode.
- step or module 806 A representative example of the specific training and prediction modes step or module 806 is shown in FIG. 33. It is made up of step or modules 3116 , 3118 , and 3120 .
- an order pointer indicates that the user may specify prediction and train modes in step or module 3116 .
- These prediction and train modes may be yes/no or on/off settings, in one embodiment. Since the system and method of one embodiment of the present invention is in the train mode at this stage in its operation, step or module 3116 typically goes to its default setting of train mode only. However, it should be understood that various embodiments of the present invention may contemplate allowing the user to independently control the prediction or train modes.
- the support vector machine 1206 may predict output data values 1218 using retrieved input data values 1220 , as described below.
- training mode is enabled or “on”
- the support vector machine 1206 may monitor the historical database 1210 for new training data and may train using the training data, as described below.
- An order pointer indicates that once the prediction and train modes have been specified in step or module 3116 , the user may specify prediction and train storage modes in step or module 3118 . These prediction and train storage modes may be on/off, yes/no values, similar to the modes of step or module 3116 .
- the prediction and train storage modes may allow the user to specify whether the output data produced in the prediction and/or training may be stored for possible later use. In some situations, the user may specify that the output data is not to be stored, and in such a situation the output data will be discarded after the prediction or train mode has occurred.
- Examples of situations where storage may not be needed include: (1) if the error acceptable metric value in the train mode indicates that the output data is poor and retraining is necessary; (2) in the prediction mode, where the output data is not stored but is only used. Other situations may arise where no storage is warranted.
- An order pointer indicates that a specify training data coordination mode step or module 3120 may then be specified by the user. Oftentimes, training input data 1306 may be correlated in some manner with input data 1220 . Step or module 3120 may allow the user to deal with the relatively long time period required to produce training input data 1306 from when the measured state(s) existed in the process. First, the user may specify whether the most recent input data is to be used with the training data, or whether prior input data is to be used with the training data. If the user specifies that prior input data is to be used, the method of determining the time of the prior input data may be specified in step or module 3120 .
- steps and modules 808 , 810 , 812 and 814 may be carried out. Specifically, the user may follow specify input data step or module 808 , specify output data step or module 810 , specify training input data step or module 812 , and specify error data step or module 814 . Essentially, these four steps and/or modules 808 - 814 may allow the user to specify the source and destination of input and output data for both the (run) prediction and training modes, and the storage location of the error data determined in the training mode.
- FIG. 34 shows a representative embodiment used for all of the steps and/or modules 808 - 814 as follows.
- Steps and/or modules 3202 , 3204 , and 3206 essentially may be directed to specifying the data location for the data being specified by the user.
- steps and/or modules 3208 - 3216 may be optional in that they allow the user to specify certain options or sanity checks that may be performed on the data as discussed below in more detail.
- step or module 3202 is called specify data system.
- specify data system typically, in a chemical plant, there is more than one computer system utilized with a process being controlled.
- Step or module 3202 may allow for the user to specify which computer system(s) contains the data or storage location that is being specified.
- the user may specify the data type using step or module 3204 : specify data type.
- the data type may indicate which of the many types of data and/or storage modes is desired. Examples may include current (most recent) values of measurements, historical values, time averaged values, setpoint values, limits, etc.
- the user may specify a data item number or identifier using step or module 3206 .
- the data item number or identifier may indicate which of the many instances of the specify data type in the specified data system is desired. Examples may include the measurement number, the control loop number, the control tag name, etc.
- the user may specify the following additional parameters.
- the user may specify the oldest time interval boundary using step or module 3208 , and may specify the newest time interval boundary using step or module 3210 .
- these boundaries may be utilized where a time weighted average of a specified data value is needed.
- the user may specify one particular time when the data value being specified is a historical data point value.
- Sanity checks on the data being specified may be specified by the user using steps and/or modules 3212 , 3214 and 3216 as follows.
- the user may specify a high limit value using step or module 3212 , and may specify a low limit value using step or module 3214 . Since sensors sometimes fail, for example, this sanity check may allow the user to prevent the system and method of one embodiment of the present invention from using false data from a failed sensor. Other examples of faulty data may also be detected by setting these limits.
- the high and low limit values may be used for scaling the input data.
- Support vector machines may be typically trained and operated using input, output and training input data scaled within a fixed range. Using the high and low limit values may allow this scaling to be accomplished so that the scaled values use most of the range.
- the user may know that certain values will normally change a certain amount over a specific time interval. Thus, changes which exceed these limits may be used as an additional sanity check. This may be accomplished by the user specifying a maximum change amount in step or module 3216 .
- Sanity checks may be used in the method of one embodiment of the present invention to prevent erroneous training, prediction, and control. Whenever any data value fails to pass the sanity checks, the data may be clamped at the limit(s), or the operation/control may be disabled. These tests may significantly increase the robustness of various embodiments of the present invention.
- the coefficients may be normally set to random values in their allowed ranges. This may be done automatically, or it may be performed on demand by the user (for example, using softkey 2616 in FIG. 28).
- the wait training input data interval is much shorter than the time period (interval) when training input data becomes available.
- This wait training input data interval may determine how often the training input data will be checked to determine whether new training input data has been received. Obviously, the more frequently the training input data is checked, the shorter the time interval will be from when new training input data becomes available to when retraining has occurred.
- the configuration for the support vector machine 1206 and specifying its wait training input data interval may be done by the user. This interval may be inherent in the software system and method which contains the support vector machine of one embodiment of the present invention. Preferably, it is specifically defined by the entire software system and method of one embodiment of the present invention. Next, the support vector machine 1206 is trained.
- An order pointer 314 indicates that once the wait training input data interval 304 has elapsed, the new training input data step or module 306 may occur.
- FIG. 13 shows a representative embodiment of the new training input data step or module 306 .
- a retrieve current training input timestamp from historical database step or module 902 may first retrieve from the historical database 1210 the current training input data timestamp(s).
- a compare current training input data timestamp to stored training input data timestamp step or module 904 may compare the current training input data timestamp(s) with saved training input data timestamp(s). Note that when the system and method of one embodiment of the present invention is first started, an initialization value may be used for the saved training input data timestamp. If the current training input data timestamp is the same as the saved training input data timestamp, this may indicate that new training input data does not exist. This situation on no new training input data may be indicated by order pointer 318 .
- Step or module 904 may function to determine whether any new training input data is available for use in training the support vector machine. It should be understood that, in various embodiments of the present invention, the presence of new training input data may be detected or determined in various ways. One specific example is where only one storage location is available for training input data and the associated timestamp. In this case, detecting or determining the presence of new training input data may be carried out by saving internally in the support vector machine the associated timestamp of the training input data from the last time the training input data was checked, and periodically retrieving the timestamp from the storage location for the training input data and comparing it to the internally saved value of the timestamp. Other distributions and combinations of storage locations for timestamps and/or data values may be used in detecting or determining the presence of new training input data.
- step or module 904 indicates that the current training input data timestamp is different from the saved training input data timestamp, this may indicate that new training input data has been received or detected.
- This new training input data timestamp may be saved by a save current training input data timestamp step or module 906 . After this current timestamp of training input data has been saved, the new training data step or module 306 is completed, and one embodiment of the present invention may move to the train support vector machine step or module 308 of FIG. 7 as indicated by the order pointer.
- the train support vector machine step or module 308 may be the step or module where the support vector machine 1206 is trained.
- FIG. 14 shows a representative embodiment of the train support vector machine step or module 308 .
- an order pointer 316 indicates that a retrieve current training input data from historical database step or module 1002 may occur.
- one or more current training input data values may be retrieved from the historical database 1210 .
- the number of current training input data values that is retrieved may be equal to the number of outputs of the support vector machine 1206 that is being trained.
- the training input data is normally scaled. This scaling may use the high and low limit values specified in the configure and train support vector machine step or module 104 .
- An order pointer shows that a choose training input data time step or module 1004 may be carried out next.
- the data time (as indicated by their associated timestamps) for them is different. The reason for this is that typically the sampling schedule used to produce the training input data is different for the various training input data.
- current training input data often has varying associated timestamps. In order to resolve these differences, certain assumptions have to be made. In certain situations, the average between the timestamps may be used. Alternately, the timestamp of one of the current training input data may be used. Other approaches also may be employed.
- the input data at the training input data time may be retrieved from the historical database 1210 as indicated by step or module 1006 .
- the input data is normally scaled. This scaling may use the high and low limit values specified in the configure and train support vector machine step or module 104 .
- the support vector machine 1206 may predict output data from the retrieved input data, as indicated by step or module 406 .
- the predicted output data from the support vector machine 1206 may then be stored in the historical database 1210 , as indicated by step or module 408 .
- the output data is normally produced in a scaled form, since all the input and training input data is scaled. In this case, the output data may be de-scaled. This de-scaling may use the high and low limit values specified in the configure and train support vector machine step or module 104 .
- error data may be computed using the output data from the support vector machine 1206 and the training input data, as indicated by step or module 1012 .
- error data 1504 as used in step or module 1012 may be a set of error data value for all of the predicted outputs from the support vector machine 1206 .
- one embodiment of the present invention may also contemplate using a global or cumulative error data for evaluating whether the predicted output data values are acceptable.
- the support vector machine 1206 may be retrained using the error data 1504 and/or the training input data 1306 .
- One embodiment of the present invention may contemplate any method of training the support vector machine 1306 .
- the error data 1504 may be stored in the historical database 1210 in step or module 1016 . It should be noted that the error data 1504 shown here may be the individual data for each output. These stored error data 1504 may provide a historical record of the error performance for each output of the support vector machine 1206 .
- the support vector machine 1206 may require many presentations of training sets to be adequately trained (i.e., to produce an acceptable metric). In this case, two alternate approaches may be used to train the support vector machine 1206 , among other approaches.
- the support vector machine 1206 may save the training sets (i.e., the training input data and the associated input data which is retrieved in step or module 308 ) in a database of training sets, which may then be repeatedly presented to the support vector machine 1206 to train the support vector machine.
- the user may be able to configure the number of training sets to be saved. As new training data becomes available, new training sets may be constructed and saved. When the specified number of training sets has been accumulated (e.g., in a list or buffer), the next training set created based on new data may “bump” the oldest training set from the list or buffer. This oldest training set may then be discarded.
- a second approach which may be used is to maintain a time history of input data and training input data in the historical database 1210 (e.g., in a list or buffer), and to search the historical database 1210 , locating training input data and constructing the corresponding training set by retrieving the associated input data.
- the combination of the support vector machine 1206 and the historical database 1210 containing both the input data and the training input data with their associated timestamps may provide a very powerful platform for building, training and using the support vector machine 1206 .
- One embodiment of the present invention may contemplate various other modes of using the data in the historical database 1210 and the support vector machine 1206 to prepare training sets for training the support vector machine 1206 .
- FIG. 15 shows a representative embodiment of the error acceptable step or module 310 .
- an order pointer 320 indicates that a compute global error using saved global error step or module 1102 may occur.
- the term global error as used herein means the error over all the outputs and/or over two or more training sets (cycles) of the support vector machine 1206 .
- the global error may reduce the effects of variation in the error from one training set (cycle) to the next.
- One cause for the variation is the inherent variation in tests used to generate the training input data.
- the global error may be saved in step or module 1104 .
- the global error may be saved internally in the support vector machine 1206 , or it may be stored in the historical database 1210 . Storing the global error in the historical database 1210 may provide a historical record of the overall performance of the support vector machine 1206 .
- step or module 1106 may be used to determine if the global error is statistically different from zero. Step or module 1106 may determine whether a sequence of global error values falls within the expected range of variation around the expected (desired) value of zero, or whether the global error is statistically significantly different from zero. Step or module 1106 may be important when the training input data used to compute the global error has significant random variability. If the support vector machine 1206 is making accurate predictions, the random variability in the training input data (for example, caused by lab variation) may cause random variation of the global error around zero. Step or module 1106 may reduce the tendency to incorrectly classify as not acceptable the predicted outputs of the support vector machine 1206 .
- step or module 104 If the global error is not statistically different from zero, then the global error is acceptable, and one embodiment of the present invention may move to order pointer 122 .
- An acceptable error indicated by order pointer 122 means that the support vector machine 1206 is trained. This completes step or module 104 .
- step or module 1108 which is called training input data statistically valid.
- step or module 1108 is not needed in the training mode of step or module 104 .
- a global error statistically different from zero moves directly to order pointer 322 .
- the training input data in the retraining mode is not statistically valid, this may indicate that the acceptability of the global error may not be determined, and one embodiment of the present invention may move to order pointer 122 . However, if the training input data is statistically valid, this may indicate that the error is not acceptable, and one embodiment of the present invention may move back to the wait training input data interval step or module 304 , as indicated in FIG. 7.
- the steps and/or modules described here for determining whether the global error is acceptable constitute one example of implementing a global error acceptable metric. It should be understood that different process characteristics, different sampling frequencies, and/or different measurement techniques (for process conditions and product properties) may indicate alternate methods of determining whether the error is acceptable. One embodiment of the present invention may contemplate any method of creating an error acceptable metric.
- step or module 104 may configure and train the support vector machine 1206 for use in one embodiment of the present invention.
- the order pointer 122 indicates that there are two parallel paths that one embodiment of the present invention may use after the configure and train support vector machine step or module 104 .
- One of the paths, which the predict output data using support vector machine step or module 106 described below is part of, may be used for: predicting output data using the support vector machine 1206 ; retraining the support vector machine 1206 using these predicted output data; and disabling control of the controlled process when the (global) error from the support vector machine 1206 exceeds a specified error acceptable metric (criterion).
- the other path may be the actual control of the process using the predicted output data from the support vector machine 1206 .
- this step or module 106 may use the support vector machine 1206 to produce output data for use in control of the process and for retraining the support vector machine 1206 .
- FIG. 8 shows a representative embodiment of step or module 106 .
- a wait specified prediction interval step or module 402 may utilize the method or procedure specified by the user in steps and/or modules 3106 and 3108 for determining when to retrieve input data.
- one embodiment of the present invention may move to a retrieve input data at current time from historical database step or module 404 .
- the input data may be retrieved at the current time. That is, the most recent value available for each input data value may be retrieved from the historical database 1210 .
- the support vector machine 1206 may then predict output data from the retrieved input data, as indicated by step or module 406 .
- This output data may be used for process control, retraining, and/or control purposes as discussed below in subsequent sections. Prediction may be done using any presently known or future developed approach.
- a retrain support vector machine step or module 108 may be used.
- FIG. 9 shows a representative embodiment of the retrain support vector machine step or module 108 .
- an order pointer 124 shows that a new training input data step or module 306 may determine if new training input data has become available.
- FIG. 13 shows a representative embodiment of the new training input data step or module 306 . Step or module 306 is described above in connection with FIG. 7.
- one embodiment of the present invention may return to the predict output data using support vector machine step or module 106 , as shown in FIG. 5.
- the support vector machine 1206 may be retrained, as indicated by step or module 308 .
- a representative example of step or module 308 is shown in FIG. 14. It is noted that training of the support vector machine is the same as retraining, and retraining is described in connection with FIG. 7, above.
- an order pointer 128 may cause one embodiment of the present invention to move to an enable/disable control step or module 110 discussed below.
- one embodiment of the present invention may move to an enable/disable control step or module 110 .
- the purpose of the enable/disable control step or module 110 may be to prevent the control of the process using output data (predicted values) produced by the support vector machine 1206 when the error is not unacceptable (i.e. when the error is “poor”).
- FIG. 10 A representative example of the enable/disable control step or module 110 is shown in FIG. 10.
- the function of module 110 may be to enable control of the controlled process if the error is acceptable, and to disable control if the error is unacceptable.
- an order pointer 128 may move one embodiment of the present invention to an error acceptable step or module 310 .
- control of the controlled process is disabled by a disable control step or module 604 .
- the disable control step or module 604 may set a flag or indicator which may be examined by the control process using output data step or module 112 . The flag may indicate that the output data should not be used for control.
- FIG. 32 shows a representative embodiment of the enable control step or module 602 .
- an order pointer 142 may cause one embodiment of the present invention first to move to an output data indicates safety or operability problems step or module 3002 . If the output data does not indicate a safety or operability problem, this may indicate that the process 1212 may continue to operate safely. Thus, processing may move to the enable control using output data step or module 3006 .
- one embodiment of the present invention may recommend that the process being controlled be shut down, as indicated by a recommend process shutdown step or module 3004 .
- This recommendation to the operator of the process 1212 may be made using any suitable approach.
- One example of recommendation to the operator is a screen display or an alarm indicator.
- This safety feature may allow one embodiment of the present invention to prevent the controlled process 1212 from reaching a critical situation.
- Step or module 3006 may set a flag or indicator which may be examined by step or module 112 , indicating that the output data should be used to control the process.
- the enable/disable control step or module 110 may provide the function to one embodiment of the present invention of (1) allowing control of the process 1212 using the output data in step or module 112 , (2) preventing the use of the output data in controlling the process 1212 , but allowing the process 1212 to continue to operate, or (3) shutting down the process 1212 for safety reasons.
- the embodiment described herein relates to process control, such as of a manufacturing plant, and is not intended to limit the application of various embodiments of the present invention to that domain, but rather, various embodiments of the invention may be contemplated to be applicable in many other areas, as well, such as e-commerce, data analysis, stocks and bonds management and analysis, business decision-making, optimization, e-marketplaces, financial analysis, or any other field of endeavor where predictive or classification models may be useful.
- specific steps or modules described herein which apply only to process control embodiments may be different, or omitted as appropriate or as desired.
- the order pointer 122 indicates that the control of the process using the output data from the support vector machine 1206 may run in parallel with the prediction of output data using the support vector machine 1206 , the retraining of the support vector machine 1206 , and the enable/disable control of the process 1212 .
- FIG. 11 shows a representative embodiment of the control process using output data step or module 112 .
- the order pointer 122 may indicate that one embodiment of the present invention may first move to a wait controller interval step or module 702 .
- the interval at which the controller may operate may be any pre-selected value. This interval may be a time value, an event, or the occurrence of a data value. Other interval control methods or procedures may be used.
- one embodiment of the present invention may move to a control enabled step or module 704 . If control has been disabled by the enable/disable control step or module 110 , one embodiment of the present invention may not control the process 1212 using the output data. This may be indicated by the order pointer marked “NO” from the control enabled step or module 704 .
- Step or module 706 may show that the output data 1218 (see FIG. 4) produced by the support vector machine 1206 and stored in the historical database 1210 is retrieved ( 1214 ) and used by the controller 1202 to compute controller output data 1208 for control of the process 1212 .
- This control by the controller 1202 of the process 1212 may be indicated by an effectively control process using controller to compute controller output step or module 708 of FIG. 11.
- one embodiment of the present invention may effectively control the process using the output data from the support vector machine 1206 .
- the control of the process 1212 may be any presently known or future developed approach, including the architecture shown in FIGS. 18 and 19. It should also be understood that the process 1212 may be any kind of process, including an analysis process, a business process, a scientific process, an e-commerce process, or any other process wherein predictive models may be useful.
- the process 1212 may continue to be controlled by the controller 1202 without the use of the output data.
- Section III (Use in Combination with Expert Systems) is one method of operation of one embodiment of the present invention. Discussed in this Section is one structure (architecture) of one embodiment of the present invention. However, it should be understood that in the description set forth above, the modular structure (architecture) of the embodiment of the present invention is also discussed in connection with the operation. Thus, certain portions of the structure of the embodiment of the present invention have inherently been described in connection with the description set forth above in Section III.
- One embodiment of the present invention may comprise one or more software systems.
- software system refers to a collection of one or more executable software programs, and one or more storage areas, for example, RAM or disk.
- a software system may be understood to comprise a fully functional software embodiment of a function, which may be added to an existing computer system to provide new function to that computer system.
- Software systems generally are constructed in a layered fashion. In a layered system, a lowest level software system is usually the computer operating system which enables the hardware to execute software instructions. Additional layers of software systems may provide, for example, historical database capability. This historical database system may provide a foundation layer on which additional software systems may be built. For example, a support vector machine software system may be layered on top of the historical database. Also, a supervisory control software system may be layered on top of the historical database system.
- a software system may thus be understood to be a software implementation of a function which may be assembled in a layered fashion to produce a computer system providing new functionality.
- the interface provided by one software system to another software system is well-defined. It should be understood in the context of one embodiment of the present invention that delineations between software systems may be representative of one implementation. However, one embodiment of the present invention may be implemented using any combination or separation of software systems.
- FIG. 4 shows one embodiment of the structure of the present invention, as applied to a manufacturing process.
- the process 1212 being controlled may receive raw materials 1222 and may produce product 1216 .
- Sensors 1226 (of any suitable type) may provide sensor signals 1221 , 1224 , which may be supplied to the historical database 1210 for storage with associated timestamps. It should be noted that any suitable type of sensor 1226 may be employed which provides sensor signals 1221 , 1224 .
- the historical database 1210 may store the sensor signals 1224 that may be supplied to it with associated timestamps as provided by a clock 1230 .
- the historical database 1210 may also store output data 1218 from the support vector machine 1206 . This output data 1218 may also have associated timestamps provided by the support vector machine 1206 .
- Historical databases are generally discussed in Hale and Sellars, “Historical Data Recording for Process Computers,” 77 Chem. Eng'g Progress 38 AICLE, New York, (1981), which is hereby incorporated by reference.
- the historical database 1210 that is used may be capable of storing the sensor input data 1224 with associated timestamps, and the predicted output data 1218 from the support vector machine 1206 with associated timestamps.
- the historical database 1210 may store the sensor data 1224 in a compressed fashion to reduce storage space requirements, and will store sampled (lab) data 1304 in uncompressed form.
- the historical database 1210 may be present in a chemical plant in the existing process control system.
- One embodiment of the present invention may utilize this historical database to achieve the improved process control obtained by the embodiment of the present invention.
- a historical database is a special type of database in which at least some of the data is stored with associated time stamps. Usually the time stamps may be referenced in retrieving (obtaining) data from a historical database.
- the historical database 1210 may be implemented as a stand alone software system which forms a foundation layer on which other software systems, such as the support vector machine 1206 , may be layered.
- a foundation layer historical database system may support many functions in a process control environment.
- the historical database may serve as a foundation for software which provides graphical displays of historical process data for use by a plant operator.
- a historical database may also provide data to data analysis and display software which may be used by engineers for analyzing the operation of the process 1212 .
- Such a foundation layer historical database system may often contain a large number of sensor data inputs, possibly a large number of laboratory data inputs, and may also contain a fairly long time history for these inputs.
- one embodiment of the present invention may require a very limited subset of the functions of the historical database 1210 .
- an embodiment of the present invention may require the ability to store at least one training data value with the timestamp which indicates an associated input data value, and the ability to store at least one associated input data value.
- a historical database foundation layer system does not exist, it may be desirable to implement the essential historical database functions as part of the support vector machine software.
- one embodiment of the present invention may be implemented in a single software system.
- the historical database 1210 may be implemented using a number of methods.
- the historical database may be built as a random access memory (RAM) database.
- the historical database 1210 may also be implemented as a disk-based database, or as a combination of RAM and disk databases. If an analog support vector machine 1206 is used in one embodiment of the present invention, the historical database 1210 may be implemented using a physical storage device.
- One embodiment of the present invention may contemplate any computer or analog means of performing the functions of the historical database 1210 .
- the support vector machine 1206 may retrieve input data 1220 with associated timestamps. The support vector machine 1206 may use this retrieved input data 1220 to predict output data 1218 . The output data 1218 with associated timestamps may be supplied to the historical database 1210 for storage.
- a representative embodiment of the support vector machine 1206 is described above in Section I (Overview of Support Vector Machines). It should be understood that support vector machines, as used in one embodiment of the present invention, may be implemented in any way. For example, one embodiment may use a software implementation of a support vector machine 1206 . It should be understood, however, that any form of implementing a support vector machine 1206 may be used in one embodiment of the present invention, including physical analog forms. Specifically, as described below, the support vector machine may be implemented as a software module in a modular support vector machine control system.
- the support vector machine 1206 may be implemented in analog or digital form and also, for example, the controller 1202 may also be implemented in analog or digital form. It should be understood, with respect to the method steps or modules as described above for the functioning of the systems as described in this section, that operations such as computing (which imply the operation of a digital computer) may also be carried out in analog equivalents or by other methods.
- the output data 1214 with associated timestamps stored in the historical database 1210 may be supplied by a path 1214 to the controller 1202 .
- This output data 1214 may be used by the controller 1202 to generate controller output data 1208 which, in turn, may be sent to actuator(s) 1228 used to control a controllable process state 2002 of the process 1212 .
- actuator(s) 1228 used to control a controllable process state 2002 of the process 1212 .
- Representative examples of controller 1202 are discussed below.
- the box labeled 1207 in FIG. 4 indicates that the support vector machine 1206 and the historical database 1210 may, in a variant embodiment of the present invention, be implemented as a single software system.
- This single software system may be delivered to a computer installation in which no historical database previously existed, to provide the functions of one embodiment of the present invention.
- a support vector machine configuration module (or program) 1204 may also be included in this software system.
- controller 1202 may also be provided with input data 1221 from sensors 1226 . This input data may be provided directly to controller 1202 from these sensor(s); (2) the support vector machine configuration module 1204 may be connected in a bi-directional path configuration with the support vector machine 1206 .
- the support vector machine configuration module 1204 may be used by the user (developer) to configure and control the support vector machine 1206 in a fashion as discussed above in connection with the step or module 104 (FIG. 5), or in connection with the user interface discussion contained below.
- FIG. 16 an alternate embodiment of the structure and architecture of the present invention is shown. Differences between the embodiment of FIG. 4 and that of FIG. 16 are discussed below.
- a laboratory (“lab”) 1307 may be supplied with samples 1302 . These samples 1302 may be physical specimens or some type of data from an analytical test or reading. Regardless of the form, the lab 1307 may take the samples 1302 and may utilize the samples 1302 to produce actual measurements 1304 , which may be supplied to the historical database 1210 with associated timestamps. The actual measurements 1304 may be stored in the historical database 1210 with their associated timestamps.
- the historical database 1210 may also contain actual test results or actual lab results in addition to sensor input data. It should be understood that a laboratory is illustrative of a source of actual measurements 1304 which may be useful as training input data. Other sources may be encompassed by one embodiment of the present invention. Laboratory data may be electronic data, printed data, or data exchanged over any communications link.
- the second difference shown in the embodiment of FIG. 16 is that the support vector machine 1206 may be supplied with the actual measurements 1304 and associated timestamps stored in the historical database 1210 .
- FIG. 16 may allow one embodiment of the present invention to utilize lab data in the form of actual measurements 1304 as training input data 1306 to train the support vector machine.
- FIG. 17 a representative embodiment of the controller 1202 is shown.
- the embodiment may utilize a regulatory controller 1406 for regulatory control of the process 1212 .
- Any type of regulatory controller may be contemplated which provides such regulatory control.
- There may be many commercially available embodiments for such a regulatory controller.
- various embodiments of the present invention may be implemented using regulatory controllers already in place. In other words, various embodiments of the present invention may be integrated into existing process control systems, management systems, analysis systems, or other existing systems.
- the embodiment shown in FIG. 17 may also include a supervisory controller 1408 .
- the supervisory controller 1408 may compute supervisory controller output data, computed in accordance with the predicted output data 1214 .
- the supervisory controller 1408 may utilize the predicted output data 1214 from the support vector machine 1206 to produce supervisory controller output data 1402 .
- the supervisory controller output data 1402 may be supplied to the regulatory controller 1406 for changing the regulatory controller setpoint 1404 (or other parameter of regulatory controller 1406 ).
- the supervisory controller output data 1402 may be used for changing the regulatory controller setpoint 1404 so as to change the regulatory control provided by the regulatory controller 1406 .
- the setpoint 1404 may refer not only to a plant operation setpoint, but to any parameter of a system or process using an embodiment of the present invention.
- supervisory controller 1408 Any suitable type of supervisory controller 1408 may be employed by one embodiment of the present invention, including commercially available embodiments. The only limitation is that the supervisory controller 1408 be able to use the output data 1408 to compute the supervisory controller output data 1402 used for changing the regulatory controller setpoint (parameter) 1404 .
- This embodiment of the present invention may contemplate the supervisory controller 1408 being in a software and hardware system which is physically separate from the regulatory controller 1406 .
- the regulatory controller 1406 may be implemented as a digital distributed control system (DCS). These digital distributed control systems may provide a very high level of robustness and reliability for regulating the process 1212 .
- the supervisory controller 1408 may be implemented on a host-based computer, such as a VAX (VAX is a trademark of DIGITAL EQUIPMENT CORPORATION, Maynard, Mass.), a personal computer, a workstation, or any other type of computer.
- VAX is a trademark of DIGITAL EQUIPMENT CORPORATION, Maynard, Mass.
- FIG. 18 a more detailed embodiment of the present invention is shown.
- the supervisory controller 1408 is separated from the regulatory controller 1406 .
- the boxes labeled 1500 , 1501 , and 1502 shown in FIG. 18 suggest various ways in which the functions of the supervisory controller 1408 , the support vector machine configuration module 1204 , the support vector machine 1206 and the historical database 1210 may be implemented.
- the box labeled 1502 shows how the supervisory controller 1408 and the support vector machine 1206 may be implemented together in a single software system.
- This software system may take the form of a modular system as described below in FIG. 19.
- the support vector machine configuration program 1204 may be included as part of the software system, as shown in the box labeled 1501 .
- These various software system groupings may be indicative of various ways in which various embodiments of the present invention may be implemented. However, it should be understood that any combination of functions into various software systems may be used to implement various embodiments of the present invention.
- FIG. 19 a representative embodiment 1502 of the support vector machine 1206 combined with the supervisory controller 1408 is shown.
- This embodiment may be called a modular supervisory controller approach.
- the modular architecture that is shown illustrates that various embodiments of the present invention may contemplate the use of various types of modules which may be implemented by the user (developer) in configuring support vector machine(s) 1206 in combination with supervisory control functions so as to achieve superior process control operation.
- the modular embodiment of FIG. 19 may also include a feedback control module 1602 , a feedforward control module 1604 , an expert system module 1606 , a cusum (cumulative summation) module 1608 , a Shewhart module 1610 , a user program module 1612 , and/or a batch event module 1614 .
- a feedback control module 1602 may also include a feedforward control module 1604 , an expert system module 1606 , a cusum (cumulative summation) module 1608 , a Shewhart module 1610 , a user program module 1612 , and/or a batch event module 1614 .
- Each of these modules may be selected by the user.
- the user may implement more than one of each of these modules in configuring various embodiments of the present invention.
- additional types of modules may be utilized.
- FIG. 19 The intent of the embodiment shown in FIG. 19 is to illustrate three concepts. First, various embodiments of the present invention may utilize a modular approach which may ease user configuration. Second, the modular approach may allow for much more complicated systems to be configured since the modules may act as basic building blocks which may be manipulated and used independently of each other.
- the modular approach may show that various embodiments of the present invention may be integrated into other process control systems.
- various embodiments of the present invention may be implemented into the system and method of the United States patents and patent applications which are incorporated herein by reference as noted above, among others.
- this modular approach may allow the support vector machine capability of various embodiments of the present invention to be integrated with the expert system capability described in the above-noted patents and patent applications. As described above, this may enable the support vector machine capabilities of various embodiments of the present invention to be easily integrated with other standard control functions such as statistical tests, feedback control, and feedforward control. However, even greater function may be achieved by combining the support vector machine capabilities of various embodiments of the present invention, as implemented in this modular embodiment, with the expert system capabilities of the above-noted patent applications, also implemented in modular embodiments. This easy combination and use of standard control functions, support vector machine functions, and expert system functions may allow a very high level of capability to be achieved in solving process control problems.
- the modular approach to building support vector machines may result in two principal benefits. First, the specification needed from the user may be greatly simplified so that only data is required to specify the configuration and function of the support vector machine. Secondly, the modular approach may allow for much easier integration of support vector machine function with other related control functions, such as feedback control, feedforward control, etc.
- a modular approach may provide a partial definition beforehand of the function to be provided by the support vector machine module.
- the predefined function for the module may determine the procedures that need to be followed to carry out the module function, and it may determine any procedures that need to be followed to verify the proper configuration of the module.
- the particular function may define the data requirements to complete the specification of the support vector machine module.
- the specifications for a modular support vector machine may be comprised of configuration information which may define the size and behavior of the support vector machine in general, and the data interactions of the support vector machine which may define the source and location of data that may be used and created by the system.
- Two approaches may be used to simplify the user configuration of support vector machines.
- a limited set of procedures may be prepared and implemented in the modular support vector machine software.
- These predefined functions may define the specifications needed to make these procedures work as a support vector machine module.
- the creation of a support vector machine module may require the specification of the number of inputs, a kernel function, and the number of outputs. The initial values of the coefficients may not be required.
- the user input required to specify such a module may be greatly simplified.
- This predefined procedure approach is one method of implementing the modular support vector machine.
- a second approach to provide modular support vector machine function may allow a limited set of natural language expressions to be used to define the support vector machine.
- the user or developer may be permitted to enter, through typing or other means, natural language definitions for the support vector machine. For example, the user may enter text which might read, for example, “I want a fully randomized support vector machine.” These user inputs may be parsed in search of specific combinations of terms, or their equivalents, which would allow the specific configuration information to be extracted from the restricted natural language input.
- a first approach may be to search for a predefined procedure matching the configuration information provided by the restricted natural language input. This may be useful where users tend to specify the same basic support vector machine functions for many problems.
- a second approach may provide for much more flexible creation of support vector machine modules.
- the specifications obtained by parsing the natural language input may be used to generate a support vector machine procedure by actually generating software code.
- the support vector machine functions may be defined in relatively small increments as opposed to the approach of providing a complete predefined support vector machine module.
- This approach may combine, for example, a small function which is able to obtain input data and populate a set of inputs. By combining a number of such small functional pieces and generating software code which reflects and incorporates the user specifications, a complete support vector machine procedure may be generated.
- This approach may optionally include the ability to query the user for specifications which have been neglected or omitted in the restricted natural language input. Thus, for example, if the user neglected to specify the number of outputs in the network, the user may be prompted for this information and the system may generate an additional line of user specification reflecting the answer to the query.
- the parsing and code generation in this approach may use pre-defined, small sub-functions of the overall support vector machine module.
- a given key word (term) may correspond to a certain sub-function of the overall support vector machine module.
- Each sub-function may have a corresponding set of key words (terms) and associated key words and numeric values.
- each key word and associated key words and values may constitute a symbolic specification of the support vector machine sub-function.
- the collection of all the symbolic specifications may make up a symbolic specification of the entire support vector machine module.
- the parsing step may process the substantially natural language input.
- the parsing step may remove unnecessary natural language words, and may group the remaining key words and numeric values into symbolic specifications of support vector machine sub-functions.
- One way to implement parsing may be to break the input into sentences and clauses bounded by periods and commas, and restrict the specification to a single sub-function per clause. Each clause may be searched for key words, numeric values, and associated key words. The remaining words may be discarded.
- a given key word (term) may correspond to a certain sub-function of the overall support vector machine module.
- key words may have relational tag words (e.g., “in,” “with,” etc.) which may indicate the relation of one key word to another.
- relational tag words e.g., “in,” “with,” etc.
- Key words may be defined to have equivalents.
- the user may be allowed, in an embodiment of this aspect of the invention, to specify the kernel function used in the support vector machine.
- the key word may be “kernel” and an equivalent key word may be “kernel function.”
- This key word may correspond to a set of pre-defined sub-functions which may implement various kinds of kernel functions in the support vector machine.
- Another example may be key word “coefficients”, which may have equivalent “weights”.
- the associated data may be a real number which may indicate the value(s) of one or more coefficients.
- the support vector machine itself may be constructed, using this method, by processing the specifications, as parsed from the substantially natural language input, in a pre-defined order, and generating the fully functional procedure code for the support vector machine from the procedural sub-function code fragments.
- the other major advantage of a modular approach is the ease of integration with other functions in the application (problem) domain.
- the implementation of support vector machines as modular support vector machines in a larger control system may greatly simplify this kind of implementation.
- modular support vector machines into a modular control system may be beneficial because it may make it easy to create and use support vector machine predictions in a control application.
- the application of modular support vector machines in a control system is different from the control functions typically found in a control system.
- the control functions described in some of the United States patents and patent applications incorporated by reference above generally rely on the current information for their actions, and they do not generally define their function in terms of past (historical) data.
- some means is needed to train and operate the support vector machine using the data which is not generally available by retrieving current data values.
- the systems and methods of various embodiments of the present invention, as described above, may provide this essential capability which may allow a modular support vector machine function to be implemented in a modular control system.
- a modular support vector machine has several characteristics which may significantly ease its integration with other control functions. First, the execution of support vector machine functions, prediction and/or training may easily be coordinated in time with other control functions. The timing and sequencing capabilities of a modular implementation of a support vector machine may provide this capability. Also, when implemented as a modular function, support vector machines may make their results readily accessible to other control functions that may need them. This may be done, for example, without needing to store the support vector machine outputs in an external system, such as a historical database.
- Modular support vector machines may run either synchronized or unsynchronized with other functions in the control system. Any number of support vector machines may be created within the same control application, or in different control applications, within the control system. This may significantly facilitate the use of support vector machines to make predictions of output data where several small support vector machines may be more easily or rapidly trained than a single large support vector machine. Modular support vector machines may also provide a consistent specification and user interface so that a user trained to use the modular support vector machine control system may address many control problems without learning new software.
- An extension of the modular concept is the specification of data using pointers.
- the user is offered the easy specification of a number of data retrieval or data storage functions by simply selecting the function desired and specifying the data needed to implement the function.
- the retrieval of a time-weighted average from the historical database is one such predefined function.
- the user need only specify the specific measurement desired, the starting time boundary, and the ending time boundary.
- the predefined retrieval function may use the appropriate code or function to retrieve the data. This may significantly simplify the user's access to data which may reside in a number of different process data systems.
- the user may have to be skilled in the programming techniques needed to write the calls to retrieve the data from the various process data systems.
- FIG. 20 shows the support vector machine 1206 in a modular form.
- Each support vector machine module type 1702 may allow the user to create and configure a support vector machine module implementing a specific type of support vector machine. Different types of support vector machines may have different kernel functions, different initial coefficient values, different training methods and so forth. For each support vector machine module type, the user may create and configure support vector machine modules. Three specific instances of support vector machine modules may be shown as 1702 ′, 1702 ′′, and 1702 ′′′.
- support vector machine modules may be implemented as data storage areas which contain a procedure pointer 1710 ′, 1710 ′′, 1710 ′′′ to procedures which carry out the functions of the support vector machine type used for that module.
- the support vector machine procedures 1706 ′ and 1706 ′′ may be contained in a limited set of support vector machine procedures 1704 .
- the procedures 1706 ′, 1706 ′′ may correspond one to one with the support vector machine types contained in the limited set of support vector machine types 1702 .
- many support vector machine modules may be created which use the same support vector machine procedure.
- the multiple modules each contain a procedure pointer to the same support vector machine procedure 1706 ′ or 1706 ′′.
- many modular support vector machines may be implemented without duplicating the procedure or code needed to execute or carry out the support vector machine functions.
- FIG. 21 a more specific software embodiment of the modular support vector machine is shown. This embodiment is of particular value when the support vector machine modules are implemented in the same modular software system as modules performing other functions such as statistical tests or feedback control.
- support vector machine modules may have significantly greater storage requirements than other module types in the control system. In this case, it is advantageous to store support vector machine parameters in a separate support vector machine parameter storage area 1804 . This structure may allow modules implementing functions other than support vector machine functions to not reserve unused storage sufficient for support vector machines.
- each instance of a modular support vector machine 1702 ′ and 1702 ′′ may contain two pointers.
- the first pointers ( 1710 ′ and 1710 ′′) may be the procedure pointer described above in reference to FIG. 20.
- Each support vector machine module may also contain a second pointer, ( 1802 ′ and 1802 ′′), referred to as parameter pointers, which may point to storage areas 1806 ′ and 1806 ′′, respectively, for support vector machine parameters in a support vector machine parameter storage area 1804 .
- a second pointer 1802 ′ and 1802 ′′
- parameter pointers which may point to storage areas 1806 ′ and 1806 ′′, respectively, for support vector machine parameters in a support vector machine parameter storage area 1804 .
- only support vector machine modules may need to contain the parameter pointers 1802 ′ and 1802 ′′, which point to the support vector machine parameter storage area 1804 .
- Other module types, such as control modules which do not require such extensive storage need not have the storage allocated via the parameter pointers 1802
- FIG. 24 shows representative aspects of the architecture of the support vector machine 1206 .
- the representation in FIG. 24 is particularly relevant in connection with the modular support vector machine approach shown in FIGS. 19, 20 and 21 discussed above.
- FIG. 24 the components to make and use a representative embodiment of the support vector machine 1206 are shown in an exploded format.
- the support vector machine 1206 may contain a support vector machine model. As stated above, one embodiment of the present invention may contemplate all presently available and future developed support vector machine models and architectures.
- the support vector machine 1206 may have access to input data and training input data and access to locations in which it may store output data and error data.
- One embodiment of the present invention may use an on-line approach. In this on-line approach, the data may not be kept in the support vector machine 1206 . Instead, data pointers may be kept in the support vector machine. The data pointers may point to data storage locations in a separate software system. These data pointers, also called data specifications, may take a number of forms and may be used to point to data used for a number of purposes.
- input data pointer 2204 and output data pointer 2206 may be specified. As shown in the exploded view, each pointer (i.e., input data pointer 2204 and output data pointer 2206 ) may point to or use a particular data source system 2224 for the data, a data type 2226 , and a data item pointer 2228 .
- Support vector machine 1206 may also have a data retrieval function 2208 and a data storage function 2210 .
- Examples of these data retrieval and data storage functions may be callable routines 2230 , disk access 2232 , and network access 2234 . These are merely examples of the aspects of retrieval and storage functions.
- Support vector machine 1206 may also have prediction timing and training timing. These may be specified by prediction timing control 2212 and training timing control 2214 . One way to implement this may be to use a timing method 2236 and its associated timing parameters 2238 . Referring now to FIG. 26, examples of timing method 2236 may include a fixed time interval 2402 , a new data entry 2404 , an after another module 2406 , an on program request 2408 , an on expert system request 2410 , a when all training data updates 2412 , and/or a batch sequence methods 2414 . These may be designed to allow the training and function of the support vector machine 1206 to be controlled by time, data, completion of modules, or other methods or procedures. The examples are merely illustrative in this regard.
- FIG. 26 also shows examples of the timing parameters 2238 .
- Such examples may include a time interval 2416 , a data item specification 2418 , a module specification 2420 , and/or a sequence specification 2422 .
- examples of the data item specification 2418 may include specifying a data source system 2224 , a data type 2226 , and/or a data item pointer 2228 which have been described above.
- training data coordination may also be required in many applications. Examples of approaches that may be used for such coordination are shown. One method may be to use all current values as representative by reference numeral 2240 . Another method may be to use current training input data values with the input data at the earliest training input data time, as indicated by reference numeral 2242 . Yet another approach may be to use current training input data values with the input data at the latest training input data time, as indicated by reference numeral 2244 . Again, these are merely examples, and should not be construed as limiting in terms of the type of coordination of training data that may be utilized by various embodiments of the present invention.
- the support vector machine 1206 may also need to be trained, as discussed above. As stated previously, any presently available or future developed training method may be contemplated by various embodiments of the present invention. The training method also may be somewhat dictated by the architecture of the support vector machine model that is used.
- examples may be a historical database 1210 , a distributed control system 1202 , a programmable controller 2302 , and a networked single loop controller 2304 . These are merely illustrative.
- Any data source system may be utilized by various embodiments of the present invention. It should also be understood that such a data source system may either be a storage device or an actual measuring or calculating device. In one embodiment, all that is required is that a source of data be specified to provide the support vector machine 1206 with the input data 1220 that is needed to produce the output data 1218 . One embodiment of the present invention may contemplate more than one data source system used by the same support vector machine 1206 .
- the support vector machine 1206 needs to know the data type that is being specified. This is particularly important in a historical database 1210 since it may provide more than one type of data. Several examples may be shown in FIG. 25 as follows: a current value 2306 , a historical value 2308 , a time weighted average 2310 , a controller setpoint 2312 , and a controller adjustment amount 2314 . Other types may be contemplated.
- the data item pointer 2228 may be specified.
- the examples shown may include: a loop number 2316 , a variable number 2318 , a measurement number 2320 , and/or a loop tag I.D. 2322 , among others. Again, these are merely examples for illustration purposes, as various embodiments of the present invention may contemplate any type of data item pointer 2228 .
- support vector machine 1206 may be constructed so as to obtain desired input data 1220 and to provide output data 1218 in any intended fashion. In one embodiment of the present invention, this may be done through menu selection by the user (developer) using a graphical user interface of a software based system on a computer platform.
- the construction of the controller 1202 is shown in FIG. 27 in an exploded format. Again, this is merely for purposes of illustration.
- the controller 1202 may be implemented on a hardware platform 2502 .
- hardware platforms 2502 may include: a pneumatic single loop controller 2414 , an electronic single loop controller 2516 , a networked single looped controller 2518 , a programmable loop controller 2520 , a distributed control system 2522 , and/or a programmable logic controller 2524 . Again, these are merely examples for illustration. Any type of hardware platform 2502 may be contemplated by various embodiments of the present invention.
- controllers 1202 , 1406 , and/or 1408 each may need to implement or utilize an algorithm 2504 .
- Any type of algorithm 2504 may be used. Examples shown may include: proportional (P) 2526 ; proportional, integral (PI) 2528 ; proportional, integral, derivative (PID) 2530 ; internal model 2532 ; adaptive 2534 ; and, non-linear 2536 . These are merely illustrative of feedback algorithms. Various embodiments of the present invention may also contemplate feedforward algorithms and/or other algorithm approaches.
- the controllers 1202 , 1406 , and/or 1408 may also include parameters 2506 . These parameters 2506 may be utilized by the algorithm 2504 . Examples shown may include setpoint 1404 , proportional gain 2538 , integral gain 2540 , derivative gain 2542 , output high limit 2544 , output low limit 2546 , setpoint high limit 2548 , and/or setpoint low limit 2550 .
- Timing means 2508 may use a timing method 2236 with associated timing parameters 2238 , as previously described. Again, these are merely illustrative.
- the controllers 1202 , 1406 , and/or 1408 may also need to utilize one or more input signals 2510 , and to provide one or more output signals 2512 .
- These signals may take the form of pressure signals 2552 , voltage signals 2554 , amperage (current) signals 2556 , or digital values 2558 .
- input and output signals may be in either analog or digital format.
- a template and menu driven user interface is utilized (e.g., FIGS. 28 and 29) which may allow the user to configure, reconfigure and operate the embodiment of the present invention.
- This approach may make the embodiment of the present invention very user friendly.
- This approach may also eliminate the need for the user to perform any computer programming, since the configuration, reconfiguration and operation of the embodiment of the present invention is carried out in a template and menu format not requiring any actual computer programming expertise or knowledge.
- the system and method of one embodiment of the present invention may utilize templates. These templates may define certain specified fields that may be addressed by the user in order to configure, reconfigure, and/or operate the embodiment of the present invention.
- the templates may guide the user in using the embodiment of the present invention.
- FIGS. 28 - 31 Representative examples of templates for the menu driven system of various embodiments of the present invention are shown in FIGS. 28 - 31 . These are merely for purposes of illustration.
- One embodiment of the present invention may use a two-template specification (i.e., a first template 2600 as shown in FIG. 28, and a second template 2700 as shown in FIG. 29) for a support vector machine module.
- First template 2600 may specify general characteristics of how the support vector machine 1206 may operate.
- the portion of the screen within a box labeled 2620 may show how timing options may be specified for the support vector machine module 1206 .
- more than one timing option may be provided.
- a training timing option may be provided, as shown under the label “train” in box 2620 .
- timing methods may be chosen from a pop-up menu of various timing methods that may be implemented in one embodiment.
- the parameters needed for the user-selected timing method may be entered by a user in the blocks labeled “Time Interval” and “Key Block”. These parameters may only be required for certain timing methods. Not all timing methods may require parameters, and not all timing methods that require parameters may require all the parameters shown.
- the prediction and training functions of the support vector machine module may be controlled.
- the training and/or prediction functions of the support vector machine module 1206 may be enabled.
- the storage of predicted output data 1218 may be enabled when the support vector machine 1206 is training or when the support vector machine 1206 is predicting (i.e., running), respectively.
- the size of the support vector machine 1206 may be specified in a box labeled 2622 bearing the heading “support vector machine size”.
- a support vector machine module 1206 there may be inputs, outputs, and/or kernel function(s).
- the number of inputs and the number of outputs may be limited to some predefined value.
- the coordination of input data with training data may be controlled using a checkbox labeled 2608 .
- the user may specify that input data 1220 is to be retrieved such that the timestamps on the input data 1220 correspond with the timestamps on the training input data 1306 .
- the training or learning constant may be entered in field 2610 . This training or learning constant may determine how aggressively the coefficients in the support vector machine 1206 are adjusted when there is an error 1504 between the output data 1218 and the training input data 1306 .
- the user may, by pressing a keypad softkey labeled “dataspec page” 2624 , call up the second template 2700 in the support vector machine module specification.
- This second template 2700 is shown in FIG. 29.
- This second template 2700 may allow the user to specify (1) the data inputs 1220 , 1306 , and (2) the outputs 1218 , 1504 that may be used by the support vector machine module.
- Data specification boxes 2702 , 2704 , 2706 , and 2708 may be provided for each of the inputs 1220 , training inputs 1306 , the outputs 1218 , and the summed error output, respectively. These may correspond to the input data, the training input data, the output data, and the error data, respectively. These four boxes may use the same data specification methods.
- the data pointers and parameters may be specified.
- the data specification may comprise a three-part data pointer as described above.
- various time boundaries and constraint limits may be specified depending on the data type specified.
- FIG. 30 an example of a pop-up menu is shown.
- the specification for the data system for the network input number 1 is being specified as shown by the highlighted field reading “DMT PACE”.
- the box in the center of the screen is a pop-up menu 2802 containing choices which may be selected to complete the data system specification.
- the templates in one embodiment of the present invention may utilize such pop-up menus 2802 wherever applicable.
- FIG. 31 shows the various elements included in the data specification block. These elements may include a data title 2902 , an indication as to whether the block is scrollable 2906 , and/or an indication of the number of the specification in a scrollable region 2904 .
- the box may also contain arrow pointers indicating that additional data specifications may exist in the list either above or below the displayed specification. These pointers 2922 and 2932 may be displayed as a small arrow when other data is present. Otherwise, they may be blank.
- the items making up the actual data specification may include: a data system 2224 , a data type 2226 , a data item pointer or number 2228 , a name and units label for the data specification 2908 , a label 2924 , a time boundary 2926 for the oldest time interval boundary, a label 2928 , a time specification 2930 for the newest time interval boundary, a label 2910 , a high limit 2912 for the data value, a label 2914 , a low limit value 2916 for the low limit on the data value, a label 2918 , and a value 2920 for the maximum allowed change in the data value.
- the data specification shown in FIG. 31 is representative of one mode of implementing one embodiment of the present invention. However, it should be understood that various other modifications of the data specification may be used to give more or less flexibility depending on the complexity needed to address the various data sources which may be present. Various embodiments of the present invention may contemplate any variation on this data specification method.
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Feedback Control In General (AREA)
Abstract
Description
- 1. Field of the Invention
- The present invention relates generally to the field of non-linear models. More particularly, the present invention relates to historical database training of a support vector machine.
- 2. Description of the Related Art
- Many predictive systems may be characterized by the use of an internal model which represents a process or system for which predictions are made. Predictive model types may be linear, non-linear, stochastic, or analytical, among others. However, for complex phenomena non-linear models may generally be preferred due to their ability to capture non-linear dependencies among various attributes of the phenomena. Examples of non-linear models may include neural networks and support vector machines (SVMs).
- Generally, a model is trained with training data, e.g., historical data, in order to reflect salient attributes and behaviors of the phenomena being modeled. In the training process, sets of training data may be provided as inputs to the model, and the model output may be compared to corresponding sets of desired outputs. The resulting error is often used to adjust weights or coefficients in the model until the model generates the correct output (within some error margin) for each set of training data. The model is considered to be in “training mode” during this process. After training, the model may receive real-world data as inputs, and provide predictive output information which may be used to control or make decisions regarding the modeled phenomena.
- Predictive models may be used for analysis, control, and decision making in many areas, including manufacturing, process control, plant management, quality control, optimized decision making, e-commerce, financial markets and systems, or any other field where predictive modeling may be useful. For example, quality control in a manufacturing plant is increasingly important. The control of quality and the reproducibility of quality may be the focus of many efforts. For example, in Europe, quality is the focus of the ISO (International Standards Organization, Geneva, Switzerland) 9000 standards. These rigorous standards provide for quality assurance in production, installation, final inspection, and testing. They also provide guidelines for quality assurance between a supplier and customer.
- The quality of a manufactured product is a combination of all of the properties of the product which affect its usefulness to its user. Process control is the collection of methods used to produce the best possible product properties in a manufacturing process, and is very important in the manufacture of products. Improper process control may result in a product which is totally useless to the user, or in a product which has a lower value to the user. When either of these situations occur, the manufacturer suffers (1) by paying the cost of manufacturing useless products, (2) by losing the opportunity to profitably make a product during that time, and (3) by lost revenue from reduced selling price of poor products. In the final analysis, the effectiveness of the process control used by a manufacturer may determine whether the manufacturer's business survives or fails. For purposes of illustration, quality and process control are described below as related to a manufacturing process, although process control may also be used to ensure quality in processes other than manufacturing, such as e-commerce, portfolio management, and financial systems, among others.
- A. Quality and Process Conditions
- FIG. 22 shows, in block diagram form, key concepts concerning products made in a manufacturing process. Referring now to FIG. 22,
raw materials 1222 may be processed under (controlled)process conditions 1906 in aprocess 1212 to produce aproduct 1216 havingproduct properties 1904. Examples ofraw materials 1222,process conditions 1906, andproduct properties 1904 may be shown in FIG. 22. It should be understood that these are merely examples for purposes of illustration, and that a product may refer to an abstract product, such as information, analysis, decision-making, transactions, or any other type of usable object, result, or service. - FIG. 23 shows a more detailed block diagram of the various aspects of the manufacturing of
products 1216 usingprocess 1212. Referring now to FIGS. 22 and 23,product 1216 is defined by one or more product property aim value(s) 2006 of itsproduct properties 1904. The productproperty aim values 2006 of theproduct properties 1904 may be those which theproduct 1216 needs to have in order for it to be ideal for its intended end use. The objective in runningprocess 1212 is to manufactureproducts 1216 havingproduct properties 1904 which match the product property aim value(s) 2006. - The following simple example of a
process 1212 is presented merely for purposes of illustration. Theexample process 1212 is the baking of a cake. Raw materials 1222 (such as flour, milk, baking powder, lemon flavoring, etc.) may be processed in abaking process 1212 under (controlled)process conditions 1906. Examples of the (controlled)process conditions 1906 may include: mix batter until uniform, bake batter in a pan at a preset oven temperature for a preset time, remove baked cake from pan, and allow removed cake to cool to room temperature. - The
product 1216 produced in this example is a cake having desiredproperties 1904. For example, these desiredproduct properties 1904 may be a cake that is fully cooked but not burned, brown on the outside, yellow on the inside, having a suitable lemon flavoring, etc. - Returning now to the general case, the
actual product properties 1904 ofproduct 1216 produced in aprocess 1212 may be determined by the combination of all of theprocess conditions 1906 ofprocess 1212 and theraw materials 1222 that are utilized.Process conditions 1906 may be, for example, the properties of theraw materials 1222, the speed at whichprocess 1212 runs (also called the production rate of the process 1212), theprocess conditions 1906 in each step or stage of the process 1212 (such as temperature, pressure, etc.), the duration of each step or stage, and so on. - B. Controlling Process Conditions
- FIG. 23 shows a more detailed block diagram of the various aspects of the manufacturing of
products 1216 usingprocess 1212. FIGS. 22 and 23 should be referred to in connection with the following description. - To effectively operate
process 1212, theprocess conditions 1906 may be maintained at one or more process condition setpoint(s) or aim value(s) (called a regulatory controller setpoint(s) in the example of FIG. 17, discussed below) 1404 so that theproduct 1216 produced has theproduct properties 1904 matching the desired product property aim value(s) 2006. This task may be divided into three parts or aspects for purposes of explanation. - In the first part or aspect, the manufacturer may set (step2008) initial settings of the process condition setpoint(s) or aim value(s) 1404 in order for the
process 1212 to produce aproduct 1216 having the desired productproperty aim values 2006. Referring back to the example set forth above, this would be analogous to deciding to set the temperature of the oven to a particular setting before beginning the baking of the cake batter. - The second step or aspect involves measurement and adjustment of the
process 1212. Specifically,process conditions 1906 may be measured to produce process condition measurement(s) 1224. The process condition measurement(s) 1224 may be used to generate adjustment(s) 1208 (called controller output data in the example of FIG. 4, discussed below) to controllable process state(s) 2002 so as to hold theprocess conditions 1906 as close as possible to processcondition setpoint 1404. Referring again to the example above, this is analogous to the way the oven measures the temperature and turns the heating element on or off so as to maintain the temperature of the oven at the desired temperature value. - The third stage or aspect involves holding product property measurement(s) of the
product properties 1904 as close as possible to the product property aim value(s) 2006. This involves producing product property measurement(s) 1304 based on theproduct properties 1904 of theproduct 1216. From these measurements, adjustment to processcondition setpoint 1402 may be made to the process condition setpoint(s) 1404 so as to maintain process condition(s) 1906. Referring again to the example above, this would be analogous to measuring how well the cake is baked. This could be done, for example, by sticking a toothpick into the cake and adjusting the temperature during the baking step so that the toothpick eventually comes out clean. - It should be understood that the previous description is intended only to show the general conditions of process control and the problems associated with it in terms of producing products of predetermined quality and properties. It may be readily understood that there may be many variations and combinations of tasks that are encountered in a given process situation. Often, process control problems may be very complex.
- One aspect of a process being controlled is the speed with which the process responds. Although processes may be very complex in their response patterns, it is often helpful to define a time constant for control of a process. The time constant is simply an estimate of how quickly control actions may be carried out in order to effectively control the process.
- In recent years, there has been a great push towards the automation of process control. One motivation for this is that such automation results in the manufacture of products of desired product properties where the manufacturing process that is used is too complex, too time-consuming, or both, for people to deal with manually.
- Thus, the process control task may be generalized as being made up of five basic steps or stages as follows:
- (1) the initial setting of process condition setpoint(s)2008;
- (2) producing process condition measurement(s)1224 of the process condition(s) 1906;
- (3) adjusting1208 controllable process state(s) 2002 in response to the process condition measurement(s) 1224;
- (4) producing product property measurement(s)1304 based on
product properties 1904 of the manufacturedproduct 1216; and - (5) adjusting1402 process condition setpoint(s) 1404 in response to the
product property measurements 1304. - The explanation which follows explains the problems associated with meeting and optimizing these five steps.
- C. The Measurement Problem
- As shown above, the second and fourth steps or aspects of process control involve
measurement 1224 ofprocess conditions 1906 andmeasurement 1304 ofproduct properties 1904, respectively. Such measurements may be sometimes very difficult, if not impossible, to effectively perform for process control. - For many products, the
important product properties 1904 relate to the end use of the product and not to theprocess conditions 1906 of theprocess 1212. One illustration of this involves the manufacture of carpet fiber. Animportant product property 1904 of carpet fiber is how uniformly the fiber accepts the dye applied by the carpet maker. Another example involves the cake example set forth above. Animportant product property 1904 of a baked cake is how well the cake resists breaking apart when the frosting is applied. Typically, the measurement ofsuch product properties 1904 is difficult and/or time consuming and/or expensive to make. - An example of this problem may be shown in connection with the carpet fiber example. The ability of the fiber to uniformly accept dye may be measured by a laboratory (lab) in which dye samples of the carpet fiber are used. However, such measurements may be unreliable. For example, it may take a number of tests before a reliable result may be obtained. Furthermore, such measurements may also be slow. In this example, it may take so long to conduct the dye test that the manufacturing process may significantly change and be producing
different product properties 1904 before the lab test results are available for use in controlling theprocess 1212. - It should be noted, however, that some
process condition measurements 1224 may be inexpensive, take little time, and may be quite reliable. Temperature typically may be measured easily, inexpensively, quickly, and reliably. For example, the temperature of the water in a tank may often be easily measured. But oftentimesprocess conditions 1906 make such easy measurements much more difficult to achieve. For example, it may be difficult to determine the level of a foaming liquid in a vessel. Moreover, a corrosive process may destroy measurement sensors, such as those used to measure pressure. - Regardless of whether or not measurement of a
particular process condition 1906 orproduct property 1904 is easy or difficult to obtain, such measurement may be vitally important to the effective and necessary control of theprocess 1212. It may thus be appreciated that it would be preferable if a direct measurement of aspecific process condition 1906 and/orproduct property 1904 could be obtained in an inexpensive, reliable, timely and effective manner. - D. Conventional Computer Models as Predictors of Desired Measurements
- As stated above, the direct measurement of the
process conditions 1906 and theproduct properties 1904 is often difficult, if not impossible, to do effectively. - One response to this deficiency in process control has been the development of computer models (not shown) as predictors of desired measurements. These computer models may be used to create values used to control the
process 1212 based on inputs that may not be identical to theparticular process conditions 1906 and/orproduct properties 1904 that are critical to the control of theprocess 1212. In other words, these computer models may be used to develop predictions (estimates) of theparticular process conditions 1906 orproduct properties 1904. These predictions may be used to adjust thecontrollable process state 2002 or theprocess condition setpoint 1404. - Such conventional computer models, as explained below, have limitations. To better understand these limitations and how the present invention overcomes them, a brief description of each of these conventional models is set forth.
- 1. Fundamental Models
- A computer-based fundamental model (not shown) uses known information about the
process 1212 to predict desired unknown information, such asproduct conditions 1906 andproduct properties 1904. A fundamental model may be based on scientific and engineering principles. Such principles may include the conservation of material and energy, the equality of forces, and so on. These basic scientific and engineering principles may be expressed as equations which are solved mathematically or numerically, usually using a computer program. Once solved, these equations may give the desired prediction of unknown information. - Conventional computer fundamental models have significant limitations, such as:
- (1) They may be difficult to create since the
process 1212 may be described at the level of scientific understanding, which is usually very detailed; - (2) Not all processes1212 are understood in basic engineering and scientific principles in a way that may be computer modeled;
- (3) Some
product properties 1904 may not be adequately described by the results of the computer fundamental models; and - (4) The number of skilled computer model builders is limited, and the cost associated with building such models is thus quite high.
- These problems result in computer fundamental models being practical only in some cases where measurement is difficult or impossible to achieve.
- 2. Empirical Statistical Models
- Another conventional approach to solving measurement problems is the use of a computer-based statistical model (not shown).
- Such a computer-based statistical model may use known information about
process 1212 to determine desired information that may not be effectively measured. A statistical model may be based on the correlation ofmeasurable process conditions 1906 orproduct properties 1904 of theprocess 1212. - To use an example of a computer-based statistical model, assume that it is desired to be able to predict the color of a
plastic product 1216. This is very difficult to measure directly, and takes considerable time to perform. In order to build a computer-based statistical model which will produce this desiredproduct property 1904 information, the model builder would need to have a base of experience, including known information and actual measurements of desired unknown information. For example, known information may include the temperature at which the plastic is processed. Actual measurements of desired unknown information may be the actual measurements of the color of the plastic. - A mathematical relationship (i.e., an equation) between the known information and the desired unknown information may be created by the developer of the empirical statistical model. The relationship may contain one or more constants (which may be assigned numerical values) which affect the value of the predicted information from any given known information. A computer program may use many different measurements of known information, with their corresponding actual measurements of desired unknown information, to adjust these constants so that the best possible prediction results may be achieved by the empirical statistical model. Such a computer program, for example, may use non-linear regression.
- Computer-based statistical models may sometimes predict
product properties 1904 which may not be well described by computer fundamental models. However, there may be significant problems associated with computer statistical models, which include the following: - (1) Computer statistical models require a good design of the model relationships (i.e., the equations) or the predictions will be poor;
- (2) Statistical methods used to adjust the constants typically may be difficult to use;
- (3) Good adjustment of the constants may not always be achieved in such statistical models; and
- (4) As is the case with fundamental models, the number of skilled statistical model builders is limited, and thus the cost of creating and maintaining such statistical models is high.
- The result of these deficiencies is that computer-based empirical statistical models may be practical in only some cases where the
process conditions 1906 and/or product properties may not be effectively measured. - E. Deficiencies in the Related Art
- As set forth above, there are considerable deficiencies in conventional approaches to obtaining desired measurements for the
process conditions 1906 andproduct properties 1904 using conventional direct measurement, computer fundamental models, and computer statistical models. Some of these deficiencies are as follows: - (1)
Product properties 1904 may often be difficult to measure; - (2)
Process conditions 1906 may often be difficult to measure; - (3) Determining the initial value or settings of the
process conditions 1906 when making anew product 1216 is often difficult; and - (4) Conventional computer models work only in a small percentage of cases when used as substitutes for measurements.
- Although the above limitations have been described with respect to process control, it should be noted that these arguments apply to other application domains as well, such as plant management, quality control, optimized decision making, e-commerce, financial markets and systems, or any other field where predictive modeling may be used.
- Therefore, improved systems and methods for historical database training of a support vector machine are desired.
- A system and method are presented for historical database training of a support vector machine. The support vector machine may train by retrieving training sets from a stream of process data. The support vector machine may detect the availability of new training data, and may construct a training set by retrieving the corresponding input data. The support vector machine may be trained using the training set. Over time, many training sets may be presented to the support vector machine.
- The support vector machine may detect training input data in several ways. In one approach, the support vector machine may monitor for changes in data values of training input data. A change may indicate that new data is available. In a second approach, the support vector machine may compute changes in raw training input data from one cycle to the next. The changes may be indicative of the action of human operators or other actions in the process. In a third mode, a historical database may be used and the support vector machine may monitor for changes in a timestamp of the training input data. Often laboratory data may be used as training input data in this approach.
- When new training input data is detected, the support vector machine may construct a training set by retrieving input data corresponding to the new training input data. Often, the current or most recent values of the input data may be used. When a historical database provides both the training input data and the input data, the input data is retrieved from the historical database for a time period selected using the timestamps of the training input data.
- For some support vector machines or training situations, multiple presentations of each training set may be needed to effectively train the support vector machine. In this case, a buffer of training sets (e.g., a FIFO—first in, first out—buffer) is filled and updated as new training data becomes available. The size of the buffer may be selected in accordance with the training needs of the support vector machine. Once the buffer is full, a new training set may bump the oldest training set from the buffer. The training sets in the buffer may be presented one or more times each time a new training set is constructed. It is noted that the use of a buffer to store training sets is but one example of storage means for the training sets, and that other storage means are also contemplated, including lists (such as queues and stacks), databases, and arrays, among others.
- If a historical database is used, the support vector machine may be trained retrospectively. Training sets may be constructed by searching the historical database over a time span of interest for training input data. When training input data are found, an input data time is selected using the training input data timestamps, and the training set is constructed by retrieving the input data corresponding to the input data time. Multiple presentations may also be used in the retrospective training approach.
- In one embodiment, the method may include building a first training set using training data, where the training data includes one or more timestamps indicating a chronology of the training data and one or more process parameter values corresponding to each timestamp. The first training set may include process parameter values corresponding to a first time period in the chronology. In one embodiment, building the first training set may include retrieving the training data from a historical database, selecting a training data time period based on the one or more timestamps, and retrieving the process parameter values from the training data indicated by the training data time period. Thus, the first training set includes retrieved process parameter values in chronological order over the selected training data time period. The support vector machine may then be trained using the first training set.
- Then, a second training set may be generated by removing at least a subset of the parameter values of the first training set, preferably the oldest parameter values of the training set, and adding new parameter values from the training data based on the timestamps to generate a second training set. Thus, the second training set corresponds to a second time period in the chronology. The support vector machine may then be trained using the second training set. The process may then be repeated, successively updating the training set to generate new training sets by removing old data and adding new data based on the timestamps and training the support vector machine with each training set.
- The historical database trained support vector machine may be used for process measurement, manufacturing, supervisory control, regulatory control functions, optimization, real-time optimization, decision-making systems, e-marketplaces, e-commerce, data analysis, data mining, financial analysis, stock and/or bond analysis/management, as well as any other field or domain where predictive or classification models may be useful. Using data pointers, easy access to many process data systems may be achieved. A modular approach with natural language configuration of the support vector machine may be used to implement the support vector machine. Expert system functions may be provided in the modular support vector machine to provide decision-making functions for use in control, analysis, management, or other areas of application.
- Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which:
- FIG. 1 illustrates an exemplary computer system according one embodiment of the present invention;
- FIG. 2 is an exemplary block diagram of the computer system illustrated in FIG. 1, according to one embodiment of the present invention;
- FIG. 3 is a nomenclature diagram illustrating one embodiment of the present invention at a high level;
- FIG. 4 is a representation of the architecture of an embodiment of the present invention;
- FIG. 5 is a high level block diagram of the six broad steps included in one embodiment of a support vector machine process control system and method according to the present invention;
- FIG. 6 is an intermediate block diagram of steps and modules included in the store input data and training input data step or
module 102 of FIG. 5, according to one embodiment; - FIG. 7 is an intermediate block diagram of steps and modules included in the configure and train support vector machine step or
module 104 of FIG. 5, according to one embodiment; - FIG. 8 is an intermediate block diagram of input steps and modules included in the predict output data using support vector machine step or
module 106 of FIG. 5, according to one embodiment; - FIG. 9 is an intermediate block diagram of steps and modules included in the retrain support vector machine step or
module 108 of FIG. 5, according to one embodiment; - FIG. 10 is an intermediate block diagram of steps and modules included in the enable/disable control step or
module 110 of FIG. 5, according to one embodiment; - FIG. 11 is an intermediate block diagram of steps and modules included in the control process using output data step or
module 112 of FIG. 5, according to one embodiment; - FIG. 12 is a detailed block diagram of the configure support vector machine step or
module 302 of the relationship of FIG. 7, according to one embodiment; - FIG. 13 is a detailed block diagram of the new training input data step or
module 306 of FIG. 7, according to one embodiment; - FIG. 14 is a detailed block diagram of the train support vector machine step or
module 308 of FIG. 7, according to one embodiment; - FIG. 15 is a detailed block diagram of the error acceptable step or
module 310 of FIG. 7, according to one embodiment; - FIG. 16 is a representation of the architecture of an embodiment of the present invention having the additional capability of using laboratory values from a
historical database 1210; - FIG. 17 is an embodiment of
controller 1202 of FIGS. 4 and 16 having asupervisory controller 1408 and aregulatory controller 1406; - FIG. 18 illustrates various embodiments of
controller 1202 of FIG. 17 used in the architecture of FIG. 4; - FIG. 19 is a modular version of
block 1502 of FIG. 18 illustrating the various different types of modules that may be utilized with a modularsupport vector machine 1206, according to one embodiment; - FIG. 20 illustrates an architecture for
block 1502 having a plurality of modular support vector machines 1702-1702 n with pointers 1710-1710 n pointing to a limited set of support vector machine procedures 1704-1704 n, according to one embodiment; - FIG. 21 illustrates an alternate architecture for
block 1502 having a plurality of modular support vector machines 1702-1702 n with pointers 1710-1710 n to a limited set of support vector machine procedures 1704-1704 n, and with parameter pointers 1802-1802 n to a limited set of system parameter storage areas 1806-1806 n, according to one embodiment; - FIG. 22 is a high level block diagram illustrating the key aspects of a
process 1212 havingprocess conditions 1906 used to produce aproduct 1216 havingproduct properties 1904 fromraw materials 1222, according to one embodiment; - FIG. 23 illustrates the various steps and parameters which may be used to perform the control of
process 1212 to produceproducts 1216 fromraw materials 1222, according to one embodiment; - FIG. 24 is an exploded block diagram illustrating the various parameters and aspects that may make up the
support vector machine 1206, according to one embodiment; - FIG. 25 is an exploded block diagram of the
input data specification 2204 and theoutput data specification 2206 of thesupport vector machine 1206 of FIG. 24, according to one embodiment; - FIG. 26 is an exploded block diagram of the
prediction timing control 2212 and thetraining timing control 2214 of thesupport vector machine 1206 of FIG. 24, according to one embodiment; - FIG. 27 is an exploded block diagram of various examples and aspects of
controller 1202 of FIG. 4, according to one embodiment; - FIG. 28 is a representative computer display of one embodiment of the present invention illustrating part of the configuration specification of the support
vector machine block 1206, according to one embodiment; - FIG. 29 is a representative computer display of one embodiment of the present invention illustrating part of the data specification of the support
vector machine block 1206, according to one embodiment; - FIG. 30 illustrates a computer screen with a pop-up menu for specifying the data system element of the data specification, according to one embodiment;
- FIG. 31 illustrates a computer screen with detailed individual items of the data specification display of FIG. 29, according to one embodiment;
- FIG. 32 is a detailed block diagram of an embodiment of the enable control step or
module 602 of FIG. 10; - FIG. 33 is a detailed block diagram of embodiments of steps and
modules - FIG. 34 is a detailed block diagram of embodiments of steps and
modules - While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof may be shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawing and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
- Incorporation by Reference
- U.S. Pat. No. 5,950,146, titled “Support Vector Method For Function Estimation”, whose inventor is Vladimir Vapnik, and which issued on Sep. 7, 1999, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,649,068, titled “Pattern Recognition System Using Support Vectors”, whose inventors are Bernard Boser, Isabelle Guyon, and Vladimir Vapnik, and which issued on Jul. 15, 1997, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,058,043, titled “Batch Process Control Using Expert Systems”, whose inventor is Richard D. Skeirik, and which issued on Oct. 15, 1991, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,006,992, titled “Process Control System With Reconfigurable Expert Rules and Control Modules”, whose inventor is Richard D. Skeirik, and which issued on Apr. 9, 1991, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 4,965,742, titled “Process Control System With On-Line Reconfigurable Modules”, whose inventor is Richard D. Skeirik, and which issued on Oct. 23, 1990, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 4,920,499, titled “Expert System With Natural-Language Rule Updating”, whose inventor is Richard D. Skeirik, and which issued on Apr. 24, 1990, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 4,910,691, titled “Process Control System with Multiple Module Sequence Options”, whose inventor is Richard D. Skeirik, and which issued on Mar. 20, 1990, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 4,907,167, titled “Process Control System with Action Logging”, whose inventor is Richard D. Skeirik, and which issued on Mar. 6, 1990, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 4,884,217, titled “Expert System with Three Classes of Rules”, whose inventors are Richard D. Skeirik and Frank O. DeCaria, and which issued on Nov. 28, 1989, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,212,765, titled “On-Line Training Neural Network System for Process Control”, whose inventor is Richard D. Skeirik, and which issued on May 18, 1993, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,408,586, titled “Historical Database Training Method for Neural Networks”, whose inventor is Richard D. Skeirik, and which issued on Apr. 18, 1995, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,640,493, titled “Historical Database Training Method for Neural Networks”, whose inventor is Richard D. Skeirik, and which issued on Jun. 17, 1997, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- U.S. Pat. No. 5,826,249, titled “Historical Database Training Method for Neural Networks”, whose inventor is Richard D. Skeirik, and which issued on Oct. 20, 1998, is hereby incorporated by reference in its entirety as though fully and completely set forth herein.
- Table of Contents
- Computer System Diagram
- Computer System Block Diagram
- I. Overview of Support Vector Machines
- A. Introduction
- B. How Support Vector Machines Work
- 1. Optimal Hyperplanes
- 2. Canonical Hyperplanes
- C. An SVM Learning Rule
- D. Classification of Linearly Separable Data
- E. Classification of Nonlinearly Separable Data
- F. Nonlinear Support Vector Machines
- G. Kernel Functions
- 1. Polynomial
- 2. Radial basis function
- 3. Multilayer networks
- H. Construction of Support Vector Machines
- I. Support Vector Machine Training
- J. Advantages of Support Vector Machines
- II. Brief Overview
- III. Use in Combination with Expert Systems
- IV. One Method of Operation
- A. Store Input Data and Training Input Data Step or
Module 102 - B. Configure and Train Support Vector Machine Step or
Module 104 - 1. Configure Support Vector Machine Step or
Module 302 - 2. Wait Training Input Data Interval Step or
Module 304 - 3. New Training Input Data Step or
Module 306 - 4. Train Support Vector Machine Step or
Module 308 - 5. Error Acceptable Step or
Module 310 - C. Predict Output Data Using Support Vector Machine Step or
Module 106 - D. Retrain Support Vector Machine Step or
Module 108 - E. Enable/Disable Control Module or
Step 110 - F. Control Process Using Output Data Step or
Module 112 - V. One Structure (Architecture)
- VI. User Interface
- FIG. 1—Computer System
- FIG. 1 illustrates a
computer system 82 operable to execute a support vector machine for performing modeling and/or control operations. One embodiment of a method for creating and/or using a support vector machine is described below. Thecomputer system 82 may be any type of computer system, including a personal computer system, mainframe computer system, workstation, network appliance, Internet appliance, personal digital assistant (PDA), television system or other device. In general, the term “computer system” can be broadly defined to encompass any device having at least one processor that executes instructions from a memory medium. - As shown in FIG. 1, the
computer system 82 may include a display device operable to display operations associated with the support vector machine. The display device may also be operable to display a graphical user interface of process or control operations. The graphical user interface may comprise any type of graphical user interface, e.g., depending on the computing platform. - The
computer system 82 may include a memory medium(s) on which one or more computer programs or software components according to one embodiment of the present invention may be stored. For example, the memory medium may store one or more support vector machine software programs (support vector machines) which are executable to perform the methods described herein. Also, the memory medium may store a programming development environment application used to create and/or execute support vector machine software programs. The memory medium may also store operating system software, as well as other software for operation of the computer system. - The term “memory medium” is intended to include an installation medium, e.g., a CD-ROM, floppy disks, or tape device; a computer system memory or random access memory such as DRAM, SRAM, EDO RAM, Rambus RAM, etc.; or a non-volatile memory such as a magnetic media, e.g., a hard drive, or optical storage. The memory medium may comprise other types of memory as well, or combinations thereof. In addition, the memory medium may be located in a first computer in which the programs are executed, or may be located in a second different computer which connects to the first computer over a network, such as the Internet. In the latter instance, the second computer may provide program instructions to the first computer for execution.
- As used herein, the term “support vector machine” refers to at least one software program, or other executable implementation (e.g., an FPGA), that implements a support vector machine as described herein. The support vector machine software program may be executed by a processor, such as in a computer system. Thus the various support vector machine embodiments described below are preferably implemented as a software program executing on a computer system.
- FIG. 2—Computer System Block Diagram
- FIG. 2 is an embodiment of an exemplary block diagram of the computer system illustrated in FIG. 1. It is noted that any type of computer system configuration or architecture may be used in conjunction with the system and method described herein, as desired, and FIG. 2 illustrates a representative PC embodiment. It is also noted that the computer system may be a general purpose computer system such as illustrated in FIG. 1, or other types of embodiments. The elements of a computer not necessary to understand the present invention have been omitted for simplicity.
- The
computer system 82 may include at least one central processing unit orCPU 160 which is coupled to a processor or host bus 162. TheCPU 160 may be any of various types, including an x86 processor, e.g., a Pentium class, a PowerPC processor, a CPU from the SPARC family of RISC processors, as well as others.Main memory 166 is coupled to the host bus 162 by means ofmemory controller 164. Themain memory 166 may store one or more computer programs or libraries according to the present invention. Themain memory 166 also stores operating system software as well as the software for operation of the computer system, as well known to those skilled in the art. - The host bus162 is coupled to an expansion or input/output bus 170 by means of a bus controller 168 or bus bridge logic. The expansion bus 170 is preferably the PCI (Peripheral Component Interconnect) expansion bus, although other bus types may be used. The expansion bus 170 may include slots for various devices such as a video display subsystem 180 and
hard drive 182 coupled to the expansion bus 170, among others (not shown). - I. Overview of Support Vector Machines
- FIG. 3 may provide a reference of consistent terms for describing an embodiment of the present invention. FIG. 3 is a nomenclature diagram which shows the various names for elements and actions used in describing various embodiments of the present invention. In referring to FIG. 3, the boxes may indicate elements in the architecture and the labeled arrows may indicate actions.
- As discussed below in greater detail, one embodiment of the present invention essentially utilizes support vector machines to provide predicted values of important and not readily
obtainable process conditions 1906 and/orproduct properties 1904 to be used by acontroller 1202 to producecontroller output data 1208 used to control theprocess 1212. - As shown in FIG. 4, a
support vector machine 1206 may operate in conjunction with ahistorical database 1210 which provides input sensor(s)data 1220. It should be noted that the embodiment described herein relates to process control, such as of a manufacturing plant. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to process control, but on the contrary, various embodiments of the invention may be contemplated to be applicable in many other areas as well, such as process measurement, manufacturing, supervisory control, regulatory control functions, optimization, real-time optimization, decision-making systems, data analysis, data mining, e-marketplaces, e-commerce, financial analysis, stock and/or bond analysis/management, as well as any other field or domain where predictive or classification models may be useful. Thus, specific steps or modules described herein which apply only to process control embodiments may be different, or omitted as appropriate or desired. It should also be noted that in various embodiments of the present invention, components described herein as sensors or actuators may comprise software constructs or operations which provide or control information or information processes, rather than physical phenomena or processes. - Referring now to FIGS. 4 and 5, input data and training input data may be stored in a historical database with associated timestamps as indicated by a step or
module 102. In parallel, thesupport vector machine 1206 may be configured and trained in a step ormodule 104. Thesupport vector machine 1206 may be used to predictoutput data 1218 usinginput data 1220, as indicated by a step ormodule 106. Thesupport vector machine 1206 may then be retrained in a step ormodule 108, and control using the output data may be enabled or disabled in a step ormodule 110. In parallel, control of the process using the output data may be performed in a step ormodule 112. Thus, the system may collect and store the appropriate data, may configure and may train the support vector machine, may use the support vector machine to predict output data, and may enable control of the process using the predicted output data. - Various embodiments of the present invention utilize a
support vector machine 1206, and are described in detail below. - In order to fully appreciate the various aspects and benefits produced by the various embodiments of the present invention, an understanding of support vector machine technology is useful. For this reason, the following section discusses support vector machine technology as applicable to the
support vector machine 1206 of various embodiments of the system and method of the present invention. - A. Introduction
- Historically, classifiers have been determined by choosing a structure, and then selecting a parameter estimation algorithm used to optimize some cost function. The structure chosen may fix the best achievable generalization error, while the parameter estimation algorithm may optimize the cost function with respect to the empirical risk.
- There are a number of problems with this approach, however. These problems may include:
- 1. The model structure needs to be selected in some manner. If this is not done correctly, then even with zero empirical risk, it is still possible to have a large generalization error.
- 2. If it is desired to avoid the problem of over-fitting, as indicated by the above problem, by choosing a smaller model size or order, then it may be difficult to fit the training data (and hence minimize the empirical risk).
- 3. Determining a suitable learning algorithm for minimizing the empirical risk may still be quite difficult. It may be very hard or impossible to guarantee that the correct set of parameters is chosen.
- The support vector method is a recently developed technique which is designed for efficient multidimensional function approximation. The basic idea of support vector machines (SVMs) is to determine a classifier or regression machine which minimizes the empirical risk (i.e., the training set error) and the confidence interval (which corresponds to the generalization or test set error), that is, to fix the empirical risk associated with an architecture and then to use a method to minimize the generalization error. One advantage of SVMs as adaptive models for binary classification and regression is that they provide a classifier with minimal VC (Vapnik-Chervonenkis) dimension which implies low expected probability of generalization errors. SVMs may be used to classify linearly separable data and nonlinearly separable data. SVMs may also be used as nonlinear classifiers and regression machines by mapping the input space to a high dimensional feature space. In this high dimensional feature space, linear classification may be performed.
- In the last few years, a significant amount of research has been performed in SVMs, including the areas of learning algorithms and training methods, methods for determining the data to use in support vector methods, and decision rules, as well as applications of support vector machines to speaker identification, and time series prediction applications of support vector machines.
- Support vector machines have been shown to have a relationship with other recent nonlinear classification and modeling techniques such as: radial basis function networks, sparse approximation, PCA (principle components analysis), and regularization. Support vector machines have also been used to choose radial basis function centers.
- A key to understanding SVMs is to see how they introduce optimal hyperplanes to separate classes of data in the classifiers. The main concepts of SVMs are reviewed in the next section.
- B. How Support Vector Machines Work
- The following describes support vector machines in the context of classification, but the general ideas presented may also apply to regression, or curve and surface fitting.
- 1. Optimal Hyperplanes
-
- A hyperplane capable of performing a linear separation of the training data is described by
- w T x+b=0 (2)
- where w=[w1w2 . . . wm]T, wεW⊂Rm.
- The concept of an optimal hyperplane was proposed by Vladimir Vapnik. For the case where the training data is linearly separable, an optimal hyperplane separates the data without error and the distance between the hyperplane and the closest training points is maximal.
- 2. Canonical Hyperplanes
- A canonical hyperplane is a hyperplane (in this case we consider the optimal hyperplane) in which the parameters are normalized in a particular manner.
- Consider (2) which defines the general hyperplane. It is evident that there is some redundancy in this equation as far as separating sets of points. Suppose we have the following classes
- y i [w T x i +b]≧1 i=1, . . . , n (3)
- where yε[−1,1].
-
-
-
- This implies that the minimum distance between two classes i and j is at least [2/(∥w∥)].
-
- Normally, to find the parameters, we would minimize the training error and there are no constraints on w,b. However, in this case, we seek to satisfy the inequality in (3). Thus, we need to solve the constrained optimization problem in which we seek a set of weights which separates the classes in the usually desired manner and also minimizing J(w), so that the margin between the classes is also maximized. Thus, we obtain a classifier with optimally separating hyperplanes.
- C. An SVM Learning Rule
-
- where αi are the Lagrange multipliers and αi>0.
-
-
-
- and in each case α0i>0, i=1, . . . , n.
- These are properties of the optimal hyperplane specified by (w0,b0). From (14) we note that given the Lagrange multipliers, the desired weight vector solution may be found directly in terms of the training vectors.
-
- It is necessary to maximize the dual form of the Lagrangian equation in (15) to obtain the required Lagrange multipliers. Before doing so however, consider (3) once again. We observe that for this inequality, there will only be some training vectors for which the equality holds true. That is, only for some (xi,yi) will the following equation hold:
- y i [w T x i +b]=1 i=1, . . . , n (13)
- The training vectors for which this is the case, are called support vectors.
- Since we have the Karush-Kühn-Tucker (KKT) conditions that α0i>0, i=1, . . . ,n and that given by (3), from the resulting Lagrangian equation in (9), we may write a further KKT condition
- α0i(y i [w 0 T x i +b 0]−1)=0 i=1, . . . ,n (14)
- This means, that since the Lagrange multipliers α0i are nonzero with only the support vectors as defined in (16), the expansion of w0 in (14) is with regard to the support vectors only.
-
- where S is the set of all support vectors in the training set. To obtain the Lagrange multipliers α0i, we need to maximize (15) only over the support vectors, subject to the constraints α0i>0, i=1, . . . ,n and that given in (13). This is a quadratic programming problem and may be readily solved. Having obtained the Lagrange multipliers, the weights w0 may be found from (18).
- D. Classification of Linearly Separable Data
- A support vector machine which performs the task of classifying linearly separable data is defined as
- f(x)=sgn {w T x+b} (16)
-
-
-
- E. Classification of Nonlinearly Separable Data
- For the case where the data is nonlinearly separable, the above approach can be extended to find a hyperplane which minimizes the number of errors on the training set. This approach is also referred to as soft margin hyperplanes. In this case, the aim is to
- y i [w T x i +b]≧1−ξ i i=1, . . . ,n (20)
-
- F. Nonlinear Support Vector Machines
- For some problems, improved classification results may be obtained using a nonlinear classifier. Consider (20) which is a linear classifier. A nonlinear classifier may be obtained using support vector machines as follows.
- The classifier is obtained by the inner product xi Tx where iεS, the set of support vectors. However, it is not necessary to use the explicit input data to form the classifier. Instead, all that is needed is to use the inner products between the support vectors and the vectors of the feature space.
- That is, by defining a kernel
- K(x i ,x)=x i T x (22)
-
- G. Kernel Functions
- A kernel function may operate as a basis function for the support vector machine. In other words, the kernel function may be used to define a space within which the desired classification or prediction may be greatly simplified. Based on Mercer's theorem, as is well known in the art, it is possible to introduce a variety of kernel functions, including:
- 1. Polynomial
- The pth order polynomial kernel function is given by
- K(x i ,x)= (24)
- 2. Radial Basis Function
- K(x i ,x)=e (25)
- where γ>0.
- 3. Multilayer Networks
- A multilayer network may be employed as a kernel function as follows. We have
- K(x i ,x)=σ(θ(x i T x)+φ) (26)
- where σ is a sigmoid function.
-
- When support vector methods are applied to regression or curve-fitting, a high-dimensional “tube” with a radius of acceptable error is constructed which minimizes the error of the data set while also maximizing the flatness of the associated curve or function. In other words, the tube is an envelope around the fit curve, defined by a collection of data points nearest the curve or surface, i.e., the support vectors.
- Thus, support vector machines offer an extremely powerful method of obtaining models for classification and regression. They provide a mechanism for choosing the model structure in a natural manner which gives low generalization error and empirical risk.
- H. Construction of Support Vector Machines
-
Support vector machine 1206 may be built by specifying a kernel function, a number of inputs, and a number of outputs. Of course, as is well known in the art, regardless of the particular configuration of the support vector machine, some type of training process may be used to capture the behaviors and/or attributes of the system or process to be modeled. - The modular aspect of one embodiment of the present invention as shown in FIG. 19 may take advantage of this way of simplifying the specification of a support vector machine. Note that more complex support vector machines may require more configuration information, and therefore more storage.
- Various embodiments of the present invention contemplate other types of support vector machine configurations for use with
support vector machine 1206. In one embodiment, all that is required forsupport vector machine 1206 is that the support vector machine be able to be trained and retrained so as to provide the needed predicted values utilized in the process control. - I. Support Vector Machine Training
- The coefficients used in
support vector machine 1206 may be adjustable constants which determine the values of the predicted output data for given input data for any given support vector machine configuration. Support vector machines may be superior to conventional statistical models because support vector machines may adjust these coefficients automatically. Thus, support vector machines may be capable of building the structure of the relationship (or model) between theinput data 1220 and theoutput data 1218 by adjusting the coefficients. While a conventional statistical model typically requires the developer to define the equation(s) in which adjustable constant(s) are used, thesupport vector machine 1206 may build the equivalent of the equation(s) automatically. - The
support vector machine 1206 may be trained by presenting it with one or more training set(s). The one or more training set(s) are the actual history of known input data values and the associated correct output data values. As described below, one embodiment of the present invention may use the historical database with its associated timestamps to automatically create one or more training set(s). - To train the support vector machine, the newly configured support vector machine is usually initialized by assigning random values to all of its coefficients. During training, the
support vector machine 1206 may use itsinput data 1220 to produce predictedoutput data 1218. - These predicted
output data values 1218 may be used in combination withtraining input data 1306 to produce error data. These error data values may then be used to adjust the coefficients of the support vector machine. - It may thus be seen that the error between the
output data 1218 and thetraining input data 1306 may be used to adjust the coefficients so that the error is reduced. - J. Advantages of Support Vector Machines
- Support vector machines may be superior to computer statistical models because support vector machines do not require the developer of the support vector machine model to create the equations which relate the known input data and training values to the desired predicted values (i.e., output data). In other words, support
vector machine 1206 may learn the relationships automatically in the training step ormodule 104. - However, it should be noted that
support vector machine 1206 may require the collection of training input data with its associated input data, also called a training set. The training set may need to be collected and properly formatted. The conventional approach for doing this is to create a file on a computer on which the support vector machine is executed. - In one embodiment of the present invention, in contrast, creation of the training set is done automatically using a historical database1210 (FIG. 4). This automatic step may eliminate errors and may save time, as compared to the conventional approach. Another benefit may be significant improvement in the effectiveness of the training function, since automatic creation of the training set(s) may be performed much more frequently.
- II. Brief Overview
- Referring to FIGS. 4 and 5, one embodiment of the present invention may include a computer implemented support vector machine which produces predicted
output data values 1218 using a trained support vector machine supplied withinput data 1220 at a specified interval. The predicteddata 1218 may be supplied via ahistorical database 1210 to acontroller 1202, which may control aprocess 1212 which may produce aproduct 1216. In this way, theprocess conditions 1906 and product properties 1904 (as shown in FIGS. 22 and 23) may be maintained at a desired quality level, even though important process conditions and/or product properties may not be effectively measured directly, or modeled using conventional, fundamental or conventional statistical approaches. - One embodiment of the present invention may be configured by a developer using a support vector machine configuration and step or
module 104. Various parameters of the support vector machine may be specified by the developer by using natural language without knowledge of specialized computer syntax and training. For example, parameters specified by the user may include the type of kernel function, the number of inputs, the number of outputs, as well as algorithm parameters such as cost of constraint violations, and convergence tolerance (epsilon). Other possible parameters specified by the user may depend on which kernel is chosen (e.g., for gaussian kernels, one may specify the standard deviation, for polynomial kernels, one may specify the order of the polynomial). In one embodiment, there may be default values (estimates) for these parameters which may be overridden by user input. - In this way, the system may allow an expert in the process being measured to configure the system without the use of a support vector machine expert.
- The support vector machine may be automatically trained on-line using
input data 1220 and associatedtraining input data 1306 having timestamps (for example, from clock 1230). The input data and associated training input data may be stored in ahistorical database 1210, which may supply this data (i.e.,input data 1220 and associated training input data 1306) to thesupport vector machine 1206 for training at specified intervals. - The (predicted)
output data value 1218 produced by the support vector machine may be stored in the historical database. The storedoutput data value 1218 may be supplied to thecontroller 1202 for controlling the process as long as theerror data 1504 between theoutput data 1218 and thetraining input data 1306 is below an acceptable metric. - The
error data 1504 may also be used for automatically retraining the support vector machine. This retraining may typically occur while the support vector machine is providing the controller with the output data, via the historical database. The retraining of the support vector machine may result in the output data approaching the training input data as much as possible over the operation of the process. In this way, an embodiment of the present invention may effectively adapt to changes in the process, which may occur in a commercial application. - A modular approach for the support vector machine, as shown in FIG. 19, may be utilized to simplify configuration and to produce greater robustness. In essence, the modularity may be broken out into specifying data and calling subroutines using pointers.
- In configuring the support vector machine, as shown in FIG. 24,
data pointers 2204 and/or 2206 may be specified. A template approach, as shown in FIGS. 29 and 30, may be used to assist the developer in configuring the support vector machine without having to perform any actual programming. - The present invention in various embodiments is an on-line process control system and method. The term “on-line” indicates that the data used in various embodiments of the present invention is collected directly from the data acquisition systems which generate this data. An on-line system may have several characteristics. One characteristic may be the processing of data as the data is generated. This characteristic may also be referred to as real-time operation. Real-time operation in general demands that data be detected, processed, and acted upon fast enough to effectively respond to the situation. In a process control context, real-time may mean that the data may be responded to fast enough to keep the process in the desired control state.
- In contrast, off-line methods may also be used. In off-line methods, the data being used may be generated at some point in the past and there typically is no attempt to respond in a way that may effect the situation. It should be understood that while one embodiment of the present invention may use an on-line approach, alternate embodiments may substitute off-line approaches in various steps or modules.
- As noted above, the embodiment described herein relates to process control, such as of a manufacturing plant, but is not intended to limit the application of the present invention to that domain, but rather, various embodiments of the invention are contemplated to be applicable in many other areas, as well, such as e-commerce, data analysis, stocks and bonds management and analysis, business decision-making, optimization, e-marketplaces, financial analysis, or any other field of endeavor where predictive or classification models may be useful. Thus, specific steps or modules described herein which apply only to process control embodiments may be different, or omitted as appropriate or as desired.
- III. Use in Combination with Expert Systems
- The above description of support vector machines and support vector machines as used in various embodiments of the present invention, combined with the description of the problem of making measurements in a process control environment given in the background section, illustrate that support vector machines add a unique and powerful capability to process control systems. SVMs may allow the inexpensive creation of predictions of measurements that may be difficult or impossible to obtain. This capability may open up a new realm of possibilities for improving quality control in manufacturing processes. As used in various embodiments of the present invention, support vector machines serve as a source of input data to be used by controllers of various types in controlling a process. Of course, as noted above, the applications of the present invention in the fields of manufacturing and process control may be illustrative, and are not intended to limit the use of the invention to any particular domain. For example, the “process” being controlled may be a financial analysis process, an e-commerce process, or any other process which may benefit from the use of predictive models.
- Expert systems may provide a completely separate and completely complimentary capability for predictive model based systems. Expert systems may be essentially decision-making programs which base their decisions on process knowledge which is typically represented in the form of if-then rules. Each rule in an expert system makes a small statement of truth, relating something that is known or could be known about the process to something that may be inferred from that knowledge. By combining the applicable rules, an expert system may reach conclusions or make decisions which mimic the decision-making of human experts.
- The systems and methods described in several of the United States patents and patent applications incorporated by reference above use expert systems in a control system architecture and method to add this decision-making capability to process control systems. As described in these patents and patent applications, expert systems provide a very advantageous function in the implementation of process control systems.
- The present system adds a different capability of substituting support vector machines for measurements which may be difficult to obtain. The advantages of the present system may be both consistent with and complimentary to the capabilities provided in the above-noted patents and patent applications using expert systems. The combination of support vector machine capability with expert system capability in a control system may provide even greater benefits than either capability provided alone. For example, a process control problem may have a difficult measurement and also require the use of decision-making techniques in structuring or implementing the control response. By combining support vector machine and expert system capabilities in a single control application, greater results may be achieved than using either technique alone.
- It should thus be understood that while the system described herein relates primarily to the use of support vector machines for process control, it may very advantageously be combined with the expert system inventions described in the above-noted patents and patent applications to give even greater process control problem solving capability. As described below, when implemented in the modular process control system architecture, support vector machine functions may be easily combined with expert system functions and other control functions to build such integrated process control applications. Thus, while various embodiments of the present invention may be used alone, these various embodiments of the present invention may provide even greater value when used in combination with the expert system inventions in the above-noted patents and patent applications.
- IV. One Method of Operation
- One method of operation of one embodiment of the present invention may store input data and training data, may configure and may train a support vector machine, may predict output data using the support vector machine, may retrain the support vector machine, may enable or may disable control using the output data, and may control the process using output data. As shown in FIG. 5, more than one step or module may be carried out in parallel. As indicated by the
divergent order pointer 120, the first two steps or modules in one embodiment of the present invention may be carried out in parallel. First, in step ormodule 102, input data and training input data may be stored in the historical database with associated timestamps. In parallel, the support vector machine may be configured and trained in step ormodule 104. Next, two series of steps or modules may be carried out in parallel as indicated by theorder pointer 122. First, in step ormodule 106, the support vector machine may be used to predict output data using input data stored in the historical database. Next, in step ormodule 108, the support vector machine may be retrained using training input data stored in the historical database. Next, in step ormodule 110, control using the output data may be enabled or disabled in parallel. In step ormodule 112, control of the process using the output data may be carried out when enabled by step ormodule 110. - A. Store Input Data and Training Input Data Step or
Module 102 - As shown in FIG. 5, an
order pointer 120 indicates that step ormodule 102 and step ormodule 104 may be performed in parallel. Referring now to step ormodule 102, it is denoted as “store input data and training input data”. FIG. 6 may show step ormodule 102 in more detail. - Referring now to FIGS. 5 and 6, step or
module 102 may have the function of storinginput data 1220 and storingtraining input data 1306. Both types of data may be stored in a historical database 1210 (see FIG. 4 and related structure diagrams), for example. Each stored input data and training input data entry inhistorical database 1210 may utilize an associated timestamp. The associated timestamp may allow the system and method of one embodiment of the present invention to determine the relative time that the particular measurement or predicted value or measured value was taken, produced or derived. - A representative example of step or
module 102 is shown in FIG. 6, which is described as follows. Theorder pointer 120, as shown in FIG. 6, indicates thatinput data 1220 andtraining input data 1306 may be stored in parallel in thehistorical database 1210. Specifically, input data from sensors 1226 (see FIGS. 4 and 16) may be produced by sampling at specific time intervals thesensor signal 1224 provided at the output of thesensor 1226. This sampling may produce an input data value or number or signal. Each of data points may be called aninput data 1220 as used in this application. The input data may be stored with an associated timestamp in thehistorical database 1210, as indicated by step ormodule 202. The associated timestamp that is stored in the historical database with the input data may indicate the time at which the input data was produced, derived, calculated, etc. - Step or
module 204 shows that the next input data value may be stored by step ormodule 202 after a specified input data storage interval has lapsed or timed out. This input data storage interval realized by step ormodule 204 may be set at any specific value (e.g., by the user). Typically, the input data storage interval is selected based on the characteristics of the process being controlled. - As shown in FIG. 6, in addition to the sampling and storing of input data at specified input data storage intervals, training
input data 1306 may also be stored. Specifically, as shown by step ormodule 206, training input data may be stored with associated timestamps in thehistorical database 1210. Again, the associated timestamps utilized with the stored training input data may indicate the relative time at which the training input data was derived, produced or obtained. It should be understood that this usually is the time when the process condition or product property actually existed in the process or product. In other words, since it typically takes a relatively long period of time to produce the training input data (because lab analysis and the like usually has to be performed), it is more accurate to use a timestamp which indicates the actual time when the measured state existed in the process rather than to indicate when the actual training input data was entered into the historical database. This produces a much closer correlation between thetraining input data 1306 and the associatedinput data 1220. This close correlation is needed, as is discussed in detail below, in order to more effectively train and control the system and method of various embodiments of the present invention. - The training input data may be stored in the
historical database 1210 in accordance with a specified training input data storage interval, as indicated by step ormodule 208. While this may be a fixed time period, it typically is not. More typically, it is a time interval which is dictated by when the training data is actually produced by the laboratory or other mechanism utilized to produce thetraining input data 1306. As is discussed in detail herein, this often times takes a variable amount of time to accomplish depending upon the process, the mechanisms being used to produce the training data, and other variables associated both with the process and with the measurement/analysis process utilized to produce the training input data. - What is important to understand here is that the specified input data storage interval is usually considerably shorter than the specified training input data storage interval of step or
module 204. - As may be seen, step or
module 102 thus results in thehistorical database 1210 receiving values of input data and training input data with associated timestamps. These values may be stored for use by the system and method of one embodiment of the present invention in accordance with the steps and modules discussed in detail below. - B. Configure and Train Support Vector Machine Step or
Module 104 - As shown in FIG. 5, the
order pointer 120 shows that a configure and train support vector machine step ormodule 104 may be performed in parallel with the store input data and training input data step ormodule 102. The purpose of step ormodule 104 may be to configure and train the support vector machine 1206 (see FIG. 4). - Specifically, the
order pointer 120 may indicate that the step ormodule 104 plus all of its subsequent steps and/or modules may be performed in parallel with the step ormodule 102. - FIG. 7 shows a representative example of the step or
module 104. As shown in FIG. 7, this representative embodiment is made up of five steps and/ormodules - Referring now to FIG. 7, an
order pointer 120 shows that the first step or module of this representative embodiment is a configure support vector machine step ormodule 302. Configure support vector machine step ormodule 302 may be used to set up the structure and parameters of thesupport vector machine 1206 that is utilized by the system and method of one embodiment of the present invention. As discussed below in detail, the actual steps and/or modules utilized to set up the structure and parameters ofsupport vector machine 1206 may be shown in FIG. 12. - After the
support vector machine 1206 has been configured in step ormodule 302, anorder pointer 312 indicates that a wait training data interval step ormodule 304 may occur or may be utilized. The wait training data interval step ormodule 304 may specify how frequently thehistorical database 1210 is to be looked at to determine if any new training data to be utilized for training of thesupport vector machine 1206 exists. It should be noted that the training data interval of step ormodule 304 may not be the same as the specified training input data storage interval of step ormodule 206 of FIG. 6. Any desired value for the training data interval may be utilized for step ormodule 304. - An
order pointer 314 indicates that the next step or module may be a new training input data step ormodule 306. This new training input data step ormodule 306 may be utilized after the lapse of the training data interval specified by step ormodule 304. The purpose of step ormodule 306 may be to examine thehistorical database 1210 to determine if new training data has been stored in the historical database since the last time thehistorical database 1210 was examined for new training data. The presence of new training data may permit the system and method of one embodiment of the present invention to train thesupport vector machine 1206 if other parameters/conditions are met. FIG. 13 discussed below shows a specific embodiment for the step ormodule 306. - An
order pointer 318 indicates that if step ormodule 306 indicates that new training data is not present in thehistorical database 1210, the step ormodule 306 returns operation to the step ormodule 304. - In contrast, if new training data is present in the
historical database 1210, the step ormodule 306, as indicated by anorder pointer 316, continues processing with a train support vector machine step ormodule 308. Train support vector machine step ormodule 308 may be the actual training of thesupport vector machine 1206 using the new training data retrieved from thehistorical database 1210. FIG. 14, discussed below in detail, shows a representative embodiment of the train support vector machine step ormodule 308. - After the support vector machine has been trained, in step or
module 308, the step ormodule 104 as indicated by anorder pointer 320 may move to an error acceptable step ormodule 310. Error acceptable step ormodule 310 may determine whether theerror data 1504 produced by thesupport vector machine 1206 is within an acceptable metric, indicating error that thesupport vector machine 1206 is providingoutput data 1218 that is close enough to thetraining input data 1306 to permit the use of theoutput data 1218 from thesupport vector machine 1206. In other words, an acceptable error may indicate that thesupport vector machine 1206 has been “trained” as training is specified by the user of the system and method of one embodiment of the present invention. A representative example of the error acceptable step ormodule 310 is shown in FIG. 15, which is discussed in detail below. - If an unacceptable error is determined by error acceptable step or
module 310, anorder pointer 322 indicates that the step ormodule 104 returns to the wait training data interval step ormodule 304. In other words, when an unacceptable error exists, the step ormodule 104 has not completed training thesupport vector machine 1206. Because thesupport vector machine 1206 has not completed being trained, training may continue before the system and method of one embodiment of the present invention may move to a step ormodule 106 discussed below. - In contrast, if the error acceptable step or
module 310 determines that an acceptable error from thesupport vector machine 1206 has been obtained, then the step ormodule 104 has trainedsupport vector machine 1206. Since thesupport vector machine 1206 has now been trained, step ormodule 104 may allow the system and method of one embodiment of the present invention to move to the steps ormodules module 104 are now discussed. - 1. Configure Support Vector Machine Step or
Module 302 - Referring now to FIG. 12, a representative embodiment of the configure support vector machine step or
module 302 is shown. This step ormodule 302 may allow the uses of one embodiment of the present invention to both configure and re-configure the support vector machine. Referring now to FIG. 12, theorder pointer 120 indicates that the first step or module may be a specify training and prediction timing control step ormodule 802. Step ormodule 802 may allow the person configuring the system and method of one embodiment of the present invention to specify the training interval(s) and the prediction timing interval(s) of thesupport vector machine 1206. - FIG. 33 shows a representative embodiment of the step or
module 802. Referring now to FIG. 33, step ormodule 802 may be made up of four steps and/ormodules module 3102 may be a specify training timing method step or module. The specify training timing method step ormodule 3102 may allow the user configuring one embodiment of the present invention to specify the method or procedure to be followed to determine when thesupport vector machine 1206 is being trained. A representative example of this may be when all of the training data has been updated. Another example may be the lapse of a fixed time interval. Other methods and procedures may be utilized. - An order pointer indicates that a specify training timing parameters step or
module 3104 may then be carried out by the user of one embodiment of the present invention. This step ormodule 3104 may allow for any needed training timing parameters to be specified. It should be realized that the method or procedure of step ormodule 3102 may result in zero or more training timing parameters, each of which may have a value. This value may be a time value, a module number (e.g., in the modular embodiment of the present invention of FIG. 19), or a data pointer. In other words, the user may configure one embodiment of the present invention so that considerable flexibility may be obtained in how training of thesupport vector machine 1206 may occur, based on the method or procedure of step ormodule 3102. - An order pointer indicates that once the
training timing parameters 3104 have been specified, a specify prediction timing method step ormodule 3106 may be configured by the user of one embodiment of the present invention. This step ormodule 3106 may specify the method or procedure that may be used by thesupport vector machine 1206 to determine when to predictoutput data values 1218 after the SVM has been trained. This is in contrast to the actual training of thesupport vector machine 1206. Representative examples of methods or procedures for step ormodule 3106 may include: execute at a fixed time interval, execute after the execution of a specific module, and execute after a specific data value is updated. Other methods and procedures may also be used. - An order indicator in FIG. 33 shows that a specify prediction timing parameters step or
module 3108 may then be carried out by the user of one embodiment of the present invention. Any needed prediction timing parameters for the method or procedure of step ormodule 3106 may be specified. For example, the time interval may be specified as a parameter for the execute at a specific time interval method or procedure. Another example may be the specification of a module identifier when the execute after the execution of a particular module method or procedure is specified. Another example may be a data pointer when the updating of a data value method or procedure is used. Other operation timing parameters may be used. - Referring again to FIG. 12, after the specify training and prediction timing control step or
module 802 has been specified, a specify support vector machine size step ormodule 804 may be carried out. This step ormodule 804 may allow the user to specify the size and structure of thesupport vector machine 1206 that is used by one embodiment of the present invention. - Specifically, referring to FIG. 33 again, a representative example of how the support vector machine size may be specified by step or
module 804 is shown. An order pointer indicates that a specific number of inputs step ormodule 3110 may allow the user to indicate the number of inputs that thesupport vector machine 1206 may have. Note that the source of the input data for the specific number of inputs in the step ormodule 3110 is not specified. Only the actual number of inputs is specified in the step ormodule 3110. - In step or
module 3112, a kernel function may be determined for the support vector machine. The specific kernel function chosen may determine the kind of support vector machine (e.g., radial basis function, polynomial, multi-layer network, etc.). Depending upon the specific kernel function chosen, additional parameters may be specified. For example, as mentioned above, for gaussian kernels, one may specify the standard deviation, for polynomial kernels, one may specify the order of the polynomial. In one embodiment, there may be default values (estimates) for these parameters which may be overridden by user input. - It should be noted that in other embodiments, various other training or execution parameters of the SVM not shown in FIG. 33 may be specified by the user (e.g., algorithm parameters such as cost of constraint violations, and convergence tolerance (epsilon)).
- An order pointer indicates that once the kernel function has been specified in step or
module 3112, a specific number of outputs step ormodule 3114 may allow the user to indicate the number of outputs that thesupport vector machine 1206 may have. Note that the storage location for the outputs of thesupport vector machine 1206 is not specified in step ormodule 3114. Instead, only the actual number of outputs is specified in the step ormodule 3114. - As discussed herein, one embodiment of the present invention may contemplate any form of presently known or future developed configuration for the structure of the
support vector machine 1206. Thus, steps ormodules support vector machine 1206. - Referring again to FIG. 12, once the support vector machine size has been specified in step or
module 804, the user may specify the training and prediction modes in a step ormodule 806. Step ormodule 806 may allow both the training and prediction modes to be specified. Step ormodule 806 may also allow for controlling the storage of the data produced in the training and prediction modes. Step ormodule 806 may also allow for data coordination to be used in training mode. - A representative example of the specific training and prediction modes step or
module 806 is shown in FIG. 33. It is made up of step ormodules - As shown, an order pointer indicates that the user may specify prediction and train modes in step or
module 3116. These prediction and train modes may be yes/no or on/off settings, in one embodiment. Since the system and method of one embodiment of the present invention is in the train mode at this stage in its operation, step ormodule 3116 typically goes to its default setting of train mode only. However, it should be understood that various embodiments of the present invention may contemplate allowing the user to independently control the prediction or train modes. - When prediction mode is enabled or “on,” the
support vector machine 1206 may predictoutput data values 1218 using retrieved input data values 1220, as described below. When training mode is enabled or “on,” thesupport vector machine 1206 may monitor thehistorical database 1210 for new training data and may train using the training data, as described below. - An order pointer indicates that once the prediction and train modes have been specified in step or
module 3116, the user may specify prediction and train storage modes in step ormodule 3118. These prediction and train storage modes may be on/off, yes/no values, similar to the modes of step ormodule 3116. The prediction and train storage modes may allow the user to specify whether the output data produced in the prediction and/or training may be stored for possible later use. In some situations, the user may specify that the output data is not to be stored, and in such a situation the output data will be discarded after the prediction or train mode has occurred. Examples of situations where storage may not be needed include: (1) if the error acceptable metric value in the train mode indicates that the output data is poor and retraining is necessary; (2) in the prediction mode, where the output data is not stored but is only used. Other situations may arise where no storage is warranted. - An order pointer indicates that a specify training data coordination mode step or
module 3120 may then be specified by the user. Oftentimes,training input data 1306 may be correlated in some manner withinput data 1220. Step ormodule 3120 may allow the user to deal with the relatively long time period required to producetraining input data 1306 from when the measured state(s) existed in the process. First, the user may specify whether the most recent input data is to be used with the training data, or whether prior input data is to be used with the training data. If the user specifies that prior input data is to be used, the method of determining the time of the prior input data may be specified in step ormodule 3120. - Referring again to FIG. 12, once the specified training and prediction modes step or
module 806 has been completed by the user, steps andmodules module 808, specify output data step ormodule 810, specify training input data step ormodule 812, and specify error data step ormodule 814. Essentially, these four steps and/or modules 808-814 may allow the user to specify the source and destination of input and output data for both the (run) prediction and training modes, and the storage location of the error data determined in the training mode. - FIG. 34 shows a representative embodiment used for all of the steps and/or modules808-814 as follows.
- Steps and/or
modules - Turning first to specifying the storage location of the data being specified, step or
module 3202 is called specify data system. For example, typically, in a chemical plant, there is more than one computer system utilized with a process being controlled. Step ormodule 3202 may allow for the user to specify which computer system(s) contains the data or storage location that is being specified. - Once the data system has been specified, the user may specify the data type using step or module3204: specify data type. The data type may indicate which of the many types of data and/or storage modes is desired. Examples may include current (most recent) values of measurements, historical values, time averaged values, setpoint values, limits, etc. After the data type has been specified, the user may specify a data item number or identifier using step or
module 3206. The data item number or identifier may indicate which of the many instances of the specify data type in the specified data system is desired. Examples may include the measurement number, the control loop number, the control tag name, etc. These three steps and/or modules 3202-3206 may thus allow the user to specify the source or destination of the data (used/produced by the support vector machine) being specified. - Once this information has been specified, the user may specify the following additional parameters. The user may specify the oldest time interval boundary using step or
module 3208, and may specify the newest time interval boundary using step ormodule 3210. For example, these boundaries may be utilized where a time weighted average of a specified data value is needed. Alternatively, the user may specify one particular time when the data value being specified is a historical data point value. - Sanity checks on the data being specified may be specified by the user using steps and/or
modules module 3212, and may specify a low limit value using step ormodule 3214. Since sensors sometimes fail, for example, this sanity check may allow the user to prevent the system and method of one embodiment of the present invention from using false data from a failed sensor. Other examples of faulty data may also be detected by setting these limits. - The high and low limit values may be used for scaling the input data. Support vector machines may be typically trained and operated using input, output and training input data scaled within a fixed range. Using the high and low limit values may allow this scaling to be accomplished so that the scaled values use most of the range.
- In addition, the user may know that certain values will normally change a certain amount over a specific time interval. Thus, changes which exceed these limits may be used as an additional sanity check. This may be accomplished by the user specifying a maximum change amount in step or
module 3216. - Sanity checks may be used in the method of one embodiment of the present invention to prevent erroneous training, prediction, and control. Whenever any data value fails to pass the sanity checks, the data may be clamped at the limit(s), or the operation/control may be disabled. These tests may significantly increase the robustness of various embodiments of the present invention.
- It should be noted that these steps and/or modules in FIG. 34 apply to the input, output, training input, and error data steps and/or
modules - When the support vector machine is fully configured, the coefficients may be normally set to random values in their allowed ranges. This may be done automatically, or it may be performed on demand by the user (for example, using
softkey 2616 in FIG. 28). - 2. Wait Training Input Data Interval Step or
Module 304 - Referring again to FIG. 7, the wait training data interval step or
module 304 is now described in greater detail. - Typically, the wait training input data interval is much shorter than the time period (interval) when training input data becomes available. This wait training input data interval may determine how often the training input data will be checked to determine whether new training input data has been received. Obviously, the more frequently the training input data is checked, the shorter the time interval will be from when new training input data becomes available to when retraining has occurred.
- It should be noted that the configuration for the
support vector machine 1206 and specifying its wait training input data interval may be done by the user. This interval may be inherent in the software system and method which contains the support vector machine of one embodiment of the present invention. Preferably, it is specifically defined by the entire software system and method of one embodiment of the present invention. Next, thesupport vector machine 1206 is trained. - 3. New Training Input Data Step or
Module 306 - An
order pointer 314 indicates that once the wait traininginput data interval 304 has elapsed, the new training input data step ormodule 306 may occur. - FIG. 13 shows a representative embodiment of the new training input data step or
module 306. Referring now to FIG. 13, a representative example of determining whether new training input data has been received is shown. A retrieve current training input timestamp from historical database step ormodule 902 may first retrieve from thehistorical database 1210 the current training input data timestamp(s). As indicated by an order pointer, a compare current training input data timestamp to stored training input data timestamp step ormodule 904 may compare the current training input data timestamp(s) with saved training input data timestamp(s). Note that when the system and method of one embodiment of the present invention is first started, an initialization value may be used for the saved training input data timestamp. If the current training input data timestamp is the same as the saved training input data timestamp, this may indicate that new training input data does not exist. This situation on no new training input data may be indicated byorder pointer 318. - Step or
module 904 may function to determine whether any new training input data is available for use in training the support vector machine. It should be understood that, in various embodiments of the present invention, the presence of new training input data may be detected or determined in various ways. One specific example is where only one storage location is available for training input data and the associated timestamp. In this case, detecting or determining the presence of new training input data may be carried out by saving internally in the support vector machine the associated timestamp of the training input data from the last time the training input data was checked, and periodically retrieving the timestamp from the storage location for the training input data and comparing it to the internally saved value of the timestamp. Other distributions and combinations of storage locations for timestamps and/or data values may be used in detecting or determining the presence of new training input data. - However, if the comparison of step or
module 904 indicates that the current training input data timestamp is different from the saved training input data timestamp, this may indicate that new training input data has been received or detected. This new training input data timestamp may be saved by a save current training input data timestamp step ormodule 906. After this current timestamp of training input data has been saved, the new training data step ormodule 306 is completed, and one embodiment of the present invention may move to the train support vector machine step ormodule 308 of FIG. 7 as indicated by the order pointer. - 4. Train Support Vector Machine Step or
Module 308 - Referring again to FIG. 7, the train support vector machine step or
module 308 may be the step or module where thesupport vector machine 1206 is trained. FIG. 14 shows a representative embodiment of the train support vector machine step ormodule 308. - Referring now to step or
module 308 shown in FIG. 14, anorder pointer 316 indicates that a retrieve current training input data from historical database step ormodule 1002 may occur. In step ormodule 1002, one or more current training input data values may be retrieved from thehistorical database 1210. The number of current training input data values that is retrieved may be equal to the number of outputs of thesupport vector machine 1206 that is being trained. The training input data is normally scaled. This scaling may use the high and low limit values specified in the configure and train support vector machine step ormodule 104. - An order pointer shows that a choose training input data time step or
module 1004 may be carried out next. Typically, when there are two or more current training input data values that are retrieved, the data time (as indicated by their associated timestamps) for them is different. The reason for this is that typically the sampling schedule used to produce the training input data is different for the various training input data. Thus, current training input data often has varying associated timestamps. In order to resolve these differences, certain assumptions have to be made. In certain situations, the average between the timestamps may be used. Alternately, the timestamp of one of the current training input data may be used. Other approaches also may be employed. - Once the training input data time has been chosen in step or
module 1004, the input data at the training input data time may be retrieved from thehistorical database 1210 as indicated by step ormodule 1006. The input data is normally scaled. This scaling may use the high and low limit values specified in the configure and train support vector machine step ormodule 104. Thereafter, thesupport vector machine 1206 may predict output data from the retrieved input data, as indicated by step ormodule 406. - The predicted output data from the
support vector machine 1206 may then be stored in thehistorical database 1210, as indicated by step ormodule 408. The output data is normally produced in a scaled form, since all the input and training input data is scaled. In this case, the output data may be de-scaled. This de-scaling may use the high and low limit values specified in the configure and train support vector machine step ormodule 104. Thereafter, error data may be computed using the output data from thesupport vector machine 1206 and the training input data, as indicated by step ormodule 1012. It should be noted that theterm error data 1504 as used in step ormodule 1012 may be a set of error data value for all of the predicted outputs from thesupport vector machine 1206. However, one embodiment of the present invention may also contemplate using a global or cumulative error data for evaluating whether the predicted output data values are acceptable. - After the
error data 1504 has been computed or calculated in step ormodule 1012, thesupport vector machine 1206 may be retrained using theerror data 1504 and/or thetraining input data 1306. One embodiment of the present invention may contemplate any method of training thesupport vector machine 1306. - After the training step or
module 1014 is completed, theerror data 1504 may be stored in thehistorical database 1210 in step ormodule 1016. It should be noted that theerror data 1504 shown here may be the individual data for each output. These storederror data 1504 may provide a historical record of the error performance for each output of thesupport vector machine 1206. - The sequence of steps described above may be used when the
support vector machine 1206 is effectively trained using a single presentation of the training set created for each newtraining input data 1306. - However, in using certain training methods or for certain applications, the
support vector machine 1206 may require many presentations of training sets to be adequately trained (i.e., to produce an acceptable metric). In this case, two alternate approaches may be used to train thesupport vector machine 1206, among other approaches. - In the first approach, the
support vector machine 1206 may save the training sets (i.e., the training input data and the associated input data which is retrieved in step or module 308) in a database of training sets, which may then be repeatedly presented to thesupport vector machine 1206 to train the support vector machine. The user may be able to configure the number of training sets to be saved. As new training data becomes available, new training sets may be constructed and saved. When the specified number of training sets has been accumulated (e.g., in a list or buffer), the next training set created based on new data may “bump” the oldest training set from the list or buffer. This oldest training set may then be discarded. Conventional support vector machine training creates training sets all at once, off-line, and would continue using all the training sets created. It is noted that the use of a buffer to store training sets is but one example of storage means for the training sets, and that other storage means are also contemplated, including lists (such as queues and stacks), databases, and arrays, among others. - A second approach which may be used is to maintain a time history of input data and training input data in the historical database1210 (e.g., in a list or buffer), and to search the
historical database 1210, locating training input data and constructing the corresponding training set by retrieving the associated input data. - It should be understood that the combination of the
support vector machine 1206 and thehistorical database 1210 containing both the input data and the training input data with their associated timestamps may provide a very powerful platform for building, training and using thesupport vector machine 1206. One embodiment of the present invention may contemplate various other modes of using the data in thehistorical database 1210 and thesupport vector machine 1206 to prepare training sets for training thesupport vector machine 1206. - 5. Error Acceptable Step or
Module 310 - Referring again to FIG. 7, once the
support vector machine 1206 has been trained in step ormodule 308, a determination of whether an acceptable error exists may occur in step ormodule 310. FIG. 15 shows a representative embodiment of the error acceptable step ormodule 310. - Referring now to FIG. 15, an
order pointer 320 indicates that a compute global error using saved global error step ormodule 1102 may occur. The term global error as used herein means the error over all the outputs and/or over two or more training sets (cycles) of thesupport vector machine 1206. The global error may reduce the effects of variation in the error from one training set (cycle) to the next. One cause for the variation is the inherent variation in tests used to generate the training input data. - Once the global error has been computed or estimated in step or
module 1102, the global error may be saved in step ormodule 1104. The global error may be saved internally in thesupport vector machine 1206, or it may be stored in thehistorical database 1210. Storing the global error in thehistorical database 1210 may provide a historical record of the overall performance of thesupport vector machine 1206. - Thereafter, if an appropriate history of global error is available (as would be the case in retraining), step or
module 1106 may be used to determine if the global error is statistically different from zero. Step ormodule 1106 may determine whether a sequence of global error values falls within the expected range of variation around the expected (desired) value of zero, or whether the global error is statistically significantly different from zero. Step ormodule 1106 may be important when the training input data used to compute the global error has significant random variability. If thesupport vector machine 1206 is making accurate predictions, the random variability in the training input data (for example, caused by lab variation) may cause random variation of the global error around zero. Step ormodule 1106 may reduce the tendency to incorrectly classify as not acceptable the predicted outputs of thesupport vector machine 1206. - If the global error is not statistically different from zero, then the global error is acceptable, and one embodiment of the present invention may move to order
pointer 122. An acceptable error indicated byorder pointer 122 means that thesupport vector machine 1206 is trained. This completes step ormodule 104. - However, if the global error is statistically different from zero, one embodiment of the present invention in the retrain mode may move to step or
module 1108, which is called training input data statistically valid. (Note that step ormodule 1108 is not needed in the training mode of step ormodule 104. In the training mode, a global error statistically different from zero moves directly toorder pointer 322.) - If the training input data in the retraining mode is not statistically valid, this may indicate that the acceptability of the global error may not be determined, and one embodiment of the present invention may move to order
pointer 122. However, if the training input data is statistically valid, this may indicate that the error is not acceptable, and one embodiment of the present invention may move back to the wait training input data interval step ormodule 304, as indicated in FIG. 7. - The steps and/or modules described here for determining whether the global error is acceptable constitute one example of implementing a global error acceptable metric. It should be understood that different process characteristics, different sampling frequencies, and/or different measurement techniques (for process conditions and product properties) may indicate alternate methods of determining whether the error is acceptable. One embodiment of the present invention may contemplate any method of creating an error acceptable metric.
- Thus, step or
module 104 may configure and train thesupport vector machine 1206 for use in one embodiment of the present invention. - C. Predict Output Data Using Support Vector Machine Step or
Module 106 - Referring again to FIG. 5, the
order pointer 122 indicates that there are two parallel paths that one embodiment of the present invention may use after the configure and train support vector machine step ormodule 104. One of the paths, which the predict output data using support vector machine step ormodule 106 described below is part of, may be used for: predicting output data using thesupport vector machine 1206; retraining thesupport vector machine 1206 using these predicted output data; and disabling control of the controlled process when the (global) error from thesupport vector machine 1206 exceeds a specified error acceptable metric (criterion). The other path may be the actual control of the process using the predicted output data from thesupport vector machine 1206. - Turning now to the predict output data using support vector machine step or
module 106, this step ormodule 106 may use thesupport vector machine 1206 to produce output data for use in control of the process and for retraining thesupport vector machine 1206. FIG. 8 shows a representative embodiment of step ormodule 106. - Turning now to FIG. 8, a wait specified prediction interval step or
module 402 may utilize the method or procedure specified by the user in steps and/ormodules module 404. The input data may be retrieved at the current time. That is, the most recent value available for each input data value may be retrieved from thehistorical database 1210. - The
support vector machine 1206 may then predict output data from the retrieved input data, as indicated by step ormodule 406. This output data may be used for process control, retraining, and/or control purposes as discussed below in subsequent sections. Prediction may be done using any presently known or future developed approach. - D. Retrain Support Vector Machine Step or
Module 108 - Referring again to FIG. 5, once the predicted output data has been produced by the
support vector machine 1206, a retrain support vector machine step ormodule 108 may be used. - Retraining of the
support vector machine 1206 may occur when new training input data becomes available. FIG. 9 shows a representative embodiment of the retrain support vector machine step ormodule 108. - Referring now to FIG. 9, an
order pointer 124 shows that a new training input data step ormodule 306 may determine if new training input data has become available. FIG. 13 shows a representative embodiment of the new training input data step ormodule 306. Step ormodule 306 is described above in connection with FIG. 7. - As indicated by an
order pointer 126, if new training data is not present, one embodiment of the present invention may return to the predict output data using support vector machine step ormodule 106, as shown in FIG. 5. - If new training input data is present, the
support vector machine 1206 may be retrained, as indicated by step ormodule 308. A representative example of step ormodule 308 is shown in FIG. 14. It is noted that training of the support vector machine is the same as retraining, and retraining is described in connection with FIG. 7, above. - Once the
support vector machine 1206 has been retrained, anorder pointer 128 may cause one embodiment of the present invention to move to an enable/disable control step ormodule 110 discussed below. - E. Enable/Disable Control Module or
Step 110 - Referring again to FIG. 5, once the
support vector machine 1206 has been retrained, as indicated by step ormodule 108, one embodiment of the present invention may move to an enable/disable control step ormodule 110. The purpose of the enable/disable control step ormodule 110 may be to prevent the control of the process using output data (predicted values) produced by thesupport vector machine 1206 when the error is not unacceptable (i.e. when the error is “poor”). - A representative example of the enable/disable control step or
module 110 is shown in FIG. 10. Referring now to FIG. 10, the function ofmodule 110 may be to enable control of the controlled process if the error is acceptable, and to disable control if the error is unacceptable. As shown in FIG. 10, anorder pointer 128 may move one embodiment of the present invention to an error acceptable step ormodule 310. If the error between the training input data and the predicted output data is unacceptable, control of the controlled process is disabled by a disable control step ormodule 604. The disable control step ormodule 604 may set a flag or indicator which may be examined by the control process using output data step ormodule 112. The flag may indicate that the output data should not be used for control. - FIG. 32 shows a representative embodiment of the enable control step or
module 602. Referring now to FIG. 32, anorder pointer 142 may cause one embodiment of the present invention first to move to an output data indicates safety or operability problems step or module 3002. If the output data does not indicate a safety or operability problem, this may indicate that theprocess 1212 may continue to operate safely. Thus, processing may move to the enable control using output data step ormodule 3006. - In contrast, if the output data does indicate a safety or operability problem, one embodiment of the present invention may recommend that the process being controlled be shut down, as indicated by a recommend process shutdown step or
module 3004. This recommendation to the operator of theprocess 1212 may be made using any suitable approach. One example of recommendation to the operator is a screen display or an alarm indicator. This safety feature may allow one embodiment of the present invention to prevent the controlledprocess 1212 from reaching a critical situation. - If the output data does not indicate safety or operability problems in step or module3002, or after the recommendation to shut down the process has been made in step or
module 3004, one embodiment of the present invention may move to the enable control using output data step ormodule 3006. Step ormodule 3006 may set a flag or indicator which may be examined by step ormodule 112, indicating that the output data should be used to control the process. - Thus, it may be appreciated that the enable/disable control step or
module 110 may provide the function to one embodiment of the present invention of (1) allowing control of theprocess 1212 using the output data in step ormodule 112, (2) preventing the use of the output data in controlling theprocess 1212, but allowing theprocess 1212 to continue to operate, or (3) shutting down theprocess 1212 for safety reasons. As noted above, the embodiment described herein relates to process control, such as of a manufacturing plant, and is not intended to limit the application of various embodiments of the present invention to that domain, but rather, various embodiments of the invention may be contemplated to be applicable in many other areas, as well, such as e-commerce, data analysis, stocks and bonds management and analysis, business decision-making, optimization, e-marketplaces, financial analysis, or any other field of endeavor where predictive or classification models may be useful. Thus, specific steps or modules described herein which apply only to process control embodiments may be different, or omitted as appropriate or as desired. - F. Control Process Using Output Data Step or
Module 112 - Referring again to FIG. 5, the
order pointer 122 indicates that the control of the process using the output data from thesupport vector machine 1206 may run in parallel with the prediction of output data using thesupport vector machine 1206, the retraining of thesupport vector machine 1206, and the enable/disable control of theprocess 1212. - FIG. 11 shows a representative embodiment of the control process using output data step or
module 112. Referring now to FIG. 11, theorder pointer 122 may indicate that one embodiment of the present invention may first move to a wait controller interval step ormodule 702. The interval at which the controller may operate may be any pre-selected value. This interval may be a time value, an event, or the occurrence of a data value. Other interval control methods or procedures may be used. - Once the controller interval has occurred, as indicated by the order pointer, one embodiment of the present invention may move to a control enabled step or
module 704. If control has been disabled by the enable/disable control step ormodule 110, one embodiment of the present invention may not control theprocess 1212 using the output data. This may be indicated by the order pointer marked “NO” from the control enabled step ormodule 704. - If control has been enabled, one embodiment of the present invention may move to the retrieve output data from historical database step or
module 706. Step ormodule 706 may show that the output data 1218 (see FIG. 4) produced by thesupport vector machine 1206 and stored in thehistorical database 1210 is retrieved (1214) and used by thecontroller 1202 to computecontroller output data 1208 for control of theprocess 1212. - This control by the
controller 1202 of theprocess 1212 may be indicated by an effectively control process using controller to compute controller output step ormodule 708 of FIG. 11. - Thus, it may be appreciated that one embodiment of the present invention may effectively control the process using the output data from the
support vector machine 1206. It should be understood that the control of theprocess 1212 may be any presently known or future developed approach, including the architecture shown in FIGS. 18 and 19. It should also be understood that theprocess 1212 may be any kind of process, including an analysis process, a business process, a scientific process, an e-commerce process, or any other process wherein predictive models may be useful. - Alternatively, when the output data from the
support vector machine 1206 is determined to be unacceptable, theprocess 1212 may continue to be controlled by thecontroller 1202 without the use of the output data. - V. One Structure (Architecture)
- Discussed above in Section III (Use in Combination with Expert Systems) is one method of operation of one embodiment of the present invention. Discussed in this Section is one structure (architecture) of one embodiment of the present invention. However, it should be understood that in the description set forth above, the modular structure (architecture) of the embodiment of the present invention is also discussed in connection with the operation. Thus, certain portions of the structure of the embodiment of the present invention have inherently been described in connection with the description set forth above in Section III.
- One embodiment of the present invention may comprise one or more software systems. In this context, software system refers to a collection of one or more executable software programs, and one or more storage areas, for example, RAM or disk. In general terms, a software system may be understood to comprise a fully functional software embodiment of a function, which may be added to an existing computer system to provide new function to that computer system.
- Software systems generally are constructed in a layered fashion. In a layered system, a lowest level software system is usually the computer operating system which enables the hardware to execute software instructions. Additional layers of software systems may provide, for example, historical database capability. This historical database system may provide a foundation layer on which additional software systems may be built. For example, a support vector machine software system may be layered on top of the historical database. Also, a supervisory control software system may be layered on top of the historical database system.
- A software system may thus be understood to be a software implementation of a function which may be assembled in a layered fashion to produce a computer system providing new functionality. Also, in general, the interface provided by one software system to another software system is well-defined. It should be understood in the context of one embodiment of the present invention that delineations between software systems may be representative of one implementation. However, one embodiment of the present invention may be implemented using any combination or separation of software systems. Similarly, in some embodiments of the present invention, there may be no need for some of the described components, such as sensors, raw materials, etc., while in other embodiments, the raw materials may comprise data rather than physical materials, and the sensors may comprise data sensing components, such as for use in data mining or other information technologies.
- FIG. 4 shows one embodiment of the structure of the present invention, as applied to a manufacturing process. Referring now to FIG. 4, the
process 1212 being controlled may receiveraw materials 1222 and may produceproduct 1216. Sensors 1226 (of any suitable type) may providesensor signals historical database 1210 for storage with associated timestamps. It should be noted that any suitable type ofsensor 1226 may be employed which providessensor signals - The
historical database 1210 may store the sensor signals 1224 that may be supplied to it with associated timestamps as provided by aclock 1230. In addition, as described below, thehistorical database 1210 may also storeoutput data 1218 from thesupport vector machine 1206. Thisoutput data 1218 may also have associated timestamps provided by thesupport vector machine 1206. - Any suitable type of
historical database 1210 may be employed. Historical databases are generally discussed in Hale and Sellars, “Historical Data Recording for Process Computers,” 77 Chem. Eng'g Progress 38 AICLE, New York, (1981), which is hereby incorporated by reference. - The
historical database 1210 that is used may be capable of storing thesensor input data 1224 with associated timestamps, and the predictedoutput data 1218 from thesupport vector machine 1206 with associated timestamps. Typically, thehistorical database 1210 may store thesensor data 1224 in a compressed fashion to reduce storage space requirements, and will store sampled (lab)data 1304 in uncompressed form. - Often, the
historical database 1210 may be present in a chemical plant in the existing process control system. One embodiment of the present invention may utilize this historical database to achieve the improved process control obtained by the embodiment of the present invention. - A historical database is a special type of database in which at least some of the data is stored with associated time stamps. Usually the time stamps may be referenced in retrieving (obtaining) data from a historical database.
- The
historical database 1210 may be implemented as a stand alone software system which forms a foundation layer on which other software systems, such as thesupport vector machine 1206, may be layered. Such a foundation layer historical database system may support many functions in a process control environment. For example, the historical database may serve as a foundation for software which provides graphical displays of historical process data for use by a plant operator. A historical database may also provide data to data analysis and display software which may be used by engineers for analyzing the operation of theprocess 1212. Such a foundation layer historical database system may often contain a large number of sensor data inputs, possibly a large number of laboratory data inputs, and may also contain a fairly long time history for these inputs. - It should be understood, however, that one embodiment of the present invention may require a very limited subset of the functions of the
historical database 1210. Specifically, an embodiment of the present invention may require the ability to store at least one training data value with the timestamp which indicates an associated input data value, and the ability to store at least one associated input data value. In certain circumstances where, for example, a historical database foundation layer system does not exist, it may be desirable to implement the essential historical database functions as part of the support vector machine software. By integrating the essential historical database capabilities into the support vector machine software, one embodiment of the present invention may be implemented in a single software system. It should be understood that the various divisions among software systems used to describe various embodiments of the present invention may only be illustrative in describing the best mode as currently practiced. Any division, combination, or subset of various software systems of the steps and elements of various embodiments of the present invention may be used. - The
historical database 1210, as used in one embodiment of the present invention, may be implemented using a number of methods. For example, the historical database may be built as a random access memory (RAM) database. Thehistorical database 1210 may also be implemented as a disk-based database, or as a combination of RAM and disk databases. If an analogsupport vector machine 1206 is used in one embodiment of the present invention, thehistorical database 1210 may be implemented using a physical storage device. One embodiment of the present invention may contemplate any computer or analog means of performing the functions of thehistorical database 1210. - The
support vector machine 1206 may retrieveinput data 1220 with associated timestamps. Thesupport vector machine 1206 may use this retrievedinput data 1220 to predictoutput data 1218. Theoutput data 1218 with associated timestamps may be supplied to thehistorical database 1210 for storage. - A representative embodiment of the
support vector machine 1206 is described above in Section I (Overview of Support Vector Machines). It should be understood that support vector machines, as used in one embodiment of the present invention, may be implemented in any way. For example, one embodiment may use a software implementation of asupport vector machine 1206. It should be understood, however, that any form of implementing asupport vector machine 1206 may be used in one embodiment of the present invention, including physical analog forms. Specifically, as described below, the support vector machine may be implemented as a software module in a modular support vector machine control system. - It should also be understood with regard to various embodiments of the present invention that software and computer embodiments are only one possible way of implementing the various elements in the systems and methods. As mentioned above, the
support vector machine 1206 may be implemented in analog or digital form and also, for example, thecontroller 1202 may also be implemented in analog or digital form. It should be understood, with respect to the method steps or modules as described above for the functioning of the systems as described in this section, that operations such as computing (which imply the operation of a digital computer) may also be carried out in analog equivalents or by other methods. - Returning again to FIG. 4, the
output data 1214 with associated timestamps stored in thehistorical database 1210 may be supplied by apath 1214 to thecontroller 1202. Thisoutput data 1214 may be used by thecontroller 1202 to generatecontroller output data 1208 which, in turn, may be sent to actuator(s) 1228 used to control acontrollable process state 2002 of theprocess 1212. Representative examples ofcontroller 1202 are discussed below. - The box labeled1207 in FIG. 4 indicates that the
support vector machine 1206 and thehistorical database 1210 may, in a variant embodiment of the present invention, be implemented as a single software system. This single software system may be delivered to a computer installation in which no historical database previously existed, to provide the functions of one embodiment of the present invention. Alternatively, a support vector machine configuration module (or program) 1204 may also be included in this software system. - Two additional aspects of the architecture and structure shown in FIG. 4 include: (1) the
controller 1202 may also be provided withinput data 1221 fromsensors 1226. This input data may be provided directly tocontroller 1202 from these sensor(s); (2) the support vectormachine configuration module 1204 may be connected in a bi-directional path configuration with thesupport vector machine 1206. The support vectormachine configuration module 1204 may be used by the user (developer) to configure and control thesupport vector machine 1206 in a fashion as discussed above in connection with the step or module 104 (FIG. 5), or in connection with the user interface discussion contained below. - Turning now to FIG. 16, an alternate embodiment of the structure and architecture of the present invention is shown. Differences between the embodiment of FIG. 4 and that of FIG. 16 are discussed below.
- A laboratory (“lab”)1307 may be supplied with
samples 1302. Thesesamples 1302 may be physical specimens or some type of data from an analytical test or reading. Regardless of the form, thelab 1307 may take thesamples 1302 and may utilize thesamples 1302 to produceactual measurements 1304, which may be supplied to thehistorical database 1210 with associated timestamps. Theactual measurements 1304 may be stored in thehistorical database 1210 with their associated timestamps. - Thus, the
historical database 1210 may also contain actual test results or actual lab results in addition to sensor input data. It should be understood that a laboratory is illustrative of a source ofactual measurements 1304 which may be useful as training input data. Other sources may be encompassed by one embodiment of the present invention. Laboratory data may be electronic data, printed data, or data exchanged over any communications link. - The second difference shown in the embodiment of FIG. 16 is that the
support vector machine 1206 may be supplied with theactual measurements 1304 and associated timestamps stored in thehistorical database 1210. - Thus, it may be appreciated that the embodiment of FIG. 16 may allow one embodiment of the present invention to utilize lab data in the form of
actual measurements 1304 astraining input data 1306 to train the support vector machine. - Turning now to FIG. 17, a representative embodiment of the
controller 1202 is shown. The embodiment may utilize aregulatory controller 1406 for regulatory control of theprocess 1212. Any type of regulatory controller may be contemplated which provides such regulatory control. There may be many commercially available embodiments for such a regulatory controller. Typically, various embodiments of the present invention may be implemented using regulatory controllers already in place. In other words, various embodiments of the present invention may be integrated into existing process control systems, management systems, analysis systems, or other existing systems. - In addition to the
regulatory controller 1406, the embodiment shown in FIG. 17 may also include asupervisory controller 1408. Thesupervisory controller 1408 may compute supervisory controller output data, computed in accordance with the predictedoutput data 1214. In other words, thesupervisory controller 1408 may utilize the predictedoutput data 1214 from thesupport vector machine 1206 to produce supervisorycontroller output data 1402. - The supervisory
controller output data 1402 may be supplied to theregulatory controller 1406 for changing the regulatory controller setpoint 1404 (or other parameter of regulatory controller 1406). In other words, the supervisorycontroller output data 1402 may be used for changing theregulatory controller setpoint 1404 so as to change the regulatory control provided by theregulatory controller 1406. It should be noted that thesetpoint 1404 may refer not only to a plant operation setpoint, but to any parameter of a system or process using an embodiment of the present invention. - Any suitable type of
supervisory controller 1408 may be employed by one embodiment of the present invention, including commercially available embodiments. The only limitation is that thesupervisory controller 1408 be able to use theoutput data 1408 to compute the supervisorycontroller output data 1402 used for changing the regulatory controller setpoint (parameter) 1404. - This embodiment of the present invention may contemplate the
supervisory controller 1408 being in a software and hardware system which is physically separate from theregulatory controller 1406. For example, in many chemical processes, theregulatory controller 1406 may be implemented as a digital distributed control system (DCS). These digital distributed control systems may provide a very high level of robustness and reliability for regulating theprocess 1212. Thesupervisory controller 1408, in contrast, may be implemented on a host-based computer, such as a VAX (VAX is a trademark of DIGITAL EQUIPMENT CORPORATION, Maynard, Mass.), a personal computer, a workstation, or any other type of computer. - Referring now to FIG. 18, a more detailed embodiment of the present invention is shown. In this embodiment, the
supervisory controller 1408 is separated from theregulatory controller 1406. The boxes labeled 1500, 1501, and 1502 shown in FIG. 18 suggest various ways in which the functions of thesupervisory controller 1408, the support vectormachine configuration module 1204, thesupport vector machine 1206 and thehistorical database 1210 may be implemented. For example, the box labeled 1502 shows how thesupervisory controller 1408 and thesupport vector machine 1206 may be implemented together in a single software system. This software system may take the form of a modular system as described below in FIG. 19. Alternatively, the support vectormachine configuration program 1204 may be included as part of the software system, as shown in the box labeled 1501. These various software system groupings may be indicative of various ways in which various embodiments of the present invention may be implemented. However, it should be understood that any combination of functions into various software systems may be used to implement various embodiments of the present invention. - Referring now to FIG. 19, a
representative embodiment 1502 of thesupport vector machine 1206 combined with thesupervisory controller 1408 is shown. This embodiment may be called a modular supervisory controller approach. The modular architecture that is shown illustrates that various embodiments of the present invention may contemplate the use of various types of modules which may be implemented by the user (developer) in configuring support vector machine(s) 1206 in combination with supervisory control functions so as to achieve superior process control operation. - Several modules that may be implemented by the user of one embodiment of the present invention may be shown in the embodiment of FIG. 19. Specifically, in addition to the support
vector machine module 1206, the modular embodiment of FIG. 19 may also include afeedback control module 1602, afeedforward control module 1604, anexpert system module 1606, a cusum (cumulative summation)module 1608, aShewhart module 1610, auser program module 1612, and/or abatch event module 1614. Each of these modules may be selected by the user. The user may implement more than one of each of these modules in configuring various embodiments of the present invention. Moreover, additional types of modules may be utilized. - The intent of the embodiment shown in FIG. 19 is to illustrate three concepts. First, various embodiments of the present invention may utilize a modular approach which may ease user configuration. Second, the modular approach may allow for much more complicated systems to be configured since the modules may act as basic building blocks which may be manipulated and used independently of each other.
- Third, the modular approach may show that various embodiments of the present invention may be integrated into other process control systems. In other words, various embodiments of the present invention may be implemented into the system and method of the United States patents and patent applications which are incorporated herein by reference as noted above, among others.
- Specifically, this modular approach may allow the support vector machine capability of various embodiments of the present invention to be integrated with the expert system capability described in the above-noted patents and patent applications. As described above, this may enable the support vector machine capabilities of various embodiments of the present invention to be easily integrated with other standard control functions such as statistical tests, feedback control, and feedforward control. However, even greater function may be achieved by combining the support vector machine capabilities of various embodiments of the present invention, as implemented in this modular embodiment, with the expert system capabilities of the above-noted patent applications, also implemented in modular embodiments. This easy combination and use of standard control functions, support vector machine functions, and expert system functions may allow a very high level of capability to be achieved in solving process control problems.
- The modular approach to building support vector machines may result in two principal benefits. First, the specification needed from the user may be greatly simplified so that only data is required to specify the configuration and function of the support vector machine. Secondly, the modular approach may allow for much easier integration of support vector machine function with other related control functions, such as feedback control, feedforward control, etc.
- In contrast to a programming approach to building a support vector machine, a modular approach may provide a partial definition beforehand of the function to be provided by the support vector machine module. The predefined function for the module may determine the procedures that need to be followed to carry out the module function, and it may determine any procedures that need to be followed to verify the proper configuration of the module. The particular function may define the data requirements to complete the specification of the support vector machine module. The specifications for a modular support vector machine may be comprised of configuration information which may define the size and behavior of the support vector machine in general, and the data interactions of the support vector machine which may define the source and location of data that may be used and created by the system.
- Two approaches may be used to simplify the user configuration of support vector machines. First, a limited set of procedures may be prepared and implemented in the modular support vector machine software. These predefined functions may define the specifications needed to make these procedures work as a support vector machine module. For example, the creation of a support vector machine module may require the specification of the number of inputs, a kernel function, and the number of outputs. The initial values of the coefficients may not be required. Thus, the user input required to specify such a module may be greatly simplified. This predefined procedure approach is one method of implementing the modular support vector machine.
- A second approach to provide modular support vector machine function may allow a limited set of natural language expressions to be used to define the support vector machine. In such an implementation, the user or developer may be permitted to enter, through typing or other means, natural language definitions for the support vector machine. For example, the user may enter text which might read, for example, “I want a fully randomized support vector machine.” These user inputs may be parsed in search of specific combinations of terms, or their equivalents, which would allow the specific configuration information to be extracted from the restricted natural language input.
- By parsing the total user input provided in this method, the complete specification for a support vector machine module may be obtained. Once this information is known, two approaches may be used to generate a support vector machine module.
- A first approach may be to search for a predefined procedure matching the configuration information provided by the restricted natural language input. This may be useful where users tend to specify the same basic support vector machine functions for many problems.
- A second approach may provide for much more flexible creation of support vector machine modules. In this approach, the specifications obtained by parsing the natural language input may be used to generate a support vector machine procedure by actually generating software code. In this approach, the support vector machine functions may be defined in relatively small increments as opposed to the approach of providing a complete predefined support vector machine module. This approach may combine, for example, a small function which is able to obtain input data and populate a set of inputs. By combining a number of such small functional pieces and generating software code which reflects and incorporates the user specifications, a complete support vector machine procedure may be generated.
- This approach may optionally include the ability to query the user for specifications which have been neglected or omitted in the restricted natural language input. Thus, for example, if the user neglected to specify the number of outputs in the network, the user may be prompted for this information and the system may generate an additional line of user specification reflecting the answer to the query.
- The parsing and code generation in this approach may use pre-defined, small sub-functions of the overall support vector machine module. A given key word (term) may correspond to a certain sub-function of the overall support vector machine module. Each sub-function may have a corresponding set of key words (terms) and associated key words and numeric values. Taken together, each key word and associated key words and values may constitute a symbolic specification of the support vector machine sub-function. The collection of all the symbolic specifications may make up a symbolic specification of the entire support vector machine module.
- The parsing step may process the substantially natural language input. The parsing step may remove unnecessary natural language words, and may group the remaining key words and numeric values into symbolic specifications of support vector machine sub-functions. One way to implement parsing may be to break the input into sentences and clauses bounded by periods and commas, and restrict the specification to a single sub-function per clause. Each clause may be searched for key words, numeric values, and associated key words. The remaining words may be discarded. A given key word (term) may correspond to a certain sub-function of the overall support vector machine module.
- Alternatively, key words may have relational tag words (e.g., “in,” “with,” etc.) which may indicate the relation of one key word to another. Using such relational tag words, multiple sub-function specifications may be processed in the same clause.
- Key words may be defined to have equivalents. For example, the user may be allowed, in an embodiment of this aspect of the invention, to specify the kernel function used in the support vector machine. Thus the key word may be “kernel” and an equivalent key word may be “kernel function.” This key word may correspond to a set of pre-defined sub-functions which may implement various kinds of kernel functions in the support vector machine.
- Another example may be key word “coefficients”, which may have equivalent “weights”. The associated data may be a real number which may indicate the value(s) of one or more coefficients. Thus, it may be seen that various levels of flexibility in the substantially natural language specification may be provided. Increasing levels of flexibility may require more detailed and extensive specification of key words and associated data with their associated key words.
- The support vector machine itself may be constructed, using this method, by processing the specifications, as parsed from the substantially natural language input, in a pre-defined order, and generating the fully functional procedure code for the support vector machine from the procedural sub-function code fragments.
- The other major advantage of a modular approach is the ease of integration with other functions in the application (problem) domain. For example, in the process control domain, it may be desirable or productive to combine the functions of a support vector machine with other more standard control functions such as statistical tests, feedback control, etc. The implementation of support vector machines as modular support vector machines in a larger control system may greatly simplify this kind of implementation.
- The incorporation of modular support vector machines into a modular control system may be beneficial because it may make it easy to create and use support vector machine predictions in a control application. However, the application of modular support vector machines in a control system is different from the control functions typically found in a control system. For example, the control functions described in some of the United States patents and patent applications incorporated by reference above generally rely on the current information for their actions, and they do not generally define their function in terms of past (historical) data. In order to make a support vector machine function effectively in a modular control system, some means is needed to train and operate the support vector machine using the data which is not generally available by retrieving current data values. The systems and methods of various embodiments of the present invention, as described above, may provide this essential capability which may allow a modular support vector machine function to be implemented in a modular control system.
- A modular support vector machine has several characteristics which may significantly ease its integration with other control functions. First, the execution of support vector machine functions, prediction and/or training may easily be coordinated in time with other control functions. The timing and sequencing capabilities of a modular implementation of a support vector machine may provide this capability. Also, when implemented as a modular function, support vector machines may make their results readily accessible to other control functions that may need them. This may be done, for example, without needing to store the support vector machine outputs in an external system, such as a historical database.
- Modular support vector machines may run either synchronized or unsynchronized with other functions in the control system. Any number of support vector machines may be created within the same control application, or in different control applications, within the control system. This may significantly facilitate the use of support vector machines to make predictions of output data where several small support vector machines may be more easily or rapidly trained than a single large support vector machine. Modular support vector machines may also provide a consistent specification and user interface so that a user trained to use the modular support vector machine control system may address many control problems without learning new software.
- An extension of the modular concept is the specification of data using pointers. Here again, the user (developer) is offered the easy specification of a number of data retrieval or data storage functions by simply selecting the function desired and specifying the data needed to implement the function. For example, the retrieval of a time-weighted average from the historical database is one such predefined function. By selecting a data type such as a time-weighted average, the user (developer) need only specify the specific measurement desired, the starting time boundary, and the ending time boundary. With these inputs, the predefined retrieval function may use the appropriate code or function to retrieve the data. This may significantly simplify the user's access to data which may reside in a number of different process data systems. By contrast, without the modular approach, the user may have to be skilled in the programming techniques needed to write the calls to retrieve the data from the various process data systems.
- A further development of the modular approach of an embodiment of the present invention is shown in FIG. 20. FIG. 20 shows the
support vector machine 1206 in a modular form. - Referring now to FIG. 20, a specific software embodiment of the modular form of the present invention is shown. In this modular embodiment, a limited set of support vector
machine module types 1702 is provided. Each support vectormachine module type 1702 may allow the user to create and configure a support vector machine module implementing a specific type of support vector machine. Different types of support vector machines may have different kernel functions, different initial coefficient values, different training methods and so forth. For each support vector machine module type, the user may create and configure support vector machine modules. Three specific instances of support vector machine modules may be shown as 1702′, 1702″, and 1702′″. - In this modular software embodiment, support vector machine modules may be implemented as data storage areas which contain a
procedure pointer 1710′, 1710″, 1710′″ to procedures which carry out the functions of the support vector machine type used for that module. The supportvector machine procedures 1706′ and 1706″, for example, may be contained in a limited set of supportvector machine procedures 1704. Theprocedures 1706′, 1706″ may correspond one to one with the support vector machine types contained in the limited set of support vector machine types 1702. - In this modular software embodiment, many support vector machine modules may be created which use the same support vector machine procedure. In this case, the multiple modules each contain a procedure pointer to the same support
vector machine procedure 1706′ or 1706″. In this way, many modular support vector machines may be implemented without duplicating the procedure or code needed to execute or carry out the support vector machine functions. - Referring now to FIG. 21, a more specific software embodiment of the modular support vector machine is shown. This embodiment is of particular value when the support vector machine modules are implemented in the same modular software system as modules performing other functions such as statistical tests or feedback control.
- Because support vector machines may use a large number of inputs and outputs with associated error values and training input data values, and also because support vector machines may require a large number of coefficient values which need to be stored, support vector machine modules may have significantly greater storage requirements than other module types in the control system. In this case, it is advantageous to store support vector machine parameters in a separate support vector machine
parameter storage area 1804. This structure may allow modules implementing functions other than support vector machine functions to not reserve unused storage sufficient for support vector machines. - In this modular software embodiment, each instance of a modular
support vector machine 1702′ and 1702″ may contain two pointers. The first pointers (1710′ and 1710″) may be the procedure pointer described above in reference to FIG. 20. Each support vector machine module may also contain a second pointer, (1802′ and 1802″), referred to as parameter pointers, which may point tostorage areas 1806′ and 1806″, respectively, for support vector machine parameters in a support vector machineparameter storage area 1804. In this embodiment, only support vector machine modules may need to contain theparameter pointers 1802′ and 1802″, which point to the support vector machineparameter storage area 1804. Other module types, such as control modules which do not require such extensive storage, need not have the storage allocated via theparameter pointers 1802′ and 1802″, which may be a considerable savings. - FIG. 24 shows representative aspects of the architecture of the
support vector machine 1206. The representation in FIG. 24 is particularly relevant in connection with the modular support vector machine approach shown in FIGS. 19, 20 and 21 discussed above. - Referring now to FIG. 24, the components to make and use a representative embodiment of the
support vector machine 1206 are shown in an exploded format. - The
support vector machine 1206 may contain a support vector machine model. As stated above, one embodiment of the present invention may contemplate all presently available and future developed support vector machine models and architectures. - The
support vector machine 1206 may have access to input data and training input data and access to locations in which it may store output data and error data. One embodiment of the present invention may use an on-line approach. In this on-line approach, the data may not be kept in thesupport vector machine 1206. Instead, data pointers may be kept in the support vector machine. The data pointers may point to data storage locations in a separate software system. These data pointers, also called data specifications, may take a number of forms and may be used to point to data used for a number of purposes. - For example,
input data pointer 2204 andoutput data pointer 2206 may be specified. As shown in the exploded view, each pointer (i.e.,input data pointer 2204 and output data pointer 2206) may point to or use a particulardata source system 2224 for the data, adata type 2226, and adata item pointer 2228. -
Support vector machine 1206 may also have adata retrieval function 2208 and adata storage function 2210. Examples of these data retrieval and data storage functions may becallable routines 2230,disk access 2232, andnetwork access 2234. These are merely examples of the aspects of retrieval and storage functions. -
Support vector machine 1206 may also have prediction timing and training timing. These may be specified byprediction timing control 2212 andtraining timing control 2214. One way to implement this may be to use atiming method 2236 and its associatedtiming parameters 2238. Referring now to FIG. 26, examples oftiming method 2236 may include afixed time interval 2402, anew data entry 2404, an after anothermodule 2406, an onprogram request 2408, an onexpert system request 2410, a when all training data updates 2412, and/or abatch sequence methods 2414. These may be designed to allow the training and function of thesupport vector machine 1206 to be controlled by time, data, completion of modules, or other methods or procedures. The examples are merely illustrative in this regard. - FIG. 26 also shows examples of the
timing parameters 2238. Such examples may include atime interval 2416, adata item specification 2418, amodule specification 2420, and/or asequence specification 2422. As is shown in FIG. 26, examples of thedata item specification 2418 may include specifying adata source system 2224, adata type 2226, and/or adata item pointer 2228 which have been described above. - Referring again to FIG. 24, training data coordination, as discussed previously, may also be required in many applications. Examples of approaches that may be used for such coordination are shown. One method may be to use all current values as representative by
reference numeral 2240. Another method may be to use current training input data values with the input data at the earliest training input data time, as indicated by reference numeral 2242. Yet another approach may be to use current training input data values with the input data at the latest training input data time, as indicated by reference numeral 2244. Again, these are merely examples, and should not be construed as limiting in terms of the type of coordination of training data that may be utilized by various embodiments of the present invention. - The
support vector machine 1206 may also need to be trained, as discussed above. As stated previously, any presently available or future developed training method may be contemplated by various embodiments of the present invention. The training method also may be somewhat dictated by the architecture of the support vector machine model that is used. - Referring now to FIG. 25, examples of the
data source system 2224, thedata type 2226, and thedata item pointer 2228 are shown for purposes of illustration. - With respect to the
data source system 2224, examples may be ahistorical database 1210, a distributedcontrol system 1202, aprogrammable controller 2302, and a networkedsingle loop controller 2304. These are merely illustrative. - Any data source system may be utilized by various embodiments of the present invention. It should also be understood that such a data source system may either be a storage device or an actual measuring or calculating device. In one embodiment, all that is required is that a source of data be specified to provide the
support vector machine 1206 with theinput data 1220 that is needed to produce theoutput data 1218. One embodiment of the present invention may contemplate more than one data source system used by the samesupport vector machine 1206. - The
support vector machine 1206 needs to know the data type that is being specified. This is particularly important in ahistorical database 1210 since it may provide more than one type of data. Several examples may be shown in FIG. 25 as follows: acurrent value 2306, ahistorical value 2308, a timeweighted average 2310, acontroller setpoint 2312, and a controller adjustment amount 2314. Other types may be contemplated. - Finally, the
data item pointer 2228 may be specified. The examples shown may include: aloop number 2316, avariable number 2318, ameasurement number 2320, and/or a loop tag I.D. 2322, among others. Again, these are merely examples for illustration purposes, as various embodiments of the present invention may contemplate any type ofdata item pointer 2228. - It is thus seen that
support vector machine 1206 may be constructed so as to obtain desiredinput data 1220 and to provideoutput data 1218 in any intended fashion. In one embodiment of the present invention, this may be done through menu selection by the user (developer) using a graphical user interface of a software based system on a computer platform. - The construction of the
controller 1202 is shown in FIG. 27 in an exploded format. Again, this is merely for purposes of illustration. First, thecontroller 1202 may be implemented on ahardware platform 2502. Examples ofhardware platforms 2502 may include: a pneumaticsingle loop controller 2414, an electronicsingle loop controller 2516, a networked single loopedcontroller 2518, aprogrammable loop controller 2520, a distributedcontrol system 2522, and/or aprogrammable logic controller 2524. Again, these are merely examples for illustration. Any type ofhardware platform 2502 may be contemplated by various embodiments of the present invention. - In addition to the
hardware platform 2502, thecontrollers algorithm 2504. Any type ofalgorithm 2504 may be used. Examples shown may include: proportional (P) 2526; proportional, integral (PI) 2528; proportional, integral, derivative (PID) 2530;internal model 2532; adaptive 2534; and, non-linear 2536. These are merely illustrative of feedback algorithms. Various embodiments of the present invention may also contemplate feedforward algorithms and/or other algorithm approaches. - The
controllers parameters 2506. Theseparameters 2506 may be utilized by thealgorithm 2504. Examples shown may includesetpoint 1404,proportional gain 2538,integral gain 2540,derivative gain 2542, outputhigh limit 2544, outputlow limit 2546, setpointhigh limit 2548, and/or setpointlow limit 2550. - The
controllers timing method 2236 with associatedtiming parameters 2238, as previously described. Again, these are merely illustrative. - The
controllers more input signals 2510, and to provide one or more output signals 2512. These signals may take the form ofpressure signals 2552,voltage signals 2554, amperage (current) signals 2556, ordigital values 2558. In other words, input and output signals may be in either analog or digital format. - VI. User Interface
- In one embodiment of the present invention, a template and menu driven user interface is utilized (e.g., FIGS. 28 and 29) which may allow the user to configure, reconfigure and operate the embodiment of the present invention. This approach may make the embodiment of the present invention very user friendly. This approach may also eliminate the need for the user to perform any computer programming, since the configuration, reconfiguration and operation of the embodiment of the present invention is carried out in a template and menu format not requiring any actual computer programming expertise or knowledge.
- The system and method of one embodiment of the present invention may utilize templates. These templates may define certain specified fields that may be addressed by the user in order to configure, reconfigure, and/or operate the embodiment of the present invention. The templates may guide the user in using the embodiment of the present invention.
- Representative examples of templates for the menu driven system of various embodiments of the present invention are shown in FIGS.28-31. These are merely for purposes of illustration.
- One embodiment of the present invention may use a two-template specification (i.e., a
first template 2600 as shown in FIG. 28, and asecond template 2700 as shown in FIG. 29) for a support vector machine module. Referring now to FIG. 28, thefirst template 2600 in this set of two templates is shown.First template 2600 may specify general characteristics of how thesupport vector machine 1206 may operate. The portion of the screen within a box labeled 2620, for example, may show how timing options may be specified for the supportvector machine module 1206. As previously described, more than one timing option may be provided. A training timing option may be provided, as shown under the label “train” inbox 2620. Similarly, a prediction timing control specification may also be provided, as shown under the label “run” inbox 2620. The timing methods may be chosen from a pop-up menu of various timing methods that may be implemented in one embodiment. The parameters needed for the user-selected timing method may be entered by a user in the blocks labeled “Time Interval” and “Key Block”. These parameters may only be required for certain timing methods. Not all timing methods may require parameters, and not all timing methods that require parameters may require all the parameters shown. - In a box labeled2606 bearing the headings “Mode” and “Store Predicted Outputs”, the prediction and training functions of the support vector machine module may be controlled. By putting a check or an “X” in the box next to either the train or the run designation under “Mode”, the training and/or prediction functions of the support
vector machine module 1206 may be enabled. By putting a check or an “X” in the box next to either the “when training” or the “when running” labels, the storage of predictedoutput data 1218 may be enabled when thesupport vector machine 1206 is training or when thesupport vector machine 1206 is predicting (i.e., running), respectively. - The size of the
support vector machine 1206 may be specified in a box labeled 2622 bearing the heading “support vector machine size”. In this embodiment of a supportvector machine module 1206, there may be inputs, outputs, and/or kernel function(s). In one embodiment, the number of inputs and the number of outputs may be limited to some predefined value. - The coordination of input data with training data may be controlled using a checkbox labeled2608. By checking this box, the user may specify that
input data 1220 is to be retrieved such that the timestamps on theinput data 1220 correspond with the timestamps on thetraining input data 1306. The training or learning constant may be entered infield 2610. This training or learning constant may determine how aggressively the coefficients in thesupport vector machine 1206 are adjusted when there is anerror 1504 between theoutput data 1218 and thetraining input data 1306. - The user may, by pressing a keypad softkey labeled “dataspec page”2624, call up the
second template 2700 in the support vector machine module specification. Thissecond template 2700 is shown in FIG. 29. Thissecond template 2700 may allow the user to specify (1) thedata inputs outputs Data specification boxes inputs 1220,training inputs 1306, theoutputs 1218, and the summed error output, respectively. These may correspond to the input data, the training input data, the output data, and the error data, respectively. These four boxes may use the same data specification methods. - Within each data specification box, the data pointers and parameters may be specified. In one embodiment, the data specification may comprise a three-part data pointer as described above. In addition, various time boundaries and constraint limits may be specified depending on the data type specified.
- In FIG. 30, an example of a pop-up menu is shown. In this figure, the specification for the data system for the
network input number 1 is being specified as shown by the highlighted field reading “DMT PACE”. The box in the center of the screen is a pop-upmenu 2802 containing choices which may be selected to complete the data system specification. The templates in one embodiment of the present invention may utilize such pop-upmenus 2802 wherever applicable. - FIG. 31 shows the various elements included in the data specification block. These elements may include a
data title 2902, an indication as to whether the block is scrollable 2906, and/or an indication of the number of the specification in ascrollable region 2904. The box may also contain arrow pointers indicating that additional data specifications may exist in the list either above or below the displayed specification. Thesepointers - The items making up the actual data specification may include: a
data system 2224, adata type 2226, a data item pointer ornumber 2228, a name and units label for thedata specification 2908, alabel 2924, atime boundary 2926 for the oldest time interval boundary, alabel 2928, atime specification 2930 for the newest time interval boundary, alabel 2910, ahigh limit 2912 for the data value, alabel 2914, alow limit value 2916 for the low limit on the data value, alabel 2918, and avalue 2920 for the maximum allowed change in the data value. - The data specification shown in FIG. 31 is representative of one mode of implementing one embodiment of the present invention. However, it should be understood that various other modifications of the data specification may be used to give more or less flexibility depending on the complexity needed to address the various data sources which may be present. Various embodiments of the present invention may contemplate any variation on this data specification method.
- Although the foregoing refers to particular embodiments, it will be understood that the present invention is not so limited. It will occur to those of ordinary skill in the art that various modifications may be made to the disclosed embodiments, and that such modifications are intended to be within the scope of the present invention. Additionally, as noted above, although the above description of one embodiment of the invention relates to a process control application, this is not intended to limit the application of various embodiments of the present invention, but rather, it is contemplated that various embodiments of the present invention may be used in any number of processes or systems, including business, medicine, financial systems, e-commerce, data-mining and analysis, stock and/or bond analysis and management, or any other type of system or process which may utilize predictive or classification models.
- While the present invention has been described with reference to particular embodiments, it will be understood that the embodiments are illustrated and that the invention scope is not so limited. Any variations, modifications, additions and improvements to the embodiments described are possible. These variations, modifications, additions and improvements may fall within the scope of the invention as detailed within the following claims.
Claims (41)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/997,627 US6944616B2 (en) | 2001-11-28 | 2001-11-28 | System and method for historical database training of support vector machines |
PCT/US2002/038019 WO2003046770A1 (en) | 2001-11-28 | 2002-11-27 | System and method for historical database training of support vector machines |
AU2002359501A AU2002359501A1 (en) | 2001-11-28 | 2002-11-27 | System and method for historical database training of support vector machines |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/997,627 US6944616B2 (en) | 2001-11-28 | 2001-11-28 | System and method for historical database training of support vector machines |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030101161A1 true US20030101161A1 (en) | 2003-05-29 |
US6944616B2 US6944616B2 (en) | 2005-09-13 |
Family
ID=25544220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/997,627 Expired - Lifetime US6944616B2 (en) | 2001-11-28 | 2001-11-28 | System and method for historical database training of support vector machines |
Country Status (3)
Country | Link |
---|---|
US (1) | US6944616B2 (en) |
AU (1) | AU2002359501A1 (en) |
WO (1) | WO2003046770A1 (en) |
Cited By (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1630634A3 (en) * | 2004-08-25 | 2006-05-24 | Siemens Corporate Research, Inc. | Method and apparatus for detecting out-of-range conditions in power generation equipment operations |
US20070206586A1 (en) * | 2006-03-02 | 2007-09-06 | Matti Floman | Method, mobile device, system and software for flexible burst length control |
US20080059748A1 (en) * | 2006-08-31 | 2008-03-06 | Nokia Corporation | Method, mobile device, system and software for a write method with burst stop and data masks |
US20080082352A1 (en) * | 2006-07-12 | 2008-04-03 | Schmidtler Mauritius A R | Data classification methods using machine learning techniques |
US20080086432A1 (en) * | 2006-07-12 | 2008-04-10 | Schmidtler Mauritius A R | Data classification methods using machine learning techniques |
US20100169250A1 (en) * | 2006-07-12 | 2010-07-01 | Schmidtler Mauritius A R | Methods and systems for transductive data classification |
US7937345B2 (en) | 2006-07-12 | 2011-05-03 | Kofax, Inc. | Data classification methods using machine learning techniques |
US20120278659A1 (en) * | 2011-04-27 | 2012-11-01 | Microsoft Corporation | Analyzing Program Execution |
WO2013126336A1 (en) * | 2012-02-22 | 2013-08-29 | Applied Communication Sciences | Active acquisition of priviledged information |
US20140244548A1 (en) * | 2013-02-22 | 2014-08-28 | Nvidia Corporation | System, method, and computer program product for classification of silicon wafers using radial support vector machines to process ring oscillator parametric data |
US8855375B2 (en) | 2012-01-12 | 2014-10-07 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US8885229B1 (en) | 2013-05-03 | 2014-11-11 | Kofax, Inc. | Systems and methods for detecting and classifying objects in video captured using mobile devices |
US8958605B2 (en) | 2009-02-10 | 2015-02-17 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9058515B1 (en) | 2012-01-12 | 2015-06-16 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9058580B1 (en) | 2012-01-12 | 2015-06-16 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9137417B2 (en) | 2005-03-24 | 2015-09-15 | Kofax, Inc. | Systems and methods for processing video data |
US9141926B2 (en) | 2013-04-23 | 2015-09-22 | Kofax, Inc. | Smart mobile application development platform |
US9208536B2 (en) | 2013-09-27 | 2015-12-08 | Kofax, Inc. | Systems and methods for three dimensional geometric reconstruction of captured image data |
US9311531B2 (en) | 2013-03-13 | 2016-04-12 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9348852B2 (en) | 2011-04-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Frequent pattern mining |
US9355312B2 (en) | 2013-03-13 | 2016-05-31 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9386235B2 (en) | 2013-11-15 | 2016-07-05 | Kofax, Inc. | Systems and methods for generating composite images of long documents using mobile video data |
US9396388B2 (en) | 2009-02-10 | 2016-07-19 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9483794B2 (en) | 2012-01-12 | 2016-11-01 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9576272B2 (en) | 2009-02-10 | 2017-02-21 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9747269B2 (en) | 2009-02-10 | 2017-08-29 | Kofax, Inc. | Smart optical input/output (I/O) extension for context-dependent workflows |
US9760788B2 (en) | 2014-10-30 | 2017-09-12 | Kofax, Inc. | Mobile document detection and orientation based on reference object characteristics |
US9769354B2 (en) | 2005-03-24 | 2017-09-19 | Kofax, Inc. | Systems and methods of processing scanned data |
US9767354B2 (en) | 2009-02-10 | 2017-09-19 | Kofax, Inc. | Global geographic information retrieval, validation, and normalization |
US9779296B1 (en) | 2016-04-01 | 2017-10-03 | Kofax, Inc. | Content-based detection and three dimensional geometric reconstruction of objects in image and video data |
CN107894711A (en) * | 2017-10-16 | 2018-04-10 | 淮阴工学院 | One kind is based on fuzzy support vector machine Intelligent Cable automatic manufacture machine |
US10146795B2 (en) | 2012-01-12 | 2018-12-04 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US10242285B2 (en) | 2015-07-20 | 2019-03-26 | Kofax, Inc. | Iterative recognition-guided thresholding and data extraction |
WO2019113354A1 (en) * | 2017-12-06 | 2019-06-13 | Zero Mass Water, Inc. | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor |
US10475043B2 (en) | 2015-01-28 | 2019-11-12 | Intuit Inc. | Method and system for pro-active detection and correction of low quality questions in a question and answer based customer support system |
CN110717528A (en) * | 2019-09-25 | 2020-01-21 | 中国石油大学(华东) | Support vector machine-based sedimentary microfacies identification method using conventional logging information |
US10552843B1 (en) | 2016-12-05 | 2020-02-04 | Intuit Inc. | Method and system for improving search results by recency boosting customer support content for a customer self-help system associated with one or more financial management systems |
US10572954B2 (en) * | 2016-10-14 | 2020-02-25 | Intuit Inc. | Method and system for searching for and navigating to user content and other user experience pages in a financial management system with a customer self-service system for the financial management system |
US10632416B2 (en) | 2016-05-20 | 2020-04-28 | Zero Mass Water, Inc. | Systems and methods for water extraction control |
CN111328401A (en) * | 2017-11-08 | 2020-06-23 | 西门子股份公司 | Method and apparatus for machine learning in a computing unit |
US10733677B2 (en) | 2016-10-18 | 2020-08-04 | Intuit Inc. | Method and system for providing domain-specific and dynamic type ahead suggestions for search query terms with a customer self-service system for a tax return preparation system |
US10748157B1 (en) | 2017-01-12 | 2020-08-18 | Intuit Inc. | Method and system for determining levels of search sophistication for users of a customer self-help system to personalize a content search user experience provided to the users and to increase a likelihood of user satisfaction with the search experience |
US10755294B1 (en) | 2015-04-28 | 2020-08-25 | Intuit Inc. | Method and system for increasing use of mobile devices to provide answer content in a question and answer based customer support system |
CN111680582A (en) * | 2020-05-23 | 2020-09-18 | 安徽天宇羽绒有限公司 | Down feather detection method and system based on support vector machine |
US10803350B2 (en) | 2017-11-30 | 2020-10-13 | Kofax, Inc. | Object detection and image cropping using a multi-detector approach |
US10835861B2 (en) | 2014-11-20 | 2020-11-17 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for generating liquid water from air |
US10861023B2 (en) | 2015-07-29 | 2020-12-08 | Intuit Inc. | Method and system for question prioritization based on analysis of the question content and predicted asker engagement before answer content is generated |
US10891559B2 (en) * | 2013-12-12 | 2021-01-12 | Indian Institute Of Technology Delhi | Classifying test data based on a maximum margin classifier |
US10922367B2 (en) | 2017-07-14 | 2021-02-16 | Intuit Inc. | Method and system for providing real time search preview personalization in data management systems |
US11003867B2 (en) * | 2019-03-04 | 2021-05-11 | Salesforce.Com, Inc. | Cross-lingual regularization for multilingual generalization |
US11093951B1 (en) | 2017-09-25 | 2021-08-17 | Intuit Inc. | System and method for responding to search queries using customer self-help systems associated with a plurality of data management systems |
US11159123B2 (en) | 2016-04-07 | 2021-10-26 | Source Global, PBC | Solar thermal unit |
US11160223B2 (en) | 2018-02-18 | 2021-11-02 | Source Global, PBC | Systems for generating water for a container farm and related methods therefor |
US11269665B1 (en) | 2018-03-28 | 2022-03-08 | Intuit Inc. | Method and system for user experience personalization in data management systems using machine learning |
US11285435B2 (en) | 2018-10-19 | 2022-03-29 | Source Global, PBC | Systems and methods for generating liquid water using highly efficient techniques that optimize production |
US11295167B2 (en) * | 2020-04-27 | 2022-04-05 | Toshiba Global Commerce Solutions Holdings Corporation | Automated image curation for machine learning deployments |
US11359356B2 (en) | 2017-09-05 | 2022-06-14 | Source Global, PBC | Systems and methods for managing production and distribution of liquid water extracted from air |
US11384517B2 (en) | 2017-09-05 | 2022-07-12 | Source Global, PBC | Systems and methods to produce liquid water extracted from air |
US11414843B2 (en) | 2019-04-22 | 2022-08-16 | Source Global, PBC | Thermal desiccant systems and methods for generating liquid water |
US11436642B1 (en) | 2018-01-29 | 2022-09-06 | Intuit Inc. | Method and system for generating real-time personalized advertisements in data management self-help systems |
US11447407B2 (en) | 2017-07-14 | 2022-09-20 | Source Global, PBC | Systems for controlled treatment of water with ozone and related methods therefor |
US20220414399A1 (en) * | 2021-06-29 | 2022-12-29 | 7-Eleven, Inc. | System and method for refining an item identification model based on feedback |
US11555421B2 (en) | 2017-10-06 | 2023-01-17 | Source Global, PBC | Systems for generating water with waste heat and related methods therefor |
US11607644B2 (en) | 2018-05-11 | 2023-03-21 | Source Global, PBC | Systems for generating water using exogenously generated heat, exogenously generated electricity, and exhaust process fluids and related methods therefor |
CN115929285A (en) * | 2022-11-11 | 2023-04-07 | 西南石油大学 | A Method of Geothermal Gradient Prediction Based on Lagrangian Support Vector Machine Algorithm |
US11689549B2 (en) * | 2017-01-30 | 2023-06-27 | Microsoft Technology Licensing, Llc | Continuous learning for intrusion detection |
US11814820B2 (en) | 2021-01-19 | 2023-11-14 | Source Global, PBC | Systems and methods for generating water from air |
US11913903B1 (en) | 2018-10-22 | 2024-02-27 | Source Global, PBC | Systems and methods for testing and measuring compounds |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6876991B1 (en) * | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
US7117043B1 (en) * | 2002-03-28 | 2006-10-03 | Integrator.Com | Method for programming a programmable logic controller |
US7024154B1 (en) * | 2002-12-18 | 2006-04-04 | Itt Manufacturing Enterprises, Inc. | Training tracking system and method of use |
US20050015626A1 (en) * | 2003-07-15 | 2005-01-20 | Chasin C. Scott | System and method for identifying and filtering junk e-mail messages or spam based on URL content |
GB2405229B (en) * | 2003-08-19 | 2006-01-11 | Sophos Plc | Method and apparatus for filtering electronic mail |
US7565370B2 (en) * | 2003-08-29 | 2009-07-21 | Oracle International Corporation | Support Vector Machines in a relational database management system |
US7490071B2 (en) * | 2003-08-29 | 2009-02-10 | Oracle Corporation | Support vector machines processing system |
US7748038B2 (en) * | 2004-06-16 | 2010-06-29 | Ironport Systems, Inc. | Method and apparatus for managing computer virus outbreaks |
US8484295B2 (en) | 2004-12-21 | 2013-07-09 | Mcafee, Inc. | Subscriber reputation filtering method for analyzing subscriber activity and detecting account misuse |
US7953814B1 (en) | 2005-02-28 | 2011-05-31 | Mcafee, Inc. | Stopping and remediating outbound messaging abuse |
US7680890B1 (en) * | 2004-06-22 | 2010-03-16 | Wei Lin | Fuzzy logic voting method and system for classifying e-mail using inputs from multiple spam classifiers |
US7610344B2 (en) * | 2004-12-13 | 2009-10-27 | Microsoft Corporation | Sender reputations for spam prevention |
US9160755B2 (en) | 2004-12-21 | 2015-10-13 | Mcafee, Inc. | Trusted communication network |
US8738708B2 (en) | 2004-12-21 | 2014-05-27 | Mcafee, Inc. | Bounce management in a trusted communication network |
US9015472B1 (en) | 2005-03-10 | 2015-04-21 | Mcafee, Inc. | Marking electronic messages to indicate human origination |
US20060167825A1 (en) * | 2005-01-24 | 2006-07-27 | Mehmet Sayal | System and method for discovering correlations among data |
US9047290B1 (en) * | 2005-04-29 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Computing a quantification measure associated with cases in a category |
US9792359B2 (en) | 2005-04-29 | 2017-10-17 | Entit Software Llc | Providing training information for training a categorizer |
JP4880675B2 (en) * | 2005-05-05 | 2012-02-22 | シスコ アイアンポート システムズ エルエルシー | Detection of unwanted email messages based on probabilistic analysis of reference resources |
US7593904B1 (en) | 2005-06-30 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Effecting action to address an issue associated with a category based on information that enables ranking of categories |
US8719073B1 (en) | 2005-08-25 | 2014-05-06 | Hewlett-Packard Development Company, L.P. | Producing a measure regarding cases associated with an issue after one or more events have occurred |
US7406450B2 (en) * | 2005-09-28 | 2008-07-29 | Nec Laboratories America, Inc. | Spread kernel support vector machine |
US7797282B1 (en) | 2005-09-29 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | System and method for modifying a training set |
US7599750B2 (en) * | 2005-12-21 | 2009-10-06 | Pegasus Technologies, Inc. | Model based sequential optimization of a single or multiple power generating units |
US7437338B1 (en) | 2006-03-21 | 2008-10-14 | Hewlett-Packard Development Company, L.P. | Providing information regarding a trend based on output of a categorizer |
US7668789B1 (en) | 2006-03-30 | 2010-02-23 | Hewlett-Packard Development Company, L.P. | Comparing distributions of cases over groups of categories |
US7756591B2 (en) * | 2006-04-25 | 2010-07-13 | Pegasus Technologies, Inc. | System for optimizing oxygen in a boiler |
US7599897B2 (en) * | 2006-05-05 | 2009-10-06 | Rockwell Automation Technologies, Inc. | Training a support vector machine with process constraints |
US7778949B2 (en) * | 2006-05-15 | 2010-08-17 | Nec Laboratories America, Inc. | Method and apparatus for transductive support vector machines |
US7945572B2 (en) * | 2007-03-21 | 2011-05-17 | The Johns Hopkins University | Pattern discovery through reversing time flow |
US7979380B2 (en) * | 2008-02-22 | 2011-07-12 | Applied Materials, Inc. | Dynamically updated predictive model |
US8612864B2 (en) * | 2008-02-22 | 2013-12-17 | Applied Materials, Inc. | User interface with visualization of real and virtual data |
US10354229B2 (en) | 2008-08-04 | 2019-07-16 | Mcafee, Llc | Method and system for centralized contact management |
US8438122B1 (en) | 2010-05-14 | 2013-05-07 | Google Inc. | Predictive analytic modeling platform |
US8473431B1 (en) | 2010-05-14 | 2013-06-25 | Google Inc. | Predictive analytic modeling platform |
US8533222B2 (en) * | 2011-01-26 | 2013-09-10 | Google Inc. | Updateable predictive analytical modeling |
US8595154B2 (en) | 2011-01-26 | 2013-11-26 | Google Inc. | Dynamic predictive modeling platform |
US8533224B2 (en) | 2011-05-04 | 2013-09-10 | Google Inc. | Assessing accuracy of trained predictive models |
US8626791B1 (en) * | 2011-06-14 | 2014-01-07 | Google Inc. | Predictive model caching |
CN103064370B (en) * | 2012-12-17 | 2015-05-06 | 富通集团有限公司 | Cooperating production method of multiple coaxial-cable shield machines |
WO2019027451A1 (en) * | 2017-08-02 | 2019-02-07 | Hewlett-Packard Development Company, L.P. | Training classifiers to reduce error rate |
US11423295B2 (en) * | 2018-07-26 | 2022-08-23 | Sap Se | Dynamic, automated fulfillment of computer-based resource request provisioning using deep reinforcement learning |
CN109799726B (en) * | 2019-03-15 | 2022-02-08 | 中国计量大学 | Smart home system combined with living environment detection |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128608A (en) * | 1998-05-01 | 2000-10-03 | Barnhill Technologies, Llc | Enhancing knowledge discovery using multiple support vector machines |
US6134344A (en) * | 1997-06-26 | 2000-10-17 | Lucent Technologies Inc. | Method and apparatus for improving the efficiency of support vector machines |
US6161130A (en) * | 1998-06-23 | 2000-12-12 | Microsoft Corporation | Technique which utilizes a probabilistic classifier to detect "junk" e-mail by automatically updating a training and re-training the classifier based on the updated training set |
US20020016786A1 (en) * | 1999-05-05 | 2002-02-07 | Pitkow James B. | System and method for searching and recommending objects from a categorically organized information repository |
US6490320B1 (en) * | 2000-02-02 | 2002-12-03 | Mitsubishi Electric Research Laboratories Inc. | Adaptable bitstream video delivery system |
US6505167B1 (en) * | 1999-04-20 | 2003-01-07 | Microsoft Corp. | Systems and methods for directing automated services for messaging and scheduling |
US6519580B1 (en) * | 2000-06-08 | 2003-02-11 | International Business Machines Corporation | Decision-tree-based symbolic rule induction system for text categorization |
US6553358B1 (en) * | 1999-04-20 | 2003-04-22 | Microsoft Corporation | Decision-theoretic approach to harnessing text classification for guiding automated action |
US6581050B1 (en) * | 1999-04-20 | 2003-06-17 | Microsoft Corporation | Learning by observing a user's activity for enhancing the provision of automated services |
US6618716B1 (en) * | 1999-07-30 | 2003-09-09 | Microsoft Corporation | Computational architecture for managing the transmittal and rendering of information, alerts, and notifications |
US6622160B1 (en) * | 1999-07-30 | 2003-09-16 | Microsoft Corporation | Methods for routing items for communications based on a measure of criticality |
US6633857B1 (en) * | 1999-09-04 | 2003-10-14 | Microsoft Corporation | Relevance vector machine |
US6658395B1 (en) * | 1998-05-01 | 2003-12-02 | Biowulf Technologies, L.L.C. | Enhancing knowledge discovery from multiple data sets using multiple support vector machines |
US6662170B1 (en) * | 2000-08-22 | 2003-12-09 | International Business Machines Corporation | System and method for boosting support vector machines |
US6687887B1 (en) * | 2001-08-28 | 2004-02-03 | Cadence Design Systems, Inc. | Method and apparatus for performing extraction using a model trained with Bayesian inference using a hybrid monte carlo method |
US6714925B1 (en) * | 1999-05-01 | 2004-03-30 | Barnhill Technologies, Llc | System for identifying patterns in biological data using a distributed network |
US6760715B1 (en) * | 1998-05-01 | 2004-07-06 | Barnhill Technologies Llc | Enhancing biological knowledge discovery using multiples support vector machines |
US6789069B1 (en) * | 1998-05-01 | 2004-09-07 | Biowulf Technologies Llc | Method for enhancing knowledge discovered from biological data using a learning machine |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5282261A (en) | 1990-08-03 | 1994-01-25 | E. I. Du Pont De Nemours And Co., Inc. | Neural network process measurement and control |
US5212765A (en) | 1990-08-03 | 1993-05-18 | E. I. Du Pont De Nemours & Co., Inc. | On-line training neural network system for process control |
US5649068A (en) | 1993-07-27 | 1997-07-15 | Lucent Technologies Inc. | Pattern recognition system using support vectors |
US5720003A (en) | 1994-10-27 | 1998-02-17 | Lucent Technologies Inc. | Method and apparatus for determining the accuracy limit of a learning machine for predicting path performance degradation in a communications network |
US6047221A (en) | 1997-10-03 | 2000-04-04 | Pavilion Technologies, Inc. | Method for steady-state identification based upon identified dynamics |
US6026397A (en) | 1996-05-22 | 2000-02-15 | Electronic Data Systems Corporation | Data analysis system and method |
US6519601B1 (en) | 1996-05-22 | 2003-02-11 | Universitaire Ziekenhuizen Leuven | Relational database compiled/stored on a memory structure providing improved access through use of redundant representation of data |
US5950146A (en) | 1996-10-04 | 1999-09-07 | At & T Corp. | Support vector method for function estimation |
US6192360B1 (en) | 1998-06-23 | 2001-02-20 | Microsoft Corporation | Methods and apparatus for classifying text and for building a text classifier |
US6108702A (en) | 1998-12-02 | 2000-08-22 | Micromuse, Inc. | Method and apparatus for determining accurate topology features of a network |
US6757584B2 (en) | 2000-07-19 | 2004-06-29 | Prudsys Ag | Device and method for generating a classifier for automatically sorting objects |
US20020078091A1 (en) | 2000-07-25 | 2002-06-20 | Sonny Vu | Automatic summarization of a document |
-
2001
- 2001-11-28 US US09/997,627 patent/US6944616B2/en not_active Expired - Lifetime
-
2002
- 2002-11-27 WO PCT/US2002/038019 patent/WO2003046770A1/en not_active Application Discontinuation
- 2002-11-27 AU AU2002359501A patent/AU2002359501A1/en not_active Abandoned
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134344A (en) * | 1997-06-26 | 2000-10-17 | Lucent Technologies Inc. | Method and apparatus for improving the efficiency of support vector machines |
US6128608A (en) * | 1998-05-01 | 2000-10-03 | Barnhill Technologies, Llc | Enhancing knowledge discovery using multiple support vector machines |
US6157921A (en) * | 1998-05-01 | 2000-12-05 | Barnhill Technologies, Llc | Enhancing knowledge discovery using support vector machines in a distributed network environment |
US6789069B1 (en) * | 1998-05-01 | 2004-09-07 | Biowulf Technologies Llc | Method for enhancing knowledge discovered from biological data using a learning machine |
US6427141B1 (en) * | 1998-05-01 | 2002-07-30 | Biowulf Technologies, Llc | Enhancing knowledge discovery using multiple support vector machines |
US6760715B1 (en) * | 1998-05-01 | 2004-07-06 | Barnhill Technologies Llc | Enhancing biological knowledge discovery using multiples support vector machines |
US6658395B1 (en) * | 1998-05-01 | 2003-12-02 | Biowulf Technologies, L.L.C. | Enhancing knowledge discovery from multiple data sets using multiple support vector machines |
US6161130A (en) * | 1998-06-23 | 2000-12-12 | Microsoft Corporation | Technique which utilizes a probabilistic classifier to detect "junk" e-mail by automatically updating a training and re-training the classifier based on the updated training set |
US6581050B1 (en) * | 1999-04-20 | 2003-06-17 | Microsoft Corporation | Learning by observing a user's activity for enhancing the provision of automated services |
US6553358B1 (en) * | 1999-04-20 | 2003-04-22 | Microsoft Corporation | Decision-theoretic approach to harnessing text classification for guiding automated action |
US6505167B1 (en) * | 1999-04-20 | 2003-01-07 | Microsoft Corp. | Systems and methods for directing automated services for messaging and scheduling |
US6714925B1 (en) * | 1999-05-01 | 2004-03-30 | Barnhill Technologies, Llc | System for identifying patterns in biological data using a distributed network |
US20020016786A1 (en) * | 1999-05-05 | 2002-02-07 | Pitkow James B. | System and method for searching and recommending objects from a categorically organized information repository |
US6618716B1 (en) * | 1999-07-30 | 2003-09-09 | Microsoft Corporation | Computational architecture for managing the transmittal and rendering of information, alerts, and notifications |
US6622160B1 (en) * | 1999-07-30 | 2003-09-16 | Microsoft Corporation | Methods for routing items for communications based on a measure of criticality |
US6633857B1 (en) * | 1999-09-04 | 2003-10-14 | Microsoft Corporation | Relevance vector machine |
US6490320B1 (en) * | 2000-02-02 | 2002-12-03 | Mitsubishi Electric Research Laboratories Inc. | Adaptable bitstream video delivery system |
US6519580B1 (en) * | 2000-06-08 | 2003-02-11 | International Business Machines Corporation | Decision-tree-based symbolic rule induction system for text categorization |
US6662170B1 (en) * | 2000-08-22 | 2003-12-09 | International Business Machines Corporation | System and method for boosting support vector machines |
US6687887B1 (en) * | 2001-08-28 | 2004-02-03 | Cadence Design Systems, Inc. | Method and apparatus for performing extraction using a model trained with Bayesian inference using a hybrid monte carlo method |
Cited By (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1630634A3 (en) * | 2004-08-25 | 2006-05-24 | Siemens Corporate Research, Inc. | Method and apparatus for detecting out-of-range conditions in power generation equipment operations |
US9137417B2 (en) | 2005-03-24 | 2015-09-15 | Kofax, Inc. | Systems and methods for processing video data |
US9769354B2 (en) | 2005-03-24 | 2017-09-19 | Kofax, Inc. | Systems and methods of processing scanned data |
US20070206586A1 (en) * | 2006-03-02 | 2007-09-06 | Matti Floman | Method, mobile device, system and software for flexible burst length control |
US8239335B2 (en) | 2006-07-12 | 2012-08-07 | Kofax, Inc. | Data classification using machine learning techniques |
US20080082352A1 (en) * | 2006-07-12 | 2008-04-03 | Schmidtler Mauritius A R | Data classification methods using machine learning techniques |
US7937345B2 (en) | 2006-07-12 | 2011-05-03 | Kofax, Inc. | Data classification methods using machine learning techniques |
US7958067B2 (en) * | 2006-07-12 | 2011-06-07 | Kofax, Inc. | Data classification methods using machine learning techniques |
US20110145178A1 (en) * | 2006-07-12 | 2011-06-16 | Kofax, Inc. | Data classification using machine learning techniques |
US20110196870A1 (en) * | 2006-07-12 | 2011-08-11 | Kofax, Inc. | Data classification using machine learning techniques |
US20080086432A1 (en) * | 2006-07-12 | 2008-04-10 | Schmidtler Mauritius A R | Data classification methods using machine learning techniques |
US8374977B2 (en) | 2006-07-12 | 2013-02-12 | Kofax, Inc. | Methods and systems for transductive data classification |
US20100169250A1 (en) * | 2006-07-12 | 2010-07-01 | Schmidtler Mauritius A R | Methods and systems for transductive data classification |
US8719197B2 (en) | 2006-07-12 | 2014-05-06 | Kofax, Inc. | Data classification using machine learning techniques |
US20080059748A1 (en) * | 2006-08-31 | 2008-03-06 | Nokia Corporation | Method, mobile device, system and software for a write method with burst stop and data masks |
US9576272B2 (en) | 2009-02-10 | 2017-02-21 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9396388B2 (en) | 2009-02-10 | 2016-07-19 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9767354B2 (en) | 2009-02-10 | 2017-09-19 | Kofax, Inc. | Global geographic information retrieval, validation, and normalization |
US8958605B2 (en) | 2009-02-10 | 2015-02-17 | Kofax, Inc. | Systems, methods and computer program products for determining document validity |
US9747269B2 (en) | 2009-02-10 | 2017-08-29 | Kofax, Inc. | Smart optical input/output (I/O) extension for context-dependent workflows |
US9348852B2 (en) | 2011-04-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Frequent pattern mining |
US10013465B2 (en) | 2011-04-27 | 2018-07-03 | Microsoft Technology Licensing, Llc | Frequent pattern mining |
US20120278659A1 (en) * | 2011-04-27 | 2012-11-01 | Microsoft Corporation | Analyzing Program Execution |
US8971587B2 (en) | 2012-01-12 | 2015-03-03 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US8989515B2 (en) | 2012-01-12 | 2015-03-24 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9514357B2 (en) | 2012-01-12 | 2016-12-06 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US10657600B2 (en) | 2012-01-12 | 2020-05-19 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9158967B2 (en) | 2012-01-12 | 2015-10-13 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9165188B2 (en) | 2012-01-12 | 2015-10-20 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9165187B2 (en) | 2012-01-12 | 2015-10-20 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US10146795B2 (en) | 2012-01-12 | 2018-12-04 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9058515B1 (en) | 2012-01-12 | 2015-06-16 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9058580B1 (en) | 2012-01-12 | 2015-06-16 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9342742B2 (en) | 2012-01-12 | 2016-05-17 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US10664919B2 (en) | 2012-01-12 | 2020-05-26 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US8879120B2 (en) | 2012-01-12 | 2014-11-04 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US8855375B2 (en) | 2012-01-12 | 2014-10-07 | Kofax, Inc. | Systems and methods for mobile image capture and processing |
US9483794B2 (en) | 2012-01-12 | 2016-11-01 | Kofax, Inc. | Systems and methods for identification document processing and business workflow integration |
US9135570B2 (en) | 2012-02-22 | 2015-09-15 | Vencore Labs, Inc. | Active acquisition of privileged information |
WO2013126336A1 (en) * | 2012-02-22 | 2013-08-29 | Applied Communication Sciences | Active acquisition of priviledged information |
US20140244548A1 (en) * | 2013-02-22 | 2014-08-28 | Nvidia Corporation | System, method, and computer program product for classification of silicon wafers using radial support vector machines to process ring oscillator parametric data |
US10127441B2 (en) | 2013-03-13 | 2018-11-13 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9996741B2 (en) | 2013-03-13 | 2018-06-12 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9754164B2 (en) | 2013-03-13 | 2017-09-05 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9311531B2 (en) | 2013-03-13 | 2016-04-12 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9355312B2 (en) | 2013-03-13 | 2016-05-31 | Kofax, Inc. | Systems and methods for classifying objects in digital images captured using mobile devices |
US9141926B2 (en) | 2013-04-23 | 2015-09-22 | Kofax, Inc. | Smart mobile application development platform |
US10146803B2 (en) | 2013-04-23 | 2018-12-04 | Kofax, Inc | Smart mobile application development platform |
US8885229B1 (en) | 2013-05-03 | 2014-11-11 | Kofax, Inc. | Systems and methods for detecting and classifying objects in video captured using mobile devices |
US9253349B2 (en) | 2013-05-03 | 2016-02-02 | Kofax, Inc. | Systems and methods for detecting and classifying objects in video captured using mobile devices |
US9584729B2 (en) | 2013-05-03 | 2017-02-28 | Kofax, Inc. | Systems and methods for improving video captured using mobile devices |
US9946954B2 (en) | 2013-09-27 | 2018-04-17 | Kofax, Inc. | Determining distance between an object and a capture device based on captured image data |
US9208536B2 (en) | 2013-09-27 | 2015-12-08 | Kofax, Inc. | Systems and methods for three dimensional geometric reconstruction of captured image data |
US9747504B2 (en) | 2013-11-15 | 2017-08-29 | Kofax, Inc. | Systems and methods for generating composite images of long documents using mobile video data |
US9386235B2 (en) | 2013-11-15 | 2016-07-05 | Kofax, Inc. | Systems and methods for generating composite images of long documents using mobile video data |
US10891559B2 (en) * | 2013-12-12 | 2021-01-12 | Indian Institute Of Technology Delhi | Classifying test data based on a maximum margin classifier |
US9760788B2 (en) | 2014-10-30 | 2017-09-12 | Kofax, Inc. | Mobile document detection and orientation based on reference object characteristics |
US11707710B2 (en) | 2014-11-20 | 2023-07-25 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for generating liquid water from air |
US10835861B2 (en) | 2014-11-20 | 2020-11-17 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for generating liquid water from air |
US10475043B2 (en) | 2015-01-28 | 2019-11-12 | Intuit Inc. | Method and system for pro-active detection and correction of low quality questions in a question and answer based customer support system |
US10755294B1 (en) | 2015-04-28 | 2020-08-25 | Intuit Inc. | Method and system for increasing use of mobile devices to provide answer content in a question and answer based customer support system |
US11429988B2 (en) | 2015-04-28 | 2022-08-30 | Intuit Inc. | Method and system for increasing use of mobile devices to provide answer content in a question and answer based customer support system |
US10242285B2 (en) | 2015-07-20 | 2019-03-26 | Kofax, Inc. | Iterative recognition-guided thresholding and data extraction |
US10861023B2 (en) | 2015-07-29 | 2020-12-08 | Intuit Inc. | Method and system for question prioritization based on analysis of the question content and predicted asker engagement before answer content is generated |
US9779296B1 (en) | 2016-04-01 | 2017-10-03 | Kofax, Inc. | Content-based detection and three dimensional geometric reconstruction of objects in image and video data |
US12021488B2 (en) | 2016-04-07 | 2024-06-25 | Source Global, PBC | Solar thermal unit |
US11159123B2 (en) | 2016-04-07 | 2021-10-26 | Source Global, PBC | Solar thermal unit |
US11975289B2 (en) | 2016-05-20 | 2024-05-07 | Source Global, PBC | Systems and methods for water extraction control |
US10632416B2 (en) | 2016-05-20 | 2020-04-28 | Zero Mass Water, Inc. | Systems and methods for water extraction control |
US11266944B2 (en) | 2016-05-20 | 2022-03-08 | Source Global, PBC | Systems and methods for water extraction control |
US10572954B2 (en) * | 2016-10-14 | 2020-02-25 | Intuit Inc. | Method and system for searching for and navigating to user content and other user experience pages in a financial management system with a customer self-service system for the financial management system |
US11403715B2 (en) | 2016-10-18 | 2022-08-02 | Intuit Inc. | Method and system for providing domain-specific and dynamic type ahead suggestions for search query terms |
US10733677B2 (en) | 2016-10-18 | 2020-08-04 | Intuit Inc. | Method and system for providing domain-specific and dynamic type ahead suggestions for search query terms with a customer self-service system for a tax return preparation system |
US11423411B2 (en) | 2016-12-05 | 2022-08-23 | Intuit Inc. | Search results by recency boosting customer support content |
US10552843B1 (en) | 2016-12-05 | 2020-02-04 | Intuit Inc. | Method and system for improving search results by recency boosting customer support content for a customer self-help system associated with one or more financial management systems |
US10748157B1 (en) | 2017-01-12 | 2020-08-18 | Intuit Inc. | Method and system for determining levels of search sophistication for users of a customer self-help system to personalize a content search user experience provided to the users and to increase a likelihood of user satisfaction with the search experience |
US11689549B2 (en) * | 2017-01-30 | 2023-06-27 | Microsoft Technology Licensing, Llc | Continuous learning for intrusion detection |
US10922367B2 (en) | 2017-07-14 | 2021-02-16 | Intuit Inc. | Method and system for providing real time search preview personalization in data management systems |
US11447407B2 (en) | 2017-07-14 | 2022-09-20 | Source Global, PBC | Systems for controlled treatment of water with ozone and related methods therefor |
US11858835B2 (en) | 2017-07-14 | 2024-01-02 | Source Global, PBC | Systems for controlled treatment of water with ozone and related methods therefor |
US11859372B2 (en) | 2017-09-05 | 2024-01-02 | Source Global, PBC | Systems and methods to produce liquid water extracted from air |
US12276091B2 (en) | 2017-09-05 | 2025-04-15 | Source Global, PBC | Systems and methods for managing production and distribution of liquid water extracted from air |
US11359356B2 (en) | 2017-09-05 | 2022-06-14 | Source Global, PBC | Systems and methods for managing production and distribution of liquid water extracted from air |
US11384517B2 (en) | 2017-09-05 | 2022-07-12 | Source Global, PBC | Systems and methods to produce liquid water extracted from air |
US11093951B1 (en) | 2017-09-25 | 2021-08-17 | Intuit Inc. | System and method for responding to search queries using customer self-help systems associated with a plurality of data management systems |
US11555421B2 (en) | 2017-10-06 | 2023-01-17 | Source Global, PBC | Systems for generating water with waste heat and related methods therefor |
CN107894711A (en) * | 2017-10-16 | 2018-04-10 | 淮阴工学院 | One kind is based on fuzzy support vector machine Intelligent Cable automatic manufacture machine |
CN111328401A (en) * | 2017-11-08 | 2020-06-23 | 西门子股份公司 | Method and apparatus for machine learning in a computing unit |
US11062176B2 (en) | 2017-11-30 | 2021-07-13 | Kofax, Inc. | Object detection and image cropping using a multi-detector approach |
US10803350B2 (en) | 2017-11-30 | 2020-10-13 | Kofax, Inc. | Object detection and image cropping using a multi-detector approach |
US11281997B2 (en) * | 2017-12-06 | 2022-03-22 | Source Global, PBC | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor |
US20220156648A1 (en) * | 2017-12-06 | 2022-05-19 | Source Global, PBC | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor |
WO2019113354A1 (en) * | 2017-12-06 | 2019-06-13 | Zero Mass Water, Inc. | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor |
US11900226B2 (en) * | 2017-12-06 | 2024-02-13 | Source Global, PBC | Systems for constructing hierarchical training data sets for use with machine-learning and related methods therefor |
US11436642B1 (en) | 2018-01-29 | 2022-09-06 | Intuit Inc. | Method and system for generating real-time personalized advertisements in data management self-help systems |
US11160223B2 (en) | 2018-02-18 | 2021-11-02 | Source Global, PBC | Systems for generating water for a container farm and related methods therefor |
US11269665B1 (en) | 2018-03-28 | 2022-03-08 | Intuit Inc. | Method and system for user experience personalization in data management systems using machine learning |
US11607644B2 (en) | 2018-05-11 | 2023-03-21 | Source Global, PBC | Systems for generating water using exogenously generated heat, exogenously generated electricity, and exhaust process fluids and related methods therefor |
US11946232B2 (en) | 2018-10-19 | 2024-04-02 | Source Global, PBC | Systems and methods for generating liquid water using highly efficient techniques that optimize production |
US11285435B2 (en) | 2018-10-19 | 2022-03-29 | Source Global, PBC | Systems and methods for generating liquid water using highly efficient techniques that optimize production |
US11913903B1 (en) | 2018-10-22 | 2024-02-27 | Source Global, PBC | Systems and methods for testing and measuring compounds |
US11003867B2 (en) * | 2019-03-04 | 2021-05-11 | Salesforce.Com, Inc. | Cross-lingual regularization for multilingual generalization |
US11829727B2 (en) | 2019-03-04 | 2023-11-28 | Salesforce.Com, Inc. | Cross-lingual regularization for multilingual generalization |
US11414843B2 (en) | 2019-04-22 | 2022-08-16 | Source Global, PBC | Thermal desiccant systems and methods for generating liquid water |
CN110717528A (en) * | 2019-09-25 | 2020-01-21 | 中国石油大学(华东) | Support vector machine-based sedimentary microfacies identification method using conventional logging information |
US11295167B2 (en) * | 2020-04-27 | 2022-04-05 | Toshiba Global Commerce Solutions Holdings Corporation | Automated image curation for machine learning deployments |
CN111680582A (en) * | 2020-05-23 | 2020-09-18 | 安徽天宇羽绒有限公司 | Down feather detection method and system based on support vector machine |
US11814820B2 (en) | 2021-01-19 | 2023-11-14 | Source Global, PBC | Systems and methods for generating water from air |
US20220414399A1 (en) * | 2021-06-29 | 2022-12-29 | 7-Eleven, Inc. | System and method for refining an item identification model based on feedback |
US11960569B2 (en) * | 2021-06-29 | 2024-04-16 | 7-Eleven, Inc. | System and method for refining an item identification model based on feedback |
CN115929285A (en) * | 2022-11-11 | 2023-04-07 | 西南石油大学 | A Method of Geothermal Gradient Prediction Based on Lagrangian Support Vector Machine Algorithm |
Also Published As
Publication number | Publication date |
---|---|
AU2002359501A1 (en) | 2003-06-10 |
US6944616B2 (en) | 2005-09-13 |
WO2003046770A1 (en) | 2003-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6944616B2 (en) | System and method for historical database training of support vector machines | |
US7054847B2 (en) | System and method for on-line training of a support vector machine | |
US7599897B2 (en) | Training a support vector machine with process constraints | |
US5826249A (en) | Historical database training method for neural networks | |
EP0495044B1 (en) | Computer neural network process measurement and control system and method | |
EP0495085B1 (en) | On-line process control neural network using data pointers | |
US5197114A (en) | Computer neural network regulatory process control system and method | |
EP0495080A1 (en) | Computer neural network supervisory process control system and method. | |
US20030130899A1 (en) | System and method for historical database training of non-linear models for use in electronic commerce | |
CN109766583A (en) | Aero-engine life prediction method based on unlabeled, unbalanced and uncertain initial value data | |
US20030033587A1 (en) | System and method for on-line training of a non-linear model for use in electronic commerce | |
US7383241B2 (en) | System and method for estimating performance of a classifier | |
US20030140039A1 (en) | Pre-processing input data with outlier values for a support vector machine | |
US20030139828A1 (en) | System and method for pre-processing input data to a support vector machine | |
Zhang et al. | Top ten intelligent algorithms towards smart manufacturing | |
US12112179B1 (en) | Apparatus and method for dynamic reconfiguration of process parameter | |
Khrakhuean et al. | Real-time induction motor health index prediction in a petrochemical plant using machine learning | |
Zakaria et al. | Optimization of COCOMO Model using Particle Swarm Optimization | |
Peña | Predictive Maintenance on Aircraft Engine Using Degradation Simulation Dataset for Use by Maintenance, Repair, and Overhaul Organizations | |
Rankovic et al. | Top AI Techniques for Every Phase of Software Project Management | |
Omitaomu | On-line learning and wavelet-based feature extraction methodology for process monitoring using high-dimensional functional data | |
Liu et al. | Remaining Useful Life Prediction of Aero-Engine Based on Multi-Task Learning with Interpretability Analysis | |
Simani et al. | System Identification for Fault Diagnosis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PAVILION TECHNOLOGIES, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FERGUSON, BRUCE;HARTMAN, ERIC;JOHNSON, DOUG;AND OTHERS;REEL/FRAME:012344/0919;SIGNING DATES FROM 20011121 TO 20011126 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:PAVILION TECHNOLOGIES, INC.;REEL/FRAME:017240/0396 Effective date: 20051102 |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: PAVILION TECHNOLOGIES, INC., TEXAS Free format text: RELEASE;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:020609/0702 Effective date: 20080220 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REFU | Refund |
Free format text: REFUND - SURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL (ORIGINAL EVENT CODE: R2551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: ROCKWELL AUTOMATION PAVILION, INC., TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:PAVILION TECHNOLOGIES, INC.;REEL/FRAME:024741/0984 Effective date: 20071109 |
|
AS | Assignment |
Owner name: ROCKWELL AUTOMATION, INC., WISCONSIN Free format text: MERGER;ASSIGNOR:ROCKWELL AUTOMATION PAVILION, INC.;REEL/FRAME:024755/0492 Effective date: 20080124 |
|
AS | Assignment |
Owner name: ROCKWELL AUTOMATION TECHNOLOGIES, INC., OHIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROCKWELL AUTOMATION, INC.;REEL/FRAME:024767/0350 Effective date: 20100730 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |