KR102300614B1 - 배치 재정규화 계층 - Google Patents
배치 재정규화 계층 Download PDFInfo
- Publication number
- KR102300614B1 KR102300614B1 KR1020197026511A KR20197026511A KR102300614B1 KR 102300614 B1 KR102300614 B1 KR 102300614B1 KR 1020197026511 A KR1020197026511 A KR 1020197026511A KR 20197026511 A KR20197026511 A KR 20197026511A KR 102300614 B1 KR102300614 B1 KR 102300614B1
- Authority
- KR
- South Korea
- Prior art keywords
- layer
- neural network
- component
- batch
- output
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 claims abstract description 232
- 238000010606 normalization Methods 0.000 claims abstract description 74
- 238000012549 training Methods 0.000 claims abstract description 55
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000009466 transformation Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 9
- 230000001131 transforming effect Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 abstract description 14
- 238000012545 processing Methods 0.000 description 25
- 230000009471 action Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000009334 Singa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000000368 destabilizing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
- G06F18/15—Statistical pre-processing, e.g. techniques for normalisation or restoring missing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G06N3/0472—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
신경망을 구현하기 위한 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 개시된다. 일 양태에서, 신경망은 제1 신경망 계층과 제2 신경망 계층 사이의 배치 재정규화 계층을 포함한다. 제1 신경망 계층은 다수의 컴포넌트를 갖는 제1 계층 출력을 생성한다. 배치 재정규화 계층은 학습 예들의 현재 배치에 대한 신경망의 학습 동안, 다수의 컴포넌트 각각에 대한 각각의 현재 이동 정규화 통계를 획득하고, 현재 이동 정규화 통계로부터 다수의 컴포넌트 각각에 대한 각각의 아핀 변환 파라미터를 결정한다. 배치 재정규화 계층은 현재 배치에서 각각의 학습 예에 대한 각각의 제1 계층 출력을 수신하고 그리고 정규화 계층 출력의 각 컴포넌트에 아핀 변환을 적용하여 학습 예에 대한 재정규화된 계층 출력을 생성한다.
Description
본 명세서는 출력을 생성하기 위해 신경망의 계층을 통한 입력 프로세싱에 관한 것이다.
신경망은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 단위 계층을 사용하는 기계 학습 모델이다. 일부 신경망은 출력층 외에 하나 이상의 은닉층을 포함한다. 각 은닉층의 출력은 네트워크에서 다음 계층, 즉 다음 은닉층 또는 출력 계층에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력으로부터 출력을 생성한다.
본 명세서는 하나 이상의 배치 재정규화(renormalization) 계층을 포함하는 하나 이상의 위치에서 하나 이상의 컴퓨터상에서 컴퓨터 프로그램으로서 구현되는 신경망 시스템을 기술한다.
제1 양태에 따르면, 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 신경망을 구현하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하는 시스템이 제공되며, 상기 신경망은 제1 신경망 계층과 제2 신경망 계층 사이의 배치 재정규화(재규격화) 계층을 포함하며, 상기 제1 신경망 계층은 복수의 컴포넌트들을 갖는 제1 계층 출력들을 생성하고,
상기 배치 재정규화 계층은, 학습(훈련) 예들(training examples)의 현재 배치에 대한 신경망의 학습 동안,
학습 예들의 이전 배치들에 대해 신경망의 학습 동안 제1 신경망 계층에 의해 생성된 이전의 제1 계층 출력들에 기초한 복수의 컴포넌트들 각각에 대한 현재 이동 정규화 통계치를 획득하고;
상기 현재 배치에서 각각의 학습 예에 대한 각각의 제1 계층 출력을 수신하고;
상기 현재 배치에서의 상기 학습 예들에 대한 제1 계층 출력들로부터 복수의 컴포넌트들 각각에 대한 각각의 현재 배치 정규화 통계치를 계산하고;
현재 이동 정규화 통계치 및 현재 배치 정규화 통계치로부터 상기 복수의 컴포넌트들 각각에 대한 아핀 변환(affine transform)에 대한 각각의 아핀 변환 파라미터들을 결정하고; 그리고
상기 현재 배치에서의 학습 예들 각각에 대한 상기 제1 계층 출력들 각각에 대해,
컴포넌트에 대한 상기 현재 배치 정규화 통계치를 사용하여 상기 제1 계층 출력의 각 컴포넌트를 정규화하여 상기 학습 예에 대한 정규화된 계층 출력을 생성하고;
상기 학습 예에 대한 재정규화된 계층 출력을 생성하도록 상기 컴포넌트에 대한 아핀 변환 파라미터들에 따라 정규화된 계층 출력의 각 컴포넌트에 상기 아핀 변환을 적용하고;
상기 재정규화된 계층 출력으로부터 학습 예에 대한 배치 재정규화 계층 출력을 생성하고,
상기 배치 재정규화 계층 출력을 상기 제2 신경망 계층에 대한 입력으로서 제공하도록 구성된다.
일부 구현예들에서, 배치 재정규화 계층은, 컴포넌트에 대한 현재 배치 정규화 통계치를 사용하여 각 컴포넌트에 대한 상기 현재 이동 정규화 통계치를 업데이트하여 상기 컴포넌트에 대한 업데이트된 이동 정규화 통계치를 생성하도록 더 구성된다.
일부 구현예들에서, 신경망의 학습 동안, 상기 시스템은 상기 이동 정규화 통계치 및 상기 아핀 변환의 파라미터들을 상수로 취급하면서 상기 신경망의 파라미터들의 값들의 조정의 일부로서 상기 현재 배치 정규화 통계치를 통해 역전파되도록 구성된다.
일부 구현예들에서, 복수의 컴포넌트들은 제1 계층 출력들의 각각의 디멘션(dimension)들이다.
일부 구현예들에서, 제1 신경망 계층은 컨벌루션 계층이며, 제1 계층 출력들은 복수의 특징 맵들을 포함하고, 각 컴포넌트는 각각의 특징 맵이다.
일부 구현예에서, 현재 이동 정규화 통계치는, 각 컴포넌트들에 대해, 이전의 제1 계층 출력들에 대한 컴포넌트의 이동 평균치, 그리고 상기 제1 계층 출력들의 컴포넌트에 대한 이동 근사 표준 편차를 포함하며, 상기 제1 계층 출력들에 대한 복수의 현재 배치 정규화 통계치를 계산하는 것은, 상기 컴포넌트들 각각에 대해, 상기 현재 배치에서 제1 계층 출력들을 위한 컴포넌트의 평균치를 계산하는 것; 상기 현재 배치에서 제1 계층 출력들의 컴포넌트에 대한 근사 표준 편차를 계산하는 것을 포함한다.
일부 구현예에서, 각 제1 계층 출력의 각 컴포넌트를 정규화하는 단계는 컴포넌트에 대한 계산된 근사 표준 편차 및 상기 계산된 평균치를 사용하여 제1 계층 출력의 컴포넌트를 정규화하는 단계를 포함한다.
일부 구현예에서, 컴포넌트들 각각에 대한 아핀 변환에 대한 각각의 파라미터들을 결정하는 단계는, 각 컴포넌트에 대해,
(i) 상기 컴포넌트에 대한 평균치와 상기 컴포넌트에 대한 이동 평균치 간의 차이와 (ii) 상기 컴포넌트에 대한 이동 근사 표준 편차 사이의 비율로부터 상기 컴포넌트에 대한 제1 파라미터를 결정하는 단계; 그리고
상기 컴포넌트에 대한 상기 근사 표준 편차와 상기 컴포넌트에 대한 이동 근사 표준 편차 사이의 비율로부터 상기 컴포넌트에 대한 제2 파라미터를 결정하는 단계를 포함한다.
일부 구현예들에서, 상기 파라미터들에 따라 정규화된 계층 출력의 각 컴포넌트에 상기 아핀 변환을 적용하는 단계는, 곱(product)을 생성하도록 상기 정규화된 계층 출력의 컴포넌트에 상기 컴포넌트에 대한 제2 파라미터를 곱하는 단계; 그리고 상기 컴포넌트에 대한 제1 변환을 상기 곱에 합산하여 상기 재정규화된 계층 출력의 컴포넌트를 생성하는 단계를 포함한다.
일부 구현예들에서, 제1 파라미터 및 제2 파라미터의 값들은 미리 결정된 범위에 속하도록 제한된다.
일부 구현예들에서, 컴포넌트에 대한 근사 표준 편차는 컴포넌트에 대한 분산(variance)과 미리 결정된 상수 값의 합의 제곱근이다.
일부 구현예에서, 상기 재정규화된 계층 출력들로부터 학습 예에 대한 각각의 배치 재정규화 계층 출력을 생성하는 단계는, 각 컴포넌트에 대해, 상기 컴포넌트에 대한 학습 가능한 파라미터들의 세트의 현재 값들에 따라 상기 학습 예에 대한 재정규화된 계층 출력의 컴포넌트를 변환하는 단계를 포함한다.
일부 구현예에서, 상기 배치 재정규화 계층은, 신경망이 컴포넌트들 각각에 대해 학습 가능한 파라미터들의 학습된 값들을 결정하도록 학습된 후: 새로운 신경망 입력을 위해 상기 제1 신경망 계층에 의해 생성된 새로운 제1 계층 출력을 수신하고; 새로운 재정규화된 계층 출력을 생성하도록 상기 컴포넌트에 대한 각각의 사전계산된 정규화 통계치를 사용하여 새로운 제1 계층 출력의 각 컴포넌트를 정규화하고; 각 컴포넌트에 대해, 상기 컴포넌트에 대한 학습 가능한 파라미터들의 세트의 학습된 값들에 따라 새로운 재정규화된 계층 출력의 컴포넌트를 변환함으로써 새로운 배치 재정규화 계층 출력을 생성하고; 그리고 상기 배치 재정규화 계층 출력을 상기 제2 신경망 계층에 새로운 계층 입력으로서 제공하도록 구성된다.
일부 구현예들에서, 컴포넌트들에 대한 사전 계산된 정규화 통계치는 신경망을 학습한 후의 최종 이동 정규화 통계치이다.
일부 구현예들에서, 컴포넌트들에 대한 사전 계산된 정규화 통계치는 신경망이 학습된 후 제1 신경망 계층에 의해 생성된 새로운 제1 계층 출력들로부터 계산된다.
일부 구현예에서, 상기 아핀 변환 파라미터들은 스케일 파라미터 및 바이어스 파라미터를 포함하고, 각각의 아핀 변환 파라미터들을 결정하는 단계는, 완료된 학습 반복의 수가 미리 결정된 임계 횟수의 학습 반복보다 작은 경우, 스케일 파라미터 값을 1로 하고 바이어스 파라미터 값을 0으로 결정하는 단계를 포함한다.
일부 구현예들에서, 상기 학습 예에 대한 재정규화된 계층 출력을 생성하는 단계는, 상기 컴포넌트가 미리 결정된 범위 내에 놓이도록 상기 재규정화된 계층 출력의 각 컴포넌트를 클리핑하는 단계를 포함한다.
일부 구현예에서, 신경망이 학습된 후 신경망에 의해 프로세싱된 새로운 신경망 입력들은 신경망을 학습시키기 위해 사용된 상기 학습 예들과는 다른 유형의 입력이다.
일부 구현예에서, 제1 신경망 계층은 제1 신경망 계층에 대한 파라미터들의 세트의 현재 값들에 따라 제1 계층 입력들을 수정함으로써 제1 계층 출력들을 생성한다.
일부 구현예에서, 제2 신경망 계층은 비선형 활성화 함수를 배치 재정규화 계층 출력들에 적용함으로써 제2 계층 출력들을 생성한다.
일부 구현예에서, 제1 신경망 계층은 수정된 제1 계층 입력들을 생성하기 위해 파라미터들의 세트의 현재 값들에 따라 제1 계층 입력들을 수정한 다음, 상기 수정된 제1 계층 입력들에 비선형 활성화 함수를 적용함으로써 상기 제1 계층 출력들을 생성한다.
일부 구현예들에서, 상기 신경망은 순방향(feedforward) 신경망이다.
일부 구현예들에서, 신경망은 순환 신경망이다.
제2 양태에 따르면, 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 신경망을 구현하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하는 시스템이 제공되며, 상기 신경망은 신경망 입력들을 수신하고 그리고 신경망 입력들 각각에 대한 신경망 출력을 생성하기 위해 신경망을 프로세싱하도록 구성되고, 상기 신경망은 전술된 배치 재정규화 계층을 포함한다.
제3 양태에 따르면, 전술한 배치 재정규화 계층에 의해 수행되는 오퍼레이션들을 포함하는 방법이 제공된다.
제4 양태에 따르면, 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 전술한 신경망을 구현하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터 저장 매체가 제공된다.
제5 양태에 따르면, 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 전술한 배치 재정규화 계층에 의해 수행되는 오퍼레이션들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터 저장 매체가 제공된다.
본 명세서에 기술된 요지의 특정 실시 예는 다음 장점 중 하나 이상을 실현하도록 구현될 수 있다.
본 명세서에 기술된 바와 같은 신경망 시스템은, 학습 동안, 배치 재정규화 계층 출력들을 생성하는 배치 재정규화 계층들을 포함하는데, 상기 배치 재정규화 계층들은 현재 프로세싱되고 있는 학습 예들의 배치에 대한 정규화 통계치와 전체 학습 데이터의 세트에 대한 정규화 통계치 간의 차이를 조정하기 위한 보정 계수(correction factor)를 포함한다. 따라서, 본 명세서에 기술된 바와 같은 배치 재정규화 계층은 현재 프로세싱되고 있는 배치의 특성들에 대한 배치 재정규화 계층 출력의 의존성을 제거하고, 학습 동안 생성된 배치 재정규화 계층 출력들이 신경망이 학습되면 생성된 배치 재정규화 계층 출력들과 잘 매칭(well-matched)되게 한다.
대조적으로, 일부 종래의 신경망 시스템은 종래의 배치 정규화 계층들을 포함한다. 학습 동안, 종래의 배치 정규화 계층들은 현재 프로세싱중인 학습 예들의 배치의 정규화 통계치에 직접 의존하는 배치 정규화 계층 출력들을 생성하며, 이에 따라 학습 동안 생성된 배치 정규화 계층 출력들과 신경망이 학습되면 생성된 배치 정규화 계층 출력들 간에 불일치가 발생한다. 다른 종래의 신경망 시스템은 네트워크 계층들 사이에서 정규화를 수행하지 않기 때문에, 이전 계층의 파라미터가 변경됨에 따라(즉, 내부 공변량 이동으로 지칭되는 현상) 학습 동안 각 계층의 입력들의 분포가 변경되게 하여 결과적으로 학습의 효과를 감소시킨다.
따라서, 배치 재정규화 계층을 포함함으로써, 본 명세서에 기술된 신경망 시스템은 학습(훈련) 후 우수한 성능 (예를 들어, 예측 정확도)을 가지며, 학습 초기화에 덜 민감하며(예를 들어, 학습 전에 신경망의 파라미터가 초기화되는 방법), 기존의 신경망 시스템보다 더 빨리 (즉, 더 적은 학습 반복으로) 학습될 수 있다.
예를 들어, 학습 동안 생성된 배치 재정규화 계층 출력들이 신경망이 학습되면 생성된 배치 재정규화 계층 출력들과 잘 매칭되게 함으로써, 배치 재정규화 계층은 학습(훈련) 동안 및 학습 후에 유사한 출력들을 생성한다. 따라서, 신경망 시스템의 성능을 향상시키기 위해 학습 동안 신경망 시스템의 파라미터들에 대한 조정은 학습 후 신경망 시스템의 성능을 개선시키며, 이는 배치 재정규화 계층이 학습 동안과 학습 후에 상이한 출력들을 생성한 경우에(예를 들어, 종래의 배치 정규화 계층) 반드시 그런 것은 아니다.
또한, 본 명세서에 기술된 신경망 시스템은 종래의 신경망 시스템보다 더 빨리 학습될 수 있기 때문에, 학습 동안 적은 연산 자원(예를 들어, 메모리 및 컴퓨팅 전력)을 소비한다.
본 명세서의 요지의 하나 이상의 실시 예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어있다. 본 요지의 다른 특징, 양태 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 예시적인 신경망 시스템을 도시한다.
도 2는 신경망의 학습 동안 배치 재정규화 계층을 사용하여 이전 계층 출력들을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 신경망이 학습된 후 배치 재정규화 계층을 사용하여 이전 계층 출력을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 구성요소를 나타낸다.
도 2는 신경망의 학습 동안 배치 재정규화 계층을 사용하여 이전 계층 출력들을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 신경망이 학습된 후 배치 재정규화 계층을 사용하여 이전 계층 출력을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 구성요소를 나타낸다.
도 1은 예시적인 신경망 시스템(100)을 도시한다. 신경망 시스템(100)은 하나 이상의 위치에서의 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 예이며, 여기서 후술되는 시스템, 컴폰너트 및 기술이 구현될 수 있다.
신경망 시스템(100)은 다수의(복수의) 신경망 계층을 포함하는 신경망(120)을 포함한다. 신경망(120)은 각 계층을 통해 신경망 입력을 프로세싱함으로써 신경망 입력으로부터 신경망 출력을 생성한다. 신경망(120)은 순방향 신경망(예를 들어, 다층 퍼셉트론 또는 컨벌루션 신경망), 순환 신경망(예를 들어, LSTM(long short-term memory) 네트워크), 또는 임의의 다른 종류의 신경망일 수 있다.
신경망(120)은 임의의 종류의 디지털 데이터 입력을 수신하고 그리고 입력에 기초하여 임의의 종류의 스코어 또는 분류 출력을 생성하도록 구성될 수 있다.
예를 들어, 신경망(120)으로의 입력이 이미지로부터 추출된 특징 또는 이미지인 경우, 소정의 이미지에 대해 신경망(120)에 의해 생성된 출력은 객체 카테고리의 세트 각각에 대한 스코어일 수 있고, 각각의 스코어는 이미지가 카테고리에 속하는 객체의 이미지를 포함할 것으로 추정되는 가능성을 나타낸다.
다른 예로서, 신경망(120)으로의 입력이 인터넷 자원(예를 들어, 웹 페이지), 문서, 또는 문서의 부분, 또는 인터넷 자원, 문서 또는 문서의 부분으로부터 추출된 특징인 경우, 소정의 인터넷 자원, 문서 또는 문서의 부분에 대해 신경망(120)에 의해 생성된 출력은 토픽 세트 각각에 대한 스코어일 수 있고, 각 스코어는 인터넷 자원, 문서 또는 문서의 부분이 토픽에 관한 것으로 추정된 가능성을 나타낸다.
다른 예로서, 신경망(120)으로의 입력이 특정 광고에 대한 노출 컨텍스트의 특징인 경우, 신경망(120)에 의해 생성된 출력은 특정 광고가 클릭될 가능성을 나타내는 스코어일 수 있다.
다른 예로서, 신경망(120)으로의 입력이 사용자에 대한 개인화된 추천의 특징, 예를 들어, 추천에 대한 컨텍스트를 특징짓는 특징, 예를 들어, 사용자에 의해 취해진 이전 동작을 특징짓는 특징인 경우, 신경망(120)에 의해 생성된 출력은 콘텐츠 아이템 세트 각각에 대한 스코어일 수 있고, 각 스코어는 사용자가 콘텐츠 아이템을 추천하는 데 호의적으로 반응 할 것으로 예상되는 가능성을 나타낸다.
다른 예로서, 신경망(120)에 대한 입력이 하나의 언어로 된 텍스트인 경우, 신경망(120)에 의해 생성된 출력은 다른 언어로 된 텍스트의 부분들(pieces)의 세트 각각에 대한 스코어일 수 있고, 각 스코어(점수)는 다른 언어로 된 텍스트의 부분이 입력 텍스트를 다른 언어로 올바르게 번역한 것으로 추정됨을 나타낸다.
다른 예로서, 신경망(120)에 대한 입력이 음성 발화, 음성 발화의 시퀀스, 또는 둘 중 하나로부터 유도된 특징 인 경우, 신경망(120)에 의해 생성된 출력은 텍스트의 부분들의 세트 각각에 대한 스코어일 수 있고, 각 스코어는 텍스트의 부분(piece)이 발화 또는 발화의 시퀀스에 대한 정확한 트랜스크립트(transcript)일 것으로 예상되는 가능성을 나타낸다.
다른 예로서, 신경망(120)은 자동 완성 시스템의 일부이거나 텍스트 프로세싱 시스템의 일부일 수 있다.
다른 예로서, 신경망(120)은 강화 학습 시스템의 일부일 수 있고 그리고 환경과 상호 작용하는 에이전트에 의해 수행될 액션을 선택하는데 사용되는 출력을 생성할 수 있다.
특히, 신경망(120)의 각 계층은 입력을 수신하고 그리고 그 입력으로부터 출력을 생성하도록 구성된다. 신경망 계층은 각각의 수신된 신경망 입력에 대한 각각의 신경망 출력을 생성하기 위해 신경망(120)에 의해 수신된 신경망 입력을 집합 적으로 프로세싱한다. 신경망 계층의 일부 또는 전부는 신경망 계층에 대한 파라미터 세트의 현재 값들에 따라 입력으로부터 출력을 생성한다. 예를 들어, 일부 계층은 수신된 입력으로부터 출력을 생성하는 부분으로서 상기 수신된 입력에 현재 파라미터 값들의 매트릭스를 곱할 수 있다.
신경망(120)은 또한 신경망 계층 A (104)와 신경망 계층 B (112) 사이에 배치(batch) 재정규화 계층(108)을 포함한다. 배치 재정규화 계층(108)은 신경망(120)의 학습 동안 신경망 계층 A(104)로부터 입력을 수신한 후 하나의 오퍼레이션 세트를 수행하고 그리고 신경망(120)이 학습된 후에 신경망 층 A (104)로부터 입력을 수신한 후에 다른 오퍼레이션 세트를 수행하도록 구성된다.
특히, 신경망(120)은 신경망 계층의 파라미터의 학습된 값을 결정하기 위해 학습(훈련) 예들의 다수의 배치에 대해 학습(훈련)될 수 있다. 학습 예들의 배치(batch)는 여러 학습 예들의 세트이다. 예를 들어, 학습 동안, 신경망(120)은 학습 예들의 배치(102)를 프로세싱하고, 배치(102)의 각 학습(훈련) 예에 대한 각각의 신경망 출력을 생성할 수 있다. 그 다음, 신경망 출력은 예를 들어 종래의 기울기 하강(gradient descent) 및 역전파(backpropagation) 신경망 학습 기술을 통해 신경망 계층의 파라미터들의 값들을 조정하는데 사용될 수 있다.
소정의 훈련 예들의 배치에 대한 신경망(120)의 학습 동안, 배치 재정규화 계층(108)은 배치에서의 학습 예에 대해 신경망 계층 A(104)에 의해 생성된 계층 A 출력(106)을 수신하고, 배치 A에서 각 학습 예에 대해 각각의 배치 재정규화 계층 출력(110)을 생성하기 위해 계층 A 출력(106)을 프로세싱하고, 그 다음 배치 재정규화 계층 출력(110)을 신경망 계층 B(112)에 대한 입력으로서 제공하도록 구성된다. 계층 A 출력(106)은 배치에서의 각각의 학습 예에 대해 신경망 계층 A(104)에 의해 생성된 각각의 출력을 포함한다. 유사하게, 배치 재정규화 계층 출력(110)은 배치에서의 각각의 학습 예에 대해 배치 재정규화 계층(108)에 의해 생성된 각각의 출력을 포함한다.
일반적으로 학습 중에, 배치 재정규화 계층(108)은: (i) 현재 배치에 대한 정규화 통계치를 사용하여 계층 A 출력(106)을 정규화하여 현재 배치에서 각각의 학습 예에 대한 각각의 정규화된 출력을 생성하고, (ii) 아핀 변환(즉, 스케일 파라미터 및 바이어스 파라미터로 파라미터화된 변환)을 사용하여 정규화된 출력을 재정규화하여, 현재 배치에서 각 학습 예에 대한 각각의 재정규화된 출력을 생성하고 그리고 선택적으로 (iii) 신경망 계층 B(112)에 대한 입력으로서 상기 출력을 제공하기 전에 각각의 재정규화된 출력을 변환한다.
배치 재정규화 계층(108)에 의해 정규화된 출력에 적용되어 재정규화된 출력을 생성하는 아핀 변환은 현재 배치에 대한 정규화 통계치와 전체 학습 데이터의 세트에 대한 정규화 통계치 사이의 차이를 수정(correct)한다. 따라서, 상기 아핀 변환은 현재 배치의 특성에 대한 배치 재정규화 계층 출력의 의존성을 제거한다.
이하에서 더 상세히 설명되는 바와 같이, 신경망(120)이 학습되면, 배치 재정규화 계층(108)은 학습 데이터의 임의의 특정 배치의 정규화 통계치에 유사하게 의존하지 않는 사전 연산된 정규화 통계치에 기초하여 계층 A 출력(106)을 정규화함으로써 배치 재정규화 계층 출력(110)을 생성한다. 따라서, 정규화된 출력을 생성하기 위해 아핀 변환을 적용함으로써, 신경망(120)은 학습 동안 배치 재정규화 계층(108)에 의해 생성된 배치 재정규화 계층 출력(110)이 신경망(120)이 학습되면 생성된 배치 재정규화 계층 출력(110)과 잘 매칭되도록 하여, 예를 들어 학습 후 신경망(120)의 성능을 향상시킨다. 특히, 학습(훈련) 동안 배치 재정규화 계층(108)에 의해 생성된 배치 재정규화 계층 출력(110)이 신경망(120)이 학습되면 생성된 배치 재정규화 계층 출력(110)과 잘 매칭되므로, 신경망(120)은 학습 동안 및 학습 후에 유사한 출력을 생성한다. 따라서, 신경망(120)의 성능을 향상시키기 위해 학습 동안 신경망(120)의 파라미터에 대한 조정은 학습 후 신경망(120)의 성능을 향상시키며, 이는 배치 재정규화 계층(108)이 (예를 들어, 종래의 배치 정규화 계층과 같이) 학습 동안과 학습 후에 상이한 출력을 생성한다면 반드시 그러할 필요는 없다.
시스템(100)은 신경망(120)의 선택된 파라미터에 대한 손실 함수의 기울기를 연산하고, 신경망(120)을 통해 상기 기울기를 역전파하여 상기 선택된 파라미터의 값들을 조정함으로써 신경망(120)을 학습(훈련)시킨다. 특히, 시스템(100)은 배치 재정규화 계층(108)의 아핀 변환의 파라미터를 상수로 취급하면서 현재 배치에 대한 정규화 통계치를 통해 역전파함으로써 신경망(120)을 학습시키도록 구성된다. 배치에 대한 정규화 통계치를 통한 역전파는 정규화 통계치를 포함하는 신경망(120)의 파라미터에 대한 손실 함수의 기울기(gradient)를 연산함으로써 기울기 하강을 수행하는 것을 지칭한다. 아핀 변환의 파라미터를 상수로 취급하는 것은 이를 기울기 연산에서 제외하는 것을 지칭한다.
배치 재정규화 계층(108)에 의해 계산(연산)된 아핀 변환의 파라미터 및 정규화 통계치 및 배치 재정규화 계층(108)이 학습 동안 계층 A 출력(106)을 정규화하고 재정규화하는 방식은 계층 A 출력(106)을 생성하는 신경망 계층 A(104)의 특성에 의존한다.
일부 경우에, 신경망 계층 A(104)는 단일 디멘션(dimension)에 의해 인덱싱된 다수의 컴포넌트를 포함하는 출력을 생성하는 계층이다. 예를 들어, 신경망 계층 A(104)는 완전하게 연결된(fully-connected) 신경망 계층일 수 있다.
그러나, 일부 다른 경우에, 신경망 계층 A(104)는 특징 인덱스 및 공간 위치 인덱스 모두에 의해 각각 인덱싱된 다수의 컴포넌트를 포함하는 출력을 생성하는 컨벌루션 계층 또는 다른 종류의 신경망 계층이다. 이들 두 경우 각각에서 신경망(120)의 학습 동안 배치 재정규화 계층 출력을 생성하는 것은 도 2를 참조하여 더 상세히 설명된다.
신경망(120)이 학습되면(즉, 시스템(100)에 의해), 신경망(120)은 프로세싱을 위한 새로운 신경망 입력을 수신할 수 있고 그리고 신경망(120)의 파라미터들의 학습된 값들에 따라 입력에 대한 새로운 신경망 출력을 생성하도록 신경망 계층들을 통해 입력된 신경망 입력을 프로세싱한다. 새로운 신경망 입력의 프로세싱 동안 배치 재정규화 계층(108)에 의해 수행되는 오퍼레이션은 또한 신경망 계층 A(104)의 특성(nature)에 의존한다. 신경망(100)이 학습된 후 새로운 신경망 입력을 프로세싱하는 것은 도 3을 참조하여 보다 상세하게 설명된다.
배치 재정규화 계층(108)은 신경망의 다양한 위치에 (즉, 임의의 적절한 신경망 계층들 사이에) 포함될 수 있고, 일부 구현에서, 다수의 배치 재정규화 계층이 신경망에 포함될 수 있다.
도 1의 예에서, 일부 구현들에서, 신경망 계층 A(104)는 제1 신경망 계층에 대한 파라미터 세트의 현재 값에 따라 계층에 대한 입력을 수정함으로써, 예를 들어, 계층에 대한 입력에 현재 파라미터 값의 매트릭스를 곱함으로써 출력을 생성한다. 이러한 구현들에서, 신경망 계층 B(112)는 배치 재정규화 계층(108)으로부터 출력을 수신하고 그리고 비선형 오퍼레이션, 즉 비선형 활성화 함수를 배치 재정규화 계층 출력(110)에 적용함으로써 출력을 생성할 수 있다. 따라서, 이러한 구현들에서, 배치 재정규화 계층(108)은 종래의 신경망 층 내에 삽입되고, 종래의 신경망 층의 오퍼레이션은 신경망 계층 A(104)와 신경망 계층 B(112) 사이에서 분할된다.
일부 다른 구현들에서, 신경망 계층 A(104)는 파라미터 세트의 현재 값에 따라 계층 입력을 수정하고 그리고 배치 재정규화 계층(108)에 출력을 제공하기 전에 상기 수정된 제1 계층 입력에 비선형 오퍼레이션(연산)을 적용함으로써 출력을 생성한다. 따라서, 이러한 구현에서, 배치 재정규화 계층(108)은 종래의 신경망 계층 뒤에 삽입된다(즉, 종래의 신경망 층으로부터 입력을 수신함).
도 2는 신경망의 학습 동안 배치 재정규화 계층을 사용하여 이전 계층 출력을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 배치 재정규화 계층은 신경망 시스템에 포함되며, 예를 들어 배치 재정규화 계층(108)은 신경망 시스템에 포함된다.
배치 재정규화 계층은 학습 예의 배치에 대한 이전 계층 출력을 수신한다(단계 202). 이전 계층 출력은 신경망에서 배치 재정규화 계층의 이전 계층(즉, 배치 재정규화 계층에 입력으로 출력을 제공하도록 구성된 계층)에 의해 배치에서 각 학습 예에 대해 생성된 각각의 출력을 포함한다.
배치 재정규화 계층은 배치 내의 각 학습 예에 대해 각각의 정규화된 출력을 생성한다(단계 204). 즉, 배치 재정규화 계층은 각각의 수신된 이전 계층 출력으로부터 각각의 정규화된 출력을 생성한다. 구체적으로, 시스템은 이전 계층 출력의 각 컴포넌트에 대응하는 정규화 통계치를 결정하고, 그리고 상기 대응하는 정규화 통계치를 사용하여 각각의 수신된 이전 계층 출력의 각 컴포넌트를 정규화함으로써 상기 수신된 이전 계층 출력으로부터 각각의 정규화된 출력을 생성한다.
일부 경우에, 배치 재정규화 계층의 이전 계층은 단일 디멘션(dimension)(예를 들어, 완전하게 연결된 계층)에 의해 인덱싱된 다수의 컴포넌트를 포함하는 출력을 생성하는 계층이다. 이러한 경우, 배치 재정규화 계층은 각 디멘션에 대해 디멘션에 해당하는 이전 계층 출력의 컴포넌트의 표준 편차 및 평균치(평균)를 포함하는 정규화 통계치를 연계한다. 컴포넌트에 해당하는 정규화 통계치는 컴포넌트에 해당하는 디멘션의 정규화 통계치에 의해 제공된다.
이러한 경우 중 일부에서, 배치 재정규화 계층은 각 디멘션에 대해, 상기 디멘션에 해당하는 하위 계층 출력의 컴포넌트의 표준 편차 및 평균을 포함하는 정규화 통계치를 연산한다. 이어서, 배치 재정규화 계층은 정규화 통계치를 사용하여 하위 레벨 출력들 각각의 각 컴포넌트를 정규화하여 상기 배치 내의 학습 예들 각각에 대한 각각의 정규화된 출력을 생성한다. 특히, 소정의 이전 계층 출력의 소정의 컴포넌트에 대해, 배치 재정규화 계층은 컴포넌트에 대응하는 디멘션에 대해 연산된 표준 편차 및 평균을 사용하여 컴폰넌트를 정규화한다. 예를 들어, 일부 구현들에서, 배치()로부터 출력된 i번째 하위 계층 출력의 번째 디멘션(dimension)에 대응하는 컴포넌트()에 대해, 정규화된 출력()은 수학식 1을 만족시킨다.
여기서, 는 배치()에서 이전 계층 출력들의 번째 디멘션에 대응하는 컴포넌트들의 평균이며, 는 배치()에서 하위 계층 출력들의 번째 디멘션에 대응하는 컴포넌트들의 표준 편차이다. 일부 구현에서, 상기 표준 편차는 와 동일한 수치적으로 안정적인 표준 편차이며, 는 상수 값(예: 작은 양의 상수)이며, 는 배치()에서 하위 계층 출력의 번째 디멘션에 대응하는 컴폰넌트의 분산이다.
다른 경우에, 배치 재정규화 계층 이전의 신경망 계층은 특징 인덱스 및 공간 위치 인덱스에 의해 각각 인덱스되는 다수의 컴포넌트를 포함하는 출력을 생성하는 신경망 계층이다(예를 들어, 컨벌루션 계층). 이 경우, 배치 재정규화 계층은 각 특성 인덱스에 대해, 특성 인덱스에 대응하는 하위 계층 출력의 컴포넌트의 표준 편차 및 평균을 포함하는 정규화 통계치를 연산한다. 컴포넌트에 대응하는 정규화 통계치는 컴포넌트에 대응하는 특징 인덱스의 정규화 통계치에 의해 제공된다.
이들 경우 중 일부에서, 배치 재정규화 계층은 각각의 가능한 특징 인덱스 및 공간 위치 인덱스 조합에 대해, 그 특징 인덱스 및 공간 위치 인덱스를 갖는 이전 계층 출력의 컴포넌트의 분산 및 평균을 연산한다. 그 다음, 배치 재정규화 계층은 특징 인덱스(feature index)를 포함하는 특징 인덱스 및 공간 위치 인덱스 조합들에 대한 평균들(means)의 애버리지(average)와 그리고 특징 인덱스를 포함하는 특징 인덱스 및 공간 위치 인덱스 조합들에 대한 분산(variance)들의 애버리지를 연산함으로써 각 특징 인덱스에 대한 정규화 통계치를 연산한다.
이어서, 배치 재정규화 계층은 정규화 통계치를 사용하여 각각의 하위 레벨 출력의 각 컴포넌트를 정규화한 다음 배치 내의 각각의 학습 예에 대한 각각의 정규화된 출력을 생성한다. 특히, 소정의 출력의 소정의 컴포넌트에 대해, 배치 재정규화 계층은, 예를 들어 배치 재정규화 계층 이전의 계층이 단일 디멘션에 의해 인덱싱된 출력들을 생성할 때 전술한 것과 동일한 방식으로, 컴포넌트에 대응하는 특징 인덱스에 대한 애버리지 평균 및 애버리지 분산을 사용하여 컴포넌트를 정규화한다.
다른 경우에, 배치 재정규화 계층은 특징 인덱스에 대응하는, 즉 특징 인덱스를 갖는 이전 계층 출력의 컴포넌트들의 분산 및 평균을 연산함으로써 각 특징 인덱스에 대한 정규화 통계치를 연산한다. 이어서, 배치 재정규화 계층은 특징 인덱스에 대한 정규화 통계치를 사용하여 이전의 계층 출력들의 각각의 컴포넌트를 정규화하여 배치 내의 각각의 학습 예에 대한 각각의 정규화된 출력을 생성한다. 특히, 소정의 출력의 소정의 컴포넌트에 대해, 배치 재정규화 계층은 예를 들어 배치 재정규화 계층 이전의 계층이 단일 디멘션(single dimension)에 의해 인덱싱된 출력을 생성할 때 전술한 것과 동일한 방식으로, 컴포넌트에 대응하는 특징 인덱스에 대한 분산 및 평균을 사용하여 컴포넌트를 정규화한다.
배치 재정규화 계층은 배치 내의 각 학습 예에 대해 각각의 재정규화된 출력을 생성한다(단계 206). 특히, 배치 재정규화 계층은 이전 계층 출력의 각 컴포넌트에 대한 아핀 변환을 결정한다. 배치 재정규화 계층은 컴포넌트에 대응하는 아핀 변환에 의해 이전 계층 출력에 대응하는 정규화된 출력의 각 컴포넌트를 변환함으로써 각각의 이전 계층 출력에 대한 각각의 재정규화된 출력을 생성한다.
배치 재정규화 계층은 (예를 들어, 204를 참조하여 설명된) 컴포넌트에 대한 정규화 통계치 및 컴포넌트에 대한 이동 정규화 통계치에 기초하여 컴포넌트에 대한 아핀 변환의 파라미터를 결정한다.
특히, 배치 재정규화 계층은 각 컴포넌트에 대한 이동 정규화 통계피를 유지한다. 컴포넌트에 대한 이동 정규화 통계치는 컴포넌트에 대한 정규화 통계치의 이동 애버리지이다(특히 평균 및 표준 편차 정규화 통계치). 이동 애버리지는 이전 학습 반복 동안 프로세싱된 학습 예들의 배치들에 대한 컴포넌트에 대해 결정된 정규화 통계치와 관련하여 연산된다. 배치 재정규화 계층은 210을 참조하여 더 설명된 바와 같이, 각 학습 반복에서 각 컴포넌트에 대한 이동 정규화 통계치를 업데이트한다.
배치 재정규화 계층은 컴포넌트에 대한 아핀 변환의 바이어스 파라미터 및 스케일 파라미터를 수학식 2와 같이 결정한다.
여기서, 은 스케일 파라미터이며, 는 바이어스 파라미터이며, 는 현재 배치의 컴포넌트에 대한 표준 편차 정규화 통계치이며, 는 컴포넌트에 대한 표준 편차 이동 정규화 통계치이며, 는 현재 배치의 컴포넌트에 대한 평균 정규화 통계치이며, 는 컴포넌트의 평균 이동 정규화 통계치이다.
일부 구현들에서, 미리 결정된 수의 초기 학습 반복들에 대해, 각 컴포넌트에 대한 아핀 변환의 스케일 파라미터 및 바이어스 파라미터의 값은 각각 값 1 및 0에 고정된다. 아핀 변환의 파라미터들의 값들이 상기 값들로 고정되면, 배치 재정규화 계층의 오퍼레이션은 종래의 배치 정규화 계층의 오퍼레이션과 동일하다.
일부 구현들에서, 각각의 컴포넌트에 대한 아핀 변환의 스케일 파라미터 및 바이어스 파라미터의 값들은 미리 결정된 범위 내에 있도록 제한된다. 예를 들어, 각 컴포넌트에 대한 스케일 파라미터의 값은 와 같은 형식의 범위 내에 있도록 제한될 수 있다. 여기서, 는 양수 값(예: 임의로 또는 교차 검증 하이퍼 파라미터 선택 프로세스에 의해 선택됨)이며, 각 컴포넌트에 대한 바이어스 파라미터의 값은 와 같은 형식의 범위 내에 있도록 제한될 수 있다. 여기서 는 양수 값이다. 아핀 변환의 파라미터의 값이 미리 결정된 범위 밖에 있는 것으로 결정되면, 배치 재정규화 계층은 파라미터 값을 클립핑(clip)하여 미리 결정된 범위 내에 놓이게 한다. 아핀 변환 파라미터들에 대한 허용 가능한 값들의 미리 결정된 범위들은 학습 반복들마다 다를 수 있다. 예를 들어, 아핀 변환 파라미터에 대한 허용 값들의 미리 결정된 범위의 사이즈는 상기 사이즈가 미리 결정된 최대 값에 도달할 때까지 다수의 반복에 걸쳐 점진적으로 증가될 수 있다.
배치 재정규화 계층은 아핀 변환을 사용하여 각각의 정규화된 출력의 각 컴포넌트를 재정규화하여 배치 내의 각각의 학습 예에 대해 각각의 재정규화된 출력을 생성한다. 특히, 소정의 정규화된 출력의 소정의 컴포넌트에 대해, 배치 재정규화 계층은 예를 들어, 수학식 3과 같이, 컴포넌트에 대해 결정된 파라미터를 갖는 아핀 변환을 사용하여 재정규화된 출력의 상기 대응하는 컴포넌트를 생성한다.
여기서, 는 재정규화된 출력의 컴포넌트이며, 는 정규화된 출력의 컴포넌트이며, 는 컴포넌트에 대한 아핀 변환의 스케일 파라미터이며, 는 컴포넌트에 대한 아핀 변환의 바이어스 파라미터이다.
선택적으로, 배치 재정규화 계층은 각각의 재정규화된 출력의 각 컴포넌트를 고정된 범위(예를 들어, 범위 [-c, + c])에 놓도록 클립핑하며, 여기서 c는 양수이다. 상기 클리핑 오퍼레이션은 재정규화된 출력의 컴포넌트(즉, 배치의 다른 학습 예에서 해당 컴포넌트보다 훨씬 크거나 작은 컴포넌트)에서 이상 값(outliers)을 제거하는 효과가 있다. 결과적으로, 이는 시스템을 통해 큰 기울기가 역전파되고 학습을 불안정하게 할 가능성을 감소시킨다.
배치 재정규화 계층은 배치에서 각각의 학습 예에 대한 각각의 배치 재정규화 계층 출력을 생성한다(208).
일부 구현에서, 배치 재정규화 계층은 배치 재정규화 계층의 학습 가능한 파라미터 세트(파라미터들의 세트)의 현재 값들에 따라 (예를 들어, 206에서 결정된 바와 같이) 학습 예에 대한 재정규화된 출력을 변환(transforming)함으로써 학습 예에 대한 배치 재정규화 계층 출력을 결정한다.
배치 재정규화 계층 이전의 계층이 단일 디멘션으로 인덱싱된 여러 컴포넌트를 포함하는 출력을 생성하는 계층인 경우, 배치 재정규화 계층은 상기 디멘션에 대한 파라미터 세트의 현재 값들에 따라 디멘션에서 각각의 재정규화된 출력의 컴포넌트를 각 디멘션에 대해 변환한다. 즉, 배치 재정규화 계층은 각 디멘션에 대한 각각의 파라미터 세트를 유지하고, 이들 파라미터를 사용하여 디멘션에서 재정규화된 출력의 컴포넌트에 변환(transformation)을 적용한다. 파라미터들의 세트들의 값들은 신경망 시스템의 학습의 일부로서 조정된다. 예를 들어, 일부 경우에, i번째 재정규화된 출력의 k번째 디멘션에 대응하는 컴포넌트()에 대해, i번째 배치 재정규화 계층 출력()의 k번째 디멘션은 수학식 4를 만족한다.
배치 재정규화 계층 이전의 계층이 특징 인덱스 및 공간 위치 인덱스 모두에 의해 각각 인덱싱된 다수의 컴포넌트를 포함하는 출력을 생성하는 신경망 계층인 경우, 배치 재정규화 계층은, 각각의 재정규화된 출력의 각 컴포넌트에 대해, 컴포넌트에 대응하는 특징 인덱스에 대한 파라미터 세트의 현재 값들에 따라 상기 컴포넌트를 변환한다. 즉, 배치 재정규화 계층은 각각의 특징 인덱스에 대한 각각의 파라미터 세트를 유지하고, 이러한 파라미터를 사용하여, 예를 들어 배치 재정규화 계층 아래의 계층이 단일 디멘션에 의해 인덱싱된 출력을 생성할 때 상술한 것과 동일한 방식으로, 특징 인덱스를 갖는 재정규화된 출력의 컴포넌트에 변환을 적용한다. 상기 파라미터 세트의 값들은 신경망 시스템의 학습의 일부로서 조정된다.
다른 구현에서, 배치 재정규화 계층은 학습 예에 대한 배치 재정규화 계층 출력을 학습 예에 대한 재정규화된 출력으로 결정한다(206에서 결정된 바와 같이).
배치 재정규화 계층은 이동 정규화 통계의 값들을 업데이트한다(210). 배치 재 정규화 계층은 이전 계층 출력들의 각 컴포넌트에 대한 이동 정규화 통계치(statistics)를 유지하며, 이는 이전 학습 반복에서 프로세싱된 학습 예들의 배치들에 대해 컴포넌트에 대한 정규화 통계치(특히, 204에서 설명한 평균 및 표준 편차 정규화 통계치)의 이동 애버리지(moving averages)이다. 배치 재정규화 계층은 예를 들어 관계식에 따라 각 학습 반복에서 각 컴포넌트의 이동 정규화 통계치를 업데이트한다.
여기서, 는 할당(assignment) 오퍼레이션을 나타내며, 는 배치의 컴포넌트에 대한 표준 편차 정규화 통계치이며, 는 컴포넌트의 표준 편차 이동 정규화 통계치이며, 는 배치의 컴폰넌트에 대한 평균 정규화 통계치이며, 는 컴포넌트의 평균 이동 정규화 통계치이다.
배치 재정규화 계층은 배치 재정규화 계층 이후의 계층(즉, 배치 재정규화 계층 출력들을 수신하도록 구성된 계층)으로의 입력으로서 배치 재정규화 계층 출력들을 제공한다(단계 212).
도 3은 신경망이 학습된 후 배치 재정규화 계층을 사용하여 이전 계층 출력을 프로세싱하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절하게 프로그램된, 신경망 시스템에 포함된 배치 재정규화 계층, 예를 들어, 도 1의 신경망 시스템(100)에 포함된 배치 재정규화 계층(108)은 프로세스(300)를 수행할 수 있다.
배치 재정규화 계층은 현재 프로세싱되고 있는 신경망 입력에 대한 이전 계층 출력을 수신한다(단계 302).
배치 재정규화 계층은 신경망 입력에 대한 정규화된 출력을 생성한다(단계 304). 구체적으로, 배치 재정규화 계층은 컴포넌트에 대한 사전 연산된 정규화 통계치(통계)에 따라 이전 계층 출력의 각 컴포넌트를 조정한다. 경우에 따라, 컴포넌트에 대한 사전 연산된 정규화 통계치는 사전 연산된 평균 정규화 통계치() 및 사전 연산된 표준 편차 정규화 통계치()에 의해 제공되며, 배치 재정규화 계층은 이전 계층 출력의 해당 컴포넌트()에서 정규화된 출력의 컴포넌트()를 수학식 5와 같이 생성한다.
일부 구현에서, 컴포넌트에 대한 사전 연산된 정규화 통계치(통계)는 신경망 학습의 최종 반복 후에 (즉, 210을 참조하여 설명됨) 컴포넌트에 대한 이동 정규화 통계의 값들에 의해 주어진다.
다른 구현에서, 신경망을 학습시키기 위해 사용된 학습 데이터에 포함되지 않은 신경망 입력들을 프로세싱하는 동안 이전 계층에 의해 생성된 출력들에 기초하여 신경망이 학습된 후에 컴포넌트에 대한 사전 연산된 정규화 통계치가 생성된다.
특히, 일부 경우에, 예를 들어, 새로운 신경망 입력이 학습 예들과는 다른 종류의 입력들인 경우, 네트워크 입력의 분포(distribution), 즉 이전 계층 출력들의 분포는 학습 동안 사용된 학습 예와 신경망 시스템이 학습된 후 사용된 새로운 신경망 입력 사이에서 변경될 수 있다. 예를 들어, 신경망은 사용자 이미지들에 대해 학습되어 비디오 프레임들을 프로세싱하는 데 사용될 수 있다. 사용자 이미지들과 비디오 프레임들은 이미지의 클래스, 이미지 속성, 구성(composition) 등의 측면에서 다른 분포를 가질 수 있다. 따라서, 학습 데이터에 기초한 정규화 통계치는 새로운 입력에 대해 생성되는 이전 계층 출력의 통계치를 정확하게 캡처하지 못할 수 있다. 따라서, 이러한 경우에, 배치 재정규화 계층은 학습 후 배치 재정규화 계층 아래의 계층에 의해 생성된 하위 계층 출력으로부터 연산된 정규화 통계치를 사용할 수 있다.
204를 참조하여 설명된 바와 같이, 정규화 통계치의 연산은 이전 계층 출력의 컴포넌트가 단일 디멘션(예를 들어, 이전 계층이 완전하게 연결된 계층인 경우)에 의해 인덱싱되는지 또는 특징 인덱스 및 공간 인덱스에 의해 공동으로 인덱싱되는지(예를 들어, 이전 레이어는 컨벌루션 계층인 경우)에 따라 다르다.
배치 재정규화 계층은 신경망 입력에 대한 배치 재정규화 계층 출력을 생성한다(306).
일부 구현들에서, 배치 재정규화 계층은 컴포넌트와 연관된 학습 가능한 파라미터 세트의 학습된 값에 따라 신경망 입력에 대한 정규화된 출력의 각 컴포넌트를 변환함으로써 신경망 입력에 대한 배치 재정규화 계층 출력을 결정한다(208을 참조하여 설명됨). 선택적으로, 컴포넌트와 관련된 학습 가능한 파라미터 세트의 학습된 값에 따라 정규화된 출력의 각 컴포넌트를 변환하기 전에, 배치 재정규화 계층은 (206을 참조하여 설명된 바와 같이) 고정된 범위에 있도록 정규화된 출력을 클리핑할 수 있다.
다른 구현에서, 배치 재정규화 계층은 신경망 입력에 대한 배치 재정규화 계층 출력을 신경망 입력에 대한 정규화된 출력으로 결정한다.
배치 재정규화 계층은 배치 재정규화 계층 이후 계층에 입력으로서 배치 재정규화 층 출력을 제공한다(308).
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 특정 동작이나 액션을 수행하도록 구성된 하나 이상의 컴퓨터 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 인해 시스템이 동작 또는 액션을 수행하도록 한다. 특정 동작 또는 액션을 수행하도록 구성된 하나 이상의 컴퓨터 프로그램은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 그 장치로 하여금 동작 또는 액션을 수행하게 하는 명령어들을 포함함을 의미한다.
본 명세서에서 설명된 요지 및 기능적 동작의 실시 예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어로 구현될 수 있으며, 이는 본 명세서에 개시된 구조 및 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함한다. 본 명세서에서 설명된 요지의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위한 유형적인 비 일시적 저장 매체상에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 시리얼 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 전파된 신호, 예를 들어, 기계-생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 또한 특수 목적 논리 회로, 예를 들어, FPGA (field programmable gate array) 또는 ASIC(application specific integrated circuit)일 수 있거나, 포함할 수 있다. 상기 장치는 하드웨어 외에, 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 하나 이상의 이들의 조합을 구성하는 코드와 같은 실행 환경을 생성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어 또는 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈로서, 컴포넌트, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치를 포함하여 어떤 형태로든 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 프로그램은 마크 업 언어 문서에 저장된 하나 이상의 스크립트와 같은 다른 프로그램이나 데이터를 보유하고 있는 파일의 일부분, 해당 프로그램 전용의 단일 파일 또는 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일과 같은 다수의 조정된 파일에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 데이터 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 용어 "엔진"은 하나 이상의 특정 기능을 수행하도록 프로그램된 소프트웨어 기반 시스템, 서브 시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴폰너트로 구현된다. 어떤 경우에는 하나 이상의 컴퓨터가 특정 엔진에 전용되며, 다른 경우에 복수의 엔진은 동일한 컴퓨터 또는 컴퓨터들에 설치하고 실행할 수 있다.
본 명세서에서 설명되는 프로세스 및 로직 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 특수 목적 로직 회로, 예를 들어 FPGA 또는 ASIC에 의해, 또는 특수 목적 로직 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 모두 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령어를 수행하거나 실행하기 위한 중앙 처리 장치 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 처리 장치 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 또는 그 안에 포함될 수 있다. 일반적으로, 컴퓨터는 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 하나 이상의 대용량 저장 장치에 전송하기 위해 동작 가능하게 결합될 것이다. 그러나, 컴퓨터에는 이러한 장치가 있을 필요가 없다. 또한, 컴퓨터는 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 위치 확인 시스템(GPS) 수신기 또는 휴대용 저장 장치(예를 들어 범용 직렬 버스(USB) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 요지의 실시 예는 정보를 사용자에게 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치와, 예를 들어 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치 및 키보드를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치가 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있으며, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 장치상의 웹 브라우저에 웹 페이지를 전송함으로써 수행될 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인용 장치(예를 들어, 메시징 애플리케이션을 실행중인 스마트폰)에 송신하고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다. 기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한, 예를 들어, 기계 학습 훈련 또는 생성, 즉 추론, 워크로드의 공통 및 연산 중심 부분을 처리하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 텐서플로우(TensorFlow) 프레임워크, "Microsoft Cognitive Toolkit" 프레임워크, "Apache Singa" 프레임워크 또는 "Apache MXNet" 프레임워크와 같은 기계 학습 프레임워크를 사용하여 구현 및 배치할 수 있다.
본 명세서에서 설명된 요지의 실시 예는 예를 들어 데이터 서버와 같은 백 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어, 그래픽 사용자 인터페이스, 웹 브라우저 또는 사용자가 본 명세서에 설명된 요지의 구현예와 상호 작용할 수 있는 앱을 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 하나 이상의 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN) 및 광역 통신망(WAN), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시 예에서, 서버는 예를 들어, 클라이언트로서 동작하는 장치와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예컨대 HTML 페이지를 사용자 장치로 송신한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호 작용의 결과는 그 장치로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시 예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시 예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 상술된 바와 같이 초기에 주장될지라도, 어떤 경우에는 청구된 조합으로부터의 하나 이상의 특징이 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들이 도면들에 도시되고 특정 순서로 청구 범위들에 인용되어 있지만, 이는 바람직한 동작을 달성하기 위해 이러한 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시 예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시 예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
본 발명의 특정 실시 예가 설명되었다. 다른 실시 예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 열거된 동작은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성한다. 일례로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로하지는 않는다. 어떤 경우에는 멀티태스킹 및 병렬 처리가 유리할 수 있다.
Claims (27)
- 시스템으로서,
하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 신경망을 구현하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하며,
상기 신경망은 제1 신경망 계층과 제2 신경망 계층 사이의 배치 재정규화 계층을 포함하며, 상기 제1 신경망 계층은 복수의 컴포넌트들을 갖는 제1 계층 출력들을 생성하며,
상기 배치 재정규화 계층은, 학습 예들(training examples)의 현재 배치(batch)에 대한 상기 신경망의 학습 동안,
학습 예들의 이전 배치들에 대해 상기 신경망의 학습 동안 제1 신경망 계층에 의해 생성된 이전의 제1 계층 출력들에 기초한 상기 복수의 컴포넌트들 각각에 대한 현재 이동 정규화 통계치를 획득하고;
상기 현재 배치에서 각각의 학습 예에 대한 각각의 제1 계층 출력을 수신하고;
상기 현재 배치에서의 상기 학습 예들에 대한 제1 계층 출력들로부터 상기 복수의 컴포넌트들 각각에 대한 현재 배치 정규화 통계치를 계산하고;
현재 이동 정규화 통계치 및 현재 배치 정규화 통계치로부터 상기 복수의 컴포넌트들 각각에 대한 아핀 변환(affine transform)에 대한 각각의 아핀 변환 파라미터들을 결정하고; 그리고
상기 현재 배치에서의 상기 학습 예들 각각에 대한 상기 제1 계층 출력들 각각에 대해,
컴포넌트에 대한 상기 현재 배치 정규화 통계치를 사용하여 상기 제1 계층 출력의 각 컴포넌트를 정규화하여 상기 학습 예에 대한 정규화된 계층 출력을 생성하고;
상기 학습 예에 대한 재정규화된 계층 출력을 생성하도록 상기 컴포넌트에 대한 아핀 변환 파라미터들에 따라 상기 정규화된 계층 출력의 각 컴포넌트에 상기 아핀 변환을 적용하고;
상기 재정규화된 계층 출력으로부터 학습 예에 대한 배치 재정규화 계층 출력을 생성하고,
상기 배치 재정규화 계층 출력을 상기 제2 신경망 계층에 대한 입력으로서 제공하도록 구성되는 것을 특징으로 하는 시스템. - 제1항에 있어서, 상기 배치 재정규화 계층은,
상기 컴포넌트에 대한 상기 현재 배치 정규화 통계치를 사용하여 각 컴포넌트에 대한 상기 현재 이동 정규화 통계치를 업데이트하여 상기 컴포넌트에 대한 업데이트된 이동 정규화 통계치를 생성하도록 더 구성되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 신경망의 학습 동안, 상기 시스템은 상기 이동 정규화 통계치 및 상기 아핀 변환의 파라미터들을 상수로 취급하면서 상기 신경망의 파라미터들의 값들의 조정의 일부로서 상기 현재 배치 정규화 통계치를 통해 역전파되도록 구성되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 복수의 컴포넌트들은 상기 제1 계층 출력들의 각각의 디멘션(dimension)들인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 제1 신경망 계층은 컨벌루션 계층이며, 상기 제1 계층 출력들은 복수의 특징 맵들을 포함하고, 각 컴포넌트는 각각의 특징 맵인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 현재 이동 정규화 통계치는, 컴포넌트들 각각에 대해,
상기 이전의 제1 계층 출력들에 대한 컴포넌트의 이동 평균(mean), 그리고
상기 제1 계층 출력들의 컴포넌트에 대한 이동 근사 표준 편차를 포함하며,
상기 제1 계층 출력들에 대한 복수의 현재 배치 정규화 통계치를 계산하는 것은, 상기 컴포넌트들 각각에 대해,
상기 현재 배치에서 상기 제1 계층 출력들에 대한 컴포넌트의 평균을 계산하는 것;
상기 현재 배치에서 상기 제1 계층 출력들의 컴포넌트에 대한 근사 표준 편차를 계산하는 것을 포함하는 것을 특징으로 하는 시스템. - 제6항에 있어서,
각 제1 계층 출력의 각 컴포넌트를 정규화하는 것은,
상기 컴포넌트에 대한 연산된 근사 표준 편차 및 상기 연산된 평균을 사용하여 상기 제1 계층 출력의 컴포넌트를 정규화하는 것을 특징으로 하는 시스템. - 제6항에 있어서,
상기 컴포넌트들 각각에 대한 아핀 변환에 대한 각각의 파라미터들을 결정하는 것은, 각 컴포넌트에 대해,
(i) 상기 컴포넌트에 대한 평균과 상기 컴포넌트에 대한 이동 평균 간의 차이와 (ii) 상기 컴포넌트에 대한 이동 근사 표준 편차 사이의 비율(ratio)로부터 상기 컴포넌트에 대한 제1 파라미터를 결정하는 것; 그리고
상기 컴포넌트에 대한 상기 근사 표준 편차와 상기 컴포넌트에 대한 이동 근사 표준 편차 사이의 비율로부터 상기 컴포넌트에 대한 제2 파라미터를 결정하는 것을 특징으로 하는 시스템. - 제8항에 있어서,
상기 파라미터들에 따라 정규화된 계층 출력의 각 컴포넌트에 상기 아핀 변환을 적용하는 것은,
곱(product)을 생성하도록 상기 정규화된 계층 출력의 컴포넌트에 상기 컴포넌트에 대한 제2 파라미터를 곱하는 것; 그리고
상기 컴포넌트에 대한 제1 변환을 상기 곱에 합산하여 상기 재정규화된 계층 출력의 컴포넌트를 생성하는 것을 포함하는 것을 특징으로 하는 시스템. - 삭제
- 제6항에 있어서,
상기 컴포넌트에 대한 근사 표준 편차는 컴포넌트에 대한 분산(variance)과 미리 결정된 상수 값의 합의 제곱근인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 재정규화된 계층 출력으로부터 학습 예에 대한 각각의 배치 재정규화 계층 출력을 생성하는 것은,
각 컴포넌트에 대해, 상기 컴포넌트에 대한 학습 가능한 파라미터들의 세트의 현재 값들에 따라 상기 학습 예에 대한 재정규화된 계층 출력의 컴포넌트를 변환하는 것을 포함하는 것을 특징으로 하는 시스템. - 제12항에 있어서,
상기 배치 재정규화 계층은, 상기 신경망이 컴포넌트들 각각에 대해 학습 가능한 파라미터들의 학습된 값들을 결정하도록 학습된 후,
새로운 신경망 입력을 위해 상기 제1 신경망 계층에 의해 생성된 새로운 제1 계층 출력을 수신하고;
새로운 재정규화된 계층 출력을 생성하도록 상기 컴포넌트에 대한 각각의 사전 연산된 정규화 통계치를 사용하여 상기 새로운 제1 계층 출력의 각 컴포넌트를 정규화하고;
각 컴포넌트에 대해, 상기 컴포넌트에 대한 학습 가능한 파라미터들의 세트의 학습된 값들에 따라 상기 새로운 재정규화된 계층 출력의 컴포넌트를 변환함으로써 새로운 배치 재정규화 계층 출력을 생성하고; 그리고
상기 배치 재정규화 계층 출력을 상기 제2 신경망 계층에 새로운 계층 입력으로서 제공하도록 구성되는 것을 특징으로 하는 시스템. - 제13항에 있어서,
상기 컴포넌트들에 대한 사전 연산된 정규화 통계치는 상기 신경망을 학습한 후의 최종 이동 정규화 통계치인 것을 특징으로 하는 시스템. - 제13항에 있어서,
상기 컴포넌트들에 대한 사전 연산된 정규화 통계치는 상기 신경망이 학습된 후 제1 신경망 계층에 의해 생성된 새로운 제1 계층 출력들로부터 연산되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 아핀 변환 파라미터들은 스케일 파라미터 및 바이어스 파라미터를 포함하고, 각각의 아핀 변환 파라미터들을 결정하는 것은,
완료된 학습 반복의 수가 미리 결정된 임계 횟수의 학습 반복보다 작은 경우, 상기 스케일 파라미터 값을 1로 결정하고 상기 바이어스 파라미터 값을 0으로 결정하는 것을 포함하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 학습 예에 대한 재정규화된 계층 출력을 생성하는 것은,
상기 컴포넌트가 미리 결정된 범위 내에 놓이도록 재규정화된 계층 출력의 각 컴포넌트를 클리핑하는 것을 더 포함하는 것을 특징으로 하는 시스템. - 제15항에 있어서,
상기 신경망이 학습된 후 상기 신경망에 의해 프로세싱된 새로운 신경망 입력들은 상기 신경망을 학습시키기 위해 사용된 상기 학습 예들과는 다른 유형의 입력인 것을 특징으로 하는 시스템. - 제1항에 있어서, 상기 제1 신경망 계층은,
상기 제1 신경망 계층에 대한 파라미터들의 세트의 현재 값들에 따라 제1 계층 입력들을 수정함으로써 제1 계층 출력들을 생성하는 것을 특징으로 하는 시스템. - 제19항에 있어서,
상기 제2 신경망 계층은 비선형 활성화 함수를 상기 배치 재정규화 계층 출력들에 적용함으로써 제2 계층 출력들을 생성하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 제1 신경망 계층은 수정된 제1 계층 입력들을 생성하기 위해 파라미터들의 세트의 현재 값들에 따라 제1 계층 입력들을 수정한 다음, 상기 수정된 제1 계층 입력들에 비선형 활성화 함수를 적용함으로써 상기 제1 계층 출력들을 생성하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 신경망은 순방향(feedforward) 신경망인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 신경망은 순환 신경망인 것을 특징으로 하는 시스템. - 시스템으로서,
하나 이상의 컴퓨터들;
상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 신경망을 구현하게 하는 명령어들을 저장하는 하나 이상의 저장 장치들을 포함하며,
상기 신경망은 신경망 입력들을 수신하고 그리고 상기 신경망 입력들 각각에 대한 신경망 출력을 생성하도록 상기 신경망을 프로세싱하도록 구성되고,
상기 신경망은 제1항 내지 제9항, 제11항 내지 제23항 중 어느 한 항의 상기 배치 재정규화 계층을 포함하는 것을 특징으로 하는 시스템. - 방법으로서,
제1항 내지 제9항, 제11항 내지 제23항 중 어느 한 항의 상기 배치 재정규화 계층에 의해 수행되는 오퍼레이션들을 포함하는 방법. - 하나 이상의 컴퓨터 저장 매체로서,
하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제9항, 제11항 내지 제24항 중 어느 한 항의 상기 신경망을 구현하게 하는 명령어들을 저장하는 것을 특징으로 하는 하나 이상의 컴퓨터 저장 매체. - 하나 이상의 컴퓨터 저장 매체로서,
하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제9항, 제11항 내지 제23항 중 어느 한 항의 상기 배치 재정규화 계층에 의해 수행되는 오퍼레이션들을 수행하게 하는 명령어들을 저장하는 것을 특징으로 하는 하나 이상의 컴퓨터 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762457649P | 2017-02-10 | 2017-02-10 | |
US62/457,649 | 2017-02-10 | ||
PCT/US2018/017597 WO2018148526A1 (en) | 2017-02-10 | 2018-02-09 | Batch renormalization layers |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190113952A KR20190113952A (ko) | 2019-10-08 |
KR102300614B1 true KR102300614B1 (ko) | 2021-09-09 |
Family
ID=61283320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197026511A KR102300614B1 (ko) | 2017-02-10 | 2018-02-09 | 배치 재정규화 계층 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10671922B2 (ko) |
EP (1) | EP3563306B1 (ko) |
JP (1) | JP6876814B2 (ko) |
KR (1) | KR102300614B1 (ko) |
CN (1) | CN110291540A (ko) |
WO (1) | WO2018148526A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110291540A (zh) | 2017-02-10 | 2019-09-27 | 谷歌有限责任公司 | 批再归一化层 |
US11934944B2 (en) | 2018-10-04 | 2024-03-19 | International Business Machines Corporation | Neural networks using intra-loop data augmentation during network training |
US12033067B2 (en) * | 2018-10-31 | 2024-07-09 | Google Llc | Quantizing neural networks with batch normalization |
US10325185B1 (en) * | 2019-01-23 | 2019-06-18 | StradVision, Inc. | Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same |
US11562201B2 (en) | 2019-02-25 | 2023-01-24 | Microsoft Technology Licensing, Llc | Neural network layer processing with normalization and transformation of data |
KR102046113B1 (ko) * | 2019-03-19 | 2019-11-18 | 주식회사 루닛 | 신경망 학습 방법 및 그 장치 |
CN110390394B (zh) * | 2019-07-19 | 2021-11-05 | 深圳市商汤科技有限公司 | 批归一化数据的处理方法及装置、电子设备和存储介质 |
CN112801287A (zh) * | 2021-01-26 | 2021-05-14 | 商汤集团有限公司 | 神经网络性能评估方法及装置、电子设备及存储介质 |
JP7211556B1 (ja) * | 2021-06-09 | 2023-01-24 | コニカミノルタ株式会社 | ニューラル・ネットワーク・システム |
WO2023028908A1 (en) * | 2021-09-01 | 2023-03-09 | Intel Corporation | Dynamic temporal normalization for deep learning in video understanding applications |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346915A (ja) * | 1992-01-30 | 1993-12-27 | Ricoh Co Ltd | 学習機械並びにニューラルネットワークおよびデータ分析装置並びにデータ分析方法 |
WO2006000103A1 (en) * | 2004-06-29 | 2006-01-05 | Universite De Sherbrooke | Spiking neural network and use thereof |
JP2015215837A (ja) * | 2014-05-13 | 2015-12-03 | 株式会社デンソー | 演算処理装置 |
US10289962B2 (en) * | 2014-06-06 | 2019-05-14 | Google Llc | Training distilled machine learning models |
ES2714152T3 (es) * | 2015-01-28 | 2019-05-27 | Google Llc | Capas de normalización por lotes |
CN106127702B (zh) * | 2016-06-17 | 2018-08-14 | 兰州理工大学 | 一种基于深度学习的图像去雾方法 |
CN106326984A (zh) * | 2016-08-09 | 2017-01-11 | 北京京东尚科信息技术有限公司 | 用户意图识别方法和装置、自动应答*** |
CN110291540A (zh) | 2017-02-10 | 2019-09-27 | 谷歌有限责任公司 | 批再归一化层 |
-
2018
- 2018-02-09 CN CN201880011378.8A patent/CN110291540A/zh active Pending
- 2018-02-09 JP JP2019543328A patent/JP6876814B2/ja active Active
- 2018-02-09 EP EP18707480.2A patent/EP3563306B1/en active Active
- 2018-02-09 WO PCT/US2018/017597 patent/WO2018148526A1/en unknown
- 2018-02-09 KR KR1020197026511A patent/KR102300614B1/ko active IP Right Grant
-
2019
- 2019-07-01 US US16/459,057 patent/US10671922B2/en active Active
-
2020
- 2020-04-21 US US16/854,352 patent/US11887004B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20190113952A (ko) | 2019-10-08 |
US11887004B2 (en) | 2024-01-30 |
EP3563306A1 (en) | 2019-11-06 |
JP6876814B2 (ja) | 2021-05-26 |
US10671922B2 (en) | 2020-06-02 |
US20200250543A1 (en) | 2020-08-06 |
CN110291540A (zh) | 2019-09-27 |
WO2018148526A1 (en) | 2018-08-16 |
US20190325315A1 (en) | 2019-10-24 |
EP3563306B1 (en) | 2023-12-06 |
JP2020506488A (ja) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102300614B1 (ko) | 배치 재정규화 계층 | |
AU2020250312B2 (en) | Batch normalization layers | |
US11928601B2 (en) | Neural network compression | |
US20210049298A1 (en) | Privacy preserving machine learning model training | |
US12033067B2 (en) | Quantizing neural networks with batch normalization | |
US11922281B2 (en) | Training machine learning models using teacher annealing | |
US20210034973A1 (en) | Training neural networks using learned adaptive learning rates | |
US20200057941A1 (en) | Neural network optimizer search | |
US20240127058A1 (en) | Training neural networks using priority queues | |
WO2019099193A1 (en) | Learning neural network structure | |
US10824946B2 (en) | Training neural networks using posterior sharpening | |
JP7483751B2 (ja) | 教師なしデータ拡張を使用した機械学習モデルのトレーニング | |
US20220230065A1 (en) | Semi-supervised training of machine learning models using label guessing | |
US20220092429A1 (en) | Training neural networks using learned optimizers | |
EP4042334A1 (en) | Depth-parallel training of neural networks | |
US20230107247A1 (en) | Neural networks with transformed activation function layers | |
US20230359895A1 (en) | Training neural networks using sign and momentum based optimizers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |