KR20200056001A - 인공신경망에서의 디코딩 방법 및 그 장치 - Google Patents

인공신경망에서의 디코딩 방법 및 그 장치 Download PDF

Info

Publication number
KR20200056001A
KR20200056001A KR1020180139787A KR20180139787A KR20200056001A KR 20200056001 A KR20200056001 A KR 20200056001A KR 1020180139787 A KR1020180139787 A KR 1020180139787A KR 20180139787 A KR20180139787 A KR 20180139787A KR 20200056001 A KR20200056001 A KR 20200056001A
Authority
KR
South Korea
Prior art keywords
token
neural network
artificial neural
output
candidates
Prior art date
Application number
KR1020180139787A
Other languages
English (en)
Inventor
이민중
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180139787A priority Critical patent/KR20200056001A/ko
Priority to US16/388,930 priority patent/US11361757B2/en
Priority to CN201910846620.XA priority patent/CN111192576A/zh
Priority to EP19197732.1A priority patent/EP3654328A1/en
Priority to JP2019171730A priority patent/JP2020086436A/ja
Publication of KR20200056001A publication Critical patent/KR20200056001A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N7/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Acoustics & Sound (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리방법 및 장치가 제공된다. 인공신경망에서의 디코더는 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하고, 확률들에 기초하여, 후보들 중 출력 토큰을 결정하고, 출력 토큰의 확률에 기초하여 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정할 수 있다.

Description

인공신경망에서의 디코딩 방법 및 그 장치{A DECODING METHOD IN AN ARTIFICIAL NEURAL NETWORK AND AN APPARATUS THEREOF}
아래 실시예들은 인공신경망에서의 디코딩 방법 및 그 장치에 관한 것으로, 예를 들어 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리하는 기술에 관한 것이다.
인공 신경망을 이용해 해결하는 문제들 중에 길이가 정해지지 않은 시퀀스를 입력으로 받고 정해지지 않은 길이의 출력을 생성해야 하는 문제를 해결하기 위한 방법으로, 시퀀스 투 시퀀스(sequence-to- sequence) 모델의 하나인 인코더-디코더의 인공신경망 모델이 도입되었는데, 특히 그 중에서도 정해지지 않은 길이의 출력을 인공신경망으로 계산하기 위해서 한 시퀀스를 구성하는 단위인 토큰(token)별로 인공 신경망의 이전의 출력을 입력으로 다음 출력을 계속 출력해 나가는 방법을 오토 리그레시브(auto-regressive) 디코딩이라고 한다.
일 실시예에 따른 인공신경망에서의 디코딩 방법은 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하는 단계; 상기 확률들에 기초하여, 상기 후보들 중 상기 출력 토큰을 결정하는 단계; 상기 출력 토큰의 확률에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정하는 단계를 포함한다.
상기 특수 토큰을 다음 입력 토큰으로 결정하는 경우, 상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는 상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높을 수 있다.
상기 인공신경망의 입력 레이어는 상기 후보들에 대응하는 복수의 노드들 및 상기 특수 토큰에 대응하는 특수 노드를 포함할 수 있다.
상기 적어도 하나의 입력 토큰은 상기 인공신경망에 의하여 기 예측된 출력 토큰 및 상기 특수 토큰 중 적어도 하나를 포함할 수 있다.
상기 출력 토큰을 결정하는 단계는 상기 후보들 중 확률이 가장 높은 토큰을 선택하는 단계를 포함할 수 있다.
상기 출력 토큰을 결정하는 단계는 상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하는 단계를 포함할 수 있다.
상기 다음 입력 토큰을 결정하는 단계는 상기 출력 토큰의 확률과 미리 정해진 임계 확률을 비교하는 단계; 상기 출력 토큰의 확률이 상기 임계 확률보다 작은 경우, 상기 특수 토큰을 상기 다음 입력 토큰으로 선택하는 단계; 및 상기 출력 토큰의 확률이 상기 임계 확률보다 큰 경우, 상기 출력 토큰을 상기 다음 입력 토큰으로 선택하는 단계 중 적어도 하나를 포함할 수 있다.
상기 출력 토큰의 후보들의 확률들을 예측하는 단계는 상기 적어도 하나의 입력 토큰과 상기 출력 토큰 간의 상관관계에 기초하여, 상기 출력 토큰의 후보들의 확률들을 예측하는 단계를 포함할 수 있다.
일 실시예에 따른 인공신경망에서의 디코딩 방법은 상기 적어도 하나의 입력 토큰 및 상기 다음 입력 토큰에 기초하여 다음 출력 토큰을 결정하는 단계를 더 포함할 수 있다.
일 실시예에 따른 인공신경망에서의 디코딩 방법은 다른 토큰들이 상기 특수 토큰에 어텐션(attention)하지 못하게 상기 특수 토큰을 마스킹(masking)하는 단계를 더 포함할 수 있다.
일 실시예에 따른 인공신경망에서의 디코딩 방법은 상기 특수 토큰이 상기 다음 입력 토큰으로 결정된 경우, 다음 출력 토큰과 상기 특수 토큰 사이의 상관관계를 미리 정해진 수치 이하로 설정하는 단계를 더 포함할 수 있다.
상기 출력 토큰을 결정하는 단계는 상기 출력 토큰이 상기 특수 토큰과 동일한지 판단하는 단계; 및 상기 출력 토큰이 상기 특수 토큰과 동일한 경우, 상기 후보들 중 두 번째로 확률이 높은 토큰을 상기 출력 토큰으로 결정하는 단계를 포함할 수 있다.
복수개의 인공신경망들의 앙상블을 통해 토큰을 결정하는 인공신경망에 있어서, 인공신경망에서의 디코딩 방법은 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하는 단계; 상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하는 단계; 상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망 사이에서 상기 출력 토큰의 확률을 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 상기 인공신경망의 다음 입력 토큰을 결정하는 단계를 포함한다.
상기 다음 입력 토큰을 결정하는 단계는 상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 큰 경우, 상기 특수 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하는 단계; 및 상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 작은 경우, 상기 출력 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하는 단계를 포함할 수 있다.
상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는
상기 임계값보다 큰 경우, 상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높을 수 있다.
일 실시예에 따른 인공신경망에서의 디코더는 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하고, 상기 확률들에 기초하여, 상기 후보들 중 상기 출력 토큰을 결정하고, 상기 출력 토큰의 확률에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정하는 프로세서를 포함한다.
복수개의 인공신경망들의 앙상블을 통해 토큰을 결정하는 인공신경망에 있어서, 일 실시예에 따른 인공신경망에서의 디코더는 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하고, 상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하고, 상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망 사이에서 상기 출력 토큰의 확률을 비교하고, 상기 비교 결과에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 상기 인공신경망의 다음 입력 토큰을 결정하는 프로세서를 포함한다.
도 1은 일 실시예에 따른 하나의 인공신경망에서 오토 리그레시브 디코딩을 수행하는 디코더의 동작 방법을 설명하기 위한 도면.
도 2는 일 실시예에 따른 어텐션 메카니즘(attention mechanism)이 적용된 인공신경망에 있어서, 특수 토큰을 마스킹하는 방법을 설명하기 위한 도면.
도 3은 일 실시예에 따른 인코더-디코더 구조 인공신경망 시스템을 도시한 블록도.
도 4는 일 실시예에 따른 앙상블 기법을 이용한 인코더-디코더 구조 인공신경망 시스템을 도시한 블록도.
도 5는 일 실시예에 따른 추가 언어모델을 가지는 음성인식 인공신경망에서의 적용 실시예를 도시한 블록도.
도 6은 일 실시예에 따른 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템을 도시한 도면.
도 7a는 일 실시예에 따른 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예를 도시한 도면.
도 7b는 일 실시예에 따른 특수 토큰을 이용한 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예를 도시한 도면.
도 8은 일 실시예에 따른 인공신경망에서의 디코딩 방법을 도시한 순서도.
도 9는 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리방법을 설명하기 위한 순서도.
도 10은 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치의 블록도.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 하나의 인공신경망에서 오토 리그레시브 디코딩을 수행하는 디코더의 동작 방법을 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 디코더(120)는 인코딩된 특징(110)을 입력으로 수신할 수 있다. 예를 들어, 디코더(120)는 인공신경망 내 디코더(120)의 전단에 연결된 인코더(미도시)로부터 입력을 수신할 수 있다.
인코더와 디코더(120)는 뉴럴 네트워크(neural network)로 구현된 시퀀스 투 시퀀스(sequence-to- sequence) 인코더-디코더일 수 있다. 뉴럴 네트워크는 DNN(Deep Neural Network), RNN(Recurrent Neural Network) 및 RDNN(Recurrent Deep Neural Network) 등으로 구현될 수 있다. 뉴럴 네트워크 내 레이어들의 노드들은 비선형적으로 서로 영향을 주는 관계일 수 있으며, 각 노드들로부터 출력되는 값들, 노드들 사이의 관계들 등 뉴럴 네트워크의 파라미터들은 학습에 의해 최적화될 수 있다.
시퀀스 투 시퀀스 인코더-디코더는 인코더와 디코더가 통합된 네트워크 구조로서, 입력 시퀀스로부터 인식 결과의 시퀀스를 생성할 수 있다. 예를 들어, 시퀀스 투 시퀀스 구조로 구현된 인코더와 디코더(120)는 입력 음성으로부터 입력 음성에 대응하는 인식 결과를 직접 생성할 수 있다. 인코더와 디코더(120)는 입력 시퀀스로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있다.
인코더는 입력 시퀀스를 인코딩하여 인코딩된 특징(110)을 생성할 수 있다. 인코더는 입력 시퀀스로부터 특징을 추출하여, 인코딩된 정보를 생성할 수 있다. 인코딩된 특징(110)은 디코더(120)로 인가될 수 있다. 디코더(120)는 인코딩된 특징(110)에 기초하여 인식 결과를 생성할 수 있다.
도 1을 참조하면, 인코딩된 특징(110)을 수신한 디코더(120)는 입력 토큰인 시작 토큰에 기초하여, 토큰1(token1)을 출력 토큰으로 결정할 수 있다. 토큰1(token1)을 출력 토큰으로 결정한 디코더(120)는 토큰1을 다음 입력 토큰으로 결정할 수 있다.
인코더-디코더 구조 인공신경망의 디코더(120)는 매 스텝 인코더로부터 계산된 정보를 바탕으로 출력 토큰을 구하는데, 이때 이전 스텝까지 선택되었던 입력 토큰들에 종속되어 구할 수 있다.
예를 들어, 토큰1을 입력 토큰으로 결정한 디코더(120)는 토큰1에 기초하여 출력 토큰의 후보들의 확률들을 예측할 수 있다. c1 내지 cm이 출력 토큰의 후보들이고, p1 내지 pm이 각 후보들의 확률들일 수 있다. 확률들에 기초하여, 후보들 중 출력 토큰을 결정할 수 있다. 예를 들어, 후보들 중 확률이 가장 높은 토큰을 출력 토큰으로 선택할 수 있다.
스텝 i 에서 토큰 ti의 조건부 확률은 수학식1과 같이 표현 할 수 있다.
Figure pat00001
He는 인코더의 히든 리프리젠테이션(hidden representation)으로 인코딩된 특징(110)에 해당할 수 있다. t1 내지 ti-1은 지금까지 선택되었던 입력 토큰들일 수 있다. 설명의 편의상, 도 1에서 인코딩된 특징(110)이 디코더(120) 내 첫 번째 스텝의 노드에만 인가되는 것으로 도시되었으나, 인코딩된 특징(110)은 이후 스텝의 노드들에도 동일하게 인가될 수 있다.
일반적인 오토 리그레시브 디코딩을 수행하는 시퀀스 투 시퀀스 모델에서 출력 토큰으로 선택된 토큰이 다음 입력 토큰으로 결정될 수 있다. 이전 스텝까지 선택되었던 입력 토큰들에 종속되어 출력 토큰을 결정하기 때문에, 시퀀스 투 시퀀스 모델에서 출력 토큰으로 선택된 토큰이 낮은 확률을 가지는 경우, 선택된 토큰으로 인하여 다음 토큰을 예측하는 성능이 저하될 수 있다.
예를 들어, 출력 토큰의 후보들 c1 내지 cm 중 확률이 낮은 ci가 출력 토큰으로 결정될 수 있다. 이전의 토큰들을 바탕으로 다음 출력을 생성해내는 특징 때문에 오토 리그레시브 디코딩 과정에서 확률이 낮은 토큰들을 바탕으로 다음 토큰을 생성해야 하는 경우에는 이전 토큰들의 확률이 낮은 경우 이후 토큰들을 잘 생성해내기 어려울 수 있다. 일 예로, c1 내지 cm 중 상대적으로는 ci의 확률이 가장 확률이 높으나, c1 내지 cm의 확률들이 모두 높지 않은 값을 가지는 경우가 존재할 수 있다. 또는, 여러 인공신경망 모델에서 생성하는 토큰들 중 하나를 선택하여 사용하는 모델 앙상블 오토 리그레시브 디코딩 하는 환경에서는 앙상블의 결과로 다른 인공신경망에 의하여 생성된 토큰을 바탕으로 다음 토큰을 생성해야 하는 경우가 발생할 수 있다.
인공 신경망은 입력 토큰 ti-1의 확률이 낮은 경우,
Figure pat00002
를 통하여 출력 토큰인 ti 를 잘 예측할 수 없게 된다.
낮은 확률을 가지는 입력 토큰 ti-1 을 바탕으로 출력 토큰 ti 를 잘 예측 하게 하기 위해 조건부 확률에 관한 수학식1에서 토큰 ti-1 을 제외하고 확률을 계산 할 수 있다면 이러한 문제를 해결 할 수 있지만, 학습 데이터로부터 위 조건부 확률을 배우도록 설계되었기에 이전 토큰에 독립적으로 조건부 확률을 계산하도록 하면 본래의 목적을 잃어버릴 수 있다.
일 실시예에 따른 디코딩 방법에 따르면, 조건부 확률에 영향을 주지 않는 특수 토큰(tNC)을 도입하여 입력 토큰 ti-1의 확률이 낮은 경우에도 출력 토큰인 ti 를 잘 예측할 수 있다.
도 1을 참조하면, 토큰1에 대한 출력으로 결정된 출력 토큰 ci의 확률인 pi를 미리 정해진 임계 확률(θnc-)과 비교할 수 있다. 임계 확률(θnc-)는 미리 정해진 값으로, 원하는 출력을 얻을 수 있는 입력 토큰 확률의 최소값일 수 있다. 예를 들어, 출력 토큰 ci의 확률인 pi가 임계 확률(θnc-)보다 큰 경우, 출력 토큰 ci를 다음 입력 토큰으로 결정할 경우 원하는 출력을 얻을 수 있다고 판단할 수 있기 때문에, 출력 토큰 ci를 다음 입력 토큰으로 결정할 수 있다.
출력 토큰 ci의 확률인 pi가 임계 확률(θnc-)보다 작은 경우, 출력 토큰 ci를 다음 입력 토큰으로 결정할 경우 원하는 출력을 얻을 수 없다고 판단할 수 있기 때문에, 출력 토큰 ci를 다음 입력 토큰으로 결정하기 어려울 수 있다. 이 경우, 출력 토큰 ci대신 미리 정의된 특수 토큰(NC)을 다음 입력 토큰으로 결정할 수 있다.
특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는 임계 확률보다 낮은 확률의 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높을 수 있다. 인공신경망은 이러한 특성을 만족하도록 미리 학습될 수 있다. 인공신경망을 학습시키는 구체적인 내용은 후술하겠다. 예를 들어, ci의 확률인 pi가 임계 확률(θnc-)보다 작은 경우 특수 토큰(NC)에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는 ci에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높을 수 있다.
신뢰도는 학습 데이터의 정답 출력 토큰에 가까운 정도를 의미할 수 있다. 예를 들어, ci의 확률인 pi가 임계 확률(θnc-)보다 작은 경우 특수 토큰(NC)에 기초하여 예측되는 다음 출력 토큰의 후보들 중 가장 확률이 높은 출력 토큰이 ci에 기초하여 예측되는 다음 출력 토큰의 후보들 중 가장 확률이 높은 출력 토큰 보다 정답 출력 토큰에 가까울 수 있다.
인공 신경망은 출력 토큰 및 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정하면, 적어도 하나의 입력 토큰 및 다음 입력 토큰에 기초하여 다음 출력 토큰을 결정할 수 있다. 예를 들어, 인공 신경망은 특수 토큰(NC)을 다음 입력 토큰으로 결정하였다면, 입력 토큰인 토큰1과 다음 입력 토큰인 특수 토큰(NC)에 기초하여 다음 출력 토큰인 토큰3(token3)을 결정할 수 있다.
도 2는 일 실시예에 따른 어텐션 메카니즘(attention mechanism)이 적용된 인공신경망에 있어서, 특수 토큰을 마스킹하는 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 일 실시예에 따른 디코더(220)는 적어도 하나의 입력 토큰과 출력 토큰 간의 상관관계에 기초하여, 상기 출력 토큰의 후보들의 확률들을 예측할 수 있다. 출력 토큰은 입력 토큰에 따라 다른 가중치를 가지고 출력 토큰의 후보들의 확률들을 예측할 수 있다.
예를 들어, 인공신경망은 어텐션 메카니즘(attention mechanism)이 적용된 인공신경망일 수 있다. 인공신경망은 지금까지 예측한 토큰들 간의 관계를 어텐션 메카니즘으로 잘 표현 되도록 학습될 수 있다.
특수 토큰이 다른 토큰들에 영향을 미치는 것을 방지하기 위해 다른 토큰들이 특수 토큰에 어텐션(attention)을 할 수 없도록 강제하기 위해 특수 토큰을 마스킹(masking)할 수 있다.
예를 들어, 입력 토큰 'is'에 대응하는 출력 토큰의 경우, 'Hi', 'this', 'is' 입력 토큰들 뿐만 아니라, 특수 토큰(NC)까지 어텐션할 수 있다. 특수 토큰이 다른 토큰들에 영향을 미치면 안되기 때문에, 입력 토큰 'is'에 대응하는 출력 토큰이 특수 토큰(NC)에 어텐션(attention)을 할 수 없도록 강제하기 위해 특수 토큰을 마스킹(masking)할 수 있다.
아래에서 도 3 내지 도 5를 참조하여, 인코더-디코더 구조 인공신경망 시스템에 대해 상세히 설명된다.
도 3은 일 실시예에 따른 인코더-디코더 구조 인공신경망 시스템을 도시한 블록도이다.
도 3을 참조하면, 일 실시예에 따른 인코더-디코더 구조 인공신경망 시스템은 인코더(320), 디코더(330)를 포함하는 인공신경망(310), 입력 전처리 모듈(340), 어텐션 마스킹 계산 모듈(350), 및 토큰 수정 모듈(360)을 포함한다. 도 3의 디코더(330)는 도 1 및 2를 참조하여 전술된 디코더(220)에 대응할 수 있다.
일 실시예에 따른 인코더-디코더 구조 인공신경망 시스템은 하나의 인공신경망(310)에서 낮은 확률을 가지는 토큰을 처리할 수 있다.
시퀀스 투 시퀀스 인코더(320)-디코더(330)는 인코더(320)와 디코더(330)가 통합된 네트워크 구조로서, 입력 시퀀스로부터 인식 결과의 시퀀스를 생성할 수 있다.
입력 전처리 모듈(340)은 인공 신경망의 입력을 전처리하는 모듈로, 예를 들어 입력 신호에 포함된 노이즈를 제거하거나, 입력 신호를 인공 신경망에 입력하기 적합한 형태로 가공할 수 있다.
토큰 수정 모듈(360)은 수행 시에, 예측된 출력 토큰의 확률이 임계 확률(θNC) 보다 낮은 출력 토큰을 특수 토큰으로 대체해서 다음 출력 토큰을 예측하도록 수정할 수 있다.
또한, 토큰 수정 모듈(360)은 출력 토큰이 상기 특수 토큰과 동일한지 판단할 수 있다. 출력 토큰이 특수 토큰과 동일한 경우, 후보들 중 두 번째로 확률이 높은 토큰을 출력 토큰으로 결정할 수 있다. 이를 통해 특수 토큰이 출력으로 나오지 않도록 할 수 있다.
어텐션 마스킹 계산 모듈(350)은 다른 토큰들이 특수 토큰에 조건부 확률을 가지지 못하게 하기 위해 다른 토큰들이 특수 토큰에 어텐션이 걸릴 수 없도록 어텐션 가중치(attention weight)를 마스킹 할 수 있다. 어텐션 마스킹 계산 모듈(350)은 학습, 수행 시 동일하게 동작할 수 있다.
이러한 도 3은 발명의 설명을 위한 일례로, 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 도 3을 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 디코더(330)는 어텐션 마스킹 계산 모듈(350)과 토큰 수정 모듈(360)을 포함하는 넓은 개념일 수 있다.
도 4는 일 실시예에 따른 앙상블 기법을 이용한 인코더-디코더 구조 인공신경망 시스템을 도시한 블록도이다.
도 4를 참조하면, 일 실시예에 따른 인공신경망 시스템은 복수 개의 인공신경망(410, 420, 430)을 포함할 수 있다.
앙상블 기법을 이용한 인코더-디코더 구조 인공신경망 시스템은 m개의 디코더에 대응하는 인코더가 m개 일 필요는 없을 수 있다. 인코더가 없는 디코더가 존재 할 수 있다. 예를 들어, 인공신경망(420, 430)에는 디코더(422, 432)만 존재하고, 인코더(421, 431)가 없을 수 있다.
앙상블 기법에 따르면, 복수 개의 인공신경망(410, 420, 430)을 이용하여 복수 개의 디코더(412, 422, 432)가 예측한 출력 토큰의 후보들의 확률들의 조합에 기초하여, 출력 토큰의 후보들 중 출력 토큰을 선택할 수 있다.
앙상블 기법을 이용하는 경우, 디코더(412, 422, 432) 마다 다른 출력 토큰을 가장 확률이 높다고 판단 할 수 있다. 예를 들어 인공신경망(410)의 디코더(412)는 c1이, 인공신경망(420)의 디코더(422)는 c2가, 인공신경망(430)의 디코더(432)는 c3의 확률이 가장 높다고 판단 할 수 있다.
디코더(412, 422, 432) 마다 다른 출력 토큰을 가장 확률이 높다고 판단하여도, 하나의 출력 토큰을 결정할 수 있다. 예를 들어, 최종적으로 복수 개의 디코더(412, 422, 432)가 예측한 출력 토큰의 후보들의 확률들의 조합에 기초하여, 출력 토큰의 후보들 중 출력 토큰을 선택할 수 있다.
선택된 출력 토큰이 강제적으로 모든 디코더의 다음 입력 토큰으로 입력되는 경우에는 확률이 가장 높다고 판단하지 않은 출력 토큰을 다음 입력 토큰으로 입력하는 디코더가 발생할 수 있다.
예를 들어, 최종적으로 복수 개의 디코더(412, 422, 432)가 예측한 출력 토큰의 후보들(c1, c2, c3)의 확률들의 조합에 기초하여 c1을 출력 토큰으로 선택하는 경우, 디코더(422)와 디코더(432)는 결과적으로 자신의 기준으로 가장 확률이 높은 출력 토큰의 후보(c2, c3)를 바탕으로 다음 출력 토큰을 생성하지 못하고 다른 디코더(412)가 생성한 출력 토큰의 후보인 c1을 바탕으로 다음 토큰을 생성해야 하는 경우가 발생할 수 있다. 이전 토큰들을 기반으로 다음 토큰을 구하는 오토 리그레시브 한 특징 때문에 자신의 디코더(422, 432)에 있어서 확률이 낮은 다음 입력 토큰(c1)을 입력으로 하는 인공 신경망(420, 430)은 다음 출력 토큰을 잘 예측 할 수 없게 된다.
일 실시예에 따른 앙상블 기법을 이용한 인코더-디코더 구조 인공신경망 시스템에도, 조건부 확률에 영향을 주지 못하는 특수 토큰을 도입하여 자신이 확률이 가장 높다고 판단하지 않은 토큰을 입력으로 출력 토큰을 정상적으로 예측할 수 있다.
여러 개의 인공신경망을 앙상블 하는 경우에는 j번째 인공신경망마다 출력 토큰으로 결정된 tmax에 대한 확률(Pj(tmax))과 tmax를 가장 높게 판단한 인공신경망(410)의 확률을 비교할 수 있다. 예를 들어, 출력 토큰의 후보들(c1, c2, c3) 중, 인공신경망(420)에서의 출력 토큰으로 결정된 c1에 대한 확률 p2(c1)와 c1을 가장 높게 판단한 인공신경망(410)에서의 c1에 대한 확률 p1(c1)을 비교할 수 있다.
출력 토큰 확률을 가장 높게 판단한 인공신경망(410)과 j번째 인공신경망의 출력 토큰 확률의 차이(
Figure pat00003
)가 미리 정해진 임계값보다 큰 경우, 특수 토큰은 j번째 인공신경망의 다음 입력 토큰으로 선택될 수 있다. 예를 들어, p1(c1)과 p2(c1)의 차이가 미리 정해진 임계값 θDIFF보다 큰 경우에는, c1이 아닌 특수 토큰이 인공신경망(420)의 다음 입력 토큰으로 선택될 수 있다. 출력 토큰 확률을 가장 높게 판단한 인공신경망(410)과 j번째 인공신경망의 출력 토큰 확률의 차이가 미리 정해진 임계값보다 작은 경우에는, 결정된 출력 토큰이 j번째 인공신경망의 다음 입력 토큰으로 선택될 수 있다.
출력 토큰 확률을 가장 높게 판단한 인공신경망과 j번째 인공신경망의 출력 토큰 확률의 차이(
Figure pat00004
)가 미리 정해진 임계값보다 큰 경우, 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높을 수 있다.
도 2에서 설명한 특수 토큰을 마스킹하는 방법은 도 4의 앙상블 기법을 이용한 인코더-디코더 구조 인공신경망 시스템도 마찬가지로 적용될 수 있다.
토큰 수정 모듈(460)은 수행 시에, 예측된 출력 토큰의 확률이 임계 확률(θNC) 보다 낮은 출력 토큰을 특수 토큰으로 대체해서 다음 출력 토큰을 예측하도록 수정할 수 있다.
토큰 수정 모듈(460)은 수행 시에, 출력 토큰 확률을 가장 높게 판단한 인공신경망(410)과 j번째 인공신경망의 출력 토큰 확률의 차이(
Figure pat00005
)가 미리 정해진 임계값보다 큰 경우, 특수 토큰을 j번째 인공신경망의 다음 입력 토큰으로 선택할 수 있다.
또한, 토큰 수정 모듈(460)은 출력 토큰이 상기 특수 토큰과 동일한지 판단할 수 있다. 출력 토큰이 특수 토큰과 동일한 경우, 후보들 중 두 번째로 확률이 높은 토큰을 출력 토큰으로 결정할 수 있다. 이를 통해 특수 토큰이 출력으로 나오지 않도록 할 수 있다.
어텐션 마스킹 계산 모듈(450)은 다른 토큰들이 특수 토큰에 조건부 확률을 가지지 못하게 하기 위해 다른 토큰들이 특수 토큰에 어텐션이 걸릴 수 없도록 어텐션 가중치(attention weight)를 마스킹 할 수 있다. 어텐션 마스킹 계산 모듈(450)은 학습, 수행 시 동일하게 동작할 수 있다.
도 5는 일 실시예에 따른 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망에서의 적용 실시예를 도시한 블록도이다.
도 5를 참조하면, 일 실시예에 따른 언어 모델 인공신경망을 가지는 음성인식 인공신경망은 음성인식 모델 인공신경망(510)과 언어 모델 인공신경망(520)을 포함할 수 있다.
음성인식의 경우 음성을 인코더(511)의 입력으로 인식결과인 단어의 연속을 출력하는 디코더(512)로 구성하는 것이 기본적이나, 이에 추가로 단어의 연속이 얼마나 일반적인 문장에서 확률이 높은지 판단하는 디코더(521)만으로 이루어진 언어 모델 인공신경망(520)을 추가로 활용하여 그 성능을 높일 수 있다.
실제 음성을 바탕으로 단어를 매 시점 예측하는 음성인식 모델 인공신경망은 새로운 단어라 하더라도 음성을 듣고 발음에 따라 음소를 조합하여 단어를 만들어 낼 수 있지만, 일반적인 문장으로 학습된 언어 모델 인공신경망의 경우 학습 때 배우지 못한 새로운 단어(새로운 장소, 신조어 등)가 나오면 이 단어의 출력 확률은 아주 낮을 수 밖에 없다. 이러한 낮은 확률을 가지는 단어를 입력으로 다음 단어를 예측하려고 할 때 언어 모델 인공신경망은 배우지 못한 입력으로부터 다음 단어를 출력해야 하기에 올바른 예측을 할 수 없을 수 있다.
일 실시예에 따른 언어 모델 인공신경망(520)에도 토큰 수정 모듈(560)과 어텐션 마스킹 계산 모듈(550)을 이용하여, 도 4에서 전술한 조건부 확률에 영향을 주지 못하는 특수 토큰을 도입하여 자신이 확률이 가장 높다고 판단하지 않은 토큰을 입력으로 출력 토큰을 정상적으로 예측할 수 있다.
아래에서 도 6 내지 도 7b을 참조하여, 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망에서의 적용 실시예에 대해 상세히 설명된다.
도 6은 일 실시예에 따른 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템을 도시한 도면이다.
도 6을 참조하면, 일 실시예에 따른 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템은 인코더(610), 음성인식 인공신경망 디코더(620), 및 언어 모델 인공신경망 디코더(630)를 포함할 수 있다.
추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템은 입력 음성으로부터 음성 특징(640)을 추출할 수 있다. 입력 음성은 복수의 프레임들 별로 정보를 포함하는 음성 신호이고, 음성 특징(640)은 적어도 하나의 프레임 단위로 추출된 정보의 시퀀스일 수 있으며, 다차원의 벡터로 표현될 수 있다. 이하, 설명의 편의를 위하여 입력 음성이 "Hi MinChul this is"인 경우의 실시예를 설명한다.
추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템은 언어 모델 인공신경망 디코더(630)와 음성인식 인공신경망 디코더(620)의 앙상블을 이용하여 입력 음성의 시퀀스로부터 인식 결과의 시퀀스를 생성할 수 있다.
언어 모델 인공신경망 디코더(630)와 음성인식 인공신경망 디코더(620)는 토큰 단위로 각각의 인식 결과를 출력할 수 있고, 각각의 인식 결과를 앙상블 가중치에 따라 앙상블하여 최종 인식 결과를 생성할 수 있다. 예를 들어, 음성인식 인공신경망 디코더(620)는 입력 음성과 이전에 결정된 인식 결과에 기초하여 출력 토큰의 후보들을 결정할 수 있고, 언어 모델 인공신경망 디코더(630)는 이전에 결정된 인식 결과에 기초하여 출력 토큰의 후보들을 결정할 수 있으며, 각각의 출력 토큰의 후보들을 앙상블 가중치에 따라 앙상블하여 최종 인식 결과를 생성할 수 있다.
인코더(610)와 디코더(620)는 입력 음성에 대응하는 정답 텍스트 쌍의 시퀀스로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있고, 언어 모델 인공신경망 디코더(630)는 임의의 텍스트 시퀀스로부터 인식 결과의 시퀀스를 생성하도록 미리 학습될 수 있다.
인코더(610)는 음성 특징(640)을 인코딩하여 인코딩된 특징(650)을 생성한다. 인코더(610)는 음성 특징(640)의 차원(dimension)을 변환시켜, 인코딩된 정보를 생성할 수 있다. 인코딩된 특징(650)은 음성인식 인공신경망 디코더(620)로 인가된다. 음성인식 인공신경망 디코더(620)는 토큰 단위로, 인코딩된 특징(650)과 이전에 결정된 인식 결과 기초하여 출력 토큰의 후보들을 생성하고, 언어 모델 인공신경망 디코더(630)는 토큰 단위로, 이전에 결정된 인식 결과에 기초하여 출력 토큰의 후보들을 생성할 수 있다. 두 인식 결과를 미리 정해진 앙상블 가중치에 따라 앙상블하여 최종 인식 결과를 생성할 수 있다. 예를 들어, 음성인식 인공신경망 디코더(620)와 언어 모델 인공신경망 디코더(630)의 앙상블 가중치는 1 : 0.2일 수 있다.
아래에서 도 7a 내지 도 7b을 참조하여, 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예에 대해 상세히 설명된다.
도 7a는 일 실시예에 따른 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예를 도시한 도면이다.
도 7a를 참조하면, 일 실시예에 따른 음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 각각 도 6의 음성인식 인공신경망 디코더(620)와 언어 모델 인공신경망 디코더(630)에 대응될 수 있다.
음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 오토 리그레시브 디코더로서 입력 토큰 "Hi"에 기초하여, 출력 토큰의 후보들의 확률들을 예측할 수 있다. 예를 들어, 음성인식 인공신경망 디코더(710)는 입력 토큰 "Hi" 와 인코딩된 음성 특징에 기초하여, "MinChul"과 "Bixby"를 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.7과 0.1로 예측할 수 있다. 또한, 언어 모델 인공신경망 디코더(720)는 입력 토큰 "Hi"에 기초하여, "MinChul"과 "Bixby"를 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.001과 0.8로 예측할 수 있다.
음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 앙상블 가중치를 이용하여 후보들 중 출력 토큰을 결정할 수 있다. 예를 들어, "MinChul"은 0.7 + 0.2*0.001 = 0.7002의 최종 가중치를 갖고, "Bixby"는 0.1 + 0.2*0.8 = 0.26의 최종 가중치를 갖기 때문에 "MinChul"이 출력 토큰으로 결정될 수 있다.
오토 리그레시브 디코딩 환경에서는, 언어 모델 인공신경망 디코더(720)에서 자신의 기준으로 가장 확률이 높은 "Bixby"가 아닌 앙상블의 결과로 결정된 "MinChul"을 다음 입력 토큰으로 입력할 수 있다. 언어 모델 인공신경망 디코더(720)에서 "MinChul"은 낮은 확률을 갖기 때문에, 다음 출력 토큰을 잘 예측하기 어려울 수 있다.
예를 들어, 언어 모델 인공신경망 디코더(720)는 다음 입력 토큰 "MinChul"에 기초하여, "this"와 "dis"를 다음 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.01과 0.01로 예측할 수 있다. 음성인식 인공신경망 디코더(710)는 다음 입력 토큰 "MinChul"에 기초하여, "this"와 "dis"를 다음 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.34와 0.38로 예측할 수 있다. "this"와 "dis"의 발음이 비슷하기 때문에 음성인식 인공신경망 디코더(710)에서 "this"와 "dis"의 확률이 비슷할 수 있다.
음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 앙상블 가중치를 이용하여 후보들 중 다음 출력 토큰을 결정할 수 있다. 예를 들어, "this"는 0.34 + 0.2*0.01 = 0.342의 최종 가중치를 갖고, "dis"는 0.38 + 0.2*0.01 = 0.382의 최종 가중치를 갖기 때문에 "dis"가 다음 출력 토큰으로 결정될 수 있다. 결과적으로, 도 7a에 따른 음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 입력 음성 "this"와 다른 "dis"를 출력을 할 수 있다.
전술한 실시예에서, 언어 모델 인공신경망 디코더(720)에 의하여 예측된 현재 출력 토큰의 후보들 중 음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720) 간의 앙상블에 의하여 결정된 "MinChul"의 확률은 미리 정해진 임계확률보다 낮을 수 있다. 낮은 확률의 "MinChul"로 인하여, 언어 모델 인공신경망 디코더(720)는 다음 출력 토큰으로 "this"와 "dis"를 잘 구분하지 못할 수 있다. 이처럼, 음성 모델 인공신경망 디코더(710)의 성능을 보완해야 하는 언어 모델 인공신경망 디코더(720)의 성능이 저하됨에 따라, 전술한 실시예에서와 같이 "this"와 다른 "dis"를 출력하는 등 잘못된 결과가 도출될 수 있다.
아래에서 도 7b을 참조하여, 특수 토큰을 이용한 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예에 대해 상세히 설명된다.
도 7b는 일 실시예에 따른 특수 토큰을 이용한 언어 모델 인공신경망 디코더와 음성인식 인공신경망 디코더에서의 앙상블 기법을 적용한 실시예를 도시한 도면이다.
도 7b를 참조하면, 일 실시예에 따른 음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 앙상블 가중치를 이용하여 후보들 중 "MinChul"을 출력 토큰으로 결정할 수 있다.
언어 모델 인공신경망 디코더(720)는 "MinChul"의 확률과 미리 정해진 임계 확률을 비교할 수 있다. 예를 들어, 미리 정해진 임계 확률은 0.01일 수 있다. 언어 모델 인공신경망 디코더(720)의 "MinChul"의 확률은 0.001로 임계 확률 0.01보다 작기 때문에, "MinChul" 대신 특수 토큰(NC)을 다음 입력 토큰으로 선택할 수 있다.
언어 모델 인공신경망 디코더(720)는 다음 입력 토큰인 특수 토큰(NC)에 기초하여, "this"와 "dis"를 다음 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.4와 0.1로 예측할 수 있다. 음성인식 인공신경망 디코더(710)는 다음 입력 토큰 "MinChul"에 기초하여, "this"와 "dis"를 다음 출력 토큰의 후보들로 출력할 수 있고, 각각의 확률을 0.34와 0.38로 예측할 수 있다.
음성인식 인공신경망 디코더(710)와 언어 모델 인공신경망 디코더(720)는 앙상블 가중치를 이용하여 후보들 중 다음 출력 토큰을 결정할 수 있다. 예를 들어, "this"는 0.34 + 0.2*0.4 = 0.42의 최종 가중치를 갖고, "dis"는 0.38 + 0.2*0.1 = 0.4의 최종 가중치를 갖기 때문에 "this"가 다음 출력 토큰으로 결정될 수 있다.
도 8은 일 실시예에 따른 인공신경망에서의 디코딩 방법을 도시한 순서도이다.
도 8을 참조하면, 일 실시예에 따른 단계들(810 내지 830)은 도 3을 참조하여 전술된 디코더(330)에 의해 수행될 수 있다. 디코더(330)는 하나 또는 그 이상의 하드웨어 모듈, 하나 또는 그 이상의 소프트웨어 모듈, 또는 이들의 다양한 조합에 의하여 구현될 수 있다.
단계(810)에서, 디코더(330)는 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측한다.
단계(820)에서, 디코더(330)는 확률들에 기초하여, 후보들 중 출력 토큰을 결정한다. 후보들 중 확률이 가장 높은 토큰을 선택할 수 있다. 또는, 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 후보들의 확률들과 인공신경망에 의하여 예측된 후보들의 확률들의 조합에 기초하여, 후보들 중 상기 출력 토큰을 선택할 수 있다.
단계(830)에서, 디코더(330)는 출력 토큰의 확률에 기초하여 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정한다.
적어도 하나의 입력 토큰은 인공신경망에 의하여 기 예측된 출력 토큰 및 특수 토큰 중 적어도 하나를 포함할 수 있다.
인공신경망의 입력 레이어는 후보들에 대응하는 복수의 노드들 및 특수 토큰에 대응하는 특수 노드를 포함할 수 있다.
도 9는 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 단계(901)에서, 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망은 입력을 수신할 수 있다. 예를 들어, 음성인식 인공신경망 시스템에서는 입력 음성을 수신할 수 있다.
단계(902)에서, 인코더는 수신한 입력으로부터 인코딩된 특징을 생성할 수 있다. 예를 들어, 인코더는 음성 특징의 차원(dimension)을 변환시켜, 인코딩된 정보를 생성할 수 있다.
단계(903)에서, 디코더는 인코딩된 특징에 기초하여 출력 토큰의 후보들의 확률을 예측할 수 있다. 디코더는 매 스텝 인코더로부터 계산된 정보를 바탕으로 출력 토큰을 구하는데, 이때 이전 스텝까지 선택되었던 입력 토큰들에 종속되어 구할 수 있다.
단계(904)에서, 디코더는 확률들에 기초하여, 후보들 중 상기 출력 토큰을 결정할 수 있다. 예를 들어, i번째 스텝에서 가장 확률이 높은 ti를 출력 토큰으로 결정할 수 있다.
단계(905)에서, 디코더는 출력 토큰이 상기 특수 토큰과 동일한지 판단할 수 있다.
단계(906)에서, 출력 토큰이 특수 토큰과 동일한 경우, 디코더는 후보들 중 두 번째로 확률이 높은 토큰을 출력 토큰으로 결정할 수 있다. 이를 통해 특수 토큰이 출력으로 나오지 않도록 할 수 있다.
단계(907)에서, 출력 토큰이 특수 토큰과 동일하지 않은 경우, 디코더는 출력 토큰의 확률과 미리 정해진 임계 확률을 비교할 수 있다.
단계(908)에서, 출력 토큰의 확률이 임계 확률보다 큰 경우, 디코더는 출력 토큰을 다음 입력 토큰으로 선택할 수 있다.
단계(909)에서, 출력 토큰의 확률이 임계 확률보다 작은 경우, 디코더는 출력 토큰 대신 특수 토큰을 다음 입력 토큰으로 선택할 수 있다.
단계(910)에서, 디코더는 특수 토큰이 다른 토큰들에 영향을 미치는 것을 방지하기 위해 다른 토큰들이 특수 토큰에 어텐션(attention)을 할 수 없도록 강제하기 위해 특수 토큰을 마스킹(masking)할 수 있다.
조건부 확률에 영향을 주지 못하는 특수 토큰(tNC)을 도입하여 입력 토큰 ti-1의 확률이 낮은 경우에도 출력 토큰인 ti 를 잘 예측 할 수 있다. 특수 토큰은 수학식 2와 같은 특징을 가지도록 학습된다.
Figure pat00006
<T1>, <T1>는 임의의 토큰 시퀀스로, 공 시퀀스(empty sequence)를 포함할 수 있다. 수학식2와 같이 학습된 tNC가 있다면, 정해진 임계값 (θNC) 보다 ti-1의 확률이 낮은 경우 토큰 ti-1을 포함한 조건부 확률이 계산되는 것을 방지하기 위해 ti-1을 tNC로 대체하여 다음 토큰을 올바르게 예측 할 수 있다. 임의의 확률로 학습에 사용할 정답 문장의 토큰들을 특정 확률(θReplace)로 tNC로 바꾸어 인공신경망을 학습시킬 수 있다.
주, 보조 인공신경망이 구분이 되는 경우 보조 인공신경망의 학습 데이터에서만 정답 토큰을 특정 확률(θReplace)로 변경하여 학습시킬 수 있다. 예를 들어, 추가 언어 모델 인공신경망을 가지는 음성인식 인공신경망 시스템의 경우, 언어 모델 인공신경망이 보조 인공신경망일 수 있고, 이 때는 언어 모델 인공신경망만의 학습 데이터에서만 정답 토큰을 특정 확률(θReplace)로 변경하여 학습시킬 수 있다.
도 10은 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치의 블록도이다.
도 10을 참조하면, 일 실시예에 따른 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치(1000)는 센서(들)(1010), 프로세서(1030), 및 통신 인터페이스(1070)를 포함한다. 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치(1000)는 메모리(1050), 및 디스플레이(1090)를 더 포함할 수 있다. 센서(들)(1010), 프로세서(1030), 메모리(1050), 통신 인터페이스(1070), 및 디스플레이(1090)는 통신 버스(1005)를 통해 서로 통신할 수 있다.
센서(들)(1010)는 예를 들어, 마이크 센서, 음성 센서를 포함할 수 있다.
프로세서(1030)는 도 1 내지 도 9를 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(1030)는 프로그램을 실행하고, 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치(1000)를 제어할 수 있다. 프로세서(1030)에 의하여 실행되는 프로그램 코드는 메모리(1050)에 저장될 수 있다.
프로세서(1030)는 예를 들어, CPU(Central Processing Unit) 또는 GPU(Graphics Processing Unit)으로 구성될 수 있다.
메모리(1050)는 프로세서(1030)가 처리한 데이터를 저장한다. 예를 들어, 메모리(1050)는 프로그램을 저장할 수 있다. 저장되는 프로그램은 사용자의 보행을 보조할 수 있도록 코딩되어 프로세서(1030)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다. 메모리(1050)는 휘발성 메모리 또는 비 휘발성 메모리일 수 있다.
통신 인터페이스(1070)는 센서(들)(1010), 프로세서(1030) 및 메모리(1050)와 연결되어 데이터를 송수신할 수 있다. 통신 인터페이스(1070)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다. 이하에서 "A"를 송수신한다라는 표현은 "A를 나타내는 정보(information) 또는 데이터"를 송수신하는 것을 나타낼 수 있다.
통신 인터페이스(1070)는 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치(1000) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신 인터페이스(1070)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신 인터페이스(1070)는 오토 리그레시브 기반의 시퀀스 생성 인공 신경망에서의 낮은 확률 토큰의 처리 장치(1000)와 외부의 장치를 연결하는 요소일 수 있다. 통신 인터페이스(1070)는 외부의 장치로부터 데이터를 수신하여, 프로세서(1030) 및 메모리(1040)에 데이터를 전송할 수 있다.
디스플레이(1090)는 디코딩된 결과를 표시할 수 있다. 예를 들어, 번역 결과, 음성 인식 결과가 디스플레이(1090)에 표시될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (38)

  1. 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하는 단계;
    상기 확률들에 기초하여, 상기 후보들 중 상기 출력 토큰을 결정하는 단계; 및
    상기 출력 토큰의 확률에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정하는 단계
    를 포함하는 인공신경망에서의 디코딩 방법.
  2. 제1항에 있어서,
    상기 특수 토큰을 다음 입력 토큰으로 결정하는 경우,
    상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는
    상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높은, 인공신경망에서의 디코딩 방법.
  3. 제1항에 있어서,
    상기 인공신경망의 입력 레이어는
    상기 후보들에 대응하는 복수의 노드들 및 상기 특수 토큰에 대응하는 특수 노드를 포함하는, 인공신경망에서의 디코딩 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 입력 토큰은
    상기 인공신경망에 의하여 기 예측된 출력 토큰 및 상기 특수 토큰 중 적어도 하나를 포함하는, 인공신경망에서의 디코딩 방법.
  5. 제1항에 있어서,
    상기 출력 토큰을 결정하는 단계는
    상기 후보들 중 확률이 가장 높은 토큰을 선택하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  6. 제1항에 있어서,
    상기 출력 토큰을 결정하는 단계는
    상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  7. 제1항에 있어서,
    상기 다음 입력 토큰을 결정하는 단계는
    상기 출력 토큰의 확률과 미리 정해진 임계 확률을 비교하는 단계;
    상기 출력 토큰의 확률이 상기 임계 확률보다 작은 경우, 상기 특수 토큰을 상기 다음 입력 토큰으로 선택하는 단계; 및
    상기 출력 토큰의 확률이 상기 임계 확률보다 큰 경우, 상기 출력 토큰을 상기 다음 입력 토큰으로 선택하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  8. 제1항에 있어서,
    상기 출력 토큰의 후보들의 확률들을 예측하는 단계는
    상기 적어도 하나의 입력 토큰과 상기 출력 토큰 간의 상관관계에 기초하여, 상기 출력 토큰의 후보들의 확률들을 예측하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 입력 토큰 및 상기 다음 입력 토큰에 기초하여 다음 출력 토큰을 결정하는 단계
    를 더 포함하는, 인공신경망에서의 디코딩 방법.
  10. 제1항에 있어서,
    다른 토큰들이 상기 특수 토큰에 어텐션(attention)하지 못하게 상기 특수 토큰을 마스킹(masking)하는 단계
    를 더 포함하는 인공신경망에서의 디코딩 방법.
  11. 제1항에 있어서,
    상기 특수 토큰이 상기 다음 입력 토큰으로 결정된 경우, 다음 출력 토큰과 상기 특수 토큰 사이의 상관관계를 미리 정해진 수치 이하로 설정하는 단계
    를 더 포함하는 인공신경망에서의 디코딩 방법.
  12. 제1항에 있어서,
    상기 출력 토큰을 결정하는 단계는
    상기 출력 토큰이 상기 특수 토큰과 동일한지 판단하는 단계; 및
    상기 출력 토큰이 상기 특수 토큰과 동일한 경우, 상기 후보들 중 두 번째로 확률이 높은 토큰을 상기 출력 토큰으로 결정하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  13. 복수개의 인공신경망들의 앙상블을 통해 토큰을 결정하는 인공신경망에 있어서,
    현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하는 단계;
    상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하는 단계;
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망 사이에서 상기 출력 토큰의 확률을 비교하는 단계; 및
    상기 비교 결과에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 상기 인공신경망의 다음 입력 토큰을 결정하는 단계
    를 포함하는 인공신경망에서의 디코딩 방법.
  14. 제13항에 있어서,
    상기 다음 입력 토큰을 결정하는 단계는
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 큰 경우, 상기 특수 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하는 단계; 및
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 작은 경우, 상기 출력 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  15. 제14항에 있어서,
    상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는
    상기 임계값보다 큰 경우, 상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높은, 인공신경망에서의 디코딩 방법.
  16. 제13항에 있어서,
    상기 인공신경망의 입력 레이어는
    상기 후보들에 대응하는 복수의 노드들 및 상기 특수 토큰에 대응하는 특수 노드를 포함하는, 인공신경망에서의 디코딩 방법.
  17. 제13항에 있어서,
    상기 적어도 하나의 입력 토큰은
    상기 인공신경망에 의하여 기 예측된 출력 토큰 및 상기 특수 토큰 중 적어도 하나를 포함하는, 인공신경망에서의 디코딩 방법.
  18. 제13항에 있어서,
    상기 출력 토큰의 후보들의 확률들을 예측하는 단계는
    상기 적어도 하나의 입력 토큰과 상기 출력 토큰 간의 상관관계에 기초하여, 상기 출력 토큰의 후보들의 확률들을 예측하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  19. 제13항에 있어서,
    상기 적어도 하나의 입력 토큰 및 상기 다음 입력 토큰에 기초하여 다음 출력 토큰을 결정하는 단계
    를 더 포함하는, 인공신경망에서의 디코딩 방법.
  20. 제13항에 있어서,
    다른 토큰들이 상기 특수 토큰에 어텐션(attention)하지 못하게 상기 특수 토큰을 마스킹(masking)하는 단계
    를 더 포함하는 인공신경망에서의 디코딩 방법.
  21. 제13항에 있어서,
    상기 특수 토큰이 상기 다음 입력 토큰으로 결정된 경우, 다음 출력 토큰과 상기 특수 토큰 사이의 상관관계를 미리 정해진 수치 이하로 설정하는 단계
    를 더 포함하는 인공신경망에서의 디코딩 방법.
  22. 제13항에 있어서,
    상기 출력 토큰을 결정하는 단계는
    상기 출력 토큰이 상기 특수 토큰과 동일한지 판단하는 단계; 및
    상기 출력 토큰이 상기 특수 토큰과 동일한 경우, 상기 후보들 중 두 번째로 확률이 높은 토큰을 상기 출력 토큰으로 결정하는 단계
    를 포함하는, 인공신경망에서의 디코딩 방법.
  23. 하드웨어와 결합되어 제1항 내지 제22항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  24. 현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하고,
    상기 확률들에 기초하여, 상기 후보들 중 상기 출력 토큰을 결정하고,
    상기 출력 토큰의 확률에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 다음 입력 토큰을 결정하는 프로세서
    를 포함하는 인공신경망에서의 디코더.
  25. 제24항에 있어서,
    상기 특수 토큰을 다음 입력 토큰으로 결정하는 경우,
    상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는
    상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높은, 인공신경망에서의 디코더.
  26. 제24항에 있어서,
    상기 인공신경망의 입력 레이어는
    상기 후보들에 대응하는 복수의 노드들 및 상기 특수 토큰에 대응하는 특수 노드를 포함하는, 인공신경망에서의 디코더.
  27. 제24항에 있어서,
    상기 적어도 하나의 입력 토큰은
    상기 인공신경망에 의하여 기 예측된 출력 토큰 및 상기 특수 토큰 중 적어도 하나를 포함하는, 인공신경망에서의 디코더.
  28. 제24항에 있어서,
    상기 프로세서는
    상기 후보들 중 확률이 가장 높은 토큰을 선택하는, 인공신경망에서의 디코더.
  29. 제24항에 있어서,
    상기 프로세서는
    상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하는, 인공신경망에서의 디코더.
  30. 제24항에 있어서,
    상기 프로세서는
    상기 출력 토큰의 확률과 미리 정해진 임계 확률을 비교하고,
    상기 출력 토큰의 확률이 상기 임계 확률보다 작은 경우, 상기 특수 토큰을 상기 다음 입력 토큰으로 선택하고,
    상기 출력 토큰의 확률이 상기 임계 확률보다 큰 경우, 상기 출력 토큰을 상기 다음 입력 토큰으로 선택하는, 인공신경망에서의 디코더.
  31. 제24항에 있어서,
    상기 프로세서는
    상기 적어도 하나의 입력 토큰과 상기 출력 토큰 간의 상관관계에 기초하여, 상기 출력 토큰의 후보들의 확률들을 예측하는, 인공신경망에서의 디코더.
  32. 제24항에 있어서,
    상기 프로세서는
    상기 적어도 하나의 입력 토큰 및 상기 다음 입력 토큰에 기초하여 다음 출력 토큰을 결정하는, 인공신경망에서의 디코더.
  33. 제24항에 있어서,
    상기 프로세서는
    다른 토큰들이 상기 특수 토큰에 어텐션(attention)하지 못하게 상기 특수 토큰을 마스킹(masking)하는, 인공신경망에서의 디코더.
  34. 제24항에 있어서,
    상기 프로세서는
    상기 특수 토큰이 상기 다음 입력 토큰으로 결정된 경우, 다음 출력 토큰과 상기 특수 토큰 사이의 상관관계를 미리 정해진 수치 이하로 설정하는, 인공신경망에서의 디코더.
  35. 제24항에 있어서,
    상기 프로세서는
    상기 출력 토큰이 상기 특수 토큰과 동일한지 판단하고,
    상기 출력 토큰이 상기 특수 토큰과 동일한 경우, 상기 후보들 중 두 번째로 확률이 높은 토큰을 상기 출력 토큰으로 결정하는, 인공신경망에서의 디코더.
  36. 복수개의 인공신경망들의 앙상블을 통해 토큰을 결정하는 인공신경망에 있어서,
    현재까지 입력된 적어도 하나의 입력 토큰에 기초하여, 출력 토큰의 후보들의 확률들을 예측하고,
    상기 인공신경망과 연동하는 타 인공신경망에 의하여 예측된 상기 후보들의 확률들과 상기 인공신경망에 의하여 예측된 상기 후보들의 확률들의 조합에 기초하여, 상기 후보들 중 상기 출력 토큰을 선택하고,
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망 사이에서 상기 출력 토큰의 확률을 비교하고,
    상기 비교 결과에 기초하여 상기 출력 토큰 및 미리 정의된 특수 토큰 중 어느 하나를 선택함으로써, 상기 인공신경망의 다음 입력 토큰을 결정하는 프로세서를 포함하는 인공신경망에서의 디코더.
  37. 제36항에 있어서,
    상기 프로세서는
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 큰 경우, 상기 특수 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하고,
    상기 출력 토큰의 확률을 가장 높게 판단한 인공신경망과 상기 인공신경망의 상기 출력 토큰의 확률의 차이가 미리 정해진 임계값보다 작은 경우, 상기 출력 토큰을 상기 인공신경망의 상기 다음 입력 토큰으로 선택하는, 인공신경망에서의 디코더.
  38. 제37항에 있어서,
    상기 특수 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도는
    상기 임계값보다 큰 경우, 상기 출력 토큰에 기초하여 예측되는 다음 출력 토큰의 후보들의 신뢰도보다 높은, 인공신경망에서의 디코더.
KR1020180139787A 2018-11-14 2018-11-14 인공신경망에서의 디코딩 방법 및 그 장치 KR20200056001A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180139787A KR20200056001A (ko) 2018-11-14 2018-11-14 인공신경망에서의 디코딩 방법 및 그 장치
US16/388,930 US11361757B2 (en) 2018-11-14 2019-04-19 Method and apparatus with speech recognition
CN201910846620.XA CN111192576A (zh) 2018-11-14 2019-09-09 解码方法、语音识别设备和系统
EP19197732.1A EP3654328A1 (en) 2018-11-14 2019-09-17 Method and apparatus with speech recognition
JP2019171730A JP2020086436A (ja) 2018-11-14 2019-09-20 人工神経網における復号化方法、音声認識装置及び音声認識システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180139787A KR20200056001A (ko) 2018-11-14 2018-11-14 인공신경망에서의 디코딩 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20200056001A true KR20200056001A (ko) 2020-05-22

Family

ID=67988924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180139787A KR20200056001A (ko) 2018-11-14 2018-11-14 인공신경망에서의 디코딩 방법 및 그 장치

Country Status (5)

Country Link
US (1) US11361757B2 (ko)
EP (1) EP3654328A1 (ko)
JP (1) JP2020086436A (ko)
KR (1) KR20200056001A (ko)
CN (1) CN111192576A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022145611A1 (ko) * 2020-12-28 2022-07-07 삼성전자주식회사 전자 장치 및 그 제어 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11043214B1 (en) * 2018-11-29 2021-06-22 Amazon Technologies, Inc. Speech recognition using dialog history
US11158307B1 (en) * 2019-03-25 2021-10-26 Amazon Technologies, Inc. Alternate utterance generation
US11176321B2 (en) * 2019-05-02 2021-11-16 International Business Machines Corporation Automated feedback in online language exercises
US11790895B2 (en) * 2019-06-26 2023-10-17 Samsung Electronics Co., Ltd. System and method for natural language understanding
KR20210044559A (ko) * 2019-10-15 2021-04-23 삼성전자주식회사 출력 토큰 결정 방법 및 장치
US11830480B2 (en) * 2021-02-17 2023-11-28 Kwai Inc. Systems and methods for accelerating automatic speech recognition based on compression and decompression
US20230029196A1 (en) * 2021-07-22 2023-01-26 XRSpace CO., LTD. Method and apparatus related to sentence generation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2409750B (en) 2004-01-05 2006-03-15 Toshiba Res Europ Ltd Speech recognition system and technique
US10867597B2 (en) 2013-09-02 2020-12-15 Microsoft Technology Licensing, Llc Assignment of semantic labels to a sequence of words using neural network architectures
US9953171B2 (en) 2014-09-22 2018-04-24 Infosys Limited System and method for tokenization of data for privacy
US10115055B2 (en) 2015-05-26 2018-10-30 Booking.Com B.V. Systems methods circuits and associated computer executable code for deep learning based natural language understanding
KR102371188B1 (ko) * 2015-06-30 2022-03-04 삼성전자주식회사 음성 인식 장치 및 방법과 전자 장치
KR102450853B1 (ko) * 2015-11-30 2022-10-04 삼성전자주식회사 음성 인식 장치 및 방법
US9799327B1 (en) 2016-02-26 2017-10-24 Google Inc. Speech recognition with attention-based recurrent neural networks
US10019438B2 (en) * 2016-03-18 2018-07-10 International Business Machines Corporation External word embedding neural network language models
US10409911B2 (en) 2016-04-29 2019-09-10 Cavium, Llc Systems and methods for text analytics processor
US9858265B1 (en) 2016-06-08 2018-01-02 Rovi Guides, Inc. Systems and methods for determining context switching in conversation
US10565493B2 (en) * 2016-09-22 2020-02-18 Salesforce.Com, Inc. Pointer sentinel mixture architecture
US20180150742A1 (en) 2016-11-28 2018-05-31 Microsoft Technology Licensing, Llc. Source code bug prediction
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
CN106933785A (zh) * 2017-02-23 2017-07-07 中山大学 一种基于递归神经网络的摘要生成方法
US10593321B2 (en) * 2017-12-15 2020-03-17 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for multi-lingual end-to-end speech recognition
US11170158B2 (en) * 2018-03-08 2021-11-09 Adobe Inc. Abstractive summarization of long documents using deep learning

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022145611A1 (ko) * 2020-12-28 2022-07-07 삼성전자주식회사 전자 장치 및 그 제어 방법
US11886817B2 (en) 2020-12-28 2024-01-30 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof

Also Published As

Publication number Publication date
CN111192576A (zh) 2020-05-22
US20200152180A1 (en) 2020-05-14
US11361757B2 (en) 2022-06-14
EP3654328A1 (en) 2020-05-20
JP2020086436A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
KR20200056001A (ko) 인공신경망에서의 디코딩 방법 및 그 장치
KR102424514B1 (ko) 언어 처리 방법 및 장치
KR102565275B1 (ko) 병렬 처리에 기초한 번역 방법 및 장치
KR102382499B1 (ko) 번역 방법, 타깃 정보 결정 방법, 관련 장치 및 저장 매체
KR102608469B1 (ko) 자연어 생성 방법 및 장치
CN110326002B (zh) 使用在线注意的序列处理
JP2016110082A (ja) 言語モデル学習方法及び装置、音声認識方法及び装置
KR20210043995A (ko) 모델 학습 방법 및 장치, 및 시퀀스 인식 방법
KR20180001889A (ko) 언어 처리 방법 및 장치
US11694677B2 (en) Decoding method and apparatus in artificial neural network for speech recognition
KR20190114938A (ko) 다국어 커뮤니케이션을 수행하기 위한 장치 및 방법
KR20200075615A (ko) 기계 번역 방법 및 장치
US11803618B2 (en) N-best softmax smoothing for minimum bayes risk training of attention based sequence-to-sequence models
KR20200052453A (ko) 딥러닝 모델 학습 장치 및 방법
CN112837669B (zh) 语音合成方法、装置及服务器
KR20220130565A (ko) 키워드 검출 방법 및 장치
US20230237993A1 (en) Systems and Methods for Training Dual-Mode Machine-Learned Speech Recognition Models
JP2020042257A (ja) 音声認識方法及び装置
KR20210083986A (ko) 반지도 학습 기반 단어 단위 감정 임베딩과 lstm 모델을 이용한 대화 내에서 발화의 감정 분류 방법
KR20190136578A (ko) 음성 인식 방법 및 장치
CN118043885A (zh) 用于半监督语音识别的对比孪生网络
KR20210044559A (ko) 출력 토큰 결정 방법 및 장치
KR20190053028A (ko) 제약조건 영향력 제어 계층을 이용한 신경망 학습 기반의 신경망 기계 번역 장치 및 그 동작방법
JP2020057357A (ja) 神経網の動作方法と学習方法及びその神経網
KR102131641B1 (ko) 신경망 상의 문법 변형을 이용한 가짜뉴스 탐색 방법, 이를 수행하기 위한 기록매체 및 장치

Legal Events

Date Code Title Description
A201 Request for examination