(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】診断装置、診断方法、診断プログラム、及び診断システム
(51)【国際特許分類】
H04L 41/0631 20220101AFI20240618BHJP
H04L 41/16 20220101ALI20240618BHJP
【FI】
H04L41/0631
H04L41/16
(21)【出願番号】P 2023113966
(22)【出願日】2023-07-11
【審査請求日】2023-10-17
(73)【特許権者】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(73)【特許権者】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】山内 啓嗣
(72)【発明者】
【氏名】梶井 宏孝
(72)【発明者】
【氏名】木村 達明
【審査官】和平 悠希
(56)【参考文献】
【文献】特開2023-003916(JP,A)
【文献】特開2020-068510(JP,A)
【文献】特開2019-185183(JP,A)
【文献】特開2015-192163(JP,A)
【文献】国際公開第2014/112162(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定する特定部と、
前記特定された所定の通信装置群に基づいて、該通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するコマンド生成部と、
前記生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集する収集部と、
前記所定のコマンド応答に基づいて、前記所定の通信サービスにおける故障種別を判別する判別部と、を備え、
前記コマンド生成部は、深層強化学習によって学習された学習済モデルに、前記特定された所定の通信装置群を与えて前記コマンド系列を得る、
診断装置。
【請求項2】
前記学習済モデルは、それぞれがディープニューラルネットワークである、前記通信ネットワークにおける通信サービスを収容する複数の通信装置から収集されたコマンド応答に基づく状態空間ベクトルを入力として、前記コマンド系列に含まれるコマンドを決定するための価値ネットワークと、複数の前記状態空間ベクトルに対して最大遅延報酬を推定するための目標価値ネットワークと、を用いて学習される、
請求項1に記載の診断装置。
【請求項3】
前記学習済モデルは、前記価値ネットワークにおける重みが更新される周期と異なる周期において、前記目標価値ネットワークを前記価値ネットワークで更新するように、複数の状態空間ベクトルを用いて学習される、
請求項2に記載の診断装置。
【請求項4】
前記価値ネットワークにおける重みは、前記複数の状態空間ベクトルのそれぞれにおいて更新され、前記目標価値ネットワークは、前記複数の状態空間ベクトルごとに前記価値ネットワークで更新される、
請求項3に記載の診断装置。
【請求項5】
前記通信ネットワークにおける通信サービスを収容する所定の通信装置群を環境として与えられた深層強化学習により、前記学習済モデルを生成する学習部をさらに備える、
請求項1に記載の診断装置。
【請求項6】
判別部は、前記通信ネットワークにおける通信サービスを収容する複数の通信装置から収集されたコマンド応答に基づいて生成された特徴ベクトルと、該特徴ベクトルに対応する故障種別を示すラベルと、を対応づけた教師データを用いて学習された判別用学習済モデルに、前記所定のコマンド応答に基づいて生成された所定の特徴ベクトルを入力し、前記判別用学習済モデルから出力される故障種別を示すラベルを取得する、
請求項1に記載の診断装置。
【請求項7】
前記判別された故障種別に関する情報を出力する出力部をさらに備える、
請求項1に記載の診断装置。
【請求項8】
通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定するステップと、
前記特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するステップと、
前記生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集するステップと、
前記所定のコマンド応答に基づいて、前記所定の通信サービスにおける故障種別を判別するステップと、を備え、
前記コマンド系列を生成するステップは、深層強化学習によって学習された学習済モデルに、前記特定された所定の通信装置群を与えて前記コマンド系列を得ることを含む、
診断方法。
【請求項9】
コンピュータに実行させるための診断プログラムであって、
通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定するステップと、
前記特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するステップと、
前記生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集するステップと、
前記所定のコマンド応答に基づいて、前記所定の通信サービスにおける故障種別を判別するステップと、を備え、
前記コマンド系列を生成するステップは、深層強化学習によって学習された学習済モデルに、前記特定された所定の通信装置群を与えて前記コマンド系列を得ることを含む、
診断プログラム。
【請求項10】
通信ネットワークに含まれる複数の通信装置と診断装置とを備える診断システムであって、
前記通信装置は、
前記通信装置の動作状態を管理する管理部と、
前記通信装置の動作状態を示すコマンド応答を前記診断装置に送信する送信部と、
を備え、
前記診断装置は、
前記複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定する特定部と、
前記特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するコマンド生成部と、
前記生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集する収集部と、
前記所定のコマンド応答に基づいて、前記所定の通信サービスにおける故障種別を判別する判別部と、
を備え、
前記コマンド生成部は、深層強化学習によって学習された学習済モデルに、前記特定された所定の通信装置群を与えて前記コマンド系列を得る、
診断システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、診断装置、診断方法、診断プログラム、及び診断システムに関する。
【背景技術】
【0002】
例えば、特許文献1には、通信事業者(キャリア)が管理するIP中継網で利用するネ
ットワーク装置及びその通信経路の監視技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
通信事業者は、通信ができない等の申告をユーザから受けた場合、通信ネットワークを構成する各通信機器に対して様々なコマンドを投入し、その応答結果を確認することで、故障診断を行っている。
【0005】
しかしながら、近年における通信ネットワークの規模及びサービスの拡大に応じて、通信ネットワークを構成する通信機器の数及び種別が多様化している。更に、通信機器ごとに診断方法も異なっていることから、通信事業者が行う故障診断業務は、非常に煩雑化している。
【0006】
本発明はこのような事情に鑑みてなされたものであり、通信ネットワークにおける故障診断を効率的に行うことのできる診断装置、診断方法、診断プログラム、及び診断システムを提供することを目的の1つとする。
【課題を解決するための手段】
【0007】
本発明の一側面に係る診断装置は、通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定する特定部と、特定された所定の通信装置群に基づいて、該通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するコマンド生成部と、生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集する収集部と、所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別する判別部と、を備え、コマンド生成部は、深層強化学習によって学習された学習済モデルに、特定された所定の通信装置群を与えてコマンド系列を得る。
【0008】
本発明の一側面に係る診断方法は、通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定するステップと、特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するステップと、生成されたコマンド系列を所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集するステップと、所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別するステップと、を備え、コマンド系列を生成するステップは、深層強化学習によって学習された学習済モデルに、特定された所定の通信装置群を与えてコマンド系列を得ることを含む。
【0009】
本発明の一側面に係る診断プログラムは、コンピュータに実行させるための診断プログラムであって、通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定するステップと、特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するステップと、生成されたコマンド系列を所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集するステップと、所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別するステップと、を備え、コマンド系列を生成するステップは、深層強化学習によって学習された学習済モデルに、特定された所定の通信装置群を与えてコマンド系列を得ることを含む。
【0010】
本発明の一側面に係る診断システムは、通信ネットワークに含まれる複数の通信装置と診断装置とを備える診断システムであって、通信装置は、通信装置の動作状態を管理する管理部と、通信装置の動作状態を示すコマンド応答を前記診断装置に送信する送信部と、を備え、診断装置は、複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定する特定部と、特定された所定の通信装置群に基づいて、該所定の通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するコマンド生成部と、生成されたコマンド系列を前記所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集する収集部と、所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別する判別部と、を備え、コマンド生成部は、深層強化学習によって学習された学習済モデルに、特定された所定の通信装置群を与えて前記コマンド系列を得る。
【発明の効果】
【0011】
本発明によれば、通信ネットワークにおける故障診断を効率的に行うことができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、一実施形態における診断システムの概略構成の一例を示す構成図である。
【
図2】
図2は、一実施形態における診断装置及び通信装置のハードウェア構成の一例を示す構成図である。
【
図3】
図3は、一実施形態における通信装置の機能ブロック構成の一例を示す構成図である。
【
図4】
図4は、一実施形態における診断装置の機能ブロック構成の一例を示す構成図である。
【
図6】
図6は、通信装置で実行されるコマンド及び確認ルールの一例を示す図である。
【
図7】
図7は、状態ベクトルを説明するための図である。
【
図8】
図8は、状態ベクトルに付与されたラベルの一例を示す図である。
【
図9】
図9は、一実施形態における診断装置が行う学習済モデル生成処理の一例を説明するためのフローチャートである。
【
図10】
図10は、特徴ベクトルを可視化した例を示す図である。
【
図11】
図11は、学習済モデル生成処理における繰り返しの流れを説明する図である。
【
図12】
図12は、状態空間ベクトルを説明するための図である。
【
図13】
図13は、経験リプレイ処理を説明するための図である。
【
図14】
図14は、コマンド決定処理の一例を説明するためのフローチャートである。
【
図15】
図15は、エミュレータ実行処理の一例を説明するためのフローチャートである。
【
図16】
図16は、学習済モデルを生成するときの深層強化学習におけるQ値の一例を示す図である。
【
図17】
図17は、コマンド系列の探索スコアの分布の一例を示すグラフである。
【
図18】
図18は、一実施形態における診断装置が行う故障種別判別処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0013】
以下に本発明の実施形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号で表している。但し、図面は模式的なものである。従って、具体的な寸法等は以下の説明を照らし合わせて判断するべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。さらに、本発明の技術的範囲は、当該実施形態に限定して解するべきではない。
【0014】
<診断システム構成>
まず、
図1を参照しつつ、一実施形態に従う診断システムの概略構成について説明する。
図1は、一実施形態における診断システム1の概略構成の一例を示す構成図である。
【0015】
図1に示すように、診断システム1は、診断装置10と、複数の通信ネットワークN1からN4と、ユーザネットワークUと、を含む。
【0016】
通信ネットワークN1からN4は、それぞれ、通信事業者が管理する通信ネットワークである。通信ネットワークN1からN4は、通信事業者が管理する施設に配置される複数の通信装置20-1から20-17により構成されている。通信装置20は、例えば、ルータ、スイッチ、ハブ、ファイアウォール、ONU(Optical Network Unit)等のネットワーク機器である。
【0017】
以下の説明において、複数の通信装置20-1から20-17を区別しない場合、通信装置20と記載する。なお、通信ネットワークN1からN4に含まれる通信装置20の数は、
図1に示す例に限定されない。通信ネットワークN1~N4を構成する通信装置20の数は、制限されるものではなく、例えば、1つであってもよいし、2以上の複数であってもよい。また、
図1に示す例では、通信事業者が管理する通信ネットワークとして通信ネットワークN1からN4の4つが図示されているが、通信ネットワークの数は、この例に限定されない。通信事業者が管理する通信ネットワークの数は、制限されるものではなく、例えば1つ、2つ、3つ、又は5つ以上であってもよい。以下の説明において、通信ネットワークN1からN4を区別しない場合、通信ネットワークNと記載する。図示を省略するが、通信ネットワークNのうちの少なくとも1つ、例えば通信ネットワークN4は、インターネットに接続されていてもよい。
【0018】
ユーザネットワークUは、通信事業者が提供するサービスのユーザが管理する通信ネットワークである。ユーザが管理する通信ネットワークには、例えば、個人ユーザの宅内における無線LAN通信環境や、企業ユーザのネットワーク等が含まれる。
図1の例では、ユーザネットワークUのみが図示されているが、ユーザネットワークの数に制限はない。
【0019】
通信ネットワークN1は、ユーザネットワークUと接続することから、アクセスネットワーク又はアクセス網と呼ばれることがある。一方、通信ネットワークN2からN4は、コアネットワーク又はコア網と呼ばれることがある。
【0020】
診断装置10は、通信事業者が管理する通信ネットワークN1からN4を構成する複数の通信装置20の動作状態を監視する装置である。より具体的には、診断装置10は、各通信装置20から受信したコマンド応答に基づいて、通信装置20が有する各インタフェースの状態や、通信装置20本体の処理負荷等を監視する。通信装置20が備えるインタフェースとは、ケーブルを接続する物理的なインタフェース、及び/又は、物理的なインタフェース内に作成される論理的なインタフェースを意味する。論理的なインタフェースは、仮想的なインタフェースと呼ばれることもある。また、通信装置20から受信するコマンド応答は、診断装置10が生成したコマンドを通信装置20において実行することで得られるものであり、当該コマンドに対する通信装置20の応答結果である。
【0021】
ここで、現在、広く行われている、ネットワーク運用業務における通信サービス故障対応業務の概要について説明する。まず、通信サービス故障を検知したユーザは、通信事業者の窓口に対して、各ユーザに割り振られたサービスIDを含んだ申告を行う。通信事業者のオペレータは、サービスIDをキーにデータベース等を検索し、ユーザが利用する通信サービスを収容する通信ネットワーク、例えばアクセスネットワークや中継ネットワーク等、及び当該通信ネット―ワークに含まれる通信装置20を確認する。次に、オペレータは、情報処理装置等を用いて、通信装置20に対して遠隔ログインして故障診断を行うためのコマンドを実行する。そして、オペレータは、実行したコマンドに対する応答結果を複数の通信装置20のそれぞれから受信し、故障被疑箇所を特定する。
【0022】
さらに、オペレータは、故障対応システムを用いて、故障復旧対応に関する作業者手配や現地における復旧作業指示、正常性確認結果等の情報連携を、作業者が利用する端末との間で行う。
【0023】
一般的に、故障診断を行うためのコマンドは、多種多様なものが存在しており、各コマンドには、応答結果をもとに故障診断を行うための確認ルールが存在する。確認ルールは、通信ネットワークによって確認内容が異なっており、それに応じて各通信ネットワーク及び各通信装置20で実行すべきコマンドも異なってくる。このため、ある故障に対して、故障箇所、及び/又は、故障原因の特定といった故障診断を行うためには、ユーザの通信サービスが収容される全ての通信装置20に関するコマンドの応答結果を確認し、その結果をもとに判断する必要がある。また、通信装置20ごとに実行すべきコマンドは、通常、1つだけではなく大量に存在し、またその応答結果も目視で判断することを前提とした複雑なテキストメッセージである。従って、現状の故障診断業務は、オペレータの専門知識、熟練の技能、長年の経験等に依存する手作業を中心としたものとなっている。
【0024】
(診断システムの概要)
診断装置10は、通信事業者が提供するサービスを利用するユーザから、例えば電話やメール等を介して通信ができない等の申告を受け付けると、申告されたサービスIDをキーに、通信ネットワークN1からN3に含まれる複数の通信装置20の中から、当該ユーザの通信サービスを収容する複数の通信装置20を特定する。具体的には、
図1に示す例では、ユーザの通信サービスが通る経路は、太線で表されている。よって、ユーザの通信サービスを収容する複数の通信装置20は、通信装置20-3、20-4、20-8、20-9、及び20-13である。次に、診断装置10は、特定された、当該ユーザの通信サービスを収容する複数の通信装置20に実行させ、通信装置20の動作状態を確認するコマンドを含むコマンド系列を生成する。そして、診断装置10は、当該複数の通信装置20のそれぞれに遠隔ログインし、通信装置20の動作状態を確認するコマンドを実行することで、各通信装置20から、各通信装置20の動作状態を示すコマンド応答を収集する。次に、診断装置10は、収集したコマンド応答結果に基づいて、故障種別を判別する。
【0025】
なお、本実施形態において、「故障事象」は、後述する状態ベクトルを構成するものであり、「故障種別」は、各故障事象に付与され、推定されるものである。言い換えると、「故障事象」は、“実際に生じた”故障の内容を意味しており、「故障種別」は、“推定される”故障の内容を意味する。
【0026】
<ハードウェア構成>
次に、
図2を参照しつつ、一実施形態に従う診断装置及び通信装置のハードウェア構成について説明する。
図2は、一実施形態における診断装置10及び通信装置20のハードウェア構成の一例を示す構成図である。
【0027】
図2に示すように、診断装置10及び通信装置20は、それぞれ、例えば、プロセッサ31、メモリ32、記憶装置33、通信装置34、入力装置35、及び出力装置36を備える。
【0028】
プロセッサ31は、診断装置10又は通信装置20の各部の動作を制御するように構成されている。プロセッサ31は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、APU(Accelerated Processing Unit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)、SoC(System-on-a-chip)等の集積回路を含んで構成される。
【0029】
メモリ32及び記憶装置33は、それぞれ、プログラムやデータ等を記憶するように構成されている。メモリ32は、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)及び/又はRAM(Random Access Memory)等から構成される。記憶装置33は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)及び/又はeMMC(embedded Multi Media Card)等のストレージから構成される。
【0030】
通信装置34は、有線及び/又は無線ネットワークを介して通信を行うように構成されている。通信装置24は、例えば、ネットワークカード、通信モジュール等を含んで構成される。また、診断装置10及び通信装置20の少なくとも一方が、図示を省略するアンテナを備える場合、通信装置34は、アンプ、無線信号に関する処理を行うRF(Radio Frequency)装置と、ベースバンド信号処理を行うBB(BaseBand)装置とを含んで構成されていてもよい。
【0031】
RF装置は、例えば、BB装置から受信したデジタルベースバンド信号に対して、D/A(Digital to Analog)変換、変調、周波数変換、電力増幅等を行うことで、アンテナから送信する無線信号を生成する。また、RF装置は、アンテナから受信した無線信号に対して、周波数変換、復調、A/D(Analog to Digital)変換等を行うことでデジタルベースバンド信号を生成してBB装置に送信する。BB装置は、デジタルベースバンド信号をIPパケットに変換する処理、及び、IPパケットをデジタルベースバンド信号に変換する処理を行う。
【0032】
入力装置35は、ユーザの操作により情報を入力できるように構成されている。入力装置35は、例えば、キーボード、タッチパネル、マウス、及び/又はマイク等を含んで構成される。
【0033】
出力装置36は、情報を出力するように構成されている。出力装置36は、例えば液晶ディスプレイ、EL(Electro Luminescence)ディスプレイ、LED(Light Emitting Diode)ディスプレイ等の表示装置、及び/又はスピーカ等を含んで構成される。
【0034】
また、診断装置10及び通信装置20のそれぞれは、図示を省略するが、例えば、GPS(Global Positioning System)受信機、方位センサ、重力センサ、温度センサ、加速度センサ等の各種のセンサ、指紋、網膜、虹彩、顔、声紋等の各種の生体認証機能、カメラ、マイク、スピーカ、ライト等の各種のデバイス、接続端子を含む入出力インタフェース等のうち、少なくとも1つをさらに備えていてもよい。
【0035】
<機能ブロック構成>
(通信装置)
次に、
図3を参照しつつ、一実施形態に従う通信装置の機能ブロック構成について説明する。
図3は、一実施形態における通信装置20の機能ブロック構成の一例を示す構成図である。なお、
図3は、本実施形態において説明する機能ブロックを示すためのものであり、通信装置20が図示以外の機能ブロックを備えることを排除するものではない。
【0036】
図3に示すように、通信装置20は、機能ブロックとして、記憶部200と、通信処理部201と、管理部202と、入力部203と、出力部204と、を備える。
【0037】
記憶部200は、ルーティングテーブルや各種の設定情報等、通信装置20の動作に必要な各種の情報を記憶する。通信処理部201は、ルーティングテーブル等に基づいて、受信したデータのルーティングを行う。管理部202は、通信装置20の動作状態、具体的には、CPU使用率、メモリ使用率、各インタフェースの状態、データの送受信状態な等、を管理する。入力部203は、通信装置20が備えるコマンド等の入力を受け付ける。出力部204は、通信装置20の動作状態を示すコマンド応答を診断装置10に送信する。
【0038】
なお、記憶部200は、通信装置20が備えるメモリ32及び記憶装置33の少なくとも一方を用いて実現されてもよい。また、通信処理部201は、通信装置20が備える通信装置34を用いて実現されてもよい。また、管理部202と、入力部203と、出力部204とは、通信装置20のプロセッサ31が、記憶装置33に記憶されたプログラムを実行することにより実現されてもよい。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。非一時的な記憶媒体は、特に限定されないが、例えば、USB(Universal Serial Bus)メモリ、又はCD-ROM(Compact Disc ROM)等の記憶媒体であってもよい。
【0039】
(診断装置)
次に、
図4から
図8を参照しつつ、一実施形態に従う診断装置の機能ブロック構成について説明する。
図4は、一実施形態における診断装置10の機能ブロック構成の一例を示す構成図である。
図5は、NW構成DB100aの一例を示す図である。
図6は、通信装置20で実行されるコマンド及び確認ルールの一例を示す図である。
図7は、状態ベクトルを説明するための図である。
図8は、状態ベクトルに付与されたラベルの一例を示す図である。なお、
図4は、本実施形態において説明する機能ブロックを示すためのものであり、診断装置10が図示以外の機能ブロックを備えることを排除するものではない。
【0040】
図4に示すように、診断装置10は、機能ブロックとして、記憶部100と、特定部101と、コマンド生成部102と、収集部103と、前処理部104と、判別部105と、出力部106と、学習部107と、を備える。
【0041】
記憶部100は、NW(Network)構成DB(Data Base)100a、学習済モデル100b、コマンド応答DB100c、判別用学習済モデル100d、及び教師データDB100eを記憶するように、構成されている。
【0042】
NW構成DB100aは、通信ネットワークNを構成する各通信装置20に関する情報を格納するためのデータベースである。NW構成DB100aには、例えば、各通信装置20の接続関係、通信装置20の機種、各ユーザの通信サービスを収容する通信装置20、各通信装置20において各ユーザの通信サービスを収容するインタフェース及びポートの識別子を示す情報等が格納されている。
【0043】
図5に示す例において、NW構成DB100aは、各サービスIDで特定される通信サービスのトラフィックが、各通信ネットワークN1からN4において、どの通信装置20をどの順に通るのかを示す情報を格納している。例えば、サービスID1の通信サービスのトラフィックは、通信ネットワークN1からN4において、“A1”、“A2”、“B1”、“B2”、“C1”、“C2”、“D1”、及び、“D2”のそれぞれに対応付けられた、複数の通信装置20を通ることを示している。なお、
図5は一例に過ぎず、各ユーザの通信サービスは、更に多くの通信ネットワークNや通信装置20を通過することもあり得る。また、各通信ネットワークNを構築する通信装置20には異なる機種の通信装置20が含まれていてもよい。また、NW構成DB100aには、各通信装置20において、サービスIDで特定される通信サービスを収容する物理ポート番号又は仮想ポート番号、並びにインタフェース番号等が、サービスIDと対応づけて格納されていてもよい。
【0044】
コマンド応答DB100bは、通信事業者のオペレータ等が故障事象を特定した際に、ユーザの通信サービスを収容する複数の通信装置20にコマンドを送信することで収集されたコマンド応答を格納する。コマンド応答DB100bには、過去に故障診断を行った際に収集されたコマンド応答が大量に格納されている。コマンド応答DB100bは、後述する深層強化学習において、故障事象として使用することを想定している。
【0045】
学習済モデル100cは、コマンド系列を出力するように、深層強化学習により学習されたモデルである。コマンド系列は、故障診断に必要な一連のコマンドであって、1つ以上のコマンドを含んでいる。学習済モデル100cの詳細については、後述する。
【0046】
なお、学習済モデル100cは、後述する学習部107によって生成されてもよいし、図示しない他の情報処理装置が生成したものを、受信する等して記憶部100に記憶されていてもよい。以下の説明では、特に明示する場合を除き、学習済モデル100cは、学習部107によって生成されたものとする。
【0047】
判別用学習済モデル100dは、複数の通信装置20から収集されたコマンド応答に基づいて生成された状態ベクトルを入力すると、推定される故障種別を示すラベルを出力するように学習されたモデルである。判別用学習済モデル100dは、通信ネットワークNにおける通信サービスを収容する複数の通信装置20から収集されたコマンド応答に基づいて生成された状態ベクトルと、当該特徴ベクトルに対応する故障種別を示すラベルと、を対応づけた教師データを用いて学習することで生成される。
【0048】
判別用学習済モデル100dには、例えば、決定木(例えばCART、XG Boost等)、SVM(サポートベクターマシン)、ニューラルネットワーク、多層ニューラルネットワーク、ランダムフォレスト、ロジスティック回帰分析等、どのようなモデルが利用されてもよい。
【0049】
なお、判別用学習済モデル100dは、学習済モデル100cと同様に、後述する学習部107によって生成されてもよいし、図示しない他の情報処理装置が生成したものを、受信する等して記憶部100に記憶されていてもよい。以下の説明では、特に明示する場合を除き、判別用学習済モデル100dは、学習部107によって生成されたものとする。
【0050】
教師データDB100eは、ユーザの通信サービスを収容する複数の通信装置20から得られたコマンド応答に基づいて生成された状態ベクトルと、故障種別の正解を示すラベルとを対応づけた、教師データを格納する。前述した判別用学習済モデル100dは、当該教師データDB100eを用いて学習されたものであってもよい。教師データDB100eに格納される教師データは、過去の故障診断業務を通じて予め生成されたものであってもよいし、過去に収集された各通信装置20からの多数のコマンド応答に基づいて生成した特徴ベクトルを、教師なし学習を用いてクラスタリングすることで状態ベクトルを複数のクラスに分類し、各クラスに対し故障種別を示すラベルを付与することで生成されたラベル付き状態ベクトルを利用して生成されたものであってもよい。
【0051】
特定部101は、通信ネットワークNに含まれる複数の通信装置20の中から、所定の通信サービスを収容する所定の通信装置群を特定するように、構成されている。所定の通信サービスは、診断装置10が故障種別を調査する対象の通信サービスであり、例えば、ユーザから故障申告を受けたときの当該ユーザの通信サービスであってもよい。
【0052】
所定の通信サービスは、どのような通信サービスも含まれるが、例えば、ユーザネットワークUから通信ネットワークNを通ってインターネットに抜ける通信サービス、あるいはその逆、又は、あるユーザネットワークU、例えばユーザ企業の拠点Aから通信ネットワークNを通って他のユーザネットワークU、例えば同一ユーザ企業の拠点Bに向ける通信サービス、あるいはその逆、等が挙げられる。
【0053】
コマンド生成部102は、特定された所定の通信装置群に基づいて、当該通信装置群に含まれる所定の通信装置20に実行させるコマンド系列を生成するように、構成されている。所定の通信装置群は、通信ネットワークNに存在する多数の通信装置20の中から、調査対象の通信サービスを流れるデータが通過する1つ以上の通信装置20を意味する。コマンド系列は、故障診断を行うために、所定の通信装置群に含まれる1つ以上の以上の通信装置20に実行させる、1つ以上のコマンドを含んでいる。
【0054】
より詳細には、コマンド生成部102は、学習済モデル100cを用いてコマンド系列を生成するように構成されている。学習済モデル100cは、故障診断に用いる全てのコマンドの種別(以下、「コマンド種別」ともいう)について、それぞれのコマンドの応答結果を含むデータセットを学習することによって生成される。なお、データセットの詳細については、後述する。
【0055】
収集部103は、コマンド生成部102で特定された所定の通信装置群に含まれる通信装置20に、コマンド生成部102で生成されたコマンド系列を実行させ、所定の通信装置群に含まれる当該通信装置20の動作状態を示す所定のコマンド応答を収集するように、構成されている。
【0056】
前処理部104は、収集部103で収集された所定のコマンド応答に基づいて、状態ベクトルを生成するように構成されている。状態ベクトルは、故障診断のために、ユーザの通信サービスを収納する通信装置20において実行し得る全てのコマンドについて、それぞれのコマンド応答を要素とするベクトルである。前処理部104は、収集部103で収集された所定のコマンド応答が複数のコマンド応答である場合、コマンド応答ごとに、状態ベクトルを生成する。状態ベクトルの詳細については、後述する。
【0057】
判別部105は、収集部103で収集された所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別するように構成されている。
【0058】
より詳細には、判別部105は、前処理部104によって生成された状態ベクトルを判別用学習済モデル100dに入力し、判別用学習済モデル100dから出力される故障種別を示すラベルを取得するように、構成されている。収集部103で収集された所定のコマンド応答が複数のコマンド応答であり、前処理部104がコマンド応答ごとに状態ベクトルを生成する場合、判別部105は、生成された複数の状態ベクトルを判別用学習済モデル100dに入力する。これにより、所定の通信サービスにおける故障種別が判別される。
【0059】
このように、判別用学習済モデル100dに、所定のコマンド応答に基づいて生成された所定の特徴ベクトルを入力し、判別用学習済モデル100dから出力される故障種別を示すラベルを取得することにより、故障種別を容易に判別することができる。
【0060】
出力部106は、判別部105によって判別された故障種別に関する情報を出力するように構成されている。例えば、出力部106は、診断装置10又は診断装置10に接続される装置が備えるディスプレイに、当該故障種別を識別子である故障種別IDや故障種別の内容を表す文言等を表示させるようにしてもよい。
【0061】
このように、判別部105によって判別された故障種別に関する情報が出力される。これにより、判別種別に関する情報を、診断装置10のオペレータに容易に通知することができる。
【0062】
学習部107は、通信ネットワークおける通信サービスを収容する所定の通信装置群を環境として与えられた深層強化学習により、学習済モデル100cを生成するように構成されている。なお、深層強化学習の詳細については後述する。これにより、特定された所定の通信装置群に含まれる所定の通信装置20に実行させるコマンド系列を生成する学習済モデルを容易に生成することができる。
【0063】
また、学習部107は、教師データDB100eを用いてモデルを学習させることで、判別用学習済モデル100dを生成するように、構成されている。
【0064】
前述したように、コマンド生成部102は、特定された、ユーザの通信サービスを収容する複数の通信装置20に実行させる、故障診断に必要なコマンド系列を生成する。
図6に示す例では、通信装置20ごとにあらかじめ定められた確認ルールに対応する複数のコマンドを含むコマンド系列が生成される。
【0065】
ここで、各ユーザの通信サービスを収容する通信装置20に対して実行するコマンドの種別は、通信装置20によって異なる。更に、各ユーザの通信サービスを収容する通信装置20は、ユーザごとに異なる。
【0066】
そこで、本実施形態では、状態ベクトルの次元が、全てのユーザにおいて同一次元となるようにするため、診断装置10が管理する、各ユーザの通信サービスを収容する全ての通信装置20の全てのコマンド数を、状態ベクトルの次元数とする。例えば、各ユーザの通信サービスを収容する全ての通信装置20の全てのコマンドを合計すると、121個のコマンドが存在している場合、状態ベクトルは、121次元のベクトルになる。
【0067】
また、通信装置20からのコマンド応答は、人間が目視で判断することを前提とした複雑なテキストメッセージで構成されている。一方、モデルを学習させて学習済モデル100cを生成するために、コマンド応答を学習用のデータセットとして扱えるようにする必要がある。そこで、診断装置10の前処理部104は、各通信装置20のコマンドの応答結果と、事前に定義された確認ルールとを照合し、各コマンドの応答内容に対する確認結果を実数に変換することで、状態ベクトルを生成する。実数は、例えば、正常を表す“0”と、異常を表す“1”の2つであってもよいし、更に複数の数値に分類されてもよい。
【0068】
図7に示すように、「通信ネットワーク」は、各ユーザの通信サービスを収容する全ての通信ネットワークNであり、「通信装置」は、各通信装置20に設置されている、各ユーザの通信サービスを収容する全ての通信装置20である。また、「コマンドID」は、各ユーザの通信サービスを収容する全ての通信装置20の全てのコマンドを一意に識別する識別子である。例えば、各ユーザの通信サービスを収容する全ての通信装置20の全てのコマンドの合計が121コマンドである場合、Cn=C121になる。なお、
図7に示す例では、通信ネットワークN1~N4が図示されているが、状態ベクトルを説明する便宜上、図示したものであり、通信ネットワークNの数は、この例に限定されるものではない。
【0069】
1つの状態ベクトルは、コマンドC1~Cnのコマンド応答を、事前に定義された確認ルールに従って“0”又は“1”に変換することで生成される。例えば、コマンドC1のコマンド応答が“0”に、コマンドC2のコマンド応答が“0”に、コマンドC3のコマンド応答が“1”に、・・・、コマンドC121のコマンド応答が“0”に、それぞれ変換された場合、状態ベクトルは、(C1、C2、C3、・・・・、C121)=(0、0、1、・・・、0)の形式になる。
【0070】
前述したように、教師データDB100dに格納される教師データは、状態ベクトルにラベルが付与されたラベル付き状態ベクトルである。
図8は、状態ベクトルに付与されたラベルを、例えば“1”から“9”の9種類のラベルIDとそのラベルIDが表す故障種別とを含む表形式で、示している。この場合、ラベル付き状態ベクトルは、例えば、(ラベルID、C1、C2、C3、・・・・、C121)=(5、0、0、1、・・・、0)といった形式の状態ベクトルになる。
【0071】
ここで、故障診断業務の処理時間を短縮するために、モデルは、過去の故障診断に使用したコマンド及びそのコマンド応答から、故障診断に用いるコマンド系列が得られるように学習されてよい。この場合、得られるコマンド系列が、より少ない、あるいは、小さい数のコマンドを含むコマンド系列が得られるように学習されてよい。その結果、故障個所や故障原因をより早く特定することができ、処理時間の短縮化が可能となる。
【0072】
そのような学習方法として、エージェント(「学習者」ともいう)にデータを与えて学習させる機械学習の1つである強化学習を採用することが考えられる。強化学習では、与えられたデータを、長期的に価値を最大化することを重視して学習させる、という特徴を有する。強化学習において、エージェントは「環境」(「前提条件」ともいう)に対して「行動」を起こし、その結果によって「報酬」を得るサイクルを繰り返し、最適な行動を学習する。そのため、十分な強化学習が行われると、エージェントが、様々な行動を起こして試行錯誤しながら結果を記憶し、ある前提条件が与えられたときに、最も価値の高い行動はどれかをエージェントが判断できる状態になる。
【0073】
一般的に、強化学習では、代表的なアルゴリズムとして、Q学習が用いられる。Q学習は、ある行動を取るたびにQテーブルにその行動の価値(「Q値」ともいう)を入力し、新しく行動するたびに値を更新する学習である。
【0074】
しかしながら、大規模かつ複雑化しつつある通信サービスにおけるコマンド系列について、過去の状態、つまり、コマンド系列に含まれるコマンドの数が大きくなると、状態空間が膨大になる。例えば、通信サービスを収容する全ての通信装置20の全てのコマンドの合計が121コマンド、つまり、行動空間が121である場合、それぞれのコマンドの応答内容を正常と異常との2つの状態で表すと、状態空間は2の121乗(=2121)となる。そのため、Q学習では、学習時の計算リソースは、取り扱うことが困難なデータ量に増加、拡大してしまう。
【0075】
これに対し、本実施形態では、コマンド生成部102は、深層強化学習によって学習された学習済モデル100cに、特定された所定の通信装置群を与えてコマンド系列を得るように構成されている。すなわち、学習済モデル100cは、強化学習と深層学習(「ディープラーニング」ともいう)とを組み合わせた深層強化学習によって生成されている。そして、コマンド生成部102は、深層強化学習によって生成された学習済モデル100cに、環境として、特定された所定の通信装置群を与えることで、行動としてコマンド系列を得る。
【0076】
このように、深層強化学習によって生成された学習済モデル100cに、特定された所定の通信装置群を与えてコマンド系列を得ることにより、最も価値の高い行動、すなわち、含まれるコマンドの数が削減されたコマンド系列を得ることが可能になる。従って、故障個所や故障原因を短時間で特定することができ、通信ネットワークにおける故障診断を効率的に行うことができる。
【0077】
また、学習済モデル100cは、それぞれがディープニューラルネットワークである、通信ネットワークにおける通信サービスを収容する複数の通信装置から収集されたコマンド応答に基づく状態空間ベクトルを入力として、コマンド系列に含まれるコマンドを決定するための価値ネットワークと、複数の状態空間ベクトルに対して最大遅延報酬を推定するための目標価値ネットワークと、を用いて学習される。なお、状態空間ベクトルの詳細については、後述する。このように、2つのニューラルネットワークを用いることで、複雑かつ多岐にわたる状態空間を近似することができ、膨大な過去の履歴を強化学習することが可能となる。
【0078】
また、学習済モデルは、価値ネットワークにおける重みが更新される周期と異なる周期において、目標価値ネットワークを価値ネットワークで更新するように、複数の状態空間ベクトルを用いて学習される。これにより、目標価値ネットワークによる予測値である遅延報酬について、発散や振動を抑制することが可能となる。
【0079】
さらに、価値ネットワークにおける重みは、複数の状態空間ベクトルのそれぞれにおいて更新され、目標価値ネットワークは、複数の状態空間ベクトルごとに前記価値ネットワークで更新される。これにより、目標関数を故障事象ごとに共通する深層強化学習を行うことができる。
【0080】
なお、記憶部100は、診断装置10が備えるメモリ32及び記憶装置33の少なくとも一方を用いて実現されてもよい。また、特定部101と、コマンド生成部102と、収集部103と、前処理部104と、判別部105と、出力部106と、学習部107とは、診断装置10のプロセッサ31が、記憶装置33に記憶されたプログラムを実行することにより実現されてもよい。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USBメモリ又はCD-ROM等の記憶媒体であってもよい。
【0081】
<学習済モデル生成の処理手順>
次に、
図9から
図15を参照しつつ、一実施形態に従う診断装置が行う学習済モデル生成の処理手順について説明する。
図9は、一実施形態における診断装置10が行う学習済モデル生成処理S110の一例を説明するためのフローチャートである。
図10は、特徴ベクトルを可視化した例を示す図である。
図11は、学習済モデル生成処理S110における繰り返しの流れを説明する図である。
図12は、状態空間ベクトルを説明するための図である。
図13は、経験リプレイ処理S116を説明するための図である。
図14は、コマンド決定処理S130の一例を説明するためのフローチャートである。
図15は、エミュレータ実行処理S140の一例を説明するためのフローチャートである。なお、
図10において、縦軸はコマンド種別に対応し、横軸は各故障事象に対応している。
【0082】
以下の説明では、特に明示する場合を除き、故障事象数Jに“300”が、最大学習数Mに“40”が、あらかじめ設定されているものとする。
【0083】
(学習済モデル生成処理)
図9に示すように、学習部107は、まず、処理処理を行う(S111).初期処理は、変数への初期値の設定と、使用するデータ領域や深層強化学習に用いる2つのニューラルネットワークの初期化とを含む。変数は、具体的は、選択されている故障事象を示す指標である変数j、状態数を示す指標である変数n、学習回数を示す指標である変数m等である。学習部107は、変数j、変数n、及び変数mの初期値として、例えば“0”を設定する。
【0084】
前述したように、深層強化学習に用いるデータセットは、状態ベクトルである。
図10に示すように、特徴ベクトルは、全てのコマンド種別の合計数、例えば121次元を有する。点が存在する場所は、当該コマンド種別のコマンド応答が“異常”であることを示している。
図10から明らかなように、過去の故障事象全体において、コマンド応答が“異常”となるコマンド種別の頻度は、全てのコマンド種別に対して低いという特性があることが分かる。
【0085】
本実施形態では、この状態ベクトルの特性を利用し、各故障事象において、コマンド応答が“異常”となるコマンドを優先的に実行することで、学習上の近似を行っている。
【0086】
ここで、学習済モデル生成処理S110における繰り返しの流れは、
図11に示すようになる。すなわち、故障事象ごとに、あるコマンドを実行してコマンド応答を得た状態を1つのステップ("step"とも表記する)とし、終了判定の条件が成立するまで、各ステップを繰り返し行う。
図11に示す例では、1つの故障事象に対し、n個(nは2以上の整数)のコマンドをそれぞれ実行して“step1"から“stepn"までのnステップを行い、コマンドを探索している。なお、図示及び説明の便宜上、
図11では、各故障事象において、同じnステップを行う例を示したが、これに限定されるものではない。行われるステップ数は、故障事象ごとに異なっていてもよい。
【0087】
そして、全ての故障事象について探索が終了すると、これを1回とする学習を複数回、例えば学習数m(mは2以上の整数)まで繰り返し行う。
【0088】
前述したように、各ステップは、コマンドを実行してコマンド応答を得た状態であるから、状態ベクトルで表すことができる。また、一般に、あるステップ、例えば、n番目のステップnは、それよりも前に、1番目のステップから(n-1)番目までのステップのn-1個のステップが行われている。そのため、
図12に示すように、n番目のステップnは、当該ステップを行ったときの状態ベクトルと、過去の(n-1)個の状態ベクトルとを含む状態空間ベクトルで表すことができる。以下において、状態空間ベクトルに含まれる過去の状態ベクトルの数を履歴数ともいう。
【0089】
図9の説明に戻ると、学習部107は、初期処理S111の後、変数mを更新する(S112)。例えば、学習部107は、変数mに“1”を加算して更新する。
【0090】
次に、学習部107は、変数jを更新する(S113)。例えば、学習部107は、変数mに“1”を加算して更新する。そして、学習部107は、更新された変数jをキーとして、コマンド応答DB100bから変数jに対応する故障事象を読み出して選択する(S114)。学習部107は、選択した故障事象を状態ベクトルに変換する。また、学習部107は、変換した状態ベクトルの要素に対応する数の配列を用意する。このステップS114では、学習部107は、全ての配列に対して未実行を表す“0”を設定し、いわゆるゼロ埋めを行う。
【0091】
次に、学習部107は、コマンド決定処理を行う(S130)。コマンド決定処理S130では、強化学習の手法の1つであるε-グリーディ方策を採用し、次に実行するコマンドを決定する。コマンド決定処理S130の詳細については、後述する。
【0092】
次に、学習部107は、エミュレータ実行処理を行う(S130)。エミュレータ実行処理S140では、コマンド決定処理S130によって決定されたコマンドに対して、報酬(「即時報酬」ともいう)を算出し、終了判定を行う。エミュレータ実行処理S140の詳細については、後述する。
【0093】
次に、学習部107は、ステップS114でゼロ埋めした配列において、エミュレータ実行処理S140により報酬を付与したコマンドに対応する配列に、当該コマンドのコマンド応答を反映する(S115)。コマンド応答は、例えば“1”又は“0”であるから、対応する配列を参照することで、あるコマンドが実行済であるか、あるいは、未実行であるかを判別することができる。
【0094】
次に、学習部107は、経験リプレイ処理を行う(S116)。
図13の上段に示すように、経験リプレイ処理S116では、初期処理S111で初期化したデータ領域に、複数の状態空間ベクトルが格納される。各状態空間ベクトルは、複数の状態ベクトルを連結したものである。例えば、1行目の状態空間ベクトルは、コマンド系列におけるn番目のコマンドを実行した状態ベクトルである“状態n”と、コマンド系列における(n-1)回分の過去のコマンドを実行した状態ベクトルである“状態1”から“状態n-1”とを含んでいる。また、当該状態空間ベクトルは、コマンド決定処理S130において決定されたコマンドのコマンド種別を示す“コマンドn”と、エミュレータ実行処理S140において当該コマンドに付与された報酬を示す“報酬n”とをさらに含んでいる。
【0095】
このような状態空間ベクトルが、
図13に示す例ではm個(mは2以上の整数)、データ領域にキューイングされている。なお、キューイングされる状態空間ベクトルの数は、割り当てられたデータ領域のサイズに依存する。
【0096】
また、経験リプレイ処理S116では、
図13の下段に示すように、m個の状態空間ベクトルのうちののいくつかを、取り出す。
図13に示す例では、キューイングされているl個(lは2以上m以下の整数)の状態空間ベクトルが取り出されている。そして、取り出される状態空間ベクトルの数は、メモリブロックのサイズに依存する。
【0097】
そして、取り出された複数の状態空間ベクトルのうち、過去履歴に相当する部分の状態ベクトルを連結して新たな状態空間ベクトルとし、目標価値ネットワークに入力する。目標価値ネットワークによって推定された出力を、最大の遅延報酬(「最大遅延報酬」ともいう)とする。一方、取り出された複数の状態空間ベクトルのうちの即時報酬を、この最大遅延報酬に加算したものを価値ネットワークに入力する。
【0098】
図9の説明に戻ると、次に、学習部107は、価値ネットワークを更新する(S117)。具体的には、
図13の下段に示す、取り出された複数の状態空間ベクトルのうちの即時報酬と、最大遅延報酬とが加算され、価値ネットワークに入力されると、価値ネットワークは、取り出された複数の状態空間ベクトルにフィッティングされる。その結果、価値ネットワークにおける重みが更新され、価値ネットワークは更新される。このように、価値ネットワークの重みは、状態ごと、すなわち、実行コマンドを決定するごとに、更新される。なお、ステップS117における価値ネットワークの更新は、経験リプレイ処理S116において行ってもよい。
【0099】
次に、学習部107は、状態空間ベクトルを更新する(S118)。例えば、
図13の上段に示す1行目の状態空間ベクトルから2行目の状態空間ベクトルに更新する場合、1行目の状態空間ベクトルにおける2番目の状態ベクトルから(n-1)番目の過去の状態ベクトルと、n番目の現在の状態ベクトルとを連結して、2行目の状態空間ベクトルを生成する。なお、更新された状態空間ベクトルは、この時点では、実行される(n+1)番目のコマンド、(n+1)番目の状態ベクトル、及びその報酬は、未決である。
【0100】
次に、学習部107は、終了判定フラグFLが“1”であるか否かを判定する(S119)。終了判定フラグFLは、エミュレータ実行処理S140で設定される。
【0101】
ステップS119の判定の結果、終了判定フラグFLが“1”でない場合、終了判定フラグFLが“1”になるまで、コマンド決定処理S130からステップS119までが繰り返される。
【0102】
一方、ステップS119の判定の結果、終了判定フラグFLが“1”である場合、ステップS114において選択された故障事象について、価値ネットワークの重みの更新が完了したものと考えられる。よって、学習部107は、価値ネットワークで目標価値ネットワークを更新する(S120)。このように、目標価値ネットワークは、価値ネットワークの重みが更新される周期と異なる周期で更新され、更新が完了した価値ネットワークの重みが目標価値ネットワークに反映される。
【0103】
次に、学習部107は、変数jが故障事象数J以上であるか否かを判定する(S121)。ステップS121の判定の結果、変数jが故障事象数J以上でない、つまり、故障事象数J未満である場合、変数jが故障事象数J以上になるまで、ステップS113からステップS121までが繰り返される。
【0104】
一方、ステップS121の判定の結果、変数jが故障事象数J以上である場合、用意された全ての故障事象について、深層強化学習が1回行われたものと考えられる。次に、学習部107は、変数mが最大学習数M以上であるか否かを判定する(S122)。ステップS122の判定の結果、変数mが最大学習数M以上でない、つまり、最大学習数Mである場合、変数mが最大学習数M以上になるまで、ステップS112からステップS122までが繰り返される。
【0105】
一方、ステップS122の判定の結果、変数mが最大学習数M以上である場合、用意された全ての故障事象について、深層強化学習が最大学習数Mの回数行われたものと考えられる。よって、学習部107は、学習済モデル生成処理S110を終了する。
【0106】
(コマンド実行処理)
図14に示すように、学習部107は、まず、状態空間ベクトルにおいて、決定しようとするコマンドの順番が、所定の過去の状態数より小さいか否かを判定する(S131)。具体的には、例えば、
図12に示す状態空間ベクトルにおいて、連結される過去の状態数が5つ、つまり、“状態(nー1)”における(n-1)が5である場合、決定しようとするコマンドの順番が6番目以降であるか否か、つまり“コマンドn”におけるnが6以上であるか否かが判定される。
【0107】
ステップS131の判定の結果、決定しようとするコマンドの順番が過去の状態数より小さい場合、過去の状態ベクトルとして既に十分な数が存在し、これらの複数の状態ベクトルを連結して状態空間ベクトルに変換可能である、と考えられる。この場合、学習部107は、状態数が増えるにつれて減衰する減衰値εを算出する(S132)。このような減衰値εは、様々な計算方法で算出可能である。減衰値εは、例えば、初期値init、下限値min、選択された故障事象における総コマンド数epi_st、現在コマンドの順番st、及び定数ε0を用い、以下の式(1)で算出される。
ε=ε0-{(init-min)/epi_st}×st …(1)
【0108】
ステップS132の後、学習部107は、算出された減衰値εがランダム値以上であるか否かを判定する(S133)。ランダム値は、0以上1以下の乱数であり、ステップS132を行うたびに、新たなランダム値が生成される。
【0109】
ステップS133の判定の結果、減衰値εがランダム値以上である場合、学習部107は、過去の複数の状態ベクトルを連結して状態空間ベクトルに変換する(S134)。連結された過去の複数の状態ベクトルは、例えば、
図12に示す例において、“状態1”から“状態n-1”の状態ベクトルに相当する。
【0110】
ステップS134の後、学習部107は、変換された状態空間ベクトルを価値ネットワークに入力し、価値ネットワークから出力されたコマンドを、実行するコマンドに決定する(S135)。決定されたコマンドは、例えば、
図12に示す例において、“コマンドn”のコマンドに相当する。
【0111】
ステップS135の後、学習部107は、コマンド決定処理S130を終了する。
【0112】
一方、ステップS131の判定の結果、決定しようとするコマンドの順番が過去の状態数よりも大きくない、つまり、過去の状態数以下である場合、あるいは、ステップS133の判定の結果、減衰値εがランダム値以上でない、つまり、ランダム値未満である場合、学習部107は、未実行のコマンドの中からランダムに選択したコマンドを、実行するコマンドに決定する(S136)。決定されたコマンドは、例えば、
図12に示す例において、“コマンドn”のコマンドに相当する。
【0113】
ステップS136の後、学習部107は、コマンド決定処理S130を終了する。
【0114】
(エミュレータ実行処理)
図15に示すように、学習部107は、まず、終了判定フラグFLに初期値を設定する(S141)。設定する初期値は、例えば“0”である。
【0115】
次に、学習部107は、ステップS114で決定された故障事象と、コマンド決定処理S130により決定されたコマンドとに基づいて、新たな状態ベクトルを生成する(S142)。生成された状態ベクトルは、例えば、
図12に示す例において、“状態n”の状態ベクトルに相当する。
【0116】
次に、学習部107は、ステップS114で決定された故障事象におけるコマンド応答に基づいて、コマンド決定処理S130により決定されたコマンドに対して報酬を付与する(S143)。例えば、コマンド応答が異常を示す“1”である場合は報酬として“100”を付与し、コマンド応答が正常を示す“0”である場合は報酬として“-1”を付与する。このように、コマンド応答が異常を示すコマンドに対し、ポジティブな高い報酬を設定することで、故障種別を判別し得るコマンドの探索に寄与することが可能となる。
【0117】
次に、学習部107は、実行すべきコマンドの探索を終了するか否かを判定する終了判定処理を行う(S144)。終了判定処理では、ステップS115でコマンド応答を反映した配列に基づいて、ステップS114で決定された故障事象のうち、コマンド応答が異常であったコマンドの全てが実行済みであるか否かを判定する。コマンド応答が異常であったコマンドの全てが実行済みである場合、終了判定フラグに“1”を設定する。
【0118】
そして、終了判定処理S144の後、学習部107は、エミュレータ実行処理S140を終了する。
【0119】
このように、それぞれがディープニューラルネットワークである価値ネットワーク及び目標価値ネットワークを用いて、深層強化学習によって学習することにより、コマンド系列を生成する学習済モデル100cが生成される。
【0120】
<探索性能の評価>
次に、
図16及び
図17を参照しつつ、一実施形態に従う診断装置が生成するコマンド系列の探索性能について説明する。
図16は、学習済モデル100cを生成するときの深層強化学習におけるQ値の一例を示す図である。
図17は、コマンド系列の探索スコアの分布の一例を示すグラフである。なお、
図16において、縦軸は故障事象に対応し、横軸は探索学習におけるステップ数に対応し、各プロットはグラフ右側に示すカラースケールの色によって表されるQ値に対応している。また、
図16及び
図17は、前述した学習済モデル生成処理S110において、最大学習数Mを10に、状態空間ベクトルに含まれる過去の状態ベクトルの数、つまり、履歴数を3に、それぞれ設定したときのものである。
【0121】
図16に示すように、深層強化学習は、図における左上から右下の方向に進んでいる。コマンド決定処理S130におけるε減衰に従い、価値ネットワークによってコマンドが獲得され、当該コマンドがエミュレータ実行処理S140で実行されていく。深層強化学習の繰り返し数である変数mが増えるに従い、次第にプロットの色が濃くなり、Q値が上昇している。
図16から、Q値が高いコマンドを実行しながら、故障事象ごとに、コマンドを探索する様子が見て取れる。
【0122】
図17は、1000回の故障事象に対して、故障種別を判別し得るコマンド系列の探索を行ったときの探索スコアの分布を示している。この探索は、探索テストともいう。探索スコアは、探索テストにおいて、全てのコマンド実行ごとに得られた正常(又はOK)、あるいは、異常(又はNG)を示す値の配列に対して故障種別の推定を行い、ラベルとして付与された正解の故障種別に収束したコマンド系列に含まれるコマンド数を、全コマンド数、例えば121で正規化した値である。すなわち、探索スコアが小さいほど、より少ないコマンド数、もしくは、より短いコマンド系列で、正解の故障種別を判別することができたことを意味する。
【0123】
図17の右側に示すグラフは、全てのコマンドからランダムに生成したコマンド系列を用いた場合の探索スコアの分布である。この場合、1000回の故障事象は、探索スコアが相対的に広い範囲に分布しており、平均の探索スコアは0.41であった。
【0124】
これに対し、
図17の左側に示すグラフは、深層強化学習によって学習された学習済モデル100cによって得たコマンド系列を用いた場合の探索スコアの分布である。この場合、1000回の故障事象は、探索スコアが相対的に狭い範囲、具体的には、主に0より大きく0.2以下の範囲に分布しており、平均の探索スコアは0.12であった。その結果、深層強化学習によって学習された学習済モデル100cを備える故障診断装置20は、全コマンド数が121、故障種別が9種類(9クラス)の規模に対して、15コマンド程度を含むコマンド系列で故障内容を推定することができ、探索性能の改善効果を確認することができた。
【0125】
<故障種別判別の処理手順>
次に、
図18を参照しつつ、一実施形態に従う診断装置が行う故障種別判別の処理手順について説明する。
図185は、一実施形態における診断装置10が行う故障種別判別処理S150の一例を説明するためのフローチャートである。
【0126】
以下の説明では、学習済モデル100cが記憶部100にあらかじめ記憶されているものとする。
【0127】
ユーザから故障申告を受けると、
図18に示すように、特定部101は、NW構成DB100aを参照し、申告を受けたユーザの通信サービスを収容する複数の通信装置20を特定する(S151)。
【0128】
次に、コマンド生成部102は、特定された、ユーザの通信サービスを収容する複数の通信装置20に基づいて、故障診断に必要なコマンド系列を生成する(S152)。より詳細には、コマンド生成部102は、学習済モデル100cに、ステップS151で特定された複数の通信装置20を環境として与えてコマンド系列を得る。このようにして得られたコマンド系列が、ユーザの通信サービスを収容する複数の通信装置20に実行させる一連のコマンドとなる。
【0129】
次に、収集部103は、ステップS151において特定された各通信装置20にログインし、ステップS152において生成されたコマンド系列を実行して、コマンド応答を収集する(S153)。
【0130】
次に、前処理部104は、ステップS154において収集されたコマンド応答に基づいて、状態ベクトルに変換する(S154)。より詳細には、前処理部104は、受信したコマンド応答群を、事前に定義された確認ルールに従い、正常を示す“0”又は異常を示す“1”に変換することで、状態ベクトルを生成する。ここで、前処理部104は、C1からCnを要素とする状態ベクトルにおいて、受信したコマンド応答には含まれていないコマンドIDに対応する次元については、“0”を設定する。例えば、状態ベクトルが、C1からC121の121次元であるときに、コマンド応答に、コマンドIDが1から40まで、及び、61から100までの合計80個のコマンド応答が含まれていたものとする。この場合、前処理部104は、状態ベクトルのC1からC121までのうち、コマンドIDが、41から60まで、及び、101から121までに対応する次元については、「0」を設定する。
【0131】
次に、判別部105は、ステップS154において生成された状態ベクトルを判別用学習済モデル100dに入力し、当該判別用学習済モデル100dから出力される、故障種別を示すラベルを取得し、故障種別を判別する(S155)。これにより、ユーザから申告があった故障の故障種別が判別される。
【0132】
次に、出力部106は、ステップS155において取得された故障種別に関する情報を、ディスプレイ等に出力する(S156)。故障種別に関する情報は、例えば故障種別の内容を記述した文言等である。
【0133】
そして、診断装置10は、ステップS156の後、故障種別判別処理S150を終了する。
【0134】
なお、本実施形態で説明したシーケンス及びフローチャートは、処理に矛盾が生じない限り、順序を入れ替えてもよい。
【0135】
また、本実施形態で説明した処理は、装置におけるハードウェアにより実現されてもよいし、プロセッサが記憶装置に記憶されたプログラムを実行することにより実現されてもよい。プログラムを実行する場合、当該プログラムは、記憶媒体に格納されていてもよい。当該プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体であってもよい。非一時的な記憶媒体は、特に限定されないが、例えば、USBメモリ、又はCD-ROM等の記憶媒体であってもよい。
【0136】
以上、本発明の例示的な実施形態について説明した。本実施形態の診断装置10、診断方法、診断プログラム、及び診断システム1によれば、深層強化学習によって生成された学習済モデル100cに、特定された所定の通信装置群を与えてコマンド系列が得られる。これにより、最も価値の高い行動、すなわち、含まれるコマンドの数が削減されたコマンド系列を得ることが可能になる。従って、故障個所や故障原因を短時間で特定することができ、通信ネットワークにおける故障診断を効率的に行うことができる。そのため、本実施形態に係る技術は、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献できる。
【0137】
なお、以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るとともに、本発明にはその等価物も含まれる。即ち、各実施形態に当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。例えば、実施形態が備える各要素及びその配置、材料、条件、形状、サイズなどは、例示したものに限定されるわけではなく適宜変更することができる。また、各実施形態は例示であり、異なる実施形態で示した構成の部分的な置換又は組み合わせが可能であることは言うまでもなく、これらも本発明の特徴を含む限り本発明の範囲に包含される。
【符号の説明】
【0138】
1…診断システム、10…診断装置、20…通信装置、31…プロセッサ、32…メモリ、33…記憶装置、34…通信装置、34…出力装置、35…入力装置、36…出力装置、100…記憶部、100…無線通信システム、100a…NW構成DB、100b…コマンド応答DB、100c…学習済モデル、100d…判別用学習済モデル、100e…教師データDB、101…特定部、102…コマンド生成部、103…収集部、104…前処理部、105…判別部、106…出力部、107…学習部、107…学習部、200…記憶部、201…通信処理部、202…管理部、203…入力部、204…出力部、S110…学習済モデル生成処理、S116…経験リプレイ処理、S130…コマンド決定処理、S140…エミュレータ実行処理、S150…故障種別判別処理。
【要約】
【課題】通信ネットワークにおける故障診断を効率的に行うことのできる診断装置、診断方法、診断プログラム、及び診断システムを提供する。
【解決手段】診断装置は、通信ネットワークに含まれる複数の通信装置の中から、所定の通信サービスを収容する所定の通信装置群を特定する特定部と、特定された所定の通信装置群に基づいて、該通信装置群に含まれる所定の通信装置に実行させるコマンド系列を生成するコマンド生成部と、生成されたコマンド系列を所定の通信装置に実行させ、該所定の通信装置の動作状態を示す所定のコマンド応答を収集する収集部と、所定のコマンド応答に基づいて、所定の通信サービスにおける故障種別を判別する判別部と、を備え、コマンド生成部は、深層強化学習によって学習された学習済モデルに、特定された所定の通信装置群を与えてコマンド系列を得る。
【選択図】
図4