Image data preprocessing 질문드립니다.
164
작성한 질문수 2
저는 안저이미지와 시력을 매칭하려고 합니다.
이미지를 읽어오는 것부터 막혔습니다. 우선 image_dataset_from_directory은 시력이 연속변수이기때문에 제한이 있습니다. 이렇게 연속변수를 대상으로 cnn을 하려고 하려면 이미지를 어떻게 정리하고 어떤 함수를 써서 이미지를 읽어와야 할까요? dataset을 만드는 방법이 있나요?
두번째로 연속변수를 대상으로 하기 때문에 categorical cross entropy는 적절하지 않아 보이는데, loss함수로 MSE를 쓰는것이 적절할까요?
답변 1
0
안녕하십니까,
질문 내용이 강의의 내용은 아니신거죠?
프로젝트를 진행하시려는데 안저 이미지 기반으로 시력(연속형값)을 예측하시려는 거죠?
일단 위 내용으로 가정하고 말씀 드리겠습니다. 아니면 다시 말씀해 주십시요.
0. 이미지 기반으로 연속형 값을 예측하기는 성능이 잘 나오지 않습니다. 물론 업무 유형에 따라 다를 수도 있지만, 안저 이미지(잘 몰라서 검색해 봤더니, 눈 안구 이미지 더군요)를 살펴본 결과 시력과 같은 연속형 값을 잘 처리하기는 쉽지 않을 것 같습니다. 이유로는 classification은 단순히 확률로 기반해서, 예를 들어 0.5 보다 크면 이걸 기준으로 class를 판별합니다. 그러니까, 0.5 ~ 0.99 대략적으로 예측해도 어느정도 classification이 가능합니다. 그런데 시력의 경우는 상대적으로 예측이 매우 정확해야 할거 같습니다. 오차 범위가 서로 너무 다릅니다.
이런 경우 때문에 이미지만 가지고 회귀와 같은 연속형 값 예측은 잘 하지 않습니다
하지만 만약에 안저 이미지 시력 예측 모델을 만들고자 한다면 모델 자체는 크게 어렵지는 않습니다. feature extraction 레이어 들과 + Dense layer를 붙이되, 맨 마지막 dense layer는 node가 1개이고 activation을 적용하지 않으면 모델이 만들어 집니다.
1. 이미지를 읽어오는 것부터 막혔습니다. 우선 image_dataset_from_directory은 시력이 연속변수이기때문에 제한이 있습니다. 이렇게 연속변수를 대상으로 cnn을 하려고 하려면 이미지를 어떻게 정리하고 어떤 함수를 써서 이미지를 읽어와야 할까요? dataset을 만드는 방법이 있나요?
=> image_dataset_from_directory은 ImageDataGenerator의 flow_from_directory() 함수를 얘기하시는 건지요? 그렇다고 가정하면, 뒤에서 말씀드릴 Sequence 클래스를 상속받아서 적용하시면 됩니다. target값에 시력값을 입력하면 됩니다.
2. 두번째로 연속변수를 대상으로 하기 때문에 categorical cross entropy는 적절하지 않아 보이는데, loss함수로 MSE를 쓰는것이 적절할까요?
=> 네 맞습니다. model.compile(loss='mse'....) 를 적용하셔야 합니다.
3. 추가로 첨언 드리면 안저 이미지만 가지고 시력 예측 모델을 만드시는 것 보다는 다양한 다른 feature 들과 안저 이미지를 같이 이용하셔야 할 것 같습니다. 이 경우에는 multi로 input feature 들이 만들어 져야 합니다.
그리고, 만약 이미지만 가지고 회귀와 같은 연속형 값 예측을 잘하려면, 보다 prediction layer쪽에 좀더 복잡한 layer들이 추가가 되어야 할 것 같습니다(이건 본 강의 수준을 뛰어 넘을 수도 있습니다)
감사합니다.
resize 질문
0
48
1
20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅
0
75
1
Loss와 매트릭 관계
0
61
2
Boston 코랩 실습
0
161
2
배치 정규화의 이해와 적용 2 강의 질문
0
134
2
Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?
0
143
2
Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.
0
201
2
소프트맥스 관련 질문입니다
0
208
1
강의 관련 질문입니다
0
151
2
residual block과 identity block의 차이
0
183
2
옵티마이저와 경사하강법의 차이가 궁금합니다.
1
236
1
실습 환경
0
165
2
입력 이미지 크기
0
242
2
데이터 증강
0
194
2
albumentations ShiftScaleRotate
0
205
1
Model Input Size 관련
0
279
1
마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??
0
203
1
일반적인 질문 (kaggle notebook사용)
0
271
2
실무에서 Augmentation 적용 시
0
336
2
안녕하세요 교수님
0
230
1
가중치 초기화(Weight Initialization) 질문입니다.
0
324
1
테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류
0
405
1
학습이 이상하게 됩니다.
2
1032
2
boston import가 안됩니다
0
224
1





