Publish trained Sofia Edge v0.1 with verified kernel controls
Browse files- LICENSE +201 -0
- NOTICE +13 -0
- README.md +65 -0
- SHA256SUMS.json +15 -0
- VERIFICATION.md +48 -0
- config.json +44 -0
- dataset.npz +3 -0
- inference.py +178 -0
- kernel_teacher.npz +3 -0
- metrics.json +171 -0
- model.npz +3 -0
- protocol.json +31 -0
- training_history.json +1 -0
- verification_report.json +228 -0
LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
NOTICE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Sofia Distilled v0.1
|
| 2 |
+
Copyright 2026 Rootcastle Engineering & Innovation
|
| 3 |
+
|
| 4 |
+
Sofia Edge contains newly trained NumPy model weights and original synthetic signal data.
|
| 5 |
+
Sofia Chat contains modified pretrained weights derived from Qwen/Qwen2.5-0.5B-Instruct,
|
| 6 |
+
copyright its respective authors, distributed under the Apache License 2.0.
|
| 7 |
+
Pinned upstream revision: 7ae557604adf67be50417f59c2c2f167def9a775.
|
| 8 |
+
|
| 9 |
+
The verifiable product-kernel method is informed by Batuhan Ayribas (2026),
|
| 10 |
+
Quantum Artificial Intelligence with Verifiable Kernels:
|
| 11 |
+
https://www.academia.edu/175377730/Quantum_Artificial_Intelligence_with_Verifiable_Kernels
|
| 12 |
+
The implementation, signal-learning task, distillation extension, and new experimental
|
| 13 |
+
results in this repository are separate from the manuscript's supplementary archive.
|
README.md
CHANGED
|
@@ -1,3 +1,68 @@
|
|
| 1 |
---
|
|
|
|
|
|
|
| 2 |
license: apache-2.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
language:
|
| 3 |
+
- en
|
| 4 |
license: apache-2.0
|
| 5 |
+
tags:
|
| 6 |
+
- sofia
|
| 7 |
+
- numpy
|
| 8 |
+
- knowledge-distillation
|
| 9 |
+
- quantum-inspired
|
| 10 |
+
- verifiable-kernels
|
| 11 |
+
- synthetic-data
|
| 12 |
+
- vibration-analysis
|
| 13 |
+
- experimental
|
| 14 |
---
|
| 15 |
+
|
| 16 |
+
# Sofia Edge Distilled v0.1
|
| 17 |
+
|
| 18 |
+
A **trained 325-parameter NumPy classifier** for five synthetic vibration scenarios: healthy, imbalance, misalignment, bearing impulses and rubbing. The teacher is centred kernel ridge regression using a product-rotation kernel with an exact efficient classical evaluation.
|
| 19 |
+
|
| 20 |
+
Developed by Rootcastle Engineering & Innovation. [Source and reproducible training](https://github.com/rootcastleco/sofia-distilled).
|
| 21 |
+
|
| 22 |
+
## Training
|
| 23 |
+
|
| 24 |
+
14 statistical/spectral features feed a 14 → 16 → 5 ReLU MLP. The teacher uses 600 fit examples and 200 validation examples; its 25-fit scale/penalty search is matched by an RBF control. After selection it is refitted on the 800 training/validation anchors. The student is trained for 120 epochs on 6,000 separately generated waveforms, with 1,000 student-validation examples for checkpoint selection.
|
| 25 |
+
|
| 26 |
+
The student objective combines hard-label cross-entropy and temperature-2 teacher-target KL. A supervised-only student with identical initialization, data, architecture and optimization budget is retained as a control. Train-only standardization precedes fixed arctangent angle encoding for the teacher.
|
| 27 |
+
|
| 28 |
+
## Held-out results
|
| 29 |
+
|
| 30 |
+
| Model | Synthetic test accuracy / balanced accuracy |
|
| 31 |
+
| --- | ---: |
|
| 32 |
+
| Product-kernel teacher | 99.933% |
|
| 33 |
+
| Matched-budget RBF teacher | 99.933% |
|
| 34 |
+
| Distilled student | 99.933% |
|
| 35 |
+
| Supervised-only student | 100.000% |
|
| 36 |
+
|
| 37 |
+
The balanced test set has 1,500 examples. The distilled student reaches 100.000% on a separately generated shaft-frequency shift of 43–65 Hz, versus 18–42 Hz during training. These results concern easy analytical formulas, not machine diagnosis. The control outperforms distillation on the in-distribution accuracy measure; no distillation quality advantage is claimed.
|
| 38 |
+
|
| 39 |
+
## Use
|
| 40 |
+
|
| 41 |
+
Download this repository, then run its standalone loader:
|
| 42 |
+
|
| 43 |
+
```python
|
| 44 |
+
import numpy as np
|
| 45 |
+
from inference import EdgeModel
|
| 46 |
+
|
| 47 |
+
model = EdgeModel(".")
|
| 48 |
+
signal = np.load("acceleration.npy", allow_pickle=False)
|
| 49 |
+
result = model.predict_signal(signal, sample_rate=2048, shaft_hz=25)
|
| 50 |
+
print(result)
|
| 51 |
+
```
|
| 52 |
+
|
| 53 |
+
Acceleration values must be in g. Training windows have 1,024 samples at 2,048 Hz. The loader validates feature order, dimensions, finiteness and the weight SHA-256 before inference.
|
| 54 |
+
|
| 55 |
+
## Artifacts and provenance
|
| 56 |
+
|
| 57 |
+
- `model.npz`: final float32 student parameters and training-only scaler.
|
| 58 |
+
- `config.json`: exact ordered feature schema and weight digest.
|
| 59 |
+
- `kernel_teacher.npz`: anchors, ridge coefficients, centring statistics and selected hyperparameters.
|
| 60 |
+
- `dataset.npz`: all fit/validation/test feature matrices, labels and held-out scores.
|
| 61 |
+
- `metrics.json`, `protocol.json`, `training_history.json`: measured results and run configuration.
|
| 62 |
+
- `verification_report.json`: independent kernel and noise control experiments.
|
| 63 |
+
|
| 64 |
+
The method follows [Quantum Artificial Intelligence with Verifiable Kernels](https://www.academia.edu/175377730/Quantum_Artificial_Intelligence_with_Verifiable_Kernels). Calculations use classical CPU hardware. Read `VERIFICATION.md` for exact scope.
|
| 65 |
+
|
| 66 |
+
## Limitations
|
| 67 |
+
|
| 68 |
+
No measured machine data, field validation or calibrated confidence. Softmax values are scores, not diagnostic certainty. The range check is a feature-distance heuristic. The model cannot validate arbitrary sensor placement, machines or units. It is intended for research and demonstration; it has no machinery actuation API. Only one Edge training seed was run. No quantum processor or quantum computational advantage is claimed.
|
SHA256SUMS.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"config.json": "87b9743e903f14022505f0702cf98a1761aa5f0db803347b965a931adeb62c3b",
|
| 3 |
+
"dataset.npz": "9a7f781845a6874922954411372651d8b0201f4dfd7b1ce29c3973fc2418093c",
|
| 4 |
+
"inference.py": "292239e30984cfd8fea2311b31371ca0bdef4f94019f7356bfb401d5be8394fd",
|
| 5 |
+
"kernel_teacher.npz": "ecf9bdeff242776a1db37760cdc30f00ade66f06dbf8ef80a6df4b85bf55967f",
|
| 6 |
+
"LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
| 7 |
+
"metrics.json": "74981e0b8b7a698aeed7c8d15f2f060ea0e7a636c4be67d03496e76210b01c9b",
|
| 8 |
+
"model.npz": "4ca49061fee1dff9237793a9300c2509cf631b6aafcb242b48f4b17af043583a",
|
| 9 |
+
"NOTICE": "14c2f6fb1f5eebbdb1a031058214480a4ba8f24ae07eee24655b2af28035b6a5",
|
| 10 |
+
"protocol.json": "cede6dadafda44f20aaa3faec1a85599860f8da40637bc2edee262a79769d68f",
|
| 11 |
+
"README.md": "d9143a9b8a822a400d52efb78133ae03cd39ec4cbd475f8c19b9a7390a2f4434",
|
| 12 |
+
"training_history.json": "a373e944f57c20778604433dba242ce6a21a51125a4fe8bedbaae8f59ace2134",
|
| 13 |
+
"VERIFICATION.md": "c295c9b52f51defd50e0400e0d30d1d4d0c6fc40fec5e74cc82a3bd83d3e339a",
|
| 14 |
+
"verification_report.json": "6a49a1e2b9fd729951f143fb55119696883dc75564d85c51ecdfc48ea41208ec"
|
| 15 |
+
}
|
VERIFICATION.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Verification and evidence scope
|
| 2 |
+
|
| 3 |
+
## Method source and scope
|
| 4 |
+
|
| 5 |
+
[Quantum Artificial Intelligence with Verifiable Kernels](https://www.academia.edu/175377730/Quantum_Artificial_Intelligence_with_Verifiable_Kernels), Batuhan Ayribas, September 2026, informs the kernel controls. This repository contains an independently written adaptation. Its new random seeds and outputs are not the manuscript's original supplementary archive.
|
| 6 |
+
|
| 7 |
+
All experiments here use classical numerical computation. A feature geometry described using quantum states can have a useful classical representation. Predictive scores alone do not establish quantum advantage.
|
| 8 |
+
|
| 9 |
+
## Evidence map
|
| 10 |
+
|
| 11 |
+
| Claim | Implementation | Retained evidence |
|
| 12 |
+
| --- | --- | --- |
|
| 13 |
+
| Product kernel equals a state-overlap calculation | `product_kernel`, `product_states` | `identity_audit`, parameterized tests |
|
| 14 |
+
| Product kernel equals explicit classical features | `trig_features` | maximum discrepancy across dimensions 1, 2, 4, 6, 8 |
|
| 15 |
+
| A shared terminal unitary preserves overlap | independent orthogonal matrices applied to state vectors | numerical discrepancy |
|
| 16 |
+
| Global depolarization produces the specified affine kernel | independent density matrices | density-versus-affine discrepancy |
|
| 17 |
+
| Matched regularization preserves exact centred ridge predictions | `CenteredRidge`, `depolarize` | prediction discrepancy, separate exact and shot results |
|
| 18 |
+
| Finite-shot measurement does not inherit exact invariance | binomial SWAP simulation, positive training eigenspace | 30 replicates at each noise/shot condition |
|
| 19 |
+
| Kernel teacher can be compressed into an Edge MLP | `kernel_training` | held-out predictions, supervised-only student control |
|
| 20 |
+
| Chat representation alignment actually appears in the loss | `chat_training` | training configuration and validation kernel MSE |
|
| 21 |
+
|
| 22 |
+
## Experiment protocol
|
| 23 |
+
|
| 24 |
+
Each of three small classification tasks uses 30 independent train/validation/test datasets. Product and RBF models use 25 validation fits each; linear uses five. Hyperparameters are selected on validation labels and then refitted on the training/validation union. Test labels are reserved for final reporting. Intervals are pointwise percentile bootstraps over the simulator replicates, with 2,000 resamples. No multiplicity-adjusted significance claim is made.
|
| 25 |
+
|
| 26 |
+
Finite-shot conditions use a separate fixed product model, a global state-depolarization channel, an ideal SWAP measurement estimator, and positive-eigenspace repair fitted using the training matrix. Negative overlap estimates are retained. No shot data are described as real device measurements.
|
| 27 |
+
|
| 28 |
+
The protocol is saved and hashed before computation. `datasets_and_predictions.npz` retains inputs, labels and score arrays. `classification_rows.json` and `noise_rows.json` retain seed-level metrics.
|
| 29 |
+
|
| 30 |
+
## Measured checks in the first local run
|
| 31 |
+
|
| 32 |
+
| Identity | Maximum absolute discrepancy |
|
| 33 |
+
| --- | ---: |
|
| 34 |
+
| State overlap versus direct classical kernel | 1.55e-15 |
|
| 35 |
+
| Explicit classical features versus direct kernel | 1.89e-15 |
|
| 36 |
+
| Shared terminal unitary | 1.78e-15 |
|
| 37 |
+
| Density-matrix global depolarization | 8.88e-16 |
|
| 38 |
+
| Matched-regularization prediction | 1.37e-13 |
|
| 39 |
+
|
| 40 |
+
These finite checks support the implementations at tested inputs; they do not replace mathematical proofs or certify a physical device. Original numerical reports, rather than rounded values in this document, are authoritative.
|
| 41 |
+
|
| 42 |
+
## Model-specific boundaries
|
| 43 |
+
|
| 44 |
+
Edge uses newly generated vibration formulas rather than recorded machinery data. Its angle encoding is a fixed `2 * atan` transformation after training-only feature standardization. Product-kernel and RBF teacher selection use identical scale/penalty budgets. The 325-parameter student combines hard-label cross-entropy with soft teacher targets. These targets are softened ridge scores, not calibrated probabilities.
|
| 45 |
+
|
| 46 |
+
Chat uses pretrained Qwen blocks, a frozen shared embedding/head and trainable LoRA adapters. Its kernel term compares four-dimensional sketches of response representations against eight training-only teacher landmarks. The sketch and angle map are fixed. This is a heuristic representation-alignment objective. The manuscript's exact ridge-noise identity applies to its specified kernel learner, not to the transformer or its generated answers.
|
| 47 |
+
|
| 48 |
+
The Chat test set contains different topic families from the training and validation sets. It still uses generated teacher answers as references. A lower teacher-reference cross-entropy is not a factuality, coding or safety benchmark. Broad quality and the separate effect of the kernel term require additional data, multiple training seeds, independent references and controlled ablations.
|
config.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_type": "sofia-edge-mlp",
|
| 3 |
+
"version": "0.1.0",
|
| 4 |
+
"role": "product-kernel-distilled-student",
|
| 5 |
+
"feature_schema": "sofia.synthetic-vibration.v1",
|
| 6 |
+
"feature_names": [
|
| 7 |
+
"log_rms",
|
| 8 |
+
"log_peak",
|
| 9 |
+
"kurtosis",
|
| 10 |
+
"crest_factor",
|
| 11 |
+
"shaft_energy",
|
| 12 |
+
"second_harmonic_energy",
|
| 13 |
+
"third_harmonic_energy",
|
| 14 |
+
"fourth_harmonic_energy",
|
| 15 |
+
"high_frequency_energy",
|
| 16 |
+
"spectral_flatness",
|
| 17 |
+
"spectral_entropy",
|
| 18 |
+
"envelope_kurtosis",
|
| 19 |
+
"log_envelope_rms",
|
| 20 |
+
"zero_crossing_rate"
|
| 21 |
+
],
|
| 22 |
+
"labels": [
|
| 23 |
+
"healthy",
|
| 24 |
+
"imbalance",
|
| 25 |
+
"misalignment",
|
| 26 |
+
"bearing_impulses",
|
| 27 |
+
"rubbing"
|
| 28 |
+
],
|
| 29 |
+
"dimensions": [
|
| 30 |
+
14,
|
| 31 |
+
16,
|
| 32 |
+
5
|
| 33 |
+
],
|
| 34 |
+
"input_unit": "g",
|
| 35 |
+
"weights_sha256": "4ca49061fee1dff9237793a9300c2509cf631b6aafcb242b48f4b17af043583a",
|
| 36 |
+
"parameter_count": 325,
|
| 37 |
+
"training_data": "analytical synthetic waveforms only",
|
| 38 |
+
"sample_rate_hz": 2048,
|
| 39 |
+
"window_size": 1024,
|
| 40 |
+
"training_shaft_hz": [
|
| 41 |
+
18,
|
| 42 |
+
42
|
| 43 |
+
]
|
| 44 |
+
}
|
dataset.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9a7f781845a6874922954411372651d8b0201f4dfd7b1ce29c3973fc2418093c
|
| 3 |
+
size 1479936
|
inference.py
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""NumPy signal classifier and reproducible synthetic waveform specification."""
|
| 2 |
+
|
| 3 |
+
from __future__ import annotations
|
| 4 |
+
|
| 5 |
+
import hashlib
|
| 6 |
+
import json
|
| 7 |
+
from itertools import pairwise
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
import numpy as np
|
| 11 |
+
|
| 12 |
+
LABELS = ("healthy", "imbalance", "misalignment", "bearing_impulses", "rubbing")
|
| 13 |
+
FEATURE_NAMES = (
|
| 14 |
+
"log_rms",
|
| 15 |
+
"log_peak",
|
| 16 |
+
"kurtosis",
|
| 17 |
+
"crest_factor",
|
| 18 |
+
"shaft_energy",
|
| 19 |
+
"second_harmonic_energy",
|
| 20 |
+
"third_harmonic_energy",
|
| 21 |
+
"fourth_harmonic_energy",
|
| 22 |
+
"high_frequency_energy",
|
| 23 |
+
"spectral_flatness",
|
| 24 |
+
"spectral_entropy",
|
| 25 |
+
"envelope_kurtosis",
|
| 26 |
+
"log_envelope_rms",
|
| 27 |
+
"zero_crossing_rate",
|
| 28 |
+
)
|
| 29 |
+
SCHEMA = "sofia.synthetic-vibration.v1"
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
def softmax(logits: np.ndarray, temperature: float = 1.0) -> np.ndarray:
|
| 33 |
+
z = logits / temperature
|
| 34 |
+
z = z - z.max(axis=-1, keepdims=True)
|
| 35 |
+
ex = np.exp(z)
|
| 36 |
+
return ex / ex.sum(axis=-1, keepdims=True)
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
def extract_features(signal: np.ndarray, sample_rate: float, shaft_hz: float) -> np.ndarray:
|
| 40 |
+
"""14 dimensionless/log features; amplitude input must be acceleration in g."""
|
| 41 |
+
x = np.asarray(signal, dtype=np.float64)
|
| 42 |
+
if x.ndim != 1 or x.size < 128 or not np.isfinite(x).all():
|
| 43 |
+
raise ValueError("signal must be a finite 1-D waveform with at least 128 samples")
|
| 44 |
+
if not np.isfinite(sample_rate) or sample_rate <= 0:
|
| 45 |
+
raise ValueError("sample_rate must be positive and finite")
|
| 46 |
+
if not np.isfinite(shaft_hz) or not 0 < shaft_hz < sample_rate / 10:
|
| 47 |
+
raise ValueError("shaft_hz must be positive and below sample_rate / 10")
|
| 48 |
+
x = x - x.mean()
|
| 49 |
+
eps = 1e-12
|
| 50 |
+
rms = np.sqrt(np.mean(x * x))
|
| 51 |
+
peak = np.max(np.abs(x))
|
| 52 |
+
if rms < 1e-9:
|
| 53 |
+
raise ValueError("constant or zero-energy signals cannot be classified")
|
| 54 |
+
power = np.abs(np.fft.rfft(x * np.hanning(x.size))) ** 2
|
| 55 |
+
freq = np.fft.rfftfreq(x.size, 1 / sample_rate)
|
| 56 |
+
total = power.sum() + eps
|
| 57 |
+
width = max(2 * sample_rate / x.size, shaft_hz * 0.12)
|
| 58 |
+
bands = [power[np.abs(freq - k * shaft_hz) < width].sum() / total for k in range(1, 5)]
|
| 59 |
+
dist = power / total
|
| 60 |
+
analytic_filter = np.zeros(x.size)
|
| 61 |
+
analytic_filter[0] = 1
|
| 62 |
+
analytic_filter[1 : (x.size + 1) // 2] = 2
|
| 63 |
+
if x.size % 2 == 0:
|
| 64 |
+
analytic_filter[x.size // 2] = 1
|
| 65 |
+
envelope = np.abs(np.fft.ifft(np.fft.fft(x) * analytic_filter))
|
| 66 |
+
env_center = envelope - envelope.mean()
|
| 67 |
+
env_var = np.mean(env_center**2)
|
| 68 |
+
return np.asarray(
|
| 69 |
+
[
|
| 70 |
+
np.log(rms + eps),
|
| 71 |
+
np.log(peak + eps),
|
| 72 |
+
np.mean(x**4) / (rms**4 + eps),
|
| 73 |
+
peak / rms,
|
| 74 |
+
*bands,
|
| 75 |
+
power[freq > sample_rate * 0.2].sum() / total,
|
| 76 |
+
np.exp(np.mean(np.log(power + eps))) / (power.mean() + eps),
|
| 77 |
+
-np.sum(dist * np.log(dist + eps)) / np.log(power.size),
|
| 78 |
+
np.mean(env_center**4) / (env_var**2 + eps),
|
| 79 |
+
np.log(np.sqrt(np.mean(envelope**2)) + eps),
|
| 80 |
+
np.mean(x[1:] * x[:-1] < 0),
|
| 81 |
+
],
|
| 82 |
+
dtype=np.float64,
|
| 83 |
+
)
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
def waveform(
|
| 87 |
+
label: int,
|
| 88 |
+
rng: np.random.Generator,
|
| 89 |
+
*,
|
| 90 |
+
shaft_hz: float,
|
| 91 |
+
sample_rate: float = 2048,
|
| 92 |
+
size: int = 1024,
|
| 93 |
+
) -> np.ndarray:
|
| 94 |
+
"""Analytical toy scenarios, not a simulation validated against real machinery."""
|
| 95 |
+
if label not in range(len(LABELS)):
|
| 96 |
+
raise ValueError("unknown scenario")
|
| 97 |
+
t = np.arange(size) / sample_rate
|
| 98 |
+
phase = rng.uniform(0, 2 * np.pi, 4)
|
| 99 |
+
fundamental = rng.uniform(0.15, 0.35)
|
| 100 |
+
second = rng.uniform(0.01, 0.04)
|
| 101 |
+
third = rng.uniform(0.005, 0.02)
|
| 102 |
+
if label == 1:
|
| 103 |
+
fundamental *= rng.uniform(3.0, 6.0)
|
| 104 |
+
if label == 2:
|
| 105 |
+
second = fundamental * rng.uniform(0.9, 1.8)
|
| 106 |
+
third = fundamental * rng.uniform(0.3, 0.8)
|
| 107 |
+
x = (
|
| 108 |
+
fundamental * np.sin(2 * np.pi * shaft_hz * t + phase[0])
|
| 109 |
+
+ second * np.sin(4 * np.pi * shaft_hz * t + phase[1])
|
| 110 |
+
+ third * np.sin(6 * np.pi * shaft_hz * t + phase[2])
|
| 111 |
+
)
|
| 112 |
+
x += rng.normal(0, rng.uniform(0.005, 0.025), size)
|
| 113 |
+
if label == 3:
|
| 114 |
+
period = sample_rate / (shaft_hz * rng.uniform(4.4, 5.2))
|
| 115 |
+
for start in np.arange(rng.uniform(0, period), size, period):
|
| 116 |
+
lag = np.arange(size - int(start)) / sample_rate
|
| 117 |
+
pulse = rng.uniform(0.7, 1.8) * np.exp(-lag * rng.uniform(180, 350))
|
| 118 |
+
x[int(start) :] += pulse * np.sin(2 * np.pi * rng.uniform(500, 750) * lag)
|
| 119 |
+
if label == 4:
|
| 120 |
+
x += rng.uniform(0.2, 0.5) * np.sin(2 * np.pi * shaft_hz * t + phase[3]) ** 3
|
| 121 |
+
x += rng.normal(0, rng.uniform(0.10, 0.22), size)
|
| 122 |
+
return x * rng.uniform(0.8, 1.2)
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
class EdgeModel:
|
| 126 |
+
"""Load verified, pickle-free weights and classify a signal or feature matrix."""
|
| 127 |
+
|
| 128 |
+
def __init__(self, folder: str | Path):
|
| 129 |
+
folder = Path(folder)
|
| 130 |
+
self.config = json.loads((folder / "config.json").read_text(encoding="utf-8"))
|
| 131 |
+
if self.config.get("feature_schema") != SCHEMA:
|
| 132 |
+
raise ValueError("unsupported feature schema")
|
| 133 |
+
if self.config.get("feature_names") != list(FEATURE_NAMES):
|
| 134 |
+
raise ValueError("feature ordering mismatch")
|
| 135 |
+
path = folder / "model.npz"
|
| 136 |
+
if hashlib.sha256(path.read_bytes()).hexdigest() != self.config["weights_sha256"]:
|
| 137 |
+
raise ValueError("weights failed SHA-256 verification")
|
| 138 |
+
with np.load(path, allow_pickle=False) as archive:
|
| 139 |
+
self.weights = {k: archive[k].copy() for k in archive.files}
|
| 140 |
+
dims = self.config["dimensions"]
|
| 141 |
+
if dims[0] != len(FEATURE_NAMES) or dims[-1] != len(LABELS):
|
| 142 |
+
raise ValueError("invalid input/output dimensions")
|
| 143 |
+
for i, (a, b) in enumerate(pairwise(dims)):
|
| 144 |
+
if self.weights[f"w{i}"].shape != (a, b) or self.weights[f"b{i}"].shape != (b,):
|
| 145 |
+
raise ValueError("invalid weight dimensions")
|
| 146 |
+
for name in ("mean", "scale"):
|
| 147 |
+
if self.weights[name].shape != (len(FEATURE_NAMES),):
|
| 148 |
+
raise ValueError("invalid scaler dimensions")
|
| 149 |
+
if not all(np.isfinite(v).all() for v in self.weights.values()):
|
| 150 |
+
raise ValueError("non-finite model parameters")
|
| 151 |
+
if (self.weights["scale"] <= 0).any():
|
| 152 |
+
raise ValueError("invalid feature scale")
|
| 153 |
+
|
| 154 |
+
def predict_features(self, features: np.ndarray) -> np.ndarray:
|
| 155 |
+
x = np.asarray(features, dtype=np.float64)
|
| 156 |
+
if x.ndim not in (1, 2) or x.shape[-1] != len(FEATURE_NAMES):
|
| 157 |
+
raise ValueError("expected 14 features per sample")
|
| 158 |
+
if not np.isfinite(x).all():
|
| 159 |
+
raise ValueError("features must be finite")
|
| 160 |
+
h = (x - self.weights["mean"]) / self.weights["scale"]
|
| 161 |
+
for i in range(len(self.config["dimensions"]) - 1):
|
| 162 |
+
h = h @ self.weights[f"w{i}"] + self.weights[f"b{i}"]
|
| 163 |
+
if i < len(self.config["dimensions"]) - 2:
|
| 164 |
+
h = np.maximum(h, 0)
|
| 165 |
+
return softmax(h)
|
| 166 |
+
|
| 167 |
+
def predict_signal(self, signal: np.ndarray, sample_rate: float, shaft_hz: float) -> dict:
|
| 168 |
+
features = extract_features(signal, sample_rate, shaft_hz)
|
| 169 |
+
p = self.predict_features(features)
|
| 170 |
+
z = np.abs((features - self.weights["mean"]) / self.weights["scale"])
|
| 171 |
+
return {
|
| 172 |
+
"label": LABELS[int(p.argmax())],
|
| 173 |
+
"probabilities": dict(zip(LABELS, p.tolist())),
|
| 174 |
+
"max_probability": float(p.max()),
|
| 175 |
+
"out_of_training_range": bool((z > 6).any()),
|
| 176 |
+
"feature_schema": SCHEMA,
|
| 177 |
+
"status": "experimental_synthetic_only",
|
| 178 |
+
}
|
kernel_teacher.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ecf9bdeff242776a1db37760cdc30f00ade66f06dbf8ef80a6df4b85bf55967f
|
| 3 |
+
size 130562
|
metrics.json
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"protocol_sha256": "cede6dadafda44f20aaa3faec1a85599860f8da40637bc2edee262a79769d68f",
|
| 3 |
+
"teacher_selected_scale": 0.5,
|
| 4 |
+
"teacher_selected_penalty": 0.0001,
|
| 5 |
+
"teacher_validation_balanced_accuracy": 1.0,
|
| 6 |
+
"teacher_test_balanced_accuracy": 0.9993333333333332,
|
| 7 |
+
"teacher_ood_balanced_accuracy": 1.0,
|
| 8 |
+
"rbf_selected": [
|
| 9 |
+
0.25,
|
| 10 |
+
0.01
|
| 11 |
+
],
|
| 12 |
+
"rbf_validation_balanced_accuracy": 1.0,
|
| 13 |
+
"rbf_test_balanced_accuracy": 0.9993333333333332,
|
| 14 |
+
"student": {
|
| 15 |
+
"accuracy": 0.9993333333333333,
|
| 16 |
+
"macro_f1": 0.9993333314814763,
|
| 17 |
+
"cross_entropy": 0.29937443104218475,
|
| 18 |
+
"confusion_matrix": [
|
| 19 |
+
[
|
| 20 |
+
300,
|
| 21 |
+
0,
|
| 22 |
+
0,
|
| 23 |
+
0,
|
| 24 |
+
0
|
| 25 |
+
],
|
| 26 |
+
[
|
| 27 |
+
1,
|
| 28 |
+
299,
|
| 29 |
+
0,
|
| 30 |
+
0,
|
| 31 |
+
0
|
| 32 |
+
],
|
| 33 |
+
[
|
| 34 |
+
0,
|
| 35 |
+
0,
|
| 36 |
+
300,
|
| 37 |
+
0,
|
| 38 |
+
0
|
| 39 |
+
],
|
| 40 |
+
[
|
| 41 |
+
0,
|
| 42 |
+
0,
|
| 43 |
+
0,
|
| 44 |
+
300,
|
| 45 |
+
0
|
| 46 |
+
],
|
| 47 |
+
[
|
| 48 |
+
0,
|
| 49 |
+
0,
|
| 50 |
+
0,
|
| 51 |
+
0,
|
| 52 |
+
300
|
| 53 |
+
]
|
| 54 |
+
],
|
| 55 |
+
"per_class_f1": {
|
| 56 |
+
"healthy": 0.9983361064891847,
|
| 57 |
+
"imbalance": 0.998330550918197,
|
| 58 |
+
"misalignment": 1.0,
|
| 59 |
+
"bearing_impulses": 1.0,
|
| 60 |
+
"rubbing": 1.0
|
| 61 |
+
}
|
| 62 |
+
},
|
| 63 |
+
"supervised_control": {
|
| 64 |
+
"accuracy": 1.0,
|
| 65 |
+
"macro_f1": 1.0,
|
| 66 |
+
"cross_entropy": 0.0009983560894549599,
|
| 67 |
+
"confusion_matrix": [
|
| 68 |
+
[
|
| 69 |
+
300,
|
| 70 |
+
0,
|
| 71 |
+
0,
|
| 72 |
+
0,
|
| 73 |
+
0
|
| 74 |
+
],
|
| 75 |
+
[
|
| 76 |
+
0,
|
| 77 |
+
300,
|
| 78 |
+
0,
|
| 79 |
+
0,
|
| 80 |
+
0
|
| 81 |
+
],
|
| 82 |
+
[
|
| 83 |
+
0,
|
| 84 |
+
0,
|
| 85 |
+
300,
|
| 86 |
+
0,
|
| 87 |
+
0
|
| 88 |
+
],
|
| 89 |
+
[
|
| 90 |
+
0,
|
| 91 |
+
0,
|
| 92 |
+
0,
|
| 93 |
+
300,
|
| 94 |
+
0
|
| 95 |
+
],
|
| 96 |
+
[
|
| 97 |
+
0,
|
| 98 |
+
0,
|
| 99 |
+
0,
|
| 100 |
+
0,
|
| 101 |
+
300
|
| 102 |
+
]
|
| 103 |
+
],
|
| 104 |
+
"per_class_f1": {
|
| 105 |
+
"healthy": 1.0,
|
| 106 |
+
"imbalance": 1.0,
|
| 107 |
+
"misalignment": 1.0,
|
| 108 |
+
"bearing_impulses": 1.0,
|
| 109 |
+
"rubbing": 1.0
|
| 110 |
+
}
|
| 111 |
+
},
|
| 112 |
+
"ood_student": {
|
| 113 |
+
"accuracy": 1.0,
|
| 114 |
+
"macro_f1": 1.0,
|
| 115 |
+
"cross_entropy": 0.3101353251954706,
|
| 116 |
+
"confusion_matrix": [
|
| 117 |
+
[
|
| 118 |
+
300,
|
| 119 |
+
0,
|
| 120 |
+
0,
|
| 121 |
+
0,
|
| 122 |
+
0
|
| 123 |
+
],
|
| 124 |
+
[
|
| 125 |
+
0,
|
| 126 |
+
300,
|
| 127 |
+
0,
|
| 128 |
+
0,
|
| 129 |
+
0
|
| 130 |
+
],
|
| 131 |
+
[
|
| 132 |
+
0,
|
| 133 |
+
0,
|
| 134 |
+
300,
|
| 135 |
+
0,
|
| 136 |
+
0
|
| 137 |
+
],
|
| 138 |
+
[
|
| 139 |
+
0,
|
| 140 |
+
0,
|
| 141 |
+
0,
|
| 142 |
+
300,
|
| 143 |
+
0
|
| 144 |
+
],
|
| 145 |
+
[
|
| 146 |
+
0,
|
| 147 |
+
0,
|
| 148 |
+
0,
|
| 149 |
+
0,
|
| 150 |
+
300
|
| 151 |
+
]
|
| 152 |
+
],
|
| 153 |
+
"per_class_f1": {
|
| 154 |
+
"healthy": 1.0,
|
| 155 |
+
"imbalance": 1.0,
|
| 156 |
+
"misalignment": 1.0,
|
| 157 |
+
"bearing_impulses": 1.0,
|
| 158 |
+
"rubbing": 1.0
|
| 159 |
+
}
|
| 160 |
+
},
|
| 161 |
+
"student_teacher_agreement": 1.0,
|
| 162 |
+
"student_parameters": 325,
|
| 163 |
+
"teacher_anchor_count": 800,
|
| 164 |
+
"quantum_hardware": false,
|
| 165 |
+
"limitations": [
|
| 166 |
+
"Synthetic scenarios only; no field diagnostic validation",
|
| 167 |
+
"Kernel has an exact efficient classical equivalent",
|
| 168 |
+
"One model-training seed; no inferential benefit claim for distillation",
|
| 169 |
+
"Scores/softmax are not calibrated confidence"
|
| 170 |
+
]
|
| 171 |
+
}
|
model.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4ca49061fee1dff9237793a9300c2509cf631b6aafcb242b48f4b17af043583a
|
| 3 |
+
size 2860
|
protocol.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"method": "product-rotation centred kernel ridge teacher + neural KL distillation",
|
| 3 |
+
"source": "https://www.academia.edu/175377730/Quantum_Artificial_Intelligence_with_Verifiable_Kernels",
|
| 4 |
+
"scales": [
|
| 5 |
+
0.25,
|
| 6 |
+
0.5,
|
| 7 |
+
1.0,
|
| 8 |
+
2.0,
|
| 9 |
+
4.0
|
| 10 |
+
],
|
| 11 |
+
"ridge_penalties": [
|
| 12 |
+
1.0,
|
| 13 |
+
0.1,
|
| 14 |
+
0.01,
|
| 15 |
+
0.001,
|
| 16 |
+
0.0001
|
| 17 |
+
],
|
| 18 |
+
"epochs": 120,
|
| 19 |
+
"seed": 20261008,
|
| 20 |
+
"teacher_fit": 600,
|
| 21 |
+
"teacher_validation": 200,
|
| 22 |
+
"student_train": 6000,
|
| 23 |
+
"student_validation": 1000,
|
| 24 |
+
"test": 1500,
|
| 25 |
+
"ood_test": 1500,
|
| 26 |
+
"selection": "teacher: first best validation balanced accuracy; student: minimum validation CE",
|
| 27 |
+
"neural_temperature": 2.0,
|
| 28 |
+
"kernel_score_temperature": 0.5,
|
| 29 |
+
"alpha": 0.7,
|
| 30 |
+
"quantum_hardware": false
|
| 31 |
+
}
|
training_history.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
{"student": [{"epoch": 1, "validation_cross_entropy": 1.2601966798935031}, {"epoch": 2, "validation_cross_entropy": 0.6491911070775727}, {"epoch": 3, "validation_cross_entropy": 0.4452612037654874}, {"epoch": 4, "validation_cross_entropy": 0.39497726735890376}, {"epoch": 5, "validation_cross_entropy": 0.37197895595967384}, {"epoch": 6, "validation_cross_entropy": 0.3644510307259807}, {"epoch": 7, "validation_cross_entropy": 0.3519962525854446}, {"epoch": 8, "validation_cross_entropy": 0.3451534086057271}, {"epoch": 9, "validation_cross_entropy": 0.33647484023417573}, {"epoch": 10, "validation_cross_entropy": 0.3351620426198082}, {"epoch": 11, "validation_cross_entropy": 0.3343183745430953}, {"epoch": 12, "validation_cross_entropy": 0.3323443218673766}, {"epoch": 13, "validation_cross_entropy": 0.329955486929636}, {"epoch": 14, "validation_cross_entropy": 0.3289798761341665}, {"epoch": 15, "validation_cross_entropy": 0.32886078162351895}, {"epoch": 16, "validation_cross_entropy": 0.3275648602004766}, {"epoch": 17, "validation_cross_entropy": 0.3277136929125563}, {"epoch": 18, "validation_cross_entropy": 0.32452863066994164}, {"epoch": 19, "validation_cross_entropy": 0.32478024801593486}, {"epoch": 20, "validation_cross_entropy": 0.32180937822281747}, {"epoch": 21, "validation_cross_entropy": 0.3234576102593669}, {"epoch": 22, "validation_cross_entropy": 0.3251367243411227}, {"epoch": 23, "validation_cross_entropy": 0.32145705605159536}, {"epoch": 24, "validation_cross_entropy": 0.31914837933319723}, {"epoch": 25, "validation_cross_entropy": 0.3185772777086838}, {"epoch": 26, "validation_cross_entropy": 0.3199956263715453}, {"epoch": 27, "validation_cross_entropy": 0.3221413016143792}, {"epoch": 28, "validation_cross_entropy": 0.31874078073555334}, {"epoch": 29, "validation_cross_entropy": 0.3187333356678996}, {"epoch": 30, "validation_cross_entropy": 0.31870866554300176}, {"epoch": 31, "validation_cross_entropy": 0.31572781808559847}, {"epoch": 32, "validation_cross_entropy": 0.3175813330065156}, {"epoch": 33, "validation_cross_entropy": 0.3174368839826636}, {"epoch": 34, "validation_cross_entropy": 0.31610409910001364}, {"epoch": 35, "validation_cross_entropy": 0.31875587477518524}, {"epoch": 36, "validation_cross_entropy": 0.31798827442453703}, {"epoch": 37, "validation_cross_entropy": 0.3157404162202939}, {"epoch": 38, "validation_cross_entropy": 0.31637549602626264}, {"epoch": 39, "validation_cross_entropy": 0.31649531162487954}, {"epoch": 40, "validation_cross_entropy": 0.312201079135852}, {"epoch": 41, "validation_cross_entropy": 0.31384208893933796}, {"epoch": 42, "validation_cross_entropy": 0.31198384494255765}, {"epoch": 43, "validation_cross_entropy": 0.3132496403547117}, {"epoch": 44, "validation_cross_entropy": 0.31192353466496364}, {"epoch": 45, "validation_cross_entropy": 0.3120820503064717}, {"epoch": 46, "validation_cross_entropy": 0.3117987972240845}, {"epoch": 47, "validation_cross_entropy": 0.3136897765102924}, {"epoch": 48, "validation_cross_entropy": 0.31113652299739364}, {"epoch": 49, "validation_cross_entropy": 0.3139825105265206}, {"epoch": 50, "validation_cross_entropy": 0.3118169711472922}, {"epoch": 51, "validation_cross_entropy": 0.3107536812444768}, {"epoch": 52, "validation_cross_entropy": 0.3104826761826659}, {"epoch": 53, "validation_cross_entropy": 0.3113745483415777}, {"epoch": 54, "validation_cross_entropy": 0.31317644580953297}, {"epoch": 55, "validation_cross_entropy": 0.31119328407988567}, {"epoch": 56, "validation_cross_entropy": 0.31061056319251307}, {"epoch": 57, "validation_cross_entropy": 0.3081476324400562}, {"epoch": 58, "validation_cross_entropy": 0.31025491823824564}, {"epoch": 59, "validation_cross_entropy": 0.30964159274724307}, {"epoch": 60, "validation_cross_entropy": 0.3111124264867394}, {"epoch": 61, "validation_cross_entropy": 0.3093438248500206}, {"epoch": 62, "validation_cross_entropy": 0.30462905371607596}, {"epoch": 63, "validation_cross_entropy": 0.3103234554387216}, {"epoch": 64, "validation_cross_entropy": 0.30878679100576323}, {"epoch": 65, "validation_cross_entropy": 0.30944098285947097}, {"epoch": 66, "validation_cross_entropy": 0.3079394440615398}, {"epoch": 67, "validation_cross_entropy": 0.3089659280104627}, {"epoch": 68, "validation_cross_entropy": 0.30892049782131564}, {"epoch": 69, "validation_cross_entropy": 0.3085409239497624}, {"epoch": 70, "validation_cross_entropy": 0.307929034312149}, {"epoch": 71, "validation_cross_entropy": 0.3094911491813688}, {"epoch": 72, "validation_cross_entropy": 0.30831248345447465}, {"epoch": 73, "validation_cross_entropy": 0.3090238557978256}, {"epoch": 74, "validation_cross_entropy": 0.31020780954616567}, {"epoch": 75, "validation_cross_entropy": 0.3092080860181055}, {"epoch": 76, "validation_cross_entropy": 0.30713059243127916}, {"epoch": 77, "validation_cross_entropy": 0.30637109976886384}, {"epoch": 78, "validation_cross_entropy": 0.3071282437622053}, {"epoch": 79, "validation_cross_entropy": 0.3064803895477124}, {"epoch": 80, "validation_cross_entropy": 0.30738123821282887}, {"epoch": 81, "validation_cross_entropy": 0.30662414851039727}, {"epoch": 82, "validation_cross_entropy": 0.30811322900797244}, {"epoch": 83, "validation_cross_entropy": 0.308197284293842}, {"epoch": 84, "validation_cross_entropy": 0.30736906694671356}, {"epoch": 85, "validation_cross_entropy": 0.30548411287043037}, {"epoch": 86, "validation_cross_entropy": 0.30529351727692583}, {"epoch": 87, "validation_cross_entropy": 0.30939884353353647}, {"epoch": 88, "validation_cross_entropy": 0.3075847721544309}, {"epoch": 89, "validation_cross_entropy": 0.30530710776382997}, {"epoch": 90, "validation_cross_entropy": 0.30596567496440924}, {"epoch": 91, "validation_cross_entropy": 0.30418737113099215}, {"epoch": 92, "validation_cross_entropy": 0.3045731119476082}, {"epoch": 93, "validation_cross_entropy": 0.3081070283362417}, {"epoch": 94, "validation_cross_entropy": 0.30677790512832087}, {"epoch": 95, "validation_cross_entropy": 0.3050710143865774}, {"epoch": 96, "validation_cross_entropy": 0.306954961588494}, {"epoch": 97, "validation_cross_entropy": 0.3042762047365868}, {"epoch": 98, "validation_cross_entropy": 0.30545133075252284}, {"epoch": 99, "validation_cross_entropy": 0.3050258446011338}, {"epoch": 100, "validation_cross_entropy": 0.3043994647430774}, {"epoch": 101, "validation_cross_entropy": 0.30329974061301035}, {"epoch": 102, "validation_cross_entropy": 0.30801658325591497}, {"epoch": 103, "validation_cross_entropy": 0.30657972912018455}, {"epoch": 104, "validation_cross_entropy": 0.305365992855654}, {"epoch": 105, "validation_cross_entropy": 0.3046664309200733}, {"epoch": 106, "validation_cross_entropy": 0.3053533740551454}, {"epoch": 107, "validation_cross_entropy": 0.30420721724284894}, {"epoch": 108, "validation_cross_entropy": 0.3056645989220308}, {"epoch": 109, "validation_cross_entropy": 0.301839981709715}, {"epoch": 110, "validation_cross_entropy": 0.3056300704382629}, {"epoch": 111, "validation_cross_entropy": 0.30685545967278577}, {"epoch": 112, "validation_cross_entropy": 0.30583992786722775}, {"epoch": 113, "validation_cross_entropy": 0.30449899998129226}, {"epoch": 114, "validation_cross_entropy": 0.30785182296755337}, {"epoch": 115, "validation_cross_entropy": 0.30411168613404443}, {"epoch": 116, "validation_cross_entropy": 0.3045032153114363}, {"epoch": 117, "validation_cross_entropy": 0.30590833529028655}, {"epoch": 118, "validation_cross_entropy": 0.3050099576229875}, {"epoch": 119, "validation_cross_entropy": 0.3057579365292877}, {"epoch": 120, "validation_cross_entropy": 0.30341390124383666}], "supervised_control": [{"epoch": 1, "validation_cross_entropy": 1.1744596274521222}, {"epoch": 2, "validation_cross_entropy": 0.47576219105272255}, {"epoch": 3, "validation_cross_entropy": 0.21176320529042192}, {"epoch": 4, "validation_cross_entropy": 0.11891686357570659}, {"epoch": 5, "validation_cross_entropy": 0.07787201536836638}, {"epoch": 6, "validation_cross_entropy": 0.05607977696219362}, {"epoch": 7, "validation_cross_entropy": 0.042872837376362424}, {"epoch": 8, "validation_cross_entropy": 0.03443929224312737}, {"epoch": 9, "validation_cross_entropy": 0.028693299493150817}, {"epoch": 10, "validation_cross_entropy": 0.02447715147611956}, {"epoch": 11, "validation_cross_entropy": 0.021435536604281567}, {"epoch": 12, "validation_cross_entropy": 0.018970128203105212}, {"epoch": 13, "validation_cross_entropy": 0.017055201724902175}, {"epoch": 14, "validation_cross_entropy": 0.015511598123785823}, {"epoch": 15, "validation_cross_entropy": 0.014283636154283337}, {"epoch": 16, "validation_cross_entropy": 0.013127788236331147}, {"epoch": 17, "validation_cross_entropy": 0.01228405059606982}, {"epoch": 18, "validation_cross_entropy": 0.01166191294590928}, {"epoch": 19, "validation_cross_entropy": 0.010910146977577839}, {"epoch": 20, "validation_cross_entropy": 0.010254096633317309}, {"epoch": 21, "validation_cross_entropy": 0.009795725829744181}, {"epoch": 22, "validation_cross_entropy": 0.009305140753067868}, {"epoch": 23, "validation_cross_entropy": 0.008907348274664799}, {"epoch": 24, "validation_cross_entropy": 0.008525277373373328}, {"epoch": 25, "validation_cross_entropy": 0.008189840083360145}, {"epoch": 26, "validation_cross_entropy": 0.007904251256333714}, {"epoch": 27, "validation_cross_entropy": 0.007579300114614053}, {"epoch": 28, "validation_cross_entropy": 0.007466600000844233}, {"epoch": 29, "validation_cross_entropy": 0.007188998203570088}, {"epoch": 30, "validation_cross_entropy": 0.0070324761637250545}, {"epoch": 31, "validation_cross_entropy": 0.006723979123613189}, {"epoch": 32, "validation_cross_entropy": 0.0065234340698891525}, {"epoch": 33, "validation_cross_entropy": 0.006335611293800519}, {"epoch": 34, "validation_cross_entropy": 0.00621767913384188}, {"epoch": 35, "validation_cross_entropy": 0.006040350743547447}, {"epoch": 36, "validation_cross_entropy": 0.005899990451110966}, {"epoch": 37, "validation_cross_entropy": 0.0057422483940863835}, {"epoch": 38, "validation_cross_entropy": 0.005676299417968222}, {"epoch": 39, "validation_cross_entropy": 0.005520689338340027}, {"epoch": 40, "validation_cross_entropy": 0.00536957424107421}, {"epoch": 41, "validation_cross_entropy": 0.005355566999483499}, {"epoch": 42, "validation_cross_entropy": 0.005249632192988918}, {"epoch": 43, "validation_cross_entropy": 0.005076586738922337}, {"epoch": 44, "validation_cross_entropy": 0.0050419982411756496}, {"epoch": 45, "validation_cross_entropy": 0.004967493807432032}, {"epoch": 46, "validation_cross_entropy": 0.004836998705130578}, {"epoch": 47, "validation_cross_entropy": 0.004773742698756834}, {"epoch": 48, "validation_cross_entropy": 0.0046607548472564365}, {"epoch": 49, "validation_cross_entropy": 0.004699458574781088}, {"epoch": 50, "validation_cross_entropy": 0.004552175179371812}, {"epoch": 51, "validation_cross_entropy": 0.004549795603697558}, {"epoch": 52, "validation_cross_entropy": 0.004405537218623022}, {"epoch": 53, "validation_cross_entropy": 0.004589844295065136}, {"epoch": 54, "validation_cross_entropy": 0.00450038621503257}, {"epoch": 55, "validation_cross_entropy": 0.0042804578152705625}, {"epoch": 56, "validation_cross_entropy": 0.0042166314093256595}, {"epoch": 57, "validation_cross_entropy": 0.004222587531120828}, {"epoch": 58, "validation_cross_entropy": 0.004288623457484411}, {"epoch": 59, "validation_cross_entropy": 0.004152498106367061}, {"epoch": 60, "validation_cross_entropy": 0.004099534497994771}, {"epoch": 61, "validation_cross_entropy": 0.004164490950002252}, {"epoch": 62, "validation_cross_entropy": 0.0040189363893369245}, {"epoch": 63, "validation_cross_entropy": 0.003975867098489912}, {"epoch": 64, "validation_cross_entropy": 0.003910118166363517}, {"epoch": 65, "validation_cross_entropy": 0.003909604047369938}, {"epoch": 66, "validation_cross_entropy": 0.003928012417512028}, {"epoch": 67, "validation_cross_entropy": 0.0038716623952450304}, {"epoch": 68, "validation_cross_entropy": 0.004019133512483651}, {"epoch": 69, "validation_cross_entropy": 0.003964237218992694}, {"epoch": 70, "validation_cross_entropy": 0.003758046834957457}, {"epoch": 71, "validation_cross_entropy": 0.003985102388405805}, {"epoch": 72, "validation_cross_entropy": 0.003835436326392665}, {"epoch": 73, "validation_cross_entropy": 0.003777124596516684}, {"epoch": 74, "validation_cross_entropy": 0.0037350087013036447}, {"epoch": 75, "validation_cross_entropy": 0.0038894218318352163}, {"epoch": 76, "validation_cross_entropy": 0.003905477879128488}, {"epoch": 77, "validation_cross_entropy": 0.0037724092512508457}, {"epoch": 78, "validation_cross_entropy": 0.0037691224729854006}, {"epoch": 79, "validation_cross_entropy": 0.003802105787368898}, {"epoch": 80, "validation_cross_entropy": 0.003499300264191766}, {"epoch": 81, "validation_cross_entropy": 0.003517641121043174}, {"epoch": 82, "validation_cross_entropy": 0.0036330925278182467}, {"epoch": 83, "validation_cross_entropy": 0.0035536586339903133}, {"epoch": 84, "validation_cross_entropy": 0.0035335967236381437}, {"epoch": 85, "validation_cross_entropy": 0.003914166400565895}, {"epoch": 86, "validation_cross_entropy": 0.0039150689480980955}, {"epoch": 87, "validation_cross_entropy": 0.0035089610969423427}, {"epoch": 88, "validation_cross_entropy": 0.003491109463324726}, {"epoch": 89, "validation_cross_entropy": 0.003401042185694017}, {"epoch": 90, "validation_cross_entropy": 0.0033759305853536775}, {"epoch": 91, "validation_cross_entropy": 0.0035486927673413454}, {"epoch": 92, "validation_cross_entropy": 0.003559967667121899}, {"epoch": 93, "validation_cross_entropy": 0.003415568927605756}, {"epoch": 94, "validation_cross_entropy": 0.0035603415139061883}, {"epoch": 95, "validation_cross_entropy": 0.0035763939135046584}, {"epoch": 96, "validation_cross_entropy": 0.0034344747672373456}, {"epoch": 97, "validation_cross_entropy": 0.003457503221656484}, {"epoch": 98, "validation_cross_entropy": 0.0035720366214516087}, {"epoch": 99, "validation_cross_entropy": 0.0035506973754160123}, {"epoch": 100, "validation_cross_entropy": 0.0033736307372652726}, {"epoch": 101, "validation_cross_entropy": 0.003774551438137671}, {"epoch": 102, "validation_cross_entropy": 0.0034051948175203278}, {"epoch": 103, "validation_cross_entropy": 0.0034246644106372495}, {"epoch": 104, "validation_cross_entropy": 0.0036252266453073363}, {"epoch": 105, "validation_cross_entropy": 0.0033794153330321862}, {"epoch": 106, "validation_cross_entropy": 0.0035680273421085946}, {"epoch": 107, "validation_cross_entropy": 0.003351436101135421}, {"epoch": 108, "validation_cross_entropy": 0.003582040680797433}, {"epoch": 109, "validation_cross_entropy": 0.003437399607001559}, {"epoch": 110, "validation_cross_entropy": 0.0034925516518471626}, {"epoch": 111, "validation_cross_entropy": 0.003710185669451589}, {"epoch": 112, "validation_cross_entropy": 0.0035816958504944333}, {"epoch": 113, "validation_cross_entropy": 0.003693552094208808}, {"epoch": 114, "validation_cross_entropy": 0.003639107452094469}, {"epoch": 115, "validation_cross_entropy": 0.003323313303090309}, {"epoch": 116, "validation_cross_entropy": 0.0036354591192187618}, {"epoch": 117, "validation_cross_entropy": 0.0034584557896582516}, {"epoch": 118, "validation_cross_entropy": 0.003423943705534734}, {"epoch": 119, "validation_cross_entropy": 0.0037141499567681893}, {"epoch": 120, "validation_cross_entropy": 0.003634478761376334}]}
|
verification_report.json
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"protocol_sha256": "e96a631fba939c9c4ff0159970af0dedf250ae47e0a257e788952facc19302fe",
|
| 3 |
+
"identity_audit": {
|
| 4 |
+
"tested_dimensions": [
|
| 5 |
+
1,
|
| 6 |
+
2,
|
| 7 |
+
4,
|
| 8 |
+
6,
|
| 9 |
+
8
|
| 10 |
+
],
|
| 11 |
+
"max_absolute_errors": {
|
| 12 |
+
"state_overlap": 1.5543122344752192e-15,
|
| 13 |
+
"explicit_classical_features": 1.887379141862766e-15,
|
| 14 |
+
"shared_terminal_unitary": 1.7763568394002505e-15,
|
| 15 |
+
"density_depolarization": 8.881784197001252e-16,
|
| 16 |
+
"matched_regularization_predictions": 1.3722356584366935e-13
|
| 17 |
+
},
|
| 18 |
+
"tolerance": 1e-10,
|
| 19 |
+
"passed": true
|
| 20 |
+
},
|
| 21 |
+
"classification": {
|
| 22 |
+
"linear": {
|
| 23 |
+
"linear": {
|
| 24 |
+
"mean": 0.8990547506759446,
|
| 25 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 26 |
+
0.8905778919494346,
|
| 27 |
+
0.9080410457070308
|
| 28 |
+
]
|
| 29 |
+
},
|
| 30 |
+
"rbf": {
|
| 31 |
+
"mean": 0.8915385238696076,
|
| 32 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 33 |
+
0.8808848859401918,
|
| 34 |
+
0.9017696004743362
|
| 35 |
+
]
|
| 36 |
+
},
|
| 37 |
+
"product": {
|
| 38 |
+
"mean": 0.894664148738211,
|
| 39 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 40 |
+
0.8845207440158689,
|
| 41 |
+
0.9027463739375565
|
| 42 |
+
]
|
| 43 |
+
},
|
| 44 |
+
"paired_product_minus_rbf": {
|
| 45 |
+
"mean": 0.003125624868603368,
|
| 46 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 47 |
+
-0.0018605010807794804,
|
| 48 |
+
0.008131033044835976
|
| 49 |
+
]
|
| 50 |
+
}
|
| 51 |
+
},
|
| 52 |
+
"parity": {
|
| 53 |
+
"linear": {
|
| 54 |
+
"mean": 0.5028841874243367,
|
| 55 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 56 |
+
0.49080839380402325,
|
| 57 |
+
0.519132485287299
|
| 58 |
+
]
|
| 59 |
+
},
|
| 60 |
+
"rbf": {
|
| 61 |
+
"mean": 0.8203626608192057,
|
| 62 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 63 |
+
0.8034552187602456,
|
| 64 |
+
0.8341240758295138
|
| 65 |
+
]
|
| 66 |
+
},
|
| 67 |
+
"product": {
|
| 68 |
+
"mean": 0.822049461514475,
|
| 69 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 70 |
+
0.8126506544004204,
|
| 71 |
+
0.8314817390676141
|
| 72 |
+
]
|
| 73 |
+
},
|
| 74 |
+
"paired_product_minus_rbf": {
|
| 75 |
+
"mean": 0.0016868006952691602,
|
| 76 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 77 |
+
-0.010633324172694792,
|
| 78 |
+
0.015101091355045044
|
| 79 |
+
]
|
| 80 |
+
}
|
| 81 |
+
},
|
| 82 |
+
"periodic": {
|
| 83 |
+
"linear": {
|
| 84 |
+
"mean": 0.4985395120653596,
|
| 85 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 86 |
+
0.48605662481431083,
|
| 87 |
+
0.511621684499136
|
| 88 |
+
]
|
| 89 |
+
},
|
| 90 |
+
"rbf": {
|
| 91 |
+
"mean": 0.7488281954140097,
|
| 92 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 93 |
+
0.7345789112454911,
|
| 94 |
+
0.7623602798417655
|
| 95 |
+
]
|
| 96 |
+
},
|
| 97 |
+
"product": {
|
| 98 |
+
"mean": 0.7763930847833862,
|
| 99 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 100 |
+
0.7594338297594408,
|
| 101 |
+
0.7928698152772927
|
| 102 |
+
]
|
| 103 |
+
},
|
| 104 |
+
"paired_product_minus_rbf": {
|
| 105 |
+
"mean": 0.027564889369376365,
|
| 106 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 107 |
+
0.013405835960971902,
|
| 108 |
+
0.04203532549312493
|
| 109 |
+
]
|
| 110 |
+
}
|
| 111 |
+
}
|
| 112 |
+
},
|
| 113 |
+
"finite_shot": [
|
| 114 |
+
{
|
| 115 |
+
"p": 0,
|
| 116 |
+
"shots": 128,
|
| 117 |
+
"mean": 0.7421184311986793,
|
| 118 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 119 |
+
0.7301282505456886,
|
| 120 |
+
0.7532273161205679
|
| 121 |
+
]
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"p": 0,
|
| 125 |
+
"shots": 512,
|
| 126 |
+
"mean": 0.7786768127491859,
|
| 127 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 128 |
+
0.7693467864122973,
|
| 129 |
+
0.7880595745949988
|
| 130 |
+
]
|
| 131 |
+
},
|
| 132 |
+
{
|
| 133 |
+
"p": 0,
|
| 134 |
+
"shots": 2048,
|
| 135 |
+
"mean": 0.7933635911406733,
|
| 136 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 137 |
+
0.7819439386598241,
|
| 138 |
+
0.8047489585994149
|
| 139 |
+
]
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"p": 0,
|
| 143 |
+
"shots": 8192,
|
| 144 |
+
"mean": 0.7966825902757054,
|
| 145 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 146 |
+
0.785557644566881,
|
| 147 |
+
0.8078337606133397
|
| 148 |
+
]
|
| 149 |
+
},
|
| 150 |
+
{
|
| 151 |
+
"p": 0.5,
|
| 152 |
+
"shots": 128,
|
| 153 |
+
"mean": 0.5979244230828672,
|
| 154 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 155 |
+
0.587549767394819,
|
| 156 |
+
0.6090187123148318
|
| 157 |
+
]
|
| 158 |
+
},
|
| 159 |
+
{
|
| 160 |
+
"p": 0.5,
|
| 161 |
+
"shots": 512,
|
| 162 |
+
"mean": 0.6787137092666977,
|
| 163 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 164 |
+
0.6686411049014853,
|
| 165 |
+
0.6892424197358125
|
| 166 |
+
]
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"p": 0.5,
|
| 170 |
+
"shots": 2048,
|
| 171 |
+
"mean": 0.7434465305258456,
|
| 172 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 173 |
+
0.7325316608179067,
|
| 174 |
+
0.7537586653898614
|
| 175 |
+
]
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"p": 0.5,
|
| 179 |
+
"shots": 8192,
|
| 180 |
+
"mean": 0.7715403512151265,
|
| 181 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 182 |
+
0.7602132668326237,
|
| 183 |
+
0.7830647138901051
|
| 184 |
+
]
|
| 185 |
+
},
|
| 186 |
+
{
|
| 187 |
+
"p": 0.75,
|
| 188 |
+
"shots": 128,
|
| 189 |
+
"mean": 0.5154667269959292,
|
| 190 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 191 |
+
0.503913330538118,
|
| 192 |
+
0.527168812563535
|
| 193 |
+
]
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"p": 0.75,
|
| 197 |
+
"shots": 512,
|
| 198 |
+
"mean": 0.5482200122659916,
|
| 199 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 200 |
+
0.5393337922100797,
|
| 201 |
+
0.5574780950359814
|
| 202 |
+
]
|
| 203 |
+
},
|
| 204 |
+
{
|
| 205 |
+
"p": 0.75,
|
| 206 |
+
"shots": 2048,
|
| 207 |
+
"mean": 0.5972580764837044,
|
| 208 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 209 |
+
0.5866191680169636,
|
| 210 |
+
0.6077339829870697
|
| 211 |
+
]
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"p": 0.75,
|
| 215 |
+
"shots": 8192,
|
| 216 |
+
"mean": 0.670901263655826,
|
| 217 |
+
"pointwise_95_percent_bootstrap_ci": [
|
| 218 |
+
0.658262633433527,
|
| 219 |
+
0.6828841769463315
|
| 220 |
+
]
|
| 221 |
+
}
|
| 222 |
+
],
|
| 223 |
+
"replicates": 30,
|
| 224 |
+
"quantum_hardware": false,
|
| 225 |
+
"interpretation": "Any product-kernel performance is shared by its exact classical equivalent; no quantum advantage claim",
|
| 226 |
+
"scope": "independent adapted implementation; not a reproduction of original seed-level archive",
|
| 227 |
+
"intervals": "pointwise percentile bootstrap over independent simulator replicates; 2000 resamples; no significance testing"
|
| 228 |
+
}
|