(57)【要約】  複数のパラメータを有する機械学習モデルをトレーニングする方法であって、機械学習モデルが、機械学習モデルの第1のパラメータ値を決定するために第1の機械学習タスクに関してトレーニング済みである、方法が開示される。本方法は、複数のパラメータの各々に関して、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定するステップと、第2の異なる機械学習タスクに関して機械学習モデルをトレーニングするためのトレーニングデータを取得するステップと、機械学習モデルが第1の機械学習タスクに関して許容可能なレベルの性能を維持しながら第2の機械学習タスクに関して許容可能なレベルの性能を達成するように第1のパラメータ値を調整するためにトレーニングデータに関して機械学習モデルをトレーニングすることによって第2の機械学習タスクに関して機械学習モデルをトレーニングするステップとを含む。
2019525329.tif 000002
【特許請求の範囲】
【請求項１】
複数のパラメータを有する機械学習モデルをトレーニングする方法であって、
前記機械学習モデルが、前記機械学習モデルの前記第1のパラメータ値を決定するために第1の機械学習タスクに関してトレーニング済みであり、
前記方法が、
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップと、
第2の異なる機械学習タスクに関して前記機械学習モデルをトレーニングするためのトレーニングデータを取得するステップと、
前記機械学習モデルが前記第1の機械学習タスクに関して許容可能なレベルの性能を維持しながら前記第2の機械学習タスクに関して許容可能なレベルの性能を達成するように、前記第1のパラメータ値を調整するために前記トレーニングデータに関して前記機械学習モデルをトレーニングすることによって前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングするステップと
を含み、
前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングする間、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要であったパラメータ値が、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要でなかったパラメータ値よりも、前記第1の値から逸脱しないようにより強く制約される、方法。
【請求項２】
前記第1の機械学習タスクおよび前記第2の機械学習タスクが、異なる教師あり学習タスクである、請求項1に記載の方法。
【請求項３】
前記第1の機械学習タスクおよび前記第2の機械学習タスクが、異なる強化学習タスクである、請求項1に記載の方法。
【請求項４】
前記トレーニングデータに関して前記機械学習モデルをトレーニングするステップが、
(i)前記第2の機械学習タスクに関する前記機械学習モデルの性能を測定する第1の項と、
(ii)前記第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項であって、前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第1の値からの逸脱により重いペナルティを与える、第2の項と
を含む目的関数を最適化するために前記第1のパラメータ値を調整するステップを含む、
請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記トレーニングデータに関して前記機械学習モデルをトレーニングするステップが、前記トレーニングデータ内の各トレーニング例に関して、
モデルの出力を決定するために前記機械学習モデルの現在のパラメータ値に従って前記機械学習モデルを使用して前記トレーニング例を処理するステップと、
前記モデルの出力、前記トレーニング例に関する目標出力、前記機械学習モデルの前記現在のパラメータ値、および前記機械学習モデルの前記第1のパラメータ値を使用して前記目的関数の勾配を決定するステップと、
前記目的関数を最適化するために前記勾配を使用して前記現在のパラメータ値を調整するステップと
を含む、請求項4に記載の方法。
【請求項６】
前記第2の項が、前記複数のパラメータの各々に関して、前記パラメータの重要度の前記それぞれの尺度と、前記現在のパラメータ値と前記第1のパラメータ値との間の差との積に依存する、請求項4または5に記載の方法。
【請求項７】
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップが、
前記第1のタスクに関して前記機械学習モデルをトレーニングするために使用された第1のトレーニングデータを前提として、前記複数のパラメータの各々に関して、前記現在のパラメータ値が前記パラメータの正しい値である確率の概算を決定するステップを含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップが、
前記第1の機械学習タスクに関連して前記機械学習モデルの前記複数のパラメータのフィッシャー情報行列(FIM)を決定するステップであって、前記複数のパラメータの各々に関して、前記パラメータの前記重要度の前記それぞれの尺度が、前記FIMの対角項の対応する値である、ステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記機械学習モデルの前記第2のパラメータ値を決定するために前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングした後、
異なる第3の機械学習タスクに関して前記機械学習モデルをトレーニングするための第3のトレーニングデータを取得するステップと、
前記機械学習モデルが前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能なレベルの性能を維持しながら前記第3の機械学習タスクに関して許容可能なレベルの性能を達成するように、前記第2のパラメータ値を調整するために前記第3のトレーニングデータに関して前記機械学習モデルをトレーニングすることによって前記第3の機械学習タスクに関して前記機械学習モデルをトレーニングするステップと
をさらに含み、
前記第3の機械学習タスクに関して前記機械学習モデルをトレーニングする間、前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要であったパラメータ値が、前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要でなかったパラメータ値よりも前記第2の値から逸脱しないようにより強く制約される、
請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記複数のパラメータの各々に関して、前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップをさらに含み、
前記第3のトレーニングデータに関して前記機械学習モデルをトレーニングするステップが、
(i)前記第3の機械学習タスクに関する前記機械学習モデルの性能を測定する第1の項と、
(ii)第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項であって、前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第1の値からの逸脱により重いペナルティを与える、第2の項と
(iii)第2のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第3の項であって、前記第2の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第2の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第2の値からの逸脱により重いペナルティを与える、第3の項と
を含む目的関数を最適化するために前記第2のパラメータ値を調整するステップを含む、
請求項9に記載の方法。
【請求項１１】
前記第2の項が、前記複数のパラメータの各々に関して、(i)前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度の前記それぞれの尺度と、(ii)前記現在のパラメータ値と前記第1のパラメータ値との間の差との積に依存する、請求項10に記載の方法。
【請求項１２】
前記第3の項が、前記複数のパラメータの各々に関して、(i)前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度の前記それぞれの尺度と、(ii)前記現在のパラメータ値と前記第2のパラメータ値との間の差との積に依存する、請求項10に記載の方法。
【請求項１３】
機械学習タスクを切り替えるときを特定するステップと、それに応じて、前記目的関数の前記第2の項を更新するステップとをさらに含む、請求項4に従属する場合の請求項4から8のいずれか一項に記載の方法。
【請求項１４】
機械学習タスクを切り替えるときを特定するステップが、どのタスクが1つまたは複数のモデルから実行されているのかを推測するステップを含む、請求項13に記載の方法。
【請求項１５】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から14のいずれか一項に記載のそれぞれの方法の動作を実行させるように動作可能である命令を記憶する1つまたは複数の記憶デバイスとを含む、システム。
【請求項１６】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から14のいずれか一項に記載のそれぞれの方法の動作を実行させる命令を符号化された、コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年7月18日に出願された米国仮出願第62/363,652号の優先権を主張するものである。先の出願の開示は、本出願の開示の一部と考えられ、本出願の開示に参照により組み込まれる。
【０００２】
本明細書は、機械学習モデルをトレーニングすることに関する。
【背景技術】
【０００３】
機械学習モデルは、入力を受け取り、受け取られた入力に基づいて、出力、たとえば予測される出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受け取られた入力と、モデルのパラメータ値とに基づいて出力を生成する。
【０００４】
いくつかの機械学習モデルは、受け取られた入力に関する出力を生成するためにモデルの複数の層を使用する深層モデル(deep model)である。たとえば、深層ニューラルネットワークは、出力を生成するために、受け取られた入力に非線形変換をそれぞれ適用する出力層および1つまたは複数の隠れ層を含む深層機械学習モデルである。しかし、機械学習モデルは、複数のタスクに関してトレーニングされる場合に「破滅的忘却(catastrophic forgetting)」を被り、新しいタスクが学習されるときに前のタスクの知識を失う場合がある。
【０００５】
いくつかのニューラルネットワークは、再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力シーケンスを受け取り、入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、再帰型ニューラルネットワークは、入力シーケンスの現在の入力から出力を生成する際に入力シーケンスの前の入力を処理した後のネットワークの内部状態の一部またはすべてを使用する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Blundellら、"Weight Uncertainty in Neural Networks"、ICML (2015)
【非特許文献２】Pascanu R、Bengio Y (2013)、"Revisiting natural gradient for deep networks"、arXiv:1301.3584
【発明の概要】
【課題を解決するための手段】
【０００７】
本明細書は、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムが複数の機械学習タスクに関して機械学習モデルをどのようにしてトレーニングすることができるかを説明する。
【０００８】
概して、1つの革新的な態様は、複数のパラメータを有する機械学習モデルをトレーニングするための方法に具現化される場合がある。機械学習モデルは、機械学習モデルの第1のパラメータ値を決定するために第1の機械学習タスクに関してトレーニング済みである。本方法は、複数のパラメータの各々に関して、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定するステップと、第2の異なる機械学習タスクに関して機械学習モデルをトレーニングするためのトレーニングデータを取得するステップと、機械学習モデルが第1の機械学習タスクに関して許容可能なレベルの性能を維持しながら第2の機械学習タスクに関して許容可能なレベルの性能を達成するように第1のパラメータ値を調整するためにトレーニングデータに関して機械学習モデルをトレーニングすることによって第2の機械学習タスクに関して機械学習モデルをトレーニングするステップとを含み、第2の機械学習タスクに関して機械学習モデルをトレーニングする間、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要であったパラメータ値が、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要でなかったパラメータ値よりも、第1の値から逸脱しないようにより強く制約される。
【０００９】
トレーニングデータに関して前記機械学習モデルをトレーニングするステップは、(i)第2の機械学習タスクに関する機械学習モデルの性能を測定する第1の項と、(ii)第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項であって、第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して第1の値からの逸脱により重いペナルティを与える、第2の項とを含む目的関数を最適化するため、より詳細には、最小化することを目標とするために、第1のパラメータ値を調整することを含んでもよい。第2の項は、複数のパラメータの各々に関して、パラメータの重要度のそれぞれの尺度と、現在のパラメータ値と第1のパラメータ値との間の差との積に依存してもよい。
【００１０】
いくつかの実装例において、トレーニングは、「弾性的重み固定(elastic weight consolidation)」(EWC)を実装してもよく、第2のタスクに関するトレーニング中、パラメータは、弾性的ペナルティ(elastic penalty)、すなわち第1のパラメータ値からの距離が増加するにつれて増加するパラメータを調整することに対するペナルティによってそれらの第1のパラメータ値につなぎとめられる。弾性的ペナルティの堅さまたは度合いは、第1のタスクに対するまたはより広く任意の前に学習されたタスクに対するパラメータの重要度の尺度に依存してもよい。したがって、弾性的重み固定は、各重みが前に実行された1つのタスクまたは複数のタスクに対するその重みの重要度の尺度に依存する、たとえば比例する量だけその重みの古い値に引き戻される柔らかい制約(soft constraint)、たとえば増加する距離による二次方程式として実装されてもよい。大まかに言って、パラメータは、前のタスクから導出されたパラメータの事後分布である以前の確率(prior)によって加減される。
【００１１】
概して、機械学習モデルは、畳込みニューラルネットワークまたは再帰型ニューラルネットワークなどのニューラルネットワークを含み、パラメータは、ニューラルネットワークの重みを含む。個々のパラメータの重要度(重み)は、以下でさらに説明されるように様々な異なる方法で決定されてもよい。オプションで、個々のパラメータの重要度(重み)は、新しいタスクに関するトレーニングが始まる前に再計算されてもよい。
【００１２】
トレーニングデータに関して機械学習モデルをトレーニングするステップは、トレーニングデータ内の各トレーニング例に関して、モデルの出力を決定するために機械学習モデルの現在のパラメータ値に従って機械学習モデルを使用してトレーニング例を処理するステップと、モデルの出力、トレーニング例に関する目標出力、機械学習モデルの現在のパラメータ値、および機械学習モデルの第1のパラメータ値を使用して目的関数の勾配を決定するステップと、目的関数を最適化するために勾配を使用して現在のパラメータ値を調整するステップとを含んでもよい。
【００１３】
複数のパラメータの各々に関して、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定するステップは、第1のタスクに関して機械学習モデルをトレーニングするために使用された第1のトレーニングデータを前提として、複数のパラメータの各々に関して、現在のパラメータ値がパラメータの正しい値である確率の概算を決定するステップを含んでもよい。
【００１４】
複数のパラメータの各々に関して、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定する1つの方法は、第1の機械学習タスクに関連して機械学習モデルの複数のパラメータのフィッシャー情報行列(FIM)を決定するステップであって、複数のパラメータの各々に関して、パラメータの重要度のそれぞれの尺度が、FIMの対角項(diagonal)の対応する値である、決定するステップを含んでもよい。これは、FIMが一階導関数から計算されることが可能であるために計算上都合がよい。たとえば、FIMは、モデルのパラメータに関連してモデルの対数確率の共分散から決定されてもよい。
【００１５】
FIMの対角項の値を重要度の尺度として使用することは、パラメータの分散、すなわち重みの不確かさの点推定値(point-estimate)を効果的に計算しながら計算の複雑さを減らす。いくつかの実装例において、重みの平均および標準偏差(または分散)の推定値は、"Weight Uncertainty in Neural Networks"、Blundellら、ICML (2015)に説明されたように逆伝播によるベイズ学習(Bayes by Backprop)手順を使用することによって取得されてもよい。これは、誤差逆伝播手順の変化型を使用して行われることが可能である。
【００１６】
いくつかの実装例において、第1の機械学習タスクおよび第2の機械学習タスクは、異なる教師あり学習タスクである。
【００１７】
いくつかのその他の実装例において、第1の機械学習タスクおよび第2の機械学習タスクは、異なる強化学習タスクである。強化学習タスクにおいて、目的関数は、ある状態である行動を行うことによる期待される報酬に依存する割引報酬(discounted reward)の項を含んでもよい。機械学習モデルは、たとえば深層Qネットワーク(DQN)、ダブルDQN(Double-DQN)、アドバンテージアクタークリティック(A3C:Advantage Actor Critic)ネットワーク、またはその他のアーキテクチャに基づいてもよい。
【００１８】
いくつかの実装例においては、これに限らないが特に強化学習(RL)システムにおいて、機械学習タスクが特定されてもよい。たとえば、それらのタスクは、明示的にラベル付けされるか、またはタスクを推定するためのモデルを使用して自動的に特定されてもよい。そして、目的関数に関する1つまたは複数のペナルティ項(penalty term)が、特定されたタスクに応じて選択されてもよい。タスクの切り替えが特定されるとき、1つまたは複数のペナルティ項は、(上述のように前のタスクに関するパラメータの重要度に従って)1つまたは複数の前のタスクに関して学習された値に近いようにパラメータの学習を制約するために選択されてもよい。切り替えは、新しいこれまで見られなかったタスクへの切り替えであるかまたは前のタスクへの復帰であってもよい。ペナルティ項は、現在のタスクを除くすべてのこれまでに見られたタスクに関する制約を含んでもよい。制約は、二次制約(quadratic constraint)であってもよい。オプションで、個々のパラメータの重要度(重み)は、学習タスクを切り替えるときに再計算されてもよい。
【００１９】
本方法は、機械学習モデルの第2のパラメータ値を決定するために第2の機械学習タスクに関して機械学習モデルをトレーニングした後、第3の異なる機械学習タスクに関して機械学習モデルをトレーニングするための第3のトレーニングデータを取得するステップと、機械学習モデルが第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能なレベルの性能を維持しながら第3の機械学習タスクに関して許容可能なレベルの性能を達成するように第2のパラメータ値を調整するために第3のトレーニングデータに関して機械学習モデルをトレーニングすることによって第3の機械学習タスクに関して機械学習モデルをトレーニングするステップとをさらに含んでもよく、第3の機械学習タスクに関して機械学習モデルをトレーニングする間、第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要であったパラメータ値が、第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要でなかったパラメータ値よりも第2の値から逸脱しないようにより強く制約される。
【００２０】
そして、本方法は、複数のパラメータの各々に関して、第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定するステップをさらに含んでもよい。そのとき、第3のトレーニングデータに関して機械学習モデルをトレーニングするステップは、第3の機械学習タスクに関する機械学習モデルの性能を測定する第1の項と、第2のパラメータ値から逸脱するパラメータ値に対してペナルティを科す第2の項とを含む目的関数を最適化するために第2のパラメータ値を調整することを含んでもよい。上述の方法と同様の方法で、第2の項は、第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して第2の値からの逸脱により重いペナルティを与えてもよい。目的関数の第2の項は、それぞれの前のタスクについて1つずつ2つの別々のペナルティ項、または組み合わされたペナルティ項を含んでもよい。たとえば、ペナルティ項がパラメータとそのパラメータの前の値との間の差の2乗などの二次ペナルティ(quadratic penalty)をそれぞれ含む場合、2つのそのようなペナルティの総和が、それ自体二次ペナルティとして書き込まれてもよい。
【００２１】
上述の態様は、任意の都合のよい形態で実装されることが可能である。たとえば、態様および実装例は、有形の担持媒体(たとえば、ディスク)または無形の担持媒体(たとえば、通信信号)であってもよい適切な担持媒体上で運ばれる場合がある適切なコンピュータプログラムによって実装されてもよい。態様は、コンピュータプログラムを実行するプログラミング可能なコンピュータの形態をとる場合がある好適な装置を使用して実装されてもよい。
【００２２】
本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装されることが可能である。本明細書において説明されるように複数のタスクに関して同じ機械学習モデルをトレーニングすることによって、モデルがトレーニングされると、モデルは、許容可能なレベルの性能で複数のタスクの各々のために使用されることが可能である。結果として、複数のタスクに関して許容可能な性能を達成することができる必要があるシステムが、それらのシステムの記憶容量をそれほど使用せずに、システムの複雑さを減らしながらそのようにすることが可能である。たとえば、それぞれが異なるパラメータ値を有するモデルの複数の異なるインスタンスではなくモデルの単一のインスタンスを維持することによって、複数の異なるパラメータセットではなくパラメータのただ1つのセットが記憶される必要があり、各タスクに関して許容可能な性能を維持しながら必要とされるストレージの量を削減する。加えて、パラメータが前に学習されたタスクに対してどれだけ重要であるかに部分的に依存して目的関数を最適化するためにモデルのパラメータ値を調整することによって新しいタスクに関してモデルをトレーニングすることによって、モデルは、前のタスクについての知識を守りながら新しいタスクを連続して効果的に学習することができる。
【００２３】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２４】
【図１】機械学習モデルをトレーニングする機械学習システムの例のブロック図である。
【図２】複数のタスクに関して複数のパラメータを有する機械学習モデルをトレーニングするための例示的なプロセスの流れ図である。
【図３】機械学習モデルが第1のおよび第2の機械学習タスクに関してトレーニングされた後に第3の機械学習タスクに関して機械学習モデルをトレーニングするための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００２５】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００２６】
本明細書は、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステム、たとえば機械学習システムが複数の機械学習タスクに関して機械学習モデルをどのようにしてトレーニングすることができるかを説明する。
【００２７】
場合によっては、複数の機械学習タスクは、異なる教師あり学習タスクである。たとえば、教師あり学習タスクは、画像処理タスク、音声認識タスク、自然言語処理タスク、または光学式文字認識タスクなどの異なる分類タスクを含む場合がある。たとえば、画像処理タスクは、各画像認識タスクが画像内の異なる物体またはパターンの認識を必要とする異なる画像認識タスクを含む場合がある。別の例として、音声認識タスクは、各タスクが異なるホットワード(hotword)またはホットワードのシーケンスの認識を必要とする複数のホットワード検出タスクを含む場合がある。
【００２８】
いくつかのその他の場合、複数の機械学習タスクは、異なる強化学習タスクである。たとえば、強化学習タスクは、エージェントが異なる目的を達成するために異なる環境とインタラクションするかまたは同じ環境とインタラクションする複数のタスクを含む場合がある。たとえば、強化学習タスクは、コンピュータ化されたエージェントが複数の異なるシミュレーションされたまたは仮想化された環境とインタラクションする複数のタスクを含む場合がある。別の例として、強化学習タスクは、ロボットエージェントが現実の環境とインタラクションして異なる目的を達成しようとする複数のタスクを含む場合がある。そのようなロボットエージェントは、動かないまたは動く機械または車両に具現化されてもよい。
【００２９】
図1は、例示的な機械学習システム100を示す。機械学習システム100は、以下で説明されるシステム、コンポーネント、および技法が実装される1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【００３０】
機械学習システム100は、複数の機械学習タスクに関して機械学習モデル110を逐次トレーニングするように構成される。機械学習モデル110は、入力を受け取り、受け取られた入力に基づいて出力、たとえば予測される出力を生成することができる。
【００３１】
場合によっては、機械学習モデル110は、複数のパラメータを有するパラメトリックモデルである。これらの場合、機械学習モデル110は、受け取られた入力およびモデル110のパラメータ値に基づいて出力を生成する。
【００３２】
いくつかのその他の場合、機械学習モデル110は、受け取られた入力に関する出力を生成するためにモデルの複数の層を使用する深層機械学習モデルである。たとえば、深層ニューラルネットワークは、出力を生成するために受け取られた入力に非線形変換をそれぞれ適用する出力層および1つまたは複数の隠れ層を含む深層機械学習モデルである。
【００３３】
概して、機械学習システム100は、たとえばモデル110の目的関数118を最適化することによって、特定のタスクに関してモデル110の性能を最適化するために機械学習モデル110のパラメータ値を調整することによって特定のタスクに関して、すなわち特定のタスクを学習するために機械学習モデル110をトレーニングする。
【００３４】
システム100は、一連の複数の機械学習タスクを学習するためにモデル110をトレーニングすることができる。概して、機械学習モデル110が前のタスクを忘れることなく新しいタスクを学習することを可能にするために、システム100は、前のタスクについての情報に基づいて前のタスクのための許容可能な性能の範囲内（たとえば誤差の少ない範囲）に残るようにパラメータを制約することによって前のタスクにおける性能を守りながら新しいタスクに関してモデル110の性能を最適化するためにモデル110をトレーニングする。
【００３５】
システム100は、重要度重み計算エンジン112を使用して前のタスクについての情報を決定する。特に、モデル110が前にトレーニングされた各タスクに関して、エンジン112は、そのタスクに対応する重要度重みのセットを決定する。概して、所与のタスクに関する重要度重みのセットは、タスクに関して許容可能な性能を達成する、モデル110にパラメータの重要度の尺度を表すモデル110の各パラメータに関するそれぞれの重みを含む。そして、システム100は、モデル110が前のタスクに関して許容可能なレベルの性能を保ちながら新しいタスクに関して許容可能なレベルの性能を達成するように、前のタスクに対応する重要度重みのセットを使用して新しいタスクに関してモデル110をトレーニングする。
【００３６】
図1に示されるように、第1のトレーニングデータを使用してモデル110の第1のパラメータ値を決定してモデル110が第1の機械学習タスク、たとえばタスクAに関してトレーニングされたものとすると、重要度重み計算エンジン112は、タスクAに対応する重要度重み120のセットを決定する。特に、エンジン112は、モデル110のパラメータの各々に関して、タスクAに関して許容可能な性能を達成する、モデル110にパラメータの重要度の尺度を表すそれぞれの重要度重みを決定する。パラメータの各々に関するそれぞれの重要度重みを決定することは、タスクAに関して機械学習モデル110をトレーニングするために使用された第1のトレーニングデータを前提として、パラメータの各々に関して、現在のパラメータ値がパラメータの正しい値である確率の見積もりを決定することを含む。
【００３７】
たとえば、エンジン112は、モデル110が前の機械学習タスクからの前のトレーニングデータに関してトレーニングされた後にモデル110のパラメータの可能な値の事後分布を決定してもよい。パラメータの各々に関して、事後分布は、現在のパラメータ値に値を割り当て、値は、現在の値がパラメータの正しい値である確率を表す。
【００３８】
いくつかの実装例において、エンジン112は、見積もり方法、たとえばフィッシャー情報行列(FIM)を使用して事後分布を見積もることができる。エンジン112は、タスクAに関連してモデル110のパラメータのFIMを決定することができ、パラメータの各々に関して、パラメータのそれぞれの重要度重みは、FIMの対角項の対応する値である。すなわち、FIMの対角項の各値が、機械学習モデル110の異なるパラメータに対応する。
【００３９】
エンジン112は、タスクAに関連して目的関数118を最適化するパラメータ値において目的関数118の二次導関数を計算することによってFIMを決定することができる。FIMはまた、一階導関数だけから計算可能であり、したがって大きな機械学習モデルに関してさえも計算することが容易である。FIMは、半正定値(positive semidefinite)であることが保証される。FIMを計算することは、Pascanu R、Bengio Y (2013)、"Revisiting natural gradient for deep networks"、arXiv:1301.3584により詳細に説明される。
【００４０】
エンジン112がタスクAに対応する重要度重み120のセットを決定した後、システム100は、新しい機械学習タスク、たとえばタスクBに対応する新しいトレーニングデータ114に関してモデル110をトレーニングすることができる。
【００４１】
モデル118がタスクAを忘却することなくタスクBを学習することを可能にするために、タスクBに関してモデル110をトレーニングしている間に、システム100は、タスクAの許容可能な性能を維持することを目的とする目的関数118のペナルティ項を形成するためにタスクAに対応する重要度重み120のセットを使用する。すなわち、モデル110は、タスクBに関連して目的関数118を最適化するトレーニングされたパラメータ値116を決定するためにトレーニングされ、目的関数118がペナルティ項を含むので、モデル110は、タスクBに関してトレーニングされた後でさえもタスクAに関して許容可能な性能を維持する。モデル110および目的関数118をトレーニングするためのプロセスが、図2を参照して以下でより詳細に説明される。
【００４２】
機械学習タスクのシーケンスに3つ異常のタスクが存在するとき、たとえばモデル110がタスクBに関してトレーニングされた後にまだ第3のタスク、たとえばタスクCに関してトレーニングされる必要があるときは、タスクBに関するトレーニングされたパラメータ値116が決定された後、機械学習システム100は、エンジン112がタスクBに対応する重要度重みの新しいセットを決定することができるようにエンジン112にトレーニングされたパラメータ値116を提供する。
【００４３】
タスクCに関してモデル110をトレーニングするとき、システム100は、タスクCに関連してモデル110によって最適化される目的関数118の新しいペナルティ項を形成するためにタスクAに対応する重要度重みのセットおよびタスクBに対応する重要度重みの新しいセットを使用するためにモデル110をトレーニングすることができる。タスクCに関して機械学習モデル110をトレーニングするためのプロセスが、図3を参照して以下でより詳細に説明される。このトレーニングプロセスは、モデル110が機械学習タスクのシーケンスのすべてのタスクを学習し終えるまで繰り返されることが可能である。
【００４４】
図2は、複数のタスクに関して複数のパラメータを有する機械学習モデルを逐次トレーニングするための例示的なプロセス200の流れ図である。
【００４５】
便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた機械学習システム、たとえば図1の機械学習システム100がプロセス200を実行することができる。
【００４６】
機械学習モデルは、機械学習モデルの第1のパラメータ値を決定するために第1の機械学習タスクに関してトレーニング済みのモデルである。
【００４７】
別のタスクに関して機械学習モデルをトレーニングするために、システムは、まず複数のパラメータの各々に関して、第1の機械学習タスクに関する許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度(たとえば、パラメータの重要度重み)を決定する(ステップ202)。
【００４８】
パラメータの重要度のそれぞれの尺度を決定することは、第1の機械学習タスクに関して機械学習モデルをトレーニングするために使用された第1のトレーニングデータを前提として、現在のパラメータ値がパラメータの正しい値である確率の見積もりを決定することを含む。
【００４９】
たとえば、システムは、モデルが前の機械学習タスクからの前のトレーニングデータに関してトレーニングされた後にモデルのパラメータの可能な値の事後分布を決定してもよい。パラメータの各々に関して、事後分布は、現在のパラメータ値に値を割り当て、値は、現在の値がパラメータの正しい値である確率を表す。
【００５０】
いくつかの実装例において、システムは、見積もり方法、たとえばフィッシャー情報行列(FIM)を使用して事後分布を見積もることができる。特に、システムは、第1の機械学習タスクに関連して機械学習モデルのパラメータのフィッシャー情報行列(FIM)を決定し、パラメータの各々に関して、パラメータの重要度のそれぞれの尺度は、FIMの対角項の対応する値である。すなわち、FIMの対角項の各値が、機械学習モデルの異なるパラメータに対応する。
【００５１】
次に、システムは、第2の異なる機械学習タスクに関して機械学習モデルをトレーニングするための新しいトレーニングデータを取得する(ステップ204)。新しいトレーニングデータは複数のトレーニング例を含む。各トレーニング例は、入力例と入力例に関する目標出力とのペアを含む。
【００５２】
いくつかの実装例において、第1の機械学習タスクおよび第2の機械学習タスクは、異なる教師あり学習タスクである。いくつかのその他の実装例において、第1の機械学習タスクおよび第2の機械学習タスクは、異なる強化学習タスクである。
【００５３】
その後、システムは、新しいトレーニングデータに関して機械学習モデルをトレーニングすることによって第2の機械学習タスクに関して機械学習モデルをトレーニングする(ステップ206)。
【００５４】
(たとえば、第1のタスクについてのメモリを保持することによって)機械学習モデルが第1のタスクを忘却することなく第2のタスクを学習することを可能にするために、システムは、第1のタスクに関連して機械学習モデルに対するパラメータの重要度の決定された尺度に基づくペナルティ項に部分的に依存する目的関数を最適化するために第1のパラメータ値を調整することによって新しいトレーニングデータに関して機械学習モデルをトレーニングする。
【００５５】
ペナルティ項は、第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して第1の値からの逸脱により重いペナルティを与える。目的関数を最適化する、たとえば最小化するために第1のパラメータ値を調整することによって、機械学習モデルは、第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要であったパラメータ値が第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要でなかったパラメータ値よりも第1の値から逸脱しないようにより強く制約されることを保証する。
【００５６】
いくつかの実装例において、目的関数は、次のように表されることが可能である。
【数１】
2019525329.tif 000003
【００５７】
式1に示される目的関数は、2つの項を含む。第1の項LB(θ)は、第2の機械学習タスクに関する機械学習モデルの性能を測定する。第1の項は、第2の機械学習タスクに適切である任意の目的関数、たとえば交差エントロピー損失、平均二乗誤差、最大尤度、深層Qネットワーク(DQN)オブジェクティブ(deep Q network's (DQN) objective)などであってもよい。第2の項
【数２】
2019525329.tif 000004
は、第1のパラメータ値から逸脱するパラメータ値に対してペナルティを科すペナルティ項である。特に、ペナルティ項は、機械学習モデルの複数のパラメータのうちの各パラメータiに関して、(i)第1の機械学習タスクに関して許容可能なレベルの性能を達成する機械学習モデルに対するパラメータの重要度Fiのそれぞれの尺度と、(ii)パラメータθiの現在の値とパラメータ
【数３】
2019525329.tif 000005
の第1の値との間の差との積に依存する。第2の項はまた、古いタスク(たとえば、第1の機械学習タスク)が新しいタスク(たとえば、第2の機械学習タスク)と比べてどれだけ重要であるかを設定するλも依存する。Fiの値は、ニューラルネットワークの重みの不確かさを表す場合があり、FIMの対角項の値などから導出される場合がある。
【００５８】
第1のパラメータ値を調整するための1つの手法において、システムは、新しいトレーニングデータ内の複数のトレーニング例の各々に関して以下の反復を実行する。
【００５９】
各トレーニング例に関して、システムは、モデルの出力を決定するために機械学習モデルの現在のパラメータ値に従って機械学習モデルを使用して入力例を処理する。
【００６０】
第1の反復に関して、現在のパラメータ値は、機械学習モデルが第1の機械学習タスクに関してトレーニングされた後に決定された第1のパラメータ値に等しい。
【００６１】
次に、システムは、モデルの出力、入力例に関する目標出力、機械学習モデルの現在のパラメータ値、および機械学習モデルの第1のパラメータ値を使用して目的関数の勾配を決定する。
【００６２】
その後、システムは、目的関数を最適化するために決定された勾配を使用して現在のパラメータ値を調整する。そして、パラメータの調整された値が、次の反復において現在のパラメータ値として使用される。
【００６３】
場合によっては、システムは、複数のトレーニング例をバッチで処理する。これらの場合、各バッチに関して、現在の値は、バッチにおいて各トレーニング例に関して固定される。より詳細には、システムは、モデルの出力を決定するために機械学習モデルの現在のパラメータ値に従って機械学習モデルを使用して各バッチにおいてトレーニング例の入力例を処理する。次に、システムは、モデルの出力、バッチにおける入力例に関する目標出力、機械学習モデルの現在のパラメータ値、および機械学習モデルの第1のパラメータ値を使用して目的関数の勾配を決定する。その後、システムは、目的関数を最適化するために決定された勾配を使用して現在のパラメータ値を調整する。そして、パラメータの調整された値が、次のバッチにおいて現在のパラメータ値として使用される。
【００６４】
システムが新しいトレーニングデータ内のすべてのトレーニング例に関して上記の反復を実行した後、システムは、第2の機械学習タスクに関する新しいトレーニングデータに関して機械学習モデルをトレーニングすることを終える。最後の反復において取得された現在のパラメータ値は、第2の機械学習タスクに関連して機械学習モデルのトレーニングされたパラメータとして決定される。このようにしてモデルをトレーニングすることは、機械学習モデルが第1の機械学習タスクに関して許容可能なレベルの性能を維持しながら第2の機械学習タスクに関して許容可能なレベルの性能を達成することを可能にするトレーニングされたパラメータ値をもたらす。
【００６５】
システムが第2の機械学習タスクに関して機械学習モデルをトレーニングすると、システムは、モデルが既にトレーニングされたタスクに関して許容可能なレベルの性能を維持しながら新しい機械学習タスクに関して許容可能なレベルの性能を達成するために機械学習モデルをトレーニングし続けることができる。
【００６６】
たとえば、機械学習モデルの第2のパラメータ値を決定するために第2の機械学習タスクに関して機械学習モデルをトレーニングした後、システムは、第3の異なる機械学習タスクに関して機械学習モデルをトレーニングし続けることができる。
【００６７】
図3は、機械学習モデルが第1のおよび第2の機械学習タスクに関してトレーニングされた後に第3の機械学習タスクに関して機械学習モデルをトレーニングするための例示的なプロセス300の流れ図である。
【００６８】
便宜上、プロセス300は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた機械学習システム、たとえば図1の機械学習システム100が、プロセス300を実行することができる。
【００６９】
システムは、オプションで複数のパラメータの各々に関して、第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度を決定することができる(ステップ302)。
【００７０】
システムは、第3の機械学習タスクに関して機械学習モデルをトレーニングするための第3のトレーニングデータを取得する(ステップ304)。
【００７１】
そして、システムは、機械学習モデルが第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能なレベルの性能を維持しながら第3の機械学習タスクに関して許容可能なレベルの性能を達成するように第2のパラメータ値を調整するために第3のトレーニングデータに関して機械学習モデルをトレーニングすることによって第3の機械学習タスクに関して機械学習モデルをトレーニングする(ステップ306)。第3の機械学習タスクに関して機械学習モデルをトレーニングする間、第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要であったパラメータ値が、第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルにおいてより重要でなかったパラメータ値よりも第2の値から逸脱しないようにより強く制約される。
【００７２】
場合によっては、システムは、第1の機械学習タスクに関する許容可能な性能を達成する機械学習モデルに対するパラメータの重要度の尺度および第2の機械学習タスクに関する許容可能な性能を達成する機械学習モデルに対するパラメータの重要度の尺度に基づくペナルティ項に部分的に依存する新しい目的関数を最適化するパラメータの第3の値を取得するために第2のパラメータ値を調整するために機械学習モデルをトレーニングする。
【００７３】
たとえば、新しい目的関数は、(i)第3の機械学習タスクに関する機械学習モデルの性能を測定する第1の項と、(ii)第2の項が第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して第1の値からの逸脱により重いペナルティを与える、第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項と、(iii)第3の項が第2の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも第2の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して第2の値からの逸脱により重いペナルティを与える、第2のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第3の項とを含む。
【００７４】
新しい目的関数の第2の項は、複数のパラメータの各々に関して、(i)第1の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度と、(ii)現在のパラメータ値と第1のパラメータ値との間の差との積に依存してもよい。
【００７５】
新しい目的関数の第3の項は、複数のパラメータの各々に関して、(i)第2の機械学習タスクに関して許容可能な性能を達成する機械学習モデルに対するパラメータの重要度のそれぞれの尺度と、(ii)現在のパラメータ値と第2のパラメータ値との間の差との積に依存してもよい。
【００７６】
パラメータの取得された第3の値は、機械学習モデルが第1の機械学習タスクおよび第2の機械学習タスクに関して許容可能なレベルの性能を維持しながら第3の機械学習タスクに関して許容可能なレベルの性能を達成することを可能にする。
【００７７】
いくつかの実装例において、目的関数は、次のように表されることが可能である。
【数４】
2019525329.tif 000006
ここで、
【数５】
2019525329.tif 000007
は、第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課し、機械学習モデルの複数のパラメータのうちの各パラメータiに関して、(i)第1の機械学習タスクに関して許容可能なレベルの性能を達成する機械学習モデルに対するパラメータの重要度FA,iのそれぞれの尺度と、(ii)パラメータθiの現在の値との第1のパラメータ値
【数６】
2019525329.tif 000008
との間の差との積に依存するペナルティ項である。
【数７】
2019525329.tif 000009
は、第2のパラメータ値から逸脱するパラメータ値に対してペナルティを課し、機械学習モデルの複数のパラメータのうちの各パラメータiに関して、(i)第2の機械学習タスクに関して許容可能なレベルの性能を達成する機械学習モデルに対するパラメータの重要度FB,iのそれぞれの尺度と、(ii)パラメータθiの現在の値と第2のパラメータ値
【数８】
2019525329.tif 000010
との間の差との積に依存する別のペナルティ項である。
【００７８】
上述の手法を実装する機械学習システム、たとえばRLシステムは、タスクの切り替えを自動的に特定するためのシステムを含んでもよい。これは、教師なしでトレーニングされるオンラインクラスタリングアルゴリズムを実装してもよい。たとえば、これは、この観測を説明する隠れマルコフモデルの隠れ変数(hidden variable)として扱われる分類コンテキスト(categorical context)cとして現在のタスクをモデリングすることによって行われることが可能である。タスクコンテキスト(task context)cは、観測確率(observation probability)を予測する生成モデルを条件付ける場合があり、新しい生成モデルが生成モデルの既存のプールよりもうまく最近のデータを説明する場合、新しい生成モデルが追加されてもよい。たとえば、それぞれの連続する時間窓の終わりに、現在のタスクに最もうまく対応するモデルが選択されてもよく、1つの初期化されていない(一様分布)モデルが新しい生成モデルおよびタスクコンテキストを生成するために選択に利用できるようにされてもよい。
【００７９】
上述の手法を実装するRLシステムは、方策オン型(on-policy)または方策オフ型(off-policy)で動作してもよく、方策オフ型で動作すると、それぞれの特定されたまたは推測されたタスクのために別々の経験バッファ(experience buffer)が維持される場合がある。オプションで、ニューラルネットワークの利得(gain)およびバイアス(bias)は、タスクに固有であってもよい。
【００８０】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作または行動を実行するように構成されることは、システムが、動作中にシステムに動作または行動を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行動を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行動を実行させる命令を含むことを意味する。
【００８１】
本明細書に記載の主題の実施形態および機能的動作は、本明細書で開示される構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【００８２】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。オプションで、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を生成するコード、たとえばプロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【００８３】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは称される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応してもよいが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえばマークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶されることが可能である。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【００８４】
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアに基づくシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジンに専用であり、その他の場合、複数のエンジンが、同じ1台のコンピュータまたは複数のコンピュータにインストールされ、実行されていることが可能である。
【００８５】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえばFPGAもしくはASICによって、または専用の論理回路と1つまたは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【００８６】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概してコンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはこれらの大容量記憶デバイスからデータを受信するか、もしくはこれらの大容量記憶デバイスにデータを転送するか、もしくはそれら両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえばほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【００８７】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００８８】
ユーザとのインタラクションを提供するために、本明細書に記載の主題の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえばCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そのデバイスから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえばスマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【００８９】
機械学習モデルを実装するためのデータ処理装置は、たとえば機械学習のトレーニングまたは生産、すなわち推測の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【００９０】
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
【００９１】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえばデータサーバとして含むか、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえばそれによってユーザが本明細書に記載の主題の実装例とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえばインターネットを含む。
【００９２】
コンピューティングシステムは、クライアントおよびサーバを含みことが可能である。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。いくつかの実施形態において、サーバは、たとえばクライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえばHTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【００９３】
本明細書は多くの特定の実装例の詳細を含むが、これらは、いかなる発明の範囲または特許請求され得るものの範囲に対する限定とも見なされるべきではなく、むしろ特定の発明の特定の実施形態に特有である場合がある特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明された特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明された様々な特徴が、複数の実施形態に別々に、または任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明された場合があり、最初にそのように特許請求されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする場合がある。
【００９４】
同様に、動作が特定の順序で図中に示され、特許請求の範囲に記載されているが、これは、そのような動作が示される特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されるすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であると理解されるべきである。
【００９５】
主題の特定の実施形態が説明された。他の実施形態は、添付の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に挙げられた行動は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図面に示されるプロセスは、所望の結果を達成するために、必ずしも示される特定の順序、または逐次的順序である必要はない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【００９６】
100  機械学習システム
110  機械学習モデル
112  重要度重み計算エンジン
114  新しいトレーニングデータ
116  トレーニングされたパラメータ値
118  目的関数
120  重要度重み
200  プロセス
300  プロセス
c  分類コンテキスト、タスクコンテキスト
【図１】
2019525329.tif 000011
【図２】
2019525329.tif 000012
【図３】
2019525329.tif 000013
【手続補正書】
【提出日】平成31年3月6日(2019.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のパラメータを有する機械学習モデルをトレーニングするコンピュータ実装方法であって、
前記機械学習モデルが、前記機械学習モデルの第1のパラメータ値を決定するために第1の機械学習タスクに関してトレーニング済みであり、
前記方法が、
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップと、
第2の異なる機械学習タスクに関して前記機械学習モデルをトレーニングするためのトレーニングデータを取得するステップと、
前記機械学習モデルが前記第1の機械学習タスクに関して許容可能なレベルの性能を維持しながら第2の機械学習タスクに関して許容可能なレベルの性能を達成するように、前記第1のパラメータ値を調整するために前記トレーニングデータに関して前記機械学習モデルをトレーニングすることによって前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングするステップと
を含み、
前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングする間、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要であったパラメータ値が、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要でなかったパラメータ値よりも、前記第1のパラメータ値から逸脱しないようにより強く制約される、方法。
【請求項２】
前記第1の機械学習タスクおよび前記第2の機械学習タスクが、異なる教師あり学習タスクである、請求項1に記載の方法。
【請求項３】
前記第1の機械学習タスクおよび前記第2の機械学習タスクが、異なる強化学習タスクである、請求項1に記載の方法。
【請求項４】
前記トレーニングデータに関して前記機械学習モデルをトレーニングするステップが、
(i)前記第2の機械学習タスクに関する前記機械学習モデルの性能を測定する第1の項と、
(ii)前記第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項であって、前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第1のパラメータ値からの逸脱により重いペナルティを与える、第2の項と
を含む目的関数を最適化するために前記第1のパラメータ値を調整するステップを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記トレーニングデータに関して前記機械学習モデルをトレーニングするステップが、前記トレーニングデータ内の各トレーニング例に関して、
モデルの出力を決定するために前記機械学習モデルの現在のパラメータ値に従って前記機械学習モデルを使用して前記トレーニング例を処理するステップと、
前記モデルの出力、前記トレーニング例に関する目標出力、前記機械学習モデルの前記現在のパラメータ値、および前記機械学習モデルの前記第1のパラメータ値を使用して前記目的関数の勾配を決定するステップと、
前記目的関数を最適化するために前記勾配を使用して前記現在のパラメータ値を調整するステップと
を含む、請求項4に記載の方法。
【請求項６】
前記第2の項が、前記複数のパラメータの各々に関して、前記パラメータの重要度の前記それぞれの尺度と、前記現在のパラメータ値と前記第1のパラメータ値との間の差との積に依存する、請求項5に記載の方法。
【請求項７】
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップが、
前記第1の機械学習タスクに関して前記機械学習モデルをトレーニングするために使用された第1のトレーニングデータを前提として、前記複数のパラメータの各々に関して、現在のパラメータ値が前記パラメータの正しい値である確率の概算を決定するステップを含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記複数のパラメータの各々に関して、前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップが、
前記第1の機械学習タスクに関連して前記機械学習モデルの前記複数のパラメータのフィッシャー情報行列(FIM)を決定するステップであって、前記複数のパラメータの各々に関して、前記パラメータの前記重要度の前記それぞれの尺度が、前記FIMの対角項の対応する値である、ステップを含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記機械学習モデルの第2のパラメータ値を決定するために前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングした後、
異なる第3の機械学習タスクに関して前記機械学習モデルをトレーニングするための第3のトレーニングデータを取得するステップと、
前記機械学習モデルが前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能なレベルの性能を維持しながら前記第3の機械学習タスクに関して許容可能なレベルの性能を達成するように、前記第2のパラメータ値を調整するために前記第3のトレーニングデータに関して前記機械学習モデルをトレーニングすることによって前記第3の機械学習タスクに関して前記機械学習モデルをトレーニングするステップと
をさらに含み、
前記第3の機械学習タスクに関して前記機械学習モデルをトレーニングする間、前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要であったパラメータ値が、前記第1の機械学習タスクおよび前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルにおいてより重要でなかったパラメータ値よりも前記第2のパラメータ値から逸脱しないようにより強く制約される、
請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記複数のパラメータの各々に関して、前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度のそれぞれの尺度を決定するステップをさらに含み、
前記第3のトレーニングデータに関して前記機械学習モデルをトレーニングするステップが、
(i)前記第3の機械学習タスクに関する前記機械学習モデルの性能を測定する第1の項と、
(ii)第1のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第2の項であって、前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第1の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第1のパラメータ値からの逸脱により重いペナルティを与える、第2の項と
(iii)第2のパラメータ値から逸脱するパラメータ値に対してペナルティを課す第3の項であって、前記第2の機械学習タスクに関して許容可能な性能を達成する際により重要でなかったパラメータよりも前記第2の機械学習タスクに関して許容可能な性能を達成する際により重要であったパラメータに対して前記第2のパラメータ値からの逸脱により重いペナルティを与える、第3の項と
を含む目的関数を最適化するために前記第2のパラメータ値を調整するステップを含む、
請求項9に記載の方法。
【請求項１１】
前記第2の項が、前記複数のパラメータの各々に関して、(i)前記第1の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度の前記それぞれの尺度と、(ii)前記現在のパラメータ値と前記第1のパラメータ値との間の差との積に依存する、請求項5に従属する場合の請求項10に記載の方法。
【請求項１２】
前記第3の項が、前記複数のパラメータの各々に関して、(i)前記第2の機械学習タスクに関して許容可能な性能を達成する前記機械学習モデルに対する前記パラメータの重要度の前記それぞれの尺度と、(ii)前記現在のパラメータ値と前記第2のパラメータ値との間の差との積に依存する、請求項5に従属する場合の請求項10に記載の方法。
【請求項１３】
機械学習タスクを切り替えるときを特定するステップと、それに応じて、前記目的関数の前記第2の項を更新するステップとをさらに含む、請求項4に従属する場合の請求項4から8のいずれか一項に記載の方法。
【請求項１４】
機械学習タスクを切り替えるときを特定するステップが、どのタスクが1つまたは複数のモデルから実行されているのかを推測するステップを含む、請求項13に記載の方法。
【請求項１５】
前記第2の機械学習タスクに関して前記機械学習モデルをトレーニングした後にデータを処理する際に使用するためにトレーニングされた機械学習モデルを提供するステップをさらに含む、請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記第1の機械学習タスクおよび前記第2の機械学習タスクがそれぞれ強化学習タスクを含み、前記強化学習タスクが、目標を達成するために環境とインタラクションするようにエージェントを制御することである、請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記第1の機械学習タスクおよび前記第2の機械学習タスクがそれぞれ、分類タスクを含み、前記分類タスクが、データを分類するために前記データを処理することである、請求項1から15のいずれか一項に記載の方法。
【請求項１８】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から17のいずれか一項に記載の方法を実行させるように動作可能である命令を記憶する1つまたは複数の記憶デバイスとを含む、システム。
【請求項１９】
1つまたは複数のコンピュータによって実行されるときに、前記1つまたは複数のコンピュータに、請求項1から17のいずれか一項に記載の方法を実行させる命令を符号化された、コンピュータ記憶媒体。
【国際調査報告】
2019525329.tif 000014
2019525329.tif 000015