브라우저에 손글씨 신경망을 넣은 이야기
LAB404

홈페이지에 '숫자를 쓰면 AI가 읽는다'를 넣고 싶었어요. 그런데 서버로 그림을 보내 답을 받아오면 학생에게 보여주고 싶은 것, 그러니까 계산이 어디서 어떻게 일어나는지가 사라집니다. 그래서 신경망을 통째로 브라우저에 넣기로 했어요.
모델은 아주 작습니다. 3×3 합성곱 두 층과 풀링, 마지막에 10개 출력. 파라미터가 5천 개쯤이라 파일로 66KB예요. 손글씨 6만 장으로 네 번 학습시켰고 시험 문제 1만 장에서 98.6%를 맞혔습니다. 학습은 우리 컴퓨터에서 20초 걸렸어요.
브라우저 쪽에서는 합성곱과 풀링을 자바스크립트로 그대로 다시 썼습니다. 라이브러리 없이요. 그래야 '층마다 무엇이 켜지는지'를 아카이브의 3D 화면처럼 꺼내 보여줄 수 있으니까요. 여러 자리 숫자는 붙어 있는 획끼리 묶어서 한 글자씩 자르고, 글자마다 무게 중심을 가운데로 옮긴 뒤 읽습니다. 학습 데이터가 그렇게 만들어졌기 때문이에요.
수업에서도 같은 순서로 갑니다. 먼저 쓰게 하고, 읽히는 걸 보게 하고, 그다음에 '왜 읽힐까'를 묻습니다.

