Skip to content

gorkemulas2005/CNN_HyperParameter_Optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DAGM 2007 Endüstriyel Kusur Tespitinde GA ve Bayesian TPE ile CNN Hiperparametre Optimizasyonu

Hazırlayanlar: Ulaş Görkem Kazan — 23291785 Bora Doğru — 23291786

Bu depo, DAGM 2007 sentetik endüstriyel görüntülerinde defect / no_defect ikili sınıflandırması için Genetik Algoritma (GA) ve Optuna multivariate Tree-structured Parzen Estimator (TPE) yöntemlerini dört CNN ailesi üzerinde kontrollü biçimde karşılaştırır. Çalışmanın amacı yeni bir optimizer önermek değil; aynı veri, aynı model ailesi, aynı ayrık arama uzayı, aynı sekiz adaylık başlangıç tasarımı, aynı validation macro-F1 hedefi ve aynı benzersiz aday bütçesi altında GA ile TPE'nin çözüm kalitesi, arama verimliliği, hesaplama maliyeti ve ID/OOD genelleme davranışını ölçmektir.

Bu proje dokümantasyonu, tamamlanan final deney çıktıları kullanılarak hazırlanmıştır. Sayısal sonuçlar final_comparison_table.csv, search_method_comparison.csv, final_results_checkpoint.json, best_params_all.json ve final_architecture_summary.csv dosyalarından alınmıştır. Görseller paket içindeki assets/readme/ klasöründen gömülür.


İçindekiler

  1. Problem Tanımı
  2. Araştırma Sorusu ve Hipotezler
  3. Veri Seti ve Sızıntı Kontrolü
  4. Görüntü Pipeline'ı
  5. Model Aileleri
  6. Hiperparametre Arama Uzayları
  7. Eğitim ve HPO Protokolü
  8. Final Görseller
  9. Final Performans Sonuçları
  10. Model Bazlı Deney Yorumları
  11. Metrik Bazlı Değerlendirme
  12. Seçilen Hiperparametrelerin Yorumu
  13. Hipotez Değerlendirmesi
  14. Çalıştırma
  15. Sınırlılıklar
  16. Kaynakça ve Kod Eşleştirmesi

Problem Tanımı

Endüstriyel optik kontrolde kusurlar çoğu zaman görüntünün çok küçük bir bölümünü kaplar. DAGM 2007'de görüntüler gri seviye sentetik tekstürlerden oluşur; her örnek no_defect veya defect olarak sınıflandırılır. Kusurlu örneklerde maske dosyası vardır, fakat bu projede maskeler segmentasyon etiketi olarak kullanılmaz. Maske yalnızca görüntünün kusurlu olup olmadığını belirlemek için etiket kaynağıdır.

Bu problemde accuracy tek başına güvenilir değildir. Çünkü test kümelerinde kusurlu örnek oranı yaklaşık %13 civarındadır; model sürekli no_defect tahmin ederse accuracy yüksek görünebilir. Bu nedenle HPO objective olarak validation macro-F1 seçilmiştir. Finalde accuracy, balanced accuracy, macro precision/recall/F1, defect precision/recall/F1, specificity, PR-AUC, ROC-AUC ve DAGM maliyeti birlikte raporlanır.

DAGM maliyeti şu şekilde tanımlanır:

C_DAGM = FP + 20 * FN

Bu maliyet, kusurlu ürünü kaçırmanın (FN) yanlış alarmdan (FP) 20 kat daha pahalı kabul edildiği endüstriyel senaryoyu temsil eder.


Araştırma Sorusu ve Hipotezler

Ana araştırma sorusu:

Aynı CNN ailesi, aynı veri protokolü, aynı ayrık arama uzayı, aynı ilk sekiz aday, aynı validation macro-F1 objective'i ve aynı benzersiz aday bütçesi altında GA ile TPE; çözüm kalitesi, örnek verimliliği, hesaplama maliyeti ve ID/OOD genelleme bakımından nasıl ayrışır?

Model ailesi bloklama değişkenidir. Bu yüzden asıl karşılaştırma önce aynı model içinde yapılır: Custom GA ile Custom TPE, VGG16 GA ile VGG16 TPE gibi. VGG16 ile Custom CNN'i doğrudan karşılaştırmak transfer learning etkisiyle model kapasitesi etkisini arama yöntemi etkisine karıştıracağı için ikincil yorumdur.

Önceden tanımlanan hipotezler:

  • H1: TPE, pretrained model ailelerinde GA'ya göre daha belirgin avantaj gösterecektir.
  • H2: GA, rastgele başlatılan custom model ailelerinde TPE'ye göre daha belirgin avantaj gösterecektir.

Final sonuçlar bu iki hipotezi tek yönlü ve güçlü biçimde desteklememektedir. VGG16'de iki yöntem aynı shared-initial adayı seçmiştir; ResNet50'de TPE validation F1 ve OOD cost açısından küçük/bağlama bağlı avantaj üretirken OOD macro-F1'de GA daha yüksektir. Custom CNN'de TPE daha iyi görünürken, Custom V2'de GA final macro-F1 bakımından daha dengeli davranmıştır. Bu nedenle sonuç, "bir optimizer evrensel olarak üstündür" şeklinde değil, "model ailesi, metrik ve domain shift birlikte değerlendirilmelidir" şeklinde okunmalıdır.


Veri Seti ve Sızıntı Kontrolü

DAGM Class1Class10 klasörleri hedef sınıf değil, farklı sentetik tekstür/kusur üretim domainleridir.

Bölüm Domainler Kullanım
Train Class1–Class6 / Train HPO aday eğitimi ve final eğitim
Validation Class1–Class6 / Train içinden Fitness, early stopping, model seçimi
ID test Class1–Class6 / Test Görülen domainlerde final test
OOD test Class7–Class10 / Test Görülmeyen domainlerde final test

Seed 42 ile her geliştirme domaininden ve her etiketten 15 validation görüntüsü ayrılmıştır.

Bölüm No defect Defect Toplam
Train havuzu 2,914 356 3,270
Validation 90 90 180
ID test 2,996 454 3,450
OOD test 4,000 600 4,600

Train havuzu yaklaşık 8:1 oranında no_defect ağırlıklıdır. Bu nedenle train sırasında WeightedRandomSampler kullanılır. Sampler zaten sınıf dengesini ele aldığı için loss tarafında class weight kullanılmaz; aksi halde dengesizlik iki kez düzeltilmiş olurdu. Validation seti dengeli ve domain-stratified tutulur. ID ve OOD test setleri HPO bitene kadar kapalıdır.


Görüntü Pipeline'ı

Pipeline şu şekildedir:

512x512 grayscale PNG → 224x224 resize → 3 kanala kopyalama → normalization → CNN

DAGM görüntüleri gri seviyedir. Buna rağmen VGG16 ve ResNet50 gibi ImageNet-pretrained omurgalar üç kanallı girdi beklediği için gri kanal üç kanala kopyalanır. Bu işlem yeni renk bilgisi üretmez; yalnızca tek gri sinyali R=G=B olacak şekilde pretrained konvolüsyon katmanlarıyla uyumlu hale getirir.

Normalization:

mean = [0.449, 0.449, 0.449]
std  = [0.226, 0.226, 0.226]

Bu değerler DAGM'den hesaplanmış dataset istatistikleri değildir. Proje bağlamındaki anlamı, gri görüntüleri ImageNet-pretrained omurgaların beklediği giriş ölçeğine yakın tutmaktır. Böylece VGG16/ResNet50'nin ilk katmanlarındaki pretrained filtreler tamamen farklı bir piksel dağılımı ile karşılaşmaz. Custom modeller açısından da aynı normalization kullanıldığı için GA/TPE karşılaştırmasında model içi adalet korunur.

Train augmentation:

  • Yatay/dikey çevirme
  • ±10 derece rotasyon
  • Brightness/contrast jitter 0.1
  • Gaussian noise std=0.015

Validation, ID ve OOD testte yalnız resize + normalization uygulanır. Random Erasing kullanılmaz; çünkü DAGM kusurları küçük alan kapladığından kusur bölgesini tamamen silip görüntü etiketiyle görüntü içeriğini çelişkili hale getirebilir.


Model Aileleri

Dört CNN ailesi kullanılmıştır:

1. Custom CNN

Depthwise-separable convolution, residual shortcut, BatchNorm, LeakyReLU, opsiyonel Squeeze-and-Excitation ve lokal/global spatial head içerir. Head yalnız Global Average Pooling değildir. Kodda 4x4 AdaptiveMaxPool ile lokal kusur kanıtı, 1x1 AdaptiveAvgPool ile global temsil birleştirilir. Proje açısından bu önemlidir; çünkü kusur alanı küçük olduğunda yalnız global ortalama kusur sinyalini seyreltebilir.

2. Custom CNN V2

Aranabilir Conv-BN-ReLU-Pool bloklarından oluşur. Block count, base filters, kernel, stride, padding, pooling türü, pool kernel/stride ve channel schedule arama uzayındadır. Custom V2 daha küçük parametre sayısıyla mimari arama etkisini gözlemlemek için kullanılmıştır.

3. VGG16

ImageNet ağırlıklarıyla başlar. Son feature modüllerinin açılma miktarı ve classifier dense boyutu aranır. VGG16'nin tam bağlı classifier girdisi büyüktür; bu nedenle dense head ve dropout seçimi overfitting açısından önemlidir.

4. ResNet50

ImageNet ağırlıklarıyla başlar. Head veya head + son Layer4 residual bloğu eğitilir. Residual bağlantılar optimizasyonu kolaylaştırabilir; fakat OOD sonuçları gösterdiği gibi kolay optimizasyon her zaman en iyi domain genellemesi anlamına gelmez.


Hiperparametre Arama Uzayları

Ortak eğitim hiperparametreleri

Parametre Transfer modelleri Custom modelleri
Learning rate 1e-5, 5e-5, 1e-4, 3e-4 3e-4, 1e-3, 3e-3
Dropout 0.1, 0.2, 0.3, 0.4 0.0, 0.1, 0.2, 0.3
Optimizer AdamW, SGD-Nesterov, RMSprop AdamW, RMSprop
Batch size 16, 32, 64 16, 32

Model-specific arama uzayları

Model Aranan model parametreleri
VGG16 dense units {128, 256, 384, 512}, fine-tune modules {4, 8, 12, 16}
ResNet50 dense units {128, 256, 384, 512}, unfreeze Layer4 block {0, 1}
Custom CNN base filters {16, 32, 64}, blocks {3, 4}, kernel {3, 5}, stem/conv stride {1, 2}, padding {same, valid}, pooling {max, avg}, pool kernel {2, 3}, pool stride {1, 2}, channel schedule {constant, doubling, plateau}, SE {off, on}
Custom CNN V2 base filters {8, 16, 32} ve Custom ile aynı diğer topoloji parametreleri; SE yok

Custom adaylarda son feature map boyutu 14×14 ile 56×56 dışında kalırsa aday sessizce düzeltilmez, geçersiz sayılır. Bu karar deneysel açıdan önemlidir; çünkü önerilen genotip ile eğitilen fenotipin aynı kalmasını sağlar.


Eğitim ve HPO Protokolü

Training loss:

unweighted CrossEntropyLoss
label_smoothing = 0.0

HPO objective training loss değil, adayın eğitim süresince gördüğü en iyi validation macro-F1 değeridir:

fitness(candidate) = max_epoch validation_macro_F1

Early stopping validation macro-F1 izler, min_delta=1e-4 kullanır ve en iyi epoch ağırlıkları geri yüklenir. Learning rate scheduler Cosine Annealing'dir:

eta_min = 0.1 * initial_lr

Weight decay transfer modellerinde 1e-4, custom modellerde 1e-5 kullanılır. AdamW için bu decoupled weight decay anlamına gelir; RMSprop ve SGD-Nesterov için optimizer'ın kendi L2-style weight decay davranışıdır.

GA

Parametre Değer
Population 8
Generation 3
Elite 1
Selection Stochastic Universal Sampling
Uniform crossover individual 0.7, gene 0.5
Uniform int. mutation individual 0.2, gene 0.2

İlk sekiz aday TPE ile ortaktır. Tekrar eden hiperparametre imzaları cache'ten alınır, yeniden eğitilmez.

Bayesian TPE

Kod çıktılarındaki bayesian/BAYESIAN etiketi, bu README tablolarında yöntem adı olarak TPE biçiminde gösterilmiştir.

Parametre Değer
Yöntem Optuna multivariate TPE
Direction maximize
Seed 42
İlk 8 trial GA ile aynı başlangıç adayları
n_ei_candidates 24
Unique trial budget Aynı modelde GA'nın gerçek benzersiz eğitilmiş aday sayısına eşit

TPE burada Gaussian Process değildir; iyi/kötü gözlemler için yoğunluk modelleri kurar. Objective maximize edildiği için iyi gözlemler yüksek validation macro-F1 tarafındadır.


Final Görseller

Aşağıdaki görseller final deney çalışmasında üretilen PNG çıktılarıdır. Bu final README paketinde görseller assets/readme/ klasöründen yerel olarak gömülür; GitHub'a yüklerken README.md ile birlikte assets/readme/ klasörünü de korumak gerekir.

Genel final karşılaştırma grafiği

Final ID/OOD karşılaştırma grafiği

Arama trajectory grafikleri

Model GA TPE
Custom CNN (aynı grafik)
Custom CNN V2 (aynı grafik)
VGG16 (aynı grafik)
ResNet50 (aynı grafik)

Learning curve grafikleri

Model GA TPE
Custom CNN
Custom CNN V2
VGG16
ResNet50

Confusion matrix görselleri

Model Yöntem ID OOD
Custom CNN GA
Custom CNN TPE
Custom CNN V2 GA
Custom CNN V2 TPE
VGG16 GA
VGG16 TPE
ResNet50 GA
ResNet50 TPE

Final Performans Sonuçları

Özet ID/OOD sonuçları

Model Yöntem ID Acc ID Macro-F1 ID Defect Recall ID Cost OOD Acc OOD Macro-F1 OOD Defect Recall OOD Cost
CUSTOM TPE 0.8959 0.8139 0.8811 1385 0.6700 0.5196 0.4233 8092
CUSTOM GA 0.8643 0.7699 0.8502 1760 0.7143 0.5039 0.2417 9959
CUSTOM V2 TPE 0.5299 0.4664 0.7026 4187 0.5002 0.4213 0.5017 7980
CUSTOM V2 GA 0.7881 0.6530 0.6233 3980 0.5065 0.4312 0.5467 7438
VGG16 TPE 0.9896 0.9773 0.9648 340 0.7002 0.5761 0.6100 5825
VGG16 GA 0.9896 0.9773 0.9648 340 0.7002 0.5761 0.6100 5825
RESNET50 TPE 0.8125 0.7194 0.8987 1521 0.3909 0.3777 0.9400 3486
RESNET50 GA 0.8655 0.7678 0.8238 1984 0.4459 0.4172 0.8583 4164

Bu özet tablo üç önemli noktayı gösterir:

  1. ID performansında VGG16 açık ara en yüksek sonucu vermiştir. ID macro-F1 0.9773, ID defect recall 0.9648 ve ID cost 340 değerleri hem GA hem TPE için aynıdır. Bunun nedeni iki yöntemin de aynı shared-initial adayı seçmesidir.
  2. OOD tarafında en yüksek macro-F1 yine VGG16'dadır (0.5761), fakat en düşük OOD DAGM maliyeti ResNet50-TPE'dadır (3486). Bu, macro-F1 ile endüstriyel maliyetin aynı şeyi optimize etmediğini gösterir.
  3. ResNet50-TPE OOD defect recall değerini 0.9400 seviyesine çıkarırken specificity 0.3085 seviyesine düşmüştür. Yani model çok sayıda örneği kusurlu işaretlemiş, FN sayısını azaltmış ama FP sayısını artırmıştır. DAGM maliyeti FN'ye 20 kat ceza verdiği için bu davranış OOD cost açısından avantajlıdır.

Arama kalitesi ve hesaplama verimliliği

Model Yöntem Best Val Macro-F1 Unique Eval. Eval-to-best Time-to-best (dk) Search time (dk) Trained epoch Optimizer step Best origin Gain over initial Mean best-so-far Ort. aday süresi (sn)
CUSTOM GA 0.8667 19 4 65.61 419.2 339 53583 shared_initial_design 0.0000 0.837156 1323.875
CUSTOM TPE 0.8888 19 18 323.40 333.0 367 54121 tpe_adaptive_search 0.0448 0.834851 1051.304
CUSTOM V2 GA 0.7666 24 8 55.11 157.9 364 64420 shared_initial_design 0.0000 0.743889 394.716
CUSTOM V2 TPE 0.7656 24 11 80.76 178.4 422 65804 tpe_adaptive_search 0.0799 0.731633 445.829
VGG16 GA 0.9833 19 3 23.99 167.2 270 28728 shared_initial_design 0.0000 0.965652 527.933
VGG16 TPE 0.9833 19 3 39.68 360.8 271 25006 shared_initial_design 0.0000 0.965652 1139.289
RESNET50 GA 0.8775 15 7 121.78 250.7 200 18050 shared_initial_design 0.0000 0.875219 1002.690
RESNET50 TPE 0.8778 15 14 127.53 133.9 203 24836 tpe_adaptive_search 0.0002 0.875249 535.628

Arama metrikleri, optimizer performansının yalnız final skorla okunmaması gerektiğini gösterir. Örneğin VGG16'de iki yöntem aynı best validation macro-F1 değerine (0.9833) ve aynı best origin'e sahiptir, fakat GA search wall-clock süresi 167.2 dakika, TPE ise 360.8 dakikadır. Bu modelde TPE daha iyi çözüm bulmamış, daha uzun arama süresi üretmiştir. Custom CNN'de ise TPE daha yüksek validation F1 (0.8888 vs 0.8667) ve daha kısa search time (333.0 dk vs 419.2 dk) üretmiştir. ResNet50'de TPE'nin validation kazancı yalnız 0.0002 olduğu için pratik olarak çok küçük kabul edilmelidir.

Seçilen hiperparametreler ve mimari özet

Model Yöntem LR Dropout Optimizer Batch Seçilen model/mimari parametreleri Toplam param. Eğitilebilir param.
CUSTOM GA 0.001 0.1 AdamW 32 base=64, blocks=3, kernel=3, stem_stride=1, conv_stride=1, padding=same, pool=max, pool_kernel=3, pool_stride=2, channel=doubling, SE=False 2,321,858 2,321,858
CUSTOM TPE 0.001 0.1 AdamW 32 base=64, blocks=3, kernel=3, stem_stride=1, conv_stride=1, padding=valid, pool=max, pool_kernel=2, pool_stride=2, channel=doubling, SE=False 2,325,954 2,325,954
CUSTOM V2 GA 0.001 0.3 AdamW 16 base=16, blocks=3, kernel=3, stem_stride=1, conv_stride=1, padding=same, pool=max, pool_kernel=3, pool_stride=2, channel=doubling 163,714 163,714
CUSTOM V2 TPE 0.001 0.0 AdamW 16 base=16, blocks=3, kernel=3, stem_stride=1, conv_stride=1, padding=same, pool=max, pool_kernel=3, pool_stride=2, channel=doubling 163,714 163,714
VGG16 GA 5e-05 0.1 RMSprop 64 dense=128, fine_tune_layers=16 17,926,594 16,191,106
VGG16 TPE 5e-05 0.1 RMSprop 64 dense=128, fine_tune_layers=16 17,926,594 16,191,106
RESNET50 GA 0.0001 0.1 AdamW 32 dense=128, unfreeze_blocks=1 23,778,946 4,733,506
RESNET50 TPE 0.0001 0.4 RMSprop 16 dense=512, unfreeze_blocks=1 24,689,986 5,644,546

Bu tablo hiperparametre seçimlerinin proje bağlamındaki anlamını gösterir. VGG16'de iki yöntem aynı hiperparametreleri seçtiği için optimizer farkı değil, shared initial design'ın güçlü bir aday üretmesi belirleyicidir. ResNet50'de TPE daha yüksek dropout (0.4) ve daha büyük dense head (512) seçmiştir; bu seçim ID/OOD defect recall'ı artırmış, fakat specificity ve macro-F1'i düşürmüştür. Custom CNN'de iki yöntem de aynı LR, dropout, optimizer, batch size, base filter, block count ve kernel seçmiş; fark padding ve pooling kernel tarafında oluşmuştur. Custom V2'de mimari aynı kalmış, temel fark dropout olmuştur: GA 0.3, TPE 0.0 seçmiştir.

ID tam metrik tablosu

Model Yöntem Acc Bal. Acc Macro Prec. Macro Rec. Macro-F1 Def. Prec. Def. Rec. Def. F1 Spec. PR-AUC ROC-AUC FP FN Cost Cost/img
CUSTOM TPE 0.8959 0.8896 0.7739 0.8896 0.8139 0.5674 0.8811 0.6903 0.8982 0.8864 0.9673 305 54 1385 0.4014
CUSTOM GA 0.8643 0.8584 0.7328 0.8584 0.7699 0.4911 0.8502 0.6226 0.8665 0.8030 0.9500 400 68 1760 0.5101
CUSTOM V2 TPE 0.5299 0.6032 0.5473 0.6032 0.4664 0.1766 0.7026 0.2823 0.5037 0.3788 0.6926 1487 135 4187 1.2136
CUSTOM V2 GA 0.7881 0.7182 0.6351 0.7182 0.6530 0.3357 0.6233 0.4364 0.8131 0.5906 0.8313 560 171 3980 1.1536
VGG16 TPE 0.9896 0.9790 0.9755 0.9790 0.9773 0.9563 0.9648 0.9605 0.9933 0.9887 0.9975 20 16 340 0.0986
VGG16 GA 0.9896 0.9790 0.9755 0.9790 0.9773 0.9563 0.9648 0.9605 0.9933 0.9887 0.9975 20 16 340 0.0986
RESNET50 TPE 0.8125 0.8490 0.6928 0.8490 0.7194 0.4044 0.8987 0.5578 0.7994 0.7984 0.9419 601 46 1521 0.4409
RESNET50 GA 0.8655 0.8478 0.7318 0.8478 0.7678 0.4934 0.8238 0.6172 0.8718 0.7954 0.9348 384 80 1984 0.5751

OOD tam metrik tablosu

Model Yöntem Acc Bal. Acc Macro Prec. Macro Rec. Macro-F1 Def. Prec. Def. Rec. Def. F1 Spec. PR-AUC ROC-AUC FP FN Cost Cost/img
CUSTOM TPE 0.6700 0.5652 0.5346 0.5652 0.5196 0.1781 0.4233 0.2507 0.7070 0.2697 0.6244 1172 346 8092 1.7591
CUSTOM GA 0.7143 0.5135 0.5089 0.5135 0.5039 0.1444 0.2417 0.1808 0.7853 0.1570 0.6029 859 455 9959 2.1650
CUSTOM V2 TPE 0.5002 0.5008 0.5004 0.5008 0.4213 0.1308 0.5017 0.2075 0.5000 0.1704 0.5396 2000 299 7980 1.7348
CUSTOM V2 GA 0.5065 0.5236 0.5107 0.5236 0.4312 0.1410 0.5467 0.2242 0.5005 0.1911 0.5669 1998 272 7438 1.6170
VGG16 TPE 0.7002 0.6619 0.5832 0.6619 0.5761 0.2422 0.6100 0.3468 0.7137 0.1848 0.6626 1145 234 5825 1.2663
VGG16 GA 0.7002 0.6619 0.5832 0.6619 0.5761 0.2422 0.6100 0.3468 0.7137 0.1848 0.6626 1145 234 5825 1.2663
RESNET50 TPE 0.3909 0.6242 0.5705 0.6242 0.3777 0.1694 0.9400 0.2870 0.3085 0.1652 0.6401 2766 36 3486 0.7578
RESNET50 GA 0.4459 0.6212 0.5602 0.6212 0.4172 0.1729 0.8583 0.2878 0.3840 0.1625 0.6319 2464 85 4164 0.9052

Model Bazlı Deney Yorumları

Custom CNN

Custom CNN'de TPE, GA'ya göre ID macro-F1'i 0.7699dan 0.8139a, OOD macro-F1'i 0.5039dan 0.5196ya yükseltmiştir. ID defect recall da 0.8502den 0.8811e çıkmıştır. OOD defect recall'daki fark daha büyüktür: GA 0.2417, TPE 0.4233. Bu nedenle OOD DAGM maliyeti GA'da 9959, TPE'de 8092 olmuştur.

Bu sonuç, Custom CNN için TPE'nin yalnız validation F1'i değil, final OOD maliyetini de iyileştirdiğini gösterir. Ancak TPE'nin OOD specificity değeri GA'dan düşüktür (0.7070 vs 0.7853); yani TPE daha fazla kusur yakalamak için daha fazla yanlış alarm üretmiştir. DAGM maliyetinde FN cezası yüksek olduğu için bu trade-off proje açısından makul görünmektedir.

Seçilen hiperparametreler incelendiğinde iki yöntem de lr=0.001, dropout=0.1, AdamW, batch=32, base=64, blocks=3, kernel=3, channel=doubling ve SE=False seçmiştir. Bu, Custom CNN'de ana kapasite kararlarının iki optimizer tarafından benzer bulunduğunu gösterir. TPE'nin farklılaştığı nokta padding=valid ve pool_kernel=2 seçimidir.

Custom CNN V2

Custom V2, daha küçük parametre sayısı nedeniyle daha sınırlı temsil kapasitesine sahiptir. GA final ID macro-F1 (0.6530) ve OOD macro-F1 (0.4312) bakımından TPE'den (0.4664, 0.4213) daha dengeli sonuç vermiştir. Buna karşılık TPE ID defect recall'da 0.7026 ile GA'nın 0.6233 değerini aşmıştır; fakat ID specificity 0.5037 seviyesine düştüğü için çok fazla false positive üretmiştir.

OOD tarafında iki yöntem de zayıf kalmıştır. TPE OOD defect recall 0.5017, GA 0.5467 üretmiştir; fakat specificity yaklaşık 0.50 düzeyindedir. Bu, modelin unseen texture domainlerinde karar sınırını sağlıklı ayıramadığını gösterir. Custom V2'nin az parametreli yapısı ve yalnız üç bloklu seçilen mimarisi, DAGM texture çeşitliliğini temsil etmek için yetersiz kalmış olabilir.

Hiperparametre farkı esas olarak dropout'tadır: GA dropout=0.3, TPE dropout=0.0 seçmiştir. TPE'nin dropout kullanmaması ID defect recall'ı artırmış görünse de yanlış alarm sayısını çok yükseltmiştir. Bu nedenle Custom V2 özelinde GA'nın daha fazla regularization içeren çözümü daha dengeli final davranış üretmiştir.

VGG16

VGG16, ID tarafında en güçlü modeldir. GA ve TPE aynı hiperparametreleri ve aynı shared-initial adayı seçtiği için ID/OOD sonuçları birebir aynıdır: ID macro-F1 0.9773, ID defect recall 0.9648, ID cost 340; OOD macro-F1 0.5761, OOD defect recall 0.6100, OOD cost 5825.

Bu sonuç iki şekilde okunmalıdır. Birincisi, ImageNet-pretrained VGG16 özellikleri DAGM Class1–Class6 test domainlerine çok iyi aktarılmıştır. İkincisi, OOD tarafında performans belirgin düşmüştür; ID macro-F1 0.9773 iken OOD macro-F1 0.5761 seviyesindedir. Bu fark, modelin görülen DAGM texture domainlerinde çok iyi çalışsa bile Class7–Class10 domain shift altında aynı başarıyı koruyamadığını gösterir.

VGG16 için seçilen lr=5e-5, dropout=0.1, RMSprop, batch=64, dense=128, fine_tune_layers=16 kombinasyonu; düşük öğrenme oranı ile pretrained özellikleri bozmadan uyarlama, küçük dense head ile overfitting riskini sınırlama ve son feature modüllerini açarak DAGM tekstürlerine adaptasyon sağlama şeklinde yorumlanabilir. Fakat bu yorum optimizer keşfi değil, shared initial adayın başarısıdır.

ResNet50

ResNet50'de GA, ID macro-F1 bakımından TPE'den yüksektir (0.7678 vs 0.7194). Buna rağmen TPE hem ID defect recall (0.8987 vs 0.8238) hem OOD defect recall (0.9400 vs 0.8583) bakımından daha yüksektir. OOD cost da TPE'de 3486, GA'da 4164 olmuştur.

Bu model, macro-F1 ile DAGM cost arasındaki farkı en net gösteren örnektir. TPE daha agresif defect tahmini yapmış, OOD FN sayısını 36ya kadar düşürmüştür; fakat FP sayısı 2766ya yükselmiştir. Bu yüzden OOD accuracy (0.3909) ve OOD macro-F1 (0.3777) düşüktür. Endüstriyel maliyet fonksiyonu FN'ye yüksek ceza verdiği için TPE cost açısından iyi görünürken, genel sınıflandırma dengesi açısından GA daha iyi görünür.

Seçilen hiperparametrelerde iki yöntem de lr=1e-4 ve unfreeze_blocks=1 seçmiştir. TPE'nin dropout=0.4, dense=512, RMSprop, batch=16 seçimi daha oynak ama recall odaklı bir karar sınırı üretmiş olabilir. GA'nın dropout=0.1, dense=128, AdamW, batch=32 çözümü daha dengeli fakat daha az kusur-yakalama odaklıdır.


Metrik Bazlı Değerlendirme

Accuracy

Accuracy, ID testte VGG16 için anlamlı biçimde yüksektir (0.9896), çünkü model hem defect hem no-defect sınıflarını dengeli biçimde ayırmıştır. Ancak OOD testte accuracy yanıltıcı olabilir. ResNet50-TPE OOD accuracy 0.3909 ile düşük görünürken OOD defect recall 0.9400 ve OOD cost 3486 ile en düşük maliyeti üretmiştir. Bunun nedeni modelin kusur kaçırmamak için çok fazla örneği defect tahmin etmesidir.

Balanced accuracy ve macro-F1

Balanced accuracy sınıfları eşit ağırlıkla değerlendirir. OOD domainlerinde class imbalance olduğu için accuracy'den daha bilgilendiricidir. Macro-F1 ise precision ve recall dengesini de dikkate alır. VGG16 OOD macro-F1 0.5761 ile en yüksek değeri verir; çünkü recall artışı tamamen precision çöküşü pahasına gerçekleşmemiştir. ResNet50-TPE ise OOD balanced accuracy 0.6242 ile yüksek görünmesine rağmen OOD macro-F1 0.3777dir; çünkü defect precision yalnız 0.1694 seviyesindedir.

Defect recall

Defect recall, kusurlu ürünü kaçırmama açısından en kritik metriktir. OOD defect recall sıralaması:

Sıra Model OOD Defect Recall
1 ResNet50-TPE 0.9400
2 ResNet50-GA 0.8583
3 VGG16-GA/TPE 0.6100
4 Custom V2-GA 0.5467
5 Custom V2-TPE 0.5017
6 Custom-TPE 0.4233
7 Custom-GA 0.2417

Bu sıralama, OOD cost sıralamasıyla daha yakından ilişkilidir; çünkü cost FN'ye 20 kat ceza verir.

Defect precision

Defect precision, modelin defect dediği örneklerin ne kadarının gerçekten defect olduğunu gösterir. OOD'de tüm modellerin defect precision değerleri düşüktür (0.13080.2422). Bu, unseen texture domainlerinde normal tekstürlerin kusur gibi algılanabildiğini gösterir. En yüksek OOD defect precision VGG16'da 0.2422dir; bu yüzden VGG16 OOD macro-F1 tarafında daha avantajlıdır.

Specificity

Specificity, no-defect örnekleri doğru temiz olarak ayırma yeteneğidir. OOD specificity VGG16'da 0.7137, Custom-GA'da 0.7853, ResNet50-TPE'da ise 0.3085tir. ResNet50-TPE'ın düşük specificity değeri, düşük accuracy ve macro-F1'in ana sebebidir. Buna rağmen FN sayısı düşük olduğu için DAGM cost avantajı korunmuştur.

PR-AUC ve ROC-AUC

Defect sınıfı azınlık olduğundan PR-AUC özellikle önemlidir. OOD PR-AUC değerlerinin genel olarak düşük olması, modellerin unseen texture domainlerinde defect skorlamasını güvenilir biçimde sıralamakta zorlandığını gösterir. VGG16 OOD ROC-AUC 0.6626 ve PR-AUC 0.1848 üretmiştir; ResNet50-TPE OOD ROC-AUC 0.6401, PR-AUC 0.1652 üretmiştir. ROC-AUC değerleri orta düzeyde görünse bile PR-AUC düşük kaldığı için azınlık defect sınıfında karar kalitesi sınırlıdır.

DAGM cost

DAGM cost, final uygulama bağlamında en kritik operasyonel metriklerden biridir; fakat HPO objective değildir. En düşük ID cost VGG16'da 340; en düşük OOD cost ResNet50-TPE'da 3486dır. Bu fark, validation macro-F1 ile seçilen modelin her zaman en düşük endüstriyel maliyeti vermeyeceğini gösterir. Gelecek çalışmada cost-sensitive objective veya threshold tuning eklenirse OOD maliyeti daha doğrudan optimize edilebilir.


Seçilen Hiperparametrelerin Yorumu

Learning rate

Custom modellerde başarılı adaylar lr=0.001 etrafında toplanmıştır. Rastgele başlatılan modeller için 1e-3, yeterli güncelleme büyüklüğü sağlayarak underfitting riskini azaltmış görünmektedir. Transfer modellerinde ise düşük learning rate (5e-5 VGG16, 1e-4 ResNet50) seçilmiştir. Bu, pretrained temsilleri tamamen bozmadan DAGM'e uyarlama açısından beklenen bir davranıştır.

Dropout

VGG16 ve Custom CNN'de dropout=0.1 seçilmiştir; bu, çok agresif regularization yerine temsil kapasitesinin korunmasının daha faydalı olduğunu gösterir. Custom V2-GA dropout=0.3 ile daha dengeli final macro-F1 üretmiştir; Custom V2-TPE'nin dropout=0.0 seçimi defect recall'ı artırsa da specificity'yi düşürmüştür. ResNet50-TPE'nin dropout=0.4 seçmesi, recall odaklı fakat precision/specificity açısından maliyetli bir karar sınırıyla ilişkilidir.

Optimizer

Custom modellerde seçilen optimizer AdamW'dir. Bu, rastgele başlatılan ve tüm parametreleri eğitilen modellerde kararlı weight decay davranışı sağlamış olabilir. VGG16'da RMSprop seçilmiştir ve iki yöntem de aynı adayı kullandığı için sonuçlar birebir aynıdır. ResNet50'de GA AdamW, TPE RMSprop seçmiştir; TPE'nin RMSprop + küçük batch + yüksek dropout kombinasyonu yüksek recall fakat düşük specificity üretmiştir.

Batch size

VGG16 batch=64 ile en iyi sonucu vermiştir. Transfer modelde büyük batch daha stabil gradient ve daha hızlı epoch sağlayabilir. ResNet50-TPE batch=16, GA batch=32 seçmiştir; küçük batch, skorların daha oynak olmasına ve recall lehine karar sınırına katkı vermiş olabilir. Custom V2'de iki yöntem de batch=16 seçmiştir; küçük model ve küçük batch, daha fazla optimizer step üretirken genel genelleme sorununu tamamen çözememiştir.

Derinlik, kanal ve pooling

Custom CNN'de base=64, blocks=3, channel=doubling seçimi kapasiteyi artırmış ve ID/OOD performansı Custom V2'ye göre yükselmiştir. Custom V2'de base=16 ile parametre sayısı yalnız 163,714 seviyesindedir; bu kompaktlık hesaplama açısından avantajlı olsa da DAGM texture çeşitliliğini modellemek için yetersiz kalmış olabilir.

Max pooling seçimi tüm custom final adaylarında ortaktır. Bu proje bağlamında max pooling, küçük kusur bölgelerindeki güçlü lokal aktivasyonları korumak açısından average pooling'e göre daha mantıklıdır. Kodda lokal 4×4 adaptive max pooling ile global average pooling'in birlikte kullanılması da aynı motivasyona dayanır: kusur küçükse global ortalama sinyali zayıflatabilir, lokal maksimum ise kusur kanıtını korur.


Hipotez Değerlendirmesi

H1: "TPE pretrained modellerde GA'dan daha avantajlı olacaktır."

Bu hipotez güçlü biçimde desteklenmemiştir. VGG16'da GA ve TPE aynı shared-initial adayı seçmiş, aynı validation ve final sonuçları üretmiştir. ResNet50'de TPE validation F1 tarafında yalnız 0.0002 gain sağlamıştır; OOD cost daha iyidir fakat OOD macro-F1 GA'dan düşüktür. Bu nedenle pretrained modeller için TPE'nin tutarlı ve açık üstünlüğü yoktur.

H2: "GA custom modellerde TPE'den daha avantajlı olacaktır."

Bu hipotez de güçlü biçimde desteklenmemiştir. Custom CNN'de TPE, GA'dan hem ID/OOD macro-F1 hem de DAGM cost bakımından daha iyi sonuç vermiştir. Custom V2'de ise GA final macro-F1 bakımından daha dengelidir. Dolayısıyla custom ailesinde de tek yönlü GA üstünlüğü yoktur.

Genel sonuç

Deneyin ana sonucu, optimizer üstünlüğünün model ailesi ve metrikten bağımsız olmadığıdır. Validation macro-F1, ID/OOD macro-F1 ve DAGM cost farklı sıralamalar üretebilir. Bu nedenle final model seçimi yalnız HPO validation F1'e göre değil; OOD defect recall, false positive sayısı, cost ve uygulama toleransına göre yapılmalıdır.


Çalıştırma

Proje kök dizininde:

pip install -r requirements.txt
.\run_final_experiment.ps1

Kesilen deneyi sürdürmek için:

.\run_final_experiment.ps1 -Resume

Final sonuçlar:

results/final_experiment_v9/
├── final_comparison_table.csv
├── search_method_comparison.csv
├── final_results_checkpoint.json
├── best_params_all.json
├── final_architecture_summary.csv
└── plots/

Sınırlılıklar

  • Deney tek seed (42) ile yürütülmüştür; bu nedenle istatistiksel güven aralığı yoktur.
  • Validation seti 180 görüntüdür; çok sayıda HPO kararı aynı validation setine dayandığı için selection overfitting riski vardır.
  • OOD değerlendirmesi gerçek fabrika verisi değil, DAGM Class7–Class10 sentetik texture domainleridir.
  • HPO objective macro-F1'dir; DAGM cost optimize edilmemiştir. Bu yüzden en iyi validation macro-F1'in en iyi OOD cost'u vermesi beklenmemelidir.
  • Wall-clock süresi bağımlı sonuç değişkenidir; eşitlenmemiştir. Aynı unique candidate bütçesi altında daha uzun süren yöntem hesaplama maliyeti bakımından dezavantajlı sayılır.

Kaynakça ve Kod Eşleştirmesi

Bu README'deki teknik iddialar aşağıdaki proje dosyaları ve deney çıktılarıyla eşleştirilmiştir:

Konu Proje kaynağı
Veri yükleme, grayscale, normalization, augmentation, sampler data_loader.py
CrossEntropyLoss, label smoothing, scheduler, early stopping trainer.py
Accuracy, balanced accuracy, macro-F1, PR-AUC, ROC-AUC, DAGM cost metrics.py
Custom search space ve spatial validity architecture.py
Custom CNN lokal/global head custom_cnn_model.py
Custom CNN V2 blok yapısı custom_cnn_v2_model.py
VGG16 fine-tuning vgg16_model.py
ResNet50 fine-tuning resnet50_model.py
GA protokolü genetic_algorithm.py
Bayesian TPE protokolü bayesian_tpe.py
Final performans sonuçları results/final_experiment_v9/final_comparison_table.csv, final_results_checkpoint.json
Arama verimliliği results/final_experiment_v9/search_method_comparison.csv
Seçilen hiperparametreler ve mimari özet best_params_all.json, final_architecture_summary.csv
Grafikler ve confusion matrixler results/final_experiment_v9/plots/

Akademik referanslar için makale taslağındaki IEEE kaynak listesi esas alınmalıdır: DAGM 2007, Bergstra et al. TPE, Optuna, HPOBench, GA-CNN çalışmaları, VGG16, ResNet50, BatchNorm, Dropout, AdamW, Hyperband ve BOHB.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages