KR20230017286A - 데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성 - Google Patents

데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성 Download PDF

Info

Publication number
KR20230017286A
KR20230017286A KR1020227045943A KR20227045943A KR20230017286A KR 20230017286 A KR20230017286 A KR 20230017286A KR 1020227045943 A KR1020227045943 A KR 1020227045943A KR 20227045943 A KR20227045943 A KR 20227045943A KR 20230017286 A KR20230017286 A KR 20230017286A
Authority
KR
South Korea
Prior art keywords
output
network
noise
iteration
input
Prior art date
Application number
KR1020227045943A
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 구글 엘엘씨
Publication of KR20230017286A publication Critical patent/KR20230017286A/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
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/0208Noise filtering
    • G10L21/0216Noise filtering characterised by the method used for estimating noise
    • 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/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

신경망을 사용하여 네트워크 입력을 조건으로 하는 출력을 생성하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 제공된다. 일 양상에서, 방법은, 네트워크 입력을 획득하는 단계; 현재 네트워크 출력을 초기화하는 단계; 복수의 이터레이션들 각각에서 상기 현재 네트워크 출력을 업데이트함으로써 최종 네트워크 출력을 생성하는 단계, 각각의 이터레이션은 각각의 잡음 레벨에 대응하고, 상기 업데이트는 각각의 이터레이션에서: 잡음 출력을 생성하기 위해 모델 입력을 프로세싱하도록 구성된 잡음 추정 신경망을 사용하여 (i) 현재 네트워크 출력 및 (ii) 네트워크 입력을 포함하는 이터레이션에 대한 모델 입력을 프로세싱하는 단계, 상기 잡음 출력은 현재 네트워크 출력의 각 값에 대한 각각의 잡음 추정을 포함하고; 그리고 잡음 추정 및 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력을 업데이트하는 단계를 포함한다.

Description

데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성
관련 출원에 대한 상호 참조
본 출원은 2020년 9월 2일에 출원된 미국 출원 번호 63/073,867에 대한 우선권을 주장하며, 이것의 개시 내용은 본 명세서에 참조로 포함된다.
본 발명은 머신 학습 모델을 사용하여 네트워크 입력들에 조건화된 출력들을 생성하는 것에 관한 것이다.
머신 러닝 모델은 입력을 수신하고 수신된 입력에 기초하여 예를 들어 예측된 출력과 같은 출력을 생성한다. 일부 머신 러닝 모델은 파라메트릭 모델이며 수신된 입력과 모델의 파라미터 값을 기반으로 출력을 생성한다.
일부 머신 러닝 모델은 수신된 입력에 대한 출력을 생성하기 위해 여러 계층의 모델을 사용하는 심층(deep) 모델이다. 예를 들어, 심층 신경망은 출력 계층과 출력을 생성하기 위해 수신된 입력에 각각 비선형 변환을 적용하는 하나 이상의 은닉 계층를 포함하는 심층 러닝 학습 모델이다.
본 명세서는 네트워크 입력에 조건화되는 네트워크 출력을 생성하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템을 설명한다.
본 발명의 제 1 양상에 따르면, 네트워크 입력에 대해 조건화된 복수의 출력들을 포함하는 최종 네트워크 출력을 생성하는 방법에 제공되며, 상기 방법은, 네트워크 입력을 획득하는 단계; 현재 네트워크 출력을 초기화하는 단계; 복수의 이터레이션들 각각에서 상기 현재 네트워크 출력을 업데이트함으로써 최종 네트워크 출력을 생성하는 단계, 각각의 이터레이션은 각각의 잡음 레벨에 대응하고, 상기 업데이트는 각각의 이터레이션에서: 잡음 출력을 생성하기 위해 모델 입력을 프로세싱하도록 구성된 잡음 추정 신경망을 사용하여 (i) 현재 네트워크 출력 및 (ii) 네트워크 입력을 포함하는 이터레이션에 대한 모델 입력을 프로세싱하는 단계, 상기 잡음 출력은 현재 네트워크 출력의 각 값에 대한 각각의 잡음 추정을 포함하고; 그리고 잡음 추정 및 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력을 업데이트하는 단계를 포함한다.
일부 구현예에서, 상기 네트워크 입력은 오디오 세그먼트의 스펙트로그램(spectrogram)이고, 상기 최종 네트워크 출력은 오디오 세그먼트에 대한 파형(waveform)이다.
일부 구현예에서, 상기 오디오 세그먼트는 스피치 세그먼트이다.
일부 구현예에서, 상기 스펙트로그램은 텍스트-스피치(text-to-speech) 모델에 의해, 텍스트 세그먼트 또는 텍스트 세그먼트의 언어적 피처들로부터 생성된다.
일부 구현예에서, 상기 스펙트로그램은 멜 스펙트로그램(mel spectrogram) 또는 로그 멜 스펙트로그램(log mel spectrogram)이다.
일부 구현예에서, 상기 잡음 추정 및 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력을 업데이트하는 단계는, 적어도 잡음 추정 및 이터레이션에 대응하는 잡음 레벨로부터 이터레이션에 대한 업데이트를 생성하는 단계; 및 초기 업데이트된 네트워크 출력을 생성하기 위해 현재 네트워크 출력으로부터 상기 업데이트를 감산하는 단계를 포함한다.
일부 구현예에서, 상기 현재 네트워크 출력을 업데이트하는 단계는, 수정된 초기 업데이트된 네트워크 출력을 생성하기 위해 이터레이션에 대한 잡음 레벨에 기초하여 초기 업데이트된 네트워크 출력을 수정하는 단계를 더 포함한다.
일부 구현예에서, 최종 이터레이션에 대하여, 상기 수정된 초기 업데이트된 네트워크 출력은 최종 이터레이션 이후의 업데이트된 네트워크 출력이고, 그리고 상기 최종 이터레이션 이전의 각각의 이터레이션에 대하여, 상기 최종 이터레이션 이후의 업데이트된 네트워크 출력은 수정된 초기 업데이트된 네트워크 출력에 잡음를 추가함으로써 생성된다.
일부 구현예에서, 상기 현재 네트워크 출력을 초기화하는 단계는, 대응 잡음 분포로부터 현재 네트워크 출력에 대한 복수의 초기 값들 각각을 샘플링하는 단계를 포함한다.
일부 구현예에서, 각 이터레이션에 대한 모델 입력은 각 이터레이션마다 다른 이터레이션 특정 데이터를 포함한다.
일부 구현예에서, 각 이터레이션에 대한 모델 입력은 이터레이션에 대응하는 잡음 레벨을 포함한다.
일부 구현예에서, 각 이터레이션에 대한 모델 입력은 복수의 이터레이션들 중 상기 이터레이션 및 상기 이터레이션 이후의 임의의 이터레이션에 대응하는 잡음 레벨들로부터 생성된 이터레이션에 대한 총 잡음 레벨을 포함한다.
일부 구현예에서, 상기 잡음 추정 신경망은, 복수의 잡음 생성 신경망 계층들을 포함하고 그리고 네트워크 입력을 잡음 출력에 매핑하기 위해 상기 네트워크 입력을 프로세싱하도록 구성된 잡음 생성 신경망; 및 현재 네트워크 출력의 대안적인 표현을 생성하기 위해 상기 현재 네트워크 출력을 프로세싱하도록 구성된 복수의 네트워크 출력 프로세싱 신경망 계층들을 포함하는 네트워크 출력 프로세싱 신경망을 포함하고, 적어도 하나의 잡음 생성 신경망 계층들은 (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력, (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, 및 (iii) 이터레이션에 대한 이터레이션 특정 데이터로부터 도출된 입력을 수신한다.
일부 구현예에서, 상기 최종 네트워크 출력은 상기 네트워크 입력보다 더 높은 차원을 갖고, 상기 대안적인 표현은 상기 네트워크 입력과 동일한 차원을 갖는다.
일부 구현예에서, 상기 잡음 추정 신경망은 적어도 하나의 잡음 생성 신경망 계층들 각각에 대응하는 각각의 FiLM (Feature-wise Linear Modulation) 모듈을 포함하고, 소정의 잡음 생성 신경망 계층에 대응하는 상기 FiLM 모듈은 잡음 생성 신경망 계층에 대한 입력을 생성하기 위해 (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력, (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, (iii) 이터레이션에 대한 이터레이션 특정 데이터를 프로세싱하도록 구성된다.
일부 구현예에서, 상기 소정 잡음 생성 신경망 계층에 대응하는 FiLM 모듈은, (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, 및 (iii) 이터레이션에 대한 이터레이션 특정 데이터로부터 스케일 벡터 및 바이어스 벡터를 생성하고; (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력에 아핀 변환을 적용함으로써 상기 소정 잡음 생성 신경망 계층에 대한 입력을 생성하도록 구성된다.
일부 구현예에서, 적어도 하나의 잡음 생성 신경망 계층들은 비선형 활성화 함수를 활성화 함수 계층에 대한 입력에 적용하는 활성화 함수 계층을 포함한다.
일부 구현예에서, 활성화 함수 계층에 대응하는 잡음 생성 신경망 계층들 중 다른 하나는 잔차 연결 계층(residual connection layer) 또는 콘볼루션 계층이다.
일부 구현예에서, 잡음 추정 신경망을 트레이닝하는 방법이 제공되며, 상기 방법은, 트레이닝 네트워크 입력 및 대응하는 트레이닝 네트워크 출력을 획득하는 단계; 복수의 모든 이터레이션들에 대한 이터레이션 특정 데이터를 포함하는 세트로부터 이터레이션 특정 데이터를 선택하는 단계; 트레이닝 네트워크 출력의 각각의 값에 대한 각각의 잡음 값을 포함하는 잡음성 출력을 샘플링하는 단계; 잡음성 출력 및 대응하는 트레이닝 네트워크 출력으로부터 수정된 트레이닝 네트워크 출력을 생성하는 단계; 잡음 추정 신경망을 이용하여 트레이닝 잡음 출력을 생성하기 위해 (i) 수정된 트레이닝 네트워크 출력, (ii) 트레이닝 네트워크 입력, 및 (iii) 이터레이션 특정 데이터를 포함하는 모델 입력을 프로세싱하는 단계; 및 샘플링된 잡음성 출력과 트레이닝 잡음 출력 사이의 에러를 측정하는 목적 함수의 그래디언트로부터 잡음 추정 신경망의 네트워크 파라미터들에 대한 업데이트를 결정하는 단계를 포함하는 단계들을 반복적으로 수행한다.
일부 구현예에서, 상기 목적 함수는 샘플링된 잡음성 출력과 트레이닝 잡음 출력 사이의 거리를 측정한다.
일부 구현예에서, 상기 거리는 L1 거리이다.
본 명세서에 기술된 주제의 특정 실시예들은 다음의 장점들 중 하나 이상을 실현하도록 구현될 수 있다.
설명된 기술은 비자동회귀 방식으로 네트워크 입력들에 조건화된 네트워크 출력을 생성한다. 일반적으로, 자동 회귀 모델은 고품질 네트워크 출력들을 생성하는 것으로 나타났지만 많은 수의 이터레이션들을 필요로 하므로, 결과적으로 높은 레이턴시와 많은 리소스 소비(예컨대, 메모리 및 프로세싱 전력)를 유발한다. 이는 자동 회귀 모델은, 네트워크 출력 내의 주어진 각각의 출력을 하나씩 생성하고, 그 각각은 네트워크 출력 내에서 상기 주어진 출력에 선행하는 모든 출력을 조건으로 하기 때문이다.
다른 한편으로, 설명된 기술은 초기 네트워크 출력, 예를 들어 잡음 분포로부터 샘플링된 값들을 포함하는 잡음성 출력에서 시작하고, 그리고 네트워크 입력에 대해 조건화된 그래디언트 기반 샘플러를 통해 네트워크 출력을 이터레이션적으로 정제한다. 즉, 이터레이션 잡음 제거 프로세스가 사용될 수 있다. 결과적으로, 이러한 접근 방식은 자동 회귀가 아니며 그리고 추론 동안 일정한 개수의 생성 단계들만을 필요로 한다. 예를 들어, 스펙트로그램에 대해 조건화된 오디오 합성의 경우, 서술된 기술은 레이턴시를 크게 감소시키면서도 매우 적은 계산 리소스를 이용하여, 매우 적은 이터레이션들(예를 들어, 6개 이하의 이터레이션)에서 고충실도의 오디오 샘플을 생성할 수 있는데, 이는 현존하는 자동 회귀 모델에 의해 생성된 것과 비견되거나 또는 심지어 이보다 우수한 것이다. 또한, 설명된 기술은 기존의 비자동회귀 모델에 의해 생성된 것보다 더 높은 품질(예: 더 높은 충실도)을 갖는 샘플들을 생성할 수 있다.
본 명세서의 주제의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 아래의 설명에서 설명된다. 본 발명의 다른 특징, 양태 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 조건부 출력 생성 시스템의 블록도이다.
도 2는 네트워크 입력들에 대해 조건화된 출력들을 생성하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 예시적인 잡음 추정 신경망의 블록도이다.
도 4는 예시적인 네트워크 출력 프로세싱 신경망 블록의 블록도이다.
도 5는 예시적인 FiLM (Feature-wise Linear Modulation) 모듈의 블록도이다.
도 6은 예시적인 잡음 생성 신경망 블록의 블록도이다.
도 7은 잡음 추정 신경망을 트레이닝하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
도 1은 예시적인 조건부 출력 생성 시스템(100)을 도시한다. 조건부 출력 생성 시스템(100)은 아래에서 설명되는 시스템, 컴포넌트 및 기술이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 일례이다.
조건부 출력 생성 시스템(100)은 네트워크 입력(102)을 조건으로 하는 최종 네트워크 출력(104)을 생성한다.
본 발명의 조건부 출력 생성 시스템(100)은 광범위하게 적용가능하며 하나의 특정 구현예로 제한되지 않는다. 그러나 설명을 위해 소수의 예시적인 구현예들이 아래에 설명되어 있다.
예를 들어, 시스템은 스펙트로그램, 예컨대, 멜-스펙트로그램 또는 스펙트로그램에 대해 조건화된 오디오의 파형을 생성하도록 구성될 수 있으며, 여기서 주파수들은 오디오의 상이한 스케일이다. 이에 대한 특정 예로서, 스펙트로그램은 스피치 세그먼트의 스펙트로그램일 수 있고 파형은 스피치 세그먼트에 대한 파형일 수 있다. 예를 들어, 스펙트로그램은 텍스트 또는 텍스트의 언어적 피처를 발언되고 있는 텍스트의 발화에 대한 스펙트로그램으로 변환하는 텍스트-스피치 머신 러닝 모델의 출력일 수 있다.
다른 예로서, 시스템은 네트워크 출력을 생성하기 위해 네트워크 입력에 대한 이미지 프로세싱 태스크를 수행하도록 구성될 수 있다. 예를 들어, 네트워크 입력은 생성될 이미지 객체의 클래스를 지정하는 객체의 클래스(예를 들어, 원-핫 벡터로 표현됨)일 수 있고, 네트워크 출력은 객체의 클래스의 생성된 이미지(예를 들어, 이미지의 각 픽셀에 대한 강도 값 또는 RGB 값 세트로 표현됨)일 수 있다.
다른 특정 예로서, 태스크는 조건부 이미지 생성일 수 있고 그리고 네트워크 입력은 텍스트 시퀀스일 수 있고 네트워크 출력은 텍스트를 반영하는 이미지일 수 있다. 예를 들어 텍스트 시퀀스는 이미지 내의 장면을 설명하는 문장 또는 형용사 시퀀스를 포함할 수 있다.
다른 특정 예에서, 태스크는 이미지 임베딩 생성일 수 있고, 네트워크 입력은 이미지일 수 있고 네트워크 출력은 이미지를 특징짓는 입력 이미지의 숫자 임베딩일 수 있다.
또 다른 특정 예로서, 태스크는 객체 검출일 수 있고, 네트워크 입력은 이미지일 수 있고, 네트워크 출력은 특정 유형들의 객체들이 묘사되는 입력 이미지 내의 위치들을 식별할 수 있는바, 예를 들어 객체들의 묘사들을 포함하는 입력 이미지 내의 경계 박스들을 지정할 수 있다.
또 다른 특정 예로서, 태스크는 이미지 세그먼트일 수 있고, 네트워크 입력은 이미지일 수 있고, 네트워크 출력은 입력 이미지의 복수의 픽셀들 각각을 카테고리 세트의 카테고리에 할당하는 세그먼트 출력일 수 있는바, 예를 들어, 픽셀이 카테고리에 속할 가능성을 나타내는 카테고리들 각각에 대한 점수를 각각의 픽셀에 할당할 수 있다.
보다 일반적으로, 태스크는 네트워크 입력에 대해 조건화된 연속 데이터를 출력하는 모든 태스크가 될 수 있다.
네트워크 입력(102)을 조건으로 하는 최종 네트워크 출력(104)을 생성하기 위해, 조건부 출력 생성 시스템(100)은 네트워크 입력(102)을 획득하고 현재 네트워크 출력(114)을 초기화한다. 예를 들어, 시스템(100)은 대응 잡음 분포(예를 들어, N(0,I)와 같은 가우시안 분포, 여기서 I는 항등 행렬임)로부터 현재 네트워크 출력의 각 값을 샘플링함으로써, 현재 네트워크 출력(114)을 초기화할 수 있다(즉, 현재 네트워크 출력(114)의 제1 인스턴스를 생성할 수 있다). 즉, 초기 현재 네트워크 출력(114)은 최종 네트워크 출력(104)과 동일한 수의 값들을 포함하지만, 각각의 값은 대응하는 잡음 분포로부터 샘플링된다.
다음으로, 시스템(100)은 다수의 이터레이션들 각각에서 현재 네트워크 출력(114)을 업데이트함으로써 최종 네트워크 출력(104)을 생성한다. 다시 말해서, 최종 네트워크 출력(104)은 다수의 이터레이션들 중 마지막 이터레이션 이후의 현재 네트워크 출력(114)이다.
일부 경우, 이터레이션 횟수는 고정되어 있다.
다른 경우, 시스템(100) 또는 다른 시스템은 최종 네트워크 출력의 생성을 위한 레이턴시 요건에 기초하여 이터레이션 횟수를 조정할 수 있다. 즉, 시스템(100)은 레이턴시 요건을 만족하면서 최종 네트워크 출력(104)이 생성될 수 있도록 이터레이션 횟수를 선택할 수 있다.
또 다른 경우, 시스템(100) 또는 다른 시스템은 최종 네트워크 출력(104)의 생성을 위한 계산 리소스 소비 요건에 기초하여 이터레이션 횟수를 조정할 수 있다. 즉, 시스템(100) 또는 다른 시스템은 이러한 요건을 만족시키면서 최종 네트워크 출력(104)이 생성될 수 있도록 이터레이션 횟수를 선택할 수 있다. 예를 들어, 이러한 요건은 최종 네트워크 출력을 생성시키는 것의 일부로서 수행될 플로팅 연산들(FLOPS)의 최대 개수일 수 있다.
각각의 이터레이션에서, 시스템은 잡음 추정 신경망(300)을 이용하여 (i) 현재 네트워크 출력(114), (ii) 네트워크 입력(112), 및 선택적으로는 (iii) 이터레이션에 대한 이터레이션 특정 데이터를 포함하는 이터레이션에 대한 모델 입력을 프로세싱한다. 이터레이션 특정 데이터는 일반적으로 잡음 레벨(106)(예를 들어, 각각의 잡음 레벨이 특정 이터레이션에 대응함)로부터 도출된다. 시스템은 업데이트의 각 이터레이션에 대한 스케일로서 잡음 레벨(106)을 사용하여 현재 네트워크 출력을 업데이트할 수 있다. 즉, 잡음 레벨들(106)의 각각의 잡음 레벨은 특정 이터레이션에 대응할 수 있고, 이터레이션에 대한 각각의 잡음 레벨은 이터레이션에서 현재 네트워크 출력(114)에 대한 업데이트의 스케일을 안내(guide)할 수 있다.
잡음 추정 신경망(300)은 파라미터들("네트워크 파라미터들")를 갖는 신경망이며, 이러한 신경망은 네트워크 파라미터들의 현재 값에 따라 모델 입력을 프로세싱하여 현재 네트워크 출력(114)의 각 값에 대한 각각의 잡음 추정치를 포함하는 잡음 출력(110)을 생성하도록 구성된다. 잡음 추정 신경망의 세부사항은 도 3과 관련하여 다음에 더 자세히 논의된다.
일반적으로, 현재 네트워크 출력의 소정 값에 대한 잡음 추정치는 상기 소정 값을 생성하기 위해 네트워크 입력에 대한 실제 네트워크 출력의 대응 실제 값에 합산된 잡음의 추정치이다. 즉, 잡음 추정치는 현재 이터레이션에 대응하는 잡음 레벨이 주어지면, 현재 네트워크 출력에서 상기 소정 값을 생성하기 위해 실제 값(알려진 경우)이 어떻게 수정될 필요가 있는지를 정의한다. 달리 말하면, 현재 이터레이션에 대한 잡음 레벨에 따라 실제 값에 잡음 추정치를 적용함으로써, 상기 소정 값이 생성될 수 있다.
이러한 잡음 추정치는 데이터 밀도의 그래디언트(gradient) 추정치로 해석될 수 있으므로, 생성 프로세스는 데이터 밀도 추정을 통해 네트워크 출력을 반복적으로 생성하는 프로세스로 보여질 수 있다.
다음으로, 시스템(100)은 업데이트 엔진(112)을 사용하여 잡음 추정치의 방향으로 현재 네트워크 출력(114)을 업데이트한다.
특히, 업데이트 엔진(112)은 잡음 추정치 및 이터레이션에 대한 대응 잡음 레벨을 사용하여 현재 네트워크 출력(114)을 업데이트한다. 즉, 업데이트 엔진(112)은 잡음 출력(110)의 대응하는 잡음 추정치 및 이터레이션에서의 대응하는 잡음 레벨을 사용하여 현재 네트워크 출력(114)의 각각의 값을 업데이트하는데, 이는 도 2와 관련하여 더 상세히 논의된다.
최종 이터레이션 후, 조건부(conditional) 출력 생성 시스템(100)은 업데이트된 네트워크 출력(114)을 최종 네트워크 출력(104)으로서 출력한다. 예를 들어, 최종 네트워크 출력(104)이 오디오 파형을 나타내는 구현예에서, 시스템은 스피커를 이용하여 오디오를 재생할 수 있으며 또는 재생을 위해 오디오를 전송하거나 기타 등등을 수행할 수 있다. 최종 네트워크 출력(104)이 이미지를 나타내는 다른 구현예에서, 시스템은 사용자 디스플레이 상에 이미지를 보여주거나, 디스플레이를 위한 이미지를 전송하는 것, 기타 등등을 수행할 수 있다. 일부 구현에서, 시스템(100)은 최종 네트워크 출력(104)을 데이터 저장소에 저장하거나 또는 원격으로 저장되도록 최종 네트워크 출력(104)을 전송할 수 있다.
최종 네트워크 출력을 생성하기 위해 시스템(100)이 잡음 추정 신경망(300)을 사용하기 이전에, 시스템(100) 또는 다른 시스템은 트레이닝 데이터를 사용하여 잡음 추정 신경망(300)을 트레이닝시킨다. 범위 영향 신경망을 포함하는 구현예에서, 시스템은 또한 트레이닝 데이터를 사용하여 범위 영향 신경망도 트레이닝시킬 수 있다. 트레이닝은 이후에 도 7을 참조하여 설명될 것이다.
도 2는 네트워크 입력들을 조건으로 하는(conditioned) 출력들을 생성하기 위한 예시적인 프로세스(200)의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치들에 배치된 하나 이상의 컴퓨터 시스템들에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 조건부(conditional) 출력 생성 시스템, 예컨대, 도 1의 조건부 출력 생성 시스템(100)이 프로세스(200)를 수행할 수 있다.
시스템은 최종 네트워크 출력을 조건화하기 위한 네트워크 입력(202)를 획득한다. 예를 들어, 네트워크 출력이 오디오 파형인 경우, 네트워크 입력은 스펙트로그램, 멜-스펙트로그램, 또는 오디오 파형에 의해 반영된 텍스트 본문의 언어적 피처들이 될 수 있다.
시스템은 현재 네트워크 출력을 초기화한다(204). 여러 값들을 포함하는 최종 네트워크 출력의 경우, 시스템은 최종 네트워크 출력과 동일한 개수의 값들을 갖는 초기 현재 네트워크 출력의 각 값을 잡음 분포로부터 샘플링할 수 있다. 예를 들어, 시스템은 yN ~ N(0, I)로 표시되는 잡음 분포(예컨대, 가우시안 잡음 분포)를 사용하여 현재 네트워크 출력을 초기화할 수 있으며, 여기서 I 는 항등 행렬이고 yN의 N 은 의도된 이터레이션 횟수를 나타낸다. 시스템은 이터레이션 N에서 이터레이션 1까지 N개의 이터레이션 동안 초기 현재 네트워크 출력을 내림차순으로 업데이트할 수 있다.
그런 다음 시스템은 다수의 이터레이션들 각각에서 현재 네트워크 출력을 업데이트한다. 일반적으로, 각 이터레이션의 현재 네트워크 출력은 추가 잡음이 있는 최종 네트워크 출력으로 해석될 수 있다. 즉, 현재 네트워크 출력은 최종 네트워크 출력의 잡음성(noisy) 버전이다. 예를 들어, 초기 현재 네트워크 출력 yN 의 경우(여기서, N은 이터레이션 횟수를 나타냄), 시스템은 이터레이션에 대응하는 잡음에 대한 추정치를 제거함으로써, N에서 1까지의 각 이터레이션에서 현재 네트워크 출력을 업데이트할 수 있다. 즉, 시스템은 잡음에 대한 추정치를 결정하고 그리고 추정치에 따라 현재 네트워크 출력을 업데이트함으로써 각 이터레이션에서 현재 네트워크 출력을 정제(refine)할 수 있다. 시스템은 최종 네트워크 출력 y0 를 출력할 때까지 이터레이션들에 대해 내림차순을 사용할 수 있다.
여러 이터레이션들 각각에서, 시스템은 잡음 추정 신경망을 이용하여 (1) 현재 네트워크 출력, (2) 네트워크 입력, 및 선택적으로는 (3) 이터레이션에 대한 이터레이션 특정 데이터를 포함하는 모델 입력을 프로세싱하여 이터레이션에 대한 잡음 출력을 생성한다(206). 이터레이션-특정 데이터는 일반적으로 이터레이션들에 대한 잡음 레벨들에서 파생되며, 여기서 각 잡음 레벨은 특정 이터레이션에 대응한다. 잡음 출력은 현재 네트워크 출력의 각 값에 대한 잡음 추정치를 포함할 수 있다. 예를 들어, 현재 네트워크 출력의 특정 값에 대한 각각의 잡음 추정치는, 상기 특정 값을 생성하기 위해 네트워크 입력에 대한 실제 네트워크 출력의 해당 실제 값에 추가된 잡음의 추정치를 나타낼 수 있다. 즉, 특정 값에 대한 잡음 추정치는 대응 잡음 레벨이 주어지면, 상기 특정 값을 생성하기 위해 실제 값(알려진 경우)이 어떻게 수정될 필요가 있는지를 나타낸다.
여러 이터레이션들 각각에서, 시스템은 현재 이터레이션에 대한 잡음 출력 및 현재 이터레이션에 대응하는 잡음 레벨을 사용하여, 현재 이터레이션과 같은 현재 네트워크 출력을 업데이트한다(208). 시스템은 잡음 출력의 해당 잡음 추정치와 현재 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력의 각 값을 업데이트할 수 있다. 시스템은 이터레이션에 대한 잡음 추정치 및 잡음 레벨로부터 이터레이션에 대한 업데이트를 생성할 수 있고, 현재 네트워크 출력에서 업데이트를 감산하여 초기 업데이트된 네트워크 출력을 생성할 수 있다. 그런 다음 시스템은 이터레이션에 대한 잡음 레벨에 기초하여 초기 업데이트된 네트워크 출력을 수정하여, 다음과 같은 수정된 초기 업데이트된 네트워크 출력을 다음과 같이 생성할 수 있다.
Figure pct00001
(1)
여기서, n은 이터레이션들을 인덱싱하고, yn 은 이터레이션 n에서 현재 네트워크 출력을 나타내며, yn-1 은 수정된 초기 업데이트된 네트워크 출력을 나타내고, x는 네트워크 입력을 나타내며, an 은 이터레이션 n에 대한 잡음 레벨을 나타내고,
Figure pct00002
은 이터레이션 n 에 대한 총 잡음 레벨을 나타내고(예를 들어, 현재 이터레이션 및 현재 이터레이션 이후의 임의의 이터레이션에서의 잡음 레벨들로부터 생성됨),
Figure pct00003
는 파라미터 θ를 구비한 잡음 추정 신경망에 의해 생성된 잡음 출력을 나타낸다. 잡음 레벨 an 및 총 잡음 레벨
Figure pct00004
은 잡음 스케줄
Figure pct00005
로부터 결정될 수 있다(예를 들어, 최소값에서 최대값까지 선형 범위의 선형 잡음 스케줄, 피보나치-기반 스케줄 또는 데이터-유도 기반 또는 휴리스틱 방법에서 생성된 커스텀 스케줄). 잡음 레벨
Figure pct00006
= 1 - βn 이고, 총 잡음 레벨
Figure pct00007
은 다음과 같이 균일한 분포에서 샘플링될 수 있다.
Figure pct00008
(2)
여기서, n 은 이터레이션들을 인덱싱하고,
Figure pct00009
이다. 수학식 (2)에서와 같은 샘플링
Figure pct00010
은, 시스템이 서로 다른 잡음 스케일들에 기초하여 업데이트들을 생성할 수 있게 한다. 각각의 이터레이션 n 에 대한 잡음 레벨 an 및 총 잡음 레벨
Figure pct00011
은 모델 입력의 일부로서 시스템에 의해서 미리결정되고 그리고 획득될 수 있다.
마지막 이터레이션의 경우, 수정된 초기 업데이트된 네트워크 출력은 마지막 이터레이션 이후의 업데이트된 네트워크 출력이며, 그리고 마지막 이터레이션 이전의 각각의 이터레이션의 경우, 수정된 초기 업데이트된 네트워크 출력에 잡음를 추가함으로써, 마지막 이터레이션 이후의 업데이트된 네트워크 출력이 생성된다. 즉, 이터레이션이 최종 이터레이션이 아니라면(즉, n > 1 이면), 시스템은 수정된 초기 업데이트된 네트워크 출력을 다음과 같이 추가로 업데이트한다.
Figure pct00012
(3)
여기서 n 은 이터레이션들을 인덱싱하고,
Figure pct00013
은 잡음 스케줄
Figure pct00014
또는 다른 방법(예컨대, 잡음 스케줄의 함수로서, 또는 경험적 실험을 사용하여 하이퍼-파라미터 튜닝을 통해 결정됨)으로부터 결정될 수 있으며,
Figure pct00015
이다. 다중 모달 분포를 모델링할 수 있도록
Figure pct00016
가 포함되어 있다.
시스템은 종료 기준이 충족되었는지 여부를 결정한다(210). 예를 들어, 종료 기준은 특정 횟수의 이터레이션들을 수행했는지를 포함할 수 있다(예를 들어, 최소 성능 메트릭, 최대 레이턴시 요건 또는 최대 FLOPS 수와 같은 최대 계산 리소스 요구 사항을 충족하도록 결정됨). 특정 횟수의 이터레이션들이 수행되지 않은 경우, 시스템은 단계(206)에서 다시 시작하여 현재 네트워크 출력에 대한 또 다른 업데이트를 수행할 수 있다.
종료 기준이 충족되었다고 시스템이 결정하면, 시스템은 최종 네트워크 출력(212)을 출력하며, 이는 최종 이터레이션 이후의 업데이트된 네트워크 출력이다.
프로세스(200)는 네트워크 입력들에 대해 조건화된(conditioned) 비자동회귀적 방식(non-autoregressive manner)으로 네트워크 출력들을 생성하는데 사용될 수 있다. 일반적으로, 자동-회귀 모델은 고품질의 네트워크 출력들을 생성하는 것으로 알려져 왔지만 많은 수의 이터레이션들을 필요로 하며, 결과적으로 높은 레이턴시 및 리소스(예컨대, 메모리 및 프로세싱 파워) 소비가 발생한다. 이는, 자동-회귀 모델들은 네트워크 출력 내의 각각의 소정 출력을 한번에 하나씩 생성하고, 그 각각이 네트워크 출력 내의 상기 소정 출력에 선행하는 모든 출력들을 조건으로 하기 때문이다. 다른 한편으로, 프로세스(200)는 초기 네트워크 출력, 예를 들어, 잡음 분포로부터 샘플링된 값들을 포함하는 잡음성 출력에서 시작하고, 그리고 네트워크 입력에 대해 조건화된 그래디언트-기반 샘플러를 통해 네트워크 출력을 반복적으로 정제한다. 결과적으로, 이러한 접근 방식은 비-자동회귀이며 그리고 추론 동안 일정한 개수의 생성 단계들만을 필요로 한다. 예를 들어, 스펙트로그램(spectrogram)에 대해 조건화된 오디오 합성의 경우, 설명된 기술은 매우 적은 이터레이션들(예를 들어, 6개 이하의 이터레이션)에서 고충실도(high fidelity)의 오디오 샘플들을 생성할 수 있는바, 이는 훨씬 더 적은 계산 리소스를 사용하면서도 크게 감소된 레이턴시와 함께, 최신 자동 회귀 모델에 의해 생성된 것들과 비견되거나 심지어 이를 초과할 수 있다.
도 3은 잡음 추정 네트워크(300)의 예시적인 아키텍처를 도시한다.
예시적인 잡음 추정 네트워크(300)는 콘볼루션 신경망 계층들, 잡음 생성 신경망 블록들(예를 들어, 각각의 신경망 블록은 여려 신경망 계층들을 포함함), 피처-와이즈 선형 변조(Feature-wise Linear Modulation: FiLM) 모듈 신경망 블록 및 네트워크 출력 프로세싱 신경망 블록을 포함하는 다양한 유형들의 신경망 계층들 및 신경망 블록들을 포함한다.
잡음 추정 네트워크(300)는 (1) 현재 네트워크 출력(114), (2) 네트워크 입력(102), 및 (3) 현재 이터레이션에 대응하는 총 잡음 레벨(306)을 포함하는 이터레이션-특정 데이터를 포함하는 모델 입력을 프로세싱하여, 잡음 출력(110)을 생성한다. 네트워크 출력(114)은 네트워크 입력(102)보다 더 높은 차원을 갖고, 잡음 출력(110)은 현재 네트워크 출력(114)과 동일한 차원을 갖는다. 예를 들어, 현재 네트워크 출력이 24kHz에서 오디오 파형을 나타내는 경우, 네트워크 입력은 오디오 파형에 대응하는 80Hz 멜-스펙트로그램 신호를 포함할 수 있다(예를 들어, 추론 동안 다른 시스템에 의해 예측됨).
잡음 추정 네트워크(300)는 현재 네트워크 출력(114)의 각각의 대체 표현들을 생성하기 위해 현재 네트워크 출력(114)을 프로세싱하기 위한 다수의 네트워크 출력 프로세싱 블록들을 포함한다.
잡음 추정 네트워크(300)는 또한 현재 네트워크 출력의 대체 표현을 생성하기 위해 현재 네트워크 출력(114)을 프로세싱하는 네트워크 출력 프로세싱 블록(400)을 포함하고, 여기서 대체 표현은 현재 네트워크 출력보다 더 작은 차원을 갖는다.
잡음 추정 네트워크(300)는 이전의 대체 표현 보다 더 적은 차원을 갖는 또 다른 대체 표현을 생성하기 위해, 이전의 네트워크 출력 프로세싱 블록에 의해 생성된 대체 표현을 프로세싱하는 추가적인 네트워크 출력 프로세싱 블록(예를 들어, 네트워크 출력 프로세싱 블록 318, 316, 314, 312)을 더 포함한다(예를 들어, 네트워크(318)는 블록(400)으로부터의 대체 표현을 프로세싱하여 블록(400)의 출력보다 더 작은 차원을 갖는 대체 표현을 생성하고, 블록(316)은 블록(318)으로부터의 대체 표현을 프로세싱하여 블록(318)의 출력보다 더 작은 차원을 갖는 대체 표현을 생성하고, 기타 등등). 최종 네트워크 출력 프로세싱 블록(예를 들어, 312)으로부터 생성된 현재 네트워크 출력의 대체 표현은 네트워크 입력(102)과 동일한 차원을 갖는다.
예를 들어, 24kHz의 오디오 파형을 포함하는 현재 네트워크 출력 및 80Hz의 멜-스펙트로그램을 포함하는 네트워크 입력의 경우, 네트워크 출력 프로세싱 블록들은 최종 계층(312)에 의해 생성된 대체 표현이 80Hz가 될 때까지(즉, 멜-스펙트로그램과 일치하도록 300 이라는 팩터 만큼 감소됨), 상기 차원을 2, 2, 3, 5, 및 5 라는 팩터에 의해서 "다운샘플링"(즉, 차원을 감소시킴)할 수 있다(예를 들어, 네트워크 출력 프로세싱 블록들 400, 318, 316, 314 및 312 각각에 의해서). 예시적인 네트워크 출력 프로세싱 블록의 이러한 아키텍처는 도 4와 관련하여 더 상세히 논의된다.
잡음 추정 블록(300)은 현재 이터레이션에 대응하는 이터레이션-특정 데이터(예를 들어, 총 잡음 레벨 306) 및 네트워크 출력 프로세싱 신경망 블록들로부터의 대체 표현들을 프로세싱하여, 잡음 생성 신경망 블록들에 대한 입력들을 생성하는 다수의 FiLM 모듈 신경망 블록들을 포함한다. 각각의 FiLM 모듈은 총 잡음 레벨(306) 및 각각의 네트워크 출력 프로세싱 블록으로부터의 대체 표현을 프로세싱하여, 각각의 잡음 생성 블록에 대한 입력을 생성한다(예를 들어, FiLM 모듈(500)은 네트워크 출력 프로세싱 블록(400)으로부터의 대체 표현을 프로세싱하여 잡음 생성 블록(600)에 대한 입력을 생성하고, FiLM 모듈(328)은 네트워크 출력 프로세싱 블록(318)으로부터의 대체 표현을 프로세싱하여 잡음 생성 블록(338)에 대한 입력을 생성하고, 기타 등등). 특히, 각각의 FiLM 모듈은 각각의 잡음 생성 블록에 대한 입력으로서 스케일 벡터 및 바이어스 벡터를 생성하며(예를 들어, 각각의 잡음 생성 블록 내의 아핀 변환 신경망 계층에 대한 입력으로서), 이는 도 5를 참조하여 더 자세히 논의된다.
잡음 추정 네트워크(300)는 네트워크 입력(102) 및 FiLM 모듈들로부터의 출력을 프로세싱하여, 잡음 출력(110)을 생성하는 다수의 잡음 생성 신경망 블록들을 포함한다. 잡음 추정 네트워크(300)는 네트워크 입력(102)을 프로세싱하여 제 1 잡음 생성 블록(332)에 대한 입력을 생성하는 콘볼루션 계층(302)을 포함할 수 있으며, 그리고 최종 잡음 생성 블록(600)으로부터의 출력을 프로세싱하여 잡음 출력(110)을 생성하는 콘볼루션 계층(304)을 포함할 수 있다. 각각의 잡음 생성 블록은 네트워크 입력(102)보다 더 높은 차원을 갖는 출력을 생성한다. 특히, 첫 번째 이후의 각각의 잡음 생성 블록은 이전의 잡음 생성 블록의 출력보다 더 높은 차원을 갖는 출력을 생성한다. 최종 잡음 생성 블록은 현재 네트워크 출력(114)과 동일한 차원을 갖는 출력을 생성한다.
잡음 추정 네트워크(300)는 잡음 생성 블록(332)을 포함하는바, 잡음 생성 블록(332)은 콘볼루션 계층(302)(즉, 네트워크 입력 102을 프로세싱하는 콘볼루션 계층)으로부터의 출력 및 FILM 모듈(322)로부터의 출력을 프로세싱하여, 잡음 생성 블록(334)에 대한 입력을 생성한다. 또한, 잡음 추정 네트워크(300)는 잡음 생성 블록(336, 338, 600)을 더 포함한다. 잡음 생성 블록들(334, 336, 338, 600) 각각은 이전의 잡음 생성 블록들 각각의 출력을 프로세싱하고(예를 들어, 블록 334는 블록 332로부터의 출력을 프로세싱하고, 블록 336는 블록 334로부터의 출력을 프로세싱하고, 기타 등등) 그리고 각각의 FiLM 모듈로부터의 출력을 프로세싱하여(예를 들어, 잡음 생성 블록(334)은 FILM 모듈(324)로부터의 출력을 프로세싱하고, 잡음 생성 블록(336)은 FILM 모듈(326)로부터의 출력을 프로세싱하는 등), 다음 신경망 블록에 대한 입력을 생성한다. 잡음 생성 블록(600)은 콘볼루션 계층(304)에 대한 입력을 생성하며, 콘볼루션 계층(304)은 이러한 입력을 프로세싱하여 잡음 출력(110)을 생성한다. 예시적인 잡음 생성 블록(예를 들어, 잡음 생성 블록 600)의 아키텍처는 도 6과 관련하여 더 상세히 논의된다.
마지막 잡음 생성 블록 이전의 각각의 잡음 생성 블록은 현재 네트워크 출력의 해당 대체 표현과 동일한 차원을 갖는 출력을 생성할 수 있다. 예를 들어, 잡음 생성 블록(332)은 네트워크 출력 프로세싱 블록(314)에 의해 생성된 대체 표현과 동일한 차원을 갖는 출력을 생성하고, 잡음 생성 블록(334)은 네트워크 출력 프로세싱 블록(316)의 출력과 동일한 차원을 갖는 출력을 생성하고, 기타 등등이 수행될 수 있다.
예를 들어, 현재 네트워크 출력이 24kHz의 오디오 파형을 포함하고 그리고 네트워크 입력이 80Hz의 멜-스펙트로그램을 포함하는 경우, 잡음 생성 블록들은 최종 잡음 생성 블록(예를 들어, 잡음 생성 블록 600)의 출력이 24 KHz가 될 때까지(즉, 현재 네트워트 출력 114과 일치하도록 300 이라는 팩터 만큼 증가됨), 상기 차원을 5, 5, 3, 2, 및 2 라는 팩터에 의해서 "업샘플링"(즉, 차원을 증가시킴)할 수 있다(예를 들어, 잡음 생성 블록들 332, 334, 336, 338,및 600 각각에 의해서).
도 4는 네트워크 출력 프로세싱 블록(400)의 예시적인 아키텍처를 도시한다.
네트워크 출력 프로세싱 블록(400)은 현재 네트워크 출력(114)을 프로세싱하여 현재 네트워크 출력(114)의 대체 표현(402)을 생성한다. 대체 표현은 현재 네트워크 출력 보다 더 작은 차원을 갖는다. 네트워크 출력 프로세싱 블록(400)은 하나 이상의 신경망 계층을 포함한다. 하나 이상의 신경망 계층은 다운샘플링 계층(예를 들어, 입력의 차원을 "다운샘플링"하거나 줄이기 위해), 비선형 활성화 함수를 갖는 활성화 계층(예를 들어, 누설형(leaky) ReLU 활성화 함수가 있는 완전-연결된 계층), 콘볼루션 계층 및 잔차(residual) 연결 계층을 포함하는 다양한 유형들의 신경망 계층들을 포함할 수 있다.
예를 들어, 다운샘플링 계층은 입력의 차원을 감소시키기 위해("다운샘플링") 필요한 스트라이드(stride)를 갖는 콘볼루션 계층일 수 있다. 특정 일례에서, 스트라이드 X는 X 라는 팩터만큼 입력의 차원을 줄이기 위해 사용될 수 있다(예를 들어, 스트라이드 2는 입력의 차원을 2 라는 팩터만큼 줄이기 위해 사용될 수 있으며, 스트라이드 5는 입력의 차원을 5 라는 팩터만큼 줄이기 위해 사용될 수 있다).
잔차 연결 계층(420)의 좌측 브랜치는 콘볼루션 계층(402) 및 다운샘플링 계층(404)을 포함한다. 콘볼루션 계층(402)은 현재 네트워크 출력(114)을 프로세싱하여 다운샘플링 계층(404)에 대한 입력을 생성할 수 있다. 다운샘플링 계층(404)은 콘볼루션 계층(402)의 출력을 프로세싱하여 잔차 연결 계층(420)에 대한 입력을 생성한다. 다운샘플링 계층(404)의 출력은 현재 네트워크 출력(114)과 비교하여 감소된 차원을 갖는다. 예를 들어, 콘볼루션 계층(402)은 스트라이드 1(즉, 차원을 유지하기 위해)을 갖는 사이즈 1x1의 필터들을 포함할 수 있으며 그리고 다운샘플링 계층(404)은 입력의 차원을 2라는 팩터로 다운샘플링하기 위해 스트라이드가 2인 사이즈 2x1의 필터를 포함할 수 있다.
잔차 연결 계층(420)의 우측 브랜치는 다운샘플링 계층(406) 및 콘볼루션 계층이 뒤따르는 활성화 계층의 3개의 블록들을 포함한다(예를 들어, 활성화 계층(408), 콘볼루션 계층(410), 활성화 계층(412), 콘볼루션 계층(414), 활성화 계층(416) 및 콘볼루션 층(418)). 다운샘플링 계층(406)은 현재 네트워크 출력(114)을 프로세싱하여 활성화 계층 및 콘볼루션 계층의 후속 3개 블록들에 대한 입력을 생성한다. 다운샘플링 계층(406)의 출력은 현재 네트워크 출력(114)에 비하여 더 작은 차원을 갖는다. 후속 3개의 블록들은 다운샘플링 계층(406)의 출력을 프로세싱하여 잔차 연결 계층(420)에 대한 입력을 생성한다. 예를 들어, 다운샘플링 계층(406)은 입력의 차원을 2라는 팩터만큼 감소시키기 위해 스트라이드 2를 갖는 사이즈 2x1의 필터들을 포함할 수 있다(예를 들어, 다운샘플링 계층(404)에 적절하게 매칭시키기 위해). 활성화 계층들(예를 들어, 408, 412 및 416)은 누설형 ReLU 활성화 함수를 갖는 완전-연결 계층일 수 있다. 콘볼루션 계층(예를 들어, 410, 414 및 418)는 스트라이드 1을 갖는(즉, 차원을 유지하기 위해) 사이즈 3x1의 필터를 포함할 수 있다.
잔차 연결 계층(420)은 좌측 브랜치로부터의 출력과 우측 브랜치로부터의 출력을 결합하여 대체 표현(402)을 생성한다. 예를 들어, 잔차 연결 계층(420)은 대체 표현(402)을 생성하기 위해 좌측 브랜치로부터의 출력과 우측 브랜치로부터의 출력을 합산할 수 있다(예컨대, 요소별 합산(elementwise addition)).
도 5는 FiLM(Feature-wise Linear Modulation) 모듈(500)의 예를 도시한다.
FiLM 모듈(500)은 현재 네트워크 출력의 대체 표현(402) 및 현재 이터레이션에 대응하는 총 잡음 레벨(306)을 프로세싱하여, 스케일 벡터(512) 및 바이어스 벡터(516)를 생성한다. 스케일 벡터(512) 및 바이어스 벡터(516)는 각각의 잡음 생성 블록(예를 들어, 도 3의 잡음 추정 네트워크(300)의 잡음 생성 블록(600))에 있는 특정 계층(예를 들어, 아핀 변환 계층)에 대한 입력으로서 프로세싱될 수 있다. FiLM 모듈(500)은 위치 인코딩 함수(positional encoding function) 및 하나 이상의 신경망 계층을 포함한다. 하나 이상의 신경망 계층은 잔차 연결 계층, 콘볼루션 계층, 비선형 활성화 함수를 갖는 활성화 계층(예를 들어, 누설형 ReLU 활성화 함수를 갖는 완전 연결 계층)을 포함하는 여러 유형들의 신경망 계층을 포함할 수 있다.
잔차 연결 계층(508)의 좌측 브랜치는 위치 인코딩 함수(502)를 포함한다. 위치 인코딩 함수(502)는 총 잡음 레벨(306)을 프로세싱하여 잡음 레벨에 대한 위치 인코딩을 생성한다. 예를 들어, 총 잡음 레벨(306)은 트랜스포머 모델에 대한 전-프로세싱(pre-processing)에서와 같이, 짝수 차원 인덱스들에 대한 사인 함수와 홀수 차원 인덱스들에 대한 코사인 함수의 조합인 위치 인코딩 함수(502)에 의해 곱해질 수 있다.
잔차 연결 계층(508)의 우측 브랜치는 콘볼루션 계층(504) 및 활성화 계층(506)을 포함한다. 콘볼루션 계층(504)은 대체 표현(402)을 프로세싱하여 활성화 계층(506)에 대한 입력을 생성한다. 활성화 계층(506)은 콘볼루션 계층(504)의 출력을 프로세싱하여 잔차 연결 계층(508)에 대한 입력을 생성한다. 예를 들어, 콘볼루션 계층(504)은 스트라이드 1을 갖는(즉, 차원을 유지하기 위해) 사이즈 3x1의 필터를 포함할 수 있으며, 그리고 활성화 계층(506)은 누설형 ReLU 활성화 함수를 갖는 완전 연결 계층일 수 있다.
잔차 연결 계층(508)은 좌측 브랜치로부터의 출력(예를 들어, 위치 인코딩 함수(502)로부터의 출력)과 우측 브랜치로부터의 출력(예를 들어, 활성화 계층(506)으로부터의 출력)을 결합하여, 콘볼루션 계층(510) 및 콘볼루션 계층(514) 둘다에 대한 입력을 생성할 수 있다. 예를 들어, 잔차 연결 계층(508)은 2개의 콘볼루션 계층들(예: 510 및 514)에 대한 입력을 생성하기 위해, 좌측 브랜치 분기로부터의 출력과 우측 브랜치로부터의 출력을 합산할 수 있다(예를 들어, 요소별 합산).
콘볼루션 계층(510)은 잔차 연결 계층(508)으로부터의 출력을 프로세싱하여 스케일 벡터(512)를 생성한다. 예를 들어, 콘볼루션 계층(510)은 스트라이드 1을 갖는(차원을 유지하기 위해) 사이즈 3x1의 필터를 포함할 수 있다. 콘볼루션 계층(514)은 잔차 연결 계층(508)으로부터의 출력을 프로세싱하여 바이어스 벡터(516)를 생성한다. 예를 들어, 콘볼루션 계층(514)은 스트라이드 1을 갖는(차원을 유지하기 위해) 사이즈 3x1의 필터를 포함할 수 있다.
도 6은 예시적인 잡음 생성 네트워크(600)를 도시한다. 잡음 생성 네트워크(600)는 아래에서 설명되는 시스템, 컴포넌트들 및 기술이 구현되는 하나 이상의 위치에서 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 일례이다.
잡음 생성 블록(600)은 잡음 추정 신경망, 예를 들어 도 3의 잡음 추정 신경망(300)에 사용되는 잡음 생성 블록의 예시적인 신경망 아키텍처이다.
잡음 생성 블록(600)은 입력(602) 및 FiLM 모듈(500)로부터의 출력을 프로세싱하여 출력(310)을 생성한다. 입력(602)은 하나 이상의 이전 신경망 계층들(예를 들어, 도 3의 잡음 생성 블록들(338, 336, 334, 332), 및 콘볼루션 계층(302))에 의해 프로세싱된 네트워크 입력일 수 있다. 출력(310)은 후속 콘볼루션 계층에 대한 입력일 수 있으며, 후속 콘볼루션 계층은 상기 출력(310)을 프로세싱하여 잡음 출력(110)(예를 들어, 도 3의 콘볼루션 계층 304)을 생성할 수 있다. 잡음 생성 블록(600)은 하나 이상의 신경망 계층을 포함한다. 하나 이상의 신경망 계층은 비선형 활성화 함수들을 구비한 활성화 계층(예컨대, 누설형 ReLU 활성화 함수를 갖는 완전 연결 계층), 업샘플링 계층(예컨대, 입력의 차원을 "업샘플링"하거나 증가시키는 계층), 콘볼루션 계층, 아핀 변환 계층 및 잔차 연결 계층 등을 포함하는 여러 유형들의 신경망 계층들을 포함할 수 있다.
예를 들어, 업샘플링 계층은 입력의 차원을 "업샘플링"(즉, 증가)시키는 신경망 계층일 수 있다. 즉, 업샘플링 계층은 이러한 계층에 대한 입력보다 차원이 높은 출력을 생성한다. 특정 일례에서, 업샘플링 계층은 입력에 있는 각 값의 X 개의 복사본을 갖는 출력을 생성하여, 입력에 비해 출력의 차원을 팩터 X 만큼 증가시킬 수 있다(예를 들어, 입력(2, 7, -4)의 경우, (2,2,7,7,-4,-4)와 같이 각 값의 2개의 복사본을 갖는 출력을 생성하거나 또는 (2,2,2,2,2,7,7,7,7,7,-4,-4,-4,-4,-4)와 같이 각 값의 5개의 복사본을 갖는 출력을 생성하거나, 기타 등등). 일반적으로, 업샘플링 계층은 입력에서 가장 가까운 값으로 출력의 각각의 추가 지점(extra spot)을 채울 수 있다.
잔차 연결 계층(618)의 좌측 브랜치는 업샘플링 계층(602) 및 콘볼루션 계층(604)을 포함한다. 업샘플링 계층(602)은 입력(602)을 프로세싱하여 콘볼루션 계층(604)에 대한 입력을 생성한다. 콘볼루션 계층에 대한 입력은 입력(602) 보다 더 높은 차원을 갖는다. 콘볼루션 계층(604)은 업샘플링 계층(602)으로부터의 출력을 프로세싱하여 잔차 연결 계층(618)에 대한 입력을 생성한다. 예를 들어, 업샘플링 계층은 입력(602)에 있는 각 값의 2개의 복사본을 갖는 출력을 생성함으로써, 입력의 차원을 2 라는 팩터만큼 증가시킬 수 있다. 콘볼루션 계층(604)은 스트라이드 1을 갖는(예를 들어, 차원을 유지하기 위해) 차원 3x1의 필터를 포함할 수 있다.
잔차 연결 계층(618)의 우측 브랜치는 활성화 계층(606)(예를 들어, 누설형 ReLU 활성화 함수를 갖는 완전-연결 계층), 업샘플링 계층(608), 콘볼루션 계층(610)(예를 들어, 3x1 필터 사이즈 및 스트라이드 1을 갖음), 아핀 변환 계층(612), 활성화 계층(614)(예를 들어, 누설형 ReLU 활성화 함수를 갖는 완전-연결 계층) 및 콘볼루션 계층(616)(예를 들어, 3x1 필터 사이즈 및 스트라이드 1을 가짐)을 그 순서대로 포함할 수 있다.
활성화 계층(606)은 업샘플링 계층(608)에 대한 입력을 생성하기 위해 입력(602)을 프로세싱한다. 업샘플링 계층(608)은 활성화 계층(606)으로부터의 출력의 차원을 증가시켜서 콘볼루션 계층(610)에 대한 입력을 생성하는바, 이는 입력(602) 보다 높은 차원을 갖는다(예를 들어, 업샘플링 계층(602)과 매칭시키기 팩터 2만큼 증가됨). 콘볼루션 계층(610)은 업샘플링 계층(608)으로부터의 출력을 프로세싱하여 아핀 변환 계층(612)에 대한 입력을 생성한다(예를 들어, 차원을 유지하기 위해 차원 3x1 및 스트라이드 1의 필터를 사용하여). 또한, 활성화 계층(614) 및 콘볼루션 계층(616)은 잔차 연결 계층(618)에 대한 입력을 생성하기 위해 아핀 변환 계층(612)으로부터의 출력을 추가로 프로세싱한다(예를 들어, 네트워크(614)에 대한 누설형 ReLU 함수 및 네트워크(616)에 대한 차원 3x1 및 스트라이드 1의 필터를 사용하여).
예를 들어, 아핀 변환 함수는 이전의 신경망 계층(예를 들어, 잡음 생성 블록(600)의 콘볼루션 계층(610))으로부터의 출력 및 FiLM 모듈로부터의 출력을 프로세싱하여 출력을 생성할 수 있다. 예를 들어, FiLM 모듈은 스케일 벡터와 바이어스 벡터를 생성할 수 있다. 아핀 변환 계층은 FiLM 모듈의 스케일 벡터를 이용하여 이전 신경망 계층의 출력을 스케일링한 결과(예: Hadamard 곱 또는 요소별 곱셈을 사용하여)에 바이어스 벡터를 합산할 수 있다.
아핀 변환 계층(612)은 콘볼루션 계층(610)으로부터의 출력 및 FiLM 모듈(500)로부터의 출력을 프로세싱하여 활성화 계층(614)에 대한 입력을 생성할 수 있다(예를 들어, FiLM 모듈(500)로부터의 스케일 벡터를 이용하여 콘볼루션 계층(610)으로부터의 출력을 스케일링한 결과에 FiLM 모듈(500)로부터의 바이어스 벡터를 합산함으로써).
잔차 연결 계층(618)은 좌측 브랜치로부터의 출력(예를 들어, 콘볼루션 계층(604)으로부터의 출력)과 우측 브랜치로부터의 출력(예를 들어, 콘볼루션 계층(616)으로부터의 출력)을 결합하여 출력을 생성한다. 예를 들어, 잔차 연결 계층(618)은 좌측 브랜치로부터의 출력과 우측 브랜치로부터의 출력을 합산하여 출력을 생성할 수 있다.
잔차 연결 계층(632)의 좌측 브랜치는 잔차 연결 계층(618)으로부터의 출력을 포함한다. 좌측 브랜치는 잔차 연결 계층(618)으로부터의 출력의 항등 함수(identity function)로서 해석될 수 있다.
잔차 연결 계층(632)의 우측 브랜치는 잔차 연결 계층(618)의 출력을 프로세싱하고 그리고 잔차 연결 계층(632)에 대한 입력을 생성하기 위해, 순서대로 아핀 변환 계층, 활성화 계층 및 콘볼루션 계층의 2개의 순차적인 블록들을 포함한다. 특히, 제 1 블록은 아핀 변환 계층(620), 활성화 계층(622) 및 콘볼루션 계층(624)을 포함한다. 제 2 블록은 아핀 변환 계층(626), 활성화 계층(628) 및 콘볼루션 계층(630)을 포함한다.
예를 들어, 각각의 블록에 대해, 각각의 아핀 변환 계층은 각각의 출력을 생성하기 위해 FiLM 모듈(500)로부터의 출력 및 각각의 이전 신경망 계층으로부터의 출력을 프로세싱할 수 있다(예를 들어, 아핀 변환 계층(620)은 잔차 연결 계층(618)으로부터의 출력을 프로세싱할 수 있으며, 아핀 변환 계층(626)은 콘볼루션 계층(624)으로부터의 출력을 프로세싱할 수 있음). 각각의 아핀 변환 계층은 이전 신경망 계층의 출력을 FiLM 모듈(500)로부터의 스케일 벡터로 스케일링하고 그리고 스케일링 결과와 FiLM 모듈(500)의 바이어스 벡터를 합산하여 각각의 출력을 생성할 수 있다. 각각의 활성화 계층(예를 들어, 620 및 628)은 누설형 ReLU 활성화 함수를 갖는 각각의 완전-연결된 계층일 수 있다. 각각의 콘볼루션 계층은 차원 3x1 및 스트라이드 1의 필터를 각각 포함할 수 있다(예를 들어, 차원을 유지하기 위해).
잔차 연결 계층(632)은 왼쪽 브랜치로부터의 출력(예를 들어, 잔차 연결 계층(618)으로부터의 출력의 아이덴티티)과 오른쪽 브랜치로부터의 출력(예를 들어, 콘볼루션 계층(630)으로부터의 출력)을 결합하여 출력(310)을 생성할 수 있다. 예를 들어, 잔차 연결 계층(632)은 좌측 브랜치로부터의 출력과 우측 브랜치로부터의 출력을 합산하여 출력(310)을 생성할 수 있다. 출력(310)은 콘볼루션 계층(예를 들어, 도 3의 콘볼루션 계층 304)에 대한 입력일 수 있으며, 이러한 콘볼루션 계층은 잡음 출력(110)을 생성할 것이다.
잡음 생성 블록(600)은 여러 채널들을 포함할 수 있다. 도 3의 각각의 잡음 생성 블록(예를 들어, 600, 338, 336, 334 및 332)은 각각 여러 채널들을 포함할 수 있다. 예를 들어, 잡음 생성 블록(600, 338, 336, 334, 332)은 128, 128, 256, 512, 512개의 채널을 각각 포함할 수 있다.
도 7은 잡음 추정 신경망을 트레이닝하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 프로세스(700)는 하나 이상의 위치들에 위치한 하나 이상의 컴퓨터 시스템들에 의해 수행되는 것으로 설명될 것이다.
시스템은 잡음 추정 신경망의 파라미터 값들을 반복적으로 업데이트하기 위해 다수의 트레이닝 이터레이션들 각각에서 프로세스(700)를 수행할 수 있다.
이러한 시스템은 트레이닝 네트워크 입력-트레이닝 네트워크 출력 쌍들의 배치(batch)를 획득한다(702). 예를 들어, 시스템은 데이터 저장소로부터 트레이닝 쌍들을 무작위로 샘플링할 수 있다. 예를 들어, 각각의 트레이닝 네트워크 출력은 오디오 파형일 수 있으며 그리고 각각의 네트워크 입력은 대응 오디오 파형으로부터 계산된 그라운드-트루 멜-스펙트로그램일 수 있다.
배치(batch) 내의 각각의 트레이닝 쌍에 대하여, 시스템은 모든 이터레이션들에 대한 이터레이션-특정 데이터를 포함하는 세트로부터 이터레이션-특정 데이터를 선택한다(704). 예를 들어, 시스템은 1부터 최종 이터레이션까지의 정수들을 포함하는 이산 균일 분포(discrete uniform distribution)로부터 특정 이터레이션을 샘플링할 수 있으며, 분포로부터 샘플링된 특정 이터레이션에 기초하여 이터레이션 특정 데이터를 선택할 수 있다. 이터레이션 특정 데이터는 잡음 레벨, 총 잡음 레벨(예를 들어, 수학식 (2)에서 결정됨) 또는 이터레이션 횟수 자체를 포함할 수 있다. 따라서, 시스템은 이산 인덱스에 대하여 잡음 추정 신경망을 조건화하거나 또는 잡음 레벨을 나타내는 연속 스칼라에 대하여 잡음 추정 신경망을 조건화할 수 있다. 잡음 레벨을 나타내는 연속 스칼라에 대하여 조건화하는 것은 유리할 수 있는데, 잡음 추정 신경망이 일단 트레이닝되면, 추론에서 최종 신경망 출력을 생성할 때 상이한 수의 정제 단계들(즉, 이터레이션들)을 사용할 수 있기 때문이다.
배치(batch)의 각각의 트레이닝 쌍에 대하여, 시스템은 트레이닝 네트워크 출력의 각 값에 대한 각각의 잡음 값을 포함하는 잡음성(noisy) 출력을 샘플링한다(708). 예를 들어, 시스템은 잡음 분포로부터 잡음성 출력을 샘플링할 수 있다. 특정 예에서, 잡음 분포는 가우시안 잡음 분포일 수 있다(예를 들어, N(0, I), 여기서, I 는 차원 n×n을 갖는 항등 행렬이고, n은 트레이닝 네트워크 출력의 숫자 값들임).
배치(batch)의 각각의 트레이닝 쌍에 대하여, 시스템은 잡음성 출력 및 대응하는 트레이닝 네트워크 출력으로부터 수정된 트레이닝 네트워크 출력을 생성한다(708). 시스템은 잡음성 출력과 대응하는 트레이닝 네트워크 출력을 결합하여 수정된 트레이닝 네트워크 출력을 생성할 수 있다. 예를 들어, 시스템은 수정된 트레이닝 네트워크 출력을 다음과 같이 생성할 수 있다.
Figure pct00017
(4)
여기서, y' 는 수정된 트레이닝 네트워크 출력을 나타내고, y0 는 해당 트레이닝 네트워크 출력을 나타내며, ε는 잡음성 출력을 나타내고,
Figure pct00018
는 이터레이션 특정 데이터(예: 총 잡음 레벨)를 나타낸다.
배치(batch)의 각각의 트레이닝 쌍에 대하여, 시스템은 네트워크 파라미터들의 현재 값들에 따라 잡음 추정 신경망을 이용하여, (1) 수정된 트레이닝 네트워크 출력, (2) 트레이닝 네트워크 입력 및 (3) 이터레이션 특정 데이터를 포함하는 모델 입력을 프로세싱하여 트레이닝 잡음 출력을 생성한다(710). 잡음 추정 신경망은 모델 입력을 프로세싱하여 도 2의 프로세스에서 설명한 바와 같이 트레이닝 잡음 출력을 생성할 수 있다. 예를 들어, 이터레이션 특정 기준은 총 잡음 레벨
Figure pct00019
을 포함할 수 있다.
시스템은 트레이닝 쌍들의 배치에 대한 목적 함수의 그래디언트로부터 잡음 추정 네트워크의 네트워크 파라미터들에 대한 업데이트를 결정한다(712). 시스템은 각각의 트레이닝 쌍에 대한 잡음 추정 네트워크의 신경망 파라미터들에 대하여 목적 함수의 그래디언트를 결정할 수 있으며, 그런 다음 모멘텀을 사용한 확률적 그래디언트 하강 또는 ADAM과 같은 다양한 적절한 최적화 방법을 이용하여, 신경망 파라미터들의 현재 값들을 그래디언트들(예컨대, 그래디언트의 평균과 같은 그래디언트의 선형 조합)로 업데이트할 수 있다.
목적 함수는 각각의 트레이닝 쌍에 대한 잡음 추정 네트워크에 의해 생성된 잡음성 출력과 트레이닝 잡음 출력 간의 에러를 측정할 수 있다. 예를 들어, 특정 트레이닝 쌍에 대해, 목적 함수는 다음과 같이 잡음성 출력과 트레이닝 잡음 출력 사이의 L1 거리를 측정하는 손실 항을 포함할 수 있다.
Figure pct00020
(5)
여기서,
Figure pct00021
는 손실 함수를 나타내고, ε는 잡음성 출력을 나타내고,
Figure pct00022
는 파라미터 θ를 사용하여 잡음 추정 신경망에 의해 생성된 트레이닝 잡음 출력을 나타내고, y' 는 수정된 트레이닝 네트워크 출력을 나타내고, x 는 트레이닝 네트워크 입력을 나타내고,
Figure pct00023
는 이터레이션별 데이터(예: 총 소음 레벨)를 나타낸다.
시스템은 다수의 배치들(batches)에 대하여 단계(702)-(712)를 반복적으로 수행할 수 있다(예를 들어, 트레이닝 네트워크 입력 - 트레이닝 네트워크 출력 쌍들의 다수의 배치들).
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 특정 동작들 또는 액션들을 수행하도록 구성된 하나 이상의 컴퓨터로 구성된 시스템의 경우, 이는 동작시 시스템으로 하여금 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 상기 시스템에 설치했음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 프로세싱 장치에 의해 실행될 때 상기 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령을 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 기능적 동작의 실시예는 본 명세서에 개시된 구조들 및 이들의 구조적 등가물들 포함하여 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의한 실행 또는 그 작동을 제어하기 위해 유형의 비일시적 저장 매체에 인코딩된 하나 이상의 컴퓨터 프로그램 명령 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가로, 프로그램 명령은 인공적으로 생성된 전파 신호, 예를 들어, 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 디바이스로의 전송을 위해 정보를 인코딩하도록 생성된 머신 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터 프로세싱 하드웨어를 지칭하며 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다수의 프로세서들 또는 컴퓨터들을 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스 및 머신를 포함한다. 상기 장치는 또한 특수 목적 논리 회로, 예를 들어 FPGA (필드 프로그래밍가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)일 수 있거나 이를 더 포함할 수 있다. 상기 장치는 선택적으로는 하드웨어 이외에도 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 어플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로도 언급되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어 또는 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며; 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부에 저장될 수 있는바, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트, 문제의 프로그램 전용 단일 파일 또는 여러 조정 파일들, 예를 들어 하나 이상의 모듈들, 서브-프로그램 또는 코드의 일부분들을 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 다수의 컴퓨터들에서 실행되도록 배포될 수 있으며, 다수의 컴퓨터들은 한 장소에 위치하거나 또는 여러 장소들에 분산되어 통신 네트워크에 의해 연결될 수 있다.
본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 구성 요소로 구현된다. 어떤 경우에는 하나 이상의 컴퓨터가 특정 엔진에 전용될 것이며; 다른 경우에는 동일한 컴퓨터에 여러 엔진을 설치하고 실행할 수 있다.
본 명세서에 기술된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 예를 들어, FPGA 또는 ASIC과 같은 특수 목적 논리 회로 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램 실행에 적합한 컴퓨터는 범용 또는 특수 목적의 마이크로프로세서 또는 둘 다 또는 다른 종류의 중앙 프로세싱 유닛을 기반으로 할 수 있다. 일반적으로 중앙 프로세싱 유닛은 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하거나 실행하는 중앙 프로세싱 유닛과 명령 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 중앙 프로세싱 유닛과 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(예를 들어, 자기, 광자기 디스크 또는 광학 디스크)로부터 데이터를 수신하거나 데이터를 전송하도록 또는 둘 모두를 포함하거나 작동가능하게 결합될 것이다. 하지만, 컴퓨터는 이러한 디바이스를 반드시 필요로 하는 것은 아니다. 또한, 컴퓨터는 휴대폰, PDA(Personal Digital Assistant), 모바일 오디오 또는 비디오 재생기, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 디바이스(예를 들어, USB(Universal Serial Bus) 플래시 드라이브)와 같은 다른 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함하며, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 컴퓨터에서 구현될 수 있으며, 컴퓨터는 정보를 표시하기 위한 디스플레이 디바이스, 예를 들어 CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터를 가질 수 있으며, 사용자 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 디바이스 및 키보드도 가질 수 있다. 또한 다른 종류의 디바이스를 사용하여 사용자와의 상호작용도 제공할 수 있는바, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각적 피드백, 청각 피드백 또는 촉각 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고받음으로써 사용자와 상호작용할 수 있다. 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 디바이스의 웹 브라우저에 웹 페이지를 보낼 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 퍼스널 디바이스로 전송함으로써 사용자와 상호작용할 수 있는바, 예를 들어, 메시징 애플리케이션을 실행하는 스마트폰에 전송하고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호작용할 수 있다.
머신 학습 모델을 구현하기 위한 데이터 프로세싱 장치는 또한, 예를 들어, 머신 러닝 트레이닝의 공통적이고 계산 집약적인 부분, 즉 추론, 워크로드를 프로세싱하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
머신 러닝 모델은 머신 러닝 프레임워크, 예를 들어 텐서플로우(TensorFlow) 프레임워크, Microsoft Cognitive Toolkit 프레임워크, Apache Singa 프레임워크 또는 Apache MXNet 프레임워크를 사용하여 구현 및 배포될 수 있다.
본 명세서에 기술된 주제의 실시예는 컴퓨팅 시스템에서 구현될 수 있으며, 컴퓨팅 시스템은 예를 들어, 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예를 들어, 그래픽 사용자 인터페이스, 웹 브라우저 또는 사용자가 이 사양에 설명된 주제의 구현예와 상호작용할 수 있는 앱을 갖는 클라이언트 컴퓨터와 같은 프런트 엔드 컴포넌트를 포함하거나, 또는 그러한 백엔드, 미들웨어 또는 프런트엔드 컴포넌트의 하나 이상의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 예를 들어, 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태들 또는 매체들에 의해 상호연결될 수 있다. 통신 네트워크의 일례들은 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 예를 들어, 클라이언트로서 작용하는 디바이스와 상호작용하는 사용자에게 데이터를 디스플레이하고 그로부터 사용자 입력을 수신하기 위해 데이터, 예를 들어, HTML 페이지를 사용자 디바이스로 전송한다. 사용자 디바이스에서 생성된 데이터, 예를 들어 사용자 상호작용의 결과는 디바이스로부터 서버에서 수신될 수 있다.
본 명세서는 많은 구체적인 구현 세부 사항들을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특별할 수 있는 피처들에 대한 설명으로 해석되어야 한다. 별도의 실시예들의 맥락에서 본 명세서에 설명된 특정한 피처들은 또한 단일 실시예에서 조합되어 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 피처들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 피처들이 특정 조합에서 작용하는 것으로 위에서 기술될 수 있고 심지어 초기에 그렇게 주장될지라도, 청구된 조합으로부터의 하나 이상의 피처들은 경우에 따라 조합에서 제외될 수도 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수도 있다.
유사하게, 동작들이 특정 순서로 도면에 도시되고 청구범위에 개시되었지만, 이는 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나 또는 원하는 결과를 획득하기 위해 예시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다. 또한, 전술한 실시예에서 다양한 시스템 모듈들 및 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 여러 소프트웨어 제품으로 패키징된다.
본 발명의 주제에 대한 특정 실시예가 설명되었다. 다른 실시예들은 다음의 청구 범위에 속한다. 예를 들어, 청구범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 일례로서, 첨부된 도면에 묘사된 프로세스는 원하는 결과를 얻기 위해 표시된 특정 순서 또는 순차적인 순서를 반드시 요구하지는 않는다. 경우에 따라 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (24)

  1. 네트워크 입력에 대해 조건화된(conditioned) 복수의 출력들을 포함하는 최종 네트워크 출력을 생성하는 방법으로서,
    네트워크 입력을 획득하는 단계;
    현재 네트워크 출력을 초기화하는 단계;
    복수의 이터레이션들 각각에서 상기 현재 네트워크 출력을 업데이트함으로써 최종 네트워크 출력을 생성하는 단계, 각각의 이터레이션은 각각의 잡음 레벨에 대응하고, 상기 업데이트는 각각의 이터레이션에서:
    잡음 출력을 생성하기 위해 모델 입력을 프로세싱하도록 구성된 잡음 추정 신경망을 사용하여 (i) 현재 네트워크 출력 및 (ii) 네트워크 입력을 포함하는 이터레이션에 대한 모델 입력을 프로세싱하는 단계, 상기 잡음 출력은 현재 네트워크 출력의 각 값에 대한 각각의 잡음 추정을 포함하고; 그리고
    잡음 추정 및 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력을 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 네트워크 입력은 오디오 세그먼트의 스펙트로그램(spectrogram)이고, 상기 최종 네트워크 출력은 오디오 세그먼트에 대한 파형(waveform)인 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 오디오 세그먼트는 스피치 세그먼트인 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 스펙트로그램은 텍스트-스피치(text-to-speech) 모델에 의해, 텍스트 세그먼트 또는 텍스트 세그먼트의 언어적 피처들로부터 생성된 것을 특징으로 하는 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 스펙트로그램은 멜 스펙트로그램(mel spectrogram) 또는 로그 멜 스펙트로그램(log mel spectrogram)인 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    네트워크 입력은 생성될 이미지 객체의 클래스를 지정하는 객체의 클래스이고, 네트워크 출력은 객체의 클래스의 생성된 이미지이거나, 또는
    네트워크 입력은 텍스트의 시퀀스이고, 네트워크 출력은 텍스트를 반영하는 이미지이거나, 또는
    네트워크 입력은 이미지이고, 네트워크 출력은 상기 이미지를 특징화하는 입력 이미지의 숫자 임베딩(numeric embedding)이거나, 또는
    네트워크 입력은 이미지이고, 네트워크 출력은 특정 유형들의 객체들이 묘사된 입력 이미지의 위치들을 식별하거나, 또는
    네트워크 입력은 이미지이고, 네트워크 입력은 입력 이미지의 복수의 픽셀들 각각을 카테고리 세트로부터의 카테고리에 할당하는 세그먼트 출력인 것을 특징으로 하는 방법.
  7. 임의의 선행하는 청구항에 있어서,
    상기 잡음 추정 및 이터레이션에 대한 잡음 레벨을 사용하여 현재 네트워크 출력을 업데이트하는 단계는,
    적어도 잡음 추정 및 이터레이션에 대응하는 잡음 레벨로부터 이터레이션에 대한 업데이트를 생성하는 단계; 및
    초기 업데이트된 네트워크 출력을 생성하기 위해 현재 네트워크 출력으로부터 상기 업데이트를 감산하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 현재 네트워크 출력을 업데이트하는 단계는,
    수정된 초기 업데이트된 네트워크 출력을 생성하기 위해 이터레이션에 대한 잡음 레벨에 기초하여 초기 업데이트된 네트워크 출력을 수정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    최종 이터레이션에 대하여, 상기 수정된 초기 업데이트된 네트워크 출력은 최종 이터레이션 이후의 업데이트된 네트워크 출력이고, 그리고 상기 최종 이터레이션 이전의 각각의 이터레이션에 대하여, 상기 최종 이터레이션 이후의 업데이트된 네트워크 출력은 수정된 초기 업데이트된 네트워크 출력에 잡음를 추가함으로써 생성되는 것을 특징으로 하는 방법.
  10. 임의의 선행하는 청구항에 있어서,
    상기 현재 네트워크 출력을 초기화하는 단계는, 대응 잡음 분포로부터 현재 네트워크 출력에 대한 복수의 초기 값들 각각을 샘플링하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 임의의 선행하는 청구항에 있어서,
    각 이터레이션에 대한 모델 입력은 각 이터레이션마다 다른 이터레이션 특정 데이터를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    각 이터레이션에 대한 모델 입력은 이터레이션에 대응하는 잡음 레벨을 포함하는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    각 이터레이션에 대한 모델 입력은
    복수의 이터레이션들 중 상기 이터레이션 및 상기 이터레이션 이후의 임의의 이터레이션에 대응하는 잡음 레벨들로부터 생성된 이터레이션에 대한 총 잡음 레벨을 포함하는 것을 특징으로 하는 방법.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 잡음 추정 신경망은,
    복수의 잡음 생성 신경망 계층들을 포함하고 그리고 네트워크 입력을 잡음 출력에 매핑하기 위해 상기 네트워크 입력을 프로세싱하도록 구성된 잡음 생성 신경망; 및
    현재 네트워크 출력의 대안적인 표현을 생성하기 위해 상기 현재 네트워크 출력을 프로세싱하도록 구성된 복수의 네트워크 출력 프로세싱 신경망 계층들을 포함하는 네트워크 출력 프로세싱 신경망을 포함하고,
    적어도 하나의 잡음 생성 신경망 계층들은 (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력, (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, 및 (iii) 이터레이션에 대한 이터레이션 특정 데이터로부터 도출된 입력을 수신하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서,
    상기 최종 네트워크 출력은 상기 네트워크 입력보다 더 높은 차원을 갖고, 상기 대안적인 표현은 상기 네트워크 입력과 동일한 차원을 갖는 것을 특징으로 하는 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 잡음 추정 신경망은 적어도 하나의 잡음 생성 신경망 계층들 각각에 대응하는 각각의 FiLM (Feature-wise Linear Modulation) 모듈을 포함하고, 소정의 잡음 생성 신경망 계층에 대응하는 상기 FiLM 모듈은 잡음 생성 신경망 계층에 대한 입력을 생성하기 위해 (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력, (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, (iii) 이터레이션에 대한 이터레이션 특정 데이터를 프로세싱하도록 구성되는 것을 특징으로 하는 방법.
  17. 제16항에 있어서,
    상기 소정 잡음 생성 신경망 계층에 대응하는 FiLM 모듈은,
    (ii) 해당 네트워크 출력 프로세싱 신경망 계층의 출력, 및 (iii) 이터레이션에 대한 이터레이션 특정 데이터로부터 스케일 벡터 및 바이어스 벡터를 생성하고;
    (i) 잡음 생성 신경망 계층들 중 다른 하나의 출력에 아핀 변환을 적용함으로써 상기 소정 잡음 생성 신경망 계층에 대한 입력을 생성하도록 구성되는 것을 특징으로 하는 방법.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    적어도 하나의 잡음 생성 신경망 계층들은 비선형 활성화 함수를 활성화 함수 계층에 대한 입력에 적용하는 활성화 함수 계층을 포함하는 것을 특징으로 하는 방법.
  19. 제18항에 있어서,
    활성화 함수 계층에 대응하는 잡음 생성 신경망 계층들 중 다른 하나는 잔차 연결 계층(residual connection layer) 또는 콘볼루션 계층인 것을 특징으로 하는 방법.
  20. 제11항 내지 제19항 중 어느 한 항의 잡음 추정 신경망을 트레이닝하는 방법으로서, 상기 방법은,
    트레이닝 네트워크 입력 및 대응하는 트레이닝 네트워크 출력을 획득하는 단계;
    복수의 모든 이터레이션들에 대한 이터레이션 특정 데이터를 포함하는 세트로부터 이터레이션 특정 데이터를 선택하는 단계;
    트레이닝 네트워크 출력의 각각의 값에 대한 각각의 잡음 값을 포함하는 잡음성 출력을 샘플링하는 단계;
    잡음성 출력 및 대응하는 트레이닝 네트워크 출력으로부터 수정된 트레이닝 네트워크 출력을 생성하는 단계;
    잡음 추정 신경망을 이용하여 트레이닝 잡음 출력을 생성하기 위해 (i) 수정된 트레이닝 네트워크 출력, (ii) 트레이닝 네트워크 입력, 및 (iii) 이터레이션 특정 데이터를 포함하는 모델 입력을 프로세싱하는 단계; 및
    샘플링된 잡음성 출력과 트레이닝 잡음 출력 사이의 에러를 측정하는 목적 함수의 그래디언트로부터 잡음 추정 신경망의 네트워크 파라미터들에 대한 업데이트를 결정하는 단계
    를 포함하는 단계들을 반복적으로 수행하는 것을 특징으로 하는 잡음 추정 신경망을 트레이닝하는 방법.
  21. 제20항에 있어서,
    상기 목적 함수는 샘플링된 잡음성 출력과 트레이닝 잡음 출력 사이의 거리를 측정하는 것을 특징으로 하는 잡음 추정 신경망을 트레이닝하는 방법.
  22. 제21항에 있어서,
    상기 거리는 L1 거리인 것을 특징으로 하는 잡음 추정 신경망을 트레이닝하는 방법.
  23. 명령들을 저장하는 하나 이상의 저장 디바이스들 및 하나 이상의 컴퓨터들을 포함하는 시스템으로서, 상기 명령들은 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 임의의 선행하는 청구항들 중 어느 한 항의 방법을 수행하게 하는 것을 특징으로 하는 시스템.
  24. 명령들이 인코딩된 컴퓨터 판독가능 저장 매체로서, 상기 명령들은 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 임의의 선행하는 청구항들 중 어느 한 항의 방법을 수행하게 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
KR1020227045943A 2020-09-02 2021-09-02 데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성 KR20230017286A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063073867P 2020-09-02 2020-09-02
US63/073,867 2020-09-02
PCT/US2021/048931 WO2022051548A1 (en) 2020-09-02 2021-09-02 Conditional output generation through data density gradient estimation

Publications (1)

Publication Number Publication Date
KR20230017286A true KR20230017286A (ko) 2023-02-03

Family

ID=78078366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227045943A KR20230017286A (ko) 2020-09-02 2021-09-02 데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성

Country Status (6)

Country Link
US (1) US20230325658A1 (ko)
EP (1) EP4150615A1 (ko)
JP (1) JP2023540834A (ko)
KR (1) KR20230017286A (ko)
CN (1) CN115803805A (ko)
WO (1) WO2022051548A1 (ko)

Also Published As

Publication number Publication date
WO2022051548A1 (en) 2022-03-10
CN115803805A (zh) 2023-03-14
US20230325658A1 (en) 2023-10-12
JP2023540834A (ja) 2023-09-27
EP4150615A1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
JP7213913B2 (ja) ニューラルネットワークを使用したオーディオの生成
CN108630190B (zh) 用于生成语音合成模型的方法和装置
CN110326002B (zh) 使用在线注意的序列处理
KR20220133323A (ko) 어텐션-기반의 시퀀스 변환 신경망
US11355097B2 (en) Sample-efficient adaptive text-to-speech
CN111699497B (zh) 使用离散潜变量的序列模型的快速解码
US20210089909A1 (en) High fidelity speech synthesis with adversarial networks
JP2020506488A (ja) バッチ再正規化層
KR20230017286A (ko) 데이터 밀도 그래디언트 추정을 통한 조건부 출력 생성
US20230252974A1 (en) End-to-end speech waveform generation through data density gradient estimation
CN117910533A (zh) 用于扩散神经网络的噪声调度
CN113313183A (zh) 通过使用能量分值来训练语音合成神经网络

Legal Events

Date Code Title Description
E902 Notification of reason for refusal