福井大学 学術研究院工学系部門 研究報告 第 70 巻 2021 年 10 月
Mem. Fac. Eng., Univ. Fukui, Vol. 70（ October 2021 ）29

電力使用量予測のための深層学習手法
小松 大起*

黒岩 丈介** 小高 知宏**

諏訪 いずみ***白井 治彦****A Deep Learning Method for Predicting Electricity Usage
Daiki KOMATSU*, Jousuke KUROIWA**, Tomohiro ODAKA**
Izumi SUWA*** and Haruhiko SHIRAI****(Received September 30, 2021)
In this paper, we investigate how to apply deep learnings for multimodal inputs. The target problem is the prediction of power consumption, which enable us to control the operating time of eachpower plant in the short term and adapt the necessary amount of fossil fuels and other resources in
the long term. In this paper, therefore, we perform the prediction of power consumption by using
LSTM, which is a model that can handle time-series data. We employ the combination of temperature, precipitation and/or weather as multimodal inputs, which should be meteorological factors forthe power consumption. The prediction is depend on the model structure and the combination ofdata.
Key words :Deep Learning, Machine Learning, Electricity Usage, LSTM

1.

はじめに

には季節ごとの電力使用量に基づいた最適な時期での化石燃料の調達, 短期的には電力使用量が増える時2011 年 3 月 11 日に発生した東日本大震災以降, 低間帯において各発電所の稼働状態を適切に決めるこ

4 割を占めていた原子力発電は安全性に問題があると推移は経験から判別が可能であると思われるが, 深層

計 9 基の原子力発電所が稼働するのみとなっているより詳細な予測が可能となり, 今後の計画を立てるこ

コストかつ効率的な発電方法であり全体の 2 割からされ 2021 年 5 月現在では停止中の 2 基も合わせて合とが可能であると考えられる. 大まかな電力使用量の学習を用いて時系列データ予測を行うことによって.[1] それにより, 原子力発電よりコストの高い火力発とができるようになると考えられる.[3] 適切な予測を金の値上げが生じ, 我々消費者の負担増加に繋がってきれば電力会社は過剰な発電や, 供給不足による突発電での発電量が増え発電コストの増加による電気料

いる.

[2]

電力使用量の予測を行うことができた場合, 長期的* 大学院工学研究科 知識社会基礎工学専攻 知能システム科
学コース* Fundamental Engineering for Knowledge-Based Society Intelligent Systems Science Course,
Graduate School of Engineering** 大学院工学研究科 知能システム工学講座* Department of Human and Artiﬁcial Intelligent Systems,
Graduate School of Engineering*** 仁愛女子短期大学*** Jin-ai Women’s College**** 福井大学**** University of Fukui

行い適切な量の電力供給や燃料調達を行うことがで的に高コストな発電方法, 効率の悪い発電方法を行う

必要がなくなる.

近年, 人工知能に関する多くの分野で情報処理技術

として知的処理技術の一つである深層学習が用いられている. 深層学習とは, ニューロンの層が多段に組み上げられたニューラルネットーワークのことを指す.[4] 深層学習が用いられる分野としては, 人物の行動
認識や表情認識に挙げられるような画像処理に関わるものや, 話し言葉や書き言葉などの我々が普段使うような自然言語を対象として, それらの言葉が持つ意
味を解析する自然言語処理や, 株価や電気使用量など

30の予測にも用いられる.

自体に意味を持つ. RNN において, 時刻 t での入力をた電力使用量予測では気象要因による変化を捉えき

出力層の間の重みを W , f , g を活性化関数とすると中そこで本研究の目的は, 電力使用量のみを入力としれないと考えられるため, 気象要因を入力とした際に最適な入力の組み合わせを選択し, 最適なモデル構造を見つけてより詳細な深層学習を用いた予測を実現することである.

2. 深層学習モデルについて
ニューラルネットワークとは，人間の脳の仕組みか

ら着想を得たものであり，神経回路網をコンピュータ
上で表現しようと作られた数理的モデルである．人間の脳はニューロンと呼ばれる神経細胞の結びつきで情報伝達や記憶の定着が行われており，その人間の脳神経系の持つ強力な学習能力を数学的に応用することにより，画像認識や音声認識などへの利用が期待さ

れ研究が行われている. 通常ニューラルネットワーク

は，入力層，中間層, 出力層から構成されており，これらの層と層の間にニューロン同士のつながりを示

すシナプス結合荷重 W があり，これを重みと呼んでいる．ニューラルネットワークの中間層は多層にすることができ，中間層が多数存在する多層構造のニュー

ラルネットワークを用いた手法を深層学習（ディープラーニング）と呼ぶ．

本節では, 用いるニューラルネットワークモデルを中心として深層学習モデルについて概要の説明を行う.

2.1 RNN（Recurrent Neural Network）
ある時刻での中間層の出力を次の時刻の層の入力として利用できるような再帰的構造を持ったニュー

ラルネットワークモデルのことを RNN（ Recurrent

Neural Network ）と呼ぶ. RNN は 1986 年の David E.

Rumelhart による研究に基づき開発されたモデルである.[6] 前の時刻での中間層の出力を扱うことにより,ある時点での中間層の出力がそれ以降の出力にも影響を及ぼしていくことになる. そうすることにより過去の情報を扱うことになるため, 時系列データを扱うことができるようになっている. 時間を追って得られたデータを時系列データと呼び, 画像などのデータが一つのベクトル xn で表されるのに対し, (x(1), …

x(t), …x(T )) という T 個のデータが 1 つの入力データ群として扱われる. 時系列データには, 本実験でも扱っている気温の推移や降水量の変化などの気象デー
タ, 株価や売上の推移などが挙げられ, これらのデー

タは一般的なデータの集まりではなく, データの並び

x(t), 入力層と中間層の間の重みを U , また中間層と間層の出力値 s(t) とネットワークの出力 y(t) は, 以
下のように表すことができる.

s(t) = f (U x(t) + W s(t − 1))(1)y(t) = g(W s(t))(2)

2.2 LSTM（Long Short-Term Memory）
LSTM（Long Short-Term Memory）は RNN の拡張として 1997 年に Sepp Hochreiter 及び Jürgen Schmid-

huber によって発表された時系列データを扱うモデルである.[5] Long Term Memory（長期記憶）と ShortTerm Memory（短期記憶）という神経科学における用語から取られており, RNN はその構造上, 時刻が離れているデータ間の依存関係を学習することが難しく,その弱点を克服するために開発されたモデルが LSTMである. LSTM は近い過去を扱うことのできる短期記

憶と遠い過去を扱うことができる長期記憶が可能である. LSTM は RNN の中間層を LSTM block と呼ばれるメモリと入力ゲート, 忘却ゲート, 出力ゲートの 3

つのゲートを持つブロックに置き換えることで実現されている. メモリは入力の依存性を記憶し, 入力ゲー

トはメモリへ与える入力の調節を行い, 忘却ゲートはメモリ中の値をどれだけ忘れるかを調節, 出力ゲート
はメモリ中の値のどれだけを活性化関数に与えるかの調節を行う. また, 中間層の内部状態を以下のように表す.

f (t) = σg (Uf x(t) + Wf h(t − 1))i(t) = σg (Ui x(t) + Wi h(t − 1))o(t) = σg (Uo x(t) + Wo h(t − 1))

(3)
(4)
(5)

c(t) = f (t)⊙c(t−1)+i(t)⊙σc (Uc x(t)+Wc h(t−1))(6)y(t) = o(t) ⊙ σh (c(t))(7)

RNN と同じく入力層と中間層の間の重みを U , 中間層と出力層の間の重みを W , σ を活性化関数とすると, f (t) は忘却ゲート, i(t) は入力ゲート, o(t) は出力ゲートでの活性化ベクトル, c(t) はメモリの活性化

ベクトル, 中間層の出力値 h(t) とネットワークの出力値 y(t) は, 以上のように示される. ⊙ はアダマール

積を示し, ベクトルの要素ごとの積を行う演算子である. また, 本研究では LSTM を用いる.

31

実験方法

3.

本節では, 入力に用いるデータについての詳細及び実際に用いるネットワークについての説明を示す. また本実験で用いるデータは, 予測を行いたい電力使用量に加えて気温, 降水量, 天気のデータを用いる. 用い
るネットワークは LSTM を用いる.

3.1
3.1.1

用いるデータについて

3.1.3 降水量

降水量のデータは気象庁が提供している, 2016 年

4 月から 2020 年 12 月のデータを用いる. 例として2020 年の降水量の推移を図 7 に示す. 縦軸が降水量（mm）を示しており, 横軸が日にちを示している. 最大降水量だけを見ると 8 月から 10 月ごろ, 4 月ごろ,梅雨である 6 月ごろに多く降っていることを読み取

電力使用量

本実験では東京電力パワーグリッド社が提供している電力使用量のデータ 2016 年 4 月から 2020 年 12月のデータを用いる. 電力使用量の推移を図 1 から図5 に示す.

図 1 , 図 2 では, 2019 年と 2020 年の年間での電力

図 1 : 2019 年の電力使用の推移

使用量の推移を示している. それぞれ縦軸が電力使用量の 10＾4 kW, 横軸が日にちを示している. 春と秋に使用量が減り夏と冬に使用量が増加するという, ともに同じような傾向が見て取れる.

図 3 から図 5 は 2020 年 4 月の第 2 週から第 4 週の電力使用量の推移を示している. こちらも同様に

縦軸が電力使用量の万 kW, 横軸が時間を示している.
図 3 より, 赤系統の色は休日である土日を示し, 青系

図 2 : 2020 年の電力使用の推移

統は平日を示している. 通常は, 平日の方が休日よりも活動が多いため電力使用量が増えていることを読み取ることができる. しかし, 図 4 と図 5 を見ると外れ値的な動きをしている日があることが読み取れる.

図 4 だと 13 日と 18 日, 図 5 だと 20 日である. 1 日に 100mm 降ると大雨と呼ばれるがそれぞれ 13 日は132mm で 18 日は 90mm と大雨に準ずる降水量であり, そのために電力使用量が増えたのだと考えられる.

図 3 : 2020 年 4 月 2 週目の電力使用の推移

20 日の場合は 19 日が平均気温 14.7 ℃, 21 日が 14.2
℃ なのに対して 9.7 ℃と約 5 ℃ 低下し, 気温の低下

により電力使用量の増加に繋がったのだと考えられる. このように電力使用量の推移は気温や降水量等の気象条件に左右されるため, 電力使用量の予測には気象要因を考慮する必要があると考えられる.

図 4 : 2020 年 4 月 3 週目の電力使用の推移

3.1.2 気温

気温のデータは気象庁が提供している, 2016 年 4 月から 2020 年 12 月のデータを用いる. 図 6 に各年の気温の推移を示す. 縦軸が温度（℃）を示しており, 横
軸が日にちを示している. 基本的には, 他の年の気温の推移も同じく夏場を頂点とする負の 2 次関数の形をとっている傾向を読み取ることができる.

図 5 : 2020 年 4 月 4 週目の電力使用の推移

32

表 1 : 天気概況による数値付け
天気概況

対応する数値

「晴」

0.0

「快晴」
「曇」

「薄雲」
「大風」
「霧」

「霧雨」
「雨」

「大雨」

「暴風雨」
「みぞれ」
「雪」

「大雪」

「暴風雪」

「地ふぶき」
「ふぶき」
「ひょう」
「あられ」
「雷」

日にち
週

0.5
0.5
0.3
0.6

r=

1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0

もある.

天気

天気のデータは気象庁が提供している, 2016 年 4 月から 2020 年 12 月のデータを用いる. 本研究では, 天気を入力として扱う際に雨を 1.0, 曇りを 0.5, 晴れを

0 として各天候に数値付を行なった. 各天気概況における数値付けを表 1 に示す. 例として 2020 年の天気の推移を図 8 に示す. また, 縦軸は天気に与えた数値,

横軸は日にちを示す. 雨を示す数値が 1.0 の点を見ると大まかに降水量が多かった期間において雨の数が増えている傾向を読み取ることができる.
データ間の相関関係

データ間の特性が離れすぎていると入力として適切ではないと考えられるため, これらのデータ間の相関関係について調べる. 相関関係は相関係数を用いて計算を行なった. 本計算は python の拡張モジュール

である数値計算を行うためのライブラリ numpy を用

気温

降水量

-0.024-0.014-0.069-0.069-0.13-0.075-0.20-0.0500.085

天気

いた. また, 相関係数 r は以下の数式で示される.

0.7

mm を超えるような外れ値的な降水量を記録すること

3.2

時間

0.0

ることができる. また, 他の年の降水量の中には 200

3.1.4

表 2 : 電力使用量と各項目の期間ごとの相関係数

SXY
SX × SY(8)SX は X の標準偏差, SY は Y の標準偏差, SXY は

X と Y の共分散を示す. また, 電力使用量は時間ごとのデータが与えられているため, それらを足し合わせたものを日にちごとのデータと週ごとのデータとして用いている. それ以外のデータについては公開されている時間ごとのデータから平均を算出することで日にちごとと週ごとのデータとして扱っている.

それぞれの期間ごとの相関係数を見ると, 時間ごと

では気温との間に全体で唯一の正の相関を持っていることがわかる. また, 日にちごとでは天気との間に強い負の相関を持ち, 週ごとでは降水量との間に強い負の相関を持っていることがわかった.

3.3

用いるモデル構造について

本実験では, 電力使用量の予測に LSTM を用いる. プログラミング言語には python を用いて, 主に

python のライブラリである tensorﬂow-1.15, pandas-

1.2.4, numpy-1.18.5, scikit-learn-0.24.2 を用いて実装を行なった.

tensorﬂow は Google が開発したディープラーニン

グのフレームワークとして知られるオープンソースの
機械学習ライブラリである. また, tensorﬂow は オー

プンソースのニューラルネットワークライブラリとして知られている keras と統合されたため tensorﬂow からインポートすることにより keras の機能を用いることが可能となっている. tensorﬂow は機械学習において直感的な構造の構築が可能となっている.

pandas 及び numpy はデータを扱うためのライブラ

リとして知られており様々な計算処理を行うことができる. 相互に変換が可能であるためデータの用途によって使い分けることが可能である.

scikit-learn は主に機械学習のアルゴリズムを実装する際に用いられるライブラリであり, 本実験ではRMSE（ Root Mean Square Error ）を用いたモデルの

33

図 6 : 気温の推移

図 7 : 降水量の推移

図 8 : 天気の推移

34

評価に使用した. また, numpy 及び本実験では用いていないが scipy とのやりとりのみに対応しているため一番精度の良い予測結果はそれぞれ, 時間ごとでは

電力使用量のみを入力として, 層数 2 層, 素子数 300

pandas で扱ったデータを numpy 形式に変換する必要個の時に RMSE が 0.0130, 日にちごとでは気温と降

本実験で用いる入力は時間ごと, 日にちごと, 週ご

RMSE が 0.0744, 週ごとでは気温と降水量と天気を入がある.

水量を入力として, 層数 3 層, 素子数 100 個の時にとそれぞれにおいて電力使用量に加えて気温, 降水量,

力として, 層数 2 層, 素子数 200 個の時に RMSE が的な入力は電力使用量に加えて気温, 降水量, 天気, 気

位 4 つでは必ず気温の情報が入力として与えられてと天気, 各々電力使用量とともに入力として与えた場果と比較して層数が少ない時に比べて, 層数を増やし

天気のそれぞれを組み合わせて入力として扱う. 具体
温と降水量, 気温と天気, 降水量と天気, 気温と降水量

0.0972 という結果を示した. 時間ごとの予測結果の下いた. 日にちごとの予測結果では, 時間ごとの予測結合, 及び電力使用量のみを入力とした場合で実験を行た際の予測結果のばらつきが見られた. 週ごとの予測

して分割を行い, 予測結果は時間ごとなら 1 時間後,とがわかった.

なった. また Train data と Test data は入力を 8 対 2 と日にちごとなら 1 日後, 週ごとなら 1 週後の結果の予測を行なった. 最適化アルゴリズムには Adam を用
い, 学習率の初期値は 0.001 とし, バッチサイズは時間ごと 64 , 日にちごと 3 , 週ごと 1 として, epoch 数
は validation loss が 10 回以上改善しなくなるまでとした. また層数は 1 層, 2 層, 3 層と変化させ, 中間層

結果では, 下位 3 つが入力として気温を含んでいるこ

5. 考察
予測精度は週ごと, 日にちごと, 時間ごとの順で高くなっていることがわかる. 時間ごとではデータ数が多く, 単純に日にちごとは時間ごとの 24 分の 1 そしの素子数は 100 個, 200 個, 300 個と変化させて電力て週ごとはさらに 7 分の 1 のデータ数になっているを用いた.

下が見られたのだと考えられる.

使用量の予測を行なった. 予測結果の評価には RMSE

ことから, データ数が減ってしまうため予測精度の低時間ごとの予測結果では, 一番精度が良い入力は電力使用量のみを入力とした場合であった. 時間ごとの3.3.1 RMSE（Root Mean Square Error）

本実験で用いる指標である RMSE は, 平均平方根

予測の際には予測を行うにあたり十分な量のデータがあったと考えられるため, 入力として複雑になりすぎ

二乗誤差と呼ばれ, 入力と予測結果の誤差が大きいほない電力使用量のみを入力とした時に精度の上昇が見

め, 値が大きく変動する点での予測の評価を主に行いは全て気温を入力として含んでいることがわかった.

ど大きい値になる特徴を持つ評価指標である. そのたたい本実験では適した指標であると考えられる. また,

RMSE は以下の式で表される.


 n
1 
(yi − yˆi )2
RM SE = n i=1られたのだと考えられる. また, 精度の下位 4 項目で時間ごとの気温は電力使用量と唯一正の相関をもっていることから正の相関を持つことが精度の低下につながる可能性があると考えられる.

(9)

上記の n はデータ数を, y と ŷ は入力と予測値を示す.

4. 実験結果
時間ごと, 日にちごと, 週ごとの予測結果の推移を

図 9 から図 11 に示す. それぞれの結果において, 気

温, 降水量, 天気, 気温と降水量, 気温と天気, 降水量と天気, 気温と降水量と天気, 各々電力使用量とともに入力として与えた場合, 及び電力使用量のみにおいて層数を 1 層, 2 層, 3 層と変化させ, 素子数をそれぞれ100 個, 200 個, 300 個としたときの結果を示している.

日にちごとの予測結果では, 気温と降水量を入力とした際に精度が一番良いことがわかった. しかし, 他の項目でも時間ごと, 週ごとの結果と比べて差が小さ

いことがわかった. 気温, 降水量, 天気それぞれを入力とした際には, 相関係数の値の順で精度が高いことがわかった. 時間ごとの予測は日にちごと, 週ごとと比較して安定しているためデータ数が適していると考えることができる.

週ごとの予測結果では, 気温と降水量と天気を入力とした際に精度が一番高かった. 精度の下位 3 つが気温を入力に含んでいることがわかった. 下位の予測結果の全てが気温を含んでいるわけではないが, 時間ごとのデータにおいて電力使用量と正の相関をもっている気温が入力として含まれることで精度が下がってしまっているため週ごとのデータにおいても相関係

35

図 9 : 時間ごとの予測結果

図 10 : 日にちごとの予測結果

図 11 : 週ごとの予測結果

36

数以外の関係が存在していると考えられる.

また, 層数は時間ごと, 日にちごと, 週ごとそれぞれにおいて 2 層及び 3 層の場合に良い精度を示していることから 1 層だと単純であるためこのデータ数を扱うためには, 2 層以上のモデルが適しているのだと考えられる. 素子数については, 数によって大きな差が見られないことから層数よりは重要視する必要のない項目であると考えられる.

以上のことから, 精度の上昇には層数が少なすぎないモデルを用いること, データ数を増やすことが適していると考えることができる.

6.

チモーダルな入力として電力使用量の予測を行なった. その際には総数や素子数のモデル構造の変更を行い, RMSE の値による精度の違いを調べた. 期間ごとの最良な予測結果はそれぞれ, 時間ごとでは電力使用量のみを入力として, 層数 2 層, 素子数 300 個の時に RMSE が 0.0130, 日にちごとでは気温と降水量を入力として, 層数 3 層, 素子数 100 個の時に RMSE が0.0744, 週ごとでは気温と降水量と天気を入力として,層数 2 層, 素子数 200 個の時に RMSE が 0.0972 という結果を示した. 相関係数による精度の違いも確認することができたが, 精度向上に最適なのはデータ数が多いことだとわかった.

6.1 今後の展望

本実験では全ての入力を始めから等しく入力として扱うことで電力使用量の予測を行なったが今後作成したいモデルとして考えているモデルが電力使用量のみを主な入力として, 他の項目を最終的な調節に用いることのできるモデルの作成を考慮する. 時間ごとの予測では相関係数による精度の違いを見ることができたが, 週ごとの予測では規則性は見つかったものの, 相関係数でそれを示すものはなかったため他の関係性の評価を行うことを考える. また, RMSE を評価指標として用いたが, 他の評価指標も用いることで結果を多角的に見られるようにしたいと考える.

https://www.enecho.meti.go.jp ＞ (2021/09).

[3] 鎌田 真, 市村 匠: リカレント構造適応型 Deep Be-

lief Network による時系列データの学習, 計測自動制御学会論文集, Vol.54, No.8, 628-639(2018).

[4] 浅川伸一: python で体験する深層学習, コロナ社,
302-303(2016).

[5] Sepp Hochreiter, Jurgen Schmidhuber:Long

short-term memory, Neural Computation, 9(8),[6] David E. Rumelhart, Geoffrey E. Hinton, Ronald

本研究では, 気温, 降水量, 天気を組み合わせてマル[1] 日 本 の 原 子 力 発 電 所 の 状 況,No.5, 1-2(2012).

1735–1780(1997).

まとめ

参考文献

of Japan Society of Energy and Resources, Vol.33,＜[2] 松尾 雄司, 永富 悠, 村上朋子: 有価証券報告書を用いた火力・原子力発電コスト構造の分析, Journal

J. Williams: Learning representations by backpropagating errors, Nature, 323, 533–536(1986).