IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7555429学習率がニアゼロである場合の勾配降下法
<>
  • 特許-学習率がニアゼロである場合の勾配降下法 図1
  • 特許-学習率がニアゼロである場合の勾配降下法 図2
  • 特許-学習率がニアゼロである場合の勾配降下法 図3
  • 特許-学習率がニアゼロである場合の勾配降下法 図4
  • 特許-学習率がニアゼロである場合の勾配降下法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-12
(45)【発行日】2024-09-24
(54)【発明の名称】学習率がニアゼロである場合の勾配降下法
(51)【国際特許分類】
   G06N 3/084 20230101AFI20240913BHJP
【FI】
G06N3/084
【請求項の数】 27
(21)【出願番号】P 2022571300
(86)(22)【出願日】2021-09-13
(65)【公表番号】
(43)【公表日】2023-09-28
(86)【国際出願番号】 US2021049995
(87)【国際公開番号】W WO2022056348
(87)【国際公開日】2022-03-17
【審査請求日】2023-04-06
(31)【優先権主張番号】63/077,868
(32)【優先日】2020-09-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/069,227
(32)【優先日】2020-10-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウィルコック,ジェレマイア
【審査官】多賀 実
(56)【参考文献】
【文献】Lili Jiang,"A Visual Explanation of Gradient Descent Methods (Momentum, AdaGrad, RMSProp, Adam)",Towards Data Science [online],2020年06月07日,[2024年4月10日検索], インターネット:<URL: https://towardsdatascience.com/a-visual-explanation-of-gradient-descent-methods-momentum-adagrad-rmsprop-adam-f898b102325c>
【文献】McMahan, H. Brendan et al.,"Ad click prediction: a view from the trenches",Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining [online],Association for Computing Machinery,2013年08月11日,pp.1222-1230,[2024年4月10日検索], インターネット:<URL: https: https://dl.acm.org/doi/abs/10.1145/2487575.2488200>,DOI:10.1145/2487575.2488200
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 17/10-17/18
(57)【特許請求の範囲】
【請求項1】
勾配降下アルゴリズムに従ってパラメータを反復的に更新するための方法であって、
n回目のイテレーションでは、
1つ以上のプロセッサが、第1次元の前記パラメータの勾配ベクトルの勾配値を決定するステップと、
前記1つ以上のプロセッサが、積の値を、(1)n-1回目のイテレーションで決定される前記積の値と、(2)決定した前記勾配値と前記勾配降下アルゴリズムの学習率との積、の和に少なくとも一部基づいて決定するステップと、
前記1つ以上のプロセッサが、前記積の値を含む関数に従って更新パラメータ値を決定するステップと、
前記1つ以上のプロセッサが、前記パラメータを前記更新パラメータ値に等しくなるように更新するステップとを含み、
前記積の値は、(1)累積線形勾配値と前記学習率との積および(2)前記n-1回目のイテレーションで決定される前記パラメータ値に少なくとも一部に基づく、方法。
【請求項2】
前記積の値は、(1)前記累積線形勾配値と前記学習率との前記積と(2)スケーリング値に従ってスケーリングされた前記n-1回目のイテレーションで決定される前記パラメータ値との差に等しい、請求項に記載の方法。
【請求項3】
前記1つ以上のプロセッサが、前記勾配値の二乗および前記n-1回目のイテレーションの累積二乗勾配値に基づいて、累積二乗勾配値を決定するステップをさらに含み、前記スケーリング値は、前記累積二乗勾配値および前記n-1回目のイテレーションの前記累積二乗勾配値の各々に基づく、請求項に記載の方法。
【請求項4】
【数4】

ここで、niは、前記累積二乗勾配値であり、ni-1は、前記n-1回目のイテレーションの前記累積二乗勾配値であり、lr_powerは、所定のパラメータである、請求項に記載の方法。
【請求項5】
前記積の値を含む前記関数は、前記パラメータ値を、
前記積の値の絶対値と前記学習率との割合が所定の固定値よりも大きい場合、ゼロに等しくなるように決定し、
前記積の値の前記絶対値と前記学習率との前記割合が前記所定の固定値以下である場合、非ゼロ値に等しくなるように決定する、請求項に記載の方法。
【請求項6】
パラメータ関数に従って前記非ゼロ値を決定するステップさらに含み、前記パラメータ関数の分母は、前記累積二乗勾配値、第1の所定の固定値、および第2の所定の固定値の各々を含み、前記累積二乗勾配値、前記第1の所定の固定値、および前記第2の所定の固定値の各々がゼロであった場合のみ、前記パラメータ関数は、ゼロ除算エラーを返す、請求項に記載の方法。
【請求項7】
【数5】

ここで、λ2およびβは、前記第1の所定の固定値および前記第2の所定の固定値であり、λ1は、第3の所定の固定値であり、ηは、前記学習率であり、piは、前記積の値であり、niは、前記累積二乗勾配値である、請求項に記載の方法。
【請求項8】
前記学習率は、ゼロから始まって時間の経過とともに大きくなるように予め定義される、請求項1~のいずれか1項に記載の方法。
【請求項9】
前記学習率は、ゼロに近い値から始まって時間の経過とともに大きくなるように予め定義される、請求項1~のいずれか1項に記載の方法。
【請求項10】
前記パラメータの前記勾配ベクトルは、複数の次元を含み、前記方法は、前記勾配ベクトルの各次元ごとに独立して実行される、請求項1~のいずれか1項に記載の方法。
【請求項11】
前記パラメータは、ニューラルネットワークのパラメータである、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記勾配降下アルゴリズムは、確率的勾配降下アルゴリズム、FTRL(Follow
the Regularized Leader)学習アルゴリズム、Adagrad、Adam、またはRMSPropのうち、いずれかである、請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記学習率は、時間の経過とともに変化するように予め定義されており、前記方法を実行するために割り当てられる前記1つ以上のプロセッサに含まれるコアの数は、前記学習率が時間の経過とともに変化しても一定のままである、請求項1~12のいずれか1項に記載の方法。
【請求項14】
システムであって、
命令を格納するためのメモリと、
前記メモリに連結された1つ以上のプロセッサとを備え、前記1つ以上のプロセッサは、格納された前記命令を実行して、勾配降下アルゴリズムに従ってパラメータを反復的に更新するように構成され、前記勾配降下アルゴリズムのn回目のイテレーションでは、前記1つ以上のプロセッサは、
第1次元の前記パラメータの勾配ベクトルの勾配値を決定し、
積の値を、(1)n-1回目のイテレーションで決定される前記積の値と、(2)決定した前記勾配値と前記勾配降下アルゴリズムの学習率との積、の和に少なくとも一部基づいて決定し、
前記積の値を含む関数に従って更新パラメータ値を決定し、
前記パラメータを前記更新パラメータ値に等しくなるように更新するように構成され、前記積の値は、(1)累積線形勾配値と前記学習率との積および(2)前記n-1回目のイテレーションで決定される前記パラメータ値に少なくとも一部に基づく、システム。
【請求項15】
前記積の値は、(1)前記累積線形勾配値と前記学習率との前記積と(2)スケーリング値に従ってスケーリングされた前記n-1回目のイテレーションで決定される前記パラメータ値との差に等しい、請求項14に記載のシステム。
【請求項16】
前記1つ以上のプロセッサは、前記勾配値の二乗および前記n-1回目のイテレーションの累積二乗勾配値に基づいて、累積二乗勾配値を決定するように構成され、前記スケーリング値は、前記累積二乗勾配値および前記n-1回目のイテレーションの前記累積二乗勾配値の各々に基づく、請求項15に記載のシステム。
【請求項17】
【数6】

ここで、niは、前記累積二乗勾配値であり、ni-1は、前記n-1回目のイテレーションの前記累積二乗勾配値であり、lr_powerは、所定のパラメータである、請求項16に記載のシステム。
【請求項18】
前記積の値を含む前記関数は、前記パラメータ値を、
前記積の値の絶対値と前記学習率との割合が所定の固定値よりも大きい場合、ゼロに等しくなるように決定し、
前記積の値の前記絶対値と前記学習率との前記割合が前記所定の固定値以下である場合、非ゼロ値に等しくなるように決定する、請求項17に記載のシステム。
【請求項19】
前記1つ以上のプロセッサは、パラメータ関数に従って前記非ゼロ値を決定するように構成され、前記パラメータ関数の分母は、前記累積二乗勾配値、第1の所定の固定値、および第2の所定の固定値の各々を含み、前記累積二乗勾配値、前記第1の所定の固定値、および前記第2の所定の固定値の各々がゼロであった場合のみ、前記パラメータ関数は、ゼロ除算エラーを返す、請求項18に記載のシステム。
【請求項20】
【数7】

ここで、λ2およびβは、前記第1の所定の固定値および前記第2の所定の固定値であり、λ1は、第3の所定の固定値であり、ηは、前記学習率であり、piは、前記積の値であり、niは、前記累積二乗勾配値である、請求項19に記載のシステム。
【請求項21】
前記学習率は、ゼロから始まって時間の経過とともに大きくなるように予め定義される、請求項14~20のいずれか1項に記載のシステム。
【請求項22】
前記学習率は、ゼロに近い値から始まって時間の経過とともに大きくなるように予め定義される、請求項14~20のいずれか1項に記載のシステム。
【請求項23】
前記パラメータの前記勾配ベクトルは、複数の次元を含み、前記1つ以上のプロセッサは、前記勾配ベクトルの各次元のパラメータを互いに独立して更新するように構成される、請求項14~22のいずれか1項に記載のシステム。
【請求項24】
前記パラメータは、ニューラルネットワークのパラメータである、請求項14~23のいずれか1項に記載のシステム。
【請求項25】
前記勾配降下アルゴリズムは、確率的勾配降下アルゴリズム、FTRL(Follow
the Regularized Leader)学習アルゴリズム、Adagrad、Adam、またはRMSPropのうち、いずれかである、請求項14~24のいずれか1項に記載のシステム。
【請求項26】
前記1つ以上のプロセッサは、前記勾配降下アルゴリズムに従って前記パラメータを反復的に更新するために割り当てられる一定数のコアを含む、請求項14~25のいずれか1項に記載のシステム。
【請求項27】
コンピュータに請求項1~13のいずれか1項に記載された方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年9月14日に出願された米国仮出願第63/077,868号の出願日の利益を主張する2020年10月13日に出願された米国特許出願第17/069,227号の継続出願であり、その開示内容を引用により本明細書に援用する。
【背景技術】
【0002】
背景
機械学習アルゴリズムのパラメータを更新するために勾配降下アルゴリズムが用いられる。これにより、いくつかのイテレーションの間にパラメータは改善し、機械学習アルゴリズムの正解率を改善させる値まで収束する。各イテレーションでは、パラメータは、パラメータの不正解の程度を示すコスト関数に応じた特定量だけ、調整され得る。この調整は、学習率に従ってさらにスケーリングされ得る。これにより、小さい学習率では調整が少しであり、高い学習率では、調整が大きくなる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
通常、最適解へのパスが見つかる前にパラメータを最初に大きく調整してしまうのを回避するために、学習率は、小さい値、それどころかゼロ値から始まる。しかしながら、いくつかの勾配降下アルゴリズムは、小さい値または0の学習率をアルゴリズムに入力することによってゼロ除算エラーなどのエラーが生じるので、このような値をサポートできない。学習率の値が非常に小さいと、0になり得る1つの理由、および/または、その後、分母として用いられた場合や分母の計算に用いられた場合にゼロ除算エラーを生じさせる1つの理由に、浮遊小数点の値の形で示される有理数の機械表現およびコンピュータ演算があり、浮動小数点演算は正解さに欠け、非常に小さい値は0にされてしまうためである。同様に、0に近い有理数が浮遊小数点の値で表現されて除算または乗算において用いられた場合、計算の答えは、浮動小数点表現で示される0となり得る。
【課題を解決するための手段】
【0004】
概要
この技術は、概して、学習率の値がゼロおよびニアゼロであることをサポートする勾配降下アルゴリズムに従って機械学習アルゴリズムにおけるパラメータを反復的に更新するための方法およびシステムに関する。勾配降下アルゴリズムは、少なくとも一部が累積線形勾配値と学習率との積である積の値を使用して、パラメータを反復的に更新する。累積線形勾配値を使用するではなく、積の値を使用することにより、更新パラメータを決定するための関数の分母に学習率が現れることを回避することができ、これにより、学習率の値がゼロおよびニアゼロである場合にゼロ除算エラーまたは同様のエラーを回避することができるようになる。
【0005】
本開示の一態様は、勾配降下アルゴリズムに従ってパラメータを反復的に更新するための方法を対象とする。この方法は、勾配降下アルゴリズムのn回目のイテレーションでは、1つ以上のプロセッサが、第1次元のパラメータの勾配ベクトルの勾配値を決定するステップと、1つ以上のプロセッサが、積の値を、(1)n-1回目のイテレーションで決定される積の値と、(2)決定した勾配値と勾配降下アルゴリズムの学習率との積、の和に少なくとも一部基づいて決定するステップと、1つ以上のプロセッサが、積の値を含む関数に従って更新パラメータ値を決定するステップと、1つ以上のプロセッサが、パラメータを更新パラメータ値に等しくなるように更新するステップとを含んでもよい。
【0006】
いくつかの例では積の値は、(1)累積線形勾配値と学習率との積および(2)n-1回目のイテレーションで決定されるパラメータ値に少なくとも一部基づいてもよい。
【0007】
いくつかの例では、積の値は、(1)累積線形勾配値と学習率との積と(2)スケーリング値に従ってスケーリングされたn-1回目のイテレーションで決定されるパラメータ値との差に等しくてもよい。
【0008】
いくつかの例では、方法は、1つ以上のプロセッサが、勾配値の二乗およびn-1回目のイテレーションの累積二乗勾配値に基づいて、累積二乗勾配値を決定するステップをさらに含んでもよい。スケーリング値は、累積二乗勾配値およびn-1回目のイテレーションの累積二乗勾配値の各々に基づいてもよい。
【0009】
【数1】
【0010】
ここで、nは、累積二乗勾配値であり、ni-1は、n-1回目のイテレーションの累積二乗勾配値であり、lr_powerは、所定のパラメータである。
【0011】
いくつかの例では、積の値を含む関数は、パラメータ値を、積の値の絶対値と学習率との割合が所定の固定値よりも大きい場合、ゼロに等しくなるように決定し、積の値の絶対値と学習率との割合が所定の固定値以下である場合、非ゼロ値に等しくなるように決定してもよい。
【0012】
いくつかの例では、方法は、パラメータ関数に従って非ゼロ値を決定するステップを含んでもよい。パラメータ関数の分母は、累積二乗勾配値、第1の所定の固定値、および第2の所定の固定値の各々を含んでもよく、これにより、累積二乗勾配値、第1の所定の固定値、および第2の所定の固定値の各々がゼロであった場合のみ、パラメータ関数は、ゼロ除算エラーを返す。
【0013】
【数2】
【0014】
ここで、λおよびβは、第1の所定の固定値および第2の所定の固定値であり、λは、第3の所定の固定値であり、ηは、学習率であり、pは、積の値であり、nは、累積二乗勾配値である。
【0015】
いくつかの例では、学習率は、ゼロから始まって時間の経過とともに大きくなるように予め定義されてもよい。
【0016】
いくつかの例では、学習率は、ゼロに近い値から始まって時間の経過とともに大きくなるように予め定義されてもよい。
【0017】
いくつかの例では、パラメータの勾配ベクトルは、複数の次元を含んでもよい。方法は、勾配ベクトルの各次元ごとに独立して実行されてもよい。
【0018】
いくつかの例では、パラメータは、ニューラルネットワークのパラメータであってもよい。
【0019】
いくつかの例では、勾配降下アルゴリズムは、確率的勾配降下アルゴリズム、FTRL(Follow the Regularized Leader)学習アルゴリズム、Adagrad、Adam、またはRMSPropのうち、いずれかであってもよい。
【0020】
いくつかの例では、学習率は、時間の経過とともに変化するように予め定義されてもよく、方法を実行するために割り当てられる1つ以上のプロセッサに含まれるコアの数は、学習率が時間の経過とともに変化しても一定のままであってもよい。
【0021】
本開示の別の態様は、命令を格納するためのメモリと、当該メモリに連結された1つ以上のプロセッサとを備えるシステムを対象とし、当該1つ以上のプロセッサは、格納された命令を実行して、勾配降下アルゴリズムに従ってパラメータを反復的に更新し、本明細書に開示の方法を実行するように構成される。いくつかの例では、1つ以上のプロセッサは、勾配降下アルゴリズムに従ってパラメータを反復的に更新するために割り当てられる一定数のコアを含んでもよい。
【図面の簡単な説明】
【0022】
図1】本開示の態様に係る例示的なシステムを示すブロック図である。
図2】本開示の態様に係る例示的なルーチンを示すフロー図である。
図3図2のルーチンの例示的なサブルーチンを示すフロー図である。
図4図2のルーチンの例示的なサブルーチンを示すフロー図である。
図5】本開示の態様に係る、勾配降下アルゴリズムの学習率と処理との関係を示すフロー図である。
【発明を実施するための形態】
【0023】
詳細な説明
図1は、クエリを処理するためのコンピューティング環境を含む例示的なシステム100を示すブロック図である。システム100は、1つ以上のプロセッサ110と、1つ以上のプロセッサと通信するメモリ120とを備え得る。プロセッサ110は、周知のプロセッサ、または、その他のそれほど周知ではない種類のプロセッサを含み得る。これに代えて、プロセッサ110は、ASIC(特定用途向け集積回路)、GPU(グラフィックスプロセッシングユニット)、またはTPU(テンソルプロセッシングユニット)など、専用コントローラであり得る。メモリ120は、ハードドライブ、ソリッドステートドライブ、テープドライブ、光記憶装置、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能メモリ、および読取り専用メモリなど、プロセッサ110がアクセス可能な情報を格納できる一種の非一時的なコンピュータ読み取り可能な媒体を含み得る。システム100は、DAS(ダイレクトアタッチトストレージ)、NAS(ネットワーク接続型記憶装置)、SAN(ストレージエリアネットワーク)、FC(ファイバーチャネル)、FCoE(ファイバーチャネルオーバーイーサネット(登録商標))、混合アーキテクチャネットワークなど、複数のアーキテクチャおよび技術のいずれも実装し得るが、これらに限定されない。データセンターは、記憶装置に加えて、ケーブル、ルータなど、その他のデバイスを備え得る。
【0024】
メモリ120は、プロセッサ110において受信または生成されるデータ、および1つ以上のプロセッサ110が実行できる命令を含む、1つ以上のプロセッサ110がアクセスできる情報を格納できる。当該データは、命令に従ってプロセッサ110によって検索されたり、格納されたり、または修正されたりし得る。たとえば、当該システムおよび方法は特定のデータ構造によって限定されないが、データは、複数の異なるフィールドおよびレコードを有する構造、または文書、またはバッファとして、コンピュータレジスタ、データストアに格納され得る。また、データは、バイナリ値、ASCII、またはUnicodeなど、コンピュータスが読み取り可能な形式にフォーマットされ得るが、これらに限定されない。また、データは、数字、説明文、プロプライエタリコード、ポインタ、その他のネットワークの場所などその他のメモリに格納されているデータへのリファレンスなど、関連性のある情報を特定するのに十分な情報、または、関連性のあるデータを計算するための関数が用いる情報を含み得る。命令は、動作を実行するようプロセッサ110に指示するための様々なアルゴリズムを含み得る。命令は、プロセッサ110によって直接処理されるオブジェクトコードのフォーマットで格納された機械コードなど、直接実行される一連の命令、または、スクリプト、要求に基づいて解釈されたり予めコンパイルされたりする独立したソースコードモジュールから構成されるスクリプトまたはコレクションなど、間接的に実行される一連の命令を含み得る。その点では、「命令」、「ステップ」、「ルーチン」、および「プログラム」という用語は、本明細書において同義で用いられ得る。
【0025】
命令は、訓練データ140を受信するよう1つ以上のプロセッサ110に指示する、勾配降下アルゴリズム130の1つ以上の指定目標に従って訓練データ140を処理するよう1つ以上のプロセッサ110に指示する、および将来新しいデータを処理する際に指定目標をより適切に実現できるようにするために、処理結果が成功であったか失敗であったかに基づいて勾配降下アルゴリズム130を漸進的に調整するよう1つ以上のプロセッサ110に指示するようプログラムされた勾配降下アルゴリズム130を含み得る。勾配降下アルゴリズム130は、教師あり学習アルゴリズムにおいて用いられ得る。これにより、訓練データ140の既知のプロパティに従って、処理結果が成功であったか失敗であったかが判断され得る。これに代えて、勾配降下アルゴリズム130は、完全または部分教師なし学習アルゴリズムにおいて用いられ得る。これにより、処理結果が成功であったか失敗であったかについての少なくとも一部が、クラスタリングアルゴリズムまたは連想アルゴリズムなどを通して、処理結果自体から導出され得る。完全または部分教師なし学習アルゴリズムの場合、訓練データ140の少なくとも一部は、勾配降下アルゴリズムによって今後処理される新しいデータのように、未知のプロパティを有している。
【0026】
勾配降下アルゴリズム130は、システムの機械学習構造の1つ以上のパラメータ132に作用し得る。機械学習構造は、構造の出力が、入力および1つ以上の変数もしくは1つ以上のパラメータの関数である機械学習アルゴリズムまたはその他のアルゴリズムであり得る。パラメータ132を調整することによって機械学習構造を変更して、出力の正解率を改善し得る。一例として、ニューラルネットワークでは、パラメータは、ネットワークのノードと層との間の重みまたは埋め込みを含んでもよく、全結合層を含んでもよく、または、任意のそれらの組合せを含んでもよい。また、機械学習構造は、複数の層など1つ以上の超パラメータに従って動作し得る、または、学習率134に従って動作し得る。学習率134は、勾配降下アルゴリズムの所与のイテレーションに対する機械学習構造への調整の大きさを定め得る。異なる機械学習構造は、異なるパラメータおよび異なる超パラメータを含み得ることを理解されたい。
【0027】
いくつかの例では、勾配降下アルゴリズム130は、機械学習構造の1つ以上の超パラメータに作用し得る。一例として、学習率134は、勾配降下アルゴリズム130の出力に従って調整されてもよい。たとえば、勾配降下アルゴリズム130によってパラメータ132が大きく変更された場合、勾配降下アルゴリズム130のイテレーション当たりのパラメータ132の変化率を減速させるために、学習率134を上げると判断し得る。反対に、勾配降下アルゴリズム130によってパラメータ132が少し変更された場合、学習率134を維持するまたは下げると判断し得る。これに代えて、学習率などの超パラメータは、予め定められてもよい。たとえば、学習率134は、ステップ関数など、所定の関数に従って時間の経過とともに変化してもよく、または、一定のままであってもよい。学習率がステップ関数である場合、学習率は、0または0に近い値から始まってもよく、時間の経過とともに大きくなってもよい。「0に近い」値は、勾配降下アルゴリズム130を用いて更新パラメータを決定する関数を学習率で除算した場合にエラーまたは不正確な計算の答えを返す値を含む。
【0028】
図1では、プロセッサ110およびメモリ120の各々が1つのブロックとして機能的に示されているが、プロセッサ110およびメモリ120は、実際には、複数のプロセッサおよび複数のメモリを含んでもよく、これらは同じ物理的な筐体に格納されてもよく、同じ物理的な筐体に格納されなくてもよい。たとえば、メモリに格納されているデータおよび命令の一部をリムーバブルCD-ROMに格納し、その他を読取り専用コンピュータチップ内に格納できる。命令およびデータの一部またはすべては、プロセッサ110から物理的に離れた場所ではあるがプロセッサ110がアクセスできる場所に格納できる。
【0029】
図2は、勾配降下アルゴリズムのパラメータ「w」を更新するための例示的なルーチン200を示すフロー図である。例示的なルーチン200は、勾配降下アルゴリズムの1回のイテレーション「i」に含まれるステップを示しており、これにより、勾配降下アルゴリズムの前回のイテレーションは、「i-1」として定義されている。i-1回目のイテレーションで決定されるパラメータは、本明細書において、wi-1と称され、i回目のイテレーションで決定されるパラメータは、wと称される。ルーチンは、図1に示すプロセッサ110など、1つ以上のプロセッサによって実行され得る。
【0030】
ブロック210では、1つ以上のプロセッサがパラメータwの勾配値gを決定する。勾配値gは、コスト関数に従って算出され得る。このコスト関数は、たとえば、勾配降下アルゴリズムによって出力される実際のパラメータを、予測したパラメータの出力と比較することによって、直近に決定されたパラメータ値wi-1に関する処理結果の成功または失敗の程度を特徴付ける。
【0031】
勾配降下アルゴリズムのi回目のイテレーションの勾配値g-iを利用して、累積線形勾配値mおよび累積二乗勾配値nのうち一方または両方を算出することができる。累積線形勾配値mは、勾配降下アルゴリズムの各イテレーションにおいて算出される勾配を合計することによって導出され得る。同様に、累積二乗勾配値nは、勾配降下アルゴリズムの各イテレーションにおいて算出される勾配の二乗を合計することによって導出され得る。
【0032】
ブロック220では、1つ以上のプロセッサは、積の値pを決定する。積の値pは、アルゴリズムpi-1の前回のイテレーションにおける積の値と、勾配降下アルゴリズムの学習率ηとgとの積、との和に基づき得る。たとえば、積の値pは、累積線形勾配値と学習率との積に等しくてもよい。さらに例えると、pは、スケーリングされたpi-1をさらに減算することによって導出されてもよい。pi-1をスケーリングするために用いられるスケーリング値は、累積二乗勾配値nに基づいてもよい。スケーリング値は、前回のイテレーションni-1の累積二乗勾配値に基づいてもよい。
【0033】
の例示的な算出を、図3のサブルーチン300に示す。ブロック310では、累積線形勾配値mを決定する。値mは、mi-1とgとの和であってもよい。ブロック320では、累積二乗勾配値nを決定する。値nは、ni-1とg との和であってもよい。ブロック330では、下記のスケーリング値関数に従ってスケーリング値sを算出する。
【0034】
(1)s=n -lr_power-ni-1 -lr_power
ここで、「lr_power」は、所定のパラメータである。ブロック340では、pを、下記の積の値の関数に等しいと判断する。
【0035】
(2)pi=(η×m)-(s×wi-1
図2に戻ると、ブロック230では、積の値pを含む関数に従って更新パラメータ値wを決定する。
【0036】
の例示的な算出を、図4のサブルーチン400に示す。ブロック410では、積の値の絶対値|p|と学習率ηとの割合が所定の固定値λを超えるかどうかを判断する。この判断によって、この判断によって、前回のイテレーション以降の最近の累積二乗勾配値nに対する変更を考慮しつつ、累積線形勾配値mが大きいか小さいかを評価する。これにより、所定の固定値λは、しきい値として機能する。割合がしきい値よりも大きい場合、動作はブロック420に続き得る。ブロック420では、更新パラメータ値を、0に等しいと決定する。そうで無い場合、割合がしきい値以下である場合、動作は、ブロック430に続き得る。ブロック430では、更新パラメータ値を、下記のパラメータ値関数に従って決定する。
【0037】
【数3】
【0038】
ここで、λおよびβは、両方とも所定の固定値であり、「sgn」は、符号関数である。パラメータ値関数(3)の分母は、累積二乗勾配値nならびに2つの別個の所定の固定値λおよびβの各々を含む。さらには、パラメータ値関数は、累積二乗勾配値nならびに所定の固定値λおよびβの両方の各々が0に等しい場合のみ、ゼロ除算エラーを返す。nの初期値は、通常、0以外の値(非ゼロ)に設定され、さらには、n、λ、およびβのすべてが0に等しくなるのは有効な構成ではない。そのため、パラメータ値関数(3)は、ゼロ除算エラーになることを回避する。
【0039】
再び図2に戻ると、ブロック240において、機械学習構造のパラメータwを更新して、決定したi回目のイテレーションのパラメータ値wと等しくする。パラメータwを更新することで、機械学習構造に、所与の入力に対して異なる結果を出力させ得る。これにより、勾配降下アルゴリズムのいくつかのイテレーションの間に、機械学習構造のコスト関数が反復的に小さくなるまたは最適化される。このように、機械学習構造は、コスト関数を最小限に抑えるまたは比較的小さくする最適な、または比較的最適な一連のパラメータに向かって収束し得、将来のデータ入力に対する機械学習構造による決定が、より正確な決定になる。
【0040】
上記例示的なルーチンでは、機械学習プロセスの1回のイテレーションが示されている。これにより、機械学習構造の1つのパラメータwが、漸進的に移動されて最適解に近づく。ルーチンは、反復的に実行されてもよく、これにより、イテレーションごとに、イテレーションとイテレーションとの間にシステムに入力される訓練データに基づいて、パラメータが引き続き移動して最適解に近づくことを理解されたい。イテレーションとイテレーションとの間の時間は、学習率によって定められる。当該時間は、固定された時間であってもよく、時間の経過とともに変化してもよく、所定のスケジュールに従って定められてもよく、または、機械学習プロセスに応じて定められてもよい。これに加えて、システムはいくつかのパラメータを含み得ること、および、ルーチンはパラメータの各々について独立して実行され得ることを理解されたい。これにより、各パラメータは、勾配ベクトルの異なる次元を表す。イテレーションごとに、一連のパラメータは、イテレーションとイテレーションとの間にシステムの機械学習構造に提供される訓練データに基づいて、移動して最適解に近づき得る。
【0041】
図2の例示的なルーチン200の利点は、学習率の値がゼロまたはニアゼロである場合にゼロ除算エラーが回避できることである。これは、パラメータ値関数の分母が、学習率によって除算されないためである。
【0042】
学習率の値がゼロまたはニアゼロである場合にゼロ除算エラーを回避することのメリットは、学習率に反比例する別のパラメータ値関数について考えた場合にわかる。学習率が0または0に近い場合、当該別の関数は、ゼロ除算エラーを返す。このようなパラメータ値関数における学習率がニアゼロであることの影響を回避するために、学習率をニアゼロ値よりも大きな値で始めることが必要である。しかしながら、比較的大きな学習率で機械学習プロセスを開始してしまうと、機械学習アルゴリズムが良好な解に収束する、すなわち、コスト関数を最小限に抑える一連のパラメータ値に収束することができなくなる。よって、勾配降下アルゴリズムが良好な解に向かって収束することを確実にするためには、機械学習構造のパラメータに対する調整を縮小させるための別の方法が必要になる。1つの方法は、勾配降下アルゴリズムの各イテレーションの間で考慮されるデータが少なくなるよう、訓練データの処理を遅くすることである。これは、機械学習構造を用いて訓練データを処理するために割り当てられるプロセッサコアの数を限定することによって達成されてもよい。処理を減らすことで、各イテレーションにおけるパラメータに対する調整が確実に小さくなる。最終的に、勾配降下アルゴリズムが良好な解に向かって移動を開始した後に、処理速度を速くしてもよいが、これは、勾配降下アルゴリズムのイテレーションがいくつか終わるまでは起こらない。
【0043】
図5は、本願の勾配降下アルゴリズムの訓練データの処理速度を、学習率がゼロまたはニアゼロである場合にゼロ除算エラーになりやすい架空の別の勾配降下アルゴリズム(以下、「Alt_GD」と称す)と比較した場合の違いを示す図である。第1曲線501は、割り当てられるプロセッサコアの数など、学習率に対してプロットされたAlt_GDの処理量を示す。第2曲線502は、割り当てられるプロセッサコアの数など、学習率に対してプロットされた本開示の勾配降下アルゴリズムの処理量を示す。
【0044】
曲線501と502との第1の違いは、曲線501がゼロ以外の学習率から始まる一方で、曲線502は、より低い学習率から始められることである。これは、Alt_GDが、動作の開始時に、本開示の勾配降下アルゴリズムがパラメータに対して行う変更よりも大きな変更を行っていることを意味する。これは、最適に満たない解に向かって急速に移動してしまうリスクを生じさせてしまう。
【0045】
曲線501と502との第2の違いは、曲線501が低い処理速度から始まって時間の経過とともに処理を増やす一方で、曲線502は、フル処理能力から開始してそれを維持することである。これは、Alt_GDの初期のイテレーションが、比較的少ない訓練データを受信した機械学習構造に作用する一方で、本開示の勾配降下アルゴリズムの初期のイテレーションは、比較的多くの訓練データを受信した機械学習構造に作用することを意味する。このように、本開示の勾配降下アルゴリズムは、解に向かってAlt_GDよりも早く収束する。
【0046】
改善された本開示の勾配降下アルゴリズムの処理を説明するために、図5は、それぞれの勾配降下アルゴリズムの4回のイテレーションの後に完了した処理量を比較する網掛け領域を含む。Alt_GDの場合、時刻Tにおいて(曲線501に沿った4つ目の点で示されるAlt_GDの4回のイテレーションにおいて)、実行された処理のトータルは、曲線501の下にある網掛け領域で示されている。本開示の勾配降下アルゴリズムの場合、時刻T’において(曲線502に沿った4つ目の点で示されているAlt_GDの4回のイテレーションにおいて)、実行された処理のトータルは、曲線502の下にある網掛け領域で示されている。見て分かるとおり、曲線501の下の領域は、曲線502の下の領域よりもはるかに小さい。これは、曲線502の場合の方が全体的な処理が速いことを示している。これは、Alt_GDの場合よりも、本開示の勾配降下アルゴリズムの場合の方が、時間TおよびT’においてそれぞれ得られる結果など、暫定結果が正確であることも示している。別の言い方をすると、本開示の勾配降下アルゴリズムのほうが、正確な暫定結果がより早く得られる。
【0047】
図2の上記例示的なルーチン200は、FTRL(Follow the Regularized Leader)学習アルゴリズムを用いてパラメータを更新する方法を示している。よって、例示的なルーチン200は、学習率で除算する他のFTRLアルゴリズムよりも有利であり得る。確率的勾配降下アルゴリズム、Adagrad、Adam、RMSPropなど、その他のアルゴリズムにも同じ基本原理を適用してもよいことを理解されたい。別の言い方をすると、学習率で除算するその他の勾配降下アルゴリズムの場合、積の値を決定すること、および積の値に基づいて更新パラメータ値を決定することなどの本開示の原理を適用して、学習率で除算することを回避してもよい。
【0048】
本明細書の技術について、特定の実施の形態を参照しながら説明したが、これらの実施の形態は、本技術の原理および適用の一例に過ぎないと理解されたい。そのため、当該例示的な実施の形態に対して多くの変更が加えられてもよく、添付の特許請求の範囲で示されている本技術の趣旨および範囲から逸脱することなく、その他の配置が考案されてもよいことを理解されたい。
【0049】
上記のその他の実施例のほとんどは、相互に排他的ではない。しかし、様々な組合せで実装してユニークな利点を実現してもよい。上述した機能のこれらのおよびその他の変形例および組合せは、添付の特許請求の範囲によって示される発明の主題を逸脱しない範囲で利用することができるため、上記実施の形態の説明は、添付の特許請求の範囲によって示される発明の主題を限定するものではなく、一例としてとらえるべきである。例として、前述の動作は、上述した順番に厳密に実行されなくてもよい。むしろ、逆の順序や、同時になど、様々なステップを異なる順序で処理できる。また、特段の記載がない限り、ステップを省略できる。これに加えて、本明細書に記載した実施例の提供、および「such as」、「including」などの言葉で表現された節の提供は、添付の特許請求の範囲の発明の主題を具体例に限定すると解釈されるべきではない。むしろ、これらの実施例は、多くの可能な実施の形態のうちの1つを例示しているにすぎない。さらには、異なる図面における同一の参照番号は、同一または同様の要素を識別し得る。
図1
図2
図3
図4
図5