문서 인식을 위한 기울기 기반 학습 (LeNet)
국소 연결·가중치 공유·하위 표본화로 된 합성곱망 LeNet-5와 MNIST 비교, 수표 판독까지 다룬 논문
먼저 알아야 할 것
다루는 내용
르쿤 등은 손으로 설계한 특징 추출기 대신 픽셀에서 특징까지 학습하는 합성곱 신경망 LeNet-5(C1-S2-C3-S4-C5-F6-RBF 출력, 연결 340,908개·파라미터 6만 개)를 제시했습니다. 직접 만든 MNIST에서 LeNet-5는 테스트 오류율 0.95%, 왜곡 데이터 증강 시 0.8%로 선형 분류기·K-NN·완전연결망·SVM 등과 비교해 최상위권이었습니다. 후반부는 분할·인식·언어 모델 모듈을 하나의 손실로 함께 학습하는 그래프 변환 신경망(GTN)을 제안하고, 이를 써서 미국 은행에서 하루 수백만 장을 읽는 수표 판독 시스템을 보고합니다.
초록
역전파 알고리즘으로 학습한 다층 신경망은 성공적인 기울기 기반 학습(Gradient-Based Learning) 기법의 가장 좋은 예입니다. 알맞은 신경망 구조가 주어지면, 기울기 기반 학습 알고리즘으로 손글씨 문자 같은 고차원 패턴을 최소한의 전처리만으로 분류할 수 있는 복잡한 결정 경계를 합성할 수 있습니다. 이 논문은 손글씨 문자 인식에 적용된 여러 방법을 살펴보고, 표준 손글씨 숫자 인식 과제에서 서로 비교합니다. 2차원 모양의 변이를 다루도록 특별히 설계된 합성곱 신경망(Convolutional Neural Networks)이 다른 모든 기법보다 뛰어남을 보입니다. 실제 문서 인식 시스템은 필드 추출, 분할, 인식, 언어 모델링 등 여러 모듈로 이루어집니다. 그래프 변환 신경망(Graph Transformer Networks, GTN)이라는 새로운 학습 패러다임을 쓰면, 이런 다중 모듈 시스템을 전체 성능 척도를 최소화하도록 기울기 기반 방법으로 전역적으로 학습시킬 수 있습니다. 온라인 손글씨 인식을 위한 두 시스템을 설명합니다. 실험은 전역 학습의 장점과 그래프 변환 신경망의 유연성을 보여 줍니다. 은행 수표를 읽는 그래프 변환 신경망도 설명합니다. 이 시스템은 합성곱 신경망 문자 인식기와 전역 학습 기법을 결합해 기업 수표와 개인 수표에서 기록적인 정확도를 냅니다. 상용으로 배치되어 하루에 수백만 장의 수표를 읽고 있습니다.
해설
문서 인식을 위한 기울기 기반 학습 (LeNet)
손으로 설계한 특징 추출기 대신, 픽셀을 바로 받아 특징까지 스스로 배우는 합성곱 신경망(LeNet-5)을 제시하고, 손글씨 숫자 데이터 MNIST에서 다른 방법들과 꼼꼼히 비교한 논문입니다. 여러 모듈로 된 인식 시스템 전체를 기울기로 함께 학습하는 그래프 변환 신경망(GTN)과, 실제 은행에 배치된 수표 판독 시스템까지 다룹니다.
| 항목 | 내용 |
|---|---|
| 원제 | Gradient-Based Learning Applied to Document Recognition |
| 저자 | Yann LeCun · Léon Bottou · Yoshua Bengio · Patrick Haffner (AT&T 연구소 · 몬트리올대) |
| 발표 | 1998 · Proceedings of the IEEE (11월호) · PDF |
| 트랙 · 수준 | 딥러닝 기초 · 기초 |
| 먼저 알면 좋은 것 | 역전파, 행렬 곱 · 내적, 시그모이드 · tanh, 이미지가 픽셀 숫자의 격자라는 것, 과적합 |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 스탠퍼드 CS231n 강의 노트(합성곱 신경망) — 합성곱 한 칸 · 출력 크기 · 파라미터 수 · 풀링 · 수용 영역을 손계산으로 익히는 CNN 수업
- 오차 역전파로 표현 학습하기 — 출력 오차의 미분을 연쇄 법칙으로 거꾸로 전해 은닉 단위까지 학습시키는 역전파를 보인 논문
한눈에 보기
- 합성곱 신경망(CNN)의 세 가지 핵심 — 국소 수용 영역 · 가중치 공유 · 하위 표본화(sub-sampling) — 이 각각 무엇이고 왜 필요한지 압니다.
- LeNet-5의 층 구성(C1 → S2 → C3 → S4 → C5 → F6 → 출력)과 층마다 파라미터 수를 직접 계산해 봅니다.
- 가중치 공유 덕분에 연결은 34만 개가 넘어도 학습할 파라미터는 6만 개뿐이라는 것을 이해합니다.
- MNIST 데이터셋이 어떻게 만들어졌는지, LeNet-5가 다른 분류기와 비교해 어떤 오류율을 냈는지 논문 수치로 확인합니다.
- "특징을 사람이 설계하지 말고 학습하자", "모듈을 따로 만들지 말고 전체를 함께 학습하자"는 논문의 두 메시지를 압니다.
초록 (번역)
역전파 알고리즘으로 학습한 다층 신경망은 성공적인 기울기 기반 학습(Gradient-Based Learning) 기법의 가장 좋은 예입니다. 알맞은 신경망 구조가 주어지면, 기울기 기반 학습 알고리즘으로 손글씨 문자 같은 고차원 패턴을 최소한의 전처리만으로 분류할 수 있는 복잡한 결정 경계를 합성할 수 있습니다. 이 논문은 손글씨 문자 인식에 적용된 여러 방법을 살펴보고, 표준 손글씨 숫자 인식 과제에서 서로 비교합니다. 2차원 모양의 변이를 다루도록 특별히 설계된 합성곱 신경망(Convolutional Neural Networks)이 다른 모든 기법보다 뛰어남을 보입니다.
실제 문서 인식 시스템은 필드 추출, 분할, 인식, 언어 모델링 등 여러 모듈로 이루어집니다. 그래프 변환 신경망(Graph Transformer Networks, GTN)이라는 새로운 학습 패러다임을 쓰면, 이런 다중 모듈 시스템을 전체 성능 척도를 최소화하도록 기울기 기반 방법으로 전역적으로 학습시킬 수 있습니다.
온라인 손글씨 인식을 위한 두 시스템을 설명합니다. 실험은 전역 학습의 장점과 그래프 변환 신경망의 유연성을 보여 줍니다.
은행 수표를 읽는 그래프 변환 신경망도 설명합니다. 이 시스템은 합성곱 신경망 문자 인식기와 전역 학습 기법을 결합해 기업 수표와 개인 수표에서 기록적인 정확도를 냅니다. 상용으로 배치되어 하루에 수백만 장의 수표를 읽고 있습니다.
무엇을 풀었나
전통적인 패턴 인식은 두 모듈로 나뉩니다(논문 그림 1).
- 특징 추출기: 입력을 낮은 차원의 벡터로 바꿉니다. 사전 지식이 대부분 들어가고, 대개 사람이 손으로 설계합니다.
- 분류기: 범용적이고 학습 가능합니다.
문제는 인식 정확도가 설계자가 좋은 특징을 얼마나 잘 생각해 내느냐에 크게 좌우되고, 이 일을 새 문제마다 다시 해야 한다는 점입니다.
그렇다면 완전연결 신경망에 거의 원본 픽셀을 바로 넣으면 될까요? 논문은 두 가지 문제를 지적합니다.
- 파라미터가 너무 많습니다. 픽셀이 수백 개인 이미지에 은닉 단위 100개짜리 완전연결 첫 층만 붙여도 가중치가 수만 개가 됩니다. 그만큼 학습 데이터가 많이 필요하고 메모리도 큽니다.
- 이동 · 왜곡에 대한 불변성이 내장돼 있지 않고, 입력의 위상(이웃 관계)을 무시합니다. 픽셀 순서를 아무렇게나 섞어 넣어도 학습 결과가 같습니다. 그런데 이미지는 가까운 픽셀끼리 강하게 상관된 2차원 국소 구조를 가집니다.
핵심 아이디어
1. 국소 수용 영역과 가중치 공유 — 합성곱 층
직관: 돋보기 하나(커널)를 들고 이미지 위를 한 칸씩 옮기며 "여기 세로 획이 있나?"를 같은 기준으로 검사하는 것입니다(해설용 비유). 돋보기가 같으니 숫자가 왼쪽에 있든 오른쪽에 있든 같은 획을 찾아냅니다.
단계:
- 한 단위는 이전 층의 작은 이웃 영역(LeNet-5에서는 5×5)만 봅니다. 이 영역을 수용 영역(receptive field)이라 합니다.
- 같은 평면 안의 모든 단위는 같은 가중치 25개와 같은 편향 하나를 씁니다(가중치 공유). 이 평면의 출력을 특징 맵(feature map)이라 합니다.
- 특징 맵마다 다른 가중치를 쓰므로, 한 층에 특징 맵이 여러 개 있으면 한 위치에서 여러 종류의 특징을 뽑습니다.
- 이 연산은 합성곱 + 편향 + 압축 함수와 같아서 '합성곱 신경망'이라 부릅니다.
(논문은 이 식을 따로 적지 않고 말로 설명합니다. 위 식은 해설용으로 쓴 단일 입력 맵의 합성곱입니다.)
| 기호 | 뜻 |
|---|---|
| 입력 맵의 픽셀(또는 이전 층 단위) 값 | |
| 5×5 커널 가중치. 특징 맵 안 모든 위치가 공유 | |
| 편향. 역시 공유 | |
| 압축 함수(아래 4절) | |
| 특징 맵의 위치 출력 |
왜 이렇게 했나: 한 부분에서 쓸모 있는 기초 특징(모서리 · 끝점 · 꺾임)은 이미지 전체에서 쓸모 있을 가능성이 큽니다. 같은 가중치를 강제로 공유하면 입력이 이동할 때 특징 맵 출력도 같은 만큼 이동할 뿐 나머지는 그대로입니다. 또 자유 파라미터가 줄어 기계의 '용량'이 줄고, 학습 오류와 테스트 오류의 차이가 줄어든다고 논문은 설명합니다. 국소 연결의 아이디어는 퍼셉트론과, 고양이 시각 피질의 국소 · 방향 선택 뉴런을 발견한 허블 · 비젤로 거슬러 올라간다고 적습니다.
숫자로 해 보기(해설용 예): 3×3 이미지와 대각선을 찾는 2×2 커널(편향 0)을 생각합니다.
- 왼쪽 위 2×2 조각 :
- 오른쪽 위 조각 :
- 왼쪽 아래 조각 :
- 오른쪽 아래 조각 :
특징 맵은 입니다. "\ 방향 대각선이 있는 곳"에서 값이 큽니다. 커널은 가중치 4개뿐인데 모든 위치에 같이 쓰였습니다.
2. 하위 표본화 층 — 위치를 조금 흐리게
직관: 숫자 7을 알아보려면 "왼쪽 위에 가로획 끝, 오른쪽 위에 꺾임, 아래쪽에 세로획 끝"이 있다는 대략적인 상대 위치만 알면 됩니다. 정확한 픽셀 위치는 오히려 사람마다 달라 해롭습니다. 그래서 해상도를 줄여 위치 정보를 일부러 흐립니다.
단계 (LeNet-5의 S2 기준):
- 이전 특징 맵의 2×2 영역 4개 값을 더합니다(논문 2절 A는 '평균', B는 '더한다'고 적습니다. 학습 계수가 곱해지므로 결과는 같은 꼴입니다).
- 학습 가능한 계수를 곱하고 학습 가능한 편향을 더합니다.
- 시그모이드형 압축 함수를 통과시킵니다.
- 2×2 영역은 겹치지 않으므로 특징 맵의 가로 · 세로가 절반이 됩니다.
계수 가 작으면 단순히 흐리게 하는 역할을, 크면 편향에 따라 '잡음 섞인 OR' 또는 'AND'에 가까운 역할을 한다고 논문은 설명합니다.
숫자로 해 보기(해설용 예): 위 특징 맵 을 2×2로 묶으면 합은 4, 평균은 1입니다. 평균에 계수 , 을 쓰면 가 압축 함수로 들어갑니다. 4칸이 1칸이 됐습니다.
왜 번갈아 쌓나: 합성곱과 하위 표본화를 번갈아 쌓으면 층마다 공간 해상도는 줄고 특징 맵 수는 늘어나는 '이중 피라미드'가 됩니다. 해상도 감소를 표현의 풍부함 증가로 보상해 기하 변환에 대한 불변성을 크게 얻습니다. 이 조합은 허블 · 비젤의 '단순 세포 · 복합 세포' 개념에서 영감을 받아 후쿠시마의 네오코그니트론에 구현됐지만, 당시에는 역전파 같은 전역 지도 학습이 없었다고 논문은 덧붙입니다.
3. LeNet-5 구조 — 층별 크기와 파라미터 수
입력은 32×32 픽셀입니다. 데이터의 가장 큰 문자(28×28 영역 가운데 최대 20×20)보다 크게 잡아, 획 끝점 · 모서리 같은 특징이 최상위 특징 검출기 수용 영역의 가운데에 올 수 있게 했습니다. 픽셀 값은 배경(흰색)이 −0.1, 전경(검정)이 1.175가 되게 정규화해 평균 약 0, 분산 약 1로 맞췄습니다.
| 층 | 종류 | 출력 크기 | 학습 파라미터 | 연결 수 |
|---|---|---|---|---|
| C1 | 합성곱 5×5 | 6@28×28 | 156 | 122,304 |
| S2 | 하위 표본화 2×2 | 6@14×14 | 12 | 5,880 |
| C3 | 합성곱 5×5 (일부 맵만 연결) | 16@10×10 | 1,516 | 151,600 |
| S4 | 하위 표본화 2×2 | 16@5×5 | 32 | 2,000 |
| C5 | 합성곱 5×5 (S4 16개 맵 전부) | 120@1×1 | 48,120 (연결) | — |
| F6 | 완전연결 | 84 | 10,164 | — |
| 출력 | 유클리드 RBF | 10 | — | — |
신경망 전체는 연결 340,908개, 학습 가능한 자유 파라미터 60,000개입니다.
숫자로 해 보기 — 파라미터 세기 (위 표를 직접 맞춰 보기):
- C1: 특징 맵 6개 × (가중치 25 + 편향 1) . 연결은 맵 하나당 위치 곳 × 26 , 6개 맵이면 .
- S2: 맵마다 계수 1 + 편향 1 → . 연결은 .
- C5: 단위 120개 × ( + 편향 1) .
- F6: 단위 84개 × (120 + 1) .
가중치 공유가 없다면 C1 하나만으로도 연결 수 122,304개가 모두 따로 학습할 파라미터가 됐을 것입니다. 공유 덕분에 156개입니다.
C3를 왜 일부 맵에만 연결했나: 논문 표 I처럼 C3의 처음 6개 맵은 S2의 연속된 3개 맵, 다음 6개는 연속된 4개, 다음 3개는 불연속 4개, 마지막 1개는 6개 전부를 입력으로 받습니다. 이유는 둘입니다. 연결 수를 합리적인 범위로 묶고, 더 중요하게는 대칭을 깨서 맵마다 서로 다른(보완적인) 특징을 뽑게 하려는 것입니다.
C5를 왜 '합성곱'이라 부르나: S4가 5×5라 C5 출력이 1×1이 되어 사실상 완전연결이지만, 입력을 키우면 맵 크기가 1×1보다 커지기 때문에 합성곱 층으로 부릅니다.
4. 압축 함수 — 크기를 맞춘 tanh
F6까지의 단위는 입력과 가중치의 내적에 편향을 더한 를 압축 함수에 통과시킵니다.
| 기호 | 뜻 |
|---|---|
| 단위 의 가중합(편향 포함) | |
| 함수의 진폭. 출력이 와 사이 | |
| 원점에서의 기울기를 정하는 값 |
숫자로 해 보기: 입니다. 이 값 고르기는 부록 A의 설명대로 , 이 되게 한 것입니다.
왜 이렇게 했나: 부록 A에 따르면 대칭 함수가 더 빨리 수렴한다고 여겨지고, 이 선택으로 정상 동작 범위에서 전체 이득이 1 근처가 되며, 에서 2차 미분의 절댓값이 가장 커 학습 끝 무렵 수렴이 좋아집니다. 논문은 이 선택이 편의일 뿐 결과에 영향을 주지는 않는다고 밝힙니다. 초기 가중치는 단위의 입력 수(fan-in) 로 나눈 균등 분포에서 뽑습니다.
5. 출력층 — 유클리드 RBF와 84의 의미
출력 단위는 클래스마다 하나씩 있는 유클리드 방사 기저 함수(RBF) 단위입니다.
- : F6의 출력(84개), : 클래스 의 파라미터 벡터
- 입력이 파라미터 벡터에서 멀수록 출력이 커집니다. 즉 는 "클래스 와 얼마나 안 맞나"를 재는 벌점입니다.
파라미터 벡터의 성분은 손으로 −1 또는 +1로 정했고(적어도 처음에는) 고정했습니다. 해당 문자를 7×12 비트맵에 그린 양식화된 그림으로 만들었기 때문에 84입니다. 대문자 O · 소문자 o · 숫자 0처럼 헷갈리는 문자는 비슷한 코드를 가져, 뒤에 붙는 언어 후처리기가 고치기 쉽습니다.
숫자로 해 보기(해설용 예, 3차원으로 줄임): F6 출력이 이고 클래스 A의 코드가 , 클래스 B의 코드가 이면, 벌점은 A: , B: 입니다. 벌점이 가장 작은 B로 분류합니다.
왜 '1 of N' 코드 대신 이렇게 했나: 클래스가 수십 개를 넘으면 출력 단위 대부분이 거의 항상 꺼져 있어야 하는데, 시그모이드 단위로는 이것이 어렵다고 설명합니다. 또 RBF는 입력 공간의 좁은 영역에서만 반응해 문자가 아닌 것을 거절하기에 더 알맞습니다. 목표값 ±1은 F6 시그모이드의 포화를 막는 범위이기도 합니다.
6. 손실 함수와 학습
가장 단순한 손실은 정답 클래스 RBF의 출력(벌점)을 평균한 것입니다(최소 평균 제곱 오차와 같음).
이 손실은 RBF 파라미터까지 학습하면 모든 코드가 같아지는 '붕괴' 해가 있고, 클래스 사이에 경쟁이 없다는 약점이 있습니다. 그래서 논문은 정답 클래스의 벌점은 낮추면서 틀린 클래스의 벌점은 올리는 판별적 기준(MAP)을 제시합니다.
둘째 항의 부호를 바꾼 것이 '경쟁' 역할을 합니다. 양의 상수 는 이미 벌점이 아주 큰 클래스를 더 밀어 올리지 않게 하고, '쓰레기(rubbish)' 클래스의 확률로도 해석됩니다.
가중치 공유와 역전파: 공유가 없는 보통 신경망처럼 연결마다 편미분을 구한 뒤, 같은 파라미터를 공유하는 연결들의 편미분을 더해 그 파라미터의 미분으로 씁니다.
최적화: 패턴 하나마다 가중치를 고치는 확률적 방법을 쓰고, 파라미터마다 학습률을 헤시안(2차 미분) 대각 근사로 정하는 '확률적 대각 레벤버그-마콰트' 방법을 씁니다. 부록 B는 크고 중복이 많은 데이터에서는 확률적 경사가 배치 경사보다 때로 몇 자릿수나 빠르다는 경험적 결과를 강조합니다.
7. 모듈 전체를 함께 학습 — 그래프 변환 신경망(GTN)
실제 문서 인식은 필드 찾기 → 문자 분할 → 문자 인식 → 언어 모델로 이어집니다. 논문 후반부(4~10절)는 각 모듈이 가중치가 붙은 그래프를 받아 그래프를 내보내는 '그래프 변환기'라고 보고, 미분 가능한 벌점을 따라 기울기를 전체로 역전파해 함께 학습하는 틀을 제시합니다. 분할을 일찍 확정하지 않고 휴리스틱 과분할(HOS)로 후보를 많이 만든 뒤 전체 기준으로 고르며, 분할 없이 LeNet-5를 입력 위로 훑는 공간 이동 신경망(SDNN)도 소개합니다.
전체 흐름 (LeNet-5)
flowchart LR
A[32x32 입력<br/>배경 -0.1 · 전경 1.175] --> B[C1 합성곱 5x5<br/>6@28x28]
B --> C[S2 하위표본화 2x2<br/>6@14x14]
C --> D[C3 합성곱 5x5 · 일부 연결<br/>16@10x10]
D --> E[S4 하위표본화 2x2<br/>16@5x5]
E --> F[C5 합성곱 5x5<br/>120]
F --> G[F6 완전연결<br/>84 · tanh]
G --> H[RBF 출력 10<br/>코드와의 거리 = 벌점]
H --> I[벌점 최소 클래스]결과
MNIST 데이터셋 만들기 (3절 A)
- NIST의 SD-3(인구조사국 직원 글씨, 깨끗함)과 SD-1(고등학생 글씨, 어려움)을 섞었습니다. SD-1은 작성자 500명의 숫자 이미지 58,527장입니다.
- SD-1을 작성자 기준으로 나눠 앞 250명은 학습용, 나머지 250명은 테스트용으로 하고(각각 약 3만 장), SD-3으로 채워 학습 60,000장을 만들었습니다. 실험에는 테스트 10,000장(SD-1 5,000 + SD-3 5,000)을 썼습니다.
- 흑백 이미지를 비율을 지키며 20×20 상자에 맞추고, 질량 중심 기준으로 28×28 가운데에 놓았습니다(이 버전이 '정규(regular)' 데이터).
LeNet-5 학습과 오류율 (3절 B)
- 학습 데이터 전체를 20번 돌았습니다. 전역 학습률은 처음 2번 0.0005, 다음 3번 0.0002, 다음 3번 0.0001, 다음 4번 0.00005, 이후 0.00001로 줄였습니다. 매 반복 전 헤시안 대각 근사를 500개 샘플로 다시 추정했고, 입니다.
- 테스트 오류율은 약 10번 돈 뒤 0.95%에서 안정됐고, 학습 오류율은 19번 뒤 0.35%였습니다. 과적합(테스트 오류가 다시 오르는 현상)은 관찰되지 않았습니다.
- 학습 데이터를 15,000 · 30,000 · 60,000장으로 바꿔 보니 데이터가 많을수록 나아졌습니다. 그래서 원본 6만 장에 이동 · 크기 변경 · 찌그러뜨리기 · 수평 기울이기를 무작위로 조합한 왜곡본 540,000장을 더하자 테스트 오류율이 0.8%로 내려갔습니다.
- 틀린 테스트 예제는 82개였고, 상당수는 정말 애매하거나 학습 데이터에 드문 필체였다고 분석합니다.
다른 분류기와 비교 (정규 테스트셋 오류율, 그림 9 · 본문)
| 방법 | 오류율(%) |
|---|---|
| 선형 분류기 | 12.0 |
| 쌍별 선형 분류기 | 7.6 |
| K-최근접 이웃(유클리드) | 5.0 |
| 40 PCA + 2차 다항식 | 3.3 |
| RBF 신경망(1,000 단위) | 3.6 |
| 완전연결 28×28-300-10 | 4.7 |
| 완전연결 28×28-300-100-10 | 3.05 |
| 탄젠트 거리(16×16) | 1.1 |
| SVM 다항식 4차 | 1.1 |
| LeNet-1(16×16) | 1.7 |
| LeNet-4 | 1.1 |
| LeNet-5 | 0.95 |
| LeNet-5 (왜곡 데이터 추가) | 0.8 |
| 부스팅한 LeNet-4 (왜곡 데이터 추가) | 0.7 |
논문은 이 오류율의 불확실성이 약 0.1%라고 밝힙니다. 수정한 V-SVM이 0.8%에 도달했다는 개인 교신도 언급하지만, V-SVM은 일반 SVM의 약 두 배로 계산이 매우 비싸다고 덧붙입니다. 축소 집합 SVM(RS-SVM)은 1.1%이면서 인식 한 번에 곱셈-덧셈 65만 번으로 LeNet-5보다 약 60% 더 비쌉니다.
계산 · 학습 비용
- LeNet-5 학습은 SGI Origin 2000 서버의 200MHz R10000 프로세서 하나로 CPU 2~3일이 걸렸습니다.
- 신경망은 기억 기반 방법(K-NN · 탄젠트 거리)보다 메모리와 계산을 훨씬 덜 씁니다.
불변성 · 잡음 내성 (3절 E)
- 크기 약 2배 변화, 문자 높이의 약 ±절반 수직 이동, ±30도 회전까지 정확히 인식하는 것으로 추정합니다.
- 픽셀을 확률 0.1로 뒤집는 소금-후추 잡음을 넣은 MNIST로 학습한 신경망은 매우 잡음 많은 이미지에서도 특징을 안정적으로 뽑았다고 보고합니다.
수표 판독 시스템 (10절)
- 문자 인식기는 인쇄 가능한 ASCII 전체에 걸친 문자 이미지 500,000장으로 먼저 학습하고, 수표에서 자동 분할 · 수작업 정답화한 문자로 추가 학습했습니다.
- 기계 인쇄로 분류된 기업 수표 646장에서 정답 82% · 오류 1% · 거절 17%를 냈습니다. 같은 테스트셋에서 이전 시스템은 정답 68% · 오류 1% · 거절 31%였습니다.
- NCR의 수표 판독 제품에 통합되어 1996년 6월부터 미국 여러 은행에서 하루 수백만 장을 읽고 있다고 적습니다.
왜 중요한가 · 이후 영향
- CNN의 표준 설계도: "합성곱 → 풀링(하위 표본화)을 번갈아 쌓고 끝에 완전연결"이라는 구조는 이후 AlexNet · VGG · ResNet까지 이어지는 이미지 신경망의 기본 틀이 됐습니다.
- MNIST: 이 논문에서 만든 MNIST는 이후 수십 년 동안 머신러닝의 첫 실습 데이터셋이 됐습니다(해설).
- "학습에 더 맡겨라": 결론은 패턴 인식의 짧은 역사에서 학습의 역할을 늘릴 때마다 성능이 좋아졌다고 정리합니다. 데이터가 많아지고 컴퓨터가 빨라질수록 이 경향이 더 강해질 것이라는 예측은 2012년 AlexNet에서 크게 확인됩니다.
- 끝에서 끝까지(end-to-end) 학습: 분할 · 인식 · 언어 모델을 하나의 손실로 함께 학습하는 GTN의 생각은, 오늘날 음성 · 필기 인식에서 쓰는 전체 시퀀스 학습과 같은 방향입니다(해설자의 비교).
- 실제 배치: 연구실 결과가 아니라 은행에서 매일 쓰인 시스템이라는 점에서, 신경망의 산업적 가치를 일찍 증명했습니다.
한계 · 주의할 점
- 작은 흑백 이미지 기준: 실험은 크기 정규화된 손글씨 숫자와 문자입니다. 크고 복잡한 자연 이미지로 확장하려면 훨씬 큰 신경망 · 데이터 · GPU가 필요했고, 이는 AlexNet에서 이뤄집니다.
- SVM과의 격차가 크지 않았습니다. 논문도 SVM이 문제에 대한 사전 지식 없이 매우 좋은 정확도를 낸다고 인정합니다. 다만 메모리와 계산이 훨씬 많이 듭니다.
- 오늘날과 다른 부품: tanh · RBF 출력층 · 대각 레벤버그-마콰트 최적화는 지금은 ReLU · 소프트맥스 · Adam 등으로 대부분 바뀌었습니다. 구조의 생각은 남았지만 세부를 그대로 따라 할 필요는 없습니다(해설).
- 자기 정규화 추측: 완전연결 신경망이 파라미터가 많은데도 일반화가 되는 이유를 저자들은 '경사 하강의 자기 정규화 효과'로 추측하지만, 더 많은 이론과 증거가 필요하다고 스스로 밝힙니다.
- 원문 확인 범위: 46쪽 중 1~3절(CNN · LeNet-5 · MNIST 비교), 10절(수표 판독), 결론, 부록 A~C를 중심으로 읽었습니다. GTN의 학습 기준(4~9절)은 개요만 소개했고, 온라인 필기 인식 시스템의 세부 수치는 옮기지 않았습니다.
이어서 읽을 것
- 앞: 오차 역전파로 표현 학습하기 — LeNet을 학습시키는 바탕 알고리즘
- 앞: 퍼셉트론 — 국소 연결 아이디어의 뿌리
- 뒤: AlexNet — 같은 구조를 GPU · 큰 데이터로 키운 계기
- 뒤: VGG · ResNet · 배치 정규화 — 더 깊은 합성곱 신경망
- 옆: ViT — 합성곱 대신 어텐션으로 이미지를 보는 방법
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 합성곱 신경망(CNN) | 작은 필터를 이미지 전체에 같은 가중치로 훑어 특징을 뽑는 신경망 |
| 수용 영역(receptive field) | 단위 하나가 보는 입력의 작은 범위 |
| 가중치 공유(weight sharing) | 여러 위치의 단위가 같은 가중치를 쓰는 것 |
| 특징 맵(feature map) | 같은 필터를 모든 위치에 적용한 출력 평면 |
| 커널(kernel) | 합성곱에 쓰는 작은 가중치 격자(LeNet-5는 5×5) |
| 하위 표본화(sub-sampling) | 이웃 값을 묶어 해상도를 줄이는 층. 오늘날 '풀링' |
| 불변성(invariance) | 입력이 조금 이동 · 왜곡돼도 출력이 크게 변하지 않는 성질 |
| RBF(방사 기저 함수) 단위 | 입력과 기준 벡터 사이 거리로 출력을 내는 단위 |
| MNIST | 이 논문이 NIST 자료를 섞어 만든 손글씨 숫자 데이터(학습 6만 · 테스트 1만) |
| 데이터 증강(왜곡) | 원본을 이동 · 확대 · 기울여 학습 데이터를 늘리는 것 |
| 확률적 경사(stochastic gradient) | 샘플 하나(또는 몇 개)로 구한 기울기로 자주 고치는 방법 |
| GTN(그래프 변환 신경망) | 그래프를 주고받는 모듈들을 이어 기울기로 함께 학습하는 틀 |
| 거절(reject) | 확신이 낮은 입력을 사람에게 넘기는 것 |
스스로 점검
- C1 층의 학습 파라미터가 156개인데 연결은 122,304개인 이유는?
— 6개 특징 맵이 각각 가중치 25개와 편향 1개를 28×28 모든 위치에서 공유하기 때문입니다. 파라미터는 개지만, 위치마다 연결이 생겨 개입니다.
- 하위 표본화 층은 무엇을 일부러 버리나?
— 특징의 정확한 위치 정보입니다. 숫자를 알아보는 데는 특징들의 대략적인 상대 위치만 필요하고, 정확한 위치는 필체마다 달라 오히려 해롭기 때문입니다.
- 왜곡한 학습 데이터를 더하면 LeNet-5 테스트 오류율은 어떻게 바뀌었나?
— 0.95%에서 0.8%로 줄었습니다. 원본 6만 장에 무작위 아핀 왜곡본 54만 장을 더했고, 학습 길이(6만 장 기준 20번)는 그대로였습니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 깊은 합성곱 신경망으로 ImageNet 분류하기 (AlexNet) — ReLU·드롭아웃·데이터 증강·GPU 2장으로 학습한 8층 CNN이 ImageNet 기록을 크게 깬 논문
출처
- 원문: http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf (1998 · Yann LeCun 외)
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 16번째입니다.
출처·원문
원문 보기요약만