KR102086043B1 - 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치 - Google Patents

희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치 Download PDF

Info

Publication number
KR102086043B1
KR102086043B1 KR1020170158496A KR20170158496A KR102086043B1 KR 102086043 B1 KR102086043 B1 KR 102086043B1 KR 1020170158496 A KR1020170158496 A KR 1020170158496A KR 20170158496 A KR20170158496 A KR 20170158496A KR 102086043 B1 KR102086043 B1 KR 102086043B1
Authority
KR
South Korea
Prior art keywords
data
input
matrix
gradient descent
tensor
Prior art date
Application number
KR1020170158496A
Other languages
English (en)
Other versions
KR20190060364A (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 KR1020170158496A priority Critical patent/KR102086043B1/ko
Publication of KR20190060364A publication Critical patent/KR20190060364A/ko
Application granted granted Critical
Publication of KR102086043B1 publication Critical patent/KR102086043B1/ko

Links

Images

Classifications

    • 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
    • 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)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서에서 개시되는 실시예들은 데이터 분석 방법 및 이를 수행하기 위한 장치에 관한 것으로서, 빠르고 정확하며 확장가능한 데이터 분석 방법 및 데이터 분석 장치를 제시하며, 희박 데이터의 분석에 특히 유리하다. 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 데이터 분석 장치에서 수행하는 것으로서, 입력행렬-입력텐서 쌍 데이터를 입력 받는 단계, 목적함수에 대하여, 상기 입력행렬 및 상기 입력텐서를 대입하여 경사하강법을 수행하는 단계 및 상기 경사하강법을 수행하여 상기 목적함수를 최소화하는 인자 행렬을 추출하는 단계를 포함하는 데이터 분석 방법이 개시된다.

Description

희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치{DATA ANALYSIS METHOD AND APPARATUS FOR SPARSE DATA}
본 명세서에서 개시되는 실시예들은 데이터 분석 방법 및 이를 수행하기 위한 장치에 관한 것으로서, 빠르고 정확하며 확장가능한 데이터 분석 방법 및 데이터 분석 장치를 제시하며, 희박 데이터의 분석에 특히 유리하다.
기존의 제안된 데이터 분석 방법 중 행렬 분해 또는 텐서 분해 기법은 완전히 관찰 가능한 데이터를 대상으로 한다. 그러나 현실에서 분석을 요하는 데이터들은 설정된 공간에 비하여 관찰되는 데이터가 희박한, 희박 데이터인 경우가 대부분이다. 따라서 기존의 행렬 분해 또는 텐서 분해 기법에서는 관찰되지 않은 데이터에 임의의 값을 부여함으로써 데이터를 분석하는 방식을 사용한다. 이 과정에서 분석의 정확도가 하락하며, 데이터의 크기가 큰 경우 처리가 불가능하게 되는 문제가 있다.
관련하여 선행기술 문헌인 한국공개특허 제10-2016-0066395호에서는 행렬 분해 모델 기반 데이터 분석 방법 및 장치를 제안하고 있다. 이때, 선행기술의 데이터 분석 방법 및 장치에서는 잡음의 평균값을 0으로 가지며, 소정의 분산을 갖는 가우시안 분포를 따르는 것으로 가정하여 행렬 분해를 수행하고 있다.
즉, 상술한 선행기술에 의하더라도, 관찰되지 않은 데이터에 임의의 값을 부여함으로써 정확도가 하락하며, 데이터의 크기가 큰 경우 처리가 불가능하게 된다는 문제에서 벗어나지 못한다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 명세서에서 개시되는 실시예들은, 데이터 분석 방법 및 이를 수행하기 위한 장치를 개시하는 데에 목적이 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 수행함에 있어서, 관찰되지 않은 데이터를 임의로 채워 넣지 않음으로써 처리 속도와 메모리 효율을 향상시키는 데에 목적이 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 다수의 스레드에서 병렬적으로 수행함으로써 처리 속도를 향상시키는 데에 목적이 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 수행함에 있어서, 연산 과정에서 생성되는 중간 데이터(Intermediate data)를 재활용함으로써 처리 속도를 향상시키는 데에 목적이 있다.
또한 실시예들은, 터커 모델(Tucker Model)을 사용함으로써 각 차원의 잠재 변인들 사이의 연관도를 파악하는 희박 데이터 분석을 위한 데이터 분석 방법 및 이를 수행하기 위한 장치를 개시하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 데이터 분석 장치에서 수행하는 것으로서, 입력행렬-입력텐서 쌍 데이터를 입력 받는 단계; 목적함수에 대하여, 상기 입력행렬 및 상기 입력텐서를 대입하여 경사하강법을 수행하는 단계; 및 상기 경사하강법을 수행하여 상기 목적함수를 최소화하는 인자 행렬을 추출하는 단계를 포함하는 데이터 분석 방법이 개시된다.
다른 실시예에 따르면, 데이터 분석 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 개시된다. 이때 데이터 분석 방법은, 데이터 분석 장치에서 수행하는 것으로서, 입력행렬-입력텐서 쌍 데이터를 입력 받는 단계; 목적함수에 대하여, 상기 입력행렬 및 상기 입력텐서를 대입하여 경사하강법을 수행하는 단계; 및 상기 경사하강법을 수행하여 상기 목적함수를 최소화하는 인자 행렬을 추출하는 단계를 포함할 수 있다.
또 다른 실시예에 따르면, 데이터 분석 장치에 의해 수행되며, 데이터 분석 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램이 개시된다. 이때 데이터 분석 방법은, 데이터 분석 장치에서 수행하는 것으로서, 입력행렬-입력텐서 쌍 데이터를 입력 받는 단계; 목적함수에 대하여, 상기 입력행렬 및 상기 입력텐서를 대입하여 경사하강법을 수행하는 단계; 및 상기 경사하강법을 수행하여 상기 목적함수를 최소화하는 인자 행렬을 추출하는 단계를 포함할 수 있다.
또 다른 실시예에 따르면, 입력행렬-입력텐서 쌍 데이터를 입력 받아 저장하는 저장부; 및 행렬-텐서 쌍 분해를 수행하여 상기 입력행렬 및 상기 입력텐서의 인자 행렬을 추출하되, 상기 입력행렬 및 상기 입력텐서를 목적함수에 대입하여 경사하강법을 수행하여, 상기 목적함수를 최소화하는 인자 행렬을 추출하는 것을 특징으로 하는 제어부를 포함하는 데이터 분석 장치가 개시된다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 본 명세서에서 개시되는 실시예들은, 본 명세서에서 개시되는 실시예들은, 데이터 분석 방법 및 이를 수행하기 위한 장치를 개시할 수 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 수행함에 있어서, 관찰되지 않은 데이터를 임의로 채워 넣지 않음으로써 처리 속도와 메모리 효율을 향상시킬 수 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 다수의 스레드에서 병렬적으로 수행함으로써 처리 속도를 향상시킬 수 있다.
또한 실시예들은, 희박 데이터 분석을 위한 데이터 분석 방법을 수행함에 있어서, 연산 과정에서 생성되는 중간 데이터(Intermediate data)를 재활용함으로써 처리 속도를 향상시킬 수 있다.
또한 실시예들은, 터커 모델(Tucker Model)을 사용함으로써 각 차원의 잠재 변인들 사이의 연관도를 파악하는 희박 데이터 분석을 위한 데이터 분석 방법 및 이를 수행하기 위한 장치를 개시할 수 있다.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 데이터 분석 장치의 구성을 도시한 블록도이다.
도 2 내지 도 4는 일 실시예에 따른 데이터 분석 장치의 동작을 설명하기 위한 알고리즘의 예시도이다.
도 5는 일 실시예들에 따른 데이터 분석 방법을 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
다만, 설명에 앞서 이하에서 사용될 용어에 대해 정의한다.
행렬-텐서 쌍(Coupled Matrix-Tensor)이란, 서로 쌍을 이룬 행렬 데이터와 텐서 데이터를 말하는 것으로서, 행렬-텐서 쌍에서 행렬 및 텐서는 서로 차원을 공유할 수 있다.
이하에서는 실시예에 따라 행렬-텐서 쌍 분해(Coupled Matrix-Tensor Factorization)의 대상이 되는 입력 데이터를 '입력행렬-입력텐서 쌍'이라 한다. 즉, '입력텐서(input tensor)'란, 입력 데이터인 입력행렬-입력텐서 쌍 중 텐서 부분, '입력행렬(coupled matrix)'이란, 입력 데이터인 입력행렬-입력텐서 쌍 중 행렬 부분을 말한다.
한편, 이하에서 등장하는 수식의 기호는 다음과 같이 정의된다.
Figure 112017117468212-pat00001
그 외에 정의가 필요한 용어들은 이하에서 서술되는 관련 부분에서 정의하도록 한다.
도 1은 일 실시예에 따른 데이터 분석 장치(10)의 구성을 도시한 블록도이다.
본 명세서의 실시예에 따르면, 데이터 분석 장치(10)는 행렬-텐서 쌍 분해(Coupled Matrix-Tensor Factorization)를 수행하여 입력행렬 및 입력텐서의 인자 행렬을 추출하는 컴퓨팅 장치로 구현될 수 있다.
예를 들어, 데이터 분석 장치(10)는 애플리케이션이 설치된 전자단말기로 구현될 수 있거나 또는 서버-클라이언트 시스템으로 구현될 수 있으며, 이때, 서버-클라이언트 시스템은 사용자와의 인터랙션을 위한 클라이언트가 설치된 전자단말기를 포함할 수 있다.
그리고 서버는 사용자와의 인터랙션을 위한 클라이언트가 설치된 전자단말기와 네트워크를 통해 통신이 가능한 컴퓨팅장치로 구현될 수 있으며, 데이터를 저장할 수 있는 저장장치를 포함하거나 또는 제 3 의 서버(미도시)로부터 데이터를 수신하거나 제3의 서버에 데이터를 저장할 수 있다.
이하에서는 일 실시예에 따라 데이터 분석 장치(10)가 데이터 분석 방법을 수행하는 과정을 자세히 설명한다.
도 1을 참고하면, 일 실시예에 따른 데이터 분석 장치(10)는 입출력부(11), 통신부(12), 저장부(13) 및 제어부(14)를 포함할 수 있다.
일 실시예에 따른 입출력부(11)는 사용자로부터 입력을 수신하기 위한 입력부와, 연산의 수행 결과, 예를 들어 데이터 분석의 결과를 표시하기 위한 출력부를 포함할 수 있다. 예를 들어, 입출력부(11)는 사용자의 입력을 수신하는 조작 패널(operation panel) 및 영상을 출력하는 디스플레이 패널(display panel) 등을 포함할 수 있다.
구체적으로, 입력부는 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 입력 수신 장치들을 포함할 수 있다. 또한, 출력부는 디스플레이 패널, 스피커 또는 헤드셋 등을 포함할 수 있다. 다만, 입출력부(11)는 상술한 예시에 한정되지 않고 다양한 입출력을 지원하는 구성을 포함할 수 있다.
한편, 통신부(12)는 다른 디바이스 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(12)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.
통신부(12)가 지원하는 무선 통신은, 예를 들어 Wi-Fi(Wireless Fidelity), Wi-Fi Direct, 블루투스(Bluetooth), UWB(Ultra-Wide Band) 또는 NFC(Near Field Communication) 등일 수 있다. 또한, 통신부(12)가 지원하는 유선 통신은, 예를 들어 USB 또는 HDMI(High Definition Multimedia Interface) 등일 수 있다. 또한, 통신부(12)는 인터넷 또는 이동통신망을 통해 목적지에 데이터 또는 메시지 등을 전송할 수도 있다.
일 실시예에 다르면, 통신부(12)는 행렬-텐서 쌍 분해의 대상이 되는 입력행렬-입력텐서 쌍 데이터를 제3의 서버로부터 수신할 수 있다.
한편, 저장부(13)에는 데이터 분석 방법을 수행하기 위한 다양한 종류의 데이터가 설치 및 저장될 수 있다. 일 실시예에 따르면, 저장부(13)는 행렬-텐서 쌍 분해의 대상이 되는 입력행렬-입력텐서 쌍 데이터를 저장하거나 데이터 분석 방법의 수행을 위한 애플리케이션 및/또는 장치 드라이버와 같은 소프트웨어를 저장 및 구동할 수 있다.
한편, 제어부(14)는 데이터 분석 장치(10)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 실시예에 따르면, 제어부(14)는 데이터 분석 방법을 수행하기 위하여 데이터 분석 장치(10)에 포함된 다른 구성들을 제어하고, 데이터 분석 방법을 수행하기 위하여 각종 데이터를 처리할 수 있다.
예를 들어, 제어부(14)는 저장부(13)에 저장된 프로그램을 실행시키거나, 저장부(13)에 저장된 데이터를 분석하고, 그 결과에 따른 동작을 수행할 수도 있다. 일 실시예에 따르면, 제어부(14)는 저장부(13)에 저장된 입력행렬-입력텐서 쌍 데이터에 기초하여 행렬-텐서 쌍 분해를 수행함으로써 입력행렬 및 입력텐서의 인자 행렬을 추출할 수 있다.
이하에서는 일 실시예에 따라 데이터 분석 장치(10)가 데이터 분석 방법을 수행하는 과정을 자세히 설명한다.
실시예에 따르면, 제어부(14)는 목적함수에 대하여, 입력행렬 및 입력텐서를 대입하여 경사하강법(gradient descent)을 수행할 수 있다. 실시예에 따르면, 제어부(14)가 수행하는 경사하강법은 확률적 경사하강법(SGD; Stochastic Gradient Descent)일 수 있다.
이때, 목적함수는 입력텐서에 대한 제1수식(
Figure 112017117468212-pat00002
) 과 입력행렬에 대한 제2수식(
Figure 112017117468212-pat00003
)의 합으로 구성된다. 구체적으로 제1수식은 입력텐서의 각 원소에 대해 연산되는 것으로서, 복원 제곱 오차 텀(squared reconstruction error term)과 정규화 텀(regularization term)의 합(elment-wise sum)으로 구성된다. 또한, 제2수식은 입력행렬의 각 원소에 대해 연산되는 것으로서, 복원 제곱 오차 텀과 정규화 텀의 합으로 구성된다. 일 실시예에 따르면, 제1수식 및 제2수식은 다음과 같이 결합되어 목적함수를 구성할 수 있다.
Figure 112017117468212-pat00004
이때,
Figure 112017117468212-pat00005
는 제1수식과 제2수식의 균형을 위한 파라미터이다. 일 실시예에 따르면, 제1수식은 다음과 같이 구현될 수 있다.
Figure 112017117468212-pat00006
여기서
Figure 112017117468212-pat00007
는 입력텐서의 인덱스(
Figure 112017117468212-pat00008
)이고,
Figure 112017117468212-pat00009
는 입력텐서의 인덱스의 집합이고,
Figure 112017117468212-pat00010
는 정규화 파라미터이다. 상기 제1수식은 확률적 경사 하강법에 적용하기 위하여 다음과 같이 변형될 수 있다.
Figure 112017117468212-pat00011
여기서
Figure 112017117468212-pat00012
Figure 112017117468212-pat00013
을 n번째 인덱스로 갖는
Figure 112017117468212-pat00014
의 부분집합이다. 다음으로 목적함수의 제2수식은 다음과 같이 구현될 수 있다.
Figure 112017117468212-pat00015
실시예에 따르면, 제어부(14)는 상술한 바와 같은 목적함수에 대하여, 입력된 입력행렬 및 입력텐서를 대입하여 경사하강법을 수행할 수 있다. 이때, 제어부(14)가 확률적 경사하강법을 수행할 수 있음은 상술한 바 있다.
실시예에 따르면, 제어부(14)는 경사하강법을 수행함에 있어서, 확률적 경사하강법에 의해 업데이트 되는 인자를 고려하여 목적함수의 그래디언트(gradient)를 연산할 수 있다. 이때, 제어부(14)는 입력텐서의 인덱스(
Figure 112017117468212-pat00016
) 또는 입력행렬의 인덱스(
Figure 112017117468212-pat00017
) 중 어느 하나를 선택하여 목적함수에 대한 편미분을 다음과 같이 수행할 수 있다.
Figure 112017117468212-pat00018
실시예에 따르면, 제어부(14)는 상술한 경사하강법을 다수의 스레드에서 병렬적으로 수행할 수 있다.
이때 제어부(14)는 확률적 경사하강법의 인자를 병렬적으로 업데이트함에 있어서, 무잠금 전략(lock-free strategy)을 수행할 수 있다. 일 실시예에 따른 무잠금 전략에 의하면, 제어부(14)는 코어텐서에 대한 업데이트를 하나의 스레드에 대해서만 할당할 수 있다. 무잠금 전략을 활용하여 확률적 경사하강법을 병렬적으로 수행함으로써, 병렬적인 업데이트 시 동일한 변수를 동시에 씀으로 인하여 메모리의 충돌이 발생하는 문제를 해결할 수 있다.
관련하여, 도 2 내지 도 4를 참고하면, 실시예에 따른 데이터 분석 장치(10)의 동작을 설명하기 위한 알고리즘의 일 실시예가 도시되어 있다.
먼저, 도 2의 3번줄을 참고하면, 제어부(14)는 입력텐서 인덱스의 집합(
Figure 112017117468212-pat00019
) 또는 입력행렬 인덱스의 집합(
Figure 112017117468212-pat00020
)에서 하나의 인덱스를 랜덤하게 선택할 수 있다. 이후 5번줄을 참고하면, 제어부(14)는 선택된 인덱스가 입력텐서의 인덱스일 때, 목적함수에 대해서 그래디언트를 수행하고, 6번줄과 같이 열 벡터 인자를 업데이트할 수 있다. 한편, 도 2의 7번줄을 참고하면, 제어부(14)는 코어텐서에 대한 업데이트를 수행할 수 있다. 이때, 오직 하나의 스레드에서 코어텐서에 대한 업데이트를 수행할 수 있다. 또한, 9번줄을 참고하면, 제어부(14)는 선택된 인덱스가 입력행렬의 인덱스일 때, 해당 인자의 열 벡터에서 편미분 값을 업데이트할 수 있다. 한편, 15번줄을 참고하면, 학습률(
Figure 112017117468212-pat00021
)이 단조 감소의 형태를 보이면 아웃루프를 종료할 수 있다. 또한, 코어텐서와 입력텐서의 인자 행렬이 수렴하면, 코어텐서, 입력텐서의 인자 행렬, 입력행렬의 인자 행렬을 출력할 수 있다.
다음으로 도 3은 도 2의 5번줄을 구체화한 알고리즘의 일 실시예이다. 실시예에 따르면, 도 3의 알고리즘을 수행함에 있어서, 제어부(14)는 목적함수에 대한 그래디언트에 중간 데이터(Intermediate data)를 정의하여 활용함으로써 불필요한 연산을 줄일 수 있다.
예를 들어, 입력텐서의 엔트리(
Figure 112017117468212-pat00022
)에 대한 인자 열을 업데이트할 때의 중간 데이터는 다음과 같다.
Figure 112017117468212-pat00023
이와 관련하여, 도 3의 1번줄을 참고하면, 제어부(14)는
Figure 112017117468212-pat00024
에 대응하는 입력텐서의 엔트리
Figure 112017117468212-pat00025
에 대하여 중간 데이터를 활용함으로써 연산을 간소화할 수 있다.
나아가 제어부(14)는 시간을 절약할 수 있는 대안으로 도 3의 알고리즘 대신 도 4의 알고리즘을 사용할 수 있다. 도 4의 알고리즘에서, 콜랩스 연산은 다음과 같이 정의될 수 있다.
Figure 112017117468212-pat00026
한편, [수학식 4]의 네번째 수식은 다음과 같은 연산으로 대체될 수 있다.
Figure 112017117468212-pat00027
이때,
Figure 112017117468212-pat00028
Figure 112017117468212-pat00029
는 각 요소에 대해 연산된다.
실시예에 따르면, 제어부(14)는 상술한 연산을 포함하는 도 4의 알고리즘을 활용함으로써 연산을 신속하게 처리할 수 있다.
한편, 도 5는 데이터 분석 장치(10)가 수행하는 데이터 분석 방법을 설명하기 위한 순서도들이다. 도 5에 도시된 실시예에 따른 데이터 분석 방법은 도 1 내지 도 4와 관련한 실시예에 따른 데이터 분석 장치(10)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 1 내지 도 4와 관련한 실시예에 따른 데이터 분석 장치(10)에 관하여 이상에서 기술한 내용은 도 5에 도시된 실시예들에 따른 데이터 분석 방법에도 적용될 수 있다.
도 5를 참고하면, 데이터 분석 장치(10)는 입력행렬-입력텐서 쌍 데이터를 수신하고(S51), 이를 목적함수에 대입하여 경사하강법을 수행하여(S52), 목적함수를 최소화하는 인자 행렬을 추출할 수 있다(S53). 이때, 실시예에 따르면, 데이터 분석 장치(10)가 수행하는 경사하강법은 확률적 경사하강법(SGD; Stochastic Gradient Descent)일 수 있다.
또한, 경사하강법의 대상이 되는 목적함수는, 희박 데이터를 위한 것으로서 입력텐서의 각 원소에 대한, 복원 제곱 오차 텀 및 정규화 텀의 합으로 구현되는 제1수식 및 입력행렬의 각 원소에 대한, 복원 제곱 오차 텀 및 정규화 텀의 합으로 구현되는 제2수식으로 구성될 수 있다.
또한, 데이터 분석 장치(10)는 경사하강법을 수행함에 있어서(S52), 다수의 스레드에서 병렬적으로 경사하강법을 수행할 수 있다. 이때, 데이터 분석 장치(10)는 코어텐서에 대한 업데이트를 다수의 스레드 중 하나에서만 수행되도록 하여 메모리의 충돌을 방지할 수 있다.
한편, 경사하강법을 수행하는 단계에서(S52), 데이터 분석 장치(10)는 입력텐서의 인덱스 중 하나를 임의로 선택해서 목적함수에 대한 그래디언트를 수행할 수 있으며, 이때, 데이터 분석 장치(10)는 목적함수에 대한 그래디언트에 중간 데이터(Intermediate data)를 정의하여 활용함으로써 불필요한 연산을 줄일 수 있다. 예를 들어, 입력텐서의 엔트리(
Figure 112017117468212-pat00030
)에 대한 인자 열을 업데이트할 때 반복되는 연산의 결과를 중간 데이터로 정의하여 활용함으로써 연산량을 줄일 수 있다.
한편, 데이터 분석 장치(10)는 경사하강법에 기초하여 추출된 인자 행렬에 기초하여 관찰되지 않은 데이터를 예측할 수 있다(S54).
실시예에 따른 데이터 분석 방법은 관찰되지 않은 데이터를 임의로 채워 넣지 않음으로써 처리 속도와 메모리 효율을 향상 시킬 수 있다.
또한, 실시예에 따른 데이터 분석 방법은 터커 모델(Tucker Model)에 따라 희박 데이터를 분석함으로써 입력행렬 및 입력텐서의 각 차원의 잠재 변인들 사이의 연관도를 파악할 수 있다. 이를 통해, 관찰되지 않은 데이터를 예측할 수 있다.
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.
도 5를 통해 설명된 실시예들에 따른 데이터 분석 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.
또한 도 5를 통해 설명된 실시예들에 따른 데이터 분석 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서 도 5를 통해 설명된 실시예들에 따른 데이터 분석 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고 저장 장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.
10: 데이터 분석 장치 11: 입출력부
12: 통신부 13: 저장부
14: 제어부

Claims (9)

  1. 데이터 분석 장치에서 수행하는 데이터 분석 방법으로서,
    입력행렬-입력텐서 쌍 데이터를 입력 받는 단계;
    목적함수에 대하여, 상기 입력행렬 및 상기 입력텐서를 대입하여 경사하강법을 수행하는 단계; 및
    상기 경사하강법을 수행하여 상기 목적함수를 최소화하는 인자 행렬을 추출하는 단계를 포함하고,
    상기 경사하강법을 수행하는 단계는,
    상기 경사하강법을 다수의 스레드에서 병렬적으로 수행하되, 코어텐서에 대한 업데이트는 상기 다수의 스레드 중 하나에서만 수행하는 것을 특징으로 하는, 데이터 분석 방법.
  2. 제1항에 있어서,
    상기 경사하강법을 수행하는 단계는,
    상기 목적함수는 희박 데이터를 위한 것으로서, 상기 입력텐서의 각 원소에 대한, 복원 제곱 오차 텀 및 정규화 텀의 합으로 구현되는 제1수식 및 상기 입력행렬의 각 원소에 대한, 복원 제곱 오차 텀 및 정규화 텀의 합으로 구현되는 제2수식으로 구성되는 것을 특징으로 하는, 데이터 분석 방법.
  3. 제1항에 있어서,
    상기 경사하강법을 수행하는 단계는,
    상기 경사하강법을 다수의 스레드에서 병렬적으로 수행하는 것을 특징으로 하는, 데이터 분석 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 경사하강법을 수행하는 단계는,
    상기 입력텐서의 인덱스 중 하나를 임의로 선택하여 목적함수에 대한 그래디언트를 수행함에 있어서, 반복되는 연산의 결과를 중간 데이터로 정의하여 그래디언트를 수행하는 것을 특징으로 하는, 데이터 분석 방법.
  6. 제1항에 있어서,
    상기 인자 행렬에 기초하여, 관찰되지 않은 데이터를 예측하는 단계를 더 포함하는, 데이터 분석 방법.
  7. 제 1 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  8. 데이터 분석 장치에 의해 수행되며, 제 1 항에 기재된 방법을 수행하기 위해 기록매체에 저장된 컴퓨터 프로그램.
  9. 입력행렬-입력텐서 쌍 데이터를 입력 받아 저장하는 저장부; 및
    행렬-텐서 쌍 분해를 수행하여 상기 입력행렬 및 상기 입력텐서의 인자 행렬을 추출하는 제어부를 포함하고,
    상기 제어부는,
    상기 입력행렬 및 상기 입력텐서를 목적함수에 대입하여 경사하강법을 수행하되, 상기 목적함수를 최소화하는 인자 행렬을 추출하고,
    상기 경사하강법을 수행함에 있어서,
    상기 경사하강법을 다수의 스레드에서 병렬적으로 수행하되, 코어텐서에 대한 업데이트는 상기 다수의 스레드 중 하나에서만 수행하는 것을 특징으로 하는, 데이터 분석 장치.
KR1020170158496A 2017-11-24 2017-11-24 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치 KR102086043B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170158496A KR102086043B1 (ko) 2017-11-24 2017-11-24 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170158496A KR102086043B1 (ko) 2017-11-24 2017-11-24 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치

Publications (2)

Publication Number Publication Date
KR20190060364A KR20190060364A (ko) 2019-06-03
KR102086043B1 true KR102086043B1 (ko) 2020-03-06

Family

ID=66849234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170158496A KR102086043B1 (ko) 2017-11-24 2017-11-24 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치

Country Status (1)

Country Link
KR (1) KR102086043B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102595098B1 (ko) * 2021-07-30 2023-10-26 서울대학교산학협력단 텐서 분석 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160004664A1 (en) * 2014-07-02 2016-01-07 Xerox Corporation Binary tensor factorization
US20170026630A1 (en) 2015-07-20 2017-01-26 Nokia Technologies Oy Method, apparatus, and computer program product for robust image registration based on deep sparse representation
KR101789078B1 (ko) * 2017-02-16 2017-10-23 전남대학교산학협력단 고차원 시계열 모델링을 위한 은닉 특징 추출 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635283B1 (ko) * 2014-12-02 2016-07-08 포항공과대학교 산학협력단 행렬 분해 모델 기반 데이터 분석 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160004664A1 (en) * 2014-07-02 2016-01-07 Xerox Corporation Binary tensor factorization
US20170026630A1 (en) 2015-07-20 2017-01-26 Nokia Technologies Oy Method, apparatus, and computer program product for robust image registration based on deep sparse representation
KR101789078B1 (ko) * 2017-02-16 2017-10-23 전남대학교산학협력단 고차원 시계열 모델링을 위한 은닉 특징 추출 시스템 및 방법

Also Published As

Publication number Publication date
KR20190060364A (ko) 2019-06-03

Similar Documents

Publication Publication Date Title
KR102277172B1 (ko) 인공 신경망 선택 장치 및 방법
CN107122327B (zh) 一种利用训练数据训练模型的方法和训练系统
KR102113093B1 (ko) 딥 뉴럴 네트워크를 위한 gpu 메모리 관리 방법 및 그를 수행하는 연산 장치
US10705935B2 (en) Generating job alert
US9626631B2 (en) Analysis device, analysis method, and program
US9558852B2 (en) Method and apparatus for defect repair in NAND memory device
KR102415214B1 (ko) 이상치를 고려한 뉴럴네트워크 가속 방법 및 장치
US10846298B2 (en) Record profiling for dataset sampling
JP7411758B2 (ja) 残基固有の分子構造特徴を用いた分子変異体の分子特性の予測
US11620537B2 (en) Optimizing gradient boosting feature selection
KR102034661B1 (ko) 뉴럴네트워크를 위한 데이터 양자화 방법 및 장치
JP6381962B2 (ja) シミュレーションシステム及び方法と該システムを含むコンピュータシステム
KR102034659B1 (ko) 컨볼루션 뉴럴 네트워크를 위한 하드웨어 가속기 및 컨볼루션 연산량 감소 방법
KR102086043B1 (ko) 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치
KR102153161B1 (ko) 확률 그래프 기반의 서열 데이터 연관성 학습 방법 및 시스템
US20210110198A1 (en) Methods, apparatus, and articles of manufacture for interactive image segmentation
US20200327392A1 (en) Methods, systems, articles of manufacture, and apparatus to optimize layers of a machine learning model for a target hardware platform
KR102206843B1 (ko) 딥러닝 네트워크를 이용하여 복수의 이미지들로부터 이야기를 생성하기 위한 방법 및 장치
KR102116395B1 (ko) 애플리케이션 테스트 방법 및 장치
KR102228196B1 (ko) 기초 메타학습장치에 대한 앙상블가중치를 결정하는 방법 및 장치
CN115470190A (zh) 一种多存储池数据分类存储方法、系统与电子设备
JP2016042322A (ja) データ分析装置、分析方法とそのプログラム
KR102119509B1 (ko) 안정적인 실행을 보장하는 OpenCL 가상화 실행환경 제공 방법 및 장치
KR102469374B1 (ko) 시간 연속성을 고려한 텐서 분해 방법 및 그 장치
JP7010403B1 (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