(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-06-02
(45)【発行日】2023-06-12
(54)【発明の名称】ニューラルネットワーク学習過程記録システム、ニューラルネットワーク学習過程記録方法及びプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20230605BHJP
【FI】
G06N3/08
(21)【出願番号】P 2023518541
(86)(22)【出願日】2022-08-22
(86)【国際出願番号】 JP2022031508
【審査請求日】2023-03-22
【早期審査対象出願】
(73)【特許権者】
【識別番号】518236513
【氏名又は名称】connectome.design株式会社
(74)【代理人】
【識別番号】100177220
【氏名又は名称】小木 智彦
(72)【発明者】
【氏名】佐藤 聡
【審査官】多賀 実
(56)【参考文献】
【文献】中国特許出願公開第112699414(CN,A)
【文献】中国特許出願公開第112418433(CN,A)
【文献】米国特許出願公開第2020/0394470(US,A1)
【文献】中国特許出願公開第111882291(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 11/34
G06F 16/00-16/958
G06F 21/00-21/88
H04L 9/32
(57)【特許請求の範囲】
【請求項7】
ニューラルネットワークの学習の過程を、分散型台帳に記録するコンピュータに、
学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録するステップ、
学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録するステップ、
学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録するステップ、
を実行させるためのコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークの学習において、その過程を分散型台帳に記録する技術に関する。
【背景技術】
【0002】
近年、多くのAI(Artificial Intelligence)技術が注目されている。
例えば、特許文献1では、機械部品又は機械部品のアセンブリを表す3D(Three-Dimensional)モデル化オブジェクトを出力するように構成された機械学習生成モデルをトレーニングする方法が開示されている。
また、他には、特許文献2では、機械学習において、教師データの足りない希少な例に関して、教師データ不足を補う方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2022-054460号公報
【文献】特開2021-163483号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
AI技術の一例として、ニューラルネットワークが挙げられる。ニューラルネットワークは、人間の脳神経系の一部を模した数理モデルである。このようなニューラルネットワークにより、多くのAI技術が実現されている。
ニューラルネットワークを用いたAI技術において、ニューラルネットワークがどのような過程を経て学習を行い、AIとして機能するようになったかについては、記録されることが無かった。その結果、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが困難であった。
そのため、ニューラルネットワークがどのような学習の過程を経たのかを記録する技術が求められている。
しかしながら、特許文献1及び2に記載の技術では、ニューラルネットワークがどのような学習の過程を経たのかを記録することが出来なかった。
そこで、本発明者は、ニューラルネットワークで学習する過程を各フェーズに分けて記録する仕組みに着目した。
【0005】
本発明は、ニューラルネットワークがどのような学習の過程を経たのかを記録することにより、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することを可能とするニューラルネットワーク学習過程記録システム、ニューラルネットワーク学習過程記録方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、ニューラルネットワークの学習の過程を、分散型台帳に記録するニューラルネットワーク学習過程記録システムであって、
学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録する初期記録部と、
学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録する学習中記録部と、
学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録する学習後記録部と、
を備えるニューラルネットワーク学習過程記録システムを提供する。
【0007】
本発明によれば、ニューラルネットワークの学習の過程を、分散型台帳に記録するニューラルネットワーク学習過程記録システムは、学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録し、学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録し、学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録する。
【0008】
本発明は、システムのカテゴリであるが、方法及びプログラムであっても同様の作用、効果を奏する。
【発明の効果】
【0009】
本発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】ニューラルネットワーク学習過程記録システム1の概要を説明する図である。
【
図2】ニューラルネットワーク学習過程記録システム1の機能構成を示す図である。
【
図3】ニューラルネットワーク学習過程記録システム1が実行する初期記録処理のフローチャートを示す図である。
【
図4】ニューラルネットワークの構造の一例を模式的に示した図である。
【
図5】初期記録処理において、格納部100に保持されるデータの一例を示す概念図である。
【
図6】ニューラルネットワーク学習過程記録システム1が実行する学習中記録処理のフローチャートを示す図である。
【
図7】学習中記録処理において、格納部100に保持されるデータの一例を示す概念図である。
【
図8】ニューラルネットワーク学習過程記録システム1が実行する学習後記録処理のフローチャートを示す図である。
【
図9】学習後記録処理において、格納部100に保持されるデータの一例を示す概念図である。
【
図10】ニューラルネットワーク学習過程記録システム1が実行する再学習中記録処理のフローチャートを示す図である。
【
図11】ニューラルネットワーク学習過程記録システム1が実行する再学習後記録処理のフローチャートを示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本発明を実施するための形態(以下、実施形態)について詳細に説明する。以降の図においては、実施形態の説明の全体を通して同じ要素には同じ番号又は符号を付している。
【0012】
[ニューラルネットワーク学習過程記録システム1の概要]
図1は、ニューラルネットワーク学習過程記録システム1の概要を説明するための模式図である。
ニューラルネットワーク学習過程記録システム1は、サーバ機能を有するコンピュータ10が、ニューラルネットワークの学習の過程を、分散型台帳に記録する処理を実現する。
【0013】
ニューラルネットワーク学習過程記録システム1を構成する端末及び装置について説明する。
ニューラルネットワーク学習過程記録システム1は、少なくともサーバ機能を有するコンピュータ10を備えるシステムであれば良い。このコンピュータ10は、例えば、1台のコンピュータで実現されても良いし、クラウドコンピュータのように、複数のコンピュータで実現されても良い。
本明細書におけるクラウドコンピュータとは、ある特定の機能を果たす際に、任意のコンピュータをスケーラブルに用いるものや、あるシステムを実現するために複数の機能モジュールを含み、その機能を自由に組み合わせて用いるものの何れであっても良い。
本実施形態において、ニューラルネットワーク学習過程記録システム1は、コンピュータ10に加え、分散型台帳を構成する複数の格納部100、学習に必要な学習データセットや再学習に必要な再学習データセットやテストに必要なテストデータセット等の提供者が管理する提供者端末20により構成される。
ニューラルネットワーク学習過程記録システム1を構成する装置類は、あくまでも一例であり、コンピュータ10を除く各装置類については、その数、種類及び機能については、適宜変更可能である。
【0014】
ニューラルネットワーク学習過程記録システム1が、ニューラルネットワークの学習の過程を、分散型台帳に記録する際の処理ステップの概要について説明する。
【0015】
コンピュータ10は、学習前である初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、分散型台帳に記録する(ステップS1)。
コンピュータ10は、ニューラルネットワークの初期化を行い、初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを設定する。
コンピュータ10は、分散型台帳を構成する複数の格納部100に、初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、記録する。
例えば、分散型台帳がブロックチェーンであり、ブロックチェーンの末尾のブロック(第nのブロック)に新たなブロック(第n+1のブロック)を追加しようとする場合、コンピュータ10は、前ブロックのハッシュ値、追加しようとするブロックに固有のナンス値に加えて、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを含む新たなブロックをブロックチェーンに登録する。
【0016】
コンピュータ10は、学習中である学習中フェーズにおけるニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を、分散型台帳に記録する(ステップS2)。
コンピュータ10は、分散型台帳を構成する複数の格納部100に、学習中フェーズにおけるニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を、記録する。
例えば、分散型台帳がブロックチェーンであり、ブロックチェーンの末尾のブロック(第nのブロック)に新たなブロック(第n+1のブロック)を追加しようとする場合、コンピュータ10は、前ブロックのハッシュ値、追加しようとするブロックに固有のナンス値に加えて、ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を含む新たなブロックをブロックチェーンに登録する。
【0017】
コンピュータ10は、学習後である学習後フェーズにおけるニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、分散型台帳に記録する(ステップS3)。
コンピュータ10は、分散型台帳を構成する複数の格納部100に、学習後フェーズにおけるニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、記録する。
例えば、分散型台帳がブロックチェーンであり、ブロックチェーンの末尾のブロック(第nのブロック)に新たなブロック(第n+1のブロック)を追加しようとする場合、コンピュータ10は、前ブロックのハッシュ値、追加しようとするブロックに固有のナンス値に加えて、ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を含む新たなブロックをブロックチェーンに登録する。
【0018】
以上が、ニューラルネットワーク学習過程記録システム1の概要である。
本ニューラルネットワーク学習過程記録システム1によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0019】
[装置構成]
図2は、ニューラルネットワーク学習過程記録システム1の構成を示すブロック図である。ニューラルネットワーク学習過程記録システム1は、ニューラルネットワークの学習の過程を、分散型台帳に記録するシステムであり、少なくともコンピュータ10から構成される。本実施形態では、ニューラルネットワーク学習過程記録システム1は、更に、分散型台帳を構成する複数の格納部100、学習に必要な学習データセットや再学習に必要な再学習データセットやテストに必要なテストデータセット等の提供者が管理する提供者端末20を備える。
ニューラルネットワーク学習過程記録システム1は、コンピュータ10と、各格納部100、提供者端末20とが、公衆回線網等のネットワーク3を介して、データ通信可能に接続されたシステムである。
なお、ニューラルネットワーク学習過程記録システム1を構成する装置類は、あくまでも一例であり、コンピュータ10を除く各装置類については、その数、種類及び機能については、適宜変更可能である。
【0020】
コンピュータ10は、サーバ機能を有し、例えば、1台のコンピュータで実現されても良いし、クラウドコンピュータのように、複数のコンピュータで実現されても良い。
コンピュータ10は、制御部として、CPU(Central Processing
Unit)、GPU(Graphics Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備え、通信部として、他の端末や装置等と通信可能にするためのデバイス、学習前である初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、分散型台帳に記録する初期記録部11、学習中である学習中フェーズにおけるニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を、分散型台帳に記録する学習中記録部12、学習後である学習後フェーズにおけるニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、分散型台帳に記録する学習後記録部13等を備える。
コンピュータ10は、記録部として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージ部等を備える。
コンピュータ10は、処理部として、各種処理を実行する各種デバイス等を備える。
【0021】
コンピュータ10において、制御部が所定のプログラムを読み込むことにより、通信部と協働して、初期記録モジュール、学習データセット取得モジュール、学習中記録モジュール、テストデータセット取得モジュール、学習後記録モジュール、再学習データセット取得モジュール、再学習中記録モジュール、再学習後記録モジュールを実現する。
また、コンピュータ10において、制御部が所定のプログラムを読み込むことにより、記録部と協働して、学習済みモデル記録モジュール、再学習済みモデル記録モジュールを実現する。
また、コンピュータ10において、制御部が所定のプログラムを読み込むことにより、処理部と協働して、設定モジュール、学習モジュール、変換モジュール、学習完了判断モジュール、学習済みモデル生成モジュール、学習内容特定モジュール、テストモジュール、テスト結果特定モジュール、再学習モジュール、再学習完了判断モジュール、再学習済みモデル生成モジュール、再学習内容特定モジュールを実現する。
【0022】
提供者端末20は、学習に必要な学習データセットや再学習に必要な再学習データセットやテストに必要なテストデータセット等の提供者が管理する端末であり、例えば、携帯電話、スマートフォン、タブレット端末等の携帯端末やパーソナルコンピュータ等の端末である。
提供者端末20は、端末制御部として、CPU、GPU、RAM、ROM等を備え、通信部として、他の端末や装置等と通信可能にするためのデバイス等を備え、入出力部として、各種データの入出力を実行するためのデバイス等を備える。
【0023】
以下、ニューラルネットワーク学習過程記録システム1が実行する各処理について、上述した各モジュールが実行する処理と併せて説明する。
本明細書において、各モジュールは、その処理内容を、自身が有する機能として実行するものであっても良いし、所定のアプリケーションを介して実行するものであっても良い。
また、本明細書において、分散型台帳の一例として、ブロックチェーンを利用した形態について説明するが、本発明における分散型台帳は、ブロックチェーンに限られるものではない。本発明は、ブロックチェーン以外の技術に基づいた分散型台帳についても、適用可能である。
また、本発明における学習の過程は、初期フェーズ、学習中フェーズ、学習後フェーズの3つのフェーズに分けられる。また、学習の過程は、主に、初期化(初回のみ)、データ読込、結果出力、正解との差分計算、パラメータ修正値算出及びパラメータ修正の各ステップに分けられる。初期フェーズは、初期化(初回のみ)のステップである。学習中フェーズは、データ読込及び結果出力のステップである。学習後フェーズは、正解との差分計算、パラメータ修正値算出及びパラメータ修正のステップである。
【0024】
[コンピュータ10が実行する初期記録処理]
図3に基づいて、コンピュータ10が実行する初期記録処理について説明する。同図は、コンピュータ10が実行する初期記録処理のフローチャートを示す図である。本初期記録処理は、上述した学習前である初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、分散型台帳に記録する初期記録処理(ステップS1)の詳細である。
本初期記録処理は、ニューラルネットワークによる学習の過程における、初期化に相当する過程である。
【0025】
設定モジュールは、ニューラルネットワークの初期状態を設定する(ステップS10)。
設定モジュールは、ニューラルネットワークの、ノード、エッジ、重み及びパラメータを初期化し、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、設定する。
設定モジュールは、初期ノードの構成を設定する。具体的には、入力層、隠れ層及び出力層の各々における各ノードの構成を設定する。構成は、例えば、個数、サイズである。
設定モジュールは、初期エッジの構成を設定する。具体的には、設定モジュールは、入力層におけるノードと、隠れ層におけるノードとの結合状態を初期エッジの構成として設定する。また、設定モジュールは、隠れ層におけるノードと、出力層におけるノードとの結合状態を初期エッジの構成として設定する。
設定モジュールは、初期重みを設定する。具体的には、設定モジュールは、結合された各ノード間における結合の強度(各エッジの結合の強度)を設定する。
設定モジュールは、初期パラメータを設定する。具体的には、設定モジュールは、所定のノードから、この所定のノードに結合されたノードにデータを渡す際の計算方法を設定する。この計算方法は、例えば、ステップ関数、シグモイド関数である。
設定モジュールは、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、数値データ(テキストデータ)として設定する。この数値データは、例えば、32ビット倍精度実数又は整数である。
なお、設定モジュールは、数値データ(テキストデータ)以外の方法で、初期ノード、初期エッジ、初期重み及び初期パラメータを設定しても良い。例えば、設定モジュールが設定する関数は、式をプログラミング言語(テキストデータ)として設定しても良いし、テキストデータ以外の形式として設定しても良い。
【0026】
設定モジュールが設定するニューラルネットワークの初期状態について
図4に基づいて説明する。同図は、ニューラルネットワークの構造を模式的に示した図である。
同図において、ニューラルネットワーク30が示されている。
ニューラルネットワーク30は、入力層、隠れ層、出力層の各層が存在する。入力層は、ノードX1,X2,X3の3つのノードにより構成される。隠れ層は、ノードY1,Y2の3つのノードにより構成される。出力層は、ノードZ1,Z2,Z3の3つのノードにより構成される。また、エッジとして、ノード同士を接続する矢印が示されている。ニューラルネットワーク30は、矢印の方向に向かって、データの受け渡しが行われる。すなわち、データは、入力層から隠れ層に渡され、隠れ層から出力層に渡される。
入力層を構成する各ノードと、隠れ層を構成する各ノードとが、其々、結合する。具体的には、ノードX1が、ノードY1,Y2の其々に結合している。また、ノードX2が、ノードY1,Y2の其々に結合している。また、ノードX3が、ノードY1,Y2の其々に結合している。
隠れ層を構成する各ノードと、出力層を構成する各ノードとが、其々、結合する。具体的には、ノードY1が、ノードZ1,Z2,Z3の其々に結合している。また、ノードY2が、ノードZ1,Z2,Z3の其々に結合している。
各ノードの重みは、Wで示されている。W1は、ノードXと、ノードYとの間の重みである。W2は、ノードYとノードZとの間の重みである。
ノードX1とノードY1との間の重みが、W1 11である。ノードX1とノードY1との間の重みが、W1 12である。ノードX2とノードY1との間の重みが、W1 21である。ノードX2とノードY2との間の重みが、W1 22である。ノードX3とノードY1との間の重みが、W1 31である。ノードX3とノードY2との間の重みが、W1 32である。
ノードY1と、ノードZ1との間の重みが、W2 11である。ノードY1と、ノードZ2との間の重みが、W2 12である。ノードY1と、ノードZ3との間の重みが、W2 13である。ノードY2と、ノードZ1との間の重みが、W2 21である。ノードY2と、ノードZ2との間の重みが、W2 22である。ノードY2と、ノードZ3との間の重みが、W2 23である。
設定モジュールは、ノードXからノードYにデータを渡す際の初期パラメータを設定する。また、設定モジュールは、ノードYからノードZにデータを渡す際の初期パラメータを設定する。
コンピュータ10は、このニューラルネットワーク30を用いて、学習を行う。
なお、入力層、隠れ層及び出力層の構成、エッジの構成、重み、パラメータ等のニューラルネットワーク30を構成する各内容は、上述した例に限定されるものではない。ニューラルネットワーク30は、学習を行う対象に応じて、適宜設計されるものであれば良い。
【0027】
図3に戻り、初期記録処理の続きを説明する。
初期記録モジュールは、学習前である初期フェーズにおけるニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、分散型台帳に記録する(ステップS11)。
【0028】
分散型台帳を構成する複数の格納部100が記録するデータについて、
図5に基づいて説明する。
図5は、格納部100に保持されるデータの一例を示す概念図である。分散型台帳の一例として、ブロックチェーン技術が挙げられる。本実施形態では、初期記録モジュールは、上述のニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、ブロックチェーンを用いて、格納部100に記録する。
図5において、第nのブロックは、ブロックチェーンの末尾のブロックを表し、第n+1は、第nまでのブロックが登録されたブロックチェーンに対して、追加しようとしている生成中のブロックを表している。第nのブロックは、前ブロックのハッシュ値、ブロックに固有のナンス値に加えて、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを含む。
第nまでのブロックが登録されたブロックチェーンに対して、新たなブロックを追加しようとする場合、格納部100は、そのブロックのハッシュ値が特定の条件を満たすようなナンス値を求める計算を行う。格納部100は、計算結果に基づいて、前ブロックのハッシュ値、ナンス値に加えて、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを含む新たなブロックをブロックチェーンに登録する。
【0029】
初期記録モジュールは、設定したニューラルネットワークの初期状態を、分散型台帳に記録する。この時、初期記録モジュールは、設定したニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、数値データ(テキストデータ)として、分散型台帳に記録する。この数値データは、例えば、32ビット倍精度実数又は整数である。
初期記録モジュールは、第nのブロックに、前ブロックのハッシュ値、ナンス値に加えて、設定したニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを追加した第n+1の新たなブロックをブロックチェーンに追加し、追加した第n+1を含むブロックチェーンを、格納部100に記録する。すなわち、初期記録モジュールは、前ブロックのハッシュ値、ナンス値に加えて、ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを新たなブロックとしてブロックチェーンに登録する。
【0030】
以上が、初期記録処理である。
ニューラルネットワーク学習過程記録システム1は、上述した初期記録処理により設定されたニューラルネットワークを用いて、後述する処理を実行する。
【0031】
[コンピュータ10が実行する学習中記録処理]
図6に基づいて、コンピュータ10が実行する学習中記録処理について説明する。同図は、コンピュータ10が実行する学習中記録処理のフローチャートを示す図である。本学習中記録処理は、上述した学習中である学習中フェーズにおけるニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を、分散型台帳に記録する学習中記録処理(ステップS2)の詳細である。本学習中記録処理は、上述した初期記録処理により設定されたニューラルネットワークを用いる処理である。
本学習中記録処理は、ニューラルネットワークによる学習の過程における、データ読込、結果出力に相当する過程である。
【0032】
学習データセット取得モジュールは、学習データセットを取得する(ステップS20)。
学習データセットは、学習に必要なデータセットである。この学習データセットは、所定の属性を有するデータの集合である。この学習データセットには、提供者の識別子(名称、ペンネーム、ID)が含まれる。提供者の識別子は、データ毎のものであっても良いし、学習データセット全体のものであっても良い。以下の説明において、提供者の識別子は、学習データセット全体のものであるものとして説明する。
学習データセット取得モジュールは、提供者端末20から、学習データセットを取得する。学習データセット取得モジュールは、学習データセットの送信の要求を、提供者端末20に送信する。提供者端末20は、この要求に基づいて、学習データセットを、コンピュータ10に送信する。学習データセット取得モジュールは、この学習データセットを受信し、学習データセットを取得する。
なお、学習データセット取得モジュールは、提供者端末20以外の端末から学習データセットを取得しても良いし、一の提供者端末20に限らず、複数の提供者端末20から学習データセットを取得しても良いし、提供者端末20と提供者端末20以外の端末との両方から、学習データセットを取得しても良い。
また、学習データセット取得モジュールは、予め、コンピュータ10自身が記録した学習データセットを取得しても良い。
【0033】
学習モジュールは、学習データセットに基づいた学習を開始する(ステップS21)。
学習モジュールは、取得した学習データセットを読み込む。学習モジュールは、読み込んだ学習データセットに基づいて、入力層の各ノードにデータを入力値として設定する。学習モジュールは、入力層の各ノードから、隠れ層の各ノードに、各エッジの重みに基づいて重みをかけ、パラメータに基づいた処理が行われたデータを受け渡す。学習モジュールは、隠れ層の各ノードから、出力層の各ノードに、各エッジの重みに基づいて重みをかけ、パラメータに基づいた処理が行われたデータを受け渡す。学習モジュールは、出力層の各ノードに渡されたデータを出力値として設定する。学習モジュールは、この出力値に基づいて学習を行う。
学習モジュールは、例えば、勾配降下法と誤差逆伝搬法とを用いた学習を行う。
【0034】
学習モジュールが行う処理の一例について、上述した
図4に基づいて説明する。学習モジュールは、入力層のノードX1にデータを入力値として設定する。学習モジュールは、入力層のノードX1から、隠れ層のノードY1に、重みW1 11をかけ、パラメータに基づいた処理が行われたデータを受け渡す。学習モジュールは、隠れ層のノードY1から、出力層のノードZ1に、重みW2 11に基づいて重みをかけ、パラメータに基づいた処理が行われたデータを受け渡す。学習モジュールは、出力層のノードZ1に渡されたデータを出力値として設定する。学習モジュールは、この出力値に基づいて学習を行う。
学習モジュールは、他のノードについても同様の処理を行う。
【0035】
図6に戻り、学習中記録処理の続きを説明する。
変換モジュールは、学習中の学習データセットをハッシュ値に変換する(ステップS22)。
ハッシュ値は、例えば、アルファベット、記号及び数字のみを含むテキストデータである。
変換モジュールは、現在学習中の学習データセットを、所定のハッシュ関数(例えば、RIPEMD-160)に基づいて、ハッシュ値に変換する。
【0036】
学習中記録モジュールは、学習中である学習中フェーズにおけるニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び学習データセットの提供者の識別子を、分散型台帳に記録する(ステップS23)。
【0037】
分散型台帳を構成する複数の格納部100が記録するデータについて、
図7に基づいて説明する。
図7は、格納部100に保持されるデータの一例を示す概念図である。分散型台帳の一例として、ブロックチェーン技術が挙げられる。本実施形態では、学習中記録モジュールは、上述の学習データセットをハッシュ値に変換した変換値(以下、単に変換値とも称す)及び学習データセットの提供者の識別子(以下、単に提供者の識別子とも称す)を、ブロックチェーンを用いて、格納部100に記録する。
図7において、第nのブロックは、ブロックチェーンの末尾のブロックを表し、第n+1は、第nまでのブロックが登録されたブロックチェーンに対して、追加しようとしている生成中のブロックを表している。第nのブロックは、前ブロックのハッシュ値、ブロックに固有のナンス値に加えて、ニューラルネットワークの、変換値及び提供者の識別子を含む。
第nまでのブロックが登録されたブロックチェーンに対して、新たなブロックを追加しようとする場合、格納部100は、そのブロックのハッシュ値が特定の条件を満たすようなナンス値を求める計算を行う。格納部100は、計算結果に基づいて、前ブロックのハッシュ値、ナンス値に加えて、ニューラルネットワークの、変換値及び提供者の識別子を含む新たなブロックをブロックチェーンに登録する。
【0038】
学習中記録モジュールは、学習中のニューラルネットワークの、変換値及び提供者の識別子を、分散型台帳に記録する。この時、学習中記録モジュールは、学習中のニューラルネットワークの、変換値及び提供者の識別子を、テキストデータとして、分散型台帳に記録する。このテキストデータは、例えば、アルファベット、記号及び数字のみを含むものである。
学習中記録モジュールは、第nのブロックに、前ブロックのハッシュ値、ナンス値に加えて、学習中のニューラルネットワークの、変換値及び提供者の識別子を追加した第n+1の新たなブロックをブロックチェーンに追加し、追加した第n+1を含むブロックチェーンを、格納部100に記録する。すなわち、学習中記録モジュールは、前ブロックのハッシュ値、ナンス値に加えて、学習中のニューラルネットワークの、変換値及び提供者の識別子を新たなブロックとしてブロックチェーンに登録する。
【0039】
図6に戻り、学習中記録処理の続きを説明する。
学習完了判断モジュールは、学習が完了したか否かを判断する(ステップS24)。
学習完了判断モジュールは、学習データセットに含まれるデータの学習が完了したか否かを判断する。すなわち、学習完了判断モジュールは、学習データセットに含まれる全てのデータについて、出力値が得られ、得られた出力値に基づいた学習を行ったか否かを判断する。
【0040】
ステップS24において、学習完了判断モジュールが、学習を完了していないと判断した場合(ステップS24 NO)、すなわち、学習完了判断モジュールが、学習データセットに含まれる全てのデータについて、出力値が得られていないと判断した場合、学習モジュールによる学習を行い、上述したステップS22の処理を実行する。
【0041】
一方、ステップS24において、学習完了判断モジュールが、学習を完了したと判断した場合(ステップS24 YES)、すなわち、学習完了判断モジュールが、学習データセットに含まれる全てのデータについて、出力値が得られたと判断した場合、学習済みモデル生成モジュールは、学習結果に基づいた学習済みモデルを生成する(ステップS25)。
学習済みモデル生成モジュールは、学習モジュールが実行した学習の結果得られたニューラルネットワークに基づいて、学習済みモデルを生成する。
【0042】
学習済みモデル記録モジュールは、生成した学習済みモデルを記録する(ステップS26)。
【0043】
なお、コンピュータ10は、学習結果に基づいて、重み係数を調整する構成も可能である。この場合、出力層における各ノードに設定された出力値と、この出力値に対応する正解ラベルとの誤差を計算し、出力値が正解ラベルに近づくように重みW1,W2を調整する構成も可能である。
【0044】
以上が、学習中記録処理である。
ニューラルネットワーク学習過程記録システム1は、上述した学習中記録処理による学習の内容及び生成した学習済みモデルを用いて、後述する処理を実行する。
【0045】
[コンピュータ10が実行する学習後記録処理]
図8に基づいて、コンピュータ10が実行する学習後記録処理について説明する。同図は、コンピュータ10が実行する学習後記録処理のフローチャートを示す図である。本学習後記録処理は、上述した学習後である学習後フェーズにおけるニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、分散型台帳に記録する学習後記録処理(ステップS3)の詳細である。本学習後記録処理は、上述した学習中記録処理による学習の内容及び生成した学習済みモデルを用いる処理である。
本学習後記録処理は、ニューラルネットワークによる学習の過程における、正解との差分計算、パラメータ修正値算出、パラメータ修正に相当する過程である。
【0046】
学習内容特定モジュールは、学習内容を特定する(ステップS30)。
学習内容特定モジュールは、上述した学習中記録処理において行った学習内容として、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータを特定する。
学習履歴は、どの学習データセットどのような学習パラメータでどれだけの回数学習したかを示すものである。学習履歴は、一の学習データセットにおいて、ある入力データ、出力データ、各ノードの演算式、重みの組み合わせを一つのグループとして、このグループ毎に入力された順番を履歴としたものである。更に、学習履歴は、学習モジュールによる学習が行われた日時(学習データセットを学習した日時)が含まれる。
学習後ノードは、学習後のノードの構成である。具体的には、入力層、隠れ層及び出力層の各々における各ノードの構成である。
学習後エッジは、学習後のエッジの構成である。具体的には、学習後の入力層におけるノードと、学習後の隠れ層におけるノードとの結合状態である。また、学習後の隠れ層におけるノードと、学習後の出力層におけるノードとの結合状態である。
学習後重みは、学習後の重みである。具体的には、学習後の結合された各ノード間の結合の強度(各エッジの結合の強度)である。
学習後パラメータは、学習後のパラメータである。具体的には、学習後の所定のノードから、この所定のノードに結合されたノードにデータを渡す際の計算方法である。この計算方法は、例えば、ステップ関数、シグモイド関数である。
学習内容特定モジュールは、学習後のニューラルネットワークの、学習履歴を上述した内容に基づいたテキストデータとして特定する。また、学習内容特定モジュールは、学習後のニューラルネットワークの、学習後ノード、学習後エッジ、学習後重み、学習後パラメータを、数値データ(テキストデータ)として特定する。この数値データは、例えば、32ビット倍精度実数又は整数である。
なお、学習内容特定モジュールは、テキストデータ以外の方法で、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータを特定しても良い。例えば、学習内容特定モジュールが特定する関数は、式をプログラミング言語(テキストデータ)として特定しても良いし、テキストデータ以外の形式として特定しても良い。
【0047】
テストデータセット取得モジュールは、テストデータセットを取得する(ステップS31)。
テストデータセットは、生成した学習済みモデルのテストに必要なデータセットである。このテストデータセットは、所定の属性を有するデータの集合である。このテストデータセットには、提供者の識別子(名称、ペンネーム、ID)が含まれる。提供者の識別子は、データ毎のものであっても良いし、テストデータセット全体のものであっても良い。以下の説明において、提供者の識別子は、テストデータセット全体のものであるものとして説明する。
テストデータセット取得モジュールは、提供者端末20から、テストデータセットを取得する。テストデータセット取得モジュールは、テストデータセットの送信の要求を、提供者端末20に送信する。提供者端末20は、この要求に基づいて、テストデータセットを、コンピュータ10に送信する。テストデータセット取得モジュールは、このテストデータセットを受信し、テストデータセットを取得する。
なお、テストデータセット取得モジュールは、提供者端末20以外の端末からテストデータセットを取得しても良いし、一の提供者端末20に限らず、複数の提供者端末20からテストデータセットを取得しても良いし、提供者端末20と提供者端末20以外の端末との両方から、テストデータセットを取得しても良い。
また、テストデータセット取得モジュールは、予め、コンピュータ10自身が記録したテストデータセットを取得しても良い。
【0048】
テストモジュールは、学習済みモデルのテストを実行する(ステップS32)。
テストモジュールは、上述した学習中記録処理において生成した学習済みモデルを用いて、認識精度、処理速度等のテストを実行する。
テストモジュールは、生成した学習済みモデルと、テストデータセットの正解ラベルとに基づいて、上述した内容のテストを実行する。
なお、テストモジュールが実行するテストの内容は、上述した例に限定されるものではない。また、テストモジュールが実行するテストの方法は、テストデータセット以外のデータを用いても良いし、テストデータセットによらずに実行しても良い。
【0049】
テスト結果特定モジュールは、学習済みモデルのテスト結果を特定する(ステップS33)。
テスト結果特定モジュールは、学習済みモデルの認識精度、処理速度等のテスト結果を特定する。
テスト結果特定モジュールは、テスト結果を、数値データ(テキストデータ)として特定する。この数値データは、例えば、32ビット倍精度実数又は整数である。
なお、テスト結果特定モジュールは、数値データ(テキストデータ)以外の方法で、テスト結果を特定しても良い。
【0050】
変換モジュールは、テストに使用したテストデータセットをハッシュ値に変換する(ステップS34)。
ハッシュ値は、例えば、アルファベット、記号及び数字のみを含むテキストデータである。
変換モジュールは、テストに使用したテストデータセットを、所定のハッシュ関数(例えば、RIPEMD-160)に基づいて、ハッシュ値に変換する。
【0051】
学習後記録モジュールは、学習後である学習後フェーズにおけるニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、分散型台帳に記録する(ステップS35)。
【0052】
分散型台帳を構成する複数の格納部100が記録するデータについて、
図9に基づいて説明する。
図9は、格納部100に保持されるデータの一例を示す概念図である。分散型台帳の一例として、ブロックチェーン技術が挙げられる。本実施形態では、学習後記録モジュールは、上述のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果(以下、単にテスト結果とも称す)及び学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値(以下、単に変換値とも称す)を、ブロックチェーンを用いて、格納部100に記録する。
図9において、第nのブロックは、ブロックチェーンの末尾のブロックを表し、第n+1は、第nまでのブロックが登録されたブロックチェーンに対して、追加しようとしている生成中のブロックを表している。第nのブロックは、前ブロックのハッシュ値、ブロックに固有のナンス値に加えて、ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を含む。
第nまでのブロックが登録されたブロックチェーンに対して、新たなブロックを追加しようとする場合、格納部100は、そのブロックのハッシュ値が特定の条件を満たすようなナンス値を求める計算を行う。格納部100は、計算結果に基づいて、前ブロックのハッシュ値、ナンス値に加えて、ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を含む新たなブロックをブロックチェーンに登録する。
【0053】
学習後記録モジュールは、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を、分散型台帳に記録する。この時、学習後記録モジュールは、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を、テキストデータとして、分散型台帳に記録する。学習履歴は、例えば、上述した特定した内容を含むテキストデータである。学習後ノード、学習後エッジ、学習後重み、学習後パラメータ及びテスト結果のテキストデータは、例えば、32ビット倍精度実数又は整数である。変換値のテキストデータは、例えば、アルファベット、記号及び数字のみを含むものである。
学習後記録モジュールは、第nのブロックに、前ブロックのハッシュ値、ナンス値に加えて、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を追加した第n+1の新たなブロックをブロックチェーンに追加し、追加した第n+1を含むブロックチェーンを、格納部100に記録する。すなわち、学習後記録モジュールは、前ブロックのハッシュ値、ナンス値に加えて、学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び変換値を新たなブロックとしてブロックチェーンに登録する。
ここで、学習後記録モジュールは、学習履歴をブロックチェーンに記録する際、学習した順番通りに、学習履歴をブロックチェーンに登録する。また、学習後記録モジュールは、学習履歴をブロックチェーンに記録する際、学習した日時とともに、学習履歴をブロックチェーンに記録する。
【0054】
以上が、学習後記録処理である。
【0055】
[コンピュータ10が実行する再学習中記録処理]
図10に基づいて、コンピュータ10が実行する再学習中記録処理について説明する。同図は、コンピュータ10が実行する再学習中記録処理のフローチャートを示す図である。本再学習中記録処理は、上述した学習後記録処理の後に行われる処理である。
なお、上述した処理と同様の処理については、その詳細な説明は省略する。
【0056】
再学習データセット取得モジュールは、再学習データセットを取得する(ステップS40)。
再学習データセットは、再学習に必要なデータセットである。この再学習データセットは、所定の属性を有するデータの集合である。この再学習データセットには、提供者の識別子(名称、ペンネーム、ID)が含まれる。提供者の識別子は、データ毎のものであっても良いし、再学習データセット全体のものであっても良い。以下の説明において、提供者の識別子は、再学習データセット全体のものであるものとして説明する。
再学習データセット取得モジュールは、上述したステップS20の処理と同様の処理を行い、再学習データセットを取得する。
なお、コンピュータ10は、上述したステップS20の処理により取得した学習データセットを、再学習データセットとして用いる構成も可能である。この場合、コンピュータ10は、再学習データセットの取得を省略し、後述するステップS41の処理を実行すれば良い。
【0057】
再学習モジュールは、再学習データセットに基づいた再学習を開始する(ステップS41)。
再学習モジュールが行う処理は、上述したステップS21の処理の学習モジュールが行う処理と同様である。この時、再学習モジュールは、再学習データセットと、学習後ノード、学習後エッジ、学習後重み、学習後パラメータとを用いて、その処理を実行する。
【0058】
変換モジュールは、再学習中の再学習データセットをハッシュ値に変換する(ステップS42)。
変換モジュールは、上述したステップS22の処理と同様の処理を実行し、再学習中の再学習データセットをハッシュ値に変換する。
【0059】
再学習中記録モジュールは、再学習中である再学習中フェーズにおけるニューラルネットワークの、再学習データセットをハッシュ値に変換した変換値及び再学習データセットの提供者の識別子を、分散型台帳に記録する(ステップS43)。
【0060】
ステップS43において、分散型台帳を構成する複数の格納部100が記録するデータは、上述した
図7のものと略同様であって、ハッシュ値及びナンス値に加えて、再学習データセットをハッシュ値に変換した変換値及び再学習データセットの提供者の識別子であれば良い。
【0061】
再学習中記録モジュールは、上述したステップS23の処理と同様の処理を実行し、再学習中のニューラルネットワークの、再学習データセットをハッシュ値に変換した変換値及び再学習データセットの提供者の識別子を、分散型台帳に記録する。
【0062】
再学習完了判断モジュールは、再学習が完了したか否かを判断する(ステップS44)。
再学習完了判断モジュールが実行する処理は、上述したステップS24の処理と同様である。
【0063】
ステップS44において、再学習完了判断モジュールが、再学習を完了していないと判断した場合(ステップS44 NO)、すなわち、再学習完了判断モジュールが、再学習データセットに含まれる全てのデータについて、出力値が得られていないと判断した場合、再学習モジュールによる再学習を行い、上述したステップS42の処理を実行する。
【0064】
一方、ステップS44において、再学習完了判断モジュールが、再学習を完了したと判断した場合(ステップS44 YES)、すなわち、再学習完了判断モジュールが、再学習データセットに含まれる全てのデータについて、出力値が得られたと判断した場合、再学習済みモデル生成モジュールは、再学習結果に基づいた再学習済みモデルを生成する(ステップS45)。
再学習済みモデル生成モジュールが実行する処理は、上述したステップS25の処理と同様である。
なお、再学習済みモデル生成モジュールは、新たな再学習済みモデルを生成するものであっても良いし、上述したステップS25の処理において生成した学習済みモデルを再学習結果に基づいて更新するものであっても良い。
【0065】
再学習済みモデル記録モジュールは、生成した再学習済みモデルを記録する(ステップS46)。
【0066】
なお、コンピュータ10は、再学習結果に基づいて、重み係数を調整する構成も可能である。この場合、出力層における各ノードに設定された出力値と、この出力値に対応する正解ラベルとの誤差を計算し、出力値が正解ラベルに近づくように重みW1,W2を調整する構成も可能である。
【0067】
以上が、再学習中記録処理である。
ニューラルネットワーク学習過程記録システム1は、上述した再学習中記録処理による学習の内容及び生成した再学習済みモデルを用いて、後述する処理を実行する。
【0068】
[コンピュータ10が実行する再学習後記録処理]
図11に基づいて、コンピュータ10が実行する再学習後記録処理について説明する。同図は、コンピュータ10が実行する再学習後記録処理のフローチャートを示す図である。本再学習後記録処理は、上述した再学習中記録処理による再学習の内容及び生成した再学習済みモデルを用いる処理である。
なお、上述した処理と同様の処理については、その詳細な説明は省略する。
【0069】
再学習内容特定モジュールは、再学習内容を特定する(ステップS50)。
再学習内容特定モジュールは、上述した再学習中記録処理において行った再学習内容として、再学習後のニューラルネットワークの、再学習履歴、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータを特定する。
再学習履歴は、どの再学習データセットどのような再学習パラメータでどれだけの回数再学習したかを示すものである。再学習履歴は、一の学習データセットにおいて、ある入力データ、出力データ、各ノードの演算式、重みの組み合わせを一つのグループとして、このグループ毎に入力された順番を履歴としたものである。更に、再学習履歴は、再学習モジュールによる再学習が行われた日時(再学習データセットを学習した日時)が含まれる。
再学習後ノードは、再学習後のノードの構成である。具体的には、入力層、隠れ層及び出力層の各々における各ノードの構成である。
再学習後エッジは、再学習後のエッジの構成である。具体的には、再学習後の入力層におけるノードと、再学習後の隠れ層におけるノードとの結合状態である。また、再学習後の隠れ層におけるノードと、再学習後の出力層におけるノードとの結合状態である。
再学習後重みは、再学習後の重みである。具体的には、再学習後の結合された各ノード間の結合の強度(各エッジの結合の強度)である。
再学習後パラメータは、再学習後のパラメータである。具体的には、再学習後の所定のノードから、この所定のノードに結合されたノードにデータを渡す際の計算方法である。この計算方法は、例えば、ステップ関数、シグモイド関数である。
再学習内容特定モジュールは、再学習後のニューラルネットワークの、再学習履歴を上述した内容に基づいたテキストデータとして特定する。また、再学習内容特定モジュールは、再学習後のニューラルネットワークの、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータを、数値データ(テキストデータ)として特定する。この数値データは、例えば、32ビット倍精度実数又は整数である。
なお、再学習内容特定モジュールは、数値データ(テキストデータ)以外の方法で、再学習後のニューラルネットワークの、再学習履歴、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータを特定しても良い。例えば、再学習内容特定モジュールが特定する関数は、式をプログラミング言語(テキストデータ)として特定しても良いし、テキストデータ以外の形式として特定しても良い。
【0070】
テストデータセット取得モジュールは、テストデータセットを取得する(ステップS51)。
テストデータセットは、生成した再学習済みモデルのテストに必要なデータセットである。
このテストデータセットは、所定の属性を有するデータの集合である。このテストデータセットには、提供者の識別子(名称、ペンネーム、ID)が含まれる。提供者の識別子は、データ毎のものであっても良いし、テストデータセット全体のものであっても良い。以下の説明において、提供者の識別子は、テストデータセット全体のものであるものとして説明する。
テストデータセット取得モジュールが実行する処理は、上述したステップS31の処理と同様である。
なお、コンピュータ10は、上述したステップS31の処理と同様のテストデータセットを用いる構成であっても良い。この場合、コンピュータ10は、ステップS50の処理を実行後、ステップS51の処理を省略し、後述するステップS52の処理を実行すれば良い。
【0071】
テストモジュールは、再学習済みモデルのテストを実行する(ステップS52)。
テストモジュールは、上述した再学習中記録処理において生成した再学習済みモデルを用いて、認識精度、処理速度等のテストを実行する。
テストモジュールは、生成した再学習済みモデルと、テストデータセットの正解ラベルとに基づいて、上述した内容のテストを実行する。
なお、テストモジュールが実行するテストの内容は、上述した例に限定されるものではない。また、テストモジュールが実行するテストの方法は、テストデータセット以外のデータを用いても良いし、テストデータセットによらずに実行しても良い。
【0072】
テスト結果特定モジュールは、再学習済みモデルのテスト結果を特定する(ステップS52)。
テスト結果特定モジュールは、再学習済みモデルの認識精度、処理速度等のテスト結果を特定する。
テスト結果特定モジュールは、テスト結果を、数値データ(テキストデータ)として特定する。この数値データは、例えば、32ビット倍精度実数又は整数である。
なお、テスト結果特定モジュールは、数値データ(テキストデータ)以外の方法で、テスト結果を特定しても良い。
【0073】
変換モジュールは、テストに使用したテストデータセットをハッシュ値に変換する(ステップS54)。
変換モジュールが実行する処理は、上述したステップS34の処理と同様である。
【0074】
再学習後記録モジュールは、再学習後である再学習後フェーズにおけるニューラルネットワークの、再学習履歴、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータ、再学習済みモデルのテスト結果及び再学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、分散型台帳に記録する(ステップS55)。
【0075】
ステップS55において、分散型台帳を構成する複数の格納部100が記録するデータは、上述した
図9のものと略同様であって、ハッシュ値及びナンス値に加えて、再学習履歴、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータ、再学習済みモデルのテスト結果及び再学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値であれば良い。
【0076】
再学習後記録モジュールは、上述したステップS35の処理と同様の処理を実行し、再学習後のニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、テスト結果及び変換値を、分散型台帳に記録する。
【0077】
以上が、再学習後記録処理である。
【0078】
なお、実施形態において、処理毎に、異なるブロックチェーンにデータを記録する構成を例として説明しているが、全ての処理において、同一のブロックチェーンにデータを記録する構成であっても良いし、複数の処理毎に、同一のブロックチェーンにデータを記録する構成であっても良い。
【0079】
上述した各処理は、別個の処理として記載しているが、コンピュータ10は、上述した各処理の一部又は全部を組み合わせて実行する構成も可能である。また、コンピュータ10は、各処理において、説明したタイミング以外のタイミングであっても、その処理を実行する構成も可能である。
【0080】
上述した手段、機能は、コンピュータ(CPU、情報処理装置、各種端末を含む)が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、コンピュータからネットワーク経由で提供される(SaaS:ソフトウェア・アズ・ア・サービス)形態やクラウドサービスで提供されて良い。また、プログラムは、コンピュータ読取可能な記録媒体に記録された形態で提供されて良い。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記録装置又は外部記録装置に転送し記録して実行する。また、そのプログラムを、記録装置(記録媒体)に予め記録しておき、その記録装置から通信回線を介してコンピュータに提供するようにしても良い。
【0081】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【0082】
(1)ニューラルネットワークの学習の過程を、分散型台帳に記録するニューラルネットワーク学習過程記録システムであって、
学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録する初期記録部(例えば、初期記録部11、初期記録モジュール)と、
学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録する学習中記録部(例えば、学習中記録部12、学習中記録モジュール)と、
学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録する学習後記録部(例えば、学習後記録部13、学習後記録モジュール)と、
を備えるニューラルネットワーク学習過程記録システム。
【0083】
(1)の発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0084】
(2)再学習中である再学習中フェーズにおける前記ニューラルネットワークの、再学習データセットをハッシュ値に変換した変換値及び前記再学習データセットの提供者の識別子を、前記分散型台帳に記録する再学習中記録部(例えば、再学習中記録モジュール)と、
を更に備える(1)に記載のニューラルネットワーク学習過程記録システム。
【0085】
(2)の発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0086】
(3)再学習後である再学習後フェーズにおける前記ニューラルネットワークの、再学習履歴、再学習後ノード、再学習後エッジ、再学習後重み、再学習後パラメータ、再学習済みモデルのテスト結果及び前記再学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録する再学習後記録部(例えば、再学習後記録モジュール)と、
を更に備える(1)に記載のニューラルネットワーク学習過程記録システム。
【0087】
(3)の発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0088】
(4)前記学習後記録部は、前記学習履歴を前記分散型台帳に記録する際、学習した順番通りに、前記学習履歴を前記分散型台帳に記録する、
(1)に記載のニューラルネットワーク学習過程記録システム。
【0089】
(4)の発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0090】
(5)前記学習後記録部は、前記学習履歴を前記分散型台帳に記録する際、学習した日時とともに、前記学習履歴を前記分散型台帳に記録する、
(1)に記載のニューラルネットワーク学習過程記録システム。
【0091】
(5)の発明によれば、ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することが可能となる。
【0092】
(6)ニューラルネットワークの学習の過程を、分散型台帳に記録するコンピュータが実行するニューラルネットワーク学習過程記録方法であって、
学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録するステップ(例えば、ステップS11)と、
学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録するステップ(例えば、ステップS23)と、
学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録するステップ(例えば、ステップS35)と、
を備えるニューラルネットワーク学習過程記録方法。
【0093】
(7)ニューラルネットワークの学習の過程を、分散型台帳に記録するコンピュータに、
学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録するステップ(例えば、ステップS11)、
学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録するステップ(例えば、ステップS23)、
学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録するステップ(例えば、ステップS35)、
を実行させるためのコンピュータ読み取り可能なプログラム。
【符号の説明】
【0094】
1 ニューラルネットワーク学習過程記録システム
3 ネットワーク
10 コンピュータ
20 提供者端末
30 ニューラルネットワーク
100 格納部
【要約】
[課題]ニューラルネットワークがどのような学習の過程を経たのかを、人が認識することを可能とする。
[解決手段]ニューラルネットワークの学習の過程を、分散型台帳に記録するニューラルネットワーク学習過程記録システムは、学習前である初期フェーズにおける前記ニューラルネットワークの、初期ノード、初期エッジ、初期重み及び初期パラメータを、前記分散型台帳に記録し、学習中である学習中フェーズにおける前記ニューラルネットワークの、学習データセットをハッシュ値に変換した変換値及び前記学習データセットの提供者の識別子を、前記分散型台帳に記録し、学習後である学習後フェーズにおける前記ニューラルネットワークの、学習履歴、学習後ノード、学習後エッジ、学習後重み、学習後パラメータ、学習済みモデルのテスト結果及び前記学習済みモデルのテストに使用したテストデータセットをハッシュ値に変換した変換値を、前記分散型台帳に記録する。