Handwritten Digit Recognition with a Back-Propagation Network
Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, "Handwritten Digit Recognition with a Back-Propagation Network," in Advances in Neural Information Processing Systems 2 (NIPS 1989), pp. 396-404, 1989.
1989년에 신경망이 우편 봉투에 손으로 휘갈겨 쓴 우편번호를 읽었습니다. 학습은 30회면 끝났고, 학습이 끝난 망은 PC에 꽂힌 DSP 보드 위에서 초당 10장 넘는 봉투를 처리했습니다. 본문에서 보겠지만 이 작업은 합성곱 신경망이 작은 장난감 데이터를 벗어나 실제 산업 시스템에 들어간 첫 사례이자, 이후 LeNet으로 이어지는 계보의 출발점입니다.
같은 시기 같은 팀이 좀 더 자세한 저널 버전을 Neural Computation 1권 4호에 Backpropagation Applied to Handwritten Zip Code Recognition이라는 제목으로 게재합니다. NIPS 89는 학회 발표용 압축본, Neural Computation 89는 저널 정본에 가깝습니다. 두 논문이 같은 실험과 같은 시스템을 다루기 때문에 한 편의 글로 함께 정리합니다.
저자
저자 7명은 모두 AT&T Bell Laboratories Holmdel 연구소의 Adaptive Systems Research Department 소속이었습니다. 1984년 래리 재클이 이 부서를 만들면서 사람을 모으기 시작했고, 1988년 얀 르쿤이 제프리 힌턴 밑에서 박사후를 마치고 합류했습니다. 회로 박사를 막 끝낸 베른하르트 보저도 같은 해에 들어왔습니다. 존 덴커는 1984년부터 이론 쪽을 맡고 있었습니다. 부서장이던 래리 재클이 마지막 저자로 이름을 올린 것은 단순한 관리 책임자 표기가 아닙니다. 그는 같은 해 존 덴커 등과 함께 첫 번째 우편번호 분류 시스템을 발표한 바 있고, 이 후속 작업의 방향을 정한 사람입니다.
핵심 동기는 학습으로 손글씨 인식기를 만들 수 있는가가 아니라 그것이 우체국 컨베이어 옆에서 굴러갈 수 있는가였습니다. 미국 우정공사는 손글씨 우편번호 자동 분류 시스템을 발주하고 있었고, AT&T는 통신 회사로서 이 시장에 들어가려 했습니다. 그래서 이 논문은 학습 결과뿐 아니라 DSP 보드 위 실시간 처리량까지 보고합니다.
배경
1986년 Rumelhart, Hinton, Williams의 역전파 논문 이후 3년이 지난 시점입니다. 다층 신경망의 학습 알고리즘은 있었지만, 실제 이미지에 통한다는 증거는 빈약했습니다. 같은 부서에서 1년 전 발표한 Neural Network Recognizer for Hand-Written Zip Code Digits(Denker et al., 1989)는 첫 번째 레이어들을 손으로 설계한 상수 필터로 두고 그 뒤에만 학습 가능한 연결을 둔 하이브리드였습니다. 이번 작업은 그 손으로 설계한 부분까지 학습으로 대체합니다.
방향 자체는 일본의 쿠니히코 후쿠시마가 1980년대 초 제안한 Neocognitron에서 가져왔습니다. Neocognitron은 단순 세포와 복합 세포라는 생물학적 영감을 따라 국소 수용장과 위치 불변성을 갖춘 다층 망을 만들었지만, 학습은 비지도였습니다. 본 논문은 같은 골격을 유지하면서 학습은 역전파로 합니다. 분류 문제에서는 비지도 학습보다 지도 학습이 적절하다는 판단이었습니다.
이 시기 신경망 일반화 이론도 같은 부서에서 만들어지고 있었습니다. 존 덴커 등의 Large Automatic Learning, Rule Extraction and Generalization(1987)은 가중치 자유도가 낮은 망이 일반화에 유리하다는 entropy 기반 논리를 폈고, 이 논문의 설계 원칙으로 직접 이어집니다.
데이터셋
데이터는 뉴욕주 버펄로 우체국을 지나간 실제 우편물에서 가져왔습니다. 봉투 사진을 받아 우편번호 위치를 찾고, 개별 숫자로 분할하기까지는 우정공사 협력사가 처리했습니다. 분할이 끝난 숫자 이미지가 손글씨 9298장이었고, 35개 폰트에서 뽑은 인쇄 숫자 3349장이 보충 데이터로 들어갔습니다.
학습셋과 테스트셋의 구성은 다음과 같습니다. 손글씨 7291장과 인쇄 2549장이 학습용이었고, 나머지 손글씨 2007장과 인쇄 700장이 테스트용이었습니다. 인쇄 폰트는 학습셋과 테스트셋이 서로 다른 폰트군이었습니다.
데이터의 흥미로운 특징은 현실 데이터답게 어렵다는 점이었습니다. 분할 단계에서 5가 부서져 들어왔거나, 사람도 알아보기 어려운 글씨가 적지 않게 섞여 있었고, 라벨이 잘못 붙은 경우도 있었습니다. 저자들은 이 데이터의 잡음을 회피 대상이 아니라 신경망이 다뤄야 할 진짜 문제로 받아들였습니다.
입력 정규화는 글자 크기를 \(16 \times 16\) 픽셀로 맞추는 선형 변환 하나뿐이었습니다. 원본 글자는 보통 \(40 \times 60\) 픽셀 수준이었기 때문에 비율을 유지하면서 줄이는 과정에서 흑백 이진 이미지가 자연스럽게 회색조가 됐고, 망의 입력으로는 픽셀값을 \([-1, 1]\)로 스케일해 넣었습니다. 실제 신경망 입력 평면은 경계에서 커널이 튀어나가지 않도록 여유를 둔 \(28 \times 28\)이었습니다.
신경망
본 논문의 핵심은 합성곱과 가중치 공유, 그리고 평균 풀링을 명시적으로 포함하는 5층 망입니다. 다만 *합성곱(convolution)*이라는 용어는 본문에 나오지 않습니다. 저자들은 국소 수용장을 가진 단일 뉴런으로 입력을 훑은 결과를 feature map이라 부르고, 그것이 작은 커널을 가진 합성곱과 동치임을 별도로 언급할 뿐입니다.
구조는 다음과 같습니다. 입력 \(28 \times 28\), 그다음 4개의 \(24 \times 24\) 특징 맵(H1), \(12 \times 12\) 평균 풀링 4장(H2), 12개의 \(8 \times 8\) 특징 맵(H3), \(4 \times 4\) 평균 풀링 12장(H4), 그리고 10개의 출력 유닛이 H4에 완전 연결됩니다.
H1의 한 특징 맵은 입력 평면 위에서 \(5 \times 5\) 이웃을 보는 뉴런이 위치만 옮겨가며 만든 격자입니다. 같은 맵 안의 모든 뉴런이 같은 가중치를 공유하므로 자유 파라미터 수는 \(5 \times 5 + 1 = 26\)개로 고정됩니다. 편향 한 개가 더해진 수입니다. 다른 맵(예: H1.4)은 또 다른 26개의 가중치를 사용합니다. 가중치 공유는 같은 특징이 화상의 다른 위치에서도 유용할 가능성이 높다는 사전 지식을 망에 새겨 넣는 장치입니다. 동시에 자유 파라미터를 크게 줄이는 효과가 있고, Rumelhart, Hinton, Williams가 1986년에 이미 언급한 기법이라고 저자들이 명시합니다.
평균 풀링 층 H2는 H1의 \(2 \times 2\) 영역을 평균해 한 픽셀로 줄입니다. 영역이 겹치지 않으므로 해상도가 정확히 절반이 됩니다. 위치 불변성을 강화하는 동시에 다음 합성곱 층 입력의 자유도를 한 번 더 줄입니다.
H3는 12개의 특징 맵을 가집니다. 각 H3 맵은 H2의 모든 맵을 보지 않고, 표 1로 정해진 부분 집합만 봅니다. 이 연결 표 때문에 망은 실질적으로 거의 독립적인 두 모듈로 나뉩니다. 한쪽 모듈이 한 종류의 특징을, 다른 쪽이 보완적인 특징을 담당하도록 강제한 설계입니다.
전체 망은 4635개 뉴런, 98442개 연결, 그러나 자유 파라미터는 2578개뿐입니다. 이전 버전 망에서 자유도를 4배 가까이 줄인 결과로, 같은 부서가 동시에 NIPS 89에 발표한 Optimal Brain Damage(존 덴커 등)의 가지치기 기법을 적용했다고 본문에서 밝힙니다.
결과
학습은 2차 역전파(스케일된 뉴턴 방법의 대각 근사)로 진행했고 30회 전체 데이터셋 통과 후 종료했습니다. SUN SPARCstation 1과 Bottou가 만든 SN2 시뮬레이터에서 약 3일이 걸렸습니다.
지표 |
학습셋 |
전체 테스트셋 |
|---|---|---|
분류 오류율 |
1.1% |
3.4% |
평균제곱오차(MSE) |
0.017 |
0.024 |
학습셋은 손글씨 7291장과 인쇄 2549장을 합친 것이고, 테스트셋은 손글씨 2007장과 인쇄 700장입니다. 본문에서 명시한 바, 분류 오류는 전부 손글씨에서 발생했습니다. 학습된 인쇄 폰트와 테스트 인쇄 폰트가 달랐음에도 인쇄 숫자는 단 한 장도 틀리지 않은 셈입니다.
실제 우편 자동화 시스템에서는 원시 오류율보다 1% 오류를 달성하기 위해 몇 장을 거절(reject)해야 하는가가 중요합니다. 거절 임계값으로 세 가지 조건을 같이 두었습니다. 최댓값 뉴런의 활성도가 \(t_1\)보다 커야 하고, 2등 뉴런의 활성도는 \(t_2\)보다 작아야 하며, 두 활성도 차이는 \(t_d\)보다 커야 한다는 세 조건입니다. 임계값을 조정해 얻은 결과는 다음과 같습니다.
기준 |
거절률 |
|---|---|
1% 오류 (전체 테스트셋) |
5.7% |
1% 오류 (손글씨 테스트셋만) |
9.0% |
거절률 5~9%는 우정공사 운영 기준을 만족하는 숫자였습니다. 같은 학습된 망을 AT&T DSP-32C 보드에 올렸을 때 정규화까지 포함한 처리량은 초당 10~12장, 정규화를 마친 숫자만 분류하는 경우 초당 30장 이상이었습니다. DSP 자체의 피크 성능은 32비트 부동소수점 곱셈-덧셈을 초당 1250만 회 수행했습니다.
회고
저자들이 §5 마지막 단락에서 직접 분석한 오류 원인은 학습 한계가 아니라 데이터 파이프라인 문제였습니다. 테스트셋 오분류의 약 절반은 분할 단계에서 숫자가 부서지거나 붙어 들어온 결과였고, 또 다른 1/4는 라벨이 잘못 붙은 경우였습니다. 모델이 정답을 맞혔는데 채점이 틀린 셈입니다. 사람이 봐도 모호한 글자가 일부, 그리고 이유를 알 수 없는 오분류가 약간 있었습니다.
저자들은 또 학습이 30회 만에 끝난 것에 스스로 놀라움을 표합니다. 작은 인공 데이터에서 추정한 수만 회 학습이 필요하다는 일반론과 다른 결과였기 때문입니다. 그 이유로 *실제 데이터에 들어 있는 큰 잉여성(redundancy)*을 꼽았습니다. 같은 숫자를 쓰는 수많은 방식이 서로 강하게 상관되어 있어, 표본이 늘어도 새로운 정보가 빠르게 줄어든다는 해석입니다.
§6 결론에서는 작은 인공 문제에서 측정된 역전파의 스케일링 특성보다 훨씬 좋은 결과라는 점을 강조합니다. 1980년대 후반의 신경망 회의론은 작은 문제에서 잘 되는 것이 큰 문제에서 안 된다는 형태였는데, 이 결과가 그 회의론에 균열을 냈습니다.
본문에 명시되지는 않지만 한 가지 한계가 따라옵니다. 거절 임계값 \(t_1\), \(t_2\), \(t_d\)가 테스트셋 위에서 조정됐다는 저자들의 솔직한 주석이 §5에 들어 있습니다. 따라서 보고된 5.7%, 9%라는 거절률은 오프라인 상한선에 해당하고, 새 데이터에서는 더 보수적으로 잡아야 했을 것입니다.
정리
이 작업은 세 가지를 동시에 보여줬습니다. 합성곱 신경망이라는 구조가 실제 영상 데이터에서 통한다는 점, 자유 파라미터를 줄이는 사전 지식 주입이 일반화에 결정적이라는 점, 그리고 학습된 망이 DSP 보드 위에서 실시간 분류기로 동작한다는 점입니다.
같은 데이터셋과 같은 망이 Neural Computation 1989년 4호의 Backpropagation Applied to Handwritten Zip Code Recognition에서 더 자세하게 서술됩니다. NIPS 89는 학회 압축본, Neural Computation 89는 저널 정본의 관계입니다. 인용 시 한쪽만 쓰는 것이 일반적이며, 후속 문헌에서 더 자주 인용되는 쪽은 저널 버전입니다.
여기서 도입된 국소 수용장 + 가중치 공유 + 평균 풀링 + 역전파의 조합은 9년 뒤 Gradient-Based Learning Applied to Document Recognition(1998)에서 LeNet-5로 정식화됩니다. 그리고 다시 14년 뒤 AlexNet(2012)에서 ImageNet 위에 펼쳐지면서 현재의 딥러닝 시대를 엽니다. 1989년 우체국 봉투 위의 1% 오류가 이 모든 흐름의 첫 자국입니다.