2026-02-04 · 이미지 분류
요약 및 복습퀴즈

오늘 정리한 내용(합성곱/CNN/업로드 폼)을 가볍게 확인하는 퀴즈 7개

오늘 핵심정리 💙

  • 합성곱(Convolution): 작은 필터(커널)를 이미지 위로 움직이면서 곱해서 더한 값을 만들어요. 이 값들이 “특징(모서리/선 같은 것)”이 돼요.
  • CNN 흐름: (1) Conv2D로 특징 뽑기 → (2) MaxPooling으로 크기 줄이기 → (3) Dense로 최종 분류하기. Dropout은 과적합을 줄이는 안전장치예요.
  • 정규화(÷255): 픽셀 값을 0~1로 맞추면 학습이 훨씬 안정적이고 빠르게 수렴해요.
  • 원-핫(to_categorical): softmax는 “10개 클래스 확률”을 내요. 라벨도 같은 모양(확률 벡터와 비교 가능한 형태)으로 맞춰야 loss를 제대로 계산해요.
  • 업로드 폼 핵심: type="file"로 파일을 고르고, action으로 서버에 보내요. 파일을 보내려면 enctype="multipart/form-data"가 사실상 필수예요.
(아래 퀴즈 7개로, 오늘 배운 개념 흐름을 가볍게 확인해봐.)
01

개념 퀴즈 1

Q1. CNN에서 입력 이미지를 (N, H, W, C) 형태로 바꾸는 가장 큰 이유는?

  1. 이미지 파일 용량을 줄이려고
  2. Conv2D가 배치/높이/너비/채널 축을 기대하기 때문
  3. 정확도를 무조건 올리기 위해서
  4. 그래프를 그리기 위해서
02

개념 퀴즈 2

Q2. 분류 문제에서 라벨을 to_categorical(원-핫)로 바꾸는 이유로 가장 알맞은 것은?

  1. 이미지를 흑백으로 바꾸기 위해서
  2. softmax 출력(클래스별 확률 벡터)과 라벨 모양을 맞추기 위해서
  3. 학습 epoch를 줄이기 위해서
  4. Dropout을 적용하기 위해서
03

개념 퀴즈 3

Q3. 파일 업로드 폼에서 enctype="multipart/form-data"가 필요한 이유는?

  1. 파일을 텍스트처럼 보내지 않고, 파일 바이너리를 포함해 전송하기 위해서
  2. 페이지 배경색을 흰색으로 만들기 위해서
  3. 파일 이름을 자동으로 바꾸기 위해서
  4. submit 버튼을 숨기기 위해서
04

코드 빈칸 채우기 1

Q4. MNIST 픽셀 값을 0~1로 정규화하려면 빈칸에 들어갈 숫자는?

코드
train_images = train_images.astype("float32") / ____
힌트: 원본 픽셀 값 범위가 보통 0~255예요.
05

코드 빈칸 채우기 2

Q5. 파일 업로드 input의 type 속성 빈칸은?

코드
<input type = "____" name = "file" >
06

개념 퀴즈 4

Q6. Dropout을 넣는 목적에 가장 가까운 것은?

  1. 이미지 해상도를 올리기 위해서
  2. 학습이 너무 느릴 때 강제로 빠르게 하기 위해서
  3. 특정 뉴런에만 의존하는 걸 줄여서 과적합을 완화하기 위해서
  4. 라벨을 원-핫으로 바꾸기 위해서
07

코드 빈칸 채우기 3

Q7. 파일 업로드 폼에서 전송 목적지(서버 주소/엔드포인트)를 정하는 속성은?

코드
<form ____ = "uploader" method = "post" enctype = "multipart/form-data">
힌트: form이 어디로 보낼지 결정하는 속성이에요.
정답 및 해설 (마지막에 동봉)

정답

  • Q1: B
  • Q2: B
  • Q3: A
  • Q4: 255
  • Q5: file
  • Q6: C
  • Q7: action

해설

  • Q1 Conv2D는 데이터를 “여러 장(batch) × 높이 × 너비 × 채널” 축으로 처리해요. 그래서 reshape로 모양을 맞추는 게 첫 단계예요.
  • Q2 softmax는 클래스 10개면 길이 10짜리 확률 벡터를 출력해요. 라벨도 같은 모양(원-핫)으로 맞춰야 손실함수를 제대로 계산할 수 있어요.
  • Q3 파일은 일반 폼 데이터처럼 한 줄 텍스트로 보내기 어려워요. multipart/form-data는 파일(바이너리) + 다른 폼 값을 함께 실어 보내는 표준 방식이에요.
  • Q4 0~255를 255로 나누면 0~1이 돼요. 이렇게 스케일을 맞추면 학습이 훨씬 안정적으로 진행돼요.
  • Q5 input type="file"은 브라우저에 ‘파일 선택’ UI를 만들어줘요.
  • Q6 Dropout은 학습 중 일부 뉴런을 랜덤으로 꺼서, 특정 경로에만 의존하지 않게 만들어요. 그래서 과적합을 줄이는 데 도움돼요.
  • Q7 form의 action은 “어디로 보낼지(서버 엔드포인트)”를 정해요. method=post는 “어떤 방식으로 보낼지”를 정하고, enctype은 “파일을 어떻게 실어 보낼지”를 정해요.