(57)【要約】      （修正有）【課題】ニューラルネットワーク環境において、データに潜在する関係を自動的に発見し、データにおける階層関係を明らかにする。【解決手段】入力データのセットＭ１００に対してノイズＭ２００をデータノイズ部Ｍ２５０によって付加し、入力データのセットに基づいて潜在コードのセットＭ７００をエンコーダモデル及び非線形確率活性化部のセットＭ６００によって計算し、潜在コードのセットをデコーダモデルＭ８００によって複合し、再構築データのセットＭ９００を取得し、入力データのセットと、入力データのセットに対応し、エンコーダネットワークによって計算された潜在コードのセットとを用いて、分類モデルの訓練を行う。【選択図】図２
2019200551.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワーク環境において潜在因子をデータから発見する方法であって、
入力データのセットに対してノイズをデータノイズ部によって付加する工程と、
前記入力データのセットに基づいて、潜在コードのセットをエンコーダモデル及び非線形確率活性化部のセットによって計算する工程と、
前記潜在コードのセットをデコーダモデルによって複合することで、再構築データのセットを取得する工程と、
を含む潜在因子発見方法。
【請求項２】
請求項１に記載の潜在因子発見方法において、
前記入力データのセットと、前記入力データのセットに対応し、エンコーダネットワークによって計算された前記潜在コードのセットとを用いて、分類モデルの訓練を行う工程と、
を更に含む潜在因子発見方法。
【請求項３】
請求項１に記載の潜在因子発見方法において、
前記ニューラルネットワークに対して損失関数を適用し、コード損失値を取得する工程と、
前記再構築データのセットから、前記再構築データのセットの、前記入力データのセットに対する類似性を示す再構築損失値を計算する工程と、
前記再構築損失値及び前記コード損失値を用いて、総損失値を算出する工程と、
前記総損失値を低減するためのフィードバック手法を前記ニューラルネットワークに対して実行する工程と、
を更に含む潜在因子発見方法。
【請求項４】
請求項３に記載の潜在因子発見方法において、
所定のコードのセットをコード変換モデルに提供する工程と、
前記再構築データのセットを、複数の所望の特徴属性を分類するように構成された分類モデルに提供する工程と、
前記分類モデルから取得した前記総損失値を用いて、前記分類モデルの訓練を行う工程と、
前記デコーダモデルに提供されると、所望の属性を生成するように構成された属性コードのセットを前記コード変換モデルによって生成する工程と、
を更に含む潜在因子発見方法。
【請求項５】
請求項１に記載の潜在因子発見方法において、
誤分類されたデータサンプルのセットを第１の分類モデルから受信する工程と、
前記誤分類されたデータサンプルのセットに対応する潜在コードのセットを前記エンコーダモデルによって計算する工程と、
前記誤分類されたデータサンプルに対応する潜在コードのセットに基づいて、データサンプルのセットを前記デコーダモデルによって生成する工程と、
前記誤分類されたデータサンプルのセットに対応する潜在コードに基づいて生成された前記データサンプルのセットを用いて、機械学習手法を第２分類モデルに対して実行する工程と、
を更に含む潜在因子発見方法。
【請求項６】
請求項１に記載の潜在因子発見方法において、
暗号データのセットを用いて、分類モデルに対して機械学習手法を実行する工程と、
非暗号データのセットに対応する第２潜在コードのセットを、前記エンコーダモデルによって計算する工程と、
前記暗号データのセットを用いて機械学習手法を実行し、前記非暗号データのセットに対応する前記第２潜在コードのセットを計算した後、前記非暗号データのセット及び前記第２潜在コードのセットを用いて、前記分類モデルに対して微調整手法を実行する工程と、
を更に含む潜在因子発見方法。
【請求項７】
請求項１に記載の潜在因子発見方法において、
ノイズデータのセットを前記ニューラルネットワークによって受信する工程と、
前記ノイズデータのセットに基づいて、第２潜在コードのセットを前記エンコーダモデル及び前記非線形確率活性化部のセットによって計算する工程と、
前記第２潜在コードのセットを前記デコーダモデルによって複合することで、ノイズ除去データのセットを取得する工程と、
を更に含む潜在因子発見方法。
【請求項８】
請求項１に記載の潜在因子発見方法において、
第２入力データのセットを受信する工程と、
前記第２入力データのセットに基づいて、第２潜在コードのセットをエンコーダモデル及び前記非線形確率活性化部のセットによって計算する工程と、
前記第２入力データのセットに基づいて計算された前記第２潜在コードのセットに対応するラベルのセットを前記第２入力データのセットに割り当てる工程と、
を更に含む潜在因子発見方法。
【請求項９】
請求項１に記載の潜在因子発見方法において、
前記入力データのセットに基づいた前記潜在コードのセットをクライアント端末に送信する工程と、
前記デコーダモデルを用いて、前記クライアント端末によって前記入力データのセットを前記潜在コードのセットから再構築する工程と、
を更に含む潜在因子発見方法。
【請求項１０】
請求項１に記載の潜在因子発見方法において、
第１データのセットに対応する第１潜在コードのセットを受信する工程と、
第２データのセットに対応する第２潜在コードのセットを受信する工程と、
前記第１潜在コードのセットを前記第２潜在コードのセットに比較することで、前記第１データのセットが前記第２データのセットに対する類似性閾値を達成するか否かを判定する工程と、
前記第１データのセットが、前記第２データのセットに対する類似性閾値を達成すると判定した場合、前記第１データのセットと前記第２データのセットとを統合し、結合データのセットを生成する工程と、
を更に含む潜在因子発見方法。
【請求項１１】
ニューラルネットワーク環境において潜在因子をデータから発見する装置であって、
前記装置は、
コンピュータ可読のコンピュータ命令のセットを有するメモリと、
前記コンピュータ可読の命令を実行するプロセッサと、
を備え、
前記コンピュータ可読の命令は、
入力データのセットに対してノイズをデータノイズ部によって付加する工程と、
前記入力データのセットに基づいて、潜在コードのセットをエンコーダモデル及び非線形確率活性化部のセットによって計算する工程と、
前記潜在コードのセットをデコーダモデルによって複合することで、再構築データのセットを取得する工程と、
を含む潜在因子発見装置。
【請求項１２】
請求項１１に記載の潜在因子発見装置において、
前記コンピュータ可読の命令は、
前記入力データのセットと、前記入力データのセットに対応し、エンコーダネットワークによって計算された前記潜在コードのセットとを用いて、分類モデルの訓練を行う工程と、
を更に含む潜在因子発見装置。
【請求項１３】
請求項１１に記載の潜在因子発見装置において、
前記コンピュータ可読の命令は、
前記ニューラルネットワークに対して損失関数を適用し、コード損失値を取得する工程と、
前記再構築データのセットから、前記再構築データのセットの、前記入力データのセットに対する類似性を示す再構築損失値を計算する工程と、
前記再構築損失値及び前記コード損失値を用いて、総損失値を算出する工程と、
前記総損失値を低減するためのフィードバック手法を前記ニューラルネットワークに対して実行する工程と、
を更に含む潜在因子発見装置。
【請求項１４】
複数の情報源を含むネットワーク通信環境におけるデータオーケストレーションプラットフォーム管理用のコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、
プログラム命令を含み、一時的な信号ではないコンピュータ可読記憶媒体を備え、
前記プログラム命令は、
入力データのセットに対してノイズをデータノイズ部によって付加する工程と、
前記入力データのセットに基づいて、潜在コードのセットをエンコーダモデル及び非線形確率活性化部のセットによって計算する工程と、
前記潜在コードのセットをデコーダモデルによって複合することで、再構築データのセットを取得する工程と、
をプロセッサに実行させることを特徴とするコンピュータプログラム製品。
【請求項１５】
請求項１４に記載のコンピュータプログラム製品において、
前記プログラム命令は、
所定のコードのセットをコード変換モデルに提供する工程と、
前記再構築データのセットを、複数の所望の特徴属性を分類するように構成された分類モデルに提供する工程と、
前記分類モデルから取得した前記総損失値を用いて、前記分類モデルの訓練を行う工程と、
前記デコーダモデルに提供されると所望の属性を生成するように構成された属性コードのセットを前記コード変換モデルによって生成する工程と、
を更に含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク環境におけるデータから、潜在因子を発見する方法および装置に関する。
【背景技術】
【０００２】
近年、ニューラルネットワークは、様々な分野における機械学習技術を円滑に行うために活用されている。その中で、教師なし学習とは、ラベルなしデータを使用し、有意義な関係を導き出すことを目的とする機械学習の分野である。ラベルなしデータは大量に入手可能であるが、その一方、ラベル付きデータは入手が難しく、その使用にもプライバシーの懸念が伴う。また、データにラベルを付けるプロセスは主観に左右されがちであり、主観に左右されないラベルを作成するコストは高い。さらに、データ中の潜在因子は人間が解釈できない場合もあるため、データ中の潜在因子を自動的に発見することが望ましい。このような教師なし学習方法は、データにおける階層的関係を自動的にクラスタリングし、発見するために使用されてもよい。このような教師なし学習方法の一つとしては、オートエンコーダアーキテクチャを使用することが考えられる。このエンコーダモデルは、元の入力データの主要な特徴を表す潜在コードのセットを生成するために用いられる。その後、デコーダモデルはデータを再構築するために用いられる。
【０００３】
例えば、特許文献１には、「故障予測システムによって実行される、装置の故障を予測する方法であって、前記装置に関する入力データを受信する工程と、前記入力データをオートエンコーダによって次元削減し、特徴データに変換する工程と、前記特徴データを機械学習分類部に提供する」技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願  ＵＳ２０１７−０３２８１９４Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、オートエンコーダで次元削減された入力データを用いて、装置の故障を機械学習分類部によって予測する技術が開示されている。しかし、特許文献１の技術は、非線形確率活性化部を備えたノイズ除去エンコーダの使用を開示していない。また、特許文献１の技術は主に装置の故障予測に重点をおいており、他の分野への適用が制限されている。
【０００６】
また、現在の方法では、データを表すために順序付けられたコード（例えば、順序付けられた潜在コードのセット）が使用されていない。したがって、生成されたコードは分散された性質を有する。これらのコードは、分類タスクでの即時使用には効率的かもしれないが、コードに現れる位置は無作為となる。これとは対照的に、本開示は、コードに損失を課すことで、順序付けられたコードを生成する。これは、データに潜在する関係を自動的に発見し、データにおける階層関係を明らかにするために使用することが可能である。従来の方法とは対照的に、本開示では、コードを連続的な分布として扱うのではなく、カテゴリカル変数として扱うこととなる。その後、これらの変数を元の形態又は変更された形態で使用することで、所望の属性を有するデータを生成することができる。
【０００７】
また、ニューラルネットワークを用いて条件付きのデータを生成する従来の方法では、条件付きのネットワークは、ネットワーク全体と共に訓練される。このため、埋め込まれた条件が変更されると、ネットワーク全体を再び訓練することが必要となる。本開示では、変換ネットワーク及び分類ネットワークを用いることでこの問題を軽減する。 従来の方法は、ラベルなしデータにおける所望の属性の発見又は生成に使用され得るため、プライバシーの課題を部分的に緩和できるものの、機密性の高い情報を扱う場合には、これらの方法は不十分となる可能性がある。従来の方法では、データを暗号化するために準同型暗号を使用することや、多項式演算を備えたニューラルネットワークで暗号化された予測を生成することが提案されているが、暗号データをネットワークの事前訓練にのみ使用する場合には、これらの方法は有効ではない。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本開示の態様は、ニューラルネットワーク環境において潜在因子をデータから発見する方法に関する。更に、本開示の態様は、入力データのセットに対してノイズをデータノイズ部によって付加する工程と、入力データのセットに基づいて、潜在コードのセットをエンコーダモデル及び非線形確率活性化部のセットによって計算する工程と、潜在コードのセットをデコーダモデルによって復号することで、再構築データのセットを取得する工程とを含む。
【発明の効果】
【０００９】
本発明によれば、入力データのセットに対してノイズを付加し、損失を課すことで、入力データのセットを表す順序付けられたコード（すなわち、潜在コードのセット）を生成することができる。この潜在コードは、データにおける潜在的な特徴や階層関係を特定するために使用されてもよい。さらに、この潜在コードを連続的な分布として扱うのではなく、カテゴリカル変数として扱うことによって、これらの変数を元の形態又は変更された形態で使用することで、所望の属性を有するデータを生成する（すなわち、拡張データを生成する）ことができる。更に、変換モデル及び分類モデルを用いることで、ニューラルネットワーク訓練の効率化や、機密データの保障等の効果が得られる。このように、本開示の態様は、機械学習訓練の効率化、コスト削減（すなわち、金銭的なコストやコンピュータ資源の節約）、およびデータセキュリティ等の向上に繋がる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本開示の実施形態による態様を実施するためのコンピュータシステムのブロック図である。
【図２】図２は、本開示の実施形態を実施するためのニューラルネットワーク環境のシステムアーキテクチャの概略図を示す。
【図３】図３は、実施形態によるニューラルネットワーク環境において、潜在因子をデータから発見する方法のフローチャートを示す。
【図４】図４は、実施形態による、所望の属性を有するデータを生成する方法の第１フローチャートを示す。
【図５】図５は、実施形態による、所望の属性を有するデータを生成する方法の第２フローチャートを示す。
【図６】図６は、実施形態による、所望の属性を有するデータを生成する方法の第３フローチャートを示す。
【図７】図７は、ラベル付きデータとラベルなしデータが両方とも利用可能である場合に、実施形態によるニューラルネットワーク環境において潜在因子をデータから発見する方法のフローチャートを示す。
【図８】図８は、実施形態による分類モデルを訓練するための難題サンプルを生成する方法のフローチャートを示す。
【図９】図９は、機密データが利用可能である場合の、実施形態による訓練手法の第１フローチャートを示す。
【図１０】図１０は、機密データが利用可能である場合の、実施形態による訓練手法の第２フローチャートを示す。
【図１１】図１１は、本開示の一態様による具体例１を示す。
【図１２】図１２は、本開示の一態様による具体例２を示す。
【図１３】図１３は、本開示の一態様による具体例３を示す。
【図１４】図１４は、本開示の一態様による具体例４を示す。
【図１５】図１５は、本開示の一態様による具体例５を示す。
【図１６】図１６は、本開示の一態様による具体例６を示す。
【００１１】
以下、図面を参照して、本発明の実施形態について説明する。なお、本明細書に記載されている実施形態は、特許請求の範囲による発明を限定する趣旨ではない。また、実施形態に関して記載されているそれぞれの要素及びそれらの組み合わせは、本発明の態様を実施するために必ず必須ではないことを理解されたい。
【００１２】
以下の説明及び図面では、本発明の様々な態様が開示されるが、本開示の範囲から逸脱することなく、別の態様を考案することも可能である。また、本開示の主要なポイントが不明瞭とならないよう、周知の要素の詳細な説明を省略する場合がある。
【００１３】
本明細書において、「例えば」や「例」などの表現は、「一例、具体例、例示などとして挙げられる」ことを意味する。本明細書において「一例」や「例えば」などと記載されている要素は、他の要素より好ましい、又は有利であると解釈されるべきではない。同様に、「本開示の一態様」と記載されている特徴、利点、動作形態などは、本開示のすべての態様に含まれる必要はない。
【００１４】
また、本開示の多くの態様は、コンピュータデバイスの要素などによって実行される動作のシーケンスとして記述される。また、本明細書で説明される様々な動作は、特定の回路（例えば、特定用途向け集積回路（ＡＳＩＣ））、１つ又は複数のプロセッサによって実行されるプログラム命令、又はその両方の組み合わせによって実行されてもよい。更に、本明細書に記載された動作のシーケンスは、コンピュータ命令のセットとして任意のコンピュータ可読記憶媒体に保存され、実行時に当該動作シーケンスに該当する機能をプロセッサに実行させるものであってもよい。従って、本開示の様々な態様は、多数の異なる形態で具体化されてもよく、それらのすべては本件発明の技術的範囲に含まれる。
【００１５】
本開示の実施形態の態様はニューラルネットワークに関する。一般に、「ニューラルネットワーク」とは、機械学習及びパターン認識などの機能を有する計算モデルである。ニューラルネットワークは、入力データによって活性化される入力ニューロンのセットから構成される。また、ニューラルネットワークは、レイヤに編成されているニューロンのセットを含む。一般的には、ニューラルネットワークは、特徴を表す入力レイヤと、ラベル及び複数の隠れレイヤを表す出力レイヤとからなる。隣接するレイヤのニューロンは、重み付けが設定されるエッジに接続されてもよい。これらの重み付けのパラメータは、訓練段階で学習され、予測を行うために用いられてもよい。
【００１６】
ニューラルネットワークの作動中、入力データの重み付けが設定され、所定の関数によって変換された後、ニューロンの活性化が他のニューロンに移る。このプロセスは、入力データに関連する出力結果データを生成する出力ニューロンが活性化されるまで繰り返される。例えば、入力レイヤから始め、レイヤごとに計算された順方向活性化による予測を生成することができる。ニューラルネットワークの機能および出力結果データは、音声認識、手書き認識、コンピュータビジョン、自然言語処理等の分野に基づいたものであってもよい。
【００１７】
ニューラルネットワークは、様々な動作環境に移植されてもよい。例えば、クラウドコンピューティングプラットフォームによるニューラルネットワーク実装では、スケーラブルかつ効率的なニューラルネットワーク機能を提供することができる。クラウドコンピューティングプラットフォームでは、国や大陸などの幅広い地理的場所を渡ることができる。クラウドコンピューティングプラットフォームのサービスアプリケーションコンポーネント（テナントインフラ又はテナンシー）は、テナントのサービス又はアプリケーションの一部又は全体を実行するために割り当てられたノード（例えば、コンピューデバイス、処理装置、サーバーラック内のブレード等）を含んでもよい。複数のアプリケーションがノードに管理されている場合、ノードを仮想機械又は物理機械に分割することができる。仮想機械及び物理機械は、それぞれのアプリケーションを独立したコンピューティング環境で同時に実行する。これらのコンピューティング環境は、それぞれのアプリケーション特有のリソース及び／又はオペレーティングシステムを提供する。また、それぞれのアプリケーションは、複数の機能部に分割され、これらの機能部がそれぞれ別の仮想機械又は物理機械上で実行されてもよい。クラウドコンピューティングプラットフォームは、管理や運用インフラ等に加えて、高度な機械学習アルゴリズムを都合よく提供するニューラルネットワーク機械学習の実装をサポートすることができる。本明細書で記載される実施形態では、他の動作環境も企図される。
【００１８】
ニューラルネットワークによるクラウドコンピューティングプラットフォームの機械学習では、訓練されたニューラルネットワークをクラウドコンピューティングプラットフォームコンポーネントに実装し、ニューラルネットワーク計算を実行することができる。ニューラルネットワークの計算は、特に、ユーザ入力データに基づいた予測を行うために実行されてもよい。動作中、ユーザは、データをクラウドコンピューティングプラットフォームにアップロードし、クラウドコンピューティングプラットフォームコンポーネントにデータへの完全なアクセスを許可することができる。ニューラルネットワークの計算は、平文データ、すなわち暗号化されていないデータで訓練されたニューラルネットワークモデルを使用して実行されてもよい。具体的には、ニューラルネットワークモデルは、平文データ、すなわち暗号化されていないデータで訓練され、ユーザのクエリデータに基づいて予測を行うことができる。
【００１９】
データの規則遵守、セキュリティ、及びプライバシーの制限によっては、ニューラルネットワーク計算を実行する前に、データの暗号化が必要になる場合がある。一例として、医療記録、財産データ、財務データ、個人識別情報（Personally Identifiable Information (PII)）データ、および政府文書は、機械学習演算のユーザーデータに対する使用性を制限する規制が関連付けられている場合がある。暗号データは、許可された関係者のみが閲覧できるように符号されている点において、暗号化されていないデータと異なる。データが暗号化されると、データの内容へのアクセスは傍受者に拒否される。したがって、ニューラルネットワークモデルは暗号データに対する計算を実行するように構成されておらず、このため、従来のニューラルネットワークモデルでは、暗号データに対するニューラルネットワーク計算を対応しない。
【００２０】
本開示は、ディープラーニングを用いて、データの潜在因子を発見する方法及びシステムに関する。ラベルなしデータを用いる従来の方法では、分散埋め込みが生成されるが、潜在コード内の要素が変更されると、予測不可能な再構築結果につながる場合がある。一方、本発明では、オートエンコーダアーキテクチャにおいて確率部を使用し、隠れ状態コード長損失を課すことでデータの変動に関する重要な因子を発見することができる。ラベルなしデータを使用すると、データの潜在的な因子が生成され、データの階層関係が明らかになる。これは、重み付けが設定されていないL1スパース性罰則がデータ内の順序付け階層関係を発見しない点において、コードに対する単純なL1ノルム（Least Absolute Deviations）罰則とは異なる。また、デコーダモデルと共に、変換モデルおよび分類部を使用することによって、結果として得られるモデルは、所望の属性を有するデータを生成するために使用することができる。このようなモデルを使用することで、予め決定されたコードを、デコーダの出力において、求められる属性を生成するコードに変換することができる。
【００２１】
データに対するプライバシー課題が厳しい場合の対処法として、本開示の態様では、多項式演算から構成されるニューラルネットワークにおいて準同型暗号化を使用することで、モデルの事前訓練を行う。また、予測に関しては、暗号データがシステムに供給され、モデルからの出力も暗号データである。本開示では、暗号データは事前訓練のためだけに使用され、暗号化されていないデータは予測のために使用され、暗号化されていないデータを出力として生成する。これは、ネットワークへの配備時・展開時に、入力データが暗号化されず、出力も暗号化されない点において従来の方法と異なる。一方、暗号データは、ネットワークの事前訓練のためだけに使用され、ネットワークの微調整は公開データで行われる。
【００２２】
次に、図面を参照すると、図１は、本開示の実施形態による態様を実施するためのコンピュータシステム３００のブロック図である。本明細書で開示される様々な実施形態の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピュータシステム３００の主要コンポーネントは、１つ以上のプロセッサ３０２、メモリ３０４、端末インターフェース３１２、ストレージインターフェース３１４、Ｉ／Ｏ（入出力）デバイスインターフェース３１６、及びネットワークインターフェース３１８を含む。これらのコンポーネントは、メモリバス３０６、Ｉ／Ｏバス３０８、バスインターフェースユニット３０９、及びＩ／Ｏバスインターフェースユニット３１０を介して、相互的に接続されてもよい。
【００２３】
コンピュータシステム３００は、プロセッサ３０２と総称される１つ又は複数の汎用プログラマブル中央処理装置（ＣＰＵ）３０２Ａ及び３０２Ｂを含んでもよい。ある実施形態では、コンピュータシステム３００は複数のプロセッサを備えてもよく、また別の実施形態では、コンピュータシステム３００は単一のＣＰＵシステムであってもよい。各プロセッサ３０２は、メモリ３０４に格納された命令を実行し、オンボードキャッシュを含んでもよい。
【００２４】
ある実施形態では、メモリ３０４は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体（揮発性又は不揮発性のいずれか）を含んでもよい。ある実施形態では、メモリ３０４は、コンピュータシステム３００の仮想メモリ全体を表しており、ネットワークを介してコンピュータシステム３００に接続された他のコンピュータシステムの仮想メモリを含んでもよい。メモリ３０４は、概念的には単一のものとみなされてもよいが、他の実施形態では、このメモリ３０４は、キャッシュおよび他のメモリデバイスの階層など、より複雑な構成となる場合がある。例えば、メモリは複数のレベルのキャッシュとして存在し、これらのキャッシュは機能毎に分割されてもよい。その結果、１つのキャッシュは命令を保持し、他のキャッシュはプロセッサによって使用される非命令データを保持する構成であってもよい。メモリは、いわゆるＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コンピュータアーキテクチャのように、分散され、種々の異なるＣＰＵに関連付けられてもよい。
【００２５】
メモリ３０４は、本明細書で説明する機能を実施するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ３０４は、潜在因子特定アプリケーション３５０を格納していてもよい。ある実施形態では、潜在因子特定アプリケーション３５０は、後述する機能をプロセッサ３０２上で実行する命令又は記述を含んでもよく、あるいは別の命令又は記述によって解釈される命令又は記述を含んでもよい。ある実施形態では、潜在因子特定アプリケーション３５０は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実施されてもよい。ある実施形態では、潜在因子特定アプリケーション３５０は、命令又は記述以外のデータを含んでもよい。ある実施形態では、カメラ、センサ、または他のデータ入力デバイス（図示せず）が、バスインターフェースユニット３０９、プロセッサ３０２、またはコンピュータシステム３００の他のハードウェアと直接通信するように提供されてもよい。このような構成では、プロセッサ３０２がメモリ３０４及び潜在因子識別アプリケーションにアクセスする必要性が低減する可能性がある。
【００２６】
コンピュータシステム３００は、プロセッサ３０２、メモリ３０４、表示システム３２４、及びＩ／Ｏバスインターフェースユニット３１０間の通信を行うバスインターフェースユニット３０９を含んでもよい。Ｉ／Ｏバスインターフェースユニット３１０は、様々なＩ／Ｏユニットとの間でデータを転送するためのＩ／Ｏバス３０８と連結していてもよい。Ｉ／Ｏバスインターフェースユニット３１０は、Ｉ／Ｏバス３０８を介して、Ｉ／Ｏプロセッサ（ＩＯＰ）又はＩ／Ｏアダプタ（ＩＯＡ）としても知られる複数のＩ／Ｏインターフェースユニット３１２，３１４，３１６、及び３１８と通信してもよい。表示システム３２４は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置３２６に提供することができる。また、コンピュータシステム３００は、データを収集し、プロセッサ３０２に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。例えば、コンピュータシステム３００は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示メモリは、ビデオデータをバッファするための専用メモリであってもよい。表示システム３２４は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置３２６に接続されてもよい。ある実施形態では、表示装置３２６は、オーディオをレンダリングするためスピーカを含んでもよい。あるいは、オーディオをレンダリングするためのスピーカは、Ｉ／Ｏインターフェースユニットと接続されてもよい。他の実施形態では、表示システム３２４が提供する機能は、プロセッサ３０２を含む集積回路によって実現されてもよい。同様に、バスインターフェースユニット３０９が提供する機能は、プロセッサ３０２を含む集積回路によって実現されてもよい。
【００２７】
Ｉ／Ｏインターフェースユニットは、様々なストレージ又はＩ／Ｏデバイスと通信する機能を備える。例えば、端末インターフェースユニット３１２は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザＩ／Ｏデバイス３２０の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザＩ／Ｏデバイス３２０及びコンピュータシステム３００に対して入力データや指示を入力し、コンピュータシステム３００からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザＩ／Ｏデバイス３２０を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
【００２８】
ストレージインターフェース３１４は、１つ又は複数のディスクドライブや直接アクセスストレージ装置３２２（通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい）の取り付けが可能である。ある実施形態では、ストレージ装置３２２は、任意の二次記憶装置として実装されてもよい。メモリ３０４の内容は、記憶装置３２２に記憶され、必要に応じて記憶装置３２２から読み出されてもよい。Ｉ／Ｏデバイスインターフェース３１６は、プリンタ、ファックスマシン等の他のＩ／Ｏデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース３１８は、コンピュータシステム３００と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク３３０であってもよい。
【００２９】
図１に示されるコンピュータシステム３００は、プロセッサ３０２、メモリ３０４、バスインタフェース３０９、表示システム３２４、及びＩ／Ｏバスインターフェースユニット３１０の間の直接通信経路を提供するバス構造を備えているが、他の実施形態では、コンピュータシステム３００は、階層構成、スター構成、又はウェブ構成のポイントツーポイントリンク、複数の階層バス、平行又は冗長の通信経路を含んでもよい。さらに、Ｉ／Ｏバスインターフェースユニット３１０及びＩ／Ｏバス３０８が単一のユニットとして示されているが、実際には、コンピュータシステム３００は複数のＩ／Ｏバスインターフェースユニット３１０又は複数のＩ／Ｏバス３０８を備えてもよい。また、Ｉ／Ｏバス308を様々なＩ／Ｏデバイスに繋がる各種通信経路から分離するための複数のＩ／Ｏインターフェースユニットが示されているが、他の実施形態では、Ｉ／Ｏデバイスの一部または全部が、１つのシステムＩ／Ｏバスに直接接続されてもよい。
【００３０】
ある実施形態では、コンピュータシステム３００は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピュータシステム（クライアント）からの要求を受信するデバイスであってもよい。他の実施形態では、コンピュータシステム３００は、デスクトップコンピュータ、携帯型コンピュータ、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
【００３１】
図２は、本開示の実施形態を実施するためのニューラルネットワーク環境のシステムアーキテクチャＭ１０００の概略図を示す。図２に示すように、システムアーキテクチャＭ１０００は、入力データＭ１００のセット、ノイズＭ２００、ノイズ部Ｍ２５０、ノイズデータのセット（例えば、ノイズが付加された入力データＭ１００のセット）Ｍ３００、エンコーダモデルＭ４００、事前確率的レイヤＭ５００、非線確率形活性化部のセットＭ６００、潜在コードのセットＭ７００、デコーダモデルＭ８００、再構築データのセットＭ９００、およびフィードバック手法Ｍ１１００を含む。ある実施形態では、システムアーキテクチャＭ１０００は、後述する変換モデルおよび分類モデルをさらに含むことができる。ニューラルネットワーク環境は、埋め込み（すなわち、潜在コードのセット）に対する加重コード長損失と、出力に対する再構築損失（すなわち、再構築データのセット）との組み合わせで訓練される。加重コード長損失は、重み付けで重要度の階層的順序を生成する。なお、アーキテクチャに対する制約などは課されない。
【００３２】
ある実施形態では、図２に示すように、ノイズ部２５０は、入力データのセットＭ１００に対してノイズを付加してもよい。一般に、「付加する」との表現は、入力データのセットＭ１００に対してノイズを適用したり、挿入したり、増強したり、添加したりすることを含む。このノイズは、歪曲、破損、又は入力データのセットＭ１００の特徴を不明瞭にする他の無意味なデータであってもよい。入力データのセットＭ１００に付加されるノイズの種類は、入力データのセットＭ１００の性質によって選択されてもよい。例えば、画像データの場合、ノイズを付加する処理は画素の色を反転させることを含むが、オーディオデータの場合、ノイズを付加する処理はオーディオ信号の波形を変更することを含んでもよい。ノイズの分布は分散型または連続型のいずれかでもよく、付加するノイズの量を除いて、分布の性質に関する制約は特にない。付加するノイズの量は、プライバシー制約および/または再構築データのセットの所望の品質によって決定されてもよい。ここでは、ラベルなしデータのセットＡ１００に対してノイズを付加することで、このデータの多様体の特定を円滑にすることができる。入力データのセットＭ１００にノイズを付加する他の方法も可能である。
【００３３】
ある実施形態では、潜在コードのセットＭ７００は、入力データのセットＭ１００に基づいて、エンコーダモデルＭ４００及び非線形確率活性化部のセットＭ６００によって計算されてもよい。ある実施形態では、エンコーダモデルＭ４００は、線形ニューラルネットワークレイヤ、畳み込みレイヤ、反復レイヤ、または自己回帰レイヤを含んでもよい。一般に、「計算する」との表現は、潜在コードのセットＭ７００を演算したり、生成したり、作成したり、当てはめたり、適用したり、または導出したりすることを含む。ここで、潜在コードのセットとは、あるデータセットの特徴を表す英数字の配列またはそれ以外の表現である。ある実施形態では、潜在コードのセットは、入力データのセットに比べて次元削減されてもよい。更に、ある実施形態では、潜在コードのセットは、入力データのセットが次元的に削減されたバイナリ表現であってもよい。一例として、図２に示すように、画像の潜在コードのセットは、「1011」と表してもよく、この場合には、それぞれの数字は画像のそれぞれの態様（例えば、形状、色、サイズ）を示す。ある実施形態では、潜在コードのセットＭ７００を計算する処理は、非線形確率活性化部のセットを用いて、エンコーダモデルＭ４００から得られた出力に対して加重損失を課すことで、データにおける階層関係を表す埋め込み（すなわち、潜在コード）を取得することを含む。言い換えれば、この処理は、順序付け制約を有するデータの最小エネルギー表現を学習することに対応する。ここで、コードはカテゴリカル変数であり、非線形確率活性化部はエンコーダモジュールにおいて使用される。
【００３４】
エンコーダモデルＭ４００への入力は、以下の式１で求められる。
【数１】
2019200551.tif 000003
式１において、「Xc」はエンコーダモデルＭ４００への入力、「X」はデータへの入力、「η」はノイズ、「・」は入力にノイズを付加する演算である。
【００３５】
訓練時にコードに課される損失は、以下の式２で求められる。
【数２】
2019200551.tif 000004
式２において、エンコーダモデルＭ４００の出力は「h」、「Lcode」は訓練時にコードに課される損失を表し、<c、h>は「c」と「h」の内積を表し、「c」はコードと同じ次元の重み付けのベクトルである。この損失関数は、罰則係数（Penalty  Coefficients）を有する潜在コードＭ７００の内積によって得られるため、罰則係数が階層構造を形成する。
【００３６】
使用される罰則係数の例は、以下の式３で求められる。
【数３】
2019200551.tif 000005
式３において、「i」はコード内の順序位置であり、「d」はカテゴリカル分布に依存する値である。例えば、バイナリコードの場合には、「d=2」を選択してもよい。これにより、ノイズのない元データからの偏差に応じて罰則を課する損失関数を用いることで、データを再構築することができる。
【００３７】
ある実施形態では、再構築データのセットＭ９００は、潜在コードのセットＭ７００をデコーダモデルＭ８００によって復号することで取得される。一般に、「取得する」との表現は、潜在コードのセットＭ７００をデコーダモデルＭ８００で復号することによって、再構築データのセットを作成したり、入手したり、作り出したり、再構成したり、または生成したりすることを含む。デコーダモデルＭ８００は、例えば、フィードフォワード、畳み込み、スキップ接続、非線形活性化部を有する反復または自己回帰レイヤ等を含んでもよい。一例として、デコーダモデルＭ８００は、クライアント端末（例えば、スマートフォン、ノートパソコン）上でホストされてもよい。これにより、潜在コードのセットは、クライアント端末上のデコーダモデルＭ８００によって再構築されてもよい。潜在コードのセットＭ７００を復号するためには、デコーダモデルＭ８００を用いて再構築データのセットＭ９００を得る方法以外の方法も可能である。
【００３８】
上述したように、ノイズのない元データからの偏差に応じて罰則を課す損失関数を用いてデータに対して損失を課すことで、データにおける階層関係を表す埋め込み（すなわち、潜在コード）を取得することができる。総損失は、以下の式４で求められる。
【数４】
2019200551.tif 000006
式４に示すように、総損失は、「λLcode（c、h）」で表される潜在コードの生成による損失と、データの再構築による再構築損失「Lreconstruction（X、Xreconstructed）」とから構成される。ここで、「X」は、入力データＭ１１のセットを表し、「Xr」は再構築データのセットＭ９００を表す。式４に示すように、「Ltotal」は、コード損失と再構築損失の和を表す。
【００３９】
ある実施形態では、フィードバック手法Ｍ１１００を使用してモデルを訓練することで、総損失をさらに低減することができる。フィードバック手法Ｍ１１００の例として、バックプロパゲーション手法、進化アルゴリズムなどが挙げられる。訓練後に得られた埋め込みは、データの潜在因子に対応する。別の例として、ある実施形態では、本開示の態様は、式４で表される総損失に、補助損失項を加えることに関する。したがって、これは、以下の式５によって示される。
【数５】
2019200551.tif 000007
ここで、Lauxの項は、主な目的である最適化を補助するために、モデルの重み付けに対する準勾配損失および正則化損失を含んでもよい。このように、入力データに損失関数を課すことによって潜在コードを生成することで、機械学習の訓練効率を向上することができる。
【００４０】
図３は、実施形態によるニューラルネットワーク環境におけるデータから潜在因子を発見するための方法Ａ１０００のフローチャートを示す。図３の方法Ａ１０００は、ラベルなしデータに対して実行することで潜在的な因子を導出するために用いられてもよい。ある実施形態では、方法Ａ１０００は、訓練段階および推論段階を含むことができる。訓練段階では、ニューラルネットワーク（例えば、図２に示されるニューラルネットワーク）は、エンコーダモデルによって生成された潜在コードのセットから、再構築データのセットを生成するように訓練されてもよい。推論段階では、データから階層関係を抽出することができる。
【００４１】
ラベルなしデータのセット（例えば、入力データのセット）Ａ１００が、モデル（例えば、図２に示されるニューラルネットワーク）に入力される。入力データのセットＡ１００は、潜在コードが生成されるデータのセットを表す。次に、上述したように、ブロックＡ２００では、ノイズがラベルなしデータのセットに対して付加される。ノイズ分布と、データとのノイズ合成の演算は特に制約はなく、自由に選択されてもよい。付加されるノイズの量は、実際のサンプルが目標の多様体/分布から逸脱する度合いに応じて決定されてもよい。例えば、実際のサンプルのセットが数字を示す画像である場合、データセット内の数字が一貫して変化が少ない表示であれば、少量のノイズで十分かもしれない。一方、数字の描写にばらつきの度合いが高い場合（例えば、いくつかの数字が定型フォントで書かれ、いくつかがブロック書体で書かれている）には、データセットの基本的な多様体を発見するためにより多くのノイズを付加することが望ましい。なお、データセットの再構築の品質は、潜在コードに対して使用が許可されるビットの数によって異なる（例えば、ビットの数が多いほど、再構築の品質が高くなる）。
【００４２】
ブロックＡ３００では、エンコーダモデルを用いて、ノイズデータがエンコードされる。エンコーダモデルは、ニューラルネットワークモデルであり、線形ニューラルネットワークレイヤ、畳み込みレイヤ、スキップ接続、反復レイヤ、または自己回帰レイヤ等を含むことができるが、これに限定されず、他のタイプのエンコーダモデルであってもよい。ある実施形態では、モデルは非線形確率活性化部を含み、これらの非線形確率活性化部は、潜在コードＡ４００のセットをカテゴリカル変数として生成するように構成される。
【００４３】
エンコーダモデルおよび非線形確率活性化部のセットによって生成された潜在コードは、入力データのセットを再構築するために使用されてもよい。上述したように、訓練段階では、コード損失Lcodeがネットワークに課される。この損失関数は、罰則係数が階層構造となるように、潜在コード「h」と罰則係数「c」の内積をとることによって得られる。コード損失は、以下の式６によって求められる。
【数６】
2019200551.tif 000008
この計算で使用される罰則係数の例は、以下の式７によって示される。
【数７】
2019200551.tif 000009
ここで、「i」はコード内の順序位置であり、「d」はカテゴリカル分布に依存する値である。例えば、バイナリコードの場合には、「d=2」を選択してもよい。
【００４４】
ブロックＡ４００では、デコーダモデルは、潜在コードＡ４００のセットから、再構築データＡ６００のセットを生成することができる。例えば、入力データのセットが画像である場合、デコーダモデルは、ノイズのない入力画像のバージョンを再構築することができる。上述したように、ある実施形態では、デコーダモデルは、フィードフォワード、畳み込み、スキップ接続、非線形活性化部を有する反復または自己回帰レイヤ等を含んでもよいが、これに限定されず、他の種類のデコーダモデルも可能である。ある実施形態では、デコーダモデルの組み合わせを用いて再構築データのセットＡ６００を生成することができる。
【００４５】
ある実施形態では、再構築損失は、再構築データのセットＡ６００から計算することができる。この再構築損失は、入力データのセットの、再構築データのセットに対する類似性を示す。上述したように、この再構築損失は、総損失の１項である。総損失は、再構築損失とコード損失（すなわち、ノイズデータから潜在コードを生成することによる損失）との和である。この総損失Ltotalは、以下の式８で表される。
【数８】
2019200551.tif 000010
ここで、「λLcode（c、h）」はコード損失を表し、「Lreconstruction（X、Xreconstructed）」は再構築損失を表し、「X」は入力データのセットを表し、「Xr」は再構築データのセットを表す。
【００４６】
ある実施形態では、フィードバック手法を使用してモデルを訓練することで、総損失をさらに低減することができる。フィードバック手法の例として、バックプロパゲーション手法、進化アルゴリズムなどが挙げられる。訓練後に得られた埋め込みは、データの潜在因子に対応する。別の例として、ある実施形態では、本開示の態様は、式８で表される総損失に、補助損失項を加えることに関する。したがって、これは、以下の式９によって示される。
【数９】
2019200551.tif 000011
ここで、Lauxの項は、主な目的である最適化を補助するために、モデルの重み付けに対する準勾配損失および正則化損失を含んでもよい。
【００４７】
次に、推論段階について説明する。ある実施形態では、推論段階において、ブロックＡ２００でのノイズ付加をバイパスすることができる。従って、エンコーダＡ3００への入力は、ラベルなしデータのセットＡ１００またはノイズデータのセット（例えば、ノイズが付加されたラベルなしデータのセットＡ１００）のいずれかであってもよい。エンコーダＡ３００によって生成された潜在コードＡ４００は、データから階層的関係を抽出するために用いられてもよい。次に、デコーダモデルＡ５００は、再構築データＡ６００のセットを生成するように構成されてもよい。潜在コードの抽出が主要な目的である場合、再構築データのセットＡ６００を生成するステップはバイパスされてもよい。あるいは、本開示の態様は、所望の属性に応じて潜在コードＡ６００のセットを変更すること（すなわち、データの特徴を変更するために、潜在コードのセットＡ６００のパラメータを調整すること）に関する。例えば、ラベルなしデータのセットＡ１００が人間の顔の画像である場合、潜在コードのセットＡ６００は、ヒゲ等のような所望の属性を人間の顔に加えるように調整されてもよい。推論段階を実行し、潜在コードのセットを変更する他の方法も可能である。
【００４８】
図４は、実施形態による、所望の属性を有するデータを生成する方法Ｃ１１００の第１フローチャートを示す。上述したように、本開示の態様は、潜在コードのセットを変更し、所望の属性を有するデータを生成することに関する。一般に、これらの所望の属性は、データの態様を定義する特性、特徴、または性状を含んでもよい。所望の属性の例として、画像における色、形状、またはオブジェクト、テキストにおける文字または単語、オーディオファイルにおけるオーディオ信号などが挙げられる。ある実施形態では、方法Ｃ１１００は、訓練段階および推論段階を含む。訓練段階では、ニューラルネットワーク（例えば、図２に示すニューラルネットワークの自動エンコーダ）は、エンコーダモデルによって生成された潜在コードのセットから、再構築データのセットを生成するように訓練され、分類モデルは、ラベル付きデータのセットを用いて訓練され、変換モデルも訓練されてもよい。推論段階では、階層関係がデータから抽出され、再構築データのセットを所望の属性を持つように生成されてもよい。図４に示すように、方法Ｃ１１００は、ラベルなしデータのセット（入力データのセット）Ｃ１００と、ラベルなしデータにノイズを付加するブロックＣ２００と、エンコーダＣ３００と、潜在コードＣ４００と、デコーダＣ５００と、再構築データＣ６００のセットを含む。以下の説明では、前述した要素と実質的に同様の要素についての説明を省略する。
【００４９】
ある実施形態では、図４のデコーダＣ５００は、式９に記載の損失を用いて、フィードバック手法（例えば、バックプロパゲーション、進化アルゴリズム）で訓練されてもよい。デコーダＣ５００は、オートエンコーダモデル、敵対的生成ネットワーク、AM-GAN（Activation  Maximization  Generative  Model）または自己回帰ネットワークの一部であってもよい。ある実施形態では、デコーダモデルＣ５００は凍結してもよい（それ以上訓練しない）。
【００５０】
図５は、実施形態による、所望の属性を有するデータを生成する方法Ｃ１２００の第２フローチャートを示す。図５の態様は、所望の属性を区別するように分類モデルを訓練することに関する。図５に示すように、方法Ｃ１２００は、ラベル付きデータのセットＣ７００と、第1の分類モデルＣ８００とを含む。一般に、分類モデルは、観測値から結論を引き出すように構成されたモデルであってもよい。例えば、1つ以上の入力が与えられると、分類モデルは、1つ以上の結果の値を予測することができる。これらの結果は、データセットに適用できるラベルである。一例として、分類モデルは、金融取引を分析し、各取引を「不正」または「正当」として分類するように構成することができる。ここで、第1の分類モデルＣ８００は、ラベルＣ７００のセットを用いて訓練されてもよい。例えば、ラベルのセットＣ７００は、電子メールを「スパム」または「スパムではない」として分類するラベルであってもよい。
【００５１】
図６は、実施形態による、所望の属性を有するデータを生成する方法Ｃ１３００の第３フローチャートを示す。図６は、所望の属性を有する再構築データの生成に関する。ある実施形態では、ラベルなしデータのセットＣ１００、ラベルなしデータのセットＣ１００にノイズを付加するブロックＣ２００、エンコーダＣ３００、潜在コードＣ４００、デコーダＣ５００、構築データのセットＣ６００、および分類モデルＣ８００は、図４及び図５において同じ符号を付した要素と実質的に同様である。
【００５２】
ある実施形態では、コード変換モデルＣ１０００を用いて、所定のコードのセットＣ９００を、所望の属性を生成するためのデータ生成コードに変換することができる。所定のコードのセットは、あるデータセットを表す非潜在コードのセットであってもよい。変換モデルＣ１０００は、任意のニューラルネットワークであってもよく、フィードフォワード、畳み込み、あるいは非線形活性化部を有する反復または自己回帰レイヤ等であってもよいが、これに限定されず、他の種類の変換モデルも可能である。図６に示すように、所定のコードのセットＣ９００が入力としてコード変換ネットワークＣ１０００に与えられる。デコーダＣ５００によって出力された再構築データＣ６００のセットは、分類ネットワークＣ８００（例えば、図５のラベルのセットＣ７００を用いて訓練された分類ネットワークＣ８００）に提供され、所望の特徴属性を区別するように訓練される。変換モデルＣ１０００は、ラベルのセットＣ７００を用いて訓練された分類モデルＣ８００から得られた損失を用いて訓練されてもよい。訓練後、変換モデルＣ１０００は、デコーダモデルＣ５００に供給される時に再構築データのセットＣ６００において所望の属性を生成するように構成された潜在コードのセットＣ４００（例えば、属性コードのセット）を生成するために使用されてもよい。これにより機械学習訓練の速度と効率を向上することができる。
【００５３】
次に、図６を参照して、推論段階について説明する。ある実施形態では、所定のコードセットＣ９００が変換モデルＣ１０００に入力される。これにより、変換コードのセットが潜在コードのセットＣ４００として変換モデルＣ１０００から出力される。この潜在コードのセットは、デコーダＣ５００への入力として使用される。次に、上述したように、デコーダＣ５００は、変換モデルＣ１０００によって変換された潜在コードのセットＣ４００を使用して、所望の属性を有する再構築データのセットＣ６００を生成することができる。
【００５４】
図７は、ラベル付きデータとラベルなしデータが両方とも利用可能である場合に、実施形態によるニューラルネットワーク環境において潜在因子をデータから発見する方法Ｃ１４００のフローチャートを示す。ある実施形態では、ラベルなしデータのセットＣ１００、ラベルなしデータのセットＣ１００にノイズを付加するブロックＣ２００、エンコーダＣ３００、潜在コードＣ４００、デコーダＣ５００、および再構築データのセットＣ６００は、図４、図５、及び図６において同じ符号を付した要素と実質的に同様である。
【００５５】
図７に示すように、ラベル付きデータとラベルなしデータの両方が利用可能である場合には、エンコーダモデルは、ラベルなしデータのセットＣ１００とラベル付きデータのセットＢ７００を入力として受け付けるように構成されている。ここで、方法Ｃ１４００において、Ｃ２００からＣ６００へのフローは、図４、図５、及び図６を参照して説明したものと同じである。ある実施形態では、クラスラベルが既知であるサンプルについては、分類損失Lclsを追加することができる。
【００５６】
図８は、実施形態による分類モデルを訓練するための難題サンプルを生成する方法Ｚ１０００のフローチャートを示す。ある実施形態では、本開示の態様は、状況によっては、あるデータセットが、容易に分類することが困難な特徴を有する可能性があるという課題に関する（例えば、特定のデータ点が単一のクラスタに属するか、複数のクラスタに属するかが不明確な場合がある）。したがって、本開示の態様は、分類モデルの訓練を容易にするための難題サンプルを発見することに関する。
【００５７】
図８に示すように、分類モデルＺ２００（例えば、第1の分類モデル）は、試験データＺ１００を受け付けしてもよい。分類モデルＺ２００は、試験データのセットを分類する（例えば、不正な金融取引および正当な金融取引をラベル化する）ように構成されてもよい。したがって、分類モデルＺ２００は、正しく分類されたサンプルのセットＺ３００および誤分類されたサンプルのセットＺ４００（すなわち、難題サンプル）を出力してもよい。これらの誤分類されたサンプルは、潜在コードを生成するためにニューラルネットワークへの入力とし使用することができる。より詳細には、誤分類されたサンプルのセットＺ４００は、エンコーダモデル（例えば、図２に示されるニューラルネットワークのエンコーダモデル）Ｚ５００に提供されてもよい。
【００５８】
次に、エンコーダモデルＺ５００は、誤分類されたデータサンプルのセットＺ４００に対応する潜在コードのセットを計算することができる。誤分類されたデータサンプルのセットＺ４００に対応する潜在コードにおいてバリエーションを生成してもよい（例えば、所望の属性を生成するために）。続いて、デコーダモデル（例えば、図２に示したニューラルネットワークのデコーダモデル）Ｚ６００は、誤分類されたデータサンプルのセットＺ４００に対応する潜在コードのセットに基づいて、データサンプルのセットを生成することができる。最後に、分類されたデータサンプルのセットＺ４００に対応する潜在コードのセットに基づいて生成されたデータサンプルのセットを用いて、分類モデルＺ８００（例えば、第２の分類モデル）を訓練する機械学習手法を実行することができる。ある実施形態では、分類モデルＺ８００は、分類モデルＺ２００と同じ分類モデルであってもよい。また、ある実施形態では、分類モデルＺ８００は、分類モデルＺ２００と異なっていてもよい。これにより、別の分類モデルによって誤分類されたサンプル（例えば、難しい/難易度の高いサンプル）を用いて分類モデルを訓練することは、機械学習の効率化につながる。
【００５９】
図９は、機密データが利用可能である場合の、実施形態による訓練手法Ｓ１０００の第１フローチャートを示す。ある実施形態では、本開示の態様は、特定の種類のデータ（例えば、金融取引データ、医療データ）が機密内容を含む可能性があるという課題に関する。データの規則遵守、セキュリティ、及びプライバシーの制限によっては、ニューラルネットワーク計算を実行する前に、データの暗号化が必要となる場合がある。一例として、医療記録、財産データ、財務データ、個人識別情報（Personally  Identifiable  Information  (PII)）データ、および政府文書は、機械学習演算のユーザーデータに対する使用性を制限する規制が関連付けられている場合がある。暗号データは、許可された関係者のみが閲覧できるように符号されている点において、暗号化されていないデータと異なる。データが暗号化されると、データの内容へのアクセスは傍受者に拒否される。したがって、ニューラルネットワークモデルは暗号データの計算を実行するように構成されていないため、従来のニューラルネットワークモデルでは、暗号データに対するニューラルネットワーク計算を対応しない。
【００６０】
従来の技術では、暗号データに対するニューラルネットワークの訓練が可能であるが、これらの方法では、入力データを最初に暗号化する必要があるため、訓練を行う前にユーザはまずデータを暗号化する必要がある。また、結果を解釈するためには、この訓練プロセスの出力を復号する必要もある。一方、図９及び図１０の態様は、暗号データを使用してモデルを訓練し、暗号化されていない公開データを用いてモデルの微調整を行うプロセスに関する。入力データ及び出力データのセットが暗号化されないので、このような手法は、従来のアプローチと比較して、コストの削減（例えば、時間、金融的なコスト、および計算資源の点で）につながる。
【００６１】
図９に示すように、機密データのセットＳ１００とラベルのセットＳ３００を準同型暗で暗号化することで、暗号データＳ２００のセットと暗号化ラベルのセットＳ４００とがそれぞれ得られる。ここで、準同型暗号化とは、暗号データに対する計算を可能にする暗号化スキームを指すものである。準同型暗号化では、データが暗号化された形式であっても、特定の計算を実行することができ、正解の結果を生成することが保証される。一般に、準同型暗号化は、暗号データに対する加算、減算、および乗算を対応する。ただし、除算と比較が対応されない場合があり、また、乗算が暗号文にノイズを二次的に導入する可能性がある。暗号データのセットＳ２００および暗号化ラベルのセットＳ４００は、モデルＳ５００（例えば、分類モード）に提供され、モデルＳ５００は、多項式演算を用いて訓練される。
【００６２】
図１０は、機密データが利用可能である場合の、実施形態による訓練手法Ｓ１１００の第２フローチャートを示す。ある実施形態では、訓練済みモデルＳ５００（すなわち、暗号データのセットＳ２００および暗号化されたラベルのセットＳ４００を用いて訓練された分類モデル）は、暗号化されていない公開データＳ７００およびＳ８００に対する微調整動作の初期設定に使用される。より具体的には、ある実施形態では、モデルＳ５００のエンコーダモデルは、暗号化されていないデータのセットに対応する潜在コードのセット（例えば、第２潜在コードのセット）を計算することができる。次に、暗号化されていないデータのセットと、暗号化されていないデータのセットに対応する潜在コードのセットとを使用して、モデルＳ５００に対して微調整手法を実行することができる。その後、暗号化されていないデータに関する予測を生成するために、微調整モデルＳ９００がＳ１０００で表されるように展開される。
【００６３】
図１１は、本開示の一態様による具体例１を示す。ある実施形態では、顧客Ｑ２００からの機密データＱ１００（例えば、ラベル付きデータ）を処理して、ラベルＱ３００を除去することができる。あるいは、顧客Ｑ２００は、ラベルなしデータＱ３００を提供してもよい。上述した手法を用いることで、受信したデータを符号化した後に得られた潜在コードから、偽のラベルのセットＱ７００を作成することができる。ある実施形態では、ラベルなしデータを収集して、偽のラベルを有するデータを生成することをサービスとして提供してもよい。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６４】
図１２は、本開示の一態様による具体例２を示す。ある実施形態では、分類モデルは、データを用いて訓練することができ、難題サンプル（例えば、誤分類されたサンプルや難易度の高いサンプル）を識別することができる。これらの難題サンプルは、モデルへの入力として使用されてもよく、これによって得られた潜在コードは、更に多くの難題サンプルを得るために調整されてもよい。このようにして得られた分類モデルは、この分類をサービスとして提供するために用いられてもよい。また、識別された難題サンプルから追加の難題サンプルを生成することも、サービスとして提供することができる。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６５】
図１３は、本開示の一態様による具体例３を示す。ラベルなしデータＵ３００は、エンティティＵ２００から取得されてもよい。ある実施形態では、このラベルなしデータＵ３００は、モデルＵ４００を上述したように訓練するために使用されてもよい。訓練済みモデルＵ６００は、サービスとして、他のデータセットＵ５００における共通の特徴Ｕ７００を識別するために使用されてもよい。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６６】
図１４は、本開示の一態様による具体例４を示す。ある実施形態では、エンティティＴ２００から得られたデータのセットＴ３００は、モデルＴ４００を上述したように訓練するために使用されてもよい。訓練済みモデルＴ６００は、サービスとして、所望の属性のセットＴ７００を入力データのセットＴ５００において生成するために使用されてもよい。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６７】
図１５は、本開示の一態様による具体例５を示す。エンティティＶ２００から得られたデータのセットＶ１００は、モデルＶ４００を上述したように訓練するために使用されてもよい。訓練済みモデルＶ６００は、サービスとして、所定のコードを有する所望の属性を生成するために使用されてもよい。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６８】
図１６は、本開示の一態様による具体例６を示す。機密データＰ１００は、エンティティＰ２００によって暗号化されて、暗号データＰ３００として取得される。暗号データＰ４００は、モデルを訓練するために使用することができる。これにより、公開データで微調整され、入力として暗号化されていないデータを受け付けることができ、暗号化されていないデータを出力として提供するモデルは、サービスとして、クライアントのデータに関する予測を生成するために使用することができる。なお、サービスは一つの実施例に過ぎず、本明細書に記載の各機能を実行するように構成されたニューラルネットワーク/ソフトウェアモデルは、ソフトウェアパッケージやハードウェアなどとして提供され、ローカルクライアント環境での実施も可能である。
【００６９】
上述の具体例に加えて、本開示の態様は、ノイズデータのノイズを除去するために使用されてもよい。より具体的には、実施形態では、ニューラルネットワークは、ノイズデータのセットを受信してもよい。このデータには、破損または歪曲している画像、オーディオファイル、テキスト、またはその他のデータが含まれてもよい。一例として、このノイズデータのセットは、車両のぼやけたナンバープレートの画像であってもよい。次に、エンコーダモデルおよび非線形確率活性化部のセットは、ノイズデータのセットに基づいて、第２潜在コードのセットを計算するように構成されてもよい。続いて、デコーダモデルは、第２の潜在コードのセットを復号して、ノイズのないデータのセットを取得するために使用されてもよい。これにより、本来なら解釈不能であったデータを、容易に解釈可能なデータに変換することができる。一例として、車両のぼやけたナンバープレートのノイズを除去することで、容易に判読可能なナンバープレート画像を得ることができる。
【００７０】
ある実施形態では、本開示の態様は、入力データのセットを圧縮することに関する。より具体的には、この場合には、本開示に係るエンコーダモデルを備えた遠隔に配置されたサーバを使用することで、入力データのセットに対してデータ圧縮を実行し、潜在コードのセットを生成することができる。この圧縮によって生じる潜在コードのセットは、通信媒体（例えば、ネットワーク）を介してサーバからクライアント端末に送信することができる。クライアント端末は、本開示に係るデコーダモデルをそのメモリに備えることができる。したがって、クライアント端末は、デコーダモデルを用いることで、サーバから受信した潜在コードのセット（例えば、圧縮データ）を処理し、元の入力データのセット（例えば、非圧縮形式のデータ）を再構築することができる。エンコーダモデルおよびデコーダモデル用いた方法以外のデータ圧縮方法も可能である。
【００７１】
ある実施形態では、本開示の態様は、第１のデータセットに対応する第１の潜在コードのセットを受信し、第２のデータセットに対応する第２潜在コードのセットを受信することに関する。次に、ニューラルネットワークは、第１の潜在コードのセットを第２の潜在コードのセットに比較して、第１のデータセットが第２のデータセットに対する類似性閾値を達成するか否かを決定する。第１のデータセットが第２のデータセットに対する類似性閾値（例えば、80％の類似度、90％の類似度、100％の類似度）を達成すると判定した場合には、ニューラルネットワークは、第１のデータセットと第２のデータセットとを統合し、結合データのセットを生成する。これにより、類似しているデータセットを識別し、結合することで、データ管理を円滑にし、データファイルサイズを縮小することができる。
【００７２】
ある実施形態では、本開示の態様は、デコーダモデル（例えば、デコーダＭ８００）が、再構築するにあたって、データセットの特定の態様に優先順位を付けるように構成されていることに関する。より具体的には、デコーダモデルは、特定の態様にのみ着目して再構築を行い、他の態様を無視することができる。一例として、デコーダモデルは、色情報を無視して、画像における特定のオブジェクトの形状だけを再構築するように構成されてもよい。この場合に、エンコーダモデルによって生成された潜在コード（例えば、潜在コードのセットＭ７００）は、潜在コードにおける色情報を含んでおらず、入力データセットの形状を正確に表現するように最適化されてもよい。したがって、この実施形態の態様は、潜在コードの短文化及び効率化などの利点につながることがある。再構築する態様に優先順位を付けする他の方法も可能である。
【００７３】
ある実施形態では、本開示の態様は、第２の入力データのセットを受信することに関する。ある実施形態では、第２の入力データのセットは、第１の入力データのセットと異なってもよい。また、ある実施形態では、第２の入力データのセットは、第１の入力データのセットと同じであってもよい。次に、エンコーダモデルおよび非線形確率活性化部のセットは、第２の入力データのセットの第２の潜在コードのセットを計算することができる。続いて、第２の潜在コードのセットに対応するラベルのセットを第２の入力データに割り当てることができる。これにより、ニューラルネットワークにおける潜在因子の分類が容易になる。
【００７４】
上記において、様々な実施形態が参照されている。しかしながら、本開示は具体的に記載された実施形態に限定されないことを理解されたい。一方、記載された特徴および要素の任意の組み合わせは、異なる実施形態に関連するか否かにかかわらず、本開示を実現および実施するために企図される。記載された実施形態の範囲および趣旨から逸脱することなく、多くの改変および変形が当業者に想到されるであろう。また、本開示の実施形態は、他の可能な解決策または先行技術を超える利点を達成する場合があるが、所与の実施形態によって特定の利点が達成されるか否かは、この開示を限定するものではない。したがって、記載された態様、特徴、実施形態および利点は単なる例示に過ぎず、特許請求の範囲に明記されている場合を除いて、添付の特許請求の範囲または要素とみなされるものではない。
【００７５】
上記は例示的な実施形態に向けられているが、本発明の基本的な範囲から逸脱することなく、更なる他の実施形態も考案されてもよく、その範囲は、以下の特許請求の範囲によって決定される。本開示の様々な実施形態の説明は、あくまでも例示のために記載されたものであり、記載された実施形態の包括的または限定的な説明ではない。記載された実施形態の範囲および趣旨から逸脱することなく、多くの改変および変形が当業者に想到されるであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用または技術的改良、または当業者が本明細書に開示される実施形態を理解できるように選択された。
【００７６】
本明細書で使用する用語は、特定の実施形態を説明するためのものであり、それぞれの実施形態を限定するものではない。本明細書で使用されるように、単数形「a」、「an」および「the」は、文脈上に明白に示されていない限り、複数形も含むことが意図される。また、「セット」、「グループ」、「群」などは、1つまたは複数のものを含むことが意図されている。本明細書においては、「含む」および/または「含んでもよい」という用語は、記載された特徴、値、ステップ、動作、素子、および/または構成要素の存在を特定するものであるが、これらの値、ステップ、動作、素子、構成要素、および/またはそれらのグループ以外の存在又は追加を限定するものではない。また、上述した様々な実施形態の例示的な詳細説明では、本開示の一部である添付の図面（同様の番号は同様の要素を表す）が参照され、これらの図面では、それぞれの実施形態を実施するための応用例が例示的に示される。これらの実施形態は、当業者が実施できるように十分に詳細に記載されているが、様々な他の実施形態も使用可能であり、本開示の実施形態の範囲から逸脱することなく、論理的、機械的、電気的、またはそれ以外の変更がなされてもよい。前述の説明では、様々な実施形態の完全な理解を容易にするために多数の具体的な詳細が述べられている。しかし、それぞれの実施形態は、これらの具体的な詳細を用いなくとも実施されてもよい。また、本開示の実施形態を不明瞭にしないために、周知の回路、構造、および手法は詳細に示されていない。
【００７７】
[参照符号リスト]
Ｍ１００      入力データのセット
Ｍ２００      ノイズ
Ｍ３００      ノイズデータのセット
Ｍ４００      エンコーダモデル
Ｍ５００      事前確率的レイヤ
Ｍ６００      非線形確率活性化部のセット
Ｍ７００      潜在コードのセット
Ｍ８００      デコーダモデル
Ｍ９００      再構築データのセット
Ｍ１１００    フィードバック手法
【図１】
2019200551.tif 000012
【図２】
2019200551.tif 000013
【図３】
2019200551.tif 000014
【図４】
2019200551.tif 000015
【図５】
2019200551.tif 000016
【図６】
2019200551.tif 000017
【図７】
2019200551.tif 000018
【図８】
2019200551.tif 000019
【図９】
2019200551.tif 000020
【図１０】
2019200551.tif 000021
【図１１】
2019200551.tif 000022
【図１２】
2019200551.tif 000023
【図１３】
2019200551.tif 000024
【図１４】
2019200551.tif 000025
【図１５】
2019200551.tif 000026
【図１６】
2019200551.tif 000027
【外国語明細書】
2019200551000001.pdf
2019200551000002.pdf
2019200551000003.pdf
2019200551000004.pdf