Nothing Special   »   [go: up one dir, main page]

KR20190114694A - 인공지능을 이용한 시계열 데이터 학습 및 분석 방법 - Google Patents

인공지능을 이용한 시계열 데이터 학습 및 분석 방법 Download PDF

Info

Publication number
KR20190114694A
KR20190114694A KR1020180061857A KR20180061857A KR20190114694A KR 20190114694 A KR20190114694 A KR 20190114694A KR 1020180061857 A KR1020180061857 A KR 1020180061857A KR 20180061857 A KR20180061857 A KR 20180061857A KR 20190114694 A KR20190114694 A KR 20190114694A
Authority
KR
South Korea
Prior art keywords
neural network
time series
series data
data
artificial neural
Prior art date
Application number
KR1020180061857A
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 CN201980007119.2A priority Critical patent/CN111565633A/zh
Priority to PCT/KR2019/003540 priority patent/WO2019190185A1/ko
Priority to EP19777828.5A priority patent/EP3777674A1/en
Publication of KR20190114694A publication Critical patent/KR20190114694A/ko
Priority to US16/927,460 priority patent/US20200337580A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7264Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
    • A61B5/7267Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems involving training the classification device
    • A61B5/0456
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/316Modalities, i.e. specific diagnostic methods
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/04012
    • A61B5/0464
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/316Modalities, i.e. specific diagnostic methods
    • A61B5/318Heart-related electrical modalities, e.g. electrocardiography [ECG]
    • A61B5/346Analysis of electrocardiograms
    • A61B5/349Detecting specific parameters of the electrocardiograph cycle
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/316Modalities, i.e. specific diagnostic methods
    • A61B5/318Heart-related electrical modalities, e.g. electrocardiography [ECG]
    • A61B5/346Analysis of electrocardiograms
    • A61B5/349Detecting specific parameters of the electrocardiograph cycle
    • A61B5/352Detecting R peaks, e.g. for synchronising diagnostic apparatus; Estimating R-R interval
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/24Detecting, measuring or recording bioelectric or biomagnetic signals of the body or parts thereof
    • A61B5/316Modalities, i.e. specific diagnostic methods
    • A61B5/318Heart-related electrical modalities, e.g. electrocardiography [ECG]
    • A61B5/346Analysis of electrocardiograms
    • A61B5/349Detecting specific parameters of the electrocardiograph cycle
    • A61B5/363Detecting tachycardia or bradycardia
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7225Details of analog processing, e.g. isolation amplifier, gain or sensitivity adjustment, filtering, baseline or drift compensation
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7235Details of waveform analysis
    • A61B5/7264Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Cardiology (AREA)
  • Public Health (AREA)
  • Medical Informatics (AREA)
  • Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Animal Behavior & Ethology (AREA)
  • Surgery (AREA)
  • Veterinary Medicine (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physiology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Psychiatry (AREA)
  • Fuzzy Systems (AREA)
  • Databases & Information Systems (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Power Engineering (AREA)

Abstract

인공지능을 이용한 시계열 데이터의 학습 및 분석 방법이 제공된다.
본 발명의 일 실시예에 따른 시계열 데이터 분석 방법은, 컴퓨팅 장치에 의하여 수행되는 시계열 데이터의 분석 방법에 있어서, 상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계, 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계, 및 상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 단계를 포함할 수 있다.

Description

인공지능을 이용한 시계열 데이터 학습 및 분석 방법{METHOD FOR LEARNING AND ANALYZING TIME SERIES DATA BY USING ARTIFICIAL INTELLIGENCE}
본 발명은 인공지능을 이용한 시계열 데이터의 학습 및 분석 방법에 관한 것이다. 구체적으로 본 발명은, 복수개의 인공신경망을 이용하여 시계열 데이터의 학습 및 분석을 수행하는 방법에 관한 것이다.
정보의 디지털화 및 데이터 저장 기술의 발달에 따라, 대량의 데이터가 축적되어, 다양한 분야에서 머신러닝 기술이 도입되어 활용되고 있다. 머신러닝은 많은 수의 입력 데이터를 분석하여, 확률적으로 대상을 분류하거나 특정 범위 내의 값을 예측하는 기술이다. 머신러닝은 특정한 규칙에 의해 결과값을 도출하기보다 많은 수의 입력 데이터를 경험적으로 분석하여 확률적으로 결과값을 도출하는 방식으로 동작한다.
그런데 인공지능을 이용하여 시계열 데이터를 학습 및 분석함에 있어서, 시계열 데이터는 이미지 데이터 등과 비교하여 처리해야 하는 데이터의 길이가 매우 길 수 있다는 문제가 있다. 심전도 데이터를 예로 들면, 24시간 또는 그 이상의 시간 동안 측정된 심전도 데이터를 종합적으로 학습 및 분석하여 진단 결과를 도출하여야 하는데, 이는 학습 및 분석시 시간이 많이 걸릴 뿐만 아니라, 초기 입력 데이터가 점점 희미하게 희석되어 장기적인 데이터를 학습 및 분석함에 있어서 정확도 면에서도 문제가 발생할 수 있다.
한국공개특허 제10-2017-0132842호 (2017.12.04)
본 발명이 해결하고자 하는 기술적 과제는, 인공지능을 이용한 시계열 데이터 학습 및 분석의 연산량을 감소시키는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 인공지능을 이용한 시계열 데이터 학습 및 분석의 정확도를 향상시킬 수 있는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 인공지능을 이용한 심전도(ECG) 학습 및 분석의 연산량을 감소시키는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는, 인공지능을 이용한 심전도(ECG) 학습 및 분석의 정확도를 향상시킬 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 시계열 데이터 분석 방법은, 컴퓨팅 장치에 의하여 수행되는 시계열 데이터의 분석 방법에 있어서, 상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계, 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계, 및 상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 중간 인공신경망 및 상기 최종 인공신경망은 RNN(Recurrent Neural Network)일 수 있다.
일 실시예에서, 상기 최종 인공신경망의 입력층의 뉴런은 m개일 수 있다.
일 실시예에서, 상기 중간 출력 데이터를 얻는 단계는, 제1 컴퓨팅 장치가, 상기 복수개의 유닛에 포함된 제1 유닛의 피쳐를 상기 제1 컴퓨팅 장치에 구현된 상기 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m차원의 중간 출력 데이터를 얻는 단계, 및 제2 컴퓨팅 장치가, 상기 복수개의 유닛에 포함된 제2 유닛의 피쳐를 상기 제2 컴퓨팅 장치에 구현된 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m차원의 중간 출력 데이터를 얻는 단계를 포함할 수 있다.
일 실시예에서, 상기 최종 출력 데이터를 얻는 단계는, 제3 컴퓨팅 장치가, 상기 제1 컴퓨팅 장치로부터 상기 제1 유닛의 중간 출력 데이터를 제공 받고, 상기 제2 컴퓨팅 장치로부터 상기 제2 유닛의 중간 출력 데이터를 제공 받으며, 상기 제1 유닛의 중간 출력 데이터 및 상기 제2 유닛의 중간 출력 데이터를 상기 최종 인공신경망에 순차적으로 입력하되, 상기 제1 유닛 및 상기 제2 유닛은 시간적으로 바로 인접한 유닛인, 단계를 포함할 수 있다.
일 실시예에서, 상기 중간 인공신경망은 k(k는 2 이상의 자연수)개의 레벨로 이루어져 있고, 상기 중간 인공신경망에 입력하는 단계는, 상기 복수개의 유닛 각각의 피쳐를 레벨 1 중간 인공신경망에 입력하는 단계, 레벨 i(i는 1 이상의 자연수) 중간 인공신경망으로부터 얻은 레벨 i 출력 데이터를 레벨 i+1 중간 인공신경망에 입력하는 단계, 및 레벨 i+1 중간 인공신경망으로부터 레벨 i+1 출력 데이터를 얻는 단계를 포함하되, 상기 중간 출력 데이터는 레벨 k 중간 인공신경망으로부터 출력된 데이터일 수 있다.
일 실시예에서, 상기 시계열 데이터는, 심전도 데이터일 수 있다.
일 실시예에서, 상기 분석 결과는, 심전도 진단 결과일 수 있다.
일 실시예에서, 상기 n개의 유닛은, R-peak를 이용하여 스플릿된 비트(beat) 유닛일 수 있다.
일 실시예에서, 상기 스플릿된 n개의 비트 유닛은, 상기 시계열 데이터를 스플릿한 후 스플릿된 비트 사이의 유사도를 비교하여 선행하는 특정 비트와의 유사도가 기 설정된 수치 이상인 비트를 상기 특징 유닛으로 대체한 것일 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 시계열 데이터 학습 방법은, 컴퓨팅 장치에 의하여 수행되는 시계열 데이터의 학습 방법에 있어서, 상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계, 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계, 및 상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하는 단계를 포함할 수 있다.
일 실시예에서, 상기 중간 인공신경망 및 상기 최종 인공신경망은 RNN(Recurrent Neural Network)일 수 있다.
일 실시예에서, 상기 비교하는 단계는, 상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하여 오차를 계산하는 단계를 포함하고, 상기 비교하는 단계 다음에, 상기 오차를 역전파시켜 상기 중간 인공신경망의 가중치 및 상기 최종 인공신경망의 가중치를 조정하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 가중치를 조정하는 단계는, 상기 중간 인공신경망의 학습률(learning rate)을 상기 최종 인공신경망의 학습률의 1/n배로 하여 상기 중간 인공신경망의 가중치를 조정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 중간 인공신경망은 k(k는 2 이상의 자연수)개의 레벨로 이루어져 있고, 상기 중간 인공신경망에 입력하는 단계는, 상기 복수개의 유닛 각각의 피쳐를 레벨 1 중간 인공신경망에 입력하는 단계, 레벨 i(i는 1 이상의 자연수) 중간 인공신경망으로부터 얻은 레벨 i 출력 데이터를 레벨 i+1 중간 인공신경망에 입력하는 단계, 및 레벨 i+1 중간 인공신경망으로부터 레벨 i+1 출력 데이터를 얻는 단계를 포함하되, 상기 중간 출력 데이터는 레벨 k 중간 인공신경망으로부터 출력된 데이터일 수 있다.
일 실시예에서, 상기 시계열 데이터는, 심전도 데이터일 수 있다.
일 실시예에서, 상기 n개의 유닛은, R-peak를 이용하여 스플릿된 비트(beat) 유닛일 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 시계열 데이터 분석 장치는, 시계열 데이터를 제공 받는 네트워크 인터페이스, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하고, 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션, 및 상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 인스트럭션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 시계열 데이터 학습 장치는, 시계열 데이터를 제공 받는 네트워크 인터페이스, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하고, 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션, 및 상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하는 인스트럭션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 기록매체는, 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계, 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계, 시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계, 및 상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 단계를 수행하도록 하는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록매체일 수 있다.
도 1은 웨어러블 심전도 측정 장치와 그 부착 방법을 예시한 도면이다.
도 2는 심전도 측정 장치, 네트워크(210) 및 서버를 포함하는 심전도 분석 시스템을 예시한 도면이다.
도 3은 종래의 RNN 기반의 심전도 분석 방법을 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 분석 방법을 예시한 순서도이다.
도 5는 본 발명의 일 실시예에 따른 심전도 신호 스플릿 방법을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 유사 비트 처리 방법을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 중간 인공신경망 및 최종 인공신경망을 예시한 도면이다.
도 8 내지 10은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 예시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 예시한 순서도이다.
도 12는 본 발명의 일 실시예에 따른 인공신경망 구조에서, 중간 인공신경망이 복수개의 레벨로 구현된 경우를 예시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 인공신경망의 구조에서, 중간 인공신경망이 복수개의 레벨로 구현된 경우의 시계열 데이터 분석 방법을 예시한 순서도이다.
도 14는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법을 예시한 순서도이다.
도 15는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법에서 사용되는 학습 데이터를 예시한 도면이다.
도 16은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 학습 방법을 예시한 도면이다.
도 17은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 학습 방법을 예시한 순서도이다.
도 18은 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 발명이 속하는 기술 분야에서 '인공신경망(neural network)'이란, 생물의 신경망, 특히 인간의 시각/청각 피질을 본따 만든 복수개의 층과 각 층을 구성하는 복수개의 노드로 이루어진 그래프 구조를 의미한다. 인공신경망은 1개의 입력층, 1개 이상의 은닉층 및 1개의 출력층을 포함한다.
본 발명이 속하는 기술 분야에서 '입력층(input layer)'이란, 인공신경망의 층 구조에서 분석/학습하고자 하는 데이터를 입력 받는 층을 의미한다.
본 발명이 속하는 기술 분야에서 '출력층(output layer)'이란, 인공신경망의 층 구조에서 결과값이 출력되는 층을 의미한다.
본 발명이 속하는 기술 분야에서 '은닉층(hidden layer)'이란, 인공신경망의 층 구조에서 입력층과 출력층을 제외한 모든 층을 의미한다. 인공신경망은 뉴런의 연속된 층으로 구성되어 있으며, 각 층의 뉴런은 다음 층의 뉴런에 연결되어 있다. 은닉층 없이 입력층과 출력층을 바로 연결하면 각 입력이 다른 입력에 상관없이 독립적으로 출력에 기여하여 정확한 결과를 얻기 어렵다. 실제로는 입력 데이터가 상호 의존적이고 서로 결합되어 복잡한 구조로 출력에 영향을 미치므로, 은닉층을 추가하여 은닉층의 뉴런이 최종 출력에 영향을 미치는 입력 간의 미묘한 상호작용을 잡아낼 수 있다. 즉, 은닉층이 데이터에 있는 고수준의 특징이나 속성을 처리하는 것으로 볼 수 있다.
본 발명이 속하는 기술 분야에서 '뉴런(neuron)'이란, 생물학적 신경망에서의 뉴런을 인공신경망에 대응시킨 개념이다. '뉴런'을 '노드'라고 하기도 한다.
본 발명이 속하는 기술 분야에서 '가중치(weight)'란, 생물학적 신경망에서 반복된 신호 전달을 통해 시냅스 연결이 강화된 정도를 인공신경망에 대응시킨 개념이다. 생물학적 신경망에서 뉴런 1에서 뉴런 2로 신호가 자주 전달될 경우 신호전달의 효율성을 위하여 뉴런 1에서 뉴런 2로 가는 경로, 곧 시냅스 연결이 강화된다. 이를 일종의 학습 또는 기억의 과정이라고 보며, 인공신경망에서는 이를 '가중치'라는 개념으로 설명하고 있다.
본 발명이 속하는 기술 분야에서 '역전파(back propagation)'란, '오차의 역방향 전파(backward propagation of errors)'에서 유래된 단어로서, 출력값과 실제값의 차이인 오차(에러)의 역전파를 통해 인공신경망의 가중치를 조정하는 것을 의미한다.
본 발명이 속하는 기술 분야에서 '경사감소법(gradient descent)'이란, 역전파시 학습 모델의 가중치를 결정하는 방법으로서, 가중치를 포함하는 피드포워드 함수값의 출력값과 레이블된 실제값과의 차이를 최소화하는 가중치를 찾아가는 방법을 의미한다. 일례로, 손실 함수의 형태가 포물선 모양으로 표현될 때, 그 최저점을 찾아 가중치를 계산할 수 있으며, 최저점을 찾는 과정이 마치 경사진 언덕을 내려가는 것과 같은 모양이어서 경사감소법이라고 명명되었다.
본 발명이 속하는 기술 분야에서 '학습률(learning rate)'이란, 인공신경망의 가중치 조정을 위한 경사감소법 알고리즘에서 최저값을 찾아가는 스텝(step)의 크기를 의미한다. 학습률이 크면 조정 속도는 빠르지만 정밀도가 떨어지고, 학습률이 작으면 정밀도는 높지만 조정 속도가 느려진다.
본 발명이 속하는 기술 분야에서 '컨벌루션 인공신경망(Convolutional Neural Networks; CNN)'이란, 인공신경망에 필터 기술을 결합한 딥러닝 모델로서, 인공신경망이 입력 데이터의 특징을 더 잘 습득할 수 있도록 최적화시킨 것이다. 컨벌루션 인공신경망은 컴퓨터 비전(computer vision) 분야에서 뛰어난 성능을 보이고 있다.
본 발명이 속하는 기술 분야에서 '순환 인공신경망(Recurrent Neural Network; RNN)'이란, 시계열 데이터(time series data)와 같이 시간의 흐름에 따라 변화하는 데이터를 학습하기에 적합한 딥러닝 모델로서, 기준 시점(t)과 다음 시점(t+1)에 네트워크를 연결하여 구성한 인공신경망이다. 순환 인공신경망은 노드 간의 연결이 순환적 구조를 갖는 특징을 갖고 있으며, 이러한 구조는 인공신경망이 시변적 특징을 효과적으로 처리할 수 있도록 해준다. 순환 인공신경망은 시퀀스 형태의 입력을 효과적으로 처리할 수 있으며, 필기체 인식이나 음성 인식과 같이 시변적 특징을 가지는 시계열 데이터의 처리에 좋은 성능을 보여주고 있다.
이상에서 설명한 인공지능 관련 기술 및 용어들은 위키피디아, 유튜브 등의 웹사이트에 자세히 설명되어 있으므로 자세한 설명은 생략한다. 예컨대 순환 인공신경망은 https://en.wikipedia.org/wiki/Recurrent_neural_network 등의 문헌에 자세히 설명되어 있다.
본 명세서에서 '시계열 데이터'란, 시간 순서로 나열된 데이터를 의미한다. 다만 반드시 시간적으로 연속적(continuous)일 필요는 없고, 이산적(discrete)인 데이터라도 시간 순서로 나열된 것이라면 본 명세서에서 말하는 '시계열 데이터'가 될 수 있다.
본 명세서에서 '유닛'이란, 시계열 데이터가 시간 축에서 2개 이상의 개체로 스플릿(split)되었을 때의 각 개체를 의미한다.
본 명세서에서 '피쳐'란, 시계열 데이터 또는 유닛으로부터 추출한 시계열 데이터 또는 유닛의 특징을 의미한다.
본 명세서에서 '중간 인공신경망'이란, 입력 데이터를 제공 받아 중간 출력 데이터를 출력하는 중간 단계의 인공신경망을 의미한다. 중간 출력 데이터는 인공지능을 이용하여 최종적으로 얻고자 하는 값이 아니라는 점에서 통상의 인공신경망의 출력값과 다르다.
본 명세서에서 '최종 인공신경망'이란, 중간 인공신경망으로부터 중간 출력 데이터를 제공 받아 최종 출력 데이터를 출력하는 최종 단계의 인공신경망을 의미한다. 최종 인공신경망은 본 발명의 일 실시예에 따른 복수개의 인공신경망으로 구성된 인공지능 시스템의 말단(terminal)에 위치하는 인공신경망으로서, 최종 인공신경망에서 출력되는 최종 출력 데이터는 인공지능을 이용하여 최종적으로 얻고자 하는 값이다.
이하 설명할 본 발명은 인공지능을 이용한 시계열 데이터의 학습 및 분석 방법에 관한 것이다. 구체적으로, 본 발명은 복수개의 인공신경망을 이용하여 시계열 데이터의 학습 및 분석을 수행하는 시계열 데이터의 학습 및 분석 방법을 개시한다.
본 명세서에서 본 발명을 구체적으로 설명하기 위하여 시계열 데이터의 일례로서 심전도를 예시한다. 구체적으로, 심전도 학습 및 분석시에 본 발명의 일 실시예에 따른 복수개의 인공신경망을 이용하는 과정을 설명함으로써 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터의 학습 및 분석 방법을 설명하고자 한다.
이하, 첨부된 도면들을 참조하여 본 발명에 대하여 상세히 설명한다.
심전도(electrocardiogram)란 심장의 전기적 활동을 분석하여 파장 형태로 기록한 것을 의미한다. 심전도는 심박동과 관련된 전위를 신체 표면에서 도형으로 기록한 것으로서, 순환기 질환의 진단을 위한 검사로 가장 많이 사용되는 검사이다.
심전도는 부정맥과 관상동맥질환의 진단에 많이 사용된다. 부정맥이 간헐적으로 발생하는 경우에는 한번의 심전도 검사만으로는 부정맥을 진단할 수 없으므로 일상 생활 중에 기록되는 심전도를 얻어낼 필요가 있다. 자주 발생하지 않는 부정맥의 경우 짧은 시간 동안의 심전도 기록으로는 발견되지 않을 수 있으므로, 부정맥이 의심될 경우 정확한 진단을 위해 오랜 시간 동안 심전도를 측정하여 기록하는 것이다.
종래의 심전도 측정 장치는 신체에 많은 전극을 부착하여 측정하는 방식이었다. 예컨대 통상적으로 사용되는 홀터 심전도계(Holter monitor)는 흉부에 5~7개의 전극을 부착하고 무게 500 g 정도의 검사기기를 허리에 착용하여 심전도를 측정하는 방식이었다. 종래의 심전도 측정 장치는 크기가 크고 무거우며, 많은 전극이 달려 신체에 부착시 거부감이 있고 자유로운 일상 생활을 방해하는 문제가 있었다.
이러한 문제점을 해결하기 위해 최근 개발되고 있는 웨어러블 형태의 심전도 측정 장치는, 장치의 크기 및 무게를 줄이고, 전극의 수를 최소화하고 있다. 전극의 수를 최소화하는 이유는 사용자의 일상 생활에서의 편의성과 심전도 측정 장치의 배터리 성능을 함께 고려한 것이다.
도 1은 웨어러블 심전도 측정 장치와 그 부착 방법을 예시한 도면이다.
도 1(a)는 웨어러블 심전도 측정 장치(100)를 예시한 것으로서, 도 1(a)에 나타난 것과 같이 전극의 수가 2개이다.
도 1(b)는 웨어러블 심전도 측정 장치(100)를 신체에 부착하여 심전도를 측정하는 방법을 예시한 것으로서, 도 1(b)에 나타난 것과 같이 심장 근처에 전극을 부착하여 심전도를 측정한다.
웨어러블 심전도 측정 장치(100)는 종래의 심전도 측정 장치에 비해 휴대가 간편해졌으나, 종래의 심전도 측정 장치가 복수개의 전극을 이용하여 다채널(multi-channel)의 심전도 신호를 분석하여 비교적 정확한 심전도 측정 및 진단이 가능했던 것에 비해, 웨어러블 심전도 측정 장치(100)는 1채널의 심전도 신호만이 측정되어 심전도 측정 및 진단의 정확도가 떨어지는 문제가 있었다.
웨어러블 심전도 측정 장치(100)에서는 종래의 다채널로 수집되는 심전도 측정 장치, 예컨대 홀터 심전도계에서 사용되는 심전도 분석 방법을 그대로 사용할 수 없고, 1채널의 심전도 신호만으로 부정맥 등을 진단해야 하는 어려움이 있었다. 그럼에도 불구하고 웨어러블 심전도 측정 장치(100)는 휴대의 편리성 등의 강점이 있으므로, 웨어러블 심전도 측정 장치(100)에서 측정된 1채널의 심전도 신호만을 이용하여 부정맥 등을 진단하는 방법에 대한 많은 연구가 진행되고 있다. 특히, 인공지능 분야에서 딥러닝 기법의 발전으로 인해 1개의 신호만으로도 충분히 높은 정확도의 부정맥 진단을 달성할 가능성이 보이고 있다.
다만, 본 발명에서 피검자의 심전도를 측정하는 장치는 웨어러블 형태의 심전도 측정 장치(100)에 한정되지 않고 신체에 부착되어 심전도를 측정할 수 있다면 어떤 형태의 심전도 측정 장치(100)라도 무방하다. 이하, 설명의 편의를 위하여 본 발명에서 피검자의 심전도를 측정하는 장치를 '심전도 측정 장치(100)'로 통일한다.
도 2는 심전도 측정 장치, 네트워크 및 서버를 포함하는 심전도 분석 시스템을 예시한 도면이다.
심전도 측정 장치(100)는 피검자의 심전도를 측정할 뿐, 자체적으로 분석 기능을 제공하지 않는 경우가 많으므로, 심전도 측정 장치(100)는 심전도 측정만을 수행하고, 심전도 분석은 서버(200) 단에서 이루어지도록 하는 것이 바람직하다. 구체적으로, 심전도 측정 장치(100)는 심전도를 측정하여 서버(200)에 전송하고, 서버(200) 단에서 인공지능 등을 이용하여 심전도 데이터를 분석하는 것이 바람직하다.
도 2에 나타난 것과 같이, 본 발명의 일 실시예에 따른 심전도 분석 시스템은 심전도 측정 장치(100), 네트워크(210) 및 서버(200)를 포함할 수 있다.
피검자는 심전도 측정 장치(100)를 부착한 상태에서 일상 생활을 한다. 심전도 측정 장치(100)에서 측정된 심전도 데이터는 네트워크(210)를 통해 서버(200)로 전송된다. 이 때 서버(200)는 병원의 서버일 수 있고, 의료 서비스 제공 업체의 서버일 수도 있으며, IT 업체의 서버일 수도 있고, 보건복지부 등 정부 기관의 서버일 수도 있다. 개인의 심전도 데이터는 민감한 의료 정보이므로, 서버(200)는 의료 정보의 수집 및 분석이 허용된 업체의 서버인 것이 바람직하다.
서버(200)는 심전도 측정 장치(100)로부터 수신한 심전도 데이터를 이용하여 학습 및 분석을 수행한다. 서버(200)가 심전도 데이터를 학습함에 있어서, 의료 전문가, 예컨대 심장병 전문의(cardiologist)가 심전도 진단 결과를 레이블로 붙인 심전도 데이터를 학습하도록 할 수 있다.
인공지능의 특성상, 인공신경망의 학습에는 긴 시간과 높은 컴퓨팅 파워가 필요한 반면, 인공신경망의 적용에는 상대적으로 짧은 시간과 낮은 컴퓨팅 파워로도 충분하다. 따라서 심전도 데이터의 학습은 서버(200) 단에서 수행하도록 하되, 심전도 데이터의 분석은 심전도 측정 장치(100) 자체, 심전도 측정 장치(100)와 유/무선으로 연결된 별도의 심전도 분석 장치, 심전도 측정 장치(100)와 유/무선으로 연결된 스마트폰, 타블렛, 노트북 컴퓨터 등에서 수행하도록 할 수 있다.
다만 본 명세서에서는 서버(200)에서 심전도 데이터의 학습 및 분석이 모두 이루어지는 것을 전제로 본 발명의 일 실시예에 따른 심전도 데이터의 학습 및 분석 방법을 설명한다. 이러한 서술이 심전도 데이터의 학습 및 분석이 심전도 측정 장치(100) 자체, 심전도 측정 장치(100)와 유/무선으로 연결된 별도의 심전도 분석 장치, 심전도 측정 장치(100)와 유/무선으로 연결된 스마트폰, 타블렛, 노트북 컴퓨터 등에서 수행되는 것을 배제하는 것은 아니다.
현재까지 연구된 인공지능을 이용한 심전도 데이터의 학습 및 분석 방법은 CNN에 기반하고 있다. CNN은 인공신경망에 필터 기술을 결합한 딥러닝 모델로서, 이미지 분석 등 컴퓨터 비전(computer vision) 분야에서 뛰어난 성능을 보이고 있다. 하지만 심전도는 이미지와는 달리 순차적인 맥락(sequential context)을 가지는 시계열 데이터이기 때문에, 이미지 분석에 특화된 CNN 기술을 이용하여 심전도를 분석하는 데에는 한계가 있다.
CNN 기반의 심전도 분석 방법은 심전도 신호 전체의 순차적인 맥락을 읽는 것이 아니라 심전도 신호 일부의 특징을 파악하고 이러한 특징들을 조합하여 전체 심전도 분석 결과를 도출한다. CNN 기반의 심전도 분석 방법은 거시적인 관점이 아닌 미시적인 관점에서 심전도 데이터를 분석함으로 인해, 심전도 신호 일부에 노이즈가 포함되어 있는 경우 해당 부분의 특징을 잘 파악하지 못하게 되고, 이는 전체 심전도 신호 판별 정확도에 악영향을 미치게 된다. 또한 상충되는 여러 개의 특징이 한 신호에 존재할 경우, 필터링된 특징이 진단에 고려되지 않아 판별 정확도가 확연히 떨어지는 문제가 있다.
이를 극복하기 위하여 RNN을 이용한 심전도 분석 방법에 대한 연구가 한창 진행 중이다.
도 3은 종래의 RNN 기반의 심전도 분석 방법을 예시한 도면이다.
도 3(a)는 심전도 측정 장치(100)에서 일정 시간 동안 측정된 심전도 신호를 예시한 것이다.
도 3(a)에 예시된 심전도 신호에서 뾰족하게 솟아 오른 부분은 R-peak이다. R-peak에 대해서는 https://en.wikipedia.org/wiki/QRS_complex 등에 자세히 설명되어 있으므로 자세한 설명은 생략한다.
도 3(a)는 심전도 측정 장치(100)에서 일정 시간 동안 측정된 심전도 신호가 3개의 비트(beat: 심장 박동 단위를 의미) 단위로 RNN에 입력되는 것을 예시한 것이다.
일정 시간 동안 측정된 심전도 신호는 R-peak를 이용하여 비트(beat) 단위로 스플릿(split)된다. RNN에는 시간적으로 바로 인접한 3개의 비트를 함께 입력하는데, 심전도 신호로부터 부정맥을 판별하기 위해서는 사전 비트, 판별할 비트, 사후 비트 사이의 관계가 중요하기 때문이다. 즉, 사전 비트, 판별할 비트, 사후 비트의 발생 간격, 높이 차 등이 부정맥 판별의 중요한 고려 요소가 되기 때문이다.
심전도 신호가 9개의 비트(beat)로 나누어지고, 각 비트를 A, B, C, D, E, F, G, H, I로 명명할 때, RNN에는 A+B+C, B+C+D, C+D+E, D+E+F, E+F+G, F+G+H 및 G+H+I가 입력된다.
도 3에 나타난 것과 같이, 하나의 RNN에 A+B+C, B+C+D, C+D+E, D+E+F, E+F+G, F+G+H 및 G+H+I가 순차적으로 입력된다.
비트 하나를 250 Hz로 샘플링한다고 할 때, 도 3(a)의 심전도 신호를 종래의 RNN을 이용하여 분석하면, 모두 7(판별 대상 비트의 수)×3(인접한 3개의 비트를 함께 입력)×250(각 비트의 샘플링 수) = 5250 길이의 입력을 처리하여야 한다.
게다가 부정맥은 항상 출현하는 것이 아니기 때문에, 장시간에 걸쳐 피검자의 심전도 신호를 수집하여 분석하여야 한다. 건강한 성인의 심박수는 1분당 60~100회이며, 이를 24시간으로 환산하면 86,400~144,000회이다. 1분당 심박수가 80회라고 가정하면 24시간의 심박수는 115,200회이다. 이는 곧 1분에 측정되는 비트 수가 80개이고, 24시간 동안 측정되는 비트 수가 115,200개임을 의미한다.
115,200개의 비트 각각을 판별하기 위해서는 각각의 비트에 대한 사전 비트와 사후 비트를 함께 고려하여야 하므로, 비트 하나를 250 Hz로 샘플링한다고 할 때, RNN이 약 115,200(판별 대상 비트의 수)×3(인접한 3개의 비트를 함께 입력)×250(각 비트의 샘플링 수) = 86,400,000 길이의 입력을 처리하여야 한다.
CNN 기반의 심전도 분석은 RNN 기반의 심전도 분석에 비해 속도는 빠르지만 심전도 신호의 순차적인 맥락을 읽을 수 없으므로 분석의 정확도가 떨어진다. 반면, RNN 기반의 심전도 분석은 심전도 신호의 순차적인 맥락을 읽을 수 있으나, 처리하여야 할 입력의 길이가 너무 길어지기 때문에 심전도 분석의 실시간성을 보장하기가 어렵다.
도 4는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 분석 방법을 예시한 순서도이다.
도 4에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 분석 방법은, 심전도 신호 수집 단계(S411), 심전도 신호 전처리 단계(S412), R-peak 검출 단계(S413), 심전도 신호 스플릿 단계(S421), 비트의 유의성 판단 단계(S422), 유사 비트 처리 단계(S430), 피쳐(feature) 추출 단계(S440), 중간 인공신경망 분석 단계(S450), 최종 인공신경망 분석 단계(S460) 및 판별 결과 보고(report) 단계(S470)를 포함할 수 있다.
심전도 신호 수집 단계(S411)는 서버(200)가 심전도 측정 장치(100)로부터 심전도 신호를 수신하여 수집하는 단계이다.
심전도 신호 전처리 단계(S412)는 심전도 신호에 섞여 있는 노이즈, 신호 단절, 신호 간섭 등을 처리하는 단계이다. 구체적으로, Band Pass Filter 등과 같이 기존에 잘 알려진 방법을 이용하여 심전도 측정 장치(100)로부터 수신한 심전도 신호를 전처리할 수 있다.
R-peak 검출 단계(S413)는 심전도 신호에서 R-peak를 검출하는 단계이다. R-peak를 검출할 때는 특정한 검출 알고리즘에 한정되지 않고, Pan-Tompkins algorithm, Hilbert transform, Kathirvel et al (An efficient R-peak detection based on new nonlinear transformation and first-order Gaussian differentia-tor. Cardiovascular Engineering and Technology) 등 기존에 알려진 다양한 검출 알고리즘을 사용할 수 있다.
심전도 신호 스플릿 단계(S421)는 검출된 R-peak를 이용하여 심전도 신호를 비트 단위로 스플릿하는 단계이다.
비트의 유의성 판단 단계(S422)는 R-peak를 이용하여 스플릿한 비트가 실제 심박에 대응되는지 여부를 판단하는 단계이다. 예를 들어 갑작스러운 노이즈가 R-peak로 잘못 판단되었을 경우, 잘못 판단된 R-peak를 기준으로 스플릿된 비트는 실제 심박에 대응되지 않는다.
사람의 심장 박동은 비슷한 길이를 유지하는 특성이 있기 때문에 너무 짧거나 긴 비트는 R-peak 검출 단계에서 오검출이 발생한 것으로 볼 수 있다. 구체적으로, R-peak를 이용하여 스플릿한 비트가 통계적으로 너무 길거나(예: 99 percentile 이상), 너무 짧은 경우(예: 1 percentile 이하), R-peak 검출 단계에서 오검출이 발생한 것으로 볼 수 있으며, 이 경우 다시 R-peak를 검출하여야 한다. 재차 R-peak를 검출할 때 사용하는 알고리즘은 이전에 사용했던 알고리즘이 아닌 다른 알고리즘을 사용하거나, 이전에 사용했던 알고리즘의 파라미터를 수정하여 사용할 수 있으며, 통계적으로 너무 긴 비트와 통계적으로 너무 짧은 비트에 대해 각각 다른 알고리즘을 적용할 수도 있다. 다시 R-peak를 검출하는 이유는, R-peak 검출 알고리즘은 100 % 정확도를 보장하지 못하며, 특히 웨어러블 디바이스는 데이터 측정 및 전송시 많은 노이즈가 발생할 수 있기 때문이다.
비트의 유의성 판단 단계(S422)에서 스플릿된 비트가 통계적으로 유의하지 않은 경우(S422의 '아니오'), 다른 적합한 R-peak 검출 알고리즘을 선택하고(S423), 선택된 R-peak 검출 알고리즘을 이용하여 다시 R-peak를 검출한다(S424). 선택된 R-peak 검출 알고리즘을 이용하여 검출된 R-peak를 이용하여 다시 심전도 신호를 비트 단위로 스플릿한다. 스플릿된 비트가 통계적으로 유의하다고 판단될 때까지 R-peak 검출 알고리즘 선택 및 R-peak 검출 과정을 반복한다.
비트의 유의성 판단 단계(S422)에서 스플릿된 비트가 통계적으로 유의한 경우(S422의 '예'), 유사 비트 처리 단계(S430)를 수행한다. 유사 비트 처리 단계(S430)는 사전 발생 비트 중 현재 비트와 유사한 비트가 있으면 현재 비트를 사전 발생 비트로 대체시키는 단계이다. 유사 비트 처리 단계(S430)가 필수적인 것은 아니나, 유사 비트 처리 단계(S430)를 통해 컴퓨터의 연산량을 감소시킬 수 있다.
피쳐 추출 단계(S440)는 각 비트의 피쳐를 추출하는 단계이다. 피쳐 추출은 신호 처리에서 널리 사용되는 FFT(Fast Fourier Transform), MFCC(Mel Frequency Cepstral Coefficient), Filter Bank, Wavelet 등 다양한 방법을 사용할 수 있다.
중간 인공신경망 분석 단계(S450)는 각 비트의 피쳐를 중간 인공신경망에 입력하여 중간 출력 데이터를 얻는 단계이다. 중간 출력 데이터는 인공지능을 이용하여 최종적으로 얻고자 하는 값이 아니라는 점에서 통상의 인공신경망의 출력값과 다르다. 중간 인공신경망 및 중간 인공신경망 분석 단계(S450)에 대한 자세한 설명은 추후 도 7 내지 도 12를 참조하여 상세하게 설명하도록 한다.
최종 인공신경망 분석 단계(S460)는 중간 인공신경망으로부터 중간 출력 데이터를 제공 받아 최종 출력 데이터를 얻는 단계이다. 최종 인공신경망은 본 발명의 일 실시예에 따른 복수개의 인공신경망으로 구성된 인공지능 시스템의 말단(terminal)에 위치하는 인공신경망으로서, 최종 인공신경망에서 출력되는 최종 출력 데이터는 인공지능을 이용하여 최종적으로 얻고자 하는 값이다. 최종 인공신경망 및 최종 인공신경망 분석 단계(S460)에 대한 자세한 설명은 추후 도 7 내지 도 12를 참조하여 상세하게 설명하도록 한다.
판별 결과 보고 단계(S470)는 최종 인공신경망 분석 단계(S460)에서 얻은 최종 출력 데이터를 이용하여 진단 결과를 생성하여 보고하는 단계이다. 구체적으로 판별 결과 보고 단계(S470)는, 심전도 신호를 분석하여 피검자에게 부정맥이 있는지 여부를 판별한 후 판별 결과를 보고하는 것일 수 있다.
도 5는 본 발명의 일 실시예에 따른 심전도 신호 스플릿 방법을 예시한 도면이다.
도 5에 나타난 것과 같이, 심전도 신호는 R-peak를 기준으로 비트 단위로 스플릿될 수 있다. 구체적으로, 심전도 신호에서 R-peak 왼쪽을 스플릿할 수도 있고, R-peak 오른쪽을 스플릿할 수도 있다. R-peak를 기준으로 심전도 신호를 스플릿한다면 심전도 신호를 스플릿하는 위치는 어느 위치라도 무방하다. 일반적으로 심박의 파형은 P-QRS-T으로 구분되며, 도 5는 이를 반영하여 R-peak가 각 비트의 중심에 오도록 심전도 신호를 스플릿하였다.
도 6은 본 발명의 일 실시예에 따른 유사 비트 처리 방법을 예시한 도면이다.
심전도 신호를 이용하여 부정맥을 판별하기 위해서는 장시간의 데이터 수집이 필요하다. 부정맥은 불규칙하게 발생하는 것이 특징이기 때문에 그 발생 시점을 가늠할 수가 없다. 따라서 며칠에 걸친 긴 시간 동안 심전도를 측정할 수 있도록 피검자에게 웨어러블 디바이스 형태의 심전도 측정 장치(100)를 부착하도록 한다.
심전도 측정 장치(100)에서 측정된 심전도 신호를 서버(200)에 전송하여 서버(200)에서 심전도 신호를 분석할 때, 인공신경망에 데이터를 입력하기 전에 이미 발생한 비트 중에 유사한 비트가 있다면 사전에 발생한 비트만을 분석하고 그 결과를 같이 사용하여 분석 속도를 높일 수 있다.
도 6(a)에 나타난 것과 같이, 현재 비트 K를 사전 발생 비트인 A, B, C, D, E, F, G, H, I 및 J와 비교하여 유사도를 계산한다. 현재 판단할 비트와 사전에 발생한 N개의 비트와의 유사도를 계산하고, 임계치 이상 유사한 사전 발생 비트 중에서 가장 유사한 비트를 대체 비트로 선택한다.
현재 비트 K와 임계치 이상 유사한 사전 발생 비트 중에서 가장 유사한 비트가 비트 G인 경우(6(b) 참고), 비트 K가 들어갈 자리에 비트 G를 대신 넣는다. 유사한 비트가 없을 경우에는 비트 K를 유지한다.
N개의 사전 비트 데이터만 유지하기 때문에 다음 비트의 유사도 판단시에는 도 6(c)와 같은 상황이 된다.
이와 같이 생성된 유사도 기반의 비트 연결 정보를 사용하여, 비트 K에 대해서는 별도의 분석을 하지 않고 비트 G의 분석 결과를 공유하게 된다. 또한 이 단계에서 생성된 연결 정보는 진단이 모두 끝난 후 비트 K의 결과를 복원하는 데 사용된다. 유사도 계산 알고리즘은 L1, L2, DTW 등 잘 알려진 유사도 알고리즘 중 어느 것을 사용하여도 무방하다. 사람의 심전도는 비슷한 신호가 반복되는 경향이 강하므로 이와 같은 유사도 방식의 비트 필터링을 통해 계산량을 대폭 감소시킬 수 있다.
도 7은 본 발명의 일 실시예에 따른 중간 인공신경망 및 최종 인공신경망을 예시한 도면이다.
전술한 것과 같이 본 발명의 일 실시예에 따른 심전도 분석 방법에 의하면, R-peak를 이용하여 심전도 신호를 비트 단위로 스플릿한 후, 각 비트의 피쳐를 추출하고, 각 비트의 피쳐를 중간 인공신경망에 입력한다.
도 7(a)는 본 발명의 일 실시예에 따른 중간 인공신경망을 예시한 도면이다. 도 7(a)에 나타난 것과 같이, 어느 하나의 비트, 예컨대 비트 A에 대하여 t0, t1, ..., tv의 피쳐가 추출된 경우, 비트 A의 v+1개의 피쳐가 중간 인공신경망의 입력층에 있는 v+1개의 노드에 입력된다.
중간 인공신경망에 입력된 데이터는 은닉층을 거쳐 출력층에 있는 m개의 노드로 출력된다. 중간 인공신경망의 출력층에 있는 m개의 노드에 출력되는 값은 비트 A의 특징을 나타낸 것일 수 있다. 다만 주의할 것은, 중간 인공신경망의 출력층에 있는 m개의 노드에 출력되는 값은 인공지능을 이용하여 심전도 신호를 종합적으로 분석하여 최종적으로 얻고자 하는 값이 아니라, 어느 하나의 비트, 예컨대 비트 A의 특징을 m차원으로 나타낸 것이라는 점이다. 중간 인공신경망은 지도 모델을 통해 비트 A를 학습한 것일 수 있고, 이 경우 중간 인공신경망의 출력층에 있는 m개의 노드에 출력되는 값은 비트 A에 대한 어떠한 예측값 또는 분류값일 수 있다. 중간 인공신경망은 비지도 모델을 통해 비트 A를 학습한 것일 수 있고, 이 경우 중간 인공신경망의 출력층에 있는 m개의 노드에 출력되는 값은 비트 A을 클러스터링하기 위한 값일 수 있다. 어떠한 경우이든 중간 인공신경망의 출력층에 있는 m개의 노드에 출력되는 값은 비트 A의 특징을 m차원으로 나타낸 것일 뿐, 인공지능을 이용하여 최종적으로 얻고자 하는 값이 아니다. 이 때 추출되는 특징은 2개 이상인 것이 바람직하다. 즉, m은 2 이상의 자연수인 것이 바람직하다.
한편, 도 7(a)는 중간 인공신경망이 RNN 구조인 것을 예시하고 있으나, 도 7(a)의 중간 인공신경망은 RNN 구조에 한정되는 것이 아니라, CNN 구조 또는 기타 다른 인공신경망 구조라도 무방하다.
도 7(b)는 본 발명의 일 실시예에 따른 최종 인공신경망을 예시한 도면이다. 도 7(b)에 나타난 것과 같이, 중간 인공신경망의 출력층의 m개의 노드에서 출력된 값이 최종 인공신경망의 입력층에 있는 m개의 노드에 입력된다.
최종 인공신경망은 RNN일 수 있으며, 이 경우 연속된 비트의 시변적 특징을 반영하기 위하여 최종 인공신경망의 입력층에 판별하고자 하는 비트의 이전 비트에 대한 m차원의 특징값, 판별하고자 하는 비트에 대한 m차원의 특징값 및 판별하고자 하는 비트의 다음 비트에 대한 m차원의 특징값을 순차적으로 입력할 수 있다.
도 3과 같이 심전도 신호가 9개의 비트(beat)로 나누어지고, 각 비트를 A, B, C, D, E, F, G, H, I로 명명하였으며, 판별하고자 하는 비트과 그 이전의 비트 및 그 이후의 비트가 함께 입력되어 분석된다고 할 때, 최종 인공신경망에는 비트 A에 대한 m차원의 특징값, 비트 B에 대한 m차원의 특징값 및 비트 C에 대한 m차원의 특징값이 순차적으로 연속적으로 입력될 수 있다. 전체 심전도 신호가 9개의 비트(beat)로 나누어지고, 각 비트가 A, B, C, D, E, F, G, H, I라고 할 때, 최종 인공신경망에는 다음과 같은 순서로 데이터가 입력될 수 있다.
(1) 비트 A에 대한 m차원의 특징값, 비트 B에 대한 m차원의 특징값, 비트 C에 대한 m차원의 특징값.
(2) 비트 B에 대한 m차원의 특징값, 비트 C 대한 m차원의 특징값, 비트 D 대한 m차원의 특징값.
(3) 비트 C에 대한 m차원의 특징값, 비트 D 대한 m차원의 특징값, 비트 E 대한 m차원의 특징값.
(4) 비트 D에 대한 m차원의 특징값, 비트 E 대한 m차원의 특징값, 비트 F 대한 m차원의 특징값.
(5) 비트 E에 대한 m차원의 특징값, 비트 F 대한 m차원의 특징값, 비트 G에 대한 m차원의 특징값.
(6) 비트 F에 대한 m차원의 특징값, 비트 G 대한 m차원의 특징값, 비트 H에 대한 m차원의 특징값.
(7) 비트 G에 대한 m차원의 특징값, 비트 H 대한 m차원의 특징값, 비트 I에 대한 m차원의 특징값.
최종 인공신경망에 입력된 데이터는 은닉층을 거쳐 출력층에 있는 c개의 노드로 출력된다.
최종 인공신경망은 지도 모델을 통해 전체 심전도 신호를 학습한 것일 수 있다. 이 경우 최종 인공신경망의 출력층에 있는 c개의 노드에 출력되는 값은 전체 심전도 신호를 c개의 분류로 분류하기 위한 값일 수 있다.
도 7(b)에 나타난 것과 같이, 최종 인경신경망은 데이터의 시변적 특징을 잘 반영하는 RNN 구조인 것이 바람직하다. RNN 구조는 노드 간의 연결이 순환적 구조를 갖는 특징을 갖고 있어 시변적 특징을 효과적으로 처리할 수 있는데, 최종 인공신경망은 연속된 비트의 m차원의 특징을 순차적으로 입력 받아 연속된 비트의 집합인 전체 심전도 신호를 c개로 분류하기 위한 것이므로, 최종 인공신경망의 구조는 RNN 구조인 것이 바람직하다. 그러나 최종 인공신경망이 RNN 구조로 한정되는 것은 아니고, 시계열 데이터의 시변적 특징을 반영할 수 있는 인공신경망 구조이면 다른 구조라도 무방하다. 즉, 최종 인공신경망은 RNN 구조에 한정되지 않는다.
도 8 내지 10은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 이용하여 심전도 신호를 분석하는 것을 예시하고 있으나, 전술한 것과 같이 이는 설명의 편의를 위한 것일 뿐, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법이 심전도 신호 분석에 한정되는 것은 아니다.
도 8을 참조하여 본 발명의 일 실시예에 따른 인공지능을 이용하여 시계열 데이터, 예를 들어 심전도 신호를 분석하는 과정을 설명한다.
심전도 신호(810)가 입력되면 일정한 기준에 의해 심전도 신호를 복수개의 비트(821, 822, 823...)로 스플릿한다. 예를 들어 심전도 신호(810)에서 R-peak를 검출한 후, R-peak를 이용하여 심전도 신호를 복수개의 비트(821, 822, 823...)로 스플릿할 수 있다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 입력되면 일정한 기준에 의해 시계열 데이터를 복수개의 유닛(unit)으로 스플릿하는 것으로 설명할 수 있다.
다음으로, 복수개의 비트(821, 822, 823...) 각각에 대하여 각 비트의 피쳐(831, 832, 833...)를 추출하는 작업을 수행한다. 피쳐 추출은 신호 처리에서 널리 사용되는 FFT(Fast Fourier Transform), MFCC(Mel Frequency Cepstral Coefficient), Filter Bank, Wavelet 등 다양한 방법을 사용할 수 있다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 복수개의 유닛(unit)으로 스플릿되면, 복수개의 유닛 각각에 대하여 각 유닛의 피쳐를 추출하는 것으로 설명할 수 있다.
다음으로, 각 비트의 피쳐(831, 832, 833...)를 중간 인공신경망(841, 842, 843...)에 입력하는 작업을 수행한다. 심전도 신호를 n개의 비트로 스플릿하였다면 모두 n개의 피쳐가 추출되었을 것이며, 이 경우 중간 인공신경망도 n개인 것이 바람직하다. n개의 중간 인공신경망 각각의 입력층에 n개의 비트 각각의 피쳐를 입력하여, n개의 중간 인공신경망 각각의 출력층에서 n개의 비트 각각에 대한 m차원의 특징값을 얻는다. 이 때 중간 인공신경망에서 출력되는 값을 '중간 출력 데이터'라고 한다.
복수개의 비트(821, 822, 823...)로부터 복수개의 피쳐(831, 832, 833...)를 추출하는 작업은 FFT(Fast Fourier Transform), MFCC(Mel Frequency Cepstral Coefficient), Filter Bank, Wavelet 등 잘 알려진 알고리즘을 이용한 것이지만, 복수개의 비트의 피쳐(831, 832, 833...)로부터 복수개의 m차원의 특징값을 얻는 작업은 인공지능을 이용하여 분석한 결과라는 점에서 차이가 있다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 n개의 유닛(unit)으로 스플릿되고, 각 유닛의 피쳐가 추출되면, 각 유닛의 피쳐를 n개의 중간 인공신경망에 입력하는 것으로 설명할 수 있다. n개의 중간 인공신경망 각각의 입력층에 n개의 유닛 각각의 피쳐를 입력하여, n개의 중간 인공신경망 각각의 출력층에서 n개의 유닛 각각에 대한 m차원의 특징값을 얻는다.
다음으로, n개의 중간 인공신경망에서 출력된 n개의 비트 각각에 대한 m차원의 특징값을 각 비트의 시간 축에서의 순서대로 최종 인공신경망(850)에 입력한다. 최종 인공신경망은 RNN일 수 있으며, 이 경우 연속된 비트의 시변적 특징을 반영하기 위하여, 최종 인공신경망의 입력층에 판별하고자 하는 비트의 이전 비트에 대한 m차원의 특징값, 판별하고자 하는 비트에 대한 m차원의 특징값 및 판별하고자 하는 비트의 다음 비트에 대한 m차원의 특징값을 순차적으로 입력할 수 있다.
최종 인공신경망에 입력된 데이터는 은닉층을 거쳐 출력층에 있는 c개의 노드로 출력되며, 최종 인공신경망이 분류 모델일 경우, c개의 노드에 출력되는 값은 전체 심전도 신호를 c개의 분류로 분류하기 위한 값일 수 있다. 최종 인공신경망이 예측 모델일 경우, c개의 노드에 출력되는 값은 전체 심전도 신호로부터 특정 범위 내의 결과를 예측하기 위한 값일 수 있다. 최종 인공신경망에서 출력되는 값을 '최종 출력 데이터'라고 한다.
최종 인공신경망은 각 비트에 대한 m차원의 특징값을 순차적으로 입력 받으므로, 최종 인공신경망의 입력층의 노드는 m개인 것이 바람직하다. 물론, 각 비트에 대한 m차원의 특징값 외에 다른 값 또는 파라미터도 입력할 수 있도록 최종 인공신경망의 입력층의 노드를 m개 이상으로 하는 것도 가능하다.
본 발명이 속하는 기술 분야에서 통상적으로 사용되는 것과 같이, 본 명세서에서 '분류 모델(classification model)'이란 입력된 데이터가 어떤 그룹에 속하는지 알아내는 것을 목적으로 하는 인공지능 모델을 의미하고, '예측 모델(prediction model)'이란 결과값이 학습 데이터의 범위 내 어떠한 값도 가능한 인공지능 모델을 의미한다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 n개의 유닛(unit)으로 스플릿된 경우, n개의 중간 인공신경망을 이용하여 n개의 유닛 각각에 대한 m차원의 특징값을 얻는다. 최종 인공신경망은 n개의 유닛 각각에 대한 m차원의 특징값을, 각 유닛의 시간 축에서의 순서대로 n개의 중간 인공신경망으로부터 제공 받아, 전체 시계열 데이터에 대한 분류, 예측 등의 태스크를 수행한다.
연속된 유닛의 시변적 특징을 반영하기 위하여, 최종 인공신경망의 입력층에 판별하고자 하는 유닛에 대한 m차원의 특징값과, 판별하고자 하는 유닛과 시간적으로 바로 인접한 유닛에 대한 m차원의 특징값을 최종 인공신경망에 연속적으로 입력할 수 있다. 심전도 신호의 경우 판별하고자 하는 비트의 사전 비트, 판별하고자 하는 비트 및 판별하고자 하는 비트의 사후 비트 3개를 연속적으로 입력하여야 했으나, 일반적인 시계열 데이터의 경우 판별하고자 하는 유닛의 사전 유닛과 판별하고자 하는 유닛 2개만을 함께 입력하거나, 판별하고자 하는 유닛의 사후 유닛과 판별하고자 하는 유닛 2개만을 입력할 수도 있다. 물론, 판별하고자 하는 유닛의 사전 유닛, 판별하고자 하는 유닛 및 판별하고자 하는 유닛의 사후 유닛 3개를 모두 입력하는 것도 가능하다.
최종 인공신경망은 각 유닛에 대한 m차원의 특징값을 순차적으로 입력 받으므로, 최종 인공신경망의 입력층의 노드는 m개인 것이 바람직하다. 물론, 각 유닛에 대한 m차원의 특징값 외에 다른 값 또는 파라미터도 입력할 수 있도록 최종 인공신경망의 입력층의 노드를 m개 이상으로 하는 것도 가능하다.
도 9는 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법에서 사용되는 중간 인공신경망 및 최종 인공신경망의 노드 구조를 예시한 도면이다.
설명의 편의를 위하여, 도 9는 심전도 신호(810)를 스플릿하여 얻은 첫번째 비트(821)의 피쳐(831)가 제1 중간 인공신경망(841)에 입력되고, 제1 중간 인공신경망(841)의 중간 출력 데이터가 최종 인공신경망(850)에 입력되는 것을 설명한다.
FFT(Fast Fourier Transform), MFCC(Mel Frequency Cepstral Coefficient), Filter Bank, Wavelet 등을 이용하여 각 비트로부터 추출된 피쳐가 d차원의 값이라고 가정하면, 각 중간 인공신경망(841, 842, 843)의 입력층의 노드 수도 d개인 것이 바람직하다. 물론, 각 비트로부터 추출된 d차원의 피쳐 외에 다른 값 또는 파라미터도 입력할 수 있도록 중간 인공신경망의 입력층의 노드를 d개 이상으로 하는 것도 가능하다.
첫번째 비트(821)에서 d차원의 피쳐(831)가 추출되면, d차원의 피쳐(831)가 제1 중간 인공신경망(841)의 입력층(841a)에 있는 d개의 노드에 입력된다. 입력된 데이터는 제1 중간 인공신경망(841)의 은닉층(841b)을 거쳐 분석되어, 분석 결과가 제1 중간 인공신경망(841)의 출력층(841c)에 있는 m개의 노드에서 출력된다.
제1 중간 인공신경망(841)의 출력층(841c)에 있는 m개의 노드에서 출력된 제1 중간 인공신경망(841)의 중간 출력 데이터는 최종 인공신경망(850)의 입력층(850a)에 있는 m개의 노드에 입력된다. 최종 인공신경망(850)은 제1 중간 인공신경망(841)의 중간 출력 데이터만 입력 받는 것이 아니라, 다른 중간 인공신경망(842, 843...)으로부터도 중간 출력 데이터를 입력 받아, 은닉층(850b)을 거쳐 연속된 비트의 시변적 특징을 분석하여 최종 출력 데이터를 출력한다. 최종 출력 데이터는 최종 인공신경망(850)의 출력층(850c)에 있는 c개의 노드에서 출력된다.
도 10은 본 발명의 일 실시예에 따른 복수개의 중간 인공신경망에서 출력된 중간 출력 데이터가 최종 인공신경망에 입력되는 과정을 설명하기 위한 도면이다.
심전도 신호에서 판별하고자 하는 비트가 두번째 비트(822)라고 할 때, 판별하고자 하는 비트의 사전 비트(821), 판별하고자 하는 비트(822) 및 판별하고자 하는 비트의 사후 비트(832)에 대한 m차원의 중간 출력 데이터를 연속적으로 입력하여야 한다.
즉, 판별하고자 하는 비트의 사전 비트(821)로부터 추출한 d차원의 피쳐(831)를 제1 중간 인공신경망(841)에 입력하여 얻은 m차원의 중간 출력 데이터(841c)와, 판별하고자 하는 비트(822)로부터 추출한 d차원의 피쳐(832)를 제2 중간 인공신경망(842)에 입력하여 얻은 m차원의 중간 출력 데이터(842c)와,
판별하고자 하는 비트의 사후 비트(823)로부터 추출한 d차원의 피쳐(833)를 제3 중간 인공신경망(843)에 입력하여 얻은 m차원의 중간 출력 데이터(843c)를 순차적으로 최종 인공신경망에 입력한다.
이상의 내용을 구체적으로 정리하면 다음과 같다.
심전도 신호를 분석하여 부정맥을 판별하기 위하여 딥러닝을 이용할 수 있다. 인공신경망 모델에는 CNN 모델, RNN 모델 등이 있다. 그러나 CNN 모델은 시변적 특징을 갖는 시계열 데이터 분석에 부적합하여 그 정확도가 떨어진다. CNN 방식은 특징의 위치 정보에 기반하기 때문에 작은 변형이나 노이즈에 대해서도 판별력이 크게 떨어지는 문제가 있다. (Sabour, S., Frosst, N. Hinton, G.E. Dynamic routing between capsules. In Advances in Neural Information Processing Systems, pp. 3859-3869, 2017).
이러한 문제를 극복하기 위하여 시변적 특징을 갖는 시계열 데이터의 분석에 RNN 모델을 사용할 수 있다. RNN 모델의 가장 큰 문제는 학습 및 분석 속도가 느리다는 점에 있다. 더 많은 정보를 활용할 수 있고 시변적 특징을 반영할 수 있기 때문에 정확도 면에서는 향상이 있지만, CNN에 비해 더 많은 정보를 기억하여야 하기 때문에 복잡도가 높아진다. 또한 연속된 유닛과의 연관성을 정보로 사용해야 하기 때문에, 연속된 유닛을 순차적으로 처리해야 한다. 따라서 긴 길이의 입력을 처리해야 하고, 이 때문에 학습 및 분석에 더 많은 시간이 요구된다.
본 발명의 일 실시예에 따르면, CNN의 낮은 정확도 및 가변 길이 입력 처리가 불가능한 문제와, RNN의 느린 학습 및 분석 속도 문제를 해결하기 위하여, 복수개의 중간 인공신경망과 하나의 최종 인공신경망으로 이루어진 Hierarchical RNN with variable length boundaries for parallelization model을 제안한다.
기존의 RNN 모델의 경우 n개의 연속된 비트를 하나의 입력으로 생각하였다. 그러나 본 발명의 일 실시예에 따른 인공지능 모델에서는 이를 복수개의 중간 인공신경망에 의해 처리되는 Short term RNN과, 하나의 최종 인공신경망에 의해 처리되는 Long term RNN의 두 단계로 나누어 학습 및 분석한다. 먼저, 연속된 n개의 비트 각각을 중간 인공신경망의 입력으로 활용한다. 그 결과 하나의 비트에 대한 m차원의 벡터가 얻어지며, 이를 최종 인공신경망에 다시 입력함으로써 심전도 신호를 분석하여 부정맥 등의 질환을 판별한다.
복수개의 중간 인공신경망은 복수개의 비트를 각각 처리하며, 복수개의 중간 인공신경망은 동일한 모델이다. 따라서 복수개의 비트를 처리할 때 서로 간의 의존성(Dependency)이 없어 병행 처리가 가능하므로, 전체 심전도 신호를 모두 입력해야 하는 기존의 RNN 방식에 비해, 병행 처리를 수행하는 컴퓨팅 장치의 수 또는 병행 처리를 수행하는 프로세서의 수에 비례하여 작업이 빠르게 수행될 수 있다. 물론 리소스 제약에 따라 복수개의 비트의 수보다 적은 수의 중간 인공신경망이 복수개의 입력 비트를 처리하는 구조 또한 가능하다. 이러한 구조는 각각의 비트를 복수개의 중간 인공신경망에서 병행 처리하고, 길이가 짧아진 중간 출력 데이터를 최종 인공신경망에서 처리함으로써, 각 인공신경망의 은닉층의 노드 수를 크게 줄일 수 있어 가용 메모리가 많아지게 된다. 이는 비디오 메모리(video memory)의 제약이 있는 GPU 환경에서 진단 속도의 향상을 가지고 오게 된다. 또한 최종 인공신경망에서 처리해야 하는 데이터의 길이가 짧아짐으로 인해 계산량(complexity)이 줄어들게 되어 진단 속도에 큰 향상이 있게 된다.
본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 이용하여 도 3의 심전도 신호를 분석할 때의 입력 데이터의 길이를 계산하면 다음과 같다.
도 3의 심전도 신호는 9개의 비트(beat)로 나누어진다. 비트 하나를 250 Hz로 샘플링한다고 할 때, 9개의 비트로부터 피쳐를 추출할 때 처리하는 길이는 250×9 = 2250이 된다.
9개의 비트로부터 추출된 피쳐 9개가 9개의 중간 인공신경망에 입력될 때 처리하는 길이는 1×9 = 9가 된다.
9개의 중간 인공신경망에서 출력된 m차원의 중간 출력 데이터가 최종 인공신경망에 입력될 때, 사전 비트, 판별 대상 비트, 사후 비트에 대한 m차원의 중간 출력 데이터가 연속적으로 입력된다. 전술한 것과 같이 최종 인공신경망에 다음과 같은 순서로 데이터가 입력된다.
(1) 비트 A에 대한 m차원의 특징값, 비트 B에 대한 m차원의 특징값, 비트 C에 대한 m차원의 특징값.
(2) 비트 B에 대한 m차원의 특징값, 비트 C 대한 m차원의 특징값, 비트 D 대한 m차원의 특징값.
(3) 비트 C에 대한 m차원의 특징값, 비트 D 대한 m차원의 특징값, 비트 E 대한 m차원의 특징값.
(4) 비트 D에 대한 m차원의 특징값, 비트 E 대한 m차원의 특징값, 비트 F 대한 m차원의 특징값.
(5) 비트 E에 대한 m차원의 특징값, 비트 F 대한 m차원의 특징값, 비트 G에 대한 m차원의 특징값.
(6) 비트 F에 대한 m차원의 특징값, 비트 G 대한 m차원의 특징값, 비트 H에 대한 m차원의 특징값.
(7) 비트 G에 대한 m차원의 특징값, 비트 H 대한 m차원의 특징값, 비트 I에 대한 m차원의 특징값.
즉, 길이 3짜리 입력이 7번 이루어지므로, 9개의 중간 인공신경망에서 출력된 m차원의 중간 출력 데이터가 최종 인공신경망에 입력될 때 처리하는 길이는 3×7 = 21이 된다.
모든 처리 길이를 더하면 2250 + 9 + 21 = 2280이다. 도 3에 예시된 기존의 방법의 처리 길이가 5250인 것과 비교했을 때, 처리 길이가 1/3 정도로 줄어들었음을 알 수 있다.
이상에서 살펴본 것과 같이 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법에 의하면, 기존의 CNN 기반의 심전도 분석 방법에 비해 분석의 정확도가 높을 뿐만 아니라, 기존의 RNN 기반의 심전도 분석 방법에 비해 처리하여야 할 데이터의 길이가 줄어듦으로 인해 분석 속도가 빨라져서 심전도 분석의 실시간성을 보장할 수 있다. 그를 통해 실시간으로 정확하게 심전도 신호를 분석하여 심장 질환이 발생하기 전에 피검자에게 미리 고지함으로써, 사전에 약물, 병원 치료 등으로 조치하는 것이 가능하다. 나아가, 치명적인 심장 질환에 대한 민첩한 초기 대응이 가능하여 긴급하게 인명을 구조하는 서비스에 활용될 수도 있다.
도 11은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법을 예시한 순서도이다.
도 11에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법은, 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계(S1110), 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계(S1120), 시간적으로 바로 인접한 복수개의 유닛의 중간 출력 데이터를 최종 인공신경망에 입력하여 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계(S1130) 및 최종 출력 데이터를 이용하여 시계열 데이터의 분석 결과를 생성하는 단계(S1140)를 포함할 수 있다.
각 단계에 대해서는 앞에서 자세히 설명하였으므로 반복되는 내용에 대한 설명은 생략한다.
도 12는 본 발명의 일 실시예에 따른 인공신경망 구조에서, 중간 인공신경망이 복수개의 레벨로 구현된 경우를 예시한 도면이다.
도 12에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법에서, 중간 인공신경망을 복수개의 레벨로 구현할 수 있다.
각 레벨의 중간 인공신경망은 입력 데이터의 특징값을 출력하고, 이전 레벨의 중간 인공신경망에서 출력된 특징값은 다음 레벨의 중간 인공신경망에 입력된다.
중간 인공신경망이 k개의 레벨로 이루어져 있는 경우, 복수개의 유닛 각각의 피쳐는 레벨 1 중간 인공신경망에 입력되고, 각 레벨의 중간 인공신경망에서 출력된 특징값은 다음 레벨의 중간 인공신경망에 입력되며, 레벨 k-1의 중간 인공신경망에서 출력된 특징값은 레벨 k의 중간 인공신경망에 입력되고, 레벨 k의 중간 인공신경망에서 출력된 m차원의 특징값은 최종 인공신경망에 입력된다.
도 12에서 복수개의 레벨을 가진 중간 인공신경망을 이전 레벨의 복수개의 중간 인공신경망에서 출력된 복수개의 특징값이 다음 레벨의 하나의 중간 인공신경망에 입력되는 방식으로 설계한 것은, 레벨 1 중간 인공신경망에서 각 유닛 단위(제1 단위)의 데이터를 처리하고, 레벨 2 중간 인공신경망에서 시간적으로 인접한 복수개의 유닛을 그룹핑한 제2 단위의 데이터를 처리하고, 레벨 3 중간 인공신경망에서 시간적으로 인접한 복수개의 제2 단위의 데이터를 그룹핑한 제3 단위의 데이터를 처리하는 방식으로 데이터를 처리하는 것을 예시한 것이다. 이 경우 레벨 k의 중간 인공신경망에서 출력된 m차원의 특징값은 제k 단위의 데이터에 대한 m차원의 특징값이 될 것이다. 이 경우 그룹핑 기준에 따라 각 레벨의 중간 인공신경망의 수는 달라질 수 있다.
물론, 복수개의 레벨을 가진 중간 인공신경망을 이전 레벨의 하나의 중간 인공신경망에서 출력된 하나의 특징값이 다음 레벨의 하나의 중간 인공신경망에 1:1로 입력되는 방식으로 설계할 수도 있다. 이 경우 각 레벨의 중간 인공신경망은 동일한 수로 구현할 수 있다. 예컨대, 레벨 1 중간 인공신경망의 수가 n개이면, 레벨 2 중간 인공신경망의 수도 n개, 레벨 3 중간 인공신경망의 수도 n개, ..., 레벨 k 중간 인공신경망의 수도 n개로 구현할 수 있다.
도 13은 본 발명의 일 실시예에 따른 인공신경망의 구조에서, 중간 인공신경망이 복수개의 레벨로 구현된 경우의 시계열 데이터 분석 방법을 예시한 순서도이다.
본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 분석 방법에서 중간 인공신경망이 복수개의 레벨로 이루어져 있을 경우의 시계열 데이터 분석 방법은, 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 유닛 각각의 피쳐(feature)를 레벨 1 중간 인공신경망에 입력하는 단계(S1310), 레벨 i(i는 1 이상의 자연수) 인공신경망으로부터 출력된 중간 출력 데이터를 레벨 i+1 중간 인공신경망에 입력하는 단계(S1320), 레벨 k 중간 인공신경망으로부터 중간 출력 데이터를 얻는 단계(S1330) 및 레벨 k 중간 출력 데이터를 최종 인공신경망에 순차적으로 입력하여 최종 인공신경망으로부터 최종 출력 데이터를 얻는 단계(S1340)를 포함할 수 있다.
만약, 복수개의 레벨을 가진 중간 인공신경망을 이전 레벨의 복수개의 중간 인공신경망에서 출력된 복수개의 특징값이 다음 레벨의 하나의 중간 인공신경망에 입력되는 방식으로 설계한 경우, 레벨 k 중간 출력 데이터를 최종 인공신경망에 순차적으로 입력하는 단계는, 시간적으로 바로 인접한 제k 단위의 데이터에 대한 레벨 k 중간 출력 데이터를 최종 인공신경망에 순차적으로 입력하는 단계를 포함할 수 있다.
한편, 복수개의 레벨을 가진 중간 인공신경망을 이전 레벨의 하나의 중간 인공신경망에서 출력된 하나의 특징값이 다음 레벨의 하나의 중간 인공신경망에 1:1로 입력되는 방식으로 설계한 경우, 시간적으로 바로 인접한 유닛들에 대한 레벨 k 중간 출력 데이터를 최종 인공신경망에 순차적으로 입력하는 단계는 도 9 및 10에서 설명하였던 중간 인공신경망의 레벨이 1개인 경우와 동일하므로 반복되는 내용에 대한 설명은 생략한다.
이상, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터의 학습 방법에 대하여 설명하였다.
이하, 도 14 내지 17를 참조하여 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터의 학습 방법에 대하여 설명한다. 구체적으로 본 발명의 일 실시예에 따른 복수개의 인공신경망을 이용하여 심전도 신호를 학습하는 과정을 설명함으로써, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터의 학습 방법을 설명하도록 한다.
잘 알려진 바와 같이, 기본적으로 학습 데이터를 이용한 인공신경망의 학습 과정은 인공신경망을 이용한 입력 데이터 분석 과정과 많은 부분 유사하다. 다만 인공신경망을 학습하는 과정에서는, 출력값과 실제값을 비교하여 오차를 계산하고, 오차를 역전파하여 인공신경망의 가중치를 변경하는 단계가 추가된다는 점에서 차이가 있다.
이하, 본 발명의 일 실시예에 따른 시계열 데이터의 분석 방법과의 차이점을 중심으로 본 발명의 일 실시예에 따른 시계열 데이터의 학습 방법을 설명한다.
도 14는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법을 예시한 순서도이다.
도 14에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법은, 심전도 신호 수집 단계(S1410), 심전도 신호 스플릿 단계(S1420), 비트 결합 단계(S1430), 피쳐(feature) 추출 단계(S1440) 및 인공신경망 학습 단계(S1450)를 포함할 수 있다.
심전도 신호 수집 단계(S1410)는 서버(200)가 심전도 측정 장치(100)로부터 수신한 심전도 신호 또는 사용자가 직접 입력한 심전도 신호를 수집하는 단계이다. 일반적으로 긴 시간동안 측정된 심전도 신호 전체에 대하여 부정맥 등의 판별 결과가 레이블로 붙는 것이 아니라, 비트 단위로 부정맥 등의 판별 결과가 레이블로 붙어 있다. 잘 알려진 데이터로는 MIT-BIH Arrhythmia Database 등이 있다.
심전도 신호 스플릿 단계(S1421)는 심전도 신호를 비트 단위로 스플릿하는 단계이다.
비트 결합 단계(S1430)는 레이블이 붙어 있는 비트에 a개의 사전 비트들과 b개의 사후 비트들을 결합하는 단계이다.
도 15는 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법에서 사용되는 학습 데이터를 예시한 도면이다.
도 15에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 심전도 학습 방법은, 레이블이 붙어 있는 비트에 a개의 사전 비트들과 b개의 사후 비트들을 결합시켜 학습 데이터로 사용한다.
본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터의 분석 방법은 단일한 비트를 분석하는 것이 아니라 시간적으로 인접한 복수개의 비트들이 연결되어 발생하는 시변적 특징, 예컨대 사전 비트 또는 사후 비트와의 발생 간격, 사전 비트 또는 사후 비트와의 높이 차 등을 함께 분석하는 것이므로, 학습시에도 레이블이 붙어 있는 비트를 단독으로 학습시키는 것이 아니라 레이블이 붙어 있는 비트에 사전 비트 및 사후 비트를 결합시켜 학습시켜야 한다.
레이블이 붙어 있는 비트에 결합시키는 사전 비트의 개수 a와 사후 비트의 개수 b는 임의로 정할 수 있다. 이 때 정해지는 사전 비트의 개수 a와 사후 비트의 개수 b는 분석시에도 같은 수를 입력으로 사용하여야 한다.
피쳐 추출 단계(S1440)는 각 비트의 피쳐를 추출하는 단계이다. 피쳐 추출은 신호 처리에서 널리 사용되는 FFT(Fast Fourier Transform), MFCC(Mel Frequency Cepstral Coefficient), Filter Bank, Wavelet 등 다양한 방법을 사용할 수 있다. 학습시 사용되는 피쳐 추출 알고리즘과 분석시 사용되는 피쳐 추출 알고리즘은 동일한 것을 사용하는 것이 바람직하다.
인공신경망 학습 단계(S1450)는 기존에 잘 알려진 역전파, 경사감소법 등의 기법을 이용하여 인공신경망을 학습시키는 단계이다. 이하, 도 16을 참고하여 인공신경망 학습 단계(S1450)를 자세히 설명한다.
도 16은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 학습 방법을 예시한 도면이다.
도 16을 참조하여 본 발명의 일 실시예에 따른 인공지능을 이용하여 시계열 데이터, 예를 들어 심전도 신호를 학습하는 과정을 설명한다.
MIT-BIH Arrhythmia Database 등과 같이 비트 단위로 레이블로 붙어 있는 데이터베이스를 사용할 경우, 학습 데이터(1610)는 비트 결합 단계(S1430)를 통해 레이블이 붙어 있는 비트에 하나 이상의 사전 비트와 하나 이상의 사후 비트를 결합시킨 심전도 신호여야 한다. 만약, 비트 단위가 아니라 심전도 신호 전체를 분석한 결과가 각 심전도 신호에 레이블로 붙어 있는 데이터베이스를 사용할 경우, 비트 결합 단계(S1430) 없이 레이블이 붙어 있는 심전도 신호를 그대로 학습 데이터(1610)로 사용할 수 있다.
이를 시계열 데이터로 일반화시켜 설명하면, 유닛 단위로 레이블로 붙어 있는 데이터베이스를 사용할 경우, 학습 데이터는 레이블이 붙어 있는 유닛에 하나 이상의 유닛을 결합시킨 시계열 데이터여야 한다. 만약, 유닛 단위가 아니라 시계열 데이터 전체를 분석한 결과가 각 시계열 데이터에 레이블로 붙어 있는 데이터베이스를 사용할 경우, 레이블이 붙어 있는 시계열 데이터를 그대로 학습 데이터로 사용할 수 있다.
학습 데이터(1610)가 입력되면 일정한 기준에 의해 학습 데이터를 복수개의 비트(1621, 1622, 1623...)로 스플릿한다. 학습시 사용되는 심전도 신호의 스플릿 방법과 분석시 사용되는 심전도 신호의 스플릿 방법은 동일한 것을 사용하는 것이 바람직하다.
이를 시계열 데이터로 일반화시켜 설명하면, 학습 데이터가 입력되면 일정한 기준에 의해 학습 데이터를 복수개의 유닛으로 스플릿하는 것으로 설명할 수 있다. 학습시 사용되는 시계열 데이터의 스플릿 방법과 분석시 사용되는 시계열 데이터의 스플릿 방법은 동일한 것을 사용하는 것이 바람직하다.
다음으로, 복수개의 비트(1621, 1622, 1623...) 각각에 대하여 각 비트의 피쳐(1631, 1632, 1633...)를 추출하는 작업을 수행한다. 학습시 사용되는 심전도 신호의 피쳐 추출 알고리즘과 분석시 사용되는 심전도 신호의 피쳐 추출 알고리즘은 동일한 것을 사용하는 것이 바람직하다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 복수개의 유닛(unit)으로 스플릿되면, 복수개의 유닛 각각에 대하여 각 유닛의 피쳐를 추출하는 것으로 설명할 수 있다. 학습시 사용되는 시계열 데이터의 피쳐 추출 알고리즘과 분석시 사용되는 시계열 데이터의 피쳐 추출 알고리즘은 동일한 것을 사용하는 것이 바람직하다.
다음으로, 각 비트의 피쳐(1631, 1632, 1633...)를 중간 인공신경망(1641, 1642, 1643...)에 입력하는 작업을 수행한다. 학습 데이터(1610)가 n개의 비트가 결합된 것이라면, 모두 n개의 피쳐가 추출되었을 것이며, 이 경우 중간 인공신경망도 n개인 것이 바람직하다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 n개의 유닛(unit)으로 스플릿되고, 각 유닛의 피쳐가 추출되면, 각 유닛의 피쳐를 n개의 중간 인공신경망에 입력하는 것으로 설명할 수 있다.
다음으로, n개의 중간 인공신경망에서 출력된 n개의 비트 각각에 대한 m차원의 특징값을 각 비트의 시간 축에서의 순서대로 최종 인공신경망(1650)에 입력하여 학습 데이터에 대한 최종 출력 데이터를 얻는다.
이를 시계열 데이터로 일반화시켜 설명하면, 시계열 데이터가 n개의 유닛(unit)으로 스플릿된 경우, n개의 중간 인공신경망을 이용하여 n개의 유닛 각각에 대한 m차원의 특징값을 얻고, 최종 인공신경망은 n개의 유닛 각각에 대한 m차원의 특징값을 각 유닛의 시간 축에서의 순서대로 n개의 중간 인공신경망으로부터 제공 받아 학습 데이터에 대한 분류값, 예측값 등을 얻는다.
최종 인공신경망(1650)으로부터 학습 데이터에 대한 최종 출력 데이터를 얻으면, 학습 데이터에 대한 최종 출력 데이터를 학습 데이터에 붙은 레이블과 비교한다. 이 때 학습 데이터에 대한 최종 출력 데이터는 출력값이 되고, 학습 데이터에 붙은 레이블은 실제값이 된다. 출력값와 실제값 사이의 오차를 손실 함수(loss function) 등을 이용하여 산출한 후 역전파한다.
역전파를 통해 최종 인공신경망(1650)의 가중치 및 중간 인공신경망(1641, 1642, 1643...)의 가중치를 조정한다. 역전파 및 인공신경망의 가중치 조정 방법은 https://en.wikipedia.org/wiki/Backpropagation 등의 문헌에 자세히 설명되어 있으므로 자세한 설명은 생략한다.
이 때 주의할 것은 최종 인공신경망(1650)과 중간 인공신경망(1641, 1642, 1643...)의 학습률 설정이다. '학습률(learning rate)'이란 인공신경망의 가중치 조정을 위한 경사감소법 알고리즘에서 최저값을 찾아가는 스텝(step)의 크기를 의미하는데,
중간 인공신경망을 parallel하게 학습시킬 수는 없다. 복수개의 입력 비트에 대한 정답은 1개이기 때문이다. 이 때문에 하나의 정답에 대하여 복수개의 입력 비트에 대한 역전파를 수행하여야 한다. 비트의 개수가 n개이고, 중간 인공신경망의 개수도 n개인 경우, n개의 중간 인공신경망은 서로 가중치를 공유(share)하여야 하고, 역전파시의 중간 인공신경망의 학습률도 최종 인공신경망의 학습률의 1/n배로 설정하여야 한다.
한편, 중간 인공신경망이 복수개의 레벨로 구현된 경우에도 인공신경망의 학습 방법은 동일하다. 중간 인공신경망이 복수개의 레벨로 구현된 경우의 인공신경망의 분석 방법과 동일한 방법으로 학습 데이터를 분석한 후(도 12 및 13 참고), 최종 인공신경망으로부터 학습 데이터에 대한 최종 출력 데이터를 얻으면, 학습 데이터에 대한 최종 출력 데이터(출력값)를 학습 데이터에 붙은 레이블(실제값)과 비교한다. 출력값와 실제값 사이의 오차를 손실 함수(loss function) 등을 이용하여 산출한 후 역전파시켜, 최종 인공신경망의 가중치 및 복수개의 레벨의 중간 인공신경망의 가중치를 조정한다.
도 17은 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 학습 방법을 예시한 순서도이다.
도 17에 나타난 것과 같이, 본 발명의 일 실시예에 따른 인공지능을 이용한 시계열 데이터 학습 방법은, 시계열 데이터가 시간 축에서 스플릿된 복수의 유닛 각각에 대하여, 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계(S1710), 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계(S1720), 시간적으로 바로 인접한 복수의 유닛의 중간 출력 데이터를 최종 인공신경망에 입력하여 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계(S1730), 최종 출력 데이터를 시계열 데이터에 붙어 있는 레이블과 비교하고 오차를 계산하는 단계(S1740) 및 오차를 역전파시켜 중간 인공신경망 및 최종 인공신경망의 가중치를 조절하는 단계(S1740)를 포함할 수 있다.
각 단계에 대해서는 앞에서 자세히 설명하였으므로 반복되는 내용에 대한 설명은 생략한다.
도 18은 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
도 18에 나타난 것과 같이, 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 예시적인 컴퓨팅 장치는, 하나 이상의 프로세서(1810), 스토리지(1820), 프로세서(1810)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(1830), 네트워크 인터페이스(1840) 및 버스(bus)를 포함할 수 있다. 도 18에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 18에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1810)는 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 컴퓨팅 장치의 각 구성의 전반적인 동작을 제어한다. 프로세서(1810)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(1810)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 컴퓨팅 장치는 하나 이상의 프로세서를 구비할 수 있다.
스토리지(1820)는 하나 이상의 컴퓨터 프로그램을 비임시적으로 저장할 수 있다. 스토리지(1820)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다. 스토리지(1820)에는 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 수행하도록 하는 컴퓨터 프로그램이 저장되어 있다.
메모리(1830)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1830)는 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 실행하기 위하여 스토리지(1820)로부터 하나 이상의 컴퓨터 프로그램을 로드할 수 있다.
버스는 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 컴퓨팅 장치의 구성요소 간 통신 기능을 제공한다. 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus), 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(1840)는 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 구현할 수 있는 컴퓨팅 장치의 유무선 통신을 지원한다. 또한, 네트워크 인터페이스(1840)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(1840)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 수행하도록 하는 컴퓨터 프로그램은 메모리(1830)에 로드되어, 프로세서(1810)로 하여금 본 발명의 실시예들에 따른 시계열 데이터 분석 방법 또는 시계열 데이터 학습 방법을 수행하도록 하는 인스트럭션을 포함할 수 있다.
이하, 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 분석 장치에 대하여 설명한다.
본 발명의 일 실시예에 따른 시계열 데이터 분석 장치는, 시계열 데이터를 수신하는 네트워크 인터페이스(1840), 하나 이상의 프로세서(1810), 프로세서(1841)에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리(1830) 및 컴퓨터 프로그램을 저장하는 스토리지(1820)를 포함하되, 컴퓨터 프로그램은, 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션, 시간적으로 바로 인접한 복수개의 유닛의 중간 출력 데이터를 최종 인공신경망에 입력하고, 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션, 최종 출력 데이터를 이용하여 시계열 데이터의 분석 결과를 생성하는 인스트럭션을 포함할 수 있다.
본 발명의 일 실시예에 따른 시계열 데이터 분석 장치의 스토리지(1820)에 저장된 컴퓨터 프로그램의 각 인스트럭션은 앞에서 설명한 인공지능을 이용한 시계열 데이터 분석 방법을 수행하는 것이므로 반복되는 내용에 대한 설명은 생략한다.
이하, 본 발명의 실시예들에 따른 인공지능을 이용한 시계열 데이터 학습 장치에 대하여 설명한다.
본 발명의 일 실시예에 따른 시계열 데이터 학습 장치는, 시계열 데이터를 수신하는 네트워크 인터페이스(1840), 하나 이상의 프로세서(1810), 프로세서(1841)에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리(1830) 및 컴퓨터 프로그램을 저장하는 스토리지(1820)를 포함하되, 컴퓨터 프로그램은, 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션, 시간적으로 바로 인접한 복수개의 유닛의 중간 출력 데이터를 최종 인공신경망에 입력하고, 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션 및 최종 출력 데이터를 시계열 데이터에 붙어 있는 레이블과 비교하는 인스트럭션을 포함할 수 있다.
본 발명의 일 실시예에 따른 시계열 데이터 학습 장치의 스토리지(1820)에 저장된 컴퓨터 프로그램의 각 인스트럭션은 앞에서 설명한 인공지능을 이용한 시계열 데이터 학습 방법을 수행하는 것이므로 반복되는 내용에 대한 설명은 생략한다.
한편, 도면들을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록 매체는, 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 컴퓨터로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티 태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해하여야 한다.

Claims (21)

  1. 컴퓨팅 장치에 의하여 수행되는 시계열 데이터의 분석 방법에 있어서,
    상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계;
    상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계;
    시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계; 및
    상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 단계를 포함하는,
    시계열 데이터 분석 방법.
  2. 제1항에 있어서,
    상기 중간 인공신경망 및 상기 최종 인공신경망은 RNN(Recurrent Neural Network)인,
    시계열 데이터 분석 방법.
  3. 제1항에 있어서,
    상기 최종 인공신경망의 입력층의 노드는 m개인,
    시계열 데이터 분석 방법.
  4. 제1항에 있어서,
    상기 중간 출력 데이터를 얻는 단계는,
    제1 컴퓨팅 장치가, 상기 복수개의 유닛에 포함된 제1 유닛의 피쳐를 상기 제1 컴퓨팅 장치에 구현된 상기 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m차원의 중간 출력 데이터를 얻는 단계; 및
    제2 컴퓨팅 장치가, 상기 복수개의 유닛에 포함된 제2 유닛의 피쳐를 상기 제2 컴퓨팅 장치에 구현된 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m차원의 중간 출력 데이터를 얻는 단계를 포함하는,
    시계열 데이터 분석 방법.
  5. 제4항에 있어서,
    상기 최종 출력 데이터를 얻는 단계는,
    제3 컴퓨팅 장치가, 상기 제1 컴퓨팅 장치로부터 상기 제1 유닛의 중간 출력 데이터를 제공 받고, 상기 제2 컴퓨팅 장치로부터 상기 제2 유닛의 중간 출력 데이터를 제공 받으며, 상기 제1 유닛의 중간 출력 데이터 및 상기 제2 유닛의 중간 출력 데이터를 상기 최종 인공신경망에 순차적으로 입력하되, 상기 제1 유닛 및 상기 제2 유닛은 시간적으로 바로 인접한 유닛인, 단계를 포함하는,
    시계열 데이터 분석 방법.
  6. 제1항에 있어서,
    상기 중간 인공신경망은 k(k는 2 이상의 자연수)개의 레벨로 이루어져 있고,
    상기 중간 인공신경망에 입력하는 단계는,
    상기 복수개의 유닛 각각의 피쳐를 레벨 1 중간 인공신경망에 입력하는 단계;
    레벨 i(i는 1 이상의 자연수) 중간 인공신경망으로부터 얻은 레벨 i 출력 데이터를 레벨 i+1 중간 인공신경망에 입력하는 단계; 및
    레벨 i+1 중간 인공신경망으로부터 레벨 i+1 출력 데이터를 얻는 단계를 포함하되,
    상기 중간 출력 데이터는 레벨 k 중간 인공신경망으로부터 출력된 데이터인,
    시계열 데이터 분석 방법.
  7. 제1항에 있어서,
    상기 시계열 데이터는, 심전도 데이터인,
    시계열 데이터 분석 방법.
  8. 제7항에 있어서,
    상기 분석 결과는, 심전도 진단 결과인,
    시계열 데이터 분석 방법.
  9. 제7항에 있어서,
    상기 n개의 유닛은, R-peak를 이용하여 스플릿된 비트(beat) 유닛인,
    시계열 데이터 분석 방법.
  10. 제9항에 있어서,
    상기 스플릿된 n개의 비트 유닛은,
    상기 시계열 데이터를 스플릿한 후 스플릿된 비트 사이의 유사도를 비교하여 선행하는 특정 비트와의 유사도가 기 설정된 수치 이상인 비트를 상기 특징 유닛으로 대체한 것인,
    시계열 데이터 분석 방법.
  11. 컴퓨팅 장치에 의하여 수행되는 시계열 데이터의 학습 방법에 있어서,
    상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하는 단계;
    상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 단계;
    시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하여 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 단계; 및
    상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하는 단계를 포함하는,
    시계열 데이터 학습 방법.
  12. 제11항에 있어서,
    상기 중간 인공신경망 및 상기 최종 인공신경망은 RNN(Recurrent Neural Network)인,
    시계열 데이터 학습 방법.
  13. 제11항에 있어서,
    상기 최종 인공신경망의 입력층의 노드는 m개인,
    시계열 데이터 학습 방법.
  14. 제11항에 있어서,
    상기 비교하는 단계는, 상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하여 오차를 계산하는 단계를 포함하고,
    상기 비교하는 단계 다음에, 상기 오차를 역전파시켜 상기 중간 인공신경망의 가중치 및 상기 최종 인공신경망의 가중치를 조정하는 단계를 더 포함하는,
    시계열 데이터 학습 방법.
  15. 제14항에 있어서,
    상기 가중치를 조정하는 단계는,
    상기 중간 인공신경망의 학습률(learning rate)을 상기 최종 인공신경망의 학습률의 1/n배로 하여 상기 중간 인공신경망의 가중치를 조정하는 단계를 포함하는,
    시계열 데이터 학습 방법.
  16. 제11항에 있어서,
    상기 중간 인공신경망은 k(k는 2 이상의 자연수)개의 레벨로 이루어져 있고,
    상기 중간 인공신경망에 입력하는 단계는,
    상기 복수개의 유닛 각각의 피쳐를 레벨 1 중간 인공신경망에 입력하는 단계;
    레벨 i(i는 1 이상의 자연수) 중간 인공신경망으로부터 얻은 레벨 i 출력 데이터를 레벨 i+1 중간 인공신경망에 입력하는 단계; 및
    레벨 i+1 중간 인공신경망으로부터 레벨 i+1 출력 데이터를 얻는 단계를 포함하되,
    상기 중간 출력 데이터는 레벨 k 중간 인공신경망으로부터 출력된 데이터인,
    시계열 데이터 학습 방법.
  17. 제11항에 있어서,
    상기 시계열 데이터는, 심전도 데이터인,
    시계열 데이터 학습 방법.
  18. 제17항에 있어서,
    상기 n개의 유닛은, R-peak를 이용하여 스플릿된 비트(beat) 유닛인,
    시계열 데이터 학습 방법.
  19. 시계열 데이터를 수신하는 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션;
    시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하고, 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션; 및
    상기 최종 출력 데이터를 이용하여 상기 시계열 데이터의 분석 결과를 생성하는 인스트럭션을 포함하는,
    시계열 데이터 분석 장치.
  20. 시계열 데이터를 수신하는 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    상기 시계열 데이터가 시간 축에서 스플릿된 복수개의 유닛 각각에 대하여, 상기 유닛 각각의 피쳐(feature)를 중간 인공신경망에 입력하고 상기 중간 인공신경망으로부터 m(m은 2 이상의 자연수) 차원의 중간 출력 데이터를 얻는 인스트럭션;
    시간적으로 바로 인접한 복수개의 유닛의 상기 중간 출력 데이터를 최종 인공신경망에 입력하고, 상기 최종 인공신경망으로부터 출력된 최종 출력 데이터를 얻는 인스트럭션; 및
    상기 최종 출력 데이터를 상기 시계열 데이터에 붙어 있는 레이블과 비교하는 인스트럭션을 포함하는,
    시계열 데이터 학습 장치.
  21. 컴퓨터로 하여금 제1항 내지 18항 중 어느 한 항의 방법을 수행하도록 하는 컴퓨터 프로그램이 저장된, 컴퓨터 판독 가능한 기록 매체.
KR1020180061857A 2018-03-30 2018-05-30 인공지능을 이용한 시계열 데이터 학습 및 분석 방법 KR20190114694A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201980007119.2A CN111565633A (zh) 2018-03-30 2019-03-27 利用人工智能的时间序列数据学习及分析方法
PCT/KR2019/003540 WO2019190185A1 (ko) 2018-03-30 2019-03-27 인공지능을 이용한 시계열 데이터 학습 및 분석 방법
EP19777828.5A EP3777674A1 (en) 2018-03-30 2019-03-27 Time series data learning and analyzing method using artificial intelligence
US16/927,460 US20200337580A1 (en) 2018-03-30 2020-07-13 Time series data learning and analysis method using artificial intelligence

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180037077 2018-03-30
KR20180037077 2018-03-30

Publications (1)

Publication Number Publication Date
KR20190114694A true KR20190114694A (ko) 2019-10-10

Family

ID=68206329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180061857A KR20190114694A (ko) 2018-03-30 2018-05-30 인공지능을 이용한 시계열 데이터 학습 및 분석 방법

Country Status (4)

Country Link
US (1) US20200337580A1 (ko)
EP (1) EP3777674A1 (ko)
KR (1) KR20190114694A (ko)
CN (1) CN111565633A (ko)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102197112B1 (ko) * 2020-07-20 2020-12-31 주식회사 아이메디신 시계열 생체 신호 기반의 인공신경망 모델 학습 컴퓨터 프로그램 및 방법
KR102208760B1 (ko) * 2020-12-23 2021-01-29 주식회사 아이메디신 생체 신호에 기반하여 건강상태 및 병리증상을 진단하기 위한 영상 데이터 생성방법
KR102208759B1 (ko) * 2020-12-23 2021-01-29 주식회사 아이메디신 생체 신호에 기반하여 건강상태 및 병리증상을 진단하기 위한 딥러닝 모델 생성방법
KR20210046121A (ko) * 2019-10-17 2021-04-28 단국대학교 산학협력단 검출정보별 신경망 분석을 실시하여 파킨슨 환자 및 족관절염 환자를 식별하는 장치 및 방법
WO2021100968A1 (ko) * 2019-11-18 2021-05-27 네오컨버전스 주식회사 인공지능을 이용한 태아 박동 진단방법, 장치 및 시스템
KR20210137604A (ko) 2020-05-11 2021-11-18 주식회사 에이젠글로벌 인공지능 데이터 자동 분석 방법 및 분석 시스템
WO2022014943A1 (ko) * 2020-07-14 2022-01-20 주식회사 바디프랜드 생성적 적대 신경망 알고리즘을 기반으로 하는 심전도 생성 장치 및 그 방법
WO2022014942A1 (ko) * 2020-07-14 2022-01-20 주식회사 바디프랜드 딥러닝 기반 심전도를 이용한 심장 질환 진단 장치 및 그 방법
KR102377414B1 (ko) 2020-09-16 2022-03-22 한림대학교 산학협력단 인공지능 기반 개인화 청각 재활 시스템
KR20220037917A (ko) * 2020-09-18 2022-03-25 (주)이플마인드 인공지능을 이용한 심전도 기반 혈당 측정 방법, 장치 및 프로그램
KR20220045653A (ko) * 2020-10-06 2022-04-13 한림대학교 산학협력단 급성심근경색 판단 방법, 장치 및 프로그램
US20220237450A1 (en) * 2021-01-28 2022-07-28 United Microelectronics Corp. Semiconductor process prediction method and semiconductor process prediction apparatus considering overall features and local features
KR102437348B1 (ko) * 2021-12-20 2022-08-29 (주)씨어스테크놀로지 웨어러블 심전도 신호 분석 방법
WO2022255564A1 (ko) * 2021-06-02 2022-12-08 주식회사 뷰노 생체신호 분석 방법
WO2023048400A1 (ko) * 2021-09-24 2023-03-30 주식회사 뷰노 심박변이도 특징 값을 추출하기 위한 방법
KR20230140774A (ko) * 2022-03-30 2023-10-10 한림대학교 산학협력단 심전도 이미지를 바탕으로 심근 경색에 대한 진단을 수행하는 전자 장치, 및 제어 방법
US11995891B2 (en) 2020-07-20 2024-05-28 Imedisync, Inc. Computer program and method for training artificial neural network model based on time-series biosignal

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12130616B2 (en) * 2020-07-02 2024-10-29 Nec Corporation Approach to determining a remaining useful life of a system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132842A (ko) 2015-07-27 2017-12-04 구글 엘엘씨 순환 신경망들을 사용하는 건강 이벤트들의 분석

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975961A (en) * 1987-10-28 1990-12-04 Nec Corporation Multi-layer neural network to which dynamic programming techniques are applicable
JPH0734546B2 (ja) * 1989-03-13 1995-04-12 彰 岩田 データ圧縮装置
JP2803283B2 (ja) * 1990-01-24 1998-09-24 日本電気株式会社 予測型心電図波形認識装置
JP2005000528A (ja) * 2003-06-13 2005-01-06 National Institute Of Information & Communication Technology 脳機能測定装置及び脳機能測定プログラム
CN102697491B (zh) * 2012-06-26 2015-01-21 海信集团有限公司 心电图特征波形识别方法和系统
CN102779234B (zh) * 2012-06-28 2015-10-28 中国科学院苏州纳米技术与纳米仿生研究所 一种心电图分类处理方法及装置
US9572504B2 (en) * 2015-03-16 2017-02-21 Nuvo Group Ltd. Continuous non-invasive monitoring of a pregnant human subject
KR102313028B1 (ko) * 2015-10-29 2021-10-13 삼성에스디에스 주식회사 음성 인식 시스템 및 방법
CN106021941A (zh) * 2016-05-27 2016-10-12 成都信汇聚源科技有限公司 获取猝死风险预测人工神经网络权重值矩阵的方法
KR20180027887A (ko) * 2016-09-07 2018-03-15 삼성전자주식회사 뉴럴 네트워크에 기초한 인식 장치 및 뉴럴 네트워크의 트레이닝 방법
US20180247199A1 (en) * 2017-02-24 2018-08-30 Qualcomm Incorporated Method and apparatus for multi-dimensional sequence prediction
CN106901723A (zh) * 2017-04-20 2017-06-30 济南浪潮高新科技投资发展有限公司 一种心电图异常自动诊断方法
US11138724B2 (en) * 2017-06-01 2021-10-05 International Business Machines Corporation Neural network classification
CN107595243B (zh) * 2017-07-28 2021-08-17 深圳和而泰智能控制股份有限公司 一种病症评估方法及终端设备
CN107516075B (zh) * 2017-08-03 2020-10-09 安徽华米智能科技有限公司 心电信号的检测方法、装置及电子设备
US10836379B2 (en) * 2018-03-23 2020-11-17 Sf Motors, Inc. Multi-network-based path generation for vehicle parking

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170132842A (ko) 2015-07-27 2017-12-04 구글 엘엘씨 순환 신경망들을 사용하는 건강 이벤트들의 분석

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046121A (ko) * 2019-10-17 2021-04-28 단국대학교 산학협력단 검출정보별 신경망 분석을 실시하여 파킨슨 환자 및 족관절염 환자를 식별하는 장치 및 방법
WO2021100968A1 (ko) * 2019-11-18 2021-05-27 네오컨버전스 주식회사 인공지능을 이용한 태아 박동 진단방법, 장치 및 시스템
KR20220088670A (ko) 2020-05-11 2022-06-28 주식회사 에이젠글로벌 인공지능 데이터 자동 분석 방법 및 분석 시스템
KR20210137604A (ko) 2020-05-11 2021-11-18 주식회사 에이젠글로벌 인공지능 데이터 자동 분석 방법 및 분석 시스템
WO2022014943A1 (ko) * 2020-07-14 2022-01-20 주식회사 바디프랜드 생성적 적대 신경망 알고리즘을 기반으로 하는 심전도 생성 장치 및 그 방법
WO2022014942A1 (ko) * 2020-07-14 2022-01-20 주식회사 바디프랜드 딥러닝 기반 심전도를 이용한 심장 질환 진단 장치 및 그 방법
KR20220008447A (ko) * 2020-07-14 2022-01-21 주식회사 바디프랜드 딥러닝 기반 심전도를 이용한 심장 질환 진단 장치 및 그 방법
KR102197112B1 (ko) * 2020-07-20 2020-12-31 주식회사 아이메디신 시계열 생체 신호 기반의 인공신경망 모델 학습 컴퓨터 프로그램 및 방법
US11995891B2 (en) 2020-07-20 2024-05-28 Imedisync, Inc. Computer program and method for training artificial neural network model based on time-series biosignal
WO2022019402A1 (ko) * 2020-07-20 2022-01-27 주식회사 아이메디신 시계열 생체 신호 기반의 인공신경망 모델 학습 컴퓨터 프로그램 및 방법
KR102377414B1 (ko) 2020-09-16 2022-03-22 한림대학교 산학협력단 인공지능 기반 개인화 청각 재활 시스템
KR20220037917A (ko) * 2020-09-18 2022-03-25 (주)이플마인드 인공지능을 이용한 심전도 기반 혈당 측정 방법, 장치 및 프로그램
KR20220045653A (ko) * 2020-10-06 2022-04-13 한림대학교 산학협력단 급성심근경색 판단 방법, 장치 및 프로그램
KR102208759B1 (ko) * 2020-12-23 2021-01-29 주식회사 아이메디신 생체 신호에 기반하여 건강상태 및 병리증상을 진단하기 위한 딥러닝 모델 생성방법
KR102208760B1 (ko) * 2020-12-23 2021-01-29 주식회사 아이메디신 생체 신호에 기반하여 건강상태 및 병리증상을 진단하기 위한 영상 데이터 생성방법
US20220237450A1 (en) * 2021-01-28 2022-07-28 United Microelectronics Corp. Semiconductor process prediction method and semiconductor process prediction apparatus considering overall features and local features
WO2022255564A1 (ko) * 2021-06-02 2022-12-08 주식회사 뷰노 생체신호 분석 방법
WO2023048400A1 (ko) * 2021-09-24 2023-03-30 주식회사 뷰노 심박변이도 특징 값을 추출하기 위한 방법
KR102437348B1 (ko) * 2021-12-20 2022-08-29 (주)씨어스테크놀로지 웨어러블 심전도 신호 분석 방법
KR20230140774A (ko) * 2022-03-30 2023-10-10 한림대학교 산학협력단 심전도 이미지를 바탕으로 심근 경색에 대한 진단을 수행하는 전자 장치, 및 제어 방법

Also Published As

Publication number Publication date
US20200337580A1 (en) 2020-10-29
CN111565633A (zh) 2020-08-21
EP3777674A1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
EP3777674A1 (en) Time series data learning and analyzing method using artificial intelligence
US11134880B2 (en) Automatic method to delineate or categorize an electrocardiogram
Murugesan et al. Ecgnet: Deep network for arrhythmia classification
EP3558101B1 (en) Methods and systems for determining abnormal cardiac activity
JP6986724B2 (ja) 人工知能に基づく心電図干渉識別方法
WO2019100560A1 (zh) 基于人工智能自学习的心电图自动分析方法和装置
Luo et al. Multi-classification of arrhythmias using a HCRNet on imbalanced ECG datasets
US20220265199A1 (en) Automatic method to delineate or categorize an electrocardiogram
Wu et al. A novel method for classification of ECG arrhythmias using deep belief networks
Singh et al. Classification of short unsegmented heart sound based on deep learning
Ahsanuzzaman et al. Low cost, portable ECG monitoring and alarming system based on deep learning
Fang et al. Dual-channel neural network for atrial fibrillation detection from a single lead ECG wave
Dhyani et al. Arrhythmia disease classification utilizing ResRNN
Chen et al. Edge2Analysis: a novel AIoT platform for atrial fibrillation recognition and detection
Moshawrab et al. Cardiovascular events prediction using artificial intelligence models and heart rate variability
Akçin et al. A Hybrid Feature Extraction Method for Heart Disease Classification using ECG Signals
Tallapragada et al. Improved atrial fibrillation detection using CNN-LSTM
Khan et al. Congenital Heart Disease Prediction based on Hybrid Approach of CNN-GRU-AM
Mangathayaru et al. An attention based neural architecture for arrhythmia detection and classification from ecg signals
Guo et al. Machine learning-based automatic cardiovascular disease diagnosis using two ecg leads
Zhang et al. Multi-scale and attention based ResNet for heartbeat classification
Ern et al. Classification of arrhythmia signals using hybrid convolutional neural network (cnn) model
Franklin et al. Arrhythmia and disease classification based on deep learning techniques
Lakshminarayan et al. Feature extraction and automated classification of heartbeats by machine learning
CN112022149A (zh) 一种基于心电信号的房颤检测方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application