1. 데이터셋

Wajid Mumtaz의 데이터셋


2. 방법론


본 연구는 기본적으로 사용되는 Feature set에 따라 세 부분으로 나뉜다. 
8개의 선형 feature(4-band 채널과 반구형 비대칭 4채널), 
2개의 비선형 feature(RWE, WE), 
6개의 선형 + 비선형 세트 조합

1) 전처리
 (1) 뇌파 노이즈 감소
0.5~32Hz 사이의 신호에서 분석이 수행될 수 있도록 고역 필터 및 저역 필터로 필터링 되었다. 근육 움직임이나 전력 노이즈 신호는 32Hz를 초과하기 때문에 이 프로세스에서 제거된다. 눈 깜빡임, 안구 운동과 같은 잡음은 ICA(Independent Component Analysis)를 사용하여 제거하였다.

 (2) 특징 추출
 - Band Power
델타 (0.5–4Hz), 세타 (4–8Hz), 알파 (8–13Hz) 및 베타 (13–30Hz)의 네 가지 주파수 대역이 EEG에서 추출된다. welch periodogram(웰치 주기도) 를 사용하여 EEG 신호의 전력 스펙트럼을 계산한다. 이 방법은 신호가 50%씩 겹치는 작은 세그먼트로 나뉜다. 수정된 주기도의 평균을 취하여 각 대역의 신호 전력을 얻는다.

 -반구형 비대칭
뇌의 왼쪽 절반과 오른족 절반의 뇌파 신호 전략의 차이는 반구간 비대칭으로 나타난다. 

- 웨이블릿 변환
웨이블릿 변환은 저주파에서는 좋은 주파수 정보를 제공한다. 웨이블릿 전환을 사용하여 시간-주파수 신호를 얻는다. CWT는 중복성이 높고 계산 시간과 리소스가 크게 필요하기 때문에 이산 웨이블릿 변환(DWT)로 해결한다.

- 상대 웨이블릿 에너지
각 분해능 수준에서 웨이블릿 계수와 관련된 상대 에너지

- 웨이블릿 엔트로피
각 분해능 수준에 포함된 정보는 웨이블릿 엔트로피로 표현된다. 

2) Feature 축소
선형 Feature 분석을 위해서, 19개의 Feature(각 채널 위치) 에 대해 1개 Feature의 특징 세트가 사용되었다. 
비선형 분석에서 76개의 feature는 계산 비용과 효율성을 위해서 차원 축소 기능을 사용했다. 이에 PCA 를 사용하였다.

3) 분류기 모델
 (1) 다중 퍼셉트론 신경망 (MLPNN)
지도 학습을 사용하는 신경망 모델 유형이며 역전파로 훈련되는 Feed forward network. 1개의 입력 레이어, 1개의 출력 레이어 및 2개 이상의 은릭 레이어를 사용한다. 입력 레이어에는 linear 함수를 사용하였고, 출력 레이어와 은릭 레이어에는 sigmoid 와 같은 비선형 함수를 사용하였다.

 (2) RFBN
 (3) LDA
 (4) QDA

4) 검증
분류기는 10배 교차 검증을 100회 반복하여 실행하였다. 혼동 행렬을 기반으로 정확도, 민감도, 특이도가 계싼된다.

3. 결과
1) 밴드 파워
알파 전력이 MLPNN 에서 acc 91.67을 달성

2) 반구형 비대칭
알파 비대칭에 대한 QDA에서 73.33의 분류 정확도

3) 비선형 Feature
RWE : RBFN , WE : LDA에서 각각 90%의 분류 정확도

4) 조합
RWE와 알파 파워의 조합은 정확도: 93.33 민감도 : 94.44 특이도 87.78을 보여주었다. 

1. 데이터셋


(동일 저자의 연구와 동일)


2. 방법론


1) 전처리
 (1) 뇌파 노이즈 감소
이전 연구에서와 동일하게 눈 깜빡임, 근육 활동으로 인한 인공물에 의해 영향을 받는 것을 줄이기 위해 노이즈 감소 방법으로 MSEC를 사용하였다. MSEC는 전 연구와 동일하게 BESA 소프트웨어에서 구현되었다.

 (2) 딥러닝 계획 제안

딥러닝 프레임워크


본 연구에서는 1차원 컨볼루션 신경망(1d CNN) 모델과 1d CNN 모델과 LSTM 모델을 조합한 모델을 활용하였다. 

EEG 데이터는 1초의 윈도우 길이(256 samples)로 분할되었다. 각 EEG 세그먼트는 19개의 채널과 1초의 길이(256 샘플)을 가진다. 분류기의 관점에서, 입력 데이터 차원은 2개의 EEG 데이터 세트(EO, EC) 별로 256 * 19 이다. (256, 19)


1초로 나눈 이유 : 제안된 모델의 경험적 평가 (1초의 크기가 최상의 결과를 제공하였다)

- 모델1 - 1DCNN


- 모델2 - 1DCNN + LSTM


 (3) 딥러닝 아키텍쳐 훈련
Adam 최적화 함수를 사용하였고, binary cross-entropy 손실 함수를 사용하였고, 시그모이드 활성화 함수를 사용하였다.

 (4) 모델 검증
EEG 데이터세트의 20%를 사용하여 테스트 되었다. 추가 분석을 위해 10겹 교차검증을 사용하였다.


3. 결과


1DCNN 
EO 데이터에 대해서 19개 채널을 사용하였을 때 acc 98.32 precision = 99.78, recall = 98.34 및 f-score = 97.65의 성능을 달성함.

1DCNN + LSTM
19개 채널 사용 시, 정확도 = 95.97 %, 정밀도 = 99.23 %, 재현율 = 93.67 % 및 f-score = 95.14 

 

33명의 MDD 환자와 30명의 대조군의 데이터를 가지고 ML분류기를 학습시켜 우울증 여부를 판단하는 모델을 만들었다.
1) 19개의 채널은 델타, 세타, 알파, 베타 대역대로 나누어짐
2) EEG 알파 반구간 비대칭 변수
3) 뇌파 스펙트럼 파워
이렇게 만들어진 Feature들은 특징 선택 방법(AUC Rank)에 의해 5, 10, 15, 19개의 채널 집합으로 데이터 매트릭스가 구성되었다.
결과로 SVM 모델에서 반구형 알파 비대칭 19 feature을 사용하였을 때, 98.4의 정확도와 99.66의 민감도, 100%의 특이도가 나왔다.

 

1. 데이터셋


Hospital Universiti Sains Malaysia 에서 인간 윤리 위원회가 승인한 실험 설계에 따라 34명의 MDD, 30명의 정상 환자 수집
MDD 환자는 DSM-IV에 따라 우울증 진단 기준 충족된 환자, 약물 효과를 피하기 위해 2주간의 약물 세척 시간을 거침



2. 방법론

ML 파이프라인


1) 전처리
 (1) EEG 데이터에서 노이즈 제거
EEG 데이터는 눈 깜박임, 움직임, 근육 활성화 (예. 심장박동) 등과 같은 상이한 유형의 잡음과 혼동 될 수 있다. 그래서 이 잡음을 제거하기 위해 BESA(standard Brain Electric Source Analysis)를 사용하여 잡음 제거를 수행하였다. 

 (2) 특징 추출
연구 대상당 EC, EO 데이터로부터 인공물이 포함되지 않은(artifact-free) EEG Epoch가 선택되었다. 그리고 후보 특성으로 다른 주파수 대역에서의 전력 계산값과 EEG 알파 비대칭을 선정하여 데이터 매트릭스를 형성하였다.

 - 뇌파 알파 반구간(interhemispheric) 비대칭
좌반구와 우반구 사이의 EEG 신호 전력의 차이는 반구간 비대칭의 계산으로 나타내어질 수 있다. 
EEG 알파 반구간 비대칭은 전두엽 (Fp1, Fp2, F3, F4, F7, F8, Fpz), 측두엽 (T3, T4, T5, T6), 두정엽 (P3, P4, P7, P8), 후두엽 (O1, O2), 중추(C3, C4)를 포함하는 각 채널 쌍에 대해 계산되었다. 예를 들어, Fp1은 Fp1-Fp2; p1-F4; Fp1-F8; Fp1-T4; Fp1-T6; Fp1-P4; Fp1-P8; Fp1-O2; Fp1-C4 와 같이 진행되었다. 이렇게 알파 반구간 비대칭은 뇌 영역별로(전두엽, 후두엽 등) 평균화 된다.

 - 뇌파 스펙트럼 파워
이 연구에서는 the Welch periodogram method를 사용하여 뇌파 신호 전력을 계산하였다. 
특이치를 제거하기 위해 z-score에 의거한 data standardization을 진행하였다. 

 (3) Feature 선택
이렇게 만들어진 데이터 매트릭스는 고차원의 데이터 셋이기 때문에 ML에 적용하기 위해서는 특징 선택이 필요하다. 
특징들은 ROC에 따라 순위가 매겨졌다.(각 피쳐별로 랜덤 분류기 -> ROC 커브 이렇게 얻은 AUC 값에 따라 순위를 매겼다.) 그렇게 해서 상위 5, 10, 15, 19개의 피쳐 집합(채널 집합)을 생성하였다.

 (4) 머신러닝 모델 선택
감소된 특징 세트 = 독립변수 = X = Feature
MDD 환자 / 대조군 = 종속변수

 - 로지스틱 회귀 모델
 - SVM 분류기
 - NB 분류기

 (4) 검증
데이터 매트릭스는 10배 교차 검증에 따라 훈련, 테스트 셋으로 나뉘었다. 그리고 테스트 결과의 유효성을 검증하기 위해서 10배 교차 검증을 100회 반복하였다.
혼동 행렬에 의거하여, Accracy, Sensitivity, Specificity의 평가 기준을 사용하였다.


3. 결과


 1) 뇌파 신호 전력

 2) 뇌파 알파 반구간 비대칭
MDD 환자 : 왼쪽 > 오른쪽 (전두엽), 오른쪽 > 왼쪽 (그 외)
대조군 : 왼쪽 < 오른쪽 (전두엽), 오른쪽 < 왼쪽 (그 외)

 3) 머신러닝 분류기
 (1) 로지스틱 회귀
 - 10개의 Feature만 사용한 반구형 알파 비대칭 방법이 97.6% 정확도, 96.66% 민감도, 특이도  = 98.5 %)를 달성하였다. 모든 주파수를 사용한 웨이블릿 계수는 최저 성능을 달성하였다. (86.4)
 (2) NB 분류모델
- 5개의 특성을 사용한 반구형 알파 비대칭 방법이 96.8
- 세타 파워를 사용한 분류는 낮은 성능
 (3) SVM
반구형 알파 비대칭
- 19개의 Feature를 사용한 반구형 알파 비대칭 방법이 98.4

4. 생각해볼 점

알파 반구간 비대칭은 실제적으로 어떻게 계산되는가? 

잡음 제거의 필요성

머신러닝 모델로도 아주 좋은 성능

1. Wajid Mumtaz의 Dataset을 사용한 논문

Electroencephalogram (EEG)-based computer-aided technique to diagnose major depressive disorder (MDD)

 

A deep learning framework for automatic diagnosis of unipolar depression

 

Imagery Signal-based Deep Learning Method for Prescreening Major Depressive Disorder

 

Classification of Depression Patients and Normal Subjects Based on Electroencephalogram (EEG) Signal Using Alpha Power and Theta Asymmetry

 

Detection of major depressive disorder using linear and non-linear features from EEG signals

 

2. 타 데이터셋으로 진행된 연구

Automated EEG-based screening of depression using deep convolutional neural network

 

Depression Detection Using Relative EEG Power Induced by Emotionally Positive Images and a Conformal Kernel Support Vector Machine

class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', break_ties=False, random_state=None)

 

Parameter type 설명
C float (default = 1.0) 정규화 매개 변수, 정규화의 매개 변수는 C에 반비례한다.
kernel string (default='rbf') SVM 알고리즘에 사용될 커널 유형을 지정한다.
'linear', 'ploy', 'rbf', 'sigmoid', 'percomputed' , 'callable' 등의 커널을 지원한다.
degree int (default = 3) 다항식 커널 함수의 각도로 'ploy' 커널을 사용했을 때 사용된다. 다른 커널에서는 무시된다.
gamma {'scale', ' auto'} or float (default = 'scale') 'rbf', 'ploy', 'sigmoid' 커널에서의 커널 계수이디/
coef0 float (default = 0.0) 'ploy', 'sigmoid' 에서의 독립구간
shrinking boolean (default = True) 휴리스틱 값이 줄어드는지의 여부
probability boolean (default = False) 확률 추정을 활성화할 지의 여부
tol flaot (default = 1e-3) 중지 기준에 대한 오차허용 값
cache_size float 커널 캐시의 크기
class_weight dict, ' balanced' 클래스 가중치, 클래스 불균형에 가중치를 주는 기능의 조정
verbose bool (default = False) 출력 자세히 보기의 여부
max_iter int (default = -1) 반복 횟수 제한 (제한이 없으면 -1)
decision_function_shape 'ovo', 'ovr' (default = 'ovr') 결정 함수의 모양을 결정한다.
break_ties bool (default = False) True, 결정 함수의 모양이 'ovr', 클래스 수가 2보다 큰 경우 신뢰도 값에 따라 연결이 끊어진다.
random_state int (defualt = None) 데이터를 섞을 때 사용되는 의사 난수 생성기의 seed값

'Programming > Python' 카테고리의 다른 글

sklearn.linear_model.LogisticRegression  (0) 2020.06.04
sklearn.neighbors.KNeighborsClassifier  (0) 2020.06.04

 

1. What is the HTTPs compared to HTTP ?

https is a http + Secure Socket and performs a http connection using a secure socket. This means that the contents of all communication are encrypted and transmitted. In this case, public keys are used during this time. These public keys are two pairs, one for encryption in the transmission process and the other for decoding in the reception process.

 

2. What is the approach (technique) of filtering those web-sites even for the HTTPs ?

  • IP Block

    It is a way to block the IP of the Web server itself. The method is used by the South Korean government to prevent access to the North Korea's servers.

  • DNS Blocking

    Tell the ISP the domain name and IP address of the site to block. If the request that a user attempts to access from the ISP matches the government's blocking, send warning.co.kr instead of the site's IP address.

3. propose your idea to access to those web-site avoiding government monitoring

  • Using VPN

    You can use a virtual private network (VPN) to bypass it.

  • Use of overseas DNS servers

    If you use overseas DNS servers such as Google's DNS server (8.8.8.8), you can bypass DNS blocking.

  • Remote access to abroad PCs

    After accessing a PC that is using an overseas Internet, the remote screen is transmitted and used in the same way as the RDP. Using clouds such as AWS and GCP makes it easy to obtain virtual machines that use the Internet environment abroad.

'Study > Network' 카테고리의 다른 글

DNS Query and HTTP Connection  (0) 2019.10.14
Websocket Programming  (0) 2019.09.27
TCP / UDP Socket Programming  (0) 2019.09.25

11월 12일 기준, AWS에 EC2 실습 도중 그누보드 install 시 테이블 생성할 때 SQL Syntax 오류가 발생합니다.

1573542874193

 

그누보드5 설치가 시작되었습니다.

전체 테이블 생성 완료


insert into `g5_member` set mb_id = 'admin', mb_password = PASSWORD('1234'), mb_name = '최고관리자', mb_nick = '최고관리자', mb_email = 'admin@domain.com', mb_level = '10', mb_mailling = '1', mb_open = '1', mb_email_certify = '2019-11-12 16:14:31', mb_datetime = '2019-11-12 16:14:31', mb_ip = '203.249.127.80'


1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('1234'), mb_name = '최고관리자', mb_nick' at line 3


error file : /gnuboard5/install/install_db.php

현재 우리가 설치한 LAMP의 MYSQL 버전은 8.0.1 ~ 버전으로 PASSWORD 함수가 빠져 있어서 발생하는 문제입니다. (참고자료 : https://sir.kr/g5_tip/9410 )

 

2. 해결 방법

현재 그누보드 최신 커밋 버전에는 수정된 코드가 빠져 있습니다. 그래서 이 오류를 수정한 커밋의 버전 (https://github.com/gnuboard/gnuboard5/commit/76aabc8f810a58e43473ed3c682dc14b1beaa16e?diff=split) 을 다운로드 받으셔서 해결할 수 있습니다.

먼저 git clone 명령어를 (책에 있는 대로) 사용하셔서 git에서 소스코드를 다운로드 받습니다.

cd 명령어로 gnuboard5 디렉토리 상으로 이동한 뒤,

git reset --hard 76aabc8f810a58e43473ed3c682dc14b1beaa16e

를 입력하여 예전 커밋으로 되돌립니다.

1573543007554

 

그 후 install을 진행하시면 정상적으로 작동됩니다.

1573543039407

실행이 잘 된 모습! (로그인도 정상적으로 동작합니다)

1573543697939

'Study > Cloud' 카테고리의 다른 글

CloudWatch를 이용한 결제 알람 만들기  (0) 2019.09.25
4대 클라우드 비교  (0) 2019.09.23
AWS 탐구생활 - S3  (0) 2019.05.29
AWS EC2 인스턴스 만들기  (0) 2019.05.08
생활코딩과 함께하는 AWS 탐구생활 - 소개  (0) 2019.05.04

개체 관계 모델

1) 개체 (Entity)

현실 세계에서 조직을 운영하는 데 꼭 필요한 구별되는 모든 것.

구별되는 이름, 각 개체만의 고유한 특성이나 상태(속성)을 가진다.

 

개체 인스턴스(어커런스) : 개체를 구성하는 속성이 실제 값을 가짐으로서 실체화됨

개체 집합 : 특정 개체 타입에 대한 개체 인스턴스를 모아 놓은 것

 

2) 속성

개체가 가지고 있는 고유의 특성

의미 있는 데이터의 가장 작은 논리적 단위

 

(1) 단일 값 속성 / 다중 값 속성

- 단일 값 속성 : 특정 개체를 구성하는 속성의 값이 하나일 때. E-R 다이어그램에서 타원.

- 다중 값 속성 : 속성 값이 여러개일 때. E-R 다이어그램에서 이중 타원으로 표시.

 

(2) 단순 속성과 복합 속성

단순 속성 : 의미를 더 이상 분해할 수 없는 속성

복합 속성 ; 의미를 분해할 수 있어 여러 개의 의미를 포함

 

(3) 유도 속성

값이 별도로 저장되는 것이 아니라 기존의 속성 값에서 유도되는 속성 점선 타원

생년월일에서 나이 속성. 가격과 할인율에서 판매가격

 

(4) 널 속성

아직 결정되지 않았거나 모르는 값. 0, 공백과는 다르다.

 

 

(5) 키 속성

각 개체 인스턴스들을 식별하는데 사용되는 속성

키 속성의 값은 각 개체 인스턴스마다 달라야 함. E-R 인스턴스에서 밑줄로 표현

 

3) 관계

개체와 개체가 맺고 있는 의미 있는 연관성.

개체 집합들 사이의 대응 관계, 매핑

E-R 다이어그램에서 마름모로 표현됨

 

 

출처

김연희, 데이터베이스 개론, 한빛아카데미, 2019

이영호, 가천대학교 데이터베이스 수업, 가천대학교, 2019

'Study > DataBase' 카테고리의 다른 글

데이터 모델링  (0) 2019.11.13
데이터 언어와 DBMS의 구성  (0) 2019.11.13
데이터베이스 사용자  (0) 2019.10.31
데이터베이스의 구조  (1) 2019.10.31
ACID  (0) 2019.10.11

+ Recent posts