KR102445468B1 - 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법 - Google Patents

부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법 Download PDF

Info

Publication number
KR102445468B1
KR102445468B1 KR1020140129558A KR20140129558A KR102445468B1 KR 102445468 B1 KR102445468 B1 KR 102445468B1 KR 1020140129558 A KR1020140129558 A KR 1020140129558A KR 20140129558 A KR20140129558 A KR 20140129558A KR 102445468 B1 KR102445468 B1 KR 102445468B1
Authority
KR
South Korea
Prior art keywords
output
neural network
class
layer
node
Prior art date
Application number
KR1020140129558A
Other languages
English (en)
Other versions
KR20160037022A (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 KR1020140129558A priority Critical patent/KR102445468B1/ko
Priority to US14/865,980 priority patent/US10534999B2/en
Publication of KR20160037022A publication Critical patent/KR20160037022A/ko
Application granted granted Critical
Publication of KR102445468B1 publication Critical patent/KR102445468B1/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/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/04Architecture, e.g. interconnection topology

Landscapes

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

Abstract

부스트 풀링 뉴럴 네트워크를 기반으로 데이터를 분류하는 장치가 개시된다. 일 실시예에 따르면, 데이터 분류 장치는 데이터가 입력되는 입력 레이어와, 적어도 일부의 클래스에 대하여 데이터에 대한 복수의 제1 출력값을 출력하고 나머지 클래스에 대하여 하나의 제1 출력값을 출력하는 출력 레이어 및 클래스별로 출력된 하나 이상의 제1 출력값을 입력으로 클래스별로 하나의 제2 출력값을 출력하는 부스트 풀링 레이어를 포함하는 뉴럴 네트워크를 포함할 수 있다.

Description

부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법{APPARATUS FOR DATA CLASSIFICATION BASED ON BOOST POOLING NEURAL NETWORK, AND METHOD FOR TRAINING THE APPATRATUS}
부스트 풀링 뉴럴 네트워크를 기반으로 데이터를 분류하는 장치 및 그 데이터 분류 장치를 위한 부스트 풀링 뉴럴 네트워크의 학습 방법에 관한 것이다.
기계 학습(Machine Learning)을 통하여 데이터를 분류(classify)하는 방법은 여러 가지가 있다. 그 중에서 뉴럴 네트워크(neural network) 기반의 데이터 분류 방법이 대표적이다. 통계나 기계 학습 분야에서 이러한 뉴럴 네트워크 기반의 데이터 분류 알고리즘을 향상시키는 상위 개념의 알고리즘으로 앙상블(ensemble) 방법이 널리 연구되고 있다. 앙상블 방법에는 대표적으로 배깅(bagging) 방식이나 부스팅(boosting) 방식이 있다.
배깅 방식은 데이터를 무작위로 반복 샘플링하여 다양한 데이터 셋을 구성하고, 여러 모델을 학습하여 이 모델의 추정 결과를 투표(voting) 방식을 통해 결정한다. 이런 배깅 방식은 각각의 모델이 0.5보다 높은 정확도를 보일 경우 더 많은 모델을 사용할수록 최종 정확도는 증가할 수 있다. 부스팅 방식은 순차적으로 모델을 학습하여 예상 결과치를 선형 조합하는 방식이다. 첫 번째 분류기를 학습한 후 이 분류기가 잘 분류하지 못하는 데이터에 가중치를 두어서 두번째 분류기를 학습하여 이 두 분류기의 합하여 에러가 가장 적도록 결과치를 선형 조합한다. 이러한 과정을 계속 반복하여 여러 분류기 모델을 조합해서 결과를 내고, 모델 개수가 증가할수록 분류 정확도가 향상되며, 일반적으로 배깅 방식보다 더 좋은 효과를 나타내는 것으로 알려져 있다.
하지만, 이러한 앙상블 방법은 여러 모델을 학습해야 하고, 특히 부스팅 방식은 여러 모델을 순차적으로 학습해야 하기 때문에 모델 수에 비례하여 학습 시간이 증가하게 된다.
뉴럴 네트워크 단일 모델에서 신속한 학습 및 정확한 데이터 분류가 가능한 데이터 분류 장치 및 그 데이터 분류 장치를 위한 학습 방법이 제시된다.
일 양상에 따르면 뉴럴 네트워크를 포함하는 데이터 분류 장치에 있어서, 뉴럴 네트워크는 데이터가 입력되는 입력 레이어, 적어도 일부의 클래스에 대하여 데이터에 대한 복수의 제1 출력값을 출력하고, 나머지 클래스에 대하여 하나의 제1 출력값을 출력하는 출력 레이어 및 클래스별로 출력된 하나 이상의 제1 출력값을 입력으로 클래스별로 하나의 제2 출력값을 출력하는 부스트 풀링 레이어를 포함할 수 있다.
이때, 출력 레이어는 각 클래스별로 출력되는 제1 출력값의 개수에 대응하도록 각 클래스별로 하나 이상의 출력 노드를 포함할 수 있다.
이때, 분류할 전체 클래스 중에서 복수의 제1 출력값을 출력할 적어도 일부의 클래스 및 상기 적어도 일부의 클래스 각각에 대한 제1 출력값의 수는 학습 데이터를 통해 학습된 뉴럴 네트워크를 이용하여 산출된 각 클래스별 손실함수값과 미리 설정된 임계치의 비교 결과에 기초하여 결정될 수 있다.
이때, 부스트 풀링 레이어는 각 클래스별로 하나의 부스트 풀링 노드를 포함하며, 각 클래스의 부스트 풀링 노드는 출력 레이어의 대응되는 클래스의 출력 노드에 연결될 수 있다.
이때, 부스트 풀링 노드는 최대값, 중간값, 평균값 및 확률적 선택 중의 적어도 하나를 적용하여 제2 출력값을 출력할 수 있다.
이때, 뉴럴 네트워크는 입력 레이어 및 출력 레이어의 사이에 하나 이상의 숨겨진 레이어를 더 포함할 수 있다.
이때, 숨겨진 레이어 중의 출력 레이어의 앞에 위치하는 레이어는 둘 이상의 숨겨진 노드 집합을 포함하고, 각 숨겨진 노드 집합은 출력 레이어의 각 클래스 집합에 연결될 수 있다.
또한, 데이터 분류 장치는 입력 레이어에 데이터를 입력하고, 부스트 풀링 레이어로부터 제2 출력값을 수신하며, 수신된 각 클래스별 제2 출력값을 기초로 데이터가 속하는 어느 하나의 클래스를 결정하는 분류부를 더 포함할 수 있다.
일 양상에 따르면, 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법은 학습 데이터를 이용하여 입력 레이어 및 출력 레이어를 포함하는 제1 뉴럴 네트워크를 학습시키는 단계, 학습된 제1 뉴럴 네트워크를 이용하여 각 클래스별로 제1 손실함수값을 산출하는 단계, 제1 뉴럴 네트워크를 변경하여 제2 뉴럴 네트워크를 구성하는 단계, 학습 데이터를 이용하여 제2 뉴럴 네트워크를 학습시키는 단계, 학습된 제2 뉴럴 네트워크를 이용하여 각 클래스별로 제2 손실함수값을 산출하는 단계 및 제1 손실함수값 및 제2 손실함수값 중의 하나 이상을 이용하여 제2 뉴럴 네트워크의 재구성 여부를 판단하는 단계를 포함할 수 있다.
이때, 제2 뉴럴 네트워크를 구성하는 단계는 출력 레이어의 뒤에 클래스별로 하나의 부스트 풀링 노드를 포함하는 부스트 풀링 레이어를 추가하는 단계, 출력 레이어에서 복수의 출력값을 출력할 클래스를 결정하는 단계 및 출력 레이어에 결정된 클래스를 위하여 출력 노드를 추가하는 단계를 포함할 수 있다.
이때, 제2 뉴럴 네트워크를 구성하는 단계는 부스트 풀링 노드 및 출력 노드를 대응하는 클래스별로 연결하는 단계 및 추가된 출력 노드에 대하여 가중치를 설정하는 단계를 더 포함할 수 있다.
이때, 제2 뉴럴 네트워크를 학습시키는 단계는 제2 뉴럴 네트워크의 전체 노드들에 대해 설정된 가중치를 전체의 학습 데이터를 이용하여 학습시킬 수 있다.
이때, 제2 뉴럴 네트워크를 학습시키는 단계는 출력 레이어의 전체 출력 노드에 대하여 설정된 가중치에 대해서 전체의 학습 데이터를 이용하여 학습시킬 수 있다.
이때, 제2 뉴럴 네트워크를 학습시키는 단계는 출력 레이어 중의 추가된 출력 노드에 대하여 설정된 가중치에 대해서 제1 손실함수값을 기초로 선택된 일부의 학습 데이터를 이용하여 학습시킬 수 있다.
이때, 추가된 출력 노드에 대하여 가중치를 설정하는 단계는 동일한 클래스의 다른 출력 노드에 대하여 설정된 가중치를 기초로 추가된 출력 노드에 대한 가중치를 설정할 수 있다.
이때, 복수의 출력값을 출력할 클래스를 결정하는 단계는 산출된 제1 손실함수값이 임계치를 초과하는 클래스를 복수의 출력값을 출력할 클래스로 결정할 수 있다.
이때, 부스트 풀링 노드는 연결된 출력 노드의 출력값에 최대값, 중간값, 평균값 및 확률적 선택 중의 적어도 하나를 적용하여 클래스별로 하나의 출력값을 출력할 수 있다.
이때, 제2 뉴럴 네트워크의 재구성 여부를 판단하는 단계는 제2 손실함수값이 임계치를 초과하거나, 제1 손실함수값과 제2 손실함수값의 차이가 임계치를 초과하는 경우 제2 뉴럴 네트워크를 재구성하는 것으로 판단할 수 있다.
뉴럴 네트워크 단일 모델을 이용한 데이터 분류 장치 및 학습 방법의 제시를 통해 신속한 학습 및 정확한 데이터의 분류가 가능하다.
도 1은 일 실시예에 따른 데이터 분류 장치의 블록도이다.
도 2는 일반적인 뉴럴 네트워크를 도시한 것이다.
도 3a 및 도 3b는 도 1의 뉴럴 네트워크의 일 실시예들이다.
도 4는 도 1의 뉴럴 네트워크의 다른 실시예이다.
도 5a 및 도 5b는 도 1의 뉴럴 네트워크의 또 다른 실시예들이다.
도 6은 일 실시예에 따른 데이터 분류 장치를 위한 뉴럴 네트워크의 학습 방법이다.
도 7은 도 6의 제2 뉴럴 네트워크 구성 단계의 상세 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 기재된 기술의 이점 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 방법의 실시예들을 도면들을 참고하여 자세히 설명하도록 한다.
도 1은 일 실시예에 따른 데이터 분류 장치의 블록도이다.
도 1을 참조하면, 일 실시예에 따른 데이터 분류 장치(100)는 분류부(110) 및 뉴럴 네트워크(120)를 포함한다.
분류부(110)는 분류하고자 하는 데이터를 뉴럴 네트워크에 입력하고, 뉴럴 네트워크로부터 분류 결과를 수신한다. 이때, 분류부(110)는 분류하고자 하는 각 클래스별로 출력되는 출력값을 이용하여 입력 데이터가 속하는 하나 이상의 클래스를 결정하여 입력 데이터를 최종적으로 분류할 수 있다.
뉴럴 네트워크(120)는 일반적인 뉴럴 네트워크와 마찬가지로 입력 레이어, 숨겨진 레이어 및 출력 레이어를 포함할 수 있으며, 입력 레이어에 벡터 형태의 데이터가 입력되고 출력 레이어에서 미리 정의된 복수의 클래스 중에서 이 입력 데이터에 연관된 하나 이상의 클래스를 출력한다. 또한, 뉴럴 네트워크(120)는 이하에서 자세히 설명하는 바와 같이 일반적인 뉴럴 네트워크의 구조 변경, 예컨대 출력 레이어의 구조 변경이나 부스트 풀링 레이어의 추가 등을 통하여 형성될 수 있다.
본 실시예에 따른 데이터 분류 장치(100)는 컴퓨터를 이용하여 입력 데이터를 판별하는 분야에서 활용될 수 있다. 예컨대, 사진이나 비디오 영상 내에 존재하는 물체를 판별하거나, 물체의 위치 등을 판별하고, 의료 영상에서 병변을 검출하고 판별하는 분야, 음성 데이터를 이용하여 음성의 내용을 이해하는 분야, 웹이나 문서의 내용에서 정보를 추출하기 위해 문서의 연관성을 판별하는 등의 다양한 분야에서 활용이 될 수 있다.
도 2는 일반적인 뉴럴 네트워크를 도시한 것이다.
도 2를 참조하면, 일반적인 뉴럴 네트워크(200)는 출력 레이어(210), 숨겨진 레이어(220, 230) 및 출력 레이어(240)를 포함한다.
입력 레이어(210)는 k(k≥1)개의 입력 노드(210a)를 포함하며, 길이가 k인 벡터 입력 데이터가 각 입력 노드(210a)에 입력된다. 숨겨진 레이어(220,230)는 하나 이상일 수 있으며, 이때, 숨겨진 레이어(220,230) 각각은 하나 이상의 숨겨진 노드(220a,230a)를 포함한다. 출력 레이어(240)는 분류할 클래스(C1,C2,C3)별로 하나의 출력 노드(241,242,243)를 포함하며, 입력된 데이터에 대하여 각 클래스(C1,C2,C3)별로 출력값을 출력한다.
이때, 뉴럴 네트워크(200)의 구조(structure)는 화살표로 도시된 노드 간의 연결 정보와, 도시되지는 않았지만 각 연결에서 사용되는 가중치(weight)로 나타낼 수 있다. 이때, 어느 한 레이어 내의 노드들 간에는 연결이 되지 않고, 각 레이어들 간의 노드는 완전하게 혹은 부분적으로 연결된다.
각 노드는 화살표로 연결된 이전 노드의 출력을 입력 받아 계산하고, 계산 결과를 화살표로 연결된 이후 노드에 출력으로 내보낸다. 이때, 각 노드는 입력된 값을 특정 함수, 예컨대, 비선형 함수에 적용하여 출력할 값을 계산한다.
일반적으로 뉴럴 네트워크의 구조는 미리 결정되며, 노드 간의 연결에 따른 가중치들은 이미 어떤 클래스에 속할지 정답이 알려진 데이터들을 이용하여 적절한 값을 산정하게 된다. 이와 같이 이미 정답이 알려진 데이터들을 '학습 데이터'라고 하고, 가중치를 결정하는 과정을 '학습'이라고 한다. 또한, 독립적으로 학습이 가능한 구조와 가중치의 묶음을 '모델'이라고 가정하고, 가중치가 결정된 모델이 입력 데이터가 어느 클래스에 속할지를 예측하여 그 예측값을 출력하는 것을 '테스트' 과정이라고 한다.
도 2의 뉴럴 네트워크에서의 입력 및 출력은 아래의 수학식 1과 같이 정의될 수 있다.
Figure 112014092170211-pat00001
여기서, x는 길이가 k인 벡터 입력 데이터를 의미한다. 또한, yj는 입력 데이터 x가 j번째 클래스에 속할 확률, C는 클래스의 개수를 의미한다. 또한, hl i는 l번째 레이어 i번째 노드의 출력값, nl은 l 번째 레이어의 노드 숫자, bi는 i번째 노드의 바이어스(bias) 값, wji는 이전 레이어 j번째 노드와 다음 레이어 i번째 노드를 연결하는 가중치를 의미하고, 함수 f는 시그모이드(sigmoid) 함수(예:
Figure 112014092170211-pat00002
)와 같은 비선형 함수를 의미한다. 또한, L은 입력 레이어를 제외한 전체 레이어의 개수를 의미한다.
도 2의 뉴럴 네트워크는 L이 3이고, C가 3으로서, 위의 수학식 1에 따르면, h0 i=xi, hL i=yi, n0=k, nL=C임을 알 수 있다.
이하, 도 3a 내지 도 5b를 참조하여 도 1의 뉴럴 네트워크의 실시예들을 상세하게 설명한다. 이때, 도 3a 내지 도 5b는 세 개의 클래스(C1,C2,C3)에 대하여 입력 데이터에 대한 결과를 출력하는 것을 예시하고 있으나, 분류할 클래스의 개수가 도시된 바에 제한되는 것은 아니다.
도 3a 및 도 3b는 도 1의 뉴럴 네트워크(120)의 일 실시예들이다.
도 3a 및 도 3b를 참조하면, 본 실시예들에 따른 뉴럴 네트워크(300)는 도 2의 일반적인 뉴럴 네트워크(200)와 마찬가지로 입력 레이어(310), 숨겨진 레이어(320, 330) 및 출력 레이어(330)를 포함할 수 있다. 여기서, 두 개의 숨겨진 레이어(320,330)가 도시되어 있으나 이에 제한되는 것은 아니다. 입력 레이어(310) 및 숨겨진 레이어(320,330)는 마찬가지로 각각 하나 이상의 입력 노드(310a) 및 숨겨진 노드(320a, 330a)를 포함할 수 있다.
또한, 본 실시예들에 따른 뉴럴 네트워크(300)는 출력 레이어(340)의 뒤에 부스트 풀링 레이어(350)를 더 포함할 수 있다. 부스트 풀링 레이어(350)는 도시된 바와 같이 출력 레이어(340)와 연결되어, 출력 레이어(340)에서 각 클래스(C1,C2,C3)에 대하여 출력하는 출력값을 입력으로 받고, 클래스(C1,C2,C3)별로 하나의 출력값을 출력한다. 이때, 부스트 풀링 레이어(350)는 각 클래스(C1,C2,C3)에 대하여 각각 하나의 출력값을 출력하도록 세 개의 부스트 풀링 노드(351,352,353)를 포함할 수 있다.
또한, 본 실시예들에 따르면 출력 레이어(340)는 도시된 바와 같이 도 2의 일반적인 뉴럴 네트워크(200)의 출력 레이어(240)와 다르게 변경될 수 있다. 즉, 출력 레이어(340)는 분류할 복수의 클래스 중의 적어도 일부에 대하여 복수의 출력값이 출력되도록 각 클래스별로 복수의 출력 노드를 포함할 수 있다.
일 예로, 도 3a를 참조하면 출력 레이어(340)는 모든 클래스(C1,C2,C3)에 대해 각각 두 개의 출력값이 출력되도록 구성될 수 있다. 즉, 도시된 바와 같이 출력 레이어(340)는 클래스(C1)에 대한 두 개의 출력값을 출력하는 두 개의 출력 노드(341a,341b)와, 클래스(C2)에 대한 두 개의 출력값을 출력하는 두 개의 출력 노드(342a,342b)와, 클래스(C3)에 대한 두 개의 출력값을 출력하는 두 개의 출력 노드(343a,343b)로 구성된다.
다른 예로, 도 3b를 참조하면 출력 레이어(340)는 일부의 클래스(C1,C3)에 대해서만 두 개의 출력값이 출력되도록 구성될 수 있다. 즉, 도시된 바와 같이 출력 레이어(340)는 클래스(C1)과 클래스(C2)에 대한 두 개의 출력값이 출력되도록 각각 출력 노드(341a,341b)와 출력 노드(343a,343b)로 구성되고, 두 번째 클래스(C2)에 대하여는 하나의 출력값이 출력되도록 하나의 출력 노드(342a)로 구성될 수 있다.
이하에서는 도 3a와 도 3b의 뉴럴 네트워크(300)는 일부의 클래스에 대해 출력 노드의 구성에 있어서 상이할 뿐 실질적으로 동일하므로, 도 3a만을 참조하여 뉴럴 네트워크(300)를 설명한다.
추가되는 부스트 풀링 레이어(350)의 각 부스트 풀링 노드(351,352,353)는 출력 레이어(340)의 대응되는 출력 노드의 집합(341,342,343) 단위로 연결될 수 있다. 예를 들어, 클래스(C1)에 대한 출력값을 출력하는 출력 노드(341a,341b)는 부스트 풀링 노드(351)에 연결되고, 클래스(C2)에 대한 출력값을 출력하는 출력 노드(342a,342b)는 부스트 풀링 노드(352)에 연결되며, 클래스(C3)에 대한 출력 노드(343a,343b)는 부스트 풀링 노드(353)에 연결된다.
또한, 출력 레이어(340)의 각 출력 노드(341a,341b,342a,342b,343a,343b)의 연결에 대하여 임의의 가중치가 설정된다. 이때, 기존의 출력 노드(341a,342a,343a)의 연결에 대해 설정된 가중치가 존재하는 경우, 기존의 출력 노드(341a,342a,343a)의 연결에 대해 설정된 가중치를 그대로 이용하거나, 다양하게 가공한 가중치를 새로 추가되는 출력 노드(341b,342b,343b)의 연결에 대한 가중치로 설정할 수 있다. 예컨대, 기존에 각 클래스에 대해 복수의 출력 노드가 존재한 경우, 기존의 각 출력 노드의 연결에 대해 설정된 가중치의 평균, 최대, 중간값 등을 가중치로 설정할 수 있다.
한편, 도 3a의 실시예에서 출력 레이어(340)는 클래스별로 각각 두 개의 출력 노드를 포함하는 것으로 예시하였으나, 어느 클래스에 대해 추가되는 출력 노드의 수에 있어서 특별히 제한되는 것은 아니다. 즉, 출력 노드의 수를 변경할 클래스의 결정이나, 그 결정된 클래스에 추가할 출력 노드의 수 및 추가된 출력 노드의 연결에 대한 가중치는 학습 데이터를 이용한 반복적인 학습을 통해 조정될 수 있다. 예컨대, 구조를 변경하기 전의 뉴럴 네트워크와 구조를 변경한 후의 뉴럴 네트워크를 학습 데이터를 이용하여 학습하고, 그 학습이 된 각 뉴럴 네트워크를 이용하여 손실함수값을 산출하여, 산출된 손실함수값을 기초로 출력 노드의 수를 변경하고자 하는 클래스나, 그 클래스에 대한 출력 노드의 수 및 가중치를 조정할 수 있다.
한편, 출력 레이어(340)와 부스트 풀링 레이어(350)의 관계는 아래의 수학식 2와 같이 정의될 수 있다.
Figure 112014092170211-pat00003
여기서, j는 j 번째 클래스를 의미하며, t는 클래스별로 풀링할 내부 출력 노드의 수를 의미하고, tyj는 j번째 클래스에 대하여 t 번째 출력 노드가 출력한 출력값을 의미하며, pj는 j 번째 클래스에 대한 부스트 풀링 노드의 출력값을 의미한다. 또한, pool함수는 다수개의 입력을 받아 하나의 출력값을 출력하는 임의의 함수로서, 예를 들어, 최대값, 중간값, 평균값, 확률적 선택 등을 수행하는 함수가 될 수 있다. 이때, 확률적 선택은 복수의 출력값에 비례한 확률값을 기초로 어느 하나의 출력값, 예컨대 확률이 가장 큰 출력값을 선택하는 것을 의미한다.
각 부스트 풀링 노드(351,352,353)는 이와 같이 다양한 pool 함수 중의 어느 하나가 적용될 수 있으며, 적용된 pool 함수를 통해 각 클래스(C1,C2,C3)별로 하나의 최종 출력값을 출력할 수 있다.
도 4는 도 1의 뉴럴 네트워크의 다른 실시예이다.
도 4의 실시예에 따른 뉴럴 네트워크(400)는 도 3a의 뉴럴 네트워크(300)와 마찬가지로 입력 노드(410a)를 포함하는 입력 레이어(410)와, 숨겨진 노드(420a,431a,431b)를 포함하는 숨겨진 레이어(420,430) 및 출력 레이어(440)를 포함한다. 또한, 각 클래스(C1,C2,C3) 별로 최종 출력값을 출력하는 부스트 풀링 노드(451,452,453)를 포함하는 부스트 풀링 레이어(450)가 추가된다. 또한, 출력 레이어(440)는 클래스(C1), 클래스( C2) 및 클래스(C3)에 대해 각각 출력 노드(441a,441b), 출력 노드(442a,442b) 및 출력 노드(443a,443b)를 포함하도록 구성된다. 그 결과, 출력 레이어(440)는 도시된 바와 같이 출력 노드들이 두 개의 클래스 그룹(CG1,CG2)으로 나누어질 수 있다.
또한, 본 실시예의 뉴럴 네트워크(400)는 단일 모델에서 복수의 모델을 사용하는 것과 동일 또는 유사한 구조를 형성하도록 숨겨진 레이어(420,430)의 구조가 더 변경될 수 있다. 예를 들어, 도 4와 같이 출력 레이어(440)와 직접 연결되는 숨겨진 레이어(430)는 기존의 숨겨진 노드(431a)의 집합(N1)에 새로운 숨겨진 노드(431b)의 집합(N2)이 추가될 수 있으며, 이와 같이 출력 노드들의 클래스 그룹과 평행하게 추가된 숨겨진 노드의 집합(N1,N2)은 출력 노드들의 클래스 그룹(CG1,CG2)에 각각 연결될 수 있다. 하지만, 이에 한정되는 것은 아니며, 숨겨진 레이어(420,430)의 구조 변경은 출력 레이어(440)와 연결되는 숨겨진 노드(430)로부터 순차적으로 이전의 숨겨진 노드(420)로 확대될 수 있다.
본 실시예에 따르면, 뉴럴 네트워크(400) 단일 모델에서 숨겨진 노드의 일부를 공유하여 부스트 풀링을 수행하기 때문에 테스트 시간이나 학습시간이 감소될 수 있다.
도 5a 및 도 5b는 도 1의 뉴럴 네트워크의 또 다른 실시예들이다.
도 5a 및 도 5b의 실시예에 따른 뉴럴 네트워크(500)는 입력 노드(510a)를 포함하는 입력 레이어(510), 숨겨진 노드(520a,531a)를 포함하는 숨겨진 레이어(520,530), 출력 레이어(540), 부스트 풀링 레이어(550) 및 소프트 맥스 레이어(560)를 포함한다.
즉, 본 실시예에 따른 뉴럴 네트워크(500)는 출력 레이어(540)의 뒤에 소프트 맥스 레이어(560)를 포함하고 있는 구조에, 전술한 바와 같이 부스트 풀링 레이어(550)를 더 추가하고 출력 레이어(540)를 클래스 중의 적어도 일부에 대하여 복수의 출력 노드를 갖도록 구성한 구조를 갖는다.
소프트 맥스 레이어(560)는 이전 레이어의 출력값에 정규화(normalizing)를 수행하여 각 출력값이 1을 넘지 않고 전체 출력값의 합이 1이 되도록 함으로써 각 클래스에 대한 출력값이 그 클래스에 속할 확률값으로 해석되도록 한다. 이때, 정규화는 아래의 수학식 3과 같이 지수함수를 취한 값들을 합한 후 나누어 주는 방식을 통해 이루어질 수 있다.
도 5a를 참조하면, 부스트 풀링 레이어(550)는 소프트 맥스 레이어(560)의 앞에 추가될 수 있다. 도 5a에 따르면, 일반적으로 소프트 맥스 레이어(560)는 클래스별로 최종 출력값이 나온 후에 추가 가공하는 역할을 수행하므로, 그 앞에 부스트 풀링 레이어(560)를 추가한 것이다. 이때, 도시된 바와 같이, 세 개의 부스트 풀링 노드(551, 552, 553)는 각각 출력 노드(541a,541b), 출력 노드(542) 및 출력 노드(543a,543b)에 연결된다. 또한, 부스트 풀링 노드(551,552,553) 각각은 세 개의 소프트 맥스 노드(561,562,563)에 연결된다.
이때, 부스트 풀링 레이어(550)와 소프트 맥스 레이어(560)는 예를 들어 아래의 수학식 3과 같은 관계가 성립될 수 있다.
Figure 112014092170211-pat00004
여기서, C는 분류할 클래스의 수를 의미하고, pj는 j 번째 클래스에 대한 부스트 풀링 노드의 출력값을 의미하며, sj j번째 클래스에 대한 소프트 맥스 노드의 출력값을 의미한다.
도 5b를 참조하면, 부스트 풀링 레이어(550)는 소프트 맥스 레이어(560)의 뒤에 추가될 수 있다. 이때, 출력 레이어(540)와 소프트 맥스 레이어(560)는 클래스(C1,C2,C3)별로 두 개의 출력값을 출력하도록 출력 노드 및 소프트 맥스 노드를 구성하고, 각 클래스별로 대응되도록 출력 노드 및 소프트 맥스 노드를 연결할 수 있다. 도시된 바와 같이, 클래스(C1)에 대하여 두 개의 출력 노드(541a,541b)와 두 개의 소프트 맥스 노드(561a,561b)를 추가하여 각각 연결할 수 있다. 이때, 부스트 풀링 레이어(550)의 부스트 풀링 노드(551)는 두 개의 소프트 맥스 노드(561a,561b)의 출력값을 입력받아 클래스(C1)에 대한 하나의 출력값을 출력한다. 다른 부스팅 풀링 노드(562,563)의 경우에도 마찬가지이다.
이때, 출력 레이어(540), 소프트 맥스 레이어(560) 및 부스트 풀링 레이어(550)는 예를 들어 아래의 수학식 4와 같은 관계가 성립할 수 있다.
Figure 112014092170211-pat00005
여기서, C는 분류할 클래스의 수, t는 클래스별로 풀링할 내부의 노드 수, pj는 j번째 클래스에 대한 부스트 풀링 노드의 출력값, ksj는 j번째 클래스에 대한 k번째 소프트 맥스 노드의 출력값을 의미한다. 또한, kyj는 j번째 클래스에 대한 k번째 출력 노드의 출력값을 의미한다.
도 5a 및 도 5b의 실시예에서 각각 수학식 3과 4를 적용하여 산출한 세 개의 클래스(C1,C2,C3)에 대한 출력값을 예를 들면 각각 아래의 표 1 및 표 2와 같다. 이때, 1y1=1, 1y2=3, 1y3=9, 2y1=2, 2y2=2, 2y3=2라고 가정하고, 부스트 풀링 노드에 적용되는 함수는 최대값을 산출하는 함수라고 가정하자.
부스트 풀링 레이어 소프트 맥스 레이어(최종 출력값)
p1=2 s1=0.0009
p2=3 s2=0.0002
p3=9 s3=0.99
<도 5a의 실시예에 따른 출력값>
소프트 맥스 레이어 부스트 풀링 레이어(최종 출력값)
1s1=0.0003, 2s1=0.34 p1=0.34
1s2=0.002, 2s2=0.34 p2=0.34
1s3=0.99, 2s3=0.34 p3=0.99
<도 5b의 실시예에 따른 출력값>
표 1과 표 2를 참조하면, 최종적으로 세 번째 클래스에 대한 출력값이 가장 큰 값을 갖는 것은 동일하나, 표 2의 경우에는 소프트 맥스 레이어의 각 클래스에 대한 두 번째 출력값(2s1=0.34, 2s2=0.34, 2s3=0.34)이 같으므로, 최종적으로 부스트 풀링 레이어에서 출력되는 첫 번째 출력값(p1=0.34)과 두 번째 출력값(p2=0.34)이 표 1의 첫 번째 출력값(s1=0.0009), 두 번째 출력값(s2=0.0002)에 비해 상대적으로 크게 산출된다. 따라서, 도 5a의 실시예는 도 5b의 실시예에 비하여 정규화에 의해 낮은 출력값이 평준화되어 과대 평가되는 것을 방지할 수 있다.
도 6은 일 실시예에 따른 데이터 분류 장치를 위한 뉴럴 네트워크의 학습 방법이다. 도 7은 도 6의 제2 뉴럴 네트워크 구성 단계의 상세 흐름도이다.
도 6 및 도 7은 도 1의 실시예에 따른 데이터 분류 장치(100)를 위하여 뉴럴 네트워크를 학습시키는 방법에 관한 실시예이다.
먼저, 도 6을 참조하면, 데이터 분류 장치(100)는 미리 정답이 알려진 학습 데이터를 이용하여 구조를 변경하기 전의 제1 뉴럴 네트워크를 학습시킨다(610). 이때, 제1 뉴럴 네트워크는 도 2에 예시된 바와 같은 일반적인 뉴럴 네트워크(200)일 수 있다. 이때, 데이터 분류 장치는 오류 역전파(back propagation) 학습 방법을 활용하여 제1 뉴럴 네트워크의 전체 가중치를 학습시킬 수 있다.
일반적으로 오류 역전파 학습 방법은 주어진 데이터의 정답과 현재 모델의 예측 값과의 함수로 나타내어지는 손실함수(loss function)를 최소화하기 위해 최적화 기법 중의 하나인 기울기 하강(gradient descent) 방법을 효율적으로 구현하는 방법이다.
아래의 수학식 5는 손실함수 중의 일 예로서 최대 우도 손실 함수(maximum likelihood loss function)를 예시하고 있다. 최대 우도 손실 함수는 주어진 데이터의 분포에 상관없이 주어진 입력 데이터에서의 정답값이 출력될 확률을 최대화 하는 방법이다.
Figure 112014092170211-pat00006
여기서, x는 길이가 k인 벡터 입력 데이터를 의미하고, z는 길이가 n인 정답 벡터를 의미한다. 이때, 주어진 입력 데이터가 j 클래스에 속하면 j 번째 요소만 1이고, 나머지는 0인 벡터가 되며, n은 가능한 클래스의 개수이다. yj는 모델 M이 산정한 입력 데이터가 j번째 클래스에 속할 확률을 나타내고, L(x,z)는 최대 우도 손실 함수를 나타낸다.
기울기 하강 방법은 변경 가능한 각각의 가중치들을 기준으로 편미분한 기울기 벡터(gradient vector)에 현재 가중치를 대입한 현 위치의 기울기에 어떤 정해진 수를 곱하여 빼는 과정을 여러번 반복하여 최소값을 찾는 방법이다. 이러한 기울기 벡터를 구하는 방식이 오류 역전파 학습 방법이라 할 수 있다. 오류 역전파 학습 방법 자체는 기계 학습 기술 분야에서 널리 알려져 있으므로 이하 자세한 설명은 생략한다.
그 다음, 제1 뉴럴 네트워크의 학습이 완료되면, 학습된 제1 뉴럴 네트워크를 이용하여 각 클래스별로 제1 손실함수값을 산정한다(620). 즉, 제1 뉴럴 네트워크에 대한 학습이 완료되면, 학습 데이터와 검증용 데이터에 대해서 각 클래스별로 오류 역전파 학습 방법에 미리 정의된 손실함수를 적용한 제1 손실함수값을 산출하고, 그 제1 손실함수값들을 합산할 수 있다. 이때, 학습이 종료되었는지 여부는 미리 설정된 반복 회수의 학습을 수행하였는지, 각 학습이 완료된 후 산출된 손실함수값이 미리 설정된 임계치 이하인지 등에 따라 판단할 수 있다.
그 다음, 제1 뉴럴 네트워크의 구조를 변경하여 제2 뉴럴 네트워크를 구성한다(630).
도 7을 참조하여 제2 뉴럴 네트워크를 구성하는 단계(630)의 일 실시예를 좀 더 구체적으로 설명한다.
먼저, 제1 뉴럴 네트워크에 각 클래스별로 하나의 출력값을 출력하는 부스트 풀링 노드를 포함하는 부스트 풀링 레이어를 추가한다(631).
그 다음, 제1 뉴럴 네트워크의 출력 레이어에서 복수의 출력값을 출력하기 위한 클래스를 결정한다(632). 이때, 어느 클래스에 대하여 출력 노드를 추가할지 여부를 결정하기 위해서, 단계(620)에서 산출된 각 클래스별 제1 손실함수값이나, 후술하는 단계(650)에서 산출된 각 클래스별 제2 손실함수값을 이용하여 결정될 수 있다.
예를 들어, 어느 클래스에 대해 산출된 제1 손실함수값 또는 제2 손실함수값이 미리 설정된 임계치를 초과하면 그 클래스에 대한 값이 오차가 크다고 판단하여 그 클래스에 출력 노드를 추가할 수 있다. 또한, 추가되는 출력 노드의 개수는 제1 손실함수값 또는 제2 손실함수값이 임계치를 초과하는 정도에 따라 결정될 수 있다. 예컨대, 제1 손실함수값 또는 제2 손실함수값이 그 임계치를 초과하는 정도를 복수의 단계로 미리 정의하고 각 단계별로 추가할 출력 노드의 수를 정의할 수 있다.
그 다음, 결정된 클래스를 위하여 출력 레이어에 출력 노드를 추가한다(633).
그 다음, 부스트 풀링 노드와 출력 노드, 출력 노드와 숨겨진 노드를 연결한다(634). 이때, 부스트 풀링 노드와 출력 노드는 각 클래스 단위로 대응하는 노드들 간에 연결한다.
그 다음, 추가되는 출력 노드와 앞의 숨겨진 노드, 뒤의 부스트 풀링 노드 사이의 연결에 대하여 가중치를 설정한다(635). 이때, 가중치는 임의로 설정되는 값으로서, 필요에 따라 추가된 어느 출력 노드에 대하여 동일한 클래스의 다른 출력 노드에 대한 가중치를 그대로 사용하거나, 다른 출력 노드가 둘 이상인 경우 각 출력 노드의 가중치를 가공한 값, 예컨대, 평균값을 사용할 수 있다.
다시 도 6을 참조하면, 제2 뉴럴 네트워크가 구성되면(630), 학습 데이터를 이용하여 제2 뉴럴 네트워크를 학습시킨다(640).
이때, 일 실시예에 따르면, 오류 역전파 학습 방법을 이용하여 구성된 제2 뉴럴 네트워크의 전체 가중치에 대해 전체의 학습 데이터를 이용하여 학습시킬수 있다.
다른 실시예에 따르면, 제2 뉴럴 네트워크의 전체 가중치에 대해 학습시키는 것이 아니라, 출력 레이어의 앞에 연결된 가중치에 대해서만 전체의 학습 데이터를 이용하여 학습시킬 수 있다. 이에 따르면, 부스트 풀링 레이어의 추가에 따른 학습 시간을 줄일 수 있다.
또 다른 실시예에 따르면, 먼저, 제2 뉴럴 네트워크의 추가된 출력 노드의 가중치에 대해서만 일부의 학습 데이터에 대해서 학습을 시키고, 이후 다시 전체 학습 데이터에 대해서 전체 가중치 또는 출력 레이어의 앞에 연결된 가중치에 대해서 학습을 시킬 수 있다. 이때, 일부의 학습 데이터는 구조를 변경하기 전의 제1 손실함수값 또는 제2 손실함수값에 따라 선택될 수 있다. 이 실시예는 전술한 바와 같이, 추가된 출력 노드의 연결에 대하여 동일한 클래스의 다른 출력 노드에 대한 가중치를 그대로 이용하거나 가공하여 이용한 경우에 보다 효과적이다. 즉, 이 경우 임의의 가중치를 사용하지 않고 동일한 클래스에 대한 기 설정된 가중치를 사용하므로 임의의 가중치를 사용하는 것보다 빠른 학습이 가능해 진다.
그 다음, 제2 뉴럴 네트워크의 학습이 완료되면 학습된 제2 뉴럴 네트워크를 이용하여 각 클래스별로 제2 손실함수값을 산출하고 합산한다(650).
그 다음, 산출된 제1 손실함수값 또는 제2 손실함수값을 이용하여 제2 뉴럴 네트워크의 구성이 적절한지를 판단할 수 있다(660). 일 예로, 제2 뉴럴 네트워크의 각 클래스별로 산출된 제2 손실함수값 모두가 미리 설정된 임계치 이하이거나, 클래스별로 산출된 제2 손실함수값의 합이 미리 설정된 임계치 이하인 경우 제2 뉴럴 네트워크가 적절하게 구성된 것으로 판단할 수 있다. 다른 예로, 구조 변경 전의 제1 뉴럴 네트워크에 대한 제1 손실함수값과 구조 변경 후의 제2 뉴럴 네트워크에 대한 제2 손실함수값의 차이가 미리 설정된 임계치 이상이면 제2 뉴럴 네트워크의 구성이 적절한 것으로 판단할 수 있다.
만약, 각 클래스별 제2 손실함수값 중의 일부 또는 제2 손실함수값의 합이 미리 설정된 임계치를 초과하는 경우 또는, 제1 손실함수값의 합과 제2 손실함수값의 합이 미리 설정된 임계치를 초과하는 경우 제2 뉴럴 네트워크의 구성이 적절하지 않는 것으로 판단하고 단계 630 이하를 다시 수행할 수 있다. 이때, 제2 뉴럴 네트워크는 다시 제1 뉴럴 네트워크가 되어 단계630으로 진행한다.
한편, 본 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 개시된 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 데이터 분류 장치
110: 분류부
120, 300, 400, 500: 실시예들에 따른 뉴럴 네트워크
310, 410, 510: 입력 레이어
320, 330, 420, 430, 520, 530: 숨겨진 레이어
340, 440, 540: 출력 레이어
350, 450, 550: 부스트 풀링 레이어
560: 소프트 맥스 레이어

Claims (18)

  1. 뉴럴 네트워크 및 분류부를 포함하는 데이터 분류 장치에 있어서,
    상기 분류부는
    데이터를 상기 뉴럴 네트워크의 입력 레이어에 입력하고,
    상기 뉴럴 네트워크의 출력 레이어를 사용하여, 분류할 전체 클래스 중의 적어도 일부의 클래스에 대하여 상기 데이터에 대한 복수의 제1 출력값을 생성하고 나머지 클래스에 대하여 하나의 제1 출력값을 생성하며,
    상기 뉴럴 네트워크의 부스트 풀링 레이어를 사용하여, 상기 클래스별로 생성된 하나 이상의 제1 출력값으로부터 클래스별로 하나의 제2 출력값을 생성하고,
    상기 클래스별로 생성된 제2 출력값을 기초로 상기 데이터가 속하는 클래스를 결정하며,
    상기 뉴럴 네트워크는
    상기 입력 레이어와 상기 출력 레이어 사이에 하나 이상의 숨겨진 레이어를 포함하는 데이터 분류 장치.
  2. 제1항에 있어서,
    상기 출력 레이어는 각 클래스별로 출력되는 제1 출력값의 개수에 대응하도록 각 클래스별로 하나 이상의 출력 노드를 포함하는 데이터 분류 장치.
  3. 제2항에 있어서,
    분류할 전체 클래스 중에서 상기 복수의 제1 출력값을 출력할 적어도 일부의 클래스 및 상기 적어도 일부의 클래스 각각에 대한 제1 출력값의 수는 학습 데이터를 통해 학습된 상기 뉴럴 네트워크를 이용하여 산출된 각 클래스별 손실함수값과 미리 설정된 임계치의 비교 결과에 기초하여 결정되는 데이터 분류 장치.
  4. 제2항에 있어서,
    상기 부스트 풀링 레이어는 각 클래스별로 하나의 부스트 풀링 노드를 포함하며, 각 클래스의 부스트 풀링 노드는 상기 출력 레이어의 대응되는 클래스의 출력 노드에 연결되는 데이터 분류 장치.
  5. 제4항에 있어서,
    상기 부스트 풀링 노드는 최대값, 중간값, 평균값 및 확률적 선택 중의 적어도 하나를 적용하여 상기 제2 출력값을 출력하는 데이터 분류 장치.
  6. 삭제
  7. 제1항에 있어서,
    상기 숨겨진 레이어 중의 상기 출력 레이어의 앞에 위치하는 레이어는 둘 이상의 숨겨진 노드 집합을 포함하고, 각 숨겨진 노드 집합은 상기 출력 레이어의 각 클래스 집합에 연결되는 데이터 분류 장치.
  8. 삭제
  9. 데이터 분류 장치가 데이터 분류를 위한 뉴럴 네트워크를 학습시키는 방법에 있어서,
    학습 데이터를 이용하여 입력 레이어 및 출력 레이어를 포함하는 제1 뉴럴 네트워크를 학습시키는 단계;
    상기 학습된 제1 뉴럴 네트워크를 이용하여 각 클래스별로 제1 손실함수값을 산출하는 단계;
    상기 제1 뉴럴 네트워크에 부스트 풀링 레이어를 추가하여 상기 제1 뉴럴 네트워크를 변경함으로써 제2 뉴럴 네트워크를 구성하는 단계;
    상기 학습 데이터 중의 적어도 일부를 이용하여 상기 제2 뉴럴 네트워크를 학습시키는 단계;
    상기 학습된 제2 뉴럴 네트워크를 이용하여 각 클래스별로 제2 손실함수값을 산출하는 단계; 및
    상기 제1 손실함수값 및 제2 손실함수값 중의 하나 이상을 이용하여 상기 제2 뉴럴 네트워크의 재구성 여부를 판단하는 단계를 포함하는 뉴럴 네트워크 학습 방법.
  10. 제9항에 있어서,
    상기 부스트 풀링 레이어는
    상기 출력 레이어의 뒤에 클래스별로 하나의 부스트 풀링 노드를 포함하고,
    상기 제2 뉴럴 네트워크를 구성하는 단계는
    상기 출력 레이어에서 복수의 출력값을 출력할 클래스를 결정하는 단계; 및
    상기 출력 레이어에 상기 결정된 클래스를 위하여 출력 노드를 추가하는 단계를 포함하는 뉴럴 네트워크 학습 방법.
  11. 제10항에 있어서,
    상기 제2 뉴럴 네트워크를 구성하는 단계는
    상기 부스트 풀링 노드 및 상기 출력 노드를 대응하는 클래스별로 연결하는 단계; 및
    상기 추가된 출력 노드에 대하여 가중치를 설정하는 단계를 더 포함하는 뉴럴 네트워크 학습 방법.
  12. 제11항에 있어서,
    상기 제2 뉴럴 네트워크를 학습시키는 단계는
    상기 제2 뉴럴 네트워크의 전체 노드들에 대해 설정된 가중치를 전체의 학습 데이터를 이용하여 학습시키는 뉴럴 네트워크 학습 방법.
  13. 제11항에 있어서,
    상기 제2 뉴럴 네트워크를 학습시키는 단계는
    상기 출력 레이어의 전체 출력 노드에 대하여 설정된 가중치에 대해서 전체의 학습 데이터를 이용하여 학습시키는 뉴럴 네트워크 학습 방법.
  14. 제11항에 있어서,
    상기 제2 뉴럴 네트워크를 학습시키는 단계는
    상기 출력 레이어 중의 추가된 출력 노드에 대하여 설정된 가중치에 대해서 상기 제1 손실함수값을 기초로 선택된 일부의 학습 데이터를 이용하여 학습시키는 뉴럴 네트워크 학습 방법.
  15. 제11항에 있어서,
    상기 추가된 출력 노드에 대하여 가중치를 설정하는 단계는
    동일한 클래스의 다른 출력 노드에 대하여 설정된 가중치를 기초로 상기 추가된 출력 노드에 대한 가중치를 설정하는 뉴럴 네트워크 학습 방법.
  16. 제10항에 있어서,
    상기 복수의 출력값을 출력할 클래스를 결정하는 단계는
    상기 산출된 제1 손실함수값이 임계치를 초과하는 클래스를 상기 복수의 출력값을 출력할 클래스로 결정하는 뉴럴 네트워크 학습 방법.
  17. 제10항에 있어서,
    상기 부스트 풀링 노드는
    상기 출력 노드의 출력값에 최대값, 중간값, 평균값 및 확률적 선택 중의 적어도 하나를 적용하여 클래스별로 하나의 출력값을 출력하는 뉴럴 네트워크 학습 방법.
  18. 제9항에 있어서,
    상기 제2 뉴럴 네트워크의 재구성 여부를 판단하는 단계는
    상기 제2 손실함수값이 임계치를 초과하거나, 상기 제1 손실함수값과 제2 손실함수값의 차이가 임계치를 초과하는 경우 제2 뉴럴 네트워크를 재구성하는 것으로 판단하는 뉴럴 네트워크 학습 방법.
KR1020140129558A 2014-09-26 2014-09-26 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법 KR102445468B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140129558A KR102445468B1 (ko) 2014-09-26 2014-09-26 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법
US14/865,980 US10534999B2 (en) 2014-09-26 2015-09-25 Apparatus for classifying data using boost pooling neural network, and neural network training method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140129558A KR102445468B1 (ko) 2014-09-26 2014-09-26 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법

Publications (2)

Publication Number Publication Date
KR20160037022A KR20160037022A (ko) 2016-04-05
KR102445468B1 true KR102445468B1 (ko) 2022-09-19

Family

ID=55800251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140129558A KR102445468B1 (ko) 2014-09-26 2014-09-26 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법

Country Status (2)

Country Link
US (1) US10534999B2 (ko)
KR (1) KR102445468B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10650045B2 (en) * 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10664722B1 (en) * 2016-10-05 2020-05-26 Digimarc Corporation Image processing arrangements
US11049011B2 (en) * 2016-11-16 2021-06-29 Indian Institute Of Technology Delhi Neural network classifier
US10373049B2 (en) * 2016-12-20 2019-08-06 Google Llc Generating an output for a neural network output layer
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US11514465B2 (en) * 2017-03-02 2022-11-29 The Nielsen Company (Us), Llc Methods and apparatus to perform multi-level hierarchical demographic classification
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
KR102049331B1 (ko) * 2017-08-22 2019-11-27 주식회사 인피닉스 이미지 분류 장치와 방법 및 이미지 분류를 위한 이미지 학습 장치
KR102563752B1 (ko) * 2017-09-29 2023-08-04 삼성전자주식회사 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들
CN107943967B (zh) * 2017-11-28 2020-05-22 华南理工大学 基于多角度卷积神经网络与循环神经网络的文本分类算法
CN109993286B (zh) * 2017-12-29 2021-05-11 深圳云天励飞技术有限公司 稀疏神经网络的计算方法及相关产品
KR102162895B1 (ko) * 2018-06-04 2020-10-07 주식회사 딥바이오 듀얼 클래스를 지원하는 질병 진단 시스템 및 그 방법
CN110598723B (zh) * 2018-06-13 2023-12-12 赛灵思电子科技(北京)有限公司 人工神经网络调整方法和装置
KR102187830B1 (ko) * 2018-06-29 2020-12-07 포항공과대학교 산학협력단 뉴럴 네트워크 하드웨어
KR102168882B1 (ko) * 2018-06-29 2020-10-22 포항공과대학교 산학협력단 뉴럴 네트워크 하드웨어
US11934944B2 (en) 2018-10-04 2024-03-19 International Business Machines Corporation Neural networks using intra-loop data augmentation during network training
US20200117979A1 (en) * 2018-10-10 2020-04-16 The Nielsen Company (Us), Llc Neural network processing of return path data to estimate household demographics
KR102534936B1 (ko) * 2018-10-24 2023-05-22 삼성에스디에스 주식회사 영상 분류 장치 및 방법
WO2020231188A1 (ko) * 2019-05-13 2020-11-19 삼성전자주식회사 검증 뉴럴 네트워크를 이용한 분류 결과 검증 방법, 분류 결과 학습 방법 및 상기 방법을 수행하는 컴퓨팅 장치
US11334987B2 (en) * 2019-10-09 2022-05-17 Siemens Medical Solutions Usa, Inc. Physics-constrained network and training thereof
KR102601970B1 (ko) * 2019-11-25 2023-11-15 주식회사 뷰노 의료 영상 내 병변 영역 및 분비선 영역 검출 장치 및 방법
US11068786B1 (en) * 2020-12-17 2021-07-20 Moffett Technologies Co., Limited System and method for domain specific neural network pruning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998024369A1 (en) 1996-12-02 1998-06-11 The University Of Texas System Spectroscopic detection of cervical pre-cancer using radial basis function networks
US20130103402A1 (en) 2011-10-25 2013-04-25 At&T Intellectual Property I, L.P. System and method for combining frame and segment level processing, via temporal pooling, for phonetic classification

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY138544A (en) 2003-06-26 2009-06-30 Neuramatix Sdn Bhd Neural networks with learning and expression capability
US20060155661A1 (en) 2005-01-07 2006-07-13 Morgan David W Portable device for classification of medical data
KR100842215B1 (ko) * 2006-11-27 2008-06-30 포항공과대학교 산학협력단 서포트 벡터 도메인 묘사를 이용한 다범주 분류 방법 및장치와 그에 사용되는 컴퓨터 판독가능 저장매체
CN101853389A (zh) 2009-04-01 2010-10-06 索尼株式会社 多类目标的检测装置及检测方法
KR101910576B1 (ko) 2011-11-08 2018-12-31 삼성전자주식회사 인공신경망을 이용하여 신속하게 입력 패턴을 분류하는 방법 및 장치
KR101434170B1 (ko) 2012-09-25 2014-08-26 한국전자통신연구원 추출된 데이터 특징을 이용한 학습 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998024369A1 (en) 1996-12-02 1998-06-11 The University Of Texas System Spectroscopic detection of cervical pre-cancer using radial basis function networks
US20130103402A1 (en) 2011-10-25 2013-04-25 At&T Intellectual Property I, L.P. System and method for combining frame and segment level processing, via temporal pooling, for phonetic classification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Moody J. ‘Prediction Risk and Architecture Selection for Neural Networks’, From Statistics to Neural Networks, NATO ASI Series (Series F: Computer and Systems Sciences), vol 136. pp. 147-165, 1994. 1부*

Also Published As

Publication number Publication date
US10534999B2 (en) 2020-01-14
US20170068887A1 (en) 2017-03-09
KR20160037022A (ko) 2016-04-05

Similar Documents

Publication Publication Date Title
KR102445468B1 (ko) 부스트 풀링 뉴럴 네트워크 기반의 데이터 분류 장치 및 그 데이터 분류 장치를 위한 뉴럴 네트워크 학습 방법
CN108182394B (zh) 卷积神经网络的训练方法、人脸识别方法及装置
CN109460793B (zh) 一种节点分类的方法、模型训练的方法及装置
CN107358293B (zh) 一种神经网络训练方法及装置
US11816183B2 (en) Methods and systems for mining minority-class data samples for training a neural network
CN107529650B (zh) 闭环检测方法、装置及计算机设备
US20190340533A1 (en) Systems and methods for preparing data for use by machine learning algorithms
CN109754078A (zh) 用于优化神经网络的方法
KR20200022739A (ko) 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치
EP3570220A1 (en) Information processing method, information processing device, and computer-readable storage medium
US11462210B2 (en) Data collecting method and system
JP2023523029A (ja) 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体
CN108052862A (zh) 年龄预估方法和装置
CN113505797B (zh) 模型训练方法、装置、计算机设备和存储介质
CN110096617B (zh) 视频分类方法、装置、电子设备及计算机可读存储介质
US20210065011A1 (en) Training and application method apparatus system and stroage medium of neural network model
US8639643B2 (en) Classification of a document according to a weighted search tree created by genetic algorithms
JPWO2019146189A1 (ja) ニューラルネットワークのランク最適化装置および最適化方法
EP4170549A1 (en) Machine learning program, method for machine learning, and information processing apparatus
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
US20220343163A1 (en) Learning system, learning device, and learning method
CN111523593A (zh) 用于分析医学影像的方法和装置
JP6921526B2 (ja) 情報処理装置、情報処理方法及びプログラム
KR102198480B1 (ko) 재귀 그래프 모델링을 통한 비디오 요약 생성 장치 및 방법
JP2015038709A (ja) モデルパラメータ推定方法、装置、及びプログラム

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
GRNT Written decision to grant