입력이 이미지이고 레이블이 80과 350 사이의 연속적인 값인 회귀 문제를 연구하고 있습니다. 이미지는 반응 후 일부 화학 물질입니다. 밝혀지는 색은 남은 다른 화학 물질의 농도를 나타내며 모델이 출력하는 것입니다-화학 물질의 농도. 이미지를 회전, 뒤집기, 대칭시킬 수 있으며 예상 출력은 여전히 동일해야합니다. 이러한 종류의 분석은 실제 실험실에서 수행됩니다 (매우 전문화 된 기계는이 모델을 훈련시키는 것처럼 색상 분석을 사용하여 화학 물질의 농도를 출력합니다).
지금까지 VGG (conv-conv-conv-pool 블록의 여러 시퀀스)를 기반으로 한 모델로만 실험했습니다. 최신 아키텍처 (Inception, ResNets 등)를 실험하기 전에 이미지를 사용하여 회귀에 더 일반적으로 사용되는 다른 아키텍처가 있는지 조사해야한다고 생각했습니다.
데이터 세트는 다음과 같습니다.
데이터 세트에는 약 5,000 개의 250x250 샘플이 포함되어 있으며 64x64로 크기가 조정되어 훈련이 더 쉽습니다. 유망한 아키텍처를 찾으면 더 큰 해상도의 이미지를 실험 해 보겠습니다.
지금까지 내 최고의 모델은 훈련 및 유효성 검사 세트 모두에서 평균 제곱 오차가 약 0.3이며, 이는 사용 사례에서 허용되지 않습니다.
지금까지 내 최고의 모델은 다음과 같습니다.
// 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)
의문
이미지 입력의 회귀 출력에 적합한 아키텍처는 무엇입니까?
편집하다
설명을 다시 말하고 정확성에 대한 언급을 제거했습니다.
편집 2
내 질문을 재구성 했으므로 내가 뭘했는지 분명히 알 수 있습니다.