오늘 끝나면
CNN 기초
- ✓CNN 기초의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 CNN이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
1989 LeCun → 2012 AlexNet의 ImageNet 충격 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
AI · Day 5 / 지도학습 · 생성 DL
이미지를 보는
뉴런
픽셀을 한 줄로 펴서 MLP에 넣으면 공간 구조가 사라진다. CNN은 펴지 않는다. 작은 필터를 이미지 위로 미끄러뜨려같은 눈으로 모든 자리를 본다.
MLP는 왜 그림을 못 보나
MLP로 손글씨 분류도 잘 된다. 그런데 왜 CNN을 따로 만들었을까?
MLP는 이미지를 그대로 못 받는다. 28×28 픽셀을 한 줄로 펴서 784차원 벡터로 만들어야 들어간다.
펴는 순간 옆 픽셀이 옆이라는 사실, 즉 공간 구조가 사라진다. 모델은 3번 픽셀과 4번 픽셀이 이웃인지 정반대편인지 알 길이 없다.
첫 층 가중치만 784 × 512 ≈ 40만 개다. 그런데 똑같은 고양이가 3픽셀만 옮겨가도 MLP에는 완전히 새 입력이다. 위치가 바뀌면 처음부터 다시 배워야 한다.
필터를 미끄러뜨린다
CNN의 핵심은 하나다. 작은 필터 하나를 이미지 전체에 돌려쓴다.
커널은 3×3 가중치 묶음이다. 이걸 이미지 왼쪽 위에 올리고, 겹친 9개 픽셀과 곱해 더하면, 그 값 하나가 출력 한 칸이 된다.
커널을 한 칸 오른쪽으로 밀고 또 계산한다. 끝까지 미끄러뜨리면 새 격자가 나온다. 이걸 특징 맵이라 부른다.
핵심은 같은 9개 가중치를 모든 위치에서 재사용한다는 것이다. 이게 파라미터 공유다. 덕분에 고양이가 어디 있든 같은 눈으로 찾는다. MLP가 못 가진 평행 이동 불변성의 출발점이다.
필터는 무엇을 보나
그 9개 숫자에는 뭐가 들어갈까? 학습 전에 손으로 채워 보면 직관이 온다.
왼쪽은 음수, 오른쪽은 양수로 채운 커널을 보자. 밝기가 평평한 곳에서는 양수와 음수가 상쇄돼 0에 가깝다. 어두운 면에서 밝은 면으로 넘어가는 세로 경계를 만나면 큰 값이 튄다. 이게 에지 검출 필터다.
CNN은 이 숫자를 사람이 정하지 않는다. 역전파가 직접 학습한다. 첫 층은 에지나 색 얼룩 같은 저수준 패턴을 찾는다. 깊은 층은 눈, 바퀴, 글자처럼 복잡한 패턴을 스스로 찾는다. 우리가 한 건 구조만 깔아 준 것뿐이다.
파이썬 코드 보기
# 세로 에지 검출 커널 (Sobel)
kernel = [[-1, 0, 1],
[-2, 0, 2],
[-1, 0, 1]]
# 평평한 영역 -> 합이 0 (반응 없음)
# 세로 경계 -> 큰 값 (에지 감지)
# CNN에선 이 9개 숫자를
# 사람이 안 정한다.
# 역전파가 스스로 학습한다.Q. 합성곱 출력 크기 공식은?
입력 N, 커널 K, 패딩 P, 스트라이드 S일 때 출력은 (N 빼기 K 더하기 2P) 나누기 S 더하기 1이다. 입력 28, 커널 3, 패딩 0, 스트라이드 1이면 출력은 26이다.풀링과 전체 골격
특징을 뽑았으면 다음은 요약이다. 숫자가 너무 많으니 줄여야 한다.
맥스 풀링은 2×2 영역에서 가장 큰 값 하나만 남기는 것이다. 가로세로가 절반으로 줄어 계산이 가벼워진다. 동시에 특징이 한두 픽셀 움직여도 같은 답을 내는 작은 강건함을 얻는다.
전형적인 CNN은 이 블록을 쌓는다. Conv → ReLU → Pool을 몇 번 반복해 점점 작고 깊은 특징 맵을 만든다. 마지막에 한 줄로 펴서 완전연결층으로 분류한다.
1998년, 르쿤이 LeNet으로 이 골격을 세웠다. 2012년, AlexNet이 이걸 키워 ImageNet을 뒤집었다.
현장에서 무엇을 바꾸나
이 구조가 비즈니스에서 뭘 바꿨을까? 한마디로 눈으로 하던 검사를 자동화한다.
제조 현장은 부품 표면 흠집을 사람이 일일이 본다. 같은 흠집이 화면 어디에 찍혀도 잡아내야 한다. 이게 CNN의 평행 이동 불변성이 빛나는 자리다. 수백 장만 라벨링해도 95%대 검출이 나오기 시작한다.
핵심은 데이터다. 흠집 사진이 적으면 좌우 반전이나 회전, 밝기 변형으로 부풀린다. 이걸 데이터 증강이라 부른다. CNN은 작은 변형에 강하다. 그런데 그 강건함도 보고 배운 만큼만 생긴다. 구조가 절반, 데이터가 절반이다.