[결과물] 데이터 수집부터 CNN 모델 구현
작업 기간: 2023. 01. ~ 2023. 02.
(논문 게재) "AI 학습 모델을 통한 욕실에서의 생활 감지 연구", 대한전자공학회, 제 60권, 5호, pp 507-515, 5월, 2023.
1. 모델 순서도
2. 데이터 수집
욕실 리빙랩 구축을 통해 용변, 세안, 청소, 샤워에 대해 실험을 진행함
2.1 실험 방법
욕실 리빙랩에서의 각 실험 1세트는 10분으로 지정함
- 용변 : 욕실에서 변기에 앉아 있음
- 세안 : 세숫대야에 일정량 물을 채우고 세수와 유사하게 물장구치는 것으로 구성
- 청소 : 테스트베드 내에서의 물걸레질로 구성
- 샤워 : 온수기와 펌프를 통해 샤워기의 작동 구성
3. 데이터 전처리
- 각 모드별 14,565개씩 총 58,260개의 데이터를 전처리함
- 중복데이터 제외
- 이상데이터의 경우, 결측치 처리하여 제외
- 이상치데이터: 해당 데이터에서 나올 수 없는 수치를 의미
ex) 습도가 0% 혹은 100%를 넘는 경우
- 이상치데이터: 해당 데이터에서 나올 수 없는 수치를 의미
- 훈련세트와 테스트세트는 8:2 비율로 지정함
- RobustScaler와 PolynomialFeatures로 특성을 표준화하고 특성 공학을 통해 특성을 학습에 알맞은 형태로 조정함
- 학습 데이터의 전처리가 바람직하게 되었는지 아래 그림을 통해 살펴볼 수 있음
- 해당 데이터 전처리는 이상데이터를 결측치 처리하여 학습데이터에서 제외된 것을 확인한 것으로, 데이터 전처리가 바람직하게 되었음을 알 수 있음
4. 합성곱 신경망(CNN) 학습
1) 정의
합성곱은 신경망(Convolutional Neural Network)은 CNN으로도 불리며, 이미지 처리에 탁월한 성능을 보이는 신경망임. 현재는 텍스트 처리를 시도하는 등 다양한 분야에서 활용하고 있음.
합성곱 신경망에서의 학습은 합성곱 연산과 풀링 연산을 통해 이루어짐.
- 합성곱 연산 : 데이터 특성의 특징을 추출함
- 풀링 연산 : 합성곱 층(합성곱 연산+활성화 함수) 다음으로, 풀링 층을추가하는 일반적으로, 풀링 층에서는 특성 맵 다운 샘플링하여 특성 맵의 크기를 줄임
2) 모델 설계
![]() < 합성곱 신경망 모델링 코드 일부 발췌 > |
![]() < 모델링 시각화 > |
![]() < 합성곱 신경망 모델링 > |
- 레이어를 순차적으로 쌓아올린 형태로 합성곱 신경망 모델링을 하였음
3) 모델 학습
인공 신경망은 학습하기 이전에 학습 방식 3가지에 대해 사용자가 지정해야 함
- 정규화기(optimizer) : 훈련과정 설정 (adam, sgd, rmsprop, adagrad 등)
- 손실 함수(loss function) : 모델 최적화에 사용되는 목적 함수 (mse, categorical_crossentropy, binary_crossentropy 등)
- 평가지표(metrics) : 모델성능평가지표로 훈련 모니터링을 위해 사용 (분류 : accuracy / 회귀 : mse, rmse, r2, mae, mspe, msle 등)
※ 본 모델은 보편적으로 지정하고 성능이 뛰어난 정규화기 ‘adam’, 손실함수 ‘sparse_categorical_crossentropy’를 설정했으며, 분류 모델이므로 평가지표는 accuracy로 지정함
5. 모델 평가
- 모델 평가는 오차 행렬을 활용한 정확도, 정밀도, 재현율, F1-score으로 평가함
- 결과는 아래와 같음
※ 모델 최적화를 위해 모델의 하이퍼 파라미터를 조정하며 F1-score값이 90점 이상이 되도록 모델 설계 과정부터 평가를 반복하여 작업함
개인적으로 작업을 수행하며 아쉬웠던 점
- 더 오랜기간 데이터를 수집하여 방대한 데이터(약 10만 개 이상)로 전처리하지 못한 점
- 모델링(개발) 기간이 상대적으로 데이터 수집기간보다 짧아서 다양한 시도(모델링, 설계 등)을 해보지 못한 점
CNN 모델을 활용하면서 조언을 구할 주변 지인이 부족하여 바르게 활용하고 있는지 확인할 수 없었던 점