The state or condition of a system may be evaluated by comparing a set of selected parameter values, converted into a trial vector, with a number of model or exemplar vectors, each of which was represents a particular state or condition of a sample system. Examples of such conditions may include “good”, “marginal”, “unacceptable”, “worn”, “defective”, or other general or specific conditions. Sets of parameter values from the system are converted into input vectors. Unprocessed vectors are then processed against the input vectors in an artificial neural network to generate the exemplar vectors. The exemplar vectors are stored in a memory of an operational system. During operation of the system, the trial vector is compared with the exemplar vectors. The exemplar vector which is closest to the trial vector represents a state which most closely represents the current state of the system. Thus, a high similarity between the trial vector and an exemplar vector which represent a “good” system is likely to have come from a “good” system.
|
27. A method for creating exemplar vectors representative of potential states of a system, comprising:
initializing a plurality j of n-tuple unprocessed exemplar vectors with random values;
globally conditioning the j unprocessed exemplar vectors;
separating the conditioned exemplars; and
consolidating the separated exemplar vectors.
20. A model for indicating a current state of a system, comprising:
plurality j of n-tuple exemplar vectors stored in a system memory and representative of potential states of a system;
inputs for receiving n current parameter values from a system; and
a routine stored in the memory and adapted to be implemented on a system processor to generate a trial vector from the n parameter values, compare the trial vector with each of the exemplar vectors and output an indication of a current state of the system based on the exemplar vector closest to the trial vector.
1. A method for detecting a state of a system, comprising:
generating a plurality j of n-tuple exemplar vectors representative of potential states of a system;
operating the system;
generating an n-tuple trial vector from n parameters representing an actual state of the system;
of the j exemplar vectors, identifying an exemplar vector k which is closest to the trial vector, the distance from the trial vector to the identified exemplar vector k being an activation value;
whereby, if the activation value is less than a first predetermined value, the actual state of the system is characterized by the exemplar vector k.
10. A method for detecting a state of a system, comprising:
operating the system;
generating an n-tuple trial vector from n parameters representing an actual state of the system;
retrieving a plurality of n-tuple exemplar vectors from a system memory, each exemplar vector representing a potential state of the system; and
of the j exemplar vectors, identifying an exemplar vector k which is closest to the trial vector, the distance from the trial vector to the identified exemplar vector k being an activation value;
whereby, if the activation value is less than a first predetermined value, the actual state of the system is characterized by the exemplar vector k.
32. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for detecting a state of a system, the computer-readable code comprising instructions for:
operating the system;
generating an n-tuple trial vector from n parameters representing an actual state of the system;
retrieving a plurality of n-tuple exemplar vectors from a system memory, each exemplar vector representing a potential state of the system; and
of the j exemplar vectors, identifying an exemplar vector k which is closest to the trial vector, the distance from the trial vector to the identified exemplar vector k being an activation value;
whereby, if the activation value is less than a first predetermined value, the actual state of the system is characterized by the exemplar vector k.
15. An apparatus for detecting a condition of a system, comprising:
a memory operable to store a plurality j of n-tuple exemplar vectors representative of potential states of a system;
the memory further operable to store a first predetermined value;
an input coupled to receive a plurality n of current parameter values from the system;
means for generating an n-tuple trial vector from the n parameter values;
a processor operable to determine a distance between the trial vector and each exemplar vector;
the processor further operable to identify an exemplar vector k which is the least distance to the trial vector, the least distance comprising an activation value; and
a comparator operable to compare the activation value with the first predetermined value, whereby if the activation value is less than the first predetermined value, the current state of the system is characterized by the exemplar vector k.
2. The method of
initializing a plurality j of n-tuple unprocessed exemplar vectors with random values;
globally conditioning the j unprocessed exemplar vectors;
separating the conditioned exemplars; and
consolidating the separated exemplar vectors.
3. The method of
sequentially applying a plurality M of input vectors to the j unprocessed exemplar vectors;
updating the j unprocessed exemplar vectors by a factor of α1; and
repeating the applying and updating steps over a predetermined number e1 of epochs.
4. The method of
sequentially applying the plurality M of input vectors to the j conditioned exemplar vectors;
of the j conditioned exemplar vectors, selecting the conditioned exemplar vector which is closest to the currently applied input vector;
updating the selected conditioned exemplar vector and a predetermined number of adjoining conditioned exemplar vectors by a factor of α2; and
repeating the applying, selecting and updating steps over a predetermined number e2 of epochs.
5. The method of
sequentially applying the plurality M of input vectors to the j separated exemplar vectors;
of the j separated exemplar vectors, selecting the separated exemplar vector which is closest to the currently applied input vector;
updating the selected conditioned exemplar vector by a factor of α3; and
repeating the applying, selecting and updating steps over a predetermined number e3 of epochs.
6. The method of
7. The method of
8. The method of
9. The method of
if the activation value is less than a second predetermined value, the second predetermined value being less than the first predetermined value, logging the activation value;
if the activation value is greater than the second predetermined value, initiating a system calibration; and
if the activation value is greater than a third predetermined value, the third predetermined value being greater than the second predetermined value and less than the first predetermined value, setting an alarm.
11. The method of
12. The method of
13. The method of
14. The method of
if the activation value is less than a second predetermined value, the second predetermined value being less than the first predetermined value, logging the activation value;
if the activation value is greater than the second predetermined value, initiating a system calibration; and
if the activation value is greater than a third predetermined value, the third predetermined value being greater than the second predetermined value and less than the first predetermined value, setting an alarm.
16. The apparatus of
17. The apparatus of
18. The apparatus of
19. The apparatus of
compare the activation value with a second predetermined value, the second predetermined value being less than the first predetermined value, and if the activation value is less than the second predetermined value, log the activation value and if the activation value is greater than the second predetermined value, initiate a system calibration; and
compare the activation value with a third predetermined value, the third predetermined value being greater than the second predetermined value and less than the first predetermined value, and if the activation value is greater than the third predetermined value, set an alarm.
21. The model of
22. The model of
23. The model of
24. The model of
log the activation value if the activation value is less than a second predetermined value, the second predetermined value being less than the first predetermined value;
initiate a system calibration if the activation value is greater than the second predetermined value; and
set an alarm if the activation value is greater than a third predetermined value, the third predetermined value being greater than the second predetermined value and less than the first predetermined value.
25. The model of
26. The model of
28. The method of
sequentially applying a plurality M of input vectors to the j unprocessed exemplar vectors;
updating the j unprocessed exemplar vectors by a factor of α1; and
repeating the applying and updating steps over a predetermined number e1 of epochs.
29. The method of
sequentially applying the plurality M of input vectors to the j conditioned exemplar vectors;
of the j conditioned exemplar vectors, selecting the conditioned exemplar vector which is closest to the currently applied input vector;
updating the selected conditioned exemplar vector and a predetermined number of adjoining conditioned exemplar vectors by a factor of α2; and
repeating the applying, selecting and updating steps over a predetermined number e2 of epochs.
30. The method of
sequentially applying the plurality M of input vectors to the j separated exemplar vectors;
of the j separated exemplar vectors, selecting the separated exemplar vector which is closest to the currently applied input vector;
updating the selected conditioned exemplar vector by a factor of α3; and
repeating the applying, selecting and updating steps over a predetermined number e3 of epochs.
31. The method of
33. The computer program product of
34. The computer program product of
35. The computer program product of
36. The computer program product of
logging the activation value if the activation value is less than a second predetermined value, the second predetermined value being less than the first predetermined value;
initiating a system calibration if the activation value is greater than the second predetermined value; and
setting an alarm if the activation value is greater than a third predetermined value, the third predetermined value being greater than the second predetermined value and less than the first predetermined value.
|
The present invention is related to commonly assigned and co-pending U.S. application Ser. No. 10/947,692, entitled IDENTIFYING A STATE OF A DATA STORAGE DRIVE USING AN ARTIFICIAL NEURAL NETWORK GENERATED MODEL, filed on the filing date hereof, which application is incorporated herein by reference in its entirety.
The present invention relates generally to system diagnostics and, in particular, using an artificial neural network to generate a model representing one or more possible states of a system and comparing an actual state of the system to the model.
Numerous types of systems include automated processes to generate one or more parameters which may be used to evaluate the current state of the system. The automated process may also be used to improve system performance or even repair certain defects or faults. For example, a data storage drive, such as a tape drive, may include an adaptive equalizer with many finite impulse response (FIR) taps whose input coefficients are automatically modified to optimize system performance.
However, it may be difficult to assess the quality of the result of an automated process because of obscure relationships between the measured parameters and the system response. It will be appreciated that if the integrity of the parameter values is not verified, there is a risk that the automated process produces an undesirable system response. Thus, not only might the process fail to improve performance but, if the parameter values are undetectably invalid, may also cause the system to fail completely.
For example, in an adaptive equalizer of a tape drive, FIR tap values are computed from information captured from the storage drive. If the information is corrupted, or if execution of the algorithm which is used to compute the tap values is corrupted, the FIR tap values will be invalid. More specifically, a media defect or servo error may corrupt the captured information. Similarly, an overflow or underflow may occur during the execution of the FIR tap algorithm, resulting in tap values which bear no relation to the proper results. Or, rather than the captured information being invalid, the information may result in the creation of tap values which are outside the range of values which can be handled by the equalizer. In each of these circumstances, the invalid or improper condition of the tap values may be undetected.
Consequently, there remains a need for an automated process which provides an assessment of the quality of parameter values which are used to adjust the system.
The present invention provides an assessment the state or condition of a system. Examples of such conditions may include “good”, “marginal”, “unacceptable”, “worn”, “defective”, or other general or specific conditions, depending on the specific system being evaluated and the desired specificity of the evaluation.
Sets of n parameter values each from a model system are converted into n-tuple input vectors. Unprocessed n-tuple vectors are then processed against the input vectors in an artificial neural network (“ANN”) to generate a set of n-tuple exemplar vectors. The ANN preferably includes three stages, a global conditioning stage, a vector separation stage and a vector consolidation stage, to fine tune the creation of the exemplar vectors. Each exemplar vector will thereby represent a particular potential state or condition of the system. The exemplar vectors are stored in a memory of an operational system to be evaluated.
During operation of the system, a set of n selected parameter values are converted into an n-tuple trial vector. The trial vector is compared with the exemplar vectors. The exemplar vector which is closest, measured by the distance between the two, to the trial vector represents a state which most closely represents the current or actual state of the system. Thus, a high similarity between the trial vector and an exemplar vector which represent a “good” system is likely to have come from a “good” system. Conversely, a high similarity between the trial vector and an exemplar vector which represent an “unacceptable” system is likely to have come from a “unacceptable” system.
Optionally, the presence of predetermined states may be flagged or logged for follow-up attention. Additionally, if the distance between the trial vector and the closest exemplar vector is greater than a predetermined distance, the current state of the system may be a previously unknown state and the trial vector may subsequently be analyzed and used as another exemplar vector. Alternatively, such a situation may indicate that the parameters underlying the trial vector are invalid, thereby triggering a flag for immediate attention.
Overview
The first section 110 receives one or more sets 112 of parameters in a module 114, each set 112 representing a potential state of the system. Such states may be as general as “good”, “marginal”, “unacceptable” and “defective”. Alternatively, the states may be as specific as “worn”, “low tape tension”, “excess media speed”, etc. The module 114 converts the parameter sets 112 into vectors 116 which are input into an artificial neural network (“ANN”) 118. Also input into the ANN 118 are one or more unprocessed vectors 120. the ANN 118 processes the unprocessed vectors 120 and outputs a like number of exemplar vectors 122.
The second section 130, implemented in the system to be evaluated, receives one or more parameters 132 in a module 134 while the system is in operation, the parameters 132 representing the current state of the system. The module 134 converts the parameters 132 into a trial vector 136 which is input into a calculator 138 along with the exemplar vectors 122. The calculator 138 determines which exemplar vector has the least distance to the trial vector and how close the trial vector 136 is to that “closest” exemplar vector 122. This minimum distance 140 may be compared in a comparator 142 to a predetermined value. If the minimum distance 140 is less than the value, the parameters 132 from which the trial vector was created may be deemed to be valid and the closest exemplar vector 122 may be deemed to be a reasonable representative of the current state of the system. Thus, the general condition of the system may be determined to be “good”, “marginal”, “unacceptable” or “defective” or certain problems may be specifically identified. By contrast, if the minimum distance 140 is greater than the value, the parameters 132 from which the trial vector was created may be deemed to be invalid (or represent a condition not yet experienced in the system). In either event, an appropriate indicator 144 may be generated and logged or flagged for maintenance or a warning.
Exemplar Vector Creation
Depending upon the particular system to be evaluated, not all of the available parameters may be necessary to obtain a satisfactory evaluation. For example, of the 17 tap coefficients in the exemplary equalizer, only three or four may be sufficient to represent the system states of interest. Consequently, the three or four (or some other number) of the most significant parameters may be selected 204 for further processing resulting in a more manageable sparse representation of the system parameters. Computations and analysis are simplified with only an insignificant reduction in accuracy. The selected parameters are preferably those which have the greatest effect on system response. In such a manner, q parameter values in each of M parameter sets which have been recorded and stored in the database 202 may be reduced to n parameter values in the optional parameter selection 204 module.
In some systems, there may be some ambiguity associated with the parameters, thereby obscuring the relationship between the parameter values and the physical “world” which is to be affected. For example, it may be difficult to determine what is happening within the equalizer merely by looking at FIR tap coefficient values because the tap values are a time domain representation of the frequency domain result. Thus, it may be desirable to convert the values from the time domain to the more recognizable state of the frequency domain, such as by using a Discrete Fourier Transform. Such a conversion, or other comparable operation, may be accomplished in an optional pre-processor 206. The pre-processor 206 may also be used when the raw parameter values are samples in time, each of which provides little indication of the system operation. Thus, pre-processing may generate a significantly more meaningful representation of the system state. It will be appreciated that the pre-processor 206 may be configured to perform various operations, depending upon the system, the form of the parameters and the desired form of the output. Thus, the Discrete Fourier Transform noted above is merely an example of one such operation and is not meant to be limiting.
The M sets of n parameter values are then processed by a vector creator 208 to generate M n-tuple vectors.
In a further optional operation, the magnitudes of the vectors may be normalized to a common scaled magnitude (such as 1) in another unit 210 of the apparatus 200 of the present invention. Normalization removes amplitude (size) variations among the vectors while preserving their intrinsic shapes, thereby facilitating the comparison and matching of vectors in subsequent operations. As a result, the vectors will differ only in their direction and vector-to-vector variability is reduced without compromising the shape described by the components of the vector. The normalized vectors, or the vectors created in the vector creator 208 if normalization is not performed, are the M n-tuple input vectors for the next stage, an artificial neural network 230.
In addition to the input vectors whose creation has just been described, unprocessed exemplar vectors are also created for input to the ANN 230 for processing. J n-tuple unprocessed vectors are created in a second vector creator 212 with random initial weights provided by a randomizer 214 or other comparable component. The unprocessed vectors may be normalized in a normalizer 216 to the same common magnitude as the input vectors. The vector creators 208 and 212 need not be separate components but may comprise a single component. Similarly, the normalizers 210 and 216 need not be separate components but may be a single component.
Both the input vectors and the unprocessed exemplar vectors are input to the ANN 230. The ANN 230 provides an unsupervised learning process, such as that which is used to calculate a Kohonen self-organizing feature map (“SOFM”). In general, a number of weight matrix vectors are randomly initialized and an output node is associated with each weight matrix vector. Input vectors are repeatedly presented to the weight matrix vectors. The difference between the weight vectors and the input vectors is fed back to the network and the weights are progressively adjusted. After a predetermined number of iterations (epochs), each input vector becomes associated with an output node, without actually having specified the output node. The details of SOFMs and related processes are well known and need not be described further herein.
In a first stage, global conditioning 232, of the ANN 230, the unprocessed exemplar vectors are arrayed in a field which also contains the input vectors. However, because of their random initial weights, some or all of the unprocessed exemplar vectors may be remote from any input vector and therefore outside a range of probable values (such range being roughly defined by the M input vectors). The first stage 232, therefore, rearranges the unprocessed exemplar vectors within the range of probable values. Referring to the flow chart of
This adjusting step 414 will be referred to as vector “updating” in the descriptions below of the vector separation 234 and vector consolidation 236. If the exemplar counter is not yet zero (step 416), the exemplar counter is decremented (step 418) and the process repeats by applying the same selected input vector to a newly selected exemplar vector (steps 410-416). If the exemplar counter has reached zero, a determination is made whether the selected input vector has been applied to all of the exemplar vectors (step 420). If not, the input vector is decremented (step 422), a new input vector is selected (step 406) and the process repeats (steps 408-422) until all of the input vectors have been applied to all of the exemplar vectors during the current epoch (as illustrated generically in
In a second stage, vector separation 234, of the ANN 230, the conditioned exemplar vectors undergo further processing. Referring to the flow chart of
In a third, vector consolidation 236, of the ANN 230, the separated exemplar vectors undergo still further processing. Referring to the flow chart of
The finalized exemplar vectors processed through the ANN 230 are then recorded or stored, such as in a database 240.
System Evaluation
The trial vector and the exemplar vectors 1212 are input to a distance calculator 1230 which calculates the distance between the trial vector and each exemplar vector and determines which exemplar is the least distance to the trial vector. In
Even more specific evaluation may also be performed. For example, if the minimum distance or activation value is less than a second predetermined limit (which is less than the first limit), the activation value may be logged. If the minimum activation value is greater than the second predetermined limit, a system calibration or other comparable operation may be initiated. And, if the activation value is greater than a third predetermined limit (which is greater than the second limit), an alarm may be activated.
As is known, the equalizer 1420 operates by applying a number n of coefficients C0-Cn-1 to the input signal delayed by delay registers 14220-1422n-1 through multipliers 14220-1422n-1. The resulting n signals are summed in a summer 1426 before being transmitted to the detector 1412. Through a feedback process, the controller 1418 adaptively adjusts the coefficients to optimize the signal. In order to evaluate the performance of the equalizer 1400, the coefficient values (operational parameters) may be sent to the processor 1220 (
The controller 1408, or other comparable component, includes or accesses a memory 1416 in which are stored the exemplar vectors created as described above and which represent models of various possible states of the drive 1400. In operation, programmed instructions direct the processor or controller 1418 to calculate the distance between the trial vector and each stored exemplar vector. The exemplar vector which is the closest to the trial vector most closely represents the current state or condition of the drive 1400.
The objects of the invention have been fully realized through the embodiments disclosed herein. Those skilled in the art will appreciate that the various aspects of the invention may be achieved through different embodiments without departing from the essential function of the invention. The particular embodiments are illustrative and not meant to limit the scope of the invention as set forth in the following claims.
Patent | Priority | Assignee | Title |
10623775, | Nov 04 2016 | TWITTER, INC | End-to-end video and image compression |
9177215, | Apr 10 2012 | International Business Machines Corporation | Sparse representation for dynamic sensor networks |
Patent | Priority | Assignee | Title |
5267151, | Sep 07 1990 | Method and apparatus for detecting and identifying a condition | |
5515477, | Apr 22 1991 | AND ARTIFICIAL NEURAL DEVICES CORPORATION | Neural networks |
6334121, | May 04 1998 | Virginia Commonwealth University | Usage pattern based user authenticator |
6574754, | Feb 14 2000 | Western Digital Technologies, INC | Self-monitoring storage device using neural networks |
6760716, | Jun 08 2000 | Fisher-Rosemount Systems, Inc. | Adaptive predictive model in a process control system |
20050132378, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 21 2004 | SEGER, PAUL J | INTERNATIONAL BUSINESS MACHINES IBM CORPORATION | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015216 | /0815 | |
Sep 23 2004 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jun 26 2008 | ASPN: Payor Number Assigned. |
Feb 06 2012 | REM: Maintenance Fee Reminder Mailed. |
Jun 18 2012 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 18 2012 | M1554: Surcharge for Late Payment, Large Entity. |
Feb 05 2016 | REM: Maintenance Fee Reminder Mailed. |
Jun 24 2016 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jun 24 2011 | 4 years fee payment window open |
Dec 24 2011 | 6 months grace period start (w surcharge) |
Jun 24 2012 | patent expiry (for year 4) |
Jun 24 2014 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 24 2015 | 8 years fee payment window open |
Dec 24 2015 | 6 months grace period start (w surcharge) |
Jun 24 2016 | patent expiry (for year 8) |
Jun 24 2018 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 24 2019 | 12 years fee payment window open |
Dec 24 2019 | 6 months grace period start (w surcharge) |
Jun 24 2020 | patent expiry (for year 12) |
Jun 24 2022 | 2 years to revive unintentionally abandoned end. (for year 12) |