Girişin bir görüntü olduğu ve etiketin 80 ile 350 arasında sürekli bir değer olduğu bir regresyon problemi üzerinde çalışıyorum. Bir reaksiyon gerçekleştikten sonra görüntüler bazı kimyasallara sahip. Ortaya çıkan renk, geride kalan başka bir kimyasal maddenin konsantrasyonunu gösterir ve modelin çıktısı budur - o kimyasal maddenin konsantrasyonu. Görüntüler döndürülebilir, çevrilebilir, yansıtılabilir ve beklenen çıktı yine aynı olmalıdır. Bu tür analizler gerçek laboratuvarlarda yapılır (çok özel makineler tıpkı bu modeli yapmak için eğittiğim gibi renk analizini kullanarak kimyasalların konsantrasyonunu verir).
Şimdiye kadar sadece kabaca VGG'ye dayanan modeller denedim (çok sayıda conv-conv-conv-pool blokları dizisi). Daha yeni mimarileri (Inception, ResNets, vb.) Denemeden önce, görüntüleri kullanarak regresyon için daha sık kullanılan başka mimariler olup olmadığını araştırmayı düşündüm.
Veri kümesi şöyle görünür:
Veri seti, 64x64'e yeniden boyutlandırdığım yaklaşık 5.000 250x250 örnek içerir, böylece eğitim daha kolaydır. Gelecek vaad eden bir mimari bulduğumda daha büyük çözünürlükte görüntüler deneyeceğim.
Şimdiye kadar, en iyi modellerim, kullanım durumumda kabul edilebilir olmaktan çok uzak olan, yaklaşık 0.3 olan hem eğitim hem de validasyon setlerinde ortalama bir karesel hataya sahipti.
Şimdiye kadarki en iyi modelim şuna benziyor:
// pseudo code
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=32, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=64, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = conv2d(x, filters=128, kernel=[3,3])->batch_norm()->relu()
x = maxpool(x, size=[2,2], stride=[2,2])
x = dropout()->conv2d(x, filters=128, kernel=[1, 1])->batch_norm()->relu()
x = dropout()->conv2d(x, filters=32, kernel=[1, 1])->batch_norm()->relu()
y = dense(x, units=1)
// loss = mean_squared_error(y, labels)
Soru
Bir görüntü girişinden regresyon çıktısı için uygun bir mimari nedir?
Düzenle
Açıklamamı iptal ettim ve doğruluktan bahsettim.
Düzenle 2
Sorumu yeniden yapılandırdım, umarım neyin peşinde olduğum açıktır.