KR101298393B1 - 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법 - Google Patents

그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법 Download PDF

Info

Publication number
KR101298393B1
KR101298393B1 KR1020087003564A KR20087003564A KR101298393B1 KR 101298393 B1 KR101298393 B1 KR 101298393B1 KR 1020087003564 A KR1020087003564 A KR 1020087003564A KR 20087003564 A KR20087003564 A KR 20087003564A KR 101298393 B1 KR101298393 B1 KR 101298393B1
Authority
KR
South Korea
Prior art keywords
neural network
gpu
computer
textures
convolutional neural
Prior art date
Application number
KR1020087003564A
Other languages
English (en)
Other versions
KR20080042083A (ko
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 KR20080042083A publication Critical patent/KR20080042083A/ko
Application granted granted Critical
Publication of KR101298393B1 publication Critical patent/KR101298393B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/1801Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
    • G06V30/18019Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
    • G06V30/18038Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters
    • G06V30/18048Biologically-inspired filters, e.g. difference of Gaussians [DoG], Gabor filters with interaction between the responses of different filters, e.g. cortical complex cells
    • G06V30/18057Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

콘볼루션 신경망은 그래픽 처리 유닛 상에 구현된다. 상기 망은 오차 함수의 기울기에 따라 각 역방향 패스 상에서 수정된 콘볼루션 커널 및 바이어스 행렬과 함께 일련의 순방향 패스 및 역방향 패스을 통하여 트레이닝된다. 이것은 GPU 상의 픽셀 쉐이더 유닛의 병렬 처리 능력을 이용하여 구현되고, 픽셀 쉐이더 상에 연산을 프로그램하기 위하여 시작에서 종료까지의 일련의 공식이 이용된다. 텍스처를 통하여 프로그램에 대한 입력 및 출력이 이루어지고, 픽셀 쉐이더 유닛 레지스터에 걸쳐 합산이 요구되는 경우 다중 패스 합산 처리가 사용된다.
Figure R1020087003564
그래픽 처리 유닛, 신경망, 신경망 트레이닝, 콘볼루션 신경망, 콘볼루션

Description

그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는 방법{TRAINING CONVOLUTIONAL NEURAL NETWORKS ON GRAPHICS PROCESSING UNITS}
본 발명은 신경망을 트레이닝하는 방법에 관한 것이며, 상세하게는 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는 방법에 관한 것이다.
신경망( Neural Networks )
문자 인식 및 이미지 인식과 같은, 컴퓨터에 관한 특정한 문제는 기계-학습 기술(machine-learning techniques)에 의하여 잘 처리될 수 있음이 알려져 있다. 이러한 기술 중에서 가장 주된 것은 신경망을 사용하는 것이다. 신경망은 상호접속된 뉴런(interconnected "neurons")이란 발상에 기반한 알고리즘의 한 분류이다. 일반적인 신경망에서 뉴런은 데이터 값을 포함하는데, 접속별로 사전 정의된 강도(pre-defiend strength) 및, 각 특정 뉴런에 대한 접속들의 합산이 사전 정의된 문턱값을 넘는지 여부와 같이 접속에 따라 각 데이터 값이 접속된 뉴런의 값에 영향을 미친다. 적절한 접속 강도 및 문턱값을 결정("트레이닝"이라고도 부르는 절차)함으로써, 신경망은 효과적으로 이미지 및 문자를 인식할 수 있다. 그룹 사이의 접속을 보다 명확히 하고, 값의 각 연산에 대한 것으로 만들기 위하여, 뉴런은 주로 "층(layer)"으로 그룹화된다.
도 1은 수기 문자 샘플(handwriting character sample) "m"(100)을 해석하는 신경망의 간략화된 블록도를 도시한다. 도시된 예시에서, 도시된 뉴런의 값은 0 또는 1 중 하나이다. 이것은 설명을 간략화하기 위한 것이며, 신경망의 뉴런에 존재할 수 있는 값의 유형 또는 범위를 한정하지 않는다. 도시된 예시에서, 입력 계층(110) 또는 "제0 계층"을 위한 값의 집합을 생성하기 위하여, 수기 샘플의 전자 이미지가 사용된다. 몇몇 구현례에서, 이것은 픽셀이 켜져 있는지 꺼져 있는지 여부에 따라 각 뉴런이 1 또는 0을 표시하도록 샘플(100)의 각 픽셀을 제0 계층의 특정 뉴런에 직접 맵핑(mapping)함으로써 이루어질 수 있다. 뉴런에 값을 할당하는 또 다른 예시 방법은 콘볼루션 신경망을 참조하여 이하에 논의된다. 신경망의 예측 불가능성 및 신경망으로 해결하려 하는 문제에 따라, 망의 각 계층은 상이한 수의 뉴런들을 가질 수 있는데, 이것들은 입력 데이터의 특정 품질에 연관될 수도 있고, 아닐 수도 있다.
도 1에 도시된 바와 같이, 제0 계층의 다양한 뉴런이 다음 계층인 제1 계층(120)의 뉴런과 접속된다. 완전 접속 신경망(fully-connected neural network)이라고 부르는 일 구현례에서, 특정 계층의 뉴런 각각이 다음 계층의 뉴런과 접속된다. 이것은, 도 1의 예시에서, 2개의 뉴런이 제1 계층의 모든 뉴런에 접속된 것을 도시함으로써 부분적으로 설명된다. 이어서, 제1 계층의 각 뉴런은 제0 계층의 각각의 뉴런으로부터 입력 값을 수신한다. 그리고 나서, 이 입력 값들이 합산되어 그 합산이 바이어스 또는 문턱값과 비교된다. 그 값이 특정 뉴런에 대한 문턱값을 초과하는 경우, 그 뉴런은 다음 뉴런 층에서 뉴런에 대한 입력으로 사용될 수 있는 양의 값을 갖는다. 이 연산은 신경망의 다양한 계층을 통하여 최종 계층(130) - 본 문서에서 '제n 계층'로 지칭됨 - 에 도달할 때까지 계속된다. 이 시점에서, 신경망 루틴의 출력이 제 n계층의 값으로부터 판독될 수 있다. 문자 인식에 사용된 망의 일 구현례에서, 특정 문자에 제n 계층의 각 값이 할당된다. 이 구현례에서, 망은 하나의 뉴런에 하나의 큰 양의 값만을 가지는 출력 계층으로 끝나도록 구성되고, 그 값은 망이 수기 입력 문자가 어떤 문자일 가능성이 가장 높다고 연산했는지를 표시한다.
그러나, 도 2에 도시된 바와 같이, 접속에 대한 연산이 복잡할 수 있다. 도 2는 이전 계층에 존재하는 값에 기반하여 뉴런 값을 연산하는 방법의 블록도이다. 도 2는 다양한 행렬을 도시하며, 행렬의 지수가 (또는 크기가) 계층별로, 망별로 변화할 것이고, 다양한 구현에 따라 행렬이 컴퓨터 메모리에 다르게 맵핑 또는 배향될 수 있음에 유의하여야 한다. 도 2에 도시된 바와 같이, 신경망을 구현하는 하나의 방법은 제0 계층 행렬(210)에 의해 도시된 것처럼, 각 수준을 뉴런 값의 행렬로 취급하는 것이다. 그러면, 접속 강도가 제0 계층 행렬(210)에 곱해지는 변환 행렬(220)로 구현될 수 있다. 이 곱셈은 정규 행렬 곱셈만을 통하여, 이전 계층의 각 값이 접속 강도에 따라 크기 조절된 후 합산될 수 있도록 할 수 있다. 곱셈이 수행된 후, 다음 수준의 각 뉴런의 문턱값을 제공하기 위하여 바이어스 행렬(230)이 곱 행렬에 더해진다. 그리고 나서, 시그모이드 함수(sigmoid function)(한 실시예에서는 tanh())가 각 결과값에 적용되어 문턱값을 넘었는지 여부를 판정하고, 결과값은 다음 계층을 위한 행렬에 위치된다. 이것을 "스쿼싱 함수(squashing function)"라고 부를 수 있다. 따라서, 도 2에 도시된 것처럼, 각 계층 사이의 접속 및 전체 망은 일련의 행렬로 표현될 수 있다. 이 행렬에 대해 적절한 값을 찾는 것이 신경망 트레이닝의 문제이다.
도 2는 신경망이 행렬로 구현될 수 있음을 도시하는데, 신경망의 연산 및 트레이닝은 이하에 기술된 것처럼 다수의 수학적인 연산들과 관련된다. 또한, 불완전 접속 신경망(non-fully-connected neural network)은 보다 고도로 복잡한 연산을 요구할 수 있다.
요 약
픽셀 쉐이더 프로그램은 그래픽 처리 유닛 상에서 콘볼루션 신경망을 효율적으로 트레이닝할 수 있게 한다. 예컨대, 콘볼루션 신경망은 그래픽 처리 유닛 상에서 일련의 텍스처로 구현된다. 망은 일련의 순방향 및 역방향 패스를 통하여 트레이닝되며, 오차 함수(error function)의 기울기에 따른 기울기 하강법(gradient descent method)에 의하여 각 역방향 패스 중에 수정된 바이어스 행렬 및 콘볼루션 커널을 포함한다.
구현은 GPU 상의 픽셀 쉐이더 유닛의 병렬 처리 능력을 이용하여, 순방향 및 역방향 패스를 효과적으로 동시에 연산한다. 또한, 픽셀 쉐이더 유닛 상에서 연산을 수행하기 위하여 모든 공식들의 예시적인 집합을 이용한다. 한 예시에서, 텍스처를 통하여 프로그램에 대한 입력 및 출력이 행해지고, 이는 연산 중에도 동작된다. 또 다른 예시에서, 픽셀 쉐이더 유닛의 레지스터 전체에 걸쳐 합산이 요구되는 경우 다중 패스 합산 처리(multi-pass summation process)가 사용된다. 다양한 기술 및 시스템은 조합되거나 독립적으로 사용될 수 있다.
본 요약은 이하의 실시예에 자세히 기술된 기술적 사상의 선택을 간략화된 형태로 소개하기 위하여 제공된다. 본 요약은 청구된 기술적 사상의 중요한 특징 또는 필수적인 특징을 식별하는 것으로 의도된 것이 아니며, 청구된 기술적 사상의 범위를 판정하는데 보조로 사용되는 것으로 의도된 것도 아니다.
부가적인 특징 및 이점은 첨부된 도면을 참조하여 진행될 이하의 실시예의 상세한 설명으로부터 명백해질 것이다.
도 1은 종래의 완전 접속 신경망의 블록도.
도 2는 완전 접속 신경망의 2개 계층 사이의 접속에 대한 행렬 구현의 블록도.
도 3은 그래픽 처리 유닛 아키텍처의 블록도.
도 4a 및 4b는 수기 샘플에 대한 콘볼루션 커널의 동작의 두 가지 예시의 블록도.
도 5는 그래픽 처리 유닛 상의 콘볼루션 신경망을 위한 대표적인 트레이닝 프로세스의 흐름도.
도 6은 그래픽 처리 유닛 상의 연산을 위하여 신경망 데이터를 준비하기 위한 하위 프로세스의 흐름도.
도 7은 다중 패스 합산의 한 예시의 블록도.
도 8은 도 6의 콘볼루션 신경망 기술을 구현하기 위하여 적합한 연산 환경의 블록도.
이하의 설명은 그래픽 처리 유닛 아키텍쳐("GPU" architecture) 상에서 콘볼루션 신경망을 트레이닝하는 것에 관한 것이며, 상세하게는 수기 인식에 관한 것이다. GPU는 입력 데이터에 대해 순방향 패스 및 역방향 패스를 반복하여 수행하면서, 각 패스 중에 신경망을 포함하는 행렬을 수정 및 개량한다. 여기에 설명된 기술들 중의 다수가 GPU의 효율성을 이용하도록, 그리고 GPU 상에서 효율적으로 실행될 수 있게 설계된 픽셀 쉐이더 프로그램들을 이용하도록 설계되었다.
1. GPU 아키텍처
본 문서에 설명된 기술들은 그래픽 처리 유닛 상에서 구현된다. 그래픽 처리 유닛의 한 예가 도 1에 도시되어 있고, 그것은 종래의 GPU 아키텍쳐(300)의 간략화된 개관을 도시한다. 한 구현에서, GPU 아키텍처는 도 8에 도시된 GPU(815)에 대응한다. 렌더링된 이미지의 기하형상(geometry)을 기술하는 디스플레이 데이터(305)는 버텍스 쉐이더 유닛(310)으로 입력되고, 유닛(310)에서 기하학적인 형상이 폴리곤으로 표현(polygonal representation)된다. 이 기하학적 형상은 래스터라이저로 입력되고, 래스터라이저는 폴리곤들을 내삽 및 샘플링하여 이미지 공간에 점들의 샘플 집합을 만들며, 그러면 그 점들은 쉐이딩될 수 있고, 그것들에 부가된 텍스처를 가질 수 있다. 이 점들은 일련의 프로그램 가능한 픽셀 쉐이더 유닛(330)으로 전달되고, 유닛은 병렬 연산 기술을 이용하여 점들의 쉐이딩뿐만 아니라 텍스처의 추가 및 조작을 수행한다. 병렬 연산을 수행하는 능력과 더불어 텍스처를 조작하는 능력 때문에 GPU, 특히 픽셀 쉐이더 유닛은 신경망 연산을 위한 플랫폼으로 유용하다. 픽셀 쉐이더 유닛 연산은 픽셀 쉐이더 유닛을 이용하기 위하여 작성된 GPU 실행가능 프로그램인 픽셀 쉐이더 프로그램의 제어 아래 빈번하게 수행된다.
컴퓨터 CPU에 의하여 트레이닝 전에 그래픽 메모리(350)로 미리 로드될 수 있는 텍스처는 텍스처 캐시(340)에 캐싱(caching)된다. 처리가 끝나면, 이미지 점들은 그래픽 메모리(350)로 전송되기에 앞서 프레임 버퍼(360)에 위치될 수 있다. 그러나, 본 발명의 다양한 구현에서, 신경망으로의 입력 데이터뿐만 아니라 출력 데이터도 텍스처에 보존될 것이다. 따라서, 다양한 구현에서 프레임 버퍼로 출력된 이미지 점들은 무시되거나, 전혀 생성되지 않는다.
2. 콘볼루션 신경망
적절히 트레이닝된 경우, 상기 기술된 완전 접속 신경망은 수기 문자를 인식할 수 있지만, 입력에 대해 동작하는 경우 주로 형태 및 근접성을 이용하는데 실패한다. 그 이유 중 하나는 모든 픽셀들이 인접 셀들을 무시하고 독립적으로 동작하기 때문이다. 이러한 이유로, 단일한 값 대신에 값들의 배열을 각 뉴런과 연관시킴으로써 동작하는 콘볼루션 신경망이 사용된다. 개념적으로, 이 배열을 작은 이 미지 패치로 생각할 수 있다. 후속 계층을 위한 뉴런 값의 변환은 곱셉으로부터 콘볼루션으로 일반화될 수 있다. 이는 접속 강도(230)가 스칼라 값이 아니고 콘볼루션 커널이라는 것을 의미한다. 도 4a 및 4b는 문자 샘플 "m"(400)에 대해 동작하는 콘볼루션 커널의 두 가지 예를 도시한다. 도 4a에서, 샘플은 수직선을 표현하는 콘볼루션 커널(410)과 조합된다. 그 결과인 픽셀 패치(420)는 샘플에 존재하는 3개의 수직선을 포함한다. 유사하게, 도 4b에서, 수기 샘플(450)은 우상단 방향의 대각선을 표현하는 콘볼루션 커널(460)과 조합된다. 이것은 입력 문자의 2개의 수직선들을 포함하는 픽셀 패치(460)로 귀착된다. 도 4a 및 4b에 도시된 바처럼, 2개의 결과 패치는 픽셀 근접성을 유지하면서 문자에 대한 상이한 정보를 표시한다. 이는 보다 효과적인 문자 인식을 가능하게 할 수 있다.
그러나, 이렇게 보다 복잡한 변환들은 보다 복잡한 신경망 행렬과 관련된다. 따라서, 완전 접속 망에서 행렬은 숫자 값의 배열을 포함하는 반면, 콘볼루션 신경망에서는 각 행렬 요소가 직사각형 (또는 정사각형) 픽셀 패치이며, 유사하게, 바이어스 행렬은 패치를 포함하고, 각 패치의 각 요소에 대하여 시그모이드 함수가 수행된다. 또한, 간단한 행렬 곱셈에 비하여, 콘볼루션 신경망에서의 연산들은 보다 복잡한 수학을 포함하고, 향상된 병렬 연산도 요구된다. 콘볼루션 신경망의 구현의 기초를 이루는 연산의 한 예가 이하에(4절) 기술된다. 콘볼루션 망에 대한 부가적인 정보는 P.Y.Simard, D.Steinkaus 및 J.C. Platt, "Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis," Proc.International Conference on Document Analysis and Recognition, pp. 958- 962, 2003에서 찾을 수 있고, 이것은 본 명세서에 참조문헌으로 편입된다.
3. 트레이닝 프로시저
도 5는 콘볼루션 신경망을 트레이닝하기 위한 예시 프로세스(500)를 도시한다. 프로세스(500)의 다양한 구현에서, 동작은 제거 또는 조합되거나, 하위 동작으로 분할될 수 있다. 트레이닝할 신경망뿐만 아니라 트레이닝 샘플들도 수신하는 동작(510)에서 절차가 시작된다. 일반적인 구현례에서, 망은 샘플 콘볼루션 커널 및 샘플 바이어스로 미리 설정될 수 있지만, 일관되고 효과적인 결과를 제공하도록 각각 개량될 필요가 있다. 트레이닝 샘플은 일반적으로 (수만 개 단위의) 다수의 수기 문자 샘플과 관련되고, 또한, 각 샘플이 해석되어야 할 정확한 글자를 표시한다. 그리고, 동작(520)에서 샘플 및 신경망 행렬과 같은 신경망 데이터는 GPU(300)의 픽셀 쉐이더 유닛(330)에 의하여 그래픽 데이터로서 다루어질 수 있도록 준비된다. 이 동작에 대한 예시 프로세스가 도 6을 참조하여 이하에 상세히 기술된다. 한 실시예에서, 두 동작(510 및 520) 모두가 GPU(815)와 연관된 CPU에 의하여 수행된다. 또 다른 실시예에서, 모든 준비는 GPU(815)에 의하여 수행된다.
도 5가 도시한 바와 같이, 각 샘플은 콘볼루션 신경망으로 입력될 것이고, 출력이 계산되어 망이 문자 인식을 얼마나 적절하게 하는지를 판정한다. 이것을 "순방향 패스"라고 부른다. 나아가, "역방향 패스"라고 부르는 것을 통하여 망을 구성하는 각 행렬에 관한 오차의 정도가 결정되고, 행렬을 수정하여 오차를 조정한다. 범용 GPU 프로그래밍의 일반적인 관례에 따라, 본 문서에 기술된 구현례는 일 련의 픽셀 쉐이더 프로그램로 작성될 수 있다.
이리하여, 동작(530)에서 GPU는 각 샘플 입력에 대하여 루프에 들어간다. 동작(540)에서 순방향 패스가 신경망으로 전파되어 주어진 샘플에 대한 출력을 결정한다. 다음으로, 동작(550)에서, 신경망이 기대 출력으로부터 얼마나 멀리 떨어져 있는지를 계산하기 위하여 오차 함수가 사용된다. 이어서, 동작(560)에서, 오차 함수에 대한 기울기 함수가 결정된다. GPU는 각 신경망 행렬의 각 요소에 대한 오차의 편도함수를 포함하는 기울기 함수를 연산함으로써, 기울기 하강법에 따라 각 행렬을 얼마나 조정해야 하는지를 계산할 수 있다. 그리고, 동작(570)에서, 콘볼루션 커널 및 바이어스를 포함하는 행렬이 기울기 함수에 따라 수정된다. 동작들(550, 560 및 570)은 집합적으로 "역방향 패스"로 알려져 있는데, 출력 오차 정보를 획득하여 그것을 각 신경망 행렬을 위해 요구되는 수정을 결정하는데 사용하기 때문이다. 순방향 패스 및 역방향 패스에서 사용된 공식의 한 실시예의 예시가 4절에서 기술된다. 마지막으로, 동작(580)에서, 샘플 입력이 남아 있는 한, 방법(500)의 순방향 패스/역방향 패스 단계가 반복된다. 샘플 입력이 끝나면, 망은 입력을 통하여 트레이닝되어 있고, 프로세스가 종료된다.
도 6은 프로세스(500)의 동작(520)에서 신경망 데이터를 그래픽 데이타로 준비하기 위한 예시 프로세스(600)를 도시한다. 프로세스(600)의 다양한 구현들에서, 동작은 제거 또는 조합되거나, 하위 동작으로 분할될 수 있다. 동작(610)에서 프로세스가 시작되어, 전체 뷰포트를 커버하는 하나의 삼각형으로 구성된 장면을 생성한다. 프로세스는 이를 통해 래스터라이저 및 GPU의 다른 단(stage)들이 연 산 결과에 영향을 주는 것을 막아서, 픽셀 쉐이더 연산에 집중할 수 있게 된다.
바람직한 실시예에서, 각각의 데이터 병렬 변수는 2차원 텍스처로 저장된다. 그러나, 일부 변수들은 2차원 이상이기 때문에, 그것들은 동작(620)에서 2차원 텍스처로 임베디드된다. 예컨대, 변수
Figure 112008011063609-pct00001
는 이하의 공식들에 따라
Figure 112008011063609-pct00002
로 "평평해질" 수 있다(표시법에 관한 설명은 4절 참조).
Figure 112008011063609-pct00003
(3.1)
Figure 112008011063609-pct00004
(3.2)
다음으로, 동작(630)에서, 텍스처에 대하여 좌표계가 결정된다. 이것은 픽셀 쉐이터 유닛이 "픽셀"에 대하여 동작하도록 설계되기 때문에 필수적인 것이며, 각 "픽셀"(이 경우에는 콘볼루션 망 행렬의 한 요소)의 위치가 결정되어야 한다. 주로 사용되는 하나의 방법은 버텍스 쉐이더에게 제공된 삼각형의 버텍스를 "텍스처 좌표" 정보와 연관시키는 것이다. 그러면 GPU는 각 출력 픽셀에서 텍스처 좌표의 값을 내삽할 수 있고, 그 내삽된 값을 픽셀 쉐이더 유닛 레지스터 중 하나에 공급할 수 있다. 이것은 픽셀의 독자성을 확립하기 위해서 사용될 뿐만 아니라, 픽셀 쉐이더 프로그램을 실행하는 동안 요구되는 값을 미리 연산하기 위해서도 사용될 수 있다.
그러나, 래스터라이저의 내삽 함수를 의미 있는 사용하는 경우, 프로그램들이 버텍스 데이터를 각 전달 전에 적절히 설정할 필요가 있게 된다. 데이터를 설 정하기 위한 오버헤드(overhead)는 미리 연산된 값으로부터 얻을 수 있는 임의의 이득을 능가할 수 있다. 대안적인 구현은 마이크로소프트사(Microsoft Corporation)의 ShaderModel 3.0 및 그것의 vPos 레지스터를 이용하는 것이다. 이 레지스터는 그것의 x 성분 및 y 성분에 출력 텍스처의 좌상단으로부터의 정수 오프셋을 포함한다. 그래서, 입력 텍스처로부터 값을 검색하기 위하여 요구되는 주소는 vPos의 간단한 선형 조합이 된다. 결정된 좌표계를 이용하여, 프로세스는 동작(630)에서 텍스처를 생성할 수 있다. 마지막으로, 단계(640)에서, 프로세스가 시작되기 전에 텍스처가 GPU로 로딩된다. 한 실시예에서, GPU가 시스템 메모리를 액세스하여 연산 시간이 길어지는 것을 방지하기 위하여, 가능한 한 다수의 텍스처가 그래픽 메모리로 로딩된다. 이 시점에서 프로세스가 종료된다.
4. 구현 및 도출( Derivation )
다른 구현례에서는 다른 시스템이 사용될 수 있지만, 여기에서 모든 예제들은 ShaderModel 3.0 픽셀 쉐이더 시스템을 이용한 것이다. 상기에 논의된 바와 같이, 신경망은 임의의 숫자 N개의 뉴런 계층을 포함하고, 각 뉴런은 숫자 값을 갖는다. 이 절에서, 제v 계층을 l v 로 지칭한다. l v 는 벡터로서, 그 길이를 n v 로, i번째 요소를 l i v 로 표시한다. 각 계층 l v + 1 는 "학습 파라미터들(learned parameters)"인 K v b v 를 사용하여 이전 계층 l v 로부터 연산된다. 트레이닝 프로세스의 목표 는 이 파라미터를 위한 양호한 값을 찾는 것이고, 이 기술은 기울기 하강법에 의하여 이를 수행한다. 표기상의 편의를 위하여, 조건부 연산자 I {c} 를 사용하며, 이것은 조건 c가 참인 경우 1과 같고, 그렇지 않으면 0과 같다. 여기에 기술된 도출에 의해 신경망 트레이닝을 위한 공식이 제공되고, 트레이닝 기술의 수행에 있어 픽셀 쉐이더 프로그램의 발동 회수를 줄이기 위하여, 공식은 간략화되고 대수적으로 결합된다.
4.1 완전 접속 망 - 순방향 패스
콘볼루션 신경망의 경우를 이해하기 위하여, 비교적 간단한 경우로서, 계층 개수 N이 2인 완전 접속 망과 비교하는 것이 도움이 될 것이다. 이 경우, 각 계층이 이전 계층으로부터 연산되는 순방향 패스 중에, l v + 1 는 다음과 같이 연산된다.
Figure 112008011063609-pct00005
(4.1)
0≤v<N 인 경우이다. 여기에서, σ는 tanh의 요소 단위(element-wise) 적용을 표현하는 "스쿼싱 함수"이고, K v 는 2개 계층 사이의 접속 강도를 표현하는 n v +1 × n v 행렬이며, b v 는 바이어스를 표현하는 길이 n v +1 의 벡터이다.
4.2 완전 접속 망 - 오차 함수
문자에 대한 분류자로서 출력 계층 l N 을 사용하기 위하여, n N 개의 분류를 구 별하고, 입력이 분류 i에 소속될 확률
Figure 112008011063609-pct00006
의 척도로서 l 1 N 을 가진다. 이를 유효한 확률로 바꾸기 위하여, "소프트맥스(softmax)" 함수를 사용하여 이를 표준화한다.
Figure 112008011063609-pct00007
(4.2)
주어진 현재 입력의 올바른 분류가 t인 경우, 이상적인 계산 결과는
Figure 112008011063609-pct00008
이어야 한다. 이 원리로부터의 전체 도출 E는 "크로스 엔트로피(cross-entropy)" 공식을 사용하여 측정될 수 있다.
Figure 112008011063609-pct00009
(4.3)
4.3 완전 접속 망 - 역방향 패스
상기 기술된 바처럼, 신경망의 다양한 파라미터를 트레이닝하기 위하여, 기울기 하강법이 사용된다. 이것은 파라미터 K v b v 각각에 대한, 오차 함수 E의 편도함수를 찾는 것과 관련된 것이다. 간단히 표기하기 위하여, 이하를 도입한다.
Figure 112008011063609-pct00010
(4.4)
여기에서 □는 요소 단위 곱셈을 표시하고, σ'은 tanh의 요소 단위 적용이다. 등식 (4.4)에 E의 정의를 대입하여 이하의 등식을 얻을 수 있다.
Figure 112008011063609-pct00011
(4.5)
Figure 112008011063609-pct00012
(4.6)
이것으로부터, 0≤v<N 인 경우 이하와 같은 결론을 내릴 수 있다.
Figure 112008011063609-pct00013
(4.7)
Figure 112008011063609-pct00014
(4.8)
여기에서
Figure 112008011063609-pct00015
는 외적을 표시한다. 또한, 0≤v<N 인 경우 이하와 같은 결론을 내릴 수 있다.
Figure 112008011063609-pct00016
(4.9)
여기에서 ( K v ) T K v 의 전치 행렬을 표현한다.
전술한 등식은 이하와 같이 구현되어 파라미터를 갱신함으로써 신경망 파라미터를 수정할 수 있다.
Figure 112008011063609-pct00017
(4.10)
Figure 112008011063609-pct00018
(4.11)
0≤v<N 인 경우이며, γ는 학습율(learning rate)을 표현한다. 한 실시예에 서, 이 학습율은 10-3으로 설정된다.
4.4 콘볼루션 신경망 - 순방향 패스
완전 접속 신경망과는 대조적으로, 콘볼루션 망에서는 계층의 각 요소 li v는 스칼라가 아니고, p v × p v 정사각형 숫자 패치이다. 유사하게, Kv i ,js v × s v 크기의 콘볼루션 커널을 표시하는 것으로 사용될 것이고, b i v p v +1 × p v +1 바이어스 패치를 표시하는 것으로 사용될 것이다. 계층, 바이어스 및 커널의 개별 요소는 각각 I v <i><x,y> , K v <i,j><x,y> b v <i><x,y> 로 기술될 것이다.
l v +1 을 연산하기 위한 공식은 완전 접속된 경우에 대해 알려진 공식과 유사하다.
Figure 112008011063609-pct00019
(4.12)
그런데, 여기에서 * 기호는 다소 드문 연산을 표시하는 것으로 사용되었다. 그것은 직관적으로 행렬 벡터 곱셈과 유사하지만, 최내측 연산(innermost operation)이 스칼라의 곱셈이 아니라 패치의 콘볼루션 및 서브샘플링이다. 더 정확하게는, l v p v × p v 패치의 길이 n v 인 벡터이고 K v s v × s v 커널의 n v +1 × n v 행렬 인 경우, w= K v * l v wp v +1 × p v +1 패치의 길이 n v +1인 벡터이고 이하의 등식이 성립함을 의미한다.
Figure 112008011063609-pct00020
(4.13)
Figure 112008011063609-pct00021
(4.14)
p v , s v =1인 경우, 등식 (4.12), (4.13) 및 (4.14)가 완전 접속 망을 위한 등식으로 정리된다는 점에서, 상기의 등식이 완전 접속된 경우를 위한 일반화된 등식임을 보일 수 있다.
4.5 콘볼루션 신경망 - 오차 함수
완전 접속 망에서의 오차 함수에 대하여 상기 기술된 등식은 콘볼루션 망에도 적용된다.
4.6 콘볼루션 신경망 - 역방향 패스
상기에 언급된 바와 같이, 역방향 패스 중에는, 네트워크에서의 각 변수에 대한 E의 편도함수를 이용하여 E의 기울기가 얻어진다. 이하의 식으로부터 시작한다.
Figure 112008011063609-pct00022
(4.15)
여기에서 □는 요소 단위 곱셈을 표시하고, σ'은 상기 기술된 바처럼 "스쿼싱 함수"로서 사용된, tanh의 요소 단위 적용이다. 등식 (4.15)로부터, 도함수들은 다음과 같이 요약된다.
Figure 112008011063609-pct00023
(4.16)
Figure 112008011063609-pct00024
(4.17)
Figure 112008011063609-pct00025
(4.18)
여기에서 ( K v ) T K v 의 전치 행렬을 표현한다.
이 응용예에서 사용된 연산자 *'
Figure 112008011063609-pct00026
는 표준이 아님에 유의하여야 한다.
Figure 112008011063609-pct00027
연산자는 외적과 유사하지만, 최내측 곱셈이 콘볼루션 및 서브샘플링으로 대체된 것이다.
Figure 112008011063609-pct00028
p v +1 × p v +1 패치의 길이 n v +1 인 벡터이고, l v +1 p v × p v 패치의 길이 n v 인 벡터인 경우, M=
Figure 112008011063609-pct00029
Figure 112008011063609-pct00030
l v 는 M이 s v × s v 패치의 n v +1 × n v 행렬이며 이하의 등식이 성립함을 의미한다.
Figure 112008011063609-pct00031
(4.19)
Figure 112008011063609-pct00032
(4.20)
*' 연산자는 콘볼루션 인수(convolution argument)를 줄이는 것이 아니라 확장하므로, * 연산자의 반대에 가깝다. Ms v × s v 커널의 n v × n v +1 배열이고,
Figure 112008011063609-pct00033
p v+1 × p v +1 패치의 길이 n v +1 인 벡터인 경우, u=M*'
Figure 112008011063609-pct00034
up v × p v 패치의 길이 벡터이고 이하의 등식이 성립함을 의미한다.
Figure 112008011063609-pct00035
(4.21)
Figure 112008011063609-pct00036
(4.22)
여기에서 "*' cond"는 이하의 4개의 조건 모두를 충족시키는 것과 동등한 것이다.
Figure 112008011063609-pct00037
(4.23)
Figure 112008011063609-pct00038
(4.24)
Figure 112008011063609-pct00039
(4.25)
Figure 112008011063609-pct00040
(4.26)
상기와 같이, p v , s v =1인 경우, 위의 등식들은 완전 접속 망을 위한 등식으로 정리된다.
4.7 다른 계층의 모델링
실제로는, 콘볼루션 신경망은 콘볼루션 계층 및 완전 접속 계층, 즉 p v , s v >1인 일부 계층 및 p v , s v =1인 일부 계층을 모두 포함한다. 각 계층은 (그것이 완전 접속된 경우의 일반화이므로) 콘볼루션 계층으로서 수학적으로 모델링될 수 있고, 완전 접속 계층을 특별한 경우로 감지하여 더 간단한 공식을 사용하는 경우 좀더 효과적인 연산이 가능해진다.
또한, "과도" 계층("transitional" layer)으로 부를 수 있는 또 다른 특별한 경우가 있다. 이것은 p v , s v >1이지만 p v +1 =1인 경우이다. 이 경우에, 순방향 패스는 다음과 같이 간략화된다.
Figure 112008011063609-pct00041
(4.27)
유사하게, 역방향 패스는 다음과 같이 간략화된다.
Figure 112008011063609-pct00042
(4.28)
Figure 112008011063609-pct00043
(4.29)
4.8 다중 패스 합산
픽셀 쉐이더 유닛의 데이터 병렬 특성은 합산 수행을 어렵게 만든다. 각 픽셀에서의 결과는 다른 픽셀에서의 결과에 의존하지 않기 때문에, 효율성을 회복하기 위해서 각 패스가 수평으로 인접한 어떤 고정된 개수의 패치끼리 합산하도록 몇 개의 패스에서 합산할 수 있다. Ap×p 패치의 n×m 배열인 경우, 함수 S r 은 다음과 같이 정의될 수 있다.
Figure 112008011063609-pct00044
(4.30)
이 다중 패스 합산의 한 예시가 도 7에 도시된다. 도 7에서, 행렬(710)은 각 행별로 합산될 것이 요구된다. 하나의 행이 예시 행으로서 도시된다. 도 7의 예시에서, 첫 번째 4개의 요소가 합산되어 과도 합산 행렬(transitional sum matrix; 720)에서의 그 행의 제1 요소가 되도록, 행렬은 4개씩 짝지어져 합산된다. 유사하게, 두 번째 4개 요소가 합산되어 그 행의 제2 요소가 되는 등이다. 그리고 나서, 제2 패스에서는, 4개의 과도 합산 행렬 요소가 합산되어 그 행의 최종 합산이 산출된다.
4.9 조건문들의 구현
GPU의 단일 명령 복수 데이터(SIMD: Single-Instruction, Multiple Data) 특성으로 인하여, 조건문 수행은 상당한 부담일 수 있다. 다수의 픽셀 쉐이더 프로그램 코딩 방안에, 이러한 조건문들을 인코딩하기 위한 몇 가지 다양한 방법들이 존재한다. 그러나, 테스트롤 통해 if 명령, cmp 명령 및 (p0) 술어(predicate) 각각은 느리다는 것이 판명되었다.
이를 피하기 위해서, 조건문이 경계 조건(edge condition)들을 조사하는 경우, 그 조건문을 완전히 제거하고, GPU의 입력단을 "경계 색 샘플링( border color sampling)"으로 설정하는 것이 효과적인 해결책임이 판명되었다. 이것은 텍스처의 규정된 영역 바깥으로의 모든 액세스에 대해 0을 반환하도록 하는 것이다. 경계 조건문이 아닌 경우에는 그 조건이 참인 경우에 한해서 0보다 큰 부동소수점 숫자로 조건을 인코딩하는 것이 가장 효율적임이 판명되었다. 이 숫자는 충분히 큰 인자를 가진 mul_sat 명령을 사용함으로써 정확하게 0 또는 1이 되도록 정규화될 수 있다. 이것은 공식들에서 사용된 것처럼, I {c} 를 재생성할 것이다.
4.10 기타 구현 세부사항들
GPU 상의 각 패스는 연산 수행에 필요한 시간 외에도, 고정된 성능 오버헤드를 그 자체로 내포한다. 또한, GPU 드라이버에 포함되는 컴파일러는 픽셀 쉐이더 프로그램 전체를 최적화하기 위한 방법을 거의 가지고 있지 않다. 이러한 모든 요 인으로 인하여, 각 픽셀 쉐이더 프로그램이 가능한 한 많은 연산을 하도록 합동하는 것이 좋은 성능을 달성하는데 중요해진다.
CPU를 위해 설계된, 콘볼루션 신경망의 현존하는 구현은 각각의 개념적인 연산 구성 요소를 개별적인 함수, 예컨대 콘볼루션, 서브샘플링 및 그것들의 도함수로 취급한다. 모든 공식에 대한 전술한 분석적인 도출은 오버헤드를 줄이기 위한, GPU에 특화된 최적화를 제공한다.
또한, GPU 상의 할당 및 할당 취소(deallocation)는 비용이 많이 드는 동작이므로, 비용을 최소화하기 위하여, 바람직한 구현례에서는 프로세스가 시작하면서 모든 픽셀 쉐이더 프로그램이 정의되고, 모든 텍스처가 할당되어서 완료될 때까지 재사용된다. CPU에서 GPU로의 데이터 전송은 보통 비용이 많이 드는 것으로 생각되지만, 데이터량이 상대적으로 적기 때문에 최적화 없이도 대량의 시간을 희생하지 않고 행해질 수 있다. 예컨대, 한 실시예에서, 입력(주로 29×29 픽셀) 및 정확한 분류에 대응하는 픽셀 패치만이 각 트레이닝 샘플에 대하여 전송될 필요가 있을 뿐이다.
5. 연산 환경( Computing Environment )
상기 기술된 신경망 트레이닝 기술은 디지털 매체 신호 처리가 수행되는 임의의 다양한 장치 상에서 수행될 수 있으며, 상기 장치는 다른 예들 중에서 컴퓨터, 이미지 및 비디오의 기록, 전송 및 수신 장치, 휴대용 비디오 재생기, 화상 회의 장치 등을 포함할 수 있다. 기술은 하드웨어 회로에서 구현될 수 있을 뿐만 아 니라, 도 8에 도시된 것처럼, 컴퓨터 또는 다른 연산 환경 내에서 실행되는 디지털 매체 처리 소프트웨어에서도 구현될 수 있다.
도 8은 기술된 실시예가 구현될 수 있는 적합한 연산 환경(800)의 일반화된 예를 도시한다. 연산 환경(800)은 본 발명의 기능 또는 용도의 범위에 대해 임의의 한정을 제안하기 위한 것으로 의도된 것이 아니며, 본 발명은 다양한 범용 또는 특수 목적 연산 환경에서 구현될 수 있다.
도 8을 참조하면, 연산 환경(800)은 적어도 하나의 처리 유닛(810), GPU(815) 및 메모리(820)를 포함한다. 도 8에서, 이러한 가장 기본적인 구성(830)은 파선 내에 포함된다. 처리 유닛(810)은 컴퓨터 실행가능 명령어를 실행하며, 현실 프로세서 또는 가상 프로세서일 수 있다. 다중 처리 시스템에서, 다수의 처리 유닛이 컴퓨터 실행가능 명령어를 실행하여 처리 능력을 향상시킨다. 메모리(820)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리 등) 또는 두 가지 메모리의 어떤 조합이 될 수 있다. 메모리(820)는 기술된 인코더/디코더 및 효율적인 변환 계수 인코딩/디코딩 기술을 구현하는 소프트웨어(880)를 저장한다. GPU(815)는 하나의 보드 상에서 처리 유닛(810)과 통합되거나, 또는 별개로 포함될 수 있다. 한 구현에서, GPU(815)는 도 3에 도시된 것과 같은 아키텍처를 갖는다.
연산 환경은 부가적인 특징을 가질 수 있다. 예컨대, 연산 환경(800)은 저장소(840), 하나 이상의 입력 장치(850) 및 하나 이상의 출력 장치(860) 및 하나 이상의 통신 접속(870)을 포함한다. 버스, 제어기와 같은 (도시되지 않은) 상호접 속 메카니즘 또는 네트워크는 연산 환경(800)의 구성 요소들을 상호접속시킨다. 일반적으로 (도시되지 않은) 운영 체제 소프트웨어는 연산 환경(800)에서 실행되는 다른 소프트웨어를 위한 동작 환경을 제공하고, 연산 환경(800)의 구성 요소의 동작을 조정한다.
저장소(840)는 착탈식 또는 비착탈식일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD 또는, 정보를 저장하는데 사용될 수 있고 연산 환경(800) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장소(840)는 기술된 신경망 트레이닝 기술을 구현하는 소프트웨어(880)를 위한 명령어를 저장한다.
입력 장치(850)는 키보드, 마우스, 펜 또는 트랙볼과 같은 접촉 입력 장치, 음성 입력 장치, 스캐닝 장치 또는 연산 환경(800)에 입력을 제공할 수 있는 또 다른 장치일 수 있다. 오디오의 경우, 입력 장치(850)는 아날로그 또는 디지털 형태로 오디오 입력을 받아들이는 유사한 장치 또는 사운드 카드이거나, 연산 환경에 오디오 샘플을 제공하는 CD-ROM 기록기일 수 있다. 출력 장치(860)는 디스플레이, 프린터, 스피커, CD-기록기 또는 연산 환경(800)으로부터 출력을 제공받는 또 다른 장치일 수 있다.
통신 접속(870)은 통신 매체를 통하여 또 다른 연산 장치(computing entity)와의 통신을 가능하게 한다. 통신 매체는 변조된 데이터 신호로 컴퓨터 실행가능 명령어, 압축된 오디오 또는 비디오 정보 또는 다른 데이터와 같은 정보를 운반한다. 변조된 데이터 신호는 신호에 정보를 인코딩하는 것과 같은 방식으로 설정 또 는 변경되는 하나 이상의 그것의 특징을 갖는 신호이다. 예컨대, 한정은 아니지만, 통신 매체는 유선 기술 또는 전기, 광학, RF, 적외선, 음향 또는 다른 반송파로 구현되는 무선 기술을 포함한다.
본 문서에서의 디지털 매체 처리 기술은 컴퓨터 판독가능 매체에 대한 일반적인 문맥에서 기술될 수 있다. 컴퓨터 판독가능 매체는 연산 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 예컨대, 한정은 아니지만, 연산 환경(800)과 함께, 컴퓨터 판독가능 매체는 메모리(820), 저장소(840), 통신 매체 및 상기 중 임의의 하나의 조합을 포함한다.
본 문서에서의 신경망 트레이닝 기술은 컴퓨터 실행가능 명령어에 대한 일반적인 문맥에서 기술될 수 있고, 상기 명령어는 타겟 현실 프로세서 또는 타겟 가상 프로세서 상의 연산 환경에서 실행되는 프로그램 모듈에 포함된다. 일반적으로, 프로그램 모듈로서, 특정 작업을 수행하거나 특정한 추상 데이터 유형을 구현하는 루틴, 프로그램, 라이브러리, 객체, 클래스, 구성 요소, 데이터 구조 등이 포함된다. 프로그램 모듈의 기능성은 다양한 실시예에서 원하는 대로 프로그램 모듈 사이에서 조합되거나 분리될 수 있다. 프로그램 모듈을 위한 컴퓨터 실행가능 명령어는 지역 연산 환경 또는 분산 연산 환경 내에서 실행될 수 있다.
표현을 위하여, 상세한 설명에서는 "판정한다", "결정한다", "발생시킨다", "조정한다" 및 "적용한다"와 같은 용어를 사용하여 연산 환경에서의 컴퓨터 동작들을 기술하였다. 이 용어는 컴퓨터가 수행하는 동작을 위한 높은 수준의 추상적 개념이며, 인간이 수행하는 행동과 혼동되어서는 안된다. 이 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 다르다.
본 명세서에 기술된 기술적 사상의 가능한 다수의 변화를 고려하여, 이하의 청구항 및 그것의 균등물의 범위 내에 속할 수 있는 모든 실시예가 본 발명에 속함을 청구한다.

Claims (20)

  1. 그래픽 처리 유닛("GPU")에 의하여 판독가능한 그래픽 데이터 및 하나 이상의 GPU 실행가능 프로그램(GPU-executable program)를 사용해 이미지를 식별하기 위해 콘볼루션 신경망(convolutional neural network)을 트레이닝(tranining)하는, 컴퓨터로 구현되는 방법으로서,
    상기 콘볼루션 신경망의 상태를 나타내고 하나 이상의 신경망 변수를 나타내는 하나 이상의 텍스처(textures)를 포함하는 상기 그래픽 데이터를 수신하는 단계- 상기 하나 이상의 텍스처는 2차원 주소(two-dimensional addressing)를 갖는 텍스처를 포함하고, 상기 텍스처 중 적어도 하나 이상은 2차원 주소로 평평해진(flattened) 2차원보다 높은 차원의 주소를 갖는 신경망 변수를 나타내고, 상기 콘볼루션 신경망은 복수의 패치를 포함하는 적어도 하나의 계층을 포함함 -와,
    상기 콘볼루션 신경망에서 순방향 패스를 수행하기 위하여 상기 GPU 상에서 상기 GPU 실행가능 프로그램 중 하나 이상을 실행하는 단계- 이 실행 단계는 상기 패치에 대해 콘볼루션 연산을 수행하는 단계를 포함함 -와,
    상기 콘볼루션 신경망에서 역방향 패스를 수행하기 위하여 상기 GPU 상에서 상기 GPU 실행가능 프로그램 중 하나 이상을 실행하는 단계- 이 실행 단계는 상기 패치에 대해 콘볼루션 연산을 수행하는 단계를 포함함 -와,
    상기 역방향 패스의 결과에 기초하여 상기 그래픽 데이터를 변경함으로써 상기 콘볼루션 신경망 내의 상기 패치를 수정하기 위해 상기 GPU 상에서 상기 GPU 실행가능 프로그램 중 하나 이상을 실행하는 단계와,
    상기 콘볼루션 신경망이 트레이닝될 때까지, 순방향 패스 및 역방향 패스를 수행하고 상기 그래픽 데이터를 수정하기 위해 상기 GPU 실행가능 프로그램 중 하나 이상을 실행하는 단계를 반복하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    2차원 주소를 갖는 텍스처에 나타나는 값의 주소는 출력 텍스처의 좌상단으로부터의 x 오프셋 좌표 및 y 오프셋 좌표의 선형 조합을 통하여 결정되는
    컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 GPU 실행가능 프로그램은 하나 이상의 픽셀 쉐이더 프로그램(pixel shader programs)의 형태로 작성되는
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 그래픽 데이터는 기울기 하강법(gradient descent)을 사용하여 조정되는
    컴퓨터로 구현되는 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 프로그램은 기울기(gradient)를 결정하기 위해 편도함수(deriatives)를 연산하는 공식들을 이용하고, 상기 공식들은 픽셀 쉐이더 프로그램 발동(invocations)을 감소시키기 위하여 조합되고 대수적으로 간략화되는
    컴퓨터로 구현되는 방법.
  6. 제1항에 있어서,
    상기 신경망은 하나 이상의 완전 접속 계층을 포함하고,
    상기 하나 이상의 GPU 실행가능 프로그램은 상기 하나 이상의 완전 접속 계층에 특화된 하나 이상의 GPU 실행가능 프로그램을 포함하고, 상기 특화된 GPU 실행가능 프로그램은 완전 접속 계층에 대해 별개의 공식을 이용하는
    컴퓨터로 구현되는 방법.
  7. 제1항에 있어서,
    상기 신경망은 하나 이상의 과도 계층(transitional layer)을 포함하고,
    상기 하나 이상의 GPU 실행가능 프로그램은 상기 하나 이상의 과도 계층에 특화된 하나 이상의 GPU 실행가능 프로그램을 포함하고, 상기 특화된 GPU 실행가능 프로그램은 과도 계층에 대해 별개의 공식을 이용하는
    컴퓨터로 구현되는 방법.
  8. 제1항에 있어서,
    상기 그래픽 데이터는 뷰포트(viewport)를 커버하는 단일 삼각형을 기술하는
    컴퓨터로 구현되는 방법.
  9. 제1항에 있어서,
    상기 하나 이상의 GPU 실행가능 프로그램은 하나 이상의 합산(summations)을 포함하고,
    상기 하나 이상의 합산 각각은 다수의 패스로 이루어지는
    컴퓨터로 구현되는 방법.
  10. 제1항에 있어서,
    상기 콘볼루션 신경망은 수기 인식(handwriting recognition)을 수행하는
    컴퓨터로 구현되는 방법.
  11. 제1항에 있어서,
    상기 단계들에 의해 트레이닝된 콘볼루션 망을 기술하는 데이터를 포함하는 하나 이상의 컴퓨터 판독가능 매체를 생성하는 단계를 더 포함하는
    컴퓨터로 구현되는 방법.
  12. 그래픽 카드 상에서 실행되는 경우 상기 그래픽 카드로 하여금 콘볼루션 신경망을 트레이닝하기 위한 방법을 수행하게 하는 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 저장 매체로서, 상기 방법은
    상기 신경망에 대한 정사각형 콘볼루션 커널(square convolutional kernels)을 적어도 부분적으로 나타내는 복수의 텍스처를 수신하는 단계- 상기 텍스처의 적어도 일부는 2차원 주소를 가지며, 또한 2차원 주소로 평평해진 2차원보다 높은 차원의 주소를 갖는 정사각형 콘볼루션 커널을 나타냄 -와,
    복수의 입력 데이터에 대해 상기 신경망의 복수의 순방향 패스를 연산하는 단계- 상기 연산하는 단계는 상기 정사각형 콘볼루션 커널을 콘볼루팅(convoluting) 및 서브샘플링(subsampling)하는 단계를 포함함 -와,
    상기 복수의 순방향 패스 각각에 대하여, 기울기 함수를 사용하여 상기 신경망의 역방향 패스를 연산하는 단계와,
    각각의 역방향 패스에 대하여, 상기 기울기 함수의 결과에 기초하여, 상기 신경망의 트레이닝에 영향을 미치기 위하여 상기 복수의 텍스처로부터 상기 정사각형 콘볼루션 커널에 포함된 정보를 변경하는 단계
    를 포함하는 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 신경망은 수기 문자를 인식하도록 트레이닝되고,
    상기 복수의 텍스처는 적어도 부분적으로 콘볼루션 커널을 나타내며,
    상기 콘볼루션 커널은 수기 문자를 나타내는 입력 데이터에 대하여 동작하는
    컴퓨터 판독가능 저장 매체.
  14. 제12항에 있어서,
    상기 복수의 텍스처는 적어도 부분적으로 완전 접속 신경망 수준 및 과도 수준(transitional level)을 나타내는,
    컴퓨터 판독가능 저장 매체.
  15. 수기 인식 콘볼루션 신경망을 트레이닝하기 위한 방법을 수행하도록 구성된 그래픽 처리 유닛으로서,
    상기 콘볼루션 신경망은 하나 이상의 계층을 포함하고, 상기 계층의 적어도 일부는 각각 복수의 정사각형 콘볼루션 커널 패치를 포함하고,
    상기 그래픽 처리 유닛은,
    상기 수기 인식 콘볼루션 신경망의 상기 정사각형 콘볼루션 커널 패치를 기술하는 하나 이상의 그래픽 텍스처를 저장하도록 구성된 데이터 저장소- 상기 그래픽 텍스처 중 적어도 일부는 2차원 주소를 가지며, 2차원 주소로 평평해진(flattened) 2차원보다 높은 차원의 주소를 갖는 정사각형 콘볼루션 커널 패치를 나타냄 -와,
    수기 입력 데이터에 대하여 상기 신경망의 순방향 패스 및 역방향 패스를 반복하여 수행- 상기 패스는 상기 정사각형 콘볼루션 커널 패치에 대해 콘볼루션 연산을 수행하는 것을 포함 -하고, 상기 복수의 그래픽 텍스처에 결과를 저장하며, 상기 신경망을 트레이닝하기 위하여 상기 순방향 및 역방향 패스의 결과에 기초하여 상기 복수의 텍스처의 상기 정사각형 콘볼루션 커널 패치를 수정하도록 픽셀 쉐이더 프로그래밍을 통하여 구성된 복수의 픽셀 쉐이더 유닛
    을 포함하는 그래픽 처리 유닛.
  16. 제15항에 있어서,
    상기 수기 인식 신경망은 적어도 부분적으로는 하나의 콘볼루션 수준 및 하나의 완전 접속 수준을 포함하는
    그래픽 처리 유닛.
  17. 제15항에 있어서,
    상기 그래픽 처리 유닛이 수행하는 모든 처리가 상기 픽셀 쉐이더 유닛 중 일부에 대해서만 연산을 요구하도록, 상기 하나 이상의 그래픽 텍스처는 간략화된 삼각형 이미지를 기술하도록 구성되는
    그래픽 처리 유닛.
  18. 제15항에 있어서,
    상기 픽셀 쉐이더 유닛은 상기 신경망의 상기 순방향 패스 및 역방향 패스에서의 합산이 다수의 보다 작은 합산으로 이루어지도록 구성되는
    그래픽 처리 유닛.
  19. 삭제
  20. 삭제
KR1020087003564A 2005-08-31 2006-08-17 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법 KR101298393B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/217,711 US7747070B2 (en) 2005-08-31 2005-08-31 Training convolutional neural networks on graphics processing units
US11/217,711 2005-08-31
PCT/US2006/032349 WO2007027452A1 (en) 2005-08-31 2006-08-17 Training convolutional neural networks on graphics processing units

Publications (2)

Publication Number Publication Date
KR20080042083A KR20080042083A (ko) 2008-05-14
KR101298393B1 true KR101298393B1 (ko) 2013-08-20

Family

ID=37804147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003564A KR101298393B1 (ko) 2005-08-31 2006-08-17 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법

Country Status (10)

Country Link
US (1) US7747070B2 (ko)
EP (1) EP1922637A4 (ko)
KR (1) KR101298393B1 (ko)
CN (1) CN101253493B (ko)
AU (1) AU2006285161A1 (ko)
BR (1) BRPI0615219A2 (ko)
CA (1) CA2619973A1 (ko)
IL (1) IL189124A0 (ko)
RU (1) RU2424561C2 (ko)
WO (1) WO2007027452A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180064272A (ko) 2017-09-20 2018-06-14 대한민국(관리부서: 행정안전부 국립과학수사연구원장) 합성곱신경망과 이미지 추출을 이용한 주자본과 목판본의 분류 정보 제공 방법
KR20200055163A (ko) 2018-11-01 2020-05-21 서강대학교산학협력단 컨볼루션 신경망 기반의 입력 분류 장치 및 방법
US11915119B2 (en) 2016-12-22 2024-02-27 Samsung Electronics Co., Ltd. Convolutional neural network (CNN) processing method and apparatus performing high speed and precision convolution operations

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9799098B2 (en) * 2007-04-24 2017-10-24 Massachusetts Institute Of Technology Method and apparatus for image processing
JP5184824B2 (ja) * 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
US8200025B2 (en) 2007-12-07 2012-06-12 University Of Ottawa Image classification and search
KR20110089649A (ko) * 2010-02-01 2011-08-09 삼성전자주식회사 병렬 연산 처리 방법 및 장치
US9405975B2 (en) 2010-03-26 2016-08-02 Brain Corporation Apparatus and methods for pulse-code invariant object recognition
US8467623B2 (en) 2010-03-26 2013-06-18 Brain Corporation Invariant pulse latency coding systems and methods systems and methods
US9311593B2 (en) 2010-03-26 2016-04-12 Brain Corporation Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices
US9122994B2 (en) 2010-03-26 2015-09-01 Brain Corporation Apparatus and methods for temporally proximate object recognition
US9152915B1 (en) 2010-08-26 2015-10-06 Brain Corporation Apparatus and methods for encoding vector into pulse-code output
US9047568B1 (en) 2012-09-20 2015-06-02 Brain Corporation Apparatus and methods for encoding of sensory data using artificial spiking neurons
US9147156B2 (en) 2011-09-21 2015-09-29 Qualcomm Technologies Inc. Apparatus and methods for synaptic update in a pulse-coded network
US8719199B2 (en) 2011-09-21 2014-05-06 Brain Corporation Systems and methods for providing a neural network having an elementary network description for efficient implementation of event-triggered plasticity rules
US8725662B2 (en) 2011-09-21 2014-05-13 Brain Corporation Apparatus and method for partial evaluation of synaptic updates based on system events
US9460387B2 (en) 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US9104973B2 (en) 2011-09-21 2015-08-11 Qualcomm Technologies Inc. Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel
US9412064B2 (en) 2011-08-17 2016-08-09 Qualcomm Technologies Inc. Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update
US8725658B2 (en) 2011-09-21 2014-05-13 Brain Corporation Elementary network description for efficient memory management in neuromorphic systems
US9117176B2 (en) 2011-09-21 2015-08-25 Qualcomm Technologies Inc. Round-trip engineering apparatus and methods for neural networks
US10210452B2 (en) 2011-09-21 2019-02-19 Qualcomm Incorporated High level neuromorphic network description apparatus and methods
US9098811B2 (en) 2012-06-04 2015-08-04 Brain Corporation Spiking neuron network apparatus and methods
US9224090B2 (en) 2012-05-07 2015-12-29 Brain Corporation Sensory input processing apparatus in a spiking neural network
US9129221B2 (en) 2012-05-07 2015-09-08 Brain Corporation Spiking neural network feedback apparatus and methods
RU2504006C1 (ru) * 2012-06-05 2014-01-10 Александр Николаевич Цуриков Способ обучения искусственной нейронной сети
US9412041B1 (en) 2012-06-29 2016-08-09 Brain Corporation Retinal apparatus and methods
US9256823B2 (en) 2012-07-27 2016-02-09 Qualcomm Technologies Inc. Apparatus and methods for efficient updates in spiking neuron network
US9311594B1 (en) 2012-09-20 2016-04-12 Brain Corporation Spiking neuron network apparatus and methods for encoding of sensory data
US9218563B2 (en) 2012-10-25 2015-12-22 Brain Corporation Spiking neuron sensory processing apparatus and methods for saliency detection
US9183493B2 (en) 2012-10-25 2015-11-10 Brain Corporation Adaptive plasticity apparatus and methods for spiking neuron network
US9111226B2 (en) 2012-10-25 2015-08-18 Brain Corporation Modulated plasticity apparatus and methods for spiking neuron network
US9275326B2 (en) 2012-11-30 2016-03-01 Brain Corporation Rate stabilization through plasticity in spiking neuron network
US9123127B2 (en) 2012-12-10 2015-09-01 Brain Corporation Contrast enhancement spiking neuron network sensory processing apparatus and methods
US9177245B2 (en) 2013-02-08 2015-11-03 Qualcomm Technologies Inc. Spiking network apparatus and method with bimodal spike-timing dependent plasticity
CN103279759B (zh) * 2013-06-09 2016-06-01 大连理工大学 一种基于卷积神经网络的车辆前方可通行性分析方法
CN103366180B (zh) * 2013-06-14 2016-06-01 山东大学 一种基于自动特征学习的细胞图像分割方法
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9239985B2 (en) 2013-06-19 2016-01-19 Brain Corporation Apparatus and methods for processing inputs in an artificial neuron network
US9552546B1 (en) 2013-07-30 2017-01-24 Brain Corporation Apparatus and methods for efficacy balancing in a spiking neuron network
CN104346622A (zh) * 2013-07-31 2015-02-11 富士通株式会社 卷积神经网络分类器及其分类方法和训练方法
RU2553947C2 (ru) * 2013-08-16 2015-06-20 федеральное государственное автономное образовательное учреждение высшего образования "Нижегородский государственный университет им. Н.И.Лобачевского" Способ обучения биологической нейронной сети культуры, выращенной на мультиэлектродной матрице
US9489623B1 (en) 2013-10-15 2016-11-08 Brain Corporation Apparatus and methods for backward propagation of errors in a spiking neuron network
US9400925B2 (en) * 2013-11-15 2016-07-26 Facebook, Inc. Pose-aligned networks for deep attribute modeling
CN104809426B (zh) * 2014-01-27 2019-04-05 日本电气株式会社 卷积神经网络的训练方法、目标识别方法及装置
CN113255885A (zh) 2014-04-11 2021-08-13 谷歌有限责任公司 使卷积神经网络的训练并行化
US9939253B2 (en) 2014-05-22 2018-04-10 Brain Corporation Apparatus and methods for distance estimation using multiple image sensors
US9713982B2 (en) 2014-05-22 2017-07-25 Brain Corporation Apparatus and methods for robotic operation using video imagery
US10194163B2 (en) 2014-05-22 2019-01-29 Brain Corporation Apparatus and methods for real time estimation of differential motion in live video
US9848112B2 (en) 2014-07-01 2017-12-19 Brain Corporation Optical detection apparatus and methods
US10057593B2 (en) 2014-07-08 2018-08-21 Brain Corporation Apparatus and methods for distance estimation using stereo imagery
CN104200224A (zh) * 2014-08-28 2014-12-10 西北工业大学 基于深度卷积神经网络的无价值图像去除方法
US9715642B2 (en) 2014-08-29 2017-07-25 Google Inc. Processing images using deep neural networks
US10032280B2 (en) 2014-09-19 2018-07-24 Brain Corporation Apparatus and methods for tracking salient features
US10417525B2 (en) 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
CN104268521A (zh) * 2014-09-23 2015-01-07 朱毅 一种基于非限定类别的卷积神经网络的图像识别方法
US9881349B1 (en) 2014-10-24 2018-01-30 Gopro, Inc. Apparatus and methods for computerized object identification
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
CN107004142B (zh) * 2014-12-10 2018-04-17 北京市商汤科技开发有限公司 用于图像分类的方法和***
EP3234867A4 (en) * 2014-12-17 2018-08-15 Nokia Technologies Oy Object detection with neural network
US10127439B2 (en) 2015-01-15 2018-11-13 Samsung Electronics Co., Ltd. Object recognition method and apparatus
CN105894087A (zh) * 2015-01-26 2016-08-24 华为技术有限公司 用于神经网络中训练参数集的***和方法
EP3872716A1 (en) 2015-01-28 2021-09-01 Google LLC Image classification neural network system with batch normalization layers
CN106056529B (zh) * 2015-04-03 2020-06-02 阿里巴巴集团控股有限公司 一种对用于图片识别的卷积神经网络训练的方法与设备
CN104866810B (zh) * 2015-04-10 2018-07-13 北京工业大学 一种深度卷积神经网络的人脸识别方法
CN104866550A (zh) * 2015-05-12 2015-08-26 湖北光谷天下传媒股份有限公司 一种模拟神经网络的文本过滤方法
CN106203619B (zh) * 2015-05-29 2022-09-13 三星电子株式会社 数据优化的神经网络遍历
ES2883376T3 (es) * 2015-06-03 2021-12-07 Mitsubishi Electric Corp Dispositivo de inferencia y método de inferencia
KR102107709B1 (ko) 2015-06-05 2020-05-07 구글 엘엘씨 공간 트랜스포머 모듈들
US10452971B2 (en) 2015-06-29 2019-10-22 Microsoft Technology Licensing, Llc Deep neural network partitioning on servers
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
WO2017011702A1 (en) * 2015-07-15 2017-01-19 Cylance Inc. Malware detection
US10197664B2 (en) 2015-07-20 2019-02-05 Brain Corporation Apparatus and methods for detection of objects using broadband signals
US11074492B2 (en) 2015-10-07 2021-07-27 Altera Corporation Method and apparatus for performing different types of convolution operations with the same processing elements
US10380479B2 (en) * 2015-10-08 2019-08-13 International Business Machines Corporation Acceleration of convolutional neural network training using stochastic perforation
KR102509819B1 (ko) 2015-11-04 2023-03-14 삼성전자주식회사 신호 처리 장치 및 신호 처리 방법
US9904874B2 (en) 2015-11-05 2018-02-27 Microsoft Technology Licensing, Llc Hardware-efficient deep convolutional neural networks
CN106708499B (zh) * 2015-11-13 2020-10-27 财团法人工业技术研究院 绘图处理程序的分析方法与分析***
CN105469100B (zh) * 2015-11-30 2018-10-12 广东工业大学 基于深度学习的皮肤活检图像病理特性识别方法
EP3371747B1 (en) * 2015-12-10 2023-07-19 Deepmind Technologies Limited Augmenting neural networks with external memory
CN106875203A (zh) * 2015-12-14 2017-06-20 阿里巴巴集团控股有限公司 一种确定商品图片的款式信息的方法及装置
CA2972183C (en) * 2015-12-14 2018-03-27 Motion Metrics International Corp. Method and apparatus for identifying fragmented material portions within an image
US9785855B2 (en) 2015-12-17 2017-10-10 Conduent Business Services, Llc Coarse-to-fine cascade adaptations for license plate recognition with convolutional neural networks
CN105550750B (zh) * 2015-12-21 2017-10-17 长沙网动网络科技有限公司 提高卷积神经网络识别精度的方法
CN107182216B (zh) * 2015-12-30 2019-06-14 中国科学院深圳先进技术研究院 一种基于深度卷积神经网络的快速磁共振成像方法及装置
CN111353588B (zh) * 2016-01-20 2024-03-05 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
CN111353589B (zh) * 2016-01-20 2024-03-01 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US10210430B2 (en) * 2016-01-26 2019-02-19 Fabula Ai Limited System and a method for learning features on geometric domains
US10013653B2 (en) * 2016-01-26 2018-07-03 Università della Svizzera italiana System and a method for learning features on geometric domains
CN108701210B (zh) * 2016-02-02 2021-08-17 北京市商汤科技开发有限公司 用于cnn网络适配和对象在线追踪的方法和***
US11755913B2 (en) * 2016-03-11 2023-09-12 Telecom Italia S.P.A Convolutional neural networks, particularly for image analysis
US10420523B2 (en) 2016-03-21 2019-09-24 The Board Of Trustees Of The Leland Stanford Junior University Adaptive local window-based methods for characterizing features of interest in digital images and systems for practicing same
US20170277955A1 (en) * 2016-03-23 2017-09-28 Le Holdings (Beijing) Co., Ltd. Video identification method and system
CN107292385A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种类Alexnet网络的模型训练方法和装置
CN107315569B (zh) * 2016-04-27 2021-06-18 中科寒武纪科技股份有限公司 一种用于执行RMSprop梯度下降算法的装置及方法
CN109375951B (zh) * 2016-04-27 2020-10-09 中科寒武纪科技股份有限公司 一种用于执行全连接层神经网络正向运算的装置和方法
US9847974B2 (en) 2016-04-28 2017-12-19 Xerox Corporation Image document processing in a client-server system including privacy-preserving text recognition
CN111860813B (zh) * 2016-04-29 2024-01-16 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络正向运算的装置和方法
CN111860812B (zh) * 2016-04-29 2024-03-01 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络训练的装置和方法
CN109643395B (zh) * 2016-05-24 2024-03-05 英特尔公司 自适应窗口机制
US10303977B2 (en) 2016-06-28 2019-05-28 Conduent Business Services, Llc System and method for expanding and training convolutional neural networks for large size input images
CN106355247B (zh) * 2016-08-16 2019-03-08 算丰科技(北京)有限公司 数据处理方法和装置、芯片和电子设备
US11080591B2 (en) 2016-09-06 2021-08-03 Deepmind Technologies Limited Processing sequences using convolutional neural networks
AU2017324937B2 (en) 2016-09-06 2019-12-19 Deepmind Technologies Limited Generating audio using neural networks
EP3472755A4 (en) * 2016-09-08 2020-02-19 Goh Soo, Siah OBJECT DETECTION FROM VISUAL SEARCH INQUIRIES
WO2018067603A1 (en) 2016-10-04 2018-04-12 Magic Leap, Inc. Efficient data layouts for convolutional neural networks
JP6756916B2 (ja) 2016-10-26 2020-09-16 ディープマインド テクノロジーズ リミテッド ニューラルネットワークを使用したテキストシーケンスの処理
KR20180060149A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 컨볼루션 처리 장치 및 방법
US10360494B2 (en) * 2016-11-30 2019-07-23 Altumview Systems Inc. Convolutional neural network (CNN) system based on resolution-limited small-scale CNN modules
EP3330898A1 (en) * 2016-12-01 2018-06-06 Altera Corporation Method and apparatus for performing different types of convolution operations with the same processing elements
US10657424B2 (en) * 2016-12-07 2020-05-19 Samsung Electronics Co., Ltd. Target detection method and apparatus
US20180165845A1 (en) * 2016-12-09 2018-06-14 Free Construction Sp. Z o.o. Method of Analysis of Visualised Data
CN106855996B (zh) * 2016-12-13 2020-01-03 中山大学 一种基于卷积神经网络的灰阶图像着色方法及其装置
US10437878B2 (en) * 2016-12-28 2019-10-08 Shutterstock, Inc. Identification of a salient portion of an image
US10586148B2 (en) * 2016-12-31 2020-03-10 Via Alliance Semiconductor Co., Ltd. Neural network unit with re-shapeable memory
US11334836B2 (en) * 2017-01-04 2022-05-17 MSM Holdings Pte Ltd System and method for analyzing media for talent discovery
US10810721B2 (en) * 2017-03-14 2020-10-20 Adobe Inc. Digital image defect identification and correction
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
RU2651147C1 (ru) * 2017-03-27 2018-04-18 Акционерное общество "ЭЛВИС-НеоТек" Устройство и способ каскадной обработки потока изображений с помощью свёрточных нейронных сетей
RU173468U1 (ru) * 2017-03-27 2017-08-29 Акционерное общество "ЭЛВИС-НеоТек" Устройство каскадной обработки потока изображений с помощью свёрточных нейронных сетей
US10546237B2 (en) 2017-03-30 2020-01-28 Atomwise Inc. Systems and methods for correcting error in a first classifier by evaluating classifier output in parallel
US10475165B2 (en) * 2017-04-06 2019-11-12 Disney Enterprises, Inc. Kernel-predicting convolutional neural networks for denoising
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US10261903B2 (en) 2017-04-17 2019-04-16 Intel Corporation Extend GPU/CPU coherency to multi-GPU cores
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10417734B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
CN107145902B (zh) * 2017-04-27 2019-10-11 厦门美图之家科技有限公司 一种基于卷积神经网络的图像处理方法、装置及移动终端
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
CN107292319A (zh) * 2017-08-04 2017-10-24 广东工业大学 一种基于可变形卷积层的特征图像提取的方法及装置
RU2656990C1 (ru) * 2017-09-11 2018-06-07 Самсунг Электроникс Ко., Лтд. Система и способ для искусственной нейронной сети, инвариантной к сдвигу
US10747999B2 (en) * 2017-10-18 2020-08-18 The Trustees Of Columbia University In The City Of New York Methods and systems for pattern characteristic detection
US10599978B2 (en) * 2017-11-03 2020-03-24 International Business Machines Corporation Weighted cascading convolutional neural networks
KR20190051697A (ko) * 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
CN107808394B (zh) * 2017-11-16 2020-05-15 厦门美图之家科技有限公司 一种基于卷积神经网络的图像处理方法及移动终端
CN109961138B (zh) * 2017-12-14 2020-04-14 中科寒武纪科技股份有限公司 神经网络训练方法及相关产品
US11710028B2 (en) * 2017-12-30 2023-07-25 Intel Corporation Efficient convolution in machine learning environments
US11091162B2 (en) 2018-01-30 2021-08-17 Toyota Motor Engineering & Manufacturing North America, Inc. Fusion of front vehicle sensor data for detection and ranging of preceding objects
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
CN110309912B (zh) * 2018-03-27 2021-08-13 赛灵思公司 数据存取方法、装置、硬件加速器、计算设备、存储介质
TWI654541B (zh) 2018-04-13 2019-03-21 矽統科技股份有限公司 觸控面板上的敲擊事件的識別方法及系統,以及終端觸控產品
CN108765247B (zh) * 2018-05-15 2023-01-10 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质及设备
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
KR102633139B1 (ko) 2018-09-07 2024-02-02 삼성전자주식회사 데이터를 추출하는 집적 회로, 그것을 포함하는 뉴럴 네트워크 프로세서 및 뉴럴 네트워크 장치
RU2704751C1 (ru) * 2018-10-08 2019-10-30 федеральное государственное бюджетное образовательное учреждение высшего образования "Пермский национальный исследовательский политехнический университет" Способ определения параметров термомеханической обработки и химического состава функциональных материалов с помощью глубокой нейронной сети
CA3115784A1 (en) 2018-10-11 2020-04-16 Matthew John COOPER Systems and methods for training machine models with augmented data
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
AU2019374742B2 (en) * 2018-11-07 2022-10-06 Servicenow Canada Inc. Removal of sensitive data from documents for use as training sets
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11176271B1 (en) * 2018-12-04 2021-11-16 Eightfold AI Inc. System, method, and computer program for enabling a candidate to anonymously apply for a job
US11030583B1 (en) 2018-12-04 2021-06-08 Eightfold AI Inc. System, method, and computer program for automatically removing data from candidate profiles that may influence bias
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US11557107B2 (en) 2019-01-02 2023-01-17 Bank Of America Corporation Intelligent recognition and extraction of numerical data from non-numerical graphical representations
US11544559B2 (en) * 2019-01-08 2023-01-03 Neuralmagic Inc. System and method for executing convolution in a neural network
KR20200086546A (ko) 2019-01-09 2020-07-17 (주) 모터에이드 병렬 딥러닝 처리 시스템
CN111507362B (zh) 2019-01-30 2023-12-19 中强光电股份有限公司 神经网络的训练方法、基于神经网络的分类方法及其装置
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11150664B2 (en) 2019-02-01 2021-10-19 Tesla, Inc. Predicting three-dimensional features for autonomous driving
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
CN110059813B (zh) * 2019-02-13 2021-04-06 创新先进技术有限公司 利用gpu集群更新卷积神经网络的方法、装置及设备
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
US11699070B2 (en) * 2019-03-05 2023-07-11 Samsung Electronics Co., Ltd Method and apparatus for providing rotational invariant neural networks
US11119820B2 (en) * 2019-03-15 2021-09-14 Intel Corporation Local memory sharing between kernels
KR20210004229A (ko) 2019-07-03 2021-01-13 삼성전자주식회사 뉴럴 네트워크 프로세서를 구비하는 이미지 프로세싱 장치 및 이의 동작 방법
RU2717911C1 (ru) * 2019-08-06 2020-03-26 Общество с Ограниченной Ответственностью "Цифровые Технологии в Хирургии" Способ обучения сверточной нейронной сети осуществлять разметки телерентгенограмм в прямой и боковой проекциях
US11556450B2 (en) 2019-10-11 2023-01-17 International Business Machines Corporation Hybrid data-model parallelism for efficient deep learning
CN112785486A (zh) * 2019-11-07 2021-05-11 英特尔公司 用于图像去噪声的自适应可变形核预测网络
US11521062B2 (en) 2019-12-05 2022-12-06 International Business Machines Corporation Neural network training using a data flow graph and dynamic memory management
WO2021141567A1 (en) 2020-01-06 2021-07-15 Eightfold AI Inc. System, method, and computer program for using machine learning to calibrate job description based on diversity criteria
US20230367995A1 (en) * 2020-10-01 2023-11-16 Board Of Supervisors Of Louisiana State University And Agricultural And Mechanical College System and method for an adjustable neural network
US11960982B1 (en) 2021-10-21 2024-04-16 Neuralmagic, Inc. System and method of determining and executing deep tensor columns in neural networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125369A1 (en) * 2003-12-09 2005-06-09 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5647027A (en) * 1994-10-28 1997-07-08 Lucent Technologies Inc. Method of image enhancement using convolution kernels
US6128606A (en) 1997-03-11 2000-10-03 At&T Corporation Module for constructing trainable modular network in which each module inputs and outputs data structured as a graph
US6553131B1 (en) * 1999-09-15 2003-04-22 Siemens Corporate Research, Inc. License plate recognition with an intelligent camera
US7016529B2 (en) * 2002-03-15 2006-03-21 Microsoft Corporation System and method facilitating pattern recognition
US7418128B2 (en) * 2003-07-31 2008-08-26 Microsoft Corporation Elastic distortions for automatic generation of labeled data
US7660713B2 (en) 2003-10-23 2010-02-09 Microsoft Corporation Systems and methods that detect a desired signal via a linear discriminative classifier that utilizes an estimated posterior signal-to-noise ratio (SNR)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125369A1 (en) * 2003-12-09 2005-06-09 Microsoft Corporation System and method for accelerating and optimizing the processing of machine learning techniques using a graphics processing unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915119B2 (en) 2016-12-22 2024-02-27 Samsung Electronics Co., Ltd. Convolutional neural network (CNN) processing method and apparatus performing high speed and precision convolution operations
KR20180064272A (ko) 2017-09-20 2018-06-14 대한민국(관리부서: 행정안전부 국립과학수사연구원장) 합성곱신경망과 이미지 추출을 이용한 주자본과 목판본의 분류 정보 제공 방법
KR20200055163A (ko) 2018-11-01 2020-05-21 서강대학교산학협력단 컨볼루션 신경망 기반의 입력 분류 장치 및 방법

Also Published As

Publication number Publication date
CN101253493B (zh) 2012-04-25
AU2006285161A1 (en) 2007-03-08
EP1922637A4 (en) 2010-03-17
RU2008107746A (ru) 2009-09-10
US20070047802A1 (en) 2007-03-01
IL189124A0 (en) 2008-08-07
KR20080042083A (ko) 2008-05-14
CA2619973A1 (en) 2007-03-08
CN101253493A (zh) 2008-08-27
RU2424561C2 (ru) 2011-07-20
WO2007027452A1 (en) 2007-03-08
US7747070B2 (en) 2010-06-29
EP1922637A1 (en) 2008-05-21
BRPI0615219A2 (pt) 2011-05-10

Similar Documents

Publication Publication Date Title
KR101298393B1 (ko) 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법
US11557022B2 (en) Neural network system with temporal feedback for denoising of rendered sequences
KR102142889B1 (ko) 스파스 연결용 인공 신경망 계산 장치와 방법
US20200126191A1 (en) Neural network system with temporal feedback for adaptive sampling and denoising of rendered sequences
JP4901097B2 (ja) グラフィックス処理ユニットを使用して機械学習技術の処理を速め、最適化するシステムおよび方法
US11880768B2 (en) Method and apparatus with bit-serial data processing of a neural network
CN113870293A (zh) 图像处理方法、装置、电子设备及存储介质
CN112328227B (zh) 编译方法、装置、计算设备和介质
JP2019128806A (ja) データ圧縮装置、データ圧縮方法およびデータ圧縮プログラム
CN113939801A (zh) 利用自我修正代码减少神经网络的计算量
US20230196113A1 (en) Neural network training under memory restraint
CN109815931A (zh) 一种视频物体识别的方法、装置、设备以及存储介质
CN110033034B (zh) 一种非均匀纹理的图片处理方法、装置和计算机设备
US20190114542A1 (en) Electronic apparatus and control method thereof
US20220164639A1 (en) A system for mapping a neural network architecture onto a computing core and a method of mapping a neural network architecture onto a computing core
CN116228753B (zh) 肿瘤预后评估方法、装置、计算机设备和存储介质
CN115861044B (zh) 基于生成对抗网络的复杂云层背景仿真方法、装置和设备
CN112889072A (zh) 用于降低功率消耗的***、方法和装置
CN115424038A (zh) 多尺度图像处理方法、***、装置和计算机设备
CN111723917B (zh) 运算方法、装置及相关产品
CN112949841A (zh) 一种基于Attention的CNN神经网络的训练方法
Ilie Optical character recognition on graphics hardware
CN115083001B (zh) 基于图像敏感位置定位的对抗补丁生成方法与装置
JP7000586B2 (ja) データ処理システムおよびデータ処理方法
US11861811B2 (en) Neural network system with temporal feedback for denoising of rendered sequences

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee