KR20180037558A - 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법 - Google Patents

적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20180037558A
KR20180037558A KR1020170027951A KR20170027951A KR20180037558A KR 20180037558 A KR20180037558 A KR 20180037558A KR 1020170027951 A KR1020170027951 A KR 1020170027951A KR 20170027951 A KR20170027951 A KR 20170027951A KR 20180037558 A KR20180037558 A KR 20180037558A
Authority
KR
South Korea
Prior art keywords
threshold value
weights
neural network
learning
weight
Prior art date
Application number
KR1020170027951A
Other languages
English (en)
Other versions
KR102336295B1 (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 한국전자통신연구원
Priority to US15/718,912 priority Critical patent/US20180096249A1/en
Publication of KR20180037558A publication Critical patent/KR20180037558A/ko
Application granted granted Critical
Publication of KR102336295B1 publication Critical patent/KR102336295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0463Neocognitrons
    • 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

Landscapes

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

Abstract

본 발명은 파라미터의 수를 줄이고, 계산량을 줄일 수 있는 신경망 시스템 및 그것의 동작 방법에 관한 것이다. 본 발명의 컨볼루션 신경망 시스템의 동작 방법은, 입력 데이터를 사용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계, 상기 가중치들 중에서 문턱값보다 작은 크기를 갖는 가중치를 제거한 후에 상기 입력 데이터를 사용하는 학습을 수행하는 적응형 파라미터 제거 단계, 그리고 상기 적응형 파라미터 제거 단계에서 생존한 가중치들을 복수의 대표값에 맵핑시키는 적응형 가중치 공유 단계를 포함한다.

Description

적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법{CONVOLUTIONAL NEURAL NETWORK SYSTEM USING ADAPTIVE PRUNING AND WEIGHT SHARING AND OPERATION METHOD THEREROF}
본 발명은 신경망 시스템에 관한 것으로, 더 상세하게는 적응적으로 파라미터 수를 줄일 수 있는 컨볼루션 신경망 시스템 및 그것의 동작 방법에 관한 것이다.
최근 영상 인식을 위한 기술로 심층 신경망(Deep Neural Network) 기법의 하나인 컨볼루션 신경망(Convolutional Neural Network: 이하, CNN)이 활발하게 사용되고 있다. 신경망 구조는 사물 인식이나 필기체 인식 등 다양한 객체 인지 분야에서 뛰어난 성능을 보이고 있다. 특히, 컨볼루션 신경망(CNN)은 객체 인식에 매우 효과적인 성능을 제공하고 있다.
컨볼루션 신경망에서 사용되는 파라미터의 수는 매우 많으며, 노드들 간 연결 수가 매우 많기 때문에 연산에 필요한 메모리의 사이즈가 커야 한다. 더불어, 컨볼루션 신경망은 실질적으로 높은 대역폭의 메모리를 요구하기 때문에, 임베디드 시스템이나 모바일 시스템에서 구현하기는 용이하지 않다. 또한, 컨볼루션 신경망은 빠른 처리를 위해 높은 계산량을 요구하기 때문에 내부 연산기의 규모가 커지는 단점을 갖는다.
따라서, 이러한 신경망 알고리즘의 연산 복잡도를 줄이고 인식 시간을 단축하기 위해, 신경망 시스템에서 사용되는 파라미터의 수를 줄이는 방법이 절실한 실정이다.
본 발명의 목적은 컨볼루션 신경망에서 사용되는 파라미터 수를 줄일 수 있는 컨볼루션 신경망 시스템 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 컨볼루션 신경망 시스템의 동작 방법은, 입력 데이터를 사용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계, 상기 가중치들 중에서 문턱값보다 작은 크기를 갖는 가중치를 제거한 후에 상기 입력 데이터를 사용하는 학습을 수행하는 적응형 파라미터 제거 단계, 그리고 상기 적응형 파라미터 제거 단계에서 생존한 가중치들을 복수의 대표값에 맵핑시키는 적응형 가중치 공유 단계를 포함한다.
본 발명의 실시 예에 따른 컨볼루션 신경망 시스템은, 입력 데이터를 버퍼링하는 입력 버퍼, 복수의 신경망 노드들 간의 파라미터를 상기 입력 데이터를 사용하여 학습시키는 연산 유닛, 상기 연산 유닛의 학습 결과를 저장하고 업데이트하는 출력 버퍼, 상기 복수의 신경망 노드들 간의 파라미터를 상기 연산 유닛에 전달하고, 상기 학습의 결과에 따라 상기 파라미터를 업데이트하는 파라미터 버퍼, 그리고 상기 신경망 노드들 간의 가중치들 중에서 문턱값보다 작은 크기의 가중치들을 제거하도록 상기 파라미터 버퍼를 제어하고, 상기 가중치들 중에서 생존 가중치들을 적어도 하나의 대표값에 맵핑시키는 제어 유닛을 포함한다.
본 발명의 실시 예들에 따르면, 본 발명의 신경망 시스템은 적은 파라미터를 사용하여 인식 정확도의 감쇄 효과가 없이 동일한 인식율을 갖는 출력을 제공할 수 있다. 또한, 본 발명의 적응형 파라미터 제거 기법과 적응형 대표 가중치 공유기법을 사용하는 신경망 시스템은 파라미터를 수백 배 이상 압축된 사이즈로 사용 가능하기 때문에 모바일 단말에서도 딥러닝 네트워크를 이용한 사물 인식을 가능케 한다. 더불어, 본 발명의 신경망 시스템은 인식당 소모되는 에너지 측면에서도 매우 유리하여 컨볼루션 신경망 시스템의 구동에 소요되는 전력을 획기적으로 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 컨볼루션 신경망 시스템을 보여주는 블록도이다.
도 2a 및 도 2b는 예시적인 컨볼루션 신경망의 연산 절차 및 파라미터의 수를 보여주는 도면들이다.
도 3은 본 발명의 실시 예에 따른 파라미터를 줄이기 위한 컨볼루션 신경망의 동작 방법을 간략히 보여주는 순서도이다.
도 4는 도 3에서 설명된 본 발명의 신경망의 파라미터를 줄이는 방법을 도식적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 적응형 파라미터 제거 기법을 간략히 보여주는 순서도이다.
도 6은 도 5의 적응형 파라미터 제거 기법을 적용하는 경우에 파라미터들의 확률 분포를 단계별로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 적응형 가중치 공유 기법을 보여주는 도면이다.
도 8은 본 발명의 효과를 예시적으로 보여주는 표이다.
일반적으로, 컨볼루션(Convolution) 연산은 두 함수 간의 상관관계를 검출하기 위한 연산이다. '컨볼루션 신경망(Convolutional Neural Network: CNN)'라는 용어는 특정 피처(Feature)를 지시하는 커널(Kernel)과의 컨볼루션 연산을 수행하고, 연산의 결과를 반복하여 이미지의 패턴을 결정하는 과정 또는 시스템을 통칭할 수 있다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시 예에 따른 컨볼루션 신경망 시스템을 보여주는 블록도이다. 도 1을 참조하면, 컨볼루션 신경망 시스템(100)은 외부 메모리(120)로부터 제공되는 입력 이미지를 처리하여 출력값을 생성할 수 있다.
입력 이미지는 이미지 센서를 통해서 제공되는 정지 영상이나 동영상일 수 있다. 입력 이미지는 유무선 통신 수단을 통해서 전달된 영상일 수도 있을 것이다. 입력 이미지는 디지털화된 이미지 데이터의 2차원 어레이를 나타낼 수 있다. 입력 이미지는 컨볼루션 신경망 시스템(100)의 트레이닝(Training)을 위해 제공되는 샘플 영상들일 수도 있을 것이다. 출력값은 컨볼루션 신경망 시스템(100)이 입력 이미지를 처리한 결과 값이다. 출력값은 컨볼루션 신경망 시스템(100)의 학습 동작이나 추정 동작에서 입력된 영상에 대한 판단 결과값들이다. 출력값은 컨볼루션 신경망 시스템(100)이 입력 이미지의 내부에 포함된 것으로 검출한 패턴이나 식별 정보일 수 있다.
컨볼루션 신경망 시스템(100)은 입력 버퍼(110), 연산 유닛(130), 파라미터 버퍼(150), 출력 버퍼(170), 제어 유닛(190)을 포함할 수 있다.
입력 버퍼(110)에는 입력 이미지의 데이터 값들이 로드된다. 입력 버퍼(110)의 사이즈는 컨볼루션 연산을 위한 커널(Kernel)의 사이즈에 따라 가변될 수 있을 것이다. 예를 들면, 커널의 사이즈가 K×K인 경우, 입력 버퍼(110)에는 연산 유닛(130)에 의한 커널과의 컨볼루션 연산(또는, 커널링)을 순차적으로 수행하기 위한 충분한 크기의 입력 데이터가 로드되어야 할 것이다. 입력 데이터의 입력 버퍼(110)로의 로드는 제어 유닛(190)에 의해서 제어될 수 있을 것이다.
연산 유닛(130)은 입력 버퍼(110), 파라미터 버퍼(150), 그리고 출력 버퍼(170)를 사용하여 컨볼루션 연산이나 풀링 연산 등을 수행한다. 연산 유닛(130)은 예를 들면, 입력 이미지에 대한 커널(Kernel)과의 곱셈 및 가산을 반복적으로 처리하는 커널링(Kernelling)을 수행할 수 있다. 연산 유닛(130)은 복수의 커널링이나 풀링 연산을 병렬로 처리하기 위한 병렬 처리 코어들을 포함할 수 있을 것이다.
커널(Kernel)은 예를 들면 입력 버퍼(110) 또는 파라미터 버퍼(150)로부터 제공될 수 있다. 커널과 입력 이미지의 중첩 위치의 제반 데이터를 곱하고, 그 결과들을 합하는 과정을 이하에서는 커널링(Kernelling)이라 칭하기로 한다. 커널들 각각은 특정 피처 식별자(Feature Identifier)로 간주될 수 있다. 이러한 커널링은 입력 이미지와 다양한 피처 식별자에 대응하는 커널들에 대해서 수행될 것이다. 이러한 커널링이 제반 커널들에 의해서 수행되는 절차는 컨볼루션 계층(Convolution layer)에서 수행될 수 있고, 그 결과값으로 복수의 채널들에 대응하는 피처 맵(Feature Map)들이 생성될 수 있다.
연산 유닛(130)은 컨볼루션 계층에 의해서 생성된 피처 맵들을 다운 샘플링으로 처리할 수 있다. 컨볼루션 연산에 의해서 생성된 피처 맵들의 사이즈가 상대적으로 크기 때문에, 연산 유닛(130)은 풀링(Pooling)을 수행하여 피처 맵들의 사이즈를 줄일 수 있다. 각각의 커널링이나 풀링 연산의 결과 값은 출력 버퍼(170)에 저장되고, 컨볼루션 루프 수가 증가할 때마다, 그리고 풀링 연산이 발생할 때마다 업데이트될 수 있다.
파라미터 버퍼(150)에는 연산 유닛(130)에서 수행되는 커널링, 바이어스(Bias) 가산, 활성화(Relu), 풀링(Pooling) 등에 필요한 파라미터들을 제공한다. 그리고 학습 단계에서 학습된 파라미터들이 파라미터 버퍼(150)에 저장될 수도 있다.
출력 버퍼(170)에는 연산 유닛(130)에 의해서 실행되는 커널링이나 풀링의 결과값이 로드된다. 출력 버퍼(170)에 로드된 결과값은 복수의 커널들에 의한 각 컨볼루션 루프의 실행 결과에 따라 업데이트된다.
제어 유닛(190)은 본 발명의 실시 예에 따른 컨볼루션 연산, 풀링 연산, 활성화 연산 등을 수행하도록 연산 유닛(130)을 제어할 수 있다. 제어 유닛(190)은 입력 이미지 또는 피처 맵(Feature Map)과 커널을 사용한 컨볼루션 연산을 수행할 수 있다. 제어 유닛(190)은 학습 연산이나 실제 런타임 연산에서 저가중치의 파라미터들을 제거하는 적응적 파라미터 제거 연산을 수행하도록 연산 유닛(130)을 제어할 수 있다. 더불어, 제어 유닛(190)은 적응형 파라미터 제거 연산을 통해서 살아남은 가중치들 중에서 레이어별로 동일하거나 비슷한 값의 파라미터를 대표 파라미터로 맵핑할 수 있다. 이러한 레이어별로 동일하거나 유사한 파라미터들을 대표 파라미터로 공유하는 경우, 외부 메모리(120)와의 데이터 교환을 위한 대역폭 요구량을 대폭 줄일 수 있다.
이상에서는 본 발명의 컨볼루션 신경망 시스템(100)의 구성이 예시적으로 설명되었다. 상술한 적응형 파라미터 제거 연산과 적응형 파라미터 공유 연산을 통해서, 컨볼루션 신경망 시스템(100)이 관리해야 하는 파라미터의 수가 획기적으로 감소될 수 있다. 파라미터 수의 감소에 따라 컨볼루션 신경망 시스템(100)을 구성하기 위해 요구되는 메모리 사이즈나 메모리 채널의 대역폭이 감소될 수 있다. 그리고 메모리 사이즈나 채널 대역폭의 감소는 모바일 장치에서의 컨볼루션 신경망의 하드웨어적인 구현 가능성을 향상시킬 수 있다.
도 2a 및 도 2b는 예시적인 컨볼루션 신경망의 연산 절차 및 파라미터의 수를 보여주는 도면들이다. 도 2a는 입력 이미지를 처리하기 위한 컨볼루션 신경망의 레이어(Layer)들을 보여주는 도면이다. 도 2b는 도 2a에 도시된 각각의 레이어별 사용되는 파라미터들의 수를 보여주는 표이다.
도 2a를 참조하면, 학습이나 사물 인식과 같은 동작에서 수행되는 컨볼루션 연산이나 풀링 연산, 그리고 활성화 연산 등에는 매우 많은 수의 파라미터들이 입력되고, 새롭게 생성되고, 업데이트되어야 한다. 입력 이미지(210)는 제 1 컨볼루션 계층(conv1)과 그 결과를 다운 샘플링하기 위한 제 1 풀링 계층(pool1)에 의해서 처리된다. 입력 이미지(210)가 제공되면, 먼저 커널(215)과의 컨볼루션 연산을 수행하는 제 1 컨볼루션 계층(conv1)이 적용된다. 즉, 커널(215)과 중첩되는 입력 이미지(210)의 데이터가 커널(215)에 정의된 데이터와 곱해진다. 그리고 곱해진 모든 값은 합산되어 하나의 피처값으로 생성되고, 제 1 피처 맵(220)의 한 포인트를 구성하게 될 것이다. 이러한 커널링 연산은 커널(215)이 순차적으로 쉬프트되면서 반복적으로 수행될 것이다.
하나의 입력 이미지(210)에 대한 커널링 연산은 복수의 커널들에 대해서 수행된다. 그리고 제 1 컨볼루션 계층(conv1)의 적용에 따라 복수의 채널들 각각에 대응하는 어레이 형태의 제 1 피처 맵(220)이 생성될 수 있을 것이다. 예를 들면, 4개의 커널들을 사용하면, 4개의 어레이 또는 채널로 구성된 제 1 피처 맵(220)이 생성될 수 있을 것이다. 하지만, 입력 이미지(210)가 3차원 이미지(3-dimension)인 경우, 피처 맵들의 수는 급격히 증가하고, 컨볼루션 루프의 반복 회수인 깊이(Depth)도 급격히 증가할 수 있다.
이어서, 제 1 컨볼루션 계층(conv1)의 실행이 완료되면, 제 1 피처 맵(220)의 사이즈를 줄이기 위한 다운 샘플링(Down-sampling)이 수행된다. 제 1 피처 맵(220)의 데이터는 커널의 수나 입력 이미지(210)의 사이즈에 따라 처리의 부담이 되는 사이즈일 수 있다. 따라서, 제 1 풀링 계층(pool1)에서는 연산 결과에 크게 영향을 주지 않는 범위에서 제 1 피처 맵(220)의 사이즈를 줄이기 위한 다운 샘플링(또는, 서브-샘플링)이 수행된다. 다운 샘플링의 대표적인 연산 방식이 풀링(Pooling)이다. 다운 샘플링을 위한 필터를 제 1 피처 맵(220)에 미리 결정된 스트라이드(Stride)로 슬라이딩시키면서, 해당 영역에서의 최대값 또는 평균값이 선택될 수 있다. 최대값을 선택하는 경우를 최대값 풀링(Max Pooling)이라 하고, 평균값을 출력하는 방식을 평균값 풀링(Average Pooling)이라 한다. 풀링 계층(pool1)에 의해서 제 1 피처 맵(220)은 감소된 사이즈의 제 2 피처 맵(230)으로 생성된다.
컨볼루션 연산이 수행되는 컨볼루션 계층과 다운 샘플링 연산이 수행되는 풀링 계층은 필요에 따라 반복될 수 있다. 즉, 도시된 바와 같이 제 2 컨볼루션 계층(conv2) 및 제 2 풀링 계층(pool2)이 수행될 수 있다. 각각 제 2 컨볼루션 계층(conv2)을 통해서 제 3 피처 맵(240)이 생성되고, 제 2 풀링 계층(pool2)에 의해서 제 4 피처 맵(250)이 생성될 수 있을 것이다. 그리고 제 4 피처 맵(250)은 완전 연결망 동작(ip1, ip2)과 활성화 계층(Relu)의 처리를 통해서 각각 완전 연결 계층들(260, 270) 및 출력 계층(280)으로 생성된다. 완전 연결망 동작(ip1, ip2)과 활성화 계층(Relu)에서는 커널은 사용되지 않는다. 물론, 도시되지는 않았지만, 컨볼루션 계층과 풀링 계층 사이에 바이어스 가산이나 활성화 연산이 추가될 수 있을 것이다.
도 2a 및 도 2b를 참조하면, 28×28 픽셀 크기를 갖는 입력 이미지가 입력되면, 제 1 컨볼루션 계층(conv1)에서는 5×5 크기의 커널(215)을 사용하는 컨볼루션 연산이 수행된다. 입력 이미지의 에지(Edge) 부분에서의 패딩(Padding) 없이 컨볼루션 연산이 수행되기 때문에 20개 출력 채널의 24×24 크기를 갖는 제 1 피처 맵(220)이 출력된다. 출력 채널 수 20은 제 1 컨볼루션 계층(conv1)에서 사용되는 커널(215)의 수에 의해서 결정되는 채널 수이다. 그리고 바이어스는 각 채널들 사이에 부가되는 값으로, 채널의 수에 대응한다.
상술한 조건에서, 제 1 컨볼루션 계층(conv1)에서 사용되는 파라미터의 수(또는, 가중치 수)는 출력 채널 수(20)와 입력 채널 수(1), 그리고 커널의 크기(5×5)를 곱한 값(500)이 된다. 그리고 제 1 컨볼루션 계층(conv1)에서의 연결 수는 출력되는 제 1 피처 맵의 사이즈(24×24)와 파라미터의 수(500+20)를 곱한 값(299,520)으로 생성된다. 제 1 풀링 계층(pool1)에서는 공간(spatial) 도메인 상에서 채널 수는 유지하면서 채널의 폭(width)과 높이(height)를 조정하는 것이다. 풀링(pooling) 동작은 공간 도메인 상에서 이미지의 특징적 데이터를 근사화하는 효과가 있다.
제 2 컨볼루션 계층(conv2)과 제 2 풀링 계층(pool2) 각각의 동작은 제 1 컨볼루션 계층(conv1)과 제 1 풀링 계층(pool1)에 비해 채널 수와 커널 크기만 다를 뿐 동일한 동작을 수행한다. 제 2 컨볼루션 계층(conv2)에서 사용되는 파라미터의 수(또는, 가중치 수)는 출력 채널 수(50)와 입력 채널 수(20), 그리고 커널의 크기(5×5)를 곱한 값(25000)이 된다. 그리고 제 2 컨볼루션 계층(conv2)에서의 연결 수는 출력되는 제 3 피처 맵(240)의 사이즈(8×8)와 파라미터의 수(25000+50)를 곱한 값(1,603,200)으로 생성된다.
완전 연결 계층(ip1, ip2)은 완전 연결망(Fully Connected Networks : FCN) 동작을 수행한다. 완전 연결망 동작에서는 커널이 사용되지 않는다. 전체 입력 노드가 전체 출력 노드는 모든 연결 관계를 유지하고 있다. 따라서, 제 1 완전 연결 계층(ip1)에서의 파라미터 수는 상당히 크다(400,500).
본 발명에서는 도 2a 및 도 2b에서 살펴본 바와 같이, 사용되는 파라미터의 수를 줄이면 자연스럽게 연결 수도 줄어들게 되어 연산량이 줄 수 있음을 알 수 있다. 또한, 파라미터는 가중치(weight)와 바이어스(bias)로 나뉠 수 있는데, 상대적으로 바이어스의 수가 작기 때문에, 가중치를 줄이는 방식을 사용하여 높은 압축 효과를 제공할 수 있다.
도 3은 본 발명의 실시 예에 따른 파라미터를 줄이기 위한 컨볼루션 신경망의 동작 방법을 간략히 보여주는 순서도이다. 도 3을 참조하면, 본 발명의 동작 방법은 저가중치의 파라미터를 제거하는 동작과 가중치 공유 기법을 적용하여 높은 파라미터 감소 효과를 제공할 수 있다.
S110 단계에서, 입력에 대한 오리지널 신경망 학습이 수행된다. 즉, 모든 노드가 존재하는 상태에서 입력들을 사용하여 신경망을 학습시킨다. 그러면 노드들 간의 모든 연결에 대한 학습된 파라미터를 구할 수 있다. 이 상태에서 학습된 파라미터의 분포를 조사해보면 정규 분포와 비슷한 형태를 갖는다.
S120 단계에서, 학습된 신경망의 파라미터들에 대한 적응형 파라미터 제거 기법이 적용된다. 적응형 파라미터 제거 기법은 크게 3가지 단계를 거친다. 제 1 단계에서, 신경망의 모든 계층별로 초기 문턱값이 계산된다. 그리고 이어지는 제 2 단계에서는 제 1 단계에서 계산된 초기 문턱값을 시작으로 반복적인 학습을 진행하면서 조금씩 파라미터를 제거한다. 반복적인 학습을 통해 파라미터가 계속 제거되면, 어느 순간에는 문턱값보다 낮은 파라미터는 발생하지 않게 된다. 이때에는 제 3 단계로 넘어간다. 제 3 단계에서는 신경망 압축 효율을 더 높이기 위해 문턱값을 상향 조정한다. 상술한 제 2 단계 및 제 3 단계를 반복적으로 사용하면 저가중치를 갖는 파라미터들은 자연스럽게 제거되면서 학습된다. 따라서, 최종적으로 신경망에서 꼭 필요한 파라미터만이 존재하게 된다.
S130 단계에서, 저가중치가 제거된 파라미터들에 대한 적응형 대표 가중치 공유 기법이 적용된다. 적응형 대표 가중치 공유 기법은 신경망 내에서 각각의 계층별로 동일하거나 비슷한 파라미터를 단일 대표값을 갖는 파라미터로 맵핑하여 공유하는 방법이다. 파라미터 공유 기법은 도 7에서 상세히 설명될 것이다.
S140 단계에서, 적응형 대표 가중치 공유 기법에 의해서 처리된 파라미터의 신경망을 재학습시키다. 재학습에 의해서 신경망의 대표 가중치는 높은 정확도를 갖도록 미세 조정될 수 있다.
이상에서는 본 발명의 실시 예에 따른 적응형 파라미터 제거 기법 및 적응형 대표 가중치 공유 기법을 사용하는 신경망의 학습 과정이 설명되었다. 적응형 파라미터 제거 기법 및 적응형 대표 가중치 공유 기법을 사용하면, 신경망에 필요한 파라미터의 수를 획기적으로 줄일 수 있다. 그리고 파라미터 수의 감소에 따라 신경망 연산의 복잡도와 계산량이 감소된다. 따라서, 신경망 연산에 요구되는 메모리의 사이즈와 대역폭이 대폭 줄어들 수 있다.
도 4는 도 3에서 설명된 본 발명의 신경망의 파라미터를 줄이는 방법을 도식적으로 보여주는 도면이다. 도 4를 참조하면, 본 발명의 컨볼루션 신경망 시스템(100, 도 1 참조)은 적응형 파라미터 제거 기법 및 적응형 대표 가중치 공유 기법을 수행하여 파라미터들의 수가 획기적으로 감소된 신경망을 구성할 수 있다.
(a)는 가중치의 제거나 공유를 적용하기 이전의 오리지널 신경망을 보여준다. 즉, 일차적으로 신경망의 모든 노드가 존재하는 상태에서 신경망 학습이 진행되어야 한다. 오리지널 신경망은 예시적으로 12개의 노드들(N1~N16) 각각의 연결 관계가 도시되어 있다. 노드들(N1~N4)과 노드들(N5~N8) 사이에는 노드별 각각 4개의 가중치로 나타낼 수 있는 연결들이 존재한다. 마찬가지로, 노드들(N5~N8)과 노드들(N9~N12) 사이에도 각각 4개의 가중치로 나타낼 수 있는 연결을 갖도록 신경망이 구성될 수 있다. 이러한 오리지널 신경망의 노드들 간의 가중치들은 학습된 파라미터로 생성될 것이다. 이 상태에서 학습된 파라미터의 분포는 정규 분포와 유사한 형태를 갖는 것으로 알려져 있다.
(a)의 오리지널 신경망에 대한 저가중치의 파라미터를 제거하기 위한 적응형 파라미터 제거 기법이 적용될 것이다. 이러한 절차는 식별번호 ①에 나타내었다. 저가중치 제거 기법으로 본 발명에서 사용하는 적응형 파라미터 제거 기법은 다음과 같다. 즉, 각각의 계층별로 초기 문턱값이 생성된다. 그리고 생성된 초기 문턱값을 시작으로 반복적인 학습을 실시한다. 학습 이전에는 각 계층별로 초기 문턱값보다 높은 가중치가 학습 이후에는 초기 문턱값보다 낮아지는 경우가 발생할 것이다. 이때, 초기 문턱값보다 낮은 가중치로 학습된 파라미터는 제거한다. 한번 제거된 노드간 연결은 다시 복원하지 않은 체로 학습은 반복된다. 이러한 초기 문턱값을 적용한 반복적인 학습을 통해서 생성된 (b)의 축소된 신경망이 생성될 것이다.
학습의 반복이 진행됨에 따라 노드들 간의 연결의 가중치들이 더 이상 초기 문턱값 이하로 떨어지지 않는 순간이 발생한다. 이때, 신경망 압축 효율을 높이기 위하여 초기 문턱값보다 더 높은 상향된 문턱값을 적용하여 학습을 반복하면, 신경망에서 반드시 필요한 노드와 가중치들만이 생존하게 된다. 변화된 문턱값이 결정되면 다시 추가적인 신경망 축소를 위해 재프룬(Reprune)이 수행될 것이다. 이러한 과정은 ② 재학습과 ③ 재프룬 루프를 반복하면서 낮은 값을 갖는 가중치들이 제거된다.
문턱값을 사용한 저가중치의 파라미터들을 제거한 이후에는 대표값을 사용하는 적응형 가중치 공유 기법이 적용된다. 즉, 파라미터 제거 기법의 적용에 의해서 생존한 노드들과 가중치들에 대한 가중치 공유 기법이 적용된다. 컨볼루션 신경망은 가중치 공유의 특성이 존재한다. 이러한 특성을 이용하여, 적응형 파라미터 제거 기법에 의해서 축소된 노드와 가중치들에 대해서 대표값과 유사하거나 동일한 파라미터들을 그룹화하여 관리할 수 있다. 가중치를 공유의 예로, 노드들(N1, N5) 간의 가중치와 노드들(N1, N6)의 가중치가 유사하다면, 이들 연결은 하나의 대표값의 가중치로 맵핑할 수 있다. 더불어, 노드들(N6, N9) 간의 가중치와 노드들(N9, N9)의 가중치가 유사하다면, 이들 연결은 하나의 대표값의 가중치로 맵핑할 수 있을 것이다.
상술한 적응형 가중치 공유 기법을 적용한 신경망의 형태는 (d)에 도시되어 있다. 그리고 적응형 가중치 공유 기법에 의해서 생성된 신경망을 ⑤ 재학습 과정을 통해서 처리하면, (e)의 최종 신경망이 구성될 수 있다. 결론적으로, 적응형 파라미터 제거 기법의 적용 이후에는 노드들(N7, N10)과, 노드들(N7, N10)과 관련된 가중치들은 모두 제거될 수 있다.
도 5는 본 발명의 실시 예에 따른 적응형 파라미터 제거 기법을 간략히 보여주는 순서도이다. 도 5를 참조하면, 신경망의 저가중치의 파라미터들은 문턱값의 설정 및 조정을 동반하는 학습 과정의 반복을 통해서 제거될 수 있다. 그리고 적응형 파라미터 제거 기법에 의해 신경망의 특성을 결정하는 반드시 필요한 파라미터들만이 생존할 수 있다. 초기 학습에 의해서 모든 노드에 대한 가중치가 존재하는 오리지널 신경망에 제공된다.
S210 단계에서, 오리지널 신경망의 모든 계층(Layer) 별로 초기 문턱값이 계산된다. 신경망에서는 계층별로 중요도가 다르다. 예를 들면, 입력 이미지의 첫 번째 컨볼루션 계층에서는 가장 초기 특징점(Feature point)이 추출되기 때문에 매우 중요하다. 더불어, 마지막 컨볼루션 계층은 피처값에 대한 확률이 계산되기 때문에 중요하다. 상대적으로 중요한 계층들에 대한 파라미터들의 제거는 신중해야 한다. 따라서, 중요한 계층들의 파라미터를 제거하기에 앞서, 이들 계층들에 대한 민감도를 조사할 필요가 있다.
신경망에서 각각의 계층들은 나머지 계층들이 그대로 유지되는 상태에서 가중치를 제거하기 위한 문턱값을 조정하면서 민감도를 조사해야 한다. 예를 들어, 첫 번째 컨볼루션 계층의 초기 문턱값을 계산하기 위해서는 나머지 계층들의 노드간 연결을 그대로 유지한 상태에서 문턱값을 조금씩 상향시켜 제거되는 비율에 따른 정확도를 계산한다. 문턱값을 조금씩 올리면 갑자기 정확도가 크게 저하되는 구간이 존재하는데, 이때의 문턱값을 첫 번째 계층의 초기 문턱값으로 결정한다. 나머지 계층들에 대해서도 갖은 방법으로 조금씩 문턱값을 계산하여 초기 문턱값을 구하면 된다.
S220 단계에서, S210 단계에서 결정된 초기 문턱값을 시작으로 반복적인 학습을 진행한다. 먼저, 신경망의 각 계층들의 가중치들은 학습의 진행에 따라 문턱값보다 높은 가중치가 문턱값 아래로 내려올 수도 있다. 더불어, 오리지널 신경망의 연결들 중에서 결정된 초기 문턱값보다 낮은 가중치들을 갖는 것들도 존재할 것이다. 이러한 초기 문턱값보다 낮은 가중치를 갖는 파라미터들은 이 단계에서 제거된다. 여기서, 한 번 제거된 노드간 연결은 다시 복원하지 않고 그대로 제거된 상태에서 학습이 진행된다. 반복적인 학습을 통해 파라미터가 계속 제거되면, 어느 순간에는 문턱값보다 낮은 파라미터가 발생하지 않게 될 것이다.
S230 단계에서, 학습의 진행 결과로 생성되는 노드들 간의 가중치들 중에서 초기 문턱값보다 낮은 것이 존재하는지 검출된다. 만일, 학습의 진행 결과로 더 이상 초기 문턱값보다 낮은 가중치가 검출되지 않는다면(아니오 방향), 절차는 S240 단계로 이동한다. 반면, 여전히 초기 문턱값보다 낮은 가중치가 존재하는 것으로 검출되면(예 방향), 절차는 S220으로 복귀하여, 추가적인 학습 및 가중치 제거 절차가 진행될 것이다.
S240 단계에서, 초기 문턱값보다 낮은 가중치가 더 이상 존재하지 않는 경우에는 압축 효율을 높이기 위해 문턱값의 상향 조정이 수행된다. 문턱값을 상향시킬 때에는 해당 계층마다 파라미터의 표준편차를 계산한다. 그리고 계산된 계층별 파라미터의 표준 편차에 일정한 비율을 곱하여 문턱값을 상향시킬 때 반영한다. 문턱값이 변화되면 상향된 문턱값을 적용한 재학습이 이루어지게 된다.
S250 단계에서, 학습된 신경망의 파라미터들 중에서 각 계층 별로 상향된 문턱값 이하의 가중치가 존재하는지 검출될 것이다. 만일, 신경망의 파라미터들 중에서 더 이상 상향된 문턱값보다 낮은 가중치가 검출되지 않는다면(아니오 방향), 적응형 파라미터 제거 기법의 제반 절차는 종료된다. 반면, 여전히 상향된 문턱값보다 낮은 가중치가 존재하는 것으로 검출되면(예 방향), 절차는 S240으로 복귀하여, 추가적인 학습 및 가중치 제거 절차가 진행될 것이다.
상술한 바와 같이 문턱값을 가변하면서 학습과 파라미터 제거를 반복하면, 저가중치를 갖는 파라미터들은 자연스럽게 제거되면서 최종적으로 신경망에서 꼭 필요한 파라미터만이 생존하게 된다. 적응형 파라미터 제거 기법을 사용하는 경우에는 오리지널 신경망은 이미 학습된 파라미터들이다. 따라서, 문턱값의 조정은 작은 스텝값 단위로 진행될 수 있다. 이러한 스텝값을 구하는 과정에서 해당 계층의 파라미터의 분포는 매우 중요하다.
도 6은 도 5의 적응형 파라미터 제거 기법을 적용하는 경우에 파라미터들의 확률 분포를 단계별로 보여주는 도면이다. 도 6을 참조하면, 신경망의 가중치들은 본 발명의 적응형 파라미터 제거 기법에 의해서 문턱치 이상에 존재하는 파라미터들만이 생존할 것이다.
(a)는 오리지널 가중치들의 확률 분포 및 초기 문턱값을 보여준다. 오리지널 가중치는 학습의 진행 이후에 모든 노드들이 존재하는 오리지널 신경망의 가중치들을 의미한다. 학습에 의해서 생성된 이들 가중치들은 평균(0)을 중심으로 하는 정규 분포 형태를 이룬다. 더불어, 초기 문턱값보다 낮은 값을 갖는 가중치들이 전체 파라미터들 중에서 다수를 차지하고 있음을 알 수 있다.
(b)는 초기 문턱값보다 낮은 값을 갖는 가중치들을 제거하는 경우의 파라미터들의 확률 분포를 보여준다. 즉, 초기 문턱값을 사용한 프루닝(Pruning)에 의해서 평균을 중심으로 초기 문턱값의 양과 음의 구간에 포함되는 파라미터들은 제거된다.
(c)에는 초기 문턱값보다 낮은 가중치를 갖는 파라미터들을 제거한 후에 추가적인 학습을 수행한 결과로 생성되는 가중치의 분포가 도시되어 있다. 재학습에 의해서 초기 문턱값에서 날카로운 분포가 부드러운 형태의 분포로 변경된다. 하지만, 재학습의 결과로 초기 문턱값보다 낮은 가중치를 갖는 파라미터들이 존재하게 된다. 이러한 파라미터들은 프루닝과 재학습 루프의 반복을 통해서 제거될 수도 있음은 잘 이해될 것이다.
(d)는 조정된 문턱값을 사용하여 저가중치의 파라미터들을 삭제하는 과정을 나타낸다. 즉, 초기 문턱값보다 더 높은 레벨의 상향된 문턱값을 계산하여 ④의 재학습 단계를 거치면, (e)의 최종 가중치 분포가 얻어진다.
모든 파라미터들(특히, 가중치) 중에는 신경망 연산에 크게 영향을 미치지 않는 낮은 레벨의 가중치들이 존재한다. 확률 분포에서는 이러한 저가중치의 파라미터들이 상대적으로 많은 수를 차지하게 되고, 이러한 저가중치의 파라미터들은 컨볼루션 연산이나 활성화, 풀링 연산 등의 부담으로 작용한다. 본 발명의 적응형 파라미터 제거 기법에 따르면, 이러한 저가중치의 파라미터들을 신경망의 성능에 영향을 거의 미치지 않는 레벨에서 제거할 수 있다.
도 7은 본 발명의 실시 예에 따른 적응형 가중치 공유 기법을 보여주는 도면이다. 도 7을 참조하면, 적응형 대표 가중치 공유 기법에 따라 신경망 내에서 각각의 계층별로 비슷한 파라미터는 단일 대표값을 갖는 파라미터로 맵핑 및 공유된다.
적응형 파라미터 제거 기법에 따라 낮은 가중치를 갖는 파라미터들이 제거되면 각각의 계층들에 분포하는 가중치들은 양봉 분포(Bimodal distribution)를 갖는다. 양봉 분포는 음수 영역과 양수 영역으로 나누어진다. 이때 각각의 영역별로 최저값에서 최고값까지 균등하게 배분하여 대표값을 정하게 된다. 이러한 대표값을 센트로이드(Centroid)라고 부른다. 양봉 분포의 가중치들과 이들 각 영역에서의 예시적인 센트로이드의 본포는 도면 아래의 그래프에 도시되어 있다.
각각의 영역별 센트로이드 값은 설정되는 전체 대표값의 수에 따라 결정된다. 만약, N개의 센트로이드 값을 사용할 경우, 음수 대역에 N/2개 센트로이드 값이 사용되고, 양수 대역에 N/2개의 센트로이드 값이 사용될 것이다. 초기 센트로이드 값들 각각은 균등한 차이값을 갖도록 선형적으로 배치시킨다. 도시된 그래프에서는 음수 대역에서는 4개의 센트로이드들(-3.5, -2.5, -1.5, -0.5)이 할당되고, 양수 대역에서는 4개의 센트로이드들(0.5, 1.5, 2.5, 3.5)이 할당될 수 있다.
상술한 센트로이드 설정에 따라 예시적인 실 가중치 세트(320)의 가중치들은 센트로이드 값을 기준으로 근사화된다. 즉, 실 가중치들은 센트로이드 값(345)으로 근사화되고, 근사화된 이후에는 센트로이드 인덱스(340)로 맵핑될 수 있다. 이러한 대표값으로의 근사화를 통해서 실 가중치 세트(320)는 인덱스 맵(360)으로 변환될 수 있다. 선형적으로 배치된 초기 센트로이드 값은 재학습 과정을 통해 정제(Refine)된다.
센트로이드 값이 딥러닝 인식 엔진에 사용될 때, 센트로이드 인덱스(340)와 센트로이드 값의 맵핑 테이블이 사용될 수 있다. 인식 연산을 수행하기 전에 해당 계층의 센트로이드 맵핑 테이블을 읽어와서 인식 하드웨어 엔진에 저장하면, 그 이후에는 인덱스 값만 메모리로부터 읽어와서 처리할 수 있다.
이상에서는 적응형 대표 가중치 공유 방법의 예로 센트로이드를 사용하는 방법이 설명되었다. 하지만, 본 발명의 적응형 대표 가중치 공유 방법은 여기에 국한되지 않으며, 다양한 방식으로 대표값이 맵핑되고 공유될 수 있음은 잘 이해될 것이다.
도 8은 본 발명의 효과를 예시적으로 보여주는 표이다. 도 8을 참조하면, 도 2에 도시한 신경망(예를 들면, LeNet 네트워크)의 파라미터가 정확도 감쇄없이 파라미터를 줄인 결과가 도시되어 있다.
적응형 파라미터 제거 기법을 이용해서 파라미터 중에 가중치 부분이 전체 430,500개에서 12,261개까지 줄어들 수 있음을 확인하였다. 이는 전체 가중치에서 97.15%는 사용하지 않고, 단지 2.85%만 사용해도 정확도에 영향이 없이 필기체 숫자 인식이 가능함을 의미한다. 또한, 적응형 대표 가중치 공유 기법을 사용하면 LeNet 신경망에서 각각의 계층(Layer) 별로 센트로이드 파라미터 8개만 사용해도 숫자 인식에 문제점이 없음을 알 수 있다. 실제로 사용되는 가중치의 총수는 단지 32개에 불과하다. 따라서, 12,261개의 파라미터가 메모리에 저장시에는 가중치 값이 아닌 대표 가중치를 가리키는 인덱스 값으로 저장되면 된다.
상술한 적응형 파라미터 제거 기법과 적응형 대표 가중치 공유 기법을 사용하면, 신경망 구동을 위한 메모리의 사이즈가 획기적으로 감소될 수 있다. 더불어, 메모리에 저장되는 파라미터의 감소에 따른 메모리 대역폭 요구량도 대폭 줄어든다. 더불어, 파라미터 수의 감소로 인한 컨볼루션 연산, 풀링 연산, 활성화 연산 등에 소요되는 전력도 획기적으로 줄어들 것으로 기대된다.
이상에서 설명한 바와 같이, 본 발명은 신경망을 하드웨어로 구현시에 가장 큰 문제점인 연산량을 줄이기 위한 파라미터 압축 방법에 대해서 제안한 것이다. 본 발명의 적응형 파라미터 제거 기법과 적응형 대표 가중치 공유 기법을 사용하게 되면, 인식 정확도의 감쇄 효과가 없이 동일한 인식율을 갖는 출력을 상대적으로 적은 파라미터를 사용해서 구현할 수 있다. 또한, 본 발명의 압축 방법에 따르면 파라미터의 크기가 수백 메가 바이트(MByte) 규모에서 수 메가 바이트(MByte) 규모로 수백 배 이상 압축 가능하다. 따라서, 모바일 단말에서도 딥러닝 네트워크를 이용한 사물 인식이 가능해진다. 이러한 특징은 에너지 관리 측면에서도 매우 유리한 특징이다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.

Claims (16)

  1. 컨볼루션 신경망 시스템의 동작 방법에 있어서:
    입력 데이터를 사용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계;
    상기 가중치들 중에서 문턱값보다 작은 크기를 갖는 가중치를 제거한 후에 상기 입력 데이터를 사용하는 학습을 수행하는 적응형 파라미터 제거 단계; 그리고
    상기 적응형 파라미터 제거 단계에서 생존한 가중치들을 복수의 대표값에 맵핑시키는 적응형 가중치 공유 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 학습을 수행하는 단계에서, 상기 신경망의 모든 노드들을 포함하는 상태에서 상기 학습이 수행되며, 상기 모든 노드들 사이의 연결들에 대한 학습된 가중치들이 생성되는 동작 방법.
  3. 제 1 항에 있어서,
    상기 적응형 파라미터 제거 단계는:
    상기 신경망의 모든 레이어별로 초기 문턱값을 결정하는 단계;
    상기 초기 문턱값을 사용한 가중치 제거 및 학습을 수행하는 단계; 그리고
    상기 초기 문턱값보다 큰 값을 갖는 상향 문턱값을 사용한 가중치 제거 및 학습을 수행하는 단계를 포함하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 초기 문턱값을 결정하는 단계는, 상기 모든 레이어들 각각의 초기 문턱값은 다른 레이어들의 연결을 유지한 상태에서 조정된 문턱값을 순차적으로 가변하여 적용하고, 기준 정확도보다 낮아지는 문턱값을 상기 레이어들 각각의 상기 초기 문턱값으로 결정하는 동작 방법.
  5. 제 3 항에 있어서,
    상기 초기 문턱값을 사용한 가중치 제거 및 학습을 수행하는 단계는:
    상기 모든 레이어들 각각의 가중치들 중에서 상기 초기 문턱값보다 작은 크기의 가중치들을 제거하는 단계; 그리고
    상기 초기 문턱값보다 작은 크기의 가중치들이 제거된 생존 가중치들에 대한 학습을 수행하는 단계를 포함하는 동작 방법.
  6. 제 5 항에 있어서,
    상기 초기 문턱값보다 적은 크기의 가중치들을 제거하는 단계와, 상기 생존 가중치들에 대한 학습을 수행하는 단계는 반복 루프를 구성하고, 상기 반복 루프는 상기 초기 문턱값보다 작은 크기의 가중치들이 제거될 때까지 반복되는 동작 방법.
  7. 제 3 항에 있어서,
    상기 초기 문턱값보다 큰 값을 갖는 상향 문턱값을 사용한 가중치 제거 및 학습을 수행하는 단계는:
    생존 가중치들 중에서 상기 상향 문턱값보다 작은 크기의 가중치들을 제거하는 단계; 그리고
    상기 상향 문턱값보다 같거나 큰 크기의 가중치들에 대한 학습을 수행하는 단계를 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 상향 문턱값보다 작은 크기의 가중치들을 제거하는 단계와, 상기 상향 문턱값보다 같거나 큰 크기의 가중치들에 대한 학습을 수행하는 단계는 반복 루프를 구성하고, 상기 반복 루프는 상기 상향 문턱값보다 작은 크기의 가중치들이 제거될 때까지 반복되는 동작 방법.
  9. 제 1 항에 있어서,
    상기 적응형 가중치 공유 단계에서, 복수의 대표값은 상기 생존한 가중치들의 센트로이드 값으로 결정되는 동작 방법.
  10. 제 9 항에 있어서,
    상기 센트로이드 값은 상기 생존한 가중치의 재학습을 통해서 정제(Fefine)되는 동작 방법.
  11. 컨볼루션 신경망 시스템에 있어서:
    입력 데이터를 버퍼링하는 입력 버퍼;
    복수의 신경망 노드들 간의 파라미터를 상기 입력 데이터를 사용하여 학습시키는 연산 유닛;
    상기 연산 유닛의 학습 결과를 저장하고 업데이트하는 출력 버퍼;
    상기 복수의 신경망 노드들 간의 파라미터를 상기 연산 유닛에 전달하고, 상기 학습의 결과에 따라 상기 파라미터를 업데이트하는 파라미터 버퍼; 그리고
    상기 신경망 노드들 간의 가중치들 중에서 문턱값보다 작은 크기의 가중치들을 제거하도록 상기 파라미터 버퍼를 제어하고, 상기 가중치들 중에서 생존 가중치들을 적어도 하나의 대표값에 맵핑시키는 제어 유닛을 포함하는 신경망 시스템.
  12. 제 11 항에 있어서,
    상기 제어 유닛은, 상기 입력 데이터를 사용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하고, 상기 가중치들 중에서 문턱값보다 작은 크기를 갖는 가중치를 제거한 후에 재학습을 수행하고, 그리고 상기 생존 가중치들을 복수의 대표값에 맵핑시키는 신경망 시스템.
  13. 제 12 항에 있어서,
    상기 제어 유닛은 상기 신경망의 모든 레이어별로 상기 문턱값을 결정하는 신경망 시스템.
  14. 제 13 항에 있어서,
    상기 제어 유닛은 상기 가중치들 중에서 제 1 문턱값보다 작은 가중치들을 제거하여 학습을 수행하는 제 1 반복 루프를 실행하여 제 1 생존 가중치들을 생성하고,
    상기 제 1 문턱값보다 큰 제 2 문턱값을 사용하여 상기 제 1 생존 가중치들 중에서 제 2 문턱값보다 작은 가중치들을 제거하는 제 2 반복 루프를 실행하여 상기 생존 가중치를 생성하는 신경망 시스템.
  15. 제 14 항에 있어서,
    상기 대표값은 센트로이드에 대응하는 신경망 시스템.
  16. 제 14 항에 있어서,
    상기 제어 유닛은, 상기 대표값이 맵핑된 센트로이드 인덱스와 상기 센트로이드의 맵핑 테이블을 저장하고, 상기 센트로이드 인덱스를 상기 생존 가중치로 외부 메모리와 교환하는 신경망 시스템.
KR1020170027951A 2016-10-04 2017-03-03 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법 KR102336295B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/718,912 US20180096249A1 (en) 2016-10-04 2017-09-28 Convolutional neural network system using adaptive pruning and weight sharing and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160127854 2016-10-04
KR20160127854 2016-10-04

Publications (2)

Publication Number Publication Date
KR20180037558A true KR20180037558A (ko) 2018-04-12
KR102336295B1 KR102336295B1 (ko) 2021-12-09

Family

ID=61969325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170027951A KR102336295B1 (ko) 2016-10-04 2017-03-03 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR102336295B1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020091139A1 (ko) * 2018-10-31 2020-05-07 주식회사 노타 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
KR20200078865A (ko) * 2018-12-24 2020-07-02 아주대학교산학협력단 신경망의 프루닝-재훈련 장치 및 방법
WO2020154256A1 (en) * 2019-01-21 2020-07-30 Masud Ahmed Methods for self-aware, self-healing, and self-defending data
KR20200098121A (ko) * 2019-02-12 2020-08-20 에스케이하이닉스 주식회사 웨이트 매트릭스를 포맷하는 방법, 포맷된 데이터를 사용하는 가속기 및 이를 포함하는 시스템
CN111758104A (zh) * 2019-01-29 2020-10-09 深爱智能科技有限公司 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
CN112534446A (zh) * 2018-09-10 2021-03-19 日立汽车系统株式会社 电子控制装置、神经网络更新系统
KR20210058318A (ko) * 2019-11-14 2021-05-24 포항공과대학교 산학협력단 뉴럴 네트워크 시스템 및 뉴럴 네트워크의 필터 데이터의 처리 방법
CN113673693A (zh) * 2020-05-15 2021-11-19 宏碁股份有限公司 深度神经网络压缩的方法
KR20210138382A (ko) * 2020-05-12 2021-11-19 한국전자통신연구원 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
KR20210146534A (ko) * 2020-05-27 2021-12-06 인하대학교 산학협력단 학습된 신경망 모델을 사용자의 질의에 맞춰 분할하고 병합하는 방법 및 장치
CN113988181A (zh) * 2021-10-26 2022-01-28 北京航空航天大学云南创新研究院 一种基于自适应前馈神经网络的目标分类方法
US11544479B2 (en) 2019-02-01 2023-01-03 Electronics And Telecommunications Research Institute Method and apparatus for constructing translation model installed on a terminal on the basis of a pre-built reference model

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Han, Song, et al. Learning both weights and connections for efficient neural networks. arXiv preprint arXiv:1506.02626v3. 2015.10.30.* *
Han, Song, Huizi Mao, and William J. Dally. Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding. arXiv preprint arXiv:1510.00149v5. 2016.2.15.* *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112534446A (zh) * 2018-09-10 2021-03-19 日立汽车系统株式会社 电子控制装置、神经网络更新系统
WO2020091139A1 (ko) * 2018-10-31 2020-05-07 주식회사 노타 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
KR20200078865A (ko) * 2018-12-24 2020-07-02 아주대학교산학협력단 신경망의 프루닝-재훈련 장치 및 방법
WO2020154256A1 (en) * 2019-01-21 2020-07-30 Masud Ahmed Methods for self-aware, self-healing, and self-defending data
CN111758104A (zh) * 2019-01-29 2020-10-09 深爱智能科技有限公司 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
CN111758104B (zh) * 2019-01-29 2024-04-16 深爱智能科技有限公司 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
US11544479B2 (en) 2019-02-01 2023-01-03 Electronics And Telecommunications Research Institute Method and apparatus for constructing translation model installed on a terminal on the basis of a pre-built reference model
KR20200098121A (ko) * 2019-02-12 2020-08-20 에스케이하이닉스 주식회사 웨이트 매트릭스를 포맷하는 방법, 포맷된 데이터를 사용하는 가속기 및 이를 포함하는 시스템
KR20210058318A (ko) * 2019-11-14 2021-05-24 포항공과대학교 산학협력단 뉴럴 네트워크 시스템 및 뉴럴 네트워크의 필터 데이터의 처리 방법
KR20210138382A (ko) * 2020-05-12 2021-11-19 한국전자통신연구원 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
CN113673693B (zh) * 2020-05-15 2024-03-12 宏碁股份有限公司 深度神经网络压缩的方法
CN113673693A (zh) * 2020-05-15 2021-11-19 宏碁股份有限公司 深度神经网络压缩的方法
KR20210146534A (ko) * 2020-05-27 2021-12-06 인하대학교 산학협력단 학습된 신경망 모델을 사용자의 질의에 맞춰 분할하고 병합하는 방법 및 장치
CN113988181A (zh) * 2021-10-26 2022-01-28 北京航空航天大学云南创新研究院 一种基于自适应前馈神经网络的目标分类方法
CN113988181B (zh) * 2021-10-26 2022-09-20 北京航空航天大学云南创新研究院 一种基于自适应前馈神经网络的目标分类方法

Also Published As

Publication number Publication date
KR102336295B1 (ko) 2021-12-09

Similar Documents

Publication Publication Date Title
KR20180037558A (ko) 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법
US20180096249A1 (en) Convolutional neural network system using adaptive pruning and weight sharing and operation method thereof
CN112257794B (zh) 一种基于yolo的轻量级的目标检测方法
KR20180083030A (ko) 이진 파라미터를 갖는 컨볼루션 신경망 시스템 및 그것의 동작 방법
CN107766292B (zh) 一种神经网络处理方法及处理系统
JP2021503644A (ja) 重みデータの保存方法及びこの方法をベースとするニューラルネットワークプロセッサ
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN112700060B (zh) 站所终端负荷预测方法和预测装置
KR20210036715A (ko) 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크의 풀링을 처리하는 방법
CN112703511B (zh) 运算加速器和数据处理方法
CN113326930A (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
CN112614072B (zh) 一种图像复原方法、装置、图像复原设备及存储介质
CN111931901A (zh) 一种神经网络构建方法以及装置
CN111553296B (zh) 一种基于fpga实现的二值神经网络立体视觉匹配方法
CN114511042A (zh) 一种模型的训练方法、装置、存储介质及电子装置
CN112132278A (zh) 模型压缩方法、装置、计算机设备及存储介质
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
CN110222816B (zh) 深度学习模型的建立方法、图像处理方法及装置
CN111931927B (zh) 一种在npu中减少计算资源占用的方法及装置
Gutierrez-Estevez et al. Learning to communicate with intent: An introduction
WO2023115814A1 (zh) Fpga硬件架构及其数据处理方法、存储介质
KR102657904B1 (ko) 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
CN111767204B (zh) 溢出风险检测方法、装置及设备
WO2021134519A1 (zh) 在神经网络推理中实现数据同步的装置和方法
KR20210061800A (ko) 희소 신경망 생성 방법 및 이를 위한 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right