nkowne63rt's picture
Add files using upload-large-folder tool
b4b9524 verified
|
Raw
History Blame Contribute Delete
11.1 kB
# Experiment Report
## Summary
- opt_gapは最適なpartition+mappingとの差分ノイズで、0が最適一致を示す。
- 監督学習とRLを同一スケールで比較するため、val_opt_gap/opt_gapを採用。
- opt_gap正規化係数: min=0.0000, std=157.6755 (報酬もstdで正規化)。
- RLはpolicy loss/entropy/approx_klを学習状況の指標として記録する。
- PPOはvalue loss/clip frac/explained varも診断指標として記録する。
## Tables
### Supervised summary
| run | model | hidden | epochs | final_val_opt_gap | best_val_opt_gap |
| --- | --- | --- | --- | --- | --- |
| cnn_h128-64_lr0.001 | cnn | 128,64 | 5 | 0.6025 | 0.6025 |
| mlp_h128-64_lr0.001 | mlp | 128,64 | 5 | 0.1741 | 0.1701 |
| vector_h128-64_lr0.001 | vector | 128,64 | 5 | 0.0681 | 0.0681 |
### RL summary
| run | algo | hidden | episodes | final_reward_ma | opt_gap_ep200 | opt_gap_ep500 | final_opt_gap | best_opt_gap | avg_opt_gap |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ppo_h64-32_ep500 | ppo | 64,32 | 500 | -0.0956 | 0.1053 | 0.0949 | 0.0949 | 0.0902 | 0.2247 |
| rl_h64-32_ep500 | rl | 64,32 | 500 | -0.8185 | 1.2689 | 0.6225 | 0.6225 | 0.5287 | 0.9880 |
## Random baseline
- ランダム分割(9960回)の平均opt_gap: 1.0038
## Sample inputs/outputs
### Sample 960
```json
{
"index": 960,
"input": {
"circuit_layers": [
{
"type": "1q",
"qubits": [
0,
1,
3,
4,
5
]
},
{
"type": "2q",
"qubits": [
0,
3
]
},
{
"type": "1q",
"qubits": [
2,
4,
5
]
},
{
"type": "2q",
"qubits": [
2,
3
]
}
],
"machine": {
"one_q_order": [
3,
4,
5,
0,
1,
2
],
"two_q_order": [
[
0,
5
],
[
0,
2
],
[
4,
5
],
[
1,
3
],
[
0,
1
],
[
0,
4
],
[
1,
2
],
[
1,
5
],
[
3,
4
],
[
2,
5
],
[
2,
3
],
[
0,
3
],
[
3,
5
],
[
1,
4
],
[
2,
4
]
]
}
},
"optimal_partition": [
false,
true,
false,
false,
false,
false
],
"supervised": {
"cnn": {
"partition": [
true,
false,
false,
false,
false,
false
],
"mapping": [
0,
1,
2,
4,
5,
3
],
"opt_gap": 0.7800830861646056
},
"mlp": {
"partition": [
false,
true,
false,
false,
false,
false
],
"mapping": [
0,
1,
2,
3,
4,
5
],
"opt_gap": 0.13952705606196197
},
"vector": {
"partition": [
false,
true,
false,
false,
false,
false
],
"mapping": [
0,
3,
5,
4,
1,
2
],
"opt_gap": 0.08878994476670309
}
},
"rl": {
"start_partition": [
false,
false,
false,
false,
true,
true
],
"start_noise": 39.0,
"final_partition": [
false,
false,
false,
false,
false,
false
],
"final_noise": 36.0,
"start_mapping": [
0,
1,
2,
3,
4,
5
],
"final_mapping": [
2,
1,
0,
4,
5,
3
],
"start_opt_gap": 0.13952705606196197,
"opt_gap": 0.1205006393262399
}
}
```
### Sample 143
```json
{
"index": 143,
"input": {
"circuit_layers": [
{
"type": "1q",
"qubits": [
1,
3,
5
]
},
{
"type": "2q",
"qubits": [
1,
4
]
},
{
"type": "1q",
"qubits": [
0,
2,
5
]
},
{
"type": "2q",
"qubits": [
0,
3
]
}
],
"machine": {
"one_q_order": [
1,
4,
5,
0,
3,
2
],
"two_q_order": [
[
0,
1
],
[
1,
3
],
[
1,
4
],
[
2,
4
],
[
2,
3
],
[
0,
4
],
[
1,
2
],
[
0,
5
],
[
3,
4
],
[
1,
5
],
[
3,
5
],
[
0,
2
],
[
0,
3
],
[
2,
5
],
[
4,
5
]
]
}
},
"optimal_partition": [
false,
false,
true,
false,
false,
false
],
"supervised": {
"cnn": {
"partition": [
true,
false,
false,
false,
false,
false
],
"mapping": [
0,
1,
2,
4,
5,
3
],
"opt_gap": 0.57713464098357
},
"mlp": {
"partition": [
false,
false,
true,
false,
false,
false
],
"mapping": [
0,
3,
2,
5,
4,
1
],
"opt_gap": 0.11415850041433254
},
"vector": {
"partition": [
false,
false,
true,
false,
false,
false
],
"mapping": [
1,
5,
2,
4,
0,
3
],
"opt_gap": 0.06342138911907363
}
},
"rl": {
"start_partition": [
true,
true,
true,
true,
false,
false
],
"start_noise": 132.0,
"final_partition": [
false,
false,
false,
false,
false,
false
],
"final_noise": 25.0,
"start_mapping": [
0,
1,
2,
3,
4,
5
],
"final_mapping": [
2,
1,
0,
4,
5,
3
],
"start_opt_gap": 0.7547145305169762,
"opt_gap": 0.07610566694288835
}
}
```
### Sample 1887
```json
{
"index": 1887,
"input": {
"circuit_layers": [
{
"type": "1q",
"qubits": []
},
{
"type": "2q",
"qubits": [
2,
3
]
},
{
"type": "1q",
"qubits": [
0,
2,
3,
5
]
},
{
"type": "2q",
"qubits": [
1,
5
]
}
],
"machine": {
"one_q_order": [
0,
1,
4,
2,
3,
5
],
"two_q_order": [
[
2,
5
],
[
1,
4
],
[
1,
2
],
[
2,
4
],
[
0,
1
],
[
4,
5
],
[
0,
4
],
[
0,
2
],
[
2,
3
],
[
1,
3
],
[
1,
5
],
[
0,
5
],
[
3,
4
],
[
0,
3
],
[
3,
5
]
]
}
},
"optimal_partition": [
true,
false,
false,
false,
false,
false
],
"supervised": {
"cnn": {
"partition": [
true,
false,
false,
false,
false,
false
],
"mapping": [
0,
1,
2,
4,
5,
3
],
"opt_gap": 0.07610566694288835
},
"mlp": {
"partition": [
true,
false,
false,
false,
false,
false
],
"mapping": [
0,
1,
5,
3,
4,
2
],
"opt_gap": 0.11415850041433254
},
"vector": {
"partition": [
true,
false,
false,
false,
false,
false
],
"mapping": [
3,
1,
0,
5,
4,
2
],
"opt_gap": 0.09513208367861045
}
},
"rl": {
"start_partition": [
false,
false,
true,
true,
false,
true
],
"start_noise": 100.0,
"final_partition": [
false,
false,
false,
false,
false,
false
],
"final_noise": 24.0,
"start_mapping": [
0,
1,
2,
3,
4,
5
],
"final_mapping": [
2,
1,
0,
4,
5,
3
],
"start_opt_gap": 0.57713464098357,
"opt_gap": 0.09513208367861045
}
}
```
## RL validation (100 samples)
- after avg_opt_gap: 0.0949, best: 0.0000, worst: 0.1839
- before avg_opt_gap: 1.0043, best: 0.0127, worst: 3.7102
## Images
- learning curves: reports_6q/learning_curves.png
- zoom (mlp/vector): reports_6q/learning_curves_zoom.png
- rl val opt_gap (after): reports_6q/rl_val_opt_gap_after.png
- rl val opt_gap (before): reports_6q/rl_val_opt_gap_before.png
- rl reward moving avg: reports_6q/rl_reward_mavg.png
- rl policy metrics: reports_6q/rl_policy_metrics.png
- ppo diagnostics: reports_6q/ppo_diagnostics.png
## Image notes
- learning_curves.png: 2x2でmlp/vector/cnnのval opt_gapとrl opt_gapを表示。凡例の`h=64,32`は隠れ層構成、`rl h=64,32`/`ppo h=64,32`はアルゴリズムと隠れ層を示す。
- learning_curves_zoom.png: mlp/vectorのみのval opt_gapをズーム表示。凡例はモデル名と隠れ層構成。
- rl_val_opt_gap_after.png: RLで得た最終partition+mappingのopt_gapヒストグラム。凡例なし。
- rl_val_opt_gap_before.png: 初期partition+mappingのopt_gapヒストグラム。凡例なし。
- rl_reward_mavg.png: window=20の報酬移動平均。凡例はアルゴリズムと隠れ層。
- rl_policy_metrics.png: policy loss/entropy/approx_klの推移。凡例はアルゴリズムと隠れ層。
- ppo_diagnostics.png: value loss/clip frac/explained var/approx_kl/policy entropyの推移。凡例はPPOの隠れ層。