KR20230141828A - 적응형 그래디언트 클리핑을 사용하는 신경 네트워크들 - Google Patents

적응형 그래디언트 클리핑을 사용하는 신경 네트워크들 Download PDF

Info

Publication number
KR20230141828A
KR20230141828A KR1020237029580A KR20237029580A KR20230141828A KR 20230141828 A KR20230141828 A KR 20230141828A KR 1020237029580 A KR1020237029580 A KR 1020237029580A KR 20237029580 A KR20237029580 A KR 20237029580A KR 20230141828 A KR20230141828 A KR 20230141828A
Authority
KR
South Korea
Prior art keywords
gradient
neural network
training
value
norm
Prior art date
Application number
KR1020237029580A
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 KR20230141828A publication Critical patent/KR20230141828A/ko

Links

Classifications

    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Abstract

신경 네트워크를 트레이닝하기 위한 컴퓨터 구현 방법이 개시되어 있다. 이 방법은 신경 네트워크의 파라미터와 연관된 그래디언트를 결정하는 단계를 포함한다. 이 방법은 그래디언트 노름 대 파라미터 노름의 비율을 결정하고 이 비율을 임계값과 비교하는 단계를 더 포함한다. 상기 비율이 임계값을 초과한다고 결정하는 것에 응답하여, 상기 비율이 임계값 이하가 되도록 그래디언트의 값을 감소시킨다. 감소된 그래디언트의 값에 기초하여 파라미터의 값이 업데이트된다.

Description

적응형 그래디언트 클리핑을 사용하는 신경 네트워크들
본 명세서는 적응형 그래디언트 클리핑(adaptive gradient clipping) 기법을 사용하여 신경 네트워크를 트레이닝하기 위한 시스템 및 방법에 관한 것이다.
신경 네트워크는 하나 이상의 비선형 유닛들의 레이어들을 사용하여 수신된 입력에 대한 출력을 예측하는 기계 학습 모델이다. 일부 신경 네트워크는 출력 레이어 외에 하나 이상의 히든(hidden) 레이어들을 포함한다. 각 히든 레이어의 출력은 네트워크의 다음 레이어, 즉 다음 히든 레이어 또는 출력 레이어에 대한 입력으로서 사용된다. 네트워크의 각 레이어는 각 파라미터들의 세트의 현재 값들에 따라 수신된 입력으로부터 출력을 생성한다.
일부 신경 네트워크는 순환 신경 네트워크이다. 순환 신경 네트워크는 입력 시퀀스를 수신하고 입력 시퀀스로부터 출력 시퀀스를 생성하는 신경 네트워크이다. 특히, 순환 신경 네트워크는 현재 시간 단계에서 출력을 계산할 때 이전 시간 단계에서 네트워크의 내부 상태 중 일부 또는 전부를 사용할 수 있다. 순환 신경 네트워크의 예로는 하나 이상의 LSTM 메모리 블록들을 포함하는 장단기 메모리(LSTM) 신경 네트워크가 있다. 각각의 LSTM 메모리 블록은 입력 게이트, 망각(forget) 게이트 및 출력 게이트를 각각 포함하는 하나 이상의 셀들을 포함할 수 있으며, 이는 셀이 예를 들어, 현재 활성화를 생성하는 데 사용하거나 LSTM 신경 네트워크의 다른 구성요소들에 제공될 수 있도록 셀에 대한 이전 상태를 저장하도록 한다.
본 명세서는 일반적으로 하나 이상의 위치에 있는 하나 이상의 컴퓨터들에서 컴퓨터 프로그램으로 구현된 시스템이 신경 네트워크를 트레이닝(즉, 파라미터들을 조정)하는 방법을 수행할 수 있는 방법을 설명한다.
일 양태에서, 신경 네트워크의 파라미터와 연관된 그래디언트를 결정하는 단계를 포함하는 신경 네트워크를 트레이닝하기 위한 컴퓨터로 구현되는 방법이 제공된다. 그래디언트 노름(norm) 대 파라미터 노름의 비율이 결정되고 임계값과 비교된다. 비율이 임계값을 초과한다고 결정하는 것에 응답하여, 비율이 임계값 이하가 되도록 그래디언트의 값을 감소시킨다. 파라미터의 값은 감소된 그래디언트의 값에 기초하여 업데이트된다.
이 방법은 안정적인 파라미터 업데이트를 보장하는 적응형 그래디언트 클리핑 기법을 제공한다. 일부 신경 네트워크에서는 예를 들어 수백 또는 수천 개의 레이어들이 있는 매우 깊은 신경 네트워크에서 효과적인 트레이닝을 위해 배치 정규화(batch normalization)가 필요했다. 본 방법은 이러한 신경 네트워크를 배치 정규화 레이어들 없이 효과적으로 트레이닝될 수 있도록 하며, 이는 본 명세서에서 "노멀라이저-프리(normalizer-free)" 신경 네트워크라고 한다. 배치 정규화는 병렬 또는 분산 프로세싱 시스템에서의 구현을 더 어렵게 만드는 배치 내의 트레이닝 데이터 항목들 사이의 종속성을 도입한다. 배치 정규화는 계산 비용이 많이 드는 동작이기도 하다.
여기서 설명된 적응형 그래디언트 클리핑 기법을 사용하여 그래디언트 노름 대 파라미터 노름의 비율이 트레이닝 중에 허용가능한 범위 내에서 유지되도록 보장함으로써, 노멀라이저-프리 네트워크는 배치 정규화의 유리한 효과를 노멀라이저-프리 네트워크에 복제하기 위해 배치 정규화된 네트워크와 동일한 속성들을 제공할 수 있다. 이것은 노멀라이저-프리 네트워크에서 보다 안정적인 파라미터 업데이트를 제공하며 이러한 안정성은 태스크 성능을 유지하면서 전체 트레이닝 시간을 줄이는 대규모 배치 크기에서의 트레이닝을 가능하게 한다. 배치 정규화 및 배치 내 트레이닝 항목들의 종속성을 제거하면 트레이닝을 병렬 또는 분산 프로세싱 시스템에서 보다 쉽게 구현할 수 있다. 트레이닝 데이터 항목들의 독립성은 시퀀스 모델링 태스크에도 중요하다.
기존의 그래디언트 클리핑 방법은 그래디언트의 크기만 고려하며 파라미터 자체의 크기와 그래디언트 노름 대 파라미터 노름의 비율은 고려하지 않는다. 노멀라이저-프리 네트워크에서 기존의 그래디언트 클리핑 방법을 사용하는 것은 현재 적응형 그래디언트 클리핑 방법을 사용하여 제공되는 모든 이점을 제공하지 않는다. 특히 기존의 그래디언트 클리핑을 사용하는 트레이닝에서 클리핑 임계값은 깊이, 배치 크기 및 학습 속도(learning rate)에 민감하며 이러한 팩터(factor)들을 변경할 때 세밀한 조정이 필요하다. 기존 그래디언트 클리핑을 사용할 때 더 큰 네트워크의 경우 수익 감소도 관찰된다. 그래디언트 클리핑에 비율을 사용하면 기존 그래디언트 클리핑이 수행할 수 없는 배치 정규화의 속성들과 이점들을 복제하는 파라미터 업데이트의 안정성이 향상된다.
일부 종래 방법에서, 파라미터 업데이트 단계를 수행할 때 그래디언트를 스케일링하는 효과도 있는 학습 속도를 조정하기 위해 비율이 사용된다. 그러나, 현재의 적응형 그래디언트 클리핑 방법에서는 비율이 허용 범위를 벗어나는 경우에만 그래디언트의 값을 감소시킨다. 이는 태스크 성능을 일반화하고 유지하는 네트워크의 능력에 상당한 영향을 미친다. 계산 리소스가 제한되고 더 작은 배치 크기를 사용해야 하는 경우 특히 그러하다.
그래디언트 노름 대 파라미터 노름의 비율은 그래디언트 노름을 파라미터 노름으로 나눈 것으로 정의될 수 있다.
방법은 비율이 임계값 미만이라는 결정하는 것에 응답하여, 그래디언트의 값을 유지하고 유지된 그래디언트의 값에 기초하여 파라미터의 값을 업데이트한다. 즉, 비율이 임계값 미만일 때 그래디언트가 변경되지 않을 수 있다.
그래디언트의 값을 감소시키는 것은 그래디언트의 값을 감소시키기 위해 그래디언트의 값을 스케일 팩터로 곱하는 것을 포함할 수 있다. 스케일 팩터는 비율에 기초할 수 있고 그래디언트의 값을 감소시키는 것은 그래디언트의 값을 감소시키기 위해 그래디언트의 값을 비율에 기초한 스케일 팩터로 곱하는 것을 포함할 수 있다. 예를 들어, 스케일 팩터는 비율의 역수에 기초할 수 있다. 대안적으로 또는 부가적으로 스케일 팩터는 임계값에 기초할 수 있다. 예를 들어, 임계값은 0.01에서 0.16까지의 범위에 있는 값일 수 있다. 스케일 팩터는 비율과 임계값의 조합에 기초할 수 있다. 예를 들어, 스케일 팩터는 비율의 역수를 곱한 임계값에 기초할 수 있다.
대안적으로, 임계값의 값은 학습 속도에 기초할 수 있다. 예를 들어 임계값은 학습 속도의 역수에 비례할 수 있다. 임계값의 값은 배치 크기에 기초할 수도 있다. 예를 들어 더 큰 배치 크기(더 강한 클리핑 제공)에 대해 임계값에 대한 작은 값이 선택될 수 있다.
그래디언트 노름 및 파라미터 노름은 신경 네트워크의 하나의 뉴런과 연관된 파라미터들에 기초하여 결정될 수 있다. 즉, 하나의 뉴런은 단일 뉴런일 수 있고 그래디언트 및 파라미터 노름은 단위별(unit-wise) 노름일 수 있다.
신경 네트워크의 파라미터는 신경 네트워크의 뉴런에 연결된 가중치일 수 있으며 그래디언트 노름은 뉴런에 연결된 각각의 가중치와 연관된 그래디언트에 기초하여 결정될 수 있으며 파라미터 노름은 뉴런에 연결된 각각의 가중치의 가중치 값들에 기초하여 결정될 수 있다.
그래디언트 노름 및 파라미터 노름은 프로베니우스 노름에 기초하여 결정될 수 있다. 즉, 신경 네트워크 레이어와 연관된 그래디언트 또는 파라미터 매트릭스의 프로베니우스 노름은 매트릭스의 각 개별 요소의 제곱합의 제곱근으로 정의될 수 있다.
그래디언트 노름은 뉴런에 연결된 각각의 가중치들과 연관된 그래디언트들에 대해 계산된 프로베니우스 노름으로서 계산될 수 있다고, 파라미터 노름은 뉴런에 연결된 각각의 가중치들에 대해 계산된 프로베니우스 노름으로서 계산될 수 있다.
그래디언트의 값을 감소시키는 것은 다음 방정식에 기초할 수 있다:
여기서 는 l번째 레이어에 대한 가중치 매트릭스, i는 l번째 레이어에 있는 뉴런의 인덱스 (따라서 의 행 백터일 수 있음), 는 파라미터 에 대응하는 그래디언트, 는 스칼라 임계값, 그리고 는 프로베니우스 노름이다. 는 또한 0으로 초기화된 파라미터들의 그래디언트가 0으로 클리핑되는 것을 방지할 수 있는 max(, ε)로서 계산될 수 있다. ε는 10-3 또는 다른 적절한 작은 값일 수 있다.
신경 네트워크는 심층(deep) 잔차(residual) 신경 네트워크일 수 있다. 신경 네트워크는 잔차 블록을 포함할 수 있고 잔차 블록은 정규화 레이어가 없다. 즉, 잔차 블록은 배치 정규화 또는 다른 종류의 정규화 레이어를 포함하지 않을 수 있다. 잔차 블록은 컨볼루션, 풀링 및/또는 비선형 연산(operation)들을 포함할 수 있지만 배치 정규화와 같은 활성화 정규화 연산은 포함하지 않을 수 있다. 비선형성은 가우시안 에러 선형 유닛(Gaussian Error Linear Unit)(GELU) 또는 정류된 선형 유닛(Rectified Linear Unit)(ReLU)일 수 있다. 컨볼루션 연산은 그룹화된 컨볼루션일 수 있다. 예를 들어, 3 x 3 컨볼루션의 그룹 폭은 128일 수 있다.
파라미터들은 컨볼루션 레이어와 연관된 파라미터들일 수 있다. 파라미터들이 컨벌루션 필터의 가중치들인 경우 그래디언트 및 파라미터 노름은 채널 및 공간 차원(dimension)들을 포함하는 팬-인(fan-in) 범위에 대해 계산될 수 있다. 적응형 그래디언트 클리핑 방법은 네트워크의 모든 레이어들에 적용될 수 있다. 그러나 최종 출력 레이어는 제외될 수 있다. 초기 컨볼루션 레이어도 제외될 수 있다.
신경 네트워크는 4단계 백본(backbone)을 포함하는 심층 잔차 신경 네트워크일 수 있다. 단계는 일정한 폭과 레졸루션(resolution)의 활성화가 있는 잔차 블록들의 시퀀스를 포함할 수 있다. 백본은 1단계부터 4단계까지 1:2:6:3의 비율로 잔차 블록들을 포함할 수 있다. 즉, 제1 단계는 1개의 잔차 블록, 제2 단계는 2개의 잔차 블록들, 제3 단계는 6개의 잔차 블록들, 그리고 제4 단계는 3개의 잔차 블록들을 포함할 수 있다. 증가된 깊이의 네트워크들에는 지정된 비율을 유지하는 잔차 블록들의 수가 증가할 수 있다. 예를 들어, 네트워크는 제1 단계에서 5개의 잔차 블록들, 제2 단계에서 10개의 잔차 블록들, 제3 단계에서 30개, 제4 단계에서 15개의 잔차 블록들을 가질 수 있다. 입력 레이어들, 완전히 연결된 레이어들 및 출력 레이어들은 일반적으로 백본의 일부를 형성하지 않는다.
각 단계의 폭은 이전 단계의 폭의 두 배가 될 수 있다. 예를 들어, 폭은 제1 단계에서 256, 제2 단계에서 512, 제3 단계에서 1024, 제4 단계에서 2048일 수 있다. 대안적인 구성에서, 제3 및 제4 단계의 폭은 1536일 수 있다. 예를 들어, 폭은 제1 단계에서 256, 제2 단계에서 512, 제3 및 제4 단계에서 모두 1536일 수 있다. 다른 예에서, 폭은 제1 단계에서 256, 제2 단계에서 1024, 제3 및 제4 단계에서 모두 1536일 수 있다.
잔차 블록은 병목(bottleneck) 잔차 블록일 수 있다. 병목 잔차 블록은 병목 내부의 제1 그룹 컨벌루션 레이어 및 제2 그룹 컨벌루션 레이어를 포함할 수 있다. 일반적인 병목은 병목 내부에 하나의 컨볼루션 레이어로만 구성된다. 병목에 제2 컨볼루션 레이어를 포함하면 트레이닝 시간에 거의 영향을 주지 않으면서 태스크 성능을 크게 향상시킬 수 있음이 밝혀졌다. 예를 들어, 병목 잔차 블록은 병목을 형성하기 위해 채널들 수를 줄이는 1x1 컨볼루션 레이어, 제1 3x3 그룹화된 컨볼루션 레이어 및 제2 3x3 그룹화된 컨볼루션 레이어를 포함하는 병목, 및 채널들의 수를 복원하는 1x1 컨볼루션 레이어를 포함할 수 있다.
잔차 블록의 컨볼루션 레이어의 가중치들은 스케일링된 가중치 표준화를 거칠 수 있다. 즉, 레이어에 있는 가중치들의 평균 및 표준편차에 기초하여 가중치들을 다시 파라미터화할 수 있다. 스케일링된 가중치 표준화와 관련된 추가 세부 사항은 2021년 제9 회 International Conference on Learning Representations, ICLR의 Brock et al., "Characterizing signal propagation to close the performance gap in unnormalized resnets"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다.
잔차 블록의 입력은 입력의 분산에 기초하여 다운스케일링될 수 있다. 분산은 분석적으로 결정될 수 있다. 잔차 블록의 잔차 브랜치의 최종 활성화는 스칼라 파라미터에 의해 스케일링될 수 있다. 스칼라 파라미터의 값은 0.2일 수 있다. 예를 들어 잔차 블록은 형식일 수 있으며, 여기서 는 i번째 잔차 블록에 대한 입력들을 나타내고, 는 i번째 잔차 브랜치에 의해 계산된 함수를 나타낸다. 함수는 모든 i에 대해 ) = 와 같이, 초기화 시 분산 보존으로 파라미터화될 수 있다. 스칼라 는 위에서 언급한 바와 같이 0.2일 수 있다. 스칼라 는 i번째 잔차 블록에 대한 입력들의 표준편차를 예측함으로써 결정될 수 있으며, , 여기서 , 스킵 경로가 다운스케일링된 입력 에서 동작하는 전환 블록을 제외하고, 예상 분산은 전환 블록이 로 재설정된 후 리셋된다. 추가 세부사항들은 위에 참조된 Brock et al.에서에도 확인할 수 있다.
잔차 블록은 스퀴즈 앤 익사이트(Squeeze and Excite) 레이어를 더 포함할 수 있다. 스퀴즈 앤 익사이트는: 글로벌 평균 풀링, 완전 연결된 선형 함수, 스케일링된 비선형 함수, 제2 완전 연결된 선형 함수, 시그모이드 함수 및 선형 스케일링의 함수들의 시퀀스에 따라 입력 활성화를 프로세싱할 수 있다. 예를 들어, 레이어의 출력은 2σ(FC(GELU(FC(pool(h))))) x h일 수 있고, 여기서 σ는 시그모이드 함수이고, FC는 완전 연결된 선형 함수이며, pool은 글로벌 평균 풀링이고 h는 입력 활성화이다. 2의 스칼라 승수는 신호 분산을 유지하는 데 사용될 수 있다.
잔차 블록은 잔차 블록의 잔차 브랜치의 끝에서 학습가능한 스칼라 게인(gain)을 더 포함할 수 있다. 학습가능한 스칼라는 0 값으로 초기화될 수 있다. 학습가능한 스칼라는 위에서 논의된 스칼라 에 추가될 수 있다.
위에서 언급한 바와 같이, 현재 적응형 그래디언트 클리핑 방법은 배치 내의 트레이닝 데이터 항목들을 독립적으로 만들 수 있으므로 배치 정규화가 불가능한 시퀀스 모델링 태스크에 사용될 수 있다. 기존의 그래디언트 클리핑은 언어 모델링에서 종종 사용되며 현재의 적응형 그래디언트 클리핑 방법은 이러한 응용 분야에서 유리한 대안을 제공할 수 있다. 적합한 시퀀스 모델링 태스크의 추가 예가 아래에 제공된다. 신경 네트워크는 트랜스포머 타입 신경 네트워크, 즉 하나 이상의 트랜스포머 레이어들을 포함하는 신경 네트워크일 수 있다. 트랜스포머 레이어는 일반적으로 어텐션 신경 네트워크 레이어, 특히 셀프 어텐션 신경 네트워크 레이어를 포함할 수 있으며, 선택적으로 피드포워드 신경 네트워크가 뒤따른다. 트랜스포머 타입 신경 네트워크는 시퀀스 모델링에 사용될 수 있으며 아래에서 자세히 설명한다. 신경 네트워크는 생성적 대립 네트워크(Generative Adversarial Network)(GAN) 타입의 신경 네트워크일 수 있다. GAN은 아래에서 더 자세히 설명한다.
파라미터의 값을 업데이트하는 것은 적어도 1024개의 트레이닝 데이터 항목들의 배치 크기에 기초할 수 있다. 배치 노멀라이저-프리 신경 네트워크를 포함하는 이전 작업에서는 ImageNet에서 1024와 같은 큰 배치 크기에 대한 트레이닝이 불안정했다. 적응형 그래디언트 클리핑 방식을 사용하여 안정성이 향상되었으며 배치 크기가 1024 이상인 트레이닝이 가능하다. 예를 들어 배치 크기 4096을 사용할 수 있다.
신경 네트워크는 사전 트레이닝될 수 있다. 예를 들어, 신경 네트워크는 관심 있는 특정 태스크 및/또는 관심 있는 특정 데이터세트에 대한 추가 트레이닝 전에 상이한 데이터세트 및/또는 트레이닝 목표에 대한 트레이닝을 거쳤을 수 있다. 따라서 네트워크는 사전 트레이닝된 다음 미세 조정될 수 있다. 이 방법은 트레이닝을 위한 신경 네트워크를 입력으로 수신하고 업데이트된 신경 네트워크를 출력으로 제공할 수 있다.
이 방법은 이미지 데이터를 포함하는 트레이닝 데이터세트를 수신하는 단계를 더 포함할 수 있다. 그래디언트를 결정하는 단계는 이미지 프로세싱 태스크에 대한 신경 네트워크의 성능을 측정하기 위한 손실 함수에 기초할 수 있다.
그래디언트의 계산 및 파라미터 업데이트는 확률적 그래디언트 하강법(stochastic gradient descent) 또는 임의의 다른 적절한 최적화 알고리즘에 기초하여 수행될 수 있다. 이 방법은 드롭아웃(dropout) 및 확률적 깊이(stochastic depth)와 같은 규칙화(regularization) 방법들과 함께 사용할 수 있다. 드롭아웃 비율은 깊이에 따라 증가할 수 있다. 드롭아웃 비율은 0.2에서 0.5까지의 범위에 있을 수 있다. 이 방법은 네스테로(Nesterov)의 모멘텀과 같은 모멘텀 기반 업데이트 규칙과 함께 사용할 수도 있다. 이 방법은 또한 트레이닝 방법의 향상된 안정성으로 인해 트레이닝 속도를 높이기 위해 큰 학습 속도를 사용할 수 있다.
그래디언트의 결정은 선명도-인식 최소화(sharpness-aware minimization) 기법에 기초할 수 있다. 선명도-인식 최소화 기법에서, 손실 함수는 트레이닝 태스크에 기초한 기존 손실 및 최소값(minma)의 지오메트리에 기초한 추가 손실을 포함할 수 있다. 이 추가 손실은 균일하게 낮은 손실 값들을 가진 인접 영역에 있는 파라미터들을 찾는다. 즉, 뾰족한 모양의 최소값보다 더 나은 일반화를 제공하는 것으로 생각되는 더 평평한 최소값을 찾는다. 그래디언트의 결정은 파라미터의 수정된 버전을 결정하기 위해 그래디언트 상승 단계를 수행하는 것과 파라미터와 연관된 그래디언트를 결정하기 위해 파라미터의 수정된 버전에 기초하여 그래디언트 하강 단계를 수행하는 것을 포함할 수 있다. 그래디언트 상승 단계는 트레이닝 데이터 항목들의 현재 배치의 서브세트에 기초하여 수행될 수 있다. 예를 들어, 현재 배치의 트레이닝 데이터 항목 중 1/5이 사용될 수 있다. 위에서 설명한 적응형 그래디언트 클리핑 방법과 함께 사용될 때, 배치의 서브세트를 사용하면 상승 단계에 대해 배치의 모든 트레이닝 데이터 항목들을 사용하는 것과 동일한 성능을 얻을 수 있다. 따라서 훨씬 낮은 계산 비용으로 동일한 이점을 얻을 수 있다. 분산 트레이닝 시스템에서 사용되는 경우, 그래디언트 상승 단계의 그래디언트들은 서로 다른 프로세싱 유닛들의 복제본들 사이의 동기화가 필요하지 않다. 그래디언트 상승 단계 및 생성된 수정된 파라미터들은 프로세싱 유닛에 로컬로 유지될 수 있으며 그래디언트 하강 단계는 로컬 수정된 파라미터들에 대해 수행될 수 있다. 더 적은 수의 프로세싱 유닛들 또는 단일 프로세싱 유닛 시스템이 있는 분산 시스템에 대한 그래디언트 누적을 통해 동일한 효과를 얻을 수 있다. 선명도-인식 최소화에 대한 자세한 내용은 https://openreview.net/forum?id=6Tm1mposlrM에서 이용가능한, 2021년 제9 회 International Conference on Learning Representations, ICLR의 Foret et. al., "Sharpness-aware minimization for efficiently improving generalization"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다.
트레이닝 데이터세트는 RandAugment와 같은 데이터 증강 기법을 사용하여 증강될 수 있다. 적응형 그래디언트 클리핑 방법으로 제공되는 향상된 안정성은 태스크 성능을 저하시키지 않고 강력한 증강을 사용할 수 있게 한다. 이미지 데이터에서 RandAugment는 아이덴터티, 자동 대비(auto-contrast), 이퀄라이즈, 회전, 솔라라이즈(solarize), 컬러, 포스터라이즈(posterize), 대비, 밝기, 선명도, 전단(shear) 및 변환을 포함한 다양한 이미지 변환을 제공한다. 트레이닝 데이터 항목들의 수정된 버전은 하나 이상의 변환을 임의로 선택하여 생성할 수 있다. RandAugment에 대한 자세한 내용은 Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops, pp. 702-703, 2020에서, Cubuk et. al., "Randaugment: Practical automated data augmentation with a reduced search space"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다. 트레이닝 데이터 항목들의 양식에 따라 다른 변환 세트들이 적절하게 사용될 수 있음을 알 수 있다.
추가적으로 또는 대안적으로 다른 데이터 증강 기법이 사용될 수 있다. 예를 들어, 수정된 트레이닝 데이터 항목은 제1 트레이닝 데이터 항목의 일부를 선택하고, 제2 트레이닝 데이터 항목의 대응하는 부분을 제1 트레이닝 데이터 항목으로부터 선택된 부분으로 대체함으로써 생성될 수 있다. 선택된 부분의 위치와 크기는 임의로 선택될 수 있다. 수정된 트레이닝 데이터 항목을 생성하기 위해 복수의 부분들이 선택되어 대체에 사용될 수 있다. 이미지 데이터의 경우 해당 부분은 이미지 패치(patch)일 수 있다. 수정된 트레이닝 데이터 항목에는 수정된 트레이닝 데이터 항목에 존재하는 제1 및 제2 트레이닝 데이터 항목들의 비율에 기초하여 라벨이 할당될 수 있다. 예를 들어, 제1 트레이닝 데이터 항목의 선택된 부분이 수정된 트레이닝 데이터 항목의 40%를 구성하고 제2 트레이닝 데이터 항목이 나머지 60%를 구성한다면, 수정된 트레이닝 데이터 항목에 대한 라벨은 제1 트레이닝 데이터 항목과 연관된 클래스에 대해 0.4이고 제2 트레이닝 데이터 항목과 연관된 클래스에 대해 0.6일 수 있다. 유사한 데이터 증강 기술에서, 제1 트레이닝 데이터 항목의 선택된 부분은 공백으로 표시될 수 있다. 즉, 픽셀 값은 0 값 또는 검정색을 나타내는 값으로 설정될 수 있거나, 랜덤 노이즈로 대체될 수 있다.
다른 예시적인 데이터 증강 기법은 제1 및 제2 트레이닝 데이터 항목을 보간함으로써 수정된 트레이닝 데이터 항목을 생성하는 것을 포함한다. 보간은 선형 보간일 수 있다. 수정된 트레이닝 데이터 항목에는 제1 및 제2 트레이닝 데이터 항목의 보간 가중치에 기초하여 라벨이 할당될 수 있다.
일 구현예에서, 트레이닝 데이터 항목의 배치에 대해, RandAugment는 배치 내의 모든 트레이닝 데이터 항목들에 적용될 수 있고, 부분 선택/대체 기법은 배치 내의 트레이닝 데이터 항목의 절반에 적용될 수 있으며, 보간 기법은 트레이닝 데이터 항목의 나머지 절반에 적용되어 배치에 대한 증강 트레이닝 데이터 항목을 생성할 수 있다. 위에서 언급한 바와 같이 적응형 그래디언트 클리핑 방법이 제공하는 향상된 안정성은 태스크 성능을 저하시키지 않고 강력한 증강을 사용할 수 있게 한다. 따라서 서로 다른 데이터 증강 기법의 조합은 태스크 성능을 향상시키는 데 도움이 될 수 있으며, 더 강력한 데이터 증강으로 태스크 성능이 점진적으로 향상된다. 일반적인 배치 정규화된 신경 네트워크는 더 강력한 데이터 증강을 사용하는 이점이 없으며 경우에 따라 성능이 저하될 수 있다.
방법은 복수의 프로세싱 유닛들을 포함하는 병렬 또는 분산 프로세싱 시스템에 의해 수행될 수 있다. 방법은 복수의 트레이닝 데이터 항목들을 포함하는 트레이닝 데이터 세트를 수신하는 단계; 트레이닝 데이터 항목들의 복수의 배치들을 생성하는 단계, 각각의 배치는 트레이닝 데이터 세트의 트레이닝 데이터 항목들의 서브세트를 포함하며; 트레이닝 데이터 항목들의 복수의 배치들을 복수의 프로세싱 유닛들에 분산시키는 단계; 및 트레이닝 데이터 항목들의 분산된 복수의 배치들에 기초하여 복수의 프로세싱 유닛들을 병렬로 사용하여 신경 네트워크를 트레이닝하는 단계를 포함한다. 복수의 프로세싱 유닛들은 상이한 물리적 컴퓨팅 장치의 일부일 수 있고 및/또는 상이한 물리적 위치에 위치할 수 있다.
방법은 하나 이상의 텐서 프로세싱 유닛 또는 하나 이상의 그래픽 프로세싱 유닛 또는 다른 유형의 가속기 하드웨어에 의해 수행될 수 있다. 병렬 또는 분산 프로세싱 시스템은 하나 이상의 그래픽 프로세싱 유닛 또는 텐서 프로세싱 유닛을 포함할 수 있다.
또 다른 양태에 따르면, 하나 이상의 컴퓨터들 및 하나 이상의 컴퓨터들에 의해 실행될 때 하나 이상의 컴퓨터들로 하여금 전술한 각각의 방법의 동작을 수행하게 하는 명령어들을 저장하는 하나 이상의 스토리지 디바이스들을 포함하는 시스템이 제공된다.
시스템은 병렬 또는 분산 프로세싱 시스템일 수 있다. 시스템은 하나 이상의 텐서 프로세싱 유닛 또는 하나 이상의 그래픽 프로세싱 유닛을 포함할 수 있다.
추가적인 양태에 따르면, 하나 이상의 컴퓨터들에 의해 실행될 때 하나 이상의 컴퓨터들로 하여금 전술한 각각의 방법의 동작을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터 저장 매체가 제공된다.
본 명세서에 기술된 주제는 다음의 이점 중 하나 이상을 실현하기 위해 특정 실시예로 구현될 수 있다.
배치 정규화는 수백 또는 수천 개의 레이어들이 있는 신경 네트워크와 같은 매우 깊은 신경 네트워크의 트레이닝을 가능하게 하는 중요한 기법이었다. 배치 정규화는 트레이닝의 안정성을 향상시키고 트레이닝 중에 큰 배치 크기를 사용할 수 있게 하여 전체 트레이닝 시간을 크게 줄일 수 있다. 그러나 배치 정규화는 컴퓨팅 및 메모리 측면에서 계산 비용이 많이 드는 작업이므로 더 큰 배치 크기를 사용하는 이점이 일부 무효화된다. 예를 들어 배치 정규화는 Titan X Pascal GPU를 사용하는 ImageNet의 ResNet-50 아키텍처 트레이닝 시간의 약 1/4을 차지하는 것으로 추정되었다.
또한, 배치 정규화는 배치 내의 트레이닝 데이터 항목들 사이에 종속성을 도입한다. 이는 병렬 또는 분산 프로세싱 시스템에서 트레이닝을 구현하고 매우 깊은 신경 네트워크를 효율적으로 트레이닝하는 데 필요할 수 있는 텐서 프로세싱 유닛 및 그래픽 프로세싱 유닛과 같은 가속기 하드웨어를 사용하는 어려움을 증가시킨다. 배치 정규화는 트레이닝을 수행하는 데 사용되는 기본 하드웨어에 특히 민감하며 결과는 다른 하드웨어 시스템에서 복제하기 어려울 수 있다.
배치 정규화를 대체하기 위한 이전 작업에서는 ImageNet과 같은 벤치마크 데이터세트들에서 비슷한 정확도를 제공하는 네트워크가 생성되었다. 그러나 대규모 배치 크기, 예를 들어, ImageNet에서 1024보다 크면 이러한 "노멀라이저-프리” 네트워크에서 태스크 성능이 저하되기 시작한다.
위에서 논의한 바와 같이, 본 발명자들은 트레이닝 동안 배치 정규화된 네트워크와 노멀라이저-프리 네트워크 사이의 그래디언트 노름 대 파라미터 노름의 비율에서 상당한 차이를 식별했다. 따라서, 배치 정규화의 유리한 효과는 여기에서 설명된 적응형 그래디언트 클리핑 기법을 사용하여 노멀라이저-프리 네트워크에서 복제되어 그래디언트 노름 대 파라미터 노름의 비율이 트레이닝 중에 허용가능한 범위 내에서 유지되도록 함으로써 보다 안정적인 파라미터 업데이트를 제공할 수 있다. 이러한 안정성은 높은 태스크 성능을 유지하면서 노멀라이저-프리 네트워크의 트레이닝 효율성을 개선하기 위해 큰 배치 크기에서 트레이닝을 가능하게 한다. 예를 들어 ImageNet에서 최신 EfficientNet-B7 네트워크의 테스트 정확도와 일치하는 적응형 그래디언트 클리핑 기법을 사용하여 트레이닝된 신경 네트워크는 트레이닝 속도가 최대 8.7배 빠르다.
또한, 그래디언트 클리핑의 계산 및 메모리 비용은 배치 정규화보다 훨씬 낮다. 또한 배치 내의 트레이닝 데이터 항목들에 대한 종속성이 없으므로 병렬 및 분산 프로세싱 시스템에서 보다 쉽게 트레이닝을 수행할 수 있다. 트레이닝 데이터 항목들을 배치에 할당하는 방법이나 배치 통계의 병렬 계산에 대해 특별히 고려할 필요는 없다. 따라서 트레이닝 방법은 특히 병렬 및 분산 프로세싱 시스템과 가속기 하드웨어에 적합하다.
스펙트럼의 다른 쪽 끝에서 적응형 그래디언트 클리핑 방법은 큰 배치 크기뿐만 아니라 작은 배치 크기에서도 효과적인 반면, 배치 정규화 및 기타 정규화된 옵티마이저(optimizer)들의 태스크 성능은 좋지 않은 경향이 있다. 따라서 적응형 그래디언트 클리핑 방법은 계산 리소스들이 제한된 경우에도 효과적이다.
적응형 그래디언트 클리핑 방법이 제공하는 향상된 안정성은 네트워크의 일반화 기능과 태스크 성능을 더욱 향상시키는 RandAugment와 같은 강력한 데이터 증강을 통한 트레이닝도 가능하게 한다.
도 1은 신경 네트워크 트레이닝 시스템의 예를 도시한다.
도 2는 신경 네트워크의 개략도를 도시한다.
도 3은 신경 네트워크 트레이닝을 위한 프로세싱을 나타내는 흐름도이다.
도 4는 잔차 신경 네트워크 아키텍처의 개략도를 보여준다.
도 5는 병목 잔차 블록의 개략도를 도시한다.
도 6은 예시적인 실시예 및 다양한 종래 기술의 신경 네트워크 모델에 대한 이미지 인식 정확도에 대한 트레이닝 레이턴시의 플롯을 보여주는 그래프이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
도 1은 신경 네트워크 트레이닝을 위한 예시적인 신경 네트워크 트레이닝 시스템(100)을 도시한다. 신경 네트워크의 신경 네트워크 파라미터들(105)의 세트 및 트레이닝 데이터 세트(110)?z 신경 네트워크 트레이닝 시스템(100)에 대한 입력으로서 제공될 수 있다. 신경 네트워크 트레이닝 시스템(100)은 신경 네트워크 파라미터들(105) 및 트레이닝 데이터 세트(110)를 프로세싱하여 업데이트된 신경 네트워크 파라미터들(115)을 제공하도록 구성된다. 즉, 입력 신경 네트워크 파라미터들(105)의 값은 사전 정의된 특정 태스크에 대한 신경 네트워크의 성능을 개선하기 위해 변경될 수 있다. 특히, 신경 네트워크 트레이닝 시스템(100)은 신경 네트워크 파라미터들(105)을 업데이트하기 위해 적응형 그래디언트 클리핑 기법을 사용하도록 구성된다. 적응형 그래디언트 클리핑 기법은 신경 네트워크의 파라미터(105)와 연관된 그래디언트를 결정한다. 그래디언트 노름 대 파라미터 노름의 비율이 결정되고 임계값과 비교된다. 비율이 임계값을 초과하는 것으로 결정하는 것에 응답하여, 비율이 임계값 이하가 되도록 그래디언트의 값이 감소되고 감소된 그래디언트 값에 기초하여 파라미터의 값이 업데이트된다. 적응형 그래디언트 클리핑 기법과 관련된 자세한 내용은 도 3을 참조하여 아래에 제공된다. 신경 네트워크 트레이닝 시스템(100)은 업데이트된 신경 네트워크 파라미터(115)를 출력으로서 제공하도록 구성될 수 있다.
신경 네트워크 트레이닝 시스템(100)은 대안적으로 시스템(100)에 로컬 데이터 저장소(120) 또는 메모리(125)로부터 입력 신경 네트워크 파라미터들(105) 및/또는 트레이닝 데이터 세트(110)를 검색할 수 있다. 신경 네트워크 트레이닝 시스템(100)은 또한 신경 네트워크의 파라미터들에 대한 값들의 초기 세트를 생성하도록 구성될 수 있다. 신경 네트워크 트레이닝 시스템(100)은 또한 사전 정의된 중지 기준에 도달할 때까지 신경 네트워크 파라미터들(105)을 반복적으로 업데이트하도록 구성될 수 있고 업데이트된 신경 네트워크 파라미터들(140)의 최종 세트가 출력으로서 제공될 수 있다.
트레이닝 데이터 세트(110)는 태스크에 적합한 복수의 트레이닝 데이터 항목들 및 선택적으로 트레이닝 데이터 항목들을 프로세싱할 때 신경 네트워크가 생성해야 하는 타겟 출력에 대응하는 라벨들의 세트를 포함할 수 있다. 예를 들어, 트레이닝 데이터 세트(100)는 이미지 데이터, 비디오 데이터, 오디오 데이터, 스피치 데이터, 센서 데이터, 환경 상태를 특징짓는 데이터 및 아래에서 더 자세히 논의되는 다른 유형의 데이터를 포함할 수 있다. 태스크에는 이미지 인식, 객체 검출, 이미지 분할, 스피치 인식, 기계 번역, 로봇/기계/전기 에이전트를 제어하기 위한 액션 생성 및 아래에서 더 자세히 설명하는 기타 태스크가 포함될 수 있다.
일반적으로, 신경 네트워크 트레이닝 시스템(100)은 각각의 프로세싱 유닛이 로컬 메모리(135A...N)를 포함하는 복수의 프로세싱 유닛들(130A...N)을 포함할 수 있다. 따라서, 도 1의 신경 네트워크 트레이닝 시스템(100)은 병렬 또는 프로세싱 시스템으로 간주될 수 있다. 프로세싱 유닛들(130A...N)은 당업자에 의해 적절하다고 간주되는 바와 같이 다양한 상이한 아키텍처 및 구성으로 배열될 수 있음을 이해할 것이다. 예를 들어, 신경 네트워크 트레이닝 시스템(100)은 그래픽 프로세싱 유닛(GPU) 또는 텐서 프로세싱 유닛(TPU) 또는 모든 유형의 신경 네트워크 가속기 하드웨어를 사용하여 구현될 수 있다. 프로세싱 유닛들(130A...N)은 적절한 컴퓨터 네트워크를 통해 통신하는 서로 다른 물리적 위치에 있는 복수의 개별 하드웨어 디바이스들에 걸쳐 분산될 수 있으며 단일 하드웨어 디바이스에 위치할 필요가 없다는 것을 이해할 것이다.
신경 네트워크 트레이닝 시스템(100)은 트레이닝 데이터 항목들의 복수의 배치들을 생성하도록 구성될 수 있으며, 각각의 배치는 트레이닝 데이터 세트(110)의 트레이닝 데이터 항목들의 서브세트를 포함한다. 대안적으로, 수신된 트레이닝 데이터 세트(110)는 배치들로 사전 분할될 수 있다. 신경 네트워크 트레이닝 시스템(100)은 트레이닝 데이터 항목들의 복수의 배치들을 복수의 프로세싱 유닛들(130A…N)에 분산시키도록 구성될 수 있다. 신경 네트워크 시스템(100)은 각각의 프로세싱 유닛들(130A...N)에 분산된 트레이닝 데이터 항목들의 복수의 배치들에 기초하여 복수의 프로세싱 유닛들(130A...N)의 병렬 프로세싱 능력을 사용하여 신경 네트워크를 트레이닝하도록 구성될 수 있다. 이 맥락에서 "배치(batch)"라는 용어의 사용은 프로세싱 유닛들(130A...N)에 분산시키기 위한 트레이닝 데이터 항목들의 모든 그룹화를 포함하기 위한 것이다. 예를 들어 신경 네트워크 트레이닝을 위해 확률적 그래디언트 하강법을 사용하는 경우 트레이닝 데이터 항목의 "미니-배치(mini-batch)"에 기초하여 그래디언트를 계산할 수 있다. 트레이닝 데이터 항목의 이 "미니-배치"는 복수의 프로세싱 유닛들(130A...N)로의 분산을 위해 더 서브-분할될 수 있다. 예를 들어, 각각의 프로세싱 유닛들(130A...N)은 각각 32개의 트레이닝 데이터 항목들을 프로세싱하도록 구성될 수 있다. "배치"라는 용어는 트레이닝 데이터 항목들을 프로세싱 유닛들(130A...N)에 분산시키는 맥락에서 이러한 추가 서브-분할(sub-division)들을 포함하도록 의도된다. 본 개시에서 "배치 크기"가 언급되는 경우, 이것은 그래디언트 및 업데이트 값을 결정하는 데 사용되는 트레이닝 데이터 항목들의 수일 수 있다. 이와 같이, 이는 미니 배치의 서브-분할 및 프로세싱 유닛들(130A...N)에 분산시키기 이전의 확률적 그래디언트 하강법에서 "미니 배치"의 크기를 의미할 수 있다.
복수의 프로세싱 유닛들(130A...N)은 신경 네트워크 파라미터들(105)의 현재 값에 따라 그에 할당된 트레이닝 데이터 항목들에 대한 대응하는 네트워크 출력들을 병렬로 계산하도록 각각 구성될 수 있다. 아래에서 더 자세히 논의되는 바와 같이, 적응형 그래디언트 클리핑 기법은 네트워크 출력을 계산할 때 트레이닝 데이터 항목들 사이에 어떠한 종속성도 갖지 않으며, 따라서 네트워크 출력 계산은 각 프로세싱 유닛(130A...N)에 의해 병렬 및 독립적으로 수행될 수 있다. 이는 트레이닝 데이터 항목들 사이에 종속성을 도입하는 배치 정규화 레이어들을 포함하는 신경 네트워크와 대조되며, 따라서 배치 정규화 동작을 수행하거나 대안적으로 추가 오버헤드를 발생시키는 데이터 셔플링 동작들을 도입하기 위해 프로세싱 유닛들(130A...N) 사이의 통신이 필요할 수 있다. 적응형 그래디언트 클리핑 기법을 사용하면 배치 정규화 레이어들이 없는 신경 네트워크로 하여금 배치 정규화 레이어들을 포함하는 신경 네트워크보다 더 나은 태스크 성능은 아니지만 비교할 수 있는 태스크 성능을 달성하는 동시에 구현하기 쉽고 병렬 및 분산 시스템에서 더 효율적으로 실행할 수 있게 할 수 있다.
각각의 프로세싱 유닛(130A...N)은 결정된 네트워크 출력들 및 신경 네트워크 트레이닝에 사용되는 특정 손실 함수에 기초하여 에러 값 또는 다른 학습 신호를 계산하도록 구성될 수 있다. 에러 값은 네트워크를 통해 역전파되어 프로세싱 유닛(130A...N)에 병렬로 할당된 특정 배치에 대한 그래디언트 값을 계산할 수 있다. 프로세싱 유닛들(130A...N) 각각에 의해 결정된 계산된 그래디언트 값은 적응형 그래디언트 클리핑 기법에 따라 그래디언트 노름 대 파라미터 노름의 비율 및 파라미터 값들에 대한 업데이트를 결정하기 위해 조합될 수 있다. 파라미터 값들에 대한 업데이트는 업데이트를 파라미터들의 로컬 복사본들에 적용하기 위해 프로세싱 유닛들(130A...N) 각각에 전송될 수 있고 또는 업데이트된 값들 자체가 추가 트레이닝이 필요할 때 프로세싱 유닛들(130A...N) 각각에 전송될 수 있다. 다른 병렬 구현이 적응형 그래디언트 클리핑 기법을 구현하는 데 적합할 수 있음을 알 수 있다. 예를 들어, 프로세싱 유닛들(130A...N)에 의해 사용되는 신경 네트워크 파라미터들의 로컬 복사본들이 상이하도록 비동기식 병렬 구현이 사용될 수 있다. 그래디언트 노름 대 파라미터 노름의 비율 결정, 임계값에 대한 비율 비교 및 파라미터 값들의 업데이트는 프로세싱 유닛에 분산된 트레이닝 데이터 항목들의 배치에 기초하여 병렬로 그리고 독립적으로 수행될 수 있다. 파라미터 값들의 업데이트 및 프로세싱 유닛들(130A...N)로의 업데이트된 파라미터 값들의 분산은 예를 들어 적절한 비동기 확률적 그래디언트 하강 방법에 따라 수행될 수 있다.
도 1은 병렬/분산 프로세싱 시스템을 도시하지만, 신경 네트워크 트레이닝 시스템(100)은 병렬 또는 분산 시스템으로 구현될 필요가 없으며 단일 프로세싱 유닛을 사용하여 구현될 수 있음을 이해할 것이다.
도 2는 복수의 히든(hidden) 레이어들(205A…N)을 포함하는 예시적인 신경 네트워크(200)을 도시한다. 신경 네트워크(200)는 복수의 히든 레이어들(205A…N)를 통해 입력(210)을 프로세싱하여 출력(215)을 제공한다. 일반적으로 신경 네트워크(200)는 특정 태스크를 수행하도록 트레이닝된다. 예를 들어, 신경 네트워크(200)는 이미지 인식 태스크를 수행하도록 트레이닝될 수 있다. 입력(210)은 픽셀 값들(또는 다른 이미지 데이터)을 포함하는 이미지일 수 있고 출력(215)은 특정 객체가 이미지에 존재할 가능성을 나타내는 점수들의 세트일 수 있다.
신경 네트워크(200)는 확률적 그래디언트 하강법 또는 다른 그래디언트 기반 방법과 같은 종래의 기법들을 사용하여 트레이닝될 수 있지만, 후술하는 바와 같이 적응형 그래디언트 클리핑 기법을 사용하도록 수정될 수 있다. 일반적으로 그래디언트 기반 트레이닝 방법의 경우, 하나 이상의 트레이닝 데이터 항목들이 신경 네트워크(200)에 입력으로 제공되어 대응하는 출력들을 생성한다. 교차 엔트로피 손실과 같이 생성된 출력들을 대응하는 타겟 출력들과 비교하는 손실 함수를 구성할 수 있다. 손실 함수로부터 계산된 에러 값 또는 다른 학습 신호는 출력으로부터 시작하여 복수의 복수의 히든 레이어들(205A…N)을 역순으로 거쳐 입력으로 “역전파”될 수 있다. 이와 같이 신경 네트워크의 각 파라미터에 대한 손실 함수의 그래디언트를 계산하여 파라미터 값을 업데이트하는데 사용할 수 있다.
적응형 그래디언트 클리핑 기법에서는 신경 네트워크의 파라미터와 연관된 그래디언트가 정상적으로 계산된다. 그러나 파라미터 업데이트에 사용하기 전에 그래디언트를 수정할 수 있다. 특히, 도 3의 프로세싱에 도시된 바와 같이, 단계(301)에서 신경 네트워크의 파라미터와 연관된 그래디언트가 결정된 후, 단계(305)에서 그래디언트 노름 대 파라미터 노름의 비율이 결정된다. 비율은 그래디언트 노름을 파라미터 노름으로 나눈 값으로 정의할 수 있다. 단계(310)에서, 결정된 비율은 임계값과 비교된다. 단계(315)에서, 비율이 임계값을 초과한다는 결정에 응답하여, 비율이 임계값 이하가 되도록 그래디언트의 값을 감소시켜, 그래디언트를 "클리핑"한다. 단계(320)에서, 파라미터의 값은 감소된 그래디언트 값에 기초하여 업데이트된다. 단계(325)에서 비율이 임계값을 초과하지 않는 경우, 그래디언트의 값은 유지될 수 있고, 단계(330)에서 파라미터의 값은 유지된 그래디언트 값에 기초하여 업데이트될 수 있다. 어느 경우든 파라미터 값의 업데이트는 사용되는 특정 그래디언트 기반 트레이닝 방법의 특정 파라미터 업데이트 규칙에 따라 수행될 수 있다.
적응형 그래디언트 클리핑 기법은 파라미터의 크기를 고려하여 파라미터에 대한 업데이트가 특정 크기로 제한된다는 점에서 안정적인 파라미터 업데이트를 보장한다. 일부 신경 네트워크에서는 효과적인 트레이닝을 위해 배치 정규화가 필요한데, 예를 들어 수십, 수백 또는 수천 개의 레이어들이 있는 매우 깊은 신경 네트워크에서 그러하다. 현재 적응형 그래디언트 클리핑 기법을 사용하면 배치 정규화 레이어들 없이도 이러한 신경 네트워크를 효과적으로 트레이닝할 수 있다. 배치 정규화 레이어들이 없는 신경 네트워크는 여기에서 "노멀라이저-프리(normalizer-free)" 신경 네트워크라고 한다.
배치 정규화 레이어들은 신경 네트워크에 있는 히든 레이어의 출력을 입력으로서 사용하고 입력의 중심을 다시 지정하고 크기를 다시 조정한다. 초기에는, 데이터가 대략 0 평균 및 유닛 분산을 갖도록 입력이 수정된다. 초기 정규화가 최적이 아닌 것으로 판명되면 학습가능한 파라미터들에 기초하여 추가 스케일링 및 이동(shifting)이 적용될 수 있다.
배치 정규화의 평균 및 분산은 특정 파라미터 업데이트 단계에 사용되는 트레이닝 데이터 항목들의 배치에 기초하여 계산된다. 따라서, 배치 정규화는 신경 네트워크의 출력을 계산할 때 데이터의 배치가 프로세싱 유닛들 사이에서 분할되는 데이터 배치의 평균 및 분산을 계산하기 위해 프로세싱 유닛들 사이의 통신이 필요할 수 있으므로 병렬 또는 분산 프로세싱 시스템에서의 구현을 더 어렵게 만드는 배치 내의 트레이닝 데이터 항목들 사이의 종속성을 도입한다. 배치 정규화 없으면, 프로세싱 유닛들은 각 입력 데이터 항목에 대한 네트워크 출력을 독립적으로 계산할 수 있으므로 프로세싱 유닛들 사이의 통신이 필요하지 않다. 따라서 배치 정규화를 적응형 그래디언트 클리핑 기법으로 대체하면 배치 내 트레이닝 데이터 항목들의 종속성이 제거되고 네트워크 출력을 독립적으로 계산하는 프로세싱 유닛들의 기능이 복원된다. 이를 통해 병렬 또는 분산 프로세싱 시스템에서 트레이닝을 보다 쉽게 구현할 수 있으며 병렬 또는 분산 시스템에서 프로세싱 유닛들 사이에 필요한 통신량이 줄어들어 병렬 구현의 효율성이 향상된다. 일부 선행 기술 구현예에서, 프로세싱 유닛들 사이에 배치 정규화 통계를 통신하는 것에 대한 대안으로서, 배치 내의 트레이닝 데이터 항목들은 배치 정규화가 실행될 때마다 프로세싱 유닛들이 각 실행에서 배치의 상이한 서브세트들에 할당될 가능성이 있도록 셔플링될 수 있다. 그러나 이 셔플링 동작은 병렬/분산 구현의 효율성을 감소시키는 추가 오버헤드를 발생시킨다. 적응형 그래디언트 클리핑 기법을 사용하면 셔플링 동작이 필요하지 않고 병렬/분산 구현에서 오버헤드가 줄어든다.
적응형 그래디언트 클리핑 기법으로 트레이닝된 노멀라이저-프리 신경 네트워크는 배치 정규화를 사용하는 신경 네트워크보다 더 나은 것은 아니지만 유사한 태스크 성능을 제공한다. 적응형 그래디언트 클리핑 기법을 통해 향상된 안정성은 태스크 성능을 유지하면서 전체 트레이닝 시간을 줄이는 큰 배치 크기에서 트레이닝을 가능하게 한다. 배치 정규화는 또한 계산 비용이 많이 드는 작업이며 이를 대체하면 대규모 신경 네트워크 트레이닝의 계산 요구 사항을 줄이는 데에도 기여한다.
기존의 그래디언트 클리핑 방법은 그래디언트의 크기만 고려하며 파라미터 자체의 크기와 그래디언트 노름 대 파라미터 노름의 비율은 고려하지 않는다. 노멀라이저-프리 네트워크에서 기존의 그래디언트 클리핑 방법을 사용하면 적응형 그래디언트 클리핑 기법을 사용하여 제공되는 모든 이점을 얻을 수 없다. 특히 기존의 그래디언트 클리핑을 사용하는 트레이닝에서, 클리핑 임계값은 깊이, 배치 크기 및 학습 속도에 민감하며 이러한 팩터들을 변경할 때 세밀한 조정이 필요하다. 기존 그래디언트 클리핑을 사용할 때 더 큰 네트워크에서도 수익 감소가 관찰된다. 그래디언트 클리핑에 비율을 사용하면 기존 그래디언트 클리핑이 수행할 수 없는 배치 정규화의 속성들과 이점을 복제하는 파라미터 업데이트의 안정성이 향상된다.
이제 적응형 그래디언트 기법에 대한 자세한 내용을 설명한다. 그래디언트의 값은 그래디언트의 값에 스케일 팩터를 곱함으로써 감소될 수 있다. 한 예에서, 스케일 팩터는 임계값을 기초한다. 다른 예에서, 스케일 팩터는 비율에 기초하고 비율의 역수에 기초할 수 있다. 스케일 팩터는 임계값과 비율의 조합에 기초할 수 있으며, 예를 들어 스케일 팩터는 임계값에 비율의 역수를 곱한 것에 기초할 수 있다.
그래디언트 노름 및 파라미터 노름은 프로베니우스 노름에 기초할 수 있다. 매트릭스 A의 프로베니우스 노름은 매트릭스의 각 개별 요소에 대한 제곱합의 제곱근으로 정의된다:
노름은 단위별 노름일 수 있는데, 즉 노름은 하나의 특정 레이어에서 신경 네트워크의 특정 뉴런 하나와 연관된 그래디언트/파라미터 값들에 기초하여 계산될 수 있다. 예를 들어, 노름은 뉴런에 대한 들어오는 연결 및 그에 대응하는 그래디언트들과 연관된 파라미터들에 기초하여 계산될 수 있다. 대안적으로, 적절하다면, 나가는 연결을 사용할 수 있다.
일 구현예에서, 그래디언트의 값은 다음 방정식에 기초하여 감소되고 업데이트될 수 있다:
여기서 는 l번째 레이어에 대한 가중치 매트릭스, i는 l번째 레이어에 있는 뉴런의 인덱스 (따라서 노름이 단위별로 계산될 때 의 행 백터일 수 있음), 는 파라미터 에 대응하는 그래디언트, 는 스칼라 임계값, 그리고 는 프로베니우스 노름이다. 는 또한 0으로 초기화된 파라미터들의 그래디언트가 0으로 클리핑되는 것을 방지할 수 있는 max(, ε)로서 계산될 수 있다. ε는 10-3 또는 다른 적절한 작은 값일 수 있다.
일 예에서, 임계값은 0.01에서 0.16까지의 범위에 있는 값일 수 있다. 하나의 특정 파라미터 업데이트 단계에서 프로세싱되는 트레이닝 데이터 항목들의 네트워크 유형 및 배치 크기에 따라 다른 임계값이 적절하게 선택될 수 있음을 알 수 있다. 임계값 값은 배치 크기에 기초할 수 있다. 예를 들어 더 큰 배치 크기에 대해 임계값에 대한 작은 값을 선택할 수 있다(강력한 그래디언트 클리핑 제공).
파라미터의 값을 업데이트하는 것은 적어도 1024개의 트레이닝 데이터 항목들의 배치 크기에 기초할 수 있다. 노멀라이저-프리 신경 네트워크를 포함하는 이전 작업에서는 ImageNet에서 1024와 같은 큰 배치 크기에 대한 트레이닝이 불안정했다. 위에서 설명한 바와 같이 적응형 그래디언트 클리핑 기법을 사용하면 안정성이 향상되고 배치 크기가 1024 이상인 트레이닝이 가능하다. 예를 들어 배치 크기 4096을 사용할 수 있다.
적응형 그래디언트 클리핑 기법은 작은 배치 크기뿐만 아니라 큰 배치 크기에서도 효과적이다. 배치 정규화 및 기타 정규화된 옵티마이저의 태스크 성능은 작은 배치 크기에서 좋지 않은 경향이 있다. 따라서 적응형 그래디언트 클리핑 방법은 계산 리소스가 제한되어 있고 작은 배치 크기를 사용해야 하는 경우에도 효과적이다.
적응형 그래디언트 클리핑 기법은 드롭아웃 및 확률적 깊이와 같은 규칙화 방법과 함께 사용될 수 있다. 드롭아웃 비율은 깊이에 따라 증가할 수 있다. 즉, 레이어 수가 많은 네트워크의 경우 드롭아웃 비율이 더 커질 수 있다. 드롭아웃 비율은 0.2에서 0.5까지의 범위에 있을 수 있다. 적응형 그래디언트 클리핑 기법은 네스테로의 모멘텀과 같은 모멘텀 기반 업데이트 규칙과 함께 사용할 수도 있다. 적응형 그래디언트 클리핑 기법은 또한 트레이닝 방법의 안정성이 향상되어 트레이닝 속도를 높이기 위해 큰 학습 속도를 사용할 수 있다.
그래디언트의 결정은 선명도-인식 최소화 기법에 기초할 수 있다. 선명도-인식 최소화 기법에서, 손실 함수는 트레이닝 태스크에 기초한 기존 손실 및 최소값의 지오메트리에 기초한 추가 손실을 포함할 수 있다. 이 추가 손실은 균일하게 낮은 손실 값들을 가진 인접 영역에 있는 파라미터들을 찾는다. 즉, 뾰족한 모양의 최소값보다 더 나은 일반화를 제공하는 것으로 생각되는 더 평평한 최소값을 찾는다. 그래디언트의 결정은 파라미터의 수정된 버전을 결정하기 위해 그래디언트 상승 단계를 수행하는 것과 파라미터와 연관된 그래디언트를 결정하기 위해 파라미터의 수정된 버전에 기초하여 그래디언트 하강 단계를 수행하는 것을 포함할 수 있다. 그래디언트 상승 단계는 트레이닝 데이터 항목들의 현재 배치의 서브세트에 기초하여 수행될 수 있다. 예를 들어, 현재 배치에 있는 트레이닝 데이터 항목들의 1/5이 사용될 수 있다. 적응형 그래디언트 클리핑 기법과 함께 사용될 때 배치 결과들의 서브세트를 사용하는 것은 상승 단계에 대한 배치의 모든 트레이닝 데이터 항목들을 사용하는 것과 동일한 성능을 갖는 것으로 나타났다. 따라서 훨씬 더 낮은 계산 비용으로 동일한 이점을 얻을 수 있다. 분산 트레이닝 시스템에서 사용되는 경우, 그래디언트 상승 단계의 그래디언트들은 서로 다른 프로세싱 유닛들의 복제본 사이에 동기화가 필요하지 않다. 그래디언트 상승 단계 및 생성된 수정된 파라미터들은 프로세싱 유닛에 로컬로 유지될 수 있으며 그래디언트 하강 단계는 로컬 수정된 파라미터들에 대해 수행될 수 있다. 더 적은 수의 프로세싱 유닛들을 사용하는 분산 시스템이나 단일 프로세싱 유닛 시스템에 대한 그래디언트 누적을 통해 동일한 효과를 얻을 수 있다. 선명도-인식 최소화에 대한 자세한 내용은 https://openreview.net/forum?id=6Tm1mposlrM에서 이용가능한, 2021년 제9 회 International Conference on Learning Representations, ICLR의 Foret et. al., "Sharpness-aware minimization for efficiently improving generalization"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다.
도 1을 다시 참조하면, 신경 네트워크 트레이닝 시스템(100)은 트레이닝 데이터 세트(110)를 증강하여 추가 트레이닝 데이터 항목들을 생성하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 수신된 트레이닝 데이터 세트(100)는 수정된 트레이닝 데이터 항목들과 함께 수정되지 않은 트레이닝 데이터 항목들의 세트를 포함하는 증강된 트레이닝 데이터 세트일 수 있다.
적응형 그래디언트 클리핑 기법이 제공하는 향상된 안정성을 통해 태스크 성능을 저하시키지 않고 강력한 증강을 사용할 수 있다. 사용될 수 있는 하나의 예시적인 데이터 증강 기술은 "RandAugment"로 지칭된다. RandAugment에 대한 자세한 내용은 Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops, pp. 702-703, 2020에서, Cubuk et. al., "Randaugment: Practical automated data augmentation with a reduced search space"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다. 간단히 말해서, 이미지 데이터에 대해 RandAugment는 아이덴터티, 자동 대비, 이퀄라이즈, 회전, 솔라라이즈, 컬러, 포스터라이즈, 대비, 밝기, 선명도, 전단 및 변환을 포함한 다양한 이미지 변환을 제공한다. 트레이닝 데이터 항목들의 양식에 따라 다른 변환 세트들이 적절하게 사용될 수 있다는 것이 인식될 것이다. 트레이닝 데이터 항목의 수정된 버전은 하나 이상의 변환을 임의로 선택하여 생성될 수 있다. 일례에서, 적응형 그래디언트 클리핑 기법으로 신경 네트워크를 트레이닝하는데 사용하기 위한 수정된 트레이닝 데이터 항목을 생성하기 위해 트레이닝 데이터 항목에 순차적으로 적용되도록 4개의 변환이 무작위로 선택된다.
추가적으로 또는 대안적으로, 다른 데이터 증강 기법이 사용될 수 있다. 예를 들어, 수정된 트레이닝 데이터 항목은 제1 트레이닝 데이터 항목의 일부를 선택하고, 제2 트레이닝 데이터 항목의 대응하는 부분을 제1 트레이닝 데이터 항목으로부터 선택된 부분으로 대체함으로써 생성될 수 있다. 선택된 부분의 위치와 크기는 임의로 선택될 수 있다. 단일 부분 대신에, 복수의 부분이 선택되어 수정된 트레이닝 데이터 항목을 생성하기 위한 대체에 사용될 수 있다. 이미지 데이터의 경우 해당 부분은 이미지 패치일 수 있다.
이러한 방식으로 수정된 트레이닝 데이터 항목에는 수정된 트레이닝 데이터 항목에 존재하는 제1 및 제2 트레이닝 데이터 항목들의 비율에 기초하여 라벨이 할당될 수 있다. 예를 들어, 제1 트레이닝 데이터 항목의 선택된 부분이 수정된 트레이닝 데이터 항목의 40%를 차지하고, 두 번째 트레이닝 데이터 항목이 나머지 60%를 차지한다면, 수정된 트레이닝 데이터 항목에 대한 제1 트레이닝 데이터 항목과 연관된 클래스에 대해 0.4이고 제2 트레이닝 데이터 항목과 연관된 클래스에 대해 0.6일 수 있다. 유사한 데이터 증강 기술에서, 제1 트레이닝 데이터 항목의 선택된 부분은 공백으로 표시될 수 있다. 즉, 픽셀 값은 0 값 또는 검정색을 나타내는 값으로 설정될 수 있거나 랜덤 노이즈로 대체될 수 있다.
적응형 그래디언트 클리핑 기법과 함께 사용하기에 적합한 또 다른 예시적인 데이터 증강 기법은 제1 및 제2 트레이닝 데이터 항목을 보간함으로써 수정된 트레이닝 데이터 항목을 생성하는 것을 포함한다. 보간은 선형 보간일 수 있다. 수정된 트레이닝 데이터 항목에는 제1 및 제2 트레이닝 데이터 항목의 보간 가중치에 기초하여 라벨이 할당될 수 있다.
일 구현예에서, 트레이닝 데이터 항목들의 배치에 대해, RandAugment는 배치 내 모든 트레이닝 데이터 항목들에 적용될 수 있고, 부분 선택/대체 기법은 배치 내 트레이닝 데이터 항목의 절반에 적용될 수 있으며, 보간 기법은 배치에 대한 추가 트레이닝 데이터 항목을 생성하기 위해 트레이닝 데이터 항목의 나머지 절반에 적용될 수 있다. 위에서 언급한 바와 같이, 적응형 그래디언트 클리핑 방법에 의해 제공되는 향상된 안정성은 태스크 성능을 저하시키지 않고 강력한 증강을 사용할 수 있게 한다. 따라서 다양한 데이터 증강 기법을 결합하면 태스크 성능을 향상시키는 데 도움이 될 수 있다. 더 강력한 데이터 증강을 통해 태스크 성능이 점진적으로 향상될 수 있다는 것이 관찰되었다. 일반적인 배치 정규화된 신경 네트워크는 더 강력한 데이터 증강을 사용함으로써 이점을 얻지 못하며 어떤 경우에는 성능이 저하될 수 있다.
수신된 신경 네트워크 파라미터들(105)은 사전 트레이닝된 신경 네트워크의 파라미터들일 수 있고 신경 네트워크 트레이닝 시스템(100)은 신경 네트워크를 추가로 트레이닝하는 데 사용될 수 있다. 예를 들어, 신경 네트워크는 관심 있는 특정 태스크 및/또는 관심 있는 특정 데이터세트에 대한 추가 트레이닝에 앞서 다른 데이터세트 및/또는 트레이닝 목표에 대한 트레이닝을 받았을 수 있다. 따라서, 신경 네트워크 트레이닝 시스템(100)은 전달 학습의 맥락에서 사용될 수 있다. 한 가지 예에서 신경 네트워크는 18,000개 클래스의 약 3억 개의 라벨이 지정된 이미지로 구성된 데이터세트에서 사전 트레이닝된다. 그런 다음 신경 네트워크는 ImageNet 데이터세트의 이미지 인식을 위해 미세 조정된다. 사전 트레이닝 단계와 미세 조정 단계 모두 신경 네트워크 트레이닝 시스템(100)과 적응형 그래디언트 클리핑 기법을 사용하여 수행될 수 있다.
적응형 그래디언트 클리핑 기법은 심층 잔차 신경 네트워크 구조를 갖는 신경 네트워크에 적용될 수 있다. 잔차 신경 네트워크 아키텍처는 잔차 블록을 포함하며 위에서 논의한 바와 같이 적응형 그래디언트 클리핑 기법을 사용하여 잔차 블록에는 정규화 레이어가 없을 수 있다. 잔차 블록은 컨볼루션, 풀링 및/또는 다른 선형 및 비선형 연산과 같은 연산들을 포함할 수 있지만 배치 정규화 연산은 포함되지 않는다.
컨벌루션 레이어에서는 채널 및 공간 차원들을 포함한 팬-인 범위에 걸쳐 그래디언트 및 파라미터 노름을 계산할 수 있다. 적응형 그래디언트 클리핑 기법은 네트워크의 모든 레이어에 적용될 수 있지만, 최종 출력 레이어와 초기 컨벌루션 레이어는 제외될 수 있다.
도 4는 노멀라이저-프리 신경 네트워크일 수 있는 잔차 신경 네트워크 아키텍처(400)의 개략도를 제공한다. 잔차 신경 네트워크(400)은 "스템(stem)"(405)이라고 불리는 하나 이상의 히든 레이어들의 초기 세트를 포함한다. 스템 다음으로, 잔차 신경 네트워크(400)은 "백본"(410)으로 지칭되는 또 다른 히든 레이어들의 세트를 포함한다. 마지막으로, 잔차 신경 네트워크(400)은 분류 레이어와 같이 수행되는 태스크에 특정할 수 있는 하나 이상의 레이어들(415)의 추가 세트를 포함한다.
잔차 신경 네트워크(400)의 백본(410)은 복수의 반복 잔차 블록들을 포함할 수 있다. 각각의 잔차 블록은 동일한 동작들의 시퀀스(신경 네트워크 레이어들의 시퀀스)를 포함할 수 있으며, 두 가지 이상의 잔차 블록 유형이 존재할 수 있다. 잔차 블록들은 각 단계가 일정한 폭과 레졸루션을 갖는 잔차 블록들의 시퀀스를 포함하는 단계들로 배열될 수 있다. 도 4에서, 백본(410)은 1개의 잔차 블록을 갖는 제1 단계(410A), 2개의 잔차 블록들을 갖는 제2 단계(410B), 6개의 잔차 블록들을 갖는 제3 단계(410C) 및 3개의 잔차 블록들을 갖는 제4 단계(410D)를 포함한다. 백본(410)은 제1 단계부터 제4 단계까지 1:2:6:3 비율의 다수의 잔차 블록들을 포함할 수 있다. 지정된 비율을 유지하면서 각 단계의 잔차 블록 수를 늘려 깊이가 증가된 신경 네트워크를 구축할 수 있다. 예를 들어, 신경 네트워크는 제1 단계에 5개의 잔차 블록들, 제2 단계에서 10개의 잔차 블록들, 제3 단계에서 30개, 제4 단계에서 15개의 잔차 블록들을 가질 수 있다.
각 단계의 폭은 이전 단계의 폭의 두 배가 될 수 있다. 예를 들어, 폭은 제1 단계에서 256, 제2 단계에서 512, 제3 단계에서 1024, 제4 단계에서 2048일 수 있다. 대안적인 구성에서, 제3 및 제4 단계의 폭은 1536일 수 있다. 예를 들어, 폭은 제1 단계에서 256, 제2 단계에서 512, 제3 및 제4 단계에서 모두 1536일 수 있다. 다른 예에서, 폭은 제1 단계에서 256, 제2 단계에서 1024, 제3 및 제4 단계에서 모두 1536일 수 있다. 폭 변경을 처리하기 위해 단계들 사이에 전환 블록들(도 4에는 표시되지 않음)을 사용할 수 있다.
전술한 바와 같이, 잔차 블록은 비선형성을 포함할 수 있다. 비선형성은 가우시안 에러 선형 유닛(GELU), 정류된 선형 유닛(ReLU) 또는 기타 적절한 비선형 연산일 수 있다. 컨볼루션 연산은 그룹화된 컨볼루션일 수 있다. 예를 들어, 3 x 3 컨볼루션의 그룹 폭은 128일 수 있다.
잔차 블록은 병목 잔차 블록일 수 있다. 예시적인 병목 잔차 블록(500)이 도 5에 도시되어 있다. 병목 잔차 블록(500)은 병목을 형성하기 위해 채널들의 수를 줄이는 1x1 컨벌루션 레이어(505)를 포함한다. 예를 들어, 채널들의 수가 절반으로 줄어들 수 있다. 병목 내부에는 제1 그룹화된 컨벌루션 레이어(510) 및 제2 그룹화된 컨벌루션 레이어(515)가 존재한다. 일반적인 병목은 병목 내부에 하나의 컨볼루션 레이어로만 구성된다. 병목에 제2 컨벌루션 레이어를 포함하면 트레이닝 시간에 거의 영향을 주지 않고 태스크 성능을 향상시킬 수 있는 것으로 나타났다. 도 5에서 병목은 2개의 3x3 그룹화된 컨벌루션 레이어들(510, 515)로 구성된다. 채널 수를 복원하는 추가 1x1 컨벌루션 레이어(520)가 제공된다. 비선형성(도 5에는 도시되지 않음)이 하나 이상의 컨볼루션 동작들 뒤에 나타날 수 있다.
잔차 블록(500)은 또한 2개의 스케일링 파라미터, (525) 및 (530)를 포함한다. 파라미터(525)는 잔차 블록(500)의 입력을 다운스케일링하고 입력의 분산에 기초할 수 있다. 분산은 분석적으로 결정될 수 있다. 잔차 블록(500)의 잔차 브랜치(병목을 포함하는 경로)의 최종 활성화는 스칼라 파라미터(530)에 의해 스케일링될 수 있다.
스케일링 파라미터(525 및 530)을 사용하여, 잔차 블록은 형식의 함수를 구현할 수 있으며, 여기서 는 i번째 잔차 블록에 대한 입력들을 나타내고, 는 i번째 잔차 브랜치에 의해 계산된 함수를 나타낸다. 함수는 모든 i에 대해 ) = 와 같이, 초기화 시 분산이 보존되도록 파라미터화될 수 있다. 스칼라 (530)는 위에서 언급한 바와 같이 0.2일 수 있다. 스칼라 는 i번째 잔차 블록에 대한 입력들의 표준편차를 예측함으로써 결정될 수 있으며, , 여기서 는 스킵 경로가 다운스케일링된 입력 에서 동작하는 전환 블록을 제외하고, 예상 분산은 전환 블록이 로 재설정된 후 리셋된다. 추가 세부사항들은 2021년 제9 회 International Conference on Learning Representations, ICLR의 Brock et al., "Characterizing signal propagation to close the performance gap in unnormalized resnets"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다.
잔차 블록(500)의 컨볼루션 레이어의 가중치들은 스케일링된 가중치 표준화를 거칠 수 있다. 즉, 레이어에 있는 가중치들의 평균 및 표준편차에 기초하여 가중치들을 다시 파라미터화할 수 있다. 스케일링된 가중치 표준화와 관련된 추가 세부 사항은 2021년 제9 회 International Conference on Learning Representations, ICLR의 Brock et al., "Characterizing signal propagation to close the performance gap in unnormalized resnets"에서 확인할 수 있으며, 전체 내용이 참조로 통합된다.
잔차 블록은 스퀴즈 앤 익사이트 레이어를 더 포함할 수 있다. 스퀴즈 앤 익사이트는: 글로벌 평균 풀링, 완전 연결된 선형 함수, 스케일링된 비선형 함수, 제2 완전 연결된 선형 함수, 시그모이드 함수 및 선형 스케일링의 함수들의 시퀀스에 따라 입력 활성화를 프로세싱할 수 있다. 예를 들어, 레이어의 출력은 2σ(FC(GELU(FC(pool(h))))) x h일 수 있고, 여기서 σ는 시그모이드 함수이고, FC는 완전 연결된 선형 함수이며, pool은 글로벌 평균 풀링이고 h는 입력 활성화이다. 2의 스칼라 승수는 신호 분산을 유지하는 데 사용될 수 있다. 일례에서, 스퀴즈 앤 익사이트 레이어는 최종 1x1 컨볼루셔널 레이어(520) 이후와 (530)에 의한 스케일링 이전에 제공된다.
잔차 블록은 잔차 블록의 잔차 브랜치의 끝에서 학습가능한 스칼라 게인(gain)을 더 포함할 수 있다. 학습가능한 스칼라는 0 값으로 초기화될 수 있다. 학습가능한 스칼라는 위에서 논의된 스칼라 (530)에 추가될 수 있다.
위에서 논의된 바와 같이, 잔차 신경 네트워크는 백본의 단계들 사이의 전환 블록을 포함할 수 있다. 전환 블록은 도 5에 도시된 병목 잔차 블록(500)과 유사한 형태를 가질 수 있다. 그러나 제1 3x3 그룹화된 컨벌루션 레이어(510)는 스트라이드(stride) 값을 증가시키기 위해 수정될 수 있다. 예를 들어 컨볼루션 연산은 출력 활성화의 폭을 변경하기 위해 2의 스트라이드를 사용할 수 있다. 또한, 스킵 경로(병목 레이어들을 우회하는 경로)는 풀링 레이어와 폭을 변경하는 1x1 컨벌루션 레이어로 구성될 수 있다. 스킵 경로는 또한 잔차 블록(500)에서처럼 이전보다는 스케일링(525) 이후에 분기하도록 수정될 수도 있다.
이제 도 6을 참조하면, 이미지 인식 정확도에 대한 트레이닝 레이턴시(latency)의 플롯은 잔차 신경 네트워크(점선)에 기초한 최고 성능의 이미지 인식 신경 네트워크 모델의 대표 샘플과 비교하여 위에서 설명된 기법들을 사용하여 트레이닝된 예시적인 노멀라이저-프리 신경 네트워크(실선)을 비교한 것이다. 더 자세히 설명하면, NFNet-F0 ~ F5로 라벨링된 위의 기법들을 사용하여 트레이닝된 예시적인 노멀라이저-프리 신경 네트워크는 도 5에 표시된 병목 잔차 블록들을 포함한다. 각각의 예시적인 신경 네트워크는 위에서 설명한 대로 1:2:6:3 비율의 4단계 백본을 갖는다. F0 신경 네트워크는 잔차 블록 수가 가장 적은 기본 네트워크, 즉, 각 단계마다 1, 2, 6, 3개의 잔차 블록들이 있다. 각 후속 네트워크는 비율에서 다음 정수 값을 갖는데, 즉, F1 신경 네트워크는 각 단계에서 2, 4, 12 및 6개의 잔차 블록들을 갖고, F2 신경 네트워크는 각 단계에서 3, 6, 18 및 9개의 잔차 블록들을 갖는다. 각 단계의 폭은 제1 단계에서 제4 단계까지 [256, 512, 1536, 1536]이다.
도 6의 플롯은 32개 디바이스들과 각 디바이스에 32개 트레이닝 데이터 항목들의 배치 크기를 가진 TPUv3를 사용하여 단일 트레이닝 단계를 수행하는 데 필요한 관찰된 벽시계 시간의 5000개 이상의 트레이닝 단계에서 중앙값(medial)으로 측정된 트레이닝 레이턴시를 보여준다. 신경 네트워크는 ImageNet top-1 정확도 벤치마크를 사용하여 평가된다.
도 6에서 볼 수 있듯이, 노멀라이저-프리 예시적인 신경 네트워크는 더 높은 이미지 인식 정확도를 제공하는 동시에 트레이닝에도 더 효율적이다.
위에서 언급한 바와 같이, 적응형 그래디언트 클리핑 기법은 특정 태스크를 수행하기 위해 신경 네트워크를 트레이닝하는 데 사용될 수 있으며, 그 예는 아래에서 설명된다.
신경 네트워크는 모든 종류의 디지털 데이터 입력을 수신하고 입력에 기초하여 모든 종류의 점수, 분류 또는 회귀 출력을 생성하도록 구성할 수 있다.
예를 들어, 신경 네트워크에 대한 입력이 이미지이거나 이미지에서 추출된 특징인 경우, 주어진 이미지에 대해 신경 네트워크에 의해 생성된 출력은 객체 카테고리들의 세트 각각에 대한 점수일 수 있으며, 각 점수는 이미지가 카테고리에 속하는 객체의 이미지를 포함할 추정된 가능성을 나타낸다. 즉, 뉴럴 네트워크는 이미지/객체 인식 태스크를 수행할 수 있다. 신경 네트워크는 또한 검출된 객체의 이미지 내 위치에 대한 표시를 출력으로 제공하여 이미지 분할을 수행할 수 있다.
또 다른 예로, 신경 네트워크에 대한 입력이 한 언어로 된 텍스트의 시퀀스인 경우, 신경 네트워크에 의해 생성된 출력은 다른 언어로 된 텍스트 조각들의 세트 각각에 대한 점수일 수 있으며, 각 점수는 다른 언어의 텍스트 조각이 입력 텍스트를 다른 언어로 적절하게 번역할 가능성을 나타낸다.
또 다른 예로, 신경 네트워크에 대한 입력이 음성 발화를 나타내는 시퀀스인 경우, 신경 네트워크에 의해 생성된 출력은 텍스트 조각들의 세트 각각에 대한 점수일 수 있으며, 각 점수는 텍스트 조각이 발화에 대한 올바른 전사본(transcript)일 추정된 가능성을 나타낸다.
보다 일반적으로, 신경 네트워크는 언어 모델링 시스템, 이미지 프로세싱 시스템, 액션 선택 시스템 등에 사용될 수 있다. 신경 네트워크는 지도 및 비지도 학습 태스크에 사용될 수 있다. 예를 들어, 지도 학습 태스크에는 이미지 프로세싱 태스크, 스피치 인식 태스크, 자연어 프로세싱 태스크, 단어 인식 태스크, 광학 문자 인식 태스크와 같은 분류 태스크가 포함될 수 있다. 비지도 학습 태스크에는 에이전트가 하나 이상의 목표를 달성하기 위해 하나 이상의 실제 또는 시뮬레이션 환경과 상호작용하는 강화 학습 태스크가 포함될 수 있다.
신경 네트워크에 대한 입력 데이터는 예를 들어, 이미지 데이터, 동영상/비디오 데이터, 모션 데이터, 스피치 데이터, 오디오 데이터, 전자 문서, 환경 상태를 나타내는 데이터 및/또는 액션을 나타내는 데이터 중 하나 이상을 포함할 수 있다. 예를 들어, 이미지 데이터는 컬러 또는 단색 픽셀 값 데이터를 포함할 수 있다. 이러한 이미지 데이터는 카메라나 LIDAR 센서와 같은 이미지 센서로부터 캡처될 수 있다. 오디오 데이터는 파형을 정의하는 시간 및/또는 주파수 영역의 일련의 값과 같은 오디오 파형을 정의하는 데이터를 포함할 수 있다; 파형은 자연어로 된 스피치를 나타낼 수 있다. 전자 문서 데이터는 자연어로 된 단어를 표현하는 텍스트 데이터를 포함할 수 있다. 환경의 상태를 나타내는 데이터는 예를 들어: 자세 데이터 및/또는 포지션/속도/가속도 데이터와 같이 로봇이나 차량의 상태를 특성화하는 데이터; 또는 감지된 전류 및/또는 온도 신호와 같은 감지된 전자 신호와 같은 산업 플랜트 또는 데이터 센터의 상태를 특성화하는 데이터를 포함하는 모든 종류의 센서 데이터를 포함할 수 있다. 액션을 나타내는 데이터는 예를 들어 포지션, 속도, 가속도 및/또는 토크 제어 데이터 또는 산업 플랜트 또는 데이터 센터에서 하나 이상의 장치 항목들의 동작을 제어하기 위한 데이터를 포함할 수 있다. 이러한 데이터는 일반적으로 실제 또는 가상, 예를 들어 시뮬레이션된 환경과 관련될 수 있다.
신경 네트워크의 출력 데이터는 유사하게 모든 종류의 데이터를 포함할 수 있다. 예를 들어 분류 시스템에서 출력 데이터는 입력 데이터 항목들에 대한 클래스 라벨들을 포함할 수 있다. 회귀 태스크에서 출력 데이터는 로봇, 차량, 데이터 센터 또는 플랜트와 같은 전자 또는 전자 기계 시스템을 제어하기 위한 제어 변수와 같은 연속 변수의 값을 예측할 수 있다. 이미지 또는 오디오 데이터에 대해 동작하는 회귀 태스크의 또 다른 예에서 출력 데이터는 데이터의 하나 이상의 위치, 예를 들어 객체의 위치 또는 객체의 경계 상자의 하나 이상의 모서리의 위치 또는 오디오 파형의 사운드 특징의 시간 위치를 정의할 수 있다. 강화 학습 시스템에서 출력 데이터는 예를 들어 위에서 설명된 액션, 예를 들어 로봇이나 차량과 같은 기계 에이전트와 같은 환경에서 작동하는 에이전트에 의해 수행되는 액션을 나타내는 데이터를 포함할 수 있다.
액션을 나타내는 데이터는 예를 들어 액션에 대한 액션 값(Q-값)을 정의하는 데이터, 액션을 결정하기 위해 확률 분포가 샘플링되는 확률 분포를 파라미터화하는 데이터, 또는 예를 들어 연속적인 액션 공간에서 액션을 직접 정의하는 데이터를 포함할 수 있다. 따라서 강화 학습 시스템에서 신경 네트워크는 액션 선택 정책에 대한 확률 분포를 직접 파라미터화하거나 액션-값 함수(Q-값들)의 값을 추정하는 방법을 학습할 수 있다. 후자의 경우, 다수의 메모리들과 각각의 출력 네트워크는 공통 임베딩 네트워크를 공유하여 각각의 이용가능한 액션에 대한 Q 값을 제공할 수 있다.
트랜스포머 신경 네트워크는 일종의 셀프 어텐션 피드포워드 시퀀스 모델이다. 트랜스포머 신경 네트워크는 인코더와 디코더로 구성된다. 인코더는 입력 시퀀스를 인코딩에 매핑한다. 디코더는 인코딩을 프로세싱하여 출력 시퀀스를 제공한다. 입력 및 출력 시퀀스의 예가 아래에 제공된다. 인코더와 디코더 모두 인코더/디코더가 현재 단계에서 시퀀스의 가장 관련성이 높은 부분에 포커싱하도록 안내하고 반복 연결의 필요성을 대체하는 셀프 어텐션을 사용한다. 트랜스포머 모델에 대한 자세한 내용은 https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf에서 이용가능한, Vaswani et al., "Attention Is All You Need", 제31차 Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA에서 찾을 수 있으며, 전체 내용이 여기에서 참조로 통합된다.
트랜스포머 신경 네트워크는 입력 시퀀스(즉, 복수의 입력 포지션 각각에서 각각의 입력을 갖는 입력 시퀀스)를 수신하고 입력 시퀀스를 프로세싱하여 출력 또는 출력 시퀀스를 생성하도록 구성될 수 있다.
예를 들어, 트랜스포머 신경 네트워크는 환경과 상호작용하는 강화 학습 에이전트에 의해 수행될 액션을 선택하는 강화 학습 시스템의 일부일 수 있다. 다른 유형의 신경 네트워크가 강화 학습 시스템과 함께 사용될 수 있다는 것이 인식될 것이다. 에이전트가 환경과 상호작용하기 위해, 강화 학습 시스템은 환경의 상이한 상태들을 특징짓는 관찰 시퀀스를 포함하는 입력 시퀀스를 수신할 수 있다. 시스템은 수신된 입력 시퀀스에 응답하여, 즉 시퀀스의 마지막 관찰에 응답하여 에이전트에 의해 수행될 하나 이상의 액션들을 지정하는 출력을 생성할 수 있다. 즉, 일련의 관찰에는 환경의 현재 상태를 특징짓는 현재 관찰과 환경의 과거 상태를 특징짓는 하나 이상의 과거 관찰이 포함된다.
일부 구현예에서, 환경은 실제 환경이고 에이전트는 실제 환경과 상호작용하는 기계 에이전트이다. 예를 들어, 에이전트는 특정 태스크를 수행하기 위한, 예를 들어 환경에서 관심 객체의 위치를 찾거나 관심 객체를 환경의 지정된 위치로 이동하거나 환경의 지정된 목적지로 이동하기 위해 환경과 상호작용하는 로봇일 수 있다; 또는 에이전트는 환경을 탐색하는 자율적 또는 반자율적 육상, 항공 또는 해상 차량일 수 있다.
이러한 구현예에서, 관찰은 예를 들어 하나 이상의 이미지, 객체 포지션 데이터 및 에이전트가 환경과 상호작용할 때 관찰을 캡처하기 위한 센서 데이터, 예를 들어, 이미지, 거리 또는 포지션 센서 또는 액추에이터(actuator)로부터의 센서 데이터를 포함할 수 있다.
예를 들어 로봇의 경우 관찰은 로봇의 현재 상태를 특징짓는 데이터, 예를 들어 관절 포지션, 관절 속도, 관절 힘, 토크 또는 가속도, 예를 들어 중력 보상 토크 피드백, 로봇에 의해 홀딩되고 있는 아이템의 전체적 또는 상대적 자세 중 하나 이상이 포함할 수 있다.
로봇이나 기타 기계 에이전트 또는 차량의 경우 관찰은 유사하게 포지션, 선형 또는 각속도, 힘, 토크 또는 가속도, 그리고 에이전트의 하나 이상의 부분의 전체적 또는 상대적 자세 중 하나 이상을 포함할 수 있다. 관찰은 1차원, 2차원 또는 3차원으로 정의될 수 있으며 절대적 및/또는 상대적 관찰일 수 있다.
관찰은 또한 예를 들어 모터 전류 또는 온도 신호와 같은 감지된 전자 신호; 및/또는 예를 들어 카메라 또는 LIDAR 센서로부터의 이미지 또는 비디오 데이터, 예를 들어 에이전트의 센서로부터의 데이터 또는 환경 내 에이전트로부터 별도로 위치한 센서로부터의 데이터를 포함할 수 있다.
전자 에이전트의 경우, 관찰에는 전류, 전압, 전력, 온도 및 기타 센서와 같은 플랜트 또는 서비스 시설의 일부를 모니터링하는 하나 이상의 센서들로부터의 데이터 및/또는 장비의 전자 및/또는 기계 항목의 기능을 나타내는 전자 신호가 포함될 수 있다.
이러한 구현예에서, 액션은 로봇을 제어하기 위한 제어 입력, 예를 들어 로봇의 관절에 대한 토크 또는 더 높은 수준의 제어 명령, 또는 자율 또는 반자율 육상, 항공 또는 해상 차량, 예를 들어 제어 표면이나 차량의 기타 제어 요소에 대한 토크 또는 더 높은 수준의 제어 명령일 수 있다.
즉, 액션에는 예를 들어 로봇의 하나 이상의 관절이나 다른 기계 에이전트의 부품에 대한 포지션, 속도 또는 힘/토크/가속도 데이터가 포함될 수 있다. 액션 데이터는 추가적으로 또는 대안적으로 모터 제어 데이터와 같은 전자 제어 데이터, 또는 더 일반적으로 제어가 환경의 관찰된 상태에 영향을 미치는 환경 내의 하나 이상의 전자 장치를 제어하기 위한 데이터를 포함할 수 있다. 예를 들어 자율 또는 반자율 육상 차량, 항공 차량, 해상 차량의 경우 액션에는 조향 및 이동과 같은 예를 들어, 차량의 제동 및/또는 가속도와 같은 탐색을 제어하는 액션이 포함될 수 있다.
일부 구현예에서 환경은 시뮬레이션된 환경이고 에이전트는 시뮬레이션된 환경과 상호작용하는 하나 이상의 컴퓨터들로 구현된다. 시뮬레이션된 환경에서 에이전트를 트레이닝하는 것은 에이전트로 하여금 실제 환경에서 에이전트 트레이닝과 관련된 위험, 예를 들어 잘못 선택한 액션 수행으로 인한 에이전트 손상을 피하면서 대량의 시뮬레이션된 트레이닝 데이터로부터 학습하게 할 수 있다. 시뮬레이션된 환경에서 트레이닝된 에이전트는 이후 실제 환경에 배포될 수 있다.
예를 들어, 시뮬레이션된 환경은 로봇이나 차량의 시뮬레이션일 수 있으며 강화 학습 시스템은 시뮬레이션에 대해 트레이닝될 수 있다. 예를 들어, 시뮬레이션 환경은 운전 시뮬레이션, 비행 시뮬레이션 등 모션 시뮬레이션 환경일 수 있고, 에이전트는 모션 시뮬레이션을 통해 항해하는 시뮬레이션 차량일 수 있다. 이러한 구현예에서 액션은 시뮬레이션된 사용자 또는 시뮬레이션된 차량을 제어하기 위한 제어 입력일 수 있다.
다른 예에서, 시뮬레이션된 환경은 비디오 게임일 수 있고 에이전트는 비디오 게임을 플레이하는 시뮬레이션된 사용자일 수 있다.
추가 예에서 환경은 각각의 상태가 단백질 사슬 또는 하나 이상의 중간체 또는 전구체 화학물질의 개별 상태이고, 에이전트는 단백질 사슬을 폴딩하거나 합성하는 방법을 결정하기 위한 컴퓨터 시스템인 화학적 합성 또는 단백질 폴딩 환경일 수 있다. 이 예에서, 동작은 단백질 사슬을 폴딩하기 위한 가능한 폴딩 액션 또는 전구체 화학물질/중간체를 조립하기 위한 액션이며, 달성될 결과는 예를 들어 단백질이 안정되고 특정한 생물학적 기능을 달성하도록 단백질을 폴딩하거나 화학 물질에 대한 유효한 합성 경로를 제공하는 것을 포함할 수 있다. 또 다른 예로서, 에이전트는 인간의 상호작용 없이 자동으로 시스템에 의해 선택된 단백질 폴딩 액션을 수행하거나 제어하는 기계 에이전트일 수 있다. 관찰은 단백질 상태의 직접적 또는 간접적 관찰을 포함할 수 있고/있거나 시뮬레이션으로부터 도출될 수 있다.
유사한 방식으로 환경은 각 상태가 잠재적인 제약 화학 약물의 개별 상태이고 에이전트가 제약 화학 약물의 요소 및/또는 제약 화학 약물에 대한 합성 경로를 결정하기 위한 컴퓨터 시스템인 약물 설계 환경일 수 있다. 약물/합성은 예를 들어 시뮬레이션에서 약물에 대한 타겟으로부터 파생된 리워드(reward)에 기초하여 설계될 수 있다. 또 다른 예로서, 에이전트는 약물의 합성을 수행하거나 제어하는 기계 에이전트일 수 있다.
일부 애플리케이션에서 에이전트는 정적 또는 모바일 소프트웨어 에이전트, 즉 태스크를 수행하기 위해 자동으로 및/또는 다른 소프트웨어 에이전트 또는 사람과 함께 동작하도록 구성된 컴퓨터 프로그램일 수 있다. 예를 들어, 환경은 집적 회로 라우팅 환경일 수 있고 시스템은 ASIC과 같은 집적 회로의 상호 연결 라인을 라우팅하기 위한 라우팅 태스크를 수행하는 방법을 학습하도록 구성될 수 있다. 리워드(또는 비용)은 상호 연결 저항, 커패시턴스, 임피던스, 손실, 속도 또는 전파 지연, 폭, 두께 또는 지오메트리와 같은 물리적 라인 파라미터들 및 디자인 규칙과 같은 하나 이상의 라우팅 메트릭에 따라 달라질 수 있다. 관찰은 구성요소 포지션 및 상호 연결에 대한 관찰일 수 있다; 액션은 구성요소 포지션 또는 배향 및/또는 상호 연결 라우팅 액션, 예를 들어 상호 연결 선택 및/또는 배치(placement) 액션을 정의하기 위한 구성요소 배치 액션을 포함할 수 있다. 따라서 라우팅 태스크는 구성요소를 배치하는 것, 즉 집적 회로의 구성요소의 포지션 및/또는 배향을 결정하는 것 및/또는 구성요소들 사이의 상호접속의 라우팅을 결정하는 것을 포함할 수 있다. 라우팅 태스크가 완료되면 예를 들어 ASIC와 같은 집적 회로가 결정된 배치 및/또는 라우팅에 따라 제작될 수 있다. 또는 환경은 데이터 패킷 통신 네트워크 환경일 수 있고, 에이전트는 네트워크 관찰에 기초하여 통신 네트워크를 통해 데이터 패킷을 라우팅하는 라우터일 수 있다.
일반적으로 시뮬레이션 환경의 경우, 관찰은 이전에 설명된 관찰 또는 관찰 유형 중 하나 이상의 시뮬레이션 버전을 포함할 수 있으며, 액션은 이전에 설명된 액션 또는 액션 유형 중 하나 이상의 시뮬레이션 버전을 포함할 수 있다.
일부 다른 애플리케이션에서 에이전트는 장비 항목을 포함한 실제 환경, 예를 들어 데이터 센터, 그리드 주 전력, 물 분배 시스템, 제조 플랜트 또는 서비스 시설에서 동작을 제어할 수 있다. 그러면 관찰 내용은 플랜트나 시설의 동작과 관련될 수 있다. 예를 들어, 관찰에는 장비에 의한 전력 또는 물 사용량의 관찰, 전력 생산 또는 분배 제어의 관찰, 리소스 또는 폐기물 생산의 사용의 관찰을 포함할 수 있다. 에이전트는 예를 들어 리소스 사용을 줄임으로써 효율성을 높이고 및/또는 예를 들어 폐기물을 줄임으로써 환경에서 동작이 환경에 미치는 영향을 줄이기 위해 환경 내의 액션을 제어할 수 있다. 액션에는 플랜트/시설의 장비 항목에 대한 동작 조건을 제어하거나 부과하는 액션 및/또는 플랜트/시설 운영 설정의 변경을 초래하는, 예를 들어 플랜트/시설의 구성요소를 조정하거나 끄는 데 사용되는 액션이 포함될 수 있다.
일부 추가 애플리케이션에서, 환경은 실제 환경이며 에이전트는 예를 들어, 모바일 디바이스 및/또는 데이터 센터에서 컴퓨팅 리소스 전반에 걸쳐 태스크의 분배를 관리한다. 이러한 구현예에서, 액션에는 특정 컴퓨팅 리소스에 태스크를 할당하는 것이 포함될 수 있다.
일반적으로, 환경이 실제 환경의 시뮬레이션 버전인 위에 설명된 애플리케이션에서 시스템/방법이 시뮬레이션에서 트레이닝되면 나중에 실제 환경에 적용될 수 있다. 즉, 시스템/방법에 의해 생성된 제어 신호는 에이전트가 실제 환경으로부터의 관찰에 응답하여 실제 환경에서 태스크를 수행하도록 제어하는 데 사용될 수 있다. 선택적으로 시스템/방법은 실제 환경으로부터의 하나 이상의 리워드에 기초하여 실제 환경에서 트레이닝을 계속할 수 있다.
선택적으로 위의 구현예 중 하나에서, 임의의 주어진 시간 단계에서의 관찰은 환경을 특징짓는 데 도움이 될 수 있는 이전 시간 단계의 데이터, 예를 들어 이전 시간 단계에서 수행된 액션, 이전 시간 단계에서 수신된 리워드 등을 포함할 수 있다.
다른 예에서, 트랜스포머 신경 네트워크는 신경 기계 번역 시스템의 일부일 수 있다. 즉, 입력 시퀀스가 원어의 오리지널 언어로 된 단어들의 시퀀스, 예를 들어 문장이나 구인 경우, 출력은 입력 시퀀스를 타겟 언어로의 번역, 즉 오리지널 언어의 단어 시퀀스를 나타내는 타겟 언어의 단어들의 시퀀스일 수 있다.
또 다른 예로서, 트랜스포머 신경 네트워크는 스피치 인식 시스템의 일부일 수 있다. 즉, 입력 시퀀스가 음성 발화를 나타내는 오디오 데이터 시퀀스인 경우, 출력은 발화를 나타내는 문자소, 문자 또는 단어의 시퀀스, 즉 입력 시퀀스의 전사일 수 있다. 또 다른 예로서, 신경 네트워크에 대한 입력이 음성 발화를 나타내는 시퀀스인 경우 신경 네트워크에 의해 생성된 출력은 발화에서 특정 단어나 구("핫워드")가 발화되었는지 여부를 나타낼 수 있다. 또 다른 예로, 신경 네트워크에 대한 입력이 음성 발화를 나타내는 시퀀스인 경우 신경 네트워크에 의해 생성된 출력은 발화가 발화된 자연어를 식별할 수 있다. 따라서 일반적으로 네트워크 입력은 오디오 프로세싱 태스크를 수행하기 위한 오디오 데이터를 포함할 수 있고 네트워크 출력은 예를 들어 단어나 구를 식별하거나 오디오를 텍스트로 변환하는 오디오 프로세싱 태스크의 결과를 제공할 수 있다.
또 다른 예로서, 트랜스포머 신경 네트워크는 자연어 프로세싱 시스템의 일부일 수 있다. 예를 들어, 입력 시퀀스가 오리지널 언어의 단어들의 시퀀스, 예를 들어 문장 또는 구인 경우, 출력은 오리지널 언어의 입력 시퀀스의 요약, 즉 입력 시퀀스보다 단어 수가 적지만 입력 시퀀스의 본질적인 의미를 유지하는 시퀀스일 수 있다. 또 다른 예로, 입력 시퀀스가 질문을 구성하는 단어들의 시퀀스인 경우, 출력은 질문에 대한 답변을 구성하는 단어들의 시퀀스이거나 정의될 수 있다. 또 다른 예로서, 태스크는 예를 들어 수반(entailment) 태스크, 의역 태스크, 텍스트 유사성 태스크, 감정 분석 태스크, 문장 완성 태스크, 문법성 태스크, 등 텍스트의 일부 속성을 예측하는 출력을 생성하기 위한 일부 자연어로 된 텍스트 시퀀스에 대해 동작하는 자연어 이해 태스크가 될 수 있다. 또는 자연어로부터의 자동 코드 생성(자연어로부터의 텐서플로우 코드 조각 자동 생성). 다른 예로, 태스크는 텍스트 스피치 변환 태스크일 수 있으며, 여기서 입력은 자연어로 된 텍스트이거나 자연어로 된 텍스트의 특징이고 네트워크 출력은 스펙트로그램을 정의하거나 자연어로 말하는 텍스트의 오디오를 정의하는 기타 데이터로 구성된다.
다른 예로, 태스크는 텍스트 생성 태스크일 수 있으며, 여기서 입력은 텍스트 시퀀스이고 출력은 또 다른 텍스트 시퀀스, 예를 들어 입력 텍스트 시퀀스의 완성, 입력 시퀀스에 제기된 질문에 대한 응답 또는 제1 텍스트 시퀀스에 의해 지정된 주제에 관한 텍스트 시퀀스이다. 또 다른 예로서, 텍스트 생성 태스크에 대한 입력은 텍스트 이외의 입력, 예를 들어 이미지일 수 있고, 출력 시퀀스는 입력을 설명하는 텍스트일 수 있다.
또 다른 예로서, 트랜스포머 신경 네트워크는 컴퓨터 보조 의료 진단 시스템의 일부일 수 있다. 예를 들어, 입력 시퀀스는 전자 의료 기록의 데이터 시퀀스일 수 있고 출력은 예측된 치료 시퀀스일 수 있다.
다른 예로서, 트랜스포머 신경 네트워크는 이미지 프로세싱 시스템의 일부일 수 있다. 예를 들어, 입력 시퀀스는 이미지, 즉 이미지의 색상 값 시퀀스일 수 있으며, 출력은 이미지나 비디오를 설명하는 텍스트 시퀀스일 수 있다. 또 다른 예로, 입력 시퀀스는 텍스트 시퀀스이거나 다른 컨텍스트일 수 있으며 출력은 컨텍스트를 설명하는 이미지일 수 있다.
생성적 대립 네트워크(GAN)는 생성기(generator) 네트워크와 판별기(discriminator) 네트워크가 동시에 트레이닝되는 대립 프로세스를 사용하여 트레이닝된 생성적 모델이다. 트레이닝 중에 생성기 네트워크는 판별기 네트워크가 실제 트레이닝 데이터 항목이 아닌 생성기 네트워크에 의해 생성된 것으로 인식하려고 시도하는 샘플을 생성한다. 판별기 네트워크의 결정 결과는 생성된 샘플이 실제 트레이닝 데이터 항목과 구별될 수 없도록 생성 능력을 향상시키기 위한 생성기 네트워크의 학습 신호로 사용된다. 동시에 판별기 네트워크도 검출 기능을 향상하도록 트레이닝되므로 두 네트워크가 함께 작동하여 생성기 네트워크의 기능을 향상시킨다. 자세한 내용은 https://arxiv.org/pdf/1406.2661.pdf에서 이용가능한, arXiv preprint arXiv: 1406.2661, 2014, Goodfellow et al., "Generative Adversarial Networks"에서 확인가능하며, 이는 전체 내용이 참조로 여기에 통합된다.
생성기는 정지 이미지 또는 동영상을 나타내는 데이터일 수 있는 데이터 항목을 생성할 수 있으며, 이 경우 데이터 항목에 포함된 개별 수치 값은 픽셀 값, 예를 들어 픽셀의 하나 이상의 색상 채널 값을 나타낼 수 있다. 판별기 네트워크를 트레이닝하는 데 사용되는 트레이닝 이미지(그리고 생성기 네트워크를 함께 트레이닝하는 데 사용됨)는 카메라로 캡처한 실제 세계의 이미지일 수 있다.
예를 들어, 일 구현예에서, 사용자는 트레이닝된 생성기 네트워크를 사용하여 이미지 분포(예를 들어, 생성기 네트워크가 생성된 트레이닝 이미지의 데이터베이스를 반영하는 분포, 예를 들어 실제 이미지를 반영)로부터 이미지(정지 또는 동영상)를 생성할 수 있다.
대안적으로, 데이터 항목은 사운드 신호를 나타내는 데이터, 예를 들어 오디오 파형의 진폭 값(예를 들어 자연어, 이 경우 트레이닝 예제는 인간 화자의 스피치를 마이크로 녹음한 자연어 샘플일 수 있음)일 수 있다. 다른 가능성에서, 데이터 항목은 텍스트 데이터, 예를 들어 기계 번역 태스크에서 텍스트 문자열 또는 단어 및/또는 하위-단어 유닛(워드피스)의 다른 표현일 수 있다. 따라서 데이터 항목은 1차원, 2차원 또는 더 높은 차원일 수 있다.
생성기 네트워크는 생성기 네트워크에 입력된 조건부 벡터(타겟 데이터)를 조건으로 데이터 항목을 생성할 수 있으며, 이는 데이터 항목을 생성하기 위한 타겟을 나타낸다. 타겟 데이터는 생성된 데이터 항목과 동일하거나 다른 유형의 데이터 또는 양식을 나타낼 수 있다. 예를 들어, 이미지 데이터를 생성하도록 트레이닝될 때 타겟 데이터는 이미지 중 하나의 라벨 또는 클래스를 정의할 수 있으며 생성된 데이터 항목은 해당 유형의 예시 이미지(예를 들어, 아프리카 코끼리)를 포함할 수 있다. 또는 타겟 데이터는 이미지 또는 이미지의 인코딩을 포함할 수 있으며 생성된 데이터 항목은 또 다른 유사한 이미지를 정의할 수 있다 - 예를 들어, 얼굴 이미지에 대해 트레이닝될 때 타겟 데이터는 사람 얼굴의 인코딩으로 구성될 수 있으며 생성기 네트워크는 포즈/조명 조건이 다른 유사한 얼굴을 나타내는 데이터 항목을 생성할 수 있다. 또 다른 예로, 타겟 데이터는 피사체의 이미지를 나타내고 시점의 이동/변화를 정의하는 데이터를 포함할 수 있으며, 생성기 네트워크는 새로운 시점에서 피사체의 이미지를 생성할 수 있다.
대안적으로, 타겟 데이터는 텍스트 문자열 또는 음성 문장, 또는 이들의 인코딩을 포함할 수 있고, 생성기 네트워크는 텍스트 또는 스피치(텍스트 투 이미지 합성)에 대응하는 이미지를 생성할 수 있으며, 그 반대도 마찬가지이다. 대안적으로, 타겟 데이터는 텍스트 문자열 또는 음성 문장, 또는 이들의 인코딩을 포함할 수 있으며, 생성기 네트워크는 이후 상이한 언어로 대응하는 텍스트 문자열 또는 음성 문장을 생성할 수 있다. 시스템은 또한 특히 하나 이상의 이전 비디오 프레임이 주어지면 자동회귀적으로 비디오를 생성할 수도 있다.
다른 구현예에서, 생성기 네트워크는 유사한 방식으로 사운드 데이터, 예를 들어 스피치를 생성할 수 있다. 이는 오디오 데이터 및/또는 텍스트 데이터와 같은 기타 데이터에 따라 조정될 수 있다. 일반적으로 타겟 데이터는 생성된 데이터 항목의 로컬 및/또는 글로벌 특징을 정의할 수 있다. 예를 들어 오디오 데이터의 경우 생성기 네트워크는 일련의 타겟 데이터 값에 기초하여 일련의 출력을 생성할 수 있다. 예를 들어, 타겟 데이터는 글로벌 특징(생성기 네트워크가 일련의 데이터 항목을 생성하는 경우와 동일)을 포함할 수 있으며, 이는 특정 사람의 보이스의 사운드, 스피치 스타일, 화자 정체성 또는 언어 정체성을 정의하는 정보로 구성될 수 있다. 타겟 데이터는 선택적으로 억양 데이터와 함께 입력 텍스트로부터 파생된 언어적 특징을 포함할 수 있는 로컬 특징, 즉 데이터 항목의 시퀀스에 대해 동일하지 않는 특징을 추가로 또는 대안적으로 포함할 수 있다.
다른 예에서, 타겟 데이터는 물리적 객체의 모션이나 상태, 예를 들어 로봇 팔의 동작 및/또는 상태를 정의할 수 있다. 그런 다음 생성기 네트워크는 물리적 객체와 연관된 실제 또는 가상 카메라에 의해 보이는 미래 이미지 또는 비디오 시퀀스를 예측하는 데이터 항목을 생성하는 데 사용될 수 있다. 이러한 예에서 타겟 데이터는 카메라에 의해 보여지는 하나 이상의 이전 이미지 또는 비디오 프레임을 포함할 수 있다. 이 데이터는 시각적 환경에서 계획을 용이하게 하는 등 강화 학습에 유용할 수 있다. 보다 일반적으로 시스템은 확률론적 계획/탐색에 직접 사용될 수 있는 확률 밀도(즉, 분포)를 인코딩하는 방법을 학습한다.
추가 예시에서, 생성기 네트워크는 수정된 이미지를 정의하는 타겟 데이터를 사용함으로써 이미지 수정 태스크를 위해; 그리고 예를 들어 생성기 네트워크가 자동 인코더에서 사용되는 경우, 이미지 압축을 위해; 잡음이 있거나 불완전한 이미지를 정의하는 타겟 데이터를 사용하여 잡음 제거, 흐림 제거, 이미지 완성 등과 같은 이미지 프로세싱 태스크에 사용될 수 있다. 시스템은 이미지 이외의 것을 나타내는 신호를 프로세싱하는 데에도 유사하게 사용될 수 있다.
입력 타겟 데이터와 출력 데이터 항목은 일반적으로 모든 종류의 디지털 데이터일 수 있다. 따라서 다른 예에서 입력 타겟 데이터 및 출력 데이터 항목은 각각 자연어로 문장을 정의하는 토큰을 포함할 수 있다. 그런 다음 생성기 네트워크는 예를 들어 기계 번역을 위한 시스템에서 사용될 수 있거나 잠재 값 및/또는 추가 데이터로 표현된 개념을 나타내는 문장을 생성할 수 있다. 잠재 값은 생성된 텍스트의 스타일이나 정서를 제어하기 위해 추가적으로 또는 대안적으로 사용될 수 있다. 또 다른 예에서 입력 및 출력 데이터 항목은 일반적으로 스피치, 비디오 또는 시계열 데이터를 포함할 수 있다.
다른 예에서, 생성기 네트워크는 다른 기계 학습 시스템을 트레이닝하기 위한 데이터 항목의 추가 예를 생성하는 데 사용될 수 있다. 예를 들어 생성기 네트워크와 판별기 네트워크는 데이터 항목들의 세트에 대해 공동으로 트레이닝될 수 있으며 생성기 네트워크는 트레이닝 데이터 세트의 항목과 유사한 새로운 데이터 항목들을 생성하는 데 사용된다. 잠재 값들의 세트는 잠재 값들의 잠재 분포로부터 샘플링함으로써 결정될 수 있다. 생성기 네트워크가 예를 들어, 라벨들과 같은 추가 데이터를 조건으로 트레이닝된 경우, 새로운 데이터 항목들은 추가 데이터, 예를 들어 생성기 네트워크에 제공되는 라벨을 조건으로 생성될 수 있다. 이러한 방식으로, 예를 들어 라벨이 지정되지 않은 트레이닝 데이터 항목들의 부족을 보완하기 위해 추가의 라벨이 지정된 데이터 항목들이 생성될 수 있다.
하나 이상의 컴퓨터들로 구성된 시스템이 특정 동작이나 액션을 수행하도록 구성된다는 것은 시스템이 소프트웨어, 펌웨어, 하드웨어 또는 동작 중에 시스템으로 하여금 동작이나 액션을 수행하게 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램들이 특정 동작 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램들이 데이터 프로세싱 장치에 의해 실행될 때 장치로 하여금 동작 또는 액션을 수행하게 하는 명령어들을 포함한다는 것을 의미한다.
본 명세서에 설명된 주제 및 기능적 동작의 실시예는 디지털 전자 회로, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의해 실행되거나 데이터 프로세싱 장치의 동작을 제어하기 위해 유형의 비일시적 프로그램 캐리어에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 스토리지 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 그러나 컴퓨터 저장 매체는 전파된 신호가 아니다.
"데이터 프로세싱 장치"라는 용어는 예를 들어 프로그래밍가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 함)은 컴파일된 언어, 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램, 모듈, 구성요소, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트, 해당 프로그램 전용 단일 파일 또는 하나 이상의 모듈, 하위 프로그램 또는 코드 일부를 저장하는 파일 등 여러 개의 조정된 파일에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 걸쳐 분산되고 통신 네트워크로 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 사용되는 "엔진" 또는 "소프트웨어 엔진"은 입력과 상이한 출력을 제공하는 소프트웨어 구현 입력/출력 시스템을 의미한다. 엔진은 라이브러리, 플랫폼, 소프트웨어 개발 키트("SDK") 또는 개체와 같은 인코딩된 기능 블록일 수 있다. 각 엔진은 서버, 휴대폰, 태블릿 컴퓨터, 노트북 컴퓨터, 음악 플레이어, 전자책 리더기, 노트북 또는 데스크톱 컴퓨터, PDA, 스마트폰, 기타 고정식 또는 휴대용 장치 등 적절한 유형의 컴퓨팅 장치에서 구현될 수 있고, 여기에는 하나 이상의 프로세서와 컴퓨터 판독가능 매체가 포함된다. 추가적으로, 둘 이상의 엔진은 동일한 컴퓨팅 디바이스 또는 서로 다른 컴퓨팅 디바이스에 구현될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)에 의해 수행될 수 있고 장치도 구현될 수 있다. 예를 들어, 프로세스 및 논리 흐름은 그래픽 프로세싱 유닛(GPU)에 의해 수행될 수 있고 장치는 그래픽 프로세싱 유닛(GPU)으로 구현될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 예를 들어 범용 또는 특수 목적의 마이크로프로세서 또는 둘 다에 기반할 수 있거나 다른 종류의 중앙 프로세싱 유닛을 기반으로 할 수 있다. 일반적으로 중앙 프로세싱 유닛은 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다로부터 명령어와 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하거나 실행하는 중앙 프로세싱 유닛과 명령어 및 데이터를 저장하는 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합될 것이다. 그러나 컴퓨터에 그러한 디바이스들이 있을 필요는 없다. 더욱이, 컴퓨터는 휴대폰, 개인 디지털 어시스턴트(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기와 같은 다른 디바이스 또는 범용 직렬 버스(USB) 플래시 드라이브 등 과 같은 휴대용 스토리지 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하는 데 적합한 컴퓨터 판독가능 매체에는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광자기 디스크; CD ROM 및 DVD-ROM 디스크를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로로 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 주제의 실시예는 정보를 표시하기 위해 CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖춘 컴퓨터에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 디바이스도 사용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있다; 그리고 사용자로부터의 입력은 음향, 스피치 또는 촉각적 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 디바이스와 문서를 주고받는 방식으로 사용자와 상호작용할 수 있다; 예를 들어, 웹 브라우저에서 받은 요청에 대한 응답으로 사용자 클라이언트 디바이스의 웹 브라우저로 웹 페이지를 보낼 수 있다.
본 명세서에 설명된 주제의 실시예는 예를 들어 데이터 서버로서 백엔드 구성요소를 포함하거나, 또는 예를 들어 애플리케이션 서버로서 미들웨어 구성요소를 포함하거나, 예를 들어 그래픽 사용자 인터페이스를 갖춘 클라이언트 컴퓨터나 웹 브라우저를 통해 사용자가 본 명세서에 기술된 주제의 구현과 상호작용할 수 있는 프런트엔드 구성요소를 포함하는 컴퓨팅 시스템 또는 백엔드, 미들웨어 또는 프런트엔드 구성요소 중 하나 이상의 조합으로 구현될 수 있다. 시스템의 구성요소는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태나 매체를 통해 상호연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 예를 들어 인터넷이 포함된다.
컴퓨팅 시스템에는 클라이언트와 서버가 포함될 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다.
본 명세서에는 많은 구체적인 구현 세부 사항이 포함되어 있지만, 이는 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 다중 실시예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다. 더욱이, 위에서는 특정 조합으로 기능이 작동한다고 설명할 수 있고 처음에는 그렇게 주장될 수 있지만, 청구된 조합의 하나 이상의 특징은 경우에 따라 조합에서 제외될 수 있으며, 청구된 조합은 하위 조합 또는 하위 조합의 변형과 관련될 수 있다.
마찬가지로, 동작은 특정 순서로 도면에 표시되어 있지만, 이는 원하는 결과를 달성하기 위해 그러한 동작이 표시된 특정 순서 또는 순차적 순서로 수행되거나 모든 설명된 동작이 수행되어야 한다고 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 더욱이, 전술한 실시예에서 다양한 시스템 모듈 및 구성요소의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품에 패키지될 수 있다는 점을 이해해야 한다.
주제의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구범위의 범위 내에 있다. 예를 들어, 청구범위에 인용된 액션은 다른 순서로 수행될 수 있으며 여전히 원하는 결과를 얻을 수 있다. 일례로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 특정 구현예에서는 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (23)

  1. 신경 네트워크를 트레이닝하기 위한 컴퓨터 구현 방법으로서,
    상기 신경 네트워크의 파라미터와 연관된 그래디언트(gradient)를 결정하는 단계;
    그래디언트 노름(norm) 대 파라미터 노름의 비율을 결정하는 단계;
    상기 비율을 임계값과 비교하는 단계;
    상기 비율이 상기 임계값을 초과한다고 결정하는 것에 응답하여, 상기 비율이 상기 임계값 이하가 되도록 그래디언트의 값을 감소시키는 단계; 및
    상기 감소된 그래디언트의 값에 기초하여 파라미터의 값을 업데이트하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 비율이 상기 임계값 미만이라는 결정에 응답하여, 그래디언트의 값을 유지하는 단계 및 상기 유지된 그래디언트의 값에 기초하여 파라미터의 값을 업데이트하는 단계를 더 포함하는, 방법.
  3. 선행하는 어느 한 항에 있어서,
    상기 그래디언트의 값을 감소시키는 단계는 그래디언트의 값을 감소시키기 위해 상기 임계값에 기초한 스케일 팩터(factor)와 그래디언트의 값을 곱하는 단계를 포함하는, 방법.
  4. 선행하는 어느 한 항에 있어서,
    상기 그래디언트의 값을 감소시키는 단계는 그래디언트의 값을 감소시키기 위해 상기 비율에 기초한 스케일 팩터와 그래디언트의 값을 곱하는 단계를 포함하는, 방법.
  5. 선행하는 어느 한 항에 있어서,
    상기 신경 네트워크의 하나의 뉴런과 연관된 파라미터들에 기초하여 그래디언트 노름 및 파라미터 노름을 결정하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 신경 네트워크의 파라미터는 상기 신경 네트워크의 뉴런에 연결된 가중치이고, 상기 방법은 뉴런에 연결된 각각의 가중치와 연관된 그래디언트에 기초하여 그래디언트 노름을 결정하는 단계, 및 뉴런에 연결된 각각의 가중치의 가중치 값들에 기초하여 파라미터 노름을 결정하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 뉴런에 연결된 각각의 가중치들과 연관된 그래디언트들에 대한 프로베니우스(Frobenius) 노름으로서 그래디언트 노름을 계산하는 단계 및 상기 뉴런에 연결된 각각의 가중치들에 대한 프로베니우스 노름으로서 파라미터 노름을 계산하는 단계를 더 포함하는, 방법.
  8. 선행하는 어느 한 항에 있어서,
    상기 그래디언트의 값을 감소시키는 단계는 다음 방정식에 기초하며:

    여기서 는 l번째 레이어에 대한 가중치 매트릭스, i는 l번째 레이어에 있는 뉴런의 인덱스, 는 파라미터 에 대응하는 그래디언트, 는 스칼라 임계값, 그리고 는 프로베니우스 노름인, 방법.
  9. 선행하는 어느 한 항에 있어서,
    상기 신경 네트워크는 잔차(residual) 블록을 포함하고 상기 잔차 블록은 정규화 레이어가 없는, 방법.
  10. 선행하는 어느 한 항에 있어서,
    상기 신경 네트워크는 4단계 백본(backbone)을 포함하는 심층 잔차 신경 네트워크인, 방법.
  11. 제10항에 있어서,
    상기 백본은 제1 단계에서 제4 단계까지의 비율이 1:2:6:3인 잔차 블록들을 포함하는, 방법.
  12. 제10항 또는 제11항에 있어서,
    각 단계의 폭은 이전 단계의 폭의 2배인, 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 잔차 블록은 병목(bottleneck) 잔차 블록인, 방법.
  14. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 신경 네트워크는 트랜스포머(Transformer) 타입 신경 네트워크인, 방법.
  15. 선행하는 어느 한 항에 있어서,
    상기 파라미터의 값을 업데이트하는 단계는 적어도 1024개의 트레이닝 데이터 항목들의 배치(batch) 크기에 기초하는, 방법.
  16. 선행하는 어느 한 항에 있어서,
    상기 신경 네트워크는 사전 트레이닝된 것인, 방법.
  17. 선행하는 어느 한 항에 있어서,
    이미지 데이터를 포함하는 트레이닝 데이터세트를 수신하는 단계를 더 포함하고, 상기 그래디언트를 결정하는 단계는 이미지 프로세싱 태스크에 대한 신경 네트워크의 성능을 측정하기 위한 손실 함수에 기초하는, 방법.
  18. 선행하는 어느 한 항에 있어서,
    상기 방법은 복수의 프로세싱 유닛들을 포함하는 병렬 또는 분산 프로세싱 시스템에 의해 수행되며, 상기 방법은:
    복수의 트레이닝 데이터 항목들을 포함하는 트레이닝 데이터세트를 수신하는 단계;
    트레이닝 데이터 항목들의 복수의 배치(batch)들을 생성하는 단계, 각 배치는 상기 트레이닝 데이터세트의 트레이닝 데이터 항목들의 서브세트를 포함하며,
    트레이닝 데이터 항목들의 복수의 배치들을 상기 복수의 프로세싱 유닛들에 분산시키는 단계; 및
    트레이닝 데이터 항목들의 분산된 복수의 배치들에 기초하여, 상기 복수의 프로세싱 유닛들을 병렬로 사용하여 상기 신경 네트워크를 트레이닝하는 단계를 더 포함하는, 방법.
  19. 제18항에 있어서,
    상기 병렬 프로세싱 시스템 또는 분산 프로세싱 시스템은 하나 이상의 텐서 프로세싱 유닛들 또는 하나 이상의 그래픽 프로세싱 유닛들을 포함하는, 방법.
  20. 시스템으로서,
    하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제19항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 스토리지 디바이스들을 포함하는, 시스템.
  21. 제20항에 있어서,
    상기 시스템은 병렬 또는 분산 프로세싱 시스템인, 시스템.
  22. 제21항에 있어서,
    상기 시스템은 하나 이상의 텐서 프로세싱 유닛들 또는 하나 이상의 그래픽 프로세싱 유닛들을 포함하는, 시스템.
  23. 하나 이상의 컴퓨터 저장 매체로서,
    하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제19항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령어들을 저장하는, 하나 이상의 컴퓨터 저장 매체.
KR1020237029580A 2021-02-04 2022-02-02 적응형 그래디언트 클리핑을 사용하는 신경 네트워크들 KR20230141828A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163145922P 2021-02-04 2021-02-04
US63/145,922 2021-02-04
US202163149011P 2021-02-12 2021-02-12
US63/149,011 2021-02-12
PCT/EP2022/052484 WO2022167485A1 (en) 2021-02-04 2022-02-02 Neural networks with adaptive gradient clipping

Publications (1)

Publication Number Publication Date
KR20230141828A true KR20230141828A (ko) 2023-10-10

Family

ID=80595152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237029580A KR20230141828A (ko) 2021-02-04 2022-02-02 적응형 그래디언트 클리핑을 사용하는 신경 네트워크들

Country Status (6)

Country Link
US (1) US20240127586A1 (ko)
EP (1) EP4272126A1 (ko)
JP (1) JP7559256B2 (ko)
KR (1) KR20230141828A (ko)
CA (1) CA3207420A1 (ko)
WO (1) WO2022167485A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024056891A1 (en) * 2022-09-15 2024-03-21 Deepmind Technologies Limited Data-efficient reinforcement learning with adaptive return computation schemes
CN118333129B (zh) * 2024-06-07 2024-09-06 广东工业大学 辨识模型训练方法、非线性系统辨识方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10332509B2 (en) 2015-11-25 2019-06-25 Baidu USA, LLC End-to-end speech recognition
US11138392B2 (en) * 2018-07-26 2021-10-05 Google Llc Machine translation using neural network models
CN111368996B (zh) 2019-02-14 2024-03-12 谷歌有限责任公司 可传递自然语言表示的重新训练投影网络
CN110634167B (zh) 2019-09-27 2021-07-20 北京市商汤科技开发有限公司 神经网络训练方法及装置和图像生成方法及装置

Also Published As

Publication number Publication date
US20240127586A1 (en) 2024-04-18
EP4272126A1 (en) 2023-11-08
WO2022167485A1 (en) 2022-08-11
CA3207420A1 (en) 2022-08-11
JP7559256B2 (ja) 2024-10-01
JP2024506580A (ja) 2024-02-14

Similar Documents

Publication Publication Date Title
US20210271968A1 (en) Generative neural network systems for generating instruction sequences to control an agent performing a task
CN111465946B (zh) 使用分层表示进行神经网络体系结构搜索
US11593611B2 (en) Neural network cooperation
EP3398119B1 (en) Generative neural networks for generating images using a hidden canvas
EP3596663B1 (en) Neural network system
US20170229115A1 (en) Method and apparatus for training language model and recognizing speech
US20160078339A1 (en) Learning Student DNN Via Output Distribution
KR20200128938A (ko) 모델 학습 방법 및 장치
KR20200129639A (ko) 모델 학습 방법 및 장치
EP3948681A1 (en) Large scale generative neural network model with inference for representation learning using adversial training
US20240127586A1 (en) Neural networks with adaptive gradient clipping
Swietojanski et al. Structured output layer with auxiliary targets for context-dependent acoustic modelling
US20220188605A1 (en) Recurrent neural network architectures based on synaptic connectivity graphs
WO2019138897A1 (ja) 学習装置および方法、並びにプログラム
WO2019170905A1 (en) Training an unsupervised memory-based prediction system to learn compressed representations of an environment
CN114267366A (zh) 通过离散表示学习进行语音降噪
CN117980915A (zh) 用于端到端自监督预训练的对比学习和掩蔽建模
CN116868203A (zh) 利用自适应梯度裁剪的神经网络
CN118715525A (zh) 使用生成神经网络的计算有效率的提炼
US20220343134A1 (en) Convolutional neural network architectures based on synaptic connectivity
CN115362446A (zh) 用于少样本相似性确定和分类的交叉变换器神经网络系统
US20240054340A1 (en) Finding a stationary point of a loss function by an iterative algorithm using a variable learning rate value
US20240232580A1 (en) Generating neural network outputs by cross attention of query embeddings over a set of latent embeddings
CN118786440A (zh) 使用自监督学习训练对象发现神经网络和特征表示神经网络
WO2024138177A1 (en) Recurrent interface networks