TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 25 READS

한글날 기념 프로젝트: RNN이 펜을 쥐고 한글 손글씨를 한 획씩 써 내려간다

한글날 기념 프로젝트: RNN이 펜을 쥐고 한글 손글씨를 한 획씩 써 내려간다
SOURCE IMAGE · HACKER NEWS
한글날 기념 프로젝트: RNN이 펜을 쥐고 한글 손글씨를 한 획씩 써 내려간다

한글날에 나온 반가운 프로젝트

10월 9일 한글날에 맞춰 재미있는 개인 프로젝트가 하나 공개됐어요. 순환 신경망(RNN)으로 한글 손글씨를 '획(stroke)' 단위로 만들어내는 모델이에요. 완성된 글자 이미지를 한 번에 내놓는 게 아니라, 사람이 펜을 들고 쓰듯이 펜이 지나가는 경로를 점 하나하나 만들어낸다는 게 포인트예요. 한국어를 정면으로 다루는 생성 모델 프로젝트는 흔치 않은데, 한글날에 맞춰 나와서 더 반갑네요.

이미지 생성과 획 생성은 뭐가 다를까

요즘 이미지 생성 AI라고 하면 다들 디퓨전 모델을 떠올리실 거예요. 디퓨전 모델은 픽셀 덩어리를 한꺼번에 만들어요. 결과물은 손글씨처럼 보이는 '그림'이죠.

획 생성 모델은 출력이 좌표의 나열이에요. 그러니까 '지금 위치에서 오른쪽으로 3, 아래로 1 이동', '여기서 펜을 뗀다', '다음 위치로 가서 다시 펜을 댄다' 같은 명령을 순서대로 내놓는 거예요. 거북이 그래픽(turtle graphics)에 명령을 내리는 것과 비슷해요. 그래서 결과물을 SVG 같은 벡터로 바로 쓸 수 있고, 쓰는 과정을 애니메이션으로 보여줄 수도 있어요. 플로터(펜을 움직여 그리는 프린터)에 연결하면 실제 종이에 쓰게 할 수도 있고요.

기반 기술: Alex Graves의 손글씨 생성 모델

이 계열의 원조는 2013년 Alex Graves가 발표한 'Generating Sequences With Recurrent Neural Networks' 논문이에요. 영어 손글씨 궤적 데이터(IAM On-Line)로 학습한 모델이 꽤 그럴듯한 필기체를 써내서 많은 사람을 놀라게 했죠. 이 프로젝트도 RNN으로 획을 생성하는 만큼, 이 구조를 알아두면 동작 원리가 잘 보여요. 쉽게 풀어볼게요.

먼저 LSTM이 지금까지 그린 획의 흐름을 기억해요. RNN은 순서가 있는 데이터를 하나씩 읽으면서 '지금까지의 맥락'을 내부 상태로 들고 다니는 신경망이고, LSTM은 그중에서도 긴 맥락을 잘 기억하도록 개선된 버전이에요.

다음으로 혼합 밀도 네트워크(Mixture Density Network, MDN)가 다음 점의 위치를 '확률 분포'로 예측해요. 다음 점을 (3, 1) 하나로 딱 찍는 게 아니라, '이쪽일 가능성이 크고 저쪽일 수도 있다'는 식으로 정규분포 여러 개를 섞어서 내놓는 거예요. 거기서 샘플링을 하니까 같은 글자를 써도 매번 조금씩 다른, 사람 같은 손글씨가 나와요. 펜을 뗄지 말지도 따로 확률로 예측하고요.

마지막으로 어텐션 윈도우가 지금 어떤 글자를 쓰고 있는지를 따라가요. 입력 텍스트에서 지금 써야 할 위치를 조금씩 옮겨가면서, 모델이 글자를 빼먹거나 같은 글자를 반복하지 않게 잡아주는 장치예요.

한글이라서 어렵고, 그래서 재밌는 점

이 구조를 한글에 옮기면 고민거리가 생겨요. 영어는 알파벳 26자가 옆으로 늘어서지만, 한글은 자모가 네모 칸 안에서 위아래와 좌우로 조합돼요. '가'와 '강'에서 'ㄱ'의 크기와 위치가 다르고, '귀'와 '과'는 모음 배치부터 완전히 달라요. 조합할 수 있는 음절은 11,172자나 되고요.

그래서 음절 단위로 입력을 주면 구분해야 할 글자가 너무 많아지고, 자모 단위로 주면 '이 자모를 칸 안 어디에 얼마나 크게 쓸지'를 모델이 스스로 배워야 해요. 대신 장점도 있어요. 한글은 획순이 비교적 체계적이라서, 데이터만 잘 갖추면 모델이 규칙을 배우기 좋은 문자예요. 이런 프로젝트는 결국 펜 궤적이 기록된 온라인 필기 데이터를 어떻게 모으고, 입력을 어떻게 표현하느냐에서 품질이 갈리는 경우가 많아요.

업계 맥락: 트랜스포머 시대에 왜 RNN일까

요즘은 뭐든 트랜스포머로 하는데 왜 RNN일까 싶으실 거예요. 손글씨 획 생성은 시퀀스가 길지 않고, 점을 하나씩 실시간으로 만들어내는 작업이라 가벼운 RNN도 충분히 효율적이에요. 모델이 작아서 브라우저에서 바로 돌리기도 쉽고요. 구글 Magenta 팀의 Sketch-RNN도 비슷한 출력 구조로 낙서를 생성했어요. 이후 디퓨전 기반 손글씨 생성 연구도 나왔지만, 획을 직접 출력한다는 점에서 RNN과 MDN 조합은 지금도 깔끔한 선택지예요.

한국 개발자에게 주는 시사점

이 프로젝트는 작지만 끝까지 완성한 ML 프로젝트의 좋은 예예요. Graves 논문은 구조가 명확하고 구현 예제도 많아서, 시퀀스 모델과 확률적 출력을 공부하기에 좋은 교재거든요. 직접 따라 만들어보면 MDN, 샘플링 온도(temperature) 조절, 어텐션의 초기 형태를 손으로 익힐 수 있어요.

응용 쪽으로는 손글씨 폰트 제작, 필기 인식 모델에 쓸 학습 데이터 늘리기, 교육용 획순 애니메이션 같은 것들을 떠올려볼 수 있어요. 한글의 조합 구조를 모델에 어떻게 녹일지는 한국 개발자가 누구보다 잘 고민할 수 있는 주제이기도 하고요.

마무리

한 줄 정리: 픽셀이 아니라 펜의 움직임을 배우는 모델로, 한글을 '쓰는 맛'까지 재현하려는 시도예요.

여러분이라면 한글 획 생성 모델에 음절 단위로 입력을 주시겠어요, 자모 단위로 주시겠어요? 이런 모델이 있다면 어디에 써보고 싶으신가요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://hangul.ink/blog/hangul-day
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...