WO2009142628A1 - Auto-adaptive network - Google Patents
Auto-adaptive network Download PDFInfo
- Publication number
- WO2009142628A1 WO2009142628A1 PCT/US2008/064276 US2008064276W WO2009142628A1 WO 2009142628 A1 WO2009142628 A1 WO 2009142628A1 US 2008064276 W US2008064276 W US 2008064276W WO 2009142628 A1 WO2009142628 A1 WO 2009142628A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- values
- time slice
- data
- value
- feature
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Definitions
- the present subject matter relates generally to machine learning and more specifically to efficient processing of parameter values, which may be multidimensional, for predicting feature values as well as for use in calculating imputing values for a range of applications providing auto-adaptive functions.
- Auto-adaptive systems have many applications. These applications include event recognition based on data measured over a number of successive time periods. Events take many different forms. For example, events may include detection of a target in a particular area, sensing of an out- of-specification condition in a physical process environment or correspondence of processed psychometric measurements with a particular behavior prediction profile. Anomaly sensing is often an element of detecting an event. Event recognition may also comprise evaluation of sensed data to recognize or reject existence of conditions indicated by the data or to initiate a particular action.
- Signals are produced in response to sensor outputs, and the signals are processed.
- a number of processing stages may be used. Processing results are used, for example, in known functions for calculating, predicting and imputing values, updating learned functions, assigning plausibility to measurements, discerning deviance between measured and expected values and event detection.
- a display is used to convey information to a user.
- the '874 application provides a context that comprehends a method of forecasting future feature values for a cell of a data array and a processor system wherein an array of data collected over successive time slices is processed, with a plurality of data points being provided during each time slice, a number of future time slices is specified for which to forecast a feature value, each future time slice being located a number of time slices into the future from a current reference point; a number of forecasts per feature is specified; a set of past time slices to be utilized for each prediction is defined, each said past time slice being located a number of time slices in the past away from the current reference point corresponding to a number or time slices away from the current reference point of a future time slice and defining a number of features for each data point.
- Embodiments of the present invention utilize a covariance matrix, a mean value sum of squares and cross product (MVSCP) matrix, their inverse matrices, and other learned parameters that have been previously used. Prior embodiments have disclosed use of these parameters for estimating current imputed values. Embodiments of the present invention, however, utilize these values to generate forecasts. In embodiments of the present invention, efficiencies of the correlator disclosed in the '874 application are utilized to provide a more powerful processor. The present embodiments require updating only one MVSCP matrix and its inverse per time slice. Likewise, the present embodiments require updating only one covariance matrix and its inverse per time slice. A separate update to generate a current imputed value is not required.
- MVSCP mean value sum of squares and cross product
- embodiments of the present invention comprise a method of generating predicted values defining a current estimation set in at least one dimension for a dependent data location for which a value will be predicted, said estimation set comprising the dependent data location and a preselected number of nearest neighbor values surrounding the dependent data point in a current time slice; accessing estimation sets from each of a preselected number of time slices corresponding to said current estimation set; associating one estimation set with each dimension; generating a set of learned parameters comprising values produced by a function incorporating either a MVSCP matrix or a covariance matrix for each estimation set associated with a set of past time slices; and updating each learned parameter to compute a forecasting weight.
- a processor is also provided.
- a graphical deviance display for deviance values between expected and measured parameters.
- the subject graphical display converts deviance magnitude values on a two-dimensional grid. Independent values for the conversion include deviance magnitude values, ranging from a configured positive value to a second, larger configured value. Corresponding dependent values for the conversion would be colors along a spectrum mapped on the same grid. The relationship between the magnitudes and wavelength values corresponding to the colors would be monotone increasing, as specified by the user.
- a function of the adaptive learning processor is to generate deviance values between an expected value of a cell and a calculated value.
- a processor is embodied of modules that may be embodied by components such as FPGAs processing feature values using selected modules. Each module calculates a component function of feature value generation. Individual modules can be placed in a selected order, and more than one of each type of module may be provided.
- learning parameters may be generated based on calculations utilizing groups of values from successive windows within a single time slice.
- a window is a group of values for each of a particular data point and a preselected number of spatial nearest neighbors.
- a system transmits one out of every N full sets of data arrays, e.g., images, where N is a natural number. Learning parameters are also transmitted. Consequently a base station may receive sufficient input information to generate data arrays at times between reception of each Nth data array. Consequently, requirements for remote transmitters for such parameters and bandwidth and power may be reduced.
- Figure 1 is an illustration of a UAV employing an embodiment of the present invention gathering data and transmitting intelligence to a command and control station;
- Figure 2 is a block diagram of a system incorporating an embodiment of the present invention.
- FIG. 3 is a block diagram of one form of processing unit included in the embodiment of Figure 2;
- Figures 4 through 9 are each a flow diagram illustrating a performance of modular statistical routines within the processing unit; 5 [017] Figure 10 is a flowchart illustrating parallel processing of generated values;
- Figure 11 is a chart illustrating values from various time slices during a current selected time slice t ⁇ ;
- Figure 12 is a block diagram of a parallel processor performing the routines of Figure 10;
- Figures 13 - 17 are each a chart useful in illustrating selection of members of sets of data, called estimation sets, to be used in successive calculations of a recursive function;
- Figure 18 is a block diagram of a processing unit interacting with an application program interface and sensors
- Figure 19 consisting of Figure 19a and Figure 19b represents a nominal set of input information from a video camera and processed data from which clutter has been removed;
- Figure 20 is a block diagram illustrating a system utilizing a plurality of processing units, each having a different configuration
- Figure 21 consisting of Figures 21 A and 21 B, is a forecasting steps worksheet
- Figure 22 is a forecasting sequence worksheet.
- Embodiments of the present invention provide for operation referred to as auto-adaptive processing.
- Auto-adaptive processing is not a recognized term of art, but is descriptive of processing of data, often condition-responsive data received from an array of sensors received in successive time slices, to update adaptive functions and to calculate imputed values of data for use in evaluating data and which may also be used to predict data.
- Time slices may also be referred to by such terms as clock periods or data cycles. For each time slice, measurement values and measurement plausibility values are supplied to the system, and a learning weight is either supplied to or generated by the system.
- Auto-adaptive processing operations may include converting measurement values to feature values; converting measurement plausibility values to feature viability values; using each viability value to determine missing value status of each feature value; using non-missing feature values to update parameter learning; imputing each missing feature value from non-missing feature values and/or prior learning; converting imputed feature values to output imputed measurement values; and supplying a variety of feature value and feature function monitoring and interpretation statistics.
- Embodiments of the present invention utilize a "windowing" function to "index" through the data array to select successive groups of data entries for processing.
- Field programmable windowed functionality can be applied to many applications by programming the data entries to be utilized for a calculation and to set parameters of algorithms.
- Embodiments of the present invention in one form provide for the option of embodying an auto-adaptive processor in the form of parallel, pipelined adaptive feature processor modules that perform operations concurrently. Tasks including, function monitoring, interpretation and refinement operations are done in parallel. Distribution of tasks into modules permits the use of simplified hardware such as FPGAs, as opposed to full processors in various stages. Auto-adaptive processing may be utilized for tasks that were previously considered to be intractable in real time on hardware of the type used in low powered, portable processors.
- the option of modular pipelined operation simplifies programming; design and packaging and allows for use of FPGAs in place of high-powered processors. Stationary learned parameter usage, based on the same estimation functions and learned parameter values, can be used to produce the estimates that in turn allow unexpected events to be detected more simply.
- Embodiments of the present invention may be used in a very wide variety of applications. These applications include disease control, military attack prevention, measuring efficacy of antibiotics, and monitoring system performance to prevent breakdowns. Event recognition may be used to trigger an alarm and initiate a response or produce a wide variety of other reactive or proactive responses. In one application, usability of data is evaluated so that a remote device may decide whether or not to utilize its limited power and bandwidth to transmit the data.
- Figures 1-3 describe hardware.
- Figures 4-20 describe a processor environment for producing estimated functions. This processor may provide a context for present embodiments.
- Figures 21 and 22 are particularly directed to forecasting embodiments. Figures 21 and 22 are discussed prior to a discussion of Figures 4-20.
- an unmanned aerial vehicle (UAV) 1 is part of an intelligence system.
- the UAV 1 comprises an array of sensors, processors and a transmitter, further described and illustrated below.
- the UAV 1 provides video information via a radio frequency link 3 to a base station 4.
- the base station 4 is housed in a ship 5.
- the ship 5 is traveling in an ocean 6.
- the UAV 1 may detect enemy craft 8.
- the enemy craft 8 may be beyond a horizon 10 of the ship 5.
- the transmitter within the UAV 1 will generally have sufficient bandwidth to provide detected video information to the base station 4.
- Data processing equipment and transmitter modulation circuitry will generally have sufficient capacity to transmit video information.
- Ambient conditions will have a tendency to obscure the view of the enemy craft 8 from the UAV 1.
- Moisture in the air is a common ambient condition. Very often, moisture in the air will not be sufficient to block obtaining a useful image.
- Optical filtering may also be used to reduce haze. However, clouds or rainstorms may be located between the enemy craft 8 and the UAV 1.
- the video data obtained when the enemy craft 8 are not viewable is referred to in the present description as non-useful information.
- UAVs simply collect data and transmit the data to a base station.
- the UAV 1 will generally be provided with sufficient resources to transmit non-useful information.
- data processing is done to determine whether information will be useful or not.
- the present system comprises a rapid learning system.
- a rapid learning system performs adaptive learning, as a neural network.
- the rapid learning system monitors, forecasts and controls data in real-time.
- the present specification is described in the context of the art of neural networks and adaptive systems. There is a wide range of literature further describing the basis for mathematics utilized here in and the construction and performance of learning systems. For example, further background may be provided by R. J. Jannarone, Concurrent Learning and Information Processing, Chapman & Hall, New York, 1997.
- the UAV 1 comprises an electronics unit 20 including a sensor array 22, a processing unit 24 and a transmitter 26.
- the sensor array 22 comprises a video camera 30 having an array of pixels 32, each providing an output indicative of light focused on the pixel 32.
- the present embodiments may process measurements that are one-dimensional or multi-dimensional.
- a one-dimensional output includes a grayscale level wherein a single value is indicative of pixel output. Alternatively, a plurality of values may represent output of one pixel, such as gray-scale level and color levels.
- the sensor array 22 provides data to the processing unit 24.
- the processing unit 24 provides video output to the transmitter 26.
- the present embodiments will achieve the necessary functions to produce meaningful output data as in the prior art. However, as further described below, the present embodiments have greater generality, efficiency, and affordability compared to prior art in embodiments. Since speed and capacity of the system are improved with respect to the prior art, a depth of processing is made available in applications where it could not be used before, including, for example, real-time video processing of entire rasters at many frames per second. New market segments for adaptive processing are enabled.
- Data are gathered in successive time slices. The greater the temporal resolution of the data gathering, the shorter the period of each time slice will be.
- data received from each of a plurality of sensors during successive time slices will be processed.
- the functions performed by the present embodiments include receiving input values in consecutive time slices and performing processing operations during each time slice. These operations may include estimating each input value from current and prior input values through the use of a correlation matrix; comparing each estimated value to its actual value to determine whether or not the actual value is deviant; replacing deviant or missing input values with their estimated values as appropriate; and updating learned parameters. Updating all learned parameters is important, because it allows event recognition criteria to be continuously, automatically, and adaptively updated over time.
- FIG. 3 is a block diagram of the processing unit. Operation of each of the modules 44 through 60 is described further below with respect to Figures 4 — 9. Structure of these modules is described with respect to Figure 3. It should be noted that the name of each module in Figure 3 is selected for description in context of the present illustration, and does not constitute a particular limitation with respect to structure or operation.
- the modules 44 through 60 are connected to provide data or other signals either in series or pipelined to successive stages.
- the program module 42 controls particular connections. The connections are programmed to provide the operation described in Figures 4 - 9 below.
- Figure 3 is first described with respect to the hardware therein and how estimating functions are achieved. Forecasting in accordance with present embodiments is explained.
- the modules 44 through 60 each have an input terminal connected to a register 80, 90, 100, 110, 120 and 130 respectively.
- the registers 80, 90, 100, 110, 120 and 130 each respectively provide an input to logic units 82, 92, 102, 112, 122 and 132 from the logic units 92, 112, 122 and 132 respectively.
- First through sixth buffers 86, 96, 106, 116, 126 and 136 receive data from the logic units 82, 92, 102, 112, 122, and 132 respectively.
- auto adaptive learning memory units 94, 114, 124 and 134 are interactively connected with the logic units 92, 112, 122 and 132 respectively.
- Each of the buffers 86 through 136 provides an output to each respective successive module and to the output metrics module 60.
- the output metrics module 60 includes registers for functions selected by a user.
- registers 150, 152, 154, 156, 158 and 160 are provided. These registers may respectively receive alert information based on comparison to a threshold or other signature, displays, even to take values, forecast values, statistics, and events.
- the events register 160 responds to selected criteria, for example, a preselected degree of deviation of a measured value from an expected value.
- a side scan sonar receiver may include 512 sensors in a row. A number of spatial dimensions for the side scan sonar row is one. Dimensions may be spatial, temporal or may be indicative of each a multiplicity of values associated with each cell, e.g., temperature. Calculated values are generated to describe the data. The calculated values are functions of input values selected to reveal information about a collected set of data. In the present illustration, the calculated values include four screener features per cell . Screener and correlator features are functions that are designed to discriminate improbable or out-of-range data input points from background clutter.
- Screener and correlator features provide measures of deviance between actual and expected feature values, hi one form of processing of side scan sonar values, a set of functions has been developed for distinguishing presence or absence of a target and whether the target is a Type 1 target or a Type 2 target.
- a Type 1 target is indicated when a first pair of feature deviance values is large
- a Type 2 target is indicated when a second pair of feature deviance values is large. Both pairs will have a small deviance value in the absence of a target.
- the provisional specification describes a forecaster, color-coded deviance graphics, and generalized stage specifications.
- the present embodiments may be incorporated in the context of the '874 Application as well as in other environments.
- a brief, qualitative overview of the operation of the processing unit 24 in Figure 3 is first taken. Components are described with respect to their antecedents in the '874 Application.
- the processing unit is embodied of modules that may be embodied by components such as FPGAs processing feature values using selected modules. Each module calculates a component function of feature value generation. Individual modules can be placed in a selected order, and more than one of each type of module may be provided.
- the input metrics circuit 70 provides input signals derived from sources, usually sensors, for processing by a processing unit 24.
- the screener feature stage 44 and the screener kernel stage 46 condition the inputs from the input metric circuit 70 used in statistical processing.
- the screener kernel stage 46 generates deviation values between measured and predicted values.
- the correlator feature stage 48 further processes deviance and plausibility values for selected time slices.
- the forecaster stage 52 in one form uses the same current and recent feature values for prediction as the correlator kernel stage 50 uses for imputing.
- Forecaster stage register 110 Values from the correlator stage register 110 are translated through the buffer 114 and are encapsulated in a forecast packet delivered to the register 120.
- a forecast packet register is embodied in the register 120.
- the forecasting packet may include values such as a MVSCP matrix.
- a forecaster will commonly include a routine for producing mean squared deviance (MSD) values.
- the forecaster stage produces learned cross-product parameters as part of the forecasting process.
- the forecaster computes one or more forecast values for each feature in each cell.
- the forecaster can be configured to predict a broad variety of future values at every time slice.
- the forecaster may be configured to predict each feature value 1, 2, or 3 time slices into the future; or alternatively, it may be configured to predict each feature value 1, 2, 23 or 24 time slices into the future.
- this forecasting specification includes the number of forecasts to be computed per feature as well as the number of time slices into the future for which each such forecast is to be produced.
- Forecasting resembles correlator kernel imputing in three ways.
- the forecaster uses the same independent feature window configuration as the correlator kernel.
- independent feature time slices can be configured to include a broad variety of previous values.
- independent variables may include features observed 1, 2, or 3 time slices ago; alternatively, they may include features observed 1, 2, 23 and 24 time slices ago; and so on.
- the sequence of independent feature time slices may therefore be contiguous, or noncontiguous.
- the forecaster uses learned parameters from the correlator kernel including MVSCP matrix values and MVSCP inverse values.
- the present embodiments require updating only one MVSCP matrix and its inverse per time slice.
- the present embodiments require updating only one covariance matrix and its inverse per time slice.
- the forecaster operates in either the one-window mode or the many- windows mode, closely resembling the correlator kernel. When operating in either the one-window or the many-windows mode, forecaster estimates use practically the same window function structure as the correlator kernel for managing independent variable values during estimation.
- Forecaster operation also differs from correlator kernel operation in three ways.
- the forecaster predicts future values for prospective decision-making and control.
- the correlator kernel imputes current values for deviance detection and deviant or missing value replacements.
- the forecaster updates learned estimation weights first and then uses them to compute estimation weights.
- the correlator kernel computes estimation weights from the previous time slice first, then uses them for estimation, and then updates estimation weights.
- the forecaster updates learned forecasting cross-product parameters to compute forecasting weights.
- the correlator kernel updates MVSCP parameters to compute imputing weights.
- the forecaster uses the same current and recent feature values for prediction as the correlator kernel uses for imputing. However, the forecaster computes distinct forecasting weights for every future time slice. To do so, the forecaster uses learned MVSCP or covariance matrix inverse values, deviance values, learning weights, and other values that were computed previously by the correlator kernel.
- the correlator kernel supplies one set of such values at the end of each time slice to the forecaster in the form of a forecasting packet.
- the forecaster uses one such packet to compute forecasting cross-products for each set of future forecasts. The forecaster then uses those cross- products as well as inverse values from the correlator kernel to compute forecasting weights.
- the forecaster obtains its independent variable values from the correlator kernel register.
- the forecaster manages its own, forecasting packet register, containing forecasting packets from the correlator kernel.
- the forecaster stores as many such packets as the farthest number of future time slices to be forecast. For example, to predict feature values 1, 2, 23, and 24 time slices into the future, the forecaster uses each forecasting packet that the correlator kernel produced 1, 2, 23, and 24 time slices ago. To do so from one time slice to another, the forecaster stores all packets from one time slice ago to 24 time slices ago in its packet register.
- the packet register may comprise a daisy wheel register for storage management, just as other stages that employ recent history manage their own registers.
- the correlator kernel When forecasting is enabled, the correlator kernel produces a forecasting packet at the end of each time slice.
- the packet contains MVSCP matrix, inverse matrix, current deviance, learning weight values and other values that the forecaster uses for prediction, as outlined next, described in a separate section below, and described in statistical terms elsewhere.
- the forecaster completes the following steps:
- forecasts 1 , 2, 23, and 24 time slices ago are labeled forecast t+1, t+2, t+23, and t+24, respectively.
- the forecaster updates four sets of MVSCP cross-products, using independent feature values that were observed 1, 2, 23, and 24 time slices ago, along with current feature values as shown.
- These independent feature values, along with corresponding learning weight values and MVSCP or covariance matrix inverse values are obtained from forecasting packets, as shown in the forecasting steps worksheet.
- weighted least squares forecasting weights and forecasts these cross-products are updated in precisely the same sequence that was used to update their corresponding inverse matrix.
- the cross-products are based on precisely the same learning weights as well as independent variable values as those that were used to update the corresponding inverse matrix.
- forecasting weights are computed as a function of MVSCP cross-product or covariance and MVSCP or covariance inverse values. Weights for predicting values one time slice into the future are based on cross-products and inverses corresponding to one time slice ago; weights for predicting values two time slices into the future are based on cross-products and inverses corresponding to two time slices ago; and so on.
- forecast values are computed as a function of current feature values and forecasting weights.
- Current feature values along with weights for predicting values one time slice into the future are used to forecast values one time slice into the future; current feature values along with weights for predicting values two time slices into the future are used to forecast values two time slices into the future; and so on.
- forecasting MSD values are updated based on squared differences between the current dependent feature values and their corresponding forecasts, along with learning weights that were used to produce the forecasts.
- MSD values for forecasts one time slice into the future are based on corresponding forecasts and learning weights from one time slice ago;
- MSD values for forecasts two time slices in the future are based on corresponding forecasts and learning weights from two time slices ago; and so on.
- forecast values are saved into one or more forecast history registers.
- One such register is required for each prediction time slice, and its size depends on the time slice.
- the register for predicting one time slice into the future contains forecasts for predicting one time slice into the future that were computed currently; the register for predicting two time slices into the future contains forecasts for predicting two time slices into the future that were computed currently and one time slice ago; and so on. In this way, the register for each prediction time slice will contain the required forecasts for updating MSD values during the next time slice.
- Steps 1 through 3 can be performed after only one time slice for forecast t+1 , but steps 1 through 3 can only be performed two time slices afterwards for forecast t+2, and so on.
- Step 4 delays are twice as long, because computing MSDs requires waiting until not only forecasts have been computed but also actual values corresponding to them have been observed.
- step 4 can be performed two time slices after the first time slice for forecast t+1, but step 4 can only be performed four time slices afterwards for forecast t+2, and so on.
- Step 5 delays are the same as those for steps 1 through 3, as shown.
- the present embodiments may comprise those stages, among others. Each of these stages comprises a module for calculating a component function of feature value generation. More than one of each type of stage may be provided. They may be cascaded in any order.
- n substage types possible categories may be included.
- Application Ser. No. 11/484,874 discloses a stage.
- Present embodiments could include three screener feature stage types: user-supplied, additive window, and conjunctive.
- the user would be able to specify n_stages in a configuration. That is, the user is able to specify the order in which the selected stages operate. The stages would operate sequentially. For each such stage, the user would further specify its n stage type, or n substage type. For each such selected stage type and subtype, the user would complete the specification, along the same lines that already implemented in a currently implemented Application Program Interface (API).
- API Application Program Interface
- a graphical deviance display is provided for deviance values.
- the subject graphical display simply converts deviance magnitude values on a two-dimensional grid.
- Independent values for the conversion would include deviance magnitude values, ranging from a configured positive value to a second, larger configured value.
- the independent values range from a first least recent configured value to a second least recent configured value.
- Corresponding dependent values for the conversion would be colors along a spectrum mapped on the same grid. The relationship between the magnitudes and wavelength values corresponding to the colors would be monotonically increasing, as specified by the user.
- the display register 152 includes a conversion circuit to map values for display. The dependent values and independent values may both be provided to a display.
- a forecaster may produce learned parameters for forecasting image values for each among n future image time slices.
- an auto-adaptive process may occasionally transmit learned parameters when they have substantially changed over time slices and then intermittently transmit a reduced number of image values.
- a receiver interpolation process may use them and the most recently transmitted learned parameters to interpolate non-transmitted images between those that were are transmitted. For example, each nth image of a plurality of successively produced images may be transmitted, where each image is characterized by feature values associated with cells of a data array collected over successive time slices and used to generate a plurality of data points for each time slice.
- a forecaster may also treat each non-overlapping window within an image as if it were produced during consecutive time slices. During each window time slice, a forecaster may produce learned parameters for forecasting window values for each among n future window time slices. In an embodiment where a data location in a time slice has more than one space dimensions, one window or estimation set is associated with each dimension. Instead of transmitting each window during each window time slice, an auto-adaptive process may occasionally transmit learned parameters when they have substantially changed over window time slices and then intermittently transmit a reduced number of window values. When the reduced number of window values is received, a receiver interpolation process may use them and the most recently transmitted learned parameters to interpolate nontransmitted windows between those that were are transmitted.
- An auto-adaptive process may use also use auto-adaptive forecasting process combined with a corresponding receiver interpolation process for compressing images, as well as a second auto-adaptive forecasting process combined with a corresponding receiver interpolation process for compressing windows, to achieve two forms of data compression at once.
- effective data compression may be achieved by continuously learning how to interpolate between every n time slices at the sending station, transmitting every nth time slice along with learned parameters, and then interpolating at the receiving station.
- the processing unit 24 processes input data to provide known forms of statistical functions. Embodiments of the present invention facilitate real time generation of statistical functions by the processing unit 24. Processing of large sets of data that have previously been intractable in the environment of a self-powered remote vehicle is also facilitated.
- the processing unit 24 may include functionality to provide selected statistical calculations. The inclusion of a particular module in the processing unit 24 is optional. The requirements for types of modules to be included in the processing unit 24 are a function of the application in which the system is employed.
- the particular modules included in the present illustration comprise a screener feature module 44, a screener kernel module 46, a correlator feature module 48, a correlator kernel module 50, a forecaster module 52 and an output module 54.
- a data-responsive module 60 is provided that may compare process data to criteria such as alert threshold values or event profiles. Additionally, the data-responsive module 60 may display values, and may also register imputed values, forecast values and statistics and event profiles.
- An input metrics circuit 70 is synchronized by a clock circuit 72 to provide inputs to the processing unit 24 comprising signals received from the sensors. The clock circuit 72 also synchronizes provision of output metric values in the module 64 for each time slice.
- a single processing unit 24 may be provided. However, for facilitating processing of data represented by large numbers of input values, e.g., entire video frames at a nominal repetition rate, it is desirable to provide for parallel, pipelined operation utilizing a plurality of processing units 24 as further described with respect to Figure 10.
- FIG. 4 is a flowchart illustrating operation of the screener and kernel module 46. While the description of operation may be described from initial startup, the present description assumes that prior time slices have already occurred and that information is already present in the various registers. This is the typical situation.
- a routine that operates the screener feature module 44 will be referred to as a calling program 200.
- the calling program 200 starts at block 202, at which configuration programs are loaded.
- Configuration values include, for example, a number of dimensions (e.g., 1), a number of data inputs per dimension (e.g., 512), and a number of input metric values per data point. Where the input is total sound intensity, the number of input metrics per data point is set at one.
- the number of input metrics per data point is set at three.
- Configuration values also include the number of screener features per data point, here set at four and the number of correlator features per data point, here set at four.
- the calling program 200 allocates memory for inputs from the input metrics circuit 70.
- the program 200 locates memory cells for the API metrics.
- allocated API memory would include memory for 512 cell metric values and their 512 corresponding plausibility values.
- Plausibility value as used in this description is a number between zero and one used by a rapid learning system to control the weight of an input measurement with respect to learning.
- the calling program 200 allocates data locations for API 10 values for 512 cells, locations for 512 x 4 for feature output values and memory for 512 x 4 correlator output feature values.
- the program 200 enters into loop 208 in which updates and calculations may be performed.
- the loop 208 begins with block 210, and ends with block 216, which may return to the block 210.
- the block 210 provides the locally programmable option to modify the above-described API configuration of memory locations.
- input values are loaded into the memory locations dedicated thereto, and the corresponding plausibility values are also loaded.
- the calling program 200 calls the first processor program, further described with respect to Figure 5 below, which may comprise a set of deviation values between measured and predicted values.
- the system decides whether to return to block 210 to repeat the process or to proceed to a block 218 at which configuration values may be stored, after which at block'220, the routine stops. Criteria that may be employed at block 216 may include whether processing of data produced during each of a preselected number of time slices has been completed.
- a utility library 224 may be accessed.
- the library 224 includes a broad variety of display and control functions for processing data to be furnished to the output metrics module 60 ( Figure 3).
- FIG. 5 is a flowchart illustrating programming and operation of the screener kernel module 46.
- a processing unit executive routine 240 begins at the block 242.
- the processing unit executive routine 240 loads the API values accessed by the calling program 200.
- the values may be organized for parallel processing in embodiments in which parallel processing is utilized.
- a significant factor in deciding whether to use parallel processing is the rate of arrival of new data and the period of each time slice. In a situation in which new data is arriving every 10 ns, and one processor required 75 ns to process data, then eight processors running in parallel would be needed to process data in real-time. It should be remembered that in the present context, real-time refers to processing without building up a backlog of sensor data.
- a line of cells of 512 values is organized. Each parallel processor would process 64 cells.
- the processor routine would organize parallel processing by distributing sets of 64 input values and 64 plausibility values to corresponding processing modules.
- parallel output metrics are collected.
- Block 248 calls one or more processing units described in further detail with respect to Figure 6.
- free parallel outputs may be collected.
- auto-adaptive learning memory (ALM) values are saved to a core file.
- processing for a current time slice is completed, and the processing unit executive routine 240 returns to block 242 for processing during a next time slice.
- ALM auto-adaptive learning memory
- FIG. 6 is a flowchart illustrating programming and operation of a processing unit subroutine 270 called at block 248 in Figure 5.
- the processing unit subroutine 270 begins with block 272, at which an operation performed in accordance with embodiments of the present invention and described in the present context as a window function is called.
- the window function is described in greater detail with respect to illustrations beginning with respect to Figure 13 below.
- the windowing feature selects data from nearest data locations in time and space for calculation of values.
- the screener kernel function further described with respect to Figure 7 below is called.
- the correlator kernel function described with respect to Figure 8 is called.
- the forecaster function may be called and at block 282, a range of output values for a current time slice is tabulated.
- the subroutine 272 utilizes a utility library 284.
- each feature input value for a given time slice is transformed into a deviance value.
- the deviance value comprises an input for the correlator feature function at block 276.
- the correlator kernel function 278 utilizes the window function to impute each current value as a function of a configurable number of nearest neighbor of values in time and space. This is explained in further detail beginning at the Figure 13 below.
- a correlation matrix is provided to the forecaster.
- the forecaster function 280 when utilized, produces a forecast for each feature and each time slice, including any configurable number of future time slice forecasts.
- the forecaster function 280 may utilize prior art forecasting functions. While the forecasting functions are known, the forecasting output values are utilized in accordance with embodiments of the present invention to improve event recognition, including a values, deviance detection and deviance correction. Conventional correlation-based systems cannot distinguish underlining deviant values from apparent deviant values that are not in fact deviant. The present method can uniquely discount such apparently deviant values by using previously generated forecasts and to identify those apparently deviant values that are close to their forecast values, and therefore most likely are not deviant.
- the output processor function 282 received deviance values from the screener kernel function 274 in the correlator kernel 276 along with all ports from the forecaster function 284 for utilization in accordance with embodiments of the present convention as further described below.
- FIG. 7 is a flowchart illustrating the operation in programming of the screener kernel 274.
- learning weights are updated.
- deviance value estimation is performed, and an ALM updating is performed.
- the screener kernel function 274 provides output plausibility values for use in identifying deviant events.
- downstream registers are updated. The functions at blocks 290 through 298 are separable and may be performed in parallel.
- FIG. 8 is a flowchart illustrating the operation and programming of the correlator kernel 278.
- imputing weights are calculated based on most recently updated correlator learned parameters.
- deviance values are estimated by use of the correlator kernel 278.
- output plausibility values are set utilizing the correlator kernel 278.
- the ALM values are updated, and at block 320, downstream registers are updated.
- FIG. 9 is a flow chart illustrating the operation and programming of the output processor 282.
- the output processor routine 282 calls an alert processor routine 330 which provides values to the alert module 150.
- the alert processor module 330 utilizes deviance and plausibility values provided to it from the screener kernel module 46 and the correlator kernel 50.
- the alert processor routine 330 employs an easily programmable window function.
- the window function selects an estimation set, described with respect to Figures 13-17 below, for processing.
- the display processor routine 332 operates in a similar matter to produce outputs for 29 graphical displays.
- a global imputer routine 334 operates similarly to the alert processor routine 330 to produce imputed metrics.
- FIG. 10 is a flowchart illustrating parallel operation of the processor module of Figure 5.
- the processing unit executive routine 240 provides the parallel processing module 246 ( Figure 5) with API values 350.
- the parallel organizer 246 provides API input values including configuration parameters and input measured values along with auto-adaptive learning memory values.
- values are distributed to separate processing modules. For example, the first 64 input values and their corresponding plausibility values would be supplied to module 272 - 1.
- the screener feature module 44 would convert input metrics 352 ( Figure 10) for the time slice tO into outputs of the screener feature module 44 when it sends the values into the buffer 86 for later downstream processing. Meanwhile, the screener kernel module 46 has transformed feature values from time slice t-1 based on the input metrics received in time slice t-1 into deviance values and placed the values into buffer 96 for later downstream processing.
- the correlator feature module 48 provides outputs to the buffer 106.
- the correlator control module 50 provides calculated outputs based on deviance values previously computed by the screener kernel module 46 at time slice t-1 and based on input metrics received in time slice t-3 into deviance values to the buffer 116.
- the forecaster module 52 would use output values that were previously updated by the correlator kernel module 50 at time slice t-1. Based on input metrics received at time slice t-4, forecast values for time slice t-3 were produced. Optionally, additional values may be produced utilizing more time slices into the future relative to time slice t-4 and placed into the forecaster module buffer 126.
- the output module 54 would transform input values received from time slice t-5 along with output deviants and plausibility values from the screener kernel module 46 corresponding to input values received from the time slice t-5 that were completed during time slice t-4.
- the correlator kernel output 50 input receives deviance and plausibility values corresponding to input values received at time slice t-5 that were computed during time slice t-2, and provides various output values and stores them in register 136, the future updating output metrics 358 ( Figure 10), alerts 150, displays 152, imputed values 154 and the statistics registers 158.
- FIG 12 is an illustration of a parallel, pipelined configuration for the processor 40.
- a group of processors 272 may be connected in parallel. Further, a plurality of such groups may be connected in series to comprise a pipeline.
- Daisy wheel registers each of which can be quickly updated at the end of each time slice, may be used to embody the registers 80, 90, 100, 110, 120 and 130 ( Figure 3) when used in conjunction with buffered pipelining.
- output metrics may be produced just as quickly with one set of register hardware as with the alternative of having six distinct sets of register hardware operating in a sequential fashion.
- One sixth of the hardware also requires 1/6 of the logic code to be programmed.
- FIG. 13 through 17 are each a chart useful in understanding processing data sets having various numbers of temporal and spatial dimensions.
- Embodiments of the present invention utilize a form of "nearest neighbor” processing to impute expected values for particular cells.
- the processor 40 utilizes a Markov chain.
- a Markov chain embodies a model of sequences of events where the likelihood of an event depends only on a preceding event or a nearest neighbor event. In prediction and simulation, the principle of the Markov chain is applied to the selection of samples from a probability density function to be applied to the model.
- the "windowing" function described above refers to the selection of adjacent cells within selected dimensions to be processed together.
- the independent values I will have been established for either successive time periods or successive locations.
- Another class of independent values I is referred to as F.
- These values are "frame" values. They are described separately since they are in cells which do not have an adjacent location on at least one side of the cell.
- the dependent value is calculated in terms of values obtained from two prior time slices, labeled t-2 and t-1, which are the two successive time slices preceding time tO. In each case, values are entered in a matrix wherein rows correspond to time slices t-2, t-1 and tO respectively.
- Each column corresponds to a location.
- eight locations labeled 0 through 7 are provided.
- sixteen spatial locations are provided.
- the outer locations are labeled F and F, respectively corresponding to left and right frame cells respectively. In practice, the outer locations could be at left and right horizontal ends of a space. However, left and right are used here only to denote first and last locations. Other spatial relationships or non-spatial relationships could be represented.
- the locations between the outer frames F and F are labeled 0 through 13.
- frame values may be set to zero. Providing frame values allows the windowing function to select the number of "nearest neighbors" in each estimation set even when a value does not have a nearest neighbor.
- a "windowing" function selects an appropriate set of I values from a data array to comprise a correlation matrix used to impute a D value.
- This set is a function of the estimation algorithm.
- the data array referred to here is data responded to by a system.
- the data array is a record organized by sensors producing outputs for data points, attributes per data point and time slices. Attributes per data point may include values for each of the different features, values in each of a plurality of dimensions or other known forms of measurement.
- this set is called an estimation set.
- the members of an estimation set are a function of the number of attributes of a data point and the number of time slices utilized.
- the estimation set comprises a set of nearest neighbor values in each of N dimensions, where N is a non-negative integer.
- Dimensions may be spatial or temporal. More than three spatial dimensions or one temporal dimension may be utilized to characterize a data point. Indeed, in some cosmological models, there may be dozens of spatial dimensions.
- Figure 13 is representative of measurement of a value versus time but without spatial dimensions.
- a cell is a row of data.
- the parameter indicated by the data in each location comprises a value that is not related to an adjacent value.
- the current value at time t0 is a function of the two preceding values respectively at times t- 2 and t-1 respectively.
- Figure 14 represents data for a situation in which one spatial dimension is measured with respect to time.
- Figure 4 may be used to represent the above-described side scan sonar application.
- a "window" comprising data from the three time periods of interest and the independent values surrounding a current location to be computed is selected.
- the window has a number of columns and rows that correspond to the estimation set. In the present illustration, each "window” will comprise the estimation set.
- the window will be indexed across the data matrix one step at a time so that current estimation sets are accessed and imputed values D can be calculated.
- the first window will include locations to F, 0 and 1.
- light shading indicates these. Successive "windows,” or estimation sets, such as 0-1-2, 2-3-4, etc. will be selected in sequence.
- Figure 14 a middle window cell comprising locations 5-6-7 is illustrated. Indexing proceeds through the end of the dimension up to the last window cells, which in the present illustration are cells 12, 13 and F.
- Figure 15 illustrates a tabulation of data obtained for parameters in one spatial dimension at a given time. The rows represent space slices rather than time slices, and the columns indicate locations within each dimension. The dependent value to be imputed is calculated in terms of the preselected number of surrounding locations. In the present illustration, the estimation set consists of eight surrounding locations. These locations are the surrounding columns indicative of locations, and the two preceding rows indicative of measurements in successive dimensions.
- Figure 16 consists of Figures 16a, 16b and 16c.
- the parameters measured in this illustration include one feature per cell.
- Each parameter is time variant and has two spatial dimensions.
- the estimation set includes values in two preceding time slices and in surrounding locations represented by adjacent columns. Additionally, as in Figure 15, values and surrounding dimensions are used to calculate the imputed value.
- Figures 16a, 16b and 16c respectively represent data matrices for time slices t-2, t-1 and t0 respectively.
- Each independent value sub-matrix comprises 15 boxes.
- the dependent value D needs to be located between both preceding and succeeding dimensional rows.
- Figure 17 consists of Figures 17a — 17i.
- Figures 17a — 17i there is one feature per cell having three spatial dimensions.
- Three window slices representing values produced during time slices t-2, t-1 and t ⁇ , respectively.
- Values for a third dimension are based on measurements in two other dimensions.
- Figures 17a, 17b and 17c respectively represent initial values at the locations F, zero and 1. In these matrices, a full set of surrounding locations is not available.
- Full value matrices are illustrated in Figures 17d through 17i.
- An illustrative calculation is illustrated with respect to Figures 17d, 17e and 17f.
- rows surrounding the dependent value D are included in the value matrix.
- the matrices surrounding the dependent value in the third dimension may also be included. Imputed values may thus be calculated for the point in a three-dimensional space.
- Figure 18 is a block diagram of a processing unit interacting with an application program interface and sensors.
- Figure 18 is a block diagram similar to Figure 2 illustrating and electronics package 20 and sensor 30 interacting with a processing package 424.
- the processing package 424 has input data and output data coupled via an API 430 to a process simulator 436.
- a sensor control unit 440 may be coupled between the process simulator 436 and the sensor 30.
- the sensor control circuit 440 may adjust values for black-and-white levels, contrast and filtering functions.
- a telemetry control circuit 450 may be coupled between the process simulator 436 and the transmitter 26. In one embodiment, the telemetry control 450 responds to the output matrix unit ( Figure 3) to transmit or reject selected output data.
- Figure 19 consisting of Figure 19a and Figure 19b represents a nominal set of input information from a video camera and processed data from which clutter has been removed.
- Figure 19a represents a nominal display of raw data illustrating amplitude versus wavelength of detecting video signals on an arbitrary scale.
- Figure 19b represents output data as processed by the processing unit 424.
- the processing routines performed by the processing unit 424 reject meaningless returns and provide out put information with minimal or no "false positive" output signals.
- FIG. 20 is a block diagram illustrating a system utilizing a plurality of processing units 524, 524-1, 524-2, ... 524-n.
- Each processing unit 524 is configured differently so that efficacy of various settings may be compared.
- Each processing unit 524 may perform the same function, but with different settings.
- Periodically, for example, weekly, a comparison circuit 540 measures the relative success of each processing unit 524 in terms of a preselected criterion.
- the preselected criterion may be smallest mean squared the deviation between actual and imputed values during the monitoring time.
- the most successful group of settings may be selected for processing data during a next time period. This operation may be described as convergent data fusion in that convergence of actual and imputed values may be minimized.
- the present embodiments provide for separate parallel operation of calculation models. Consequently, adaptive processing may be utilized for tasks that were previously considered to be intractable in real time on hardware of the type used in low powered, portable processors.
- the option of modular pipelined operation simplifies programming; design and packaging, and allows for use of FPGAs in place of high-powered processors. Learned parameter usage, based on assuming that the same estimation functions and learned parameter values can be used to produce the estimates that in turn, allow unexpected events to be detected more simply.
- Field programmable windowed functionality can be applied to many applications by programming the data matrix to be selected by a "windowing" function.
- Auto-adaptive learning memory may be distributed over pipelined processing modules.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
A method of forecasting feature values, including: generating data cells for each time slice of a succession of time slices; defining feature values for each data cell and a number of forecasts for each feature value; establishing a current time slice; and, for each forecast: specifying a future time slice for which the forecast is to be computed having at least one dependent data cell; for each dependent data cell: defining an estimation set of nearest neighbor cells surrounding a data cell corresponding to the dependent data cell; generating learned parameters for the estimation set based on information stored in estimation set; updating each learned parameter; computing a forecasting weight corresponding to the estimation set based on the learned parameters; and, forecasting a feature value in the future time slice as a function of the feature value associated with the estimation set and its corresponding forecasting weight.
Description
AUTO-ADAPTIVE NETWORK
Field of The Invention
[001] The present subject matter relates generally to machine learning and more specifically to efficient processing of parameter values, which may be multidimensional, for predicting feature values as well as for use in calculating imputing values for a range of applications providing auto-adaptive functions.
Background of The Invention
[002] Auto-adaptive systems have many applications. These applications include event recognition based on data measured over a number of successive time periods. Events take many different forms. For example, events may include detection of a target in a particular area, sensing of an out- of-specification condition in a physical process environment or correspondence of processed psychometric measurements with a particular behavior prediction profile. Anomaly sensing is often an element of detecting an event. Event recognition may also comprise evaluation of sensed data to recognize or reject existence of conditions indicated by the data or to initiate a particular action.
[003] Signals are produced in response to sensor outputs, and the signals are processed. A number of processing stages may be used. Processing results are used, for example, in known functions for calculating, predicting and imputing values, updating learned functions, assigning plausibility to measurements, discerning deviance between measured and expected values and event detection. Commonly, a display is used to convey information to a user.
[004] Commonly assigned, copending United States Patent Application Ser. No. 11/484,874 (the '874 Application), which is incorporated by reference herein in its entirety, provides, inter alia, significant improvements in processing capacity for auto-adaptive networks that may be embodied in field programmable gate arrays (FPGAs). Consequently, powerful anomaly detection techniques may be practiced on portable systems that are remote from a base station. One example of a portable system is an unmanned aerial vehicle (UAV).
[005] The '874 application provides a context that comprehends a method of forecasting future feature values for a cell of a data array and a processor system wherein an array of data collected over successive time slices is processed, with a plurality of data points being provided during each
time slice, a number of future time slices is specified for which to forecast a feature value, each future time slice being located a number of time slices into the future from a current reference point; a number of forecasts per feature is specified; a set of past time slices to be utilized for each prediction is defined, each said past time slice being located a number of time slices in the past away from the current reference point corresponding to a number or time slices away from the current reference point of a future time slice and defining a number of features for each data point.
Summary
[006] Embodiments of the present invention utilize a covariance matrix, a mean value sum of squares and cross product (MVSCP) matrix, their inverse matrices, and other learned parameters that have been previously used. Prior embodiments have disclosed use of these parameters for estimating current imputed values. Embodiments of the present invention, however, utilize these values to generate forecasts. In embodiments of the present invention, efficiencies of the correlator disclosed in the '874 application are utilized to provide a more powerful processor. The present embodiments require updating only one MVSCP matrix and its inverse per time slice. Likewise, the present embodiments require updating only one covariance matrix and its inverse per time slice. A separate update to generate a current imputed value is not required.
[007] In the above-described context, embodiments of the present invention comprise a method of generating predicted values defining a current estimation set in at least one dimension for a dependent data location for which a value will be predicted, said estimation set comprising the dependent data location and a preselected number of nearest neighbor values surrounding the dependent data point in a current time slice; accessing estimation sets from each of a preselected number of time slices corresponding to said current estimation set; associating one estimation set with each dimension; generating a set of learned parameters comprising values produced by a function incorporating either a MVSCP matrix or a covariance matrix for each estimation set associated with a set of past time slices; and updating each learned parameter to compute a forecasting weight. A processor is also provided.
[008] In a further form, a graphical deviance display is provided for deviance values between expected and measured parameters. The subject graphical display converts deviance magnitude values on a two-dimensional grid. Independent values for the conversion include deviance magnitude values, ranging from a configured positive value to a second, larger configured value. Corresponding dependent values for the conversion would be colors along a spectrum mapped on the
same grid. The relationship between the magnitudes and wavelength values corresponding to the colors would be monotone increasing, as specified by the user. A function of the adaptive learning processor is to generate deviance values between an expected value of a cell and a calculated value.
[009] In a further form, a processor is embodied of modules that may be embodied by components such as FPGAs processing feature values using selected modules. Each module calculates a component function of feature value generation. Individual modules can be placed in a selected order, and more than one of each type of module may be provided.
[010] In selected further embodiments, learning parameters may be generated based on calculations utilizing groups of values from successive windows within a single time slice. A window is a group of values for each of a particular data point and a preselected number of spatial nearest neighbors.
[Oil] Another aspect of embodiments of the present invention provides for data compression. In one form, a system transmits one out of every N full sets of data arrays, e.g., images, where N is a natural number. Learning parameters are also transmitted. Consequently a base station may receive sufficient input information to generate data arrays at times between reception of each Nth data array. Consequently, requirements for remote transmitters for such parameters and bandwidth and power may be reduced.
Description of The Drawings
[012] The present subject matter may be understood by reference to the following description taken in connection with the following drawings.
[013] Figure 1 is an illustration of a UAV employing an embodiment of the present invention gathering data and transmitting intelligence to a command and control station;
[014] Figure 2 is a block diagram of a system incorporating an embodiment of the present invention;
[015] Figure 3 is a block diagram of one form of processing unit included in the embodiment of Figure 2;
[016] Figures 4 through 9 are each a flow diagram illustrating a performance of modular statistical routines within the processing unit; 5
[017] Figure 10 is a flowchart illustrating parallel processing of generated values;
[018] Figure 11 is a chart illustrating values from various time slices during a current selected time slice tθ;
[019] Figure 12 is a block diagram of a parallel processor performing the routines of Figure 10;
[020] Figures 13 - 17 are each a chart useful in illustrating selection of members of sets of data, called estimation sets, to be used in successive calculations of a recursive function;
[021] Figure 18 is a block diagram of a processing unit interacting with an application program interface and sensors;
[022] Figure 19, consisting of Figure 19a and Figure 19b represents a nominal set of input information from a video camera and processed data from which clutter has been removed;
[023] Figure 20 is a block diagram illustrating a system utilizing a plurality of processing units, each having a different configuration;
[024] Figure 21 , consisting of Figures 21 A and 21 B, is a forecasting steps worksheet; and
[025] Figure 22 is a forecasting sequence worksheet.
Detailed Description
[026] Embodiments of the present invention provide for operation referred to as auto-adaptive processing. Auto-adaptive processing is not a recognized term of art, but is descriptive of processing of data, often condition-responsive data received from an array of sensors received in successive time slices, to update adaptive functions and to calculate imputed values of data for use in evaluating data and which may also be used to predict data. Time slices may also be referred to by such terms as clock periods or data cycles. For each time slice, measurement values and measurement plausibility values are supplied to the system, and a learning weight is either supplied to or generated by the system. While the above cited '874 Application focuses on producing estimations, present embodiments provide novel ways of forecasting values at future times, which may occur milliseconds, hours or days after a current time slice.
[027] Auto-adaptive processing operations may include converting measurement values to feature values; converting measurement plausibility values to feature viability values; using each viability value to determine missing value status of each feature value; using non-missing feature values to update parameter learning; imputing each missing feature value from non-missing feature values and/or prior learning; converting imputed feature values to output imputed measurement values; and supplying a variety of feature value and feature function monitoring and interpretation statistics.
[028] The above operations are performed by applying functions to selected data entries in a data array. Embodiments of the present invention utilize a "windowing" function to "index" through the data array to select successive groups of data entries for processing. Field programmable windowed functionality can be applied to many applications by programming the data entries to be utilized for a calculation and to set parameters of algorithms.
[029] Embodiments of the present invention in one form provide for the option of embodying an auto-adaptive processor in the form of parallel, pipelined adaptive feature processor modules that perform operations concurrently. Tasks including, function monitoring, interpretation and refinement operations are done in parallel. Distribution of tasks into modules permits the use of simplified hardware such as FPGAs, as opposed to full processors in various stages. Auto-adaptive processing may be utilized for tasks that were previously considered to be intractable in real time on hardware of the type used in low powered, portable processors. The option of modular pipelined operation simplifies programming; design and packaging and allows for use of FPGAs in place of high-powered processors. Stationary learned parameter usage, based on the same estimation functions and learned parameter values, can be used to produce the estimates that in turn allow unexpected events to be detected more simply.
[030] Embodiments of the present invention may be used in a very wide variety of applications. These applications include disease control, military attack prevention, measuring efficacy of antibiotics, and monitoring system performance to prevent breakdowns. Event recognition may be used to trigger an alarm and initiate a response or produce a wide variety of other reactive or proactive responses. In one application, usability of data is evaluated so that a remote device may decide whether or not to utilize its limited power and bandwidth to transmit the data.
[031] In the present description, Figures 1-3 describe hardware. Figures 4-20 describe a processor environment for producing estimated functions. This processor may provide a context for present
embodiments. Figures 21 and 22 are particularly directed to forecasting embodiments. Figures 21 and 22 are discussed prior to a discussion of Figures 4-20.
[032] One of the many applications for systems including an embodiment of the present invention is illustrated in Figure 1. In this illustration, an unmanned aerial vehicle (UAV) 1 is part of an intelligence system. The UAV 1 comprises an array of sensors, processors and a transmitter, further described and illustrated below. The UAV 1 provides video information via a radio frequency link 3 to a base station 4. In the present illustration, the base station 4 is housed in a ship 5. The ship 5 is traveling in an ocean 6. The UAV 1 may detect enemy craft 8. The enemy craft 8 may be beyond a horizon 10 of the ship 5. The transmitter within the UAV 1 will generally have sufficient bandwidth to provide detected video information to the base station 4. Data processing equipment and transmitter modulation circuitry will generally have sufficient capacity to transmit video information. Ideally, all video information provided from the UAV 1 to the base station 4 will be useful. To the extent that the base station 4 will be receiving non-useful information, the base station 4 will have to expend resources to call the non-useful information. Processing of non-useful information at the base station 4 will also slow the response to useful information.
[033] Ambient conditions will have a tendency to obscure the view of the enemy craft 8 from the UAV 1. Moisture in the air is a common ambient condition. Very often, moisture in the air will not be sufficient to block obtaining a useful image. Optical filtering may also be used to reduce haze. However, clouds or rainstorms may be located between the enemy craft 8 and the UAV 1. The video data obtained when the enemy craft 8 are not viewable is referred to in the present description as non-useful information. Commonly, UAVs simply collect data and transmit the data to a base station. The UAV 1 will generally be provided with sufficient resources to transmit non-useful information. In accordance with embodiments of the present invention, data processing is done to determine whether information will be useful or not. One criterion that need be utilized to determine whether information is useful is a contrast level in an image sensed by the UAV 1. An image of cloud cover will have low contrast, while a useful image of the enemy craft 8 will include objects that have contrast with respect to their backgrounds. By preventing transmission of non-useful information, circuitry in the UAV 1 may be designed to have less robust circuitry and lower power requirements than a circuit that must also transmit non-useful information. Capacity of transmission of useful information and speed of transmission use increased. The resulting decrease in total transmission of information permits the use of simpler circuitry and lowers power requirements. The efficiency and reliability of processing at the base station 4 is also increased.
[034] The present system comprises a rapid learning system. A rapid learning system performs adaptive learning, as a neural network. Additionally, the rapid learning system monitors, forecasts and controls data in real-time. The present specification is described in the context of the art of neural networks and adaptive systems. There is a wide range of literature further describing the basis for mathematics utilized here in and the construction and performance of learning systems. For example, further background may be provided by R. J. Jannarone, Concurrent Learning and Information Processing, Chapman & Hall, New York, 1997.
[035] A general block diagram of the system incorporating an embodiment of the present invention is shown in Figure 2. The UAV 1 comprises an electronics unit 20 including a sensor array 22, a processing unit 24 and a transmitter 26. In the present illustration, the sensor array 22 comprises a video camera 30 having an array of pixels 32, each providing an output indicative of light focused on the pixel 32. The present embodiments may process measurements that are one-dimensional or multi-dimensional. A one-dimensional output includes a grayscale level wherein a single value is indicative of pixel output. Alternatively, a plurality of values may represent output of one pixel, such as gray-scale level and color levels. The sensor array 22 provides data to the processing unit 24. The processing unit 24 provides video output to the transmitter 26.
[036] The present embodiments will achieve the necessary functions to produce meaningful output data as in the prior art. However, as further described below, the present embodiments have greater generality, efficiency, and affordability compared to prior art in embodiments. Since speed and capacity of the system are improved with respect to the prior art, a depth of processing is made available in applications where it could not be used before, including, for example, real-time video processing of entire rasters at many frames per second. New market segments for adaptive processing are enabled.
[037] Data are gathered in successive time slices. The greater the temporal resolution of the data gathering, the shorter the period of each time slice will be. To provide for adaptive processing, data received from each of a plurality of sensors during successive time slices will be processed. The functions performed by the present embodiments include receiving input values in consecutive time slices and performing processing operations during each time slice. These operations may include estimating each input value from current and prior input values through the use of a correlation matrix; comparing each estimated value to its actual value to determine whether or not the actual value is deviant; replacing deviant or missing input values with their estimated values as appropriate;
and updating learned parameters. Updating all learned parameters is important, because it allows event recognition criteria to be continuously, automatically, and adaptively updated over time.
[038] Figure 3 is a block diagram of the processing unit. Operation of each of the modules 44 through 60 is described further below with respect to Figures 4 — 9. Structure of these modules is described with respect to Figure 3. It should be noted that the name of each module in Figure 3 is selected for description in context of the present illustration, and does not constitute a particular limitation with respect to structure or operation. The modules 44 through 60 are connected to provide data or other signals either in series or pipelined to successive stages. The program module 42 controls particular connections. The connections are programmed to provide the operation described in Figures 4 - 9 below. Figure 3 is first described with respect to the hardware therein and how estimating functions are achieved. Forecasting in accordance with present embodiments is explained.
[039] The modules 44 through 60 each have an input terminal connected to a register 80, 90, 100, 110, 120 and 130 respectively. The registers 80, 90, 100, 110, 120 and 130 each respectively provide an input to logic units 82, 92, 102, 112, 122 and 132 from the logic units 92, 112, 122 and 132 respectively. First through sixth buffers 86, 96, 106, 116, 126 and 136 receive data from the logic units 82, 92, 102, 112, 122, and 132 respectively. Additionally, in the modules 46, 50, 52 and 54, auto adaptive learning memory units 94, 114, 124 and 134 are interactively connected with the logic units 92, 112, 122 and 132 respectively.
[040] Each of the buffers 86 through 136 provides an output to each respective successive module and to the output metrics module 60. The output metrics module 60 includes registers for functions selected by a user. In the present illustration, registers 150, 152, 154, 156, 158 and 160 are provided. These registers may respectively receive alert information based on comparison to a threshold or other signature, displays, even to take values, forecast values, statistics, and events. The events register 160 responds to selected criteria, for example, a preselected degree of deviation of a measured value from an expected value.
[041] Input values and calculated values are provided from the input metrics circuit 70. For example, a side scan sonar receiver may include 512 sensors in a row. A number of spatial dimensions for the side scan sonar row is one. Dimensions may be spatial, temporal or may be indicative of each a multiplicity of values associated with each cell, e.g., temperature. Calculated
values are generated to describe the data. The calculated values are functions of input values selected to reveal information about a collected set of data. In the present illustration, the calculated values include four screener features per cell . Screener and correlator features are functions that are designed to discriminate improbable or out-of-range data input points from background clutter. Screener and correlator features provide measures of deviance between actual and expected feature values, hi one form of processing of side scan sonar values, a set of functions has been developed for distinguishing presence or absence of a target and whether the target is a Type 1 target or a Type 2 target. In one form, a Type 1 target is indicated when a first pair of feature deviance values is large, and a Type 2 target is indicated when a second pair of feature deviance values is large. Both pairs will have a small deviance value in the absence of a target.
[042] The provisional specification describes a forecaster, color-coded deviance graphics, and generalized stage specifications. The present embodiments may be incorporated in the context of the '874 Application as well as in other environments. A brief, qualitative overview of the operation of the processing unit 24 in Figure 3 is first taken. Components are described with respect to their antecedents in the '874 Application. The processing unit is embodied of modules that may be embodied by components such as FPGAs processing feature values using selected modules. Each module calculates a component function of feature value generation. Individual modules can be placed in a selected order, and more than one of each type of module may be provided.
[043] The input metrics circuit 70 provides input signals derived from sources, usually sensors, for processing by a processing unit 24. The screener feature stage 44 and the screener kernel stage 46 condition the inputs from the input metric circuit 70 used in statistical processing. The screener kernel stage 46 generates deviation values between measured and predicted values. The correlator feature stage 48 further processes deviance and plausibility values for selected time slices. The forecaster stage 52 in one form uses the same current and recent feature values for prediction as the correlator kernel stage 50 uses for imputing.
[044] Values from the correlator stage register 110 are translated through the buffer 114 and are encapsulated in a forecast packet delivered to the register 120. A forecast packet register is embodied in the register 120. The forecasting packet may include values such as a MVSCP matrix. A forecaster will commonly include a routine for producing mean squared deviance (MSD) values. The forecaster stage produces learned cross-product parameters as part of the forecasting process.
Forecaster
[045] During each time slice, the forecaster computes one or more forecast values for each feature in each cell. For all correlator kernel configurations, the forecaster can be configured to predict a broad variety of future values at every time slice. For example, the forecaster may be configured to predict each feature value 1, 2, or 3 time slices into the future; or alternatively, it may be configured to predict each feature value 1, 2, 23 or 24 time slices into the future. To provide this kind of variety, this forecasting specification includes the number of forecasts to be computed per feature as well as the number of time slices into the future for which each such forecast is to be produced.
[046] Forecasting resembles correlator kernel imputing in three ways. First, the forecaster uses the same independent feature window configuration as the correlator kernel. In either case, independent feature time slices can be configured to include a broad variety of previous values. For example, independent variables may include features observed 1, 2, or 3 time slices ago; alternatively, they may include features observed 1, 2, 23 and 24 time slices ago; and so on. The sequence of independent feature time slices may therefore be contiguous, or noncontiguous.
[047] Second, to compute forecasts, the forecaster uses learned parameters from the correlator kernel including MVSCP matrix values and MVSCP inverse values. The present embodiments require updating only one MVSCP matrix and its inverse per time slice. Likewise, the present embodiments require updating only one covariance matrix and its inverse per time slice. Third, the forecaster operates in either the one-window mode or the many- windows mode, closely resembling the correlator kernel. When operating in either the one-window or the many-windows mode, forecaster estimates use practically the same window function structure as the correlator kernel for managing independent variable values during estimation.
[048] Forecaster operation also differs from correlator kernel operation in three ways. First, the forecaster predicts future values for prospective decision-making and control. By contrast, the correlator kernel imputes current values for deviance detection and deviant or missing value replacements. Second, the forecaster updates learned estimation weights first and then uses them to compute estimation weights. By contrast, the correlator kernel computes estimation weights from the previous time slice first, then uses them for estimation, and then updates estimation weights. Third, the forecaster updates learned forecasting cross-product parameters to compute forecasting weights. By contrast, the correlator kernel updates MVSCP parameters to compute imputing weights.
[049] The forecaster uses the same current and recent feature values for prediction as the correlator kernel uses for imputing. However, the forecaster computes distinct forecasting weights for every future time slice. To do so, the forecaster uses learned MVSCP or covariance matrix inverse values, deviance values, learning weights, and other values that were computed previously by the correlator kernel. The correlator kernel supplies one set of such values at the end of each time slice to the forecaster in the form of a forecasting packet. The forecaster uses one such packet to compute forecasting cross-products for each set of future forecasts. The forecaster then uses those cross- products as well as inverse values from the correlator kernel to compute forecasting weights.
[050] The forecaster obtains its independent variable values from the correlator kernel register. In addition, the forecaster manages its own, forecasting packet register, containing forecasting packets from the correlator kernel. The forecaster stores as many such packets as the farthest number of future time slices to be forecast. For example, to predict feature values 1, 2, 23, and 24 time slices into the future, the forecaster uses each forecasting packet that the correlator kernel produced 1, 2, 23, and 24 time slices ago. To do so from one time slice to another, the forecaster stores all packets from one time slice ago to 24 time slices ago in its packet register. For efficiency, the packet register may comprise a daisy wheel register for storage management, just as other stages that employ recent history manage their own registers.
[051] When forecasting is enabled, the correlator kernel produces a forecasting packet at the end of each time slice. The packet contains MVSCP matrix, inverse matrix, current deviance, learning weight values and other values that the forecaster uses for prediction, as outlined next, described in a separate section below, and described in statistical terms elsewhere.
[052] In an embodiment, during each time slice and for each forecast into the future, the forecaster completes the following steps:
1. Updating MVSCP cross-products or covariance values;
2. Computing forecasting weights;
3. Computing forecast values;
4. Updating forecast MSD values; and
5. Saving forecast values.
[053] Each of these steps will be explained for the above illustration with respect to Figure 21 , forecasting steps worksheet, consisting of Figures 21 A and 21 B.
[054] In the worksheet and the remainder of this section, forecasts 1 , 2, 23, and 24 time slices ago are labeled forecast t+1, t+2, t+23, and t+24, respectively. During step 1), the forecaster updates four sets of MVSCP cross-products, using independent feature values that were observed 1, 2, 23, and 24 time slices ago, along with current feature values as shown. These independent feature values, along with corresponding learning weight values and MVSCP or covariance matrix inverse values are obtained from forecasting packets, as shown in the forecasting steps worksheet. To produce bona fide, weighted least squares forecasting weights and forecasts, these cross-products are updated in precisely the same sequence that was used to update their corresponding inverse matrix. For the same reason, the cross-products are based on precisely the same learning weights as well as independent variable values as those that were used to update the corresponding inverse matrix.
[055] At step 2, forecasting weights are computed as a function of MVSCP cross-product or covariance and MVSCP or covariance inverse values. Weights for predicting values one time slice into the future are based on cross-products and inverses corresponding to one time slice ago; weights for predicting values two time slices into the future are based on cross-products and inverses corresponding to two time slices ago; and so on.
[056] At step 3, forecast values are computed as a function of current feature values and forecasting weights. Current feature values along with weights for predicting values one time slice into the future are used to forecast values one time slice into the future; current feature values along with weights for predicting values two time slices into the future are used to forecast values two time slices into the future; and so on.
[057] At step 4, forecasting MSD values are updated based on squared differences between the current dependent feature values and their corresponding forecasts, along with learning weights that were used to produce the forecasts. As shown in Figure 21, MSD values for forecasts one time slice into the future are based on corresponding forecasts and learning weights from one time slice ago; MSD values for forecasts two time slices in the future are based on corresponding forecasts and learning weights from two time slices ago; and so on.
[058] At step 5, forecast values are saved into one or more forecast history registers. One such register is required for each prediction time slice, and its size depends on the time slice. For the
above example, the register for predicting one time slice into the future contains forecasts for predicting one time slice into the future that were computed currently; the register for predicting two time slices into the future contains forecasts for predicting two time slices into the future that were computed currently and one time slice ago; and so on. In this way, the register for each prediction time slice will contain the required forecasts for updating MSD values during the next time slice.
[059] The forecaster may wait longer to begin updating MSD values than to begin other functions. Also long-term forecasts may begin later than near-term forecasts. These distinctions are shown in Figure 22, which is a forecasting sequence worksheet, for the above example based on four forecasts. Steps 1 through 3 can be performed after only one time slice for forecast t+1 , but steps 1 through 3 can only be performed two time slices afterwards for forecast t+2, and so on. Step 4 delays are twice as long, because computing MSDs requires waiting until not only forecasts have been computed but also actual values corresponding to them have been observed. Thus, step 4 can be performed two time slices after the first time slice for forecast t+1, but step 4 can only be performed four time slices afterwards for forecast t+2, and so on. Step 5 delays are the same as those for steps 1 through 3, as shown.
Stage Structure
[060] A generalized stage structure is provided. Instead of the dedicated stage structure for the six stages depicted in Figure 3 of the '874 Application, therein, this generalization allows n stages each of which could fall in an n stage type category. The '874 Application discloses n_stage_types = 6 categories: input, feature, screener kernel, correlator kernel, forecaster, and output, which might correspond to n_stage_type = 0, 1, 2, 3, 4, and 5, respectively. The present embodiments may comprise those stages, among others. Each of these stages comprises a module for calculating a component function of feature value generation. More than one of each type of stage may be provided. They may be cascaded in any order.
[061] Nested within each type of stage, n substage types possible categories may be included. For example, Application Ser. No. 11/484,874 discloses a stage. Present embodiments could include three screener feature stage types: user-supplied, additive window, and conjunctive. Thus, n stage type = 2 might be further broken down into n_substage_types= 3, having n_substage_type= 0, 1, and 2, respectively.
[062] Based on this general structure, the user would be able to specify n_stages in a configuration. That is, the user is able to specify the order in which the selected stages operate. The stages would operate sequentially. For each such stage, the user would further specify its n stage type, or n substage type. For each such selected stage type and subtype, the user would complete the specification, along the same lines that already implemented in a currently implemented Application Program Interface (API).
Graphical Deviance Display
[063] A graphical deviance display is provided for deviance values. The subject graphical display simply converts deviance magnitude values on a two-dimensional grid. Independent values for the conversion would include deviance magnitude values, ranging from a configured positive value to a second, larger configured value. In an embodiment, the independent values range from a first least recent configured value to a second least recent configured value. Corresponding dependent values for the conversion would be colors along a spectrum mapped on the same grid. The relationship between the magnitudes and wavelength values corresponding to the colors would be monotonically increasing, as specified by the user. In an embodiment, the display register 152 includes a conversion circuit to map values for display. The dependent values and independent values may both be provided to a display.
Image Interpolation for Data Compression
[064] During each time slice, a forecaster may produce learned parameters for forecasting image values for each among n future image time slices. Instead of transmitting each image during each time slice, an auto-adaptive process may occasionally transmit learned parameters when they have substantially changed over time slices and then intermittently transmit a reduced number of image values. When the reduced number of image values is received, a receiver interpolation process may use them and the most recently transmitted learned parameters to interpolate non-transmitted images between those that were are transmitted. For example, each nth image of a plurality of successively produced images may be transmitted, where each image is characterized by feature values associated with cells of a data array collected over successive time slices and used to generate a plurality of data points for each time slice. Thus, fewer successive images require transmission by a remote transmitter.
[065] A forecaster may also treat each non-overlapping window within an image as if it were produced during consecutive time slices. During each window time slice, a forecaster may produce learned parameters for forecasting window values for each among n future window time slices. In an embodiment where a data location in a time slice has more than one space dimensions, one window or estimation set is associated with each dimension. Instead of transmitting each window during each window time slice, an auto-adaptive process may occasionally transmit learned parameters when they have substantially changed over window time slices and then intermittently transmit a reduced number of window values. When the reduced number of window values is received, a receiver interpolation process may use them and the most recently transmitted learned parameters to interpolate nontransmitted windows between those that were are transmitted.
[066] An auto-adaptive process may use also use auto-adaptive forecasting process combined with a corresponding receiver interpolation process for compressing images, as well as a second auto-adaptive forecasting process combined with a corresponding receiver interpolation process for compressing windows, to achieve two forms of data compression at once.
[067] In either the image data compression or the window data compression case, or in the event that both are combined, effective data compression may be achieved by continuously learning how to interpolate between every n time slices at the sending station, transmitting every nth time slice along with learned parameters, and then interpolating at the receiving station.
Processor Environment for Producing Estimated Functions
[068] Referring to Figures 4 through 20, the processing unit 24 processes input data to provide known forms of statistical functions. Embodiments of the present invention facilitate real time generation of statistical functions by the processing unit 24. Processing of large sets of data that have previously been intractable in the environment of a self-powered remote vehicle is also facilitated. The processing unit 24 may include functionality to provide selected statistical calculations. The inclusion of a particular module in the processing unit 24 is optional. The requirements for types of modules to be included in the processing unit 24 are a function of the application in which the system is employed. The particular modules included in the present illustration comprise a screener feature module 44, a screener kernel module 46, a correlator
feature module 48, a correlator kernel module 50, a forecaster module 52 and an output module 54.
[069] The operation of these modules is described with respect to Figures 4 through 9 respectively. A data-responsive module 60 is provided that may compare process data to criteria such as alert threshold values or event profiles. Additionally, the data-responsive module 60 may display values, and may also register imputed values, forecast values and statistics and event profiles. An input metrics circuit 70 is synchronized by a clock circuit 72 to provide inputs to the processing unit 24 comprising signals received from the sensors. The clock circuit 72 also synchronizes provision of output metric values in the module 64 for each time slice. In traditional applications, a single processing unit 24 may be provided. However, for facilitating processing of data represented by large numbers of input values, e.g., entire video frames at a nominal repetition rate, it is desirable to provide for parallel, pipelined operation utilizing a plurality of processing units 24 as further described with respect to Figure 10.
[070] Figure 4 is a flowchart illustrating operation of the screener and kernel module 46. While the description of operation may be described from initial startup, the present description assumes that prior time slices have already occurred and that information is already present in the various registers. This is the typical situation. A routine that operates the screener feature module 44 will be referred to as a calling program 200. The calling program 200 starts at block 202, at which configuration programs are loaded. Configuration values include, for example, a number of dimensions (e.g., 1), a number of data inputs per dimension (e.g., 512), and a number of input metric values per data point. Where the input is total sound intensity, the number of input metrics per data point is set at one. Where a data point includes sound intensity at each of three frequencies, the number of input metrics per data point is set at three. Configuration values also include the number of screener features per data point, here set at four and the number of correlator features per data point, here set at four. At block 204, the calling program 200 allocates memory for inputs from the input metrics circuit 70.
[071] At block 206, the program 200 locates memory cells for the API metrics. In the present illustration, allocated API memory would include memory for 512 cell metric values and their 512 corresponding plausibility values. Plausibility value as used in this description is a number between zero and one used by a rapid learning system to control the weight of an input
measurement with respect to learning. In one preferred form, the calling program 200 allocates data locations for API 10 values for 512 cells, locations for 512 x 4 for feature output values and memory for 512 x 4 correlator output feature values. The program 200 enters into loop 208 in which updates and calculations may be performed. The loop 208 begins with block 210, and ends with block 216, which may return to the block 210.
[072] The block 210 provides the locally programmable option to modify the above-described API configuration of memory locations. At block 212, input values are loaded into the memory locations dedicated thereto, and the corresponding plausibility values are also loaded. The calling program 200, at block 214, calls the first processor program, further described with respect to Figure 5 below, which may comprise a set of deviation values between measured and predicted values. Following, at block 216, the system decides whether to return to block 210 to repeat the process or to proceed to a block 218 at which configuration values may be stored, after which at block'220, the routine stops. Criteria that may be employed at block 216 may include whether processing of data produced during each of a preselected number of time slices has been completed. Additionally, a utility library 224 may be accessed. The library 224 includes a broad variety of display and control functions for processing data to be furnished to the output metrics module 60 (Figure 3).
[073] Figure 5 is a flowchart illustrating programming and operation of the screener kernel module 46. A processing unit executive routine 240 begins at the block 242. At block 244, the processing unit executive routine 240 loads the API values accessed by the calling program 200. At block 246 the values may be organized for parallel processing in embodiments in which parallel processing is utilized. A significant factor in deciding whether to use parallel processing is the rate of arrival of new data and the period of each time slice. In a situation in which new data is arriving every 10 ns, and one processor required 75 ns to process data, then eight processors running in parallel would be needed to process data in real-time. It should be remembered that in the present context, real-time refers to processing without building up a backlog of sensor data. In the current illustration, a line of cells of 512 values is organized. Each parallel processor would process 64 cells. The processor routine would organize parallel processing by distributing sets of 64 input values and 64 plausibility values to corresponding processing modules.
[074] At block 246, parallel output metrics are collected. Block 248 calls one or more processing units described in further detail with respect to Figure 6. At block 252, free parallel outputs may be collected. At block 254, auto-adaptive learning memory (ALM) values are saved to a core file. At block 256, processing for a current time slice is completed, and the processing unit executive routine 240 returns to block 242 for processing during a next time slice.
[075] Figure 6 is a flowchart illustrating programming and operation of a processing unit subroutine 270 called at block 248 in Figure 5. The processing unit subroutine 270 begins with block 272, at which an operation performed in accordance with embodiments of the present invention and described in the present context as a window function is called. The window function is described in greater detail with respect to illustrations beginning with respect to Figure 13 below. The windowing feature selects data from nearest data locations in time and space for calculation of values. At block 274, the screener kernel function, further described with respect to Figure 7 below is called. At block 278, the correlator kernel function, described with respect to Figure 8 is called. At block 280 the forecaster function may be called and at block 282, a range of output values for a current time slice is tabulated. The subroutine 272 utilizes a utility library 284.
[076] When the screener kernel 274 is called, each feature input value for a given time slice is transformed into a deviance value. The deviance value comprises an input for the correlator feature function at block 276. When the correlator kernel 278 is called, the correlator kernel function 278 utilizes the window function to impute each current value as a function of a configurable number of nearest neighbor of values in time and space. This is explained in further detail beginning at the Figure 13 below. At block 278, a correlation matrix is provided to the forecaster.
[077] The forecaster function 280, when utilized, produces a forecast for each feature and each time slice, including any configurable number of future time slice forecasts. The forecaster function 280 may utilize prior art forecasting functions. While the forecasting functions are known, the forecasting output values are utilized in accordance with embodiments of the present invention to improve event recognition, including a values, deviance detection and deviance correction. Conventional correlation-based systems cannot distinguish underlining deviant values from apparent deviant values that are not in fact deviant. The present method can
uniquely discount such apparently deviant values by using previously generated forecasts and to identify those apparently deviant values that are close to their forecast values, and therefore most likely are not deviant. The output processor function 282 received deviance values from the screener kernel function 274 in the correlator kernel 276 along with all ports from the forecaster function 284 for utilization in accordance with embodiments of the present convention as further described below.
[078] Figure 7 is a flowchart illustrating the operation in programming of the screener kernel 274. At block 290, learning weights are updated. At block 292, deviance value estimation is performed, and an ALM updating is performed. At block 294, in accordance with embodiments of the present convention, the screener kernel function 274 provides output plausibility values for use in identifying deviant events. At block 298, downstream registers are updated. The functions at blocks 290 through 298 are separable and may be performed in parallel.
[079] Figure 8 is a flowchart illustrating the operation and programming of the correlator kernel 278. At block 310, imputing weights are calculated based on most recently updated correlator learned parameters. At block 312, deviance values are estimated by use of the correlator kernel 278. At block 314, output plausibility values are set utilizing the correlator kernel 278. At block 318, the ALM values are updated, and at block 320, downstream registers are updated.
[080] Figure 9 is a flow chart illustrating the operation and programming of the output processor 282. At each time slice, the output processor routine 282 calls an alert processor routine 330 which provides values to the alert module 150. The alert processor module 330 utilizes deviance and plausibility values provided to it from the screener kernel module 46 and the correlator kernel 50. The alert processor routine 330 employs an easily programmable window function. The window function selects an estimation set, described with respect to Figures 13-17 below, for processing. The display processor routine 332 operates in a similar matter to produce outputs for 29 graphical displays. A global imputer routine 334 operates similarly to the alert processor routine 330 to produce imputed metrics. The imputer routine 334 utilizes plausibility values based on previously obtained input metrics from the data gathering routine 210 (Figure 4). A forecaster routine 336 produces excessive outputs. A statistical report processor 45 and the event longer routine 340 produced current results and overwrite prior results.
[081] Figure 10 is a flowchart illustrating parallel operation of the processor module of Figure 5. During each time slice, the processing unit executive routine 240 provides the parallel processing module 246 (Figure 5) with API values 350. At block 352, the parallel organizer 246 provides API input values including configuration parameters and input measured values along with auto-adaptive learning memory values. In block 352, values are distributed to separate processing modules. For example, the first 64 input values and their corresponding plausibility values would be supplied to module 272 - 1. Successive groups of 64 output values and corresponding plausibility values would be supplied to modules 2722 through 272n. In this manner, output values for an entire line are collected and at step 354 are combined and provided as collected parallel outputs and for the API at block 250. The parallel collected output processor output values 250 are received at an output 358 (Figure 5). Consequently, operation of the multiple processing units is enabled.
[082] Referring again to Figure 3, operation of the processing unit 24 is described. Output signals produced during each of the number of time slices are used during a current time slice, which will be referred to as tθ. The outputs being utilized during time to are illustrated in Figure 11 , which is a chart illustrating the signals used by each of the modules 44 - 60 during the time slice t0. The processing unit 24 receives the values collected during step 352 (Figure 10). When the input measured time slices arrive sufficiently slowly so that the processing unit 24 keep up with successive inputs, the modules 44-60 could operate sequentially. Alternatively, the processing unit 24 could sense a higher data input rate as follows. At the beginning of a time slice to, the screener feature module 44 would convert input metrics 352 (Figure 10) for the time slice tO into outputs of the screener feature module 44 when it sends the values into the buffer 86 for later downstream processing. Meanwhile, the screener kernel module 46 has transformed feature values from time slice t-1 based on the input metrics received in time slice t-1 into deviance values and placed the values into buffer 96 for later downstream processing.
[083] The correlator feature module 48 provides outputs to the buffer 106. Similarly, the correlator control module 50 provides calculated outputs based on deviance values previously computed by the screener kernel module 46 at time slice t-1 and based on input metrics received in time slice t-3 into deviance values to the buffer 116. Meanwhile, the forecaster module 52 would use output values that were previously updated by the correlator kernel module 50 at time
slice t-1. Based on input metrics received at time slice t-4, forecast values for time slice t-3 were produced. Optionally, additional values may be produced utilizing more time slices into the future relative to time slice t-4 and placed into the forecaster module buffer 126. Concurrently, the output module 54 would transform input values received from time slice t-5 along with output deviants and plausibility values from the screener kernel module 46 corresponding to input values received from the time slice t-5 that were completed during time slice t-4. Further, the correlator kernel output 50 input receives deviance and plausibility values corresponding to input values received at time slice t-5 that were computed during time slice t-2, and provides various output values and stores them in register 136, the future updating output metrics 358 (Figure 10), alerts 150, displays 152, imputed values 154 and the statistics registers 158.
[084] Figure 12 is an illustration of a parallel, pipelined configuration for the processor 40. A group of processors 272 may be connected in parallel. Further, a plurality of such groups may be connected in series to comprise a pipeline. Daisy wheel registers, each of which can be quickly updated at the end of each time slice, may be used to embody the registers 80, 90, 100, 110, 120 and 130 (Figure 3) when used in conjunction with buffered pipelining. By providing for parallel processing, output metrics may be produced just as quickly with one set of register hardware as with the alternative of having six distinct sets of register hardware operating in a sequential fashion. One sixth of the hardware also requires 1/6 of the logic code to be programmed.
[085] Figures 13 through 17 are each a chart useful in understanding processing data sets having various numbers of temporal and spatial dimensions. Embodiments of the present invention utilize a form of "nearest neighbor" processing to impute expected values for particular cells. As further explained below, the processor 40 utilizes a Markov chain. A Markov chain embodies a model of sequences of events where the likelihood of an event depends only on a preceding event or a nearest neighbor event. In prediction and simulation, the principle of the Markov chain is applied to the selection of samples from a probability density function to be applied to the model. The "windowing" function described above refers to the selection of adjacent cells within selected dimensions to be processed together. By utilizing the Markov chain, reliable estimations may be made for imputed values, and the complexity, expense and time required to generate an inverse of a covariant matrix may be greatly reduced.
[086] In each of the illustrations of Figures 13 - 17, a hypothetical situation is selected in which the sets of data describing different sorts of environments are defined. In each illustration, the environment is characterized by a number of temporal and spatial dimensions. In each case, an imputed value calculated during a current time period tO will be described as a dependent value indicated by space D. The dependent value D is calculated as a function of independent values, indicated in each matrix location as I. The independent values I are values that are taken as having been established with respect to the cell currently being computed. Generally the independent values I will have been established for either successive time periods or successive locations. Another class of independent values I is referred to as F. These values are "frame" values. They are described separately since they are in cells which do not have an adjacent location on at least one side of the cell. In each of the illustrations below, the dependent value is calculated in terms of values obtained from two prior time slices, labeled t-2 and t-1, which are the two successive time slices preceding time tO. In each case, values are entered in a matrix wherein rows correspond to time slices t-2, t-1 and tO respectively.
[087] Each column corresponds to a location. For example, in Figure 13, eight locations, labeled 0 through 7 are provided. In the illustrations of Figures 14 - 17, sixteen spatial locations are provided. The outer locations are labeled F and F, respectively corresponding to left and right frame cells respectively. In practice, the outer locations could be at left and right horizontal ends of a space. However, left and right are used here only to denote first and last locations. Other spatial relationships or non-spatial relationships could be represented. The locations between the outer frames F and F are labeled 0 through 13. In one form, frame values may be set to zero. Providing frame values allows the windowing function to select the number of "nearest neighbors" in each estimation set even when a value does not have a nearest neighbor.
[088] In operation of embodiments of the present invention, a "windowing" function selects an appropriate set of I values from a data array to comprise a correlation matrix used to impute a D value. This set is a function of the estimation algorithm. The data array referred to here is data responded to by a system. In one preferred form, the data array is a record organized by sensors producing outputs for data points, attributes per data point and time slices. Attributes per data point may include values for each of the different features, values in each of a plurality of dimensions or other known forms of measurement. For purposes of the present description, this
set is called an estimation set. As further described below, the members of an estimation set are a function of the number of attributes of a data point and the number of time slices utilized.
[089] In one preferred from, the estimation set comprises a set of nearest neighbor values in each of N dimensions, where N is a non-negative integer. Dimensions may be spatial or temporal. More than three spatial dimensions or one temporal dimension may be utilized to characterize a data point. Indeed, in some cosmological models, there may be dozens of spatial dimensions. Where a value is measured over time, M sets of values, one from each of M successive time slots, are utilized. Commonly, M is selected to be three, representing the time slots t-2, t-1 and t. Other values may be selected. However, M=3 has been found to be a useful optimization of complexity of processing versus precision of result. Additionally, in accordance with embodiments of a preferred form of the present invention, it has been found that it may be assumed that correlations for sets including F and F may be used in the same manner as sets in the center of a data array.
[090] Figure 13 is representative of measurement of a value versus time but without spatial dimensions. There are eight features describing a given cell. Here, a cell is a row of data. The parameter indicated by the data in each location comprises a value that is not related to an adjacent value. In this case, in each of the columns 0 through 7, the current value at time t0 is a function of the two preceding values respectively at times t- 2 and t-1 respectively.
[091] Figure 14 represents data for a situation in which one spatial dimension is measured with respect to time. Figure 4 may be used to represent the above-described side scan sonar application. A "window" comprising data from the three time periods of interest and the independent values surrounding a current location to be computed is selected. The window has a number of columns and rows that correspond to the estimation set. In the present illustration, each "window" will comprise the estimation set. The window will be indexed across the data matrix one step at a time so that current estimation sets are accessed and imputed values D can be calculated. The first window will include locations to F, 0 and 1. In Figure 14, light shading indicates these. Successive "windows," or estimation sets, such as 0-1-2, 2-3-4, etc. will be selected in sequence. In Figure 14, a middle window cell comprising locations 5-6-7 is illustrated. Indexing proceeds through the end of the dimension up to the last window cells, which in the present illustration are cells 12, 13 and F.
[092] Figure 15 illustrates a tabulation of data obtained for parameters in one spatial dimension at a given time. The rows represent space slices rather than time slices, and the columns indicate locations within each dimension. The dependent value to be imputed is calculated in terms of the preselected number of surrounding locations. In the present illustration, the estimation set consists of eight surrounding locations. These locations are the surrounding columns indicative of locations, and the two preceding rows indicative of measurements in successive dimensions.
[093] Figure 16 consists of Figures 16a, 16b and 16c. The parameters measured in this illustration include one feature per cell. Each parameter is time variant and has two spatial dimensions. The estimation set includes values in two preceding time slices and in surrounding locations represented by adjacent columns. Additionally, as in Figure 15, values and surrounding dimensions are used to calculate the imputed value. Figures 16a, 16b and 16c respectively represent data matrices for time slices t-2, t-1 and t0 respectively. Each independent value sub-matrix comprises 15 boxes. The dependent value D needs to be located between both preceding and succeeding dimensional rows.
[094] Figure 17 consists of Figures 17a — 17i. In this illustration, there is one feature per cell having three spatial dimensions. Three window slices representing values produced during time slices t-2, t-1 and tθ, respectively. Values for a third dimension are based on measurements in two other dimensions. Figures 17a, 17b and 17c respectively represent initial values at the locations F, zero and 1. In these matrices, a full set of surrounding locations is not available. Full value matrices are illustrated in Figures 17d through 17i. An illustrative calculation is illustrated with respect to Figures 17d, 17e and 17f. As in the case of Figure 16, rows surrounding the dependent value D are included in the value matrix. Additionally, the matrices surrounding the dependent value in the third dimension may also be included. Imputed values may thus be calculated for the point in a three-dimensional space.
[095] Figure 18 is a block diagram of a processing unit interacting with an application program interface and sensors. Figure 18 is a block diagram similar to Figure 2 illustrating and electronics package 20 and sensor 30 interacting with a processing package 424. The processing package 424 has input data and output data coupled via an API 430 to a process simulator 436. A sensor control unit 440 may be coupled between the process simulator 436 and the sensor 30. The sensor control circuit 440 may adjust values for black-and-white levels, contrast and filtering
functions. Additionally, a telemetry control circuit 450 may be coupled between the process simulator 436 and the transmitter 26. In one embodiment, the telemetry control 450 responds to the output matrix unit (Figure 3) to transmit or reject selected output data.
[096] Figure 19, consisting of Figure 19a and Figure 19b represents a nominal set of input information from a video camera and processed data from which clutter has been removed. Figure 19a represents a nominal display of raw data illustrating amplitude versus wavelength of detecting video signals on an arbitrary scale. Figure 19b represents output data as processed by the processing unit 424. Commonly, the processing routines performed by the processing unit 424 reject meaningless returns and provide out put information with minimal or no "false positive" output signals.
[097] Figure 20 is a block diagram illustrating a system utilizing a plurality of processing units 524, 524-1, 524-2, ... 524-n. Each processing unit 524 is configured differently so that efficacy of various settings may be compared. Each processing unit 524 may perform the same function, but with different settings. Periodically, for example, weekly, a comparison circuit 540 measures the relative success of each processing unit 524 in terms of a preselected criterion. For example, the preselected criterion may be smallest mean squared the deviation between actual and imputed values during the monitoring time. The most successful group of settings may be selected for processing data during a next time period. This operation may be described as convergent data fusion in that convergence of actual and imputed values may be minimized.
[098] The present embodiments provide for separate parallel operation of calculation models. Consequently, adaptive processing may be utilized for tasks that were previously considered to be intractable in real time on hardware of the type used in low powered, portable processors. The option of modular pipelined operation simplifies programming; design and packaging, and allows for use of FPGAs in place of high-powered processors. Learned parameter usage, based on assuming that the same estimation functions and learned parameter values can be used to produce the estimates that in turn, allow unexpected events to be detected more simply. Field programmable windowed functionality can be applied to many applications by programming the data matrix to be selected by a "windowing" function. Auto-adaptive learning memory may be distributed over pipelined processing modules.
[099] The present subject matter being thus described, it will be apparent that the same may be modified or varied in many ways. Such modifications and variations are not to be regarded as a departure from the spirit and scope of the present subject matter, and all such modifications are intended to be included within the scope of the following claims.
Claims
1. A method of forecasting feature values in future time slices for a cell of a data array, comprising: generating a plurality of data cells for each time slice of a succession of time slices; defining a number of feature values for each data cell; defining a number of forecasts for each feature value; establishing a current time slice; and for each forecast: specifying in relation to the current time slice a future time slice for which the forecast is to be computed; defining at least one dependent data cell in the future time slice; and for each dependent data cell: defining an estimation set including a predetermined number of nearest neighbor cells in the current time slice surrounding in at least one spatial dimension a data cell corresponding to the at least one dependent data cell in the future time slice; generating learned parameters for the estimation set based on information stored in the cells of the estimation set; updating each learned parameter; computing a forecasting weight corresponding to the estimation set based on the learned parameters; and forecasting a feature value in the future time slice as a function of the feature value associated with the estimation set and its corresponding forecasting weight.
2. The method of claim 1, further comprising specifying in relation to the current time slice one or more past time slices.
3. The method of claim 2, where in the estimation set further includes data cells in at least one past slice that correspond with the nearest neighbor cells in the current time slice.
4. The method of claim 1, further comprising storing each forecast value.
5. The method of claim 1, wherein the future time slices and the past time slices are noncontiguous.
6. A method of converting deviance values for display in an auto-adaptive system, comprising: receiving input values in consecutive time slices from each of a plurality of sensors; determining estimated values for each input value from current and prior input values, using learned parameters; comparing each estimated value with its corresponding actual input value to generate a deviance value for each estimated value; mapping the magnitudes of the deviance values onto a two-dimensional grid as independent values ranging from a predetermined positive first value to a predetermined positive second value, the second value greater that the first value; and establishing a display indicator as a dependent value.
7. The method according to claim 6, wherein said display indicator includes a spectrum of colors.
8. The method according to claim 7, further comprising selecting the spectrum of colors according to a monotonically increasing function of wavelength versus deviance magnitude.
9. A method of generating an auto-adaptive function to estimate feature values for a cell of a data array, comprising: providing a plurality of stages, each stage for calculating one or more component functions, including functions to: receive a plurality of data cells for each time slice of a succession of time slices, specify a current time slice in the succession for which to estimate respective feature values, specify a number of estimations for each feature value, define a set of time slices in the plurality of time slices for use in each estimation of a feature value, specify a data cell in the current time slice for which to estimate a feature value, define a window of nearest neighbor data cells in one or more dimensions, determine the estimate of the feature value as a function of the window, and compare the estimate of the feature value to its actual value to determine a magnitude of deviance; selecting stages for feature value generation; and generating feature values using the selected stages.
10. The method according to claim 9, further comprising operating the selected stages consecutively.
11. The method according to claim 10, further comprising selecting an order in which the selected stages operate.
12. A method of interpolating transmitted images, the method comprising: receiving a plurality of data cells for each time slice of a succession of time slices, wherein each data cell is situated at a corresponding data location in each time slice, and wherein at least one feature value is associated with each data cell; defining an estimation set in at least one spatial dimension for a dependent data location in a current time slice, wherein the estimation set includes: the dependent data location and a predefined number of nearest neighbor locations surrounding the dependent data location in the at least one spatial dimension in the current time slice; and wherein the feature values associated with the plurality of data cells for the current time slice characterize a first image; generating a set of learned parameters based on the estimation set; updating each learned parameter; and transmitting the learned parameters with every nth image.
13. The method according to claim 12, wherein the estimation set includes the data locations in at least one past time slice which correspond with the dependent data location and the nearest neighbor locations in the current time slice.
14. The method according to claim 12, further comprising applying the transmitted learned parameters to interpolate between successive nth images received at a receiving station.
15. A method of interpolating a transmitted data window, the method comprising: receiving a plurality of data cells for each time slice of a succession of time slices, wherein each data cell is situated at a corresponding data location in each time slice, and wherein at least one feature value is associated with each data cell; defining an estimation set for a dependent data location in a current time slice based on a data window in at least one spatial dimension, wherein the data window includes the dependent data location and a predefined number of nearest neighbor locations surrounding the dependent data location in the at least one spatial dimension in the current time slice; generating a set of learned parameters based on the estimation set; updating each learned parameter; and transmitting the learned parameters with every nth time slice.
16. The method of claim 15, wherein the estimation set includes the data window in the current time slice and the data locations in at least one past time slice which correspond with the data window in the current time slice.
17. The method according to claim 15, further comprising applying the transmitted learned parameters to interpolate a data window between successive nth time slices received at a receiving station.
18. The method according to claims 12 or 15, further comprising: computing a forecasting weight based on a learned parameter; and forecasting a feature value of the dependent data location n slices using the forecasting weight.
19. The method according to claims 1, 6, 12, or 15, wherein the learned parameters include mean value sum of squares cross product (MVSCP) matrix values and MVSCP inverse matrix values.
20. The method according to claim 19, wherein updating only one MVSCP matrix is required per time slice.
21. The method according to claims 1, 6, 12, or 15, wherein the learned parameters include MVSCP inverse matrix values.
22. The method according to claim 21, wherein updating only one MVSCP matrix inverse is required per time slice.
23. The method according to claims 1, 6, 12, or 15, wherein the learned parameters include covariance matrix values.
24. The method according to claims 1, 6, 12, or 15, wherein the learned parameters include covariance matrix inverse values.
25. The method according to claims 1, 6, 12, or 15, wherein the learned parameters include mean squared deviation (MSD) values.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/064276 WO2009142628A1 (en) | 2008-05-20 | 2008-05-20 | Auto-adaptive network |
EP08755988A EP2283615A1 (en) | 2008-05-20 | 2008-05-20 | Auto-adaptive network |
CA2724979A CA2724979A1 (en) | 2008-05-20 | 2008-05-20 | Auto-adaptive network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/064276 WO2009142628A1 (en) | 2008-05-20 | 2008-05-20 | Auto-adaptive network |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009142628A1 true WO2009142628A1 (en) | 2009-11-26 |
Family
ID=41340394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2008/064276 WO2009142628A1 (en) | 2008-05-20 | 2008-05-20 | Auto-adaptive network |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2283615A1 (en) |
CA (1) | CA2724979A1 (en) |
WO (1) | WO2009142628A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838415B2 (en) | 2017-09-01 | 2020-11-17 | Qualcomm Incorporated | Systems and methods for automatically customizing operation of a robotic vehicle |
US20220283851A1 (en) * | 2021-03-03 | 2022-09-08 | Samsung Electronics Co., Ltd. | Electronic device including accelerators of heterogeneous hardware types |
CN117350517A (en) * | 2023-12-04 | 2024-01-05 | 山东德瑞高分子材料股份有限公司 | Control method, system, equipment and storage medium for chemical production flow |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03150916A (en) * | 1989-11-07 | 1991-06-27 | Casio Comput Co Ltd | Interpolation device |
JPH06222809A (en) * | 1993-01-26 | 1994-08-12 | Toshiba Corp | Adaptive controller |
US5966178A (en) * | 1997-06-05 | 1999-10-12 | Fujitsu Limited | Image processing apparatus with interframe interpolation capabilities |
US20060074741A1 (en) * | 2004-04-26 | 2006-04-06 | Kim Orumchian | Operating plan data aggregation system with real-time updates |
US20080097802A1 (en) * | 2005-02-07 | 2008-04-24 | British Telecommunications Public Limited Company | Time-Series Forecasting |
-
2008
- 2008-05-20 CA CA2724979A patent/CA2724979A1/en not_active Abandoned
- 2008-05-20 WO PCT/US2008/064276 patent/WO2009142628A1/en active Application Filing
- 2008-05-20 EP EP08755988A patent/EP2283615A1/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03150916A (en) * | 1989-11-07 | 1991-06-27 | Casio Comput Co Ltd | Interpolation device |
JPH06222809A (en) * | 1993-01-26 | 1994-08-12 | Toshiba Corp | Adaptive controller |
US5966178A (en) * | 1997-06-05 | 1999-10-12 | Fujitsu Limited | Image processing apparatus with interframe interpolation capabilities |
US20060074741A1 (en) * | 2004-04-26 | 2006-04-06 | Kim Orumchian | Operating plan data aggregation system with real-time updates |
US20080097802A1 (en) * | 2005-02-07 | 2008-04-24 | British Telecommunications Public Limited Company | Time-Series Forecasting |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838415B2 (en) | 2017-09-01 | 2020-11-17 | Qualcomm Incorporated | Systems and methods for automatically customizing operation of a robotic vehicle |
US11531336B2 (en) | 2017-09-01 | 2022-12-20 | Qualcomm Incorporated | Systems and methods for automatically customizing operation of a robotic vehicle |
US20220283851A1 (en) * | 2021-03-03 | 2022-09-08 | Samsung Electronics Co., Ltd. | Electronic device including accelerators of heterogeneous hardware types |
CN117350517A (en) * | 2023-12-04 | 2024-01-05 | 山东德瑞高分子材料股份有限公司 | Control method, system, equipment and storage medium for chemical production flow |
CN117350517B (en) * | 2023-12-04 | 2024-03-29 | 山东德瑞高分子材料股份有限公司 | Control method, system, equipment and storage medium for chemical production flow |
Also Published As
Publication number | Publication date |
---|---|
CA2724979A1 (en) | 2009-11-26 |
EP2283615A1 (en) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7529721B2 (en) | Efficient processing in an auto-adaptive network | |
US7877337B2 (en) | Auto-adaptive network for sensor data processing and forecasting | |
CN107992938B (en) | Space-time big data prediction technique and system based on positive and negative convolutional neural networks | |
CN114021811B (en) | Traffic prediction method based on attention improvement and computer medium | |
CN113988357B (en) | Advanced learning-based high-rise building wind induced response prediction method and device | |
CN112561199A (en) | Weather parameter prediction model training method, weather parameter prediction method and device | |
CN115065992A (en) | Edge calculation-based cooperative sensing and resource allocation method | |
US8229879B2 (en) | System and method for auto-adaptive network | |
KR102211847B1 (en) | System and method for path loss exponent prediction | |
EP2283615A1 (en) | Auto-adaptive network | |
Crispim et al. | Prediction of the solar radiation evolution using computational intelligence techniques and cloudiness indices | |
US20110270578A1 (en) | Method and device for operating a system with distributed sensors | |
CN116912483A (en) | Target detection method, electronic device and storage medium | |
CN116758349A (en) | Hyperspectral image classification method based on multi-scale super-pixel node aggregate graph convolution residual network | |
US7130805B2 (en) | Method and apparatus for generating progressive queries and models for decision support | |
CN115510767A (en) | Regional air temperature prediction method based on deep space-time network | |
CN115345207A (en) | Self-adaptive multi-meteorological-element prediction method | |
WO2018235777A1 (en) | Image data processing device, plant cultivation system, and image data processing method | |
CN114912354A (en) | Method, device and medium for predicting mosquito-borne infectious disease risk | |
CN114283373A (en) | Crowd situation acquisition method, device, storage medium and system | |
KR20230072793A (en) | Service providing apparatus and method for prediction of fine dust and ultrafine dust | |
CN113485438A (en) | Intelligent planning method and system for space monitoring path of unmanned aerial vehicle | |
CN117113077B (en) | Target sequence determining method, device, electronic equipment and storage medium | |
CN112770257B (en) | Intelligent positioning method for mobile sensor node in Internet of things | |
CN114997228A (en) | Action detection method and device based on artificial intelligence, computer equipment and medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08755988 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2724979 Country of ref document: CA |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008755988 Country of ref document: EP |