ShotaArima / demo-lowprofool

0 stars 0 forks source link

精度向上 #9

Open ShotaArima opened 1 month ago

ShotaArima commented 1 month ago
LowProFool:   0% 0/10 [00:09<?, ?it/s]
Deepfool:   0% 0/10 [00:00<?, ?it/s]
Method SuccessRate normdelta_mean n_std weighted_mean w_std mean_dists_at_org_weighted mdow_std mean_dists_at_tgt_weighted mdtw_std
0 lowProFool 0.1 5.802034e-08 0.0 7.347264e-09 0.0 1.038553 0.0 1.038553 0.0
1 DeepFool 0.1 6.594165e-01 0.0 1.401069e-01 0.0 1.038553 0.0 1.063907 0.0

これは多分うまく動作していないので、修正する必要あり image

ShotaArima commented 1 month ago

Claudeによるプレプリントとの比較のレビュー

  1. SuccessRate(成功率): 両方の手法で0.1(10%)となっていますが、これは非常に低い値です。通常、adversarial attacksの成功率はもっと高くなることが期待されます。
  2. normdelta_mean(平均摂動ノルム): LowProFoolの値(5.802034e-08)が極端に小さく、DeepFoolの値(6.594165e-01)と比べて大きな差があります。これは通常期待される挙動ではありません。
  3. weighted_mean(重み付き平均摂動ノルム): LowProFoolの値(7.347264e-09)が極端に小さく、DeepFoolの値(1.401069e-01)と比べて大きな差があります。これも通常期待される挙動ではありません。
  4. mean_dists_at_org_weighted と mean_dists_at_tgt_weighted: LowProFoolでこれらの値が同じ(1.038553)になっていることは不自然です。通常、元のサンプルと攻撃後のサンプルでの距離は異なるはずです。
  5. すべての標準偏差(n_std, w_std, mdow_std, mdtw_std)が0になっています。これは、すべてのサンプルで完全に同じ結果が得られたことを示唆しており、非常に不自然です。

    対策方法

    攻撃アルゴリズム(LowProFoolとDeepFool)の実装に問題がある可能性があります。特に、摂動の計算や適用方法を確認する必要があります。 評価指標の計算方法に問題がある可能性があります。特に、距離計算や成功率の判定方法を確認する必要があります。 データの前処理や正規化に問題がある可能性があります。極端に小さい値や、すべての標準偏差が0になっていることは、データのスケールに問題があることを示唆しています。 モデルの学習や評価に使用されているデータセットが適切でない、または十分に多様性がない可能性があります。

これらの問題を解決するためには、以下のステップを踏むことをお勧めします:

攻撃アルゴリズムの実装を詳細にレビューし、論文の記述と一致していることを確認する。 評価指標の計算方法を確認し、正しく実装されていることを確認する。 データの前処理と正規化の方法を確認し、適切なスケールになっていることを確認する。 より小さなサブセットのデータでテストを行い、各ステップの出力を詳細に確認する。 モデルの学習プロセスを確認し、適切に学習されていることを確認する。

ShotaArima commented 1 month ago
  1. LowProFool と DeepFool のパラメータ調整:

    • 反復回数を増やす
    • 学習率やステップサイズを調整する
    • 目的関数の重み付けパラメータ λ を調整する
  2. 特徴量の重要度ベクトル v の計算方法の確認:

    • Pearson 相関係数を使用しているか確認
    • 正規化方法が正しいか確認
  3. クリッピング処理の確認:

    • 生成された摂動が適切な範囲内に収まっているか確認
  4. 評価指標の計算方法の確認:

ShotaArima commented 1 week ago

今後の方針

ShotaArima commented 1 week ago

変更後の結果

Method SuccessRate normdelta_mean n_std weighted_mean w_std mean_dists_at_org_weighted mdow_std mean_dists_at_tgt_weighted mdtw_std
LowProFool 0.1 0.798194 0.0 0.254943 0.0 0.857679 0.0 0.791707 0.0
Deepfool 0.1 0.967399 0.0 0.300362 0.0 0.857679 0.0 0.821860 0.0

比較

image

ShotaArima commented 1 week ago

Claudeの評価

  1. 成功率(SuccessRate):
    • 両方の手法で0.1(10%)のままです。
    • 敵対的攻撃としてはまだ低い値です。
  2. 平均摂動ノルム(normdelta_mean):
    • LowProFool: 5.802034e-08から0.798194へ大幅に増加
    • DeepFool: 0.659417から0.967399へ若干増加
    • 二つの手法間の差が大幅に縮小しました。

      両手法の摂動ノルム(normdelta_meanとweighted_mean)がより現実的で比較可能になりました。これは、LowProFoolの値が極端に小さかった以前の結果からの大きな改善です。

  3. 重み付き平均摂動ノルム(weighted_mean):
    • LowProFool: 7.347264e-09から0.254943へ増加
    • DeepFool: 0.140107から0.300362へ増加
    • 値がより比較可能で現実的になりました。

      元のサンプルと目標サンプルでの重み付き平均距離(mean_dists_at_org_weightedとmean_dists_at_tgt_weighted)が両手法で異なる値になり、期待される挙動により近くなりました。

  4. 元のサンプルと目標サンプルでの重み付き平均距離:
    • LowProFool: 異なる値になりました(0.857679 vs 0.791707)
    • DeepFool: 異なる値になりました(0.857679 vs 0.821860)
    • これは以前の同一値の問題を解決しています。
  5. 標準偏差:
    • すべての標準偏差値(n_std, w_std, mdow_std, mdtw_std)が0のままです。
    • これはまだ異常で、すべてのサンプルで同一の結果が得られたことを示唆しています。

今後の変更