3.1 보간 모델의 입력 변수 설계
본 연구에서는 한국전력공사의 전력 데이터 공유센터에서 학술용으로 공유하는 전력사용량 데이터를 활용한다. 전력사용량 데이터는 원격검침계기로부터 15분
또는 1시간 단위로 수집한다. 수집 주기에 차이는 원격검침계기의 종류에 따라 달라지며, 이는 전기사용자의 전기사용계약에 따라 수집하는 데이터의 범위가
다르기 때문이다. 그렇기 때문에 주기가 다른 데이터를 1시간 단위로 통일하는 데이터 전처리 작업을 수행한다.
전력사용량 데이터는 10개의 대표 업종을 선별하여 사용한다. 각 업종별로 20개씩 총 200개의 데이터셋을 구성하였으며, 데이터 수집 기간은 2021.8~9월로
2개월간의 데이터를 사용한다. 결측값이 많은 일자의 데이터는 분석 대상에서 제외하고, 데이터 주기를 1시간 단위로 조정한다.
전력사용량 데이터 보간을 2가지 방식으로 검토한다. 첫 번째는 전력사용량 데이터의 자기상관성을 이용하여 전기사용자 개별의 전력사용량 데이터를 학습
데이터로 보간하는 방법이다. 두 번째는 업종별 전력사용 패턴의 상관성을 이용하여 업종별 전력사용량 데이터를 그룹화하여 학습하는 방법이다. 2가지 방식의
타당성 검증을 위하여 전력사용량 데이터의 자기상관계수(Autocorrelation coefficient)와 업종별 상관계수(Correlation coefficients)를
분석한다.
자기상관계수는 순차 데이터의 시차 값 사이의 선형 관계를 측정하는 것이고, 수식은 (1)와 같다.
전력사용량 데이터는 24시간의 주기를 가지므로 k=24 일 때, 전기사용자별 자기상관계수를 계산한다.
업종별 상관계수는 두 변수 사이의 선형 관계의 크기를 측정하는 것이고, 수식은 (2)와 같다.
업종별 상관계수는 전기사용자별로 24시간 주기의 데이터 분포를 기준으로 측정하였으며, 각 업종별 20개씩의 데이터 샘플에 대해 상관계수를 계산하여
평균한다.
전력사용량 데이터의 자기상관계수와 업종별 상관계수 계산 결과는 표 1과 같다.
표 1. 자기상관계수와 업종별 상관계수 비교
Table 1. Comparison of autocorrelation coefficient and correlation coefficient by
business
|
MIN
|
MAX
|
Avg.
|
Autocorrelation coefficient
|
0.035
|
0.969
|
0.616
|
Correlation coefficient
by business
|
0.347
|
0.537
|
0.459
|
전력사용량 데이터의 자기상관계수의 평균값은 0.616으로 업종별 전력사용량 데이터 상관계수보다 약 0.157이 높게 나왔다. 하지만 최소값은 0.035로
상관성이 매우 낮은 전기사용자 데이터도 존재한다. 데이터 분포값이 유사한 데이터를 사용한다면 딥러닝 모델의 일반화 성능을 높일 수 있다. 실험계획
수립시 전기사용자별 학습 데이터를 생성하는 방법과 업종별로 학습 데이터를 생성하는 방법을 검토한다.
전력사용량 데이터는 기상 데이터와 상관관계는 이전의 많은 연구에서 다루어진 내용이다. 본 연구에서는 입력변수 설계와 검증 차원에서 업종별 전력사용량과
기상 데이터간의 상관관계를 분석한다. 기상 데이터는 기상청에서 개방한 데이터를 수집하여 기온(℃), 강수량(㎜), 습도(%) 데이터를 요인으로 선정한다.
그림. 3. 전력사용량과 기상과의 상관관계 분석 결과
Fig. 3. Correlation analysis result between electricity consumption and weather
상관관계 분석결과는 그림 3과 같다. 전력사용량은 기온은 양(+)의 상관관계를 보이고, 습도와는 음(-)의 상관관계를 보이고 있다. 기온에 민감한 업종은 습도에서도 동일하게
높은 상관관계를 보인다. 특히 커피숍, 미용실, 약국이 상대적으로 높은 상관관계를 보인다. 세탁소, 편의점, 제과점은 다른 업종과 비교하여 약한 상관관계를
나타낸다. 업종에 따라 일부 다른 특성을 보이지만 다수 업종에서 전력사용량과 온도, 습도 데이터의 상관관계는 유의미하다고 할 수 있다.
상기 분석결과에 따라 보간 모델의 입력 변수는 분석의 효율성을 고려하여 전력사용량과 온도 데이터로 선정하였다. 입력 변수는 시간 단위의 전력사용량(x1)과
온도 데이터(x2)를 묶음으로 2차원 텐서(tensor)를 구성한다.
데이터 보간을 위한 이전 연구의 사례를 보면 과거 시퀀스 데이터를 이용하여 결측치를 예측하는 방식을 주로 제안하였다. 본 연구에서도 이와 같은 방식을
채택하여 과거 24시간의 데이터 시퀀스를 기반으로 결측치를 예측하는 형태로 데이터 보간 모델링을 수행한다. 24시간 데이터를 사용하는 이유는 전기사용자의
전력사용량이 하루를 주기로 반복적인 패턴을 보이기 때문이다. 최종적인 입력 변수 설계는 3차원 텐서(tensor)로 식 (3)와 같이 정의한다.
3.2 딥러닝 모델 생성 방식 검토 실험
딥러닝 모델을 생성하는 방법으로 2가지 방식을 검토한다. 전기사용자별 딥러닝 모델을 생성하는 방식과 업종별로 딥러닝 모델을 생성하는 방식이다. 두
가지 방식을 비교하기 위해 LSTM 모델을 사용한 보간 모델 실험을 수행한다. 전기사용자별 LSTM 모델은 전기사용자 수와 같은 200개의 모델을
생성한다. 업종별 LSTM 모델은 업종 class 수인 10개의 모델을 생성한다. 두 가지 방식의 딥러닝 모델의 효율성과 정확도를 비교하기 위해,
모델별 Error rate(MSE, Mean Sequared Error)평균과 표준편차, 학습시간을 측정한 결과는 표 2와 같다.
표 2. 딥러닝 모델 생성 방식 비교
Table 2. Comparison of deep learning model creation methods
|
Number of models
|
Error rate
avg.
|
Error rate
std.
|
Training
time(sec)
|
Model by user
|
200
|
0.0729
|
0.0213
|
4575.8881
|
Model by
business
|
10
|
0.0768
|
0.0078
|
1271.0944
|
error rate->에러율 한글로 수정
높았지만->낮았지만 수정
전체 모델의 에러율 평균은 전기사용별 모델 생성 방식이 낮았지만, 에러율의 표준편차는 업종별 모델 생성 방식이 낮았다. 전기사용자별 보간 모델의 정확도
편차가 크다고 볼 수 있다. 그리고 학습시간도 업종별 모델 생성방식과 비교하여 3.6배 이상 소요된다. 업종별 보간 모델을 생성할 경우 보간 모델의
안정성과 효율성 측면에서 전기사용자별 모델 생성방식 보다 유리하다.
3.3 LSTM과 GRU 모델 성능 비교 실험
업종별 보간 모델 생성방식을 사용하여 LSTM, GRU를 활용한 전력사용량 보간 모델링을 실험한다. 두 알고리즘에 동일한 학습 데이터와 하이퍼 파라미터를
적용하여 정확도(Accuracy)와 학습 실행시간의 차이를 비교하여 분석한다.
전체 데이터는 시간 순서에 따른 모델 편향을 제거하기 위하여 랜덤하게 일자를 섞어서 학습:검증:테스트=7:1:2으로 분할하여 수행한다. 학습 반복
횟수(Epoch)는 100으로 설정하였고, 딥러닝 모델의 과적합을 방지하기 위해 연속 10회 이상 오차 값(loss)이 변하지 않는 경우 학습을 강제
종료하도록 명령을 삽입하였다. LSTM과 GRU의 loss function은 MSE(Mean Squared Error), optimizer는 Adam(Adaptive
Moment Estimation)을 사용하였다. 모델 평가는 오차에 동일한 가중치를 적용하기 위하여 MAE(Mean Absolute Error)를
사용한다.
모델 정확도의 평가지표는 MAPE(Mean Absolute Percentage Error), R2 Score를 검토하였다. MAPE는 직관적으로 에러율을
판단하기에 좋으나, 학습 데이터가 0값에 가까운 값이 존재하여 스케일 측면에서 부적합하여 R2 Score를 평가지표로 선정한다. R2 Score 측정을
위해 스케일한 전력사용량 값을 다시 복원하여 실제값과 예측값의 차이를 계산한다.
모델 정확도와 학습 실행시간 측정 결과는 표 3과 같다.
표 3. LSTM, GRU 모델 정확도, 학습 시간 비교
Table 3. Comparison of LSTM, GRU model accuracy and training time
|
LSTM(A)
|
GRU(B)
|
(A-B)
|
Accuracy
(R2 Score)
|
0.9628
|
0.9589
|
0.0039
|
Training time
(sec)
|
1271.0944
|
1085.8544
|
185.24
|
그림. 4. 4가지 LSTM 모델의 전력사용량 데이터 실제값과 예측값 비교 그래프
Fig. 4. Comparison graph between actual and predicted values of electricity consumption
data of four LSTM models
측정 결과 학습 정확도는 LSTM이 GRU와 비교하여 정확도는 0.0039 높았고, 학습 실행시간은 185.24초 늦었다. 보간 모델의 경우 결측치의
정확한 실제값을 예측하는 문제로 에러율이 무엇보다 중요하다. GRU가 속도 측면에서 이득이긴 하지만 에러율이 LSTM보다 높기 때문에 보간 모델에서는
LSTM을 사용하는 이득이 더 크다. 다음 단계에서는 LSTM을 활용하여 보간 모델 개선을 수행한다.
3.4 LSTM 보간 모델 실험 결과
보간 모델은 일반적인 회귀 모델과는 달리 결측 데이터의 시점을 중심으로 과거와 미래 데이터가 존재한다. 그렇기 때문에 LSTM을 양방향으로 적용하여
결측치 예측이 가능하다.(8) 다른 연구 사례에서도 시계열 데이터에서 양방향 LSTM 모델이 조금 더 나은 성능을 보인 사례가 있다.(9,10)
본 연구에서도 시계열 데이터의 양방향성을 고려한 성능을 비교하기 위하여 시계열 데이터의 순방향 모델인 forward LSTM 모델, 역방향 모델인
backward LSTM 모델, 양방향 모델인 Bi-dircectional LSTM 모델과 추가적으로 forward LSTM 모델과 backward
LSTM 모델의 평균치를 예측값으로 사용하는 평균 모델(forward-backward LSTM 평균 모델)을 구현하였다. 다음은 1개의 데이터 샘플에
대하여 4가지 LSTM 모델의 전력사용량 실제값과 예측값을 비교한 그래프이다.
forward 모델, backward 모델, Bi-directional 모델 및 forward- backward 평균 모델의 테스트 데이터셋 정확도를
측정하여 비교한 결과는 표 4과 같다.
표 4. 1시간 결측치 예측 모델 정확도
Table 4. 1-hour missing value prediction model accuracy
|
forward
|
backward
|
bi-
directional
|
forward-backward Avg.
|
Accuracy
(R2 Score)
|
0.9628
|
0.9706
|
0.9698
|
0.9753
|
1시간 데이터(결측치) 예측 모델 정확도는 forward-backward 평균 모델 > backward > bi-directional > Forward
순으로 나타났다. forward-backward 평균 모델이 가장 좋은 성능을 보인다.
실제 전력사용량 데이터의 결측은 연속적으로 나타날 수 있다. LSTM 활용 전력사용량 보간 모델의 실효성을 검증하기 위하여 2, 3시간 데이터(결측치)
예측 모델링을 추가 수행한다. 최종 결과는 표 5와 같다.
1~3시간 결측치 예측 모델의 평균 정확도는 forward-backward 평균 모델 > backward 모델 > forward model > bi-directional
모델 순으로 나타났다. 같은 하이퍼 파라미터 조건에서 unidirectional 모델이 bi-directional 모델보다 더 좋은 성능을 보였다.
가장 성능이 좋았던 forward-backward 모델의 경우 1시간, 3시간 결측치 예측 모델에 비해 2시간 결측기 예측 모델의 성능이 다소
표 5. 1~3시간 결측치 예측 정확도(R2 Score)
Table 5. 1-3 hour missing value prediction accuracy (R2 Score)
|
forward
|
backward
|
bi-
directional
|
forward-backward Avg.
|
1 hour
prediction
|
0.9628
|
0.9706
|
0.9698
|
0.9753
|
2 hour
prediction
|
0.9619
|
0.9605
|
0.9600
|
0.9526
|
3 hour
prediction
|
0.9633
|
0.9643
|
0.9615
|
0.9747
|
Average of
Accuracy
|
0.9627
|
0.9651.
|
0.9615
|
0.9675
|
낮았으며, 모델의 안정성이 다소 떨어지는 것으로 보이지만, 4가지 예측 모델 모두 R2 Score가 0.95 이상으로 안정된 모델 성능을 나타냈다.