고양이 vs 강아지 — 층을 쌓아 좌표를 바꾼다

고양이와 강아지는 털도 눈도 귀도 있다. 저수준 특징이 비슷한 두 대상을 가르려면 무엇이 필요할까. 퍼셉트론·SVM이 평면 하나로 막히는 이유를 3차원으로 돌려 보고, 은닉층이 좌표를 바꾸는 모습을 확인한다. 이어서 CNN이 사진을 확률로 바꾸는 전 과정과 학습을 따라가고, 핵심 조각을 붙여 정답을 섞는 데이터 증강(Attentive CutMix)을 직접 해 본다.

57.7% → 99.2%같은 점: 선형 SVM 대 은닉 3개 MLP (코드 1)
29,858작은 CNN의 학습할 숫자
7 × 7마지막 특징 맵 격자 (ResNet-50과 같음)
6/49Attentive CutMix의 고양이 정답 비율
93.3 → 95.2%사진 200장일 때 CutMix 효과 (코드 2)
2개Colab에서 바로 돌리는 코드
1문제

고양이 vs 강아지 — 털도, 눈도, 귀도 있다

둘 다 털이 있고 눈이 두 개, 귀가 세워져 있다. 저수준 특징만으로는 가르기 어렵다. 모델은 무엇을 쌓아야 이 둘을 가를까?

회색 고양이 사진을 특징 추출 신경망에 넣어 특징 맵을 얻고, 반응이 큰 조각을 골든 리트리버 사진에 붙인 뒤, 정답을 고양이 6/49, 강아지 43/49로 섞는 과정을 그린 도식
저자가 직접 만든 이미지. Attentive CutMix [R6]의 절차를 그린 것이다.

4-2의 고양이 vs 사람은 털과 피부라는 저수준 특징부터 달랐습니다. 고양이 vs 강아지는 다릅니다. 둘 다 털이 있어 경계 지도가 비슷하고, 차이는 주둥이 길이, 코 크기, 얼굴 윤곽 같은 부분의 모양에 있습니다.

이 편은 세 가지를 봅니다. 왜 층을 쌓으면 평면 하나로 안 갈리던 것이 갈리는지(섹션 2), CNN이 사진을 확률로 바꾸는 과정(섹션 3~4), 그리고 모델이 핵심 부분에 집중하도록 가르치는 데이터 증강, 그림의 Attentive CutMix(섹션 5~6)입니다.

초보자를 위한 풀이

그림은 고양이 사진에서 모델이 가장 강하게 반응한 조각(눈·귀 근처)을 골라 강아지 사진에 붙이고, 정답을 붙인 넓이만큼 섞는 방법입니다. 49칸 중 6칸이 고양이이므로 정답은 "고양이 6/49, 강아지 43/49"가 됩니다. 섹션 6에서 직접 해 봅니다.

2왜 층을 쌓나

분류 경계와 좌표 바꾸기 — 층을 쌓는 이유

4-1의 퍼셉트론과 SVM은 평면 하나를 긋는다. 픽셀 좌표 그대로는 평면 하나로 안 갈린다. 해결책은 좌표를 바꾸는 것이고, 그 방법을 누가 정하느냐가 커널 SVM과 다층 신경망을 가른다.

1모델

선형 분류기는 특징 공간에 평면 하나(2차원이면 직선, 3차원이면 평면, 그 이상이면 초평면)를 긋고, 점이 어느 쪽에 있는지로 답합니다. 단층 퍼셉트론과 선형 SVM이 모두 이 모양이고, 둘 다 가중치 w와 편향 b를 구합니다. 차이는 평면을 고르는 기준뿐입니다. 퍼셉트론은 틀린 점이 없어지면 멈추고, SVM은 두 무리와의 간격(마진)이 가장 넓은 평면을 고릅니다. 그래서 가중치를 구한다는 사실은 둘을 가르는 차이가 아닙니다.

선형 SVM ≈ 단층 퍼셉트론원래 좌표에 평면 하나
커널 SVM사람이 정한 식으로 좌표를 바꾼 뒤 평면
다층 퍼셉트론·CNN좌표 바꾸는 법까지 학습한 뒤 평면

쉽게 말하면탁자 위에 섞인 검은 구슬과 흰 구슬을 자 하나로 가르는 일입니다. 검은 구슬이 가운데 모여 있고 흰 구슬이 둘레를 감싸고 있으면, 자를 어떻게 놓아도 한쪽이 잘립니다. 이때 탁자를 가운데가 움푹 들어가게 휘면, 검은 구슬은 아래로 내려가고 흰 구슬은 위에 남아 수평 판 하나로 가를 수 있습니다. 커널 SVM은 사람이 탁자를 어떻게 휠지 정해 주는 것이고, 다층 신경망은 어떻게 휠지 스스로 배우는 것입니다.

2수식
선형 분류기:   ŷ = 1  if  w · x + b > 0,  아니면 0
선형 SVM:   모든 샘플을 맞히면서 마진 2 / ‖w‖ 이 최대인 (w, b)퍼셉트론과 경계의 모양은 같고, "어떤 평면을 고르나"의 기준만 다릅니다. 실제로는 조금 틀리는 것을 허용하는 소프트 마진을 씁니다.
커널 SVM:   w · φ(x) + b,   φ는 사람이 고름 (예: φ(x₁, x₂) = (x₁, x₂, x₁² + x₂²))
다층 퍼셉트론:   h = σ(W₁x + b₁),   ŷ = [ w₂ · h + b₂ > 0 ]은닉층 h가 새 좌표이고, W₁·b₁은 학습으로 정해집니다. 마지막 줄은 새 좌표 h에 평면을 긋는 단층 퍼셉트론입니다.
w, b
평면의 방향과 위치. 모든 방법이 공통으로 구함
φ(x)
좌표를 바꾸는 함수. 커널 SVM에서는 사람이 고른 커널이 정함
σ
tanh, ReLU 같은 꺾인 함수(활성화 함수). 이것이 없으면 층을 쌓아도 평면 하나와 같음
h
은닉층의 출력. 학습으로 만들어진 새 특징
수식 한 조각씩 읽기
  1. w · x + b퍼셉트론의 가중합입니다. 특징마다 가중치를 곱해 더하고, 0보다 크면 한쪽 클래스라고 답합니다. 0이 되는 점들을 이으면 경계 평면이 됩니다.
  2. φ(x)좌표 바꾸기입니다. 원래 공간에서 휘어 있던 경계가, 바뀐 공간에서는 평평한 평면이 되도록 하는 것이 목표입니다.
  3. σ(W₁x + b₁)φ를 학습 가능한 식으로 만든 것입니다. W₁을 고치면 좌표 바꾸는 방식이 바뀌고, 학습은 마지막 평면이 잘 나누는 쪽으로 W₁을 고칩니다. CNN의 합성곱 층도 이 역할을 합니다.
숫자로 한 번 해 보기점 (0.1, 0.2)과 (0.7, 0.1): 원래 좌표로는 가운데와 바깥이라 직선 하나로 둘레를 감쌀 수 없음
φ = (x₁, x₂, x₁² + x₂²)로 바꾸면 세 번째 좌표가 0.05와 0.50 → 평면 "세 번째 좌표 = 0.3" 하나로 나뉨
33차원으로 돌려 보기 · 같은 점들을 세 방법으로 나누기

가운데 무리와 그 둘레를 감싼 무리, 두 무리의 점입니다(설명용 가상 데이터). 단추로 방법을 바꾸고, 그림을 끌어 돌려 보세요. ③의 은닉층(뉴런 3개)은 이 페이지가 열릴 때 브라우저에서 실제로 학습시킨 결과입니다.

방법
100%
평면 하나로 맞힌 비율: -
좌표축: -

● 가운데 무리   ● 둘레 무리   보라색 면 = 경계 평면. 그림을 누른 뒤 방향키로도 돌릴 수 있습니다.

4같은 기준으로 비교
방법경계 모양좌표(특징)는 누가원 픽셀 사진에서등장
단층 퍼셉트론평면 하나바꾸지 않음잘 안 됨1958
선형 SVM평면 하나 (마진 최대)바꾸지 않음잘 안 됨 (퍼셉트론보다는 대체로 나음)1990년대
커널 SVM원래 공간에서 휜 경계사람이 커널로 정함단순한 사진(손글씨 숫자)은 잘 됨, 자연 사진은 한계1992~
다층 퍼셉트론 · CNN원래 공간에서 휜 경계데이터로 학습잘 됨 (충분한 데이터 필요)1986~, CNN 2012 도약

손글씨 숫자(MNIST)에서는 커널 SVM이 픽셀만으로도 오류율 1% 안팎을 냈습니다(LeCun 외, 1998의 비교). 사진이 복잡해질수록 사람이 맞는 커널을 고르기 어려워집니다. 반대로, 학습된 CNN이 뽑은 특징 벡터에 선형 SVM을 붙여도 분류가 잘 됩니다(Razavian 외, 2014). 성능을 가른 것이 분류기의 종류가 아니라 특징이라는 뜻입니다.

5해석 · 자주 하는 오해 바로잡기

"SVM이 안 돼서 퍼셉트론이 나왔다"는 순서가 반대입니다. 퍼셉트론(1958)이 먼저 나왔고, 층을 쌓은 신경망을 학습시키기 어려웠던 1990~2000년대에 SVM이 주류가 되었습니다. 2012년 층이 깊은 CNN이 대규모 사진 분류에서 SVM 기반 방법을 크게 이기면서 흐름이 다시 바뀌었습니다.

"퍼셉트론은 가중치를 구해서 정확하다"도 반만 맞습니다. 가중치를 구하는 것은 SVM도 같습니다. 단층 퍼셉트론은 선형 SVM과 같은 평면 하나짜리 분류기라, 원 픽셀 사진에서는 비슷하게 막힙니다. 잘 되는 것은 은닉층이 있는 다층 퍼셉트론과 CNN입니다.

정리하면, 차이는 SVM이냐 퍼셉트론이냐가 아니라, 좌표(특징)를 사람이 정하느냐 데이터로 배우느냐에서 옵니다. 픽셀 규칙이 뜻 없는 배경 칸을 고르는 것(4-4)은 픽셀이라는 좌표가 나쁘기 때문이고, 4-2의 필터와 이 편의 CNN은 그 좌표를 학습으로 바꾸는 장치입니다. CNN이 이긴 데에는 층을 쌓은 것 말고도 합성곱의 가중치 공유, 대량의 정답 데이터, GPU 연산이 함께 작용했습니다.

✓확인 문제

Q1. 단층 퍼셉트론과 선형 SVM의 관계로 맞는 것은?

Q2. 커널 SVM과 다층 퍼셉트론의 가장 중요한 차이는?

Q3. 은닉층에서 σ(활성화 함수)를 빼면 어떻게 되나요?

초보자를 위한 풀이

은닉층의 뉴런 하나는 "가중합 → 꺾인 함수(tanh, ReLU)"로 새 좌표 하나를 만듭니다. 학습은 마지막 평면이 잘 가르도록 이 좌표 만드는 법 자체를 고칩니다. 코드 1에서 같은 점들을 선형 SVM은 57.7%, 사람이 고른 x₁² + x₂²를 더한 SVM은 98.8%, 은닉 뉴런 3개짜리 다층 퍼셉트론은 99.2% 맞혔습니다. CNN의 합성곱 층도 이 "좌표 바꾸기"를 사진에 맞게 한 것입니다.

3CNN 구조

CNN 한 장으로 보기 — 작아지고 두꺼워지는 특징 맵

합성곱 → ReLU → 풀링을 반복하면 사진은 작아지고 특징 맵의 장수는 늘어난다. 마지막에 펼쳐 퍼셉트론 층에 넣으면 클래스별 점수가 나온다.

1모델

합성곱 신경망(CNN)은 4-2의 부품(합성곱·풀링)을 쌓아 만든 모델이고, 섹션 2에서 본 "좌표를 학습으로 바꾼 뒤 평면을 긋는" 다층 신경망의 사진 전용판입니다. [합성곱 → ReLU → 풀링]을 여러 번 반복하면 사진은 점점 작아지고, 대신 특징 맵의 장수(채널)는 늘어납니다. 마지막 특징 맵을 한 줄로 펼쳐 완전연결층(퍼셉트론 여러 개)에 넣으면 클래스마다 점수가 하나씩 나오고, 소프트맥스가 이 점수를 합이 1인 확률로 바꿉니다.

입력픽셀 행렬 56 × 56 × 3
중간작아지고 두꺼워지는 특징 맵
출력P(고양이), P(강아지)

쉽게 말하면회사의 보고 체계입니다. 현장 직원(1층)은 "여기 선이 있다" 같은 작은 사실을 보고하고, 팀장(2~3층)은 그 보고를 묶어 "여기 눈과 귀가 있다"고 올리고, 임원(완전연결층)은 요약만 보고 "고양이일 확률 93%"라고 결정합니다. 층을 올라갈수록 보고서는 짧아지고 내용은 추상적이 됩니다.

2수식
F(ℓ) = Pool( ReLU( F(ℓ−1) ∗ K(ℓ) + b(ℓ) ) ),   F(0) = X
h = flatten(F(L)),   z = W·h + b마지막 특징 맵을 한 줄로 늘어놓은 h를 퍼셉트론 층에 넣어 클래스별 점수 z를 얻습니다.
pk = ezk / Σj ezj,   L = −log p정답
ℓ
층 번호. F⁽ˡ⁾은 ℓ번째 층의 특징 맵
K⁽ˡ⁾
ℓ층의 필터 묶음. 채널이 여러 장이면 필터도 그만큼 두꺼움(3 × 3 × 채널 수)
h
펼친 특징. 7 × 7 × 64라면 3,136개의 숫자
z, p, L
점수, 확률, 교차엔트로피 손실
수식 한 조각씩 읽기
  1. F⁽ˡ⁻¹⁾ ∗ K⁽ˡ⁾앞 층의 특징 맵이 다음 층의 입력입니다. 2층 필터는 픽셀이 아니라 1층이 찾은 "경계 지도"들을 보고 모서리나 곡선을 찾습니다.
  2. flatten3층짜리 숫자 상자를 한 줄로 늘어놓습니다. 숫자는 그대로이고 순서만 바뀝니다.
  3. ez / Σez소프트맥스입니다. 점수가 클수록 확률이 커지고, 모든 확률을 더하면 1입니다.
  4. −log p정답교차엔트로피입니다. 정답에 준 확률이 1이면 0, 작을수록 크게 벌점을 줍니다. 학습은 이 값이 줄어드는 쪽으로 필터 K와 W를 모두 고칩니다.
숫자로 한 번 해 보기점수 z = (고양이 3.0, 강아지 0.5) → e³ = 20.09, e⁰·⁵ = 1.65, 합 21.74
p(고양이) = 20.09 / 21.74 = 0.924,  p(강아지) = 1.65 / 21.74 = 0.076
정답이 고양이라면 L = −log 0.924 = 0.079 (작은 벌점). 정답이 강아지였다면 L = −log 0.076 = 2.58 (큰 벌점)
3다이어그램 · 작은 CNN 한 장으로 보기
작은 CNN의 구조56×56×3 입력이 합성곱과 풀링을 세 번 거쳐 7×7×64가 되고, 펼친 3136개 숫자가 완전연결층을 지나 소프트맥스로 두 확률이 된다 입력56 × 56 × 3 합성곱1 + 풀링28 × 28 × 16선·경계 합성곱2 + 풀링14 × 14 × 32모서리·질감 합성곱3 + 풀링7 × 7 × 64눈·귀·코 ⋮ 펼치기3,136개 z₁z₂ 완전연결점수 2개 고양이 0.92 강아지 0.08 소프트맥스확률 (합 = 1) ← 가로세로는 줄고, 특징 맵 장수는 늘어난다 →
단계하는 일출력 크기숫자 개수학습할 숫자(파라미터)
입력픽셀 행렬56 × 56 × 39,4080
합성곱13 × 3 필터 16개, 가장자리 패딩56 × 56 × 1650,1763·3·3·16 + 16 = 448
풀링12 × 2 최대 풀링28 × 28 × 1612,5440
합성곱2 + 풀링2필터 32개 → 절반14 × 14 × 326,2723·3·16·32 + 32 = 4,640
합성곱3 + 풀링3필터 64개 → 절반7 × 7 × 643,1363·3·32·64 + 64 = 18,496
펼치기한 줄로3,1363,1360
완전연결점수 2개223,136·2 + 2 = 6,274
소프트맥스확률로220  (합계 29,858)

마지막 특징 맵이 7 × 7인 점을 기억해 두세요. 실제로 많이 쓰는 ResNet-50도 224 × 224 사진을 넣으면 마지막 특징 맵이 7 × 7 격자(채널 2,048장)이고, 섹션 6의 Attentive CutMix는 바로 이 49칸을 씁니다.

초보자를 위한 풀이

표의 숫자를 따라가 보세요. 56 × 56 × 3 사진이 합성곱과 풀링을 세 번 거쳐 7 × 7 × 64가 되고, 펼친 3,136개 숫자가 완전연결층을 지나 점수 2개가 됩니다. 학습할 숫자는 모두 29,858개입니다. 실제로 많이 쓰는 ResNet-50은 2,500만 개 정도이고, 마지막 특징 맵이 7 × 7 격자라는 점은 같습니다 [R4].

4확률

사진이 확률이 되기까지 — 소프트맥스와 학습

마지막 점수를 소프트맥스로 확률로 바꾸고, 정답과의 차이(교차엔트로피)만큼 필터와 가중치를 고친다.

1움직이는 다이어그램 · 사진이 확률이 되기까지

위에서 사진을 고르세요. 1층 특징 맵과 풀링 결과는 실제 사진에 필터를 적용해 이 페이지에서 계산한 것입니다. 뒤쪽 층의 반응과 마지막 확률은 흐름을 보여 주려고 정한 예시 값입니다.

사진

  1. 입력 행렬
  2. 1층: 경계 찾기
  3. 풀링: 줄이기
  4. 뒤쪽 층: 부분 찾기
  5. 점수 → 확률
2소프트맥스 계산기

완전연결층이 낸 점수 두 개를 움직여 보세요. 정답은 고양이라고 가정합니다.

3해석 · 필터 숫자는 어떻게 정해지나

처음 CNN의 필터 숫자 K와 완전연결층의 W는 모두 무작위입니다. 고양이 사진을 넣어도 확률은 반반쯤 나옵니다.

정답을 알려 주면 손실 L = −log p정답을 계산하고, 앞 편에서 본 경사하강법으로 손실이 줄어드는 방향으로 모든 숫자를 조금씩 고칩니다. 이 기울기는 출력에서 입력 쪽으로 층을 거슬러 전달됩니다(역전파).

이 과정을 사진 수만 장에 반복하면, 누가 시키지 않았는데도 1층 필터는 경계 필터 모양이 되고, 뒤쪽 층 필터는 눈이나 귀에 반응하게 됩니다. "어떤 특징을 볼지"까지 데이터에서 배운다는 것이 사람이 특징을 정하던 방식과의 가장 큰 차이입니다.

4주요 특징
강점
  • 픽셀에서 확률까지 한 번에 학습(특징 설계가 필요 없음)
  • 필터를 공유해 같은 크기의 완전연결망보다 파라미터가 훨씬 적음
  • 층이 깊을수록 추상적인 특징을 표현
한계
  • 학습에 정답 달린 사진이 많이 필요
  • 배운 적 없는 조합(머핀처럼 생긴 치와와)에 자신 있게 틀릴 수 있음
  • 확률이 높다고 이유가 옳은 것은 아님(배경만 보고 맞힐 수도 있음)
위치: 네오코그니트론(1980) → LeNet(1989·1998) → AlexNet(2012) → VGG·GoogLeNet(2014) → ResNet(2016). 오늘날 비전 트랜스포머도 첫 단계에서 사진을 작은 조각으로 잘라 숫자로 바꾸는 점은 같습니다.
✓확인 문제

Q1. CNN을 지날수록 특징 맵의 모양은 대체로?

Q2. 점수 z가 (2.0, 2.0)이면 소프트맥스 확률은?

Q3. 학습 중에 고쳐지는 것은?

초보자를 위한 풀이

소프트맥스는 점수를 합이 1인 확률로 바꿉니다. 교차엔트로피는 정답에 준 확률이 낮을수록 큰 벌점을 줍니다. 학습은 이 벌점이 줄어드는 쪽으로 모든 필터 숫자와 가중치를 조금씩 고치는 일이고, 그 기울기는 출력에서 입력 쪽으로 층을 거슬러 전달됩니다(역전파) [R3].

5고양이 vs 강아지

고양이 vs 강아지 — 부분의 모양이 가른다

저수준 특징(털의 경계)은 비슷하다. 주둥이 길이, 코 크기, 얼굴 윤곽처럼 3층 이후에서 보는 부분 특징이 둘을 가른다.

②고양이 vs 강아지 보통

이번에는 저수준 특징이 비슷합니다. 둘 다 털이 있어 경계 세기 지도가 사진 전체에서 촘촘하고, 눈 두 개와 세운 귀도 같습니다. 1~2층 특징만으로는 가르기 어렵습니다.

차이는 부분의 모양에 있습니다. 강아지는 주둥이가 앞으로 길게 나오고 코가 크며 입이 벌어져 혀가 보이기도 합니다. 고양이는 얼굴이 동그랗고 코와 입이 작습니다. 3층 이후의 "눈·코·주둥이 배치"를 보는 특징이 이 둘을 가릅니다.

그래서 모델이 사진 전체의 분위기(털 색, 배경)가 아니라 이런 핵심 부분에 집중하도록 가르치는 기법이 나왔습니다. 섹션 6이 섹션 1 이미지의 Attentive CutMix입니다.

초보자를 위한 풀이

쌍 비교에서 "경계 세기" 보기로 바꾸면 두 사진 모두 털 때문에 경계 지도가 촘촘합니다. 해상도를 7로 낮추면 무엇이 먼저 사라지는지도 보세요. 모델이 털 색이나 배경(풀밭) 같은 쉬운 단서가 아니라 얼굴의 부분을 보도록 하려면, 학습 데이터를 어떻게 줄지가 중요해집니다. 그것이 섹션 6의 데이터 증강입니다.

6데이터 증강

데이터 증강과 Attentive CutMix — 조각을 붙이고 정답도 섞는다

사진이 적거나 모델이 엉뚱한 단서에 기댈 때, 학습 사진을 바꾸거나 섞어 "무엇을 봐야 하는지" 가르친다.

1데이터 증강의 종류 · 같은 사진을 여러 번 다르게 보여 주기
방법하는 일정답은?가르치는 것
뒤집기·자르기·회전좌우를 뒤집거나 일부를 잘라 키움그대로위치·방향이 바뀌어도 같은 대상
밝기·색 바꾸기조명이 다른 사진처럼 만듦그대로조명보다 모양을 볼 것
Cutout사각형 하나를 지움그대로한 부분이 가려져도 맞힐 것
Mixup두 사진을 반투명하게 겹침비율대로 섞음지나친 확신을 줄일 것 [R7]
CutMix다른 사진의 사각형 조각을 붙임붙인 넓이대로 섞음부분만 보고도 알아볼 것 [R5]
Attentive CutMix반응이 큰 조각만 골라 붙임붙인 넓이대로 섞음핵심 부분에 집중할 것 [R6]

Colab 코드 2에서 손글씨 숫자를 클래스당 20장(200장)만 주고 같은 CNN을 학습하면, 시험 정확도가 그대로 93.3%, CutMix로 95.2%였습니다(시드 3개 평균). 사진이 적을 때 섞어 붙이기가 도움이 된 예입니다. 데이터·모델이 바뀌면 효과의 크기는 달라집니다.

②+Attentive CutMix 따라 해 보기 · 고양이의 핵심 조각을 강아지에 붙이기

방법은 네 단계입니다. (1) 이미 학습된 CNN에 고양이 사진을 넣어 마지막 7 × 7 특징 맵을 얻습니다. (2) 49칸 가운데 반응이 가장 큰 k칸을 고릅니다. (3) 그 칸에 해당하는 고양이 사진 조각을 무작위 강아지 사진의 같은 자리에 붙입니다. (4) 정답도 면적 비율대로 섞습니다. k = 6이면 고양이 6/49, 강아지 43/49입니다.

고양이 · 반응 약한 칸은 어둡게
무작위 강아지 사진
섞은 사진
섞은 사진의 정답

주의: 논문은 ImageNet으로 학습된 ResNet-50의 실제 반응으로 조각을 고릅니다. 여기서는 학습된 모델 대신 "칸 안의 경계 세기 평균"을 반응의 대용으로 썼습니다. 그래서 눈·코 외에 이마 줄무늬나 배경 경계처럼 경계만 많은 칸이 뽑힐 수도 있습니다. 진짜 학습된 모델이 어떤 칸을 고를지는 이것과 다를 수 있습니다.

왜 이렇게 하면 좋아지나
  1. 조각만 봐도 고양이섞은 사진에서 고양이 성분은 눈·귀 조각 여섯 개뿐입니다. 이것으로 "고양이 12%"를 맞히려면, 모델은 털 색이나 배경이 아니라 부분 특징을 봐야 합니다.
  2. 정답도 섞는다"100% 강아지"라고 우기지 않고 88%라고 답하게 합니다. 모델이 지나치게 확신하는 버릇(과대적합)을 줄이는 규제 효과가 있습니다.
  3. 무작위 조각과의 차이원래 CutMix는 사각형 하나를 무작위 위치에서 잘라 붙입니다. 배경만 붙어 "고양이 30%"라는 틀린 정답이 생길 수 있습니다. Attentive CutMix는 반응이 큰 곳을 골라 이 문제를 줄입니다.

초보자를 위한 풀이

데이터 증강은 모델 구조를 바꾸지 않고 학습 사진만 바꿔 성능을 올리는 방법입니다. 과대적합, 즉 학습 사진에만 지나치게 맞춰지는 것을 줄이는 규제 효과가 있습니다. 위 실습은 학습된 ResNet-50 대신 "칸 안의 경계 세기"를 반응의 대용으로 썼다는 점을 기억하세요.

Colab 코드 — 이 페이지를 직접 실행해 보기

두 코드 모두 Colab에 기본으로 설치된 라이브러리와 내장 데이터만 쓴다. "노트북(.ipynb) 내려받기" 후 Colab에서 파일 → 노트북 업로드로 열거나, 복사해서 새 노트북 칸에 붙여 넣는다.

코드 1 · 왜 층을 쌓나 — 은닉층이 좌표를 바꾸는 모습섹션 2·4와 연결 · numpy, scikit-learn, matplotlib · CPU 1초 미만

가운데·둘레 두 무리를 퍼셉트론·선형 SVM·사람이 고른 변환·RBF 커널 SVM·은닉 3개 다층 퍼셉트론(넘파이로 직접 역전파)으로 비교하고, 소프트맥스와 교차엔트로피를 계산한다.

실행 결과 (2026-10-04 실행, numpy 2.4 · scikit-learn 1.8 · CPU). 난수 시드를 고정해 언제 실행해도 같다.
코드 2 · 작은 CNN과 CutMix — 사진이 적을 때 섞어 붙이기는 도움이 될까섹션 3·6과 연결 · numpy, tensorflow(Keras), scikit-learn · CPU 약 1분

손글씨 숫자 8 × 8에서 클래스당 20장만 학습에 쓰고, 같은 CNN을 그대로 / CutMix로 학습해 시험 정확도를 시드 3개로 비교한다. 고양이·강아지 사진으로 바꾸려면 keras.datasets.cifar10에서 3번(고양이)·5번(개) 클래스를 고르고 Input 모양을 (32, 32, 3)으로 바꾼다.

실행 결과 (2026-10-04 실행, TensorFlow 2.21 · Keras 3 · CPU). 시드·버전·하드웨어에 따라 숫자가 조금 바뀔 수 있다.

AI 응용 프롬프트 — 이 코드를 출발점으로 삼기

ChatGPT, Qwen, Claude 같은 AI 도우미에 붙여 넣는 프롬프트다. "복사"를 누르면 프롬프트 뒤에 고른 코드가 함께 붙는다. 〔 〕 안을 내 상황으로 바꿔 쓰면 된다.

함께 붙일 코드

AI의 답은 출발점일 뿐이다. 제안된 논문·수치·라이브러리 함수는 반드시 원문과 공식 문서로 확인한다. 공모전·논문에 AI 도움을 받았다면 주최 측과 학술지의 규정에 따라 사용 사실과 범위를 밝힌다.

용어 정리

본문의 노란 점선 밑줄과 같은 사전이다. 시리즈 전체에서 같은 표기를 쓴다. 섹션 이름을 누르면 처음 나온 곳으로 간다.

비유 모음 — 그리고 비유가 틀리는 지점

비유는 이해의 첫걸음이지만 오해의 씨앗도 된다. 사람의 눈·뇌 비유에는 강도를 표시했다. 직접 실제로 같은 일을 한다는 근거가 있음 · 부분 일부 성질만 닮음 · 없음 대응하는 것이 알려지지 않음

개념일상 비유사람의 눈·뇌 비유비유가 틀리는 지점
은닉층구겨진 종이를 펴서 자로 가르기없음종이는 사람이 펴지만, 은닉층은 "어떻게 펼지"를 학습한다. 그리고 실제로는 수백 차원에서 일어나 눈으로 볼 수 없다
CNN의 층현장 직원 → 팀장 → 임원의 보고 체계부분 시각 경로도 망막 → 1차 시각 피질 → 고차 영역으로 갈수록 넓은 영역과 복잡한 모양에 반응한다뇌에는 거꾸로 내려가는 연결과 주의가 많다. CNN은 한 방향으로만 계산한다
소프트맥스득표수를 득표율로 바꾸기없음득표율은 실제 투표 결과지만, 소프트맥스 확률은 모델의 "확신 정도"일 뿐 맞을 확률과 같지 않을 수 있다
역전파결과가 틀렸을 때 마지막 공정부터 거꾸로 책임 따지기없음책임을 "나눠 묻는" 양은 미분으로 정확히 계산된다. 누가 잘못했는지 사람이 판단하는 것이 아니다
CutMix두 사진을 오려 붙인 콜라주에, 붙인 넓이만큼 정답도 나눠 주기없음붙인 조각이 배경뿐이면 "고양이 30%"라는 틀린 정답이 생긴다. Attentive CutMix가 이것을 줄인다

저자 소개와 레퍼런스

E-1 저자 소개 · E-2 학술 레퍼런스 · E-3 그림·데이터 참고 자료

E-1 저자 소개

안상선 ((주)M-Robo 대표)

한국전기안전공사, 매일경제신문을 거쳐 현재 매일경제 사외벤처 (주)M-Robo를 창업해 대표로 재직하고 있다. (주)M-Robo는 언론사 사내 벤처로 시작한 미디어 벤처로, 국민일보에 로봇기자(스톡봇)을 서비스 했으며, 한국인터넷진흥원, 한국언론진흥재단, 한국방송통신전파진흥원 등에서 다수의 프로젝트를 진행했다. 이후 자체 A.I 뉴스 신문인 Money-Robo를 서비스 중이다. 대표 재직 중 아시아오픈 데이터 해커톤 우승, 데이터창업 분야 공로로 행정안전부 장관상을 2회 수상했으며, 인공지능 및 블록체인 분야에 대한 5개 특허 발명 및 등록자이다. 저서로는 “AI범죄와 자기방어”가 있으며, 핀테크분야, 통계학, 인공지능 분야에 대해서 한국기술교육대학교 온라인평생교육원 이러닝 콘텐츠 개발을 진행했다. 최종학위는 경제학 박사(동국대, 미시수리경제학)이다. 국민대학교, 호서대학교 등 여러 대학교에서 데이터 및 인공지능과 관련한 과목을 강의하고 있다. 자세한 프로필

강의

  • 안상선 (2025). 「비즈니스를 위한 데이터 과학」 강의안. 한국열린사이버대학교 인공지능융합학과.
  • 안상선 (2025). [K-디지털] 인공지능 자연어 처리. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.
  • 안상선 (2024). [K-디지털] 핀테크 데이터 분석 기초. STEP(스마트직업훈련플랫폼), 한국기술교육대학교 온라인평생교육원.

STEP 강의 바로가기: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
사이트 개편으로 접속이 원활하지 않을 경우에는 www.step.or.kr로 접속 바랍니다.

논문과 발표

  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 모델 기반 접근. 「미래사회」, 16(2). 원문
  • 안상선 (2025). 국민노후보장패널데이터를 활용한 가구지출 예측 모델 연구: 인공지능 접근. 국민노후보장패널 학술대회 발표자료(2025.05.13), 국민연금공단 국민연금연구원. 발표자료
  • 안상선 (2025). SNS 텍스트 기반 마약 의심 거래 탐지 알고리즘에 대한 연구: 패턴 및 맥락 분석을 중심으로. 「미래사회」, 16(1). 원문
  • 안상선 (2024). 금융분야의 이상탐지 모델 보안을 위한 통계 기반의 적대적 데이터 대응 방안: 실증적 분석과 시뮬레이션 결과. 「미래사회」, 15(3). 원문
  • 안상선 (2024). 인공지능을 활용한 가상 캐릭터 특성 기반 SNS 포스팅 탐지 솔루션. 2024 Summer Newmedia Party 포스터 발표(2024.06.19), 서울미디어대학원대학교.
  • 안상선 (2024). 산업재해 패널 데이터를 활용한 머신러닝 모델. 제10회 산재보험패널 학술대회 포스터 발표(2024.05.17), 근로복지공단 근로복지연구원.
  • 안상선 (2024). 가상 자산 시계열 데이터의 분석과 예측: 시계열 모델 및 인공지능 모델의 비교, 개선점 제시. 「미래사회」, 15(1). 원문

E-2 학술 레퍼런스

  1. [R1] Rosenblatt, F. (1958). The perceptron. Psychological Review, 65(6), 386–408. — 섹션 2
  2. [R2] Boser, B. E., Guyon, I. M., & Vapnik, V. N. (1992). A training algorithm for optimal margin classifiers. COLT 1992. — 섹션 2 (커널 SVM)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. — 섹션 2·4
  4. [R4] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. CVPR 2016. — 섹션 3·6
  5. [R5] Yun, S., Han, D., Oh, S. J., Chun, S., Choe, J., & Yoo, Y. (2019). CutMix: Regularization strategy to train strong classifiers with localizable features. ICCV 2019. — 섹션 6, 코드 2
  6. [R6] Walawalkar, D., Shen, Z., Liu, Z., & Savvides, M. (2020). Attentive CutMix: An enhanced data augmentation approach for deep learning based image classification. ICASSP 2020. — 섹션 1·6
  7. [R7] Zhang, H., Cisse, M., Dauphin, Y. N., & Lopez-Paz, D. (2018). mixup: Beyond empirical risk minimization. ICLR 2018. — 섹션 6
  8. [R8] Razavian, A. S., Azizpour, H., Sullivan, J., & Carlsson, S. (2014). CNN features off-the-shelf: An astounding baseline for recognition. CVPR Workshops 2014. — 섹션 2
  9. [R9] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. NeurIPS 2012. — 섹션 2

E-3 그림·데이터 참고 자료

  • 섹션 1의 이미지는 저자가 직접 만든 것으로, [R6]의 절차를 그렸다
  • 섹션 2의 점은 설명용 가상 데이터이고, ③의 은닉층은 페이지가 열릴 때 브라우저에서 실제로 학습한다
  • 섹션 4 애니메이션의 1층 특징 맵과 풀링은 실제 계산, 뒤쪽 층 반응과 확률은 예시 값이다
  • 섹션 6의 7 × 7 반응 지도는 학습된 모델 대신 칸별 경계 세기로 대신한 것이다

교육자를 위한 TIP

강사, 실무 OJT 담당자, 튜터를 위한 운영 안내다. 시간은 예상치이므로 실제 수업에 맞춰 조정한다.

대상4-1·4-2를 마친 대학생·직장인. 딥러닝이 "왜 깊어야 하는지" 설명이 필요한 실무자
선수 지식4-1의 퍼셉트론·SVM, 4-2의 합성곱. 지수 함수 e^z의 뜻
학습 목표① 선형 분류기가 막히는 데이터를 예로 들고, 은닉층이 좌표를 바꾸는 원리를 설명한다 ② CNN의 층별 출력 크기와 파라미터 수를 계산한다 ③ 소프트맥스·교차엔트로피를 계산하고, CutMix의 정답 섞기를 설명한다
예상 시간읽기 45~55분 · 실습 시연 25분 · Colab 실습 30분 (코드 1 10분, 코드 2 실행 1분 + 해석 19분)

운영안 세 가지

강의형 50분

개념 중심

도입 5분(섹션 1) → 섹션 2 3차원 그림 15분 → 섹션 3 크기 표 10분 → 섹션 4 소프트맥스 계산기 10분 → 섹션 6 CutMix 5분 → 확인 문제 5분.

실무 OJT 90분

업무 적용 중심

섹션 2를 우리 데이터의 "평면으로 안 갈리는 사례"로 바꿔 토론 20분 → 섹션 3 표로 우리 입력 크기의 파라미터 수 계산 15분 → 섹션 6 증강 표에서 우리 사진에 맞는 방법 고르기 20분 → 코드 2를 우리 사진 적은 상황으로 바꿔 실행 35분.

1:1 튜터링

수준별 진도

입문자는 섹션 1·2·4만. 중급자는 섹션 3 표의 파라미터 수를 손으로 다시 계산하고, 코드 1의 역전파 세 줄을 수식과 한 줄씩 맞춰 보게 한다.

섹션별 운영 포인트

섹션멈춰서 물어볼 질문조작 팁
1 문제"고양이와 강아지의 공통점은 무엇일까?"이미지의 6/49가 어디서 왔는지 먼저 묻는다
2 왜 층을 쌓나"평면을 어디에 세워도 왜 한쪽이 잘릴까?"① → ② → ③ 순서로 누르고 그림을 돌린다
3 CNN 구조"풀링 층의 학습할 숫자는 몇 개일까?"표에서 크기와 파라미터 열을 위아래로 짚는다
4 확률"점수가 같으면 확률은?"소프트맥스 계산기에서 두 점수를 같게 맞춘다
5 고양이 vs 강아지"털 색만 보고 가르면 무엇이 문제일까?"쌍 비교의 경계 세기와 해상도 7을 본다
6 데이터 증강"고양이 조각 10칸이면 정답은?"k 슬라이더를 1 → 15로 옮기며 정답 막대를 본다

흔한 오해 Top 5

오해바른 설명보여 줄 장면
층을 쌓기만 하면 휜 경계가 된다꺾인 함수(활성화)가 없으면 층을 쌓아도 평면 하나와 같다섹션 2 확인 문제 Q3
SVM은 비선형 분류를 못 한다커널 SVM은 휜 경계를 만든다. 다만 커널을 사람이 고른다섹션 2의 ②와 코드 1의 RBF 결과
소프트맥스 확률 = 맞을 확률모델의 확신일 뿐, 실제 정답률과 다를 수 있다(보정 문제)섹션 4 계산기에서 점수를 크게 벌린다
CNN은 학습할 숫자가 많아서 잘한다같은 필터를 다시 써서 완전연결망보다 훨씬 적다섹션 3 표의 29,858
데이터 증강은 사진을 늘릴 뿐이다무엇을 봐야 하는지 가르치는 규제다. 정답을 섞는 방법도 있다섹션 6 증강 표와 코드 2

확인 문제 (해설은 눌러서 펼치기)

Q1. 점들이 가운데·둘레로 얽혀 있을 때 선형 SVM이 막히는 이유는?

경계가 평면(2차원에서는 직선) 하나라서, 어느 방향으로 세워도 둘레 무리를 둘로 자르게 된다. 코드 1에서 57.7%였다.

Q2. 3 × 3 필터 32개로 16장짜리 특징 맵을 처리하는 합성곱 층의 파라미터 수는?

3 × 3 × 16 × 32 + 32(편향) = 4,640개.

Q3. 점수 z = (2.0, 2.0)의 소프트맥스 확률과, 정답이 첫째일 때 교차엔트로피는?

확률 (0.5, 0.5). 손실 −log 0.5 ≈ 0.693.

Q4. 7 × 7 격자에서 고양이 조각 10칸을 붙였다. 정답 비율은?

고양이 10/49 ≈ 0.204, 강아지 39/49 ≈ 0.796.

Q5. 코드 2에서 CutMix가 시험 정확도를 올렸다. 학습 정확도는 왜 둘 다 100%였나?

학습 사진이 200장으로 적어 두 모델 모두 학습 사진은 다 맞힐 수 있다. 차이는 처음 보는 시험 사진에서 난다(과대적합의 정도).

Colab 과제

기본

코드 1에서 은닉 뉴런 수를 1, 2, 3, 8로 바꿔 정확도를 표로 만들고, 몇 개부터 가운데·둘레를 가를 수 있는지와 그 이유를 쓴다.

도전

코드 2의 PER_CLASS를 10, 20, 50, 100으로 바꿔 CutMix의 효과(시험 정확도 차이)가 사진 수에 따라 어떻게 변하는지 시드 3개로 보고한다.

난이도 조절과 더 배우기

입문자섹션 3의 표와 섹션 4의 수식은 건너뛰어도 된다. 섹션 2의 3차원 그림과 섹션 6의 CutMix 실습을 확실히 해 본다
심화Mixup과 CutMix를 코드 2에 모두 넣어 비교하고, 정답을 섞는 증강이 모델의 확신(소프트맥스 최댓값)을 어떻게 바꾸는지 발표하게 한다
더 배우기3-3 이미지와 CNN · 4-4 치와와 vs 머핀 (고수준 특징과 모델의 한계)
강사용 자료확인 문제의 채점 기준과 과제 예시 답안은 교육자용 정답 페이지 (4-3)에서 볼 수 있다

수고하셨습니다!

「4-3 고양이 vs 강아지」 편을 끝까지 읽었어요. 연구실 식구들이 한마디씩 정리해 드립니다.

밤의 도시가 보이는 창가에서 연구실 식구 넷이 손을 흔드는 픽셀 아트
박사
박사층을 쌓는 이유를 찾았어요.
  • 평면 하나로 안 갈리면 좌표를 바꾼다
  • CNN은 작아지고 두꺼워지며 특징을 쌓는다
  • CutMix는 조각을 붙이고 정답도 섞는다
조수
조수은닉 뉴런 세 개만으로 99%가 나왔어요!
초파리 연구원
초파리 연구원마지막은 치와와와 머핀. 사람도 헷갈리는 쌍이야.