기술

AI, 신경망 그리고 필기 인식

AI는 사람들의 필기 방식에 대한 이해 수준을 혁신시키고 디지털 필기 기술을 새로운 차원으로 발전시켜 줍니다.

AI의 중요성

AI는 '인공 지능'(Artificial Intelligence)의 약어입니다. AI는 읽기, 이해 또는 분석과 같은 인간 두뇌의 특정 기능을 재현하고 강화할 수 있는 지능적인 기계 장치의 제작과 관련된 컴퓨터 과학 분야를 의미합니다.

MyScript의 AI

저희 핵심 소프트웨어 제품은 고유한 AI 기술 을 통해 구동됩니다. 우리는 AI를 사용해서 70개 이상 언어로 필기한 콘텐츠를 해석하고, 필기한 메모의 구조를 분석하고, 수식을 이해하고, 손으로 작성한 음악 기호를 인식하고 변환합니다.

MyScript의 기술은 20년 이상의 연구 개발을 토대로 이루어졌습니다. 전 세계에서 가장 정확한 필기 인식 엔진을 구축하기 위해 우리는 글자가 단어가 되고, 단어가 문장이 되는 문장의 구성 방식 및 발음 구별 기호(diacritic marks)가 특정 모음 위 또는 아래에 놓이는 방식 등 언어 형성의 세부 사항들에 관한 지속적인 연구와 조사를 시행했으며, 앞으로도 이러한 노력을 지속할 것입니다.

MyScript는 여러 연구팀 간의 협력을 통해 놀라울 정도로 다양하고 넓은 범위의 필기 콘텐츠를 이해할 수 있는 최상의 시스템을 만들고 발전시키고 있습니다.

문자 필기에 관한 연구

MyScript의 문자 필기 연구팀은 머신러닝 기술을 사용해 필기한 텍스트를 구성 문자로 변환하는 것과 같은 시퀀스-투-시퀀스 (Sequence-to-Sequence: seq2seq) 변환 문제로 공식화될 수 있는 문제를 해결합니다.

이러한 기술은 아랍어나 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는 언어 (right-to-left languages), 인도어 문자의 발음을 구분하기 위한 모음, 중국어 표의 문자, 한국어 한글 또는 세로로 배열된 일본어 히라가나, 가타카나, 간지 등을 인식할 수 있도록 서로 다른 알파벳과 필기 관습에 맞도록 조정되어야 합니다.

2D 필기에 관한 연구

2D 팀은 2차원 구문 분석 혹은 문법을 기반으로 수학적 모델을 구축합니다. 이 팀은 수식, 악보, 또는 다이어그램 및 차트의 인식과 같이 시퀀스-투-시퀀스 접근법으로 해결할 수 없는 문제들을 해결합니다. 실시간 처리를 우선 과제로 해서 그래프 기반 기술을 사용해 이러한 문제의 인식을 가능하게 합니다.

자연어 처리에 관한 연구

MyScript 자연어 처리(Natural Language Processing: NLP)팀은 인간과 같이 자연스러운 방식으로 언어를 이해할 수 있는 알고리즘을 개발합니다. 이 팀은 공개적으로 사용할 수 있는 문서 및 기사들에서 얻은 수십억 개의 단어가 포함된 텍스트 말뭉치 (textual corpora)를 사용합니다. 이러한 말뭉치 집합으로부터 언어별 어휘를 구축하고, 한 문장에서 다음에 올 문자를 예측하는 정교한 모델을 만들고 잘못 쓰인 철자를 교정하는 시스템을 설계합니다.

데이터 수집

MyScript의 성과 중 상당 부분은 전 세계 사용자들이 자발적으로 제공한 익명화된 표본 데이터 덕분에 달성될 수 있습니다. 통상 AI 연구에서 '학습 표본 (training sample)'으로 알려진 데이터는 항상 개인정보 보호와 보안을 가장 중요하게 고려해서 취급되며, 우리의 기술을 세분화하고 강화하는 데 도움을 주는 회사의 귀중한 자산입니다.

필기 인식: 도전 과제

필기 인식을 위해서는 정말 많은 필기 스타일의 다양성으로 인해 상당한 수준의 기술적 도전 과제들을 해결해야 합니다. 다양한 언어들과 알파벳들의 영향은 물론이거니와 필기자의 나이, 왼손잡이 또는 오른손잡이와 같은 잘 쓰는 손, 출신 국가와 같은 요소나 쓰기를 하는 표면의 재질도 작성하는 필기에 영향을 준다는 것을 고려해야 합니다.

이 도전 과제가 얼마나 해결하기 어려운 문제인지 설명하는 예는 다음과 같습니다. 좋은 필기 인식 소프트웨어는 삼만개 이상의 가능한 표의문자들 사이에서 하나의 중국어 문자를 구분할 수 있어야 합니다. 또한 아랍어 또는 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는 언어를 사용하는 필기자가 왼쪽에서 오른쪽으로 쓰는 언어의 단어를 필기 내용에 포함하더라도 이것이 올바르게 인식될 수 있도록 양방향 쓰기를 모두 인식하고 해석할 수 있어야 합니다.

필기체(흘림체)는 소프트웨어가 개별 문자를 분할하고 인식하는 것을 더 어렵게 만들고, 발음 구분 기호(diacritic marks)와 같은 지연된 획은 더 많은 혼동을 줍니다. 수식, 차트 및 표와 같은 다른 형태의 콘텐츠를 포함하는 이러한 메모에 일반적으로 사용되는 비구조적인 레이아웃은 콘텐츠 분석의 자동화를 더 어렵게 합니다.

시간도 중요한 요소입니다. 필기 인식 소프트웨어는 사용자가 필기하는 동안 입력을 실시간으로 해석해야 합니다. 사용자가 필기하는 동안 내용을 편집하는 경우(예를 들어, 단어를 스크래치해서 지우기, 공백을 삽입하거나 단락을 이동하기 등)에도 인식 엔진은 이러한 상황을 이해할 수 있어야 합니다.

여기에 더해서, 필기 인식 기술은 사용자가 웹 페이지나 다른 앱에서 타이핑된 텍스트를 가져와서 필요에 따라 손으로 주석을 달 수 있도록 필기한 획은 물론 타이핑된 문자까지 분석할 수 있어야 합니다. 좋은 인식 엔진은 편집 제스처, 발음 구별 기호(diacritic marks)의 추가 또는 새로운 문자 및 단어 쓰기를 구별하는 것과 같은 복잡한 상호작용을 정확히 해석할 수 있어야 합니다.

신경망 기술 투자

20여 년 전, 전 세계 필기 인식 연구 커뮤니티가 은닉 마르코프 모델(Hidden Markov Models: HMM)과 서포트 벡터 머신(Support Vector Machines: SVM)에 집중할 때, MyScript는 다른 경로를 선택했습니다.

우리는 대신 신경망에 집중하는 것을 선택했습니다.

신경망은 인간 두뇌의 학습 과정을 모방한 일종의 머신러닝입니다. 강력한 알고리즘으로 구동되는 신경망은 방대한 데이터 집합에서 패턴을 식별하여 필기와 같이 어떠한 연구 대상에 관해서도 더욱 정확한 일반화를 가능하게 합니다.

사전에 결정된 변수 또는 '차원(dimensions)'에 따라 패턴을 식별하도록 '학습된(trained)' 수학적 모델로 신경망이 구성됩니다. 신중하게 프로그래밍 된 알고리즘은 이러한 차원에 따라 데이터를 반복적으로 분할 및 정렬하고, 명확한 패턴이 나타날 때까지 분류하고 재분류합니다.

이러한 방식으로 신경망은 인간으로서는 불가능할 수 있는 작업을 수행할 수 있습니다. 신경망은 막대한 양의 데이터를 빠른 속도로 탐색하면서 놓쳐버릴 수도 있었을 패턴들을 찾아냅니다. 우리는 신경망을 이용한 학습을 통해 지금까지 전 세계에서 가장 정확하고 진화된 필기 인식 엔진을 만들어 낼 수 있다고 믿었습니다.

신경망을 사용한 필기 인식

우리의 아이디어는 먼저 분석에 바로 사용할 수 있도록 필기 콘텐츠를 전처리하고 라인 추출, 잉크 정규화 및 기울기 수정과 같은 작업을 수행하는 것이었습니다. 그런 후 신호를 과도하게 분할(over-segment)하고 인식 엔진이 문자와 단어 사이의 경계 위치를 나중에 결정하도록 했습니다.

이것은 모든 가능한 분할을 모델링하여 분할 그래프를 구성하는 것을 의미했습니다. 즉, 연속된 세그먼트를 문자 가설로 그룹화하고, 순방향 신경망(feedforward neural networks)을 이용해서 이를 분류했습니다. 우리는 차별적 글로벌 학습 방법을 기반으로 하는 새로운 접근 방식을 사용했습니다. 오늘날 이 기술은 연결성 시계열 분류기(Connectionist Temporal Classification: CTC) 구조에서 시퀀스-투-시퀀스 신경 체계를 학습하는 데 상당히 일반적으로 사용되고 있습니다.

또한, 우리는 서로 다른 문자 후보군 사이에 남아있는 모호성을 해결하기 위해 어휘, 문법 및 의미 있는 정보를 통합한 최첨단 통계 언어 모델을 구축하고 사용했습니다.

Dots

2D 언어를 위한 AI 학습

성공적인 신경망의 활용 덕분에 우리는 정자체와 필기체(흘림체) 모두를 인식할 수 있는 전 세계에서 가장 뛰어난 필기 인식 엔진을 만들 수 있었습니다. 하지만 일부 언어는 훨씬 더 복잡하여 위의 다음 도전 과제로 지정되었습니다.

중국어 문자 인식

MyScript는 여러 해 동안 2차원 언어, 특히 중국어 표의문자를 분석하고 해석하기 위한 다양한 기술들을 개발했습니다.

이 분야 대부분의 경쟁업체가 중국어 문자를 구별하고 해석하기 위해 결정트리 기법을 사용했지만, 우리는 더욱 신경망에 전념하여 삼만개 이상의 표의문자를 인식하도록 엔진을 학습시켰습니다.

연구팀이 이러한 대규모 신경망을 성공적으로 학습시킨 것은 처음 있는 일이었습니다. 대규모 데이터 수집 캠페인을 통해 이뤄낸 이 성공의 결과로 이제까지 본 적이 없는 가장 큰 중국어 필기 문자 데이터 집합이 만들어졌습니다.

우리는 이 데이터를 사용해서 특히 중국어 문자의 구조를 이용하는 새로운 신경 아키텍처를 개발했으며, 처리 시간을 단축하기 위해 특별한 클러스터링 기법도 접목했습니다. 이러한 혁신을 통해 여전히 불편하고 유연하지 못한 키보드 입력이 사용되고 있는 시장에 새로운 수준의 필기 인식 기술을 내놓을 수 있었습니다. 또한, 이러한 혁신 기술 덕분에 일본어, 힌디어, 한국어 등 다른 언어에 대해서도 같은 수준의 지원을 추가할 수 있었습니다.

수학 인식

다양한 전 세계 언어를 분석하고 인식하기 위해 신경망을 성공적으로 적용하면서, 수식 인식이라는 새로운 목표가 생겼습니다.

일반 언어가 문자와 단어의 구조적 순서 가질 때, 2차원(또는 시각적) 언어는 노드 사이의 공간적 관계가 있는 트리 또는 그래프 구조를 사용해서 설명하는 것이 더 적절한 경우가 많습니다. 텍스트에서와 마찬가지로 수학 인식 시스템은 최상의 인식 후보를 생성하기 위해 세그먼트 분할, 인식, 문법 및 의미론적 분석을 동시에 그리고 같은 수준으로 처리한다는 원칙에 따라 구축되었습니다.

이 시스템은 구체적이고 전문화된 문법에 규정된 규칙에 따라 수학 방정식의 모든 부분 사이의 공간적 관계를 분석하고, 이러한 분석을 사용해서 세그먼트 분할을 결정합니다. 문법 자체는 방정식을 해석하는 방법을 기술한 규칙 집합을 구성하며, 각 규칙은 특정 공간 관계와 관련이 있습니다. 예를 들어 분수 규칙은 분자와 분수 막대와 분모 사이의 수직적 관계를 정의합니다.

구조화되지 않은 메모 이해하기

수식을 정확하고 빠르게 인식할 수 있게 되자 손으로 필기 된 메모의 배열 및 콘텐츠와 관련된 새로운 가능성이 열렸습니다.

MyScript의 인식 엔진이 수학 방정식의 각 부분 사이의 공간 관계를 올바르게 해석할 수 있다면 텍스트가 아닌 다른 여러 유형의 콘텐츠도 정확하게 인식할 수 있지 않을까요? 그렇다면 이러한 기술을 활용해서 손으로 그린 다이어그램과 같은 요소들을 정확하게 식별하고 심지어 아름답게 치장까지 함으로써 구조화되지 않은 메모에서 제기되는 여러 문제를 해결할 수 있을 것입니다.

우리는 그래프 기반 신경망(graph-based neural network: GNN) 아키텍처가 이러한 작업에 접합하다고 믿었습니다. 기본 아이디어는 문서 전체를 그래프처럼 모델링하는 것입니다. 여기에서 획은 노드로 표현되고, 가장자리로 인접한 획과 연결됩니다.

이러한 방식으로 메모의 콘텐츠를 분석할 때 GNN은 모든 획을 텍스트(text) 또는 비텍스트(non-text) 중 하나로 분류해야 합니다. 이러한 작업은 각 획의 기본 특징을 분석하고, 필요에 따라 획에 인접한 가장자리 및 노드로 제공되는 상황별 정보를 고려하는 방식으로 수행됩니다.

GNN에서 한 계층은 노드의 특성을 인접한 계층과 결합하여 상위 수준의 특성을 나타내는 숫자 값의 벡터를 생성합니다. 합성곱 신경망(convolutional neural networks)과 마찬가지로, 여러 계층을 중첩하여 점점 더 많은 수의 전역 특성을 추출할 수 있으므로 이를 통해 어떤 획이 텍스트 획을 구성하는지 더 정확한 결정을 내릴 수 있습니다. 예를 들어 다음 다이어그램에서 가장 왼쪽에 있는 두 개의 세로줄은 서로 비슷하게 보입니다. 하지만 인접한 획의 문맥 정보를 적용하면 GNN이 출력 계층에서 가장 왼쪽 획은 정사각형 모양의 일부이고, 그 옆의 세로줄은 'T' 문자의 일부라는 것을 구분할 수 있습니다.

딥 러닝과 인코더-디코더 모델

텍스트와 수학을 인식할 수 있는 최고의 시스템 2개를 각기 제공하는 것만으로는 충분하지 않은 경우도 있습니다. 특히 과학 분야에서 근무하거나 연구하는 사용자들의 경우에 그렇습니다. 이러한 사용자들은 (별도의 공간이나 종이가 아닌) 현재 필기하고 있는 텍스트의 일부로 수학 공식을 작성해야 할 경우가 많고, 인식 엔진이 둘 모두를 정확하게 해석할 것으로 기대합니다.

따라서 도전 과제는 자연적인 단방향 1차원 언어(텍스트)와 2차원 언어(수학)의 조합을 분석하는 등 수식과 함께 혼합된 문자와 단어를 인식할 수 있는 시스템을 설계하는 것입니다.

딥 러닝의 물결과 함께 새로운 신경망 아키텍처들이 등장했습니다. 이들 중 하나인 인코더-디코더(encoder-decoder)는 시퀀스-투-시퀀스 전환 문제를 해결하는 매우 잘 알려진 방식입니다. 이 방식은 가변-길이의 입출력을 처리할 수 있고, 음성 인식과 같이 필기 인식에 가까운 분야에서 최고의 기술로 사용됩니다. 인코더-디코더 시스템의 주요 이점은 각 요소가 개별적으로 학습되는 방식과 다르게 전체 모델이 엔드-투-엔드(end-to-end) 방식으로 학습된다는 것입니다. 몇 가지 예를 들자면, 합성곱 신경망(convolutional neural network) 계층, 순환 신경망(recurrent neural network) 계층, 장단기 메모리(long short-term memory: LSTM) 유닛 및 트랜스포머(Transformer) 모델에서 일반적으로 사용되는 어텐션 기반(attention-based) 계층을 포함한 여러 아키텍처가 사용될 수 있습니다.

우리에게 인코더-디코더(encoder-decoder)의 입력은 펜으로 필기 된 획의 궤적을 나타내는 일련의 좌표입니다. 출력은 LaTeX 기호의 형식으로 표시되는 인식된 일련의 문자열입니다 (예를 들어, x²를 표시하는 LaTeX인 x^2 또는 분수를 표시하는 LaTex인 (\frac{ })).

Dot Dot

필기 AI의 미래

필기 인식 기술의 발전은 아직 끝나지 않았습니다. MyScript는 이미 AI의 기능을 확장하여 자동 언어 식별과 대화형 필기 테이블을 포함한 문제들을 해결하려고 노력하고 있습니다.

우리는 딥 러닝 모델이 개발에 대한 엄청난 잠재력을 제공하고, 자연어 처리 및 레이아웃 분석과 같은 이전까지 관련이 없는 연구 분야에 대한 우리의 접근 방식을 통합할 수 있다고 믿습니다. 터치 지원 디지털 기기가 일반화됨에 따라 AI 기술을 통해 '보이는 것의 인식' 에서 '의도된 것의 인식'으로 전환할 수 있다고 확신합니다. 이러한 차이가 페이지 상에서는 미묘하게 나타날 수 있지만 실제 현실에서는 또 다른 패러다임의 변화를 나타냅니다. 그리고 MyScript는 이러한 변화의 달성을 도울 것입니다.

우리의 비전은 디지털의 완전한 기능과 유연성을 유지하면서 누구나 그들이 선택한 장치에 종이에서와 같은 방식으로 모든 종류의 콘텐츠를 자유롭게 작성할 수 있는 세상입니다. AI의 강력한 성능 덕분에 이 비전은 나날이 현실에 가까워지고 있습니다.

기술
자연스러운 디지털 필기를 위한 UX
기술