KR20210105976A - 신경망을 위한 복합 모델 스케일링 - Google Patents

신경망을 위한 복합 모델 스케일링 Download PDF

Info

Publication number
KR20210105976A
KR20210105976A KR1020217023377A KR20217023377A KR20210105976A KR 20210105976 A KR20210105976 A KR 20210105976A KR 1020217023377 A KR1020217023377 A KR 1020217023377A KR 20217023377 A KR20217023377 A KR 20217023377A KR 20210105976 A KR20210105976 A KR 20210105976A
Authority
KR
South Korea
Prior art keywords
architecture
coefficient
width
depth
resolution
Prior art date
Application number
KR1020217023377A
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 KR20210105976A publication Critical patent/KR20210105976A/ko

Links

Images

Classifications

    • 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/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
    • 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/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

Abstract

특정 기계 학습 태스크를 수행하기 위해 신경망에 대한 최종 아키텍처를 결정하는 방법이 설명된다. 방법은 신경망에 대한 기본 아키텍처를 수신하는 단계와, 상기 기본 아키텍처는 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원을 가지며; 기본 아키텍처를 스케일링하는데 사용되는 추가 계산 리소스를 제어하는 복합 계수를 정의하는데 데이터를 수신하는 단계와; 기본 아키텍처의 네트워크 폭, 깊이 및 해상도 차원에 추가 계산 리소스을 할당하는 방법을 각각 지정하는 기본 폭, 깊이 및 해상도 계수를 결정하기 위해 검색을 수행하는 단계와; 기본 폭, 깊이 및 해상도 계수와 복합 계수에 기초하여 폭, 깊이 및 해상도 계수를 결정하는 단계와; 그리고 해당 폭, 깊이 및 해상도 계수에 기초하여 기본 아키텍처의 네트워크 폭, 네트워크 깊이 및 해상도 차원을 스케일링하는 최종 아키텍처를 생성하는 단계를 포함한다.

Description

신경망을 위한 복합 모델 스케일링
본 출원은 2019년 1월 23일에 출원된 미국 가출원 번호 62/796,034에 대한 우선권을 주장한다. 선행 출원의 개시 내용은 본 출원의 개시 내용의 일부로 간주되고 참고로 포함된다.
본 명세서는 컨볼루션 신경망의 아키텍처를 결정하는 것에 관한 것이다.
신경망은 수신 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 단위 계층을 사용하는 기계 학습 모델이다. 일부 신경망에는 출력 계층 외에 하나 이상의 은닉 계층이 포함된다. 각 은닉 계층의 출력은 네트워크의 다음 계층, 즉 다음 은닉 계층 또는 출력 계층의 입력으로 사용된다. 네트워크의 각 계층은 개별 파라미터 세트의 현재 값에 따라 수신 입력으로부터 출력을 생성한다.
일부 신경망은 순환 신경망이다. 순환 신경망은 입력 시퀀스를 수신하고 그 입력 시퀀스로부터 출력 시퀀스를 생성하는 신경망이다. 특히, 순환 신경망은 현재 시간 스텝의 출력을 계산할 때 이전 시간 스텝의 네트워크 내부 상태의 일부 또는 전부를 사용할 수 있다. 순환 신경망의 예는 하나 이상의 장단기(LSTM) 메모리 블록을 포함하는 LSTM 신경망이다. 각 LSTM 메모리 블록은 입력 게이트, 망각 게이트, 및 셀이 예를 들어 현재 활성화를 생성하는데 사용하거나 LSTM 신경망의 다른 컴포넌트(구성 요소)에 제공하기 위해 셀의 이전 상태를 저장할 수 있도록 하는 출력 게이트를 각각 포함하는 하나 이상의 셀을 포함할 수 있다.
본 명세서는 기본 아키텍처로부터 신경망의 최종 아키텍처를 결정하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현된 시스템을 설명한다. 후술하는 바와 같이, 최종 아키텍처는 최종 아키텍처의 타겟 계산 리소스 사용량에 기초하여 결정된다. 이와 같이, 시스템은 최종 아키텍처에서 사용할 수 있는 낮은 수준의 계산 리소스(예를 들어, 부동 소수점 연산수(FLOPS))에 맞는 최종 아키텍처를 결정할 수 있다. 또한, 광범위한 하이퍼 파라미터 조정이 필요할 수 있는 기존 접근 방식보다 더 효율적인 방식으로 이를 수행할 수 있다. 신경망은 이미지 처리(예를 들어, 이미지 분류)와 같은 특정 기계 학습 태스크를 수행하도록 구성되지만 이에 한정되지 않는다.
본 명세서에 기술된 주제는 다음 이점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 컨볼루션 신경망은 일반적으로 고정된 계산 비용으로 개발되며, 그런 다음 더 많은 리소스가 제공되면 정확도를 높이기 위해 더 큰 네트워크로 확장된다. 본 명세서에 기술된 모델 스케일링 기술은 모델 효율성을 유지하면서 타겟 리소스 제약이 주어진 타겟 모델로 기본 신경망 모델을 스케일링(확장)하기 위해 간단하지만 매우 효과적인 복합 계수를 사용한다. 기존의 방법은 스케일링 동안 네트워크 폭, 깊이 또는 해상도를 임의로 증가시키는데, 이는 낮은 정확도 및 효율성을 초래하고 신경망 모델을 스케일링하는 프로세스를 비효율적으로 만들며 이 세 가지 팩터의 균형을 맞추기 위한 필수 하이퍼 파라미터 조정으로 인해 계산 비용이 많이 든다. 이에 반해, 설명된 기술은 복합 계수를 사용하여 기본 모델의 네트워크 폭, 깊이 및 해상도를 선형적으로 스케일링하므로 하이퍼 파라미터 조정을 위해 상당한 계산 리소스를 소비하는 것을 방지한다. 또한, 본 명세서에 설명된 모델 스케일링 기술은 기본 모델이 매우 효과적으로 확장될 수 있도록 하여, 이전의 최신 모델보다 더 적은 파라미터를 가지면서 최첨단 정확도를 능가하는 더 큰 모델을 생성한다. 동시에, 이러한 더 큰 모델은 이전의 최첨단 모델에서 사용하는 것보다 적은 수의 태스크를 사용하여 특정 기계 학습 태스크를 수행할 수 있으므로 트레이닝 및 추론 속도가 더 빠르다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부사항은 첨부 도면 및 아래의 설명에 설명되어 있다. 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위에서 명백해질 것이다.
도 1은 특정 기계 학습 태스크를 수행하기 위해 신경망의 최종 아키텍처를 결정하기 위한 예시적인 신경 아키텍처 검색 시스템을 도시한다.
도 2는 특정 기계 학습 태스크를 수행하기 위해 신경망의 최종 아키텍처를 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 신경망의 예시적인 기본 아키텍처를 도시한다.
도 4는 신경망의 다른 예시적인 기본 아키텍처를 도시한다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서는 기본(baseline) 아키텍처로부터 신경망의 최종 아키텍처를 결정하는 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현된 신경 아키텍처 검색 시스템을 설명한다. 신경망은 특정 기계 학습 태스크를 수행하도록 구성된다.
일반적으로, 신경망은 네트워크 입력을 수신하고 네트워크 입력을 처리하여 입력에 대한 네트워크 출력을 생성하도록 구성된다.
일부 경우에, 신경망은 입력 이미지를 수신하고 입력 이미지에 대한 네트워크 출력을 생성하기 위해, 즉 임의의 종류의 이미지 처리 태스크를 수행하기 위해 입력 이미지를 처리하도록 구성된 컨볼루션 신경망이다.
예를 들어, 태스크는 이미지 분류일 수 있고, 주어진 이미지에 대해 신경망에 의해 생성된 출력은 객체 카테고리 세트 각각에 대한 스코어일 수 있으며, 각 스코어는 이미지가 카테고리에 속하는 객체의 이미지를 포함할 것으로 추정되는 가능성을 나타낸다.
다른 예로서, 태스크는 이미지 임베딩 생성일 수 있고, 신경망에 의해 생성된 출력은 입력 이미지의 숫자 임베딩일 수 있다. 예를 들어, 개별 입력 이미지에 대해 생성된 임베딩들 사이의 임베딩 공간의 근접성은 이들 이미지 간의 유사성을 나타낼 수 있다.
또 다른 예로서, 태스크는 객체 감지일 수 있고, 신경망에 의해 생성된 출력은 특정 유형의 객체가 묘사되는 입력 이미지내의 위치를 식별할 수 있다.
일부 다른 경우에, 태스크는 비디오 분류일 수 있고, 신경망은 비디오 또는 비디오의 일부를 입력으로 수신하고 입력 비디오 또는 비디오 부분과 관련된 토픽 또는 토픽들을 결정하는 출력을 생성하도록 구성된다.
일부 다른 경우에, 태스크는 음성 인식일 수 있고, 신경망은 오디오 데이터를 입력으로 수신하고 주어진 음성 발언에 대해 해당 발언이 나타내는 용어 또는 용어들을 결정하는 출력을 생성하도록 구성된다.
일부 다른 경우에, 태스크는 텍스트 분류일 수 있고, 신경망은 텍스트 세그먼트를 입력으로 수신하고 입력 텍스트 세그먼트와 관련된 토픽 또는 토픽들을 결정하는 출력을 생성하도록 구성된다.
도 1은 특정 기계 학습 태스크를 수행하도록 구성된 신경망의 최종 아키텍처를 기본 아키텍처로부터 결정하도록 구성된 예시적인 신경 아키텍처 검색 시스템(100)을 도시한다. 신경 아키텍처 검색 시스템(100)은 하나 이상의 위치에 있는 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현되는 시스템의 예이며, 여기에서 아래에 설명된 시스템, 컴포넌트 및 기술이 구현될 수 있다.
일반적으로, 신경 아키텍처 검색 시스템(100)은 신경망의 기본 아키텍처(102) 및 기본 아키텍처를 스케일링하는데 사용되는 추가 계산 리소스를 제어하는 복합 계수(103)를 정의하는 입력 데이터(104)를 획득하여, 특정 기계 학습 태스크를 수행하는 신경망의 최종 아키텍처(126)를 생성하기 위해 단순하지만 매우 효과적인 복합 계수를 사용하여 기준 아키텍처(102)의 모든 차원을 균일하게 스케일링하는 시스템이다.
시스템(100)은 다양한 방식으로 기본 아키텍처(102)와 입력 데이터(104)를 수신할 수 있다. 예를 들어, 시스템(100)은 예를 들어, 시스템(100)에 의해 이용가능하게 된 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 데이터 통신 네트워크를 통해 시스템의 원격 사용자로부터 업로드로서 기본 아키텍처(102) 및 타겟 리소스 사용량 데이터(104)를 수신할 수 있다. 다른 예로서, 시스템(100)은 시스템(100)에 의해 이미 유지되고 있는 어떤 데이터가 기본 아키텍처(102)를 식별하는 데이터 및 타겟 리소스 사용량 데이터(104)로서 사용되어야 하는지를 지정하는 사용자의 입력을 수신할 수 있다.
입력 데이터(104)는 기본 아키텍처를 스케일링하는데 사용되는 추가 계산 리소스를 제어하는 복합 계수(103)를 정의한다. 다시 말해서, 복합 계수(103)는 기본 아키텍처에 의해 사용되는 리소스와 비교하여 상기 스케일링된 최종 아키텍처에 의해 사용될 수 있는 계산 리소스의 양을 제어한다. 일부 경우, 시스템(100)은 사용자의 제약에 기초하여 복합 계수의 값을 생성할 수 있다. 예를 들어, 만약 사용자가 기본 아키텍처(102)를 N배 더 크게 만들기를 원하는 경우, 시스템은 복합 계수 φ=log2(N)을 생성할 수 있다. 예를 들어, 만약 사용자가 기본 아키텍처를 4배로 확장하려는 경우 φ=2이다. 사용자가 기본 모델을 32배 확장하려는 경우 φ=5이다.
입력 데이터(104)는 최종 아키텍처에 의해 사용되는 계산 리소스의 목표량을 추가로 지정할 수 있다. 특히 타겟 리소스 사용량 데이터는 (i) 최종 아키텍처를 생성하기 위해 허용된 최대 메모리 크기, 즉 최종 아키텍처의 파라미터들 및 아키텍처 데이터가 차지할 수 있는 최대 메모리를 나타내는 타겟 메모리 크기, 및 (ii) 최종 아키텍처가 특정 기계 학습 태스크를 수행하기 위해 실행할 수 있는 최대 연산수를 나타내는 목표 연산수(예를 들어, FLOPS)를 지정한다.
기본 아키텍처(102)는 특정 기계 학습 태스크를 수행하도록 트레이닝된 아키텍처이다. 기본 아키텍처(102)는 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원을 갖는다. 기본 아키텍처(102)는 복수의 신경망 계층을 갖는다. 일부 구현에서, 기본 아키텍처(102)는 복수의 네트워크 스테이지를 기지며, 복수의 네트워크 스테이지 각각은 복수의 신경망 계층을 갖는다. 네트워크 스테이지에는 동일한 유형의 신경망 계층 그룹이 포함된다. 이는 기본 아키텍처의 각 네트워크 스테이지에 있는 복수의 신경망 계층이 동일한 아키텍처를 공유한다는 것을 의미한다. 즉, 동일한 크기의 입력 텐서에서 동일한 유형의 연산을 수행하여 동일한 크기의 출력 텐서를 생성한다.
기본 아키텍처(102)의 네트워크 깊이 차원은 기본 아키텍처의 복수의 네트워크 스테이지에 있는 계층 수의 세트이다. 기본 아키텍처(102)의 각 신경망 계층은 이전 계층으로부터 입력 텐서를 수신하고, 그 입력 텐서에 대해 다음 신경망 계층에 대한 입력으로 공급될 출력 텐서를 생성하도록 구성된다. 임의의 주어진 계층에 대한 입력 텐서는 높이 차원, 폭 차원, 및 입력 텐서의 채널 수를 지정하는 채널 차원이 있다.
기본 아키텍처(102)의 네트워크 폭 차원은 기본 아키텍처(102)의 복수의 신경망 계층에 대한 입력 텐서들과 연관된 입력 채널 수의 세트이다.
기본 아키텍처(102)의 해상도 차원은 기본 아키텍처(102)의 복수의 신경망 계층에 대한 입력 텐서들의 높이 차원 및 폭 차원의 세트이다.
예를 들어, 기본 아키텍처(102)는 다음과 같이 표현될 수 있다.
Figure pct00001
...............(1)
여기서
Figure pct00002
는 계층(Fi)이 스테이지(i)에서 반복된 횟수(Li)를 나타내고, (Hi,Wi,Ci)는 계층(Fi)의 입력 텐서(X)의 형태를 나타내며, Hi는 높이 차원, Wi는 폭 차원 그리고 Ci는 채널 차원이다.
도 3은 5개의 스테이지를 갖는 기본 아키텍처(102)의 예를 도시한다. 이 예시적인 아키텍처에서 공간 차원(높이 및 폭 차원)은 점진적으로 축소되지만 채널 차원은 예를 들어 초기 입력 형태(224, 224, 3)로부터 최종 출력 형태(7, 7, 512)로 계층에 걸쳐 확장된다.
최상의 계층 아키텍처(Fi)를 찾는데 주로 초점을 맞추는 이전 접근 방식(즉, 계층(Fi)에 의해 수행되는 최상의 연산 유형 찾기)과 달리, 본 명세서에 기술된 모델 스케일링 기술은 기본 아키텍처(102)에 기정의된 Fi를 변경하지 않고 네트워크 길이(Li), 폭(Ci) 및/또는 해상도(Hi; Wi)를 확장한다. 계층(Fi)의 연산 유형을 고정함으로써, 본 명세서에 설명된 모델 스케일링 기술은 이전 접근 방식에 비해 새로운 리소스 제약에 대한 설계 문제를 단순화한다. 그러나, 각 계층에 대해 상이한 Li; Ci; Hi; Wi의 가능한 조합을 탐색할 수 있는 큰 설계 공간이 여전히 남아 있다. 설계 공간을 더 줄이기 위해, 시스템(100)은 모든 계층이 일정한 비율로 균일하게 스케일링되어야 한다고 제한할 수 있다.
입력 데이터(104)에 의해 지정된 계산 리소스의 목표량이 주어지면, 시스템(100)은 다음과 같이 최적화 문제로 공식화될 수 있는 주어진 계산 리소스 제약에 대한 모델 정확도를 최대화하는 것을 목표로 한다.
Figure pct00003
.......(2)
여기서 w, d, r은 각각 네트워크 폭, 깊이 및 해상도 차원을 스케일링하기 위한 폭, 깊이 및 해상도 계수이고,
Figure pct00004
는 획득된 기본 아키텍처(102)에 기정의된 파라미터이며, target_memory는 최종 아키텍처를 생성하는데 허용되는 최대 메모리 크기를 나타내고, target_flops는 최종 아키텍처가 특정 기계 학습 태스크를 수행하기 위해 실행할 수 있는 최대 연산수를 나타낸다. 또한, N(d,w,r)은 깊이, 폭 및 해상도 계수(d, w, r)를 사용하여 기본 아키텍처(102)의 네트워크 폭, 깊이 및 해상도 차원을 스케일링함으로써 생성된 신경망 아키텍처를 나타내고, FLOPS(N)는 특정 기계 학습 태스크를 수행하기 위해 신경망 아키텍처(N)에 의해 실행되는 연산수를 나타내며, 메모리(N)는 신경망 아키텍처(N)를 생성하는데 사용되는 메모리, 즉 신경망 아키텍처(N)의 파라미터들 및 아키텍처 데이터가 차지하는 메모리를 나타낸다.
일반적으로, 기본 아키텍처로부터 최종 아키텍처를 결정하기 위해, 시스템(100)은 복합 스케일링 방법을 사용하는데, 이는 복합 계수(φ)를 사용하여 원칙적인 방식으로 네트워크 폭, 깊이 및 해상도 차원을 균일하게 스케일링한다. 예를 들어, 복합 스케일링 방법은 다음과 같이 표현될 수 있다.
Figure pct00005
......................(3)
여기서 α,β,γ는 각각 기본 깊이 계수, 기본 폭 계수 및 기본 해상도 계수이다. α,β,γ는 예를 들어 위의 수학식 2 및 3에 기초하여 그리드 검색에 의한 검색으로 결정될 수 있다. 직관적으로, φ는 모델 스케일링에 사용할 수 있는 추가 리소스 수를 제어하는 반면, α,β,γ는 이러한 추가 리소스를 네트워크 깊이, 폭 및 해상도 차원에 각각 할당하는 방법을 지정한다. 일반 컨볼루션 연산의 연산수(즉, FLOPS)는 d,w2,r2에 비례, 즉, 네트워크 깊이 차원을 두 배로 늘리면 FLOPS가 두 배가되지만 네트워크 폭 또는 해상도 차원을 두 배로 늘리면 FLOPS가 4배 증가한다는 점에 유의한다. 기본 아키텍처가 컨볼루션 신경망인 경우, 컨볼루션 연산은 기본 아키텍처의 계산 비용을 지배하므로 수학식 3으로 기본 아키텍처를 스케일링하면 총 FLOPS는 대략 (α.β22)φ만큼 증가한다. 제약 조건(
Figure pct00006
)은 모든 복합 계수(φ)에 대해 총 연산(즉, FLOPS())이 대략 2φ만큼 증가하도록 한다.
최종 아키텍처(126)를 결정하기 위해, 시스템(100)은 추가 계산 리소스를 기본 아키텍처의 네트워크 깊이 차원, 네트워크 폭 차원 및 해상도 차원에 각각 할당하는 방법을 지정하는 기본 깊이 계수(α)(110), 기본 폭 계수(β)(108), 및 기본 해상도 계수(γ)(112)를 탐색하기 위해 탐색(예를 들어, 그리드 탐색, 랜덤 탐색 또는 다른 탐색 전략)을 수행한다. 검색을 수행하는 것은 도 2를 참조하여 이하에서 상세히 설명된다.
시스템(100)은 복합 계수(103)와 기본 폭 계수(108)의 값에 기초하여 폭 계수(114)를 생성하고, 복합 계수(103)와 기본 깊이 계수(110)의 값에 기초하여 깊이 계수(116)를 생성하고, 복합 계수(103)와 기본 해상도 계수(112)의 값에 기초하여 해상도 계수(118)를 생성한다.
예를 들어, 일부 구현에서, 시스템(100)은 위의 수학식 3을 사용하여 폭, 깊이 및 해상도 계수를 생성할 수 있다.
일부 다른 구현에서, 아래의 수학식 4에 도시된 바와 같이, 시스템(100)은 기본 폭 계수(108)와 복합 계수(103)의 값의 곱과 상수를 합산함으로써 폭 계수(114)를 생성할 수 있다. 시스템(100)은 기본 깊이 계수(110)와 복합 계수(103)의 값과 상수를 합산함으로써 깊이 계수(116)를 생성할 수 있다. 시스템(100)은 기본 해상도 계수(112)와 복합 계수(103)의 값과 상수를 합산함으로써 해상도 계수(118)를 생성할 수 있다.
네트워크 깊이 계수: d = 1+α.φ
네트워크 폭 계수: w = 1+β.φ
네트워크 해상도 계수: r = 1+γ.φ -------------------------(4)
복합 계수에 대해 깊이, 폭 및 해상도 계수(d,w,r)가 생성된 후, 시스템(100)은 대응하는 깊이, 폭, 및 해상도 계수에 기초하여 기본 아키텍처(102)의 네트워크 깊이, 네트워크 폭, 및 해상도 차원을 스케일링함으로써 최종 아키텍처(126)를 생성한다. 특히, 시스템(100)은 최종 아키텍처(126)를 생성하기 위해 기본 아키텍처(102)의 네트워크 폭 차원을 폭 계수로 스케일링하고, 기본 아키텍처(102)의 네트워크 깊이 차원을 깊이 계수로 스케일링하며, 기본 아키텍처(102)의 해상도를 해상도 계수로 스케일링한다.
그런 다음 시스템(100)은 신경망의 최종 아키텍처를 지정하는 아키텍처 데이터(150), 즉 최종 아키텍처의 일부인 계층을 지정하는 데이터, 계층 간의 연결성, 및 계층들에 의해 수행되는 연산을 출력할 수 있다. 예를 들어, 시스템(100)은 트레이닝 데이터를 제출한 사용자들에게 아키텍처 데이터(150)를 출력할 수 있다. 일부 경우, 데이터(150)는 또한 최종 아키텍처로서 식별된 후보 아키텍처의 트레이닝으로부터 최종 아키텍처의 파라미터들의 트레이닝된 값을 포함한다.
일부 구현에서, 아키텍처 데이터(150)를 출력하는 대신에 또는 이에 추가하여, 시스템(100)은 최종 아키텍처를 갖는 신경망의 인스턴스를, 예를 들어 처음부터 또는 최종 아키텍처로서 식별된 후보 아키텍처를 트레이닝한 결과로서 생성된 파라미터 값들을 미세 조정하기 위해 트레이닝한 다음 그 트레이닝된 신경망을 사용하여 예를 들어 시스템(100)에 의해 제공된 API를 통해 사용자들에 의해 수신된 요청을 처리한다. 즉, 시스템(100)은 처리될 입력들을 수신하고, 최종 아키텍처를 갖는 트레이닝된 신경망을 사용하여 입력들을 처리하고, 수신된 입력들에 응답하여 상기 트레이닝된 신경망에 의해 생성된 출력 또는 그 생성된 출력으로부터 도출된 데이터를 제공할 수 있다. .
도 2는 특정 기계 학습 태스크를 수행하기 위해 신경망에 대한 최종 아키텍처를 결정하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터상의 시스템에 의해 수행되는 것으로 기술될 것이다. 예를 들어, 적절하게 프로그래밍된 신경 아키텍처 검색 시스템, 예를 들어 도 1의 신경 아키텍처 검색 시스템(100)이 프로세스(200)를 수행할 수 있다.
시스템은 신경망에 대한 기본 아키텍처를 수신한다(단계 202). 기본 아키텍처는 특정 기계 학습 태스크를 수행하도록 트레이닝되었다. 기본 아키텍처에는 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원이 있다. 기본 아키텍처는 복수의 네트워크 스테이지를 가미며, 복수의 네트워크 스테이지 각각은 복수의 신경망 계층을 갖는다. 기본 아키텍처의 각 네트워크 단계에 있는 복수의 신경망 계층은 동일한 아키텍처를 공유한다.
기본 아키텍처의 네트워크 깊이 차원은 기본 아키텍처의 복수의 네트워크 스테이지에 있는 계층 수의 세트이다. 기본 아키텍처의 각 신경망 계층은 이전 계층으로부터 입력 텐서를 수신하고, 입력 텐서에 대해 다음 신경망 계층에 입력으로 제공될 출력 텐서를 생성하도록 구성된다. 입력 텐서에는 높이 차원, 폭 차원 및 입력 텐서의 채널 수를 지정하는 채널 차원이 있다.
기본 아키텍처의 네트워크 폭 차원은 기본 아키텍처의 복수의 신경망 계층에 대한 입력 텐서와 연관된 입력 채널 수의 세트이다.
기본 아키텍처의 해상도 차원은 기본 아키텍처의 복수의 신경망 계층에 대한 입력 텐서의 높이 차원 및 폭 차원의 세트이다.
시스템은 기본 아키텍처를 스케일링하는데 사용되는 추가(extra) 계산 리소스를 제어하는 복합(compond) 계수를 정의하는 입력 데이터를 수신한다(단계 204). 즉, 복합 계수는 기본 아키텍처에 의해 사용되는 리소스들에 비해 상기 스케일링된 최종 아키텍처에 의해 사용할 수 있는 계산 리소스들의 양을 제어한다. 일부 경우, 시스템은 사용자의 제약 조건에 기초하여 복합 계수의 값을 생성할 수 있다. 예를 들어, 사용자가 기본 아키텍처(102)를 N배 더 크게 만들려고 하는 경우, 시스템은 복합 계수 φ=log2(N)을 생성할 수 있다. 예를 들어, 사용자가 기본 아키텍처를 4배로 확장하려는 경우, φ=2이다. 사용자가 기본 모델을 32배 확대하려고 하는 경우, φ=5이다.
입력 데이터는 최종 아키텍처에 의해 사용되는 계산 리소스의 목표량을 추가로 지정할 수 있다. 특히, 타겟 리소스 사용량 데이터는 (i) 최종 아키텍처를 생성하기 위해 허용된 최대 메모리 크기, 즉 최종 아키텍처의 파라미터들 및 아키텍처 데이터가 차지할 수 있는 최대 메모리를 나타내는 타겟 메모리 크기, 및 (ii) 최종 아키텍처가 특정 기계 학습 태스크를 수행하기 위해 실행할 수 있는 최대 연산수를 나타내는 목표 연산수를 더 지정한다.
최종 아키텍처를 생성하기 위해, 시스템은 각각 기본 아키텍처의 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원에 추가 계산 리소스를 할당하는 방법을 지정하는 기본 폭 계수(β), 기본 깊이 계수(α) 및 기본 해상도 계수(γ)를 결정하기 위해 검색(예를 들어, 그리드 검색, 랜덤 검색 또는 기타 검색 전략)을 수행한다(단계 206). 예를 들어, 복합 계수 값이 1이고 더 큰 모델에 사용할 수 있는 리소스가 두 배인 경우, 시스템은 수학식 2 및 3에 기초하여 α,β,γ에 대해 그리드 검색을 수행하여 다음과 같이 이러한 기본 계수들에 대한 최상의 값을 찾는다. 계수들은 다음과 같다.
Figure pct00007
하에서, α=1.2,β=1.1,γ=1.15,
그리드 검색을 수행하기 위해, 시스템은 다음 단계를 반복적으로 수행한다.
(a) 기본 폭 계수의 탐색 값, 기본 깊이 계수의 탐색 값 및 기본 해상도 계수의 탐색 값을 선택하는 단계;
(b) (i) 주어진 복합 계수의 값, 및 (ii) 기본 폭, 깊이 및 해상도 계수의 탐색 값에 기초하여 각각 탐색 폭 계수(w'), 탐색 깊이 계수(d') 및 탐색 해상도 계수(r')를 생성하는 단계(예를 들어, 수학식 3 또는 4를 사용하여);
(c) (예를 들어, 기본 아키텍처의 네트워크 폭 차원을 검색 폭 계수로 스케일링하고, 기본 아키텍처의 네트워크 깊이 차원을 검색 깊이 계수로 스케일링하고, 그리고 기본 아키텍처의 해상도를 검색 해상도 계수로 스케일링함으로써) 기본 아키텍처 및 검색 폭 계수, 검색 깊이 계수 및 검색 해상도 계수를 사용하여 검색 후보 아키텍처를 생성하는 단계; 및
(d) 검색 후보 아키텍처에 대해, 특정 기계 학습 태스크에 대한 검색 후보 아키텍처의 성능을 나타내는 성능 스코어를 결정하는 단계를 포함한다. 예를 들어, 성능 스코어는 특정 기계 학습 태스크에 대한 검색 후보 아키텍처의 정확도를 나타내는 정확도 스코어일 수 있다. 특히, 시스템은 특정 기계 학습 태스크에 대해 검색 후보 아키텍처를 갖는 신경망의 인스턴스를 트레이닝하여, 검색 후보 아키텍처를 갖는 신경망의 인스턴스의 파라미터들의 값을 결정할 수 있다. 그런 다음 시스템은 특정 신경망 태스크에 대한 신경망의 트레이닝된 인스턴스의 성능에 기초하여신경망의 트레이닝된 인스턴스의 정확도 스코어를 결정할 수 있다. 예를 들어, 정확도 스코어는 적절한 정확도 측정으로 측정된 유효성 검사 세트에 대한 상기 트레이닝된 인스턴스의 정확도를 나타낼 수 있다. 예를 들어, 정확도 스코어는 출력이 시퀀스인 경우 난해도 측정치일 수 있고 특정 신경망 태스크가 분류 태스크인 경우 분류 에러율일 수 있다. 다른 예로서, 정확도 스코어는 인스턴스의 트레이닝의 마지막 2, 5 또는 10개의 에포크 각각에 대한 인스턴스 정확도의 평균 또는 최대일 수 있다.
이어서 시스템은 기본 깊이, 폭 및 해상도 계수의 최종 값으로서, 생성된 모든 검색 후보 아키텍처의 성능 스코어들 중에서 최대 성능 스코어와 관련된 검색 값들을 선택한다.
시스템은 탐색을 위한 가능한 값의 그리드로부터 (제약 조건에 따라) 각 계수에 대한 값을 샘플링함으로써 단계(a)에서 기본 폭, 깊이 및 해상도 계수에 대한 탐색 값을 선택할 수 있다. 예를 들어, 시스템은
Figure pct00008
하에서 1과 2 사이의 가능한 값의 그리드로부터 각 계수에 대한 값을 샘플링할 수 있다.
기본 폭 계수(β), 기본 깊이 계수(α) 및 기본 해상도 계수(γ)가 획득된 후, 시스템은 폭 계수, 깊이 계수 및 해상도 계수를 결정한다(단계 208).
일부 구현에서, 시스템은 수학식 3을 이용하여 기본 폭, 깊이 및 해상도 계수들 및 복합 계수의 값에 기초하여 폭, 깊이 및 해상도 계수를 생성할 수 있다.
일부 다른 구현에서, 수학식 4에 도시된 바와 같이, 시스템은 기본 폭 계수와 복합 계수의 값의 곱과 상수를 합산함으로써 폭 계수를 생성할 수 있다. 시스템은 기본 깊이 계수와 복합 계수 값의 곱과 상수를 합산하여 깊이 계수를 생성할 수 있다. 시스템은 기본 해상도 계수와 복합 계수 값의 곱과 상수를 합산하여 해상도 계수를 생성할 수 있다.
시스템은 각각 대응하는 폭, 깊이 및 해상도 계수에 기초하여 기본 아키텍처의 네트워크 폭, 네트워크 깊이 및 해상도 차원을 스케일링함으로써 최종 아키텍처를 생성한다(단계 210). 특히, 시스템은 최종 아키텍처를 생성하기 위해 기본 아키텍처의 네트워크 폭 차원을 폭 계수로 스케일링하고, 기본 아키텍처의 네트워크 깊이 차원을 깊이 계수로 스케일링하며, 기본 아키텍처의 네트워크 해상도 차원을 해상도 계수로 스케일링한다. .
그런 다음 식별된 최종 아키텍처에 따른 신경망은 기계 학습 태스크를 수행하는데 사용될 수 있다. 추가로 또는 대안적으로, 식별된 최종 아키텍처를 특징짓는 정보는 최종 아키텍처를 갖는 신경망을 구성할 때 사용하기 위해 (예를 들어, 원격 컴퓨터 시스템으로) 출력될 수 있다.
일부 구현에서, 시스템은 다수의 상이한 복합 계수에 대해 프로세스(300)를 수행함으로써 다수의 더 큰 아키텍처를 생성할 수 있다. 이것은 시스템 또는 사용자가 임의의 주어진 시간(예를 들어, 입력 데이터에 의해 지정된 계산 리소스의 목표량이 주어졌을 때)에 아키텍처를 실행하기 위해 사용될 수 있는 리소스의 양을 고려할 때 가장 적합한 더 큰 아키텍처(예를 들어, 생성된 다수의 더 큰 아키텍처 중에서 성능 스코어가 가장 높은 더 큰 아키텍처)를 선택할 수 있도록 한다.
도 4는 전술한 모델 스케일링 기술을 사용하여 다양한 최종 아키텍처를 생성하는데 사용될 수 있는 다른 예시적인 기본 아키텍처를 도시한다. 기본 아키텍처(300)는 복수의 FusedConv 신경망 계층(304)이 뒤따르는 복수의 MBConv 신경망 계층(306)에 이어 컨볼루션 신경망 계층(302)을 포함한다.
FusedConv는 포인트별 컨볼루션 신경망 서브 계층에 이어 일반 컨볼루션 신경망 서브 계층을 포함하는 일 유형의 컨볼루션 신경망 계층이다. FusedConv에서 사용되는 깊이별 컨볼루션 신경망 서브위 계층은 없다.
MBConv는 포인트별 컨벌루션 신경망 서브 계층이 뛰따르는 깊이별 컨벌루션 신경망 서브 계층에 이어 포인트별 컨볼루션 신경망 서브 계층을 포함하는 일 유형의 컨볼루션 신경망 계층이다. MBConv의 예는 Sandler, M., Howard, A., Zhu, M., Zhmoginov, A. 및 Chen, L.-C. Mobilenetv2: 역잔차 및 선형 병목 현상. CVPR, 2018 및 Tan, M., Chen, B., Pang, R., Vasudevan, V., Sandler, M., Howard, A. 및 Le, Q. V. MnasNet: 모바일용 플랫폼-인식 신경 아키텍처 검색. CVPR, 2019에서 볼 수 있다.
복합 계수를 사용하여 기본 아키텍처(300)를 확장함으로써 생성된 최종 아키텍처는 "EfficientNet-Edge TPU" 아키텍처라고도 하며, 이는 클라우드가 아닌 디바이스에서(Google의 Edge TPU에서) 실행되도록 설계된 특수 목적의 하드웨어 가속기에서 최적으로 실행되도록 맞춤화된다. 이러한 모델 맞춤화를 통해 EfficientNet-Edge TPU 아키텍처는 데이터 센터에서 훨씬 더 크고 컴퓨팅 집약적인 모델을 실행할 때만 일반적으로 나타나는 정확도를 달성하면서 실시간 이미지 분류 성능을 제공할 수 있다.
본 명세서에서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은 시스템에 동작시 시스템으로 하여금 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령들을 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 동작들의 실시예는 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 유형의 비-일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령(어)들은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위해 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 또한 예를 들어 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 논리 회로일 수 있거나 추가로 포함할 수 있다. 장치는 하드웨어 외에 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 응용 프로그램, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 하거나 설명할 수 있는 컴퓨터 프로그램은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 분산되고 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다. 본 명세서에서 "데이터베이스"라는 용어는 모든 데이터 모음을 나타내기 위해 광범위하게 사용된다. 데이터는 특정 방식으로 구조화되거나 전혀 구조화될 필요가 없으며 하나 이상의 위치에 있는 저장 디바이스에 저장될 수 있다. 따라서, 예를 들어, 인덱스 데이터베이스는 각각 다르게 구성되고 액세스될 수 있는 다수의 데이터 컬렉션을 포함할 수 있다.
유사하게, 본 명세서에서 "엔진"이라는 용어는 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브 시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로, 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴포넌트로 구현된다. 일부 경우에는 하나 이상의 컴퓨터가 특정 엔진 전용이며, 다른 경우에는 다수의 엔진이 동일한 컴퓨터에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 다를 기반으로 하거나 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로 중앙 처리 장치는 판독 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령을 수행하거나 실행하기 위한 중앙 처리 장치와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 처리 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 하도록 작동 가능하게 연결된다. 그러나 컴퓨터에는 이러한 장디바이스들이 필요하지 않다. 또한, 컴퓨터는 다른 디바이스(예를 들어, 모바일 전화기, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비-휘발성 메모리, 매체 및 메모리 디바이스를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 전송하고 그로부터 문서를 수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스(예를 들어, 메시징 애플리케이션을 실행하는 스마트폰)에 보내고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한 예를 들어 기계 학습 트레이닝 또는 생산, 즉 추론, 워크로드의 공통 및 컴퓨팅 집약적 부분을 처리하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크(예를 들어, TennsorFlow 프레임워크, Microsoft Cognitive Toolkit 프레임워크, Apache Singa 프레임워크 또는 Apache MXNet 프레임워크)를 사용하여 구현 및 배포할 수 있다.
본 명세서에 기술된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 예를 들어, 인터넷이 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 예를 들어, 클라이언트 역할을 하는 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용로부터 사용자 입력을 수신하기 위해 데이터(예를 들어, HTML 페이지)를 사용자 디바이스로 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다. 본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
유사하게, 동작들이 도면에 묘시되고 특정 순서로 청구 범위에서 인용되지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 예를 들어, 청구 범위에 인용된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 일 예로서, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하는 것은 아니다. 일부 경우, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (17)

  1. 특정 기계 학습 태스크를 수행하기 위해 신경망에 대한 최종 아키텍처를 결정하는 컴퓨터 구현 방법으로서, 상기 방법은,
    신경망을 위한 기본(baseline) 아키텍처를 수신하는 단계, 상기 기본 아키텍처는 특정 기계 학습 태스크를 수행하도록 트레이닝되었으며, 상기 기본 아키텍처는 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원을 가지며,
    기본 아키텍처를 스케일링하는데 사용되는 추가 계산 리소스를 제어하는 복합(compound) 계수를 정의하는데 데이터를 수신하는 단계;
    기본 아키텍처의 네트워크 폭 차원, 네트워크 깊이 차원 및 해상도 차원에 각각 추가 계산 리소스를 할당하는 방법을 지정하는 기본 폭 계수, 기본 깊이 계수 및 기본 해상도 계수를 결정하기 위한 검색을 수행하는 단계;
    기본 폭 계수, 기본 깊이 계수, 기본 해상도 계수 및 복합 계수에 기초하여 폭 계수, 깊이 계수 및 해상도 계수를 결정하는 단계; 및
    해당 폭, 깊이 및 해상도 계수에 기초하여 기본 아키텍처의 네트워크 폭, 네트워크 깊이 및 해상도 차원을 스케일링하는 최종 아키텍처를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    기본 아키텍처는 복수의 네트워크 스테이지를 갖고, 복수의 네트워크 스테이지 각각은 복수의 신경망 계층을 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    기본 아키텍처의 각 네트워크 스테이지에 있는 복수의 신경망 계층은 동일한 아키텍처를 공유하는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제2항 또는 제3항에 있어서,
    기본 아키텍처의 네트워크 깊이 차원은,
    기본 아키텍처의 복수의 네트워크 스테이지에 있는 계층 수의 세트인 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    기본 아키텍처의 각 신경망 계층은,
    이전 계층으로부터 입력 텐서를 수신하고, 입력 텐서에 대해, 다음 신경망 계층에 입력으로 공급될 출력 텐서를 생성하도록 구성되고, 입력 텐서는 높이 차원, 폭 차원, 및 입력 텐서의 채널 수를 지정하는 채널 차원을 갖는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    기본 아키텍처의 네트워크 폭 차원은
    기본 아키텍처의 복수의 신경망 계층에 대한 입력 텐서와 관련된 입력 채널의 수의 세트인 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제5항 또는 제6항에 있어서,
    기본 아키텍처의 해상도 차원은,
    기본 아키텍처의 복수의 신경망 계층에 대한 입력 텐서의 높이 차원 및 폭 차원의 세트인 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    기본 폭 계수, 기본 깊이 계수, 기본 해상도 계수 및 복합 계수에 기초하여 폭, 깊이, 및 해상도 계수를 결정하는 단계는,
    복합 계수와 기본 폭 계수에 기초하여 폭 계수를 생성하는 단계;
    복합 계수와 기본 깊이 계수에 기초하여 깊이 계수를 생성하는 단계; 및
    복합 계수와 기본 해상도 계수에 기초하여 해상도 계수를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    복합 계수와 기본 폭 계수에 기초하여 폭 계수를 생성하는 단계는,
    기본 폭 계수 및 복합 계수의 곱과 상수를 합산하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제8항 또는 제9항에 있어서,
    복합 계수와 기본 깊이 계수에 기초하여 깊이 계수를 생성하는 단계는,
    기본 깊이 계수 및 복합 계수의 곱과 상수를 합산하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    복합 계수와 기본 해상도 계수에 기초하여 해상도 계수를 생성하는 단계는,
    기본 해상도 계수 및 복합 계수의 곱과 상수를 합산하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    최종 아키텍처를 생성하는 단계는,
    폭 계수로 기본 아키텍처의 네트워크 폭 차원을 스케일링하는 단계;
    깊이 계수로 기본 아키텍처의 네트워크 깊이 차원을 스케일링하는 단계; 및
    해상도 계수로 기본 아키텍처의 해상도를 스케일링하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    기본 폭 계수, 기본 깊이 계수 및 기본 해상도 계수를 결정하기 위해 검색을 수행하는 단계는,
    기본 폭 계수, 기본 깊이 계수, 및 기본 해상도 계수를 결정하기 위해 복합 계수를 사용하면서 각각의 계수에 대한 값 범위에 대해 그리드 검색을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    특정 기계 학습 태스크에 대한 최종 아키텍처의 성능을 나타내는 성능 스코어를 결정하는 단계를 더 포함하여:
    최종 아키텍처의 파라미터 값을 업데이트하기 위해 특정 기계 학습 태스크에 대한 최종 아키텍처를 트레이닝하는 단계. 및
    특정 기계 학습 태스크에 대한 트레이닝된 최종 아키텍처트레이닝의 성능을 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서,
    수신된 데이터는,
    (i) 최종 아키텍처를 생성하기 위해 허용된 최대 메모리 크기를 나타내는 타겟 메모리 크기, 및 (ii) 최종 아키텍처가 특정 기계 학습 태스크를 수행하기 위해 실행할 수 있는 최대 연산수를 나타내는 목표 연산수를 정의하는 타겟 리소스 사용률 데이터를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 하나 이상의 컴퓨터 및 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제14항 중 어느 한 항의 개별 방법의 동작들을 수행하게 하는 명령들을 저장하는 하나 이상의 저장 디바이스를 포함하는 시스템. .
  17. 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 제1항 내지 제14항 중 어느 한 항의 개별 방법의 동작들을 수행하게 하는 명령들을 저장하는 하나 이상의 컴퓨터 저장 매체.
KR1020217023377A 2019-01-23 2020-01-23 신경망을 위한 복합 모델 스케일링 KR20210105976A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962796034P 2019-01-23 2019-01-23
US62/796,034 2019-01-23
PCT/US2020/014839 WO2020154536A1 (en) 2019-01-23 2020-01-23 Compound model scaling for neural networks

Publications (1)

Publication Number Publication Date
KR20210105976A true KR20210105976A (ko) 2021-08-27

Family

ID=69726764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217023377A KR20210105976A (ko) 2019-01-23 2020-01-23 신경망을 위한 복합 모델 스케일링

Country Status (6)

Country Link
US (2) US10909457B2 (ko)
EP (1) EP3912099A1 (ko)
JP (2) JP7286774B2 (ko)
KR (1) KR20210105976A (ko)
CN (1) CN113424199A (ko)
WO (1) WO2020154536A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020026327A1 (ja) * 2018-07-31 2020-02-06 日本電気株式会社 情報処理装置、制御方法、及びプログラム
CN112116090B (zh) * 2020-09-28 2022-08-30 腾讯科技(深圳)有限公司 神经网络结构搜索方法、装置、计算机设备及存储介质
KR102508106B1 (ko) * 2020-11-24 2023-03-08 한남대학교 산학협력단 뉴로모픽 하드웨어 지원 IoT 응용 생성 자동화 방법
CN112836801A (zh) * 2021-02-03 2021-05-25 上海商汤智能科技有限公司 深度学习网络确定方法、装置、电子设备及存储介质
WO2022212217A1 (en) * 2021-04-01 2022-10-06 Mythic, Inc. Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit
CN114399018B (zh) * 2021-12-17 2023-10-10 西北大学 一种基于轮转操控策略麻雀优化的EfficientNet陶瓷碎片分类方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108593A (ja) * 1991-10-14 1993-04-30 Sanyo Electric Co Ltd ニユーロ開発支援装置
JPH0991263A (ja) * 1995-09-20 1997-04-04 Hitachi Medical Corp ニューラルネットワーク構造最適化装置ならびに方法
JP6287999B2 (ja) * 2015-08-07 2018-03-07 トヨタ自動車株式会社 ニューラルネットワーク学習装置
JP6817431B2 (ja) * 2016-10-28 2021-01-20 グーグル エルエルシーGoogle LLC ニューラルアーキテクチャ検索

Also Published As

Publication number Publication date
US20210133578A1 (en) 2021-05-06
US11893491B2 (en) 2024-02-06
JP2023120204A (ja) 2023-08-29
JP7286774B2 (ja) 2023-06-05
US20200234132A1 (en) 2020-07-23
US10909457B2 (en) 2021-02-02
CN113424199A (zh) 2021-09-21
JP2022523666A (ja) 2022-04-26
WO2020154536A1 (en) 2020-07-30
EP3912099A1 (en) 2021-11-24

Similar Documents

Publication Publication Date Title
US20210334624A1 (en) Neural architecture search using a performance prediction neural network
KR20210105976A (ko) 신경망을 위한 복합 모델 스케일링
US10803884B2 (en) Generating audio using neural networks
US11669744B2 (en) Regularized neural network architecture search
KR102302609B1 (ko) 신경망 아키텍처 최적화
CN109947919B (zh) 用于生成文本匹配模型的方法和装置
KR102469261B1 (ko) 적응적 인공 신경 네트워크 선택 기법들
US20220121906A1 (en) Task-aware neural network architecture search
US11488067B2 (en) Training machine learning models using teacher annealing
US20200342857A1 (en) Speaker diarization using speaker embedding(s) and trained generative model
KR20220133323A (ko) 어텐션-기반의 시퀀스 변환 신경망
US20220092416A1 (en) Neural architecture search through a graph search space
JP2020512639A (ja) 強化学習を用いたデバイス配置最適化
US11545157B2 (en) Speaker diartzation using an end-to-end model
WO2018039510A1 (en) Reward augmented model training
US11797839B2 (en) Training neural networks using priority queues
CN110663049A (zh) 神经网络优化器搜索
EP3602417A1 (en) Selecting answer spans from electronic documents using machine learning
CN113348472A (zh) 具有软内核选择的卷积神经网络