요약
⏱ 00:001. 손글씨 인식이 어려운 이유와 규칙 방식의 한계
⏱ 00:00우리는 흐릿하거나 기울어진 손글씨 숫자도 1초도 안 되어 알아봅니다. 하지만 이 쉬움 뒤에 숨은 난이도는 같은 일을 프로그램으로 구현하려 할 때 드러납니다. 예를 들어 4는 아래로 향하는 선 두 개와 가로선 하나로 이루어진다는 규칙을 세울 수 있지만, 윗부분이 닫히거나 기울어진 4는 이 규칙에서 벗어나고 급하게 쓴 9는 4로 잘못 분류됩니다.

수정할 때마다 예외가 하나씩 늘어나 규칙은 끝없이 길어집니다. 신경망은 이 문제를 반대 방향에서 접근합니다. 사람이 규칙을 쓰는 대신 정답이 표시된 손글씨 데이터를 많이 모으고, 그 예제들로부터 숫자를 구분하는 규칙을 네트워크 스스로 찾아내게 합니다.
⏱ 00:372. 뉴런·층·가중치로 된 신경망 구조
⏱ 00:37신경망은 뉴런이라 불리는 단순한 단위들로 구성되며, 각 뉴런은 활성도라는 숫자 하나를 가집니다. 뉴런들은 층을 이루고, 이전 층의 모든 뉴런과 연결되며 각 연결에는 가중치가 붙습니다. 예시 구조에서 입력층은 8×8 그림의 칸마다 하나씩 있어 칸의 잉크 농도가 활성도가 되고, 출력층은 숫자 0부터 9까지 열 개의 뉴런으로 구성됩니다. 그 사이에 은닉층들이 놓입니다.

그림을 입력하면 활성도가 층마다 앞으로 흘러가며, 가장 높은 활성도를 가진 출력 뉴런이 답이 됩니다. 각 뉴런의 동작은 단순합니다. 들어오는 활성도에 가중치를 곱해 모두 더하고, 그 결과를 다시 하나의 활성도로 압축할 뿐입니다. 이 네트워크의 1,210개 숫자는 어느 하나도 사람이 직접 정한 것이 아니고 학습 예제를 통해 얻은 값입니다.
⏱ 02:213. 쿠키 예제로 본 퍼셉트론과 편향
⏱ 02:21네트워크의 원리를 보기 위해 입력을 두 개로 줄인 쿠키 예제를 봅니다. 오븐 온도와 굽는 시간으로 쿠키가 다 구워졌는지 덜 익었는지 예측하는 뉴런입니다. 입력마다 중요도를 나타내는 가중치를 곱해 합산하며, 이 예시에서는 시간의 가중치를 1, 온도의 가중치를 0.1로 두어 오븐에 1분 더 있는 효과가 10도 높이는 것과 같다고 설정합니다.

합계를 임계값과 비교하는 대신 임계값을 옮겨 편향이라는 값으로 나타내면, 뉴런은 합계가 0보다 큰지만 확인하면 됩니다. 편향은 뉴런이 '예'라고 답하기까지 필요한 증거의 양을 뜻하며, 편향을 낮추면 설득이 어려워지고 높이면 쉬워집니다. 이처럼 항상 '예' 또는 '아니오'로만 답하는 뉴런을 퍼셉트론이라고 하며, 1950~60년대에 프랭크 로젠블랫이 개발했습니다.
⏱ 04:244. 퍼셉트론의 한계와 은닉층의 역할
⏱ 04:24퍼셉트론은 결정 경계를 직선 하나로 그립니다. 직선 한쪽은 구워짐, 반대쪽은 덜 익음으로 나뉘며, 가중치와 편향은 그 선의 위치와 기울기를 움직이는 손잡이 역할을 합니다. 하지만 잘 구워진 쿠키가 띠 모양 영역에 놓이는 경우처럼 두 조건을 동시에 만족해야 하는 문제는 직선 하나로 풀 수 없습니다.

해결책은 여러 퍼셉트론을 층으로 쌓는 것입니다. 한 퍼셉트론은 '충분히 구워졌는가'를, 다른 퍼셉트론은 '아직 타지 않았는가'를 묻고, 마지막 퍼셉트론은 두 답의 결합으로 '둘 다 예'인 영역에서만 불이 들어오게 합니다. 이처럼 입력도 출력도 아닌 중간 층이 은닉층이며, 은닉 뉴런이 많을수록 더 많은 선을 조합해 복잡한 모양을 구분할 수 있습니다.
⏱ 08:545. 비용 함수와 시그모이드 뉴런
⏱ 08:54쿠키 예제의 가중치는 아홉 개뿐이라 사람이 손으로 맞출 수 있지만, 숫자 인식기는 1,210개나 되어 수동 설정이 불가능합니다. 그래서 네트워크가 예제를 보고 스스로 가중치를 찾도록 해야 하며, 먼저 현재 상태가 얼마나 틀렸는지 측정할 방법이 필요합니다. 각 예제에서 네트워크 출력과 정답의 차이를 제곱해 평균 낸 값을 비용 또는 평균 제곱 오차라고 하며, 학습은 이 비용을 최소화하는 가중치를 찾는 일입니다.

⏱ 10:196. 경사하강법으로 가중치를 조정하는 방법
⏱ 10:19비용 곡선 전체를 볼 수는 없지만, 현재 위치에서의 기울기는 측정할 수 있습니다. 가중치를 아주 조금 바꿔 비용이 늘었는지 줄었는지 확인하고, 비용이 낮아지는 방향으로 이동하는 것이 기본 아이디어입니다. 한 번에 움직이는 크기는 학습률이라는 값으로 정해지는데, 학습률이 너무 크면 바닥을 지나치고 너무 작으면 수렴이 매우 느려집니다.

네트워크는 모든 가중치의 기울기를 모아 그래디언트를 만들고, 이를 따라 모든 가중치를 조금씩 내리막 방향으로 이동시킵니다. 이것이 경사하강법입니다. 무작위 가중치로 시작한 쿠키 네트워크는 학습이 진행될수록 선들이 미끄러지고 회전하며 비용이 떨어지고, 결국 아무 지시 없이도 좋은 쿠키의 영역을 구분하게 됩니다.
⏱ 11:317. 숫자 인식기의 학습 결과와 역전파
⏱ 11:31숫자 인식기는 64개의 입력 뉴런, 16개의 은닉 뉴런, 10개의 출력 뉴런으로 구성되어 가중치 1,210개를 가집니다. 학습에는 손글씨 숫자 1,500개를 사용했고, 매 단계마다 전체 대신 10개씩 골라 계산하는 확률적 경사하강법으로 전체 데이터를 60번 반복했습니다. 한 번도 보지 않은 297개의 숫자로 테스트했을 때 293개를 맞혔으며, 가운데 가로줄이 있는 7을 4로 읽는 등 여전히 실수도 합니다. 학습된 은닉 가중치 그림은 사람이 기대하는 깔끔한 획 패턴과 달랐는데, 신경망은 비용을 낮추는 패턴이라면 무엇이든 유지했기 때문입니다.







