AI 기초 및 활용 14회: CNN, 보는 기계 — 작은 창문 하나로 시작하는 시각
오늘의 질문 — 사진 한 장에 픽셀이 백만 개입니다
스마트폰으로 찍은 사진 한 장에는 픽셀이 수백만 개 들어 있습니다. 이 사진에 고양이가 있는지 없는지를 신경망에게 물어보려면, 그 픽셀 전부를 입력으로 넣어야 합니다.
12회차에서 배운 대로 층을 이어 붙여 봅시다. 입력 픽셀 백만 개를 첫 은닉층의 뉴런 천 개에 전부 연결하면, 가중치가 몇 개일까요. 백만 곱하기 천, 10억 개입니다. 첫 층 하나에서요.
그리고 더 이상한 문제가 있습니다. 이렇게 학습시킨 망은, 같은 고양이가 사진에서 몇 픽셀만 오른쪽으로 옮겨져도 못 알아봅니다. 사람에게는 똑같은 고양이인데 말이죠.
오늘의 질문은 이것입니다. 보는 일에는 무엇이 특별한가. 그리고 그 특별함을 배열에 어떻게 새겨 넣을 것인가.
지난 회차 연결 — 이제 배열을 이야기합니다
13회차에서 우리는 신경망을 가르치는 일반적인 방법을 손에 넣었습니다. 손실로 틀린 정도를 재고, 경사하강법으로 방향을 찾고, 역전파로 책임을 안쪽까지 나눠 물리는 것이었죠.
이 방법은 층을 어떻게 배열하든 그대로 작동합니다. 그래서 이제부터의 이야기는 학습법이 아니라 구조예요. 같은 부품과 같은 학습법으로, 배열만 바꿔서 무엇을 잘하게 만들 것인가.
오늘의 배열은 눈입니다. 다음 회차는 귀와 시간이고, 그다음이 말입니다. 셋 다 같은 뉴런, 같은 역전파를 씁니다. 배열만 다릅니다.

완전연결의 재앙 — 가중치가 폭발합니다
모든 입력을 모든 뉴런에 연결하는 방식을 완전연결이라고 합니다. 12·13회차에서 우리가 상상한 구조가 이것이었어요.
이미지에 완전연결을 쓰면 가중치 수가 감당이 안 됩니다. 앞서 계산한 10억 개는 첫 층만의 이야기예요. 층을 몇 개 더 쌓으면 수십억, 수백억이 됩니다.
가중치가 많으면 두 가지가 동시에 나빠집니다. 첫째, 계산과 메모리가 감당 불가능해집니다. 13회차에서 본 대로 훈련 중에는 중간값까지 붙들고 있어야 하니까요.
둘째, 더 근본적인 문제입니다. 10회차에서 배운 과적합이에요. 조절할 다이얼이 데이터보다 훨씬 많으면, 모델은 규칙을 배우는 대신 훈련 사진을 통째로 외웁니다. 새 사진에서는 무너지고요.
그리고 더 큰 문제 — 위치가 조금만 바뀌면 못 알아봅니다
완전연결의 진짜 약점은 사실 계산량이 아닙니다. 구조 자체가 이미지에 대해 잘못된 가정을 깔고 있다는 것이에요.
완전연결층에게 픽셀 백만 개는 그냥 순서 없는 숫자 백만 개입니다. 위쪽 픽셀과 그 바로 아래 픽셀이 이웃이라는 것도, 왼쪽 구석과 오른쪽 구석이 멀리 떨어져 있다는 것도 모릅니다. 픽셀들을 무작위로 섞어서 넣어도 이 망은 똑같이 학습합니다.
그런데 이미지에서 이웃 관계는 정보의 핵심입니다. 눈이 눈으로 보이는 이유는 눈 모양 픽셀들이 서로 붙어 있기 때문이죠.
게다가 왼쪽 위에서 고양이 귀를 알아보도록 배운 가중치는, 오른쪽 아래에서는 아무 쓸모가 없습니다. 위치마다 처음부터 다시 배워야 해요. 사람은 고양이가 어디에 있든 고양이로 봅니다. 이 당연한 성질이 완전연결에는 없습니다.

사람의 눈은 어떻게 보나 — 국소 수용장
해법의 힌트는 생물학에서 나왔습니다. 1950~60년대에 데이비드 허블과 토르스텐 비셀이 고양이의 시각 피질을 연구하다가 놀라운 것을 발견합니다.
시각 피질의 뉴런 하나는 시야 전체를 보지 않았습니다. 각 뉴런은 시야의 아주 작은 조각 하나만 담당했어요. 이 담당 구역을 수용장이라고 부릅니다.
더 흥미로운 것은 그 뉴런들이 무엇에 반응하는가였습니다. 어떤 뉴런은 자기 구역에 특정 각도의 선이 나타날 때만 발화했습니다. 다른 뉴런은 다른 각도의 선에 반응했고요.
그리고 그 위층에는, 여러 개의 선 감지 뉴런들로부터 신호를 받아 더 복잡한 모양에 반응하는 뉴런이 있었습니다. 단순한 것에서 복잡한 것으로 올라가는 층 구조가 실제 뇌에 있었던 겁니다.
창문으로 훑는다는 아이디어
이 발견을 계산 구조로 옮기면 이렇게 됩니다. 뉴런 하나가 이미지 전체를 보게 하지 말고, 작은 사각형 창문 하나만 보게 합시다. 가로세로 세 칸 정도면 충분해요.
그러면 그 뉴런의 가중치는 몇 개일까요. 백만 개가 아니라 아홉 개입니다. 창문 안의 픽셀 수만큼이에요.
그리고 이 창문을 이미지 위에서 한 칸씩 옮겨 가며 훑습니다. 왼쪽 위에서 시작해 오른쪽으로, 한 줄 끝나면 아래로. 각 위치마다 창문 안의 픽셀에 가중치를 곱해 더하고, 그 결과를 기록합니다.
이 훑는 연산이 합성곱입니다. 이름은 낯설지만 하는 일은 방금 말한 그대로예요. 작은 창문으로 화면 전체를 훑으며 같은 계산을 반복하는 것.

합성곱의 결정적 이점 — 가중치 공유
여기서 가장 중요한 대목이 나옵니다. 창문을 옮겨 가며 훑을 때, 가중치 아홉 개는 바뀌지 않습니다. 왼쪽 위에서 쓰던 그 아홉 개를 오른쪽 아래에서도 똑같이 씁니다.
이것을 가중치 공유라고 합니다. 그리고 이 하나가 앞서 말한 두 문제를 동시에 해결해요.
첫째, 가중치 수가 폭발적으로 줄어듭니다. 완전연결에서 10억 개였던 것이, 창문 하나당 아홉 개가 됩니다. 창문 종류를 예순 개 쓴다 해도 540개예요. 비교가 무의미한 수준입니다.
둘째, 위치가 바뀌어도 알아봅니다. 같은 가중치로 온 화면을 훑으니, 왼쪽 위에서 귀를 찾아내던 능력이 오른쪽 아래에서도 그대로 작동합니다. 고양이가 어디로 옮겨져도 반응해요.
이것이 구조에 지식을 새겨 넣는다는 말의 뜻입니다. "이미지에서는 이웃이 중요하다"와 "같은 무늬는 어디에 있든 같은 무늬다"라는 두 가지 상식을, 데이터로 배우게 하는 대신 배열 자체에 못 박아 둔 것이죠.
필터가 찾는 것 — 선, 모서리, 얼룩
창문 안의 가중치 아홉 개 묶음을 필터 또는 커널이라고 부릅니다. 그러면 이 필터는 무엇을 찾을까요.
재미있는 것은 사람이 정해 주지 않는다는 점입니다. 필터의 값도 그냥 가중치이고, 13회차의 역전파로 학습됩니다.
그런데 실제로 학습시켜 놓고 첫 층의 필터들을 들여다보면, 놀랍게도 거의 항상 비슷한 것들이 나옵니다. 특정 각도의 경계선을 찾는 필터, 밝기가 급격히 변하는 모서리를 찾는 필터, 작고 둥근 얼룩을 찾는 필터.
허블과 비셀이 고양이 뇌에서 발견한 것과 같은 종류입니다. 전혀 다른 출발점에서 같은 답에 도달한 셈이에요. 이미지를 이해하려면 선부터 찾는 것이 자연스러운 순서라는 뜻이겠죠.

특징 지도 — 어디에서 발견됐는지의 기록
필터 하나로 이미지 전체를 훑고 나면 무엇이 남을까요. 각 위치마다 하나씩의 숫자가 남습니다. 그 자리에서 이 필터가 찾는 무늬가 얼마나 강하게 나타났는지를 뜻하는 값이에요.
이 숫자들을 원래 이미지와 같은 배치로 늘어놓으면 새로운 지도가 하나 만들어집니다. 이것을 특징 지도라고 부릅니다.
세로선을 찾는 필터의 특징 지도를 보면, 원본에서 세로선이 있던 자리가 밝게 빛납니다. "무엇이" 있었는지가 아니라 "어디에" 있었는지까지 함께 담긴 지도예요.
이 점이 중요합니다. 합성곱층의 출력은 숫자 하나가 아니라 공간 배치를 유지한 지도입니다. 그래서 다음 층이 다시 창문으로 훑을 수 있어요. 훑고, 지도를 만들고, 그 지도를 다시 훑고. 이 반복이 CNN의 뼈대입니다.
여러 개의 창문을 동시에
필터 하나로는 한 가지 무늬밖에 못 찾습니다. 그래서 실제로는 여러 필터를 동시에 씁니다. 첫 층에 예순 개, 백스물여덟 개를 두는 식이에요.
필터가 예순 개면 특징 지도도 예순 장이 나옵니다. 세로선 지도, 가로선 지도, 대각선 지도, 얼룩 지도. 같은 이미지를 예순 가지 다른 관점으로 다시 그린 셈입니다.
12회차에서 은닉층이 하는 일을 "판단하기 좋은 자리로 데이터를 재배치하는 것"이라고 했죠. 합성곱층이 하는 일이 정확히 그것입니다. 다만 공간 배치를 지키면서 재배치한다는 점이 다릅니다.

채널이라는 세 번째 축 — 컬러는 어떻게 다루나
지금까지는 흑백 이미지처럼 이야기했습니다. 컬러 사진은 어떻게 될까요.
컬러 사진의 픽셀 하나에는 숫자가 하나가 아니라 셋 들어 있습니다. 빨강·초록·파랑의 세기죠. 그래서 이미지는 평평한 판이 아니라 같은 크기의 판 세 장이 겹쳐진 것입니다. 이 겹쳐진 장들을 채널이라고 부릅니다.
필터도 따라서 두꺼워집니다. 가로세로 세 칸짜리 창문이지만 세 채널을 동시에 봐야 하니 가중치가 아홉 개가 아니라 스물일곱 개예요. 창문이 판을 뚫고 들어가는 작은 상자라고 생각하면 정확합니다.
그리고 여기서 중요한 규칙이 하나 나옵니다. 필터 하나는 모든 채널을 합쳐 특징 지도 한 장을 만듭니다. 그러니 다음 층의 입력 채널 수는 직전 층의 필터 개수가 돼요. 첫 층에 필터를 예순 개 뒀다면 다음 층의 입력은 예순 채널입니다.
층이 깊어질수록 공간 크기는 풀링에 줄어들고 채널 수는 늘어납니다. "어디에 있는가"는 흐려지고 "무엇인가"는 풍부해지는 방향이에요. 이 맞바꿈이 CNN 설계의 기본 문법입니다.
풀링 — 조금 흐릿하게 만들어 오히려 강해지기
합성곱층 뒤에는 보통 풀링이라는 층이 붙습니다. 하는 일은 아주 단순해요. 특징 지도를 작은 구역으로 나누고, 각 구역에서 가장 큰 값 하나만 남깁니다. 나머지는 버려요.
가로세로 두 칸씩 묶어 최댓값만 남기면 지도가 절반 크기로 줄어듭니다. 정보를 버리는데 왜 이런 짓을 할까요.
첫째, 계산이 줄어듭니다. 이건 부수적이에요. 진짜 이유는 둘째입니다. 위치가 조금 흔들려도 결과가 같아집니다.
구역 안 어디에 있든 최댓값만 남기니, 무늬가 한두 칸 옮겨져도 결과가 바뀌지 않아요. "세로선이 정확히 이 좌표에 있다"가 아니라 "이 근처에 세로선이 있다"로 기록이 느슨해지는 겁니다. 그리고 물체를 알아보는 데는 이 느슨함이 훨씬 유용합니다.
층을 쌓으면 보이는 범위가 커집니다
여기서 CNN의 가장 우아한 성질이 나옵니다. 첫 층의 뉴런은 원본에서 세 칸짜리 창문만 봅니다. 그러면 두 번째 층은요?
두 번째 층도 세 칸 창문으로 훑습니다. 그런데 그 창문 안에 들어오는 것은 원본 픽셀이 아니라 첫 층의 특징 지도예요. 그 지도의 각 칸은 이미 원본의 세 칸을 요약한 값이고요.
그러니까 두 번째 층 뉴런은 실질적으로 원본의 다섯 칸 넓이를 보고 있는 셈입니다. 세 번째 층은 일곱 칸, 그다음은 아홉 칸. 풀링이 끼면 이 성장은 더 빨라집니다.
층을 스무 개쯤 쌓으면 마지막 층의 뉴런 하나가 이미지 전체를 보게 됩니다. 처음부터 전체를 연결하지 않고도, 작은 창문을 쌓는 것만으로 전체 시야에 도달하는 것이죠. 이것을 수용장이 자란다고 표현합니다.

선에서 모양으로, 모양에서 물체로
수용장이 자라면 각 층이 반응하는 대상도 함께 자랍니다. 학습된 CNN의 층별 필터를 실제로 시각화해 보면 또렷한 위계가 나타납니다.
첫 층은 선과 모서리와 얼룩에 반응합니다. 가장 원초적인 시각 요소들이에요.
중간층은 그 선들이 조합된 것에 반응합니다. 모서리 두 개가 만나 만드는 각, 곡선의 일부, 반복되는 무늬, 눈처럼 생긴 동그란 배치 같은 것들입니다.
깊은 층은 부품 단위로 올라갑니다. 얼굴, 바퀴, 문손잡이, 개의 코. 그리고 마지막 층에서는 이 부품들의 조합으로 물체 전체를 판정합니다.
이 위계를 사람이 설계하지 않았다는 것이 핵심입니다. 그냥 사진과 정답을 잔뜩 주고 역전파를 돌렸더니 스스로 이렇게 조직됐어요. 6회차에서 말한 두 번째 병목, 특징을 사람이 설계해야 하는 병목이 여기서 실물로 뚫립니다.

그리고 마지막은 결국 완전연결입니다
합성곱과 풀링을 여러 번 거치고 나면 무엇이 남을까요. 작아진 대신 채널이 아주 많아진 특징 지도 뭉치가 남습니다. 공간 정보는 흐려졌고 "무엇이 있는가"에 대한 정보는 짙어진 상태예요.
여기서 마지막 판정을 내려야 합니다. "이 사진은 고양이다"라는 하나의 답으로요. 이 단계에서는 공간을 지킬 이유가 없습니다. 오히려 모든 정보를 한데 모아 종합해야 하죠.
그래서 마지막에는 지도들을 쭉 펴서 한 줄로 만들고 완전연결층에 넣습니다. 앞에서 그렇게 피했던 그 구조가 마지막에는 오히려 알맞은 겁니다.
이 구성이 CNN의 전체 그림입니다. 앞부분은 특징을 뽑는 눈이고, 뒷부분은 판정을 내리는 머리예요. 그리고 이 분리 덕분에 아주 유용한 재활용이 가능해집니다. 이미지넷으로 학습시킨 망의 앞부분을 그대로 가져오고 뒷부분만 새로 학습시키면, 사진 몇백 장만으로도 새로운 분류기를 만들 수 있어요. 이것을 전이학습이라고 부릅니다. 데이터가 적은 현장에서 CNN이 실제로 쓰이는 거의 모든 경우가 이 방식입니다.
1998년 르넷 — 우편번호를 읽던 망
이 구조를 처음으로 제대로 완성한 사람이 얀 르쿤입니다. 1998년에 발표된 르넷이 합성곱과 풀링을 번갈아 쌓은 오늘날 CNN의 원형이에요.
르넷은 실제로 쓰였습니다. 미국 우편물의 손글씨 우편번호를 읽었고, 은행 수표의 금액을 읽었습니다. 한때 미국에서 처리되는 수표의 상당 비율을 이 망이 읽었다고 전해집니다.
구조는 이미 옳았습니다. 그런데 왜 그때 세상이 바뀌지 않았을까요. 손글씨 숫자는 되는데 자연 사진은 안 됐기 때문입니다.
숫자는 흑백이고 배경이 깨끗하고 종류가 열 개뿐이에요. 반면 고양이 사진은 색이 있고 배경이 어지럽고 각도와 조명이 제각각이며 품종이 수십 가지입니다. 이 차이를 메우려면 훨씬 깊은 망과 훨씬 많은 데이터가 필요했는데, 1998년에는 둘 다 없었습니다.
2012년 알렉스넷 — 그날 무슨 일이 있었나
3회차에서 예고한 그 순간입니다. 이미지넷은 천 개 부류로 분류된 백만 장 이상의 사진을 모은 데이터셋이고, 여기서 매년 인식 대회가 열렸습니다.
2011년까지 우승 기록은 오차율 25퍼센트 근처였습니다. 사람이 설계한 특징 추출기에 분류기를 붙이는 방식이었고, 해마다 1~2퍼센트씩 개선되던 중이었어요.
2012년, 제프리 힌턴의 연구실에서 온 알렉스 크리제프스키와 일리야 수츠케버가 알렉스넷을 냅니다. 오차율 16퍼센트대. 2위와의 격차가 10퍼센트포인트 이상이었어요.
이 정도 격차는 개선이 아니라 다른 방법이 등장했다는 신호입니다. 그 자리에 있던 연구자들이 방향을 바꿨고, 이듬해 대회는 거의 전부 CNN이었습니다. 딥러닝의 시대가 이날 시작됐다고 말하는 이유예요.

세 가지가 동시에 갖춰졌습니다
알렉스넷의 구조는 르넷과 본질적으로 같습니다. 합성곱과 풀링을 번갈아 쌓고 마지막에 완전연결층을 붙였어요. 그러면 14년 사이에 무엇이 달라진 걸까요.
첫째, 데이터입니다. 이미지넷의 백만 장이 있었습니다. 페이페이 리 연구팀이 수년간 사람 손으로 이미지에 이름표를 붙여 만든 자산이었어요. 딥러닝의 승리에는 데이터를 만든 사람들의 노동이 절반쯤 들어 있습니다.
둘째, 계산입니다. 알렉스넷은 그래픽카드 두 장으로 학습됐습니다. 원래 게임 화면을 그리려고 만든 장치가 같은 계산을 대량으로 동시에 하는 데 최적이었고, 합성곱이 정확히 그런 계산이었죠. 오늘의 AI 반도체 산업 전체가 이 우연에서 출발합니다.
셋째, 기법입니다. 13회차에서 다룬 사라지는 기울기를 렐루가 풀었고, 과적합은 드롭아웃이 눌렀습니다. 드롭아웃은 훈련 중에 뉴런 일부를 무작위로 꺼 버리는 방법인데, 특정 뉴런에만 의존하지 못하게 만들어 일반화를 돕습니다.
그 뒤의 흐름 — 더 깊게, 그리고 지름길
2012년 이후 몇 년은 깊이 경쟁이었습니다. 2014년 VGG가 열아홉 층을 쌓았고, 같은 해 구글넷이 스물두 층을 쌓았어요.
그런데 층을 더 쌓자 이상한 일이 벌어집니다. 층을 늘렸는데 성적이 오히려 나빠졌어요. 과적합 때문이 아니었습니다. 훈련 데이터에서조차 성적이 떨어졌으니까요. 깊은 망은 학습 자체가 어려웠던 겁니다.
2015년 레스넷이 이 문제를 아주 단순한 아이디어로 풉니다. 층을 건너뛰는 지름길을 추가한 거예요. 입력이 두어 층을 거친 결과에, 원래 입력을 그대로 더해 줍니다.
이렇게 하면 역전파의 오차가 지름길을 타고 줄어들지 않은 채 앞쪽까지 도달합니다. 사라지는 기울기가 구조적으로 완화되는 것이죠. 레스넷은 152층을 학습시켰고, 이 지름길 아이디어는 오늘날 트랜스포머에도 그대로 들어가 있습니다. 16회차에서 다시 만나요.

실전 ① 의료 영상과 산업 검사
CNN이 가장 확실하게 자리 잡은 분야는 정해진 것을 찾는 일입니다.
의료 영상에서는 흉부 엑스레이의 결절, 안저 사진의 당뇨망막병증, 피부 병변 판독에 쓰입니다. 특히 선별 검사에서 값어치가 큽니다. 전부를 정확히 판정하는 것이 아니라, 사람이 반드시 봐야 할 것을 골라내는 역할이에요.
10회차의 정밀도·재현율 이야기가 여기서 그대로 살아납니다. 선별에서는 재현율이 압도적으로 중요합니다. 놓치는 것이 잘못 의심하는 것보다 훨씬 비싸니까요.
산업 현장에서는 불량 검사에 널리 쓰입니다. 디스플레이 패널의 미세 결함, 용접부 균열, 농산물 선별 같은 일이에요. 사람이 하면 지치고 놓치지만 기계는 지치지 않습니다.
실전 ② 저시력 접근성과 이미지 설명
CNN이 접근성에서 만든 변화는 구체적입니다. 사진에 무엇이 있는지 말로 알려주는 일이죠.
대체텍스트가 없는 이미지는 화면 낭독기 사용자에게 존재하지 않는 것과 같습니다. "이미지"라고만 읽히거나 파일 이름이 읽히죠. 웹의 이미지 상당수가 이 상태입니다.
CNN 기반 이미지 인식이 이 빈칸을 자동으로 메우기 시작했습니다. 요즘은 22회차에서 다룰 멀티모달 모델이 더 자연스러운 문장을 만들지만, 그 밑바닥에서 사진을 이해하는 부분은 여전히 합성곱 계열의 후예입니다.
다만 한계도 분명합니다. 자동 설명은 맥락을 모릅니다. "탁자 위의 종이"라고 말할 수는 있어도 그 종이가 계약서인지 영수증인지, 지금 이 대화에서 왜 중요한지는 모르죠. 자동 설명은 사람이 쓴 대체텍스트의 대체재가 아니라 최소한의 안전망입니다. 25회차에서 이 주제를 정면으로 다룹니다.

실전 ③ CNN이 못 보는 것 — 적대적 예제
마지막으로 한계를 정직하게 봅시다. CNN에는 사람과 전혀 다른 방식으로 무너지는 지점이 있어요.
사진에 사람 눈에는 거의 보이지 않는 미세한 잡티를 정교하게 얹으면, 모델의 판정이 완전히 뒤집힙니다. 판다 사진이 원숭이로 분류되는 식이죠. 사람에게는 여전히 판다인데 말입니다. 이런 입력을 적대적 예제라고 부릅니다.
왜 이런 일이 생길까요. 모델이 학습한 것이 사람이 쓰는 단서와 다르기 때문입니다. 우리는 형태와 맥락으로 보지만, CNN은 질감과 미세한 통계적 무늬에 크게 의존한다는 연구들이 있어요. 사람 눈에 안 보이는 무늬를 건드리면 판정이 바뀌는 이유입니다.
여기서 얻을 교훈은 이것입니다. 정확도가 높다는 것이 사람처럼 본다는 뜻은 아닙니다. 같은 답을 내더라도 근거가 다를 수 있어요. 이 간극이 21회차의 환각, 28회차의 편향과 같은 뿌리에서 나옵니다.

핵심 정리 — 세 줄
첫째, CNN은 작은 창문으로 화면 전체를 훑으며 같은 가중치를 반복해 씁니다. 이 가중치 공유 하나가 완전연결의 두 재앙을 동시에 해결합니다. 가중치 수가 수백만 배 줄어들고, 무늬가 어디에 있든 같은 무늬로 인식됩니다. 이미지에 대한 상식을 데이터로 배우게 하는 대신 구조에 못 박아 둔 것입니다.
둘째, 층을 쌓으면 수용장이 자라고 반응 대상이 함께 자랍니다. 첫 층은 선과 모서리를, 중간층은 그 조합인 무늬와 부분을, 깊은 층은 부품과 물체를 찾습니다. 이 위계는 사람이 설계한 것이 아니라 역전파가 스스로 조직한 것이며, 특징을 사람이 설계해야 하던 병목이 여기서 실물로 뚫렸습니다.
셋째, 2012년의 전환은 구조가 아니라 조건이 만들었습니다. 알렉스넷의 구조는 1998년 르넷과 본질적으로 같았고, 달라진 것은 백만 장의 이미지넷, 그래픽카드라는 계산 자원, 렐루와 드롭아웃이라는 기법 셋이었습니다. 그리고 정확도가 높아졌다는 것이 사람처럼 본다는 뜻은 아니라는 사실은 적대적 예제가 계속 상기시켜 줍니다.
용어 정리
완전연결층 — 모든 입력을 모든 뉴런에 연결하는 층. 입력의 순서나 이웃 관계를 전혀 가정하지 않아 이미지에는 비효율적입니다.
합성곱 — 작은 창문을 이미지 위에서 옮겨 가며 같은 계산을 반복하는 연산. CNN의 핵심입니다.
필터(커널) — 창문 안에서 쓰이는 가중치 묶음. 사람이 정하지 않고 학습으로 결정됩니다.
가중치 공유 — 창문을 옮겨도 같은 가중치를 쓰는 성질. 가중치 수를 극적으로 줄이고 위치가 바뀌어도 인식되게 만듭니다.
수용장 — 뉴런 하나가 원본 이미지에서 실제로 보고 있는 범위. 층을 쌓을수록 넓어집니다.
특징 지도 — 필터 하나로 이미지 전체를 훑은 결과. 어떤 무늬가 어느 자리에서 얼마나 강하게 나타났는지를 공간 배치 그대로 담은 지도입니다.
풀링 — 작은 구역마다 대표값 하나만 남겨 지도를 줄이는 층. 계산을 줄이는 동시에 위치의 작은 흔들림에 둔감해지게 만듭니다.
드롭아웃 — 훈련 중 뉴런 일부를 무작위로 꺼서 특정 뉴런에만 의존하지 못하게 하는 과적합 억제 기법.
르넷 — 1998년 얀 르쿤이 완성한 초기 CNN. 손글씨 우편번호와 수표 판독에 실제로 쓰였습니다.
이미지넷 — 천 개 부류로 이름표가 붙은 백만 장 이상의 사진 데이터셋. 사람 손으로 만든 이 자산이 딥러닝 전환의 절반입니다.
알렉스넷 — 2012년 이미지넷 대회에서 2위와 10퍼센트포인트 넘는 격차로 우승한 CNN. 딥러닝 시대의 출발점으로 꼽힙니다.
레스넷 — 층을 건너뛰는 지름길을 넣어 아주 깊은 망의 학습을 가능하게 만든 구조. 이 아이디어는 트랜스포머에도 쓰입니다.
채널 — 같은 크기의 판이 여러 장 겹쳐진 것. 컬러 이미지는 빨강·초록·파랑 세 채널이며, 층이 깊어질수록 채널 수가 늘어납니다.
전이학습 — 큰 데이터로 학습된 망의 앞부분을 그대로 가져다 쓰고 뒷부분만 새로 학습시키는 방식. 데이터가 적은 현장에서 표준으로 쓰입니다.
적대적 예제 — 사람 눈에는 거의 차이가 없지만 모델의 판정을 뒤집는 미세한 변형이 가해진 입력.
다음 회차 예고 — 그리고 생각해볼 질문
15회차는 「RNN과 시퀀스」입니다. 오늘 우리는 공간을 다뤘어요. 이미지에서 이웃이 중요하다는 상식을 구조에 새겨 넣었죠.
다음 회차의 상식은 순서입니다. 문장, 음성, 주가, 심전도. 이런 데이터에서는 앞에 무엇이 왔는가가 결정적입니다. "은행에 갔다"와 "강 은행에 앉았다"에서 같은 낱말이 다른 뜻이 되는 이유죠.
순서를 다루려면 망에 기억을 넣어야 합니다. 자기 출력을 다시 자기 입력으로 되먹이는 구조가 어떻게 기억이 되는지, 그런데 그 기억이 왜 몇 단계만 지나면 흐려지는지(오늘 잠깐 나온 사라지는 기울기가 다시 등장합니다), 그리고 LSTM이 어떤 아이디어로 그 문제를 붙들었는지를 다룹니다.
생각해볼 질문. 오늘 가중치 공유를 이야기하며 "구조에 상식을 못 박아 둔다"고 했습니다. 데이터로 배우게 하는 대신, 설계자가 미리 정해서 구조에 새겨 넣는 것이죠.
이건 편리하지만 위험하기도 합니다. 새겨 넣은 가정이 틀린 경우에는 모델이 그 틀림을 학습으로 고칠 수가 없기 때문이에요. 여러분이 일하거나 공부하는 분야에서, 모두가 당연하게 여겨 아예 구조에 못 박아 둔 가정이 있나요? 그 가정이 틀렸다면 우리는 그것을 알아챌 수 있을까요? 댓글로 들려주세요.
이 포스트는 SVIL 연구소 「AI 기초 및 활용」 30회 시리즈의 14회차이며, 제3부 「딥러닝과 신경망」의 세 번째 회입니다. 하버드 CS50 AI, MIT 6.S191 등 공개 교육과정의 구조를 참고했으며, 모든 내용은 이미지 없이 본문만으로 이해할 수 있도록 구성되어 있습니다. 모든 이미지에는 내용을 설명하는 대체텍스트가 포함되어 있습니다.
협업문의 : kuroicode@gmail.com
블로그 : https://blog.svil.dev/
홈페이지 : https://kuroicode-beep.github.io/svil-homepage/