KR20210082081A - 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치 - Google Patents

음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20210082081A
KR20210082081A KR1020200175498A KR20200175498A KR20210082081A KR 20210082081 A KR20210082081 A KR 20210082081A KR 1020200175498 A KR1020200175498 A KR 1020200175498A KR 20200175498 A KR20200175498 A KR 20200175498A KR 20210082081 A KR20210082081 A KR 20210082081A
Authority
KR
South Korea
Prior art keywords
component
matrix multiplication
zero
value
neural network
Prior art date
Application number
KR1020200175498A
Other languages
English (en)
Other versions
KR102559036B1 (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 KR20210082081A publication Critical patent/KR20210082081A/ko
Application granted granted Critical
Publication of KR102559036B1 publication Critical patent/KR102559036B1/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/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

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

Abstract

제로스키핑 방법 및 이를 수행하기 위한 제로스키핑제공장치를 제시하며, 본 명세서에 기재된 일 실시예에 따르면 제로스키핑 방법은, 컨볼루션 뉴럴 네트워크에서의 연산 시 제로스키핑을 수행하는 방법에 있어서, 레이어에 입력 데이터가 입력되는 단계,상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하는 단계, 상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는 단계 및 상기 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력하는 단계를 포함할 수 있다.

Description

음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치{ZERO SKIPPING METHOD FOR NON-ZERO ACTIVATION FUNCTION AND APPARATUS THEREOF}
본 명세서에서 개시되는 실시예들은 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치에 관한 것으로, 보다 상세하게는 뉴럴네트워크가 구현된 장치에서 제로 스키핑(zero skipping) 기능이 구현된 하드웨어 가속기 반도체칩의 계산 효율을 높이기 위해 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치에 관한 것이다.
딥뉴럴네트워크는 일반적으로 컨볼루션을 사용하는 CNN(convolutional neural network)과 행렬과 벡터의 곱을 주된 계산으로 하는 RNN(recurrent neural network)으로 나뉜다. CNN은 영상처리에, RNN은 연속된 데이터처리에 적합한 것으로 알려져있다. CNN, RNN 모두 각 층(layer)에서는 입력데이터와 가중치(weight) 간의 컨볼루션 또는 행렬곱셈으로 출력을 구한 후 거기에 활성함수를 적용하여 해당 층의 출력을 구한다.
일반적으로 사용되는 활성화 함수는 ReLU(Rectified linear unit)로 행렬곱셈결과를 입력으로 받아 입력이 음수이면 0을 출력하고, 입력이 0 또는 양수이면 입력값을 그대로 출력한다.
뉴럴네트워크의 하드웨어 가속기 칩에서는 입력값이 0일 때 계산을 건너뛰는 기능(제로 스키핑: Zero skipping)이 구현되며, ReLU 활성화 함수의 경우 ReLU가 많은 값을 0으로 출력하기 때문에 0의 입력에 대한 계산을 건너뛰는 제로 스키핑 기술이 효과적이다.
최근 들어 최적화된 뉴럴네트워크에서는 새로운 활성화 함수로 h-swish 같은 활성화 함수가 사용되고 있으며, 이러한 h-swish 활성화 함수는 음수값을 출력할 수 있다.
하지만, 새로운 활성화 함수는 기존 ReLU 활성화 함수에서 0으로 출력하는 경우에도 음수값을 출력하기 때문에 하드웨어 가속기의 제로 스키핑 기술을 적용하여 최적의 계산 효과를 낼 수 없게 되는 문제점이 있다.
관련하여 선행기술 문헌인 한국특허공개번호 제10-2019-0051755호에서는 저 정밀도 뉴럴 네트워크 학습을 위한 방법 및 장치에 관한 것으로 상술된 바와 같이 새로운 활성화 함수를 적용하여 하드웨어 가속기의 제로 스키핑 기술을 효율적으로 이용하지 못하는 문제점을 해결하지 못한다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 명세서에서 개시되는 실시예들은, 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치를 제시하는데 목적이 있다.
본 명세서에서 개시되는 실시예들은 양수와 0으로 구성된 입력에 대한 행렬곱셈을 기존 제로 스키핑 하드웨어 가속기 또는 소프트웨어 구현에서도 이용할 수 있도록 제로 스키핑을 제공하는 방법 및 장치를 제시하는데 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 일 실시예에 따르면, 컨볼루션 뉴럴 네트워크에서의 연산 시 제로스키핑을 수행하는 방법에 있어서, 레이어에 입력 데이터가 입력되는 단계, 상기 입력 데이터를 기초로 0 이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하는 단계, 상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는 단계 및 상기 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력하는 단계를 포함할 수 있다.
다른 실시예에 따르면, 컨볼루션 뉴럴 네트워크에서 제로스키핑을 수행하는 제로스키핑제공장치는, 제로스키핑을 수행하는 프로그램이 저장되는 저장부 및 적어도 하나의 프로세서를 포함하는 제어부를 포함하며, 상기 제어부가 상기 프로그램을 실행시킴으로써 입력 데이터에 대한 컨볼루션을 수행함에 있어서, 상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하며, 상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출할 수 있다.
다른 실시예에 따르면, 컴퓨터에 제로스키핑 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서, 상기 제로스키핑 방법은, 컨볼루션 뉴럴 네트워크에서의 연산 시 제로스키핑을 수행하는 방법에 있어서, 레이어에 입력 데이터가 입력되는 단계, 상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하는 단계, 상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는 단계 및 상기 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력하는 단계를 포함할 수 있다.
다른 실시예에 따르면, 제로스키핑제공장치에 의해 수행되며, 제로스키핑 방법을 수행하기 위해 기록매체에 저장된 컴퓨터프로그램으로서, 상기 제로스키핑 방법은, 컨볼루션 뉴럴 네트워크에서의 연산 시 제로스키핑을 수행하는 방법에 있어서, 레이어에 입력 데이터가 입력되는 단계, 상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하는 단계 및 상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는 단계 및 상기 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력하는 단계를 포함할 수 있다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 음수값을 갖는 활성화 함수의 제로 스키핑을 제공하는 방법 및 장치를 제시할 수 있다.
또한, 음수값을 갖는 활성화 함수를 이용하여서도 기존의 제로 스키핑을 제공하는 하드웨어 뉴럴네트워크 가속기 또는 소프트웨어가 효율적으로 동작하도록 하는 제로 스키핑을 제공하는 방법 및 장치를 제시할 수 있다.
또한, 뉴럴네트워크의 레이어에 입력되는 입력 데이터를 성분에 따라 분리하여 계산함으로써 양수 또는 0으로 구성된 입력에 대해 제로 스키핑이 적용될 수 있도록 하여 계산의 효율성을 높이는 제로 스키핑을 제공하는 방법 및 장치를 제시할 수 있다.
또한, 뉴럴네트워크를 구성하는 레이어에서 이용하는 새로운 활성함수를 이용하더라도 기존의 제로 스킵을 지원하는 하드웨어 뉴럴네트워크 가속기와 소프트웨어 구현을 효과적으로 할 수 있는 제로 스키핑을 제공하는 방법 및 장치를 제시할 수 있다.
또한, 레이어의 입력되는 입력 데이터 중 상수로 구성되는 부분은 미리 계산을 통해 실제 계산시 계산시간을 최소화하는 제로 스키핑을 제공하는 방법 및 장치를 제시할 수 있다.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 따른 뉴럴 네트워크의 한 레이어에서 수행되는 연산과정을 설명하기 위한 예시도이다.
도 2는 일 실시예에 따른 제로스키핑제공장치의 구성을 도시한 블록도이다.
도 3은 제로스키핑제공장치가 컨볼루션 뉴럴 네트워크를 수행하는 과정 중 컨볼루션 연산 부분을 도시한 예시도이다.
도 4는 제로스키핑제공장치가 입력 데이터를 기초로 제1성분과 제2성분을 생성하는 과정을 도시한 예시도이다.
도 5 내지 도 7은 일 실시예에 따른 제로스키핑장치에 의해 수행되는 제로스키핑 방법을 단계적으로 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 뉴럴 네트워크의 한 레이어에서 수행되는 연산과정을 설명하기 위한 예시도이다.
일 실시예에 따르면, 컨볼루션 뉴럴 네트워크(100)에서는 입력 데이터를 각 커널과 컨볼루션하는 과정을 거쳐 출력 데이터를 도출한다. 이때 컨볼루션은, 입력 데이터를 처리함에 있어서 각 커널에 대응하는 가중치(w; weight)를 적용하는 과정을 포함한다. 컨볼루션 뉴럴 네트워크(100)의 한 레이어에서 해당 레이어의 입력 데이터와 가중치들 간의 곱셈을 수행하고 그 결과를 모두 합한 결과값을 구한 후, 결과값을 활성화함수에 입력으로 전달한다. 활성화함수는 이 입력에 대해 해당하는 출력을 만들고, 이 출력은 다음 레이어의 입력이 될 수 있다.
한편, 도 1에 도시된 것과 같은 컨볼루션은 각 레이어마다 반복될 수 있다. 즉, 컨볼루션을 통해 도출된 출력 데이터가 활성화함수를 거치고, 다음 레이어의 입력 데이터로 입력되어 다시 한 번 컨볼루션이 수행된다. 이와 같은 컨볼루션은 최종 출력값이 도출될 때까지 복수의 레이어에서 반복될 수 있다.
활성화함수의 역할은 다음과 같다. 딥러닝은 뉴럴 네트워크(Neural network)를 학습시켜 최적화하는 과정으로, 이러한 인공신경망은 사람의 뇌를 구성하는 뉴런의 동작원리에 기초한다. 뉴런은 입력신호를 받고 연결된 다음 뉴런으로 신호를 전달하는 과정에서, 신호의 강도가 약해져서 신호가 다음 뉴런으로 전달되지 않거나 또는 의도와 다르게 신호가 강하게 전달되기도 한다. 이러한 강도는 입력 데이터에 가중치의 곱과 편향의 합이 활성화함수를 통과함에 의해 결정된다. 즉, 활성화함수는 뉴런간의 연결강도를 결정하는 매우 중요한 역할을 한다.
본 발명의 일실시예에 따르면, 활성화함수로 사용하는 함수는 swish 함수와 h-swish를 포함할 수 있다. Swish, h-swish 함수의 경우 활성화함수가 입력값에 따라 음의 값을 가진 출력을 낼 수 있다. 따라서, 도1과 같은 컨볼루션을 통해 도출된 출력 데이터가 활성화함수(Swish나 h-swish)를 거친 경우, 음의 부호를 가진 출력값이 도출되고, 이 출력값은 다음 레이어의 입력 데이터로 입력될 수 있다.
도 2는 일 실시예에 따른 제로스키핑제공장치(200)의 구성을 도시한 블록도이다.
본 명세서에서 개시되는 일 실시예에 따른 제로스키핑제공장치(200)는, 특히 컨볼루션 뉴럴 네트워크(CNN; Convolution Neural network)를 구동하기 위한 장치로서, 하드웨어 가속기를 포함할 수 있다. 구체적인 구성은 도 2를 참고하여 설명한다.
도 2를 참고하면, 일 실시예에 따른 제로스키핑제공장치(200)는 입출력부(210), 저장부(220) 및 제어부(230)를 포함할 수 있다.
일 실시예에 따른 입출력부(210)는 사용자로부터 입력을 수신하기 위한 입력장치와, 작업의 수행 결과 또는 제로스키핑제공장치(200)의 상태 등의 정보를 표시하기 위한 출력장치를 포함할 수 있다. 예를 들어, 입출력부(210)는 데이터 처리의 명령을 수신하기 위한 입력부와 수신한 명령에 따라 처리된 결과를 출력하는 출력부를 포함할 수 있다. 일 실시예에 따르면 입출력부(210)는 키보드나 마우스, 터치패널 등의 사용자 입력수단과, 모니터나 스피커 등의 출력수단을 포함할 수 있다.
한편, 저장부(220)는 뉴럴 네트워크(100)를 구현하기 위한 데이터를 저장할 수 있다. 가령 컨볼루션 뉴럴 네트워크(100)의 입력 데이터를 저장할 수 있고, 컨볼루션 뉴럴 네트워크(100)의 수행 결과로서 출력 데이터를 저장할 수 있다. 또한, 저장부(220)는 뉴럴 네트워크(100)를 구현하여 연산을 수행할 수 있는 각종 데이터나 프로그램들을 저장할 수 있다. 또한, 제로스키핑에 필요한 각종 데이터나 프로그램들을 저장할 수 있다.
그리고 제어부(230)는 뉴럴 네트워크 시스템(200)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 특히, 제어부(230)는 저장부(220)에 저장된 프로그램을 실행하거나 데이터를 읽어 컨볼루션 뉴럴 네트워크를 수행하고, 더불어 제로스키핑 또한 수행할 수 있다. 또한 제어부(230)는 하드웨어 가속기를 포함할 수 있다. 이 때, 하드웨어 가속기는 컨볼루션 뉴럴 네트워크(100)를 위하여 컨볼루션 연산을 수행할 수 있으며, GPU로 구현될 수 있다.
본 발명에서 제로스키핑제공장치(200)는 컨볼루션 뉴럴 네트워크(100)의 레이어에 입력되는 입력 데이터를 음수성분과 양수 또는 0 이상의 값 성분으로 입력데이터를 분리하여 생성할 수 있고, 생성된 입력 데이터 각각에 대해 레이어 상의 콘볼루션 계산을 수행할 수 있다.
도 3은 제로스키핑제공장치(200)가 컨볼루션 뉴럴 네트워크(100)를 수행하는 과정 중 컨볼루션 연산 부분(110)을 도시한 예시도이다. 도 3을 참조하면, 제로스키핑제공장치(200)는 레이어에 입력되는 입력 데이터(10)를 기초로 0이상의 값들만 포함된 제1성분(20)과 음수만 포함된 제2성분(30)을 생성할 수 있고, 생성된 각 성분에 대해 컨볼루션 계산을 수행한 결과값을 결합하여 레이어의 결과값으로 획득할 수 있다. 이‹š, 제2성분(30)은 뉴럴 네트워크(100)에서 사용되는 활성화함수의 함수값 중 최소값이고, 음수인 상수로만 포함되도록 생성할 수 있고, 제1성분(20)은 제2성분(30)의 상수에 기초하여 입력 데이터(10)를 0이상의 값으로 조정한 값들만 포함되도록 생성할 수 있다. 제1성분(20)과 제2성분(30)을 생성하는 구체적인 방법은 도 4를 참조하여 설명한다.
도4는 제로스키핑제공장치(200)가 입력 데이터(10)를 기초로 제1성분(20)과 제2성분(30)을 생성하는 과정을 도시한 예시도이다. 도 4을 참조하면, 제로스키핑장치(200)는 h-swish 활성화함수의 출력값으로 이전 레이어로부터 전달된 입력 데이터(10)를 상수성분과 나머지 성분으로 분리하여 생성할 수 있다. 예를 들어, h-swish활성화함수는 최소값이 -0.375이므로 제로스키핑제공장치(200)는 입력 데이터(10)를 상수인 -0.375로만 구성된 제2성분(30)과 입력 데이터(10)에 0.375만큼 더하여 입력 데이터(10)를 0이상의 값으로 조정한 값들만 포함된 제1성분(20)을 생성할 수 있다. 그리고 제로스키핑제공장치(200)는 제1성분(20)과 제2성분(30) 각가에 대한 컨볼루션 결과값을 합쳐 최종 결과값을 획득할 수 있다.
이때, 제로스키핑제공장치(200)는 제2성분(30)의 상수에 대한 컨볼루션 계산을 미리 수행할 수 있다. 즉, 제로스키핑제공장치(200)는 레이어에 입력되는 최종 학습된 가중치(weights)와 상수성분의 값(h-swish의 경우 -0.375)을 미리 획득할 수 있고, 기 획득한 값을 이용하여 상수의 행렬곱셈계산 결과값을 추론 전에 미리 산출할 수 있고, 이를 이용하여 제2성분(30)의 행렬곱셈계산 결과값을 산출할 수 있다.
또한 제1성분(20)은 0이상의 값만 포함되므로, 제1성분(20)에 제로스키핑을 적용하여 제1성분(20)의 행렬곱셈계산 결과값을 산출할 수 있다. 이를 통해, 입력 데이터(10)에 음수가 포함되더라도 두 성분으로 분리하여 0이상의 성분에 기존의 제로스키핑을 수행할 수 있다.
또한, 제로스키핑제공장치(200)는 컨볼루션 연산 후 결과의 크기(size)를 유지하기 위해 행렬곱셈결과값에 0을 추가하는 제로패딩(zero padding)을 수행할 수 있다. 이때 제로패딩에서 추가되는 상수는 0대신 뉴럴 네트워크(100)에서 사용되는 활성함수의 함수값 중 최소값이고, 음수인 상수일 수 있다. 예를 들어, 제로스키핑제공장치(200)는 제1레이어에서 새로운 활성화 함수인 h-swish로부터 출력된 학습데이터를 제2레이어의 입력으로 입력할 때, h-swish의 함수값 중 최소값이고, 음수인 -0.375를 학습데이터에 패딩하여 패딩데이터를 생성할 수 있다. 그리고 제로스키핑제공장치(200)는 컨볼루션 계산시 제로패딩을 적용하기 위해서는 패딩데이터의 바깥쪽 값이 활성활함수의 음수값에 대응되는 값을 가져야 하므로 제로스키핑제공장치(200)는 학습데이터의 바깝쪽 테두리의 값을 -0.375로 패딩하여 패딩학습데이터를 생성할 수 있다. 관련하여, 이러한 제로패딩의 -0.375값은 추후에 제로스키핑방법에 의해 0으로 조정되므로, -0.375을 패딩하는 제로패딩은 0을 패딩하는 제로패딩과 같은 효과를 가진다.
도 5 내지 도 7은 일 실시예에 따른 제로스키핑제공장치(200)에 의해 수행되는 제로스키핑 방법을 단계적으로 도시한 도면이다.
제로스키핑제공장치(200)는 뉴럴 네트워크(100)의 한 레이어에 입력 데이터(10)가 입력되도록 할 수 있다.
도 5를 참조하면, 도면에 도시된 바와 같이 제로스키핑제공장치(200)는 뉴럴 네트워크(100)의 레이어에 입력된 입력 데이터(10)를 기초로 0이상의 값들만 포함된 제1성분(20)과 음수만 포함된 제2성분(30)을 생성한다(S510). S510단계에서 제1성분(20)과 제2성분(30)을 생성하는 과정은 다시 S601 단계 내지 S602 단계로 구분될 수 있다.
제로스키핑제공장치(200)는 각 성분별로 행렬곱셈계산을 수행하고, 제1성분에 대한 상기 행렬곱셈결과값과 제2성분에 대한 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출한다(S520). S520단계에서 최종 행렬곱셈결과값을 산출하는 과정은 다시 S701 내지 S703 단계로 구분될 수 있다. 그리고, 제로스키핑제공장치(200)는 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력할 수 있다.
S510단계에 대하여 도면 6을 참조하여 자세하게 설명한다.
제로스키핑제공장치(200)는 뉴럴 네트워크(100)에서 사용되는 활성화함수의 함수값 중 최소값이고, 음수인 상수만을 포함하도록 제2성분(30)을 생성한다(S601). 일 실시예에 따르면, h-swish활성화함수는 최소값이 -0.375이므로 제로스키핑제공장치(200)는 입력 데이터(10)를 -0.375의 상수만을 포함하도록 제2성분(30)을 생성할 수 있다.
제로스키핑제공장치(200)는 제2성분(30)의 상수에 기초하여 입력 데이터(10)를 0이상의 값으로 조정하여 제1성분(20)을 생성한다(S602). 일 실시예에 따르면, h-swsih 활성화함수는 최소값이 -0.375이므로 0.375만큼 더하여 입력 데이터(10)를 0이상의 값으로 조정한 값들만 포함된 제1성분(20)을 생성할 수 있다.
S520단계에 대하여 도면 7을 참조하여 자세하게 설명한다.
제로스키핑제공장치(200)는 제1성분(20)에 제로스키핑을 적용하여 제1성분(20)의 행렬곱셈계산 결과값을 산출한다(S701). 제1성분(20)은 0이상의 값만 포함되므로, 제1성분(20)에 제로스키핑을 적용하여 제1성분(20)의 행렬곱셈계산 결과값을 산출할 수 있다. 이를 통해, 입력 데이터(10)에 음수가 포함되더라도 제로스키핑을 수행할 수 있다.
제로스키핑제공장치(200)는 미리 계산된 상수의 행렬곱셈계산 결과값을 이용하여 제2성분(30)의 행렬곱셈계산 결과값을 산출한다(S702). 제로스키핑제공장치(200)는 레이어에 입력되는 최종 학습된 가중치(weights)와 상수성분의 값(h-swish의 경우 -0.375)을 미리 획득할 수 있고, 기 획득한 값을 이용하여 상수의 행렬곱셈계산 결과값을 추론 전에 미리 산출할 수 있고, 이를 이용하여 제2성분(30)의 행렬곱셈계산 결과값을 산출할 수 있다.
제로스키핑제공장치(200)는 제1성분(20)과 제2성분(30)의 행렬곱셈계산 결과값을 합해 최종 행렬곱셈결과를 산출한다(S703).
한편, 도 8은 제로스키핑제공장치(200)의 성능을 도시한 예시도이다. 도 8에 도시된 그래프는 본 발명을 Mobilnet V3 기반의 양자화된 Cifar-100 모델에 적용한 경우이다. 제1그래프(801)는 ReLU 함수에 대한 양자화를 h-swish의 경우에도 적용한 것으로 양자화 레벨은 최소값 0을 갖게 되어 최소값 근처에서 양자화 오차가 클 수 있다. 제2그래프(802)는 본 발명을 이용한 양자화 결과로, 이를 보면 최소값에서 양자화레벨이 위치하여 최소값 근처에서 양자화 오차를 줄일 수 있다. 그 결과 2개의 양자화 모델은 정화도 차이를 보이며 본 발명을 적용한 양자화 겨로가가 기존 양자화 방법보다 1.5% 이상 정확도 향상될 수 있음을 알 수 있다.
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.
도 3 내지 도 5을 통해 설명된 실시예들에 따른 제로스키핑 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.
또한 도 3 내지 도 5을 통해 설명된 실시예들에 따른 제로스키핑 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 도 3 내지 도 5을 통해 설명된 실시예들에 따른 제로스키핑 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 명세서를 통해 보호받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.
10: 입력 데이터 20: 제1성분
30: 제2성분 40: 출력값
100: 뉴럴 네트워크 110: 컨볼루션 연산 부분
200: 제로스키핑제공장치 210:입출력부
220: 저장부 230: 제어부
801: 제1그래프 802: 제2그래프

Claims (14)

  1. 컨볼루션 뉴럴 네트워크에서의 연산 시 제로스키핑을 수행하는 방법에 있어서,
    레이어에 입력 데이터가 입력되는 단계;
    상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하는 단계;
    상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는 단계; 및
    상기 최종 행렬곱셈결과값을 다음 레이어의 입력으로 입력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2성분을 생성하는 단계는,
    상기 제2성분은 상기 뉴럴 네트워크에서 사용되는 활성함수의 함수값 중 최소값이고, 음수인 상수로만 포함되도록 하는, 방법.
  3. 제2항에 있어서,
    상기 제1성분을 생성하는 단계는,
    상기 제1성분은 상기 제2성분의 상기 상수에 기초하여 상기 입력 데이터를 0이상의 값으로 조정한 값들만 포함되도록 하는, 방법.
  4. 제3항에 있어서,
    상기 제1성분에 행렬곱셈계산을 수행하는 단계는,
    상기 제1성분에 제로스키핑을 적용하여 상기 제1성분의 행렬곱셈계산 결과값을 산출하는, 방법.
  5. 제2항에 있어서,
    상기 제2성분에 행렬곱셈계산을 수행하는 단계는,
    상기 뉴럴 네트워크의 연산을 수행하기 전 미리 계산된 상기 상수의 행렬곱셈계산 결과값을 이용하여 상기 제2성분의 행렬곱셈계산 결과값을 산출하는, 방법.
  6. 제1항에 있어서,
    컨볼루션 연산 후 결과의 크기(size)를 유지하기 위해 행렬곱셈결과값에 0을 추가하는 제로패딩(zero padding)을 수행하는 단계를 더 포함하며,
    상기 제로패딩에서 추가되는 상수는 0 대신 상기 컨볼루션 뉴럴 네트워크에서 사용되는 활성함수의 함수값 중 최소값이고 음수인, 방법.
  7. 컨볼루션 뉴럴 네트워크에서 제로스키핑을 수행하는 제로스키핑제공장치에 있어서,
    제로스키핑을 수행하는 프로그램이 저장되는 저장부; 및
    적어도 하나의 프로세서를 포함하는 제어부를 포함하며,
    상기 제어부가 상기 프로그램을 실행시킴으로써 입력 데이터에 대한 컨볼루션을 수행함에 있어서,
    상기 입력 데이터를 기초로 0이상의 값들만 포함된 제1성분과 음수만 포함된 제2성분을 생성하며,
    상기 제1성분과 제2성분에 각각 행렬곱셈계산을 수행하여 행렬곱셈결과값을 산출하고, 상기 제1성분에 대한 상기 행렬곱셈결과값과 상기 제2성분에 대한 상기 행렬곱셈결과값을 합해 최종 행렬곱셈결과값을 산출하는, 장치.
  8. 제 7항에 있어서,
    상기 제2성분은 상기 뉴럴 네트워크에서 사용되는 활성함수의 함수값 중 최소값이고, 음수인 상수로만 포함되는, 장치.
  9. 제 8항에 있어서,
    상기 제1성분은 상기 제2성분의 상기 상수에 기초하여 상기 입력 데이터를 0이상의 값으로 조정한 값들만 포함되는, 장치
  10. 제9항에 있어서,
    상기 제어부는,
    상기 제1성분에 제로스키핑을 적용하여 상기 제1성분의 행렬곱셈계산 결과값을 산출하는, 장치.
  11. 제8항에 있어서,
    상기 제어부는,
    상기 뉴럴 네트워크의 연산을 수행하기 전 미리 계산된 상기 상수의 행렬곱셈계산 결과값을 이용하여 상기 제2성분의 행렬곱셈계산 결과값을 산출하는, 장치.
  12. 제7항에 있어서,
    상기 제어부는,
    컨볼루션 연산 후 결과의 크기(size)를 유지하기 위해 행렬곱셈결과값에 0을 추가하는 제로패딩(zero padding)을 수행할 수 있으며,
    상기 제로패딩에서 추가되는 상수는 0대신 상기 컨볼루션 뉴럴 네트워크에서 사용되는 활성화함수의 함수값 중 최소값이고 음수인, 장치.
  13. 컴퓨터에 제1항에 기재된 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  14. 컨볼루션 뉴럴 네트워크를 위한 하드웨어 가속기 장치에 의해 수행되며, 제1항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.
KR1020200175498A 2019-12-24 2020-12-15 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치 KR102559036B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190174363 2019-12-24
KR1020190174363 2019-12-24

Publications (2)

Publication Number Publication Date
KR20210082081A true KR20210082081A (ko) 2021-07-02
KR102559036B1 KR102559036B1 (ko) 2023-07-25

Family

ID=76897318

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200175498A KR102559036B1 (ko) 2019-12-24 2020-12-15 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102559036B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024043696A1 (ko) * 2022-08-23 2024-02-29 삼성전자 주식회사 인공지능 모델을 이용하여 연산을 수행하는 전자 장치 및 전자 장치의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180060149A (ko) * 2016-11-28 2018-06-07 삼성전자주식회사 컨볼루션 처리 장치 및 방법
KR20190052893A (ko) * 2017-11-09 2019-05-17 삼성전자주식회사 뉴럴 네트워크 연산을 위한 전처리 장치 및 방법
KR20190066473A (ko) * 2017-12-05 2019-06-13 삼성전자주식회사 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치
KR20190089685A (ko) * 2018-01-23 2019-07-31 삼성전자주식회사 데이터를 처리하는 방법 및 장치
JP2019200553A (ja) * 2018-05-15 2019-11-21 国立大学法人東京工業大学 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050928A (ko) * 2016-11-07 2018-05-16 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180060149A (ko) * 2016-11-28 2018-06-07 삼성전자주식회사 컨볼루션 처리 장치 및 방법
KR20190052893A (ko) * 2017-11-09 2019-05-17 삼성전자주식회사 뉴럴 네트워크 연산을 위한 전처리 장치 및 방법
KR20190066473A (ko) * 2017-12-05 2019-06-13 삼성전자주식회사 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치
KR20190089685A (ko) * 2018-01-23 2019-07-31 삼성전자주식회사 데이터를 처리하는 방법 및 장치
JP2019200553A (ja) * 2018-05-15 2019-11-21 国立大学法人東京工業大学 ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024043696A1 (ko) * 2022-08-23 2024-02-29 삼성전자 주식회사 인공지능 모델을 이용하여 연산을 수행하는 전자 장치 및 전자 장치의 동작 방법

Also Published As

Publication number Publication date
KR102559036B1 (ko) 2023-07-25

Similar Documents

Publication Publication Date Title
CN108009640B (zh) 基于忆阻器的神经网络的训练装置及其训练方法
US20200151573A1 (en) Dynamic precision scaling at epoch granularity in neural networks
US20190251436A1 (en) High-speed processing method of neural network and apparatus using the high-speed processing method
KR102034659B1 (ko) 컨볼루션 뉴럴 네트워크를 위한 하드웨어 가속기 및 컨볼루션 연산량 감소 방법
US11954755B2 (en) Image processing device and operation method thereof
KR102199285B1 (ko) 딥러닝 신경망의 압축 방법 및 이를 수행하기 위한 장치
JP2020126651A (ja) ニューラルネットワークのコンボルーション演算を処理する方法及び装置
US20200364486A1 (en) Image processing apparatus and operating method of the same
KR102559036B1 (ko) 음수값을 갖는 활성화 함수에서 제로 스키핑을 제공하는 방법 및 장치
KR20210045224A (ko) 데이터를 처리하는 방법 및 장치
US20220092410A1 (en) Architected library interface for kernel fusion
US10824944B2 (en) Method for feature data recalibration and apparatus thereof
US20230206586A1 (en) Method and apparatus with object tracking
US11568303B2 (en) Electronic apparatus and control method thereof
KR20200068553A (ko) 딥러닝 네트워크를 이용하여 복수의 이미지들로부터 이야기를 생성하기 위한 방법 및 장치
US11550873B2 (en) Arithmetic processing apparatus, arithmetic processing method, and non-transitory computer-readable storage medium for storing arithmetic processing program
JP2020190895A (ja) 情報処理装置、情報処理プログラム及び情報処理方法
KR20200072308A (ko) 뉴럴 네트워크에서 컨볼루션 연산을 수행하는 방법 및 장치
CN116227545A (zh) 用于神经网络的分布式训练的方法和设备
JP7310927B2 (ja) 物体追跡装置、物体追跡方法及び記録媒体
JP7438544B2 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
KR20220069225A (ko) 트랜스포머 뉴럴 네트워크 경량화를 위한 지식 증류 방법 및 이를 수행하기 위한 장치
US20230214447A1 (en) Data processing apparatus, data processing method, and recording medium
US20230177820A1 (en) Computing apparatus and method for performing reinforcement learning using multimodal artificial intelligence agent
KR102590099B1 (ko) 기계학습 모델 연산 제어 방법 및 시스템

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant