System and method for ensuring auditability of machine learning model results - Patents.com
Patent Information
- Application Number
- JP2022557900
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-03-23
- Filing Date
- 2021-01-29
- Publication Date
- 2025-03-11
- Estimated Expiration
- 2041-01-29
AI Technical Summary
【0016】 一実施形態では、機械学習モデルの結果を監査するためのコンピューティングシステムであって、当該状態推定計算の反転のための当該命令はさらに、当該コンピューティングシステムに電子データ報告データ構造を生成させ、当該電子データ報告データ構造は、当該元の時系列値の品質に対するセンサ障害の影響を軽減するために前処理中に当該元の時系列値に対する1つ以上の変更を記録する前処理モデルと、圧縮された時系列データベースとを含み、当該圧縮された時系列データベースは、制限された多変量状態推定モデルで状態推定を実行すること、および当該制限された多変量状態推定モデルのパラメータではない値を当該圧縮された時系列データベースから排除することによって生成され、当該電子データ報告データ構造はさらに、(i)当該元の時系列値から選択されるとともに当該制限された多変量状態推定モデルをトレーニングするために用いられるトレーニング値のセットと、(ii)当該制限された多変量状態推定モデルとのうちの1つ以上を含み、当該状態推定計算の反転のための当該命令はさらに、当該コンピュータに、反転状態推定計算を用いて当該状態推定計算によって実行されるステップを取消させ、当該状態推定値の各々ごとに当該前処理モデルによって記述される当該前処理を反転させる。
Smart Images

Figure 0007644140000001 
Figure 0007644140000002 
Figure 0007644140000003
Abstract
Description
[Background technology]
[0001] background As the cost of sensor and processor technology decreases, sensors are added to or associated with components of electrical, mechanical, distribution, and other systems to enable sensor-based automation. These sensors generate large amounts of information that describe the behavior of the components. This large amount of information is stored in databases for at least some period of time. Applying machine learning algorithms to the sensed information can enable prognostics, anomaly detection, and predictive maintenance of the system components monitored by the sensors. Summary of the Invention [Problem to be solved by the invention]
[0002] Examples of sensor-based automation can be found in the power utility, oil and gas, environmental and water quality monitoring, data processing, manufacturing, passenger and freight transportation, and even the financial services sector. In these fields, the behavior of equipment or systems and / or decisions made by machine learning processes may be subject to review by regulatory bodies. Such reviews may be based on stored sensor information, and large fines may be imposed on non-compliant entities based on stored sensor information that exhibits non-compliant behavior. It is therefore beneficial for regulated entities and regulators to be able to ensure that stored sensor information has not been corrupted or tampered with.
[0003] For the above and other reasons, there is a need for techniques to effectively and efficiently ensure that the results of machine learning models to be certified can be audited. [Means for solving the problem]
[0004] overview In one embodiment, a computer-implemented method for auditing results of a machine learning model includes retrieving a set of state estimates for original time series data values from a database under audit, each of the state estimates generated by a state estimation calculation for one of the time series data values, the method further includes inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; retrieving the original time series data values from the database under audit; pairwise comparing the original time series data values with the reconstructed time series data values to determine whether the original and reconstructed time series match; and generating a signal that the database under audit (i) has not been modified if the original and reconstructed time series match, and (ii) has been modified if the original and reconstructed time series do not match.
[0005] In one embodiment, the computer-implemented method for auditing results of a machine learning model further includes training a multivariate state estimation model with a set of training values selected from the original time series values; decomposing a matrix associated with the multivariate state estimation module into a set of eigenvectors; selecting a subset of principal eigenvectors from the set of eigenvectors; and creating a constrained multivariate state estimation model from the subset of principal eigenvectors, wherein inverting the state estimation calculation further includes generating an inverse of a calculation where the constrained multivariate state estimation model forms a state estimate.
[0006] In one embodiment, the computer-implemented method for auditing results of a machine learning model further includes excluding training data values from the original time series data values from the database under audit; pre-processing the remaining original time series data values to mitigate effects of sensor failures and generating a model that records changes to the remaining original time series data; and performing state estimation on the remaining pre-processed original time series data values using the restricted multivariate state estimation model to create a condensed time series database.
[0007] In one embodiment, the computer-implemented method for auditing results of a machine learning model further includes preprocessing the original time series values to mitigate an impact of sensor failures on quality of the original time series values and generating a data preprocessing model that records one or more changes to the original time series values during the preprocessing, and inverting the state estimate calculation further includes deriving the data preprocessing model and inverting the preprocessing described by the data preprocessing model for each of the state estimates.
[0008] In one embodiment, the computer-implemented method for auditing results of a machine learning model further includes generating an electronic data report data structure, the electronic data report data structure including a preprocessing model that records one or more changes to the original time series values during preprocessing to mitigate an impact of a sensor failure on a quality of the original time series values, and a compressed time series database, the compressed time series database generated by performing state estimation with a restricted multivariate state estimation model and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model, the electronic data report data structure further including one or more of: (i) a set of training values selected from the original time series values and used to train the restricted multivariate state estimation model; and (ii) the restricted multivariate state estimation model.
[0009] In one embodiment, a computer-implemented method for auditing results of a machine learning model, wherein inverting the state estimation calculation further includes identifying an inverted state estimation calculation that undoes steps performed by the state estimation calculation to form the state estimates from the original time series data values, and generating a set of inverted state estimates for the original time series data from the set of state estimates, each of the inverted state estimates generated by performing the inverted state estimation on one of the set of state estimates, and the reconstructed time series data values for each of the state estimates are based on the inverted state estimate.
[0010] In one embodiment, the computer-implemented method for auditing results of a machine learning model further includes (i) generating an electronic validation report message in response to a signal that the database under audit has not been modified, indicating that the database under audit has been certified as not corrupted and not tampered with, and (ii) generating an electronic validation report message in response to a signal that the database under audit has been modified, indicating that the database under audit has been corrupted or tampered with, and transmitting the generated electronic validation report to a computing device and causing the validation report message to be stored by the computing device or displayed by the computing device.
[0011] In one embodiment, a non-transitory computer readable medium storing computer-executable instructions for auditing results of a machine learning model, the computer-executable instructions, when executed by at least a processor of a computer, cause the computer to retrieve a set of state estimates for original time series data values from a database under audit, the state estimates generated by a state estimation calculation for each of the time series data values, further invert the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates, retrieve the original time series data values from the database under audit, and compare the original time series data values with the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match, and generate a signal that the database under audit (i) has not been modified if the original and reconstructed time series match, and (ii) has been modified if the original and reconstructed time series do not match.
[0012] In one embodiment, a non-transitory computer readable medium, the instructions further causing the computer to train a multivariate state estimation model with a set of training values selected from the original time series values, decompose a matrix associated with the multivariate state estimation module into a set of eigenvectors, select a subset of eigenvectors from the set of eigenvectors having largest eigenvalues, create a constrained multivariate state estimation model from the subset of eigenvectors, preprocess the original time series values to mitigate an impact of sensor impairments on a quality of the original time series values, and reduce the quality of the original time series values during the preprocessing. creating a data pre-processing model that records one or more changes to values; performing state estimation on the original time series data values using the restricted multivariate state estimation model to create a condensed time series database; generating a report including the pre-processing model, the condensed time series database, and one or more of (i) the set of training values and (ii) the restricted multivariate state estimation models, wherein the set of state estimates is the set of state estimates included in the condensed time series database in the report; and the reconstructed time series data is generated based on the report.
[0013] In one embodiment, a computing system for auditing results of a machine learning model includes a processor, a memory operatively connected to the processor, a sensor interface operatively connected to the processor and the memory, and a non-transitory computer readable medium operatively connected to the processor and the memory and storing computer executable instructions that, when executed by at least a processor of a computer, cause the computer to retrieve from a database under audit a set of state estimates for original time series data values received via the sensor interface, the state estimates being: , generated by a state estimate calculation for each of said time series data values, further inverting the state estimate calculation for each of said state estimates to generate a reconstructed time series data value for each of said state estimates, retrieving the original time series data values from said database under audit and comparing the original time series data values with the reconstructed time series data values pairwise to determine whether the original and reconstructed time series match, and generating a signal that said database under audit (i) has not been modified if the original and reconstructed time series match, and (ii) has been modified if the original and reconstructed time series do not match.
[0014] In one embodiment, a computing system for auditing results of a machine learning model, wherein the non-transitory computer readable medium further includes instructions that, when executed by at least the processor, cause the computing system to train a multivariate state estimation model with a set of training values selected from the original time series values, decompose a matrix associated with the multivariate state estimation module into a set of eigenvectors, select a subset of principal eigenvectors from the set of eigenvectors, and create a constrained multivariate state estimation model from the subset of principal eigenvectors, wherein inverting the state estimation calculation further includes generating an inverse of a calculation where the constrained multivariate state estimation model forms a state estimate.
[0015] In one embodiment, a computing system for auditing results of a machine learning model, wherein the non-transitory computer readable medium further comprises instructions that, when executed at least by the processor, cause the computing system to exclude training data values from the original time series data values from the database under audit, pre-process remaining original time series data values to mitigate effects of sensor failures, generate a model that records changes to the remaining original time series data, and perform state estimation on the pre-processed remaining original time series data values using the restricted multivariate state estimation model to create a condensed time series database.
[0016] In one embodiment, a computing system for auditing results of a machine learning model, wherein the instructions for reversing the state estimation calculation further cause the computing system to generate an electronic data reporting data structure, the electronic data reporting data structure including a preprocessing model that records one or more changes to the original time series values during preprocessing to mitigate an impact of a sensor failure on a quality of the original time series values, and a compressed time series database, the compressed time series database being generated by performing state estimation with a restricted multivariate state estimation model and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model, the electronic data reporting data structure further including one or more of: (i) a set of training values selected from the original time series values and used to train the restricted multivariate state estimation model; and (ii) the restricted multivariate state estimation model, and the instructions for reversing the state estimation calculation further cause the computer to undo steps performed by the state estimation calculation using an inverted state estimation calculation and to reverse the preprocessing described by the preprocessing model for each of the state estimates.
[0017] In one embodiment, a computing system for auditing results of a machine learning model, wherein the non-transitory computer readable medium further includes instructions that, when executed at least by the processor, cause the computing system to identify an inverted state estimation calculation that undoes steps performed by the state estimation calculation to form the state estimates from the original time series data values, and generate a set of the inverted state estimates for the original time series data from the set of state estimates, each of the inverted state estimates generated by performing inverted state estimation on one of the set of state estimates, and the reconstructed time series data values for each of the state estimates are based on the inverted state estimate.
[0018] In one embodiment, a computing system for auditing results of a machine learning model, wherein the non-transitory computer readable medium further includes instructions that, when executed by at least the processor, cause the computing system to (i) generate an electronic validation report message indicating that the database under audit has been certified as not corrupted and not tampered with in response to a signal that the database under audit has not been modified, and (ii) generate an electronic validation report message indicating that the database under audit has been corrupted or tampered with in response to a signal that the database under audit has been modified, and transmit the generated electronic validation report to a computing device and cause the validation report message to be stored by or displayed by the computing device.
[0019] BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate various systems, methods, and other embodiments of the disclosure. It will be appreciated that the boundaries of the elements illustrated in the figures (e.g., a box, group of boxes, or other shape) represent one embodiment of those boundaries. In some embodiments, one element may be realized as multiple elements, or multiple elements may be realized as one element. In some embodiments, an element shown as an internal component of another element may be realized as an external component, and vice versa. Additionally, elements may not be shown to scale. [Brief description of the drawings]
[0020] [Figure 1] FIG. 1 illustrates one embodiment of a system related to ensuring that results of machine learning models can be audited. [Diagram 2] FIG. 1 illustrates one embodiment of a methodology related to ensuring that results of machine learning models can be audited. [Diagram 3]FIG. 1 illustrates a flowchart of an embodiment of a process involved in ensuring that the results of a machine learning model can be audited. [Figure 4] FIG. 1 is a schematic diagram illustrating one embodiment of storing change records from intelligent data pre-processing in an exemplary IDP model. [Diagram 5] FIG. 1 is a schematic diagram illustrating one embodiment of an MSET model training process associated with ensuring that the results of machine learning models can be audited. [Figure 6] FIG. 1 is a schematic diagram illustrating one embodiment of the MSET model restrictions process associated with ensuring that the results of machine learning models can be audited. [Figure 7] FIG. 1 is a schematic diagram illustrating one embodiment of a data compression process relevant to ensuring that the results of a machine learning model can be audited. [Figure 8A] FIG. 2 illustrates a first exemplary data report format resulting from one embodiment of the data compression process. [Figure 8B] FIG. 11 illustrates a second exemplary data report format resulting from another embodiment of the data compression process. [Figure 9] FIG. 2 is a schematic diagram illustrating an embodiment of a data reconstruction process using a first data reporting format. [Figure 10] FIG. 11 is a schematic diagram illustrating an embodiment of a data reconstruction process using a second data reporting format. [Figure 11] FIG. 1 illustrates an example computing device configured and / or programmed with one or more of the example systems and methods described herein and / or the like. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0021] Detailed Description Described herein are systems and methods that ensure the results of machine learning models can be audited.
[0022] Sensors, such as Internet-of-Things (IoT) sensors, may be added to physical devices to monitor the operation of these devices. These sensors may be numerous, especially in dense sensor industries such as utilities, oil and gas, and manufacturing. For example, an oil refinery may comprise more than one million sensors. A power system may comprise well over one million sensors, especially when considering sensors for supervisory control and data acquisition (SCADA) on utility assets such as power plants and transformer substations, as well as sensors for advanced metering infrastructure (AMI). Data from these sensors may be stored as a time series, a series of data points indexed in time order, or value pairs and associated times. Time series data may be stored in a time series database (a database system optimized for storing and serving time series). Thus, a utility may generate very large time series databases that contain sensor readings on the order of petabytes or more.
[0023] It should be noted that a system capturing a large number of time series signals originating from systems with physical transducers will collect erroneous time series values from failed physical transducers / sensors. It is possible that some percentage of sensors are degraded and / or may fail due to "stuck-at" failures that signal one value indefinitely despite receiving input. It is also possible that sensors or upstream data acquisition and / or data aggregation electronics have intermittent problems causing individual time series to contain missing values. If these types of anomalies are not discovered when capturing the time series data into a time series database, they will affect the subsequent use of the data stored in the time series database. For example, if the time series data is used for product development or other scientific purposes, the accuracy of the data analysis and, in some cases, the soundness of the conclusions drawn will be adversely affected by the types of anomalies mentioned above. The systems and methods described herein also enable solving this problem by providing signal validation and sensor operability validation for time series databases originating from sensors monitoring critical assets.
[0024] Machine learning (ML) algorithms can be applied to the sensor data stored in the time series database to enable prognostics, anomaly discovery / detection, and predictive maintenance for devices monitored by the sensors. This can be referred to as automated predictive monitoring. One aspect of increasing importance, especially in the high density sensor industry for utilities, is the ability to explain to regulators, insurance investigators, and end customers why a predictive ML algorithm flagged one or more signals as anomalous, and equally importantly, why the ML did not issue an alert. Thus, the systems and methods described herein provide an "auditability guarantee" for pattern recognition ML decisions.
[0025] Industries such as utilities that utilize automated predictive monitoring systems must meet legal requirements and are subject to strict government regulation. For example, utilities in the United States are subject to local, county, state and federal regulations, including additional federal regulations from the United States Nuclear Regulatory Commission (USNRC) if the utility operates a nuclear plant, as well as additional regulations from the North American Electric Reliability Corporation (NERC) and the Federal Energy Regulatory Commission (FERC). In principle, such requirements and regulations may require the submission of data for legal or regulatory purposes. However, the full mass of petabytes of data that are the basis for the decisions made by these large automated systems is not possible to submit, not only because of the sheer size of the data sets, but also because most of the data is not persistently stored in a manner that would allow such submission.
[0026] Techniques for extracting data for legal and regulatory purposes often suffer from some or all of the following disadvantages: (i) the techniques may select data on an ad-hoc, need-to-know basis or using arbitrary criteria without a strict rationale; (ii) the data set selected for the techniques may be insufficient to recover the original source data; and (iii) the techniques may enable the concealment of violations of regulatory requirements because the original source data cannot be recovered. As a matter of fact, with regard to the third disadvantage, this has been reported to have occurred in practice.
[0027] In particular, the lack of recoverability of the original source data creates an unnecessary adversarial relationship between industry and government. For example, electric utilities operating in California are required to maintain a minimum generation overhead cushion of 10% over each month. That is, if there is demand during any given day and time, there is at least 10% overhead or "spare" capacity, so that if a generation or grid asset suddenly fails, the overhead capacity makes it less likely that a total blackout will occur. Utilities are required to submit monthly collected time series data to the California Public Utilities Commission (PUC) to demonstrate that they have maintained a minimum generation overhead cushion of 10% over each month. The PUC levies large fines whenever a utility's generation capacity falls below the 10% generation overhead cushion (which can happen multiple times in a month). The PUC scrutinizes the time series signals very carefully. Because the PUC customarily assumes that utilities have an incentive to adjust some series to make it appear as if their generating capacity had not fallen below the 10% threshold, utilities customarily assume that the PUC has an incentive to adjust some series to make it appear as if their generating capacity had fallen only a few percentage points below the 10% threshold, thereby extracting large penalties from the utilities.
[0028] These disadvantages (including distrust on both sides) are addressed by the systems and methods described herein, which ensure that the results of machine learning models can be audited. In one embodiment to ensure auditability, the following information should be kept, for example, in a journal of changes to a database:
[0029] · Sensed time series data (eg, including time-stamped sensor readings and users associated with the sensor inputs, if any).
[0030] A description of the sensor (e.g. the sensed asset associated with the sensor, the operational state of the sensor at the time of the measurement).
[0031] A description of the discovered asset (e.g. the version of the asset at the time of measurement, a record of the relationships between this asset and other assets, e.g. an instance graph over time or a bill of materials over time).
[0032] The state of “knowledge” at the time of measurement (e.g., one or more specific machine learning models, the specific conditions, and the specific data used during analysis).
[0033] Identification of the version of the machine learning modeling software and the data set used to develop the particular machine learning model and analyze the sensor readings.
[0034] It should be noted that the sensed time series data can be very large. In one embodiment, instead of extracting a large amount of data, a relatively small but notable (or most prominent or important) set of data can be stored, from which data that closely approximates the original data can be recovered. This is sufficient for legal and regulatory requirements. A set of stored data with such characteristics of recoverability (i.e., recoverability of approximate data for the original data from the stored data) is referred to herein as a "tamper-proof" data set. In one embodiment, the creation of a tamper-proof data set may include one or more of the techniques described in U.S. Patent Application Serial No. 15 / 925,427, filed March 19, 2018 by inventors D. Gawlick, KC Gross, ZH Liu, and A. Ghoneimy, entitled "Intelligent Preprocessing of Multi-Dimensional Time-Series Data," which is incorporated herein by reference in its entirety. While it is not necessarily possible to prevent malicious actors from altering the original data, or even from altering a tamper-proof dataset, the systems and methods disclosed herein provide a positive assurance that such alterations will be discovered in an audit performed in accordance with the procedures described herein.
[0035] In one embodiment, the systems and methods described herein thus enable the creation of data that closely resembles the original source data with a relatively small amount of processed data (a tamper-proof data set) that can be used to meet legal and regulatory requirements. Furthermore, the tamper-proof data set can be used to meet these requirements while still being compatible with machine learning signal validation and sensor operability validation techniques.
[0036] In one embodiment, the processing technique for extracting a tamper-proof data set exhibits three advantageous properties.
[0037] Determinism: The processed data of a tamper-proof dataset is uniquely determined by the input data without randomness.
[0038] Compression: The processed data of a tamper-proof dataset is relatively small compared to the input data. In practice, the processed data of a tamper-proof dataset may be several orders of magnitude smaller.
[0039] · Reversibility: A relatively close approximation of the original source data can be recovered from the processed data of a tamper-proof dataset.
[0040] In practice, the degree of approximation will be determined by, and may be adjusted to meet, legal and regulatory requirements.
[0041] A processing technique such as the Multivariate State Estimation Technique (MSET) is used in one embodiment of the present invention because it exhibits properties of determinism, compression, and reversibility, however, any processing technique for extracting a data set that satisfies the above three properties may be used to create a tamper-proof data set in accordance with the systems and methods described herein.
[0042] In one embodiment, based on the above three characteristics plus the tamper-proof data set and historical location information (which tracks changes to the database but does not guarantee data integrity), there is an automated technique to determine whether legal and regulatory requirements have been met. If these requirements have not been met, the system may determine appropriate legal remedial action or government fines. By making the legal and regulatory process completely transparent to all parties, the incentive to attempt to cover up violations and adversarial relationships can be greatly reduced or even eliminated.
[0043] In one embodiment, the systems and methods described herein improve existing ML monitoring systems to which they are applied, further increasing the accuracy of alerts and reducing the false alarm rate for ML predictive anomaly discovery. It is noted that these improvements can be achieved by implementations of the systems and methods described herein and do not require hardware upgrades anywhere in the system in which they are implemented. Thus, the systems and methods described herein are directly backward compatible with any existing IoT systems. This is particularly advantageous in the power utility, oil and gas, manufacturing, and aviation industries where traditional sensor data collection systems are already in place and would require significant effort to upgrade.
[0044] Although the systems and methods described herein are described in the context of the electric utility sector, it is clear that they have application wherever IoT sensor time series data is collected and used, for example, in the oil and gas, manufacturing, and aviation sectors. In one embodiment, the systems and methods described herein may be applied in the process of streaming digitized data about utility assets within power generation facilities (e.g., coal-fired power plants, oil-fired power plants, nuclear power plants, wind turbines, geothermal generators, gas turbine power plants, etc., as well as critical assets within the electric grid, such as transformers, substations, and SCADA systems).
[0045] -Auditability of time series processes for forecasting public utilities- In one embodiment, methods and processes for ensuring that machine learning model results can be audited include the following features: (i) tamper-proofing, (ii) snapshot isolation, (iii) journaling, (iv) activity journaling, and (v) data residency.
[0046] In one embodiment, tamper proofing is a process or system configuration to ensure that malicious or accidental data modification (tampering) is detected. In one embodiment, the audit report can include a compact record that will reveal any changes to the original data.
[0047] Outliers in time series data may be identified by ML processing of raw time series data to generate estimates of what these values "should" be in the context of the surrounding data. Neural networks (NNs) and support vector machines (SVMs) may be employed for anomaly detection. MSET (and variants such as Oracle's proprietary advanced MSET pattern recognition "MSET2") may also be employed for anomaly detection. All three approaches (NNs, SVMs, and MSETs) are, at the black-box level, nonlinear nonparametric (NLNP) regression algorithms. NLNP regression is primarily employed for prognostics, anomaly discovery / detection, and predictive maintenance in time series data flow processes because NLNP machine learning techniques do not make hypotheses about linear or nonlinear relationships between time series "signals" but instead learn those relationships empirically.
[0048] Of these three NLNP machine learning approaches, both NN and SVM employ a stochastic (or apparently random) process for weight optimization. In the case of NN, stochastic optimization of the weights occurs between perceptron layers. In the case of SVM, stochastic optimization occurs with a convex quadratic programming optimization of the regularization parameters to maintain a balance between bias and variance in the SVM estimates. For example, in both cases (NN and SVM), if the pattern recognition is trained on data from Monday versus data from Tuesday, the relationship between the output estimate and the input raw signal will be very similar. However, if one "looks into" the black box by comparing the intermediate weights for Monday's calculation with those for Tuesday's calculation, these intermediate weights will be substantially different. For experimental and practical applications of pattern recognition alone, it does not matter that the weights in the black box can be substantially different each time the black box is run, as long as the output of the black box is an accurate estimate of the underlying time series. However, when applying auditability, the irregularities introduced by NNs and SVMs make them unsuitable for extracting tamper-proof datasets, since they are not deterministic and therefore not reversible.
[0049] Application of MSET for anomaly detection (and associated predictive and predictive maintenance) results in estimates that can be stored along with the original raw time series telemetry values. In contrast to NNs and SVMs, MSET is a deterministic (but complex) mathematical algorithm, and MSET estimates are reversible as described above, which is key to tamper-proofing in the auditability guarantee. Thus, in one embodiment, MSET is applied for anomaly detection in time series data processes to enable tamper-proofing as part of the auditability guarantee. If any of the original raw data streams generated by this anomaly detection process are modified, altered, replaced or transformed by a malicious user or accidentally through any data corruption error in the storage medium, the changes to the original raw data values can be detected based on the accompanying MSET estimates. Alternatively, if the original raw data streams have not been tampered with or corrupted, the original raw data values can be verified or confirmed as unchanged based on the accompanying estimates. Such proof of non-tampering can be performed at any time after the creation of the MSET estimates. Such tamper-proof proof is based on incorporating the deterministic and reversible MSET algorithm into the anomaly detection process described herein.
[0050] Thus, a compact data set for estimating the original values of the time series data can be captured at any point in time, stored along with other information about changes made during the life of the time series database, and employed in the auditability process.
[0051] In one embodiment, snapshot isolation forms part of the auditability process. A time-based database provides the ability to store and retrieve records of any version. These versions are identified by strict ascending transactional time (the time the version was available or visible for query and subsequent processing). Each specific version may be referred to as a snapshot. In one embodiment, a tamper-proof data set created at a particular time may be used to verify the data values of the snapshot available at that creation time.
[0052] In one embodiment, the specific creation time for a tamper-proof data set may be the creation of a journal entry. The journaling process is configured to track all changes to a database. Each change in the database results in the creation of a journal entry in a journal associated with the database. Journals are typically highly tolerant to data loss. For example, in a journaled database, no data on permanent media is changed for the database, and no external notifications are allowed for the database until journal data describing the changes are stored. This allows the database to be audited even in the presence of failures. Journals allow the system to reconstruct any snapshot of a database, even without temporal support, at the expense of a significant performance burden on snapshot queries. Every database has a copy of the most recent snapshot, and a temporal database provides many snapshots going back in time. For immutable data, such as sensor readings, the snapshots and journals can be stored as a single copy.
[0053] However, in one embodiment, auditing may use additional knowledge about user activity (e.g., answers to questions such as "Who looked at what information (in response to a query) and when?" or "Who inserted, updated or deleted what information and when?" and "What operations were performed in the same transaction (how are the operations related)?"). Such information may be recorded in activity journal entries. Activity journal entries are synchronized with standard journal entries. Thus, the activity journal provides additional context information describing the circumstances leading to a database change and the accompanying creation of a journal entry.
[0054] In one embodiment, information describing data residency may also be included or synchronized with the standard journal entry to provide further contextual information describing the circumstances leading to the database change and the accompanying creation of the journal entry. Data residency information associates derived data with corresponding inputs, processing steps, and physical processing environments. For example, residency information identifies the data that forms the basis of a query result. In one embodiment, the residency process may be configured to rewrite the query to determine these data. In an audit situation, the residency metadata maintains a record of all data that formed the basis of the query result, thus substantially reducing the data that needs to be considered. In one embodiment, the residency information may include further information such as a description of the sensor providing the data, the operability state of the sensor, the asset associated with the sensor, the version of the asset, the relationship between the assets, etc.
[0055] In one embodiment, the tamper-proof dataset is created in response to a change to the database simultaneously with the creation of a journal entry. In one embodiment, the tamper-proof dataset is captured in the journal as well as other metadata associated with the change (change metadata and data residency metadata, including activity journaling). In one embodiment, the tamper-proof dataset is captured for each change to the database, thereby ensuring that any subsequent data changes will be detected in the audit process performed according to the systems and methods described herein (and also ensuring that the machine learning software configuration in operation at the time of the change is captured and auditable along with the remaining journal information). Thus, the systems and methods disclosed herein allow audits to be performed on the original data in any snapshot of the data, even though the data in the time-series database later evolves in time. Thus, auditability of machine learning results in the time-series database is ensured by enabling the capture of all the necessary information (i.e., journal entries, activity journal entries, data residency, and tamper-proof machine learning records) for each change to the database, thereby tracking the entire historical residency of the database of signals.
[0056] -Example environment- FIG. 1 illustrates one embodiment of a system 100 related to ensuring that the results of machine learning models can be audited.
[0057] In one embodiment, system 100 includes a time-series data service 105 and an enterprise network 110 connected by a network 115, such as the Internet. Time-series data service 105 is directly connected to sensors (such as sensor 120) or remote terminal units (RTUs) via network 125, or indirectly connected to sensors (such as sensor 130) or RTUs via one or more upstream devices 135. In one embodiment, networks 115 and 125 are the same network, while in another embodiment, networks 115 and 125 are separate networks.
[0058] In one embodiment, the time series data service 105 includes various systems, which may include a machine learning audit assurance system 140, a sensor interface server 145, a prognostic, anomaly detection and predictive maintenance system 150, a web interface server 155, and a data store 160. Each of these systems 140-160 are interconnected by a server side network 165. Each of these systems 140-160 is configured with logic, for example, by various software modules to perform the functions they are described as performing. In one embodiment, the systems 140-160 are realized by dedicated computing devices. In one embodiment, one or more of the systems 140-160, although depicted as separate units in FIG. 1, may be realized by a common (or shared) computing device.
[0059] In one embodiment, the time series data service 105 may be hosted by a third party and / or operated by a third party for the benefit of multiple account owners / tenants, each of which operates a business and each of which has an associated enterprise network 110. In one embodiment, the time series data service 105 is associated with a utility entity, such as an electric utility, or associated with a major utility asset, such as a generating facility, substation, or other major grid component. In one embodiment, the time series data service 105 is comprised of logic, such as software modules, for operating the time series data service 105 to (i) create and export a time series database, and / or (ii) audit the time series database in accordance with the systems and methods described herein.
[0060] In one embodiment, the sensors 120, 130 may be attached or configured to detect the performance of one or more components of a device or system, which generally includes any type of machinery or equipment with components performing a measurable activity. The sensors 120, 130 may include (but are not limited to) voltage sensors, current sensors, temperature sensors, pressure sensors, rotational speed sensors, flow meter sensors, vibration sensors, microphones, electromagnetic radiation sensors, proximity sensors, gyroscopes, inclinometers, accelerometers, global positioning system (GPS) sensors, torque sensors, deflection sensors, nuclear radiation detectors, or any of a wide variety of other sensors or transducers for generating an electrical signal describing a detected or sensed physical behavior.
[0061] In one embodiment, the sensors 120, 130 are connected to a sensor interface server 145 via a network 125. In one embodiment, the sensor interface server 145 is comprised of logic, such as software modules, for collecting readings from the sensors 120, 130 and storing the readings as time series of observations, e.g., in a data store 160. The sensor interface server 145 is configured to interact with the sensors, e.g., by exposing one or more application programming interfaces (APIs) configured to accept readings from the sensors using sensor data formats and communication protocols applicable to the various sensors 120, 130. The sensor data formats are generally defined by the sensor devices.The communication protocol may be a custom protocol (such as a traditional protocol prior to IoT implementations) or any of the various IoT or machine to machine (M2M) protocols, such as Constrained Application Protocol (CoAP), Data Distribution Service (DDS), Devices Profile for Web Services (DPWS), Hypertext Transport Protocol / Representational State Transfer (HTTP / REST), MQ Telemetry Transport (MQTT), Universal Plug and Play (UPnP), Extensible Messaging and Presence Protocol (XMPP), ZeroMQ, and other communication protocols that can be conveyed by the Transmission Control Protocol, i.e., Internet Protocol or User Datagram Protocol (TCP / IP or UDP) transport protocols. SCADA protocols such as OLE for Process Control Unified Architecture (OPC UA), Modbus RTU, RP-570, Profibus, Conitel, IEC 60870-5-101 or 104, IEC 61850, and DNP3 may also be employed when extended to operate over TCP / IP or UDP. In one embodiment, the sensor interface server 145 polls the sensors 120, 130 to retrieve sensor readings. In one embodiment, the sensor interface server passively receives sensor readings actively transmitted by the sensors 120, 130.
[0062] In one embodiment, the enterprise network 110 may be associated with a utility entity, such as an electric utility. In one embodiment, the enterprise network 110 may be associated with a regulatory entity, such as a government. For simplicity and clarity of illustration, the enterprise network 110 is represented by an on-site local area network 170. The local area network 170 has one or more personal computers 175 or servers 180 operatively connected thereto along with one or more remote user computers 185 that are connected to the enterprise network 110 through the network 115 or other suitable communications network or combination of networks. The personal computers 175 and the remote user computers 185 may be, for example, desktop computers, laptop computers, tablet computers, smartphones, or other devices having the ability to connect to the local area network 170 or the network 115 or having other synchronization capabilities. The computers of the enterprise network 110 interface with the time series data service 105 through the network 115 or another suitable communications network or combination of networks.
[0063] In one embodiment, a remote computing system (such as a remote computing system of the enterprise network 110) may access information or applications provided by the time series data service 105 through the web interface server 155. For example, a computer 175, 180, 185 of the enterprise network 110 may request a time series database from the time series data service 105. Or, for example, a computer 175, 180, 185 of the enterprise network 110 may perform an audit of the time series database according to the systems and methods described herein. In one embodiment, the remote computing system may send a request to the web interface server 155 and receive a response from the web interface server 155. In one example, access to the information or applications may be achieved by using a web browser on the personal computer 175 or the remote user computer 185. In one example, these communications may be exchanged between web interface server 155 and server 180 and may take the form of, for example, remote representational state transfer (REST) requests using JavaScript object notation (JSON) as the data exchange format, or simple object access protocol (SOAP) requests to and from an XML server.
[0064] In one embodiment, the data store 160 includes one or more time series databases configured to store and provide the time series data from the sensors 120, 130 received by the sensor interface server 145. In one embodiment, the time series databases are Oracle® databases configured to store and provide the time series data. In some example configurations, the data store 160 may be implemented using a network-attached storage (NAS) device and / or other dedicated server device.
[0065] In one embodiment, the upstream device 135 may be a third party service for managing IoT connected devices, or in one embodiment, the upstream device 135 may be a gateway device configured to allow the sensor 130 to communicate with the sensor interface server 145 (so, for example, if the sensor 130 is not IoT enabled, it cannot communicate directly with the sensor interface server 145).
[0066] -An exemplary method for ML model audit assurance- In one embodiment, each step of the computer-implemented method described herein may be performed by a processor of one or more computing devices (such as processor 1110 as shown and described with reference to FIG. 11). The processor of the one or more computing devices is configured with logic to (i) access memory (such as memory 1115 and / or other computing device components as shown and described with reference to FIG. 11) and (ii) cause the system to perform steps of the method (such as machine learning audit assurance logic 1130 as shown and described with reference to FIG. 11). For example, the processor accesses, reads from, or writes to the memory to perform steps of the computer-implemented method described herein. These steps may include (i) retrieving any necessary information, (ii) calculating, determining, generating, classifying, or creating any data, and (iii) storing any calculated, determined, generated, classified, or created data. When referring to storage or memory, this refers to storage as a data structure in the memory or storage / disk of a computing device (such as memory 1115 shown and described with reference to FIG. 11, or storage / disk 1135 of computing device 1105, or a remote computer 1165).
[0067] In one embodiment, each subsequent step of the method is initiated in response to analyzing the received signal or retrieved stored data indicating that the previous step has been performed at least to the extent necessary to initiate the subsequent step. Typically, the received signal or retrieved stored data indicates completion of the previous step.
[0068] 2 illustrates one embodiment of a method 200 related to ensuring that results of a machine learning model can be audited. In one embodiment, the steps of method 200 are performed by machine learning audit assurance system 140 or any of computers 175, 180, 185 in enterprise network 110 (as shown and described with reference to FIG. 1 ). In one embodiment, machine learning audit assurance system 140 or any of computers 175, 180, 185 is a dedicated computing device (such as computing device 1105) configured with machine learning audit assurance logic 1130.
[0069] Method 200 may be initiated based on various triggers, such as, for example, receipt of a signal over a network or analysis of stored data indicating (i) that a user (or administrator) of the time series data service 105 or computer 175, 180, 185 has initiated method 200, (ii) that method 200 is scheduled to begin at a defined time or time interval, (iii) that a user (associated with a utility or regulatory entity) of the time series data service 105 or computer 175, 180, 185 has requested an audit of the time series database, or (iv) any other trigger indicating that method 200 should be initiated. Method 200 begins at start block 205 in response to analyzing a received signal or retrieved stored data and determining that the signal or stored data indicates that method 200 should be initiated. Processing proceeds to process block 210.
[0070] At process block 210, the processor retrieves a set of state estimates for the original time series data values from the database under audit, the state estimates being generated by the state estimation calculations for each of the time series data values. Processing at process block 210 is completed and processing proceeds to process block 215.
[0071] At process block 215, the processor inverts the state estimation calculations for each of the state estimates to generate reconstructed time series data values for each of the state estimates. Processing at process block 215 is completed and processing proceeds to process block 220.
[0072] At process block 220, the processor retrieves the original time series data values from the database under audit. Upon completion of processing at process block 220, processing advances to process block 225.
[0073] At process block 225, the processor compares the original time series data values to the reconstructed time series data values pairwise to determine whether the original and reconstructed time series match. Processing at process block 225 is completed and processing proceeds to decision block 230.
[0074] At decision block 230, the processor evaluates whether the original time series matches the reconstructed time series. If the original time series matches the reconstructed time series (YES), processing at decision block 230 is complete and processing proceeds to process block 235. If the original time series does not match the reconstructed time series (NO), processing at decision block 230 is complete and processing proceeds to process block 240.
[0075] At process block 235, the processor generates a signal that the database under audit has not been modified since the original and reconstructed time series match. Processing at process block 235 is completed and processing proceeds to end block 245 where process 200 ends.
[0076] At process block 240, the processor generates a signal that the database under audit has been modified since the original and reconstructed time series do not match. Upon completion of processing at process block 240, processing proceeds to end block 245 where process 200 ends.
[0077] Each of the aforementioned process blocks of method 200 is described in further detail elsewhere herein.
[0078] -Preparation for reconstructing the original time series data from the MSET estimates- 3 shows a flow chart of one embodiment of an auditability process 300 associated with ensuring that the results of a machine learning model can be audited. MSET is embedded in a data flow process, and MSET operations are reversed to reconstruct the original time series data for auditability. The diagram illustrates the auditability for this application of MSET.
[0079] In one embodiment, at a high level, the auditability process 300 begins when the system retrieves an MSET estimate from a time series database. The system then reverses the MSET calculation to generate reconstructed time series data from the MSET estimate. As noted above, MSET is a reversible process, meaning that the original time series data will be reconstructed by performing the reverse MSET calculation on the MSET estimate. The system is then provided with the original time series data from the database being audited. Finally, the system compares the reconstructed time series data to the original time series data, and if the comparison indicates a match, it proves that there was no intentional tampering (or accidental data corruption) with the original time series data.
[0080] As described in more detail above, the operations described with reference to auditability process 300 may be performed by a processor of one or more computing devices accessing memory, storage and / or other computing device components illustrated and described with reference to FIGS. 1 and 11.
[0081] In one embodiment, the archived time series database 305 is presented for auditing to determine whether the original time series data in the database is intact or whether the original time series data in the database has been corrupted or tampered with. The archived time series database 305 may include one or more time series signals that are sequences of time series values for all observations of a time series. The archived time series database 305 will be presented for pairwise difference analysis 310 between the original time series data values from the archived time series database 305 and reconstructed time series values derived from MSET modeling of the archived database, and for MSET estimation of these values.
[0082] In one embodiment, the archived time series database 305 is a snapshot of the database at the time a change is made to the database. Additionally, at the time a change is made to the database, a journal entry describing the change is created and a set of state estimates is created for later pairwise differential analysis 310 in the context of an audit of the archived time series database 305. In one embodiment, the set of state estimates is stored in association with the journal entry for the database under audit, i.e., the archived time series database 305. For example, the set of state estimates may be generated in response to one or more commands indicating changes to the database under audit and stored in a data structure associated with the journal entry describing the changes. Other metadata, including location metadata identifying the data underlying the query results (resulting in the journaled changes), may also be stored in association with the journal entry.
[0083] Sensor impairments, including uncalibrated bias, intermittent stuck-at faults, gain change drift, and temporal spikyness, degrade signal quality and are major sources of false alarms (Type 1 errors) and false alarms (Type II errors) in ML prognostics for IoT applications. The original time series data values in the archived time series database 305 may contain some of these sensor impairments. In one embodiment, the archived time series database 305 undergoes a series of intelligent data pre-processing 315 steps to cleanse the data and prepare the cleansed data for MSET modeling and estimation. The pre-processing serves to mitigate the undesired effects of sensor impairments. In one embodiment, the intelligent data pre-processing 315 is repeated for one or more time series included in the archived time series database 305.
[0084] In one embodiment of intelligent data pre-processing 315, all observations from all signals in archived time-series database 305 are first pre-processed and then optimally resampled and "harmonized," for example, by using the Oracle® analytical resampling process (ARP) to generate an updated database of cleansed, optimally resampled / synchronized signals. In one embodiment, the ARP may include one or more of the techniques described in U.S. patent application Ser. No. 16 / 168,193, filed Oct. 23, 2018 by inventors KC Gross and GC Wang, entitled "Automated Analytic Resampling Process for Optimally Synchronizing Time-Series Signals," which is incorporated herein by reference in its entirety.
[0085] In one embodiment, the archived time series database 305 undergoes a missing value imputation process 320 during intelligent data preprocessing 315. For each time series signal in the archived time series database 305, the missing value imputation process 320 analyzes the original time series signal with a missing value check. In response to analyzing the missing values in the time series, the missing value imputation process 320 fills the missing values with estimated values. In one embodiment, the estimated values are simple interpolations. In one embodiment, the estimates are not simple interpolations but highly accurate estimates based on the series correlations derived by MSET and cross-correlations with existing values. The updated and filled time series are stored for future processing. The missing value imputation process 320 may also store a record of the location of the missing values in the time series that were filled with estimated values for later inversion. In one embodiment, the ARP may include one or more of the techniques described in U.S. patent application Ser. No. 16 / 005,495, filed Jun. 11, 2018 by inventors G.C. Wang, K.C. Gross and D. Gawlick, entitled “Missing Value Imputation to Facilitate Prognostic Analysis of Time-Series Sensor Data,” and incorporated herein by reference in its entirety.
[0086] In one embodiment, the intelligent data pre-processing 315 includes a de-spiking process 325. In one example, the de-spiking process 325 may be performed after missing values in the original time series are replaced by the missing value imputation process 320. In the de-spiking process 325, the updated time series signal is analyzed by an outlier check to detect and remove data "spikes", sudden, short-lived fluctuations that do not represent accurate sensor readings. The outlier check detects spikes in the signal by iteratively characterizing various statistical distributions for the signal (generating descriptive parameters to describe the properties and behavior of the statistical distributions). Time series data values that are outliers based on these characteristics are flagged as data value spikes. The captured spikes are temporarily replaced with the signal mean. The updated de-spiked time series is stored for later processing. The de-spiking process 325 may also store a record of the values and positions in the time series of the detected spikes. In one embodiment, the de-spiking process 325 may include one or more of the techniques described in U.S. patent application Ser. No. 16 / 215,345, filed Dec. 10, 2018 by inventors GC Wang and KC Gross, entitled “Synthesizing High-Fidelity Signals with Spikes for Prognostic Surveillance Applications,” which is incorporated herein by reference in its entirety.
[0087] In one embodiment, the intelligent data pre-processing 315 includes a dequantization process 330. For example, the dequantization process 330 may be performed after data spikes are detected and removed from the time series by the de-spiking process 325. In the dequantization process 330, the updated signal is analyzed through a "quantization" check to determine whether data quantization (a lossy data compression technique in which intervals of data are grouped or condensed into a single representative value) has caused the signal values to switch repeatedly between adjacent representative values quickly. In other words, the quantization check identifies intervals of the time series where the observation points repeatedly bounce back and forth between a certain number of upper observation limits. Data quantization may be caused by a low-resolution "quantized" transducer or sensor. Furthermore, the dequantization process 330 converts the quantized values detected in the time series into a high-precision continuous signal. These continuous signals closely approximate what the signal values would have had if detected using a higher resolution transducer. The updated unquantized time series is saved for later processing. The dequantization process 330 may also store a record of the values and positions within the time series of detected quantized values. In one embodiment, the dequantization process 330 may include one or more of the techniques described in U.S. Patent No. 10,496,084, entitled “Dequantizing Low-Resolution IOT Signals to Produce High-Accuracy Prognostic Indicators,” granted Dec. 3, 2019 by inventors M. Li and KC Gross, which is incorporated herein by reference in its entirety.
[0088] In one embodiment, the intelligent data pre-processing 315 includes a de-staged process 335. For example, the de-staged process 335 may be performed after the quantized values are detected and replaced in the time series by the de-quantization process 330. Stagedness is due to a mismatch in sampling rates between the recording and detection systems, where the slower sampling rate signals simply repeat their last measurements at the higher sampling rate, resulting in a uniform sampling rate for all measured signals. The time series values for the slower sampling rate sensors have a sequence of flat segments that resemble staged steps. Stagedness is a common problem with commercial data history archives that use simple algorithms to collect low sampling rate data into a higher sampling rate time series. In one embodiment, the de-staged process 335 analyzes the time series to identify any staged values present. The de-staged process 335 "fills" the staged portion of the signal with the higher sampling rate signal. The higher sampling rate signal values may be derived, in one embodiment, using the MSET estimate. The updated and filled time series is stored for future processing. The de-stairing process 335 may also store a record of the value and position in the time series for the detected staged value for later reversal. In one embodiment, the de-stairing process 335 may include one or more of the techniques described in U.S. patent application Ser. No. 16 / 128,071, filed Sep. 11, 2018 by inventors KC Gross and GC Wang and entitled “Replacing Stair-Stepped Values in Time-Series Sensor Signals With Inferential Values to Facilitate Prognostic Surveillance Operations,” which is incorporated herein by reference in its entirety.
[0089] In one embodiment, the intelligent data pre-processing 315 includes a uniform sampling process 340. In one embodiment, the uniform sampling process 340 may be performed after stepped values are detected and replaced in the time series by the de-stepping process 335. In the uniform sampling process 340, the signals are analyzed with a sampling rate check to identify if the signals have different sampling rates. If the signals exhibit different sampling rates (e.g., have different numbers of observations over the same time period), the observations of the slower signal will be resampled to match the signal's highest sampling rate. The updated resampled time series is stored for future processing. The uniform sampling process 340 may also store a record of the original un-resampled values and their placement in the time series for later inversion.
[0090] In one embodiment, the intelligent data pre-processing 315 includes a phase synchronization process 345. For example, the phase synchronization process 345 may be performed after the uniform sampling process 340. Or, in one embodiment, the phase synchronization process 345 may be performed in parallel with the uniform sampling process 340. In the phase synchronization process 345, the updated signal is analyzed by a correlation check to detect out-of-phase observations. Out-of-phase observations (or time signal values associated with incorrect time indexes in the time series) may be due to, for example, clock synchronization mismatches in measurement equipment such as sensors. The phase synchronization process 345 shifts the out-of-phase values in the time domain to align them with the correct time indexes. The updated phase-synchronized time series is stored for future processing. The phase synchronization process 345 may also store a record of the original placement of the out-of-phase values in the time series for later inversion.
[0091] In one embodiment, one or more of the uniform sampling process 340 and the phase synchronization process are performed using the Oracle® Analytical Resampling Process (ARP) and may include one or more of the techniques described in “Automated Analytic Resampling process for Optimally Synchronizing Time-Series Signals,” incorporated by reference above. Note that signal sampling may vary between time series signals in the archived time series database 305. For example, one time series may have a sampling rate or interval that is high but regular between observations. Another time series may have a sampling rate or interval that is low but regular between observations. Another time series may have irregular or uneven intervals between observations. In one embodiment, the phase of the time series signals may be adjusted such that the set of time series signals in the archived time series database 305 are aligned with respect to the observation times. In one embodiment, the data values of the time series signals may be resampled at a new sampling interval by interpolating estimated data values for observations at the new sampling interval in the time series signals. This may be performed for multiple synchronized time series signals to provide a common sampling interval for the time series signals.
[0092] The six Intelligent Data Pre-Processing 315 steps described above result in a high-quality "cleansed" or "augmented" version of the archived time series database 305 that can be stored and retrieved, and even used for subsequent machine learning processes. Note that other data pre-processing techniques can also be applied in Intelligent Data Pre-Processing 315, or fewer than all six of these techniques can be performed. All observations from all signals are now pre-processed, optimally resampled, and then "harmonized" using ARP.
[0093] The intelligent data preprocessing 315 steps correct for common problems in typical machine learning datasets. However, each step modifies some of the original data. A record must be kept for each modification so that the original data can be reconstructed. As noted in the description of each of the six intelligent data preprocessing 315 steps above, each step will store a record indicating the changes to the dataset. In one embodiment, the change records for all intelligent data preprocessing 315 steps applied to the archived time series database 305 will be stored in a single electronic data structure called an intelligent data preprocessing (IDP) model.
[0094]
[0043] Referring now to Figure 4, Figure 4 illustrates a schematic diagram 400 of one embodiment of storing change records from intelligent data pre-processing 315 in an exemplary IDP model 405. The IDP model 405 is a complete ordered record of every operation performed on the archived time-series database in preparation for machine learning operations.
[0095] The missing value imputation process 320 stores a record (also referred to as a mark or marker) of the location of missing values in the time series that were filled with an estimated value in a missing value mark data structure 410 in the IDP model 405. In one embodiment, the missing value mark data structure includes a set of arrays associated with the time series in the archived time series database 305. In the archived time series database 305, there is a missing value mark array associated with each time series that contains missing values. The missing value mark array may be an array of observation index (e.g., time) values, where each index value or time value indicates an observation in the associated time series where the missing value was filled with an estimated value.
[0096] The despiking process 325 stores a record of the value and position in the time series of the detected spike in a spike data structure 415 in the IDP model 405. In one embodiment, the spike data structure includes a set of arrays associated with the time series in the archived time series database 305. There is a spike array associated with each time series in which a spike was detected. These arrays may be arrays of tuples that include an observation index value (e.g., time) and the associated amplitude value of the spike at that observation value (i.e., the erroneous sensor reading).
[0097] The dequantization process 330 stores a record of the value and position in the time series of the detected quantized value in a smoothed model data structure 420 in the IDP model 405. In one embodiment, the smoothed model 420 includes a set of quantized observation arrays associated with the time series in the archived time series database 305. There is a quantized observation array associated with each time series where a quantized value was detected. These arrays may be arrays of tuples that include an observation index value (e.g., time) and the associated quantized value for that observation.
[0098] The un-staged process 335 stores a record of the value and position in the time series of the detected staged values in the smoothed model data structure 420. In one embodiment, the smoothed model 420 includes a set of staged observation arrays associated with the time series in the archived time series database 305. There is a staged observation array associated with each time series where a staged value was detected. These arrays may be arrays of tuples that include an observation index value (e.g., time) and the associated staged (original or not yet staged) value at that observation. In one embodiment, the quantized observation array and the staged observation array are single arrays that include all of the original quantized values and staged values indexed by their position in the time series. In this situation, the un-staged process may turn the staged value tuples into quantized observation arrays created by the unquantized process 330.
[0099] The uniform sampling process 340 stores a record of the original un-resampled values and their placement in the time series in a timestamp sequence data structure 425 in the IDP model 405. The phase synchronization process 345 also stores a record of the original placement of the out-of-phase values in the time series in the timestamp sequence data structure 425. In one embodiment, the timestamp sequence data structure 420 includes a set of timestamp arrays associated with the time series in the archived time series database 305. There is a timestamp array observation array associated with each time series in which out-of-phase observations were detected. These arrays include an observation index value (e.g., time) for each observation in the time series. In one embodiment, there are timestamp arrays created for both the uniform sampling process 340 and the phase synchronization process 345. This may be the case if the processes are run consecutively. If the uniform sampling process 340 and the phase synchronization process 345 are run together, the results may be stored together in a single timestamp array.
[0100] Thus, in one embodiment, the processor pre-processes the original time series values to mitigate the effects of sensor impairments on the quality of the original time series values, as shown in intelligent data pre-processing 315. Over the course of its intelligent data pre-processing, the processor generates a data pre-processing model that records one or more changes to the original time series values during pre-processing, as shown, for example, by IDP model 405. In one embodiment, the reversal of the state estimate calculation described with reference to process block 215 of FIG. 2 also includes retrieving a data pre-processing model, such as IDP model 405, from storage or memory and reversing the pre-processing described by the data pre-processing model for each of the state estimates.
[0101] Each of the six Intelligent Data Preprocessing 315 steps described above may be reversed or undone by taking the original time series values held in the IDP Model 405 and replacing the corresponding extended values in the extended time series database with the original values. In one embodiment, the reversal processes for the various processes of Intelligent Data Preprocessing 135 are performed in the reverse order from the order in which the Intelligent Data Preprocessing 135 processes were performed.
[0102] -Model training- Referring again to Figure 3, after intelligent data pre-processing 315, the augmented time series signal is used to train the MSET model 350. Figure 5 shows a schematic diagram of one embodiment of the MSET model training process 500 related to ensuring that the results of the machine learning model can be audited. The archived time series database 305 is provided to a select training data process 505, which selects data from the time series data to form a training data set. In one embodiment, a subset of the observation vectors of the time series is selected to form the training set. The selected training data set is then stored in a training data structure 510.
[0103] Once the training data 505 has been selected and stored in the training data structure 510, intelligent data pre-processing 315 is initiated to create and store the IDP model 405, as described above with reference to Figures 3 and 4. In one embodiment, the training data 505 is selected before intelligent data pre-processing 315, where the training data is selected from the unaugmented data. In another embodiment, the training data 505 is selected after intelligent data pre-processing 315, where the training data is selected from the augmented data.
[0104] Once the selection of training data 505 and intelligent data pre-processing 315 are completed, a loop of training vector selection process 515 and MSET model training process 520 is started. During vector selection, a set of training vectors is selected from the training data and provided to the MSET model for training. For example, 50 or 100 vectors may be selected. In one embodiment, the pre-processed training data is split into two parts to improve the model. For example, even observations may form a first part of the training set and odd observations may form a second part of the training set. During iterations of the selection process, a set of training vectors is selected from the odd observations during even / odd "hopscotch" vector selection, and then from the even observations.
[0105] As described above, training an MSET model such as MSET model 350 is a deterministic mathematical procedure. MSET training 520 uses time series signals representing time series recorded in an archived time series database to learn correlations between time series signals. MSET model training process 520 uses the augmented signals to identify all signals in archived time series database 305 that have any degree of association with any other signal in the archived time series database 305. In one embodiment, identification of associations between signals is performed both for the ensemble of signals in the archived time series database 305 as a whole and separately for clusters of signals. This empirical clustering approach recognizes that the archived time series database 305 of signals may originate from separate systems within a utility entity's facility or individual assets within a utility entity's fleet of utility devices and systems. The final output of MSET training process 520 is a trained MSET model 350. In one embodiment, the training process is an MSET2 training process and the MSET model is an MSET2 model.
[0106] In one embodiment, the vector selection 515 and MSET training process 520 may be repeated in a loop (for one or more iterations) until the MSET model 350 is stable, as shown in decision block 525. If the MSET model 350 does not change as much as the changes to the training data set, the model 350 is stable (YES), training is complete, and the trained MSET model 350 is stored as a data structure for further use. If the MSET model 350 still changes significantly when the training data set is changed, the model 350 is not yet stable (NO) and an additional set of training vectors is selected at 515, and the MSET model 350 is further trained at 520 with the additional set of training vectors.
[0107] 3, the trained MSET model 350 is used to calculate an MSET state estimate 355 for each signal in the archived time series database 305 based on the empirical correlation patterns learned during model training 520 between each signal and other signals in the archived time series database 305. While the MSET estimates are highly accurate, their accuracy may vary based on the extent of training of the MSET model.
[0108] At process block 360, the MSET estimates, MSET parameters, and training vectors are saved in a reporting data structure. This reporting data structure may be associated in a database or data structure with journal entries describing changes to the archived time series database 305 (e.g., changes that resulted in the archived state of the archived time series database). In one embodiment, process blocks 320 through 355 are initiated and executed in response to changes to the archived time series database 305 to be included with the journal entries describing the changes to ensure that data tampering in the archived time series database 305 is detectable. In one embodiment, activity journal metadata describing one or more queries preceding the changes and location metadata describing the data underlying the query results are stored with the journal entries and the reporting data structure.
[0109] It should be noted that reports may be generated in response to any changes to the database under audit, creating a series of tamper-proof data sets associated with each change to the database. Thus, historical location information (including the change, an activity journal describing the activity preceding the change, and location information describing the basis for the information presented in response to a query associated with the change) is recorded with each journal entry, along with records for reconstructing the original data. Thus, the complete history of the database under audit is recorded and can be reviewed for audit purposes. Moreover, the records are much more compact than maintaining additional snapshots of the database, resulting in significant performance improvements and improved portability of the data used for audit purposes.
[0110] In one embodiment, the MSET estimates 355 are stored in the archived time series database 305 along with the original raw signals (MSET parameters). The archived time series database 305 also stores a "sensor operability flag" with a "1" if fully verified or with a "0" for signals where an anomaly was found in the sensor that measured the original raw signal. In one embodiment, these sensor operability flags are determined based on the results of a fault detection estimation using a sequential probability ratio test (SPRT) to analyze the residual between the MSET estimate and the original raw signal value and label the value as anomalous or not anomalous. If a threshold number of anomalies occur in the time series data for a particular sensor, the sensor may be flagged as partially or completely inoperable ("0") in the time series. An inoperable flag may indicate a signal from a sensor / transducer failure or degradation, a stuck-at fault, or an intermittent problem with the sensor / transducer or upstream data collection electronics or network. If the number of anomalies occurring in the time series data for a particular sensor does not exceed a threshold number, the sensor may be flagged as verified as operational ("1") in the time series. In one embodiment, the threshold may be as low as meeting or exceeding one anomalous reading in the time series, or as high as desired. In one embodiment, the threshold may be set by a machine learning analysis of the time series, such as an MSET analysis. In one embodiment, these flags may be set in a data structure that includes the time series.
[0111] -Model Restrictions- In some examples, the trained MSET model 350 may not be very compact. Thus, for portability, it may be desirable to limit the size of the MSET model 350. Referring now to Figure 6, Figure 6 illustrates a schematic diagram of one embodiment of an MSET model limiting process 600 associated with ensuring that the results of a machine learning model can be audited.
[0112] In one embodiment, the system first trains a multivariate state estimation model, such as MSET model 350, on a set of training values selected from the original time series values, e.g., as shown and described with reference to FIG. 5. The complexity of the trained multivariate state estimation model may be reduced by principal component analysis of a matrix for the trained multivariate state estimation model and restricting the trained multivariate state estimation model to the principal components of the matrix. For example, MSET model 350 may be reduced by principal component analysis of the MSET matrix of model 350 and restricting model 350 to the principal components of the matrix. Note that the MSET model does not simply consist of the MSET matrix, but rather the MSET matrix is central to the MSET algorithm. As mentioned above, MSET model 350 may be an MSET2 model.
[0113] In one embodiment, the system decomposes a matrix associated with the multivariate state estimation module into a set of eigenvectors. For example, the complexity of the MSET model 350 is reduced by performing a singular value decomposition (SVD) 605 of the MSET matrix included in the MSET model 350. In one embodiment, the SVD 605 consists of a sequence of eigenvectors and their associated eigenvalues. In one embodiment, the eigenvectors resulting from the SVD 605 are sorted in decreasing order by their associated eigenvalues. The system then stores the sorted sequence of eigenvectors and their associated eigenvalues 610 as an SVD data structure, for example for further processing.
[0114] In one embodiment, the system selects a subset of principal eigenvectors from the set of eigenvectors stored in the SVD data structure. For example, the system selects principal eigenvectors 615 from the SVD 605 based on the sorted eigenvectors and eigenvalues 610. The eigenvectors with the largest eigenvalues are the principal eigenvectors. These principal eigenvectors are responsible for the largest variability of the sensor data across the time series and are therefore the most useful for state estimation modeling. In one embodiment, the processor selects the "top" N eigenvectors with the largest associated eigenvalues as the principal eigenvectors 620 with associated principal eigenvalues. The processor then removes all eigenvectors and eigenvalues in the SVD data structure except for the top N eigenvectors, thereby eliminating all eigenvectors that are not principal eigenvectors (along with their associated eigenvalues).
[0115] In one embodiment, the system creates a "restricted" multivariate state estimation model from a subset of the principal eigenvectors. For example, the retained top N principal eigenvectors and their associated principal eigenvalues 620 are provided to the MSET model limiter 625. The MSET model 350 is also provided to the MSET model limiter 625. The MSET module limiter 625 operates to limit the MSET model 350 to the top N principal eigenvectors and their associated eigenvalues 620. This substantially reduces the amount of data required to encode the results of the MSET algorithm. In one embodiment, the MSET model limiter 625 constructs a restricted MSET matrix from the principal eigenvectors and associated eigenvalues 620. The model limiter 625 replaces the original MSET matrix in the MSET model 350 with the restricted MSET matrix to create the restricted MSET model 630. The restricted MSET model 630 is stored as a data structure in memory or storage.
[0116] Referring again to FIG. 2, in one embodiment, inverting the state estimate calculation also includes generating an inversion of the calculation in which a restricted multivariate state estimation model (such as the restricted MSET model 630) forms the state estimate.
[0117] -Data Compression- In some examples, the entire archived time series database 305 can be very large. Therefore, for portability, it may be desirable to limit the size of the database to the parameters of the limited MSET model 630. Figure 7 shows a schematic diagram of one embodiment of a data compression process 700 related to ensuring that the results of a machine learning model can be audited. In the data compression process 700, the archived time series database 305 is reduced to a minimum size suitable for auditing the uncompressed or original archived time series database 305.
[0118] In one embodiment, at process block 705, the system removes the training data values from the original time series values in the database under audit, i.e., the archived time series database 305. For example, in one embodiment, the system creates a copy of the archived time series database 305 that does not include the training data used to train the MSET model. In one embodiment, training data for the MSET model, such as training data 510 for the MSET model 350, is removed from the copy of the archived time series database 305. For example, all observations used to train the MSET model 350 may be deleted from the copy of the archived time series database 305. In another embodiment, the copy of the archived time series database 305 was initially created without the training data, eliminating the need to delete it. The system stores a reduced copy of the archived time series database for subsequent processing.
[0119] In one embodiment, at process block 707, the system pre-processes the remaining original time series data values to mitigate the effects of sensor failures and generate a model that records changes to the remaining original time series data. For example, intelligent data pre-processing 315 (as described above) may be performed on a reduced copy of the archived time series database 305. The system forms an IDP behavior model 710 similar to IDP model 405, but only for the remaining observations remaining in the reduced copy of the archived time series database 305 after removing the training observations. The system stores the pre-processed reduced copy of the archived time series database for subsequent processing.
[0120] In one embodiment, in MSET operation block 715, the system performs state estimation (e.g., MSET state estimation) for the remaining preprocessed original time series data values using the restricted multivariate state estimation model to create a compressed time series database. The restricted MSET model 630 and a copy of the archived time series database 305 with the training data removed are used to perform the MSET operation 715. In one embodiment, the MSET operation 715 and the restricted MSET model 630 are MSET2 operations and MSET2 models, as described above. The MSET operation 715 (i) forms a state estimate for each observation based on the remaining parameters, and (ii) removes time series variables that are not parameters of the restricted MSET model 630 from the copy of the archived time series database. In this way, data values that do not inform the MSET state estimate (data values that do not significantly affect the value of the MSET state estimate) are removed from the copy of the archived time series database, thereby further reducing the size of the data. The MSET state estimates formed for each observation and the remaining parameter values for each observation form compressed data 720. Compressed data 720 is stored as a data structure in memory or storage.
[0121] Thus, in one embodiment, once the archived time series database has been pre-processed, the MSET algorithm is run using the restricted MSET model 630. The restricted MSET model 630, along with the MSET parameters for the restricted MSET model 630, constitute a compressed version of the original time series database (compressed data 720). The MSET estimates are stored with the MSET model to represent the original time series data in a reduced size. If it is necessary to identify whether any of the original raw data streams have been modified, altered or replaced, the system could invert the stored MSET estimates and MSET model to reconstruct the original time series data, which can then be used to validate or invalidate the intended original time series data, as discussed below.
[0122] -Data format- 8A and 8B show two exemplary data reporting formats, each of which contains sufficient information to perform an audit of the database under audit, such as the original archived time series database 305. In one embodiment, the system generates an electronic data reporting data structure according to one of the two exemplary data reporting formats.
[0123] In one embodiment, the system generates an electronic data reporting data structure including a preprocessing model that records one or more changes to original time series values during preprocessing to mitigate an impact of sensor failures on the quality of the original time series values, and a compressed time series database, the compressed time series database being generated by performing state estimation with a restricted multivariate state estimation model trained on a set of training values selected from the original time series values, and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model, the electronic data reporting data structure further including one or more of (i) the set of training values and (ii) the restricted multivariate state estimation model.
[0124] Comparing the two formats, the first data reporting format 800 specifies (i.e., includes in the data report) all training data 510 (but not the restricted MSET2 model 630), while the second data reporting format 850 specifies (but not the training data 510) the restricted MSET2 model 630. Both the first data reporting format 800 and the second data reporting format 850 specify the IDP operating model 710 and the compressed data 720.
[0125] Thus, in one embodiment, the electronic data reporting data structure includes a pre-processing model (IDP operation model 710) that records one or more changes to the original time series values during pre-processing to mitigate the impact of sensor failures on the quality of the original time series values (as shown and described with reference to Figures 3, 4, and 7). The electronic data reporting data structure also includes a compressed time series database (compressed data 720). The compressed time series database is generated by performing state estimation with a restricted multivariate state estimation model and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model (as shown and described with reference to Figure 7). The electronic data reporting data structure also includes one or more of: (i) a set of training values selected from the original time series values and used to train the restricted multivariate state estimation model, such as in a first data reporting format 800; and (ii) the restricted multivariate state estimation model, such as in a second data reporting format 850.
[0126] One exemplary advantage of the first data reporting format 800 is that the details of the MSET (or MSET2) auditability algorithm are not revealed. One exemplary advantage of the second data reporting format (850) is that the amount of data that must be provided in the report is reduced. It should be noted that the amount or volume of compressed data 720 may generally affect the size of the report in both the first data reporting format 800 and the second data reporting format 850, so in practice the two formats may not be significantly different in size.
[0127] Referring again to FIG. 3, in one embodiment, the system reverses the MSET calculation to reconstruct the raw data, as shown in process block 365. For example, data reports may be generated according to one of the data report formats 800, 850 and used to reconstruct data for an audit of the archived time series database 305. Note that these reports are stored, for example, with journal entries to await evaluation in the context of an audit of the archived time series database 305. In some embodiments, these reports may be stored for a significant period of time before being used to reconstruct the raw data. In some embodiments, an audit of the archived time series database 305 may not be performed, and the data reports are not retrieved but rather used to reconstruct the raw data in process block 365. The reports may also be distributed to third parties for external audits of their copies of the archived time series database.
[0128] - Data reconstruction using an exemplary first data report format - FIG. 9 illustrates a schematic diagram of one embodiment of a data restructuring process 900 using the first data reporting format 800, which is further associated with ensuring that the results of the machine learning model can be audited.
[0129] In one embodiment, in the data reconstruction process 900, the restricted MSET (or MSET2) model 630 is first trained using the IDP model 405 and training data 510 (e.g., as shown and described with reference to FIG. 5) and then restricted (e.g., as shown and described with reference to FIG. 6), as shown in process block 905. The IDP model 405 is retrieved from storage and provided to the training and limiting process 905. The training data 510 is read from the data report 800. The absence of the restricted MSET model 630 from the first data report format 800 necessitates the creation of the restricted MSET model 630.
[0130] In one embodiment, the system identifies an inverse state estimation calculation that reverses the steps performed by the state estimation calculation to form a state estimate from the original time series data values. For example, as shown in process block 910, the MSET (or MSET2) algorithm is inverted and applied to the compressed data 720. To invert the MSET algorithm, the steps to form the MSET estimate performed by the trained model 630 are analyzed and a sequence of discrete operations is recorded. For each discrete operation in the sequence, an inverse operation that will reverse the discrete operation is identified and recorded in the sequence of inversion operations. In one embodiment, the sequence of inversion operations should be in reverse order from the sequence of discrete operations. For example, if a discrete operation is to be performed first in the sequence of discrete operations, then the inverse operation of the discrete operation should be performed last in the sequence of inversion operations, the inverse operation of the second discrete operation should be performed penultimately in the sequence of inversion operations, and so on, such that the inverse operations of the discrete operations are performed in reverse order from the discrete operations. The system stores the sequence of inversion operations for subsequent processing.
[0131] In one embodiment, the system then generates a set of inverse state estimates for the original time series data from the set of state estimates. Each of the inverse state estimates is generated by performing an inverse state estimation on one of the set of state estimates, e.g., as indicated by the sequence of inversion operations. For example, the system performs on the state estimates an inverse of the MSET calculation used to create the state estimates stored in the compressed data 720. The inverse MSET estimates of the original time series data values for each observation are created from the state estimates for those values and the observations of the other parameters stored in the compressed data 720. The sequence of inversion operations is performed on the estimated data values for each observation to create an inverse MSET estimate for each of the estimated data values.
[0132] In one embodiment, the intelligent data pre-processing 315 is also inverted and applied to the inverted MSET estimate, as shown in process block 915. In one embodiment, the IDP operational model 710 is read from the data report 800 and the original time series values held in the IDP operational model 710 are substituted for any corresponding values in the inverted MSET estimate, thereby inverting the intelligent data pre-processing 315 for the compressed data to form the reconstructed data, approximating original data 920. The reconstructed data 920 is stored for later use in an audit process, including, for example, the verification process shown and described with reference to blocks 310 and 370-380 of FIG. 3. Thus, the reconstructed time series data values for each of the state estimates are based on the inverted state estimates.
[0133] It should be noted that the resulting reconstructed time series data is an approximation of the original data in the archived time series database 305 and may differ slightly from the original data. Nevertheless, the approximation may be used to verify that the archived time series database 305 has not been tampered with or corrupted. Thus, the approximation may be used to verify that the archived time series database 305 indicating regulatory compliance or regulatory non-compliance accurately indicates such compliance or non-compliance.
[0134] - Data reconstruction using an exemplary second data report format - 10 shows a schematic diagram of an embodiment of a data restructuring process 1000 using a second data reporting format 850, which is further associated with ensuring that the results of the machine learning model can be audited. The restructuring process 1000 generally follows the same process steps as the process 900, except that the limited MSET model 630 does not need to be calculated first because it is already stored in the second data reporting format 850. It should be noted that in one embodiment, the order of performing the inversion 1010 of the intelligent data pre-processing 315 and the MSET inversion 1015 may be switched in the process 1000 from the order in which the MSET inversion 910 is performed prior to the inversion 915 of the intelligent data pre-processing 315 in the process 900.
[0135] In one embodiment, as shown in process block 1010, intelligent data pre-processing 315 is first inverted and applied to the MSET estimates in the compressed data 720. In one embodiment, the IDP operational model 710 is read from the data report 800 and the original time series values held in the IDP operational model 710 are replaced with any corresponding values in the MSET estimates in the compressed data, thereby inverting the intelligent data pre-processing 315 for the compressed data 720. Thus, the reconstructed time series data values for each of the state estimates are based on the inverted state estimates as described with reference to process block 1015.
[0136] In one embodiment, the MSET (or MSET2) algorithm is applied to the inverted and compressed data 720 as shown in process block 1015 in a manner similar to that described with reference to process block 910 above. For example, the system performs on the state estimates an inverse of the MSET calculation used to create the state estimates stored in the compressed data 720. An inverted MSET estimate of the original time series data values for each observation is created from the state estimates for those values and the observations of the other parameters stored in the compressed data 720. The inverted MSET estimate and the permuted intelligent data preprocessing values from process block 1010 form the reconstructed data, i.e., approximating original data 1020. The reconstructed data 1020 is stored for later use in an audit process, which may include, for example, a verification process as shown and described with reference to blocks 310 and 370-380 of FIG. 3. Similar to process 900 above, the resulting time series data approximates the original data in the archived time series database 305 and may differ slightly from the original data, but may be used to verify that the archived time series database 305 has not been tampered with or corrupted.
[0137] -Tampering Report- If the "original" time series data has not been deliberately tampered with (or accidentally corrupted) (the comparison shows a match in a statistical sense), then the system proves that the original data is intact; otherwise, the original data is corrupted.
[0138] Referring again to FIG. 3, the system then proceeds to perform an audit of the (intact or corrupted / tampered) status of the original time series in the archived time series database 305. In one embodiment, in the context of this audit, the accuracy of the reported time series is verified using the reconstructed data. The original data is compared to the reconstructed (or reconstructed) data, e.g., reconstructed data 920 resulting from process 900 or reconstructed data 1020 resulting from process 1000. The two data streams, the original time series and the reconstructed time series, are compared pairwise in a pairwise difference analyzer as shown in process block 310. The pairwise difference analyzer 310 compares the original and reconstructed time series data values for each observation of the two time series to see if the reconstructed values match (or closely approximate within a threshold) the original values.
[0139] In one embodiment, the pairwise difference analyzer compares the original and reconstructed time series data values for each observation to determine whether it changes beyond a preset threshold amount, e.g., a percentage amount. In another embodiment, the pairwise difference analyzer compares each original and reconstructed time series data value for each observation to determine whether to trigger fault detection using a trained fault detection model included in the trained restricted MSET2 model 630. The fault detection model may employ a sequential probability ratio test (SPRT) to analyze the residual between the original and reconstructed time series data values for each observation to determine whether the intended original time series data is anomalous.
[0140] The results of the pairwise comparison are evaluated at decision block 370. If the two data streams match (YES), the verification is successful and processing continues to process block 375. If the two data streams do not match (NO), the verification is unsuccessful and processing continues to process block 380.
[0141] At process block 375, a "passing" validation report is generated indicating that the original time series data is not corrupted. In one embodiment, the passing validation report is a signal that, upon analysis, the original time series data is not corrupted. In one embodiment, the passing validation report is a human readable document indicating that the original time series data is not corrupted. In one embodiment, in response to the passing validation report, the system generates and executes or transmits for execution instructions that display an indication on a graphical user interface (GUI) that the original time series data is not corrupted. The GUI may be associated with a utility entity or a regulatory agency entity. Processing in process 300 then terminates.
[0142] At process block 380, a "fail" verification report is generated indicating that the original time series data has been corrupted or tampered with. In one embodiment, the fail verification report is a signal that, upon analysis, the original time series data has been corrupted or tampered with. In one embodiment, the fail verification report is a human readable document indicating that the original time series data has been corrupted or tampered with. In one embodiment, in response to the fail verification report, the system generates and executes or transmits for execution instructions that display an indication on a GUI that the original time series data has been corrupted or tampered with. The GUI may be associated with a utility entity or a regulatory agency entity. Processing in process 300 then terminates.
[0143] Thus, in response to a signal that the database under audit has not been modified, the system generates an electronic verification report message indicating that the database under audit has been certified as not corrupted or tampered with. In response to a signal that the database under audit has been modified, the system generates an electronic verification report message indicating that the database under audit has been corrupted or tampered with. The system then transmits the generated electronic verification report to a computing device, where the verification report message may be stored by the computing device or displayed by the computing device. In one embodiment, the computing device may be associated with a utility entity or a regulatory agency entity.
[0144] -Software module embodiment- Generally, software instructions are designed to be executed by an appropriately programmed processor. These software instructions may include, for example, computer-executable code and source code that may be compiled into the computer-executable code. These software instructions may also include instructions written in an interpreted programming language, such as a scripting language.
[0145] In a complex system, such instructions are typically arranged into program modules, each of which performs a particular task, process, function, or operation. The entire set of modules may be controlled or coordinated in their operation by an operating system (OS) or other form of organizational platform.
[0146] In one embodiment, one or more of the components, functions, methods, or processes described herein are configured as modules stored on a non-transitory computer-readable medium. These modules are comprised of stored software instructions that, when executed by at least a processor that accesses a memory or storage, cause a computing device to perform the corresponding functions described herein.
[0147] -Cloud system, multi-tenant, and enterprise implementation- In one embodiment, the system is a computing / data processing system that includes an application or collection of distributed applications for an enterprise organization. The application and computing system may be configured to operate with or implemented as a cloud-based networking system, a software as a service (SaaS) architecture, or other type of networked computing solution. In one embodiment, the system is a centralized server-side application that provides at least the functionality disclosed herein and is accessed by many users via computing devices / terminals that communicate with the computing system (acting as a server) over a computer network.
[0148] -Computing device embodiment- FIG. 11 illustrates an exemplary computing device 1100 configured and / or programmed with one or more of the exemplary systems and methods described herein and / or equivalents. The exemplary computing device may be a computer 1105 including a processor 1110, a memory 1115, and an input / output port 1120 operably connected by a bus 1125. In one example, the computer 1105 may include machine learning audit assurance logic 1130 configured to facilitate ensuring that the results of machine learning models can be audited, similar to the logic and systems illustrated in FIGS. 1-10. In various examples, the logic 1130 may be implemented in hardware, a non-transitory computer-readable medium having instructions stored thereon, firmware, and / or combinations thereof. While the logic 1130 is illustrated as a hardware component attached to the bus 1125, it should be appreciated that in other embodiments, the logic 1130 may be implemented in the processor 1110, stored in the memory 1115, or stored on a disk 1135. In one embodiment, the logic 1130 or computer is a means (e.g., structure: hardware, non-transitory computer-readable medium, firmware) for performing the described operations. In some embodiments, the computing device may be a server operating in a cloud computing system, a server configured in a Software as a Service (SaaS) architecture, a smartphone, a laptop, a tablet computing device, etc.
[0149] The means may be implemented, for example, as an ASIC programmed to ensure that the results of the machine learning model can be audited. The means may also be implemented as stored computer executable instructions presented to the computer 1105 as data 1140 that are temporarily stored in the memory 1115 and further executed by the processor 1110.
[0150] The logic 1130 may provide the means (e.g., hardware, non-transitory computer-readable medium storing executable instructions, firmware) to ensure that the results of the machine learning model can be audited.
[0151] Briefly describing an exemplary configuration of computer 1105, processor 1110 may be a variety of processors, including dual microprocessors and other multi-processor architectures. Memory 1115 may include volatile and / or non-volatile memory. Non-volatile memory may include, for example, ROM, PROM, etc. Volatile memory may include, for example, RAM, SRAM, DRAM, etc.
[0152] The storage disk 1135 may be operatively connected to the computer 1100, for example, via an input / output (I / O) interface (e.g., card, device) 1145 and an input / output port 1120. The disk 1135 may be, for example, a magnetic disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, a memory stick, etc. Furthermore, the disk 1135 may be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, etc. The memory 1115 may store, for example, processes 1150 and / or data 1140. The disk 1135 and / or the memory 1115 may store an operating system that controls and allocates resources of the computer 1105.
[0153] The computer 1105 may interact with input / output (I / O) devices via an I / O interface 1145 and input / output ports 1120. The input / output devices may be, for example, a keyboard 1180, a microphone 1184, a pointing and selection device 1182, a camera 1186, a video card, a display 1170, a scanner 1188, a printer 1172, speakers 1174, a disk 1135, a network device 1155, etc. The input / output ports 1120 may include, for example, serial ports, parallel ports, and USB ports.
[0154] The computer 1105 can operate in a networked environment and thus can be connected to a network device 1155 via the I / O interface 1145 and / or the I / O port 1120. The computer 1105 can interact with a network 1160 through the network device 1155. The computer 1105 can be logically connected to a remote computer 1165 through the network 1160. The networks with which the computer 1105 can interact can include, but are not limited to, a LAN, a WAN, and other networks.
[0155] -Definitions and other embodiments- In another embodiment, the described methods and / or their equivalents may be implemented using computer-executable instructions. Thus, in one embodiment, a non-transitory computer-readable / storage medium is configured to store computer-executable instructions of an algorithm / executable application that, when executed by a machine, causes the machine (and / or associated components) to perform the method. Exemplary machines include, but are not limited to, processors, computers, servers operating in a cloud computing system, servers configured in a Software as a Service (SaaS) architecture, smartphones, etc. In one embodiment, a computing device is implemented with one or more executable algorithms configured to perform any of the disclosed methods.
[0156] In one or more embodiments, the disclosed methods or equivalents thereof are performed by computer hardware configured to perform the methods, or by computer instructions embodied in modules stored on a non-transitory computer-readable medium, where the instructions are configured as an executable algorithm configured to perform the methods when executed by at least a processor of a computing device.
[0157] For simplicity of explanation, the exemplary method shown in the figures is illustrated and described as a series of algorithmic blocks, but it should be understood that the method is not limited by the order of the blocks. Some blocks may occur in a different order than that shown and described, and / or concurrently with other blocks. Furthermore, fewer than all of the illustrated blocks may be used to implement the exemplary method. The blocks may be combined or separated into multiple operations / components. Furthermore, additional and / or alternative methods may use additional operations not shown in the blocks.
[0158] The following contains definitions of selected terms used herein. These definitions include various examples and / or forms of components that fall within the scope of the terms and that may be used for implementation. These examples are not intended to be limiting. Both singular and plural forms of the terms may be within the scope of the definitions.
[0159] References to "one embodiment," "an embodiment," "an example," "an example," and the like indicate that the embodiment or example so described may include a particular feature, structure, characteristic, property, element, or limitation, but not all embodiments or examples necessarily include that particular feature, structure, characteristic, property, element, or limitation. Furthermore, repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, but could, and could include:
[0160] ASIC: Application Specific Integrated Circuit CD:Compact Disc CD-R: Recordable CD CD-RW: Rewritable CD DVD: Digital Versatile Disc and / or Digital Video Disc HTTP: Hypertext Transfer Protocol LAN: Local Area Network RAM: Random Access Memory DRAM: Dynamic RAM SRAM: Synchronous RAM ROM: Read-Only Memory PROM: Programmable ROM EPROM: Erasable PROM EEPROM: Electrically Erasable PROM USB: Universal Serial Bus XML: Extensible Markup Language WAN: Wide Area Network As used herein, a "data structure" is an arrangement of data within a computing system that is stored in a memory, storage device, or other computerized system. A data structure may be, for example, any one of a data field, a data file, a data array, a data record, a database, a data table, a graph, a tree, a linked list, and the like. A data structure may be formed from and may contain many other data structures (e.g., a database contains many data records). Other examples of data structures are possible as well according to other embodiments.
[0161] As used herein, "computer readable medium" or "computer storage medium" refers to a non-transitory medium that stores instructions and / or data that, when executed, are configured to perform one or more of the disclosed functions. Data may function as instructions in some embodiments. Computer readable media may take forms including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical disks, magnetic disks, and the like. Volatile media may include, for example, semiconductor memory, dynamic memory, and the like. Common forms of computer readable media may include, but are not limited to, floppy disks, flexible disks, hard disks, magnetic tapes, other magnetic media, application specific integrated circuits (ASICs), programmable logic devices, compact disks (CDs), other optical media, random access memory (RAM), read only memory (ROM), memory chips or cards, memory sticks, solid state storage devices (SSDs), flash drives, and other media on which a computer, processor, or other electronic device can function. If selected for implementation in one embodiment, each type of media may include stored instructions of an algorithm configured to perform one or more of the disclosed and / or claimed functions.
[0162] "Logic" as used herein refers to components implemented in computer or electrical hardware, non-transitory media having executable application or program module instructions stored thereon, and / or combinations thereof, to perform any of the functions or operations disclosed herein and / or to cause other logic, methods, and / or systems disclosed herein to perform functions or operations. Equivalent logic may include firmware, a microprocessor programmed with an algorithm, discrete logic (e.g., ASIC), at least one circuit, analog circuit, digital circuit, programmed logic device, memory device containing algorithmic instructions, and the like, any of which may be configured to perform one or more of the disclosed functions. In one embodiment, logic may include one or more gates, combinations of gates, or other circuitry configured to perform one or more of the disclosed functions. Where multiple logics are described, it may be possible to incorporate multiple logics into one logic. Similarly, where a single logic is described, it may be possible to distribute the single logic among multiple logics. In one embodiment, one or more of these logics are corresponding structures associated with performing the disclosed and / or claimed functions. The choice of which type of logic to implement may be based on desired system requirements or specifications. For example, if higher speed is a consideration, hardware would be selected to implement the function. If lower cost is a consideration, stored instructions / executable applications would be selected to implement the function.
[0163] An "operable connection," or a connection in which entities are "operably connected," is a connection in which signals, physical communications, and / or logical communications may be transmitted and / or received. An operable connection may include physical interfaces, electrical interfaces, and / or data interfaces. An operable connection may include various combinations of interfaces and / or connections sufficient to enable operable control. For example, two entities may be operably connected to communicate signals to each other directly or through one or more intermediate entities (e.g., processors, operating systems, logic, non-transitory computer-readable media). An operable connection may be created using logical and / or physical communication channels.
[0164] As used herein, a "user" includes, but is not limited to, one or more people, computers or other devices, or any combination thereof.
[0165] Although the disclosed embodiments have been shown and described in considerable detail, it is not intended to restrict or in any way limit the scope of the appended claims to such details. Of course, it is not possible to describe every conceivable combination of components or methodologies for purposes of describing various aspects of the subject matter. Thus, the disclosure is not limited to the specific details or specific examples shown and described. Thus, the disclosure is intended to embrace changes, modifications and variations that fall within the scope of the appended claims.
[0166] To the extent the word "includes" or "including" is employed in the detailed description or claims, it is intended to be inclusive in the same manner as the word "comprising" as that word is interpreted when used as a transitional term in a claim.
[0167] To the extent that the word "or" is used in the detailed description or claims (e.g., A or B), it is intended to mean "A or B or both." If applicant intends to indicate "only A or B, but not both," the phrase "only A or B, but not both" would be used. Thus, use of the word "or" herein is inclusive and not exclusive.
Claims
1. 1. A computer-implemented method for auditing results of a machine learning model, comprising: retrieving a set of state estimates for original time series data values from a database under audit, said set of state estimates being associated with journal entries describing changes to said database under audit, each of said state estimates being generated by a state estimation calculation for one of said time series data values, said method further comprising: inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; Retrieving said original time series data values from said database under audit; comparing the original time series data values with the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match; generating a signal that the database under audit (i) has not been modified if the original time series and the reconstructed time series match, and (ii) has been modified if the original time series and the reconstructed time series do not match.
2. training a multivariate state estimation model with a set of training values selected from the original time series values; decomposing a matrix associated with the multivariate state estimation model into a set of eigenvectors; selecting a subset of principal eigenvectors from the set of eigenvectors; and generating a restricted multivariate state estimation model from the subset of principal eigenvectors. The method of claim 1 , wherein inverting the state estimate calculation further comprises generating an inverse of a calculation in which the constrained multivariate state estimation model forms a state estimate.
3. excluding training data values from the original time series data values from the database under audit; pre-processing the remaining original time series data values to mitigate the effects of sensor impairments and generating a model that records changes to the remaining original time series data; and performing state estimation on the preprocessed remaining original time series data values using the restricted multivariate state estimation model to create a compressed time series database.
4. pre-processing the original time series values to mitigate the effect of sensor impairments on the quality of the original time series values; generating a data preprocessing model that records one or more changes to the original time series values during the preprocessing; The inversion of the state estimate calculation further comprises: deriving the data preprocessing model; and reversing the pre-processing described by the data pre-processing model for each of the state estimates.
5. A computer-implemented method for auditing results of a machine learning model, comprising: retrieving a set of state estimates for original time series data values from a database under audit, each of said state estimates being generated by a state estimation calculation for one of said time series data values, said method further comprising: inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; Retrieving said original time series data values from said database under audit; comparing the original time series data values with the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match; generating a signal that the database under audit (i) has not been modified if the original and reconstructed time series match, and (ii) has been modified if the original and reconstructed time series do not match; and generating an electronic data report data structure, the electronic data report data structure comprising: a preprocessing model that records one or more changes to the original time series values during preprocessing to mitigate the effects of sensor impairments on the quality of the original time series values; and a compressed time series database, the compressed time series database being generated by performing state estimation with a restricted multivariate state estimation model and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model, the electronic data report data structure further comprising: (i) a set of training values selected from the original time series values and used to train the restricted multivariate state estimation model; and (ii) the restricted multivariate state estimation model.
6. A computer-implemented method for auditing results of a machine learning model, comprising: retrieving a set of state estimates for original time series data values from a database under audit, each of said state estimates being generated by a state estimation calculation for one of said time series data values, said method further comprising: inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; Retrieving said original time series data values from said database under audit; comparing the original time series data values with the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match; generating a signal that the database under audit (i) has not been modified if the original time series and the reconstructed time series match, and (ii) has been modified if the original time series and the reconstructed time series do not match; The inversion of the state estimate calculation further comprises: identifying an inverse state estimate calculation that undoes the steps performed by the state estimate calculation to form the state estimate from the original time series data values; generating a set of inverted state estimates for the original time series data from the set of state estimates, each of the inverted state estimates being generated by performing the inverted state estimation calculation on one of the set of state estimates; The method of claim 1, wherein the reconstructed time series data values for each of the state estimates are based on the inverted state estimate.
7. (i) in response to a signal that the database under audit has not been modified, generating an electronic verification report message indicating that the database under audit has been certified as uncorrupted and unaltered; (ii) in response to a signal that the database under audit has been modified, generating an electronic verification report message indicating that the database under audit has been corrupted or tampered with; The method of any one of claims 1 to 6, further comprising the step of transmitting the generated electronic verification report to a computing device and causing the electronic verification report message to be stored by the computing device or displayed by the computing device.
8. 8. A computer program storing computer executable instructions for auditing results of a machine learning model, the computer executable instructions, when executed by at least a processor of a computer, causing the computer to perform the method of any one of claims 1 to 7.
9. 1. A computer program product storing computer-executable instructions for auditing results of a machine learning model, the computer-executable instructions, when executed by at least a processor of a computer, causing the computer to: retrieving a set of state estimates for original time series data values from the database under audit, said state estimates having been generated by a state estimation calculation for each of said time series data values, said computer-executable instructions, when executed by at least a processor of said computer, further causing said computer to: inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; retrieving said original time series data values from said database under audit; comparing the original time series data values to the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match; generating a signal that the database under audit (i) has not been modified if the original time series and the reconstructed time series match, and (ii) has been modified if the original time series and the reconstructed time series do not match; training a multivariate state estimation model with a set of training values selected from the original time series values; decomposing a matrix associated with the multivariate state estimation model into a set of eigenvectors; selecting a subset of eigenvectors from the set of eigenvectors having maximum eigenvalues; generating a restricted multivariate state estimation model from the subset of eigenvectors; pre-processing the original time series values to mitigate the effect of sensor impairments on the quality of the original time series values; creating a data preprocessing model that records one or more changes to the original time series values during the preprocessing; performing state estimation on the original time series data values using the restricted multivariate state estimation model to generate a compressed time series database; generating a report including the data pre-processing model, the compressed time series database, and one or more of (i) the set of training values, and (ii) the restricted multivariate state estimation model; the set of state estimates being the set of state estimates included in the compressed time series database in the report, and the reconstructed time series data being generated based on the report.
10. 1. A computing system for auditing results of a machine learning model, comprising: A processor; a memory operatively connected to the processor; A computing system comprising: a non-transitory computer-readable medium operatively connected to the processor and the memory and storing computer-executable instructions, the computer-executable instructions, when executed by at least a processor of a computer, causing the computer to perform a method according to any one of claims 1 to 7.
11. A computing system for auditing results of a machine learning model, comprising: A processor; a memory operatively connected to the processor; a sensor interface operatively connected to the processor and the memory; and a non-transitory computer-readable medium operatively connected to the processor and the memory and storing computer-executable instructions, the computer-executable instructions, when executed by at least a processor of a computer, causing the computer to: retrieving from a database under audit a set of state estimates for the original time series data values received via said sensor interface, said state estimates having been generated by a state estimation calculation for each of said time series data values; and inverting the state estimation calculation for each of the state estimates to generate a reconstructed time series data value for each of the state estimates; retrieving said original time series data values from said database under audit; comparing the original time series data values to the reconstructed time series data values in a pairwise manner to determine whether the original and reconstructed time series match; generating a signal that the database under audit (i) has not been modified if the original time series and the reconstructed time series match, and (ii) has been modified if the original time series and the reconstructed time series do not match; The instructions for reversing the state estimation calculation further cause the computing system to generate an electronic data reporting data structure, the electronic data reporting data structure comprising: a preprocessing model that records one or more changes to the original time series values during preprocessing to mitigate the effects of sensor impairments on the quality of the original time series values; and a compressed time series database, the compressed time series database being generated by performing state estimation with a restricted multivariate state estimation model and excluding values from the compressed time series database that are not parameters of the restricted multivariate state estimation model, the electronic data report data structure further comprising: (i) a set of training values selected from the original time series values and used to train the restricted multivariate state estimation model; and (ii) the restricted multivariate state estimation model; The instructions for inverting the state estimate calculation further include causing the computer to: using an inverse state estimate calculation to undo the steps performed by said state estimate calculation; A computing system that inverts the preprocessing described by the preprocessing model for each of the state estimates.
Citation Information
Patent Citations
MSET-based process for certifying provenance of time-series data in a time-series database
US20190197145A1
Intelligent preprocessing of multi-dimensional time-series data
US20190286725A1