이미지 분류
이미지 분류 정확도 뒤의 오답을 살펴보며 전처리와 자료 분리의 영향을 확인합니다.
실습 코드 앞의 코드 셀에서 import numpy as np, import matplotlib.pyplot as plt를 실행하세요. 배열 연산에는 np, 그림에는 plt를 사용합니다.
실습 전에
01 정확도가 같아도 오답의 유형은 같을까요?
설명
특정 클래스나 영상 조건에 오류가 모일 수 있어 실제 오답을 살펴봐야 합니다.
02 작은 잡음에 같은 이미지의 예측이 유지될까요?
설명
잡음 수준과 오답 유형에 따라 달라집니다. 원래 Label을 유지해 정확도와 오답을 대조합니다.
1. 이미지 배열과 Label
시작 조건
외부 다운로드 없는 sklearn load_digits의 8×8 영상 중 Class 0~4를 사용합니다. 분할은 stratified 70/30, seed=7입니다.
진행 방법
- 영상 한 장의 8×8 배열과 Flatten된 64개 특징을 확인하세요.
- Train에 fit한 StandardScaler와 LogisticRegression(max_iter=1000)으로 기준 분류를 수행하세요.
남길 결과
- 데이터 구조 표, 예시 영상 패널과 Test Accuracy.
기록 항목과 확인할 점
- 단계
-
- 표본 수
-
- 입력 shape
-
- Label 범위
-
확인할 점
- 이미지 위치 정보와 Flatten의 원소 순서를 확인했는가?
2. 오분류와 모호한 입력
시작 조건
Test에서 오분류를 최대 6개 골라 영상·정답·예측·최대 확률을 함께 표시합니다. 없으면 낮은 확신 표본을 선택합니다.
진행 방법
- Test 예측과 정답이 다른 Index를 찾아 앞에서 최대 6개를 선택하세요. 오분류가 없으면 최대 예측 확률이 작은 순서로 최대 6개를 고르세요.
- 각 Index의 원래 64개 값을 영상으로 그리고, 제목에 Test Index·정답·예측·최대 확률을 표시하세요.
- 그림에서 관찰되는 특징과 모델의 예측을 구분해 설명하세요. 모델과 Scaler는 재학습하지 않습니다.
남길 결과
- Test Index·정답·예측·확률을 표시한 영상 패널.
기록 항목과 확인할 점
- 선택한 Test Index
-
- 원본 영상
-
- 정답·예측
-
- 최대 예측 확률·관찰
-
확인할 점
- 선택한 Index의 영상·Label·확률이 서로 대응하는가?
3. 다른 입력에서도 확인하기
시작 조건
선택한 Test 영상 하나에 seed=7의 작은 잡음을 더하고 0~16 범위로 제한해 예측을 비교합니다.
진행 방법
- 활동 2에서 본 Test 영상 하나를 골라 Index를 적으세요. Seed 7로 작은 잡음을 더하고
np.clip(...,0,16)으로 픽셀 범위를 제한하세요. 예를 들어 평균 0·표준편차 0.5인 정규 잡음을 사용할 수 있습니다. - 원본과 잡음 영상을 같은 밝기 범위로 표시하세요. 같은 Scaler와 모델에 두 영상을 각각 넣어 예측 Class와 Class별 확률을 구하세요.
- 사용한 잡음 분포·크기와 두 예측·확률을 기록하고, 시각적인 변화와 예측 변화가 같은 의미인지 설명하세요.
남길 결과
- 원본·잡음 영상과 같은 모델의 예측·확률 비교.
기록 항목과 확인할 점
- Test Index·잡음 조건
-
- 원본·잡음 영상
-
- 원본의 예측·Class별 확률
-
- 잡음 영상의 예측·Class별 확률
-
확인할 점
- Scaler와 분류기를 고정한 채 영상만 바꿨는가?