(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022105387
(43)【公開日】2022-07-14
(54)【発明の名称】情報処理システム、情報処理方法及びプログラム
(51)【国際特許分類】
G06Q 10/04 20120101AFI20220707BHJP
G06F 8/34 20180101ALI20220707BHJP
G06N 5/04 20060101ALI20220707BHJP
G06F 3/0481 20220101ALI20220707BHJP
G06F 3/04842 20220101ALI20220707BHJP
【FI】
G06Q10/04
G06F8/34
G06N5/04
G06F3/0481
G06F3/0484 120
【審査請求】未請求
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2021000136
(22)【出願日】2021-01-04
(71)【出願人】
【識別番号】721001580
【氏名又は名称】松崎 潤
(74)【代理人】
【識別番号】100218970
【弁理士】
【氏名又は名称】大杉 肇
(72)【発明者】
【氏名】松▲崎▼ 潤
【テーマコード(参考)】
5B376
5E555
5L049
【Fターム(参考)】
5B376BC07
5B376BC31
5B376BC42
5E555AA26
5E555AA33
5E555AA76
5E555AA79
5E555BA02
5E555BB02
5E555BC17
5E555CA12
5E555CB12
5E555DA22
5E555DB18
5E555DB56
5E555DC30
5E555DC35
5E555DC45
5E555DD06
5E555DD07
5E555DD08
5E555EA07
5E555EA08
5E555FA00
5L049AA04
(57)【要約】 (修正有)
【課題】より容易かつ効率的に統計学的な推論モデルを構築可能な情報処理システム、情報処理方法及びプログラムを提供する。
【解決手段】情報処理システムのサーバが備える制御部33において、受付部331は、他の機器から種々の情報を受け付ける。読出部332は、受付部331が受け付けた種々の情報を読み出す。生成部333は、種々の視覚情報を生成する。出力部334は、他の機器に種々の情報を送信する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
情報処理システムであって、
次の各ステップを実行するように構成され、
受付ステップでは、推論モデルを構築するためのGUIに対するユーザの入力を受け付け、ここで前記入力は、前記推論モデルを構成する複数のノードそれぞれに対する属性情報と、前記複数のノード間の接続関係とを含み、
第1の生成ステップでは、前記入力に基づいて、前記属性情報の少なくとも一部と、前記接続関係とが把握可能な態様で、前記複数のノードを前記GUI上に含む視覚情報を生成する、もの。
【請求項2】
請求項1に記載の情報処理システムにおいて、
前記属性情報の少なくとも一部は、ノード種別であり、前記ノード種別によって前記ノード間の前記接続関係が制限される、もの。
【請求項3】
請求項2に記載の情報処理システムにおいて、
第1の出力ステップをさらに実行するように構成され、
前記第1の出力ステップでは、接続不能な前記ノードの接続関係が入力された場合に、警告を出力するように構成される、もの。
【請求項4】
請求項2又は請求項3に記載の情報処理システムにおいて、
前記第1の生成ステップでは、接続不能な前記ノードの接続関係が入力された場合に、この接続不能な前記接続関係を含む視覚情報を生成しないように構成される、もの。と
【請求項5】
請求項2~請求項4の何れか1つに記載の情報処理システムにおいて、
前記第1の生成ステップでは、前記ノードを示す枠の形態で前記ノード種別を区別可能な前記視覚情報を生成し、ここで前記形態は、形状、模様若しくは色彩又はこれらの結合を含む、もの。
【請求項6】
請求項2~請求項5の何れか1つに記載の情報処理システムにおいて、
前記GUIは、前記ノード種別を予め定められた項目から選択可能なオブジェクトを含み、
前記受付ステップでは、前記ユーザによる前記ノード種別の選択を前記入力として受け付ける、もの。
【請求項7】
請求項2~請求項6の何れか1つに記載の情報処理システムにおいて、
前記ノード種別は、変数、関数及び確率モデルを含む、もの。
【請求項8】
請求項2~請求項7の何れか1つに記載の情報処理システムにおいて、
前記ノード種別は、プログラミング言語であるStanにおいて規定された、Data、Transformed Data、Parameter、Transformed Parameter、Likelihood & Prior及びGenerated Quantityのうちの少なくとも1つを含む、もの。
【請求項9】
請求項1~請求項8の何れか1つに記載の情報処理システムにおいて、
前記属性情報は、対応する前記ノードにおける情報処理を表す第1のコードを含む、もの。
【請求項10】
請求項1~請求項9の何れか1つに記載の情報処理システムにおいて、
第2の出力ステップをさらに実行するように構成され、
前記第2の出力ステップでは、表示された前記態様及び前記属性情報に対応する、前記推論モデルを示す第2のコードを出力する、もの。
【請求項11】
請求項10に記載の情報処理システムにおいて、
実行ステップをさらに実行するように構成され、
前記実行ステップでは、前記第2のコードを実行する、もの。
【請求項12】
請求項11に記載の情報処理システムにおいて、
第2の生成ステップをさらに実行するように構成され、
前記第2の生成ステップでは、前記第2のコードの実行結果に基づいて、設定された事象に関する、前記推論モデルによる推定結果を含む第2の視覚情報を生成する、もの。
【請求項13】
請求項12に記載の情報処理システムにおいて、
前記属性情報は、対応する前記ノードにおける情報処理を表す第1のコードを含み、
前記第1のコードは、前記第2のコードの少なくとも一部を構成する、もの。
【請求項14】
請求項1~請求項13の何れか1つに記載の情報処理システムにおいて、
前記受付ステップでは、前記複数のノードのうちを順番に2つ選択した前記入力を受け付け、
前記第1の生成ステップでは、前記順番のうち先に選択された第1のノードを上流側、後に選択された第2のノードを下流側として、前記上流側及び前記下流側を把握可能な態様で示す視覚情報を生成する、もの。
【請求項15】
請求項1~請求項14の何れか1つに記載の情報処理システムにおいて、
前記GUIは、所定のノードの上流側にある親ノード又は下流側にある子ノードに規定される変数を参照可能なオブジェクトを含む、もの。
【請求項16】
情報処理方法であって、
請求項1~請求項15の何れか1つに記載の情報処理システムの各ステップを備える、方法。
【請求項17】
プログラムであって、
コンピュータに請求項1~請求項15の何れか1つに記載の情報処理システムの各ステップを実行させる、もの。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
感染症の伝播、商品の出荷数、消費者の動向、金融商品の価格など、様々な事象を予測する上で、データ生成に関するドメイン知識をモデルに組み込み、データとモデルから推論を行う統計学的な推論モデルが用いられている。
【0003】
非特許文献1には、このような推論モデルを構築するのに適したプログラミング言語が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】“Stan (software) From Wikipedia, the free encyclopedia”,[令和2年12月25日検索,インターネット<URL:https://en.wikipedia.org/wiki/Stan_(software)>]
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、統計学的な推論モデルにドメイン知識を組み込むには、人手での試行錯誤が必要となり、ドメイン知識を利用しない、従来の機械学習モデルや統計モデルの実装に比べて、煩雑だった。また、ドメイン知識を組み込んだ統計学的な推論モデルには、変数や関数間に複雑な依存関係が存在し、これを把握しながら誤りなくモデル構造を構築するのは、困難な作業だった。
【0006】
本発明では上記事情を鑑み、より容易かつ効率的に統計学的な推論モデルを構築可能な情報処理システム等を提供することとした。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、情報処理システムが提供される。この情報処理システムは、次の各ステップを実行するように構成される。受付ステップでは、推論モデルを構築するためのGUIに対するユーザの入力を受け付ける。入力は、推論モデルを構成する複数のノードそれぞれに対する属性情報と、複数のノード間の接続関係とを含む。第1の生成ステップでは、入力に基づいて、属性情報の少なくとも一部と、接続関係とが把握可能な態様で、複数のノードをGUI上に含む視覚情報を生成する。
【0008】
このような一態様によれば、変数や関数間の依存関係を把握しながら、誤りを削減してより容易かつ効率的に推論モデルを構築することができる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係る情報処理システム1を表す構成図である。
【
図2】ユーザ端末2のハードウェア構成を示すブロック図である。
【
図3】サーバ3のハードウェア構成を示すブロック図である。
【
図4】サーバ3における制御部33等によって実現される機能を示すブロック図である。
【
図6】SaaS型モデルによるサービス提供の流れを示すアクティビティ図である。
【
図8】操作画面4の操作の流れを示すアクティビティ図である。
【
図12】出力部334が出力した第2のコードの一例であるソースコード7を示している。
【
図13】推論モデルによって得られた推定結果8の一例である。
【発明を実施するための形態】
【0010】
以下、図面を用いて本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。
【0011】
ところで、本実施形態に登場するソフトウェアを実現するためのプログラムは、コンピュータが読み取り可能な非一時的な記録媒体(Non-Transitory Computer-Readable Medium)として提供されてもよいし、外部のサーバからダウンロード可能に提供されてもよいし、外部のコンピュータで当該プログラムを起動させてクライアント端末でその機能を実現(いわゆるクラウドコンピューティング)するように提供されてもよい。
【0012】
また、本実施形態において「部」とは、例えば、広義の回路によって実施されるハードウェア資源と、これらのハードウェア資源によって具体的に実現されうるソフトウェアの情報処理とを合わせたものも含みうる。また、本実施形態においては様々な情報を取り扱うが、これら情報は、例えば電圧・電流を表す信号値の物理的な値、0又は1で構成される2進数のビット集合体としての信号値の高低、又は量子的な重ね合わせ(いわゆる量子ビット)によって表され、広義の回路上で通信・演算が実行されうる。
【0013】
また、広義の回路とは、回路(Circuit)、回路類(Circuitry)、プロセッサ(Processor)、及びメモリ(Memory)等を少なくとも適当に組み合わせることによって実現される回路である。すなわち、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等を含むものである。
【0014】
1.ハードウェア構成
本節では、本実施形態のハードウェア構成について説明する。
【0015】
1.1 情報処理システム1
図1は、本実施形態に係る情報処理システム1を表す構成図である。情報処理システム1はユーザ端末2と、サーバ3とを備え、これらがネットワークを通じて接続されている。これらの構成要素についてさらに説明する。ここで、情報処理システム1に例示されるシステムとは、1つ又はそれ以上の装置又は構成要素からなるものである。したがって、サーバ3単体であってもシステムの一例となる。
【0016】
1.2 ユーザ端末2
図2は、ユーザ端末2のハードウェア構成を示すブロック図である。ユーザ端末2は、通信部21と、記憶部22と、制御部23と、表示部24と、入力部25とを有し、これらの構成要素がユーザ端末2の内部において通信バス20を介して電気的に接続されている。通信部21、記憶部22及び制御部23の説明は、サーバ3における通信部31、記憶部32及び制御部33と略同様のため省略する。
【0017】
表示部24は、例えば、ユーザ端末2の筐体に含まれるものであってもよいし、外付けされるものであってもよい。表示部24は、ユーザが操作可能なグラフィカルユーザインターフェース(Graphical User Interface:GUI)の画面を表示する。これは例えば、CRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ及びプラズマディスプレイ等の表示デバイスを、ユーザ端末2の種類に応じて使い分けて実施することが好ましい。ここでは、表示部24は、ユーザ端末2の筐体に含まれるものとして説明する。
【0018】
入力部25は、ユーザ端末2の筐体に含まれるものであってもよいし、外付けされるものであってもよい。例えば、入力部25は、表示部24と一体となってタッチパネルとして実施されてもよい。タッチパネルであれば、ユーザは、タップ操作、スワイプ操作等を入力することができる。もちろん、タッチパネルに代えて、スイッチボタン、マウス、QWERTYキーボード等を採用してもよい。すなわち、入力部25がユーザによってなされた操作入力を受け付ける。当該入力が命令信号として、通信バス20を介して制御部23に転送され、制御部23が必要に応じて所定の制御や演算を実行しうる。
【0019】
1.3 サーバ3
図3は、サーバ3のハードウェア構成を示すブロック図である。サーバ3は、通信部31と、記憶部32と、制御部33とを有し、これらの構成要素がサーバ3の内部において通信バス30を介して電気的に接続されている。各構成要素についてさらに説明する。
【0020】
通信部31は、USB、IEEE1394、Thunderbolt(登録商標)、有線LANネットワーク通信等といった有線型の通信手段が好ましいものの、無線LANネットワーク通信、3G~5G等のモバイル通信、Bluetooth(登録商標)通信等を必要に応じて含めてもよい。すなわち、これら複数の通信手段の集合として実施することがより好ましい。すなわち、サーバ3は、通信部31を介して、ユーザ端末2とネットワークを介して種々の情報を通信する。
【0021】
記憶部32は、前述の記載により定義される様々な情報を記憶する。これは、例えば、制御部33によって実行されるサーバ3に係る種々のプログラム等を記憶するソリッドステートドライブ(Solid State Drive:SSD)等のストレージデバイスとして、あるいは、プログラムの演算に係る一時的に必要な情報(引数、配列等)を記憶するランダムアクセスメモリ(Random Access Memory:RAM)等のメモリとして実施されうる。また、これらの組合せであってもよい。特に、記憶部32は、制御部33によって実行されるサーバ3に係る種々のプログラム等を記憶している。
【0022】
制御部33は、サーバ3に関連する全体動作の処理・制御を行う。制御部33は、例えば不図示の中央処理装置(Central Processing Unit:CPU)である。制御部33は、記憶部32に記憶された所定のプログラムを読み出すことによって、サーバ3に係る種々の機能を実現する。すなわち、記憶部32に記憶されているソフトウェアによる情報処理が、ハードウェアの一例である制御部33によって具体的に実現されることで、制御部33に含まれる各機能部として実行されうる。これらについては、次節においてさらに詳述する。なお、制御部33は単一であることに限定されず、機能ごとに複数の制御部33を有するように実施してもよい。またそれらの組合せであってもよい。
【0023】
2.機能構成
本節では、本実施形態の機能構成について説明する。前述の通り、記憶部32に記憶されているソフトウェアによる情報処理がハードウェアの一例である制御部33によって具体的に実現されることで、制御部33に含まれる各機能部として実行されうる。
【0024】
図4は、サーバ3における制御部33等によって実現される機能を示すブロック図である。具体的には、情報処理システム1の一例であるサーバ3は、次の各部を備える。
【0025】
受付部331は、サーバ3とネットワークを介して接続された他の機器から種々の情報を受け付けるように構成される。例えば、受付部331は、ユーザ端末2から送信された、GUIの一例である操作画面4(
図9~
図11参照)に対する入力を受け付けてもよい。
【0026】
読出部332は、受付部331が受け付けた又は予め記憶部32に記憶された種々の情報を読み出すように構成される。例えば、読出部332は、予め記憶部32に記憶されたノード5の接続是非情報を読み出してもよい。
【0027】
生成部333は、種々の視覚情報を生成するように構成される。視覚情報とは、画面、画像、アイコン、メッセージ等といった、ユーザが視認可能な態様で生成された情報そのものでもよいし、例えばユーザ端末2の表示部24に画面、画像、アイコン、メッセージ等を表示させるためのレンダリング情報であってもよい。
【0028】
出力部334は、種々の情報を出力したり、サーバ3とネットワークを介して接続された他の機器に種々の情報を送信するように構成される。例えば、出力部334は、操作画面4を介してユーザに生成された推論モデルを汎用のプログラミングコードである第2のコードを出力してもよいし、生成部333で生成された視覚情報を、ユーザ端末2に送信してもよい。
【0029】
3.ノード種別
本節では、推論モデルを構成するノード5(
図10及び
図11参照)の種別であるノード種別NKについて説明する。情報処理システム1によって構築される推論モデルは、好ましくは、ベイズ統計モデルであり、さらに好ましくは、動的モデルである。
図5は、ノード種別NKの一覧を示している。
図5に示されるように、ノード種別NKは、変数、関数及び確率モデルを含む。
【0030】
次節で詳述するGUIの一例である、操作画面4には、複数のノード5と、その接続関係を示すリンク6とが表示され、グラフィカルモデルのようにユーザに視認されうる(
図10及び
図11参照)。ただし、従来のグラフィカルモデルでは、ノード種別NKという概念はなく、ノードはあくまでも変数を表すものであり、ノード間を接続するリンクに関数や確率モデルの意味を持たせることがあった。しかしながら、このような形態は、ユーザの直感性に欠けるものであった。本実施形態では、ノード5自体に、変数、関数及び確率モデルの意味を持たせていることで、より直感的な把握をユーザに提供することができる。
【0031】
より具体的には、ノード種別NKは、プログラミング言語であるStanにおいて規定された、Data、Transformed Data、Parameter、Transformed Parameter、Likelihood & Prior及びGenerated Quantityのうちの少なくとも1つを含む。さらに好ましくは、ノード種別NKは、状態を表す種別であるStateと、時間発展を表す種別であるTime Evolutionとを含む。特に、State及びTime Evolutionは、推論モデルが動的モデルである場合に使用するノード種別NKである。以下、それぞれのノード種別NKについて1つずつ説明する。
【0032】
ノード種別NKの一例であるDataは、データ型を有し、全てのノード種別NKのノード5を子ノードとして接続することができる。
【0033】
ノード種別NKの一例であるTransformed Dataは、データ型と親ノード変数の変換関数とを有し、Data以外のノード種別NKのノード5を子ノードとして接続することができる。
【0034】
ノード種別NKの一例であるParameterは、データ型と値域とを有し、Data又はTransformed Data以外のノード種別NKのノード5を子ノードとして接続することができる。
【0035】
ノード種別NKの一例であるTransformed Parameterは、データ型と親ノード変数の変換関数とを有し、Data、Transformed Data又はParameter以外のノード種別NKを子ノードとして接続することができる。
【0036】
ノード種別NKの一例であるStateは、データ型と初期値とを有し、Data、Transformed Data、Parameter又はTransformed Parameter以外のノード種別NKのノード5を子ノードとして接続することができる。
【0037】
ノード種別NKの一例であるTime Evolutionは、親ノード又は子ノードとして接続されたStateに関する時間発展の記述を有し、ノード種別NKがStateのノード5のみを子ノードとして接続することができる。
【0038】
ノード種別NKの一例であるLikelihood & Priorは、尤度や事前確率等の確率モデルの記述を有し、子ノードとして接続することができるノード5がない。
【0039】
ノード種別NKの一例であるGenerated Quantityは、データ型と親ノード変数の変換関数とを有し、ノード種別NKがGenerated Quantityのノード5のみを子ノードとして接続することができる。
【0040】
このように、少なくとも一部に確率的プログラミング言語の一例であるStanにおいて規定されたノード種別NKを採用することで、Stanの知識がある者であれば、より直感的に所望する推論モデルをGUIの一例である操作画面4(
図9~
図11参照)上で構築することできるため、ユーザフレンドリーである。操作画面4については次節でさらに詳しく説明する。
【0041】
4.情報処理方法
本節では、前述した情報処理システム1の情報処理方法について説明する。
【0042】
好ましくは、この情報処理方法は、次の各ステップを備える。受付ステップでは、推論モデルを構築するためのGUIに対するユーザの入力を受け付ける。入力は、推論モデルを構成する複数のノード5それぞれに対する属性情報IFと、複数のノード5間の接続関係CRとを含む。第1の生成ステップでは、入力に基づいて、属性情報IFの少なくとも一部と、接続関係CRとが把握可能な態様で、複数のノード5をGUI上に含む視覚情報を生成する。
【0043】
4.1 SaaS型モデル
図6は、SaaS型モデルによるサービス提供の流れを示すアクティビティ図である。本実施形態では、ユーザは、所定の事象に関する予測を行うために推論モデルの構築を所望するデータサイエンティストであるものとして説明する。なお、あくまでも一例でありユーザはこの限りではない。以下、情報処理システム1によって提供される推論モデルの構築サービスは、ユーザ端末2からインターネットを介してサーバ3にアクセスすることによって提供される、いわゆるSaaS(Software as a Service)であるものとして、
図6に示されるアクティビティ図に沿って説明する。
【0044】
図7は、ログイン画面9の一例を示す概要図である。ユーザが情報処理システム1によって提案されるサービスのURLにアクセスすると、サーバ3において、生成部333がログイン画面9を生成し(アクティビティA101)、出力部334がこれをネットワークを介してユーザ端末2に送信することで、ユーザ端末2の表示部24にログイン画面9が表示される。つまり、サーバ3における通信部31がユーザ端末2から送信されたURLのリクエストを受信し、サーバ3における制御部33が、リクエストに基づいてログイン画面9を生成し、これが通信部31及びネットワークを介して、ユーザ端末2に送信される。
【0045】
ログイン画面9は、例えば、ユーザ名を入力する入力欄91と、パスワードを入力する入力欄92と、ログイン時に押下するログインボタン93と、登録時に選択する登録リンク94とを備えている。
【0046】
ユーザがアカウントを有していない場合は、登録リンク94をクリックやタップする等して選択すればよい。登録リンク94を選択した場合、ユーザ端末2の表示部24にアカウント登録用の画面(不図示)が表示され、ユーザが必要に応じて、ユーザの初期情報を入力すればよい(アクティビティA102)。
【0047】
アカウント登録に際して、ユーザのアカウントに関する初期情報の入力が完了されると、ネットワークを介してサーバ3にその情報が送信され、サーバ3における記憶部32にユーザのアカウントに関する情報、例えばユーザ名やパスワード等がデータベースとして記憶される(アクティビティA103)。
【0048】
アカウント登録が完了すると、ユーザは、情報処理システム1が提供する推論モデル構築サービスにログイン可能となる。換言すると、ユーザが、情報処理システム1によって提案されるサービスに対して、アカウントを有している場合は、入力欄91にユーザ固有のユーザ名を入力し、入力欄92にユーザ名に紐づくパスワードを入力し、ログインボタン93をクリックやタップする等して押下すれば、推論モデル構築サービスにログインすることができる(アクティビティA104)。
【0049】
続いて、サーバ3における生成部333は、GUIの一例である操作画面4を生成する(アクティビティA105)。すなわち、サーバ3における記憶部32にユーザのアカウントに関する情報が記憶された後に、サーバ3における制御部33が、記憶部32に記憶された所定のプログラムを実行することで、操作画面4を生成している。出力部334は、操作画面4を通信部31及びネットワークを介して、ユーザ端末2に送信することで、操作画面4がユーザ端末2の表示部24に表示される。
【0050】
ユーザは、表示部24に表示された操作画面4を入力部25で操作することで、推論モデルを構築することとなる(アクティビティA106)。操作画面4の具体的な操作の流れについては、
図8~
図12を参照して後述する。このようにSaaS型モデルを採用することで、特別な環境構築を必要とせず広くユーザに使用する環境を提供することができる。
【0051】
4.2 操作画面4の操作
図8は、操作画面4の操作の流れを示すアクティビティ図である。
図9~
図11は、操作画面4の一例を示す概要図である。以下、
図8に示されるアクティビティ図に沿って、操作画面4の操作の流れを説明する。
【0052】
まず、生成部333が操作画面4を生成し、出力部334がこれを送信することで、ユーザ端末2の表示部24に操作画面4が表示される(アクティビティA201)。これに対して、ユーザが操作を行うと、受付ステップとして、受付部331は、推論モデルを構築するための操作画面4に対するユーザの入力を受け付ける。換言すると、サーバ3が通信部31を介して受信した入力が記憶部32の一例である一時記憶領域に記憶され、種々の処理が制御部33によって実行される。また、入力は、推論モデルを構成する複数のノード5それぞれに対する属性情報IFと、複数のノード5間の接続関係CRの一例であるリンク6とを含む。
【0053】
具体的には、ユーザは、操作画面4に対して、属性情報IFの一例であるノード種別NKと、ノード名とを入力することでノード5を設定する(アクティビティA202)。続いて、生成部333が操作画面4を更新して、出力部334がこれを送信することで、更新後の操作画面4がユーザ端末2の表示部24に表示される。すなわち、設定されたノード5が操作画面4に表示される(アクティビティA203)。続いて、ユーザは、操作画面4に対して、設定したノード5に対応する属性情報IFの一例である第1のコードを入力する(アクティビティA204)。これらを複数回繰り返した後、ユーザは、操作画面4に対して、ノード5間の接続関係CRを示すリンク6を入力する(アクティビティA205)。
【0054】
換言すると、属性情報IFの少なくとも一部は、ノード種別NKであり、ノード種別NKによってノード5どうしの接続関係CRが制限される。ノード種別NK及びその接続関係CRの詳細については、前節を参照されたい。このような態様によれば、ユーザに誤ったノード5どうしを接続させ、これによってバグを有する第1のコード又は第2のコードが生成されるのを防止することができる。第2のコードについては後述する。特に、単に制限されるだけでなく、ユーザに接続することができない旨の警告が出力されてもよい。これについては、後に説明する。
【0055】
また、
図9に示されるように、初期状態等、ノード5が非選択の状態において、GUIの一例である操作画面4は、ノード種別NKを予め定められた項目から選択可能なオブジェクトの一例である選択欄41を含む。選択欄41は、例えばプルダウンリストによって実施される。そして、サーバ3において受付部331は、ユーザによるノード種別NKの選択を入力として受け付けることができる。このように、予め定められた項目からユーザにノード種別NKを選択させることで、ノード種別NKの正確な名前やスペルを覚えていない者であっても、効率的にノード種別NKを決定することができるため、ユーザフレンドリーである。
【0056】
操作画面4は、さらに、入力欄42と、ボタン43と、領域44と、ボタン46とを備えている。入力欄42は、ユーザにノード5の名称(ノード名)を入力させる欄である。ボタン43は、ノード5を生成するためのオブジェクトである。ユーザが選択欄41の選択及び入力欄42への入力を済ませ、ボタン43を押下することで、領域44内にノード5が生成される。
図10に示される例では、選択欄41ではノード種別NKの一例であるDataが選択され、入力欄42にはノード名であるPatientが入力され、ユーザがボタン43を押下することで、領域44内にノード51が生成されている。ボタン46については後述する。
【0057】
さらに、
図11に示されるように、ユーザが、領域44に表示されたノード5を選択すると、入力欄45が表示されることが好ましい。
図11では、ユーザがノード53を選択している。ノード53は、ノード種別NKがTime Evolutionであり且つノード名がODEである。また、先に説明したノード51と、ノード種別NKがStateであり且つノード名がSusceptibleであるノード52とは、ユーザに選択されていないノードである。入力欄45には、ノード種別NK以外の属性情報IFが入力されることが好ましい。特に、入力欄45に入力されうる属性情報IFは、対応するノード5における情報処理を表す第1のコードを含む。
【0058】
具体的には例えば、対応するノード5において使用するローカル変数の宣言、宣言したローカル変数への数値代入、宣言したローカル変数を用いた情報処理等が、第1のコードに含まれうる。このように、各ノードに対して、属性情報IFの1つとして、コードの入力を可能とすることで、効率を重視しつつも、推論モデルのより汎用的な設計を実現することができる。
【0059】
また好ましくは、第1のコードは、最終的に出力部334が出力する全体のソースコード7(
図12参照)である第2のコードの少なくとも一部を構成する。第1のコードが、第2のコードの少なくとも一部を構成することで、特に将来的に情報処理システム1を用いずにコードを実装したいユーザにとって、良い教育材料となりうる。
【0060】
また、
図11に示されるように、ユーザは、ノード5間の接続関係CRを設定することができる。具体的には、ノード5間が矢印型のリンク6で接続されており、ノード5間の上流下流の関係が把握可能な構成となっている。なお、リンク6は線状の視覚情報であるため、より扱いやすく位置や向きを微調整するために、操作アイコン6aを備えていることが好ましい。
【0061】
より具体的には、サーバ3において、受付部331が複数のノード5のうちを順番に2つ選択した入力を受け付ける。そして、生成部333が順番のうち先に選択された第1のノード、例えばノード51を上流側、後に選択された第2のノード、例えばノード52を下流側として、上流側及び下流側を把握可能な態様で示す視覚情報を生成する。例えば矢印の向きによって把握可能に、ユーザ端末2の表示部24に視覚情報が表示されるとよい。
図11に示される例では、リンク61は、上流側であるノード51と下流側であるノード52との接続関係CRを示している。同様に、リンク62は、上流側であるノード52と下流側であるノード53との接続関係CRを示している。このような態様によれば、ユーザは、簡単な操作で、ノード5の上流下流を決定することができるとともに、これをGUIの一例である操作画面4上で把握することができるため、ユーザフレンドリーである。
【0062】
また、前述の通り、ノード種別NKによって接続可能なノード5が制限されているため、ユーザにこれを教示可能に構成されることが好ましい。換言すると、出力部334は、接続不能なノード5の接続関係CRが入力された場合に、警告を出力するように構成されるとよい。例えば、ユーザによって、2つのノード5が順番に選択されることで接続関係CRが入力されると、読出部332は、予め記憶部32に記憶された接続是非情報を読み出す。接続是非情報には、第3節で説明した各ノード種別NKの接続可能なノード種別NKがルックアップテーブル等の形式でまとめられているとよい。接続可能である場合は、生成部333が
図11に示されるようなリンク6を操作画面4に含む視覚情報を生成し、出力部334がこれを送信することで、この視覚情報がユーザ端末2における表示部24に表示され(アクティビティA206)、接続不可である場合は、ユーザにこれを知らせる不図示の警告が提示されるとよい(アクティビティA207)。かかる警告は、アラートアイコン等の視覚情報でもよいし、警告音等の音声情報でもよい。
【0063】
さらに、ノード種別NKに関連し、生成部333がノード5を示す枠の形態でノード種別NKを区別可能な視覚情報を生成することが好ましい。ここでの形態は、形状、模様若しくは色彩又はこれらの結合を含む概念である。具体的には、ノード51と、ノード52と、ノード53とは枠内のピクセル情報が異なるものである。すなわち、色相、明度及び彩度の少なくとも何れかが異なることで、ユーザが区別可能に構成されている。あるいは、ピクセル情報に代えて、枠の形状そのものを区別可能としてもよい。枠の形状としては、例えば、長方形、正方形、円及び楕円等が採用されうる。このようにノード5を示す枠の形態によって、ユーザが直感的にノード種別NKを把握できるため、ユーザフレンドリーである。
【0064】
なお、
図8に示されるように、ノード5の設定操作(アクティビティA202~A204)と、接続関係CRの設定操作(アクティビティA205~A207)とを自由に繰り返してよい。例えば、ノード51とノード52とを設定してこれらを接続する接続関係CRとなるリンク61を設定し、続いてノード53を設定してノード52と接続する接続関係CRであるリンク62を設定してもよい。このような一連の操作により、第1の生成ステップとして、生成部333は、入力に基づいて、属性情報IFの少なくとも一部と、接続関係CRとが把握可能な態様で、複数のノード5を操作画面4上に含む視覚情報を生成する。
【0065】
所望する推論モデルが構築されると、ユーザは、ボタン46を押下する(アクティビティA208)。これを契機に、第2の出力ステップとして、サーバ3における出力部334は、操作画面4の領域44において表示された態様及び属性情報IFに対応する、推論モデルを示す第2のコードを出力する(アクティビティA209)。
図12は、出力部334が出力した第2のコードの一例であるソースコード7を示している。出力されたソースコード7は、出力部334によってユーザ端末2に送信され、表示部24に表示されてもよいし、データとしてダウンロードされるようにしてもよい。
【0066】
このような態様によれば、構築した推論モデルを動作させるためのコードを汎用的に使用可能なソースコード7(第2のコード)として出力することができる。このように生成された第2のコードを、ユーザがユーザ端末2を用いてローカル環境下で適宜コンパイルすることで推論モデルを生成し、これにより所望の事象に関する推論を実施することができる。あるいは、本実施形態に係る情報処理システム1を利用しない者にソースコードを譲渡する等することが可能となる。
【0067】
なお、ボタン46の押下を契機として初めて第2のコードが生成されてもよいが、さらに好ましくは、推論モデルの構築段階において、領域44に表示されているノード5等に基づいて、第2のコードが逐次生成又は更新されるとよい。
【0068】
以上に説明した実施形態によれば、変数や関数間の依存関係を把握しながら、誤りを削減してより容易かつ効率的に推論モデルを構築することができる。また、このような実施形態によれば、プログラミング技術の個人差を緩和し、より容易かつ効率的に推論モデルを構築することができる。
【0069】
5.その他
本実施形態に係る情報処理システム1に関して、以下のような態様を採用してもよい。
【0070】
(1)以上の実施形態では、情報処理システム1の構成として説明したが、コンピュータに、コンピュータに情報処理システム1の各ステップを実行させるプログラムが提供されてもよい。あるいは、情報処理システム1の各ステップを備える情報処理方法が提供されてもよい。
【0071】
(2)情報処理システム1は、不図示の実行部をさらに備えてもよい。すなわち、ユーザ端末2でのコンパイルを不要とし、サーバ3における実行部が、第2のコードを実行可能に構成されてもよい。さらに好ましくは、第2の生成ステップとして、生成部333が、第2のコードの実行結果に基づいて、設定された事象に関する、推論モデルによる推定結果8を含む視覚情報を生成してもよい。
図13は、推論モデルによって得られた推定結果8の一例である。このような態様によれば、ユーザは、ノード5の構築から推論モデルの実行までをワンストップで行うことができるため、より迅速に効率的に、推論モデルを用いた様々な事象の予測を行うことができる。
【0072】
(3)本実施形態においては、ノード5どうしが接続できないノード種別NKである場合に警告を出すように実施しているが、警告を出すことに代えて、接続不能なノード5の接続関係CRが入力された場合に、生成部333がこの接続不能な接続関係CRを含む視覚情報を生成しないように構成されてもよい。
【0073】
(4)1つ上流のノード5である親ノードまたは1つ下流のノード5である子ノードに規定される変数を参照していない場合に、警告を出すように実施してもよい。つまり、第3の出力ステップとして、出力部334は、所定のノード5、例えばノード52において、ノード52の上流側にある親ノードであるノード51に規定される変数を引用していない場合に、警告を出力するように構成されてもよい。また好ましくは、出力部334は、所定のノード5において、所定のノード5の下流側にある子ノードに規定される変数を引用していない場合に、警告を出力するように構成されてもよい。このような態様によれば、変数の引用漏れを防止することができる。
【0074】
(5)ユーザによってあるノード5が選択された場合に、ワンクリックで親ノードまたは子ノードに規定される変数を参照可能な不図示のオブジェクトが表示されるように実施してもよい。つまり、GUIの一例である操作画面4は、所定のノード5、例えばノード52の上流側にある親ノードであるノード51に規定される変数を参照可能なオブジェクトを含んでもよい。また好ましくは、GUIの一例である操作画面4は、所定のノード5の下流側にある子ノードに規定される変数を参照可能なオブジェクトを含んでもよい。このような態様によれば、変数の引用漏れに気づいた後に、素早く修正することができる。
【0075】
(6)本実施形態をSaaS型モデルで提供されるサービスとして説明したが、これに限定されず、ユーザがユーザ端末2に所定のプログラムをインストールすることで、スタンドアロン型のサービスとして実施してもよい。このようなプログラムが頒布されてもよい。
【0076】
(7)どのノード5とも接続されていない浮いた状態のノード5が存在する場合に、出力部334が警告を出すように実施してもよい。このような態様によれば、無駄なノード5の作成を防止することや、リンク漏れを防止することができる。
【0077】
(8)
図14は、操作画面4の別の態様を示している。すなわち、このような態様によって操作画面4を実施してもよい。
【0078】
さらに、次に記載の各態様で提供されてもよい。
前記情報処理システムにおいて、前記属性情報の少なくとも一部は、ノード種別であり、前記ノード種別によって前記ノード間の前記接続関係が制限される、もの。
前記情報処理システムにおいて、第1の出力ステップをさらに実行するように構成され、前記第1の出力ステップでは、接続不能な前記ノードの接続関係が入力された場合に、警告を出力するように構成される、もの。
前記情報処理システムにおいて、前記第1の生成ステップでは、接続不能な前記ノードの接続関係が入力された場合に、この接続不能な前記接続関係を含む視覚情報を生成しないように構成される、もの。と
前記情報処理システムにおいて、前記第1の生成ステップでは、前記ノードを示す枠の形態で前記ノード種別を区別可能な前記視覚情報を生成し、ここで前記形態は、形状、模様若しくは色彩又はこれらの結合を含む、もの。
前記情報処理システムにおいて、前記GUIは、前記ノード種別を予め定められた項目から選択可能なオブジェクトを含み、前記受付ステップでは、前記ユーザによる前記ノード種別の選択を前記入力として受け付ける、もの。
前記情報処理システムにおいて、前記ノード種別は、変数、関数及び確率モデルを含む、もの。
前記情報処理システムにおいて、前記ノード種別は、プログラミング言語であるStanにおいて規定された、Data、TransformedData、Parameter、TransformedParameter、Likelihood&Prior及びGeneratedQuantityのうちの少なくとも1つを含む、もの。
前記情報処理システムにおいて、前記属性情報は、対応する前記ノードにおける情報処理を表す第1のコードを含む、もの。
前記情報処理システムにおいて、第2の出力ステップをさらに実行するように構成され、前記第2の出力ステップでは、表示された前記態様及び前記属性情報に対応する、前記推論モデルを示す第2のコードを出力する、もの。
前記情報処理システムにおいて、実行ステップをさらに実行するように構成され、前記実行ステップでは、前記第2のコードを実行する、もの。
前記情報処理システムにおいて、第2の生成ステップをさらに実行するように構成され、前記第2の生成ステップでは、前記第2のコードの実行結果に基づいて、設定された事象に対する、前記推論モデルによる推定結果を含む第2の視覚情報を生成する、もの。
前記情報処理システムにおいて、前記属性情報は、対応する前記ノードにおける情報処理を表す第1のコードを含み、前記第1のコードは、前記第2のコードの少なくとも一部を構成する、もの。
前記情報処理システムにおいて、前記受付ステップでは、前記複数のノードのうちを順番に2つ選択した前記入力を受け付け、前記第1の生成ステップでは、前記順番のうち先に選択された第1のノードを上流側、後に選択された第2のノードを下流側として、前記上流側及び前記下流側を把握可能な態様で示す視覚情報を生成する、もの。
前記情報処理システムにおいて、前記GUIは、所定のノードの上流側にある親ノード又は下流側にある子ノードに規定される変数を参照可能なオブジェクトを含む、もの。
情報処理方法であって、前記情報処理システムの各ステップを備える、方法。
プログラムであって、コンピュータに前記情報処理システムの各ステップを実行させる、もの。
もちろん、この限りではない。
【0079】
最後に、本発明に係る種々の実施形態を説明したが、これらは、例として提示したものであり、発明の範囲を限定することは意図していない。当該新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。当該実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0080】
1 :情報処理システム
2 :ユーザ端末
20 :通信バス
21 :通信部
22 :記憶部
23 :制御部
24 :表示部
25 :入力部
3 :サーバ
30 :通信バス
31 :通信部
32 :記憶部
33 :制御部
331 :受付部
332 :読出部
333 :生成部
334 :出力部
4 :操作画面
41 :選択欄
42 :入力欄
43 :ボタン
44 :領域
45 :入力欄
46 :ボタン
5 :ノード
51 :ノード
52 :ノード
53 :ノード
6 :リンク
61 :リンク
62 :リンク
6a :操作アイコン
7 :ソースコード
8 :推定結果
9 :ログイン画面
91 :入力欄
92 :入力欄
93 :ログインボタン
94 :登録リンク
CR :接続関係
IF :属性情報
NK :ノード種別