KR20240027526A - 신경 아키텍처 검색을 위한 시스템 및 방법 - Google Patents

신경 아키텍처 검색을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20240027526A
KR20240027526A KR1020230073439A KR20230073439A KR20240027526A KR 20240027526 A KR20240027526 A KR 20240027526A KR 1020230073439 A KR1020230073439 A KR 1020230073439A KR 20230073439 A KR20230073439 A KR 20230073439A KR 20240027526 A KR20240027526 A KR 20240027526A
Authority
KR
South Korea
Prior art keywords
weights
connection
neural network
connection weights
training
Prior art date
Application number
KR1020230073439A
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 KR20240027526A publication Critical patent/KR20240027526A/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/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/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/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

신경 아키텍처 검색을 위한 시스템 및 방법이 개시된다. 일부 실시 예에서, 상기 방법은 신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하는 단계; 평활 최대 단위 정규화 값을 사용하여 훈련 손실을 계산하는 단계; 및 상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 단계를 포함한다.

Description

신경 아키텍처 검색을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR NEURAL ARCHITECTURE SEARCH}
본 출원은 (i) 2022년 8월 23일에 출원된, "평균 정규화에 의한 미분 가능한 아키텍처 검색의 정규화 및 가속화"란 제목의 미국 가출원 번호 63/400,262, 및 (ii) 2022년 8월 24일에 출원된, "평균 정규화에 의한 미분 가능한 아키텍처 검색 정규화 및 가속화"란 제목의 미국 가출원 번호 63/400,691의 우선권을 주장하고, 이 둘의 개시 내용은 모두 본 명세서에서 설명되는 바와 같이 전체가 참조로 포함된다.
본 개시는 일반적으로 신경망에 관한 것이다. 특히, 본 명세서에 개시된 주제는 신경 아키텍처 검색의 개선에 관한 것이다.
신경망은 일단 아키텍처가 선택되면, 예를 들어 역전파를 사용하는 지도 훈련을 포함하는 다양한 훈련 방법에 의해 훈련될 수 있다. 그러나 아키텍처 선택에는 시간이 많이 걸리는 시행 착오 방법이 관여할 수 있다.
이러한 문제를 해결하기 위해서, 신경 아키텍처 검색(NAS)은 시간이 많이 걸리고 오류가 발생하기 쉬운 인간 설계를 피하면서 수용 가능한 성능을 달성할 수 있는 심층 신경망(DNN)을 자동으로 설계하는 것과 관련된다.
신경 아키텍처 검색(NAS)을 수행하기 위한 관련 기술 방법은 후보의 연속적 완화 및 이중 수준 최적화의 1단계 근사화를 사용할 수 있다. 이러한 접근 방법의 한 가지 문제는 일부 관련 기술 방법이 스킵(skip) 연결의 집합으로 인한 성능 붕괴를 겪는다는 것이다. 일부 관련 NAS 접근 방법은 아키텍처 업데이트 프로세스를 재설계하여(예를 들어, 보조 스킵 연결, 또는 제한된 스킵 연결 허용을 이용하여), 또는 슈퍼넷 최적화를 개선하여(예를 들어, 조기 중지, 제약 조건, 섭동 또는 헤시안(Hessian) 정규화를 사용하여) 성능 붕괴 문제를 해결하기 위해 노력한다.
일부 관련 기술 방법은 과매개 변수화된 슈퍼넷의 성능과 그 최종 파생된 자식 네트워크 간의 불일치를 보일 수 있다. 예를 들어, 슈퍼넷 검색 단계 동안, 모든 연산은 가중치 합 방식으로 기능 맵 간에 사용될 수 있다. 최종 네트워크를 도출할 때, 하나를 제외한 모든 연산은 연결된 기능 맵 사이에서 정리되어, 슈퍼넷에서 가장 큰 기여를 하는 연산을 남긴다. L1 또는 L2 메트릭, 또는 중량 감소 손실의 사용은 이러한 관련 기술 방법의 슈퍼넷에 대해서는 비효율적일 수 있다.
이러한 문제를 극복하기 위해, 위에서 설명한 문제의 일부 또는 전부를 완화하는 손실 함수를 사용하기 위한 시스템 및 방법이 본 명세서에서 설명된다. 또한, 각 학습 에포크에서 채널의 일부만을 처리하는 등의 다양한 방법을 사용하여 학습률을 높일 수 있다. 상기 접근 방법은 예를 들어 성능 붕괴가 완화될 수 있기 때문에, 이전 방법보다 개선된다.
본 개시의 일 실시 예에 따르면, 신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하는 단계; 평활 최대 단위 정규화 값을 사용하여 훈련 손실을 계산하는 단계; 및 상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 단계를 포함하는, 방법이 제공되고 있다.
일부 실시 예에서, 상기 훈련 손실을 계산하는 단계는 손실 함수를 평가하는 단계를 포함하고; 상기 손실 함수는 상기 매개 변수 연결 가중치를 포함하는 복수의 입력에 기초하고; 상기 손실 함수는: 제1 입력 값 세트에 대해, 상기 손실 함수는 제1 값을 갖고 - 상기 제1 입력 값 세트는: 제1 세트의 매개 변수 연결 가중치, 및 제1 세트의 기타 가중치로 이루어짐 - ; 제2 입력 값 세트에 대해, 상기 손실 함수는 제2 값을 갖고 - 상기 제2 입력 값 세트는: 제2 세트의 매개 변수 연결 가중치, 및 세트의 기타 가중치로 이루어짐 - ; 제1 세트의 매개 변수 연결 가중치의 각각은 0보다 작고; 상기 제2 세트의 매개 변수 연결 가중치의 하나는 상기 제1 세트의 매개 변수 연결 가중치의 대응하는 것보다 작고; 상기 제2 값은 상기 제1 값보다 작은, 속성을 갖는다.
일부 실시 예에서, 상기 손실 함수는 제1 항과 제2 항을 포함하며, 상기 제1 항은 상기 매개 변수 연결 가중치의 교차 엔트로피 함수이다.
일부 실시 예에서, 상기 손실 함수는 제1 항 및 제2 항을 포함하고, 상기 제2 항은 복수의 하위 항을 포함하고, 상기 하위 항의 제1 하위 항은 상기 매개 변수 연결 가중치의 제1 매개 변수 연결 가중치에 비례하고, 상기 하위 항의 제2 하위 항은 상기 제1 매개 변수 연결 가중치에 비례하는 항의 오차 함수에 비례한다.
일부 실시 예에서, 상기 방법은 상기 신경망의 훈련의 복수의 에포크 동안 상기 신경망으로 상기 훈련 데이터 세트를 처리하는 단계 - 상기 복수의 에포크는 상기 제1 에포크를 포함함 - ; 및 각 에포크에 대해, 상기 신경망의 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 상기 손실 함수를 줄이는 방향으로 조정하는 단계를 포함한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는 상기 손실 함수가 3개의 연속적인 에포크 각각에 걸쳐 감소하도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는 10개의 연속적인 에포크마다 상기 손실 함수가 감소되도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는 상기 곱셈 연결 가중치 중 가장 큰 곱셈 연결 가중치가 상기 곱셈 연결 가중치 중 두번 째로 큰 곱셈 연결 가중치의 값을 상기 곱셈 연결 가중치 중 상기 가장 큰 곱셈 연결 가중치와 가장 작은 곱셈 연결 가중치 간의 차이의 적어도 2% 만큼 초과하는 값을 갖도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는 상기 가장 큰 곱셈 연결 가중치가 상기 두번 째로 큰 곱셈 연결 가중치의 값을 상기 가장 큰 곱셈 연결 가중치와 상기 가장 작은 곱셈 연결 가중치 간의 상기 차이의 적어도 5%만큼 초과하는 값을 갖도록 한다.
본 개시의 일 실시 예에 따르면, 하나 이상의 처리 회로; 및 상기 하나 이상의 처리 회로에 의해 실행될 때, 신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하고; 평활 최대 단위 정규화 값을 사용하여 훈련 손실을 계산하고; 상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 성능을 가능하게 하는 명령어를 저장하는 메모리를 포함하는, 시스템을 제공하고 있다.
일부 실시 예에서, 상기 훈련 손실을 계산하는 성능은 손실 함수를 평가하는 성능을 포함하고; 상기 손실 함수는 상기 매개 변수 연결 가중치를 포함하는 복수의 입력에 기초하고; 상기 손실 함수는: 제1 입력 값 세트에 대해, 상기 손실 함수는 제1 값을 갖고 - 상기 제1 입력 값 세트는: 제1 세트의 매개 변수 연결 가중치, 및 제1 세트의 기타 가중치로 이루어짐 - , 제2 입력 값 세트에 대해, 상기 손실 함수는 제2 값을 갖고 - 상기 제2 입력 값 세트는: 제2 세트의 매개 변수 연결 가중치, 및 제2 세트의 기타 가중치로 이루어짐 -, 상기 제1 세트의 매개 변수 연결 가중치의 각각은 0보다 작고, 상기 제2 세트의 매개 변수 연결 가중치의 하나는 상기 제1 세트의 매개 변수 연결 가중치의 대응하는 것보다 작고; 상기 제2 값은 상기 제1 값보다 작은, 속성을 갖는다.
일부 실시 예에서, 상기 손실 함수는 제1 항과 제2 항을 포함하며, 상기 제1 항은 상기 매개 변수 연결 가중치의 교차 엔트로피 함수이다.
일부 실시 예에서, 상기 손실 함수는 제1 항 및 제2 항을 포함하고, 상기 제2 항은 복수의 하위 항을 포함하고, 상기 하위 항의 제1 하위 항은 상기 매개 변수 연결 가중치의 제1 매개 변수 연결 가중치에 비례하고, 상기 하위 항의 제2 하위 항은 상기 제1 매개 변수 연결 가중치에 비례하는 항의 오차 함수에 비례한다.
일부 실시 예에서, 상기 명령어는: 상기 신경망의 훈련의 복수의 에포크 동안 상기 신경망으로 상기 훈련 데이터 세트를 처리하고 - 상기 복수의 에포크는 상기 제1 에포크를 포함함 - ; 및 각 에포크에 대해, 상기 신경망의 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 상기 손실 함수를 줄이는 방향으로 조정하는 성능을 가능하게 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 성능은 상기 손실 함수가 3개의 연속적인 에포크 각각에 걸쳐 감소하도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 성능은 10개의 연속적인 에포크마다 상기 손실 함수가 감소되도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 성능은 상기 곱셈 연결 가중치 중 가장 큰 곱셈 연결 가중치가 상기 곱셈 연결 가중치 중 두번 째로 큰 곱셈 연결 가중치의 값을 상기 곱셈 연결 가중치 중 상기 가장 큰 곱셈 연결 가중치와 가장 작은 곱셈 연결 가중치 간의 차이의 적어도 2% 만큼 초과하는 값을 갖도록 한다.
일부 실시 예에서, 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 성능은 상기 가장 큰 곱셈 연결 가중치가 상기 두번 째로 큰 곱셈 연결 가중치 값을 상기 가장 큰 곱셈 연결 가중치와 상기 가장 작은 곱셈 연결 가중치 간의 상기 차이의 적어도 5%만큼 초과하는 값을 갖도록 한다.
본 개시의 일 실시 예에 따르면, 처리를 위한 수단; 및 상기 하나 이상의 처리 회로에 의해 실행될 때, 신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하고; 평활 최대 단위 정규화 값을 사용하여 훈련 손실을 계산하고; 상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 성능을 가능하게 하는 명령어를 저장하는 메모리를 포함하는, 시스템을 제공하고 있다.
일부 실시 예에서, 상기 훈련 손실을 계산하는 성능은 손실 함수를 평가하는 성능을 포함하고; 상기 손실 함수는 상기 매개 변수 연결 가중치를 포함하는 복수의 입력에 기초하고; 상기 손실 함수는: 제1 입력 값 세트에 대해, 상기 손실 함수는 제1 값을 갖고 - 상기 제1 입력 값 세트는: 제1 세트의 매개 변수 연결 가중치, 및 제1 세트의 기타 가중치로 이루어짐 - , 제2 입력 값 세트에 대해, 상기 손실 함수는 제2 값을 갖고 - 상기 제2 입력 값 세트는: 제2 세트의 매개 변수 연결 가중치, 및 제2 세트의 기타 가중치로 이루어짐 -, 상기 제1 세트의 매개 변수 연결 가중치의 각각은 0보다 작고, 상기 제2 세트의 매개 변수 연결 가중치의 하나는 상기 제1 세트의 매개 변수 연결 가중치의 대응하는 것보다 작고; 상기 제2 값은 상기 제1 값보다 작은, 속성을 갖는다.
이하 단락에서, 본 명세서에 개시된 주제의 측면은 도면에 도시된 예시적인 실시 예를 참조하여 설명될 것이다:
도 1은 본 발명의 일 실시 예에 따른, 신경망의 일부에 대한 블록도이다;
도 2는 본 발명의 일 실시 예에 따른, 신경망의 일부에 대한 블록도이다;
도 3은 본 발명의 일 실시 예에 따른, 흐름도이다; 및
도 4는 다양한 실시 예에 따른, 네트워크 환경의 전자 장치의 블록도이다.
이하 상세한 설명에서, 본 개시 내용의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자라면 개시된 측면은 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 이해될 것이다. 다른 예에서, 잘 알려진 방법, 절차, 구성 요소 및 회로는 본 명세서에 개시된 본 발명을 모호하게 하지 않기 위해 상세하게 설명되지 않았다.
본 명세서 전반에 걸쳐 "일 실시 예" 또는 "실시 예"에 대한 언급은 실시 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 명세서에 개시된 적어도 하나의 실시 예에 포함될 수 있음을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 곳에서 "일 실시 예에서" 또는 "실시 예에서" 또는 "일 실시 예에 따른" (또는 유사한 의미를 갖는 다른 어구)의 언급은 반드시 모두 동일한 실시 예를 지칭하는 것은 아닐 수 있다. 또한, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 이와 관련하여, 본 명세서에서 사용된 바와 같이, "예시적인"이라는 단어는 "예시, 실례 또는 예시로서의 역할을 한다"를 의미한다. 본 명세서에서 "예시적인" 것으로 설명된 임의의 실시 예는 다른 실시 예에 비해 반드시 바람직하거나 유리한 것으로 해석되어서는 안된다. 추가로, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 또한, 본 명세서에서 논의한 내용에 따라, 단수형 용어는 대응하는 복수형을 포함할 수 있고 복수형 용어는 대응하는 단수형을 포함할 수 있다. 유사하게, 하이픈으로 연결된 용어(예를 들어, "2-차원", "미리-결정된", "픽셀-특정" 등)는 때때로 해당하는 하이픈 없는 버전(예를 들어 "2차원", "미리 결정된", "픽셀 특정" 등)과 상호 교환적으로 사용될 수 있으며, 대문자 항목(예를 들어, "Counter Clock", "Row Select", "PIXOUT" 등)은 해당하는 비 대문자 버전(예를 들어, "counter clock", "row select", "pixout" 등)과 상호 교환적으로 사용될 수 있다. 이러한 상호 교환하여 사용하는 것을 서로 불일치하다고 생각해서는 안된다.
또한, 본 명세서에서 논의되는 맥락에 따라, 단수형 용어는 대응하는 복수 형을 포함할 수 있고, 복수형의 용어는 대응하는 단수형을 포함할 수 있다. 본 명세서에 도시되고 논의된 다양한 도면(구성 요소 다이어그램 포함)은 단지 예시를 위한 것이며, 비율대로 그련진 것이 아니라는 것에 유의한다. 예를 들어, 일부 요소의 치수는 명확하게 하기 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절하다고 간주되는 경우, 도면간에 참조 번호가 반복되어 대응 및/또는 유사한 요소를 표시한다.
본 명세서에서 사용된 용어는 일부 예시적인 실시 예를 설명하기 위한 것이며 청구된 본 발명의 요지를 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥 상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것이다. 본 명세서에서 사용될 때 "포함하다" 및/또는 "포함하는" 이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소 및/또는 그 그룹의 존재 또는 추가를 배제하지 않는다는 것이 이해될 것이다.
하나의 요소 또는 층이 다른 요소 또는 층에 "연결되거나" "결합되는" 것으로 언급될 때, 다른 요소 또는 층 바로 위에 있거나, 이에 연결되거나 결합될 수 있거나, 중간 요소 또는 층이 존재할 수도 있다. 대조적으로, 하나의 요소가 다른 요소 또는 층의 "바로 위에 있거나", "직접 연결되거나", "직접 결합되는" 것으로 언급되는 경우, 중간 요소 또는 층이 존재하지 않는다. 동일한 숫자는 전체에 걸쳐 동일한 요소를 나타낸다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관된 열거된 항목의 임의의 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어 "제 1", "제 2" 등은 선행하는 명사의 라벨로 사용되며, 명시적으로 정의하지 않는 한, 어떤 유형의 시퀀스(예를 들어, 공간적, 시간적, 논리적 등)도 암시하지 않는다. 또한, 동일하거나 유사한 기능을 갖는 부품, 구성 요소, 블록, 회로, 유닛 또는 모듈을 지칭하기 위해 동일한 참조 번호가 둘 이상의 도면에 걸쳐 사용될 수 있다. 그러나 이러한 사용법은 설명의 단순성과 논의의 용이성을 위한 것이고; 그러한 구성 요소 또는 유닛의 구조 또는 구조적 세부 사항이 모든 실시 예에 걸쳐 동일하거나 일반적으로 참조되는 부품/모듈이 본 명세서에 개시된 예시적인 실시 예의 일부를 구현하는 유일한 방법이라는 것을 의미하지는 않는다.
달리 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 본 명세서에서 사용되는 모든 용어는 이 주제가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 기술의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며 본 명세서에서 명확하게 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않는다는 것이 이해될 것이다.
본 명세서에서 사용되는 용어 "모듈"은 모듈과 관련하여 본 명세서에 설명된 기능을 제공하도록 구성된 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합을 지칭한다. 예를 들어, 소프트웨어는 소프트웨어 패키지, 코드 및/또는 명령어 세트 또는 명령어로 구현될 수 있으며, 본 명세서에 설명된 임의의 구현에서 사용되는 용어 "하드웨어"는 예를 들어, 단일 또는 임의의 조합으로, 어셈블리, 하드 와이어드 회로, 프로그래밍 가능 회로, 상태 기계 회로 및/또는 프로그래밍 가능 회로에 의해 실행되는 명령을 저장하는 펌웨어를 포함할 수 있다. 모듈은 세트적으로 또는 개별적으로, 예를 들어, 집적 회로(IC), 시스템 온어칩(SoC), 어셈블리 등과 같은 더 큰 시스템의 일부를 형성하는 회로로 구현될 수 있다.
본 명세서에서 사용되는 바와 같이, 어떤 것의 "일부"는 그것의 "적어도 일부"를 의미하고, 그 자체로 그것의 전부 또는 전부보다 적은 것을 의미할 수 있다. 이와 같이, 사물의 '일부'는 전체 사물을 특수한 경우로 포함하고, 즉 전체 사물은 그 사물의 일부의 일 예가 된다. 본 명세서에서 "또는"은 "및/또는"으로 해석되어야 하므로, 예를 들어 "A 또는 B"는 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 의미한다.
"처리 회로" 및 "처리 수단"이라는 각각의 용어는 본 명세서에서 데이터 또는 디지털 신호를 처리하기 위해 사용되는 하드웨어, 펌웨어 및 소프트웨어의 임의의 조합을 의미하는 데 사용된다. 처리 회로 하드웨어는 예를 들어 주문형 집적 회로(ASIC), 범용 또는 특수 목적 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 그래픽 처리 장치(GPU), 및 필드 프로그래머블 게이트 어레이(FPGA)와 같은 프로그래머블 로직 디바이스를 포함할 수 있다. 본 명세서에서 사용되는 처리 회로에서, 각 기능은 해당 기능을 수행하도록 구성된, 즉, 하드 배선된 하드웨어, 또는 비일시적 저장 매체에 저장된 명령을 실행하도록 구성된 CPU와 같은 보다 범용적인 하드웨어에 의해 수행된다. 처리 회로는 단일 인쇄 회로 기판(PCB)에서 제조되거나 여러 상호 연결된 PCB에 분산될 수 있다. 처리 회로는 다른 처리 회로를 포함할 수 있다. 예를 들어, 처리 회로는 PCB에 상호 연결된 두 개의 처리 회로, FPGA와 CPU를 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 방법(예: 조정) 또는 제1 수량(예: 제1 변수)이 제2 수량(예: 제2 변수)을 "기반"으로 하는 경우, 이것은 제2 수량이 방법에 대한 입력이거나 제1 수량에 영향을 미치고, 예를 들어, 제2 수량이 제1 수량을 계산하는 함수에 대한 입력(예: 유일한 입력 또는 여러 입력 중 하나)일 수 있거나, 제1 수량이 제2 수량과 동일할 수 있거나, 제1 수량이 제2 수량(예를 들어, 메모리의 동일한 위치 또는 위치들에 저장된 것)과 동일할 수 있다는 것을 의미한다.
관련 기술의 신경 아키텍처 검색(NAS)을 수행하기 위한 방법은 후보의 연속 완화 및 이중 수준 최적화의 1단계 근사화를 사용할 수 있다. 그러나 위에서 언급한 바와 같이, 일부 관련 기술 방법은 스킵 연결의 집합으로 인해 발생할 수 있는 성능 붕괴로 어려움을 겪는다. 일부 관련 NAS 접근법은 아키텍처 업데이트 프로세스를 재설계하거나(예를 들어, 보조 스킵 연결 또는 제한된 스킵 연결 허용을 이용하여), 슈퍼넷 최적화를 개선하여(예를 들어, 조기 중지, 제약, 섭동 또는 헤시안 정규화를 사용하여) 성능 붕괴 문제를 해결하기 위해 노력한다.
관련 기술의 NAS 방법은 컨볼루션 신경망(CNN)을 구성하기 위해 반복적으로 쌓인 셀을 검색할 수 있다. 각 계산 셀 k는 7개의 노드, 즉 바로 이전 셀 k-1 및 k-2의 2개의 입력 노드, 네 개의 중간 노드, 및 하나의 출력 노드를 갖는 방향성 비순환 그래프(DAG)일 수 있다. 각 노드 Xi는 기능 맵이며 노드 사이의 각 방향의 에지(i,j)는 Xi를 Xj로 변환하는 8개의 연산을 포함할 수 있다. 이들 연산은 예를 들어, 콘볼루션(예를 들어, 1 × 1 또는 3 × 3 콘볼루션(또는 "conv")), 예를 들어, {3 × 3, 5 × 5} 분리 가능한 컨볼루션 또는 {3 × 3, 5 × 5} 확장된 분리 가능한 컨볼루션, 3 × 3 {최대, 평균} 풀링(예를 들어, 평균 풀링 또는 "평균 풀"), 아이덴티티(또는 "스킵" 또는 "스킵 연결"), 및 0(또는 "없음")를 포함할 수 있다. 검색 단계에서, NAS 방법은 기능 맵에서 8개의 연산을 모두 사용하는 슈퍼넷으로 시작할 수 있다. 검색 공간을 연속적으로 만들려면, 이 방법은 특정 연산의 범주적 선택을 가능한 모든 연산에 대해 소프트맥스로 완화할 수 있다.
도 1은 3개의 노드(105), 복수의 곱셈 연결 가중치(110)(각각 β로 지칭될 수 있음) 및 복수의 연산(115)을 포함하는 신경망의 일부를 도시한다.
제1 노드(N1) 및 제2 노드(N2) 각각은 제3 노드(N3)에 연결된다. 제1 노드(N1)는 제1 에지(111)에 의해 제3 노드(N3)에 연결되고, 제2 노드(N2)는 제2 에지(112)에 의해 제3 노드(N3)에 연결된다. 제1 에지(111)는 복수의 연결을 포함하고, 각 연결은 곱셈 연결 가중치(110) 및 연산(115)을 포함한다. 연결은 가산기(120)(전용 회로 또는 다른 연산이 가능한 처리 회로에 의해 수행되는 명령일 수 있음)에 의해 합산된다. 각 에지에는 2개 이상의 연산(예를 들어, 도 1에 도시된 바와 같이 3개 또는 위에 열거된 8개의 연산)이 있을 수 있다. 훈련 후, 제1 연산(115)에 대한 곱셈 연결 가중치(110)가 한쪽 에지에서 0이 아니고, 에지에 대한 나머지 곱셈 연결 가중치(110)가 모두 0이면, 해당 에지에서 연결은 제1 연산을 수행하는 것이다. 이 방법은 매개 변수 연결 가중치 α를 각 연산(115)의 기여도에 대한 지표로 정의할 수 있다. 대응하는 곱셈 연결 가중치(110)는 다음과 같이 계산될 수 있다:
여기서 i와 j는 에지에 의해 연결된 두 노드의 식별자이다. 본 명세서에서 사용된 바와 같이, "매개 변수 연결 가중치"는 상기 수학식에서 대신 사용될 때, 결과가 곱셈 연결 가중치 가 되는 값이다. 이와 같이, 예를 들어, 이면, 의 세트는 매개 변수 연결 가중치이다.
이산 연산 선택의 연속적 완화는 다음과 같이 된다:
여기서 O는 연산 세트이다.
그런 다음 아키텍처 검색의 작업은 신경망의 아키텍처를 인코딩하는 일련의 연속 α 변수(매개 변수 연결 가중치)를 학습하는 것으로 축소된다. 매개 변수 연결 가중치(110) 및 기타 가중치를 조정하기 위한 신경망의 지도 훈련(예를 들어, 컨볼루션 커널 및 에지 가중치(125)의 요소와 같은 내부 가중치(도 2, 이하에서 더 상세히 논의됨))은 예를 들어, 신경망으로 라벨링된 데이터 세트를 처리하고, 손실 함수를 평가하고, 손실 함수를 줄이는(예를 들어, 손실 함수의 값을 줄이는) 방향으로 가중치를 조정함으로써 수행될 수 있다. 본 명세서에서 사용되는 바와 같이, 손실 함수는 신경망의 성능이 개선되고 있음을 나타내는 방향으로 그 값이 변경될 때 "감소"된다. 지도 훈련은 복수의 에포크에 걸쳐 훈련 데이터 세트로 훈련을 수행하는 것을 포함할 수 있다. 신경망의 훈련의 각 에포크에 대해, 훈련은 에포크 동안 신경망으로 훈련 데이터 세트를 처리하는 단계, 상기 손실 함수를 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 단계를 포함한다. 손실 함수는 매개 변수 연결 가중치의 교차 엔트로피 항이거나, 이를 포함할 수 있다.
상술한 바와 같이, 이들 방법 중 일부는 성능 붕괴로 인해 어려움을 겪을 수 있다. 이러한 상황에서, 스킵 연결은 검색 단계를 지배할 수 있고 네트워크는 전체 스킵 네트워크로 수렴할 수 있다. 게다가, 일부 방법은 이산 불일치로 인해 어려움을 겪을 수 있다. 이러한 상황에서, 여러 α 값은 서로 매우 가까울 수 있으며, 이는 결국 셀의 하나 이상의 에지에 대한 최상의 연산을 선택하는 데 장애가 될 수 있다. 따라서, 일부 실시 예에서 평균 정규화가 수행될 수 있다. 예를 들어 평균 정규화(MR)는 다음과 같이 손실 함수 항을 사용할 수 있다:
여기서 L은 추가적인 정규화 항으로서 손실 함수에 추가될 수 있는 평균 정규화 항이고, N은 모든 후보 연산의 수와 에지의 수의 곱이고, λ는 고정 값(반드시 그럴 필요는 없음) 또는 적응 값(예를 들어, 선형으로 증가하는 값)일 수 있는, 정규화 강도를 조절하기 위한 계수이고, α는 후보 연산의 기여 가중치이다. 손실 함수의 이 항의 우변은 각각의 매개 변수 연결 가중치에 비례하는 N+1 하위 항을 포함한다는 것을 알 수 있다. 각 α는 연산, 에지, 개별 채널 또는 여러 채널, 블록, 레이어 또는 피처 크기 중 하나의 기여 가중치일 수 있다(그러나 반드시 그럴 필요는 없음). 평균 정규화에 기반한 손실 함수 항은 다음 방정식으로 제공되는 보다 일반적인 정규화(평활 최대 단위 정규화라고도 함)의 특수한 경우이다.
여기서 ν 및 μ는 예를 들어, 항이 일반적인 최대 출력 패밀리에 근접하도록 하기 위해 사용될 수 있는 제어 매개변수이다. 이 손실 함수의 항의 우변은 2N+2 하위 항을 포함하며, 그 중 절반은 각각의 매개 변수 연결 가중치에 비례하며, 나머지는 각각의 매개 변수 연결 가중치에 비례하는 항의 오차 함수에 각각 비례한다는 것을 알 수 있다. 매개변수 ν 및 μ의 값은 작업에 기초하여 선택될 수 있다. 예를 들어, ν=0.25이고 μ=∞인 경우, 상기 방정식은 평균 정규화 방정식으로 축소된다. 이러한 손실 함수를 사용하게 되면 성능 붕괴 및 이산 불일치를 피할 수 있으며, 추론 중에 추가 계산 비용이 없는 방법이 결과될 수 있다.
그러한 손실 함수는 매개 변수 연결 가중치의 충분히 음의 값에 대해, 매개 변수 연결 가중치가 점차 음의 값이 됨에 따라 (즉, 음수 매개 변수 연결 가중치의 절대값이 증가함에 따라) 손실 함수의 값이 감소하는 특성을 가질 수 있다. 이와 같이, 손실 함수는 (i) 제1 입력값 세트에 대해, 손실 함수는 제1 값을 갖고 - 상기 제1 입력값 세트는 제1 세트의 매개 변수 연결 가중치 및 제1 세트의 기타 가중치로 구성됨 - , (ii) 제2 입력값 세트에 대해, 손실 함수는 제2 값을 갖고 - 상기 제2 입력값 세트는 제2 세트의 매개 변수 연결 가중치, 및 제1 세트의 기타 가중치로 구성됨 - , 여기서 제1 세트의 매개변수 연결 가중치의 각각은 0보다 작을 수 있고, 제2 세트의 매개변수 연결 가중치의 하나는 제1 세트의 매개변수 연결 가중치의 대응하는 것보다 작을 수 있고, 상기 제2 값은 상기 제1 값보다 작을 수 있는 속성을 갖는다.
또한, 채널의 일부만을 업데이트하거나 채널 주의를 사용하여 검색 속도를 높일 수 있다. 나머지 채널 각각에 대해 채널의 일부만 업데이트되는 실시 예에서, 입력은 변경되지 않고 출력으로(예를 들어, 다음 노드로) 전송될 수 있다. 이는 업데이트되지 않는 각 채널에 대해 스킵 연결을 사용하는 것과 동일한 것일 수 있다. 이러한 방식을 부분 채널(partial channel; PC) 방식이라고 할 수 있다. 채널 샘플링에 의해 도입된 확률적 변화를 줄이기 위해, 도 2에 도시된 바와 같이, 에지 가중치(125)가 도입될 수 있다.
도 3은 일부 실시 예에서 방법의 흐름도이다.
방법은 350에서 신경망의 훈련의 제1 에포크 동안 신경망으로 훈련 데이터 세트를 처리하는 단계; 및 355에서, 신경망의 곱셈 연결 가중치 및 매개 변수 연결 가중치를 손실 함수를 감소시키는 방향으로 조정하는 단계를 포함한다. 학습 결과로 생성된 신경망은 다양한 용도로 사용될 수 있다. 예를 들어, 이것은 분류(예를 들어, 이미지에서 물체 또는 사람을 식별하는 것에 기반하여 이미지를 분류하거나 오디오 녹음에서 구어를 식별하는 데 기반하여 오디오 녹음의 일부를 분류)를 수행하는 데 사용할 수 있다. 신경망을 포함하는 시스템은 분류가 수행된 후 분류 결과를 사용자에게 (예를 들어, 결과를 사용자에게 표시하거나 사용자에게 (예: 단문 메시지 서비스(SMS) 또는 이메일을 통해) 알림을 전송하는 것으로) 보고할 수 있다.
도 4는 일 실시 예에 따른, 네트워크 환경에서의 전자 장치(400)의 블록도이다.
이 장치는 본 명세서에 개시된 방법(예를 들어, 신경망 훈련 방법)을 수행하기에 적합하거나, 수행하도록 구성된 처리 회로를 포함할 수 있다. 도 4를 참조하여, 네트워크 환경(400)에서 전자 장치(401)는 제1 네트워크(498)(예를 들어, 장거리 무선 통신 네트워크)를 통해 전자 장치(402), 또는 제2 네트워크(499)(예를 들어, 근거리 무선 통신 네트워크)를 통해 전자 장치(404) 또는 서버(408)와 통신할 수 있다. 전자 장치(401)는 서버(408)를 통해 전자 장치(404)와 통신할 수 있다. 전자 장치(401)는 서버(408)를 통해 전자 장치(404)와 통신할 수 있다. 전자 장치(401)는 프로세서(420), 메모리(430), 입력 장치(460), 음향 출력 장치(455), 디스플레이 장치(460), 오디오 모듈(470), 센서 모듈(476), 인터페이스(477), 햅틱 모듈(479), 카메라 모듈(480), 전력 관리 모듈(488), 배터리(489), 통신 모듈(490), 가입자 식별 모듈(SIM) 카드(496) 또는 안테나 모듈(494)를 포함한다. 일 실시 예에서, 구성 요소 중 적어도 하나(예를 들어, 디스플레이 장치(460) 또는 카메라 모듈(480))는 전자 장치(401)에서 생략되거나, 하나 이상의 다른 구성 요소는 전자 장치(401)에 추가될 수 있다. 구성 요소 중 일부는 단일 집적 회로(IC)로 구현될 수 있다. 예를 들어, 센서 모듈(476)(예를 들어, 지문 센서, 홍채 센서 또는 조도 센서)은 디스플레이 장치(460)(예를 들어, 디스플레이)에 내장될 수 있다.
프로세서(420)는 소프트웨어(예를 들어, 프로그램(440))를 실행하여 프로세서(420)과 연결된 전자 장치(401)의 적어도 하나의 다른 구성 요소(예를 들어, 하드웨어 또는 소프트웨어 구성 요소)를 제어할 수 있으며, 다양한 데이터 처리 또는 계산을 수행할 수 있다.
데이터 처리 또는 계산의 적어도 일부로서, 프로세서(420)는 휘발성 메모리(432)의 다른 구성 요소(예를 들어, 센서 모듈(476) 또는 통신 모듈(490))로부터 수신된 명령 또는 데이터를 로드할 수 있으며, 휘발성 메모리(432)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(434)에 저장한다. 프로세서(420)는 메인 프로세서(421)(예를 들어, 중앙 처리 장치(CPU) 또는 애플리케이션 프로세서(AP)), 및 메인 프로세서(421)와 독립적으로 또는 함께 동작할 수 있는 보조 프로세서(412)(예를 들어, 그래픽 처리 장치(GPU), 이미지 신호 프로세서(ISP)), 센서 허브 프로세서 또는 통신 프로세서(CP))를 포함할 수 있다. 추가적으로 또는 대안적으로, 보조 프로세서(412)는 메인 프로세서(421)보다 적은 전력을 소비하거나 특정 기능을 실행하도록 구성될 수 있다. 보조 프로세서(423)는 메인 프로세서(421)와 별개로 구현될 수도 있고, 그 일부로 구현될 수도 있다.
보조 프로세서(423)는 메인 프로세서(2321)가 비활성(예를 들어, 슬립) 상태에 있는 동안 메인 프로세서(2321) 대신에, 또는 메인 프로세서(421)가 활성 상태(예를 들어, 애플리케이션 실행중)에 있는 동안 메인 프로세서(421)와 함께, 전자 장치(401)의 구성 요소 중 적어도 하나의 구성 요소(예를 들어, 디스플레이 장치(460), 센서 모듈(476) 또는 통신 모듈(490))와 관련된 기능 또는 상태 중 적어도 일부를 제어할 수 있다. 보조 프로세서(412)(예를 들어, 이미지 신호 프로세서 또는 통신 프로세서)는 보조 프로세서(412)와 기능적으로 관련된 다른 구성 요소(예를 들어, 카메라 모듈(480) 또는 통신 모듈(490))의 일부로 구현될 수 있다.
메모리(430)는 전자 장치(401)의 적어도 하나의 구성 요소(예를 들어, 프로세서(420) 또는 센서 모듈(476))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 다양한 데이터는 예를 들어, 소프트웨어(예를 들어, 프로그램(440)) 및 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(430)는 휘발성 메모리(432) 또는 비휘발성 메모리(434)를 포함할 수 있다. 비휘발성 메모리(434)는 내부 메모리(436)와 외부 메모리(438)를 포함할 수 있다.
프로그램(440)은 소프트웨어로서 메모리(430)에 저장될 수 있으며, 예를 들어, 운영 체제(OS)(442), 미들웨어(444) 또는 애플리케이션(446)을 포함할 수 있다.
입력 장치(450)는 전자 장치(401)의 외부(예를 들어, 사용자)로부터 전자 장치(401)의 다른 구성 요소(예를 들어, 프로세서(420))에 의해 사용될 명령 또는 데이터를 수신할 수 있다. 입력 장치(450)는 예를 들어, 마이크, 마우스 또는 키보드를 포함할 수 있다.
음향 출력 장치(455)는 전자 장치(401)의 외부로 음향 신호를 출력할 수 있다. 음향 출력 장치(455)는 예를 들어, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음과 같은 일반적인 용도로 사용될 수 있으며, 수신기는 수신 전화를 수신하는 데 사용될 수 있다. 수신기는 스피커와 분리되거나 스피커의 일부로 구현될 수 있다.
디스플레이 장치(460)는 전자 장치(401)의 외부(예를 들어, 사용자)에게 시각적으로 정보를 제공할 수 있다. 디스플레이 장치(460)는, 예를 들어, 디스플레이, 홀로그램 장치 또는 프로젝터 및 제어 회로를 포함하여 디스플레이, 홀로그램 장치 및 프로젝터 중 대응하는 것을 제어할 수 있다. 디스플레이 장치(460)는 터치를 탐지하도록 구성된 터치 회로, 또는 터치에 의해 발생하는 힘의 강도를 측정하도록 구성된 센서 회로(예를 들어, 압력 센서)를 포함할 수 있다.
오디오 모듈(470)은 소리를 전기적 신호로 변환하거나 그 반대로 변환할 수 있다. 오디오 모듈(470)은 입력 장치(450)을 통해 사운드를 획득하거나, 사운드를 음향 출력 장치(455) 또는 외부 전자 장치(402)의 헤드폰을 통해 전자 장치(401)와 직접(예를 들어, 유선으로) 또는 무선으로 출력한다.
센서 모듈(476)은 전자 장치(401)의 동작 상태(예를 들어, 전원 또는 온도) 또는 전자 장치(401) 외부의 환경 상태(예를 들어, 사용자의 상태)를 탐지하고, 다음에 탐지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성한다. 센서 모듈(476)은, 예를 들어 제스처 센서, 자이로 센서, 대기압 센서, 자기 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선(IR) 센서, 생체 인식 센서, 온도 센서, 습도 센서 또는 조도 센서일 수 있다.
인터페이스(477)는 전자 장치(401)가 외부 전자 장치(402)와 직접(예를 들어, 유선으로) 또는 무선으로 연결되는 데 사용될 하나 이상의 지정된 프로토콜을 지원할 수 있다. 인터페이스(477)는 예를 들어, 고 해상도 멀티미디어 인터페이스(HDMI), 범용 직렬 버스(USB) 인터페이스, 시큐어 디지털(SD) 카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(478)는 전자 장치(401)가 외부 전자 장치(402)와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 연결 단자(478)는 예를 들어, HDMI 커넥터, USB 커넥터, SD 카드 커넥터 또는 오디오 커넥터(예를 들어, 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(479)은 전기적 신호를 기계적 자극(예를 들어, 진동 또는 움직임) 또는 촉감 또는 운동 감각을 통해 사용자가 인식할 수 있는 전기적 자극으로 변환할 수 있다. 햅틱 모듈(479)은 예를 들어, 모터, 압전 소자 또는 전기 자극기를 포함할 수 있다.
카메라 모듈(480)은 정지 영상 또는 동영상을 촬영할 수 있다. 카메라 모듈(480)은 하나 이상의 렌즈, 이미지 센서, ISP 또는 플래시를 포함할 수 있다.
전력 관리 모듈(488)은 전자 장치(401)에 공급되는 전력을 관리할 수 있다. 전력 관리 모듈(488)은 예를 들어, 전력 관리 집적 회로(PMIC)의 적어도 일부로 구현될 수 있다.
배터리(489)는 전자 장치(401)의 적어도 하나의 구성 요소에 전원을 공급할 수 있다. 배터리(489)는 예를 들어, 충전이 불가능한 1 차 전지, 충전 가능한 2 차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(490)은 전자 장치(401)과 외부 전자 장치(예를 들어, 전자 장치(402), 전자 장치(404) 또는 서버(408)) 간의 직접적인(예를 들어, 유선) 통신 채널 또는 무선 통신 채널 설정을 지원하고, 설정된 통신 채널을 통해 통신을 수행하는 것을 지원할 수 있다. 통신 모듈(490)은 프로세서(420)(예를 들어, AP)와 독립적으로 동작할 수 있는 하나 이상의 CP를 포함할 수 있으며, 직접(예를 들어, 유선) 통신 또는 무선 통신을 지원한다. 통신 모듈(490)은 무선 통신 모듈(492)(예를 들어, 셀룰러 통신 모듈, 근거리 무선 통신 모듈 또는 글로벌 위성 항법 시스템(GNSS) 통신 모듈) 또는 유선 통신 모듈(494)(예를 들어, 근거리 통신망(LAN) 통신 모듈 또는 전력선 통신(PLC) 모듈)를 포함할 수 있다. 이러한 통신 모듈 중 해당하는 모듈은 제1 네트워크(498)(예를 들어, Bluetooth®, 무선 피델리티(Wi-Fi) 다이렉트, 또는 적외선 데이터 협회(IrDA) 표준과 같은 단거리 통신 네트워크) 또는 제2 네트워크(499)(예를 들어, 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예를 들어, LAN 또는 광역 네트워크(WAN))와 같은 장거리 통신 네트워크)를 통해 외부 전자 장치와 통신할 수 있다. Bluetooth®는 워싱턴 커클랜드 소재의 Bluetooth SIG, Inc.의 등록 상표이다. 이러한 다양한 유형의 통신 모듈은 단일 구성 요소(예를 들어, 단일 IC)로 구현될 수 있으며, 서로 분리된 여러 구성 요소(예를 들어, 다수의 IC)로 구현될 수 있다. 무선 통신 모듈(492)는 가입자 식별 모듈(496)에 저장된 가입자 정보(예를 들어, 국제 모바일 가입자 식별자(IMSI))를 사용하여, 제1 네트워크(498) 또는 제2 네트워크(499)와 같은 통신 네트워크에서 전자 장치(401)를 식별하고 인증할 수 있다.
안테나 모듈(497)은 전자 장치(401)의 외부(예를 들어, 외부 전자 장치)와 신호 또는 전원을 송수신할 수 있다. 안테나 모듈(497)은 하나 이상의 안테나를 포함할 수 있으며, 이중에서, 제1 네트워크(498) 또는 제2 네트워크(499)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나를 통신 모듈(490)(예를 들어, 무선 통신 모듈(492))에 의해 선택할 수 있다. 그러면 선택된 적어도 하나의 안테나를 통해 통신 모듈(490)과 외부 전자 장치간에 신호 또는 전력이 송수신될 수 있다.
명령 또는 데이터는 제2 네트워크(499)와 결합된 서버(408)를 통해 전자 장치(401)와 외부 전자 장치(404) 사이에서 송수신될 수 있다. 각각의 전자 장치(402, 404)는 전자 장치(401)와 동일한 유형 또는 이와 다른 유형의 장치일 수 있다. 전자 장치(401)에서 실행될 동작의 전부 또는 일부는 외부 전자 장치(402, 404, 408) 중 하나 이상에서 실행될 수 있다. 예를 들어, 전자 장치(401)가 자동으로 또는 사용자 또는 다른 장치의 요청에 따라, 기능 또는 서비스를 수행해야 하는 경우, 전자 장치(401)는 기능 또는 서비스를 실행하는 대신에, 또는 그에 추가하여, 하나 이상의 외부 전자 장치에 기능 또는 서비스의 적어도 일부를 수행하도록 요청할 수 있다. 요청을 수신한 하나 이상의 외부 전자 장치는 요청된 기능 또는 서비스의 적어도 일부, 또는 요청과 관련된 추가 기능 또는 추가 서비스를 수행할 수 있으며, 수행의 결과를 전자 장치(401)로 전달한다. 전자 장치(401)는 결과를, 요청에 대한 응답의 적어도 일부로서, 결과의 추가 처리를 포함하거나 포함하지 않고 제공할 수 있다. 이를 위해, 예를 들어 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
본 명세서에 기술된 주제 및 동작의 실시 예는 본 명세서에서 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 설명하는 주제의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가적으로, 프로그램 명령어는 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있으며, 이는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하도록 생성된다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들의 조합일 수 있거나 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 별도의 물리적 구성 요소 또는 매체(예를 들어, 여러 CD, 디스크 또는 기타 저장 장치)이거나 이에 포함될 수 있다. 또한, 본 명세서에서 설명하는 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.
이 명세서는 많은 특정 구현 세부사항을 포함할 수 있지만, 구현 세부사항은 청구된 주제의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 실시 예에 특정한 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예의 맥락에서 본 명세서에 설명된 특정한 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 역으로, 단일 실시 예의 맥락에서 설명된 다양한 특징이 또한 다수의 실시 예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더구나, 특징이 특정 조합으로 작용하는 것으로 설명되고 초기에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 이 조합에서 배제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 도면에 특정 시퀀스로 도시되어 있지만, 이것은 이러한 동작이 바람직한 결과를 달성하기 위해서 도시된 특정 시퀀스로 또는 순차적인 시퀀스로 수행되거나, 예시된 모든 동작이이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시 예에서 다양한 시스템 구성요소의 분리는 모든 실시 예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품으로 패키지화될 수 있음을 이해해야 한다.
따라서, 본 주제의 특정 실시 예가 본 명세서에 기술되었다. 다른 실시 예는 다음 청구 범위 내에 있다. 경우에 따라, 청구범위에 명시된 조치가 다른 시퀀스로 수행되어도 원하는 결과를 얻을 수 있다. 추가적으로, 첨부된 도면에 도시된 프로세스는 원하는 결과를 얻기 위해서, 표시된 특정 시퀀스 또는 순차적인 시퀀스를 반드시 요구하지 않는다. 특정 구현에서, 멀티태스킹 및 병렬 처리가 바람직할 수 있다.
당업자가 인식하는 바와 같이, 본 명세서에서 설명된 혁신적인 개념은 광범위한 애플리케이션에 걸쳐 수정 및 변경될 수 있다. 따라서, 청구된 주제의 범위는 상술된 특정한 예시적인 교시에 제한되어서는 안되고, 다음 청구범위에 의해 정의되어야 한다.

Claims (10)

  1. 신경 아키텍처 검색을 위한 방법으로서,
    신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하는 단계;
    평활 최대 단위 정규화 값(smooth maximum unit regularization value)을 사용하여 훈련 손실을 계산하는 단계; 및
    상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 훈련 손실을 계산하는 단계는, 손실 함수를 평가하는 단계를 포함하고,
    상기 손실 함수는 상기 매개 변수 연결 가중치를 포함하는 복수의 입력에 기초하고,
    상기 손실 함수는,
    제1 입력 값 세트에 대해, 상기 손실 함수는 제1 값을 갖되, 상기 제1 입력 값 세트는, 제1 세트의 매개 변수 연결 가중치와 제1 세트의 기타 가중치로 이루어지고,
    제2 입력 값 세트에 대해, 상기 손실 함수는 제2 값을 갖되, 상기 제2 입력 값 세트는, 제2 세트의 매개 변수 연결 가중치와, 제2 세트의 기타 가중치로 이루어지고,
    상기 제1 세트의 매개 변수 연결 가중치의 각각은 0보다 작고,
    상기 제2 세트의 매개 변수 연결 가중치의 하나는 상기 제1 세트의 매개 변수 연결 가중치의 대응하는 것보다 작고,
    상기 제2 값은 상기 제1 값보다 작은,
    속성을 갖는, 방법.
  3. 제2항에 있어서,
    상기 손실 함수는 제1 항(first term)과 제2 항(second term)을 포함하고,
    상기 제1 항은 상기 매개 변수 연결 가중치의 교차 엔트로피 함수인, 방법.
  4. 제2항에 있어서,
    상기 손실 함수는 제1 항 및 제2 항을 포함하고,
    상기 제2 항은 복수의 하위 항을 포함하고,
    상기 하위 항의 제1 하위 항은 상기 매개 변수 연결 가중치의 제1 매개 변수 연결 가중치에 비례하고,
    상기 하위 항의 제2 하위 항은 상기 제1 매개 변수 연결 가중치에 비례하는 항의 오차 함수에 비례하는, 방법.
  5. 제4항에 있어서,
    상기 신경망의 훈련의 복수의 에포크 동안 상기 신경망으로 상기 훈련 데이터 세트를 처리하는 단계로, 상기 복수의 에포크는 상기 제1 에포크를 포함하는 단계; 및
    각 에포크에 대해, 상기 신경망의 상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 상기 손실 함수를 줄이는 방향으로 조정하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는, 상기 손실 함수가 3개의 연속적인 에포크 각각에 걸쳐 감소하도록 하는, 방법.
  7. 제6항에 있어서,
    상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는, 10개의 연속적인 에포크마다 상기 손실 함수가 감소되도록 하는, 방법.
  8. 제5항에 있어서,
    상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는,
    상기 곱셈 연결 가중치 중 가장 큰 곱셈 연결 가중치가, 상기 곱셈 연결 가중치 중 두번 째로 큰 곱셈 연결 가중치의 값보다 상기 곱셈 연결 가중치 중 상기 가장 큰 곱셈 연결 가중치와 가장 작은 곱셈 연결 가중치 간의 차이의 적어도 2% 만큼 초과하는 값을 갖도록 하는, 방법.
  9. 제8항에 있어서,
    상기 곱셈 연결 가중치와 상기 매개 변수 연결 가중치를 조정하는 단계는,
    상기 가장 큰 곱셈 연결 가중치가, 상기 두번 째로 큰 곱셈 연결 가중치의 값보다 상기 가장 큰 곱셈 연결 가중치와 상기 가장 작은 곱셈 연결 가중치 간의 상기 차이의 적어도 5%만큼 초과하는 값을 갖도록 하는, 방법.
  10. 신경 아키텍처 검색을 위한 시스템으로,
    하나 이상의 처리 회로; 및
    상기 하나 이상의 처리 회로에 의해 실행될 때,
    신경망의 훈련의 제1 에포크 동안 훈련 데이터 세트를 상기 신경망으로 처리하고,
    평활 최대 단위 정규화 값을 사용하여 훈련 손실을 계산하고,
    상기 훈련 손실을 감소시키는 방향으로 상기 신경망의 복수의 곱셈 연결 가중치 및 복수의 매개 변수 연결 가중치를 조정하는,
    성능을 가능하게 하는 명령어를 저장하는 메모리를 포함하는, 시스템.
KR1020230073439A 2022-08-23 2023-06-08 신경 아키텍처 검색을 위한 시스템 및 방법 KR20240027526A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202263400262P 2022-08-23 2022-08-23
US63/400,262 2022-08-23
US202263400691P 2022-08-24 2022-08-24
US63/400,691 2022-08-24
US18/148,418 US20240070455A1 (en) 2022-08-23 2022-12-29 Systems and methods for neural architecture search
US18/148,418 2022-12-29

Publications (1)

Publication Number Publication Date
KR20240027526A true KR20240027526A (ko) 2024-03-04

Family

ID=89996343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230073439A KR20240027526A (ko) 2022-08-23 2023-06-08 신경 아키텍처 검색을 위한 시스템 및 방법

Country Status (3)

Country Link
US (1) US20240070455A1 (ko)
KR (1) KR20240027526A (ko)
CN (1) CN117634578A (ko)

Also Published As

Publication number Publication date
US20240070455A1 (en) 2024-02-29
CN117634578A (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
EP4020329A1 (en) Data processing method and apparatus, computer equipment and storage medium
US20200364552A1 (en) Quantization method of improving the model inference accuracy
US20210110269A1 (en) Neural network dense layer sparsification and matrix compression
US20190354865A1 (en) Variance propagation for quantization
US20220108150A1 (en) Method and apparatus for processing data, and related products
TW202141363A (zh) 用於機器學習模型的執行的自我調整量化
CN114402336A (zh) 神经处理单元
CN114511042A (zh) 一种模型的训练方法、装置、存储介质及电子装置
CN115937569A (zh) 用于利用域不变正则化的图像分类的系统、方法和设备
US20220121908A1 (en) Method and apparatus for processing data, and related product
KR20240027526A (ko) 신경 아키텍처 검색을 위한 시스템 및 방법
US11556768B2 (en) Optimization of sparsified neural network layers for semi-digital crossbar architectures
CN111198714B (zh) 重训练方法及相关产品
CN111527502B (zh) 用于部分数字再训练的系统和方法
US20230056869A1 (en) Method of generating deep learning model and computing device performing the same
US20240028895A1 (en) Switchable one-sided sparsity acceleration
US11899518B2 (en) Analog MAC aware DNN improvement
CN111656360B (zh) 稀疏性利用的系统和方法
US20230206052A1 (en) Systolic array structure and apparatus using differential value
US20240020510A1 (en) System and method for execution of inference models across multiple data processing systems
US20220222041A1 (en) Method and apparatus for processing data, and related product
US20240119269A1 (en) Dynamic sparsity-based acceleration of neural networks
KR20240053525A (ko) 하드웨어 친화적 다중 커널 콘볼루션 네트워크
KR20240032623A (ko) 사용자 장치 구성을 사용자 장치의 물리적 요인에 기초하여 조정하기 위한 방법 및 시스템
KR20240037146A (ko) 다중 비트 누산기, 다중 비트 누산기를 포함하는 인 메모리 컴퓨팅(in memory computing) 프로세서 및 다중 비트 누산기의 동작 방법