KR20230060353A - 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법 - Google Patents

딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법 Download PDF

Info

Publication number
KR20230060353A
KR20230060353A KR1020210144998A KR20210144998A KR20230060353A KR 20230060353 A KR20230060353 A KR 20230060353A KR 1020210144998 A KR1020210144998 A KR 1020210144998A KR 20210144998 A KR20210144998 A KR 20210144998A KR 20230060353 A KR20230060353 A KR 20230060353A
Authority
KR
South Korea
Prior art keywords
learning
unit
parameter
framework
batch
Prior art date
Application number
KR1020210144998A
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 KR1020210144998A priority Critical patent/KR20230060353A/ko
Publication of KR20230060353A publication Critical patent/KR20230060353A/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0243Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults model based detection method, e.g. first-principles knowledge model
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0283Predictive maintenance, e.g. involving the monitoring of a system and, based on the monitoring results, taking decisions on the maintenance schedule of the monitored system; Estimating remaining useful life [RUL]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Abstract

본 발명은 쿼리 기반의 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법에 관한 것으로, 본 시스템은 사용자의 쿼리 요청에 정보 데이터베이스에 플러그인 형태로 연결된 딥러닝 프레임워크인 데이터베이스와 연동되는 딥러닝 프레임워크를 구비하는 데이터베이스 서버를 각각 구비하는 복수의 분산 서버, 및 상기 복수의 분산 서버를 관리하는 메인 서버를 포함하여, 딥러닝 학습을 분산하여 수행하고, 딥러닝 추론 쿼리 요청에 공작 기계의 고장을 진단하거나 예측하는 추론을 하는 장치 등에 관한 것이다.

Description

딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법{PREDITION APPARATUS FOR FAULT OF MACHINE TOOL USING DEEP LEARNING FRAMEWORK APPLICATED IN DATABASE, SYSTEM THEREWITH, AND METHOD THEREOF}
본 발명은 쿼리 기반의 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법에 관한 것으로, 사용자의 쿼리 요청에 정보 데이터베이스에 플러그인 형태로 연결된 딥러닝 프레임워크가 딥러닝 학습을 분산하여 수행하고, 딥러닝 추론 쿼리 요청에 공작 기계의 고장을 진단하거나 예측하는 추론을 하는 장치 등에 관한 것이다.
딥러닝 기술 기반의 지능을 제공하는 학습엔진을 생성하기 위해서는 딥 네트워크 설계, 학습 함수 설정, 파라미터 튜닝 등 여러 가지 어려운 난관이 있다. 이러한 문제들은 딥러닝 전문가가 아니면 쉽게 할 수 없어, 누구나 쉽게 딥러닝 기반 학습엔진을 갖기 어렵다.
또한 학습엔진을 생성할 때마다, 딥러닝의 공통적인 요소를 중복 사용하게 되어, 동일한 과정을 반복 수행해야 하는 문제가 있다.
또한, 딥러닝 훈련 시 하나의 서버나 장치를 이용하는 경우, 그 데이터의 양에 따라 훈련 시간이 많이 소요된다.
또한, 다양한 회전계 및 이송계 부품은 기계적인 운동을 하는 공작 기계의 부품들에서 발생하는 고장이나 노후는 손실이 많아져서, 공작 기계의 출력이 저하될 수 있다. 공작 기계의 고장을 예측할 수 있다면 생산성이 향상되고 안전 사고가 감소될 것이다. 공작 기계의 고장을 예측을 위해 기계 학습이나 딥러닝 기술이 이용될 수 있다
KR 10-2058124 B1
전술한 문제점을 해결하기 위한 본 발명의 목적은, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자에게 필요한 정보를 제공할 수 있도록 딥러닝 프레임워크가 정보 데이터베이스에 플러그인 형태로 연결되어, 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하는 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법을 제공하는데 있다.
또한, 딥러닝 훈련에 수행되는 시간을 분산 작업을 통해 단축시키며, 공작 기계의 고장을 진단하거나 예측하는 본 장치, 시스템 및 그 방법을 제공함에 있다.
본 발명의 일실시예에 따른 데이터베이스와 연동되는 딥러닝 프레임워크를 구비하는 데이터베이스 서버를 각각 구비하는 복수의 분산 서버, 및 상기 복수의 분산 서버를 관리하는 메인 서버를 포함하는 데이터베이스 연동 딥러닝 분산 훈련이 가능한 공작 기계 예지 보전 시스템으로서, 상기 데이터베이스 서버는 데이터베이스로서, 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및 상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 딥러닝을 수행하는 프레임워크부;를 포함하고, 상기 메인 서버는 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 훈련 쿼리를 입력받는 입출력부; 복수의 학습 모델 테이블 및 훈련용 데이터셋 테이블을 구비하는 메인 서버 저장부; 메인 서버 저장부에 저장된 복수의 학습 모델 테이블 중 상기 쿼리의 기능 및 상기 훈련용 데이터셋 테이블을 기초로 학습 모델 테이블을 선택하는 모델 선택 정책에 따라 제1 학습 모델 테이블을 선택하는 학습 모델 관리 모듈; 및 상기 훈련용 데이터셋의 배치 사이즈, 상기 제1 학습 모델 테이블, 및 상기 훈련용 데이터셋 테이블을 상기 복수의 분산 서버로 확산하는 메인 서버 제어부를 구비할 수 있다.
또한, 상기 복수의 분산 서버 중 제1 분산 서버는 상기 훈련용 데이터셋 테이블의 데이터 순서를 랜덤하게 변경한 후 상기 배치 사이즈에 맞게 분할하여 배치 데이터셋 테이블로 변환하는 제1 제어부; 및 상기 제1 학습 모델 테이블에 속한 아키텍처 테이블을 이용하여 모델 아키텍처를 구축하고, 상기 제1 학습 모델 테이블에 속한 학습 파라미터 테이블을 초기화한 후 상기 모델 아키텍처에 할당하여, 상기 배치 데이터셋 테이블의 복수의 미니 배치를 이용하여 딥러닝 훈련을 수행하는 제1 프레임워크부;를 포함할 수 있다.
또한, 상기 제1 프레임워크부는 상기 복수의 미니 배치 중 하나의 미니 배치에 대한 배치 학습이 종료되면 신 학습 파라미터를 도출하고, 상기 제1 제어부는 상기 신 학습 파라미터를 상기 복수의 분산 서버의 나머지 분산 서버로 확산하고, 상기 제1 분산 서버는 상기 신 학습 파라미터가 생성되면, 상기 신 학습 파라미터와 상기 나머지 분산 서버에서 확산된 적어도 하나의 학습 파라미터와 통합하여, 다음 배치 학습에 적용할 학습 파라미터로 업데이트하는 제1 통합부를 더 포함할 수 있다.
또한, 상기 제1 통합부는 할당된 모든 에포크가 종료되면, 상기 제1 프레임워크부에서 도출한 마지막 학습 파라미터와 상기 나머지 분산 서버에서 마지막으로 확산된 적어도 하나의 학습 파라미터을 통합하여 최종 학습 파라미터를 도출하고, 상기 제1 제어부는 훈련된 모델 아키텍처 및 상기 최종 학습 파라미터를 학습된 제2 학습 모델 테이블로 변환하여 상기 메인 서버로 전송할 수 있다.
또한, 상기 제 1 통합부는 상기 복수의 분산 서버가 주기적으로 배치 학습의 시작을 같이 하는 동기식 학습인 경우, 동일 주기에서 도출된 모든 학습 파라미터들을 주기별로 통합할 수 있다.
또한, 상기 제1 프레임워크부는 상기 복수의 분산 서버 각각에서 독립하여 배치 학습하는 비동기식 학습인 경우, 상기 제2 분산 서버의 배치 학습의 종료와 무관하게 다음 배치 학습을 진행할 수 있다.
또한, 상기 제1 통합부의 통합에 사용되는 상기 제2 분산 서버에서 확산된 학습 파라미터는 마지막으로 확산된 것이고, 상기 제1 통합부에서 통합에 사용되지 않은 것일 수 있다.
또한, 상기 제1 통합부는 통합시 모든 최신의 학습 파라미터에 대해 통합하는 모두 통합 정책, 및 적어도 하나의 타 학습 파라미터가 최신이면 통합하는 일부 통합 정책 중 어느 한 정책을 따를 수 있다.
또한, 상기 제1 제어부는 상기 제1 프레임워크부에서 매 배치 학습이 종료되면 신 학습 파라미터가 확산되는 즉시 공유 정책, 일정 시간이 경과되면 최신 학습 파라미터가 확산되는 시간 주기별 공유 정책, 및 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책 중 어느 한 정책에 따라 확산할 수 있다.
또한, 상기 입출력부는 공작 기계의 진동량, 소음량, 및 전력량을 측정한 측정값 리스트를 수신하고, 상기 측정값 리스트를 추론용 데이터셋 테이블로 변환하는 데이터셋 관리 모듈; 및 상기 메인 서버는 딥러닝을 수행하는 메인 서버 프레임워크부;를 더 포함하고, 상기 메인 서버 프레임워크부는 상기 메인 서버의 입출력부에서 상기 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 추론 쿼리를 입력받으면, 상기 제2 학습 모델 테이블 및 상기 추론용 데이터셋 테이블을 이용하여 딥러닝 추론할 수 있다.
또한, 상기 모델 선택 정책은 상기 쿼리 기능 및 상기 쿼리에 연관된 데이터셋 테이블을 기초로 학습 모델 테이블을 선택하는 것일 수 있다. 또한, 상기 모델 선택 정책은 상기 복수의 학습 모델 테이블의 기능들 중 상기 쿼리 기능과 유사하고, 상기 쿼리와 연관된 데이터셋 테이블과 유사한 테이터 구조를 가지는 학습 모델 테이블을 선택하는 것일 수 있다.
또한, 특정 형식의 학습 모델을 다른 형식의 학습 모델로 변환하는 변환부;를 더 포함할 수 있다. 상기 변환부는 외부 딥러닝 프레임워크에서 생성된 학습 모델을 상기 제2 학습 모델 테이블로 변환(임포트)할 수 있다. 상기 변환부는 상기 제1 학습 모델 테이블을 외부 딥러닝 프레임워크에 적합한 포맷으로 변환(엑스포트)할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스와 연동되는 딥러닝 프레임워크를 구비하는 데이터베이스 서버를 각각 구비하는 복수의 분산 서버, 및 상기 복수의 분산 서버를 관리하는 메인 서버를 포함하는 데이터베이스 연동 딥러닝 분산 훈련이 가능한 공작 기계 예지 보전 시스템의 딥러닝 분산 및 공작 기계 예지 방법으로서, 상기 데이터베이스 서버는 데이터베이스로서, 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및 상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 딥러닝을 수행하는 프레임워크부;를 포함하고, 상기 메인 서버에서, 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 훈련 쿼리를 입력받는 단계; 상기 메인 서버에서 단말기로부터 사용자의 훈련 쿼리를 입력받는 단계; 상기 메인 서버에서 상기 훈련 쿼리에 적합한 제1 학습 모델 테이블을 선택하는 단계; 및 상기 메인 서버에 저장된 훈련용 데이터셋 테이블, 상기 훈련용 데이터셋의 배치 사이즈, 및 상기 제1 학습 모델 테이블을 상기 복수의 분산 서버에 확산하는 단계;를 포함할 수 있다.
또한, 상기 복수의 분산 서버 중 제1 분산 서버에서, 상기 훈련용 데이터셋 테이블의 데이터 순서를 랜덤하게 변경한 후 상기 배치 사이즈에 맞게 분할하여 배치 데이터셋 테이블로 변환하는 단계; 및 상기 제1 분산 서버에서, 상기 제1 학습 모델 테이블에 속한 아키텍처 테이블을 이용하여 모델 아키텍처를 구축하고, 상기 제1 학습 모델 테이블에 속한 학습 파라미터 테이블을 초기화한 후 상기 모델 아키텍처에 할당하여, 상기 배치 데이터셋 테이블의 복수의 미니 배치를 이용하여 딥러닝 훈련을 수행하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 분산 서버에서, 상기 복수의 미니 배치 중 하나의 미니 배치에 대한 배치 학습이 종료되면 신 학습 파라미터를 도출하는 단계; 상기 제1 분산 서버에서, 상기 신 학습 파라미터를 상기 복수의 분산 서버의 나머지 분산 서버로 확산하는 단계; 상기 제1 분산 서버에서, 상기 신 학습 파라미터가 생성되면, 상기 신 학습 파라미터와 상기 나머지 분산 서버에서 확산된 적어도 하나의 학습 파라미터와 통합하는 단계; 및 상기 제1 분산 서버에서, 상기 통합한 학습 파라미터를 다음 배치 학습에 적용할 학습 파라미터로 업데이트하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 분산 서버에서, 할당된 모든 에포크가 종료되면, 상기 제1 분산 서버에서 도출한 마지막 학습 파라미터와 상기 나머지 분산 서버에서 마지막으로 확산된 적어도 하나의 학습 파라미터을 통합하여 최종 학습 파라미터를 도출하는 단계; 및 상기 제1 분산 서버에서, 훈련된 모델 아키텍처 및 상기 최종 학습 파라미터를 학습된 제2 학습 모델 테이블로 변환하여 상기 메인 서버로 전송하는 단계;를 더 포함할 수 있다.
또한, 상기 통합 단계는, 상기 복수의 분산 서버가 주기적으로 배치 학습의 시작을 같이 하는 동기식 학습인 경우, 동일 주기에서 도출된 모든 학습 파라미터들을 주기별로 통합하는 단계를 더 포함할 수 있다.
또한, 상기 복수의 분산 서버 각각에서 독립하여 배치 학습하는 비동기식 학습인 경우, 상기 제1 분산 서버에서 상기 제2 분산 서버의 배치 학습의 종료와 무관하게 다음 배치 학습을 진행하는 단계를 더 포함할 수 있다.
본 발명에 의하면, 쿼리 기반의 기계학습 기술을 이용함으로써 딥러닝 프레임워크가 데이터베이스에 플러그인 형태로 연결되어 사용자의 요청쿼리에 의해서 데이터베이스에 저장된 데이터를 사용하여 기계학습, 추론 등을 수행할 수 있어, 딥러닝에 관한 전문적 지식이 없는 사용자라도 쉽게 딥러닝을 이용할 수 있다.
따라서, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 필요한 정보를 용이하게 제공할 수 있다.
또한, 딥러닝 훈련 시간을 단축될 수 있으며, 본 장치를 이용하여 공작 기계의 고장을 진단 및 예측할 수 있다.
도 1은 본 발명의 일 실시예에 따른 쿼리 기반 딥러닝 추론 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 제어 구성도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 관리 구성도이다.
도 4는 본 발명의 일 실시예에 따른 데이터베이스 구조도이다.
도 5는 본 발명의 일 실시예에 따른 변환부의 제어 구성도이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 변환부의 변환 동작도이다.
도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다.
도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 팁러닝 프레임 워크 응용 데이터베이스 서버의 분산 훈련 시스템을 개략적으로 나타낸 구성도이다.
도 11은 도 10에 따른 서버의 구성도이다.
도 12는 메인서버의 데이터셋을 도시하고, 도 13은 분산서버의 데이터셋을 도시한다.
도 14는 도 10의 시스템의 훈련 방법에 대한 순서도이다.
도 15는 도 10의 시스템의 추론 방법에 대한 순서도이다.
도 16 내지 도 18은 비동기식 분산 서버의 각기 다른 실시예에 따른 신호 흐름도이다.
도 19 및 도 20은 동기식 분산 서버의 서로 다른 실시예에 따른 신호 흐름도이다.
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 도면 전체를 통하여 동일하거나 유사한 구성요소에 대해서는 동일한 도면 부호를 부여하였고, 동일한 도면 부호를 가지는 구성요소에 대한 자세한 설명은 전술한 구성요소에 대한 설명으로 대체되어 생략될 수 있다.
또한, 본 발명은 본 명세서에 표시된 실시예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적이지 않다. 본 명세서에 기술된 특정 형상, 구조, 기능, 및 특성의 일 실시예는 다른 실시예로 구현될 수 있다. 예를 들어, 제1 및 제2 실시예에서 언급되는 구성요소는 제1 및 제2 실시예의 모든 기능을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 쿼리 기반 딥러닝 추론 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다. 도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 제어 구성도이다. 도 3은 본 발명의 일 실시예에 따른 데이터 관리 구성도이다. 도 4는 본 발명의 일 실시예에 따른 데이터베이스 구조도이다. 도 5는 본 발명의 일 실시예에 따른 변환부의 제어 구성도이다. 도 6 및 도 7은 본 발명의 일 실시예에 따른 변환부의 변환 동작도이다. 도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다. 도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 순서도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 쿼리 기반의 기계학습 기술을 적용할 수 있다. 이를 위해, 쿼리 기반 딥러닝 추론 시스템(1)은 데이터베이스 서버(10) 및 단말기(20)를 포함할 수 있다.
여기서, 쿼리 기반의 딥러닝 기술은 사용자가 단말기(20)를 통해 데이터베이스(DB) 서버(10)로 딥러닝 등의 요청을 쿼리로 전송하면, 데이터베이스 서버(10)가 데이터베이스 서버(10)에 저장된 데이터를 이용하여 데이터베이스 서버(10)에 연결된 딥러닝 프레임워크가 기계학습, 딥러닝, 추론 등이 수행되는 기술을 의미할 수 있다.
딥러닝은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화를 시도하는 머신러닝(기계학습) 알고리즘의 집합일 수 있다. 머신러닝은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 의미할 수 있다. 인공지능은 인간의 지능이 갖고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 의미할 수 있다. 본 명세서에서 '딥러닝'은 딥러닝 기술 그 자체에 한정되지 않고, 기계학습이나 인공지능까지 확장되어 해석될 수 있다.
단말기(20)는 스마트 폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 및 플렉시블 단말기(Flexible Terminal) 중 어느 하나이거나 조합된 것일 수 있다. 단말기(20)는 서버 컴퓨터를 더 구비할 수 있다.
단말기(20)는 데이터베이스 서버(10)(이하, DB 서버)에 접속할 수 있다. 사용자나 관리자는 단말기(20)를 통해 DB 서버(10)에 쿼리를 보내거나 쿼리에 따른 결과를 받아볼 수 있다.
DB 서버(10)는 데이터베이스를 운용하거나, 데이터베이스와 연결되어 이를 제어하는 서버일 수 있다. DB 서버(10)는 통합 관리되는 데이터의 집합(데이터베이스) 및, 이를 관리하는 미들웨어가 포함된 개념을 의미할 수 있다. 데이터베이스 서버(10)는 데이터베이스 관리 시스템(DBMS)을 의미할 수 있다. 데이터베이스는 DB 서버(10) 또는 데이터베이스 관리 시스템(DBMS)의 의미로 사용될 수도 있다.
DB 서버(10)는 쿼리에 따라 작업하거나 쿼리에 따른 결과를 생성하는 모든 장치를 의미할 수 있다. 쿼리는 SQL(Structured Query Language) 문법을 따를 수 있다. DB 서버(10)의 데이터베이스는 관계형 데이터베이스인 것이 바람직하다.
단말기(20)는 딥러닝 추론 쿼리를 입력하고, DB 서버(10)로부터 쿼리에 대응된 추론 결과를 수신할 수 있다.
단말기(20)는 쿼리를 통해서 DB 서버(10)에 여러 기능들을 요청하고, DB 서버(10)로부터 결과를 응답 받을 수 있다. 단말기(20)는 쿼리를 통해서 DB 서버(10)에 저장된 데이터를 확인 또는 수정하거나, 새로운 데이터를 추가할 수 있다. 단말기(20)는 쿼리를 통해서 DB 서버(10)에 저장된 학습 모델을 확인 또는 수정하고 새로운 학습을 위한 학습 모델을 생성할 수 있다. 단말기(20)는 쿼리를 통해서 데이터와 학습 모델을 선택하고 파라미터를 설정하여 기계학습을 요청하고, 학습 중간 결과 및 최종 결과를 확인할 수 있다. 단말기(20)는 쿼리를 통해서 데이터와 기학습된 학습 모델을 선택하여 기계추론을 요청하고, 추론 결과를 확인할 수 있다.
도 2를 참조하면, DB 서버(10)는 제어부(100), 저장부(200), 프레임워크부(300), 변환부(360), 및 입출력부(370)를 포함할 수 있다.
입출력부(370)은 자체적인 인터페이스 장치일 수 있다. 입출력부(370)는 입력 장치와 출력 장치를 각각 별개로 구비할 수 있다.
출력 장치는 비디오 신호 및/또는 오디오 신호를 출력할 수 있다. 출력 장치는 모니터 등의 디스플레이 장치, 및/또는 스피커 등일 수 있다.
입력 장치는 유저가 DB 서버(10)의 동작 제어를 위해 입력하는 입력 데이터를 발생시킬 수 있다. 입력 장치는 키보드, 키 패드, 터치 패드, 마우스 등의 사용자 조작 장치를 구비할 수 있다.
입력 및 출력 장치는 터치 스크린과 같이 하나로 구현될 수 있다.
입력 장치는 오디오 신호 및/또는 비디오 신호를 DB 서버(10)에 입력할 수 있다. 입력 장치는 카메라와 마이크 등을 구비할 수 있다.
입력 장치는 센서 장치를 포함할 수 있다. 센서 장치는 온도 센서, 습도 센서, 밝기 센서, 먼지 센서, 압력 센서, 진동 센서, 전압 센서, 전류 센서, 평행 센서, 자기 센서, 조도 센서, 근접 센서, 거리 센서, 기울기 센서, 가스 센서, 열감지 센서, 불꽃 감지 센서, 금속 감지 센서, 홀 센서 등을 구비할 수 있다. 센서 장치는 온도, 습도, 밝기, 먼지(탄소), 압력, 진동, 전압, 전류, 평행, 자기, 조도, 근접, 거리, 기울기, 가스, 열감지, 불꽃 감지, 금속 감지, 회전량 데이터를 생성할 수 있다.
입출력부(370)는 DB 서버(10)에 연결되는 모든 외부기기와의 인터페이스 역할을 수행할 수 있다. 외부기기의 예로는, 유/무선 데이터 포트, 메모리 카드(Memory card) 등과 같은 카드의 소켓, 오디오 I/O(Input/Output) 단자, 비디오 I/O(Input/Output) 단자 등이 있을 수 있다. 입출력부(370)는 이러한 외부 기기로부터 데이터를 전송받거나 DB 서버(10) 내부의 데이터가 외부 기기로 전송되도록 할 수 있다.
입출력부(370)는 통신 기능을 수행할 수 있다. 통신은 블루투스(Bluetooth), RFID(Radio Frequency Identification), UWB(Ultra Wideband), 지그비(ZigBee) 등 중 적어도 하나의 근거리 통신 프로토콜이 이용될 수 있다. 통신은 인터넷 접속을 포함할 수 있다. 입출력부(370)는 통신을 통해 외부 장치 예를 들어, 단말기(20)와 데이터를 주고 받을 수 있다.
본 명세서에서 단말기(20)를 별도의 장치로 도시하였지만, 입출력부(370)는 단말기(20)의 기능을 수행할 수 있다. 즉, 단말기(20)는 입출력부(370)로 대체(생략)되어, 본 발명이 실시될 수 있다.
입출력부(370)는 사용자의 통신수단(단말기(2))과의 통신을 담당하며, 사용자의 다양한 형태의 접속수단인 통신장비 및 전산장비와의 통신프로토콜 및 네트워크상의 데이터 포멧을 제어할 수 있다.
데이터 포맷의 예로 ONNX(Open Neural Network exchange format), NNEF(Neural Network Exchange Format) 또는 CSV(Comma-separated values) 등이 있을 수 있다.
입출력부(370)는 사용자로부터 제어 명령이나 쿼리를 입력 받고, 사용자에게 결과를 제공하는 채널일 수 있다.
저장부(200)는 DB 서버(10)가 동작하는데 필요한 데이터와 프로그램 등을 저장할 수 있다. 저장부(200)는 제어부(110)의 처리 및 제어를 위한 프로그램이 저장될 수 있고, 입력되거나 출력되는 데이터들의 임시 저장을 위한 기능을 수행할 수 있다.
저장부(200)는 데이터를 데이터베이스로 저장하는 장치, 또는 데이터베이스를 그 자체를 의미할 수 있다.
저장부(200)는 작업수행 및 기 작업이 수행되었던 내역 및 사용자 등에 대한 정보를 저장할 수 있다. 저장부(200)는 외부에 별도로 구비되는 저장 장치 또는 외부 전산망에 구비되는 저장장치 등과의 접속을 통하여 정보 및/또는 데이터를 저장할 수 있다. 빅데이터의 특징을 갖는 딥러닝 결과를 분산저장하거나, 외부에 별도로 저장하여, 요청 시 호출하여 적용할 수 있다.
제어부(100)는 DB 서버(10)의 각 부의 동작을 제어하여 DB 서버(10)의 전반적인 제어 기능을 실행할 수 있다.
제어부(100)는 데이터베이스 내의 데이터를 접근하거나, 데이터를 관리하거나, 데이터를 테이블로 생성할 수 있다. 데이터 관리는 데이터를 조회, 수정, 및/또는 업로드 등을 의미할 수 있다.
제어부(100)는 사용자의 쿼리를 해석하고 실행하거나, 쿼리에 따른 작업이 수행되거나 결과를 제공하기 위한 모든 기능을 제어할 수 있다.
도 3 및 도 4를 참조하면, 제어부(100)는 데이터셋 관리 모듈(120), 학습 모델 관리 모듈(130), 및 결과 관리 모듈(160)을 구비할 수 있으며, 저장부(200)는 데이터셋(220), 학습 모델(230), 및 학습 결과(260)를 저장할 수 있다.
데이터셋 관리 모듈(120)에서 관리되는 데이터셋(220)은 학습 및 추론에 사용될 동일한 형식을 가진 정보 또는 데이터의 집합을 의미한다. 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 및 음성 등을 포함하며, 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.
데이터셋(220)으로 군집시킬 수 있는 데이터의 동일한 형식이라 함은 확장자를 기준으로 정의할 수 있다. 예로, 이미지 정보의 경우, 그 확장자가 이미지를 나타내는 확장자일 경우 모두 동일한 카테고리의 데이터셋으로 군집하게 되는 것이다.
여기서, 예를 위해 이미지 정보를 예를 들어 설명하고 있으나, 사용되는 데이터는 이미지뿐만 아니라 앞서 서술한 숫자, 문자, 이미지, 영상, 음성 등 기계 학습에 사용될 수 있는 모든 종류의 데이터가 될 수 있다.
데이터셋 관리 모듈(120)은 외부로부터 입력 받은 정보 또는 데이터(이하, '데이터')를 그 형식(예를 들어, 확장자)으로 동일한 데이터셋으로 군집시키거나, 데이터의 내용으로 분류할 수 있다. 데이터의 내용으로 분류되는 경우, 데이터셋 관리 모듈(120)은 동일한 데이터 형식으로 구분하는 데이터 분류 학습 모델을 이용할 수 있다. 데이터 분류 학습 모델은 DB 서버(10)에 저장되어 필요시 호출되어 이용될 수 있다.
데이터셋 관리 모듈(120)은 데이터셋(220)이 학습 모델(230)에 잘 적용되도록 데이터를 전처리할 수 있다. 데이터 전처리는 데이터를 학습 모델의 텐서(벡터)에 맞도록 변환할 수 있다. 데이터 전처리의 예로 단어를 딥러닝에 이용되는 사전의 인덱스 숫자로 변환하는 예가 있을 수 있다.
데이터셋 관리 모듈(120)은 제1 형식의 데이터로부터 제2 형식의 데이터로 변환할 수 있다. 데이터셋 관리 모듈(120)은 제2 형식의 데이터를 1 군(군집)의 데이터셋으로 관리할 수 있다. 예를 들어, 데이터셋 관리 모듈(120)은 영상 데이터를 프레임 별로 이미지를 추출하여 일군의 데이터셋으로 변환(decoding)할 수 있다. 데이터셋 관리 모듈(120)은 일련의 이미지를 영상으로 변환(encoding)할 수 있다. 일련의 이미지는 작업된 이미지일 수 있다. 즉, 데이터셋 관리 모듈(120)은 동영상 데이터를 일군의 이미지 데이터셋으로 변환하고, 작업 처리(모자이크)된 일군의 이미지 데이터셋을 영상으로 변환할 수 있다.
데이터셋 관리 모듈(120)은 동영상 스트리밍 서비스를 할 수 있다. 예를 들어, 데이터셋 관리 모듈(120)은 일련의 이미지로부터 인코딩하여 동영상 스트리밍 서비스하거나, 저장된 동영상 파일로부터 스트리밍 서비스할 수 있다.
데이터셋 관리 모듈(120)은 새로운 데이터셋을 생성할 때 새로운 테이블(데이터셋 테이블)을 생성하고, 데이터셋 테이블에서 데이터를 조회 또는 수정하거나 새로운 데이터를 추가할 수 있다.
데이터셋 관리 모듈(120)은 데이터베이스의 테이블에 접근하여 데이터를 조회할 수 있다. 데이터셋 관리 모듈(120)은 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 사용자에게 보여줄 수 있다. 데이터셋 관리 모듈(120)은 사용자에게 부여된 권한에 따라 데이터를 수정할 수 있는 수준을 제한할 수 있다. 데이터셋 관리 모듈(120)은 사용자로부터 수치데이터를 입력받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행할 수 있다. 데이터셋 관리 모듈(120)은 학습 데이터의 레이블을 작성할 수 있는 태깅기능을 제공할 수 있다.
본 명세서에서 데이터셋 테이블과 데이터셋은 서로 동일한 의미로 사용될 수 있다. 특히 관계형 데이터베이스에서 데이터셋은 데이터셋 테이블로 저장된 관계형 데이터 형식의 데이터 집합을 의미한다. 관계형 데이터 형식은 테이블 형식을 이용하여 데이터를 정의하고 설명하는 모델을 의미한다. 이는 후술하는 학습 모델과 학습 모델 테이블, 학습 결과와 학습 결과 테이블 등에서도 동일하게 적용될 수 있다. 다만 양자의 실체 및/또는 포맷은 달라질 수 있다.
학습 모델(Learning Model; LM) 관리 모듈(130)은 기계학습(딥러닝 등)에 사용되는 학습 모델 테이블(230)을 관리할 수 있다.
본 실시예에서 학습 모델 테이블(130)은 아키텍처 테이블 및 학습 파라미터 테이블을 구비할 수 있다. 아키텍처 테이블은 네트워크 테이블 및 하이퍼 파라미터 테이블을 구비할 수 있다.
학습 모델 테이블(230)은 프레임워크부(300)에서 이용하는 학습 모델에 대응될 수 있다.
본 실시예에서 학습 모델(학습 네트워크 모델)(230)은 인공지능 알고리즘 기반으로 데이터 셋에 기초하는 학습될 수 있는 판단 모델로서, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 본 판단 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다.
판단 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 뉴런의 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 본 판단 모델은 기계 학습(Machine Learning) 모델, 신경망 모델, 및/또는 딥러닝(Deep Learning) 모델을 구비할 수 있다.
학습 네트워크 모델은 ANN(Artificial Neural Network, 인공신경망) 모델, DNN(Deep Neural Network) 모델, CNN(Convolution Neural Network, 컨벌루션 신경망) 모델, 및 RNN(Recurrent Neural Network) 모델 등의 모델들 중 적어도 하나의 모델을 구현할 수 있다. 예시된 모델은 이에 한정되지 않는다. 예를 들어, LSTM(Long Short Term Memory Network), GRU(Gated Recurrent Units), GAN(Generative Adversarial Networks), SRGAN(Super-resolution GAN) 모델 등이 있을 수 있으며, 이러한 명칭에 한정되지 않는다.
일반적으로 학습 모델(230)은 아키텍처(architecture) 및 파라미터를 포함할 수 있다.
아키텍처(모델 아키텍처)는 기계학습 모델의 구조를 의미한다. 아키텍처는 학습 모델의 구조에 해당하는 층(layer)의 수, 유닛의 수, 레이어의 종류, 유닛이 연결되는 방법 등을 포함할 수 있다. 이를 아키텍처 구조로 표시할 수 있다.
아키텍처는 학습 모델 테이블의 아키텍처 테이블에 대응될 수 있다. 아키텍처의 구조는 네트워크 모델 또는 네트워크로 지칭될 수 있다. 아키텍처 구조는 학습 모델 테이블의 네트워크 테이블에 대응될 수 있다. 아키텍처는 아키텍처 구조에 하이퍼 파라미터가 할당된 것을 의미할 수 있다. 아키텍처를 구축하려면, 네트워크 테이블과 하이퍼 파라미터 테이블이 필요할 수 있다.
파라미터는 하이퍼 파라미터와 학습 파라미터를 구비할 수 있다.
하이퍼 파라미터는 입출력과 모델 내부를 정의하고, 학습률, 최적화 방법(학습 방법; 옵티마이저(optimzer)), 레이어의 종류, 입출력 크기, 계산에 필요한 파라미터 등을 구비할 수 있다. 하이퍼 파라미터는 아키텍처가 구현되도록 할 수 있다. 하이퍼 파라미터는 아키텍처의 일 구성요소로 작동될 수 있다. 하이퍼 파라미터는 휴리스틱 기반, 즉 사람이 직접 설정할 수 있다. 또한, 하이퍼 파라미터의 최적화는 별도의 옵티마이저 모듈로 구현될 수도 있다.
학습 파라미터는 웨이트(weight) 및/또는 바이어스(bias)를 구비할 수 있다. 웨이트는 입력된 데이터와 상호 작용에 사용되는 값으로, 모델 아키텍처에 상응하는 모델 웨이트가 존재할 수 있다. 학습 파라미터는 옵티마이저에 의해 값이 변화될 수 있다. 학습 파라미터는 단순히 '파라미터'라고 지칭될 수 있다.
옵티마이저는 학습 모델이 원하는 기능을 가지도록 학습 파라미터를 변화시킬 수 있다. 학습(딥러닝) 또는 훈련은 이러한 학습 파라미터의 변화를 의미할 수 있다. 옵티마이저는 프레임워크부(300)나 별도의 요소에 의해 구현될 수 있다.
하이퍼 파라미터 및 학습 파라미터는 상술한 하이퍼 파라미터 테이블 및 학습 파라미터 테이블과 대응될 수 있다.
학습 모델 관리 모듈(130)은 지원되는 레이어를 추가하고 레이어 파라미터(레이어의 종류, 입출력 크기, 계산에 필요한 파라미터)를 조정하여 새로운 네트워크 모델을 생성할 수 있다.
학습 모델 관리 모듈(130)은 기존에 작성된 네트워크 모델 리스트를 조회할 수 있다. 학습 모델 관리 모듈(130)은 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성할 수 있다. 이는 하이퍼 파라미터의 조정을 통해 구현될 수 있다. 이러한 일련이 작업들은 사용자의 쿼리에 의해 착수될 수 있다.
학습 모델 관리 모듈(130)은 네트워크 모델을 시각화하여 보여주는 기능을 제공할 수 있다. 이를 통해, 사용자는 히든 레이어의 구조를 쉽게 살펴볼 수 있다.
학습 모델(230)은 이외에 학습에 사용할 피드백 신호를 정의하는 손실 함수 및 학습 진행 방식을 결정하는 별도의 옵티마이저 모듈을 더 구비할 수 있다. 손실 함수 및 옵티마이저는 프레임워크부(300)에 구비될 수 있다.
학습 모델(230)은 데이터베이스에서 관계형 데이터 형식인 학습 모델 테이블 포맷으로 저장될 수 있다.
학습 모델의 기능의 예로, 사용자에 의해 입력된 텍스트를 인식하거나, 이미지/오디오/동영상 등에 포함된 음성이나 텍스트를 인식하거나, 인식된 음성이나 텍스트로 사용자의 의향을 분석하는 기능 등이 있을 수 있다.
학습 모델 관리 모듈(130)은 복수의 학습 모델 테이블 중 쿼리에 적합한 특정 학습 모델 테이블을 선택할 수 있다. 학습 모델 관리 모듈(130)은 쿼리의 내용 또는 모델 선택 정책 중 어느 하나에 의해 학습 모델 테이블(230)을 선택할 수 있다.
쿼리의 내용에 사용자가 지정한 특정 학습 모델이 있는 경우, 학습 모델 관리 모듈(130)은 해당 학습 모델 테이블을 선택한다. 예를 들어, 훈련 쿼리에 따라 학습된 학습 모델로 추론하라는 쿼리의 내용일 경우, 학습 모델 관리 모듈(130)은 해당 학습 모델 테이블을 선택하는 것이 바람직하다.
모델 선택 정책은 쿼리의 기능 및 쿼리에 연관된 데이터셋 테이블을 기초로 학습 모델 테이블을 선택하는 지침일 수 있다. 모델 선택 정책은 복수의 학습 모델 테이블의 기능들 중 상기 쿼리 기능과 유사하고, 상기 쿼리와 연관된 데이터셋 테이블과 유사한 테이터 구조를 가지는 학습 모델 테이블을 선택하는 것일 수 있다.
학습 모델의 주요 기술은 바이너리 분류, 다중 분류, 회귀 분석, 수치 예측, 시계열 예측, 감정 분석, 클러스터링, 비정상 탐지, 자원 축소, 강화 학습 등이 있을 수 있다. 모델 선택 정책에 따라, 학습 모델 관리 모듈(130)은 쿼리의 기능에 맞는 기술을 가지는 학습 모델 테이블을 선택할 수 있다.
도 4를 참조하면, 학습 모델 테이블은 네트워크 테이블(qml_network_t)을 구비할 수 있다. 아키텍처는 데이터베이스에서 관계형 데이터 형식인 네트워크 테이블(qml_network_t) 포맷으로 변환되어 저장될 수 있다. 네트워크 테이블(qml_network_t)은 학습 모델(230)의 아키텍처로 변환될 수 있다. 이는 변환부(360)에 의해 변환될 수 있다.
네트워크 테이블은 복수의 서브-네트워크 테이블(qml_s_network_t)을 구비할 수 있다. 예를 들어, Multi GPU(N 개)로 네트워크 모델을 학습하는 경우에 N 개의 서브-네트워크 테이블이 구비될 수 있다. 네트워크 모델을 추론하는 경우에 1개의 서브-네트워크 테이블이 구비될 수 있다.
네트워크 테이블 또는 서브-네트워크 테이블은 네트워크를 구성하는 레이어에 관한 복수의 레이어 테이블(qml_layer_t)을 구비할 수 있다. 학습 모델(230)의 아키텍처의 구조를 구성하는 레이어는 레이어 테이블(qml_layer_t)로 변환되어 저장될 수 있다. 레이어 테이블(qml_layer_t)은 학습 모델(230)의 레이어로 변환될 수 있다.
레이어 테이블(qml_layer_t)은 복수의 텐서(tensor) 테이블(qml_tensor_t)을 구비할 수 있다. 텐서 테이블은 NCHW 포맷으로 구성된 4차원 텐서일 수 있다. 텐서 테이블은 dtype, qml_shape_t, data, name 등이 구비될 수 있다. 텐서 테이블 및 학습 모델(230)의 텐서는 서로 변환될 수 있다.
학습 모델(230)의 파라미터는 파라미터 테이블로 저장될 수 있다. 학습 모델(230)의 파라미터와 파라미터 테이블은 서로 변환될 수 있다. 이는 변환부(360)에 의해 변환될 수 있다.
본 발명에서 미리 설계된 DB 스키마에 따라 모델 아키텍처와 모델 웨이트 등이 DB 테이블에 저장될 수 있다. 기설계된 DB 스키마는 서로 유사한 데이터셋 테이블과 학습 모델 테이블을 쉽게 분류할 수 있다. 이는 DB 서버(10)가 새로운 데이터셋을 입력 받으면, 저장되어 있는 관계형 데이터 형식의 학습 모델 중 유사한 학습 모델을 호출하여 새로운 데이터셋에 적용하게 할 수 있다.
예를 들어, '속성(attribute), 도메인(domain), 차수(degree), 튜플(tuple), 카리널리티(cardinality), 릴레이션(realtion), 키(key), 후보키(candidate key), 기본키(primary)' 등의 테이블의 구성요소의 외형인 차수, 내용인 속성 및 도메인 등의 유사도에 따라 입력된 데이터셋과 기저장된 학습 모델의 유사도를 정할 수 있다. 이러한 유사도 판단은 학습 모델 관리 모듈(130)이 할 수 있다.
이는 최초의 관계형 데이터 형식의 학습 모델이 생성되고 사용되어 데이터베이스에 저장된 후, 유사한 형식의 데이터셋이 입력되어 관계형 데이터 형식의 학습 모델을 생성해야 할 경우, 데이터베이스에 저장되어 있는 기존의 관계형 데이터 형식의 모델 중 유사도가 높은 모델을 검색하여 이를 호출한 후 적용할 수 있다. 이로 인해, 적합한 학습 모델의 생성 시간을 단축하고, 컴퓨팅 자원을 효율적으로 사용할 수 있다.
학습 모델 테이블은 구성요소가 관계형 데이터 형식으로 연결되어, 학습 모델 테이블은 사용자 또는 관리자가 작업 수행시 구성요소가 누락되지 않도록 가이드 역할을 할 수 있다
프레임워크부(300)는 데이터베이스 구조의 테이블로 저장된 요소들은 그대로 이용하거나, 프레임워크부(300)에서 사용하기 적합하도록 조작한 후 사용할 수 있다. 이러한 조작은 프레임워크부(300) 또는 변환부(360)에서 수행될 수 있다.
결과 관리 모듈(160)은 기계학습이 진행되는 동안 발생되는 각 레이어의 아웃풋, 중간 출력값, 파라미터 값, 계산이 진행되는 모델의 평가지표 값(딥러닝 함수의 학습 손실값), 및 기계추론 결과값 등의 학습 결과(260)를 데이터베이스에 저장하거나 호출하여 사용자가 확인할 수 있도록 관리할 수 있다.
저장부(200)는 데이터셋(220) 테이블, 학습 모델(230) 테이블, 및 학습 결과(260) 테이블 이외에 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 및 공통 테이블(Common Table)을 더 구비할 수 있다.
작업 테이블은 사용자 정보, 프로젝트의 상태, 로그 등을 포함할 수 있다. 공통 테이블은 레이어 타입, 오류 코드 등 룩업 테이블을 포함할 수 있다.
프로젝트 테이블은 학습 모델 테이블로부터 복사된 실제 학습 모델이나 추론을 진행할 프로젝트 정보가 저장될 수 있다. 프로젝트가 생성된 후 학습 모델 테이블과 별개의 구성을 가지게 되므로, 프로젝트에 사용된 기반 네트워크가 수정되더라도 기구축된 학습 모델에 영향이 없다.
저장부(200)는 개수가 많고 가변적인 데이터(입출력 데이터 및 가중치 정보)는 BLOB(Binary Large Object) 또는 text 타입으로 저장할 수 있다. 저장부(200)는 개수가 적고 가변적인 데이터(각 레이어 파라미터 등)는 레코드를 분할하여 저장할 수 있다.
제어부(100)는 기계학습(훈련) 및 기계추론에 사용된 모든 입출력 데이터가 저장되도록 하고, 기계학습 및 기계추론에 사용된 모델이 저장되도록 할 수 있다. 제어부(100)는 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공하여, 사용자 요청에 의한 기계학습을 수행할 수 있다.
프로시저는 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 네트워크 초기화(Init Network), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.
인서트 네트워크는 네트워크(아키텍처) 이름, 네트워크 타입, 데이터셋 이름, 옵티마이저 타입, 옵티마이저 파라미터, 학습률, 배치 크기, 학습 횟수, 출력 레이어 인덱스를 포함하는 네트워크 테이블을 생성할 수 있다.
인서트 레이어는 네트워크 아이디, 레이어 이름, 레이어 타입, 레이어 인덱스, 레이어 파라미터, 입력 레이어 인덱스를 포함하는 레이어 테이블을 등록할 수 있다.
메이크 프로젝트는 프로젝트 이름, 데이터셋 이름, 네트워크 이름, 학습 또는 추론 플래그, GPU 개수를 포함하는 프로젝트를 생성할 수 있다.
입력 데이터 로더는 사용자 입력의 선택(레이어 인덱스, 쿼리 타입(학습 테이블, 학습 데이터, 검증 테이블, 검증 데이터)에 따라 데이터를 입력할 수 있다.
네트워크 초기화는 네트워크 모델을 구성할 수 있다.
트레인은 프로젝트 아이디, 학습 세대 수, 배치 사이즈, 이어서 학습 여부, 저장 간격, 검증 간격, GPU 동기화 간격을 포함하는 학습을 시작할 수 있다.
모델 저장은 프로젝트 테이블의 네트워크 정보를 네트워크 테이블로 복사(프로젝트 이름, 네트워크 이름)할 수 있다.
테스트는 프로젝트 아이디, 모든 레이어의 결과 저장 여부 플래그를 포함하는 추론을 시작할 수 있다.
프레임워크부(300)는 다양한 기계학습 프레임워크 또는 딥러닝 프레임워크을 이용하여 기계학습을 수행할 수 있다.
프레임워크는 응용 프로그램을 개발하기 위한 여러 라이브러리나 모듈 등을 효율적으로 사용할 수 있도록 하나로 묶어 놓은 일종의 패키지일 수 있다. 개발자 또는 관리자는 이미 검증된 수많은 라이브러리와 사전 학습이 완료된 다양한 딥러닝 알고리즘을 프레임워크를 통해 빠르고 손쉽게 사용할 수 있다.
딥러닝 프레임워크는 TensoFlow, Torch/PyTorch, Deeplearing4j, CNTK(MICROSOFT COGNITIVE TOOLKIT), Keras, ONNX(Open Neural Network Exchange), MXNet, Caffe, QML(Quantum Machine Learning) 등이 있을 수 있다.
프레임워크부(300)는 DB 서버(10)에 플러그 인으로 설치된 딥러닝 프레임워크일 수 있다. 이는 데이터베이스 연동 프레임워크(딥러닝 프레임워크), 데이터베이스 응용 프레임워크(딥러닝 프레임워크)와 같이 표현될 수 있다.
프레임워크부(300)는 DB 서버(10)의 제어부(100)의 호출로 실행될 수 있다. 프레임워크부(300)는 호출될 때 제어부(100)로부터 각종 데이터를 인자로 받아 수행결과를 반환할 수 있다. 프레임워크부(300)는 관계형 데이터 포맷으로 정의된 네트워크 모델을 해석하여 프레임워크 내부에 네트워크를 구성할 수 있다. 이러한 해석은 변환부(360)에서 실행될 수도 있다.
프레임워크부(300)는 제어부(100)로부터 학습 파라미터와 학습 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크의 학습을 수행하고 학습결과를 반환할 수 있다. 프레임워크부(300)는 제어부(100)로부터 입력 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크를 이용하여 기계추론을 수행하고 결과를 반환할 수 있다.
프레임워크부(300)는, 쿼리를 입력받으면, DB 서버(10)에 저장된 학습 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 모델을 생성할 수 있다. 프레임워크부(300)는 입력된 쿼리에 따라 정보 또는 데이터와 학습 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 할 수 있다. 프레임워크부(300)는 학습 중간 결과 및 최종 결과를 제공할 수 있다. 프레임워크부(300)는 입력된 쿼리를 통하여 데이터와 기 학습된 학습 네트워크 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공할 수 있다.
본 실시예에서 프레임워크부(300)는 내부 프레임워크로 QML 모듈(310)을 구비할 수 있다. 내부 프레임워크는 QML 모듈(310) 이외에 다른 프레임워크를 구비하거나 더 구비할 수 있다. 이는 사용자에게 사용하고자 하는 다양한 선택지를 제공할 수 있다.
QML 모듈(310)은 QML 플러그인 기능을 구현할 수 있다. QML 모듈(310)은 딥러닝을 수행할 수 있는 프레임워크인 QML을 탑재할 수 있다. QML 모듈(310)은 데이터베이스와 UDF(User Defined Function)를 통해 연결되며 호출에 의해 실행될 수 있다.
프레임워크에 정의된 함수들은 각각 UDF를 통해 데이터베이스에 등록되고, 등록된 UDF 호출을 통해서 프레임워크가 실행될 수 있다.
UDF에서 사용할 수 있는 인자 변수의 타입은 integer, real number, string으로 정해져 있다. 이러한 변수들은 QML에서 각각 사용될 수 있다. 예를 들어, 정수(integer) 타입은 네트워크 모델을 구성하는 필수 파라미터 중 정수값, QML 내부에 정의된 구조체 메모리의 주소값 등에 이용될 수 있다. Real number 타입은 네트워크 모델을 구성하는 필수 파라미터 중 실수값 등에 이용될 수 있으며, string 타입은 개수가 가변적인 파라미터들과 binary데이터인 blob 데이터에 이용될 수 있다.
QML 프레임워크는 채널 우선 데이터 포맷인 NCHW(N:batch, C:channel, H:height, W:width) 포맷을 따를 수 있다. 레이어 종류는 ONNX에서 사용되는 레이어를 지원하며, 각 레이어에 정의된 파라미터들도 ONNX 포맷을 따를 수 있다.
QML 프레임워크는 네트워크 모델을 학습가능하도록 백프로퍼케이션(Back-Propagation)알고리즘을 탑재할 수 있다. QML 프레임워크는 그라디언트 계산 알고리즘과 모델파라미터(weight, bias)를 업데이트 시키기 위한 옵티마제이션 알고리즘을 탑재할 수 있다.
QML 모듈(310)은 네트워크 모델(아키텍처)을 학습하는 방식중 네트워크 모델를 처음부터 학습시킨 후 각 레이어의 가중치에 따라 초기화 알고리즘을 통하여 결정하는 Train from scratch 기법과 기 학습된 모델의 가중치(import 기능을 통해 데이터베이스에 저장되거나, 이전 학습시도를 통해서 구한 가중치)를 읽어와서 레이어의 초기 가중치를 설정하고 학습을 진행하는 Fine tuning 기법을 지원할 수 있다.
QML 모듈(310)은 데이터베이스(DB 서버(10), 서버의 제어부(100) 또는 저장부(200)를 의미하며, 이하 동일)로부터 받은 정보를 통하여 학습 및 추론을 수행할 수 있다. 데이터베이스로부터 받은 정보는 사용자 Query 질의를 통하여 받은 데이터 조합을 통하여 획득할 수 있다.
변환부(360)는 특정 학습 모델을 다른 형식의 학습 모델로 변환할 수 있다. 구체적으로, 변환부(360)는 특정 학습 모델을 데이터베이스의 관계형 데이터 형식으로 변환할 수 있다. 변환부(360)는 관계형 데이터 형식의 학습 모델을 특정 학습 모델이나 다른 학습 모델로 변환할 수 있다. 예를 들어, 변환부(360)는 데이터베이스에 테이블 타입으로 저장된 학습 모델 테이블을 내부 프레임워크인 QML 프레임워크로 변환하거나, 그 역으로도 가능하다. 변환부(360)는 학습 모델(230)의 아키텍처, 레이어, 및 파라미터를 관계형 데이터 형식인 네트워크 테이블, 레이어 테이블, 및 파라미터 테이블로 변환하거나, 역변환할 수 있다.
도 6을 참조하면, 변환부(360)는 QML 학습 모델 테이블을 QML 모듈(310)에 적합한 학습 모델로 변환할 수 있다. 변환부(360)은 필요시 데이터셋 테이블을 QML 모듈(310)에서 사용하기 적합하게 변환할 수 있다. QML 모듈(310)(또는 프레임워크부(300))은 데이터셋과 변환된 QML 학습 모델을 이용하여 학습 및/또는 추론을 하여, 학습 결과를 출력할 수 있다. 변환부(360)는 QML 모듈(310)에서 출력한 학습 결과를 관계형 데이터 형식으로 변환하여 학습 결과(output) 테이블로 저장할 수 있다. 이러한 기능은 QML 모듈(310) 및/또는 데이터셋 관리 모듈(120) 중 적어도 어느 하나가 대신 수행하거나, 서로 분담하여 수행할 수 있다.
변환부(360)는 외부 프레임워크와의 호환성을 위해 사용될 수 있다. 변환부(360)는 기존 프레임워크의 기학습된 모델을 가져오거나 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 ONNX(Open Neural Network Exchange) 모델 포맷 등의 다른 프레임워크 포맷으로 변환할 수 있다.
도 7을 참조하면, 변환부(360)는 ONNX 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 포맷으로 변환(임포트; import)할 수 있다. 변환부(360)는 반대로 데이터베이스의 네트워크 모델을 ONNX 모델을 포함하는 구조화딘 포맷이나 CSV 파일로 변환(엑스포트; export)할 수 있다.
변환부(360)는 ONNX 모델 포맷 이외에 Open Network Exchange(ONNX), Neural Network Exchange Format(NNEF) 및 하이퍼 파라미터와 학습 파라미터 파일을 구조화된 포맷으로 변환할 수 있다.
사용자는 변환된 ONNX 모델 및 구조화된 포맷을 사용자가 원하는 target 프레임 워크로 변환하여 사용할 수 있다.
변환부(360)를 통한 컨버팅 작업을 통하여 다른 형태의 딥러닝 프레임 워크에 네트워크 모델을 적용할 수 있다. 이를 통해, DB 서버(10)는 데이터베이스에 저장되어 있는 관계형 데이터 형식의 모델을 호출하여 이와 유사한 형태의 데이터셋에 적용할 수 있다.
변환부(360)는 이러한 변환 작업을 통해, 작업에 소요되는 시간을 최소화 할 수 있다.
도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다.
도 8을 참조하면, 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술은 ONNX 포맷 또는 ONNX 포맷으로 변환된 기학습된 모델을 컨버터를 통해서 QML 포맷으로 변환하고, 단말기(20)로부터 학습 또는 추론 쿼리를 입력받으며, 데이터베이스에서 정보를 QML 모듈(310)로 전송하여, QML 모듈(310)에서 훈련 및 추론을 수행할 수 있다. 그리고, 훈련(학습) 또는 추론 결과를 데이터베이스에 저장하면, 단말기(20)는 데이터베이스에 저장된 결과를 확인할 수 있다. 이하, 구체적으로 설명한다.
단말기(20)는 학습 모델을 입력(Import)하거나, 데이터베이스로부터 출력(Export)받을 수 있다(①).
학습 모델을 입력 또는 출력할 때, 변환부(360)를 통하여 데이터베이스의 스키마 구조에 맞게 변환할 수 있다(②).
데이터베이스는 쿼리를 해석하여 적절한 작업을 수행할 수 있다(③).
제어부(100)는 단말기(20)로부터 입력되는 쿼리의 QML의 유형을 분석하고, 이에 따른 결과를 QML 모듈(310)로 전송할 수 있다. 보다 상세하게 설명하면, 입력된 쿼리의 언어 종류를 분석하고, 호환여부 또는 유사한 작업내역이 저장부(200)에 있는지 파악하는 등의 작업을 수행할 수 있다.
제어부(100)는 각각의 운영체제 또는 기계학습 프레임워크(S/W) 별로 최적의 성능을 구현할 수 있는 프로그램을 선별하고, QML 모듈(310)에 학습 및 추론을 요청할 수도 있다. 예를 들어, 제어부(100)는 훈련이 요구되는 데이터셋이 이미지일 경우 이미지 훈련에 최적의 성능을 발휘할 수 있는 기계학습 S/W를 선별하고, 선별된 S/W에 훈련을 요청할 수 있다.
이와 함께, 제어부(100)는 현재 훈련을 위해, 사용중인 서버의 자원을 확인하여, 자원의 규모에 맞게 훈련을 위한 프레임워크를 적용하거나, 프레임워크 적용 시 구성요소의 선택적 적용을 시행할 수 있다.
QML 모듈(310)은 데이터베이스에서 플러그인을 수행하고, 데이터베이스로부터 받은 정보를 통해 훈련 및 추론을 수행할 수 있다(④).
단말기(20)는 쿼리를 통해 데이터베이스로 훈련 또는 추론을 요청할 수 있다(⑤).
단말기(20)는 데이터베이스의 테이블을 조회하여 학습 관련 정보를 조회할 수 있다(⑥).
학습 모델 데이터는 데이터베이스에 QML 스키마로 저장될 수 있다(⑦).
도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 흐름도이다.
도 9를 참조하면, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템은, 단말기(2) 및 DB 서버(10)와 연동하는 프레임워크부(300)에서 쿼리 기반 딥러닝 추론 방법을 실행할 수 있다.
제어부(100)는 사용자 단말기로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Test)를 입력 받을 수 있다(S410).
제어부(100)는 쿼리를 분석하여, 데이터셋과 적합한 학습 모델을 프레임워크부(300)로 전송할 수 있다.
프레임워크부(300)는 학습 쿼리 또는 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행할 수 있다(S420).
프레임워크부(300)는 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행할 수 있다(S430).
프레임워크부(300)는 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장 (Store Result & Model)할 수 있다.
프레임워크부(300)는 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)할 수 있다.
프레임워크부(300)는 학습 또는 추론의 종료 시 학습 결과 또는 추론 결과를 사용자 단말기(130)로 제공할 수 있다(S440).
한편, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 클라이언트, 회원, 데이터셋, 네트워크, 학습 모델, 학습 실행 등을 관리할 수 있다.
[클라이언트 관리]
본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 사용자 단말기(130)로 데이터셋과 기계학습 과정을 관리하고 결과를 확인하기 위하여 기능을 제공할 수 있다.
[회원 관리]
쿼리 기반 딥러닝 추론 시스템(1)은 회원관리를 통해서 데이터베이스(110)의 데이터, 네트워크 모델의 생성, 수정 권한을 부여하고 변경 이력을 남길 수 있다.
[데이터셋 관리]
쿼리 기반 딥러닝 추론 시스템(1)은 데이터셋을 관리하기 위하여 새로운 테이블을 생성하고, 데이터를 조회, 수정, 업로드하기 위한 기능을 제공할 수 있다. 새로운 데이터셋을 생성할 때 자동으로 새로운 테이블을 생성하고, 데이터를 업로드할 수 있다. 데이터베이스의 테이블에 접근하여 데이터를 조회거나 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 보여줄 수 있다. 권한에 따라 데이터를 수정할 수 있다. 사용자로부터 수치데이터를 입력 받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행할 수 있다. 학습 데이터의 레이블을 작성(tagging)하는 기능을 제공할 수 있다.
[네트워크 관리]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 네트워크 모델을 관리하기 위한 기능을 제공할 수 있다. 지원되는 레이어를 추가하고 레이어 파라미터를 조정하여 새로운 네트워크 모델을 생성할 수 있다. 기존에 작성된 네트워크 모델 리스트를 조회할 수 있다. 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성할 수 있다. 네트워크 모델을 시각화하여 보여주는 기능을 제공할 수 있다.
[학습 모델 관리]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 학습을 관리하기 위한 기능을 제공할 수 있다. 네트워크 모델과 데이터셋, 학습 파라미터를 조절하여 학습 모델을 생성 또는 수정할 수 있다. 학습이 끝난 네트워크 모델을 컨버터 기능을 통해 출력할 수 있다. 현재 사용중인 서버의 자원을 확인할 수 있다.
[학습 실행 관리]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 학습 및 추론을 수행하고 결과를 확인하기 위한 기능을 제공할 수 있다. 서버의 자원을 확인할 수 있다. 학습 및 추론 수행이 가능한지 여부를 사용자에게 알려줄 수 있다. 현재 실행 또는 대기 중인 학습계획 리스트를 조회할 수 있다. 등록된 네트워크 모델과 데이터셋, 학습 파라미터를 설정하여 학습계획을 생성할 수 있다. 현재 실행 또는 대기 중인 학습계획의 학습 파라미터를 확인할 수 있다. 현재 실행 중인 학습계획의 중간 및 결과를 확인할 수 있다. 현재 실행 중인 학습계획을 멈출 수 있다. 대기 중인 학습계획을 시작할 수 있다. 등록된 네트워크 모델과 데이터셋을 설정하여 추론계획을 생성할 수 있다. 실행된 추론 계획의 결과를 확인할 수 있다.
전술한 바와 같이 본 발명에 의하면, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자에게 필요한 정보를 제공할 수 있도록 딥러닝 프레임워크가 정보 데이터베이스에 플러그인 형태로 연결되어, 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하는, 쿼리 기반 딥러닝 추론 시스템을 실현할 수 있다.
도 10은 본 발명의 다른 실시예에 따른 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전하는 분산 훈련 시스템을 개략적으로 나타낸 구성도이다. 도 11은 도 10에 따른 서버 및 데이터 수집기의 블록 구성도이다. 도 12는 메인서버의 데이터셋을 도시하고, 도 13은 분산서버의 데이터셋을 도시한다. 도 14는 도 10의 시스템의 훈련 방법에 대한 순서도이다. 도 15는 도 10의 시스템의 추론 방법에 대한 순서도이다. 도 16 내지 도 18은 비동기식 분산 서버의 각기 다른 실시예에 따른 신호 흐름도이다. 도 19 및 도 20은 동기식 분산 서버의 서로 다른 실시예에 따른 신호 흐름도이다. 도 1 내지 도 9를 참고한다.
이하, 설명의 편의를 위해 다음과 같이 학습 모델을 정의하기로 한다. 학습 모델(학습 네트워크 모델)은 아키텍처(모델 아키텍처)와 이에 할당된 학습 파라미터에 의해 구현될 수 있다. 아키텍처는 아키텍처 구조 및 이에 할당된 하이퍼 파라미터에 의해 구축될 수 있다. 학습 모델과 학습 모델 테이블, 아키텍처와 아키텍처 테이블, 아키텍처 구조와 네트워크 테이블, 하이퍼 파라미터와 하이퍼 파라미터 테이블, 및 학습 파라미터와 학습 파라미터 테이블은 각기 서로 대응될 수 있다. 그리고, 학습 모델 테이블은 아키텍처 테이블 및 학습 파라미터 테이블을 구비할 수 있다. 아키텍처 테이블은 네트워크 테이블 및 하이퍼 파라미터 테이블을 구비할 수 있다. 아키텍처 구조는 레이어 수, 유닛 수, 레이어 종류, 유닛 연결되는 방법을 의미할 수 있다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 쿼리 기반의 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전하는 분산 훈련 시스템(이하, '분산 훈련 시스템')은 데이터 수집기(400), 쿼리 기반의 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치(이하, '메인 서버')(40), 및 복수의 분산 서버(41~43)를 포함할 수 있다.
메인 서버(40)와 복수의 분산 서버(41~43)는 도 1 내지 도 9의 DB 서버(10)의 기능을 적어도 일부를 구비할 수 있다. 메인 서버(40)와 복수의 분산 서버(41~43)의 구성요소 중 DB 서버(10)의 구성요소와 대응하는 구성요소에 대한 설명은 상술한 내용을 참고한다.
메인 서버(40)와 복수의 분산 서버(41~43) 및/또는 데이터 수집기(400)는 네트워크로 연결되어 서로 통신을 서로 할 수 있다.
메인 서버(40)는 복수의 분산 서버(41~43)를 관리하여, 딥러닝 학습을 분산하여 훈련할 수 있다. 도 11(a)는 메인 서버(40) 또는 분산 서버의 블록 구성도일 수 있다.
도 11(a)를 참조하면, 메인 서버(40)는 제어부(100), 저장부(200), 및 입출력부(370)를 포함할 수 있다. 메인 서버(40)는 변환부(360)를 더 포함할 수 있다. 메인 서버(40)는 프레임워크부(300)을 더 포함할 수 있다.
도 11(a)를 참조하면, 분산 서버(41~43)는 제어부(100), 저장부(200), 프레임워크부(300), 및 입출력부(370)를 포함할 수 있다. 분산 서버(41~43)는 변환부(360)를 더 포함할 수 있다.
메인 서버(40) 및 분산 서버(41~43)의 각 구성요소는 도 1 내지 도 9에서 기술한 내용을 참고한다.
메인 서버(40)는 도 1 내지 도 9의 데이터베이스 서버(10)의 기능을 구현하며, 분산 기능을 추가로 구현할 수 있다. 예를 들어, 메인 서버(40)는 전체 분산 시스템의 관리 기능을 하며, 추가로 분산 기능을 수행할 수 있다. 다만, 설명의 편의를 위해 메인 서버(40)의 분산 기능은 어느 한 분산 서버에서 수행하는 것과 대응되는 것으로 본다.
도 10에 도시된 메인 서버의 메인 프레임워크부(50), 및 각 분산 서버의 제1 내지 제3 프레임워크부(51~53)는 상술한 프레임워크부(300)에 각각 대응되는 것으로, 구별의 목적으로 사용되었다.
복수의 분산 서버 중 어느 하나는 복수의 컴퓨터 시스템으로 구현될 수 있다.
메인 서버(40)는 복수의 분산 서버(41~43) 각각이 동일한 환경에서 딥러닝 훈련을 하도록 복수의 분산 서버(41~43)를 설정할 수 있다. 메인 서버(40)는 복수의 분산 서버(41~43)가 데이터셋, 학습 모델, 프레임워크 중 적어도 일부를 동일하게 할 수 있다.
제1 내지 제3 분산 서버(41~43)는 각각 제1 내지 제3 프레임워크부(51~53)를 구비할 수 있다. 제1 내지 제3 프레임워크부(51~53)는 훈련할 프레임워크(QML 모듈)를 구비하며, 동일한 학습 모델로 기계학습을 할 수 있다. 제1 내지 제3 분산 서버(41~43)가 구비하는 각각의 학습 모델이 동일하다는 의미는 적어도 각각의 아키텍처가 동일하다는 것을 의미할 수 있다. 각 분산서버(41~42)의 학습 파라미터(p1, p2, p3)는 상이할 수 있다.
각 분산서버(41~42)는 각각 학습 파라미터를 초기화하여 서로 다른 초기 학습 파라미터를 구비할 수 있다. 또는 메인 서버(40)에 의해, 복수의 분산 서버(41~43)는 동일한 초기 학습 파라미터를 구비할 수 있다. 즉, 학습 파라미터의 초기값은 메인 서버(40)에 의해 결정되거나, 복수의 분산 서버(41~43) 각각에서 독립하여 결정될 수 있다. 초기값의 결정은 선택적이거나 데이터셋의 종류, 개수 등의 성격이나, 딥러닝할 목적 등 다양한 요소에 따라 결정될 수 있다.
제1 내지 제3 분산 서버(41~43)는 메인 서버(40)에 구비된 데이터셋과 동일한 데이터셋을 구비할 수 있다. 동일한 데이터셋은 메인 서버(40)에서 복수의 분산 서버(41~43)로 데이터를 전송하거나, 메인 서버(40)과 복수의 분산 서버(41~43)의 특정 데이터가 미러링과 같이 동기화 방법에 의해 이루어질 수 있다. 이러한 데이터 이동(확산) 방식은 데이터셋 뿐만 아니라 다른 자료(학습 파라미터 등)도 해당될 수 있다.
복수의 분산 서버(41~43) 각각의 데이터셋은 학습에 적합하게 학습용 데이터셋(DS)으로 변환될 수 있다. 메인 서버(40)에서 데이터셋을 각각의 복수의 분산 서버(41~43)에 맞게 각각의 학습용 데이터셋(DS)으로 마련하여 전송하는 것 보다 전송 효율이 더 좋을 수 있다. 브로드캐스팅으로 전송할 수 있기 때문이다.
복수의 분산 서버(41~43)는 도 12의 데이터셋과 동일한 데이터셋을 수신한 후, 각 데이터를 이를 랜덤하게 순서를 변경하는 셔플한 후 배치 사이즈에 맞게 데이터를 미니 배치(b1~b10)로 분할하여 도 13의 (a)~(c)와 같이 학습용 데이터셋(DS)으로 변환할 수 있다. 배치 사이즈는 메인 서버(40)로부터 수신할 수 있다.
프레임워크부(300)는 상술한 QML 모듈(310) 외에 통합부(320)을 더 구비할 수 있다.
통합부(320)는 분산처리되는 학습 과정 중 도출된 학습 파라미터들을 하나의 학습 파라미터로 통합할 수 있다. 통합부(320)가 통합에 사용하는 함수는 다양할 수 있다. 예를 들어, 통합 함수는 도출된 복수의 학습 파라미터 각각에 가중치를 곱한 후 이들의 평균을 출력으로 할 수 있다.
통합부(320)는 해당 분산 서버에서 도출된 학습 파라미터와 다른 분산 서버로부터 공유된 학습 파라미터 중 어떤 학습 파라미터를 통합 함수(F)의 인수에 적용함에 있어서, 다양한 인수 정책(또는, '통합 정책')을 정할 수 있다. 옵션인 경우 사용자의 설정에 의해 선택될 수 있다.
통합 정책의 예는 다음과 같다.
통합부(320)는 최신의 학습 파라미터를 통합 함수(F)의 인수로 이용할 수 있다. 즉, 한번 이용된 학습 파라미터는 새로 공유 받지 않으면, 통합 함수(F)의 인수로 사용될 수 없다.
통합부(320)는 타 분산 서버로부터 학습 파라미터를 받지 못한 경우, 타 학습 파라미터 없이 통합 함수(F)를 실행할 수 있다.
통합부(320)는 자신의 학습 파라미터만 통합 함수(F)의 인수인 경우, 통합 함수(F)를 실행하지 않을 수 있다. 이 경우, 현 단계의 배치 학습에서 도출된 학습 파라미터는 그대로 다음 단계의 배치 학습에서 학습 파라미터로 이용될 수 있다.
통합부(320)는 인수의 개수에 해당하는 모든 학습 파라미터들이 최신인 경우에만 통합 함수(F)를 실행하는 것, 및 타 학습 파라미터들 중 적어도 하나의 학습 파라미터가 최신인 경우에도 통합 함수(F)를 실행하는 것 중 어느 하나일 수 있다. 인수가 3개인 것으로 가정하면, 전자에서 3개의 학습 파라미터가 모두 최신인 경우에 3개의 학습 파라미터가 인수로 이용되며 그렇지 않은 경우 자신의 학습 파라미터만을 인수로 이용된다. 후자에서 2개의 학습 파라미터만 최신이라면 해당 2개의 학습 파라미터만 인수로 이용된다. 사용자는 통합 함수(F)의 인수를 전부인 경우에만 실행되거나, 일부인 경우에도 실행되는 것 중 어느 하나를 설정할 수 있다.
이하, 분산 환경에서의 딥러닝을 구체적로 설명한다.
제1 내지 제3 프레임워크부(51~53)는 동일한 아키텍처 구조와 하이퍼 파라미터로 학습 모델 아키텍처를 생성하여 각각의 학습용 데이터셋(DS)을 이용하여 기계학습을 할 준비를 할 수 있다. 제1 내지 제3 프레임워크부(51~53)는 학습 모델 중 웨이트나 바이어스와 같은 학습 파라미터(p1, p2, p3)의 초기값을 각각 설정할 수 있다.
딥러닝 훈련 준비가 완료되면, 복수의 프레임워크부(51~53) 각각은 딥러닝 훈련을 수행할 수 있다. 복수의 프레임워크부(51~53) 각각은 각각의 학습용 데이터셋(DS)을 이용하여 딥러닝 훈련을 반복할 수 있다. 복수의 프레임워크부(51~53) 각각은 미니 배치(b1~b10) 별로 훈련한 후 파라미터, 특히, 학습 파라미터를 업데이트(도출)할 수 있다. 본 명세서 전반에서, 각 미니 배치의 학습 또는 훈련을 배치 학습 또는 배치 훈련이라고 칭하기로 한다.
예를 들어, 제1 프레임워크부(51)은 초기 학습 파라미터(p1-1)와 제1 미니 배치(b1)를 이용하여 훈련하여 업데이트(변환)된 학습 파라미터(p1-1')를 도출할 수 있다. 도출된 학습 파라미터(p1-1')는 제2 내지 제3 분산 서버(42, 43)로 전송되거나 동기화되는 등 확산될 수 있다.
각 프레임워크부에서 도출된 학습 파라미터는 다양한 방식으로 확산(또는, '공유')될 수 있다. 이는 정책 또는 사용자 설정에 의해 달라질 수 있다. 예를 들어, 어떤 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책, 일정 시간이 경과되면 최신 학습 파라미터가 다른 프레임워크부로 확산되는 시간 주기별 공유 정책, 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책, 메인 서버(40)에서 정한 규칙 또는 랜덤한 내리는 지시에 의해 확산되는 기타 규칙 정책 등이 있을 수 있다.
제1 프레임워크부(51)의 통합부(320)는 제1 프레임워크부(51)의 도출된 제1 학습 파라미터(p1-1') 외에 제2 및 제3 프레임워크부(52, 53)에서 도출된 제2 및 제3 학습 파라미터를 하나의 학습 파라미터(p1-2)로 통합할 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1 프레임워크부(51)에서 산출된 제1 학습 파라미터(p1-1')에 가중치를 주는 등의 방법으로, 산출된 제1 학습 파라미터(p1-1')가 통합 함수의 출력에 더 많은 영향을 끼치도록 하는 것이 바람직하다.
제1 프레임워크부(51)는 학습 모델의 학습 파라미터를 통합된 학습 파라미터(p1-2)로 업데이트 한 후, 제2 미니 배치(b2)와 통합된 학습 파라미터(p1-2)를 이용하여 기계학습을 할 수 있다. 1회의 에포크(epoch) 즉, 모든 미니 배치(학습용 데이터셋(DS))에 대한 학습이 완료되면 정해진 에포크 회수 또는 기설정된 정책에 따른 조건을 만족할 때까지 제1 프레임워크부(51)는 학습을 반복할 수 있다. 1회의 에포크 동안 전체 데이터 크기를 배치 사이즈로 나눈 개수 만큼의 학습 파라미터의 업데이트(이터레이션(iteration))가 이루어질 수 있다. 도 13을 참조하면, 데이터 크기는 80이고 배치 사이즈는 8이므로, 1회의 에포크 동안 10회의 이터레이션이 발생된다.
제1 프레임워크부(51)는 한 회의 에포크가 종료되면 학습용 데이터셋(DS)가 셔플되도록 할 수 있다.
제1 프레임워크부(51)는 딥러닝 훈련의 하위 과정이 종료되면 아키텍처의 구조나 하이퍼 파라미터를 튜닝할 수 있다. 학습용 데이터셋은 훈련(train) 데이터셋, 검증(validation) 데이터셋, 및 테스트(test) 데이터셋으로 구분될 수 있다. 딥러닝 훈련의 하위 과정의 예로, 위 구분된 데이터셋의 학습 과정(훈련, 검증, 테스트) 등을 있을 수 있다.
제1 프레임워크부(51)에서 튜닝된 하이퍼 파라미터는 다른 분산 서버로 확산될 수 있다. 다른 분산 서버는 튜닝된 하이퍼 파라미터로 학습 모델 아키텍처를 재 구축할 수 있다. 하이퍼 파라미터의 튜닝은 한 분산 서버에서만 수행하는 것이 바람직하다.
새롭게 딥러닝 훈련의 다음 하위 과정이 시작되기 전에, 각각의 학습 파라미터들은 초기화 등 재조정되거나, 직전 값을 유지될 수 있다.
데이터 수집기(400)는 공작 기계(90)의 진동량, 소음량, 전력량, 및 상태 정보 라벨을 측정값 리스트 데이터로 수집할 수 있다.
공작 기계(90)는 소재를 가공하여 원하는 형상을 만들 수 있는 기계일 수 있으며, 이에 한정되지 않고 다양한 기계일 수 있다. 공작 기계(90)는 전기 에너지를 동력원으로 사용하는 수많은 부품의 조립체이다. 공작 기계(90)는 원하는 속도로 회전하는 회전계 부품, 및 정확한 위치로 이송할 수 있는 이송계 부품들을 구비할 수 있다.
공작 기계(90)의 종류는 머시닝 센터(Machine Center), 선반(Lathe), 밀링(Milling), 드릴 머신(Drill Machine), 연마기 (Machine), 레이저 절단기(Laser Cutting Machine), NCT 펀칭기(Numerically Controlled Turret), CNC 절곡기(Bending Machine), 슬로터(Slotter), 셰이퍼(Shaper) 등이 있을 수 있다.
공작 기계(90)는 수치 제어(Numerical Control) 또는 컴퓨터 수치 제어(Computerized Numerical Control)되는 기계일 수 있다.
다양한 회전계 및 이송계 부품은 기계적인 운동을 하게 되어, 공작 기계(90)의 부품들은 고장날 수 있다. 부품의 고장이나 노후는 손실이 많아져서, 공작 기계(90)의 출력이 저하되는 현상이 나타날 수 있다.
또한, 공작 기계(90)의 부품들의 고장이나 노후는 관리자나 사용자의 안전 사고가 문제될 수 있다. 이에 공작기계(90)의 고장을 판단하고, 공작기계(90)의 이상을 예측하는 것이 바람직하다.
도 10을 참조하면, 데이터 수집기(400)는 수집기 제어부(410), 수집기 통신부(420), 및 수집기 감지부(450)을 구비할 수 있다.
수집기 통신부(420)는 외부 장치와 유/무선 통신할 수 있다. 수집기 통신부(420)와 통신하는 외부 장치는 공작 기계(90), 사용자 단말기(130), 메인 서버(40) 등이 해당될 수 있다.
수집기 통신부(420)는 특정한 공작 기계(90) 이외에, 다양한 공작 기계와 통신할 수 있다. 따라서 데이터 수집기(400)는 복수의 공작 기계로부터 측정값 리스트 데이터를 수집할 수 있다.
수집된 측정값 리스트 데이터는 메인 서버(40)에서 훈련용 데이터셋으로 기능할 수 있다. 훈련용 데이터셋일 경우, 측정값 리스트 외에 정상과 고장을 나타내는 라벨(label)과 함께 저장될 수 있다. 측정값 리스트 데이터는 추론용 데이터셋으로 사용되어, 메인 서버(40)에 의해 실시간으로 고장을 진단하거나 예측할 수 있게 된다.
수집기 통신부(420)는 공작기계(90)가 작동하는 주위 환경(온도, 습도 등), 공작기계(90)의 작동량 등의 정보를 메인 서버(40)에 전송할 수 있다. 이러한 정보는 다양한 환경에서 작동하는 공작 기계들의 예지 보전 학습 모델의 정확한 구축에 도움을 줄 수 있다.
수집기 통신부(420)는 무선 통신을 위해, 근거리 통신 모듈, 무선 인터넷 모듈, 및 이동통신 모듈(127)을 구비할 수 있다.
유선 통신 기술로는 전력선 통신(Power Line Communication: PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.
근거리 통신 모듈은 근거리 통신을 위한 모듈을 말한다. 근거리 통신 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct) 등이 이용될 수 있다.
무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 의미한다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), DLNA(Digital Living Network Alliance), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS) 등이 이용될 수 있다.
이동통신 모듈은, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신할 수 있다. 여기서, 무선 신호는, 음성, 동영상, 사진, 텍스트, 및 이들의 조합 등 다양한 형태의 데이터를 포함할 수 있다.
이동통신 모듈은 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTEA(Long Term Evolution-Advanced) 등의 통신방식을 이용할 수 있다.
이 외에, 수집기 통신부(420)는 NB-IoT, LTE-M, LoRa, Sigfox 등의 IoT를 위한 저전력 광역 네트워크 모듈을 구비할 수 있다. 저전력 광역 네트워크 모듈은 앞서 언급한 근거리/무선 인터넷/이동통신 모듈을 이용할 수 있다.
수집기 감지부(450)은 진동 센서 모듈(460), 소음 센서 모듈(470), 및 전력량 측정 모듈(480)을 구비할 수 있다. 수집기 감지부(450)는 이러한 각각의 모듈을 데이터 수집기(400)와 연결된 복수의 공작 기계 개수만큼 복수 개 구비할 수 있다.
진동 센서 모듈(460) 및 소음 센서 모듈(470)은 각각 복수의 센서를 구비하여, 공작 기계(90)의 여러 위치에 부착될 수 있다. 진동 센서 모듈(460) 및 소음 센서 모듈(470)이 측정한 데이터는 공작 기계(90)의 고장이나 노후, 또는 고장 예측에 이용될 수 있다.
진동 센서 모듈(460)는 복수의 진동 센서를 구비할 수 있다. 진동 센서는 x, y, z 축의 진동을 각기 측정할 수 있는 것이 바람직하다. 복수의 진동 센서는 공작 기계(90)의 프레임이나, 기계적인 운동을 하는 부위에 부착될 수 있다.
소음 센서 모듈(470)은 복수의 소음 센서를 구비할 수 있다. 복수의 소음 센서는 공작 기계(90)의 프레임이나, 기계적인 운동을 하는 부위에 부착될 수 있다.
소음 센서 모듈(470)은 수집기 제어부(410)가 공작 기계(90)에서 발생하는 소리의 크기, 주파수 등의 분석을 할 수 있는 데이터를 측정할 수 있다.
전력량 측정 모듈(480)은 공작 기계(90)의 소비 전력을 측정할 수 있다. 측정된 소비 전력은 정상 소비 전력 패턴과의 비교, 및/또는 측정된 소비 전력 신호에 이상 파형이 있는지 여부의 기초가 되어, 공작 기계(90)가 정상 동작 또는 이상 동작의 판단에 도움을 줄 수 있다.
수집기 감지부(450)의 진동 센서 모듈(460)에서 측정한 진동량, 소음 센서 모듈(470)에서 측정한 소음량, 전력량 측정 모듈(480)에서 측정한 전력량은 측정값 리스트 데이터로 정의할 수 있다.
수집기 제어부(410)는 통상적으로 상기 각부의 동작을 제어하여 데이터 수집기(400)의 전반적인 동작을 제어할 수 있다.
수집기 제어부(410)는 수집기 감지부(450)의 진동 센서 모듈(460)에서 측정한 진동량, 소음 센서 모듈(470)에서 측정한 소음량, 및 전력량 측정 모듈(480)에서 측정한 전력량을 취합하여 메인 서버(40)로 전송할 수 있다.
데이터 수집기(400)는 공작 기계(90)의 고장 여부나 고장 예측을 위한 학습 네트워크 모델을 생성하기 위한 상태 인지부(430)를 더 포함할 수 있다.
상태 인지부(430)는 공작 기계(90)의 고장 여부, 고장 부위 등을 나타내는 상태 정보 라벨을 체크할 수 있다.
상태 인지부(430)는 이송축과 회전축에 대한 상태 정보 라벨을 엔코더나 비전 등으로 수신할 수 있다. 상태 인지부(430)는 다양한 센서를 통해 공작 기계(90)에 대한 주변의 온도, 압력, 습도, 기울기 및 위치에 대한 정보를 수신할 수 있다.
상태 인지부(430)는 사용자에 의해 고장 여부와 고장 부위을 입력 받을 수 있다.
수집기 제어부(410)는 측정값 리스트 데이터와 상태 정보 라벨을 취합하여 메인 서버(40)로 전송할 수 있다. 메인 서버(40)의 데이터셋 관리 모듈(120)은 특정값 리스트 데이터와 상태 정보 라벨을 데이터셋 테이블(220)로 변환할 수 있다.
도 14를 참조하면, 메인 서버(40)는 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 딥러닝 학습 쿼리를 입력 받을 수 있다(S610). 메인 서버(40)는 쿼리를 입출력부(370)을 통해 직접 입력 받거나, 단말기(20)를 통해 입력 받을 수 있다.
메인 서버(40)는 학습 쿼리에 적합한 학습 모델 테이블을 선택할 수 있다(S620). 메인 서버(40)는 쿼리를 분석하여 적합한 학습 모델 테이블(이하, '학습용 모델 테이블(Tt)')을 복수의 학습 모델 테이블에서 선택할 수 있다. 학습용 모델 테이블은 상술한 모델 선택 정책에 따라 메인 서버(40)의 학습 모델 관리 모듈(130)에 의해 선택될 수 있다.
학습용 모델 테이블(Tt)은 변환부(360)에 의해, 외부 프레임워크에서 생성된 학습 모델이 임포트(import)된 것일 수 있다.
학습 모델은 사용자의 선택에 의해 지도 학습 및 비지도 학습 중 어느 한 학습 방법을 가질 수 있다. 지도 학습의 경우 학습용 데이터셋에 고장 여부의 라벨이 있어야 한다. 고장 여부는 사람이나 상술한 수집기 상태 인식부(430)에 의해 라벨링될 수 있다. 비지도 학습의 경우, 비정상 탐지 기술을 구비하는 학습 모델인 것이 바람직하다.
메인 서버(40)는 학습용 데이터셋 테이블을 구비할 수 있다. 메인 서버(40)는 학습용 데이터셋의 데이터를 쿼리를 통해 입력 받거나, 다른 장치로부터 입력 받을 수 있다. 학습용 데이터셋은 상술한 데이터 수집기(400)에서 취득한 정보일 수 있다.
메인 서버(40)는 복수의 분산 서버(41~43)가 초기화 가동되도록 할 수 있다(S630).
초기화 가동은 딥러닝 훈련의 분산이 적합하도록 분산 환경을 설정하고 복수의 분산 서버(41~43)에서 분산 훈련이 가능하도록 준비하는 일련의 과정을 의미할 수 있다.
초기화 가동은 사용 가능한 복수의 분산 서버(41~43) 중 적절한 분산 서버를 선택하는 것을 포함할 수 있다. 초기화 가동은 제1 내지 제3 분산 서버(41~43)와 네트워크 연결하고, 동기화, 비동기화, 및/또는 미러링 등으로 데이터가 제1 내지 제3 분산 서버(41~43)으로 확산되도록 할 수 있다.
분산 환경은 학습용 데이터셋(DS)의 배치 사이즈를 구비할 수 있다. 메인 서버(40)는 분산 서버의 개수, 분산 서버의 사양, 학습용 데이터셋(DS), 및/또는 쿼리에 기초하여, 적절한 배치 사이즈를 결정할 수 있다.
분산 환경은 적절한 에포크(epoch) 횟수를 더 구비할 수 있다. 분산 환경은 학습 쿼리를 더 구비할 수 있다. 분산 환경에 구비된 학습 쿼리는 분석된 내용, 예를 들어, 쿼리 기능일 수 있다.
메인 서버(40)는 분산 환경, 학습용 모델 테이블(Tt), 및/또는 학습용 데이터셋(DS) 테이블을 제1 내지 제3 분산 서버(41~43)로 확산할 수 있다. 분산 환경은 관계형 데이터 구조일 수 있다. 분산 환경은 학습용 모델 테이블에 속할 수 있다.
데이터 확산 후, 제1 내지 제3 분산 서버(41~43)는 동일한 분산 환경, 학습용 모델 테이블(Tt), 및 학습용 데이터셋(DS) 테이블을 구비할 수 있다.
제1 내지 제3 분산 서버(41~43) 각각은 각각의 학습용 데이터셋(DS) 테이블을 학습에 맞게 변경할 수 있다. 예를 들어, 제1 분산 서버(41)은 학습용 데이터셋(DS)의 데이터를 랜덤하게 순서를 변경한 후 배치 사이즈에 맞게 분할할 수 있다. 셔플 및 분할된 데이터셋은 배치 테이터셋 테이블로 저장될 수 있다. 배치 데이터셋 테이블의 각각의 배치 사이즈로 분할된 데이터셋을 '배치 데이터' 또는 '미니 배치'로 칭할 수 있다.
제1 내지 제3 분산 서버(41~43)는 각각의 학습 파라미터 테이블의 초기값을 서로 상이하게 하는 것이 바람직하다. 다양한 학습 파라미터로 딥러닝 훈련을 수행할 수 있기 때문이다. 이를 위해, 제1 내지 제3 분산 서버(41~43)는 학습 파라미터의 초기값을 무작위하게 정할 수 있다. 학습 파라미터의 초기화는 다양한 초기화 기술이 이용될 수 있다.
초기화 가동된 제1 내지 제3 분산 서버(41~43) 각각은 상기 적합한 학습 모델 테이블에 속한 아키텍처 테이블을 플러그인으로 설치된 제1 내지 제3 프레임워크부(51~53)에 적합하게 모델 아키텍처를 구축할 수 있다(S640).
제1 내지 제3 프레임워크부(51~53)는 각각 구축된 모델 아키텍처에 초기 학습 파라미터를 할당(S650)하여, 학습 모델을 훈련할 준비를 할 수 있다.
제1 내지 제3 프레임워크부(51~53)(예를 들어, 각각의 QML 모듈(310))은 학습용 미니 배치와 학습 파라미터가 할당된 모델 아키텍처를 이용하여 훈련할 수 있다(S660).
각 분산 서버에서 업데이트된 각각의 학습 파라미터들의 통합을 위해, 각 분산 서버에서 독립하여 배치 학습하는 비동기식 학습 방법과 주기적으로 배치 학습의 시작을 같이 하는 동기식 학습 방법이 있을 수 있다.
컴퓨팅 자원이나 사양 등에 의해 분산 서버들의 각 배치 학습들에 소요되는 시간이 다를 수 밖에 없다.
비동기식 학습 방법은 다른 분산 서버에서의 배치 학습 시관과 무관하게 쉬는 시간 없이 계속적인 배치 학습이 가능하여, 컴퓨팅 자원을 효율적으로 사용할 수 있다. 또한, 분산 서버들 중 어느 하나가 기계 학습을 최종적으로 종료하면 나머지 분산 서버들도 종료하게 하는 정책을 이용하면, 총 학습 시간을 비동기식 방법에 비해 더 줄일 수 있다.
동기식 학습 방법은 각 분산 서버에서 같은 횟수의 배치 학습 후 업데이트된 최종 학습 파라미터를 서로 공유하므로, 분산 학습의 정도나 효율이 비동기식에 비해 더 좋을 수 있다.
사용자는 기계 학습의 종류나 대상 등에 따라 동기식 및 비동기식 학습 방법 중 어느 하나를 선택할 수 있다. 이하, 동기식 및 비동기식 학습 방법에 대해 구체적으로 살펴본다.
도 16을 참조하여 비동기식 학습 방법의 일 실시예를 서술한다. 도 16은 앞서 언급한 '확산 정책' 중 각 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책에 따른 실시예이다. 통합 정책은 적어도 하나의 타 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고(Get Batch Data) 반복(Iteration) 학습을 할 수 있다. 각 반복되는 각각의 학습을 '배치 학습'(배치 TR)으로 칭하기로 한다.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다.
제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 제2 및 제3 분산 서버(42, 43)로 확산시킬 수 있다(S810). 확산은 제1 분산 서버(41)에서 나머지 분산 서버(42, 43)로 직접 전송하거나, 메인 서버(40)를 통해 동기화하거나 미러링할 수 있다. 데이터 관리의 효율 및 일관성 등을 위해 확산은 동기화나 미러링을 통해 이루어지는 것이 바람직하다. 본 실시예에서 학습이 종료된 후, 제1 분산 서버(41)의 학습 파라미터가 제2 및 제3 분산 서버(42, 43)로 확산된 것으로 도시하였지만 이에 한정되지 않는다. 예를 들어, 학습에 제일 많은 시간이 소요된 제3 프레임워크부(53)에서 학습이 종료된 후, 각자의 도출된 학습 파라미터(p1.1', p2.1', p3.1')가 다른 분산 서버(41, 42, 43)로 확산될 수 있다.
제1 프레임워크부(51)의 통합부(320)는 다른 분산 서버(42, 43)에서 배치 학습 후 도출된 최신의 학습 파라미터(타 학습 파라미터들)와 제1 프레임워크부(51)에서 도출된 학습 파라미터들을 적절한 변환(F)을 거쳐, 다음 배치 학습에서 사용할 학습 파라미터로 통합할 수 있다.
타 학습 파라미터들 중 최근 종료된 배치 학습 이전에 통합부(320)에서 사용된 것은 제외할 수 있다. 즉, 최신의 학습 파라미터만 이용될 수 있다.
제1 프레임워크부(51)는 통합된 학습 파라미터를 다음 배치 학습에 적용할 학습 파라미터로 업데이트하고, 다음 배치 학습을 할 수 있다.
예를 들어, 제1 프레임워크부(51)에서 제1.1 배치 학습(TR)이 완료된 경우 다른 분산 서버(42, 43)에서 확산된 학습 파라미터가 없기 때문에, 제1 프레임워크부(51)의 통합부(320)는 제1.1' 파라미터(p1.1')를 다음 학습인 제1.2 배치 학습에 사용되는 제1.2 파라미터(p1.2)로 지정할 수 있다.
제1 프레임워크부(51)는 제1.2 배치 학습이 완료된 후 도출된 제1.2' 파라미터(p1.2')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.1' 및 제3.1' 파라미터와 통합하여, 제1.3 파라미터(p1.3)를 산출할 수 있다.
통합 과정에서 사용되는 함수(F)는 해당 프레임워크부에서 도출된 학습 파라미터를 중점으로하고, 나머지 타 파라미터들을 보조로하여 통합하는 것이 바람직하다. 예를 들어, 제1 프레임워크부(51)의 통합부(320)는 제1.2' 파라미터(p1.2')에 높은 가중치를 곱하고, 나머지 파라미터(p2.1', p3.1')에 낮은 가중치를 곱하여, 제1.2 파라미터(p1.2)로 도출할 수 있다. 이때, 가중치들의 합은 1인 것이 바람직하다. 통합 함술(F)의 인수(학습 파라미터들)의 개수나 학습 진행 정도에 따라, 각 인수에 곱해지는 가중치들 각각의 크기는 달라질 수 있다.
제1 프레임워크부(51)는 제1.3 파라미터(p1.3)를 이용한 제1.3 배치 학습 후 제1.3' 파라미터(p1.3')를 도출할 수 있다. 제1.3 배치 학습 후 제1 프레임워크부(51)는 제1.3', 제2.2', 및 제3.1' 파라미터(p1.3, p2.2, p3.1')를 최신의 파라미터로 구비한다. 이 때, 제3.1' 파라미터(p3.1')는 제1.2 배치 학습 완료 후 사용된 파라미터로 이를 제외한다. 따라서, 제1 프레임워크부(51)는 제1.3' 및 제2.2' 파라미터(p1.3', p2.2')를 통합하여 제1.4 파라미터(p1.4)로 산출할 수 있다.
확산된 학습 파라미터 중 최신의 것이어야 하는 것은, 제2 분산 서버(42)의 제2.4 배치 학습 이후의 통합 단계에서 그 예를 볼 수 있다. 제2.3 배치 학습 후 제2.4 배치 학습 종료 전까지, 제2 프레임워크부(52)는 제1.3' 학습 파라미터(p1.3') 및 제1.4' 학습 파라미터(p1.4')를 제1 분산 서버(41)로부터 확산 받을 수 있다. 제1.4' 학습 파라미터(p1.4')가 최신이므로, 제2 프레임워크부(52)의 통합부(320)는 제1.3' 학습 파라미터(p1.3') 대신 제1.4' 학습 파라미터(p1.4')를 사용하여 통합할 수 있다.
본 실시예에 따르면, 제1 내지 제3 분산 서버(41~43)는 각각의 배치 학습 및 학습 파라미터의 통합을 비동기적으로 진행할 수 있다. 즉, 제1 분산 서버(41)는 나머지 분산 서버들(42, 43)의 배치 학습의 종료와 무관하게 다음 배치 학습을 진행할 수 있다. 이에 따라 복수의 분산 서버(41~43)의 컴퓨팅 자원을 효율적으로 사용할 수 있다. 서버의 사양이나 작동 환경이 상이하여 각각의 배치 학습에 걸리는 시간은 상이할 수 밖에 없다. 본 동기식 학습 방법의 경우, 다른 분산 서버의 배치 학습이 종료되는 것을 기다리지 않아도 되기 때문이다.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n') 중 적어도 하나를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.
도 17을 참조하여 비동기식 학습 방법의 다른 실시예를 서술한다. 도 17은 앞서 언급한 '확산 정책' 중 일정 시간이 경과되면 최종 업데이트된 학습 파라미터가 다른 프레임워크부로 확산되는 시간 주기별 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 16을 참조한다.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고, 배치 학습(배치 TR)을 반복할 수 있다.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다.
이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다.
모든 프레임워크부(51~53)는 특정 주기 또는 메인 서버(40)에서 지시하는 특정 시각에 최신의 학습 파라미터를 확산시킬 수 있다(S820). 본 실시예에서, 제1 프레임워크부(51)는 제1.3' 학습 파라미터(p1.3')를, 제2 프레임워크부(52)는 제2.2' 학습 파라미터(p2.2')를, 및 제3 프레임워크부(52)는 제3.1' 학습 파라미터(p3.1')를 다른 분산 서버로 확산시킬 수 있다.
학습 파라미터의 확산 이후, 각 프레임워크부는 다음 배치 학습 전에 학습 파라미터들을 통합할 수 있다.
예를 들어, 제1 프레임워크부(51)는 제1.3 배치 학습이 완료된 후 도출된 제1.3' 파라미터(p1.3')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.2' 및 제3.1' 파라미터와 통합하여, 제1.4 파라미터(p1.4)를 산출할 수 있다. 제2 프레임워크부(52)는 제2.3 배치 학습이 완료된 후 도출된 제2.3' 파라미터(p2.3')를 중점으로 제3 및 제1 분산 서버(43, 41)에서 확산된 제3.1' 및 제1.3' 파라미터와 통합하여, 제2.4 파라미터(p2.4)를 산출할 수 있다. 제3 프레임워크부(53)는 제3.2 배치 학습이 완료된 후 도출된 제3.2' 파라미터(p3.2')를 중점으로 제1 및 제2 분산 서버(41, 42)에서 확산된 제1.3' 및 제2.2' 파라미터와 통합하여, 제3.3 파라미터(p3.3)를 산출할 수 있다.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n')를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.
도 18을 참조하여 비동기식 학습 방법의 또 다른 실시예를 서술한다. 도 18은 앞서 언급한 '확산 정책' 중 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 16을 참조한다.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고, 배치 학습(배치 TR)을 반복할 수 있다.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다.
이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다.
프레임워크부(51~53) 각각은 배치 학습 회수의 특정 주기에 최신의 학습 파라미터를 확산시킬 수 있다(S830). 도면의 굵게 표시된 배치 학습이 종료되면, 최신 학습 파라미터가 확산될 수 있다.
본 실시예에서 2 주기의 배치 학습 종료 이 후에 학습 파라미터가 확산된다고 가정한다. 제1 프레임워크부(51)는 제1.2' 학습 파라미터(p1.2')를, 제2 프레임워크부(52)는 제2.2' 학습 파라미터(p2.2')를, 및 제3 프레임워크부(52)는 제3.2' 학습 파라미터(p2.3')를 다른 분산 서버로 각각 확산시킬 수 있다.
학습 파라미터의 확산 이후, 각 프레임워크부는 타 분산 서버에서 최신의 학습 파라미터를 모두 수신한 경우에 학습 파라미터들을 통합할 수 있다.
예를 들어, 제1 프레임워크부(51)는 제1.3 배치 학습이 완료된 후 도출된 제1.3' 파라미터(p1.3')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.2' 및 제3.2' 파라미터와 통합하여, 제1.4 파라미터(p1.4)를 산출할 수 있다. 제1 프레임워크부(51)는 제1.2 배치 학습 후에 다른 학습 파라미터를 받지 못한 이유로, 및 제1.3 배치 학습 후에 하나의 타 최신 학습 파라미터만을 보유한 이유로, 각 배치 학습 이후에 통합 함수(F)를 실행시키지 않는다.
제2 프레임워크부(52)는 제2.3 배치 학습이 완료된 후 도출된 제2.3' 파라미터(p2.3')를 중점으로 제3 및 제1 분산 서버(43, 41)에서 확산된 제3.2' 및 제1.2' 파라미터와 통합하여, 제2.4 파라미터(p2.4)를 산출할 수 있다. 제3 프레임워크부(53)는 제3.2 배치 학습이 완료된 후 도출된 제3.2' 파라미터(p3.2')를 중점으로 제1 및 제2 분산 서버(41, 42)에서 확산된 제1.2' 및 제2.2' 파라미터와 통합하여, 제3.3 파라미터(p3.3)를 산출할 수 있다.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n')를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.
도 19를 참조하여 동기식 학습 방법의 일 실시예를 서술한다. 도 19는 앞서 언급한 '확산 정책' 중 어떤 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책 즉시 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 16을 참조한다.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 미니 배치(b1~b10)에 대해 배치 학습(배치 TR)을 할 수 있다.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다.
제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 제2 및 제3 분산 서버(42, 43)로 확산시킬 수 있다(S840).
제1 프레임워크부(51)는 다른 분산 서버(42, 43)에서 동일 단계의 배치 학습(제1.1 배치 학습) 후 도출된 학습 파라미터(타 학습 파라미터들)가 제1 분산 서버(41)에 업데이트되었는지 판단할 수 있다.
제1 분산 서버(41)에 타 학습 파라미터가 모두 업데이트되면, 제1 프레임워크부(51)의 통합부(320)는 제1.1 배치 학습 후 도출된 모든 학습 파라미터(p1.1', p2.1', p3.1')들을 적절한 통합 함수(F)를 이용하여, 다음 배치 학습에서 사용할 학습 파라미터(p1.2)로 통합할 수 있다.
통합 함수(F)는 해당 프레임워크부에서 도출된 학습 파라미터를 중점으로하고, 나머지 타 파라미터들을 보조로하여 통합하는 것이 바람직하다. 예를 들어, 제1 프레임워크부(51)의 통합부(320)는 제1.1' 파라미터(p1.1')에 높은 가중치를 곱하고, 나머지 파라미터(p2.1', p3.1')에 낮은 가중치를 곱하여, 제1.2 파라미터(p1.2)로 도출할 수 있다. 이때, 가중치들의 합은 1인 것이 바람직하다. 가중치는 학습 진행 정도나 다른 여러 요소로, 가중치들 각각의 크기는 달라 수 있다.
제1 프레임워크부(51)는 통합된 학습 파라미터(p1.2)를 다음 배치 학습에 적용할 학습 파라미터로 업데이트하고, 다음 배치 학습을 할 수 있다.
제2 및 제3 분산 서버(42, 43)의 제2 및 제3 프레임워크부(52, 53) 각각의 통합부(320)는 각각 제1.1 배치 학습 후 도출된 모든 학습 파라미터(p1.1', p2.1', p3.1')들을 이용하여, 제2.2 및 제3.2 파라미터(p2.1, p3.1)을 각각 통합하여 다음 배치 학습에 적용할 학습 파라미터로 각각 업데이트한 후, 다음 배치 학습을 할 수 있다.
이러한 과정은 통해, 제1 내지 제3 프레임워크부(51~53)는 모든 에포크가 종료될 때까지 테스트를 할 수 있다.
모든 에포크가 종료되면, 복수의 분산 서버(41~43) 중 어느 하나 또는 메인 서버(40)의 통합부(320)는 각각의 마지막 학습 파라미터(p1.n', p2.n', p3.n')를 통합하여, 최종 학습 파라미터(p_last)를 도출할 수 있다(n는 자연수). 최종 통합 함수(F')는 학습 중 사용된 통합 함수(F)와 상이할 수 있다. 최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다.
본 동기식 학습 방법은 비동기식 학습 방법에 비해 학습에 시간이 더 소요될 수 있으나, 각 학습 파라미터들을 균형있게 사용할 수 있다.
도 20을 참조하여 동기식 학습 방법의 다른 실시예를 서술한다. 도 20은 앞서 언급한 '확산 정책' 중 시간 주기별 공유 정책, 학습 주기별 공유 정책, 및 기타 규칙 정책 중 어느 한 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 16, 도 17, 및 도 19를 참조한다.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 미니 배치(b1~b10)에 대해 배치 학습(배치 TR)을 반복할 수 있다.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다. 이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다. 이 때 각 배치 학습의 시작은 동기되지 않아도 무관하다.
모든 프레임워크부(51~53)는 특정 시간 주기, 학습 주기, 또는 특정 시각에 최신의 학습 파라미터를 확산시킬 수 있다(S820). 본 실시예에서, 모든 프레임워크부(51~53) 각각은 세번째 배치 학습 종료 후에 도출된 제1.3', 제2.3', 및 제3.3' 학습 파라미터(p1.3', p2.3', p3.3')을 다른 분산 서버로 확산시킬 수 있다.
학습 파라미터의 확산 이후, 각 프레임워크부는 다음 배치 학습 전에 학습 파라미터들을 통합하여, 각각 제1.4, 제2.4, 및 제3.4 학습 파라미터(p1.4, p2.4, p3.4)로 업데이트할 수 있다. 이 후 각 프레임워크부(51~53)는 다음 학습 파라미터 확산 까지 배치 학습을 진행 수 있다.
도 14를 참조하면, 복수의 분산 서버(41~43) 중 어느 하나, 예를 들어, 제1 분산 서버(41)는 훈련된 모델 아키텍처 및 훈련된 학습 파라미터(p_last)를 아키텍처 테이블 및 학습 파라미터 테이블로 변환하여 이를 훈련된 학습 모델 테이블(추론용 모델 테이블(Ti); 공작기계의 고장 진단 예지 보전 학습 모델 테이블(Ti))로 저장할 수 있다(S670). 저장된 자료는 메인 서버(40)로 전송되거나 동기화될 수 있다.
도 15를 참조하면, 단말기(20)로부터 학습 쿼리와 동일한 공작기계의 고장 진단 예지 보전 기능의 딥러닝 추론 쿼리를 입력 받을 수 있다(S710). 본 실시예에서 메인 서버(40)는 딥러닝을 할 수 있는 제1 분산 서버(41)과 동일하다고 가정하면, 본 딥러닝 추론 쿼리는 메인 서버(40)이 수신할 수 있다. 이하, 메인 서버(40)에서 딥러닝 추론이 수행된다고 본다.
메인 서버(40)는 기 학습된 공작기계의 고장 진단 예지 보전 학습 모델 테이블(Ti)을 선택할 수 있다.공작기계의 고장 진단 예지 보전 학습 모델 테이블(Ti)은 사용자의 입력에 의해 선택될 수 있다. 딥러닝 추론 쿼리의 내용에 사용자가 지정한 학습 모델이 기술되어 있을 수 있다.
메인 서버(40)의 메인 프레임워크부(50)는 공작기계의 고장 진단 예지 보전 학습 모델 테이블(Ti)의 아키텍처 테이블을 메인 프레임워크부(50)에 적합한 추론용 모델 아키텍처로 구축할 수 있다(S730).
메인 프레임워크부(50)는 공작기계의 고장 진단 예지 보전 학습 모델 테이블(Ti)의 학습 파라미터를 상기 추론용 모델 아키텍처에 할당할 수 있다(S740).
메인 프레임워크부(50)는 상기 학습 파라미터가 할당된 추론용 공작기계의 고장 진단 예지 보전 모델 아키텍처를 이용하여, 추론용 데이터셋 테이블에 대해 공작기계(90)의 고장을 진단하거나 예측하는 추론을 할 수 있다(S750). 추론용 데이터셋 테이블은 데이터 수집기(400)를 통해 입력된 값이 변환된 것일 수 있다. 추론용 데이터셋 테이블은 데이터 수집기(400)를 통해 실시간으로 생성된 것일 수 있다.
메인 프레임워크부(50)는 추론 결과를 저장할 수 있다(S760).
상기 본 발명은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 즉, 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터가 읽을 수 있는 명령어, 데이터 구조, 프로그램 모듈, 및 기타 데이터 등 정보 저장을 위한 임의의 방법 또는 기술로서 구현된 모든 저장 가능한 매체를 포함하는 것으로, 휘발성/비휘발성/하이브리드형 메모리 여부, 분리형/비분리형 여부 등에 한정되지 않는다. 통신 저장 매체 는 반송파와 같은 변조된 데이터 신호 또는 전송 메커니즘, 임의의 정보 전달 매체 등을 포함한다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.
10: DB 서버 20: 단말기
40: 메인 서버 41: 제1 분산 서버
42: 제2 분산 서버 43: 제3 분산 서버
100: 제어부 120: 데이터셋 관리 모듈
130: 학습 모델 관리 모듈 160: 결과 관리 모듈
200: 저장부 220: 데이터셋
230: 학습 모델 260: 학습 결과
300: 프레임워크부 360: 변환부
370: 입출력부 400: 데이터 수집기
410: 수집기 제어부 420: 수집기 통신부
430: 수집기 상태 인식부 450: 수집기 감지부

Claims (11)

  1. 데이터베이스와 연동되는 딥러닝 프레임워크를 구비하는 데이터베이스 서버를 각각 구비하는 복수의 분산 서버, 및 상기 복수의 분산 서버를 관리하는 메인 서버를 포함하는 데이터베이스 연동 딥러닝 분산 훈련이 가능한 공작 기계 예지 보전 시스템으로서,
    상기 데이터베이스 서버는
    데이터베이스로서, 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및
    상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 딥러닝을 수행하는 프레임워크부;를 포함하고,
    상기 메인 서버는
    사용자로부터 공작기계의 고장 진단 예지 보전 기능의 훈련 쿼리를 입력받는 입출력부;
    복수의 학습 모델 테이블 및 훈련용 데이터셋 테이블을 구비하는 메인 서버 저장부;
    메인 서버 저장부에 저장된 복수의 학습 모델 테이블 중 상기 쿼리의 기능 및 상기 훈련용 데이터셋 테이블을 기초로 학습 모델 테이블을 선택하는 모델 선택 정책에 따라 제1 학습 모델 테이블을 선택하는 학습 모델 관리 모듈; 및
    상기 훈련용 데이터셋의 배치 사이즈, 상기 제1 학습 모델 테이블, 및 상기 훈련용 데이터셋 테이블을 상기 복수의 분산 서버로 확산하는 메인 서버 제어부를 구비하는, 시스템.
  2. 제 1 항에 있어서,
    상기 복수의 분산 서버 중 제1 분산 서버는
    상기 훈련용 데이터셋 테이블의 데이터 순서를 랜덤하게 변경한 후 상기 배치 사이즈에 맞게 분할하여 배치 데이터셋 테이블로 변환하는 제1 제어부; 및
    상기 제1 학습 모델 테이블에 속한 아키텍처 테이블을 이용하여 모델 아키텍처를 구축하고, 상기 제1 학습 모델 테이블에 속한 학습 파라미터 테이블을 초기화한 후 상기 모델 아키텍처에 할당하여, 상기 배치 데이터셋 테이블의 복수의 미니 배치를 이용하여 딥러닝 훈련을 수행하는 제1 프레임워크부;를 포함하는, 시스템.
  3. 제 2 항에 있어서,
    상기 제1 프레임워크부는 상기 복수의 미니 배치 중 하나의 미니 배치에 대한 배치 학습이 종료되면 신 학습 파라미터를 도출하고,
    상기 제1 제어부는 상기 신 학습 파라미터를 상기 복수의 분산 서버의 나머지 분산 서버로 확산하고,
    상기 제1 분산 서버는 상기 신 학습 파라미터가 생성되면, 상기 신 학습 파라미터와 상기 나머지 분산 서버에서 확산된 적어도 하나의 학습 파라미터와 통합하여, 다음 배치 학습에 적용할 학습 파라미터로 업데이트하는 제1 통합부를 더 포함하는, 시스템.
  4. 제 3 항에 있어서,
    상기 제1 통합부는 할당된 모든 에포크가 종료되면, 상기 제1 프레임워크부에서 도출한 마지막 학습 파라미터와 상기 나머지 분산 서버에서 마지막으로 확산된 적어도 하나의 학습 파라미터을 통합하여 최종 학습 파라미터를 도출하고,
    상기 제1 제어부는 훈련된 모델 아키텍처 및 상기 최종 학습 파라미터를 학습된 제2 학습 모델 테이블로 변환하여 상기 메인 서버로 전송하는, 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 통합부는 상기 복수의 분산 서버가 주기적으로 배치 학습의 시작을 같이 하는 동기식 학습인 경우, 동일 주기에서 도출된 모든 학습 파라미터들을 주기별로 통합하는, 시스템.
  6. 제 3 항에 있어서,
    상기 제1 프레임워크부는 상기 복수의 분산 서버 각각에서 독립하여 배치 학습하는 비동기식 학습인 경우, 상기 제2 분산 서버의 배치 학습의 종료와 무관하게 다음 배치 학습을 진행하는, 시스템.
  7. 제 6 항에 있어서,
    상기 제1 통합부의 통합에 사용되는 상기 제2 분산 서버에서 확산된 학습 파라미터는 마지막으로 확산된 것이고, 상기 제1 통합부에서 통합에 사용되지 않은 것인, 시스템.
  8. 제 7 항에 있어서,
    상기 제1 통합부는 통합시 모든 최신의 학습 파라미터에 대해 통합하는 모두 통합 정책, 및 적어도 하나의 타 학습 파라미터가 최신이면 통합하는 일부 통합 정책 중 어느 한 정책을 따르는, 시스템.
  9. 제 3 항에 있어서,
    상기 제1 제어부는 상기 제1 프레임워크부에서 매 배치 학습이 종료되면 신 학습 파라미터가 확산되는 즉시 공유 정책, 일정 시간이 경과되면 최신 학습 파라미터가 확산되는 시간 주기별 공유 정책, 및 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책 중 어느 한 정책에 따라 확산하는, 시스템.
  10. 제 4 항에 있어서,
    상기 입출력부는 공작 기계의 진동량, 소음량, 및 전력량을 측정한 측정값 리스트를 수신하고,
    상기 측정값 리스트를 추론용 데이터셋 테이블로 변환하는 데이터셋 관리 모듈; 및
    상기 메인 서버는 딥러닝을 수행하는 메인 서버 프레임워크부;를 더 포함하고,
    상기 메인 서버 프레임워크부는 상기 메인 서버의 입출력부에서 상기 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 추론 쿼리를 입력받으면, 상기 제2 학습 모델 테이블 및 상기 추론용 데이터셋 테이블을 이용하여 딥러닝 추론하는, 시스템.
  11. 데이터베이스와 연동되는 딥러닝 프레임워크를 구비하는 데이터베이스 서버를 각각 구비하는 복수의 분산 서버, 및 상기 복수의 분산 서버를 관리하는 메인 서버를 포함하는 데이터베이스 연동 딥러닝 분산 훈련이 가능한 공작 기계 예지 보전 시스템의 딥러닝 분산 및 공작 기계 예지 방법으로서,
    상기 데이터베이스 서버는
    데이터베이스로서, 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및
    상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 딥러닝을 수행하는 프레임워크부;를 포함하고,
    상기 메인 서버에서, 사용자로부터 공작기계의 고장 진단 예지 보전 기능의 훈련 쿼리를 입력받는 단계;
    상기 메인 서버에서 단말기로부터 사용자의 훈련 쿼리를 입력받는 단계;
    상기 메인 서버에서 상기 훈련 쿼리에 적합한 제1 학습 모델 테이블을 선택하는 단계; 및
    상기 메인 서버에 저장된 훈련용 데이터셋 테이블, 상기 훈련용 데이터셋의 배치 사이즈, 및 상기 제1 학습 모델 테이블을 상기 복수의 분산 서버에 확산하는 단계;를 포함하는, 방법.
KR1020210144998A 2021-10-27 2021-10-27 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법 KR20230060353A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210144998A KR20230060353A (ko) 2021-10-27 2021-10-27 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210144998A KR20230060353A (ko) 2021-10-27 2021-10-27 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20230060353A true KR20230060353A (ko) 2023-05-04

Family

ID=86379893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210144998A KR20230060353A (ko) 2021-10-27 2021-10-27 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20230060353A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102058124B1 (ko) 2019-01-25 2019-12-23 (주)비아이매트릭스 피벗 테이블 구조의 olap 결과를 이용한 딥러닝 예측 데이터 반영 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102058124B1 (ko) 2019-01-25 2019-12-23 (주)비아이매트릭스 피벗 테이블 구조의 olap 결과를 이용한 딥러닝 예측 데이터 반영 시스템

Similar Documents

Publication Publication Date Title
Lan et al. What is semantic communication? A view on conveying meaning in the era of machine intelligence
US10437843B2 (en) Optimization of database queries via transformations of computation graph
US10380185B2 (en) Generation of job flow objects in federated areas from data structure
CN109564568B (zh) 用于分布式数据集索引的装置、方法和机器可读存储介质
JP6647573B2 (ja) 人工知能モジュール開発システム及び人工知能モジュール開発統合システム
US20160034547A1 (en) Systems and methods for an sql-driven distributed operating system
US20140324747A1 (en) Artificial continuously recombinant neural fiber network
US11823073B2 (en) Declarative debriefing for predictive pipeline
Mortlock et al. Graph learning for cognitive digital twins in manufacturing systems
US20180165847A1 (en) Interface for data analysis
WO2016018944A1 (en) Systems and methods for a distributed query execution engine
US20210192378A1 (en) Quantitative analysis method and apparatus for user decision-making behavior
KR20230065038A (ko) 쿼리 기반 데이터베이스 연동 딥러닝 분산 시스템 및 그 방법
Gulia et al. Big data analytics for iot
Sanin et al. Manufacturing collective intelligence by the means of Decisional DNA and virtual engineering objects, process and factory
Marozzo et al. Edge computing solutions for distributed machine learning
Houzé et al. A generic and modular reference architecture for self-explainable smart homes
US20230244996A1 (en) Auto adapting deep learning models on edge devices for audio and video
KR20230060353A (ko) 딥러닝 프레임워크 데이터베이스 응용 공작 기계 예지 보전 장치, 이를 구비한 분산 시스템 및 그 방법
KR20220165391A (ko) 쿼리 기반 딥러닝 분산 시스템 및 분산 훈련 방법
KR102568011B1 (ko) 쿼리 기반 딥러닝 추론을 이용한 안면 검출 및 사생활 보호 시스템 및 그 방법
Bryndin Collaboration robots as digital doubles of person for communication in public life and space
US20210201179A1 (en) Method and system for designing a prediction model
US20240143611A1 (en) Query-based database linkage distributed deep learning system, and method therefor
Shouaib et al. Survey on iot-based big data analytics