KR102152615B1 - 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치 - Google Patents

활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치 Download PDF

Info

Publication number
KR102152615B1
KR102152615B1 KR1020190174988A KR20190174988A KR102152615B1 KR 102152615 B1 KR102152615 B1 KR 102152615B1 KR 1020190174988 A KR1020190174988 A KR 1020190174988A KR 20190174988 A KR20190174988 A KR 20190174988A KR 102152615 B1 KR102152615 B1 KR 102152615B1
Authority
KR
South Korea
Prior art keywords
value
neural network
activation function
artificial neural
layer
Prior art date
Application number
KR1020190174988A
Other languages
English (en)
Inventor
채승엽
김소원
박민수
Original Assignee
주식회사 마크애니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 마크애니 filed Critical 주식회사 마크애니
Priority to KR1020190174988A priority Critical patent/KR102152615B1/ko
Priority to US16/729,506 priority patent/US11580406B2/en
Application granted granted Critical
Publication of KR102152615B1 publication Critical patent/KR102152615B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • 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/047Probabilistic or stochastic networks
    • 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/048Activation functions
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)

Abstract

본 발명의 일 양태는 딥 러닝(deep learning)을 위한 인공신경망 학습 장치를 개시하고 있다. 상기 장치는, 입력 데이터 또는 훈련 데이터를 획득하기 위한 입력부, 상기 입력 데이터, 상기 훈련 데이터 및 딥 러닝 인공 신경망 모델을 저장하는 메모리 및 상기 인공 신경망 모델을 기반으로 연산을 수행하는 프로세서를 포함하되, 상기 프로세서는, 상기 인공 신경망 모델의 제 1 노드 - 제 1 노드는 제 1 레이어에 포함됨 - 와 상기 제 1 노드에 바로 후속하는 제 2 노드 - 제 2 노드는 제 2 레이어에 포함됨 - 간의 활성화 함수에 영향을 미치는 초기 가중치 값 설정에 있어서, 상기 인공신경망 모델의 상기 제 1 레이어에 속한 노드들의 갯수와 상기 제 2 레이어에 속한 노드들의 갯수에 의존하여 상기 초기 가중치 값을 설정하되, 여기서, 상기 활성화 함수의 출력값이 특정 값에 수렴하는 구간을 제외한 나머지 구간만큼의 정규 확률 분포의 확률의 역수 제곱근만큼 표준편차(σ)를 배수하여 보상함에 의해 상기 초기 가중치 값을 결정한다.

Description

활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치{WEIGHT INITIALIZATION METHOD AND APPARATUS FOR STABLE LEARNING OF DEEP LEARNING MODEL USING ACTIVATION FUNCTION}
본 발명은 딥러닝 모델에 관한 것으로, 보다 상세하게는, 딥러닝 모델의 안정적인 학습을 위한 방법이다.
최근 이미지 인식을 비롯한 다양한 분야에서 인공지능이 주목받고 있다. 특히, 과적합 문제를 해결하고, 하드웨어의 발전과 빅데이터의 확보가 가능해지면서 방대한 양의 데이터를 기반으로 스스로 학습하고 패턴을 찾는 딥러닝(Deep Learning) 알고리즘이 주목받고 있고, 이에 대한 많은 연구가 진행되고 있다.
딥러닝은 인공신경망(Neural Network)을 학습시켜 최적화하는 과정으로, 이러한 인공신경망은 사람의 뇌를 구성하는 뉴런의 동작원리에 기초한다. 뉴런은 입력신호를 받고 연결된 다음 뉴런으로 신호를 전달하는 과정에서, 신호의 강도가 약해져서 신호가 다음 뉴런으로 전달되지 않거나 또는 의도와 다르게 신호가 강하게 전달되기도 한다. 이러한 강도는 입력값에 가중치의 곱과 편향의 합이 활성화 함수를 통과함에 의해 결정된다. 즉, 이러한 활성화 함수는 뉴런간의 연결강도를 결정하는 매우 중요한 역할을 함에도, 최근까지 진행된 활성화 함수에 대한 연구는 미분값을 이용한 역전파(Back Propagation) 학습이 불가능한 문제, 및 누적되는 미분 곱이 결국 0으로 수렴하여 학습이 불가능한 Vanishing Gradient 문제 및 음수 영역에서의 역전파 학습이 불가능한 문제 등 다양한 문제를 안고 있어 이를 해결할 수 있는 활성화 함수가 필요한 실정이다.
추가적으로, 상기와 같이, 인공신경망을 구성하는 뉴런들 간의 연결 강도를 결정하고, 학습 성능에 큰 영향을 미치는 활성화 함수는 초기 가중치 값 설정에 따라 학습 성능에 큰 영향을 끼치는데, 현재까지 연구된 초기화 방법은 학습과정에서 모든 뉴런들의 가중치가 동일한 값으로 업데이트되어 각 층이 갖는 복수 개의 채널 이득을 얻을 수 없는 문제, 0 또는 1에 치우치는 결과가 얻어지는 문제, 출력 값이 0으로 수렴하는 문제 등이 있어 안정적인 학습을 어렵게 하는 문제점이 있다.
본 발명의 일 양태에 따른 목적은, 양수 영역에서는 제 1 활성화함수를 사용하고 음수영역에 대해서는 제 2 활성화 함수를 사용하되, 제 2 활성화 함수는 구간을 나누어 서로 다른 기울기의 선형함수를 포함하는 Re-ELU 활성화 함수를 사용하는 심층 인공신경망을 안정적으로 학습시키고 성능을 개선하기 위한 딥 러닝 인공신경망 학습 장치를 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 양태에 따른 딥 러닝(deep learning)을 위한 인공신경망 학습 장치는, 입력 데이터 또는 훈련 데이터를 획득하기 위한 입력부, 상기 입력 데이터, 상기 훈련 데이터 및 딥 러닝 인공 신경망 모델을 저장하는 메모리 및 상기 인공 신경망 모델을 기반으로 연산을 수행하는 프로세서를 포함하되, 상기 프로세서는, 상기 인공 신경망 모델의 제 1 노드 - 제 1 노드는 제 1 레이어에 포함됨 - 와 상기 제 1 노드에 바로 후속하는 제 2 노드 - 제 2 노드는 제 2 레이어에 포함됨 - 간의 활성화 함수에 영향을 미치는 초기 가중치 값 설정에 있어서, 상기 인공신경망 모델의 상기 제 1 레이어에 속한 노드들의 갯수와 상기 제 2 레이어에 속한 노드들의 갯수에 의존하여 상기 초기 가중치 값을 설정하되, 여기서, 상기 활성화 함수의 출력값이 특정 값에 수렴하는 구간을 제외한 나머지 구간만큼의 정규 확률 분포의 확률의 역수 제곱근만큼 표준편차(σ)를 배수하여 보상함에 의해 상기 초기 가중치 값을 결정할 수 있다.
상기 초기 가중치 값은 평균이 0이고, 표준편차(σ)가
Figure 112019134051042-pat00001
(여기서, ninputs는 제 1 레이어에 속한 노드들의 갯수, noutputs는 제 2 레이어에 속한 노드들의 갯수를 의미하며, m은 활성화함수에서 특정 구간의 길이를, K는 활성화함수에서 일정 길이를 갖는 구간의 갯수를 의미함)인 정규 확률 분포를 활용하여 설정될 수 있다.
상기 특정 값은 -1이며, 상기 특정 값에 수렴하는 구간은 상기 m 값과 상기 K 값의 곱보다 작은 값을 갖는 구간일 수 있다.
상기 프로세서는, 상기 인공 신경망의 제 1 노드로의 입력 값이 양수인지 음수인지에 판별하고, 상기 입력 값이 양수임에 대응하여 제 1 활성화 함수를 실행시키고, 상기 입력 값이 음수임에 대응하여 제 2 활성화 함수를 실행시키며, 상기 제 1 활성화 함수 또는 제 2 활성화 함수를 실행시켜 생성된 결과 값을 상기 인공신경망의 제 2 노드로 제공하되, 상기 제 1 활성화 함수는 ReLU(Rectified Linear Unit) 함수이고, 상기 제 2 활성화 함수는 음수 영역의 제 1 구간에서 제 1 기울기를 갖고, 음수 영역의 제 2 구간에서 제 2 기울기를 갖는 선형 함수(linear function)이며, 상기 제 1 기울기와 상기 제 2 기울기는 서로 다른 기울기일 수 있다.
상기 제 2 활성화 함수는 다음의 수학식으로 표현되되,
Figure 112019134051042-pat00002
, 여기서, M(x)는 제 2 활성화 함수를 나타내고, An은 특정 구간의 종단점의 x 값을, n 및 i는 구간 인덱스를, m은 구간의 길이를, K는 일정 길이를 갖는 구간의 갯수를 나타낼 수 있다.
구간의 길이를 나타내는 m 값이 2의 값을 갖고, 구간의 갯수를 나타내는 K 값이 2의 값을 가질 수 있다.
상기 m 값 및 K 값 중 적어도 하나는 상기 인공신경망의 노드의 수에 비례하여 결정될 수 있다.
상기한 목적을 달성하기 위한 본 발명의 다른 양태에 따른 딥 러닝(deep learning)을 위한 인공신경망 학습 방법은, 입력 데이터 또는 훈련 데이터를 획득하는 단계 및 상기 입력 데이터 및 상기 훈련 데이터를 기반으로 딥 러닝 인공 신경망 모델을 통해 학습을 수행하는 단계를 포함하되, 상기 딥 러닝 인공 신경망 모델을 통해 학습을 수행하는 단계는, 상기 인공 신경망 모델의 제 1 노드 - 제 1 노드는 제 1 레이어에 포함됨 - 와 상기 제 1 노드에 바로 후속하는 제 2 노드 - 제 2 노드는 제 2 레이어에 포함됨 - 간의 활성화 함수에 영향을 미치는 초기 가중치 값을 설정하는 단계를 포함하고, 상기 초기 가중치 값을 설정하는 단계는, 상기 인공신경망 모델의 상기 제 1 레이어에 속한 노드들의 갯수와 상기 제 2 레이어에 속한 노드들의 갯수에 의존하여 상기 초기 가중치 값을 설정하는 단계를 포함하되, 상기 초기 가중치 값이 상기 활성화 함수의 출력값이 특정 값에 수렴하는 구간을 제외한 나머지 구간만큼의 정규 확률 분포의 확률의 역수 제곱근만큼 표준편차(σ)를 배수하여 보상함에 의해 결정될 수 있다.
본 발명의 일 양태에 따른 딥 러닝 인공신경망 학습 장치에 따르면, 레이어가 깊어져도 -1 값으로 수렴하지 않고 정규 확률 분포를 유지함으로써 안정적인 학습을 가능케 하는 효가가 있다.
도 1은 본 발명의 일 실시예에 따른 활성화 함수가 실행되는 인공신경망의 구성을 나타낸 개념도,
도 2는 제 1 레이어의 노드로부터 제 2 레이어의 노드에 적용되는 가중치 및 편향 값을 설명하기 위한 개념도,
도 3a는 스텝 함수(Step Function)를 나타낸 그래프,
도 3b는 시그모이드 함수(Sigmoid Function)를 나타낸 그래프,
도 3c는 ReLU 함수(Rectified Linear Unit Function)를 나타낸 그래프,
도 4는 본 발명의 일 실시예에 따른 ReELU 활성화 함수를 실행하는 방법을 개략적으로 나타낸 흐름도,
도 5는 본 발명의 일 실시예에 따른 ReELU 활성화 함수를 도식화한 그래프,
도 6은 본 발명의 일 실시예에 따른 ReELU 활성화 함수의 음수영역에서 실행되는 제 2 활성화 함수를 생성하는 과정을 나타낸 흐름도,
도 7은 도 5의 ReELU 활성화 함수에 일반적인 초기화 방법을 적용했을 때의 문제점을 설명하기 위한 개념도
도 8은 본 발명의 일 실시예에 따른 초기화 방법을 적용하여 ReELU 활성화 함수의 1차 미분 출력값이 안정적으로 산출되는 것을 설명하기 위한 개념도,
도 9는 본 발명의 일 실시예에 따른 ReELU 활성화 함수 및 이에 대한 최적의 초기화 방법을 실행하는 장치를 나타낸 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
인공 지능(artificial intelligence, AI)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
인공신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소 (processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다.
인공 신경망은 기계 학습에서 사용되는 모델로써, 기계학습과 인지과학에서 생물학의 신경망(동물의 중추신경계 중 특히 뇌)에서 영감을 얻은 통계학적 학습 알고리즘이다.
구체적으로, 인공신경망은 시냅스(synapse)의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
인공신경망은 복수의 레이어(layer)를 포함할 수 있고, 레이어들 각각은 복수의 뉴런(neuron)을 포함할 수 있다. 또한 인공신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다.
인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
인공 신경망은, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), MLP(Multilayer Perceptron), CNN(Convolutional Neural Network)와 같은 방식의 네트워크 모델들을 포함할 수 있으나, 이에 한정되지 않는다.
본 명세서에서 용어 '레이어'는 용어 '[0049] 계층'과 혼용되어 사용될 수 있다.
인공신경망은 계층 수에 따라 단층 신경망(Single-Layer Neural Networks)과 다층 신경망(Multi-Layer Neural Networks)으로 구분된다.
일반적인 단층 신경망은, 입력층과 출력층으로 구성된다. 이는 다음의 도 1을 통해 보다 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 활성화 함수가 실행되는 인공신경망의 구성을 나타낸 개념도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 활성화 함수가 실행되는 인공신경망은 입력층(input layer), 은닉층(hidden layer) 및 출력층(output layer)을 포함한다. 기본적으로 은닉층은 매우 많은 개수의 노드로 구성될 수 있다. 도 1의 실시예에서는 대표적인 인공신경망 구조인 심층 신경망을 예로 설명하고 있으나, 반드시 이에 한정될 필요는 없다.
여기서, 입력층은 외부의 자료들을 받아들이는 층으로서, 입력층의 뉴런 수는 입력되는 변수의 수와 동일하며, 은닉층은 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달한다. 출력층은 은닉층으로부터 신호를 받고, 수신한 신호에 기반한 출력 값을 출력한다. 뉴런간의 입력신호는 각각의 연결강도(가중치)와 곱해진 후 합산되며 이 합이 뉴런의 임계치보다 크면 뉴런이 활성화되어 활성화 함수를 통하여 획득한 출력값을 출력한다.
심층신경망을 학습시키는 방법으로는, 실선으로 표시된 피드 포워드(feed-forward)와 점선으로 표시된 역전파(back propagation) 방법이 사용될 수 있는데, 피드 포워드 과정에서는 입력층에서 은닉층, 그리고 출력층 순으로 순차적으로 학습이 진행된다. 각 층의 노드 값은 이전 층의 노드 값과 연결된 가중치의 곱을 모두 더한 뒤, 활성화 함수에 대응하여 나온 값이 될 수 있다. 그리고, 출력층에서 은닉층, 그리고 입력층 순서로 활성화 함수의 미분을 통해 오류를 역전파함으로써 가중치를 최적화할 수 있다. 활성화 함수는 피드 포워드와 역전파 과정에 직접적으로 관여함으로써 학습속도 및 성능에 큰 영향을 미친다.
한편, 입력층과 출력 층 사이에 복수의 은닉층을 포함하는 심층 신경망은, 기계 학습 기술의 한 종류인 딥 러닝을 구현하는 대표적인 인공 신경망일 수 있다.
인공 신경망은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다. 이는 다음의 도 2를 통해 보다 상세히 설명한다.
도 2는 제 1 레이어의 노드로부터 제 2 레이어의 노드에 적용되는 가중치 및 편향 값을 설명하기 위한 개념도이다.
도 2를 참조하면, 제 1 레이어의 4개의 노드는 제 2 레이어의 3개의 노드로 연결된다. 이때, 제 1 레이어의 제 1 노드(x1)은 가중치(w1,1)에 곱해지고, 편향(b1)이 더해져, 제 2 레이어의 제 1 노드(y1)의 값을 산출한다. 이와 같이, 4개의 입력 노드는 3개의 출력 노드로 가중치와 편향의 곱셈 및 덧셈 연산을 통해 데이터를 전달한다. 이때, 가중치의 초기값 설정이 어떻게 되느냐에 따라 학습 안정성이 결정된다. 즉, 신경망이 깊어질수록 각 신경망의 가중치값들의 분포가 한쪽으로 쏠리거나, 특정 값 부분으로 심하게 모일 수 있는 현상이 발생할 수 있는데, 이런 현상이 발생하면 Gradient Vanishing이 발생할 수 있고, 신경망의 표현력에 제한이 생겨 신경망을 깊게 구성하는 의미가 사라진다. 따라서, 학습하기 전에 가중치를 적당하게 초기하는 것이 필요합니다.
한편, 인공 신경망은 모델의 구성, 활성 함수(Activation Function), 손실 함수(Loss Function) 또는 비용 함수(Cost Function), 학습 알고리즘, 최적화 알고리즘 등에 의해 그 구조가 특정되며, 학습 전에 하이퍼파라미터(Hyperparameter)가 미리 설정되고, 이후에 학습을 통해 모델 파라미터(Model Parameter)가 설정되어 내용이 특정될 수 있다.
특히, 인공 신경망의 구조를 결정하는 요소에는 은닉층의 개수, 각 은닉층에 포함된 은닉 노드의 개수, 입력 특징 벡터(Input Feature Vector), 대상 특징 벡터(Target Feature Vector) 등이 포함될 수 있다.
하이퍼파라미터는 모델 파라미터의 초기값 등과 같이 학습을 위하여 초기에 설정하여야 하는 여러 파라미터들을 포함한다. 그리고, 모델 파라미터는 학습을 통하여 결정하고자 하는 여러 파라미터들을 포함한다. 예컨대, 하이퍼파라미터에는 노드 간 가중치 초기값, 노드 간 편향 초기값, 미니 배치(Mini-batch) 크기, 학습
반복 횟수, 학습률(Learning Rate) 등이 포함될 수 있다. 그리고, 모델 파라미터에는 노드 간 가중치, 노드 간 편향 등이 포함될 수 있다.
도 3a는 스텝 함수(Step Function)를 나타낸 그래프이다.
도 3a를 참조하면, 스텝 함수는, 가장 기본이 되는 활성화 함수로, 이는 다음의 수학식과 같이 표현된다.
Figure 112019134051042-pat00003
입력값이 양수일 때는 1의 값을, 음수일 때는 0의 값을 갖는 함수로 활성화 또는 비활성화를 표현할 수 있다. 이때, 입력되는 값의 크기에 따른 정도를 표현할 수 없다. 또한, 미분값을 이용한 역전파 학습이 불가능한 측면도 있다.
도 3b는 시그모이드 함수(Sigmoid Function)을 나타낸 그래프이다.
도 3b를 참조하면, 시그모이드 함수는 다음의 수학식으로 표현된다.
Figure 112019134051042-pat00004
이는 0과 1 사이의 값을 갖는 비선형 함수로, 미분 값을 통해 역전파 학습이 가능한 특성을 갖는다. 역전파 학습 과정에서 활성화 함수를 미분하게 되는데, 시그모이드 함수의 미분값은 항상 1보다 작다. 이에, 심층신경망의 매우 많은 은닉층의 노드들을 통과하면서 누적되는 미분 곱은 결국 0으로 수렴하게 되어 학습이 불가능한 Vanishing Gradient 문제가 발생될 수 있다. 이에, 계층의 수가 많은 심층신경망에서는 사용하기 적합하지 않다.
도 3c는 ReLU 함수(Rectified Linear Unit Function)을 나타낸 그래프이다.
도 3c를 참조하면, ReLU 함수는 다음의 수학식으로 표현된다.
Figure 112019134051042-pat00005
ReLU 함수는 도 2b의 시그모이드 함수의 Vanishing Gradient 문제를 해결한 함수이다. ReLU 함수의 미분값은 1 또는 0만 존재하여 Vanishing Gradient 문제를 해결하면서도 시그모이드 함수보다 미분 속도가 6배나 빠르다.
다만, ReLU 함수는 대부분의 입력 값이 음수일 경우, 미분 값이 0으로, 기울기에 의한 역전파 학습을 진행할 수 없는 Dying ReLU 문제가 발생한다.
도 4는 본 발명의 일 실시예에 따른 ReELU 활성화 함수를 실행하는 방법을 개략적으로 나타낸 흐름도이다.
도 3a 내지 도 3c에서 발생되는 Vanishing Gradient 문제 및/또는 Dying ReLU 문제를 동시에 해결하기 위해, 본 발명의 일 실시예에 따른 장치는 양수 영역에서는 ReLU 함수(제 1 활성화 함수)를 따르지만 음수 영역에서는, 시그모이드 함수를 기반으로 구간 별로 일정한 기울기를 갖는 함수(제 2 활성화 함수)를 따르도록 제어한다. 본 발명의 실시예에 따르면, 상기 장치는 추론 및/또는 연산이 가능한 컴퓨팅 장치로써, 스마트 폰, PC, 태블릿 PC, 데스크 톱 등을 포함할 수 있다. 본 명세서 상에서, 위와 같은 활성화 함수를 ReELU 활성화 함수라고 부를 수 있다.
도 4를 참조하면, 장치는 특정 층(예컨대, 입력층, 은닉층 및 출력층 중 하나)의 노드로부터 입력값을 입력받는다(S410). 장치는 입력값이 양수인지 음수인지 판별한다(S420). 양수라고 판단되면, 장치는 제 1 활성화 함수인 ReLU 함수를 적용한다(S430). 따라서, y = x의 1차 선형 함수의 그래프를 따르게 된다. 본 발명의 실시예에 따르면, 상기 제 1 활성화 함수는, y = ax의 선형함수를 따를 수 있고, 여기서, a는 실수의 값을 가질 수 있다.
만약, 입력값이 음수인 경우, 제 2 활성화 함수를 적용한다(S440). 앞서 설명한 바와 같이, 제 2 활성화 함수는 음수 영역의 입력값에 대해서만 적용되는 함수로써, 구간별로 서로 다른 기울기를 갖는 선형함수이다. 이는 도 5 및 도 6을 통해 보다 상세히 설명한다.
도 5는 본 발명의 일 실시예에 따른 ReELU 활성화 함수를 도식화한 그래프이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 ReELU 활성화 함수는 양수의 입력값에 대응하여 ReLU 함수를 따르고, 음수의 입력값에 대응하여 시그모이드 함수를 기반으로 구간별 서로 다른 기울기의 제 2 활성화 함수를 따른다.
도 5의 실시예에서, 제 2 활성화 함수는 제 1 구간 및 제 2 구간을 가지고, 제 1 구간에서는 약 0.4의 기울기를 갖고, 제 2 구간에서는, 약 0.1의 기울기를 갖도록 설정된다. 제 2 활성화 함수를 수학식으로 표현하면 다음과 같다.
Figure 112019134051042-pat00006
여기서, M(x)는 제 2 활성화 함수를 나타내고, An은 특정 구간의 종단점의 x 값을, n 및 i는 구간 인덱스를, m은 구간의 길이를, K는 일정 길이를 갖는 구간의 갯수를 나타낸다.
즉, 본 발명의 일 실시예에 따른 ReELU 활성화 함수는 m과 K의 값에 따라 다양한 형태로 변화가 가능하며, 사용하는 학습 방향에 따라 그 값을 조절할 수 있다. m과 K 값은 사용자가 디폴트(default) 값으로 기설정 가능한 값이고, 임의로 변경도 가능한 값이다. 다만, m 값이 너무 작을 경우, 시그모이드 함수와 동일해질 수 있고, K 값이 너무 클 경우, Vanishing Gradient 문제가 발생할 수 있다. 따라서, 이를 적절히 설정하기 위한 다양한 방법을 다음과 같이, 고려할 수 있다.
본 발명의 실시예에 따르면, m 값과 K 값에 대한 임계값을 기설정해 놓아 임계값 이하의 길이로 구간이 분할되지 않고, 또한, 임계값 이하의 갯수로 구간이 분할되지 않도록 설정할 수 있다.
특히, 입력층, 은닉층 및 출력층의 노드의 갯수에 비례하여 m 값과 K 값 중 적어도 하나의 값이 대응되는 값을 갖도록 할 수 있다. 즉, 너무 많은 노드가 존재하는 경우, m 값을 작게 하고, 그리고 K 값을 크게 하여 구간을 세분화할 때, 역전파 학습의 미분계산시 0에 수렴하는 문제가 있을 수 있다. 이때는, m 값이 상대적으로 큰 값을 갖도록 하고, 그리고 K 값이 상대적으로 작은 값을 갖도록 하는 것이 바람직하다. 반대의 경우, 적은 노드가 존재할 때는 m 값을 작은 값으로 하고, 그리고/또는 K 값을 큰 값으로 설정하여 구간을 세분화하는 것이 학습에 유리하다. 장치는, 노드의 많고 적음을 특정 기준값을 설정하여 판단할 수 있다.
본 발명의 다른 실시예에 따르면, 모드 구간에 m 값이 일정하게 적용되어 구간별 길이가 동일한 것으로 표현되는데, 반드시 그래야만 하는 것은 아니다. 제 1 구간은 2의 길이를, 제 2 구간은 1의 길이를 갖도록 설정하여, 구간별로 서로 다른 길이를 갖도록 설정해도 무방하다. 이때, 0에 가까운 음수 영역에 빠른 구간 인덱스가 붙는다고 가정할 때, 앞선 인덱스를 갖는 구간의 길이가 후속하는 인덱스를 갖는 구간의 길이보다 긴 길이를 갖는 것이 바람직하다. 또는, 장치는 그 반대의 경우도 고려할 수 있다.
도 5의 실시예에 있어서, 장치는 제 2 활성화 함수의 y축 값, 즉, 결과값이 0 내지 -1 사이에서 변하도록 설정하고 있는데, 반드시 이에 한정될 필요는 없다. 본 발명의 또 다른 실시예에 따르면, 결과 값이 0 내지 -2, 0 내지 -3, 등 보다 큰 범주에서 변화할 수 있다. 즉, 시그모이드 함수의 2배 스케일의 영역에서만 동작해야 하는 것은 아니고, 그의 3배, 4배, 5배, 및 더 큰 스케일의 영역에서 동작하도록 설정할 수 있다.
도 6은 본 발명의 일 실시예에 따른 ReELU 활성화 함수의 음수영역에서 실행되는 제 2 활성화 함수를 생성하는 과정을 나타낸 흐름도이다.
도 6을 참조하면, 장치는 음수영역에서 적용되는 제 2 활성화 함수를 시그모이드 함수로부터 유도하여 생성할 수 있다. 장치는 먼저, m 값과 K 값을 결정한다(S610). 이는 기설정된 값일 수 있고, 학습 대상 인공신경망의 종류 및/또는 인공신경망 내의 노드의 수에 대응하여 결정되는 값일 수 있다.
장치는, 시그모이드 함수를 로딩한다(S620). 그리고는, 시그모이드 함수를 2배 스케일링한다(S630). 이때, 반드시 스케일링 계수를 2배로 해야만 하는 것은 아니다. 스케일링 계수 또한, 사용자의 선택, 인공신경망의 종류 및/또는, 노드의 수에 따라 가변될 수 있다.
시그모이드 함수를 스케일링하고 나면, 장치는 스케일링된 결과 값, 즉, y축으로 -1 만큼 쉬프트하여, 음수 영역의 x 값에 대응하는 결과 값(y축 값)의 영역이 0 내지 -1의 영역에서 동작하도록 한다(S640). 그리고는, x 값이 음수인 영역만 추출한다(S650). 이는 양수 영역은 제 2 활성화 함수가 아닌, 제 1 활성화 함수(ReLU 함수)로 동작하기 때문이다.
그리고는, 추출된 시그모이드 변형 함수에서 m과 K 값을 기반으로 m의 길이를 갖는 K개의 구간으로 구간을 분할한다(S660). 그렇게 하면, 각 구간의 종단 값은 시그모이드 변형 함수의 결과 값을 갖게 된다.
그리고는, 각 구간의 곡선부분을 직선으로 변경하여 제 2 활성화 함수를 유도할 수 있다(S670). 장치는 각 구간의 종단 값이 시그모이드 변형 함수의 결과값을 갖기 때문에, 종단 값을 직선으로 이어줌으로써 곡선 영역을 직선으로 변형시킨다. 그리고, 직선으로 변형된 부분이 일정한 기울기 값을 갖도록 하여 각 구간마다 서로 다른 기울기를 갖는 선형함수가 되도록 한다.
도 7은 도 5의 ReELU 활성화 함수에 일반적인 초기화 방법을 적용했을 때의 문제점을 설명하기 위한 개념도이다.
앞서 설명한 바와 같이, 인공신경망을 이루는 각각의 층의 가중치(weight) 및 편향(bias) 등의 하이퍼 파라미터는 초기값 설정이 매우 중요하다. 인공신경망이 풀려는 문제 자체가 non-convex optimization이기 때문에, 시작점에 따라 최적지점을 찾지 못할 수 있기 때문이다. 하이퍼 파라미터의 초기값을 적절하게 설정할 경우, 그래디언트 조절에도 의미 있는 결과를 낸다. 초기값을 설정하는 방법에는 다음과 같은 것들이 있다.
먼저, 제로 초기화(Zeros Initialization) 방법이 있다. 이는 모든 가중치를 0으로 초기화 하는 방법이다. 다만, 이와 같은 초기화 방법에 따르면, 학습과정에서 모든 뉴런의 가중치가 동일한 값으로 업데이트(update)되기 때문에 각 층이 갖는 복수 개의 채널이득을 얻을 수 없다는 문제가 있다.
다음을, 가우시안 분포 초기화(Gaussian distribution Initialization) 방법이 있다. 이는 가우신안(Gaussian) 분포를 사용하여 초기화 하는 방법이다. 이 방법에 따르면, 활성화 함수의 특성에 맞게 표준편차 값을 결정해야 한다. 예를 들어, 시그모이드(Sigmoid) 활성화 함수를 사용할 때, 가우시안(Gaussian) 분포의 표준편차가 클 경우 0 또는 1에 치우치는 결과를 얻고 표준편차가 작을 경우 레이어가 깊어질수록 0.5(평균값)로 수렴하는 현상으로 학습이 제대로 진행되지 않게 된다. 즉, 적절한 표준편차를 정해야 하며, 여러 변수에 따라 매번 초기값의 표준편차 를 찾아야 하기 때문에, 효율성이 떨어진다.
다음으로 사비에르 초기화(Xavier Initialization) 방법에 있다. 이는 각 층의 이전 노드와 다음 노의 개수에 의존하는 방법이다. 이를 수학식으로 나타내면 다음과 같다.
Figure 112019134051042-pat00007
여기서, nin은 직전 레이어의 차원수(노드의 갯수)이고, nout은 다음 레이어의 차원수(노드의 갯수)를 나타내며, W는 각 층의 가중치를 나타낸다.
이 초기화 방법은, 비선형 활성화 함수에서 효과적이다. 다만, 최근 인공신경망에 가장 많이 사용되고 있는 ReLU 함수 또는 ReLU 계열의 다양한 활성화 함수같이 선형 함수의 조합으로 이루어진 경우, 0으로 수렴하며, 학습에 적합하지 않다.
다음으로, He Initialization 방법에 있다. 이는 레이어가 깊어질수록 0으로 수렴하는 문제를 해결하고자 하는 초기화 방안으로 다음과 같이 표현할 수 있다.
Figure 112019134051042-pat00008
이에 따르면, 초기값의 분포의 표준편차를
Figure 112019134051042-pat00009
배 하여 보다 넓게 분포하게 함으로써 0으로 수렴하는 것을 해결할 수 있다. 이러한 He 초기화 방법은, ReLU에서는 효과적인 결과를 보이나, ReLU 계열의 모든 활성화 함수에 적용 하기는 어렵다.
도 7을 참조하면, 장치는 본 발명의 일 실시예에 따른 ReELU 활성화 함수에 적합한 가중치 초기화 방법을 사용하는 것이 적합하다. 상기 ReELU 활성화 함수는 도 7의 좌측 그래프와 같은 형태를 갖는다. 이와 같은 형태의 활성화 함수에 Xavier 초기화 방법을 적용하면, 양수 영역은 ReLU 함수와 같기 때문에, 정규 확률 분포를 따르지만, 음수 영역 중 활성화 함수의 값이 -1에 수렴하는 구간을 제외한, 0에 가까운 구간에서는 활성화 함수의 값이 발산하는 경향을 보인다. 이에, 안정적인 학습이 어렵게 된다.
도 8은 본 발명의 일 실시예에 따른 초기화 방법을 적용하여 ReELU 활성화 함수의 1차 미분 출력값이 안정적으로 산출되는 것을 설명하기 위한 개념도이다.
도 8을 참조하면, 장치는 활성화 함수로, 본 발명의 일 실시예에 따른 ReELU 활성화 함수를 사용하고, 이에 대응되도록 다음의 가중치 초기화 방법을 사용한다. 일 예에서, 장치는, 가중치 초기화 방법으로, 평균이 0이고, 표준편차가
Figure 112019134051042-pat00010
인 X ~ N(0,1)인 정규분포를 활용하여 초기화를 수행한다. 즉, 기본적으로 Xavier 초기화 방법을 사용하되, Xavier 초기화에서, ReELU 활성화 함수의 -1로 수렴하는 구간을 제외한 나머지 구간만큼의 정규확률분포의 확률의 역수 제곱근만큼 표준편차를 배수하여 보상함으로써, 음수 영역의 불안정성이 강한 부분을 넓게 퍼트려 주어 안정성을 더하는 것이다. 상기 "-1로 수렴하는 구간을 제외한 나머지 구간"은 m과 K의 곱의 값보다 큰 값을 가지는 x 값의 구간을 의미할 수 있다.
위와 같은 초기화 방법을 사용함에 의해, 레이어가 깊어지더라도 그 값이 -1로 수렴하지 않고, 정규 확률 분포를 유지함으로써 안정적인 학습이 이루어지도록 한다.
도 9는 본 발명의 일 실시예에 따른 ReELU 활성화 함수 및 이에 대한 최적의 초기화 방법을 실행하는 장치를 나타낸 블록도이다. 도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 장치는, 통신부(910), 메모리(920), 프로세서(930), 디스플레이부(940), 입력부(950), 및 출력부(960)를 포함한다.
도 9를 참조하면, 메모리(920)는 신호라인을 통해 상기 프로세서(930)와 연결된다. 상기 메모리(920)는 모바일 프로그램 상에서 실행되는 본 발명의 일 실시예에 따른 ReELU 활성화 함수 및 이에 대한 최적의 초기화 방법의 공식을 저장하며, 이외에도 프로세서(930)의 연산동작에 관련된 프로그램과 모바일 기기의 모바일 프로그램을 저장할 수 있다.
입력부(950)는 다른 신호라인을 통해 상기 프로세서(930)와 연결되며, 상기 활성화 함수 및 초기화 방법과 연관된 변수 값(예컨대, m 또는 K 값)을 입력받는다. 또는, 디폴트로 설정된 m 또는 K 값을 사용할 것인지, 인공신경망의 종류 및/또는 인공신경망 내의 노드의 수에 따라 가변하는 m 또는 K 값을 사용할 것인지에 대한 선택값을 입력받을 수 있다. 입력부(950)는 키보드, 마우스, 터치 패드 등으로 구현될 수 있다.
프로세서(930)는 통신부(910), 디스플레이부(940) 및 출력부(960)와 연결된다. 프로세서(930)는 마이크로프로세서 또는 CPU로 구현될 수 있다. 프로세서(930)는 상기 활성화 함수의 공식에 대입하여 상기 활성화 함수를 구한다. 또한, 본 발명의 일 실시예에 따른 초기화 방법에 따라 초기 가중치 값을 설정한다. 그리고는, 생성된 활성화 함수 및 초기 가중치 값에 기반하여 입력값에 대응하는 출력값을 산출한다. 산출된 값을 다음 노드로 제공된다. 프로세서(930)는 복수 개의 노드마다 이러한 연산을 수행하여 인공지능 학습이 원활하게 이루어질 수 있도록 제어한다.
또한, 상기 프로세서(930)는 미리 설정된 프로그램에 따라 스마트 폰과 같은 휴대용 통신 단말기의 통신 및 멀티미디어 운영을 위한 제반 동작을 제어한다.
프로세서(930)의 인공지능 모델을 이용한 학습과 관련된 연산의 결과는 디스플레이부(940)에 표시되거나, 출력부(960)를 통해 출력될 수 있다.
이와 같이, 본 발명의 실시예에서는 안정성을 보장하는 활성화 함수 및 그에 최적인 초기화 방안의 설계 및 실행 방법의 연산 복잡도를 줄임으로써 모바일 프로그램으로 구현할 수 있게 된다.
본 발명의 일 실시예에 따른 장치는, 복잡한 연산을 단순화함으로써 모바일 프로그램에서도 인공지능 학습을 가능케 하여 다양한 인공지능 기술이 언제 어디서나 제약사항에 구애받지 않고 사용자에 의해 쉽게 구현될 수 있도록 한다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
910: 통신부
920: 메모리
930: 프로세서
940: 디스플레이부
950: 입력부
960: 출력부

Claims (8)

  1. 딥 러닝(deep learning)을 위한 인공신경망 학습 장치에 있어서,
    입력 데이터 또는 훈련 데이터를 획득하기 위한 입력부;
    상기 입력 데이터, 상기 훈련 데이터 및 딥 러닝 인공 신경망 모델을 저장하는 메모리; 및
    상기 인공 신경망 모델을 기반으로 연산을 수행하는 프로세서를 포함하되, 상기 프로세서는,
    상기 인공 신경망 모델의 제 1 노드 - 제 1 노드는 제 1 레이어에 포함됨 - 와 상기 제 1 노드에 바로 후속하는 제 2 노드 - 제 2 노드는 제 2 레이어에 포함됨 - 간의 활성화 함수에 영향을 미치는 초기 가중치 값 설정에 있어서,
    상기 인공신경망 모델의 상기 제 1 레이어에 속한 노드들의 갯수와 상기 제 2 레이어에 속한 노드들의 갯수에 의존하여 상기 초기 가중치 값을 설정하되,
    여기서, 상기 활성화 함수의 출력값이 특정 값에 수렴하는 구간을 제외한 나머지 구간만큼의 정규 확률 분포의 확률의 역수 제곱근만큼 표준편차(σ)를 배수하여 보상함에 의해 상기 초기 가중치 값을 결정하고,
    상기 활성화 함수는 시그모이드 함수의 출력값과 연동하는 함수인, 딥 러닝 인공 신경망 학습 장치.
  2. 제 1 항에 있어서, 상기 초기 가중치 값은
    평균이 0이고,
    표준편차(σ)가
    Figure 112019134051042-pat00011
    (여기서, ninputs는 제 1 레이어에 속한 노드들의 갯수, noutputs는 제 2 레이어에 속한 노드들의 갯수를 의미하며, m은 활성화함수에서 특정 구간의 길이를, K는 활성화함수에서 일정 길이를 갖는 구간의 갯수를 의미함)인 정규 확률 분포를 활용하여 설정되는, 딥 러닝 인공신경망 학습 장치.
  3. 제 2 항에 있어서,
    상기 특정 값은 -1이며,
    상기 특정 값에 수렴하는 구간은 상기 활성화 함수의 입력값 중 음의 영역 내에서 상기 m 값과 상기 K 값의 곱의 음수값보다 작은 값을 갖는 구간인, 딥 러닝 인공신경망 학습 장치.
  4. 제 2 항에 있어서, 상기 프로세서는,
    상기 인공 신경망의 제 1 노드로의 입력 값이 양수인지 음수인지에 판별하고, 상기 입력 값이 양수임에 대응하여 제 1 활성화 함수를 실행시키고, 상기 입력 값이 음수임에 대응하여 제 2 활성화 함수를 실행시키며, 상기 제 1 활성화 함수 또는 제 2 활성화 함수를 실행시켜 생성된 결과 값을 상기 인공신경망의 제 2 노드로 제공하되,
    상기 제 1 활성화 함수는 ReLU(Rectified Linear Unit) 함수이고,
    상기 제 2 활성화 함수는 음수 영역의 제 1 구간에서 제 1 기울기를 갖고, 음수 영역의 제 2 구간에서 제 2 기울기를 갖는 선형 함수(linear function)의 조합이며,
    상기 제 1 기울기와 상기 제 2 기울기는 서로 다른 기울기인, 딥 러닝 인공신경망 학습 장치.
  5. 제 4 항에 있어서, 상기 제 2 활성화 함수는 다음의 수학식으로 표현되되,
    Figure 112019134051042-pat00012

    여기서, M(x)는 제 2 활성화 함수를 나타내고, An은 특정 구간의 종단점의 x 값을, n 및 i는 구간 인덱스를, m은 구간의 길이를, K는 일정 길이를 갖는 구간의 갯수를 나타내는, 딥 러닝 인공신경망 학습 장치.
  6. 제 5 항에 있어서,
    구간의 길이를 나타내는 m 값이 2의 값을 갖고,
    구간의 갯수를 나타내는 K 값이 2의 값을 갖는, 딥 러닝 인공신경망 학습 장치.
  7. 제 5 항에 있어서,
    상기 m 값 및 K 값 중 적어도 하나는 상기 인공신경망의 노드의 수에 비례하여 결정되는, 딥 러닝 인공신경망 학습 장치.
  8. 컴퓨팅 장치에서 딥 러닝(deep learning)을 위한 인공신경망 학습 방법에 있어서,
    입력 데이터 또는 훈련 데이터를 획득하는 단계;
    상기 입력 데이터 및 상기 훈련 데이터를 기반으로 딥 러닝 인공 신경망 모델을 통해 학습을 수행하는 단계를 포함하되,
    상기 딥 러닝 인공 신경망 모델을 통해 학습을 수행하는 단계는,
    상기 인공 신경망 모델의 제 1 노드 - 제 1 노드는 제 1 레이어에 포함됨 - 와 상기 제 1 노드에 바로 후속하는 제 2 노드 - 제 2 노드는 제 2 레이어에 포함됨 - 간의 활성화 함수에 영향을 미치는 초기 가중치 값을 설정하는 단계를 포함하고,
    상기 초기 가중치 값을 설정하는 단계는, 상기 인공신경망 모델의 상기 제 1 레이어에 속한 노드들의 갯수와 상기 제 2 레이어에 속한 노드들의 갯수에 의존하여 상기 초기 가중치 값을 설정하는 단계를 포함하되,
    상기 초기 가중치 값이 상기 활성화 함수의 출력값이 특정 값에 수렴하는 구간을 제외한 나머지 구간만큼의 정규 확률 분포의 확률의 역수 제곱근만큼 표준편차(σ)를 배수하여 보상함에 의해 결정되고,
    상기 활성화 함수는 시그모이드 함수의 출력값과 연동하는 함수인, 딥 러닝 인공신경망 학습 방법.
KR1020190174988A 2019-12-26 2019-12-26 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치 KR102152615B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190174988A KR102152615B1 (ko) 2019-12-26 2019-12-26 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치
US16/729,506 US11580406B2 (en) 2019-12-26 2019-12-30 Weight initialization method and apparatus for stable learning of deep learning model using activation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190174988A KR102152615B1 (ko) 2019-12-26 2019-12-26 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102152615B1 true KR102152615B1 (ko) 2020-09-08

Family

ID=72451185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190174988A KR102152615B1 (ko) 2019-12-26 2019-12-26 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치

Country Status (2)

Country Link
US (1) US11580406B2 (ko)
KR (1) KR102152615B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836604B2 (en) 2021-12-01 2023-12-05 Deepx Co., Ltd. Method for generating programmable activation function and apparatus using the same
WO2024014631A1 (ko) * 2022-07-12 2024-01-18 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 콘볼루션 데이터의 양자화 방법, 이를 위한 하드웨어 가속기, 및 이를 이용한 컴퓨팅 장치
KR20240082166A (ko) 2022-11-30 2024-06-10 고려대학교 산학협력단 무어-펜로즈 일반화 역행렬 기반의 친환경 신경망 생성 방법 및 이를 위한 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922314B1 (en) * 2018-11-30 2024-03-05 Ansys, Inc. Systems and methods for building dynamic reduced order physical models
US11768504B2 (en) * 2020-06-10 2023-09-26 AI Incorporated Light weight and real time slam for robots
US20220187841A1 (en) * 2020-12-10 2022-06-16 AI Incorporated Method of lightweight simultaneous localization and mapping performed on a real-time computing and battery operated wheeled device
CN113592078A (zh) * 2021-08-09 2021-11-02 郑州大学 一种基于人工智能的深度学习网络训练方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180027972A (ko) * 2016-09-07 2018-03-15 서울대학교산학협력단 입력 데이터를 학습하는 방법 및 학습 장치
US20180137413A1 (en) * 2016-11-16 2018-05-17 Nokia Technologies Oy Diverse activation functions for deep neural networks
US20190097912A1 (en) * 2017-09-28 2019-03-28 Cisco Technology, Inc. Weight initialization for random neural network reinforcement learning
KR102032146B1 (ko) * 2018-04-11 2019-10-15 경희대학교 산학협력단 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180027972A (ko) * 2016-09-07 2018-03-15 서울대학교산학협력단 입력 데이터를 학습하는 방법 및 학습 장치
US20180137413A1 (en) * 2016-11-16 2018-05-17 Nokia Technologies Oy Diverse activation functions for deep neural networks
US20190097912A1 (en) * 2017-09-28 2019-03-28 Cisco Technology, Inc. Weight initialization for random neural network reinforcement learning
KR102032146B1 (ko) * 2018-04-11 2019-10-15 경희대학교 산학협력단 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Understanding the difficulty of training deep feedforward neural networks. Xavier Glorot et al. *
딥러닝 알고리즘의 기존 활성화 함수를 개선하기 위한 새로운 활성화 함수에 관한 연구. 채승엽 외 2인. 2018.11. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836604B2 (en) 2021-12-01 2023-12-05 Deepx Co., Ltd. Method for generating programmable activation function and apparatus using the same
WO2024014631A1 (ko) * 2022-07-12 2024-01-18 오픈엣지테크놀로지 주식회사 데이터 스케일을 고려한 콘볼루션 데이터의 양자화 방법, 이를 위한 하드웨어 가속기, 및 이를 이용한 컴퓨팅 장치
KR20240082166A (ko) 2022-11-30 2024-06-10 고려대학교 산학협력단 무어-펜로즈 일반화 역행렬 기반의 친환경 신경망 생성 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
US20210201153A1 (en) 2021-07-01
US11580406B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
KR102152615B1 (ko) 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치
KR102483639B1 (ko) 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치
KR102492318B1 (ko) 모델 학습 방법 및 장치, 및 데이터 인식 방법
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
Yang et al. A novel self-constructing radial basis function neural-fuzzy system
JP2021501392A (ja) カプセルニューラルネットワーク
JP7240650B2 (ja) スパイキングニューラルネットワークシステム、学習処理装置、学習処理方法およびプログラム
Ibrahim et al. An improved runner-root algorithm for solving feature selection problems based on rough sets and neighborhood rough sets
Zhang Artificial neural networks model design of Lorenz chaotic system for EEG pattern recognition and prediction
Kumaraswamy Neural networks for data classification
Qiao et al. A self-organizing RBF neural network based on distance concentration immune algorithm
Hu et al. A dynamic rectified linear activation units
Wang et al. A boosting-based deep neural networks algorithm for reinforcement learning
US20220188603A1 (en) Neural Network Learning Method, Neural Network Generation Method, Trained Device, Mobile Terminal Device, Learning Processing Device and Recording Medium
Lu Deep neural networks and fraud detection
KR20200101880A (ko) 딥러닝 알고리즘을 위한 활성화 함수를 실행하는 방법, 및 상기 방법을 실행하는 장치
US20210232930A1 (en) Temporal Coding in Leaky Spiking Neural Networks
Ortega-Zamorano et al. FPGA implementation of neurocomputational models: comparison between standard back-propagation and C-Mantec constructive algorithm
KR20200097103A (ko) 딥러닝 알고리즘을 위한 활성화 함수를 실행하는 방법, 및 상기 방법을 실행하는 장치
Hu et al. Time series prediction with a weighted bidirectional multi-stream extended Kalman filter
Pietroń et al. Formal analysis of HTM spatial pooler performance under predefined operation conditions
Marchetti et al. A hybrid neural network-genetic programming intelligent control approach
Gupta et al. Optimization of artificial neural network: a bat algorithm-based approach
Khan et al. Breaking the stereotypical dogma of artificial neural networks with cartesian genetic programming
Lindsay et al. A novel way of training a neural network with reinforcement learning and without back propagation

Legal Events

Date Code Title Description
GRNT Written decision to grant