티스토리 뷰

인간의 시각 체계는 세계에서 불가사의한 것들 중 하나입니다. 다음과 같은 손으로 쓴 숫자들을 한번 보세요.

대부분의 사람들은 큰 노력없이 이 숫자들을 504192라고 읽을 수 있습니다. 우리 뇌의 각 좌뇌 우뇌에서, 인간은 $V1$이라고 알려진 첫번째 시각피질을 가지고 있고 이는 1억 4천만개의 뉴런들과 그것들 사이의 100억개 이상의 연결을 가지고 있습니다. 또한 $V1$ 뿐만 아니라 $V2$, $V3$, $V4$, $V5$의 여러개의 시각피질들을 통해 더욱 복잡한 이미지 처리를 합니다. 우린 시각적 세계를 이해하기 위해 수십억년동안 진화한 슈퍼컴퓨터를 머리에 이고 다니는 셈이죠. 손으로 쓴 숫자를 인식하는 것은 쉽지 않습니다. 그러나 우리 인간은 매우 놀랍게도 우리 눈이 우리에게 보여주는 것에 대한 감각을 잘 만듭니다. 하지만 이 과정은 무의식적으로 이루어집니다. 그래서 우리는 우리의 시각치계가 해결하는 문제가 얼마나 어려운 일인지 알지 못하죠.


시각 패턴 인식의 어려움은 위와 같은 숫자들을 인식하는 컴퓨터 프로그램을 작성하려고 할 때 잘 드러납니다. 우리가 스스로 할 때는 굉장히 쉬워보였던 것이 순식간에 어려워 집니다. 우리가 어떻게 모양을 인식하는지에 대한 간단한 직관, "숫자 9는 위에 동그라미가 있고 오른쪽 아래로 수직하는 획이 하나 있다"와 같은 것은 알고리즘으로 표현하기 결코 쉽지 않습니다. 만약 이런 규칙을 명확하게 하고자 한다면, 여러분은 아마 예외와 오류들 그리고 특별한 경우들의 늪에 빠지게 될 것 입니다. 희망이 없어 보이는군요.


하지만 뉴런 네트워크는 이 문제에 대해 다르게 접근합니다. 이 방법은 학습 예시라고 알려진 많은 양의 손으로 쓴 글씨 이미지들을 취하여 이 학습 예시들로 부터 배울수 있는 한 체계를 만드는 것 입니다.

다른말로 하면, 뉴런 네트워크는 손으로 쓴 숫자들을 인식하기 위한 규칙을 스스로 추론하기 위해 이 예시들을 사용합니다. 또한, 이 예시들의 수를 늘림으로써 손글씨에 대해 더 배우고 정확도를 높일 수 있습니다. 제가 위에 100개의 예시들을 보여드렸지만, 우리는 천개 심지어는 백만 또는 10억개에 달하는 예시들을 이용하여 더 나운 손글씨 인식기를 만들 수 있습니다.


이 장에서는 손글씨들을 인식하기 위해 학습하는 뉴런 네트워크를 구현하는 컴퓨터 프로그램을 작성하게 될 것입니다. 프로그램은 단지 74줄로 이루어져 있고 어떠한 뉴런 네트워크 라이브러리도 사용하지 않습니다. 하지만 이 짧은 프로그램은 어떠한 인간의 개입 없이도 숫자들을 96%이상의 확률로 판정할 수 있는 정확도를 가지고 있습니다. 더 나아가, 이후 장에서는 우리는 이 정확도를 99% 이상 높일 수 있는 개념들에 대해 배우게 될것 입니다. 사실 최고의 상업적 뉴런 네트워크는 너무 정확해서 은행에서 수표를 처리하는데 또는 우체국에서 주소를 인식하는데 사용되고 있습니다.


우리는 일반적으로 뉴런 네트워크를 배우는데 있어서 가장 기본적인 문제이기 때문에 손글씨 인식에 초점을 맞추고 있습니다. 매우 도전적인 일입니다. 손글씨를 인식하는것은 결코 작은 업적이 아닙니다. 그렇지만 매우 복잡한 해결 방법이나 무지막지한 컴퓨팅 파워를 요구하는 만큼 어려운 일도 아닙니다. 더 나아가, 딥 러닝과 같은 고급기술들을 개발하는데에 있어서 좋은 방법입니다. 또한 이 책을 통해 우리는 반복해서 손글씨 인식 문제로 돌아갈 것 입니다. 후에 이 책에서, 우리는 어떻게 이런 개념들이 컴퓨터 이미지 인식, 음성 인식, 자연어 인식, 그리고 다은 환경에서의 다른 문제들에 적용될 수 있는지 논의하게 될 것 입니다.


물론, 이 장에서의 주된 목적이 단지 손글씨 인식을 위한 컴퓨터 프로그램 작성이라면, 이 장은 굉장이 짧아질 것입니다. 하지만 과정을 따라가며 우리는 두개의 중요한 가상 뉴런의 종류를 포함하여 뉴런 네트워크와 확률론적 기울기 하강 알고리즘과 같은 뉴런 네트워크를 위한 기본적 학습 알고리즘에 대한 많은 중요한 개념들을 개발하게 될 것 입니다. 이를 통해, 저는 왜 그것들이 왜 그렇게 되었는지 설명하고, 여러분의 뉴런 네트워크에 대한 직관을 쌓는데 집중할 것 입니다. 이것은 제가 단지 무엇이 일어나고 있는지에 대한 기초적인 고정을 드러낸느것 보다 더 긴 논의를 필요로 합니다. 그러나 여러분이 얻게될 깊은 이해를 위해서는 가치 있는 일입니다. 장의 마지막에서는 우리는 딥 러닝이 무엇인지, 또 왜 이것이 문제가 되는지 이해하기 위한 위치에 도달해 있을 것 입니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday