KR20220047850A - 자원 제약 신경망 아키텍처 탐색 - Google Patents

자원 제약 신경망 아키텍처 탐색 Download PDF

Info

Publication number
KR20220047850A
KR20220047850A KR1020227009135A KR20227009135A KR20220047850A KR 20220047850 A KR20220047850 A KR 20220047850A KR 1020227009135 A KR1020227009135 A KR 1020227009135A KR 20227009135 A KR20227009135 A KR 20227009135A KR 20220047850 A KR20220047850 A KR 20220047850A
Authority
KR
South Korea
Prior art keywords
cell
neural network
hyperparameters
compute
values
Prior art date
Application number
KR1020227009135A
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 KR20220047850A publication Critical patent/KR20220047850A/ko

Links

Images

Classifications

    • 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/0454
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N3/0445
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법(200)은 신경망 계산 셀(122)을 정의하는 단계 ― 계산 셀은 개개의 신경망 잠재 표현들을 나타내는 노드들(402)과 개개의 신경망 잠재 표현을 변환하는 개개의 연산들을 나타내는 에지들(404)의 지향성 그래프를 포함함 ―; 개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 개개의 선형 조합으로 대체하는 단계 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―; 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록 계산 셀 하이퍼 파라미터들(132a) 및 가중치들(132b)의 값들을 반복적으로 조정하는 단계; 및 정의된 계산 셀 및 계산 셀 하이퍼 파라미터들과 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 단계를 포함한다.

Description

자원 제약 신경망 아키텍처 탐색
[0001] 본 명세서는 신경망(neural network)들에 대한 아키텍처(architecture)들을 결정하는 것에 관한 것이다.
[0002] 신경망들은 수신된 입력에 대한 출력을 예측하기 위해 비선형 유닛들의 하나 이상의 계층들을 이용하는 기계 학습 모델들이다. 일부 신경망들은 출력 계층 외에도 하나 이상의 은닉 계층들을 포함한다. 각각의 은닉 계층의 출력은 망의 다음 계층, 즉 다음 은닉 계층 또는 출력 계층에 대한 입력으로서 사용된다. 망의 각각의 계층은 각각의 세트의 파라미터들의 현재 값들에 따라, 수신된 입력으로부터 출력을 생성한다.
[0003] 본 명세서는 자원 제약들 하에 원샷(one-shot) 신경 아키텍처 탐색을 위한 종단간(end-to-end) 신경 아키텍처 탐색 프레임워크를 설명하며, 여기서는 임의의 기계 학습 작업 데이터 세트에 대해 맞춤형 네트워크 아키텍처가 학습될 수 있다.
[0004] 일반적으로, 본 명세서에서 설명되는 대상의 하나의 혁신적인 양상은 신경망 아키텍처 탐색을 위한 방법을 포함하며, 이 방법은: 신경망의 계산 셀(computational cell)을 정의하는 단계 ― 계산 셀은 노드들과 에지들의 지향성 그래프를 포함하고, 각각의 노드는 개개의 신경망 잠재 표현을 나타내고, 각각의 에지는 개개의 신경망 잠재 표현을 변환하는 개개의 연산을 나타냄 ―; 개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 단계 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―; 하나 이상의 계산 자원 제약들을 받는 검증 손실 함수를 최적화하도록, ⅰ) 계산 셀 하이퍼 파라미터들과 ⅱ) 계산 셀 가중치들의 값들을 반복적으로 조정하는 단계 ― 이 값들을 반복적으로 조정하는 단계는, 각각의 반복마다: 이전 반복에 대한 계산 셀 하이퍼 파라미터들의 값들을 업데이트하도록 그리고 계산 셀 가중치들의 조정된 값들을 획득하도록 검증 손실 함수의 제약 없는 최적화를 수행하는 단계; 및 계산 셀 하이퍼 파라미터들의 조정된 값들을 획득하도록, 하나 이상의 자원 제약들에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 계산 셀 하이퍼 파라미터들의 업데이트된 값들을 투사하는 단계를 포함함 ―; 및 정의된 계산 셀 및 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계를 포함한다.
[0005] 이 양상의 다른 실시예들은, 이 방법들의 동작들을 수행하도록 각각 구성된, 대응하는 컴퓨터 시스템들, 장치, 및 하나 이상의 컴퓨터 저장 디바이스들 상에 기록된 컴퓨터 프로그램들을 포함한다. 하나 이상의 컴퓨터들의 시스템은, 작동 시에 시스템이 동작들을 수행하게 할 수 있는, 시스템 상에 설치된 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합에 의해 특정 연산들 또는 동작들을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램들은 데이터 처리 장치에 의해 실행될 때, 장치가 동작들을 수행하게 하는 명령들을 포함하는 것에 의해 특정 연산들 또는 동작들을 수행하도록 구성될 수 있다.
[0006] 앞서 말한 그리고 다른 실시예들은 각각 선택적으로, 다음 특징들 중 하나 이상을 단독으로 또는 조합하여 포함할 수 있다. 일부 구현들에서, 정의된 계산 셀 및 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계는: 후보 연산들의 각각의 선형 조합을 하나 이상의 조정된 계산 셀 하이퍼 파라미터들에 의해 파라미터화되는 가장 큰 혼합 가중치를 갖는 단일 연산으로 대체함으로써 이산 계산 셀 아키텍처를 정의하는 단계; 및 정의된 이산 계산 셀 아키텍처 및 계산 셀 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계를 포함한다.
[0007] 일부 구현들에서, 정의된 계산 셀 및 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계는, 정의된 계산 셀의 다수의 사본들을 스택하는 단계를 포함하며, 각각의 사본은 계산 셀 하이퍼 파라미터들의 조정된 값들에 의해 정의된 것과 동일한 셀 아키텍처를 갖는다.
[0008] 일부 구현들에서, 이 방법은 정의된 계산 셀의 다수의 사본들을 생성하는 단계; 및 정의된 계산 셀의 각각의 생성된 사본을 개개의 훈련 데이터에 대해 훈련시키는 단계를 더 포함한다.
[0009] 일부 구현들에서, 정의된 계산 셀의 다수의 사본들을 스택하는 단계는, 정의된 계산 셀의 사본들 간에 하나 이상의 추가 신경망 계층들을 인터리빙하는 단계를 포함한다.
[0010] 일부 구현들에서, 하나 이상의 추가 신경망 계층들은 하나의 입력 노드 및 하나의 중간 노드를 포함하는 연결 계산 셀을 포함하고, 이 방법은 하나 이상의 계산 자원 제약들을 받는 검증 손실 함수를 최적화하도록, ⅰ) 연결 계산 셀 하이퍼 파라미터들과 ⅱ) 연결 계산 셀 가중치들의 값들을 반복적으로 조정함으로써 연결 셀을 학습하는 단계를 더 포함한다.
[0011] 일부 구현들에서, 검증 손실 함수는 정의된 계산 세트를 통해 검증 데이터 세트를 실행한 후에 획득된 에러의 측정치를 나타낸다.
[0012] 일부 구현들에서, 검증 손실 함수를 최적화하도록, ⅰ) 계산 셀 하이퍼 파라미터들과 ⅱ) 계산 셀 가중치들의 값들을 반복적으로 조정하는 단계는, 검증 손실 함수 및 훈련 데이터에 대해 획득된 에러의 측정치를 나타내는 훈련 손실 함수의 2-레벨(bi-level) 최적화를 수행하는 단계를 포함하며, 계산 셀 하이퍼 파라미터들은 상위 레벨 파라미터들을 포함하고, 계산 셀 가중치들은 하위 레벨 파라미터들을 포함한다.
[0013] 일부 구현들에서, 하나 이상의 계산 자원 제약들은 메모리, 부동 소수점 연산들의 수 또는 추론 속도 중 하나 이상에 대한 사용자 정의 제약들을 포함한다.
[0014] 일부 구현들에서, 하나 이상의 계산 자원 제약들을 받는 검증 손실 함수를 최적화하도록, ⅰ) 계산 셀 하이퍼 파라미터들과 ⅱ) 계산 셀 가중치들의 값들을 반복적으로 조정하는 단계는: 각각의 계산 자원 제약에 대한 개개의 비용 함수를 정의하는 단계를 포함하고, 각각의 정의된 비용 함수는 계산 셀 하이퍼 파라미터들을 개개의 자원 비용에 매핑한다.
[0015] 일부 구현들에서, 계산 셀 내의 에지의 개개의 자원 비용은 연산들의 후보 세트 내의 동작들의 비용들에 대한 소프트맥스(softmax)로서 계산된다.
[0016] 일부 구현들에서, 이 방법은 각각의 정의된 비용 함수에 대한 하한 및 상한 제약들을 설정하는 단계를 더 포함한다.
[0017] 일부 구현들에서, 이전 반복에 대한 계산 셀 하이퍼 파라미터들의 값들을 업데이트하도록 그리고 계산 셀 가중치들의 조정된 값들을 획득하도록 검증 손실 함수의 제약 없는 최적화를 수행하는 단계는, 검증 손실 함수의 제약 없는 최적화를 반복적으로 수행하는 단계를 포함하며, 이 단계는 각각의 반복마다, 해당 반복에 대한 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 값들을 획득하는 단계 ― 이 값들을 획득하는 단계는, 첫 번째 반복에 대한 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 랜덤하게 초기화된 값들을 획득하는 단계 또는 이전 반복으로부터 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 값들을 획득하는 단계를 포함함 ―; 미리 결정된 수의 반복들 동안 또는 미리 정의된 수렴 기준들이 충족될 때까지, 반복적으로: 반복에 대한 계산 셀 하이퍼 파라미터들의 획득된 값들을 고정시키고 계산 셀 가중치들에 대한 훈련 손실 함수의 기울기에 기반하여 업데이트된 계산 셀 가중치들을 획득하는 단계; 및 업데이트된 계산 셀 가중치들을 고정시키고 계산 셀 하이퍼 파라미터들에 대한 검증 손실 함수의 기울기에 기반하여 계산 셀 하이퍼 파라미터들의 업데이트된 값들을 획득하는 단계를 포함한다.
[0018] 일부 구현들에서, 업데이트된 계산 셀 가중치들을 고정시키고 계산 셀 하이퍼 파라미터들에 대한 검증 손실 함수의 기울기에 기반하여 업데이트된 계산 셀 하이퍼 파라미터들을 획득하는 단계는, 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들이 독립적이라고 가정하는 단계를 포함한다.
[0019] 일부 구현들에서, 하나 이상의 자원 제약들에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 계산 셀 하이퍼 파라미터들의 업데이트된 값들을 투사하는 단계는, 실행 가능 세트에서 ⅰ) 계산 셀 하이퍼 파라미터들의 업데이트된 값들과 ⅱ) 엘리먼트 간의 차이의 2-노름(norm)을 최소화하는 엘리먼트를 식별하는 단계를 포함한다.
[0020] 일부 구현들에서, 후보 연산들의 미리 정의된 세트는 풀링 연산들, 컨볼루션 연산들 또는 연결 연산들을 포함한다.
[0021] 일부 구현들에서, 이 방법은 신경망의 다수의 계산 셀들을 정의하는 단계 ― 각각의 정의된 계산 셀은 노드들과 에지들의 개개의 지향성 그래프에 의해 표현될 수 있음 ―; 정의된 다수의 계산 셀들의 각각의 정의된 계산 셀에 대해: 개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 단계 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―; 하나 이상의 계산 자원 제약들을 받는 검증 손실 함수를 최적화하도록, ⅰ) 계산 셀 하이퍼 파라미터들과 ⅱ) 계산 셀 가중치들의 값들을 반복적으로 조정하는 단계 ― 이 값들을 반복적으로 조정하는 단계는, 각각의 반복마다: 이전 반복에 대한 계산 셀 하이퍼 파라미터들의 값들을 업데이트하도록 그리고 계산 셀 가중치들의 조정된 값들을 획득하도록 검증 손실 함수의 제약 없는 최적화를 수행하는 단계; 및 계산 셀 하이퍼 파라미터들의 조정된 값들을 획득하도록, 하나 이상의 자원 제약들에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 계산 셀 하이퍼 파라미터들의 업데이트된 값들을 투사하는 단계를 포함함 ―; 및 정의된 다수의 계산 셀들 및 개개의 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계를 더 포함한다.
[0022] 일부 구현들에서, 이 방법은, 훈련된 신경망을 획득하도록, 생성된 신경망을 훈련 데이터에 대해 훈련시키는 단계; 및 훈련된 신경망을 사용하여 기계 학습 작업을 수행하는 단계를 더 포함한다.
[0023] 본 명세서에서 설명되는 요지는 다음 이점들 중 하나 이상을 실현하도록 특정 실시예들로 구현될 수 있다.
[0024] 현재 설명되는 기법들을 구현하는 시스템은 모델 크기 및 계산 복잡성과 같은 작업 의존 자원 제약들을 충족시키는 신경망 아키텍처들을 학습할 수 있다. 예를 들어, 시스템은 제한된 컴퓨팅 자원들로 모바일 플랫폼들에 의해 효율적으로 구현될 수 있는 경량 신경망 아키텍처들을 학습할 수 있다.
[0025] 추가로, 경량 신경망 아키텍처들은 신경망 아키텍처의 품질, 예컨대 신경망 아키텍처의 정확도 및 성능을 손상시키지 않으면서 자원 제약들 하에서 학습될 수 있다. 예를 들어, 학습된 신경망 아키텍처들은 정확도, 모델 크기 및 복잡성 면에서 최신 성능을 달성할 수 있다. 신경망 아키텍처 탐색을 수행하기 위한 현재 설명된 기법들은 또한 개선된 신경 아키텍처 탐색 속도를 달성할 수 있다.
[0026] 또한, 본 명세서에서 설명되는 기법들은 특정 기계 학습 애플리케이션들로 제한되지 않는데, 현재 설명되는 기법들을 구현하는 시스템은 임의의 특정 기계 학습 작업 및 데이터 세트에 대한 맞춤화된 신경망 아키텍처들을 학습할 수 있다. 현재 설명되는 기법들은 또한 원샷 자원 제약 신경 아키텍처 탐색들에 적합하다.
[0027] 본 명세서의 청구 대상의 하나 이상의 실시예들의 세부사항들은 아래 첨부 도면들 및 설명에서 제시된다. 청구 대상의 다른 특징들, 양상들 및 이점들은 설명, 도면들 및 청구항들로부터 자명해질 것이다.
[0028] 도 1은 예시적인 신경망 아키텍처 탐색 시스템을 도시한다.
[0029] 도 2는 기계 학습 작업을 수행하기 위한 신경망을 생성하기 위한 예시적인 프로세스의 흐름도이다.
[0030] 도 3은 반복 투사 방법을 수행하기 위한 예시적인 프로세스의 흐름도이다.
[0031] 도 4는 이산 계산 셀 아키텍처를 학습하는 예시적인 개념적 시각화이다.
[0032] 다양한 도면들에서 유사한 참조 번호들 및 지정들은 유사한 엘리먼트들을 표시한다.
[0033] 이미지 인식, 스피치 인식 또는 언어 모델링과 같은 기계 학습 작업들을 수행하기 위한 신경망 아키텍처들을 설계 및 구현하는 것은 현장에서의 전문 지식 및 경험을 요구하는 시간 소모적이고 비용이 많이 드는 프로세스일 수 있다.
[0034] 신경망 아키텍처들의 설계를 자동화하기 위한 하나의 예시적인 기법은 신경 아키텍처 탐색(NAS: Neural Architecture Search)이다. NAS 기법들은 2개의 주요 그룹들로 카테고리화될 수 있다. 제1 그룹의 NAS 기법들은 블랙 박스 최적화 접근 방식들, 예컨대 보상 함수를 최적화하기 위해 강화 학습 또는 유전 알고리즘들을 사용한다. 그러한 기법들은 통상적으로, 신경망 아키텍처를 학습하기 위해 수천 개의 딥 러닝(deep learning) 모델들의 훈련을 요구하며, 따라서 큰 계산 비용들을 발생시킨다. 또한, 블랙 박스 최적화를 사용하는 NAS 기법들은 원샷 NAS에 대해서는 계산상 너무 고가이다. 원샷 NAS는 자원 제약 애플리케이션들에 대해 중요한데, 이는 상이한 작업들이 상이한 신경망 아키텍처들을 요구하기 때문이다. 예를 들어, 이미지 컬러를 분류하는 것과 같은 단순한 문제의 경우, 단순한 신경망 아키텍처, 예컨대 2-계층 신경망이 요구된다. 다른 한편으로, 이미지들로부터 고양이들 및 개들을 분류하는 것은 복잡한 신경망을 요구한다.
[0035] 제2 그룹의 NAS 기법들은 미분 가능 최적화 문제로서 신경 아키텍처 탐색 작업을 공식화하고, 경사 하강을 이용하여 최적의 솔루션을 찾는다. 제2 그룹의 NAS 기법들은 통상적으로 제1 그룹의 NAS 기법들과 비교하여 계산상 보다 효율적이다.
[0036] 본 명세서는 원샷 NAS에 대한 종단간 자원 제약 미분 가능 아키텍처 탐색 프레임 워크를 설명한다. 미분 가능 아키텍처 탐색 작업들은 자원 제약들을 포함함으로써 제약된 최적화 작업들로서 공식화되며, 여기서 자원 제약된 최적화 작업을 위한 탐색 공간은 연속 탐색 공간에 매핑되어 경사 하강 방법들의 적용을 가능하게 한다. 제약된 최적화 작업을 해결하고 제약들에 의해 정의된 실행 가능 세트의 신경망 아키텍처들을 학습하도록 반복 투사 알고리즘이 적용된다. 상이한 깊이들에서 신경망 계층들에 대한 상이한 아키텍처들을 학습하기 위해 다중 레벨 탐색 전략이 적용될 수 있다.
[0037] 현재 설명되는 기법들에 의해 학습된 신경망 아키텍처들은 임의의 종류의 디지털 데이터 입력을 수신하도록 그리고 입력에 기반하여 임의의 종류의 스코어, 분류 또는 회귀 출력을 생성하도록 구성될 수 있다.
[0038] 예를 들어, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력들이 이미지들 또는 이미지들로부터 추출된 특징들이라면, 주어진 이미지에 대해 신경망에 의해 생성된 출력은 한 세트의 객체 카테고리들 각각에 대한 스코어들일 수 있으며, 각각의 스코어는 이미지가 카테고리에 속하는 객체의 이미지를 포함할 추정된 가능성을 나타낸다.
[0039] 다른 예로서, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력들이 인터넷 자원들(예컨대, 웹 페이지들), 문서들 또는 문서들의 부분들, 또는 인터넷 자원들, 문서들 또는 문서들의 부분들로부터 추출된 특징들이라면, 주어진 인터넷 자원, 문서 또는 문서의 부분에 대한 신경망에 의해 생성된 출력은 한 세트의 토픽들 각각에 대한 스코어일 수 있으며, 각각의 스코어는 인터넷 자원, 문서 또는 문서 부분이 토픽에 관한 것일 추정된 가능성을 나타낸다.
[0040] 다른 예로서, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력들이 특정 광고에 대한 노출 콘텍스트의 특징들이라면, 신경망에 의해 생성된 출력은 특정 광고가 클릭될 추정된 가능성을 나타내는 스코어일 수 있다.
[0041] 다른 예로서, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력들이 사용자에 대한 개인화된 추천의 특징들, 예컨대 추천에 대한 콘텍스트를 특성화하는 특징들, 예컨대 사용자에 의해 취해진 이전 동작들을 특성화하는 특징들이라면, 신경망에 의해 생성된 출력은 한 세트의 콘텐츠 아이템들 각각에 대한 스코어일 수 있으며, 각각의 스코어는 사용자가 콘텐츠 아이템을 추천받는 것에 유리하게 반응할 추정된 가능성을 나타낸다.
[0042] 다른 예로서, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력이 하나의 언어로 된 텍스트의 시퀀스라면, 신경망에 의해 생성된 출력은 다른 언어로 된 한 세트의 텍스트들 각각에 대한 스코어일 수 있고, 각각의 스코어는 다른 언어의 한 텍스트가 입력 텍스트의 다른 언어로의 적절한 번역 일 추정된 가능성을 나타낸다.
[0043] 다른 예로서, 신경망 아키텍처에 의해 정의된 신경망에 대한 입력이 언급된 발화(spoken utterance)를 표현하는 시퀀스라면, 신경망에 의해 생성된 출력은 한 세트의 텍스트들 각각에 대한 스코어일 수 있으며, 각각의 스코어는 한 텍스트가 발화에 대한 정확한 필기록(transcript)일 추정된 가능성을 나타낸다.
예시적인 하드웨어
[0042] 도 1은 예시적인 신경 아키텍처 탐색 시스템(100)을 도시한다. 신경 아키텍처 탐색 시스템(100)은 아래에서 설명되는 시스템들, 컴포넌트들 및 기법들이 구현될 수 있는 하나 이상의 위치들에서 하나 이상의 컴퓨터들 상의 컴퓨터 프로그램들로서 구현되는 시스템의 일례이다.
[0043] 신경 아키텍처 탐색 시스템(100)은 특정 기계 학습 작업을 수행하도록 신경망을 훈련시키기 위한 훈련 데이터(102), 특정 기계 학습 작업에 대한 신경망의 성능을 평가하기 위한 검증 세트(104), 및 특정 기계 학습 작업을 수행할 때 신경망을 구현하는 계산 디바이스의 자원 제약들(106)을 특정하는 데이터를 수신하는 시스템이다.
[0044] 신경 아키텍처 탐색 시스템(100)은 특정 작업을 수행하도록 구성되는 신경망에 대한 신경망 아키텍처를 결정하기 위해 훈련 데이터(102) 및 검증 세트(104)를 사용한다. 아키텍처는 신경망 내의 계층들의 수, 계층들 각각에 의해 수행되는 연산들, 및 신경망 내의 계층들 간의 연결성, 즉 어느 계층들이 신경망 내의 어느 다른 계층들로부터 입력들을 수신하는지를 정의한다. 일반적으로, 훈련 데이터(102)와 검증 세트(104) 둘 다 한 세트의 신경망 입력들, 및 각각의 네트워크 입력에 대해, 특정 작업을 수행하기 위해 신경망에 의해 생성되어야 하는 개개의 타깃 출력을 포함한다. 예를 들어, 더 큰 세트의 훈련 데이터가 훈련 데이터(102) 및 검증 세트(104)를 생성하기 위해 랜덤하게 파티셔닝되었을 수 있다.
[0045] 신경 아키텍처 탐색 시스템(100)은 특정 작업을 수행하도록 구성되는 신경망에 대한 신경망 아키텍처를 결정할 때 자원 제약들을 사용한다. 즉, 신경 아키텍처 탐색 시스템(100)은 자원 제약들 하에서 신경망 아키텍처를 학습한다. 예시적인 자원 제약들은 이용 가능한 메모리의 양, 부동 소수점 연산들의 수, 추론 속도 또는 모델 크기를 포함한다(그러나 이에 제한되지 않음). 자원 제약들 하에서 신경망을 학습하는 것은 모바일 플랫폼들 및 실시간 애플리케이션들에 특히 유용하다.
[0046] 시스템(100)은 다양한 방식들 중 임의의 방식으로 훈련 데이터(102), 검증 세트(104) 및 계산 자원 제약들을 수신할 수 있다. 예를 들어, 시스템(100)은 예컨대, 시스템(100)에 의해 이용 가능하게 된 API(application programming interface)를 사용하여, 데이터 통신 네트워크를 통해 시스템의 원격 사용자로부터 업로드로서 훈련 데이터를 수신하고, 업로드된 데이터를 훈련 데이터(102) 및 검증 세트(104)로 랜덤하게 분할할 수 있다. 이 시스템(100)은 또한 예컨대, 시스템(100)에 의해 이용 가능하게 된 API(application programming interface)를 사용하여 데이터 통신 네트워크를 통해 시스템의 원격 사용자로부터 업로드로서 사용자 정의 계산 자원 제약들을 수신할 수 있다.
[0047] 다른 예로서, 시스템(100)은, 시스템(100)에 의해 이미 유지되고 있는 어느 데이터가 신경망을 훈련하는 데 사용되어야 하는지를 특정하는 입력을 사용자로부터 수신한 다음, 지정된 데이터를 훈련 데이터(102) 및 검증 세트(104)로 분할할 수 있다. 유사하게, 시스템(100)은, 시스템(100)에 의해 유지되는 다수의 자원 제약들 중 어느 것이 신경망 아키텍처를 결정하는 데 사용되어야 하는지를 특정하는 입력을 사용자로부터 수신할 수 있다.
[0048] 신경 아키텍처 탐색 시스템(100)은 계산 셀 생성기(110), 계산 셀 파라미터 조정 엔진(120) 및 신경망 아키텍처 생성기(130)를 포함한다.
[0049] 계산 셀 생성기(110)는, 시스템(100)에 의해 신경망 아키텍처가 결정되고 있는 신경망의 계산 셀들을 정의하도록 구성된다. 계산 셀 생성기(110)에 의해 정의된 계산 셀들은, 시스템(100)에 의해 신경망 아키텍처가 결정되고 있는 신경망의 아키텍처 구축 블록들, 예컨대 하위 네트워크들이다. 예를 들어, 개개의 학습된 아키텍처들 및 독립적으로 학습된 가중치들을 갖는 정의된 계산 셀들의 다수의 인스턴스들이 스택되어 보다 심층 신경망을 생성할 수 있다.
[0050] 계산 셀 생성기(110)에 의해 정의된 계산 셀들은 각각, 미리 결정된 수의 노드들(V)과 에지들(E)의 개개의 지향성 비순환 그래프(G = (V, E))로서 표현될 수 있다. 계산 셀의 각각의 노드(x i V)는 잠재 표현, 예컨대 컨볼루션 네트워크들의 특징 맵을 나타낸다. 각각의 지향성 에지(i,j)는 연산(O i , j)과 연관된다. 연산(Oi,j)은 노드(x i )를 변환하는데, 예컨대 연산은 잠재 표현(x i )을 입력으로 취하여 잠재 표현(x j )을 출력한다. 각각의 노드는 각각의 노드의 모든 선행자들의 변환된 출력들에 기반하여 컴퓨팅될 수 있는데, 예컨대
Figure pct00001
이며, 여기서
Figure pct00002
x j 의 선행자들의 세트를 나타낸다. 예시적인 계산 셀이 도 4를 참조하여 아래에서 예시되고 설명된다.
[0051] 계산 셀 생성기(110)는 수신된 입력들(102-106)에 기반하여 계산 셀들을 정의하도록 구성될 수 있다. 예를 들어, 정의된 계산 셀에 포함된 노드들 및 에지들의 수는, 시스템(100)에 의해 신경망 아키텍처가 결정되고 있는 신경망에 의해 수행될 기계 학습 작업 및 신경망을 구현하기 위해 이용 가능한 계산 자원들에 의존할 수 있다.
[0052] 계산 셀 파라미터 조정 엔진(120)은 계산 셀 생성기(110)로부터 정의된 계산 셀들(122)을 나타내는 데이터를 수신하도록 구성된다. 계산 셀 파라미터 조정 엔진(120)은, 자원 제약들(106)을 받는 검증 손실 함수를 최적화하기 위해 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 값들을 반복적으로 조정하도록 구성된다. 자원 제약들(106)을 받는 검증 손실 함수를 최적화하기 위해 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 값들을 조정하는 것은, 경사 하강을 사용하여 아키텍처가 결정될 수 있도록, 미리 정의된 이산적인 세트의 후보 연산들(O i , j)에 의해 정의된 이산 탐색 공간으로부터의 아키텍처 탐색 공간을 연속 탐색 공간에 매핑하도록 연속 완화 전략을 구현하는 것을 포함한다. 이어서, 검증 손실 함수를 최적화하는 계산 셀 하이퍼 파라미터들 및 계산 셀 가중치들의 조정된 값들을 결정하기 위해, 연속 탐색 공간에 대한 제약된 최적화 문제가 수행된다. 계산 셀 파라미터 조정 엔진(120)에 의해 수행되는 연산들은 도 2 및 도 3을 참조하여 아래에서 보다 상세히 설명된다.
[0053] 신경망 아키텍처 생성기(130)는 조정된 계산 셀 파라미터 값들(132), 예컨대 하이퍼 파라미터들(132a) 및 가중치들(132b)을 나타내는 데이터를 계산 셀 파라미터 조정 엔진(120)으로부터 수신하도록 구성된다. 신경망 아키텍처 생성기(130)는 조정된 계산 셀 파라미터 값들(및 정의된 계산 셀(122))을 사용하여 신경망 아키텍처(150)를 결정하도록 구성된다. 예를 들어, 신경망 아키텍처 생성기(130)는 정의된 계산 셀들의 다수의 사본들의 스택과 동일한 것으로 신경망 아키텍처(150)를 결정할 수 있으며, 여기서 계산 셀의 각각의 사본의 아키텍처는 조정된 계산 셀 파라미터 값들(132)에 의해 정의된 셀 아키텍처를 갖는다. 일부 경우들에서, 신경망 아키텍처 생성기(130)는 결정된 신경망 아키텍처 내의 계산 셀들의 스택들 사이에 추가 계층들, 예컨대 하나 이상의 필터 계층들을 포함할 수 있다. 정의된 계산 셀들 및 학습된 계산 셀 파라미터들을 사용하여 신경망 아키텍처를 결정하는 것은 도 2를 참조하여 아래에서 보다 상세히 설명된다.
[0054] 신경망 탐색 시스템(100)은 신경망의 아키텍처를 특정하는 아키텍처 데이터(150), 즉 신경망의 일부인 계층들, 계층들 간의 연결성, 및 계층들에 의해 수행되는 연산들을 특정하는 데이터를 출력할 수 있다. 예를 들어, 신경망 탐색 시스템(100)은 훈련 데이터 및 자원 제약들을 제출한 사용자에게 아키텍처 데이터(150)를 출력할 수 있다. 이어서, 사용자는 자원 제약 디바이스를 사용하여, 결정된 아키텍처를 갖는 신경망의 인스턴스를 훈련하고 훈련된 신경망을 사용하여 신경망 입력들을 처리할 수 있다.
[0055] 일부 구현들에서, 아키텍처 데이터(150)를 출력하는 대신에 또는 그에 추가로, 시스템(100)은 예컨대, 맨 처음부터 또는 아키텍처를 갖는 신경망을 훈련시킨 결과로서 생성된 파라미터 값들을 미세 조정하기 위해, 결정된 아키텍처를 갖는 신경망의 인스턴스를 훈련시킨 다음, 훈련된 신경망을 사용하여 예컨대, 시스템에 의해 제공되는 API를 통해 사용자들에 의해 수신된 요청들을 처리한다. 즉, 시스템(100)은 처리될 입력들을 수신하고, 훈련된 신경망을 사용하여 입력들을 처리하며, 훈련된 신경망에 의해 생성된 출력들 또는 수신된 입력들에 대한 응답으로 생성된 출력들로부터 도출된 데이터를 제공할 수 있다.
하드웨어의 프로그래밍
[0056] 도 2는 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하기 위한 예시적인 방법(200)의 흐름도이다. 편의상, 이 방법(200)은 하나 이상의 위치들에 위치된 하나 이상의 컴퓨터들의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 신경 아키텍처 탐색 시스템, 예컨대 도 1의 신경 아키텍처 탐색 시스템(100)이 방법(200)을 수행할 수 있다.
[0057] 이 시스템은 신경망에 대한 계산 셀을 정의한다(단계(202)). 계산 셀은 예시적인 방법(200)에 의해 생성된 신경망의 아키텍처 구축 블록, 예컨대 하위 네트워크로서 보여질 수 있다. 예를 들어, 단계(206)를 참조하여 아래에서 보다 상세히 설명되는 바와 같이, 동일한 학습된 아키텍처 및 독립적으로 학습된 가중치들을 갖는 정의된 계산 셀의 다수의 인스턴스들이 스택되어 보다 심층 신경망을 생성할 수 있다.
[0058] 정의된 계산 셀은 미리 결정된 수의 노드들(V)과 에지들(E)의 지향성 비순환 그래프(G = (V, E))로서 표현될 수 있다. 계산 셀의 각각의 노드(x i V)는 잠재 표현, 예컨대 컨볼루션 네트워크들의 특징 맵을 나타낸다. 각각의 지향성 에지(i,j)는 연산(O i , j)과 연관된다. 연산(O i , j)은 노드(x i )를 변환하는데, 예컨대 연산은 잠재 표현(x i )을 입력으로 취하여 잠재 표현(x j )을 출력한다. 각각의 노드는 각각의 노드의 모든 선행자들의 변환된 출력들에 기반하여 컴퓨팅될 수 있는데, 예컨대
Figure pct00003
이며, 여기서
Figure pct00004
x j 의 선행자들의 세트를 나타낸다.
[0059] 정의된 계산 셀에 포함된 노드들 및 에지들의 수는 최종 생성된 신경망에 의해 수행될 기계 학습 작업 및 신경망의 아키텍처를 탐색하는 데 이용 가능한 계산 자원들에 의존할 수 있다. 예를 들어, 대규모 데이터 세트 상에서 전체 신경망 또는 신경망의 대형 하위 네트워크의 아키텍처를 탐색하는 것은 계산상 비용이 많이 들 수 있기 때문에, 정의된 계산 셀의 크기는 신경망의 최종 정확도를 유지하면서 계산 비용들을 감소시키도록 선택될 수 있다.
[0060] 일부 구현들에서, 계산 셀은 하나 이상의 입력 노드들 및 하나 이상의 출력 노드들, 예컨대 2개의 입력 노드들 및 단일 출력 노드를 포함할 수 있다. 입력 노드들은 이전 계산 셀들의 출력들을 변환하는 노드들로서 정의될 수 있다. 예를 들어, 신경망 아키텍처가 컨볼루션 신경망 아키텍처인 경우들에서, 계산 셀은 컨볼루션 셀일 수 있고, 입력 노드들은 이전의 2개의 계층들로부터의 셀 출력들로서 정의될 수 있는데, 예컨대 입력 노드들은 입력 이미지들을 나타낸다. 신경망 아키텍처가 순환 신경망 아키텍처인 경우들에서, 계산 셀은 순환 셀이고, 입력 노드들은 현재 단계에서의 입력 및 이전 단계로부터 전달된 상태를 포함한다. 출력 노드들은 계산 셀의 출력을 제공하는 노드들로서 정의될 수 있다. 계산 셀의 출력은 모든 노드들에 축소 연산, 예컨대 연결(concatenation)을 적용함으로써 획득될 수 있는데, 예컨대 x N -1 = concat(x 2,…, x N -2)이며, 여기서 N은 계산 셀 내의 노드들의 총 개수를 나타낸다.
[0061] 지향성 에지들과 연관된 연산들은 신경망 아키텍처가 수행할 수 있는 미리 정의된 세트의 연산들을 포함하는 이산 아키텍처 탐색 공간(
Figure pct00005
)의 일부이다. 예를 들어, 미리 정의된 세트의 연산들은 풀링 연산들, 예컨대 최대 풀링 또는 평균 풀링, 다양한 커널 크기들을 갖는 컨볼루션 연산들, 예컨대 분리 가능한 컨볼루션들 또는 확장된 분리 가능한 컨볼루션들, 또는 연결들, 예컨대 제로 연결들 또는 아이덴티티 연결들을 포함할 수 있다.
[0062] 아키텍처 탐색 공간(
Figure pct00006
)은, 미리 정의된 세트의 연산들(
Figure pct00007
) 내의 각각의 후보 연산을 후보 연산들의 미리 정의된 세트로부터의 ― 본 명세서에서 혼합 연산(
Figure pct00008
)으로도 또한 지칭되는 ― 후보 연산들의 개개의 선형 조합으로 대체함으로써, 연속 탐색 공간으로 변환될 수 있다. 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들에 의해 파라미터화되는 개개의 혼합 가중치를 갖는다. 일부 구현들에서, 각각의 혼합 연산(
Figure pct00009
)은
Figure pct00010
내의 모든 가능한 연산들의 소프트맥스 가중된 합을 출력한다. 예시적인 혼합 연산은 아래의 식(1)에 의해 주어진다.
Figure pct00011
식(1)에서, 한 쌍의 노드들(i,j)에 대한 가중치들을 혼합하는 연산은 벡터(
Figure pct00012
)에 의해 파라미터화된다.
[0063] 아키텍처 탐색 공간(
Figure pct00013
)이 연속 탐색 공간으로 변환된 후, 기계 학습 작업을 수행하기 위한 신경망을 생성하는 작업은 연속 변수들의 세트(θ = {θ ( i , j )})를 학습하는 것을 포함한다. 일단 연속 변수들의 세트가 학습되었다면, 먼저, 대응하는 에지의 강도에 기반하여 노드(x j )에 대한 가장 강한 선행자들의 수를 결정함으로써 대응하는 이산 계산 셀 아키텍처가 획득될 수 있으며, 여기서 에지(i,j)의 강도는 아래의 식(2)에서 정의된다.
Figure pct00014
[0064] 예를 들어, 시스템은 노드(x j )에 대한 가장 강력한 선행자들의 x j 의 선행자들의 세트(
Figure pct00015
)의 크기와 동일한 수를 결정할 수 있다. 이어서, 에지(i,j)에 대한 혼합 연산은 아래의 식(3)에서 정의된 바와 같이, 가장 큰 혼합 가중치를 갖는 단일 연산으로 대체된다.
Figure pct00016
[0065] 이 시스템은 ⅰ) 계산 셀 아키텍처를 정의하는 계산 셀 하이퍼 파라미터들, 및 ⅱ) 검증 손실 함수를 최적화함으로써 계산 셀 가중치들을 학습한다(단계(204)).
[0066] 검증 손실 함수(
Figure pct00017
)는 훈련된 신경망을 통해 검증 데이터의 세트를 실행한 후에 획득된 에러의 측정치를 나타낸다. 검증 손실은 계산 셀 하이퍼 파라미터들(θ) 및 신경망 가중치들(ω)에 의존하는데, 즉
Figure pct00018
이며, 검증 손실 함수를 최적화하는 것은 검증 손실(
Figure pct00019
)을 최소화하는 최적의 계산 셀 하이퍼 파라미터들(θ *)을 결정하는 것을 포함하며, 여기서 ω * = ω *(θ)는 훈련 데이터(신경망에 의해 수행될 기계 학습 작업에 특정한 훈련 데이터)에 대해 획득된 에러의 측정치를 나타내는 훈련 손실 함수(
Figure pct00020
)를 최적화함으로써 획득된 계산 셀 가중치들, 즉
Figure pct00021
를 나타낸다. 즉, 시스템은 2-레벨 최적화를 수행하는데, 여기서 계산 셀 하이퍼 파라미터들(θ)은 상위 레벨 파라미터들이고, 계산 셀 가중치들(ω)은 하위 레벨 파라미터들이다.
[0067] 시스템은 하나 이상의 자원 제약들을 받는 검증 손실 함수를 최적화한다. 하나 이상의 자원 제약들은 예시적인 방법(200)을 사용하여 생성된 신경망을 구현할 때 이용 가능한 계산 자원들에 기반하여 사용자에 의해 정의될 수 있다. 예를 들어, 이 시스템은 상이한 자원 비용들의 타깃 값들, 예컨대 이용 가능한 메모리, FLOP들 또는 추론 속도 등을 나타내는 데이터를 입력으로서 수신할 수 있다.
[0068] 시스템은 각각의 사용자 정의 자원 제약을, 개개의 자원 비용에 계산 셀 하이퍼 파라미터들을 매핑하는 대응하는 비용 함수와 연관시킬 수 있다. 예를 들어, 시스템은 식(3)에 따라 계산 셀 하이퍼 파라미터들(θ)로부터 이산(discretized) 네트워크 아키텍처를 생성하고, 이산 네트워크에 대한 비용을 계산하여 계산 셀 아키텍처의 정확한 비용을 결정할 수 있다. 이산 네트워크 아키텍처의 목적 함수가 연속적이지 않기 때문에, 경사 하강을 사용하여 목적 함수를 최적화하는 것은 난제이다. 따라서 시스템은 사용자 정의 자원 제약들에 대해 연속 완화 전략을 구현하며, 여기서 정의된 계산 셀에서의 에지(i,j)의 비용은 아래 식(4)에 의해 주어진 바와 같이, 모든 가능한 연산들의 비용들에 대한 소프트맥스로서 계산된다.
Figure pct00022
[0069] 식(4)에서,
Figure pct00023
Figure pct00024
내의 모든 연산들의 자원 비용들을 나타내고, F 는 소프트맥스 함수를 나타내고, σ는 지시자 함수를 나타내며,
Figure pct00025
는 노드(j)에 대한 선행자 노드들의 세트를 나타낸다.
[0070] 식(4)은 θ로부터 도출된 이산 아키텍처의 실제 비용에 대한 근사치로서 셀에서의 자원 비용들의 기대값을 사용한다. 식(4)의 함수 형태를 사용하는 것에 대한 다수의 이점들이 있다. 예를 들어, 식(4)은 θ에 대해 미분 가능하므로, 이는 검증 손실 함수를 최적화하기 위한 경사 하강의 사용을 가능하게 한다. 다른 예로서, 식(4)은 구현이 간단한데, 이는 에지(i,j)에 대한 각각의 후보 연산의 자원 비용이 θ ( i , j )의 값들과 독립적이기 때문이다. 따라서 u 는 훈련 전에 고정되고 계산될 수 있다. 특정 플랫폼에 대한 추론 속도와 같은 더 복잡한 자원 제약이 구현되어야 한다면, 자원 비용에 아키텍처 하이퍼 파라미터들을 매핑하는 신경망이 학습될 수 있다.
[0071] 시스템은 모델이 지나치게 단순화된 아키텍처들을 학습하는 것을 방지하기 위해 각각의 비용 함수에 대한 하한 및 상한 제약들을 설정할 수 있다. 하한 제약들은 모델이 충분한 표현 능력들을 갖는 것을 보장하도록 설정될 수 있다.
[0072] 요약하면, 시스템은 아래 식(5)에 의해 주어진 제약된 최적화를 수행한다.
Figure pct00026
[0073] 식(5)에서,
Figure pct00027
은 훈련 손실을 나타내고, Φ(θ) = [Φ 0(θ),…, Φ M -1(θ)]T인데,
Figure pct00028
M개의 비용 함수들의 세트를 나타내고,
Figure pct00029
,
Figure pct00030
은 각각 비용 제약들의 사용자 정의된 하한들 및 상한들을 나타낸다. 즉, 비용 Φ m (θ)는
Figure pct00031
의 범위 내에 있도록 제한된다. 검증 손실 함수(
Figure pct00032
)를 최적화하기 위해, 시스템은 반복 투사 방법을 수행한다. 시스템은 반복 투사 방법을 수행하는데, 이는 θ에 대한 비용 함수가 식(4)의 소프트맥스 함수로 인해 비볼록형이고, 목적 함수에 대한 닫힌 형식 해가 없기 때문이다.
[0074] 반복 투사 방법은 2개의 교번 단계들― 제약들 없이 더 큰 파라미터 공간에서 계산 셀 하이퍼 파라미터들(θ)을 학습하기 위해 검증 손실 함수의 제약 없는 최적화를 수행함으로써 개선된 아키텍처들을 탐색하는 제약 없는 훈련 단계, 및 제약 없는 훈련 단계에 의해 출력된 계산 셀 하이퍼 파라미터들(θ)을 식(5)의 제약들에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 투사하는 아키텍처 투사 단계 ―에서 검증 손실 함수를 최적화한다. 제약 없는 훈련 단계 및 아키텍처 투사 단계는 도 3을 참조하여 아래에서 보다 상세히 설명된다.
[0075] 이 시스템은, 정의된 계산 셀 및 학습된 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성한다(단계(206)).
[0076] 일부 구현들에서, 정의된 계산 셀 및 학습된 계산 셀 하이퍼 파라미터들과 계산 셀 가중치들을 사용하여 신경망을 생성하는 것은 계산 셀의 다수의 사본들을 스택하는 것을 포함할 수 있다. 예를 들어, 시스템은 계산 셀의 다수의 사본들을 생성할 수 있으며, 여기서 계산 셀의 각각의 사본은 학습된 계산 셀 하이퍼 파라미터들에 의해 정의된 것과 동일한 셀 아키텍처를 갖는다. 시스템은 (신경망에 의해 수행될 기계 학습 작업에 특정된) 훈련 데이터의 개개의 세트에 대해 계산 셀의 각각의 사본을 훈련시킬 수 있다. 이런 식으로, 계산 셀의 다수의 사본들은 독립적으로 학습된 계산 셀 가중치들을 갖는다. 그런 다음, 시스템은 기계 학습 작업을 수행하기 위한 보다 심층 신경망을 생성하기 위해 계산 셀의 훈련된 다수의 사본들을 스택할 수 있다.
[0077] 정의된 계산 셀이 입력 및 출력 노드들을 포함하는 경우들에서, 계산 셀의 훈련된 다수의 사본들을 스택하는 것은, 계산 셀의 첫 번째 사본에서 출력 노드를 제거하는 것, 계산 셀의 중간 사본들의 입력 노드들 및 출력 노드들을 제거하는 것, 그리고 스택 전에 계산 셀의 마지막 사본의 입력 노드들을 제거하는 것을 포함할 수 있다. 정의된 계산 셀이 입력 및 출력 노드들을 포함하지 않는 경우들에서, 계산 셀의 훈련된 다수의 사본들을 스택하는 것은, 스택에 하나 이상의 입력 노드들 및 출력 노드를 추가하는 것을 포함할 수 있다. 어느 경우든, 시스템은 계산 셀의 스택된 훈련된 사본들, 예컨대 하나 이상의 필터 계층들에 추가 노드들 및/또는 계층들을 추가로 부가할 수 있다.
[0078] 일부 구현들에서, 시스템은 신경망을 생성하기 위한 예시적인 방법(200)을 수행할 때 다중 레벨 탐색 전략을 구현할 수 있다. 다중 레벨 탐색 전략을 구현하기 위해, 시스템은 단계(202)에서 다수의 계산 셀들을 정의할 수 있으며, 여기서 정의된 계산 셀들 각각은 미리 결정된 수의 노드들과 에지들의 개개의 지향성 비순환 그래프로서 표현될 수 있다. 즉, 정의된 다수의 계산 셀들은 상이한 아키텍처들을 가질 수 있다. 이어서, 시스템은 정의된 계산 셀들 각각에 대해 단계(204)를 수행하고, 단계(206)를 참조하여 설명되는 바와 같이, 학습된 계산 셀들 및/또는 학습된 계산 셀들의 사본들을 조합하여 신경망을 생성할 수 있다.
[0079] 다중 레벨 탐색 전략을 구현하는 것은 다수의 이유들로 유리할 수 있다. 예를 들어, 상이한 네트워크 깊이들에서의 셀들은, 입력의 해상도가 감소될 때마다 필터들의 채널들의 수가 증가되기 때문에, 자원 비용, 예컨대 파라미터들의 수 및 FLOP들의 수에 대한 큰 변동을 나타낼 수 있다. 이 설계는 정보 흐름의 병목 현상(bottleneck)을 피하기 위해 심층 네트워크들에서 널리 사용되며, 여기서 저 레벨 계층들, 즉 입력 근처의 계층들은 고 레벨 계층들보다 더 큰 FLOP들을 갖는 한편, 고 레벨 계층들은 저 레벨 계층들보다 더 많은 수의 파라미터들을 갖는다. 학습된 아키텍처들이 주어진 자원 제약들을 충족시키게 하기 위해, 셀들의 아키텍처가 계층들의 깊이들에 따라 변하게 하는 것이 유리할 수 있다. 다른 예로서, 상이한 깊이들의 셀들은 네트워크의 전체 성능에 대해 상이한 효과들을 가질 수 있는데, 예컨대 (입력 근처의) 저 레벨 계층들은 파라미터들의 수를 감소시키는 것에 더 둔감할 수 있다.
[0080] 추가로, 더 경량의 아키텍처들을 획득하기 위해, 시스템은 예컨대, 1×1 conv가 되도록 연결들을 미리 정의하는 대신, 계산 셀들의 스택들 사이의 연결 셀들 또는 계층들을 학습하기 위해 단계들(202-204)을 적용할 수 있다. 연결 셀은 단계(202)를 참조하여 위에서 설명된 바와 같이 공식화될 수 있다. 일부 구현들에서, 연결 셀들은 연결 셀 내부에 하나의 입력 노드 및 하나의 노드를 포함할 수 있다.
[0081] 도 3은 도 2를 참조하여 위에서 설명된 반복 투사 방법을 수행하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치들에 위치된 하나 이상의 컴퓨터들의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 신경 아키텍처 탐색 시스템, 예컨대 도 1의 신경 아키텍처 탐색 시스템(100)이 프로세스(300)를 수행할 수 있다.
[0082] 이 시스템은 계산 셀 하이퍼 파라미터들(θ = θ 0) 및 계산 셀 가중치들(ω = ω 0)의 값들을 랜덤하게 초기화한다(단계(302)).
[0083] 이 시스템은 미리 결정된 수의 반복들 동안 또는 미리 정의된 수렴 기준들이 충족될 때까지, 제약 없는 훈련 프로세스(즉, 아래에서 설명되는 바와 같은 검증 손실 함수의 제약 없는 최적화) 및 아키텍처 투사 프로세스를 반복적으로 수행한다(단계(304)). 예를 들어, 각각의 반복은 제약 없는 훈련 프로세스의 구현에 바로 이어 아키텍처 투사 프로세스의 구현을 포함할 수 있다.
[0084] 각각의 반복마다, 이 시스템은 해당 반복에 대한 계산 셀 하이퍼 파라미터들(θ t ) 및 계산 셀 가중치들(ω t )을 획득한다(단계(304a)). 반복이 반복 투사 방법의 첫 번째 반복인 경우들에서, 시스템은 랜덤하게 초기화된 계산 셀 하이퍼 파라미터들(θ t = θ 0) 및 랜덤하게 초기화된 계산 셀 가중치들(ω t = ω 0)을 획득할 수 있다. 반복이 반복 투사 방법의 후속 반복인 경우들에서, 시스템은 반복 투사 방법의 이전 반복(t - 1)으로부터 계산 셀 하이퍼 파라미터들(θ t -1) 및 계산 셀 가중치들(ω t -1)을 수신할 수 있다.
[0085] 이 시스템은 도 3을 참조하여 위에서 정의된 검증 손실(
Figure pct00033
)을 최적화(최소화)하는 조정된 계산 셀 하이퍼 파라미터들을 결정함으로써 제약 없는 훈련 프로세스를 수행한다(단계(304b)). 위에서 설명된 바와 같이, ω * = ω *(θ)는 훈련 손실 함수(
Figure pct00034
)를 최적화함으로써 획득된 계산 셀 가중치들을 나타낸다. 즉, 시스템은 아래의 식(6)에서 주어진 최적화 문제를 해결한다.
Figure pct00035
[0086] 계산 셀 가중치들(ω)과 계산 셀 하이퍼 파라미터들(θ) 모두에 대해 식(6)에 대한 정확한 해를 병렬로 획득하는 것이 어렵기 때문에, 시스템은 다른 하나의 값을 고정시키면서 가중치들(ω) 및 하이퍼 파라미터들(θ)을 반복적으로 그리고 교대로 업데이트하도록 좌표 경사 하강 기법을 구현한다.
[0087] 예를 들어, 첫 번째 단계에서, 시스템은 수신된 계산 셀 하이퍼 파라미터들(θ t )의 값들을 고정시키고,
Figure pct00036
를 따라 하강함으로써 업데이트된 계산 셀 가중치들(ω t +1)을 획득할 수 있다. 두 번째 단계에서, 시스템은 첫 번째 단계 동안 획득된 계산 셀 가중치들(ω t +1)의 값들을 고정시키고,
Figure pct00037
를 따라 하강함으로써 업데이트된 계산 셀 하이퍼 파라미터들(θ t +1)을 획득한다. 시스템은 미리 결정된 수의 반복들 동안 또는 미리 정의된 수렴 기준들이 충족될 때까지 제1 단계 및 제2 단계를 반복적으로 수행할 수 있다. 제2 단계 동안, 증가된 계산 효율 및 만족스러운 성능을 위해 ωθ가 독립적이라고 가정될 수 있다.
[0088] 이 시스템은 조정된 계산 셀 하이퍼 파라미터들(θ t +1)을 사용하여 아키텍처 투사 프로세스를 수행한다(단계(304c)). 이 시스템은 식(5)에서 주어진 자원 제약들에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트(θ p )에 업데이트된 계산 셀 하이퍼 파라미터들(θ t +1)을 투사한다. 투사의 목적은 아래의 식(7)에 의해 설명될 수 있다.
Figure pct00038
Φ(θ p )는 θ p 의 비볼록 함수들이기 때문에, 식(7)에 대한 닫힌 형식 해는 존재하지 않는다. 따라서 시스템은 식(7)을 아래의 식(8)에 의해 주어진 라그랑주(Lagrangian)로 변환한다.
Figure pct00039
[0089] 시스템은 식(8)을 최적화하기 위해 경사 하강을 수행한다. 시간 단계 t = 0에서, 시스템은
Figure pct00040
를 설정한다. 후속 시간 단계 t에서, 시스템은
Figure pct00041
의 방향으로
Figure pct00042
을 하강시킴으로써
Figure pct00043
을 획득한다. 시스템은 모든 제약들이 충족될 때까지 또는 미리 결정된 최대 반복 횟수(e p )에 도달할 때까지 반복적으로 업데이트들을 수행한다.
[0090] 일부 구현들에서, 시스템은 모든 제약들에 대해 동일한 λ 1 = λ 2 = λ가 되도록 가중 항들(λ 1, λ 2)을 설정한다. 수렴을 가능하게 하기 위해, λ는 훈련 동안 지수적으로 감소하도록 설정될 수 있다. 훈련의 끝에서, λ → 0 그리고 θ p := 0이다. 간단한 자원 제약들에 대해
Figure pct00044
를 계산하는 것이 빠르기 때문에, 아키텍처 반복 투사 단계(단계(404c))는 제약 없는 훈련 단계(단계(404b))보다 더 빠르다.
[0091] 시스템은, 제약 없는 훈련 프로세스 및 아키텍처 투사 프로세스의 다음 반복에 대한 입력으로서 식(8)에 의해 주어진 라그랑주를 최적화함으로써 획득된 계산 셀 파라미터들(θ p )을 제공한다. 반복이 마지막 반복이라면, 이 시스템은 도 3을 참조하여 위에서 설명된 이산 아키텍처를 도출하기 위한 하이퍼 파라미터들(θ p )을 제공한다(단계(306)).
[0092] 예시적인 프로세스(400)를 수행하는 것은 여러 이점들을 제공한다. 예를 들어, 계산 셀 가중치들 및 계산 셀 하이퍼 파라미터들을 공동으로 최적화함으로써, 시스템은 아키텍처 투사 프로세스에 대한 개선된 시작 포인트를 학습할 수 있다. 다른 예로서, 아키텍처 투사 단계가 수행된 후에, 더 큰 제약 없는 파라미터 공간에서 계산 셀 아키텍처를 학습하기 위해 제약 없는 훈련 단계가 수행된다. 따라서 아키텍처 투사 단계가 차선의 계산 셀 아키텍처를 야기하더라도, 제약 없는 훈련 단계는 여전히 개선된 계산 셀 아키텍처를 학습할 수 있다. 또한, 신경망들은 초기 훈련 단계에서 가중치들에 대한 섭동(perturbation)들에 민감할 수 있기 때문에, 일부 구현들에서, 시스템은 반복 투사 방법의 첫 번째 반복에 대한 제약 없는 훈련 단계가 반복 투사 방법의 나중 반복들과 비교하여 제1 단계 및 제2 단계의 더 많은 수의 반복들을 갖는 웜 스타트(warm-start) 전략을 구현할 수 있다. 이는 모델이 아키텍처 투사 단계에서 불량한 로컬 최적 상태에 갇힐 가능성을 감소시킬 수 있다.
[0093] 도 4는 이산 계산 셀 아키텍처를 학습하는 예시적인 개념적 시각화이다.
[0094] 스테이지(a)는 예시적인 방법(200)의 단계(202)에 대응한다. 스테이지(a)에서, 초기 계산 셀(400)이 정의된다. 초기 계산 셀(400)은 4개의 중간 노드들, 예컨대 노드(402)를 포함한다. 초기 계산 셀(400)은 하나 이상의 입력 노드들 및 출력 노드를 더 포함할 수 있지만, 명확성을 위해 입력 노드들 및 출력 노드들은 도 4에서 생략된다. 초기 계산 셀(400)은 중간 노드들 사이에 6개의 지향성 에지들, 예컨대 에지(404)를 더 포함한다.
[0095] 식(1)을 참조하여 위에서 설명된 바와 같이, 스테이지(b)에서, 6개의 에지들 각각에 대한 연산들은 후보 연산들의 미리 정의된 세트 내의 모든 후보 연산들의 혼합으로 대체된다. 도 4에 도시된 예시적인 시각화에서는 3개의 후보 연산들이 있지만, 일부 구현들에서는 더 적은 또는 더 많은 후보 연산들이 있을 수 있다.
[0096] 스테이지(c)는 예시적인 방법(200)의 단계(204)에 대응한다. 스테이지(c)에서, 도 3을 참조하여 위에서 설명된 반복 투사 방법은 식(5)에 의해 주어진 제약된 최적화 문제를 해결하기 위해 적용되며, 여기서 아키텍처 파라미터들뿐만 아니라 셀 내의 가중치들은 자원 제약들을 충족시키도록 공동으로 최적화된다.
[0097] 스테이지(d)에서, 혼합된 연산들에서 학습된 가중치들로부터 최종 계산 셀 아키텍처(406)가 도출된다. 이어서, 예시적인 방법(200)의 단계(206)를 참조하여 위에서 설명된 바와 같이, 계산 셀은 신경망을 생성하는 데 사용될 수 있다.
[0098] 본 명세서에서 설명한 기능적 동작들 및 청구 대상의 실시예들은 디지털 전자 회로에, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어에, 본 명세서에 개시된 구조들 및 이들의 구조적 등가물들을 포함하는 컴퓨터 하드웨어에, 또는 이들 중 하나 이상에 대한 조합들에 구현될 수 있다. 본 명세서에서 설명한 청구 대상의 실시예들은 하나 이상의 컴퓨터 프로그램들, 즉 데이터 처리 장치에 의한 실행을 위해 또는 그 연산을 제어하기 위해 유형의 비일시적 프로그램 반송파 상에 인코딩되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있다. 대안으로 또는 추가로, 프로그램 명령들은 데이터 처리 장치에 의한 실행을 위해 적당한 수신기 장치로의 송신을 위한 정보를 인코딩하도록 발생되는 인공적으로 발생한 전파 신호, 예컨대 기계 발생 전기, 광 또는 전자기 신호에 대해 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 디바이스, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상에 대한 조합일 수 있다. 그러나 컴퓨터 저장 매체는 전파 신호는 아니다.
[0099] "데이터 처리 장치"라는 용어는 예로서 프로그래밍 가능 프로세서, 컴퓨터 또는 다수의 프로세서들이나 컴퓨터들을 포함하여, 데이터를 처리하기 위한 모든 종류들의 장치, 디바이스들 및 기계들을 포괄한다. 장치는 특수 목적 로직 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)를 포함할 수 있다. 장치는 또한 하드웨어뿐만 아니라, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들의 하나 이상에 대한 조합을 구성하는 코드를 포함할 수 있다.
[00100] (프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 또한 지칭되거나 이로서 설명될 수 있는) 컴퓨터 프로그램은 컴파일링된 또는 해석된 언어들, 또는 서술적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에 사용하기에 적당한 다른 유닛으로서의 형태를 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만 필요한 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터, 예컨대 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 보유하는 파일의 일부에, 해당 프로그램에 전용된 단일 파일에, 또는 다수의 조정된 파일들, 예컨대 하나 이상의 모듈들, 하위 프로그램들, 또는 코드의 부분들을 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 한 사이트에 로케이팅되거나 다수의 사이트들에 걸쳐 분포되어 통신 네트워크에 의해 상호 접속되는 다수의 컴퓨터들 상에서 실행되도록 전개될 수 있다.
[00101] 본 명세서에서 사용되는 바와 같이, "엔진" 또는 "소프트웨어 엔진"은 입력과 상이한 출력을 제공하는 소프트웨어 구현 입력/출력 시스템을 의미한다. 엔진은 라이브러리, 플랫폼, 소프트웨어 개발 키트(software development kit)("SDK") 또는 객체와 같은 인코딩된 기능 블록일 수 있다. 각각의 엔진은 임의의 적절한 타입의 컴퓨팅 디바이스, 예컨대 서버들, 휴대 전화들, 태블릿 컴퓨터들, 노트북 컴퓨터들, 뮤직 플레이어들, e-북 리더들, 랩톱 또는 데스크톱 컴퓨터들, PDA들, 스마트폰들, 또는 다른 고정식 또는 휴대용 디바이스들 상에 구현될 수 있으며, 이는 하나 이상의 프로세서들 및 컴퓨터 판독 가능 매체들을 포함한다. 추가로, 엔진들 중 2개 이상은 동일한 컴퓨팅 디바이스 상에 또는 상이한 컴퓨팅 디바이스들 상에 구현될 수 있다.
[00102] 본 명세서에서 설명한 프로세스들 및 로직 플로우들은 입력 데이터에 대해 작동하여 출력을 생성함으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍 가능 컴퓨터들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 로직 회로, 예컨대 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있으며, 장치가 또한 이로서 구현될 수 있다.
[00103] 컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들 또는 둘 다, 또는 다른 어떤 종류의 중앙 처리 유닛을 포함하며, 예로서 이에 기반할 수 있다. 일반적으로, 중앙 처리 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들을 수행 또는 실행하기 위한 중앙 처리 유닛 그리고 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대 자기, 마그네토 광 디스크들, 또는 광 디스크들을 포함하거나, 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하도록, 또는 둘 다를 위해 동작 가능하게 연결될 것이다. 그러나 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 더욱이, 컴퓨터는 다른 디바이스, 몇 가지만 예로 들자면, 예컨대 모바일 전화, 개인용 디지털 보조기기(PDA: personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS: Global Positioning System) 수신기, 또는 휴대용 저장 디바이스, 예컨대 범용 직렬 버스(USB: universal serial bus) 플래시 드라이브에 내장될 수 있다.
[00104] 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체들은 예로서 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 또는 착탈식 디스크들; 마그네토 광 디스크들; 그리고 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 특수 목적 로직 회로에 포함될 수 있다.
[00105] 사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명한 요지의 실시예들은 사용자에게 정보를 제공하기 위한 디스플레이 디바이스, 예컨대 음극선관(CRT: cathode ray tube) 또는 액정 디스플레이(LCD: liquid crystal display) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드와 포인팅 디바이스, 예컨대 마우스 또는 트랙볼을 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하는데 역시 사용될 수 있는데; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이러한 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호 작용할 수 있다.
[00106] 본 명세서에서 설명한 요지의 실시예들은 예를 들어, 데이터 서버로서 백엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트, 예컨대 애플리케이션 서버를 포함하는, 또는 프론트엔드 컴포넌트, 예컨대 본 명세서에서 설명한 요지의 구현과 사용자가 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하는 컴퓨팅 시스템, 또는 이러한 하나 이상의 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합으로 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예컨대 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크(local area network)("LAN") 및 광역 네트워크(wide area network)("WAN"), 예컨대 인터넷을 포함한다.
[00107] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 원격이며 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 개개의 컴퓨터들 상에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
[00108] 본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 청구될 수 있는 것의 또는 임의의 발명의 범위에 대한 한정들로서가 아니라, 그보다는 특정 발명들의 특정 실시예들에 특정할 수 있는 특징들의 설명으로서 해석되어야 한다. 개별 실시예들과 관련하여 본 명세서에 설명되는 특정 특징들은 또한 단일 실시예로 조합하여 구현될 수 있다. 반대로, 단일 실시예와 관련하여 설명되는 다양한 특징들은 또한 다수의 실시예들로 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 아울러, 특징들이 특정한 조합들로 작용하는 것으로 앞서 설명되고 심지어 초기에 이와 같이 청구될 수 있다 하더라도, 어떤 경우들에는 청구된 조합으로부터의 하나 이상의 특징들이 그 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관련될 수 있다.
[00109] 마찬가지로, 동작들이 특정 순서로 도면들에 도시되지만, 이는 바람직한 결과들을 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행될 것을, 또는 예시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되지는 않아야 한다. 특정 상황들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 앞서 설명한 실시예들에서 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리를 필요로 하는 것으로 이해되지 않아야 하며, 설명한 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품들로 패키지화될 수 있다고 이해되어야 한다.
[00110] 요지의 특정 실시예들이 설명되었다. 다른 실시예들이 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구항들에서 언급되는 동작들은 다른 순서로 수행되며 그럼에도 바람직한 결과들을 달성할 수 있다. 일례로, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 반드시 도시된 특정 순서 또는 순차적인 순서를 필요로 하는 것은 아니다. 특정 구현들에서는, 다중 작업 및 병렬 처리가 유리할 수도 있다.

Claims (20)

  1. 신경망(neural network)의 계산 셀(computational cell)(122)을 정의하는 단계 ― 상기 계산 셀(122)은 노드들(402)과 에지들(404)의 지향성 그래프를 포함하고, 각각의 노드(402)는 개개의 신경망 잠재 표현을 나타내고, 각각의 에지(404)는 개개의 신경망 잠재 표현을 변환하는 개개의 연산을 나타냄 ―;
    개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 단계 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들(132a)에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―;
    하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 단계 ― 상기 값들을 반복적으로 조정하는 단계는, 각각의 반복마다:
    이전 반복에 대한 계산 셀 하이퍼 파라미터들(132a)의 값들을 업데이트하도록 그리고 상기 계산 셀 가중치들(132b)의 조정된 값들을 획득하도록 상기 검증 손실 함수의 제약 없는 최적화를 수행하는 단계; 및
    상기 계산 셀 하이퍼 파라미터들(132a)의 조정된 값들을 획득하도록, 상기 하나 이상의 자원 제약들(106)에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 투사하는 단계를 포함함 ―; 및
    상기 정의된 계산 셀(122) 및 상기 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  2. 제1 항에 있어서,
    상기 정의된 계산 셀(122) 및 상기 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 단계는:
    후보 연산들의 각각의 선형 조합을 하나 이상의 조정된 계산 셀 하이퍼 파라미터들(132a)에 의해 파라미터화되는 가장 큰 혼합 가중치를 갖는 단일 연산으로 대체함으로써 이산 계산 셀 아키텍처(architecture)를 정의하는 단계; 및
    상기 정의된 이산 계산 셀 아키텍처 및 상기 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  3. 제1 항 또는 제2 항에 있어서,
    상기 정의된 계산 셀(122) 및 상기 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 단계는, 상기 정의된 계산 셀(122)의 다수의 사본들을 스택하는 단계를 포함하며,
    각각의 사본은 상기 계산 셀 하이퍼 파라미터들(132a)의 조정된 값들에 의해 정의된 것과 동일한 셀 아키텍처를 갖는,
    컴퓨터 구현 방법(200).
  4. 제3 항에 있어서,
    상기 정의된 계산 셀(122)의 다수의 사본들을 생성하는 단계; 및
    상기 정의된 계산 셀(122)의 각각의 생성된 사본을 개개의 훈련 데이터(102)에 대해 훈련시키는 단계를 더 포함하는,
    컴퓨터 구현 방법(200).
  5. 제3 항 또는 제4 항에 있어서,
    상기 정의된 계산 셀(122)의 다수의 사본들을 스택하는 단계는, 상기 정의된 계산 셀(122)의 사본들 간에 하나 이상의 추가 신경망 계층들을 인터리빙하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  6. 제5 항에 있어서,
    상기 하나 이상의 추가 신경망 계층들은 하나의 입력 노드(402) 및 하나의 중간 노드(402)를 포함하는 연결 계산 셀(122)을 포함하고,
    상기 방법(200)은 하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 연결 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 연결 계산 셀 가중치들(132b)의 값들을 반복적으로 조정함으로써 상기 연결 셀을 학습하는 단계를 더 포함하는,
    컴퓨터 구현 방법(200).
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 검증 손실 함수는 상기 정의된 계산 세트를 통해 검증 데이터 세트를 실행한 후에 획득된 에러의 측정치를 나타내는,
    컴퓨터 구현 방법(200).
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 단계는, 상기 검증 손실 함수 및 훈련 데이터(102)에 대해 획득된 에러의 측정치를 나타내는 훈련 손실 함수의 2-레벨(bi-level) 최적화를 수행하는 단계를 포함하며,
    상기 계산 셀 하이퍼 파라미터들(132a)은 상위 레벨 파라미터들을 포함하고, 상기 계산 셀 가중치들(132b)은 하위 레벨 파라미터들을 포함하는,
    컴퓨터 구현 방법(200).
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 하나 이상의 계산 자원 제약들(106)은 메모리, 부동 소수점 연산들의 수 또는 추론 속도 중 하나 이상에 대한 사용자 정의 제약들을 포함하는,
    컴퓨터 구현 방법(200).
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 단계는, 각각의 계산 자원 제약에 대한 개개의 비용 함수를 정의하는 단계를 포함하며,
    각각의 정의된 비용 함수는 상기 계산 셀 하이퍼 파라미터들(132a)을 개개의 자원 비용에 매핑하는,
    컴퓨터 구현 방법(200).
  11. 제10 항에 있어서,
    상기 계산 셀(122) 내의 에지(404)의 개개의 자원 비용은 연산들의 후보 세트 내의 상기 연산들의 비용들에 대한 소프트맥스(softmax)로서 계산되는,
    컴퓨터 구현 방법(200).
  12. 제10 항 또는 제11 항에 있어서,
    각각의 정의된 비용 함수에 대한 하한 및 상한 제약들을 설정하는 단계를 더 포함하는,
    컴퓨터 구현 방법(200).
  13. 제1 항 내지 제12 항 중 어느 한 항에 있어서,
    이전 반복에 대한 계산 셀 하이퍼 파라미터들(132a)의 값들을 업데이트하도록 그리고 상기 계산 셀 가중치들(132b)의 조정된 값들을 획득하도록 상기 검증 손실 함수의 제약 없는 최적화를 수행하는 단계는, 상기 검증 손실 함수의 제약 없는 최적화를 반복적으로 수행하는 단계를 포함하며,
    상기 제약 없는 최적화를 반복적으로 수행하는 단계는 각각의 반복마다:
    해당 반복에 대한 상기 계산 셀 하이퍼 파라미터들(132a) 및 계산 셀 가중치들(132b)의 값들을 획득하는 단계 ― 상기 값들을 획득하는 단계는, 첫 번째 반복에 대한 상기 계산 셀 하이퍼 파라미터들(132a) 및 상기 계산 셀 가중치들(132b)의 랜덤하게 초기화된 값들을 획득하는 단계 또는 이전 반복으로부터 상기 계산 셀 하이퍼 파라미터들(132a) 및 상기 계산 셀 가중치들(132b)의 값들을 획득하는 단계를 포함함 ―; 및
    미리 결정된 수의 반복들 동안 또는 미리 정의된 수렴 기준들이 충족될 때까지, 반복적으로:
    해당 반복에 대한 상기 계산 셀 하이퍼 파라미터들(132a)의 획득된 값들을 고정시키고 상기 계산 셀 가중치들(132b)에 대한 훈련 손실 함수의 기울기에 기반하여 업데이트된 계산 셀 가중치들(132b)을 획득하는 단계; 및
    상기 업데이트된 계산 셀 가중치들(132b)을 고정시키고 상기 계산 셀 하이퍼 파라미터들(132a)에 대한 검증 손실 함수의 기울기에 기반하여 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 획득하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  14. 제13 항에 있어서,
    상기 업데이트된 계산 셀 가중치들(132b)을 고정시키고 상기 계산 셀 하이퍼 파라미터들(132a)에 대한 검증 손실 함수의 기울기에 기반하여 업데이트된 계산 셀 하이퍼 파라미터들(132a)을 획득하는 단계는, 상기 계산 셀 하이퍼 파라미터들(132a) 및 상기 계산 셀 가중치들(132b)이 독립적이라고 가정하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  15. 제1 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 하나 이상의 자원 제약들(106)에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 투사하는 단계는, 상기 실행 가능 세트에서 ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들과 ⅱ) 엘리먼트 간의 차이의 2-노름(norm)을 최소화하는 엘리먼트를 식별하는 단계를 포함하는,
    컴퓨터 구현 방법(200).
  16. 제1 항 내지 제15 항 중 어느 한 항에 있어서,
    상기 후보 연산들의 미리 정의된 세트는 풀링(pooling) 연산들, 컨볼루션 연산들 또는 연결 연산들을 포함하는,
    컴퓨터 구현 방법(200).
  17. 제1 항 내지 제16 항 중 어느 한 항에 있어서,
    상기 신경망의 다수의 계산 셀들(122)을 정의하는 단계 ― 각각의 정의된 계산 셀(122)은 노드들(402)과 에지들(404)의 개개의 지향성 그래프에 의해 표현될 수 있음 ―; 및
    상기 정의된 다수의 계산 셀들(122)의 각각의 정의된 계산 셀(122)에 대해:
    개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 단계 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들(132a)에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―; 및
    하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 단계 ― 상기 값들을 반복적으로 조정하는 단계는, 각각의 반복마다:
    이전 반복에 대한 계산 셀 하이퍼 파라미터들(132a)의 값들을 업데이트하도록 그리고 상기 계산 셀 가중치들(132b)의 조정된 값들을 획득하도록 상기 검증 손실 함수의 제약 없는 최적화를 수행하는 단계; 및
    상기 계산 셀 하이퍼 파라미터들(132a)의 조정된 값들을 획득하도록, 상기 하나 이상의 자원 제약들(106)에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 투사하는 단계를 포함함 ―; 및
    상기 정의된 다수의 계산 셀(122) 및 상기 개개의 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망을 생성하는 단계를 더 포함하는,
    컴퓨터 구현 방법(200).
  18. 제1 항 내지 제17 항 중 어느 한 항에 있어서,
    훈련된 신경망(152)을 획득하기 위해 훈련 데이터(102)에 대해 상기 생성된 신경망(152)을 훈련시키는 단계; 및
    상기 훈련된 신경망(152)을 사용하여 상기 기계 학습 작업을 수행하는 단계를 더 포함하는,
    컴퓨터 구현 방법(200).
  19. 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들이 동작들을 수행하게 하도록 동작 가능한 명령들을 저장하는 하나 이상의 저장 디바이스들을 포함하는 시스템(100)으로서,
    상기 동작들은:
    신경망의 계산 셀(122)을 정의하는 동작 ― 상기 계산 셀(122)은 노드들(402)과 에지들(404)의 지향성 그래프를 포함하고, 각각의 노드(402)는 개개의 신경망 잠재 표현을 나타내고, 각각의 에지(404)는 개개의 신경망 잠재 표현을 변환하는 개개의 연산을 나타냄 ―;
    개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 동작 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들(132a)에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―;
    하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 동작 ― 상기 값들을 반복적으로 조정하는 동작은, 각각의 반복마다:
    이전 반복에 대한 계산 셀 하이퍼 파라미터들(132a)의 값들을 업데이트하도록 그리고 상기 계산 셀 가중치들(132b)의 조정된 값들을 획득하도록 상기 검증 손실 함수의 제약 없는 최적화를 수행하는 동작; 및
    상기 계산 셀 하이퍼 파라미터들(132a)의 조정된 값들을 획득하도록, 상기 하나 이상의 자원 제약들(106)에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 투사하는 동작을 포함함 ―; 및
    상기 정의된 계산 셀(122) 및 상기 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 동작을 포함하는,
    시스템(100).
  20. 저장된 명령들을 포함하는 컴퓨터 판독 가능 저장 매체로서,
    상기 명령들은 처리 디바이스에 의해 실행 가능하며 상기 실행 시에 상기 처리 디바이스가 동작들을 수행하게 하고,
    상기 동작들은:
    신경망의 계산 셀(122)을 정의하는 동작 ― 상기 계산 셀(122)은 노드들(402)과 에지들(404)의 지향성 그래프를 포함하고, 각각의 노드(402)는 개개의 신경망 잠재 표현을 나타내고, 각각의 에지(404)는 개개의 신경망 잠재 표현을 변환하는 개개의 연산을 나타냄 ―;
    개개의 신경망 잠재 표현을 변환하는 각각의 연산을 후보 연산들의 미리 정의된 세트로부터의 후보 연산들의 개개의 선형 조합으로 대체하는 동작 ― 개개의 선형 조합의 각각의 후보 연산은 하나 이상의 계산 셀 하이퍼 파라미터들(132a)에 의해 파라미터화되는 개개의 혼합 가중치를 가짐 ―;
    하나 이상의 계산 자원 제약들(106)을 받는 검증 손실 함수를 최적화하도록, ⅰ) 상기 계산 셀 하이퍼 파라미터들(132a)과 ⅱ) 계산 셀 가중치들(132b)의 값들을 반복적으로 조정하는 동작 ― 상기 값들을 반복적으로 조정하는 동작은, 각각의 반복마다:
    이전 반복에 대한 계산 셀 하이퍼 파라미터들(132a)의 값들을 업데이트하도록 그리고 상기 계산 셀 가중치들(132b)의 조정된 값들을 획득하도록 상기 검증 손실 함수의 제약 없는 최적화를 수행하는 동작; 및
    상기 계산 셀 하이퍼 파라미터들(132a)의 조정된 값들을 획득하도록, 상기 하나 이상의 자원 제약들(106)에 의해 정의된 실행 가능 세트 내의 가장 가까운 포인트에 상기 계산 셀 하이퍼 파라미터들(132a)의 업데이트된 값들을 투사하는 동작을 포함함 ―; 및
    상기 정의된 계산 셀(122) 및 상기 계산 셀 하이퍼 파라미터들(132a)과 계산 셀 가중치들(132b)의 조정된 값들을 사용하여 기계 학습 작업을 수행하기 위한 신경망(152)을 생성하는 동작을 포함하는,
    컴퓨터 판독 가능 저장 매체.
KR1020227009135A 2019-08-23 2020-08-19 자원 제약 신경망 아키텍처 탐색 KR20220047850A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/549,715 US11443162B2 (en) 2019-08-23 2019-08-23 Resource constrained neural network architecture search
US16/549,715 2019-08-23
PCT/US2020/047073 WO2021041133A1 (en) 2019-08-23 2020-08-19 Resource constrained neural network architecture search

Publications (1)

Publication Number Publication Date
KR20220047850A true KR20220047850A (ko) 2022-04-19

Family

ID=72473956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009135A KR20220047850A (ko) 2019-08-23 2020-08-19 자원 제약 신경망 아키텍처 탐색

Country Status (6)

Country Link
US (2) US11443162B2 (ko)
EP (1) EP4018390A1 (ko)
JP (2) JP7312906B2 (ko)
KR (1) KR20220047850A (ko)
CN (1) CN114503121A (ko)
WO (1) WO2021041133A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443162B2 (en) * 2019-08-23 2022-09-13 Google Llc Resource constrained neural network architecture search
US11544558B2 (en) * 2019-08-30 2023-01-03 Nec Corporation Continual learning of artificial intelligence systems based on bi-level optimization
JP7111671B2 (ja) * 2019-09-05 2022-08-02 株式会社東芝 学習装置、学習システム、および学習方法
US11631000B2 (en) 2019-12-31 2023-04-18 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11568201B2 (en) 2019-12-31 2023-01-31 X Development Llc Predicting neuron types based on synaptic connectivity graphs
US11593627B2 (en) 2019-12-31 2023-02-28 X Development Llc Artificial neural network architectures based on synaptic connectivity graphs
US11593617B2 (en) 2019-12-31 2023-02-28 X Development Llc Reservoir computing neural networks based on synaptic connectivity graphs
US11620487B2 (en) * 2019-12-31 2023-04-04 X Development Llc Neural architecture search based on synaptic connectivity graphs
US11625611B2 (en) 2019-12-31 2023-04-11 X Development Llc Training artificial neural networks based on synaptic connectivity graphs
US11556826B2 (en) * 2020-03-20 2023-01-17 Adobe Inc. Generating hyper-parameters for machine learning models using modified Bayesian optimization based on accuracy and training efficiency
US11568249B2 (en) * 2020-04-07 2023-01-31 International Business Machines Corporation Automated decision making for neural architecture search
US11394799B2 (en) 2020-05-07 2022-07-19 Freeman Augustus Jackson Methods, systems, apparatuses, and devices for facilitating for generation of an interactive story based on non-interactive data
US11496610B2 (en) * 2020-06-26 2022-11-08 Verizon Patent And Licensing Inc. Network management data translation, querying, and discrepancy detection
KR20220032861A (ko) * 2020-09-08 2022-03-15 삼성전자주식회사 하드웨어에서의 성능을 고려한 뉴럴 아키텍처 서치 방법 빛 장치
US20220147680A1 (en) * 2020-11-12 2022-05-12 Samsung Electronics Co., Ltd. Method for co-design of hardware and neural network architectures using coarse-to-fine search, two-phased block distillation and neural hardware predictor
US11915131B2 (en) * 2020-11-23 2024-02-27 International Business Machines Corporation Initializing optimization solvers
CN113034472B (zh) * 2021-03-25 2023-02-07 中山大学 一种基于梯度网络架构搜索的空域隐写分析方法及系统
CN113111668A (zh) * 2021-04-18 2021-07-13 沈阳雅译网络技术有限公司 一种用于翻译任务的语言建模系统结构搜索方法
CN113516163B (zh) * 2021-04-26 2024-03-12 合肥市正茂科技有限公司 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质
US20220398450A1 (en) * 2021-06-15 2022-12-15 Lemon Inc. Automatically and efficiently generating search spaces for neural network
CN113343390B (zh) * 2021-06-30 2024-02-20 中国科学院工程热物理研究所 基于神经网络非线性模型的发动机线性化建模方法
US20220035877A1 (en) * 2021-10-19 2022-02-03 Intel Corporation Hardware-aware machine learning model search mechanisms
CN115620147B (zh) * 2022-11-29 2023-04-07 国网山东省电力公司济南供电公司 深度卷积神经网络的可微架构搜索方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6963627B2 (ja) * 2017-07-21 2021-11-10 グーグル エルエルシーGoogle LLC 畳み込みニューラルネットワークのためのニューラルアーキテクチャ検索
US11741342B2 (en) * 2018-05-18 2023-08-29 Baidu Usa Llc Resource-efficient neural architects
EP3629246B1 (en) * 2018-09-27 2022-05-18 Swisscom AG Systems and methods for neural architecture search
US11443162B2 (en) * 2019-08-23 2022-09-13 Google Llc Resource constrained neural network architecture search

Also Published As

Publication number Publication date
WO2021041133A1 (en) 2021-03-04
JP2023139057A (ja) 2023-10-03
US20210056378A1 (en) 2021-02-25
JP7312906B2 (ja) 2023-07-21
EP4018390A1 (en) 2022-06-29
CN114503121A (zh) 2022-05-13
US20220414425A1 (en) 2022-12-29
JP2022545038A (ja) 2022-10-24
US11443162B2 (en) 2022-09-13

Similar Documents

Publication Publication Date Title
KR20220047850A (ko) 자원 제약 신경망 아키텍처 탐색
KR102302609B1 (ko) 신경망 아키텍처 최적화
EP3711000B1 (en) Regularized neural network architecture search
JP7157154B2 (ja) 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索
EP4312157A2 (en) Progressive neurale netzwerke
EP3602419B1 (en) Neural network optimizer search
EP3295381B1 (en) Augmenting neural networks with sparsely-accessed external memory
EP4383136A2 (en) Population based training of neural networks
US11922281B2 (en) Training machine learning models using teacher annealing
WO2020140073A1 (en) Neural architecture search through a graph search space
US11893491B2 (en) Compound model scaling for neural networks
EP4118658A1 (en) Retrosynthesis using neural networks
KR20220032861A (ko) 하드웨어에서의 성능을 고려한 뉴럴 아키텍처 서치 방법 빛 장치
US20240013769A1 (en) Vocabulary selection for text processing tasks using power indices