KR102595098B1 - 텐서 분석 장치 및 방법 - Google Patents

텐서 분석 장치 및 방법 Download PDF

Info

Publication number
KR102595098B1
KR102595098B1 KR1020210100988A KR20210100988A KR102595098B1 KR 102595098 B1 KR102595098 B1 KR 102595098B1 KR 1020210100988 A KR1020210100988 A KR 1020210100988A KR 20210100988 A KR20210100988 A KR 20210100988A KR 102595098 B1 KR102595098 B1 KR 102595098B1
Authority
KR
South Korea
Prior art keywords
tensor
block
tucker
time range
result
Prior art date
Application number
KR1020210100988A
Other languages
English (en)
Other versions
KR20230018928A (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 KR1020210100988A priority Critical patent/KR102595098B1/ko
Publication of KR20230018928A publication Critical patent/KR20230018928A/ko
Application granted granted Critical
Publication of KR102595098B1 publication Critical patent/KR102595098B1/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
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • 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/15Correlation function computation including computation of convolution operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

텐서 분석 장치 및 검지 방법을 개시한다. 텐서 분석 장치는, 데이터를 입력 받고, 이를 연산 처리한 결과를 출력하기 위한 입출력부; 텐서 분석 방법을 수행하기 위한 프로그램이 저장되는 저장부; 및 적어도 하나의 프로세스를 포함하며, 상기 프로그램을 실행시킴으로써 상기 입출력부를 통해 수신된 입력 텐서를 분석하는 제어부;를 포함하고, 상기 제어부는, 상기 입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 블록 텐서로 생성하고, 상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하며, 시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하는 것을 특징으로 한다.

Description

텐서 분석 장치 및 방법{APPARATUS AND METHOD FOR TENSOR ANALYSIS}
본 명세서에서 개시되는 실시예들은 텐서 분석 장치 및 방법에 관한 것으로, 더욱 상세하게는, 임의의 시간 범위와 시간 차원을 갖는 밀도 높은 텐서가 주어졌을 때, 사용자가 요청하는 시간 범위에 대한 텐서의 분석을 효율적으로 수행할 수 있는 텐서 분석 장치 및 방법에 관한 것이다.
최근 다양한 산업에서 밀도 높은 다차원 데이터들이 생성되고 있다. 예컨대, 주식 데이터, 기후 데이터, 비디오 데이터, 센서 데이터와 같은 데이터들이 밀도 높은 텐서로 표현되고 있다.
이처럼, 밀도 높은 텐서들은 그 크기가 계속 커짐에 따라 크기가 매우 큰 텐서를 효율적으로 처리하는 것은 필수적이다. 특히, 사용자에 따라 분석하고자 하는 시간 범위는 다양할 수 있는데, 각 사용자의 요구사항에 맞추어 효율적으로 주어진 밀도 높은 데이터를 분석하는 방법이 필요하다. 이때, 밀도 높은 데이터를 분석하는 방법 중에 하나로 터커 분해 기술(Tucker decomposition)이 있다. 터커 분해는 주어진 텐서를 각 축의 요인행렬과 관계 간의 강도를 표현하는 코어 텐서로 분해하는데, 고차원의 텐서를 저차원 요인행렬과 코어 텐서로 표현함으로써 텐서 데이터 내에 숨겨진 요인들을 파악할 수 있다. 하지만, 종래의 터커 분해는 주어진 전체 텐서에 대해 한 번만 분해한다. 따라서, 임의 시간 범위가 주어지고 해당 시간 범위에 포함되는 부분 텐서(sub-tensor)를 분석하기 위해서는, 시간 범위가 주어질 때마다 시간 범위에 해당되는 부분 텐서로부터 터커 분해를 수행해야한다. 이처럼, 시간 범위가 주어질 때마다 시간 범위에 포함되는 텐서를 분석하기 위해 터커 분해하는 것은, 많은 계산 시간 및 메모리 사용량을 필요로 한다. 즉, 종래 기술에 따른 터커 분해를 이용하여 텐서를 분석하는 경우, 다양한 시간 범위가 주어질 때, 이를 처리하는데 비효율적이다.
따라서, 다양한 시간 범위에 대한 효율적인 분석을 수행할 수 있는 텐서 분석 기술이 필요하다.
한국공개특허 제10-2019-0060600호(2019.06.03. 공고)
본 명세서에서 개시되는 실시예들은, 임의의 시간 범위와 시간 차원을 갖는 밀도 높은 텐서가 주어졌을 때, 사용자가 요청하는 시간 범위에 대한 텐서의 분석을 효율적으로 수행할 수 있는 텐서 분석 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 일 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 텐서 분석 장치는 데이터를 입력 받고, 이를 연산 처리한 결과를 출력하기 위한 입출력부; 텐서 분석 방법을 수행하기 위한 프로그램이 저장되는 저장부; 및 적어도 하나의 프로세스를 포함하며, 상기 프로그램을 실행시킴으로써 상기 입출력부를 통해 수신된 입력 텐서를 분석하는 제어부;를 포함하고, 상기 제어부는, 상기 입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 블록 텐서로 생성하고, 상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하며, 시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하는 것을 특징으로 한다.
다른 실시예에 따르면, 텐서 분석 장치에서의 텐서 분석 방법은, 입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 블록 텐서로 생성하는 단계; 상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하는 단계; 및 시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하는 단계;를 포함한다.
또 다른 실시예에 따르면, 기록매체는, 텐서 분석 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체이다.
또 다른 실시예에 따르면, 컴퓨터 프로그램은, 텐서 분석 장치에 의해 수행되며, 텐서 분석 방법을 수행하기 위해 기록 매체에 저장된 컴퓨터 프로그램이다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 다양한 시간 범위를 포함하는 쿼리에 대한 응답을 빠르고 정확하게 처리할 수 있는 효과가 있다.
개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이하, 첨부되는 도면들은 본 명세서에 개시되는 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용들과 함께 본 명세서에 개시되는 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 명세서에 개시되는 내용은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 일 실시예에 따른 텐서 분석 장치의 기능 블록도이다.
도 2는 일 실시예에 따른 전처리 단계를 설명한 도면이다.
도 3은 일 실시예에 따른 인자행렬의 조정과 분리를 설명한 도면이다.
도 4는 일 실시예에 따른 텐서 분석 장치에서의 텐서 분석 방법의 흐름도이다.
아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.
이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.
다만 이를 설명하기에 앞서, 아래에서 사용되는 용어들의 의미를 먼저 정의한다.
아래의 표 1은 일 실시예에서 사용되는 용어들을 정의한 것이다.
는 다양한 시간 범위를 포함하는 시간 텐서로, 입력 텐서를 의미할 수 있다. 의 n-번째 모드의 차원이다. 는 블록 사이즈이다. 는 시간 범위 쿼리의 시작과 끝 점이다. 는 쿼리의 시간 범위이다. 는 i-번째 블록텐서이다. 는 i-번째 블록텐서의 k-번째 인자 행렬이다. 는 i-번째 블록텐서의 코어 텐서이다. 는 시간 범위 에서 획득된 텐서이다. 는 시간 범위 의 k-번째 인자행렬이다. 는 시간 범위 의 코어 텐서이다. 는 ts에 따른 블록텐서의 인덱스이다. 는 te에 따른 블록텐서의 인덱스이다. 는 크로넥커 곱이다. 는 n-모드 곱이다.
텐서(tensor)는 다차원 데이터를 표현하기 위한 다차원 배열(multi-dimensional array)일 수 있으며, 각 차원(dimension)을 모드라고 한다. 이때, 각 모드의 길이를 차원이라고 하며, 로 표시될 수 있다. 여기서, 모드(mode)란 텐서의 각 차원을 의미한다. 본 명세서에서 벡터, 행렬 및 N-모드 텐서는 각각 굵은 소문자(예컨대, a)자, 굵은 대문자(예컨대, A) 및 굵은 볼드 오일러 스크립트 대문자()로 표시할 수 있다. 텐서의 주요 연산에는 프로베니우스 놈(Frobenius norm), 크로네커 곱(Kronecker product), 모드-n 허가(mode-n matricization) 및 n-모드 곱(n-mode product)이 있을 수 있다.
터커 분해(Tucker decomposition)는 텐서로 표현되는 다차원 데이터를 분석하는 기법 중 하나일 수 있으며, 주어진 텐서를 인자행렬들(factor matrics) 및 코어 텐서(core tensor)로 분해함으로써 텐서에 숨겨진 의미와 패턴을 찾을 수 있도록 하는 기법이다. 다시 말해, 터커 분해는 N차원 텐서 를 코어 텐서 로 변환하고, 에 대한 인자행렬 로 변환한다. 이때, 인자행렬 는 열 직교(column orthogonal) 특성을 갖고, 코어 텐서 는 작고 조밀한 텐서이다. 각 인자행렬은 의 n번째 모드의 잠재 기능을 나타내며, 코어 텐서의 각 요소는 인자행렬의 열로 구성된 관계의 가중치일 수 있다. 예컨대, 텐서 가 주어지면, 터커 분해의 목표는 아래의 수학식 1과 같이 을 최소화하여 인자행렬과 코어 텐서를 얻는 것이다.
여기서, 은 N차원 텐서의 모드-n 행렬화된 버전을 나타내고, 은 코어 텐서의 모드-n 행렬화된 버전을 나타내며, 에 대해 내림차순으로 의 전체 크로네커 곱(Kronecker product)을 수행함을 나타낸다.
터커 분해에 대한 일반적인 접근 방식 중 하나인 ALS(Alternating Least Square)알고리즘은 다른 모드의 모든 인자 행렬을 수정하면서 모드의 인자행렬을 반복적으로 업데이트한다. ALS 알고리즘은 아래 표 1과 같이 표현될 수 있다. 각 인자행렬 를 업데이트 하기 위해 주요 연산은 입력 텐서 에 대한 인자행렬 간의 n-모드 곱을 계산하는 것으로 이는 아래 표 2의 4행에 표시된 바와 같다.
한편, 지배적인 연산의 모드-n 행렬화된 버전인 을 계산하는데는 시간이 걸릴 수 있다. 여기서, 의 모드 n 측정된 버전이다.
위에 정의한 용어 이외에 설명이 필요한 용어는 아래에서 각각 따로 설명하기로 한다.
도 1은 일 실시예에 따른 텐서 분석 장치의 기능 블록도이다.
도 1을 참조하면, 일 실시예에 따른 텐서 분석 장치(100)는 입출력부(110), 저장부(120) 및 제어부(130)를 포함한다.
입출력부(110)는 사용자로부터 입력을 수신하기 위한 입력부와 작업의 수행결과 또는 텐서 분석 장치(100)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 즉, 입출력부(110)는 데이터를 입력받고, 이를 연산 처리한 결과를 출력하기 위한 구성이다. 실시예에 따른 텐서 분석 장치(100)는 입출력부(110)를 통해 입력 텐서 및 입력 텐서의 분석 요청 등을 수신할 수 있다.
저장부(120)는 파일 및 프로그램이 저장될 수 있는 구성으로서, 다양한 종류의 메모리를 통해 구성될 수 있다. 특히, 저장부(120)에는 후술하는 제어부(130)가 이하에서 제시되는 알고리즘에 따라 텐서 분석을 위한 연산을 수행할 수 있도록 하는 데이터 및 프로그램이 저장될 수 있다.
제어부(130)는 CPU, 아두이노 등과 같은 적어도 하나의 프로세서를 포함하는 구성으로서, 텐서 분석 장치(100)의 전체적인 동작을 제어할 수 있다. 즉, 제어부(130)는 텐서 분석을 위한 동작을 수행하도록 텐서 분석 장치(100)에 포함된 다른 구성들을 제어할 수 있다. 제어부(130)는 저장부(120)에 저장된 프로그램을 실행함으로써 이하에서 제시되는 알고리즘에 따라 텐서를 분석하기 위한 연산을 수행할 수 있다. 제어부(130)가 텐서를 분석하기 위한 연산을 수행하는 방법에 대해서는 후술하기로 한다.
이하에서는 제어부(130)가 저장부(120)에 저장된 프로그램을 실행시킴으로써 일 실시예에 따른 텐서 분석 방법을 수행하는 과정에 대해 상세히 설명하기로 한다.
제어부(130)는 이하에서 설명하는 줌-터커(Zoom-Tucker) 기법에 따라 텐서 분석을 수행할 수 있다.
제어부(130)는 입력 텐서를 시간 차원으로 분할하여 다수 개의 블록텐서로 생성하고, 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성한다. 이때, 블록 텐서를 터커 분해하는 것은 코어 텐서와 인자행렬로 분해하여 터커 결과를 생성하는 것이고, 이때, 터커 결과는 저장부(120)에 저장되어 활용될 수 있다. 이후, 제어부(130)는 시간 범위를 포함하는 쿼리가 입력될 경우, 시간 범위에 포함되는 블록 텐서의 인자행렬에서 상기 시간 범위에 포함되지 않는 행들을 제거하고, 행이 제거된 인자행렬과 코어 텐서를 포함하는 블록 텐서를 업데이트하여, 업데이트된 블록 텐서를 기초로 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산할 수 있다. 여기서, 제어부(130)는 QR 분해(QR decomposition)를 통해 블록 텐서를 업데이트할 수 있으며, 터커 분해의 결과는 ALS 알고리즘을 사용하여 계산할 수 있다. 한편, QR 분해는 공지된 기술이므로, 본 실시예에서 자세한 설명은 생략하기로 한다. 보다 자세하게, 제어부(130)는 행이 제거된 인자행렬과 코어 텐서를 포함하는 블록 텐서를 QR 분해를 통해 해당 인자행렬과 첫번째 혹은 마지막 블록텐서의 코어텐서를 업데이트한다.
한편, 본 실시예에 따른 줌-터커(Zoom-Tucker)는 다양한 시간 범위에 대한 시간 텐서(temporal tensor)를 분석하는 빠르고 메모리 효율적인 터커 분해 방법일 수 있다. 줌-터커를 사용하여 텐서를 분석하면, 시간 범위에 대한 축소 또는 확대가 가능하여 전역 패턴을 검색할 수 있다. 일 실시예에 따른 제어부(130)가 줌-터커를 이용하여 텐서를 분석하는 방법은 크게 전처리 단계(Preprocessing Phase)와 쿼리 단계(Query Phase)의 두 단계로 구성될 수 있다. 이하, 제어부(130)에 의해 수행되는 전처리 단계와 쿼리 단계에 대해 상세히 설명하기로 한다.
(1) 전처리 단계(Preprocessing Phase)
일 실시예에 따른 제어부는 전처리 단계를 통해 블록 구조를 활용하여 효율적인 쿼리 단계를 달성하고, 로컬 패턴 정보를 캡쳐할 수 있다. 로컬 패턴 정보는 주어진 텐서를 시간 차원을 따라 분할하여 캡쳐할 수 있으며, 터커 분해를 수행하여 각 단계 t에서 재구성 오차를 측정할 수 있다. 이때, 재구성 오차는 로 정의될 수 있으며, 여기서, 는 각 시간 단계 t에서 얻은 하위 텐서이고, 는 터커 결과에서 재구성된 시간 단계 t의 하위 텐서이다.
전처리 단계에서, 제어부(130)는 입력 텐서를 시간 차원(time dimension)을 따라 분할하여 하위 텐서(sub-tensor)를 생성하고, 각 하위 텐서에 대해 터커 분해를 수행할 수 있다. 이때, 입력 텐서는 다양한 시간 범위가 포함된 시간 텐서(temporal tensor)일 수 있으며, 하위 텐서는 블록화된 텐서일 수 있다. 본 실시예를 설명함에 있어서, 시간 텐서(temporal tensor)는 입력 텐서로, 하위 텐서는 블록 텐서로 명명될 수 있다. 한편, 후술하는 쿼리 단계의 효율적인 진행을 위해, 상술한 하위 텐서에 대한 터커 분해 결과는 저장부(120)에 저장되어 제어부(130)가 쿼리 단계를 수행함에 있어 활용될 수 있다.
일 실시예에 따른 전처리 단계에서 수행되는 알고리즘은 아래 표 3에 표시된 알고리즘 1과 같다. 한편, 일 실시예에 따른 전처리 단계는 도 2에 도시된 바와 같다.
시간 모드(temporal mode)가 마지막 모드라고 가정하면, 입력 텐서()를 i = 1, ..., 에 대한 블록텐서(temporal block tensors)()로 표현(표 3의 1, 2 행 참조)할 수 있다. 여기서 b는 블록 크기이고, IN은 시간 차원의 치수이다.
이후, 각 블록 텐서()에 대해 터커 분해를 수행(표 3의 4 행 참조)하고, 각 인자행렬()을 세트 에 저장하고, 코어 텐서 를 세트 에 저장한다(표 3의 5, 6 행 참조).
이처럼, 상술한 전처리 단계가 수행될 경우, 입력텐서에 비해 크기가 작은 블록텐서의 생성으로 공간 비용을 절감하고, 후술하는 쿼리 단계에서 작업의 수와 메모리 요구 사항을 줄일 수 있으며, 로컬 정보를 캡쳐할 수 있다. 즉, 전처리 단계를 수행하여 효율적인 쿼리 단계가 진행될 수 있다. 또한, 전처리 단계에서 터커 분해를 수행함에 따라, 후술하는 쿼리 단계에서 혼합 행렬 곱셈(mixing matrix multiplication)과 크로네커 곱(Kronecker product)을 혼합하는데 적용할 수 있는 혼합 곱 속성(mixed product property)을 활용하도록 설정할 수 있다. 한편 이와 같은 속성을 활용하는 방법은 이하 쿼리 단계에서 후술하기로 한다.
(2) 쿼리 단계(Query Phase)
일 실시예에 따른 쿼리 단계는 상술한 전처리 단계에서의 블록 결과를 정교하게 분리하고 계산 순서를 신중하게 결정하여 계산 비용과 공간 비용을 절약할 수 있다.
쿼리 단계에서, 제어부(130)는 상술한 전처리 단계에서 생성된 블록 텐서에서 시간 범위에 포함되지 않는 블록 텐서의 나머지 부분을 제거하여 조정하고, 상술한 시간 범위에 대한 터커 분해 결과의 계산을 수행할 수 있다. 즉, 쿼리 단계를 수행함에 따라, 시간 범위 가 지정되었을 때, 터커 분해 결과를 효율적으로 계산할 수 있다.
일 실시예에 따른 쿼리 단계에서 수행되는 알고리즘은 아래 표 4에 표시된 알고리즘 2와 같다.
일 실시예에 따른 쿼리 단계는 아래와 같은 단계에 걸쳐 수행될 수 있다.
[1단계] 먼저, 제어부(130)는 시간 범위 가 주어지면, 에 대한 블록텐서(temporal block tensors) 의 터커 결과를 저장부(120)에서 읽어들 일 수 있다. 이때, 터커 결과는 인자행렬 및 코어 텐서 일 수 있다. 한편, 는 각각 ts 및 te를 포함하는 첫 번째 및 마지막 블록 텐서(temporal block tensors)의 인덱스일 수 있다.
[2단계] 이후, 제어부(130)는 1단계에서 얻어진 터커 결과를 범위에 맞게 조정한다. 즉, 의 터커 결과는 일부가 주어진 시간 범위 내에 있지 않을 수 있으므로, 주어진 시간 범위에 맞게 조정하는 것이다. 예를 들어, 의 인자행렬 의 인자행렬 는 도 3의 (a)에 도시된 바와 같이 시간 범위에 포함되지 않은 행을 포함할 수 있다. 이때, 주어진 시간 범위에 맞추기 위해 시간 범위에 포함되지 않은 인자행렬의 행을 제거하고, 의 터커 결과를 조정할 수 있다.
한편, 상술한 표 4의 알고리즘에 맞춰, 1단계에서 얻어진 터커 결과를 범위에 맞게 조정하는 것을 설명하면 다음과 같다. 먼저, p를 S 또는 E라고 가정하면, 시간 범위 내 의 시간 인자행렬 에 대해 제어부(130)는, 시간 범위에 포함되지 않은 의 행을 제거하여, 시간 인자 행렬 을 얻을 수 있다(표 4의 알고리즘의3행 참조). 다음으로 가 열 직교성을 유지하도록 QR분해를 수행한다(표 4의 알고리즘의 4행 참조). 이후, 의 인자행렬로 사용하고 코어텐서 를 업데이트 한다. 여기서, 은 QR 분해의 결과이다.
[3단계] 이후, 제어부(130)는 시간 범위에 포함된 에 대한 의 터커 결과가 주어지면, 터커 결과를 효율적으로 연결하여 인자행렬을 업데이트 한다.
한편, 비시간 모드(non-temporal modes)와 시간 모드(temporal mode)의 인자행렬을 효율적으로 업데이트하는 방법은 다음과 같을 수 있다.
<비시간 모드의 인자 행렬 업데이트>
전처리된 결과를 활용하여 블록을 블록별로 분리하고, 계산 순서를 결정하여 시간 및 공간 비용을 크게 줄일 수 있다. 를 업데이트 하기 위해 아래의 수학식 2가 사용될 수 있다.
여기서, n번째 모드의 i 번째 블록 행렬 이고, 일 수 있다. 는 블록텐서 의 k 번째 인자행렬이고, 의 코어텐서의 모드-n 행렬화된 버전이다. 는 다음과 같은 수학식 3의 인자행렬 의 부분행렬이다.
를 계산하기 위해 를 시간 차원을 따라 부분 행렬 로 나눌 수 있다(도 4의 (b) 참조). 의 크기는 이고, 의 크기는 각각 일 수 있다. 여기서, rS와 rE는 각각 ts와 te에 대해 제거된 행의 개수이다. 한편, 제어부(130)는 상술한 수학식 2를 이용하여 를 효율적으로 업데이트할 수 있다. 제어부(130)는 에 대해 를 독립적으로 계산하여 중간 데이터의 생성을 최소화하고 높은 계산 비용을 줄일 수 있다. 한편, 에 대한 , , , 를 각각 , 으로 대체하여 아래의 수학식 4를 기반으로 계산될 수 있다.
여기서, 는 각각 의 모드 n 행렬화 버전이다.
이후, 에 대한 의 결과를 합산하여 를 얻는다. 직교화를 위해 QR 분해 이후, 를 업데이트 한다.
<시간 모드의 인자 행렬 업데이트>
시간 모드의 인자 행렬 업데이트는 상술한 비시간 모드의 인자 행렬 업데이트를 기초로, 아래의 수학식 5를 계산하여 을 효율적으로 업데이트한다.
여기서, 에 대한 i 번째 행렬 이다. 의 k 번째 인자행렬이고, 의 코어 텐서의 모드 N 행렬화 버전이고, 와 같다. 에 대해 , 를 사용하여 를 얻을 수 있다. 제어부(130)는 에 대해 를 독립적으로 계산하여 를 효율적으로 업데이트한다. 한편, , , , 를 각각 , , , 로 대체하여 상술한 수학식 4를 기반으로 계산될 수 있다. 직교화를 위해 QR 분해 이후, 를 업데이트 한다.
[4단계] 이후, 제어부(130)는 상술한 3단계에서 업데이트된 인자행렬과 터커 결과를 사용하여 코어 텐서를 업데이트 한다. 제어부(130)는 인자행렬 을 사용하여 코어 텐서를 업데이트 한다. 제어부(130)는 다음의 수학식 7을 이용하여 를 효율적으로 업데이트 한다. 이후, 을 전처리된 결과로 대체하고, 블록을 분리함과 동시에 혼합 곱 속성으로 상기 식을 수정한다. 이때, 수정된 식은 아래의 수학식 6과 같다.
각 i에 대해, 제어부(130)는 를 수학식 1과 같이 n-모드 곱으로 변환한 후 계산한다. 이후, 제어부(130)는 결과를 합산하여 을 얻고, 이를 코어 텐서 로 재구성한다.
[5단계] 이후, 제어부(130)는 수렴할 때까지 상술한 3 단계와 4단계를 반복적으로 수행한다.
한편, 상술한 쿼리 단계에서는 중간 데이터의 생성을 최소화하면서 인자행렬과 코어텐서를 업데이트하기 위한 계산 비용을 최소화하는 것이 중요하다. 이를 위해, 전처리된 결과를 기반으로 를 정교하게 분리하고, 계산 순서를 신중하게 결정하는 것이 필요하다. 이하, 중간 데이터의 생성을 최소화하면서 인자행렬과 코어텐서를 업데이트하기 위해 계산 비용을 최소화하는 방법과 관련하여 보다 자세하게 설명하기로 한다.
쿼리 단계에서는, 입력된 시간 범위 쿼리 에 대해 인자행렬 과 코어텐서 를 얻는 것이 목표가 될 수 있는데, 본 실시예에 따른 제어부(130)는 ALS 알고리즘에서와 같이 인자행렬과 코어텐서를 교대로 업데이트한다. 이때, 인자행렬과 코어텐서를 업데이트 함에 앞서, 계산 비용을 최소화하는 것이 필요하다. 계산 비용의 최소화는 아래의 수학식 8을 통해 수행될 수 있는데, 시간 범위 에 대해 모드-n 측정 형식으로 최소화할 수 있다.
여기서, 는 시간 범위 에서 획득된 텐서의 모드 n 행렬화된 버전이며, 의 모드 n 행렬화된 버전이다. 한편, 수학식 8에서 n 번째 인자행렬에 대한 업데이트 규칙은 아래와 같을 수 있다.
[인자행렬에 대한 업데이트 규칙]
n번째 인자행렬을 제외한 모든 인자행렬을 수정할 때, n번째 인자행렬에 대한 다음 업데이트 규칙은 상술한 수학식 8을 통해 수행되는 계산 비용을 최소화하 수 있다.
한편, 일 실시예에 따르면, 제어부(130)는 상술한 전처리 단계에서 얻은 결과를 활용하여 아래의 수학식 9를 효율적으로 계산할 수 있다.
여기서, n번째 모드의 로 지정될 수 있다.
도 4는 일 실시예에 따른 텐서 분석 방법의 일 예에 따른 순서도이다.
도 4에 도시된 실시예에 따른 텐서 분석 방법은 도 2에 도시된 텐서 분석 장치에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도, 도 2에 도시된 텐서 분석 장치에 관하여 이상에서 기술한 내용은 도 4에 도시된 실시예에 따른 텐서 분석 방법에도 적용될 수 있다.
도 4를 참조하면, S410단계에서 텐서 분석 장치(100)는 입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 블록 텐서로 생성한다.
S420단계에서 텐서 분석 장치(100)는 S410 단계에서 생성된 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성한다. 이때, 터커 결과는 압축되어 저장될 수 있다.
S430단계에서 텐서 분석 장치(100)는 시간 범위를 포함하는 쿼리가 입력될 경우, 시간 범위에 포함되는 블록 텐서의 인자행렬에서 상기 시간 범위에 포함되지 않는 행들을 제거한다.
S440단계에서 텐서 분석 장치(100)는 행이 제거된 인자행렬과 코어 텐서를 포함하는 블록 텐서를 업데이트한다. 이때, 텐서 분석 장치(100)는 QR 분해(QR decomposition)를 통해 블록 텐서를 업데이트할 수 있다. 한편, 행이 제거된 인자행렬과 코어 텐서를 포함하는 블록 텐서는 수렴할때까지 반복적으로 업데이트 수행되는 것이 바람직하다.
S450 단계에서 텐서 분석 장치(100)는 업데이트된 블록 텐서를 기초로, 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산한다. 이때, 텐서 분석 장치(100)는 ALS 알고리즘을 사용하여 터커 분해의 결과를 계산할 수 있다.
이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.
뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.
한편, 본 명세서를 통해 설명된 일실시예에 따른 텐서 분석 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.
또한, 본 명세서를 통해 설명된 일실시예에 따른 텐서 분석 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.
따라서, 본 명세서를 통해 설명된 일실시예에 따른 텐서 분석 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 마더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.
여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.
또한, 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.
그리고, 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.
상술한 실시예들은 예시를 위한 것이며, 상술한 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술한 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 명세서를 통해 보호받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 텐서 분석 장치
110 : 입출력부
120 : 저장부
130 : 제어부

Claims (10)

  1. 데이터를 입력 받고, 이를 연산 처리한 결과를 출력하기 위한 입출력부;
    텐서 분석 방법을 수행하기 위한 프로그램이 저장되는 저장부; 및
    적어도 하나의 프로세스를 포함하며, 상기 프로그램을 실행시킴으로써 상기 입출력부를 통해 수신된 입력 텐서를 분석하는 제어부;를 포함하고,
    상기 제어부는,
    상기 입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 하위 텐서인 블록 텐서로 생성하고,
    상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하며,
    시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하되,
    상기 제어부는,
    시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하되,
    상기 시간 범위에 포함되는 블록 텐서의 인자행렬에서 상기 시간 범위에 포함되지 않는 행들을 제거하고,
    상기 행이 제거된 인자행렬을 포함하는 블록텐서들의 인자행렬과 코어 텐서를 업데이트하고,
    상기 업데이트된 블록 텐서를 기초로, 상기 시간 범위 쿼리에 대한 터커 분해 결과를 계산하는 것을 특징으로 하는 텐서 분석 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제어부는,
    상기 행이 제거된 인자행렬을 포함하는 블록 텐서들의 인자행렬과 코어 텐서를 수렴할 때까지 반복적으로 업데이트를 수행하는 것을 특징으로 하는 텐서 분석 장치.
  4. 제 1 항에 있어서,
    상기 제어부는,
    상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 생성된 터커 결과를 압축하여 저장하는 것을 특징으로 하는 텐서 분석 장치.
  5. 텐서 분석 장치에서의 텐서 분석 방법에 있어서,
    입력 텐서를 시간 차원을 따라 미리 설정된 크기로 나누어 다수 개의 하위 텐서인 블록 텐서로 생성하는 단계;
    상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하는 단계; 및
    시간 범위를 포함하는 쿼리가 입력될 경우, 상기 생성된 터커 결과를 기초로 상기 쿼리에 포함되는 시간 범위에 대한 터커 분해 결과를 계산하는 단계;를 포함하고,
    상기 터커 분해 결과를 계산하는 단계는,
    상기 시간 범위에 포함되는 블록 텐서의 인자행렬에서 상기 시간 범위에 포함되지 않는 행들을 제거하는 단계;
    상기 행이 제거된 인자행렬을 포함하는 블록텐서들의 인자행렬과 코어 텐서를 업데이트하는 단계; 및
    상기 업데이트된 블록 텐서를 기초로, 상기 시간 범위 쿼리에 대한 터커 분해 결과를 계산하는 단계;를 포함하는 텐서 분석 방법.
  6. 삭제
  7. 제 5 항에 있어서,
    상기 행이 제거된 인자행렬을 포함하는 블록텐서들의 인자행렬과 코어 텐서를 업데이트하는 단계는,
    상기 행이 제거된 인자행렬을 포함하는 블록 텐서들의 인자행렬과 코어 텐서를 수렴할 때까지 반복적으로 업데이트를 수행하는 단계를 포함하는 것을 특징으로 하는 텐서 분석 방법.
  8. 제 5 항에 있어서,
    상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 터커 결과를 생성하는 단계는,
    상기 블록 텐서를 코어 텐서와 복수 개의 인자행렬로 분해하여 생성된 터커 결과를 압축하여 저장하는 단계를 포함하는 것을 특징으로 하는 텐서 분석 방법.
  9. 제 5 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  10. 텐서 분석 장치에 의해 수행되며, 제 5 항에 기재된 방법을 수행하기 위해 기록 매체에 저장된 컴퓨터 프로그램.
KR1020210100988A 2021-07-30 2021-07-30 텐서 분석 장치 및 방법 KR102595098B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210100988A KR102595098B1 (ko) 2021-07-30 2021-07-30 텐서 분석 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210100988A KR102595098B1 (ko) 2021-07-30 2021-07-30 텐서 분석 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20230018928A KR20230018928A (ko) 2023-02-07
KR102595098B1 true KR102595098B1 (ko) 2023-10-26

Family

ID=85253100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210100988A KR102595098B1 (ko) 2021-07-30 2021-07-30 텐서 분석 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102595098B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190317965A1 (en) * 2019-06-28 2019-10-17 Intel Corporation Methods and apparatus to facilitate generation of database queries

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102086043B1 (ko) * 2017-11-24 2020-03-06 서울대학교산학협력단 희박 데이터를 위한 데이터 분석 방법 및 이를 수행하기 위한 장치
KR102027034B1 (ko) 2017-11-24 2019-09-30 서울대학교산학협력단 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190317965A1 (en) * 2019-06-28 2019-10-17 Intel Corporation Methods and apparatus to facilitate generation of database queries

Also Published As

Publication number Publication date
KR20230018928A (ko) 2023-02-07

Similar Documents

Publication Publication Date Title
Muja et al. Scalable nearest neighbor algorithms for high dimensional data
Muja et al. Flann-fast library for approximate nearest neighbors user manual
KR101696338B1 (ko) 컬럼-인덱스 데이터 포맷을 이용하여 빅데이터를 효율적으로 처리 및 분석하는 시스템 및 방법
US11194762B2 (en) Spatial indexing using resilient distributed datasets
JP4902863B2 (ja) テーブル分類装置
Jai-Andaloussi et al. Medical content based image retrieval by using the Hadoop framework
Peterka et al. End-to-end study of parallel volume rendering on the ibm blue gene/p
CN106570173B (zh) 一种基于Spark的高维稀疏文本数据聚类方法
KR20200068106A (ko) 딥러닝 신경망의 압축 방법 및 이를 수행하기 위한 장치
Deshai et al. Processing real world datasets using big data hadoop tools
Ban et al. GLSC: LSC superpixels at over 130 FPS
US10275512B2 (en) Information processing apparatus and index dimension extracting method
KR102595098B1 (ko) 텐서 분석 장치 및 방법
CN106484818B (zh) 一种基于Hadoop和HBase的层次聚类方法
KR101772333B1 (ko) 이종 NoSQL 데이터베이스들간의 지능적 조인 전략 제공 방법 및 시스템
De Vries et al. Parallel streaming signature em-tree: A clustering algorithm for web scale applications
Jun et al. Large-scale high-dimensional nearest neighbor search using flash memory with in-store processing
Silva et al. Cuda-based parallelization of power iteration clustering for large datasets
KR102027034B1 (ko) 병렬 처리를 통한 다차원 데이터 분석을 지원하는 장치 및 그 방법
CN113608724B (zh) 一种基于模型缓存实现的离线仓库实时交互方法与系统
Liu et al. On visualizing large multidimensional datasets with a multi-threaded radial approach
KR102447870B1 (ko) 텐서 분해 방법 및 이를 수행하기 위한 장치
Sun et al. Scalable volume visualization for big scientific data modeled by functional approximation
US20150088936A1 (en) Statistical Analysis using a graphics processing unit
KR20220123487A (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