以下に添付図面を参照して、本発明にかかる学習モデル差分提供プログラム、学習モデル差分提供方法、および学習モデル差分提供システムの実施の形態を詳細に説明する。
図1は、学習モデル差分提供システムによる一動作例を示す説明図である。学習モデル差分提供システム100は、アプリケーションプログラムの用途に応じた機械学習の予測モデルによって得られる予測データとユーザusに指定されたデータとのずれに関する情報を機械学習の学習モデルの提供者にフィードバック可能なシステムである。アプリケーションプログラムは、以下アプリと称する。機械学習の予測モデルは、以下省略して学習モデルと称する。学習モデルは、入力データを与えると、入力データに基づいて予測データを出力する関数がコーディングされたプログラムである。
従来技術では、学習モデルの提供者は学習モデルによって得られる予測データが正しいか否かを判断することができないという問題点がある。例えば、予測データが正しいか否かを判断できないと、学習モデルの修正などを行うことが難しい。
本実施の形態では、情報処理装置101は、アプリでの入力データに基づく学習モデル104で得た該データ内のデータに関する予測値と該データに関する指定値との不一致度が高い場合、不一致度を学習モデルの提供元の装置に通知する。これにより、学習モデル104のずれに関する情報を学習モデルの提供者に提供できる。したがって、提供者は不一致度に応じて学習モデルの修正を検討することができ、学習モデルの予測精度の向上を支援することができる。
学習モデル差分提供システム100は、利用者端末装置102と、情報処理装置101と、提供者端末装置103と、を有する。利用者端末装置102は、インストールされたアプリを実行する第1端末装置である。利用者端末装置102では、ユーザusの操作によりアプリを用いてデータを作成する。ここでのユーザusは、アプリのユーザであり、かつ学習モデル104のユーザである。ユーザusは、個人であっても会社のようなグループであってもよい。ここでは、アプリは、クラウド型アプリとする。情報処理装置101は、アプリによって作成された電子ファイルであるデータを管理する。また、情報処理装置101は、クラウド型アプリの設定情報などを管理する。提供者端末装置103は、学習モデル104の提供者が使用可能な装置であって、学習モデル104の提供元の第2端末装置である。学習モデル104の提供者はサービサーsrとも称する。サービサーsrは、例えば、個人でも会社であってもよい。ここで、利用者端末装置102と、提供者端末装置103とは、それぞれ複数であってもよいが、ここでは理解の容易化のために、それぞれ1つとする。
また、情報処理装置101は、入力されたデータ105と、学習モデル104とによって得られる、データ105に含まれるいずれかのデータについての予測データ106と、いずれかのデータについての指定された反映データ107と、の不一致度を算出する。入力されたデータ105はアプリを用いて入力されたデータである。予測データ106と反映データ107とは、数値、文字や文字列ある。不一致度は、予測データ106と反映データ107とが不一致である度合を示す。不一致度は、例えば、文字や数値で表される。不一致度としては、例えば、予測データ106と反映データ107とが一致しているか否かを示す情報が挙げられる。また、不一致度としては、例えば、予測データ106と反映データ107との差分値が挙げられる。
例えば、アプリがCAD(Computer Aided Design)の場合、アプリを用いて入力されたデータ105とは、設計データである。そして、設計データに含まれるいずれかのデータは、設計データに含まれるいずれかの項目である。いずれかのデータについての予測データ106とは、項目についての予測値である。例えば、項目が基板数の項目であれば、予測値は基板数である。学習モデル104は、例えば、設計データを入力データとして、基板数についての予測値を予測する。CADの用途に応じた学習モデル104は、例えば、CADによって設計される製品の種別などに応じて作成されてもよい。いずれかのデータについての指定された反映データ107とは、ユーザusによって指定された基板数である。
また、例えば、アプリが文書作成アプリの場合、アプリを用いて入力されたデータ105とは、文書データである。学習モデル104は、例えば、文字の漢字変換候補である。文書データに含まれるいずれかのデータは、文書データに含まれる変換対象の文字列である。いずれかのデータについての予測データ106は、例えば、変換対象の文字列の変換候補である。ここでの変換とは、例えば、入力文字の漢字変換が挙げられる。
図1の例では、予測データ106が6であり、反映データ107が4である。情報処理装置101は、不一致度として、予測データ106と反映データ107との差分値を算出する。図1の例では、不一致度は2である。
つぎに、情報処理装置101は、算出した不一致度が第1度合を超えたか否かを判定する。第1度合は予め定められた情報である。第1度合は不一致度と同様に文字や数値で表される。図1の例では、不一致度が差分値であるため、第1度合は、数値で表され、1である。図1の例では、情報処理装置101は、不一致度が第1度合を超えたと判定する。
そして、情報処理装置101は、不一致度が第1度合を超えたと判定した場合に、不一致度を提供者端末装置103に送信する。不一致度を送信する処理としては、情報処理装置101は、例えば、不一致度と学習モデル104の識別情報とを関連付けてeメールやメッセージなどを提供者端末装置103に送信する。これにより、予測データ106のずれに関する情報をサービサーsrに提供でき、サービサーsrによる学習モデル104の作成を支援することができる。
図1では、アプリがクラウド型アプリのため、利用者端末装置102と情報処理装置101とを異なる例としたが、アプリがクラウド型アプリでない場合、利用者端末装置102と情報処理装置101とが同じであってもよい。
本実施の形態では、アプリがクラウド型アプリを前提として、複数のユーザusによってクラウド型アプリが利用される場合を想定した学習モデル差分提供システム100例を説明する。ここで、学習モデル差分提供システム100の詳細例の説明の前に、クラウド型アプリや学習モデル104について簡単に説明する。
図2は、クラウド型アプリの使用環境例を示す説明図である。近年、ユーザusがインターネットを介してアプリのサービスを受けるクラウド型アプリと呼ばれる技術がある。ユーザusが使用する各装置にはクラウド型アプリがインストールされてある。ユーザusが使用する装置としては、例えば、PC(Personal Computer)や携帯端末装置などのローカルな装置、クラウド型の装置、VM(Virtual Machine)などが挙げられる。
例えば、ユーザusが使用する装置としてクラウド型の装置を利用する場合、ユーザusは、ユーザusが操作可能なPCや携帯端末装置を介して、クラウド型アプリがインストールされたクラウド型の装置にアクセスすることによりクラウド型アプリを利用できる。例えば、ユーザusが使用する装置としてVMを利用する場合、サーバがアプリケーションプログラムを実行し、利用者が操作可能な装置は、リモートデスクトップとしてサーバから転送された画面の画像を表示する。図2の例では、PCや携帯端末装置などのローカルな装置が利用者端末装置102である。
また、各利用者端末装置102の利用者情報201はアプリ管理サーバ200などに保存される。各利用者端末装置102にインストールされたクラウド型アプリのアプリ設定情報202などは、クラウド型アプリ管理サーバ200などに保存される。これにより、ユーザusは、クラウド型アプリがインストールされたどの装置を使用してもサーバに保存された設定情報などを利用することにより最新の設定状態によってクラウド型アプリを使用することができる。さらに、クラウド型アプリによって編集されるアプリ編集ファイル203もクラウド上のサーバなどに保存される。これにより、ユーザusは、クラウド型アプリがインストールされたいずれの利用者端末装置102を使用してもクラウド型アプリ管理サーバ200に保存されたアプリ編集ファイル203などを利用することができる。これにより、最新のアプリ編集ファイル203によってクラウド型アプリを使用することができる。
また、クラウド型アプリ管理サーバ200にファイルをアップロードせずに利用者が操作可能な装置に保存することも可能である。また、利用者端末装置102による操作やファイル編集などの利用履歴についてはアプリ利用ログ204としてクラウド型アプリ管理サーバ200に保存される。
図3は、機械学習の学習モデル例を示す説明図である。学習モデル300とは、入力データに基づいて予測データを出力する関数がコーディングされたプログラムである。学習モデル300については、アプリの用途ごとに作成される。
また、機械学習とは、データから規則性やパターンを見つけ、規則性やパターンを利用して将来の予測を行う技術である。例えば、機械学習の学習モデル300では、入力データを受け取り、受け取ったデータに対する予測データを計算して予測データを出力する。
学習モデル300の運用においては、学習モデル300を利用する利用側と、学習モデル300を作成および提供する提供側と、に分かれる。
図4は、学習モデル提供側による学習モデル管理例を示す説明図である。図4(1)に示すように、学習モデル401の提供者端末装置103は、クラウド上のモデル管理サーバ400に学習モデル401と、提供者情報402と、学習モデル401の利用方法の情報403をクラウド上のモデル管理サーバ400へ送信する。学習モデル401の提供側が使用可能な装置は、ローカルのPCや携帯端末装置だけでなく、クラウド上のサーバ、VMなどが挙げられる。
図4(2)に示すように、クラウド上のモデル管理サーバ400は、提供された学習モデル401、利用方法の情報403を管理する。モデル管理サーバ400は、学習モデル401の利用方法の情報403と学習モデル401の指定方法を学習モデル401のユーザus側に公開する。
図5は、学習モデルの利用例を示す説明図である。まず、図5(1)に示すように、学習モデル401利用側は、利用者端末装置102によって使用する学習モデル401の指示および学習モデル401に与える入力データをモデル管理サーバ400へ送信する。
つぎに、図5(2)に示すように、モデル管理サーバ400は、指定された学習モデル401を使用して入力データから予測データを算出する。そして、図5(3)に示すように、モデル管理サーバ400は、学習モデル401から計算された予測データである出力データを利用者端末装置102へ送信する。
図6は、クラウド型アプリにおけるクラウド上の学習モデルの利用例を示す説明図である。クラウド型アプリ管理サーバ200とモデル管理サーバ400とは同一の装置であってもよいが、本実施の形態では、クラウド型アプリの機能と学習モデル401の機能とを区別するために異なる装置として説明する。
学習モデル401の提供者であるサービサーsrは、クラウド型アプリ用の学習モデル401を作成して提供する。モデル管理サーバ400は、クラウド型アプリに関係する用途ごとの複数の学習モデル401を保管および管理する。学習モデル401利用側は、クラウド型アプリの用途に応じた学習モデル401の指定と学習モデル401の入力データをモデル管理サーバ400に送信し、モデル管理サーバ400から学習モデル401の出力値を出力する。学習モデル401のユーザusは、モデル管理サーバ400から取得した学習モデル401の出力値をクラウド型編集ファイルに反映する。
(学習モデル差分提供システム100例)
図7は、学習モデル差分提供システム例を示す説明図である。学習モデル差分提供システム100は、例えば、利用者端末装置102と、クラウド型アプリ管理サーバ200と、モデル管理サーバ400と、提供者端末装置103と、を有する。利用者端末装置102と、クラウド型アプリ管理サーバ200と、モデル管理サーバ400と、提供者端末装置103とは、ネットワークを介して接続される。
利用者端末装置102は、クラウド型アプリがインストールされた装置であり、学習モデルのユーザusが使用可能な装置である。利用者端末装置102は、例えば、PCや携帯端末装置、クラウド上の装置、VMなどであってもよい。提供者端末装置103は、学習モデルの提供側が使用可能な装置である。提供者端末装置103は、例えば、PCや携帯端末装置、クラウド上の装置、VMなどであってもよい。
クラウド型アプリ管理サーバ200は、利用者端末装置102によるクラウド型アプリの設定情報、編集データや利用履歴などを管理する。モデル管理サーバ400は、提供者端末装置103によって提供された学習モデルを管理して指示された学習モデルと入力データに基づいて予測値を出力する。
ここで、本実施の形態では、クラウド型アプリがCADの場合には、クラウド型アプリ管理サーバ200は、CAD管理サーバと称し、クラウド型アプリが文書作成アプリの場合、クラウド型アプリ管理サーバ200は、文書アプリ管理サーバとも称する。
(端末装置cのハードウェア構成例)
つぎに、利用者端末装置102や提供者端末装置103などの端末装置のハードウェア構成例について説明する。ここでは、利用者端末装置102や提供者端末装置103を「端末装置c」と表記する。
図8は、端末装置cのハードウェア構成例を示す説明図である。端末装置cは、CPU(Central Processing Unit)801と、ROM(Read Only Memory)802と、RAM(Random Access Memory)803と、ディスクドライブ804と、ディスク805と、を有する。学習モデル差分提供装置は、I/F(Inter/Face)806と、キーボード807と、マウス808と、ディスプレイ809と、を有する。また、CPU801と、ROM802と、RAM803と、ディスクドライブ804と、I/F806と、キーボード807と、マウス808と、ディスプレイ809とは、バス800によってそれぞれ接続される。
ここで、CPU801は、クライアント端末装置cjの全体の制御を司る。ROM802は、ブートプログラムなどのプログラムを記憶する。RAM803は、CPU801のワークエリアとして使用される。ディスクドライブ804は、CPU801の制御にしたがってディスク805に対するデータのリード/ライトを制御する。ディスク805は、ディスクドライブ804の制御で書き込まれたデータを記憶する。ディスク805としては、磁気ディスク、光ディスクなどが挙げられる。
I/F806は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク810に接続され、このネットワーク810を介して各サーバなどの他の装置に接続される。そして、I/F806は、ネットワーク810と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F806には、例えばモデムやLANアダプタなどを採用することができる。
キーボード807やマウス808は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ809は、CPU801の指示により、データを出力するインターフェースである。
また、図示を省略するが、端末装置cには、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、端末装置cには、プリンタなどの出力装置が設けられていてもよい。
(サーバのハードウェア構成例)
つぎに、クラウド型アプリ管理サーバ200、モデル管理サーバ400のハードウェア構成例について説明する。ここでは、クラウド型アプリ管理サーバ200、モデル管理サーバ400を「サーバS」と表記する。
図9は、サーバSのハードウェア構成例を示す説明図である。サーバSは、CPU901と、ROM902と、RAM903と、ディスクドライブ904と、ディスク905と、I/F906と、を有する。
CPU901と、ROM902と、RAM903と、ディスクドライブ904と、I/F906とは、バス900によってそれぞれ接続される。
ここで、CPU901は、サーバSの全体の制御を司る。ROM902は、各種プログラムを記憶する。ROM902に記憶されるプログラムは、CPU901にロードされることにより、コーディングされている処理をCPU901に実行させる。RAM903はCPU901のワークエリアとして使用される。
I/F906は、通信回線を通じてネットワーク810に接続され、ネットワーク810を介して各端末装置cなどの他の装置に接続される。そして、I/F906は、ネットワーク810と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F906には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ904は、CPU901の制御に従ってディスク905に対するデータのリード/ライトを制御する。ディスク905は、ディスクドライブ904の制御で書き込まれたデータを記憶する。ディスク905としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
また、サーバSは、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、マウス、ディスプレイなどを有することにしてもよい。
(学習モデル差分提供システムの機能的構成例)
図10は、学習モデル差分提供システムの機能的構成例を示すブロック図である。学習モデル差分提供システム100は、例えば、利用者端末装置102と、クラウド型アプリ管理サーバ200と、モデル管理サーバ400と、提供者端末装置103と、を有する。
クラウド型アプリ管理サーバ200は、記憶部1000と、受信部1001と、第1算出部1002と、第1判定部1003と、送信部1004と、第2算出部1005と、第2判定部1006と、を有する。記憶部1000は、例えば、ROM902、RAM903、ディスク905などの記憶装置である。受信部1001から第2判定部1006までの制御部の処理は、例えば、図9に示すCPU901がアクセス可能なROM902、RAM903、ディスク905などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU901が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。
記憶部1000には、ユーザusごとに、利用者情報、クラウド型アプリの設定情報、クラウド型アプリによって作成中または作成後のデータなどが記憶される。また、記憶部1000には、学習モデルを管理するテーブルが記憶される。学習モデルを管理するテーブルには、例えば、学習モデルごとに学習モデルを利用したユーザus、学習モデルによって予測された予測情報、実際の反映データなどが記憶される。各種情報の例については、図11以降のクラウド型アプリが電気系のCADの場合を例に挙げて説明する。
受信部1001は、ネットワーク810を介して、利用者端末装置102からの各種データを受信する。送信部1004は、ネットワーク810を介して、各種データを利用者端末装置102へ送信する。また、受信部1001は、モデル管理サーバ400からの各種データを受信する。送信部1004は、ネットワーク810を介して、各種データをモデル管理サーバ400へ送信する。また、受信部1001は、ネットワーク810を介して、提供者端末装置103からの各種データを受信する。送信部1004は、ネットワーク810を介して、各種データをモデル管理サーバ400へ送信する。
第1算出部1002は、アプリを用いて入力されたデータと、学習モデルとによって得られる、入力されたデータに含まれるいずれかのデータについての予測データと、いずれかのデータについての指定された反映データと、の不一致度を算出する。
つぎに、第1判定部1003は、算出した不一致度が第1度合を超えたか否かを判定する。第1度合は、学習モデルのサービサーsrなどによって予め定められ、記憶部1000などに記憶される。
送信部1004は、不一致度が第1度合を超えたと判定した場合に、不一致度を提供者端末装置103に送信する。
また、第1判定部1003は、算出した不一致度が第2度合を超えたか否かを判定する。第1度合は、学習モデルのサービサーsrなどによって予め定められ、記憶部1000などに記憶される。第2度合は、例えば、第1度合と同じ、または第1度合よりも低く設定される。本実施の形態では、第2度合は第1度合よりも低くする。これにより、学習モデルによる予測データと実際の反映データとのずれを段階的に評価できる。
また、第2算出部1005は、各データのうち不一致度が第2度合を超えたと判定したデータの数と、各データの数との比率を算出する。学習モデルが複数回利用される場合において、比率が、どの程度一致していないかの指標となる。
第2判定部1006は、算出した比率が所定率を超えているか否かを判定する。所定率は学習モデルのサービサーsrなどによって予め定められ、記憶部1000などに記憶される。
送信部1004は、比率が所定率を超えていると判定した場合に、比率を提供者端末装置103に送信する。また、送信部1004は、算出した比率を利用者端末装置102に送信する。
ここで、記憶部1000には、複数のユーザusの各ユーザusの識別情報と、アプリの用途に応じた複数の学習モデルのうちの各ユーザusに対応する学習モデルの識別情報とを対応付けて記憶される。学習モデルの識別情報は、学習モデルID(IDentification)である。ここでユーザusの識別情報については、ユーザアカウントとも称する。ここで、ユーザアカウントは、例えば、eメールアドレスやメッセージアドレスなどが使用される。
受信部1001は、アプリを利用するいずれかのユーザusに対応する学習モデルの識別情報の通知要求を受信する。
送信部1004は、受信した通知要求に応じて、いずれかのユーザusのユーザアカウントに対応付けられた学習モデルの学習モデルIDと、いずれかのユーザusに対応する学習モデルについて算出した比率と、を通知要求の要求元の装置に送信する。
これにより、ユーザusは、使用可能な学習モデルの一覧を参照するとともに、予測精度を参照することができる。このため、ユーザusは、予測精度を基に、利用したい学習モデルを選択することができる。
モデル管理サーバ400は、記憶部1010と、受信部1011と、モデル実行部1012と、送信部1013と、を有する。記憶部1010は、例えば、ROM902、RAM903、ディスク905などの記憶装置である。受信部1011から送信部1013までの制御部の処理は、例えば、図9に示すCPU901がアクセス可能なROM902、RAM903、ディスク905などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU901が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。
記憶部1010には、学習モデルが記憶される。受信部1011は、学習モデルの識別情報と、学習モデルに与える入力データと、を受信する。学習モデルの識別情報は、例えば、学習モデルIDである。
また、本実施の形態では、利用者端末装置102および提供者端末装置103と、モデル管理サーバ400とのデータの受け渡しについては、クラウド型アプリ管理サーバ200を介して行うこととする。
受信部1001は、学習モデルによる予測要求を受け付ける。受信部1001は、例えば、予測要求を示す情報を受信する。予測要求を示す情報には、学習モデルIDと学習モデルに与える入力データとがある。送信部1004は、予測要求を示す情報をモデル管理サーバ400へ転送する。
受信部1011は、予測要求を示す情報を受信する。そして、モデル実行部1012は、予測要求を示す情報に含まれる学習モデルIDが示す学習モデルを記憶部1010から取得する。モデル実行部1012は、取得した学習モデルに、予測要求を示す情報に含まれる入力データを与えて予測情報を出力する。そして、送信部1013は、予測要求に対する予測結果をクラウド型アプリ管理サーバ200へ送信する。
受信部1001は、予測要求に対する予測結果を受信する。そして、送信部1004は、予測要求の送信元の利用者端末装置102へ受信した予測結果を送信する。また、記憶部1000は、受信部1001によって受信された予測結果を記憶する。
また、受信部1001は、実際に反映された反映データを受信する。そして、記憶部1000は、反映データを記憶させる。これにより、第1算出部1002よる不一致度の算出を行うことができる。
以上を踏まえて、クラウド型アプリが電気系のCADの場合を例に挙げて、システムにおける詳細な処理について説明する。
図11は、システムが行う処理手順例を示すフローチャートである。ここでは、電気系CADをクラウド型アプリとして利用する例である。提供者端末装置103は、モデル管理サーバ400に対してサービサーsrによって学習モデルの登録を行う(ステップS1101)。利用者端末装置102は、ユーザusによってCADを利用しつつ、CADに応じた学習モデルを利用する(ステップS1102)。
モデル管理サーバ400は、予測精度を判定する(ステップS1103)。予測精度は、上述した比率である。モデル管理サーバ400は、サービサーsrへの学習モデル分析用データを提供し(ステップS1104)、一連の処理を終了する。また、サービサーsrは、提供された学習モデル分析用データに応じて学習モデルを改善する。そして、提供者端末装置103は、ステップS1101へ戻る。
図12は、学習モデルの利用および予測精度の判定の簡単な例を示すタイミングチャートである。まず、利用者端末装置102は、使用可能予測処理の一覧を要求する(ステップS1201)。つぎに、CAD管理サーバ200は、学習モデルの情報を要求する(ステップS1202)。モデル管理サーバ400は、学習モデルの情報を送信する(ステップS1203)。つづいて、CAD管理サーバ200は、使用可能予測処理の一覧を利用者端末装置102へ送信する(ステップS1204)。
利用者端末装置102は、使用可能予測処理の一覧から、ユーザusによる予測処理の選択を受け付ける。そして、利用者端末装置102は、予測処理用データを作成する(ステップS1205)。利用者端末装置102は、予測処理入力データをCAD管理サーバ200へ送信する(ステップS1206)。
つぎに、CAD管理サーバ200は、予測処理入力データを学習モデル入力データとしてモデル管理サーバ400へ送信する(ステップS1207)。
つぎに、モデル管理サーバ400は、指定された学習モデルと入力データを使用して予測値を計算する(ステップS1208)。モデル管理サーバ400は、予測値を学習モデル出力データとしてCAD管理サーバ200へ送信する(ステップS1209)。
CAD管理サーバ200は、受信した学習モデル出力データを利用者端末装置102へ送信する(ステップS1210)。
利用者端末装置102は、ユーザusに予測値を確認させる。そして、利用者端末装置102は、ユーザusの指示に応じて予測値をそのままもしくは修正された値を設計データに反映する(ステップS1211)。利用者端末装置102は、反映された設計データ情報をCAD管理サーバ200へ送信する(ステップS1212)。
CAD管理サーバ200は、モデル管理サーバ400に対して学習モデルの予測精度判定基準を要求する(ステップS1213)。モデル管理サーバ400は、CAD管理サーバ200からの要求に応じて、予測精度判定基準を送信する(ステップS1214)。
CAD管理サーバ200は、設計データの予測値の反映個所を分析する。CAD管理サーバ200は、分析結果と予測精度判定基準とに基づいて予測精度を算出する(ステップS1215)。そして、CAD管理サーバ200は、モデル管理サーバ400に対して学習モデルのサービサーsr情報を要求する(ステップS1216)。サービサーsr情報とは、例えば、eメールやメッセージアプリなどのアドレス情報である。モデル管理サーバ400は、モデル管理サーバ400からの要求に応じて、学習モデルのサービサーsr情報を送信する(ステップS1217)。そして、CAD管理サーバ200は、学習モデルのサービサーsrに対して精度に問題のある学習モデルIDを通知する(ステップS1218)。
図13は、電気系CADの利用例を示す説明図である。ここで、クラウド型アプリの例として、電気系CADを例に挙げる。各利用者端末装置102には、CADがインストールされてある。利用者端末装置102は、利用者情報1300、CAD設定情報1301、設計データ1302、CAD利用ログ1303をCAD管理サーバ200へ送信する。CAD管理サーバ200は、利用者ごとに利用者情報1300、CAD設定情報1301、設計データ1302、CAD利用ログ1303を格納する。
そして、CAD管理サーバ200は、利用者端末装置102から情報を要求されると、CAD設定情報1301や設計データ1302などを利用者端末装置102へ送信する。
図14は、学習モデルの作成例を示す説明図である。電気系CADの用途に応じた学習モデル例について説明する。学習モデル1400は、電気系CADによって作成される設計データ1302に含まれるいずれかの項目についてのデータを予測する。予測されるデータとしては、例えば、対象装置に含まれるプリント基板の層数等が挙げられる。また、予測されるデータとしては、例えば、配線層数、配線長などであってもよく特に限定しない。
サービサーsrは、例えば、過去の設計データ1401から特徴抽出を行う。教師をプリント基板の層数とした場合に、サービサーsrは、過去の設計データ1401から部品数、ピン数、ネット数、基板サイズなどを特徴として抽出する。そして、サービサーsrは、抽出した特徴と教師とに基づいてプリント板の層数を予測する学習モデル1400を作成する。
電気系CADの用途とは、例えば、製品やテクノロジーなどが挙げられる。テクノロジーとは、製造プロセスなどが挙げられる。サービサーsrは、製品やテクノロジーごとに設計データ1302や特徴を変更することによって複数の学習モデル1400を作成することができる。図14の例では、プリント基板の層数を予測値として出力する学習モデル1400としては、サーバ用の学習モデル1400−1、ネットワーク機器用の学習モデル1400−2、スマートフォン用の学習モデル1400−3などが作成される。
図15は、CAD管理サーバが記憶するテーブル例(その1)を示す説明図である。CAD管理サーバ200は、例えば、モデル管理サーバ400を管理するための学習モデル管理サーバテーブル1500を有する。学習モデル管理サーバテーブル1500は、例えば、ディスク905などの記憶装置に記憶される。学習モデル管理サーバテーブル1500は、サーバ名、IPアドレスのフィールドを有する。学習モデル管理サーバテーブル1500は、各フィールドに情報が設定されることによりレコード(例えば、1501−1など)が記憶される。サーバ名のフィールドには、モデル管理サーバ400の名称が設定される。IPアドレスのフィールドには、モデル管理サーバ400のIPアドレスが設定される。
図16は、CAD管理サーバが記憶するテーブル例(その2)を示す説明図である。CAD管理サーバ200は、例えば、ユーザusとサービサーsrごとに認証用に割り当てたアカウントを管理するアカウントテーブル1600を有する。アカウントテーブル1600は、ディスク905などの記憶装置に記憶される。また、CAD管理サーバ200は、アカウントごとにファイル格納ディレクトリ1601をディスク905などの記憶装置に割り当てる。例えば、CAD管理サーバ200では、CAD管理サーバ200に対する認証を行うために、CADのユーザusとサービサーsrごとにアカウントが作成される。
アカウントテーブル1600は、アカウント、所属するグループ、サービサーsrフラグなどのフィールドを有する。アカウントのフィールドには、ユーザusやサービサーsrのeメールのアドレス情報などが設定される。所属するグループのフィールドには、ユーザusとサービサーsrが所属するグループが設定される。CADのユーザusやサービサーsrは、予めグループ化されてある。CADのユーザusは、例えば、設計の製品ごとにグループ化されてある場合、ユーザusがサーバの設計グループに所属している場合、所属するグループのフィールドには、「サーバ」などが設定される。
また、サービサーsrフラグのフィールドには、アカウントが示すCAD管理サーバ200のユーザusがサービサーsrであるか否かを判定する情報が設定される。アカウントが示すCAD管理サーバ200のユーザusがサービサーsrの場合に、サービサーsrフラグのフィールドには、「True」が設定される。アカウントが示すCAD管理サーバ200のユーザusがCADのユーザusの場合に、サービサーsrフラグのフィールドには、「False」が設定される。
ファイル格納ディレクトリ1601は、ディスク905などの記憶装置において、アカウントごとに各種ファイルを記憶可能な記憶領域である。ファイル格納ディレクトリ1601には、アカウントテーブル1600に設定されたアカウントに関連付けられて設計データ1302やCAD利用ログなどが記憶される。ファイル格納ディレクトリ1601の各ファイルは、アカウントごとに固有の名前が付される。
図17は、CAD管理サーバが記憶するテーブル例(その3)を示す説明図である。CAD管理サーバ200は、例えば、グループテーブル1700と所属ユーザテーブル1710とを有する。グループテーブル1700と所属ユーザテーブル1710とは、例えば、ディスク905などの記憶装置に記憶される。
まず、グループテーブル1700は、例えば、CADのユーザusをグループ化した各グループを管理するためのテーブルである。図17の例では、CADのユーザusは、例えば、製品単位でグループ化されているとする。
グループテーブル1700は、グループID、グループ名、所属ユーザテーブル1710へのリンクのフィールドを有する。グループテーブル1700は、各フィールドに情報が設定されることによりレコード(例えば、1701−1など)が記憶される。
グループIDのフィールドには、グループの識別情報が設定される。グループ名のフィールドには、グループの名称が設定される。所属ユーザテーブル1710へのリンクのフィールドには、グループに所属するユーザusのユーザアカウントを管理するテーブルの識別情報が設定される。
所属ユーザテーブル1710は、グループに所属するユーザusのユーザアカウントを管理するためのテーブルである。所属ユーザテーブル1710は、グループごとに作成される。所属ユーザテーブル1710は、ユーザアカウントのフィールドを有する。ユーザアカウントのフィールドには、グループに属するCADのユーザusのeメールアドレス情報などのユーザアカウントが設定される。
図18は、CAD管理サーバが記憶するテーブル例(その4)を示す説明図である。CAD管理サーバ200は、例えば、予測精度判定段階テーブル1800を有する。予測精度判定段階テーブル1800は、例えば、ディスク905などの記憶装置に記憶される。
まず、予測精度判定段階テーブル1800は、例えば、予測精度を判定可能なタイミングを表すテーブルである。予測精度判定段階テーブル1800は、判定段階ID、判定段階名のフィールドを有する。予測精度判定段階テーブル1800は、各フィールドに情報が設定されることによりレコード(例えば、1801−1〜1801−4など)が記憶される。判定段階IDのフィールドには、判定段階の識別情報が設定される。判定段階名のフィールドには、判定段階の名称が設定される。ここでは、サービサーsrが判定段階名を見れば、サービサーsrはどのタイミングで予測精度を判定するかを判別して指定可能な程度に判定段階名が設定される。
電気設計を例に挙げると、予測精度の判定は、設計フェーズごとに行われてもよい。設計フェーズには、論理設計を行う回路設計完了段階または実装設計開始段階や実装設計完了段階などがある。回路設計では、例えば、利用部品の選定、部品間の論理的な接続関係の決定、制約条件の既定などが行われる。実装設計では、部品配置、部品間の配線などが行われる。判定のタイミングが回路設計完了段階または実装設計開始段階の場合、判定段階名は「回路設計完了時」である。判定のタイミングが実装設計完了段階の場合、判定段階名は「実装設計完了時」である。
また、予測精度の判定は、設計データ1302において予測値に対応する特徴情報が反映された時に行われてもよい。判定のタイミングが予測値に対応する特徴情報が反映された時の場合、判定段階名は「予測値ファイル反映時」である。または、予測精度の判定は、予測値に対応する特徴情報が反映された後に設計データ1302が保存された時に行われてもよい。判定のタイミングが、特徴情報が反映された後に最初に設計データ1302が保存された時の場合、判定段階名は、「予測値ファイル反映後の1回目のファイル保存時」である。
図19は、CAD管理サーバが記憶するテーブル例(その5)を示す説明図である。CAD管理サーバ200は、モデルID管理テーブル1900を有する。モデルID管理テーブル1900は、例えば、ディスク905などの記憶装置に記憶される。
まず、モデルID管理テーブル1900は、例えば、学習モデルIDに関連するテーブルを管理するためのテーブルである。モデルID管理テーブル1900は、学習モデルID、精度、判定段階ID、対象ユーザテーブルへのリンク、対象グループテーブルへのリンク、利用履歴テーブルへのリンクのフィールドを有する。モデルID管理テーブル1900は、各フィールドに情報が設定されることによりレコード(例えば、1901−1〜1901−3など)が記憶される。
学習モデルIDのフィールドには、学習モデルの識別情報が設定される。精度のフィールドには、算出される判定精度が設定される。判定段階IDのフィールドには、学習モデルの精度を判定するタイミングを示す判定段階IDが設定される。モデルID管理テーブル1900は、判定段階IDによって予測精度判定段階テーブル1800に関連付けられてある。
対象ユーザテーブルへのリンクのフィールドには、学習モデルを利用する対象となるCADのユーザusを示す対象ユーザテーブルへのリンクが設定される。対象ユーザテーブル1910は、ユーザアカウントのフィールドを有する。対象ユーザテーブル1910は、学習モデルごとに作成される。対象ユーザテーブル1910は、例えば、ディスク905などの記憶装置に記憶される。ユーザアカウントのフィールドには、学習モデルを利用する対象となるCADのユーザusのユーザアカウントが設定される。
また、モデルID管理テーブル1900の説明に戻って、対象グループテーブル1920へのリンクのフィールドには、CADのユーザusをグループ化したグループのうちの学習モデルを利用する対象となるグループの情報が設定される。対象グループテーブル1920は、学習モデルごとに作成される。対象グループテーブル1920は、対象グループのフィールドを有する。対象グループのフィールドには、学習モデルの対象となるグループのグループ名が設定される。対象グループテーブル1920は、例えば、ディスク905などの記憶装置に記憶される。
モデルID管理テーブル1900の説明に戻って、利用履歴テーブルへのリンクは、学習モデルの利用履歴テーブルへのリンクが設定される。学習モデルの利用履歴テーブル1930は、学習モデルを利用した履歴を示すテーブルである。学習モデルの利用履歴テーブル1930は、例えば、ディスク905などの記憶装置に記憶される。
利用履歴テーブル1930は、学習モデルごとに作成される。利用履歴テーブル1930は、利用ユーザアカウント、入力データ、出力データ、設計データ名、設計データ反映個所、反映データ、予測値に問題ありかのフィールドを有する。利用履歴テーブル1930は、各フィールドに情報が設定されることによりレコード(例えば、1931−1〜1931−3など)が記憶される。
利用ユーザアカウントのフィールドには、学習モデルを利用したユーザアカウントが設定される。入力データのフィールドには、学習モデルに与えるために利用者端末装置102によって作成された入力データが設定される。出力データのフィールドには、学習モデルによって得られる予測値が設定される。設計データ名のフィールドには、学習モデルの利用対象となる設計データ1302の名称が設定される。設計データ反映個所のフィールドには、設計データ1302に含まれる各データのうちの反映された箇所を示す情報が設定される。例えば、後述する図20に示すように設計データ1302に含まれる基板データ内の基板の層数が反映された場合に、設計データ反映個所のフィールドには、「基板データ−層数」が設定される。
反映データのフィールドには、指定された反映データが設定される。反映データは、学習モデルによって得られる予測値に対する正解値となる。予測値に問題ありかのフィールドには、予測値に問題があるか否かを示す情報が設定される。予測値に問題があると判定された場合に、予測値に問題ありかのフィールドには、「True」が設定される。予測値に問題がないと判定された場合に、予測値に問題ありかのフィールドには、「False」が設定される。予測値に問題があるか否かの判定方法は後述する。
図20は、設計データ例を示す説明図である。設計データ1302は、CADによって作成されるデータであり、設計対象の装置を示すデータである。設計データ1302は、上述したように、アカウントごとのファイル格納ディレクトリ1601などに記憶される。
設計データ1302は、例えば、基板仕様データ2001、基板データ2002、基板部品データ2003、基板部品ピンデータ2004、ネットデータ2005、ビアデータ2006、ラインデータ2007、ラッツネストデータ2008、バス概略配線データ2009、禁止領域データ2010、制約条件データ2011、配線難易度の設定データ2012などを有する。
基板仕様データ2001は、例えば、基板名、設計ルールなどの項目を含む情報である。設計ルールとしては、線幅や部品間の間隙の間隔などである。
基板データ2002は、基板の層数、外形形状、基板の厚さなどの項目を含む情報である。基板部品データ2003は、部品名、部品ライブラリ名、搭載面、配置座標などの項目を含む情報である。基板部品ピンデータ2004は、部品名、部品ピン名、ネット番号、座標、層番号などの項目を含む情報である。ネットデータ2005は、ネットごとにネット番号、ネット名などの項目を含む情報である。
ビアデータ2006は、ビアごとに、ネット番号、座標、層番号の項目を含む情報である。ネット番号は、ビアが接続されるネットを示すネット番号である。座標のフィールドには、ビアの座標値が設定される。層番号のフィールドには、ビアが配置されるプリント基板の層が設定される。
ラインデータ2007は、ラインごとにネット番号、座標1、座標2、線幅、層番号などの項目を含む情報である。座標1と座標2とは、ラインの開始点の座標値とラインの終点の座標値である。ラインが向きを変えるような配線パターンの場合、ラインデータ2007は、配線パターンの折り返し点の座標値などを有していてもよい。
ラッツネストデータ2008は、ラッツネストごとにラッツネスト名、座標1、座標2、層番号などの項目を含む情報である。バス概略配線データ2009は、バス概略配線番号、バス概略配線名、ルート情報、ネット列、層番号などの項目を含む情報である。バス概略配線番号は、バス・ラインごとに、バス概略配線番号、バス概略配線名、ルート情報、ネット列、層番号などの項目を含む情報である。バス・ラインは省略してバストも称する。例えば、データバスなどであれば、8〜32本程度などのようにバスは多くの配線パターンを有する。ルート情報としては、バスの配線パターンの経路上の各点の座標値を含む。
禁止領域データ2010は、部品や配線パターンの禁止領域ごとに、禁止領域の外形の点を表す座標列、層番号などの項目を含む情報である。制約条件データ2011は、制約条件ごとに、制約条件名、制約条件内容などの項目を含む情報である。配線難易度の設定データ2012は、各配線難易度のレベルの項目を含む情報である。
図21は、モデル管理サーバに保持された学習モデル管理テーブル例を示す説明図である。学習モデル管理テーブル2100は、各学習モデルを管理する情報である。学習モデル管理テーブル2100は、モデル管理サーバ400のディスク905などの記憶装置に記憶される。
学習モデル管理テーブル2100は、学習モデルID、学習モデルパス、サービサーアカウント、利用用途、予測精度判定基準のフィールドを有する。学習モデル管理テーブル2100は、各フィールドに情報が設定されることによりレコード(例えば、2101−1〜2101−3)が記憶される。
学習モデルIDのフィールドには、学習モデルの識別情報が設定される。学習モデルパスのフィールドには、学習モデルディレクトリ2110へのリンク情報が設定される。学習モデルディレクトリ2110は、学習モデルIDに関連付けられた学習モデル1400と利用方法の情報2111とが記憶されるディスク905などの記憶装置の領域である。
サービサーアカウントのフィールドには、学習モデルのサービサーsrのアカウントが設定される。サービサーアカウントとしては、例えば、提供者端末装置103のeメールアドレス情報である。利用用途のフィールドには、学習モデル1400の利用用途が設定される。
予測精度判定基準のフィールドには、算出した予測精度によって予測値に問題があるか否かを判定するための基準値が設定される。予測精度判定基準には、「正解値との許容誤差との閾値」、「正解値とかけ離れていると判定する閾値」、「正解値との許容誤差内にない予測数/全予測数」の3つの基準値がある。
まず、「正解値との許容誤差との閾値」は、正解値と予測値との差分値が許容誤差と判定可能な範囲である。「正解値との許容誤差との閾値」は上述した第2度合である。つぎに、「正解値とかけ離れていると判定する閾値」は正解値と予測値との差分が大きいと判定可能な範囲である。「正解値とかけ離れていると判定する閾値」は上述した第1度合である。そして、「正解値との許容誤差内にない予測数/全予測数」は、正解値と予測値との差分値が第1範囲内にないと判定された予測数/全予測数の閾値である。「正解値との許容誤差内にない予測数/全予測数」は、上述した所定率である。
つぎに、図11に示した学習モデルの登録処理、学習モデルの利用処理、予測精度判定処理と、の各手順を詳細に説明する。
(学習モデルの登録処理手順)
図22は、学習モデルの登録処理手順を示すシーケンス図である。ここで、図11に示したサービサーsrによる学習モデルの登録処理手順について説明する。まず、提供者端末装置103は、Webブラウザなどを表示する。そして、提供者端末装置103は、サービサーsrの入力に応じてWebブラウザを介して認証要求を行う(ステップS2201)。ここでは、サービサーsrは、例えば、Webブラウザに対してユーザアカウントとしてeメールアドレスなどを入力する。
つぎに、CAD管理サーバ200は、認証要求に応じて認証を行う。ここでは、CAD管理サーバ200は、認証を許可して認証許可を提供者端末装置103へ通知する(ステップS2202)。つぎに、提供者端末装置103は、ユーザ一覧、グループ一覧、予測精度判定段階一覧を要求する(ステップS2203)。
CAD管理サーバ200は、提供者端末装置103からの要求を受け付けると、アカウントテーブル1600、グループテーブル1700、予測精度判定段階テーブル1800から、ユーザ一覧、グループ一覧、予測精度判定段階一覧を作成する。CAD管理サーバ200は、作成したユーザus一覧、グループ一覧、予測精度判定段階一覧を提供者端末装置103へ送信する。
提供者端末装置103は、受信したユーザ一覧、グループ一覧、予測精度判定段階一覧を表示する。そして、提供者端末装置103は、サービサーsrによる学習モデルの対象ユーザusまたはグループの選択、予測精度判定段階の選択、予測精度判定基準の入力を受け付ける(ステップS2205)。
図23は、対象者および精度判定段階の選択と精度判定基準の入力例を示す説明図である。提供者端末装置103は、ディスプレイ809などに画面2300を表示する。
画面2300には、ユーザ一覧から学習モデルのユーザアカウントを選択可能な項目を含む。画面2300には、グループ一覧から学習モデルのユーザアカウントを選択可能な項目を含む。画面2300には、予測程度判定段階一覧から学習モデルの予測精度を判定するタイミングを示す判定段階IDを選択可能な項目を含む。
また、画面2300には、「予測値との許容誤差の閾値」を入力可能な項目を含む。画面2300には、「予測値とかけ離れていると判定する閾値」を入力可能な項目を含む。画面2300には、「正解値との許容誤差内にない予測数/全予測数」を入力可能な項目を含む。
サービサーsrは、例えば、ユーザ一覧よりユーザアカウントの選択をしない。サービサーsrは、グループ一覧よりグループIDとして「2:ネットワーク」を選択する。
サービサーsrは、例えば、予測精度判定段階一覧より判定段階IDとして「2:実装設計完了時」を選択する。
サービサーsrは、「予測値との許容誤差の閾値」として「1」を入力する。すなわち、予測値と正解値との差分値が1層以内であれば、予測値は正解値と近いとする。サービサーsrは、「予測値とかけ離れていると判定する閾値」として「3」を入力する。すなわち、予測値と正解値との差分値が3層以上離れていれば、予測値は正解値からかけ離れていると判定する。サービサーsrは、「正解値との許容誤差内にない予測数/全予測数」として「0.1」を入力する。すなわち、10[%]が1層以内の予測範囲内ない場合、学習モデルの精度が疑わしいと判定される。
図22の説明に戻って、提供者端末装置103は、学習モデル、学習モデルの利用方法、選択された利用対象ユーザusまたはグループ、予測精度判定段階、予測精度判定基準をCAD管理サーバ200へ送信する(ステップS2206)。
図24は、学習モデルの利用方法の情報例を示す説明図である。ステップS2206においてCAD管理サーバ200へ送信される学習モデルの利用方法の情報2111は、例えば、利用用途、学習モデルに与える入力データの項目、出力データの項目などを示す。プリント基板の層数を予測する学習モデルの場合、利用用途は「層数予測」である。入力データの項目は「部品数、部品ピン数、ネット数、基板面積など」であり、出力データの項目は「予測層数」である。
図22の説明に戻って、CAD管理サーバ200は、学習モデル1400、学習モデルの利用方法の情報2111、サービサー情報ID、予測精度判定基準をモデル管理サーバ400へ送信する(ステップS2207)。モデル管理サーバ400は、学習モデルIDを発行して、学習モデルID、学習モデル1400、学習モデルの利用方法の情報2111、サービサーアカウント、予測精度判定基準を関連付けて保存する(ステップS2208)。
図25は、学習モデルの登録例を示す説明図である。ステップS2208において、モデル管理サーバ400は、発行された学習モデルIDに対応する学習モデルディレクトリ2110に、学習モデルIDと、学習モデル1400と、利用方法の情報2111と、を関連付けて記憶させる。
そして、モデル管理サーバ400は、学習モデルIDと、学習モデルディレクトリ2110への学習モデルパスと、サービサーアカウントと、利用用途と、予測精度判定基準と、を関連付けて、学習モデル管理テーブル2100へ記憶させる。これにより、学習モデル管理テーブル2100に新たなレコード2101−8が生成される。
図22の説明に戻って、モデル管理サーバ400は、発行した学習モデルIDをCAD管理サーバ200へ通知する(ステップS2209)。つぎに、CAD管理サーバ200は、通知された学習モデルID、受信した対象ユーザusまたはグループ、予測精度判定段階を関連付けて保存する(ステップS2210)。
図26は、モデルID管理テーブルへの登録例を示す説明図である。CAD管理サーバ200は、ステップS2209において通知された学習モデルID、ステップS2206において受信した対象ユーザusまたはグループ、予測精度判定段階を関連付けて保存する。
図22の説明に戻って、CAD管理サーバ200は、学習モデルIDを提供者端末装置103へ送信する(ステップS2211)。これにより、サービサーsrは新たに学習モデルを登録することができる。
(学習モデルの登録処理手順)
図27は、学習モデルの登録処理手順を示すシーケンス図である。ここで、図11に示したサービサーsrによる学習モデルの登録処理手順について説明する。利用者端末装置102は、eメールアドレスなどによる認証要求を行う(ステップS2701)。CAD管理サーバ200は、認証要求に応じて認証を行う。ここで、クラウド型管理サーバは、認証を許可する(ステップS2702)。
利用者端末装置102は、認証が許可されると、設計データ1302を要求する(ステップS2703)。そして、CAD管理サーバ200は、利用者端末装置102からの要求に応じて設計データ1302を送信する(ステップS2704)。これにより、ユーザusは、CADを用いて設計データ1302の編集を開始する。
利用者端末装置102は、使用可能予測処理一覧をCAD管理サーバ200へ要求する(ステップS2705)。CAD管理サーバ200は、利用者端末装置102からの要求に応じて、モデルID管理テーブル1900にリンクされた対象ユーザテーブル1910に要求ユーザusのユーザアカウントが含まれている学習モデルIDを検索する。また、CAD管理サーバ200は、モデルID管理テーブル1900にリンクされた対象グループに要求ユーザusのユーザアカウントが属するグループが含まれる学習モデルIDを検索する。そして、CAD管理サーバ200は、ユーザusまたはユーザusが属するグループの検索された学習モデルIDの利用方法の情報2111をモデル管理サーバ400へ要求する(ステップS2706)。
モデル管理サーバ400は、学習モデル管理テーブル2100から、要求された学習モデルIDに対応する利用方法の情報2111を抽出する。そして、モデル管理サーバ400は、抽出した学習モデルの利用方法の情報2111をCAD管理サーバ200へ送信する(ステップS2707)。
つぎに、CAD管理サーバ200は、検索した学習モデルIDおよび受信した学習モデルの利用方法の情報2111に基づき使用可能予測処理一覧を作成する。CAD管理サーバ200は、モデルID管理テーブル1900から、検索した学習モデルIDを含むレコード2101内に精度が設定済みの場合、使用可能予測処理一覧に含まれる学習モデルIDに精度を関連付ける。そして、CAD管理サーバ200は、作成した使用可能予測処理一覧を利用者端末装置102へ送信する(ステップS2708)。
利用者端末装置102は、ディスプレイ809によって受信した使用可能予測処理一覧を表示する。ディスプレイ809に表示される画面2700には、例えば、使用可能な学習モデルごとに、学習モデルID、利用方法の情報、および予測精度が含まれる。利用者端末装置102は、ユーザusによる使用可能予測処理一覧からの予測処理の選択を受け付ける。そして、利用者端末装置102は、編集中の設計データ1302から予測処理用の入力データを作成する(ステップS2709)。ここでは、プリント基板の層数を予測する予測処理が選択されたとする。上述したように、設計データ1302から入力データとして、部品数、部品ピン数、ネット数、基板面積などを示す情報が生成される。例えば、CADにおいて入力データの作成コマンドが作成済みであれば、利用者端末装置102は、作成コマンドの実行により入力データを作成する。また、利用者端末装置102は、入力データに不足がある場合、ユーザusに入力を促して不足の情報の入力を受け付けて入力データを作成する。
利用者端末装置102は、選択した予測処理に対応する学習モデルIDと作成した入力データとを関連付けてCAD管理サーバ200へ送信する(ステップS2710)。CAD管理サーバ200は、学習モデルIDと学習モデルの入力データとをモデル管理サーバ400へ送信する(ステップS2711)。
モデル管理サーバ400は、指定された学習モデルIDに対応する学習モデルと入力データとを使用して予測値を計算する(ステップS2712)。そして、モデル管理サーバ400は、学習モデルの出力データをCAD管理サーバ200へ送信する(ステップS2713)。
CAD管理サーバ200は、要求ユーザus、学習モデルID、学習モデルの入力データ、学習モデルの出力データを関連付けて保存する(ステップS2714)。
図28は、モデルID管理テーブルに関連した各テーブル更新例(その1)を示す説明図である。ステップS2714において、CAD管理サーバ200は、学習モデルIDに対応する利用履歴テーブル1930を参照する。そして、CAD管理サーバ200は、ユーザアカウントとして「AAA」と、入力データと、出力データとして「7」と、を関連付けて利用履歴テーブル1930に格納する。
図27の説明に戻って、CAD管理サーバ200は、学習モデルの出力データを利用者端末装置102へ送信する(ステップS2715)。そして、利用者端末装置102は、受信した学習モデルの出力データを表示する。ユーザusは、予測値を確認する。そして、利用者端末装置102は、ユーザusの入力に応じて、予測値をそのままもしくは修正して設計データ1302に反映させる(ステップS2716)。
図29は、設計データへの反映例を示す説明図である。ステップS2724において、利用者端末装置102は、予測値に基づいて入力された反映データとして「5」を設計データ1302に含まれる基板データ2002の基板の層数に設定する。
図27の説明に戻って、利用者端末装置102は、編集中の設計データ名、反映箇所、反映データを送信する(ステップS2717)。そして、CAD管理サーバ200は、編集中の設計データ名、反映箇所、反映データを、ユーザアカウント、学習モデルID、学習モデル入力データ、学習モデル出力データと関連付けて保存する(ステップS2718)。
図30は、モデルID管理テーブルに関連した各テーブル更新例(その2)を示す説明図である。ステップS2718において、CAD管理サーバ200は、学習モデルIDに対応する利用履歴テーブル1930の要求ユーザusのユーザアカウントを有するレコード1931−1について、編集中の設計データ名、設計データ反映個所、反映データを保存する。
(予測精度判定処理手順例1)
図31は、学習モデルの予測精度判定処理手順例1を示すシーケンス図である。判定処理手順例1では、予測精度を判定するタイミングが予測値ファイル反映段階の場合についての手順を説明する。
CAD管理サーバ200は、予測精度を判定するタイミングになった場合に、学習モデルIDの予測精度判定基準を要求する(ステップS3101)。モデル管理サーバ400は、予測精度判定基準を送信する(ステップS3102)。
つぎに、CAD管理サーバ200は、予測値と、反映データと、予測精度判定基準とに基づいて、予測値に問題がないか否かを判定する。そして、CAD管理サーバ200は、判定結果を各データに関連付けて保存する(ステップS3103)。
図32は、予測値の判定例を示す説明図である。CAD管理サーバ200は、出力データと反映データとの差分値が第2度合を超えるか否かを判断する。第2度合は±1である。CAD管理サーバ200は、出力データと反映データとの差分値が第2度合を超えないと判断された場合、予測値に問題がないと判断する。CAD管理サーバ200は、予測値に問題がないと判断した場合、予測値に問題がありかのフィールドに「False」を設定する。
CAD管理サーバ200は、出力データと反映データとの差分値が第2度合内であると判断された場合、予測値に問題があると判断する。CAD管理サーバ200は、予測値に問題があると判断した場合、予測値に問題がありかのフィールドに「True」を設定する。
レコード1931−1を例に挙げると、出力データが「7」であり、反映データが「6」であるため、予測値に問題がないと判断され、「False」が設定される。レコード1931−nを例に挙げると、出力データが「7」であり、反映データが「5」であるため、予測値に問題があると判断され、「True」が設定される。
また、CAD管理サーバ200は、出力データと反映データとの差分値が第2度合を超える場合に、出力データと反映データとの差分値が第1度合を超えるか否かを判断する。CAD管理サーバ200は、出力データと反映データとの差分値が第1度合を超える場合に、予測値が正解値とかけ離れていると判定する。そして、CAD管理サーバ200は、予測値が正解値とかけ離れていると判定した場合に、予測値が正確値とかけ離れていることを提供者端末装置103へ直ちに通知する。通知方法は、例えば、eメールなどが挙げられる。ここで、CAD管理サーバ200は、例えば、差分値と学習モデルIDとを関連付けてeメールなどにより提供者端末装置103へ通知する。これにより、予測値が正解値である反映データとかけ離れていることがサービサーsrへ通知される。
レコード1931−mを例に挙げると、出力データが「8」であり、反映データが「2」であるため、出力データと反映データとの差分値が第1度合を超える。このため、予測値が正解値とかけ離れていると判定され、サービサーsrへ通知される。
つぎに、図31の説明に戻って、CAD管理サーバ200は、学習モデルの予測精度を算出し、精度に問題がないか判定する(ステップS3104)。
図33は、予測精度の判定例を示す説明図である。CAD管理サーバ200は、第1範囲内にないと判断された予測数と全体の予測数とに基づいて予測精度を算出する。
図33に示すように、CAD管理サーバ200は、以下式(1)の通り予測精度を算出する。
学習モデルの予測精度=学習モデルの利用履歴テーブル1930に登録されたFalseの数/利用履歴テーブル1930に登録されたデータ数・・・式(1)
図33の例では、Falseの数が13であり、全体のデータ数が20であるため、予測精度は0.65である。CAD管理サーバ200は、算出した予測精度をモデルID管理テーブル1900へ格納する。
図33に示すように、CAD管理サーバ200は、以下の関係式(2)が成り立つときに予測精度に問題があると判定する。
規定値<1−学習モデルの予測精度・・・関係式(2)
上述したように規定値は、予測値と正解値との差分値が予測精度判定基準の第1範囲内にない予測数/全予測数についての閾値である。
図33の例では、規定値は0.1であり、予測精度が0.65であるため、CAD管理サーバ200は、学習モデルの予測精度に問題ありと判定する。
図31の説明に戻って、CAD管理サーバ200は、学習モデルの予測精度に問題があると判定された場合に、学習モデルIDを提供するサービサーsrのサービサーアカウントをモデル管理サーバ400へ要求する(ステップS3105)。
モデル管理サーバ400は、サービサーアカウントをCAD管理サーバ200へ送信する(ステップS3106)。CAD管理サーバ200は、eメールなどのアドレスであるサービサーアカウントに基づいて、精度に問題があると判定した学習モデルの学習モデルIDと、学習モデルの予測精度とを提供者端末装置103へ通知する(ステップS3107)。これにより、予測精度を判定してサービサーsrへフィードバックできる。
(予測精度判定処理手順例2)
図34は、学習モデルの予測精度判定処理手順例2を示すシーケンス図である。判定処理手順例2では、予測精度を判定するタイミングが回路または実装設計完了段階、設計データ保存段階の場合についての手順を説明する。
利用者端末装置102は、設計が完了した設計データ1302または保存した設計データ1302をCAD管理サーバ200へ送信する(ステップS3401)。CAD管理サーバ200は、アップロードされた設計データが、学習モデルの予測を利用した設計データ1302であるか否かを判定する(ステップS3402)。
図35は、学習モデルの予測を利用した設計データかの判定例を示す説明図である。ステップS3402において、CAD管理サーバ200は、ユーザusの利用ログに基づいて、アップロードされた設計データ1302の設計状況を分析する。例えば、前回の設計状況の分析時には、部品の配置に対する操作が行われていなかったが、今回の設計状況の分析時には、部品の配置に対する操作が行われていた場合に、CAD管理サーバ200は、回路設計完了/実装設計開始段階であると判定する。
そして、CAD管理サーバ200は、予測精度判定段階に達していると判定した場合に、アップロードされた設計データのユーザアカウントおよびファイル名が、学習モデルの利用ユーザアカウントおよび設計データ名に一致するか否かを判定する。
図36は、アップロードファイルの反映例を示す説明図である。CAD管理サーバ200は、アップロードされた設計データ1302のユーザアカウントおよびファイル名が、学習モデルの利用ユーザアカウントおよび設計データ名に一致すると判定した場合に、アップロードファイルの反映箇所の値を反映データとして保存する。
図34の説明に戻って、つぎのステップS3404からステップS3410については、それぞれ図31に示したステップS3101からステップS3107までの処理と同様であるため、詳細な説明を省略する。
(分析用データの提供処理手順)
図37は、学習モデルの分析用データの提供処理手順例を示すシーケンス図である。提供者端末装置103は、CAD管理サーバ200に対して認証要求を行う(ステップS3701)。ここで、サービサーsrは、CAD管理サーバ200とのデータや要求のやり取りなどについてWebブラウザを介して行う。
つぎに、CAD管理サーバ200は、認証要求に応じて認証を行う。上述したように認証はeメールアドレスやユーザIDなどのユーザアカウントによって行われる。ここでは、CAD管理サーバ200は、認証を許可する(ステップS3702)。
つぎに、提供者端末装置103は、学習モデルIDに関連して保存しているデータの送信を要求する(ステップS3703)。そして、CAD管理サーバ200は、学習モデルIDに関連して保存しているデータを提供者端末装置103へ送信する(ステップS3704)。
図38は、学習モデルIDに関連するデータ例を示す説明図である。ステップS3704において、CAD管理サーバ200は、提供者端末装置103によって送信された学習モデルIDに基づいて、モデルID管理テーブル1900から、当該学習モデルIDに対応するレコードを検索する。
例えば、学習モデルID「8」に対応するレコード−8が検出される。クラウド側アプリ管理サーバは、レコード−8に含まれる利用履歴テーブルへのリンクによって利用履歴テーブル1930を取得する。そして、ステップS3704において、CAD管理サーバ200は、取得した利用履歴テーブル1930を提供者端末装置103へ送信する。
図37の説明に戻って、提供者端末装置103は、取得した利用履歴テーブル1930を分析して学習モデルを再作成する(ステップS3705)。
(ユーザusへの通知処理手順)
図39は、学習モデル更新時のユーザへの通知処理手順例を示すシーケンス図である。提供者端末装置103は、CAD管理サーバ200に対して認証要求を行う(ステップS3901)。つぎに、CAD管理サーバ200は、認証要求に応じて認証を行う。ここでは、CAD管理サーバ200は、認証を許可する(ステップS3902)。提供者端末装置103は、更新対象の学習モデルID、更新後の学習モデルを送信する(ステップS3903)。
CAD管理サーバ200は、受信した更新対象の学習モデルIDおよび更新後の学習モデルをモデル管理サーバ400へ送信する(ステップS3904)。機械学習管理サーバは、保持している学習モデルIDの学習モデルを受信した更新後の学習モデルに置き換える(ステップS3905)。
図40は、学習モデルの更新例を示す説明図である。ステップS3905において、モデル管理サーバ400は、学習モデル管理テーブル2100から、受信した学習モデルIDに対応するレコード2101を検索する。そして、ステップS3905において、モデル管理サーバ400は、検出したレコード2101に含まれる学習モデルパスに基づいて学習モデルIDに対応するディレクトリに記憶された学習モデルを、受信した更新後の学習モデルに置き換える。
図39の説明に戻って、モデル管理サーバ400は、学習モデルの更新完了をCAD管理サーバ200へ通知する(ステップS3906)。つぎに、CAD管理サーバ200は、学習モデルの更新完了を提供者端末装置103へ通知する(ステップS3907)。CAD管理サーバ200は、更新前の学習モデル利用時において、予測値に問題があると判定された際のユーザusのユーザアカウントを探索する(ステップS3908)。そして、CAD管理サーバ200は、検出したユーザアカウントに基づいて精度に問題があった学習モデルが更新されたことを通知する(ステップS3909)。
図41は、学習モデルの更新の通知例を示す説明図である。ステップS3908において、CAD管理サーバ200は、モデルID管理テーブル1900から、更新対象の学習モデルIDに対応するレコード1901を検索する。CAD管理サーバ200は、検出したレコードに含まれる利用履歴テーブルへのリンクに基づいて利用履歴テーブル1930を参照する。
そして、CAD管理サーバ200は、学習モデルIDに対応する利用履歴テーブル1930から、予測値に問題ありかのフラグが「True」の利用ユーザアカウントを探索する。図41の例では、利用ユーザアカウント「AAA」が検出される。利用ユーザアカウントがeメールのアドレスである場合、クラウド型管理サーバは、利用ユーザアカウントに基づいて、予測精度が低かった学習モデルが更新されたことをeメールにより通知する。そして、利用者端末装置102は、学習モデルが更新されたことを表示する。
このようにして、学習モデルが更新された場合に、予測精度が低いと判定された際のユーザusに学習モデルの更新を通知することが可能となる。
図42は、クラウド型アプリが文書作成アプリの例を示す説明図である。学習モデルを利用するクラウド型アプリとしては、例えば、文書作成アプリが採用可能である。利用者端末装置102には、文書作成アプリがインストールされる。文書アプリ管理サーバは、利用者ごとに、利用者情報4201、アプリ設定情報4202と、文書ファイル4203やアプリ利用ログ4204などのアプリ編集ファイル群を保持する。
図43は、文書作成アプリの用途に応じた学習モデル例を示す説明図である。文書作成アプリ用の学習モデル4300としては、例えば、文言の変換を予測するモデルが挙げられる。文言の変換としては、例えば、入力された文字から漢字変換が挙げられる。
学習モデル4300については、文書作成アプリの用途に応じて用意される。例えば、文書作成アプリによって作成される文書は、法律文書、医学文書、IT文書などのように用途によって区別させることができる。
例えば、「ちょう」の変換候補を予測する場合、法律文書用の学習モデル4300−1であれば「庁」が予測され、医学文書用の学習モデル4300−2であれば「腸」が予測され、IT文書用の学習モデル4300−3であれば「長」が予測される。
変換候補を予測する学習モデルであれば、学習モデル4300の入力データとしては、例えば、直前の複数の入力文字などが挙げられる。
「学習モデル差分提供○で、×××の△△△は□□□」という文章の作成中に、□□□の変換候補を予測する場合、図43の例のように、「□□□」と「学習モデル差分提供○、×××、△△△」とが入力データである。例えば、「消化器内科の学会で、明日の議題はちょう」と入力された場合の「ちょう」は「腸」と変換候補が出力される。
つぎに、予測精度の判定について説明する。例えば、予測精度の判定タイミングを文書データの編集完了後とする。利用者端末装置102が文書データを文書アプリサーバにアップロードすると、クラウド型アプリ管理サーバ200は、アップロードされた文書データを分析して「入力データ」と合致する変換箇所を特定する。
クラウド型アプリ管理サーバ200は、例えば、「学習モデル差分提供○」、「×××」、「△△△」の順に「学習モデル差分提供○」、「×××」、「△△△」が記載された箇所を文書データから検索する。そして、クラウド型アプリ管理サーバ200は、検出した箇所のつぎの語句を「□□□」が変換された箇所として特定する。
クラウド型アプリ管理サーバ200は、特定した箇所と、「□□□」の変換候補の予測データと、が一致するか否かを判定する。クラウド型アプリ管理サーバ200は、予測データが「☆☆☆」であり、特定した箇所が「☆☆☆」であれば、特定した箇所と「□□□」の変換候補の予測データとが一致すると判定する。つぎに、クラウド型アプリ管理サーバ200は、予測データが「☆☆☆」であり、特定した箇所が「★★★」であれば、特定した箇所と「□□□」の変換候補の予測データとが一致しないと判定する。このようにして、クラウド型アプリ管理サーバ200は不一致度を判定して予測精度を算出することができる。予測精度の算出については、クラウド型アプリがCADの場合と同様であるため、詳細な説明を省略する。
また、CADや文書アプリ以外であってもクラウド型アプリに対して同様に学習モデルの予測精度を判定することができる。
以上説明したように、情報処理装置101は、アプリでの入力データと学習モデルとによって得られる入力データ内のデータの予測値と該データの指定値との不一致度が高い場合、不一致度を学習モデルの提供元の装置に通知する。これにより、学習モデル104のずれに関する情報を学習モデルの提供者に提供できる。したがって、提供者は不一致度に応じて学習モデルの修正を検討することができ、学習モデルの予測精度の向上を支援することができる。
また、情報処理装置101は、入力された複数のデータの各データについて算出した不一致度が第2度合を超えたと判定したデータの数と、各データの数との比率が、所定率を超えていると判定した場合に、比率を提供元の装置に送信する。これにより、精度が低い学習モデルについて学習モデルのずれに関する情報を提供者に提供できる。提供元の装置は、複数のデータにおいて学習モデルによって得られる予測値と実際の値とがずれていることを把握できる。したがって、情報処理装置101によれば、学習モデルの修正を支援することができる。
また、情報処理装置101は、算出した比率を、アプリを利用するユーザに対応する装置へ送信する。これにより、学習モデルのユーザは、学習モデルの予測値をどの程度信頼できるかの判定を行うことができる。
また、情報処理装置101は、アプリを利用するいずれかのユーザに対応する学習モデルの識別情報の通知要求の要求元に、いずれかのユーザに対応する学習モデルの識別情報と、いずれかのユーザに対応する学習モデルについて算出した比率と、を送信する。これにより、学習モデルの提供先を限定でき、提供者の意図しない学習モデルの提供を抑制できる。また、学習モデルが複数あっても、ユーザは、利用可能な学習モデルが明確になり、ユーザに適した学習モデルを利用できる。
また、情報処理装置101は、アプリがCADの場合に、設計データに含まれるいずれかの項目についての予測データと、いずれかの項目について指定されたデータと、の不一致度を算出する。これにより、設計対象の装置に含まれるプリント基板の層数などの予測値の精度の向上を図ることができる。
なお、本実施の形態で説明した学習モデル差分提供方法は、予め用意された学習モデル差分提供プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本学習モデル差分提供プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、学習モデル差分提供プログラムは、インターネット等のネットワーク810を介して配布してもよい。