KR20200088475A - 신경망의 기능적 부분망의 동시 훈련 - Google Patents

신경망의 기능적 부분망의 동시 훈련 Download PDF

Info

Publication number
KR20200088475A
KR20200088475A KR1020207018925A KR20207018925A KR20200088475A KR 20200088475 A KR20200088475 A KR 20200088475A KR 1020207018925 A KR1020207018925 A KR 1020207018925A KR 20207018925 A KR20207018925 A KR 20207018925A KR 20200088475 A KR20200088475 A KR 20200088475A
Authority
KR
South Korea
Prior art keywords
values
subnetworks
parameter values
neural network
artificial neural
Prior art date
Application number
KR1020207018925A
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 KR20200088475A publication Critical patent/KR20200088475A/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
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

알려져 있는 기능들을 구현하기 위한 제1 부분망들[311-315] 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들[310]을 포함하는 인공 신경망[200]이 훈련된다. 상기 제1 부분망들은 상기 제1 부분망들을 정의하는 제1 매개 변수 값들을 결정하기 위해 대응하는 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 훈련된다. 상기 제1 부분망들은 프로세싱 시스템에서의 복수의 프로세싱 요소 상에서 실행되고 있다. 훈련된 상기 제1 부분망들을 포함하는 상기 인공 신경망에 망 훈련 데이터 집합으로부터의 입력 값들[320, 325]이 제공된다. 상기 인공 신경망에 의해 생성되는 출력 값들[335]을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들이 생성된다. 상기 제2 부분망들은 상기 오차 값들을 역전달하여 상기 제1 매개 변수 값들을 수정하지 않고 상기 제2 부분망들을 정의하는 제2 매개 변수 값들을 수정함으로써 훈련된다.

Description

신경망의 기능적 부분망의 동시 훈련
심층 신경망들(DNN들, Deep neural networks)은 이미지 인식, 자연어 처리 및 게임 플레이와 같은 작업들을 수행하는 방식을 학습할 수 있는 인공 신경망들(ANN들, artificial neural networks)의 부류이다. DNN 아키텍처는 입력 볼륨(이를테면 디지털 이미지)을 출력 볼륨(디지털 이미지 디지털 이미지에서 검출되는 라벨링된 특징들)으로 변환하는 기능들을 구현하는 계층들의 스택을 포함한다. 예를 들어, DNN의 계층들은 컨볼루션 신경망들(CNN들, convolutional neural networks)을 나타내는 컨볼루션 계층들(convolutional layers), 풀링 계층들(pooling layers) 및 완전 연결 계층들(fully connected layers)로 나눠질 수 있다. 컨볼루션, 풀링 및 완전 연결 계층들의 다수의 집합이 인터리빙되어 완전한 DNN이 형성될 수 있다. 예를 들어, DNN은 입력을 수신하고 출력을 풀링 계층들의 집합으로 제공하는 컨볼루션 계층들의 집합을 포함할 수 있으며, 이는 컨볼루션 계층들의 다른 집합으로 출력을 제공한다. 컨볼루션 계층들의 제2 집합은 풀링 계층들의 다른 집합으로 출력을 제공하며, 이는 출력 볼륨을 생성하는 완전 연결 계층들의 하나 이상의 집합으로 출력을 제공한다. DNN의 계층들에 의해 구현되는 기능들은 명시적(즉, 알려져 있거나 미리 결정되는)이거나 내재적(즉, 알려지지 않은)이다. CNN은 다수의 내재된 계층을 포함하는 작업들에 관한 심층 학습을 수행하는 심층 신경망(DNN)이다. 예를 들어, 컴퓨터 비전을 구현하는데 사용되는 DNN은 비전 흐름의 계층 구조에 명시적인 기능들(이를테면 방향성 지도들) 및 다수의 내재적인 기능을 포함한다.
본 개시는 첨부 도면들을 참조하여 더 잘 이해될 수 있고, 이의 많은 특징 및 이점이 해당 기술분야의 통상의 기술자들에게 분명해진다. 상이한 도면들에서의 동일한 참조 부호들의 사용은 유사하거나 동일한 항목들을 나타낸다.
도 1은 일부 실시 예에 따른 프로세싱 시스템을 블록도를 도시한다.
도 2는 일부 실시 예에 따른 컨볼루션 계층들을 포함하고 이미지 인식과 같은 작업을 수행하기 위해 훈련되는 심층 신경망(DNN)을 도시하는 블록도이다.
도 3은 일부 실시 예에 따른 알려져 있는 기능들을 구현하는 부분망들을 또한 포함하는 인공 신경망의 인스턴스 내 알려지지 않은 기능들을 구현하는 부분망들의 훈련을 도시하는 블록도이다.
도 4는 일부 실시 예에 따른 품질 보증 단계를 수행하기 위해 실행되는 도 3에 도시된 CNN의 인스턴스를 도시하는 블록도이다.
도 5는 일부 실시 예에 따른 알려져 있는 기능들을 구현하는 부분망들을 또한 포함하는 인공 신경망의 컷아웃 부분 내 알려지지 않은 기능들을 구현하는 부분망들의 훈련을 도시하는 블록도이다.
도 6은 일부 실시 예에 따른 제1 부분망들을 포함하는 인공 신경망(이를테면 CNN 또는 DNN)을 훈련시키기 위한 방법의 흐름도이다.
도 7은 일부 실시 예에 따른 알려져 있는 기능들 및 알려지지 않은 기능들을 구현하는 부분망들을 포함하는 인공 신경망(이를테면 CNN 또는 DNN) 내 알려지지 않은 기능들을 구현하는 부분망들을 훈련시키기 위한 방법의 흐름도이다.
도 8은 일부 실시 예에 따른 이전에 훈련된 부분망들에 기초하여 신경망을 생성 및 훈련시키기 위한 방법의 흐름도이다.
심층 신경망(DNN, deep neural network)의 기능들은 상이한 계층들마다 상이한 매개 변수들의 상이한 집합들로 나타내어진다. 컨볼루션 계층의 매개 변수들은 필터의 2차원(2-D) 활성화 지도를 생성하기 위해 입력 볼륨의 폭과 높이에 걸쳐 들어오는 데이터를 모아 학습 가능한 필터들(또는 커널들)의 집합을 정의한다. 풀링 계층의 매개 변수들은 입력 볼륨이 하위 영역들로 분할되는 방식을 정의한다. 예를 들어, 풀링 계층은 입력 이미지를 겹치지 않는 사각형들의 집합으로 분할하고 각 하위 영역마다 최대 값을 생성하도록 구성될 수 있다. 완전 연결 계층의 매개 변수들은 이전 계층, 이를테면 이전 풀링 계층에서의 활성화에 대한 연결을 기반으로 DNN에 의해 수행되는 상위 수준 추론을 정의한다. DNN의 매개 변수들은 입력 볼륨들의 집합 및 대응하는 (알려져 있는 또는 라벨링된) 출력 값들의 집합을 포함하는 훈련 데이터 집합을 사용하여 DNN을 훈련함으로써 결정된다. 예를 들어, 얼굴 인식 DNN은 얼굴 인식 DNN에 의해 다른 이미지들에서 식별될 개인들을 포함하는 것으로 알려져 있는 이미지들을 사용하여 훈련될 수 있다. 훈련 이미지들은 라벨링된 데이터로 지칭되며, 이는 하나 이상의 라벨이 태깅된 샘플들의 그룹으로 정의된다. 훈련 동안, 훈련 데이터 집합으로부터의 입력 데이터는 순차적으로 DNN에 제공되고 DNN에 의해 생성되는 출력 값들과 알려져 있는 출력 값들 간 오차들이 누적된다. 누적된 오차들은 DNN의 매개 변수들을 수정하기 위해 역전달된다. 프로세스는 수렴 기준이 충족될 때까지 반복된다. 그러나, 대규모 DNN의 훈련은 네트워크 크기에 따라 수 시간, 수 일 또는 심지어 수 개월을 필요로 할 수 있는 계산 집약적인 작업이다.
인공 신경망의 훈련은 통상적으로 순차적인 프로세스이다. 역전달된 오차들은 인공 신경망을 정의하는 매개 변수들을 수정하는데 사용된다. 훈련된 매개 변수들의 예들은 망의 노드들 간 연결에 대한 연결 가중치들을 포함한다. 인공 신경망에 의해 구현되는 기능들(예를 들어, 패턴 인식)의 정확도는 훈련 집합으로부터 각각의 연속적인 샘플에 의해 생성되어 역전달된 오차들에 기초하여 매개 변수들이 수정됨에 따라 순차적인 프로세스의 각 반복마다 증가한다. 그에 따라, 훈련 데이터 집합을 세분화하고 망의 다수의 인스턴스를 병렬로 훈련함으로써 훈련 프로세스를 병렬화하는 것은 망의 각 인스턴스가 단지 훈련 집합의 일 부분에만 기초하여 훈련될 것이기 때문에 어렵다. 결과적으로, 훈련 데이터 집합의 부분 집합들을 사용하여 병렬로 훈련되었던 망의 인스턴스들을 단일 훈련된 망으로 병합하는 것은 망이 전체 훈련 데이터 집합을 사용하여 순차적으로 훈련되는 망의 정확도로 그 기능을 수행하게 하지 않을 수 있다.
기존 순차적인 훈련 프로세스에서의 이러한 결점들은 알려져 있는 기능들(그리고 그에 따라 대응하는 알려져 있는 훈련 데이터 집합들을 사용하여 훈련될 수 있는)을 구현하는 제1 부분 망들 및 대응하는 훈련 데이터 집합들을 갖지 않는 알려져 있지 않은 기능들을 구현하는 제2 부분망들을 포함하는 인공 신경망(이를테면 CNN 또는 DNN)의 훈련을 병렬화함으로써 해결된다. 제1 부분망들은 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 훈련된다. 그 다음 제1 및 제2 부분망들을 포함하는 인공 신경망은 망 훈련 데이터 집합으로부터의 입력 값들을 인공 신경망으로 제공하고 인공 신경망의 출력 값들과 망 훈련 데이터 집합으로부터의 라벨링된 출력 값들 간 차이를 나타내는 오차들을 누적함으로써 망 훈련 데이터 집합에 관해 훈련된다. 누적된 오차들은 제2 부분망들의 매개 변수들을 수정하기 위해 역전달된다. 제1 부분망들의 이전에 훈련된 매개 변수들은 인공 신경망의 훈련 동안 수정되지 않는다. 이러한 프로세스는 제2 부분망들의 매개 변수들에 대한 수렴 기준들이 충족될 때까지 반복된다. 제1 및 제2 부분망들은 인공 신경망보다 상당히 더 작으므로, 제1 및 제2 부분망들을 별개로 훈련시키는 것은 인공 신경망을 훈련시키는 것보다 상당히 더 빠르다.
훈련된 제1 및 제2 부분망들에 대해 결정되는 매개 변수 값들을 고려하여 인공 신경망의 매개 변수들을 훈련하는 것에 대한 품질 보증 단계가 수행된다. 품질 보증 단계 동안, 훈련 데이터 집합의 입력 값들이 제1 및 제2 부분망들의 수정된 매개 변수 값들에 의해 정의되는 인공 신경망의 인스턴스에 제공된다. 인공 신경망에 의해 생성된 오차 값들은 인공 신경망의 제1 및 제2 부분망들을 정의하는 매개 변수들을 수정하기 위해 역전달되고 프로세스는 수렴 기준이 충족될 때까지 반복된다. 별개로 훈련된 제1 및 제2 부분망들에 대해 결정되는 매개 변수 값들을 사용하여 품질 보증 단계를 시작하면 훈련된 제1 및 제2 부분망들의 매개 변수 값들이 매개 변수들의 다른 가능한 초기 값들, 이를테면 임의의 또는 랜덤으로 선택된 매개 변수 값들보다 완전한 신경망의 수렴된 값들에 상당히 더 가까울 것으로 예상되기 때문에 품질 보증 단계의 수렴 속성들을 가속화할 것으로 예상된다(역전달을 사용하여 전체 인공 신경망을 훈련시키는 기술에 비해).
도 1은 일부 실시 예에 따른 프로세싱 시스템(100)을 블록도를 도시한다. 프로세싱 시스템(100)은 동적 랜덤 액세스 메모리(DRAM)와 같은 비일시적 컴퓨터 판독 가능한 매체를 사용하여 구현되는 메모리(105) 또는 다른 저장 구성요소를 포함하거나 이에 액세스한다. 그러나, 메모리(105)는 또한 정적 랜덤 액세스 메모리(SRAM), 비휘발성 RAM 등을 포함하는 다른 유형들의 메모리를 사용하여 구현될 수도 있다. 프로세싱 시스템(100)은 또한 메모리(105)와 같은 프로세싱 시스템(100)에 구현되는 개체들 간의 통신을 지원하기 위해 버스(110)를 포함한다. 프로세싱 시스템(100)의 일부 실시 예는 명확성을 위해 도 1에 도시하지 않은 다른 버스들, 브리지들, 스위치들, 라우터들 등을 포함한다.
프로세싱 시스템(100)은 디스플레이(120) 상에 나타낼 이미지들을 렌더링하도록 구성된 그래픽 프로세싱 유닛(GPU, graphics processing unit)(115)을 포함한다. 예를 들어, GPU(115)는 객체들을 렌더링하여 디스플레이(120)에 제공되는 픽셀들의 값들을 생성할 수 있으며, 이는 픽셀 값들을 사용하여 렌더링된 객체들을 나타내는 이미지를 디스플레이한다. GPU(115)의 일부 실시 예는 또한 범용 컴퓨팅을 위해 사용될 수도 있다. 도시된 실시 예에서, GPU(115)는 동시에 또는 병렬로 명령들을 실행하도록 구성된 다수의 프로세싱 요소(116, 117, 118)(여기서 "프로세싱 요소들(116-118)"로 총칭됨)를 구현한다. 도시된 실시 예에서, GPU(115)는 버스(110)를 통해 메모리(105)와 통신한다. 그러나, GPU(115)의 일부 실시 예는 직접 연결을 통해 또는 다른 버스들, 브리지들, 스위치들, 라우터들 등을 통해 메모리(105)와 통신한다. GPU(115)는 메모리(105)에 저장된 명령들을 실행할 수 있고 GPU(115)는 실행된 명령들의 결과들과 같은 정보를 메모리(105)에 저장할 수 있다. 예를 들어, 메모리(105)는 GPU(115)에 의해 실행될 프로그램 코드로부터의 명령들의 사본(125)을 저장할 수 있다.
프로세싱 시스템(100)은 또한 여기서 "프로세싱 요소들(131-133)"로 총칭되는 다수의 프로세싱 요소(131, 132, 133)를 구현하는 중앙 프로세싱 유닛(CPU)(130)을 포함한다. 프로세싱 요소들(131-133)은 명령들을 동시에 또는 병렬로 실행하도록 구성된다. CPU(130)는 버스(110)에 연결되고 그에 따라 버스(110)를 통해 GPU(115) 및 메모리(105)와 통신할 수 있다. CPU(130)는 메모리(105)에 저장된 프로그램 코드(135)와 같은 명령들을 실행할 수 있고 CPU(130)는 실행된 명령들의 결과들과 같은 정보를 메모리(105)에 저장할 수 있다. CPU(130)는 또한 GPU(115)에 대한 드로우 콜들을 발행함으로써 그래픽 프로세싱을 개시할 수도 있다.
입력/출력(I/O) 엔진(140)은 디스플레이(120)와 연관된 입력 또는 출력 동작들, 뿐만 아니라 키보드들, 마우스들, 프린터들, 외부 디스크들 등과 같은 프로세싱 시스템(100)의 다른 요소들도 핸들링한다. I/O 엔진(140)은 I/O 엔진(140)이 메모리(105), GPU(115) 또는 CPU(130)와 통신할 수 있도록 버스(110)에 연결된다. 도시된 실시 예에서, I/O 엔진(140)은 CD(compact disk), DVD(digital video disc) 등과 같은 비일시적 컴퓨터 판독 가능한 매체를 사용하여 구현되는 외부 저장 구성요소(145) 상에 저장된 정보를 판독하도록 구성된다. I/O 엔진(140)은 또한 GPU(115) 또는 CPU(130)에 의한 처리 결과들과 같은 정보를 외부 저장 구성요소(145)에 기록할 수도 있다.
CNN 또는 DNN과 같은 인공 신경망들은 대응하는 매개 변수들의 집합을 사용하여 구성된 프로그램 코드로서 나타내어진다. 그에 따라 인공 신경망은 GPU(115) 또는 CPU(130) 또는 FPGA(Field Programmable Gate Array), ASIC(application-specific integrated circuit), PIM(process in memory) 등을 포함한 다른 프로세싱 유닛들 상에서 실행될 수 있다. 인공 신경망이 대응하는 알려져 있는 데이터 집합을 사용하여 훈련될 수 있는 알려져 있는 기능을 구현하는 경우, 알려져 있는 훈련 데이터 집합의 입력 값들을 GPU(115) 또는 CPU(130) 상에서 실행되는 인공 신경망에 제공하고 그 다음 인공 신경망의 출력 값들은 알려져 있는 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 훈련된다(즉, 인공 신경망을 정의하는 매개 변수들의 값들이 확립된다). 비교에 기초하여 오차 값들이 결정되고 인공 신경망을 정의하는 매개 변수들의 값들을 수정하기 위해 역전달된다. 이러한 프로세스는 매개 변수들의 값들이 수렴 기준을 충족할 때까지 반복된다.
그러나, 여기서 논의된 바와 같이, 인공 신경망은 보통 알려져 있는(또는 명시적인) 기능들을 수행하는 부분망들 및 알려지지 않은(또는 내재적인) 기능들을 수행하는 부분망들로 구성된다. 망 훈련 데이터 집합 상에서 알려져 있거나 알려지지 않은 기능들을 구현하는 부분망들을 포함하는 인공 신경망을 순차적으로 훈련시키는 것은 시간 및 자원 집약적인 프로세스이다. 인공망을 훈련시킴으로써 소비되는 시간 및 자원을 줄이기 위해, 인공 신경망은 알려져 있는 기능들(대응하는 알려져 있는 훈련 데이터 집합들을 가짐)을 수행하는 제1 부분망들 및 알려지지 않은 기능들을 수행하고 그에 따라 알려져 있는 훈련 데이터 집합들을 갖지 않는 제2 부분망들로 세분된다. 제1 부분망들은 대응하는 알려져 있는 훈련 데이터 집합들을 기반으로 별개로 그리고 병렬로 훈련된다. 예를 들어, 제1 부분망들의 별개의 인스턴스들이 GPU(115)의 프로세싱 요소들(116-118) 또는 CPU(130)의 프로세싱 요소들(131-133) 또는 모든 프로세싱 요소(116-118, 131-133)로부터 도출되는 조합 상에서 동시에 실행된다 . 일부 실시 예에서, 단일의 제1 부분망의 다수의 인스턴스가 프로세싱 요소들에 관해 동시에 훈련될 수 있고 그 다음 가장 훈련된 인스턴스가 인공 신경망에 통합되도록 선택된다. 제1 부분망들의 개별 인스턴스들은 또한 알려져 있는 기능의 상이한 변형들에 대해서도 훈련될 수 있다.
제1 부분망들이 훈련되었으면, 인공 신경망은 망 훈련 데이터 집합에 관해 훈련된다. 제1 부분망의 매개 변수들은 매개 변수들이 알려져 있는 데이터 집합들에 기초하여 제1 부분망들을 훈련함으로써 정확하게 정의될 것으로 예상되기 때문에 훈련의 이러한 스테이지에서 일정하게 유지된다. 망 훈련 데이터 집합들로부터의 입력 값들은 프로세싱 요소들(116-118, 131-133) 중 하나, 일부 또는 전부 상에서 실행되고 있는 인공 신경망에 제공된다. 인공 신경망의 출력 값들을 망 훈련 데이터 집합으로부터의 라벨링된 출력 값들과 비교함으로써 오차 값들이 생성된다. 오차 값들은 역전달되어 제2 부분망들의 매개 변수들을 수정하는데 사용된다. 이러한 프로세스는 제2 부분망들을 정의하는 매개 변수들의 값들이 수렴 기준들을 충족할 때까지 반복된다. 예를 들어, 제2 부분망들을 정의하는 매개 변수들의 값들은 두 반복 간의 매개 변수들의 값들의 변화의 측정이 임계치 아래로 떨어질 때 수렴한다. 그 다음 인공 신경망을 정의하는 매개 변수들(예를 들어, 제1 및 제2 부분망들을 정의하는 매개 변수들)의 수렴된 값들은 메모리(105) 또는 외부 저장 구성요소(145)와 같은 비일시적 컴퓨터 판독 가능한 매체에 저장된다. 일부 실시 예에서, 그 후 제1 및 제2 부분망들에 대해 저장된 매개 변수들의 값들은 비일시적 컴퓨터 판독 가능한 매체들부터 판독되고 잠재적으로 훈련될 수도 훈련되지 않을 수도 있는 다른 부분망들과 조합하여, 다른 신경망들을 구성하는데 사용된다.
제1 및 제2 부분망들을 정의하는 매개 변수들의 값들이 결정되었으면, 완전한 인공 신경망에 관해 품질 보증 단계가 수행된다. 인공 신경망의 인스턴스는 GPU(115) 또는 CPU(130)에서 실행된다. 인스턴스는 제1 및 제2 부분망들을 완전한 인공 신경망에 통합함으로써 정의된다. 인공 신경망의 인스턴스에는 입력 값들이 제공되며, 이는 인공 신경망을 정의하는 매개 변수들의 현재 값들에 기초하여 대응하는 출력 값들을 생성한다. 출력 값들을 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들이 결정된다. 오차 값들은 역전달되어 인공 신경망의 제1 및 제2 부분망들을 정의하는 매개 변수들의 값들을 수정하는데 사용된다. 이러한 프로세스는 인공 신경망을 정의하는 매개 변수들의 값들이 수렴 기준들을 충족할 때까지 반복된다. 그 다음 인공 신경망은 그것의 부여된 작업을 수행하도록 훈련될 것으로 고려된다. 일부 실시 예에서, 제1 부분망들의 동시 훈련, 제2 부분망들의 알려지지 않은 기능들의 훈련 및 인공 신경망의 후속 품질 보증 훈련은 인공 신경망을 훈련하기 위해 한 번 이상 반복된다.
도 2는 일부 실시 예에 따른 이미지 인식과 같은 작업을 수행하기 위해 훈련되는 심층 신경망(DNN, deep neural network)(200)을 도시하는 블록도이다. DNN(200)은 도 1에 도시된 GPU(115)의 프로세싱 요소들(116-118) 또는 CPU(130)의 프로세싱 요소들(131-133) 상에서 실행된다. DNN(200)은 이미지(210)의 일 부분(205)과 같은 입력 값들을 수신하고 DNN(200)에서 구현되는 기능들 및 기능들을 정의하는 매개 변수들의 값들에 기초하여 출력 값들(215)을 생성하도록 구성된다.
DNN(200)은 하나 이상의 훈련 데이터 집합에 기초하여 훈련되는 매개 변수들의 집합에 의해 정의되는 컨볼루션 기능을 구현하는 컨볼루션 계층들(220)을 포함한다. 매개 변수들은 작은 수용 필드를 가지고 컨볼루션 계층들(220)의 입력 볼륨의 전체 깊이를 통해 확장되는 학습 가능한 필터들(또는 커널들)의 집합을 포함한다. 매개 변수들은 또한 컨볼루션 계층들(220)의 출력 볼륨의 크기를 제어하는 깊이 매개 변수, 스트라이드 매개 변수 및 제로-패딩 매개 변수를 포함할 수도 있다. 컨볼루션 계층들(220)은 입력 값들에 컨볼루션 연산을 적용하고 컨볼루션 연산의 결과들을 DNN(200)의 후속 계층에 제공한다. 예를 들어, 이미지(210)의 부분(205)이 컨볼루션 계층들(220)에 입력(225)으로서 제공되며, 이는 매개 변수들의 집합에 기초하여 입력(225)에 컨볼루션 연산을 적용하여 대응하는 출력 값(230)을 생성한다. 일부 실시 예에서, 컨볼루션 계층들(220)은 DNN(200)의 부분망으로서 식별된다. 그 다음 부분망은 컨볼루션 신경망(CNN, convolutional neural network)을 나타낸다. 그러나, 컨볼루션 계층들(220)은 DNN(200)의 더 큰 부분망의 일부일 수 있거나 컨볼루션 계층들(220)은 DNN(200)의 다수의 부분망으로 더 세분될 수 있다.
컨볼루션 계층들(220)에 의해 생성되는 결과들은 DNN(200)의 풀링 계층들(235)에 제공된다. 풀링 계층들(235)은 컨볼루션 계층들(220)의 뉴런 클러스터들의 출력들을 풀링 계층들(235)로부터 출력되는 더 적은 수의 뉴런 클러스터로 조합한다. 풀링 계층들(235)은 통상적으로 알려져 있는(또는 명시적인) 기능들을 구현한다. 예를 들어, 최대 풀링을 구현하는 풀링 계층들(235)은 컨볼루션 계층들(220)로부터 출력되는 클러스터 내 뉴런들의 값들 중 최대 값을 풀링 계층들(235)로부터 출력되는 단일 뉴런에 부여할 수 있다. 다른 예를 들어, 평균 풀링을 구현하는 풀링 계층들(235)은 컨볼루션 계층들(220)로부터 출력되는 클러스터 내 뉴런들의 값들의 평균 값을 풀링 계층들(235)로부터 출력되는 단일 뉴런에 부여할 수 있다. 그에 따라 풀링 계층들(235)의 알려져 있는(또는 명시적인) 기능은 미리 결정된 훈련 데이터 집합들을 사용하여 훈련될 수 있다. 일부 실시 예에서, 풀링 계층들(235)은 DNN(200)의 부분망으로서 식별된다. 그러나, 풀링 계층들(235)은 DNN(200)의 더 큰 부분망의 일부일 수 있거나 풀링 계층들(235)은 DNN(200)의 다수의 부분망으로 더 세분될 수 있다.
도시된 실시 예에서, DNN(200)은 또한 풀링 계층들(235)로부터 입력을 수신하는 추가 컨볼루션 계층들(240) 및 추가 컨볼루션 계층들(240)로부터 입력을 수신하는 추가 풀링 계층들(245)을 포함한다. 그러나, 추가 컨볼루션 계층들(240) 및 추가 풀링 계층들(245)은 선택적이고 DNN(200)의 일부 실시 예서는 존재하지 않는다. 뿐만 아니라, DNN(200)의 일부 실시 예는 더 많은 수의 컨볼루션 및 풀링 계층을 포함할 수도 있다. 추가 컨볼루션 계층들(240) 및 추가 풀링 계층들(245)은 DNN(200)의 부분망들, DNN(200)의 부분망들의 부분들로서 식별될 수 있거나, 또는 그것들은 DNN(200)의 다수의 부분망으로 세분될 수 있다.
추가 풀링 계층들(245)로부터의 출력은 완전 연결 계층들(250, 255)로 제공된다. 완전 연결 계층들(250, 255)의 뉴런들은 추가 풀링 계층들(245) 또는 다른 완전 연결 계층들과 같은 다른 계층의 모든 뉴런에 연결된다. 완전 연결 계층들(250, 255)은 통상적으로 출력 값들(215)을 생성하는 상위 수준의 추론을 나타내는 기능을 구현한다. 예를 들어, DNN(200)이 이미지 인식을 수행하도록 훈련되는 경우, 완전 연결 계층들(250, 255)은 DNN(200)에 의해 "인식"되었던 이미지의 부분들을 라벨링하는 기능을 구현한다. 라벨들의 예들은 이미지(210)에서 얼굴들이 검출되는 사람들의 이름들, 이미지에서 검출되는 객체들의 유형들 등을 포함한다. 완전 연결 계층들(250, 255)에서 구현되는 기능들은 여기서 논의된 바와 같이, 훈련 데이터 집합을 사용하여 결정되는 매개 변수들의 값들에 의해 나타내어진다. 완전 연결 계층들(250, 255)은 DNN(200)의 부분망들, DNN(200)의 부분망들의 부분들로서 식별되거나, 또는 그것들은 DNN(200)의 다수의 부분망으로 세분된다.
도 3은 일부 실시 예에 따른 알려져 있는 기능들을 구현하는 부분망들을 또한 포함하는 인공 신경망의 인스턴스(300) 내 알려지지 않은 기능들을 구현하는 부분망들의 훈련을 도시하는 블록도이다. 인스턴스(300)는 도 1에 도시된 프로세싱 요소들(116-118, 131-133)과 같은 프로세싱 요소들 상에서 실행된다. DNN은 상호 연결된 부분망들(310, 311, 312, 313, 314, 315)을 사용하여 구현되며, 이는 여기서 "부분망들(310-315)"로 총칭된다. 부분망들(310-315)은 부분망들(310-315)을 특징 짓는 매개 변수들의 값들에 의해 정의되는 상이한 기능들을 구현한다. 도시된 실시 예에서, 부분망(310)은 알려지지 않은 기능을 구현하고 결과적으로 알려져 있는 훈련 데이터 집합을 갖지 않는다. 알려지지 않은 기능을 구현하는 단일 부분망(310)이 도 3에 도시되어 있지만, 인공 신경망의 일부 실시 예는 하나 이상의 알려지지 않은 기능을 구현하는 다수의 부분망을 포함한다. 부분망들(311-315)은 대응하는 알려져 있는 훈련 데이터 집합들을 갖는 알려져 있는 기능들을 구현한다. 그에 따라 부분망들(311-315)은 대응하는 알려져 있는 훈련 데이터 집합들을 기반으로 별개로 그리고 병렬로 훈련되었다.
DNN의 인스턴스(300)는 입력 값들(320 및 325) 및 라벨링된 출력 값들(330)을 포함하는 망 훈련 데이터 집합을 사용하여 훈련된다. DNN의 인스턴스(300)는 입력 값들(320, 325)을 수신하고 출력 값들(335)을 생성할 수 있다. 그 다음 출력 값들(355)을 라벨링된 출력 값들(330)과 비교함으로써 DNN의 인스턴스(300)에 대한 오차 값들이 결정된다. 부분망(310)은 실선들로 표기된 바와 같이, 훈련 부분망으로서 식별되는데, 이는 부분망들(310)을 정의하는 매개 변수들이 역전달된 오차 값들에 기초하여 수정됨을 의미한다. 부분망들(311-315)은 점선들로 표기된 바와 같이, 비훈련 부분망들로서 식별되는데, 이는 부분망들(311-315)을 정의하는 매개 변수들이 부분망들(311-315)의 기능들과 연관된 알려져 있는 훈련 데이터 집합들을 기반으로 이전에 훈련되었기 때문에, 이러한 매개 변수들이 역전달된 오차 값들에 기초하여 수정되지 않음을 의미한다.
그 다음 훈련 부분망(310)은 DNN의 인스턴스(300)에 의해 생성되는 오차 값들이 훈련 부분망(310)를 정의하는 매개 변수들의 부정확한 값들에 의해 생성되는 것으로 가정함으로써 훈련된다. 그에 따라 매개 변수들의 값들은 현재 반복 동안 생성되는 오차 값들에 기초하여 수정되어 후속 반복 동안 생성되는 오차 값들을 줄인다. 다른(비훈련) 부분망들(311-315)을 정의하는 매개 변수들의 값들은 훈련 프로세스 동안 일정하게 유지된다. 예를 들어, DNN의 인스턴스(300)의 부분망(310)을 정의하는 매개 변수들의 값들은 반복적으로 수정되어 DNN의 인스턴스(300)에 의해 생성되는 오차 값들을 줄이면서, 부분망들(311-315)을 정의하는 매개 변수들의 값들은 일정하게 유지된다.
도 4는 일부 실시 예에 따른 품질 보증 단계를 수행하기 위해 실행되는 도 3에 도시된 DNN의 인스턴스(400)를 도시하는 블록도이다. 인스턴스(400)는 도 1에 도시된 프로세싱 요소들(116-118, 131-133) 중 하나와 같은 프로세싱 요소 상에서 실행될 수 있다. 품질 보증 단계 동안, 모든 부분망(310-315)은 실선들로 표기된 바와 같이, 훈련 부분망들로서 취급된다. 완전한 DNN은 이전에 훈련된 부분망들(310-315을 반복 훈련 프로세스의 초기 값들로서 정의하는 매개 변수들의 값들을 사용하여 망 훈련 데이터 집합(320, 325, 330)에 관해 훈련된다)(이는 예를 들어, 도 3에 도시된다). DNN의 인스턴스(400)는 입력 값들(320, 325)을 수신하고 DNN을 정의하는 매개 변수들, 예를 들어, 부분망들(310-315)를 정의하는 매개 변수들의 현재 값들에 기초하여 출력 값들(405)을 생성한다. 출력 값들(405)은 라벨링된 출력 값들(330)과 비교되어 오차 값들을 결정하며, 이는 역전달되어 DNN을 정의하는 매개 변수 값들을 수정하는데 사용된다. 이러한 프로세스는 오차 값들의 변화율 또는 임계치 아래로 떨어지는 오차 값들의 크기 측정과 같은 수렴 기준이 충족될 때까지 반복된다.
알려져 있는 기능들을 별개로 그리고 병렬로 구현하는 부분망들(311-315)을 훈련시키는 것은 부분망 훈련이 상이한 프로세싱 요소들에 관해 동시에 또는 병렬로 수행될 수 있게함으로써, 부분망들(311-315)을 훈련하는데 필요한 시간을 줄인다. 훈련된 부분망들(311-315)을 정의하는 매개 변수들의 값들은 훈련 데이터 집합의 입력 값들(320, 325, 330)을 사용하여, 예를 들어, 도 4에 도시된 인스턴스(400)를 사용하여 완전한 DNN을 훈련시킴으로써 결정되는 매개 변수들의 값들에 훨씬 더 가까울 수 있다. 그에 따라 완전한 DNN에 대한 훈련 프로세스(훈련 부분망들(310-315)을 포함하고 품질 보증 단계를 수행하는)의 수렴은 매개 변수들의 임의의 또는 랜덤한 초기 값들을 사용하여 훈련 데이터 집합의 입력 값들(320, 325, 330)에 관해 완전한 CNN을 훈련시키는 기존의 관행보다 시간, 에너지 및 자원들이 덜 들 것으로 예상된다.
도 5는 일부 실시 예에 따른 알려져 있는 기능들을 구현하는 부분망들을 또한 포함하는 인공 신경망의 컷아웃 부분(500) 내 알려지지 않은 기능들을 구현하는 부분망들의 훈련을 도시하는 블록도이다. 컷아웃 부분(500)은 도 1에 도시된 프로세싱 요소들(116-118, 131-133)과 같은 프로세싱 요소들 상에서 실행된다. 인공 신경망의 컷아웃 부분(500)은 상호 연결된 부분망들(510, 511, 512, 513, 514, 515, 516)을 사용하여 구현되며, 이는 여기서 "부분망들(510-516)"로 총칭된다. 부분망들(510-516)은 부분망들(510-516)을 특징 짓는 매개 변수들의 값들에 의해 정의되는 상이한 기능들을 구현한다. 도시된 실시 예에서, 부분망(510)은 알려지지 않은 기능을 구현하고 결과적으로 알려져 있는 훈련 데이터 집합을 갖지 않는다. 알려지지 않은 기능을 구현하는 단일 부분망(510)이 도 5에 도시되어 있지만, 인공 신경망의 일부 실시 예는 하나 이상의 알려지지 않은 기능을 구현하는 다수의 부분망을 포함한다. 부분망들(511-516)은 대응하는 알려져 있는 훈련 데이터 집합들을 갖는 알려져 있는 기능들을 구현한다. 그에 따라 부분망들(511-516)은 대응하는 알려져 있는 훈련 데이터 집합들을 기반으로 별개로 그리고 병렬로 훈련되었다.
부분망들(510)은 부분망들(511-516)에 의해 실질적으로 내포된다. 여기서 사용될 때, 어구 "실질적으로 내포됨(substantially encompassed)"은 부분망(510)에 대한 입력들이 부분망들(511-516) 중 하나 이상에 의해 독점적으로(또는 주로) 제공되고 부분망(510)로부터의 어떤 출력도 부분망들(511-516)을 제외하고 임의의 부분망들에 노출되지 않음(또는 더 적은 수의 출력이 노출됨) 을 나타낸다. 그러한 경우, 부분망(510)은 부분망들(511-516)에 대해 알려져 있는 훈련 데이터 집합들로 구성되는 조합된 훈련 데이터 집합을 기반으로 훈련된다. 예를 들어, 부분망들(511-516)은 여기서 논의된 바와 같이, 그것들의 대응하는 알려져 있는 훈련 데이터 집합들을 기반으로 별개로 그리고 병렬로 훈련될 수 있다. 그 다음 부분망(510)은 조합된 훈련 데이터 집합을 기반으로 컷아웃 부분(500)을 훈련시킴으로써 훈련되면서, 이전에 훈련된 부분망들(511-516)의 매개 변수들은 일정하게 유지된다. 훈련되면, 컷아웃 부분(500)은 완전한 인공 신경망으로 통합되며, 이는 여기서 논의된 바와 같이 망 훈련 데이터 집합을 기반으로 훈련된다.
도 6은 일부 실시 예에 따른 제1 부분망들을 포함하는 인공 신경망(이를테면 CNN 또는 DNN)을 훈련시키기 위한 방법(600)의 흐름도이다. 방법(600)은 도 1에 도시된 프로세싱 시스템(100)의 일부 실시 예에서 구현된다.
블록(605)에서, 인공 신경망이 인공 신경망에서 알려져 있는 기능들을 수행하는 부분망들 및 알려지지 않은 기능들을 수행하는 부분망들로 분할된다. 기능의 정의는 엄격하지 않다. DNN 아키텍트는 망 토폴로지 또는 부분망 또는 임의의 다른 합리적인 기준들에 의해 수행되는 내부 기본 동작에 기초하여 기능들을 정의할 수 있다. 예를 들어, 컨볼루션 계층들(220), 풀링 계층들(235), 컨볼루션 계층들(240), 풀링 계층들(245) 및 완전 연결 계층들(250, 255)을 포함하는 도 2에 도시된 심층 신경망(200)와 같은 인공 신경망이 컨볼루션 계층들(220)을 포함하는 제1 부분망, 풀링 계층들(235)을 포함하는 제2 부분망, 컨볼루션 계층들(240)을 포함하는 제 3 부분망, 풀링 계층들(245)을 포함하는 제 4 부분망, 완전 연결 계층들(250)을 포함하는 제 5 부분망 및 완전 연결 계층들(255)을 포함하는 제 6 부분망으로 분할된다. 세분화의 보다 상위 또는 하위의 계층들의 신경망의 다른 분할들도 가능하다. 예를 들어, 계층들의 분할이 컨볼루션 계층들(220)과 같은 개별 계층 내에서 일어날 수 있다.
알려져 있는 기능들을 갖는 제1 부분망들은 도 1에 도시된 프로세싱 요소들(116-118, 131-133)과 같은 상이한 프로세싱 요소들 상에서 별개로 그리고 병렬로 훈련된다. 제1 부분망들은 제1 부분망들에서 구현되는 기능들에 대응하는 알려져 있는 데이터 집합들에 관해 훈련된다. 도시된 실시 예에서, 훈련 부분망을 정의하는 매개 변수들의 값들은 각각의 부분망에 특정한 훈련 데이터 집합에 기초하여 수정된다. 이러한 훈련 데이터 집합은 부분망의 기능(입력들에 응답하여 생성되는 출력들의 값)이 또한 알려져 있기 때문에 알려져 있다. 예를 들어, 블록(610)에서, 제1 알려져 있는 부분망을 정의하는 매개 변수들의 값들이 이러한 부분망의 출력 값들을 이러한 부분망에 대한 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 결정되는 오차 값들에 기초하여 수정된다. 블록(615)에서는, 제2 알려져 있는 부분망을 정의하는 매개 변수들의 값들이 제2 부분망의 출력 값들을 제2 부분망에 대한 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 결정되는 오차 값들에 기초하여 수정된다. 블록(620)에서는, 제N 알려져 있는 부분망을 정의하는 매개 변수들의 값들이 제N 부분망의 출력 값들을 제N 부분망의 알려져 있는 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 결정되는 오차 값들에 기초하여 수정된다. 블록들(610, 615, 620)로 나타내어진 프로세스들은 동시에 또는 병렬로 수행된다.
블록(625)에서는, 알려지지 않은 기능들을 구현하는 제2 부분망들의 매개 변수들이 인공 신경망에 대한 망 훈련 데이터 집합에 기초하여 수정된다. 인공 신경망에서 제1 부분망들을 정의하는 매개 변들수의 값들은 제1 부분망들이 전체 인공 신경망으로 다시 통합되도록 블록들(610, 615, 620)에서 결정된 매개 변수들의 값들과 동일하게 설정된다. 제2 부분망들을 정의하는 매개 변수들의 값들은 랜덤한 또는 임의의 값들로 설정되거나 초기 값들을 설정하기 위한 임의의 다른 기준들을 사용하여 설정된다. 인공 신경망에는 망 훈련 데이터 집합으로부터의 입력 값들이 제공되며, 이는 매개 변수들의 현재 값들에 기초하여 출력 값들을 생성한다. 출력 값들은 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교되어 오차 값들이 결정되며, 이는 제2 부분망들을 정의하는 매개 변수들의 값들을 수정하기 위해 역전달된다. 제1 부분망들을 정의하는 매개 변수들은 제2 부분망들에 대한 수렴 기준들이 충족될 때까지 반복되는 이러한 프로세스 동안 일정하게 유지된다.
블록(630)에서는, 품질 보증 단계가 수행된다. 품질 보증 단계에서, 인공 신경망에는 망 훈련 데이터 집합으로부터의 입력 값들이 제공되며, 이는 매개 변수들의 현재 값들에 기초하여 출력 값들을 생성한다. 출력 값들은 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교되어 오차 값들디 결정된다. 블록(630)에서 수행되는 품질 보증 단계는 오차 값들이 제1 및 제2 부분망들 양자를 정의하는 매개 변수들의 값들을 수정하기 위해 역전달되기 때문에 블록(625)에서 수행되는 단계와 상이하다. 품질 보증 단계는 인공 신경망에 대한 수렴 기준이 충족될 때까지 반복된다. 프로세스가 수렴되었으면, 제1 및 제2 부분망들을 정의하는 매개 변수들의 값들은 도 1에 도시된 메모리(105) 또는 외부 저장 구성요소(145)와 같은 비일시적 컴퓨터 판독 가능한 매체를 사용하여 구현되는 저장 구성요소에 저장된다.
도 7은 일부 실시 예에 따른 알려져 있는 기능들 및 알려지지 않은 기능들을 구현하는 부분망들을 포함하는 인공 신경망(이를테면 CNN 또는 DNN) 내 알려지지 않은 기능들을 구현하는 부분망들을 훈련시키기 위한 방법(700)의 흐름도이다. 방법(700)은 도 1에 도시된 프로세싱 시스템(100)의 일부 실시 예에서 구현된다. 방법(700)은 도 6에 도시된 방법(600)의 일부 실시 예를 구현하는데 사용된다.
블록(705)에서, 인공 신경망은 훈련 데이터 집합으로부터의 입력 훈련 값들 및 신경망을 구성하는 부분망들의 매개 변수들의 현재 값들에 기초하여 출력 값들을 생성한다. 여기서 논의된 바와 같이, 인공 신경망에서 알려지지 않은 기능들을 구현하는 부분망들은 훈련 부분망들로서 식별된다.
블록(710)에서는, 인공 신경망의 출력 값들이 훈련 데이터 집합에 대한 라벨링된 출력 값들과 비교된다. 비교에 기초하여 오차 값들이 결정된다. 예를 들어, 오차 값들은 인공 신경망에 의해 정확하게 식별되는 하나 이상의 훈련 이미지에서 사람 또는 객체들의 백분율을 출력 값들과 라벨링된 출력 값들의 비교에 의해 나타내어지는 것으로 나타낼 수 있다.
블록(715)에서, 오차 값들에 기초하여 훈련 부분망들(즉, 알려지지 않은 기능들을 구현한 부분망들)을 정의하는 매개 변수들의 값들이 수정된다. 인공 신경망에서 알려져 있는 기능들을 구현하는 다른 부분망들을 정의하는 매개 변수들의 값들은 일정하게 유지된다, 즉, 오차가 단지 훈련 부분망을 정의하는 매개 변수들의 부정확한 값들에 의해 야기된다는 가정 하에 훈련 부분망을 정의하는 매개 변수들의 값들이 수정된다.
결정 블록(720)에서, 훈련 부분망을 정의하는 매개 변수들의 값들에 대해 수렴 기준이 평가된다. 예를 들어, 방법(700)의 현재 반복에서 결정된 매개 변수들의 값들이 방법(700)의 이전 반복에서 결정된 매개 변수들의 값들과 비교될 수 있다. 수렴 기준을 충족하는 매개 변수들의 값들은 현재와 이전 반복 간의 값들의 변화의 측정치가 임계치 아래로 떨어진다. 다른 실시 예들에서는 망의 출력을 라벨링된 데이터와 비교하는 것과 같은 다른 수렴 기준이 적용될 수 있다. 이 경우 수렴에 대한 테스트(블록 720)는 블록 710과 715 사이에 위치될 수 있다. 수렴 기준이 충족되지 않는 경우, 방법(700)은 블록(705)으로 되돌아가서 매개 변수들의 수정된 값들을 사용하여 방법(700)의 다른 반복을 시작한다. 수정은 역전달 또는 신경망들의 훈련에 사용되는 임의의 다른 방법에 의해 이루어진다. 수렴 기준이 충족되는 경우, 방법(700)은 블록(725)으로 흐른다.
블록(725)에서, 훈련 부분망들을 정의하는 매개 변수들의 수렴된 값들이 비일시적 컴퓨터 판독 가능한 매체를 사용하여 구현되는 저장 구성요소에 저장된다. 예를 들어, 수렴된 값들은 도 1에 도시된 메모리(105) 또는 외부 저장 구성요소(145)에 저장된다. 저장된 값들은 그 다음 신경망에 대해 수행되는 후속 품질 보증 단계를 위해 액세스될 수 있다. 저장된 값들은 또한 여기서 논의된 바와 같이, 새로운 신경망들을 형성하기 위해 다른 부분망들에 대한 다른 매개 변수 값들에 액세스되고 그것들과 조합될 수도 있다.
도 8은 일부 실시 예에 따른 이전에 훈련된 부분망들에 기초하여 신경망을 생성 및 훈련시키기 위한 방법(800)의 흐름도이다. 도시된 실시 예에서, 제1 신경망은 복수의 부분망으로 세분화되었고 그 다음 망 훈련 데이터 집합을 사용하여 훈련되었다. 예를 들어, 제1 신경망은 도 6에 도시된 방법(600) 및 도 7에 도시된 방법(700) 의 실시 예들에 따라 훈련될 수 있다. 제1 신경망의 부분망들을 정의하는 매개 변수들의 값들은 도 1에 도시된 외부 저장 구성요소(145)와 같은 비일시적 컴퓨터 판독 가능한 매체에 저장된다. 제1 신경망의 훈련은 도 1에 도시된 프로세싱 시스템(100) 또는 다른 프로세싱 시스템에 의해 수행된다.
블록(805)에서, 제1 신경망의 부분망들의 부분 집합을 정의하는 매개 변수들의 값들이 비일시적 컴퓨터 판독 가능한 저장 매체로부터 판독된다. 일부 실시 예에서는, 다른 신경망들의 부분망들을 정의하는 매개 변수들의 값들이 또한 비일시적 컴퓨터 판독 가능한 저장 매체로부터 판독된다.
블록(810)에서는, 부분망들이 조합되어 제2 신경망이 형성된다. 여기서 논의된 바와 같이, 부분망들을 조합하여 제2 신경망을 형성하는 것은 예를 들어, 프로그램 코드 및 매개 변수들을 제2 신경망을 나타내도록 구성하는 것, 예를 들어, 부분망들의 집합의 출력들을 부분망들의 다른 집합의 입력들에 연결하는 것을 포함한다. 복수의 망으로부터의 부분망들을 새로운 망으로 통합, 예를 들어 기능적 통합, 정보 데이터 스트림들, 실시간 양태들 및 다른 많은 것을 위해 다양한 기준이 선택될 수 있다. 그에 따라 제2 신경망은 하나 이상의 프로세싱 요소 상에서 실행될 수 있다. 예를 들어, 제2 신경망이 도 1에 도시된 프로세싱 요소들(116-118, 131-133)과 같은 하나 이상의 프로세싱 요소 상에서 실행될 수 있도록 제1 신경망의 부분망들의 부분 집합을 정의하는 매개 변수들의 값들, 그리고 이용 가능한 경우, 다른 신경망들의 부분망들을 정의하는 매개 변수들의 값들이 상호 연결되어 제2 신경망을 구성한다.
블록(815)에서, 제2 신경망은 망 훈련 데이터 집합에 기초하여 훈련된다. 제2 신경망을 정의하는 매개 변수들의 값들은 초기에 제2 신경망을 구성하는 부분망들을 정의하는 매개 변수들의 대응하는 값들과 동등하게 설정된다. 그 다음 제2 신경망이 도 6에 도시된 방법(600) 및 도 7에 도시된 방법(700) 의 일부 실시 예에 따라 훈련될 수 있다. 부분망들을 정의하는 이전에 훈련된 매개 변수들의 값들을 사용하여 훈련 프로세스를 시작하면 훈련 프로세스를 가속화하여 제2 신경망을 정의하는 임의의 또는 랜덤한 매개 변수들의 값들을 사용하여 제2 신경망의 훈련 프로세스를 시작하는 것에 비해 훈련에 시간 및 자원이 덜 소비된다.
제1 양태에서, 방법은 알려져 있는 기능들을 구현하기 위한 제1 부분망들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 포함하는 인공 신경망을 훈련시키는 것을 포함하며, 상기 방법은 상기 제1 부분망들을 정의하는 제1 매개 변수 값들을 결정하기 위해 대응하는 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 상기 제1 부분망들을 훈련시키는 단계, 망 훈련 데이터 집합으로부터의 입력 값들을 훈련된 상기 제1 부분망들을 포함하는 상기 인공 신경망에 제공하는 단계, 상기 인공 신경망에 의해 생성되는 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들을 생성하는 단계, 상기 오차 값들을 사용하여 상기 제1 매개 변수 값들을 수정하지 않고 상기 제2 부분망들을 정의하는 제2 매개 변수 값들을 수정하는 단계, 및 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장하는 단계를 포함한다.
상기 제1 양태의 일 실시 예에서, 상기 방법은 제1 부분망들을 훈련시키는 단계가 상기 대응하는 알려져 있는 훈련 데이터 집합들의 입력 값들을 상기 제1 부분망들에 동시에 제공하는 단계, 상기 제1 부분망들에 대한 오차 값들을 동시에 생성하는 단계 및 상기 제1 매개 변수 값들을 동시에 수정하는 단계를 포함하는 것을 포함한다. 일 실시 예에서, 상기 방법은 상기 대응하는 알려져 있는 훈련 데이터 집합들의 상기 입력 값들을 상기 제1 부분망들에 동시에 제공하는 단계, 상기 제1 부분망들에 대한 상기 오차 값들을 동시에 생성하는 단계 및 상기 제1 부분망들을 정의하는 상기 제1 매개 변수 값들을 동시에 수정하는 단계가 상기 제1 매개 변수 값들에 대한 수렴 기준들이 충족될 때까지 반복적으로 수행되는 것을 포함한다. 구체적인 실시 예에서, 상기 방법은 상기 제1 부분망들의 제1 부분 집합에 대응하는 알려져 있는 훈련 데이터 집합들의 부분 집합의 형성되는 컷아웃 훈련 집합에 기초하여 제2 부분망을 훈련시키는 단계를 포함하되, 상기 제1 부분 집합은 상기 제2 부분망을 내포한다.
상기 제1 양태의 다른 실시 예에서, 상기 방법은 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제1 부분망들 및 상기 제2 부분망들의 수정된 상기 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하는 단계, 상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하는 단계, 오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계, 및 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 저장하는 단계를 포함한다. 구체적인 실시 예에서, 상기 방법은 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 오차 값들을 생성하는 단계 및 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들을 수정하는 단계가 상기 제1 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행되는 것을 포함한다.
상기 제1 양태의 추가 실시 예에서, 상기 방법은 상기 인공 신경망의 상기 제1 부분망들의 부분 집합에 대해 저장된 매개 변수 값들을 판독하는 단계, 및 상기 인공 신경망의 상기 제1 부분망들의 상기 부분 집합에 대한 상기 저장된 매개 변수 값들을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하는 단계를 포함한다.
제2 양태에서, 프로세싱 시스템은 다음에 의해 알려져 있는 기능들을 구현하기 위한 제1 부분망들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 포함하는 인공 신경망을 훈련시키도록 구성된 복수의 프로세싱 요소: 상기 제1 부분망들을 정의하는 제1 매개 변수 값들을 결정하기 위해 대응하는 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 상기 제1 부분망들을 훈련시키는 단계, 망 훈련 데이터 집합으로부터의 입력 값들을 훈련된 상기 제1 부분망들을 포함하는 상기 인공 신경망에 제공하는 단계, 상기 인공 신경망에 의해 생성되는 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들을 생성하는 단계, 상기 오차 값들을 사용하여 상기 제1 매개 변수 값들을 수정하지 않고 상기 제2 부분망들을 정의하는 제2 매개 변수 값들을 수정함으로써 상기 제2 부분망들을 훈련시키는 단계, 및 저장 구성요소에 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장하도록 구성된 입력/출력 엔진을 포함한다.
상기 제2 양태의 다른 실시 예에서, 상기 복수의 프로세싱 요소는 상기 대응하는 알려져 있는 훈련 데이터 집합들의 입력 값들을 상기 제1 부분망들에 동시에 제공하도록, 상기 제1 부분망들에 대한 오차 값들을 동시에 생성도록 그리고 상기 제1 매개 변수 값들을 동시에 수정하도록 구성된다. 구체적인 실시 예에서, 상기 복수의 프로세싱 요소는 상기 제1 매개 변수 값들에 대한 수렴 기준들이 충족될 때까지 반복적으로 상기 대응하는 알려져 있는 훈련 데이터 집합들의 상기 입력 값들을 제1 부분망들에 동시에 제공하도록, 상기 제1 부분망들에 대한 상기 오차 값들을 동시에 생성도록 그리고 상기 제1 부분망들을 정의하는 상기 제1 매개 변수 값들을 동시에 수정하도록 구성된다. 더 구체적인 실시 예에서, 상기 복수의 프로세싱 요소는 상기 제1 부분망들의 제1 부분 집합에 대응하는 알려져 있는 훈련 데이터 집합들의 부분 집합의 형성되는 컷아웃 훈련 집합에 기초하여 제2 부분망을 훈련시키는 단계로서, 상기 제1 부분 집합은 상기 제2 부분망을 내포하는, 상기 제2 부분망을 훈련시키도록 구성된다.
상기 제2 양태의 추가 실시 예에서, 상기 복수의 프로세싱 요소는 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제1 부분망들 및 상기 제2 부분망들의 수정된 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하도록, 상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하도록, 그리고 상기 오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하도록 구성된다. 추가적으로, 상기 입력/출력 엔진은 상기 저장 구성요소에 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 저장하도록 구성된다. 구체적인 실시 예에서, 상기 복수의 프로세싱 요소는 상기 제1 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하도록, 상기 오차 값들을 생성하도록 그리고 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하도록 구성된다.
상기 제2 양태의 또 다른 실시 예에서, 상기 입력/출력 엔진은 상기 저장 구성요소로부터 상기 인공 신경망의 상기 제1 부분망들의 부분 집합에 대한 매개 변수 값들을 판독하도록 구성되고, 상기 복수의 프로세싱 요소 중 적어도 하나는 상기 인공 신경망의 상기 제1 부분망들의 상기 부분 집합에 대한 상기 매개 변수 값들을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하도록 구성된다.
제3 양태에서, 방법은 프로세싱 시스템의 입력/출력 엔진을 사용하여, 알려져 있는 기능들을 구현하기 위한 제1 부분망들을 정의하는 제1 매개 변수 값들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 정의하는 제2 매개 변수 값들을 판독하는 단계로서, 상기 제1 부분망들은 대응하는 알려져 있는 훈련 데이터 집합들에 관해 훈련된 것인, 상기 제1 매개 변수 값들 및 제2 매개 변수 값들을 판독하는 단계를 포함한다. 상기 방법은 또한 상기 프로세싱 시스템에서, 상기 제1 부분망들 및 상기 제2 부분망들을 조합함으로써 인공 신경망을 생성하는 단계, 망 훈련 데이터 집합 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 프로세싱 시스템에서, 상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 상기 인공 신경망에 대한 오차 값들을 생성하는 단계, 및 상기 프로세싱 시스템에서, 상기 오차 값들에 기초하여 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들을 수정하는 단계를 포함한다.
상기 제3 양태의 일 실시 예에서, 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 인공 신경망에 대한 상기 오차 값들을 생성하는 단계 및 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들을 수정하는 단계는 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행된다. 다른 실시 예에서, 상기 방법은 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장 구성요소에 저장하는 단계를 포함한다. 구체적인 실시 예에서, 상기 방법은 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제2 부분망의 수정된 상기 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하는 단계를 포함한다. 상기 방법은 또한 상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하는 단계, 및 상기 오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계를 포함한다. 다른 구체적인 실시 예에서, 상기 방법은 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 오차 값들을 생성하는 단계 및 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계가 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행되는 것을 포함한다. 훨씬 더 구체적인 실시 예에서, 상기 방법은 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 상기 저장 구성요소에 저장하는 단계, 및 상기 저장된 매개 변수 값들의 부분 집합을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하는 단계를 포함한다.
일부 실시 예에서, 상술된 장치 및 기술들은 도 1 내지 도 7을 참조하여 상술된 프로세싱 시스템과 같이 하나 이상의 집적 회로(IC) 소자(집적 회로 패키지들 또는 마이크로 칩들이라고도 지칭됨)를 포함하는 시스템으로 구현된다. 이러한 IC 소자들의 설계 및 제조에는 전자 설계 자동화(EDA) 및 컴퓨터 이용 설계(CAD) 소프트웨어 툴들이 사용될 수 있다. 이러한 IC 소자들은 트랜지스터 회로에서 직접 또는 이러한 회로 상에서 실행되는 프로그램 가능한 코드로서 여기에 설명된 방법들을 구현할수 있다.
컴퓨터 판독 가능한 저장 매체는 컴퓨터 시스템에 명령들 및/또는 데이터를 제공하기 위해 사용 동안 컴퓨터 시스템에 의해 액세스 가능한 임의의 비일시적 저장 매체 또는 비일시적 저장 매체들의 조합을 포함할 수 있다. 그러한 저장 매체들은 광 매체들(예를 들어, 컴팩트 디스크(CD), 디지털 다목적 디스크(DVD), 블루-레이 디스크), 자기 매체들(예를 들어, 플로피 디스크, 자기 테이프 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비휘발성 메모리(예를 들어, 판독 전용 메모리(ROM) 또는 플래시 메모리) 또는 미세 전자 기계 시스템들(MEMS)-기반 저장 매체들을 포함할 수 있으나, 이에 제한되지는 않는다. 컴퓨터 판독 가능한 저장 매체는 컴퓨팅 시스템(예를 들어, 시스템 RAM 또는 ROM)에 내장되거나, 컴퓨팅 시스템(예를 들어, 자기 하드 드라이브)에 고정적으로 부착되거나, 컴퓨팅 시스템(예를 들어, 광 디스크 또는 유니버셜 시리얼 버스(USB)-기반 플래시 메모리)에 착탈 가능하게 부착되거나, 또는 유선 또는 무선 네트워크(예를 들어, 네트워크 액세스 가능 저장 장치(NAS))를 통해 컴퓨터 시스템에 연결될 수 있다. 그러한 저장 매체들에는 여기에 설명된 부분망들 및 망들이 저장될 수 있다.
일부 실시 예에서, 상술한 기술들의 특정 양태들은 소프트웨어를 실행하는 프로세싱 시스템의 하나 이상의 프로세서에 의해 구현될 수 있다.  소프트웨어는 비일시적 컴퓨터 판독 가능한 저장 매체 상에 저장되거나 그 외 다르게 유형으로 구현되는 실행 가능한 명령들의 하나 이상의 집합을 포함한다.  소프트웨어는 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서를 상술된 기술들의 하나 이상의 양태를 수행하도록 처리하는 명령들 및 특정 데이터를 포함할 수 있다. 비일시적 컴퓨터 판독 가능한 저장 매체는 예를 들어, 자기 또는 광 디스크 저장 장치, 플래시 메모리와 같은 고체 상태 저장 장치들, 캐시, 랜덤 액세스 메모리(RAM) 또는 다른 비휘발성 메모리 장치 또는 장치들 등을 포함할 수 있다. 비일시적 컴퓨터 판독 가능한 저장 매체 상에 저장되 실행 가능한 명령들은 소스 코드, 어셈블리 언어 코드, 객체 코드 또는 하나 이상의 프로세서에 의해 해석되거나 그 외 다르게 실행 가능한 그 외 다른 명령 포맷을 가질 수 있다.
일반적인 설명으로 상술된 모든 동작 또는 요소가 필수적인 것은 아니라는 것, 특정 동작 또는 장치의 일 부분이 요구되지 않을 수 있다는 것, 그리고 설명된 것들에 더하여, 하나 이상의 추가 동작이 수행되거나 요소들이 포함될 수 있다는 것을 유념한다. 더 나아가, 동작들이 나열된 순서는 반드시 그것들이 수행되는 순서는 아니다. 또한, 개념들은 구체적인 실시 예들을 참조하여 설명되었다. 그러나, 해당 기술분야의 통상의 기술자는 아래 청구범위에 제시된 바에 따라 본 개시의 범위에서 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있다는 것을 이해한다. 따라서, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 해석되어야 하고, 모든 그러한 수정이 본 개시의 범위 내에 포함되는 것으로 의도된다.
혜택들, 다른 이점들 및 문제들에 대한 솔루션들이 구체적인 실시 예들에 관하여 상술되었다. 그러나, 혜택들, 이점들, 문제들에 대한 솔루션들 및 임의의 혜택, 이점, 또는 솔루션이 발생하거나 보다 현저해지게 할 수 있는 임의의 특징(들)이 임의의 또는 모든 청구항의 임계적, 필수적 또는 본질적 특징인 것으로 간주되지는 않아야 한다. 또한, 위에서 개시된 특정 실시 예들은 개시된 주제가 여기서의 교시 내용의 혜택을 받는 해당 기술분야의 통상의 기술자들에게 분명한 상이하나 균등한 방식들로 변경 및 실시될 수 있음에 따라 단지 예시적인 것이다. 아래 청구범위에서 설명되는 것 이외에, 제시되는 본 여기서의 구성 또는 설계의 세부 사항들에 어떠한 제한도 의도되지 않는다. 따라서 위에서 개시된 특정 실시 예들이 대체 또는 수정될 수 있고 모든 그러한 수정 예가 개시된 주제의 범위 내로 고려된다는 것이 명백하다. 따라서, 여기서 추구되는 보호는 아래 청구범위에 제시된 바에 따른다.

Claims (20)

  1. 알려져 있는 기능들을 구현하기 위한 제1 부분망들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 포함하는 인공 신경망을 훈련시키는 방법으로서,
    상기 제1 부분망들을 정의하는 제1 매개 변수 값들을 결정하기 위해 대응하는 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 상기 제1 부분망들을 훈련시키는 단계;
    망 훈련 데이터 집합으로부터의 입력 값들을 훈련된 상기 제1 부분망들을 포함하는 상기 인공 신경망에 제공하는 단계;
    상기 인공 신경망에 의해 생성되는 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들을 생성하는 단계;
    상기 오차 값들을 사용하여 상기 제1 매개 변수 값들을 수정하지 않고 상기 제2 부분망들을 정의하는 제2 매개 변수 값들을 수정하는 단계; 및
    상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 제1 부분망들을 훈련시키는 단계는 상기 대응하는 알려져 있는 훈련 데이터 집합들의 입력 값들을 상기 제1 부분망들에 동시에 제공하는 단계, 상기 제1 부분망들에 대한 오차 값들을 동시에 생성하는 단계 및 상기 제1 매개 변수 값들을 동시에 수정하는 단계를 포함하는, 방법.
  3. 청구항 2에 있어서, 상기 대응하는 알려져 있는 훈련 데이터 집합들의 상기 입력 값들을 상기 제1 부분망들에 동시에 제공하는 단계, 상기 제1 부분망들에 대한 상기 오차 값들을 동시에 생성하는 단계 및 상기 제1 부분망들을 정의하는 상기 제1 매개 변수 값들을 동시에 수정하는 단계가 상기 제1 매개 변수 값들에 대한 수렴 기준들이 충족될 때까지 반복적으로 수행되는, 방법.
  4. 청구항 3에 있어서,
    상기 제1 부분망들의 제1 부분 집합에 대응하는 알려져 있는 훈련 데이터 집합들의 부분 집합의 형성되는 컷아웃 훈련 집합에 기초하여 제2 부분망을 훈련시키는 단계로서, 상기 제1 부분 집합은 상기 제2 부분망을 내포하는, 상기 제2 부분망을 훈련시키는 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서,
    상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제1 부분망들 및 상기 제2 부분망들의 수정된 상기 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하는 단계;
    상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하는 단계;
    오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계; 및
    상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 저장하는 단계를 더 포함하는, 방법.
  6. 청구항 5에 있어서, 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 오차 값들을 생성하는 단계 및 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들을 수정하는 단계가 상기 제1 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행되는, 방법.
  7. 청구항 1에 있어서,
    상기 인공 신경망의 상기 제1 부분망들의 부분 집합에 대해 저장된 매개 변수 값들을 판독하는 단계; 및
    상기 인공 신경망의 상기 제1 부분망들의 상기 부분 집합에 대한 상기 저장된 매개 변수 값들을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하는 단계를 더 포함하는, 방법.
  8. 프로세싱 시스템으로서,
    다음에 의해 알려져 있는 기능들을 구현하기 위한 제1 부분망들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 포함하는 인공 신경망을 훈련시키도록 구성된 복수의 프로세싱 요소:
    상기 제1 부분망들을 정의하는 제1 매개 변수 값들을 결정하기 위해 대응하는 알려져 있는 훈련 데이터 집합들에 관해 별개로 그리고 병렬로 상기 제1 부분망들을 훈련시키는 단계;
    망 훈련 데이터 집합으로부터의 입력 값들을 훈련된 상기 제1 부분망들을 포함하는 상기 인공 신경망에 제공하는 단계;
    상기 인공 신경망에 의해 생성되는 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 오차 값들을 생성하는 단계;
    상기 오차 값들을 사용하여 상기 제1 매개 변수 값들을 수정하지 않고 상기 제2 부분망들을 정의하는 제2 매개 변수 값들을 수정함으로써 상기 제2 부분망들을 훈련시키는 단계; 및
    저장 구성요소에 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장하도록 구성된 입력/출력 엔진을 포함하는, 프로세싱 시스템.
  9. 청구항 8에 있어서, 상기 복수의 프로세싱 요소는 상기 대응하는 알려져 있는 훈련 데이터 집합들의 입력 값들을 상기 제1 부분망들에 동시에 제공하도록, 상기 제1 부분망들에 대한 오차 값들을 동시에 생성도록 그리고 상기 제1 매개 변수 값들을 동시에 수정하도록 구성되는, 프로세싱 시스템.
  10. 청구항 9에 있어서, 상기 복수의 프로세싱 요소는 상기 제1 매개 변수 값들에 대한 수렴 기준들이 충족될 때까지 반복적으로 상기 대응하는 알려져 있는 훈련 데이터 집합들의 상기 입력 값들을 제1 부분망들에 동시에 제공하도록, 상기 제1 부분망들에 대한 상기 오차 값들을 동시에 생성도록 그리고 상기 제1 부분망들을 정의하는 상기 제1 매개 변수 값들을 동시에 수정하도록 구성되는, 프로세싱 시스템.
  11. 청구항 10에 있어서, 상기 복수의 프로세싱 요소는:
    상기 제1 부분망들의 제1 부분 집합에 대응하는 알려져 있는 훈련 데이터 집합들의 부분 집합의 형성되는 컷아웃 훈련 집합에 기초하여 제2 부분망을 훈련시키는 단계로서, 상기 제1 부분 집합은 상기 제2 부분망을 내포하는, 상기 제2 부분망을 훈련시키도록 구성되는, 프로세싱 시스템.
  12. 청구항 8에 있어서, 상기 복수의 프로세싱 요소는:
    상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제1 부분망들 및 상기 제2 부분망들의 수정된 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하도록;
    상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하도록; 그리고
    오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하도록 구성되고,
    상기 입력/출력 엔진은 상기 저장 구성요소에 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 저장하도록 구성되는, 프로세싱 시스템.
  13. 청구항 12에 있어서, 상기 복수의 프로세싱 요소는 상기 제1 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하도록, 상기 오차 값들을 생성하도록 그리고 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하도록 구성되는, 프로세싱 시스템.
  14. 청구항 8에 있어서,
    상기 입력/출력 엔진은 상기 저장 구성요소로부터 상기 인공 신경망의 상기 제1 부분망들의 부분 집합에 대한 매개 변수 값들을 판독하도록 구성되고;
    상기 복수의 프로세싱 요소 중 적어도 하나는 상기 인공 신경망의 상기 제1 부분망들의 상기 부분 집합에 대한 상기 매개 변수 값들을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하도록 구성되는, 프로세싱 시스템.
  15. 방법으로서,
    프로세싱 시스템의 입력/출력 엔진을 사용하여, 알려져 있는 기능들을 구현하기 위한 제1 부분망들을 정의하는 제1 매개 변수 값들 및 알려지지 않은 기능들을 구현하기 위한 제2 부분망들을 정의하는 제2 매개 변수 값들을 판독하는 단계로서, 상기 제1 부분망들은 대응하는 알려져 있는 훈련 데이터 집합들에 관해 훈련된 것인, 상기 제1 매개 변수 값들 및 제2 매개 변수 값들을 판독하는 단계;
    상기 프로세싱 시스템에서, 상기 제1 부분망들 및 상기 제2 부분망들을 조합함으로써 인공 신경망을 생성하는 단계;
    망 훈련 데이터 집합 입력 값들을 상기 인공 신경망에 제공하는 단계;
    상기 프로세싱 시스템에서, 상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 출력 값들과 비교함으로써 상기 인공 신경망에 대한 오차 값들을 생성하는 단계; 및
    상기 프로세싱 시스템에서, 상기 오차 값들에 기초하여 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들을 수정하는 단계를 포함하는, 방법.
  16. 청구항 15에 있어서, 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 인공 신경망에 대한 상기 오차 값들을 생성하는 단계 및 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들을 수정하는 단계가 상기 제2 부분망들을 정의하는 상기 제2 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행되는, 방법.
  17. 청구항 16에 있어서,
    상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 저장 구성요소에 저장하는 단계를 더 포함하는, 방법.
  18. 청구항 17에 있어서,
    상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 제2 부분망의 수정된 상기 매개 변수 값들에 의해 정의되는 상기 인공 신경망의 인스턴스에 제공하는 단계;
    상기 인공 신경망으로부터의 출력 값들을 상기 망 훈련 데이터 집합의 라벨링된 값들과 비교함으로써 오차 값들을 생성하는 단계; 및
    상기 오차 값들을 사용하여 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계를 더 포함하는, 방법.
  19. 청구항 18에 있어서, 상기 망 훈련 데이터 집합의 상기 입력 값들을 상기 인공 신경망에 제공하는 단계, 상기 오차 값들을 생성하는 단계 및 상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들을 수정하는 단계가 상기 제1 매개 변수 값들 및 상기 제2 매개 변수 값들에 대한 수렴 기준이 충족될 때까지 반복적으로 수행되는, 방법.
  20. 청구항 18에 있어서,
    상기 제1 부분망들 및 상기 제2 부분망들을 정의하는 수정된 상기 매개 변수 값들을 상기 저장 구성요소에 저장하는 단계; 및
    상기 저장된 매개 변수 값들의 부분 집합을 사용하여 상이한 인공 신경망의 매개 변수 값들을 정의하는 단계를 더 포함하는, 방법.
KR1020207018925A 2017-12-13 2018-09-24 신경망의 기능적 부분망의 동시 훈련 KR20200088475A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/841,030 2017-12-13
US15/841,030 US11836610B2 (en) 2017-12-13 2017-12-13 Concurrent training of functional subnetworks of a neural network
PCT/US2018/052381 WO2019118041A1 (en) 2017-12-13 2018-09-24 Concurrent training of functional subnetworks of a neural network

Publications (1)

Publication Number Publication Date
KR20200088475A true KR20200088475A (ko) 2020-07-22

Family

ID=66696263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207018925A KR20200088475A (ko) 2017-12-13 2018-09-24 신경망의 기능적 부분망의 동시 훈련

Country Status (6)

Country Link
US (1) US11836610B2 (ko)
EP (1) EP3724823A4 (ko)
JP (1) JP7246392B2 (ko)
KR (1) KR20200088475A (ko)
CN (1) CN111492381A (ko)
WO (1) WO2019118041A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671888B1 (en) * 2017-12-14 2020-06-02 Perceive Corporation Using batches of training items for training a network
US11586902B1 (en) 2018-03-14 2023-02-21 Perceive Corporation Training network to minimize worst case surprise
US11604973B1 (en) 2018-12-05 2023-03-14 Perceive Corporation Replication of neural network layers
US11847567B1 (en) 2018-12-05 2023-12-19 Perceive Corporation Loss-aware replication of neural network layers
US11610116B2 (en) * 2018-12-31 2023-03-21 SK Hynix Inc. Storage device performance optimization using deep learning
EP3748545A1 (en) * 2019-06-07 2020-12-09 Tata Consultancy Services Limited Sparsity constraints and knowledge distillation based learning of sparser and compressed neural networks
US11494237B2 (en) * 2019-06-26 2022-11-08 Microsoft Technology Licensing, Llc Managing workloads of a deep neural network processor
CN110334799B (zh) * 2019-07-12 2022-05-24 电子科技大学 基于存算一体的神经网络推理与训练加速器及其运行方法
CN110414748B (zh) * 2019-08-12 2022-04-08 阳光新能源开发股份有限公司 光伏功率预测方法
US11941511B1 (en) 2019-11-11 2024-03-26 Perceive Corporation Storing of intermediate computed values for subsequent use in a machine trained network
US11620516B2 (en) * 2019-12-23 2023-04-04 Arm Limited Specializing neural networks for heterogeneous systems
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11960989B2 (en) 2020-07-24 2024-04-16 SK Hynix Inc. Read threshold estimation systems and methods using deep learning
JP7423484B2 (ja) * 2020-09-16 2024-01-29 株式会社東芝 学習装置、方法及びプログラム
US11237880B1 (en) * 2020-12-18 2022-02-01 SambaNova Systems, Inc. Dataflow all-reduce for reconfigurable processor systems
US11392740B2 (en) 2020-12-18 2022-07-19 SambaNova Systems, Inc. Dataflow function offload to reconfigurable processors
US11182221B1 (en) 2020-12-18 2021-11-23 SambaNova Systems, Inc. Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
US20220202348A1 (en) * 2020-12-31 2022-06-30 X Development Llc Implementing brain emulation neural networks on user devices
US11782760B2 (en) 2021-02-25 2023-10-10 SambaNova Systems, Inc. Time-multiplexed use of reconfigurable hardware
CN114118236A (zh) * 2021-11-10 2022-03-01 杭州海康威视数字技术股份有限公司 训练智能模型的方法及装置
US11978174B1 (en) * 2022-03-28 2024-05-07 Amazon Technologies, Inc. Virtual shoe try-on
US11804023B1 (en) * 2022-07-11 2023-10-31 Stylitics, Inc. Systems and methods for providing a virtual dressing room and a virtual stylist

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2639736B1 (fr) 1988-11-25 1991-03-15 Labo Electronique Physique Procede de retropropagation du gradient et structure de reseau de neurones
JPH06309293A (ja) 1993-04-26 1994-11-04 Nippon Telegr & Teleph Corp <Ntt> 多層構造型ニューラルネットワークの構成方法
US6269351B1 (en) 1999-03-31 2001-07-31 Dryken Technologies, Inc. Method and system for training an artificial neural network
US6587845B1 (en) * 2000-02-15 2003-07-01 Benjamin B. Braunheim Method and apparatus for identification and optimization of bioactive compounds using a neural network
EP2023277A4 (en) 2006-05-22 2010-08-25 Fujitsu Ltd NEURONAL NETWORK LEARNING DEVICE, METHOD AND PROGRAM
JP6164639B2 (ja) 2013-05-23 2017-07-19 国立研究開発法人情報通信研究機構 ディープ・ニューラルネットワークの学習方法、及びコンピュータプログラム
US9224068B1 (en) * 2013-12-04 2015-12-29 Google Inc. Identifying objects in images
US10540587B2 (en) * 2014-04-11 2020-01-21 Google Llc Parallelizing the training of convolutional neural networks
CN110110843B (zh) * 2014-08-29 2020-09-25 谷歌有限责任公司 用于处理图像的方法和系统
EP3218854B1 (en) * 2014-11-14 2021-01-06 Google LLC Generating natural language descriptions of images
US10482389B2 (en) * 2014-12-04 2019-11-19 Sap Se Parallel development and deployment for machine learning models
JP6258560B2 (ja) 2015-05-27 2018-01-10 株式会社日立製作所 ニューラルネットワークの学習装置及び学習方法
CN104980518B (zh) * 2015-06-26 2018-11-23 深圳市腾讯计算机系统有限公司 多学习主体并行训练模型的方法、装置和系统
US9633282B2 (en) 2015-07-30 2017-04-25 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
US9805305B2 (en) 2015-08-07 2017-10-31 Yahoo Holdings, Inc. Boosted deep convolutional neural networks (CNNs)
US20170193361A1 (en) * 2015-12-31 2017-07-06 Microsoft Technology Licensing, Llc Neural network training performance optimization framework
US10049307B2 (en) * 2016-04-04 2018-08-14 International Business Machines Corporation Visual object recognition
US10824940B1 (en) * 2016-11-30 2020-11-03 Amazon Technologies, Inc. Temporal ensemble of machine learning models trained during different time intervals
CN107341480A (zh) * 2017-07-12 2017-11-10 中国电子科技集团公司第二十八研究所 一种改进型pccnn神经网络模型的人群聚集检测方法
US10733538B2 (en) * 2017-09-29 2020-08-04 Oracle International Corporation Techniques for querying a hierarchical model to identify a class from multiple classes

Also Published As

Publication number Publication date
EP3724823A1 (en) 2020-10-21
WO2019118041A1 (en) 2019-06-20
EP3724823A4 (en) 2021-09-01
JP7246392B2 (ja) 2023-03-27
CN111492381A (zh) 2020-08-04
US20190180176A1 (en) 2019-06-13
US11836610B2 (en) 2023-12-05
JP2021507378A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
KR20200088475A (ko) 신경망의 기능적 부분망의 동시 훈련
US20200151573A1 (en) Dynamic precision scaling at epoch granularity in neural networks
CN110476172B (zh) 用于卷积神经网络的神经架构搜索
JP7450815B2 (ja) 階層的重み疎畳み込み処理のための方法とシステム
JP5865456B1 (ja) 半導体装置
JP7179850B2 (ja) 畳み込みニューラル・ネットワークの完全なカーネルを近似するためのスパース・カーネルの融合
CN108537328A (zh) 用于可视化构建神经网络的方法
WO2021143207A1 (zh) 图像处理方法、装置、计算处理设备及介质
CN111915011B (zh) 一种单振幅量子计算模拟方法
CN110032868A (zh) 基于机器学习来确定程序代码特性
KR102108342B1 (ko) 그래프 특성을 보존하는 대규모 그래프 증폭 시스템
JP2020107042A (ja) 学習モデル生成装置、学習モデル生成方法、及びプログラム
CN112819151A (zh) 用于识别图像的方法和设备以及训练方法
DE112020003105T5 (de) Schicht für schicht-debugging von neuronalen netzwerken
CN114972791A (zh) 图像分类模型训练方法、图像分类方法及相关装置
Chen et al. Polydiffuse: Polygonal shape reconstruction via guided set diffusion models
KR102464359B1 (ko) 합성 도메인에서 실제 도메인으로 적응하기 위한 이미지 변환 장치 및 방법
CN111931939A (zh) 一种单振幅量子计算模拟方法
JP6207583B2 (ja) 半導体装置および情報処理方法
EP4141751A1 (en) Error mitigation for sampling on quantum devices
KR101946692B1 (ko) 그래프 랭킹 수행 방법 및 장치
RU2718409C1 (ru) Система восстановления трехмерной структуры образца породы
CN111461310A (zh) 处理神经网络模型的神经网络设备、神经网络系统和方法
US20210319312A1 (en) Deep learning acceleration of physics-based modeling
JP6994572B2 (ja) データ処理システムおよびデータ処理方法

Legal Events

Date Code Title Description
A201 Request for examination