• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Electrical and Electronic Engineering, Jeonju University, Jeonju, Korea.)



RNN, LSTM, short-term, wind power, forecast

1. 서 론

풍력은 간헐적이고 비선형적이다. 전력계통의 여유분을 초과하는 발전량이 풍력 발전기로부터 계통에 투입되면 계통에 교란을 일으킬 수 있다. 그러므로 안정적으로 전력계통을 운영하기 위해서는 정확한 단기 풍력예측 즉, 1 시간에서 수 시간의 발전량 예측이 필요하다. 한편, 풍력 발전의 불확실성이 전력 계통에 미치는 영향을 줄이기 위한 풍력 발전 예측 방법에 대한 연구가 많이 진행되었고 또한 진행되고 있다. 단기 풍력발전 예측에는 시계열을 이용한 예측, 패턴 분류를 이용한 방법, 결정트리, SVM(support vector machine), 신경망(Neural Network)방법 등이 활용되었다. Yubo Tao 등(1)은 DBN(Deep Belief Network)과 RNN(Recurrent Neural Network)을 활용하여 단기 풍력발전량을 예측했으며 웨이브렛(wavelet)법으로 풍력 패턴을 분류하여 모델의 정확도를 높였다. 15분 단위의 데이터를 취득하였으며 오차율은 (MAE: mean absolute error) 1.08%였다. Huai Nana 등(2)은 풍향의 사인/코사인 값을 풍향으로 활용하였으며, 기온, 기압을 CNN-GRU (Convolution Neural Network – Gated Recurrent Unit)에 입력하여 실제적인 풍속을 예측시점 1.5h, 2h, 2.5h에 대하여 예측했다. 입력 행렬의 크기는 6×6으로 CNN을 구현했다. Andrew Kusiak 등(3)은 시계열법과 KNN(K Nearest Neighbor)을 활용하여 풍력발전량을 예측했다. 10분 단위로 데이터를 취득했으며 예측시점은 10분에서 60분까지로 했고, 887데이터를 활용하여 예측을 했다. Xiaodan Wang 등(4)은 10분 단위로 데이터를 취득하여 풍력 발전 데이터를 다차원 공간분해기법으로 DBN방법에 적용했다. Xiaosheng Peng 등(5)은 다층 RBM(Restricted Boltzmann Machine)으로 초단기 풍력 발전량을 예측하였다. 김여진 등(6)은 앙상블 기법을 이용하여 ARIMAX모형과 SVR모형을 조합하여 단기 풍력발전량을 예측했다. 본 논문에서는 시간별 LSTM 모델을 만들고 이를 조합하여 예측시점 1시간에서 3시간까지의 풍력 발전을 예측했으며 LSTM모델, DBN모델 등과 예측 정확도를 비교 분석하여 제안한 모델의 타당성을 증명했다.

2. 시간별 LSTM 풍력발전 예측 모델

2.1 Recurrent Neural Network(RNN)(7)

순환신경망(RNN)은 신경망(NN)의 한 종류로 시퀀스 데이터 모델링에 적합하다. 순환신경망이 기존 신경망과 다른 점은 그림 1과 같이 순환하는 형태라는 것이다. RNN은 스스로를 반복하면서 이전 단계에서 얻은 정보를 다음 단계로 전달한다. A는 RNN의 한 덩어리로 $X_{i}$입력을 받아서 $Y_{j}$를 출력한다. A를 둘러싼 반복은 다음 단계에서의 네트워크가 이전 단계의 정보를 받는다는 것을 의미한다. 반복되는 시퀀스 모델을 풀어서 표현하면 그림 2와 같다. 그림 2의 경우 $X_{1}$, $X_{2}$, $X_{3}$을 입력받아 5개의 시퀀스 모델을 통해서 $Y_{1}$을 출력하는 것을 보여주고 있다. 예측 시점이 특정 단일 시간이면 많은 입력이 들어와서 하나의 출력이 나온다.

RNN은 데이터의 장기 의존성에 한계와 기울기가 사라지는 문제를 해결하기 위해 LSTM(Long Short Term Memory)모델이 개발되었다. 본 논문에서는 LSTM모델을 적용하였다.

그림. 1. RNN

Fig. 1. RNN

../../Resources/kiee/KIEE.2020.69.6.759/fig1.png

2.2 Long Short Term Memory(LSTM)(8)

Long Short Term Memory(LSTM)은 1997년 Hochreiter & Schmidhuber에 의해 제안된 순환신경망(RNN) 구조로 RNN의 문제점인 데이터의 장기 의존성(Long-Term Dependency)의 한계를 해결해 텍스트 생성, 음성인식, 텍스트 번역 등 순차적, 혹은 시계열 데이터의 학습 및 예측에 탁월한 성능을 보이는 모델이다.

LSTM은 4개의 layer가 서로의 정보를 주고받는 형태로 신경망이 구성된다. LSTM의 핵심은 셀 상태(cell state)인데 이것은 인간의‘기억’에 해당한다. 셀 상태는 게이트(gate)에 의해서 제어되는데, LSTM은 입력 게이트(Input gate), 망각 게이트(Forget gate), 출력 게이트(Output gate)로 이루어진다. LSTM모델은 그림 3에 나타나있다. 그림 3그림 2의 A부분에 해당한다. 망각 게이트는 식(1)과 같이 입력과 이전 셀의 출력에서 어떤 정보를 버릴 것인지를 결정하는 역할을 한다. 입력 게이트는 식(2)-(3)과 같이 입력되는 새로운 정보(시간 $t$에서 입력($x_{t}$)되는 정보와 $t-1$셀의 출력($h_{t-1}$)정보) 중에서 어떤 것을 셀 상태로 저장 혹은 기억할 것인지를 결정한다. 출력 게이트는 식(4)-(5)와 같이 입력과 기억 중 어느 부분을 출력으로 내보낼지를 결정한다. 식(6)은 과거 셀 상태(기억)를 업데이트해서 현재 셀 상태를 만든다. LSTM에서도 오차를 줄여가는 방법으로 순환신경망과 같이 Back Propagation Through Time (BPTT)를 사용한다.

(1)
$f_{t}=\sigma(W_{f}[h_{t-1,\:}x_{t}]+ b_{f})$

(2)
$i_{t}=\sigma(W_{i}[h_{t-1,\:}x_{t}]+ b_{i})$

(3)
$\widetilde C_{t}=\tanh(W_{c}[h_{t-1,\:}x_{t}]+ b_{c})$

(4)
$o_{t}=\sigma(W_{o}[h_{t-1,\:}x_{t}]+ b_{o})$

(5)
$h_{t}= o_{t}*\tanh(C_{t})$

(6)
$C_{t}= f_{t}* C_{t-1}+ i_{t}*\widetilde C_{t}$

(7)
$\sigma(x)=\dfrac{1}{1+e^{-x}}$

(8)
$\tanh(x)=\dfrac{e^{x}- e^{-x}}{e^{x}+ e^{-x}}$

여기서, $W_{f}$는 망각게이트 가중치, $b_{f}$는 망각 게이트 바이어스, $W_{i}$ 는 입력 게이트 가중치, $b_{i}$는 입력 게이트 바이어스, $W_{o}$ 는 출력 게이트 가중치, $b_{o}$는 출력 게이트 바이어스, $W_{c}$ 는 셀 게이트 가중치이고, $x_{t}$는 시간 $t$에서의 입력, $h_{t-1}$는 시간 $t-1$에서의 출력, $C_{t}$는 시간 $t$의 기억(셀), $C_{t-1}$은 시간 $t-1$에서의 기억이고, $\sigma$는 시그모이드 활성화 함수, $\tanh$는 Hyperbolic tangent 활성화 함수이다.

그림. 3. LSTM모델

Fig. 3. LSTM model

../../Resources/kiee/KIEE.2020.69.6.759/fig3.png

2.3 데이터 전처리 및 입·출력 데이터

이 논문에서는 풍력 단지 출력을 단지별로 모으지 않고, 계통 운영자의 운영 지역 내에 있는 풍력 단지 출력을 통합적인 발전량으로 하여 발전량을 예측하였다(9).

그림. 4. 계통 운영 지역 총 풍력 발전량과 풍속

Fig. 4. Total wind power and wind speed in the system operation area

../../Resources/kiee/KIEE.2020.69.6.759/fig4.png

그림 4의 A구간 즉, 50시간대에 풍속은 3~4[m/s]로 바람의 흐름이 있으나 발전기의 발전량은 0이고 B구간, 550에서 650시간대의 풍속은 2~6[m/s]로 충분히 발전할 수 있는 풍속이나 발전량은 무의미한 값을 가지고 있는 것으로 보아 입력 장치의 오류 혹은 측정 오류일 수 있다. 이런 이상 값들은 딥러닝 모델을 학습할 때 예상치 못한 결과를 만든다. 그러므로 이상 혹은 오류가 있는 데이터는 식(9)와 같이 강제적으로 제거한 후 딥러닝을 실행하였다.

(9)
$data = data[data[power]! = 0]$

계통 운영자가 제공한 2010년 1월 1일 0시부터 2019년 10월 5일 23시까지의 시간별 지역 풍력 발전량(풍력 단지가 아닌)과 기상청에서 제공하는 기온(t), 풍속(s), 풍향(d), 습도(h), 증기압(a), 지역 기압(la), 해수면 기압(sa), 지면 온도(gt), 전력(p)과 일년 중 몇 번째 주(w)에 해당하는지를 추가하여 초단기 풍력 발전량을 예측하였다.

시간 i의 입력 데이터는 식(10)과 같다.

(10)
$X_{i}=[w_{i},\: t_{i},\: s_{i},\: d_{i},\: h_{i},\: a_{i},\: la_{i},\: sa_{i},\: gt_{i},\: p_{i}]$

여기서, 각 기호는 기온(t), 풍속(s), 풍향(d), 습도(h), 기압(a), 지역 기압(la), 해수면 기압(sa), 지면 온도(gt), 전력(p)이고 첨자 $i$는 $i$시간을 나타낸다.

입력 데이터 요소(기온, 풍속, 풍향, 습도, 기압, 지역기압, 해수면 기압, 지면온도, 전력)들은 단위와 크기가 다르기 때문에 요소들의 정규화가 필요하다. 본 논문에서는 모든 요소에 대해 Min-Max 정규화를 시켰다. Min-Max 정규화는 식(11)과 같이 각 요소의 최소값은 0에 최대값은 1에 대응시키는 함수이다.

(11)
$f(x)=\dfrac{x - x_{\min}}{x_{\max}- x_{\min}}$

여기서, $x_{\min}$은 변수 $x$의 최소값, $x_{\max}$는 변수 $x$의 최대값이다.

예측시점이 dt일 때의 출력은 식(12)과 같이 작성된다.

(12)
$Y_{i}=[p_{i+dt}]$

여기서, $p_{i+dt}$는 $i+dt$시간의 전력량이다. $dt = 1$이면 $X_{i}$의 데이터를 가지고 1시간 후를 예측하는 것이다.

그림 5와 같이 예측시점이 한 시간이면 출력 데이터는 $Y_{i}=[p_{i+1}]$이고 예측시점이 두 시간이면 출력 데이터는 $Y_{i}=[p_{i+2}]$이다. 이와 같이 예측시점이 $n$ 시간이면 출력 데이터는 $Y_{i}=[p_{i+n}]$이다.

그림. 5. 예측시점별 입력데이터와 예측 출력데이터

Fig. 5. Input data and prediction output data by prediction time

../../Resources/kiee/KIEE.2020.69.6.759/fig5.png

그림. 6. 학습용/검증용 입력·출력데이터

Fig. 6. Input /Output data for Train/Test

../../Resources/kiee/KIEE.2020.69.6.759/fig6.png

딥러닝 학습을 위해 데이터를 그림 6과 같이 학습용 데이터(Train Data)와 검증용 데이터(Test Data)로 나눈다. 이 논문에서는 전체 데이터 중에서 90%를 학습용 데이터로, 10%를 검증용 데이터로 하였다.

효율적인 학습을 위해 배치크기(batch size)를 $n$으로 하면 입력은 $X =[X_{T},\: X_{T-1},\: X_{T-2},\: ... ,\: X_{T-n}]$이고 출력은 $Y =[Y_{T},\:$$Y_{T-1},\: Y_{T-2},\: ... ,\: Y_{T-n}]$가 된다.

2.4 시간별 LSTM 예측 모델

이 장에서는 LSTM 시간별 풍력발전 예측 모형에 대해 기술하였으며, 제안된 모형은 그림 7, 8과 같다.

LSTM의 시퀀스 입·출력은 그림 2와 같을 수 있으나 이 논문에서는 그림 7과 같이 예측 시점별 모델을 만들어서 시점별 풍력 발전을 예측하였다. 1시간에서 3시간을 예측하는 모델은 예측 시점이 1시간인 예측모델, 예측 시점이 2시간인 예측모델과 예측 시점이 3시간인 예측모델 각각을 학습시키고 이를 결합하여 1~3시간의 예측을 진행하였다.

그림. 7. 시간별 예측모델

Fig. 7. Hourly Forecast model

../../Resources/kiee/KIEE.2020.69.6.759/fig7.png

시간별 예측 모델은 그림 7과 같다. 시간별 예측 모델은:

(1) 2.4절에서 정의한 각 시간별 $X_{i}$ 데이터를 LSTM에 입력한다. 이 논문에서 사용한 LSTM은 1개 layer, 96개의 시퀀스를 갖는다. 10개의 입력을 받아서 예측 시점의 전력량을 출력한다.

(2) 6 layer의 심층 신경망을 구성한다. 3쌍의 FC layer(Full connected layer)와 ReLU(Rectified Linear Unit) 활성화 함수로 구성한다.

FC layer는 뉴럴 네트워크로 입력층의 모든 노드와 은닉층의 모든 노들들이 서로 연결된 모델이다. 본 논문에서는 첫번째 FC는 (10, 20), 두 번째 FC는 (20, 10) 그리고 세 번째 FC는 (10, 1)의 크기를 갖는다.

활성화 함수는 식(13)의 ReLU함수를 사용한다.

(13)
$z(a)=\max(0,\:a)$

역전파(backpropagation) 방법으로 오차를 줄이도록 가중치를 수정한다. 오차는 식(14)의 오차 제곱 평균(Mean Square Error)을 사용하였다.

(14)
$MSE =\dfrac{1}{n}\sum_{i=1}^{n}\left(y_{i}-\hat y_{i}\right)^{2}$

여기서, $y_{i}$는 시간 $i$에서의 실측값, $\hat y_{i}$는 시간 $i$에서의 예측값, $n$은 샘플링 개수다.

제안한 모델은

(1) 2.4절에서 설명한 데이터 전처리를 실행하고 학습과 검증을 위한 입·출력 데이터를 만든다.

그림. 8. 제안한 단기 풍력 예측 모델

Fig. 8. Proposed short-term wind power forecast model

../../Resources/kiee/KIEE.2020.69.6.759/fig8.png

(2) 예측 시점별 모델을 학습하고

(3) 학습된 예측 시점별 모델들을 모아서 단기 풍력 발전을 예측한다.

3. 시뮬레이션 결과

본 논문에서는 계통 운영자가 제공한 2010년 1월 1일 0시부터 2019년 10월 5일 23시까지의 풍력 단지가 아닌 지역 시간별 풍력 발전량과 기상청에서 제공하는 기온(t), 풍속(s), 풍향(d), 습도(h), 기압(a), 지역 기압(la), 해수면 기압(sa), 지면 온도(gt), 전력(p)과 연중 몇번째 주(w)에 해당하는지를 입력으로하여 시간별 LSTM모델을 학습하였다.

제안한 모델의 학습 오차율은 그림 9에 제시되어 있다.

그림. 9. 제안한 모델의 학습 오차

Fig. 9. Train error of the proposed model

../../Resources/kiee/KIEE.2020.69.6.759/fig9.png

학습후 검증한 결과는 그림 10에 제시되어 있다. 그림 10은 예측 시점은 1시간에서 3시간까지로 제안한 모델에 대한 예측값과 실적값이다. 그림 10의 (a)는 예측 시점 1시간의 예측값과 실측값, (b)는 예측 시점 2시간의 예측값과 실측값, (c)는 예측 시점 3시간의 예측값과 실측값이다.

그림. 10. 예측 시점 별 발전량

Fig. 10. Power generation by foreacast time

../../Resources/kiee/KIEE.2020.69.6.759/fig10-1.png

../../Resources/kiee/KIEE.2020.69.6.759/fig10-2.png

모델 비교를 위하여 LSTM모델과 DBN모델을 활용하였다. 표 1그림 11은 모델별 검증 오차율을 보여준다.

본 논문에서 제안한 시간별 LSTM모델은 예측 시점이 1시간에서 3시간인 경우 LSTM모델보다 5.8%p, DBN보다는 14%p 정확도가 향상되었음을 알 수 있다.

표 1. 예측 모델별 오차율 [단위: %]

예측시점

시간별 LSTM

LSTM

DBN

1~3시간

1.403±0.047

1.485±0.045

1.603±0.251

그림. 11. 예측 모델별 오차율

Fig. 11. Error rate by prediction model

../../Resources/kiee/KIEE.2020.69.6.759/fig11.png

4. 결 론

풍력은 간헐적이고 비선형적이다. 전력계통의 여유분을 초과하는 발전량이 풍력 발전기로부터 계통에 투입되면 계통에 교란을 일으킬 수 있다. 그러므로 안정적인 전력계통의 운영을 위해서는 정확한 풍력발전 예측이 필요하며 단기 풍력예측 즉, 1 시간에서 수 시간의 발전량 예측이 필요하다. 이 논문에서는 단기 풍력 발전을 예측하기 위해 시간별 LSTM모델을 제안하였다. 풍력 단지 출력을 단지별로 모으는 것이 아니라 계통 운영자의 운영 지역 내에 있는 풍력 단지 출력의 통합적인 발전량을 사용하여 발전량을 예측하였다. 기상청에서 제공하는 기온, 풍속, 풍향, 습도, 증기압, 지역 기압, 해수면 기압, 지면 온도 및 전력량과 연중 몇 번째 주에 해당하는지를 입력 데이터로 활용하여 1시간부터 3시간 앞을 예측하였다. 학습의 효율을 높이기 위해 입력 데이터 요소들을 Min-Max 정규화를 시켰다. 본 논문에서 제안한 시간별 LSTM 예측모델은 LSTM모델, DBN모델보다 5.8%p에서 14%p의 오차 개선이 나타난 것을 확인할 수 있었다.

Acknowledgements

This research was supported by Korea Electric Power Corporation. (Grant Number: R17XA05-23).

References

1 
Tao Yubo, Zhang Yafei, Chen Bo, 2018, A Combined Approach for Very Short Term Wind Power Probability Forecast, in Proc. of International Conference on Power System Technology, pp. 874-880DOI
2 
Nana Huai, Lei Dong, Lijie Wang, Ying Hao, Dai Zhongjian, Bo Wang, 2019, Short-term Wind Speed Prediction Based on CNN_GRU Model, in Proc. of Chinese Control and Decision Conf., pp. 2243-2247DOI
3 
Kusiak Andrew, Zheng Haiyang, 2009, Short-term Prediction of Wind Farm Power: A Data Mining Approach, IEEE Transactions on Energy Conversion, pp. 125-136DOI
4 
Wang Xiaodan, Yang Yi, 2018, Deep Belief Network based Multi-dimensional Phase Space for Short-term Wind Speed Forecasting, in Proc. of Sensing, Diagnostics, prognostics and control conf., pp. 204-208DOI
5 
Peng Xiaosheng, Xiong Lei, Wen Jinyu, Xu Yuan, Fan Wenhan, Feng Shuanglei, Wang Bo, 2016, A Very Short Term Wind Power Prediction Approach Based on Multilayer Restricted Boltzmann Machine, in Proc. of IEEE PES Asia-Pacific Power and Energy Conf., pp. 2409-2413DOI
6 
Yeojin Kim, Jin Hur, Sang ho Park, Ja-Hyun Baek, Young-do Choy, Soonho Choi, Donghoon Jeon, 2019, An Advanced Techniques on the Power Output Forecasting Model of Wind Generating Resources (WGRs) based on Statistical Learning, in Proc. of The Korean Institute of Electrical Engineers Summer Conf., pp. 261-262Google Search
7 
Dreamgonfly, , https://dreamgonfly.github.io/rnn/2017/09/04/understanding-rnn.htmlGoogle Search
8 
Olah Christopher, , https://colah.github.io/posts/2015-08-Understanding-LSTMs/, colah’s bolgGoogle Search
9 
Wi Young-Min, 2016, A Study on Centralized Wind Power Forecasting Based on Time Series Models, The Transactions of The Korean Institute of Electrical Engineers, Vol. 65, pp. 918-922DOI
10 
Wang Sen, Sun Yonghui, Zhai Suwei, Hou Dongchen, Wang Peng, 2019, Ultra-Short-Term Wind Power Forecasting Based on Deep Belief Network, in Proc. of 38th Chinese Control Conf., pp. 7479-7483DOI
11 
Hur Jin, BeomJun Park, 2017, The Development of the Short- Term Wind Power Forecasting System using Support Vector Regression, Journal of the Korean Institute of Illuminating and Electrical Installation Engineers, pp. 104-110Google Search
12 
Hye-Gyeong Shin, Moon-Hwan Lee, 2011, Develop- ment of the Wind Turbine Power Prediction System Using Support Vector Regression, in Proc. of The Korean Institute of Electrical Engineers Summer Conf., pp. 20-22Google Search
13 
Sang-Ho Lee, Seong-Bin Cho, Hae-Su Park, Jin-Young Kang, Min-ho Song, Young-Mi Lee, 2019, A study on the Prediction of Wind and Solar Generation Output in Jeju, in Proc. of The Korean Institute of Electrical Engineers Summer Conf., pp. 1245-1247Google Search
14 
Heungseok Lee, Kyuhan Kim, Hwaseok Lee, Hyungsoo Kim, 2019, A Study on Prediction Model of Wind Power Generation Using Artificial Intelligence Techniques, in Proc. of The Korean Institute of Electrical Engineers Fall Conf., pp. 223-224Google Search
15 
Do-Hyun Kim, Ho Jin Jo, Myung Su Kim, JaeHyung Roh, 2019, Short-Term Load Forecasting Based on Deep Learning Model, The Transactions of the Korean Institute of Electrical Engineers, Vol. 68, pp. 1094-1099Google Search

저자소개

최준영 (Joonyoung Choi)
../../Resources/kiee/KIEE.2020.69.6.759/au1.png

1986년 서울대학교 공과대학 전기공학과 졸업(학사).

1988년 서울대학교 대학원 전기공학과 졸업(석사).

1994년 서울대학교 대학원 전기공학과 졸업(공박).

1994년 LG전자 LSL 선임연구원.

1996년 전주대학교 공과대학 전기전자공학과 전임강사.

2004년 ASU 방문연구원,

2012년 UCONN 방문연구원.

현재 전주대학교 공과대학 전기전자공학과 교수.

연구관심분야는 전력계통, 스마트그리드, 신재생에너지 등.

이송근 (Songkeun Lee)
../../Resources/kiee/KIEE.2020.69.6.759/au2.png

1987년 상파울로대학교 공과대학 전기공학과 졸업(학사).

1991년 서울대학교 대학원 전기공학과 졸업(석사)

1997년 서울대학교 대학원 전기공학과 졸업(공박).

1997년 전주대학교 공과대학 전기전자공학과 전임강사.

2009년 Cornell 대학교 방문연구원.

현재 전주대학교 공과대학 전기전자공학과 교수.

연구관심분야는 전력계통, 인공지능, 스마트그리드, 신재생에너지 등.