(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022174422
(43)【公開日】2022-11-24
(54)【発明の名称】情報処理プログラム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06N 3/08 20060101AFI20221116BHJP
【FI】
G06N3/08 140
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021080210
(22)【出願日】2021-05-11
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】原 靖
(57)【要約】
【課題】計算コストを削減すること。
【解決手段】情報処理装置は、機械学習モデルに対する学習を実行する場合に、機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出する。情報処理装置は、値が閾値に達した場合に、値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記学習の進捗情報を示す値が閾値に達した層に対する前記値の算出を停止する処理を更にコンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記停止する処理は、前記複数の層のうち、第1層および前記第1層よりも出力側の第2層の値が閾値に達した場合、または、前記第1層に対する値の算出を停止し、かつ、前記第2層の値が閾値に達した場合には、前記第2層に対する値の算出を停止することを特徴とする請求項2に記載の情報処理プログラム。
【請求項4】
前記停止する処理は、前記第2層の値が閾値に達し、かつ、前記第1層の値が閾値に達していない場合には、前記第1層の値が閾値に達するまで、前記第2層に対する値の算出を継続させることを特徴とする請求項3に記載の情報処理プログラム。
【請求項5】
前記学習の進捗状況を示す値としてノルムを算出することを特徴とする請求項1~4のいずれか一つに記載の情報処理プログラム。
【請求項6】
コンピュータが実行する情報処理方法であって、
機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理を実行することを特徴とする情報処理方法。
【請求項7】
機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理を実行する制御部を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム等に関する。
【背景技術】
【0002】
機械学習モデルに対する様々な学習手法が研究されている。たとえば、機械学習モデルの学習(Training)がある程度進んだ層(layer)から重み情報の更新を停止させていくという技術がある。以下の説明では、この技術を「従来技術」と表記する。また、対象となる重み情報の更新を停止することを「スキップ」と表記する。
【0003】
図9及び
図10は、従来技術を説明するための図である。
図9について説明する。従来の機械学習モデルでは、160層程度の層数となるが、
図9では説明の便宜上、層1-0,1-1,1-2,1-3,1-4,1-5,1-6を用いて説明を行う。入力側の層を層1-0とし、出力側の層を層1-6とする。
【0004】
従来技術では、機械学習モデルに対する学習の開始時から学習がある程度進む前の段階において、全層1-0~1-6に対して「Forward Propagation」および「Backward Propagation」を実行し、全層1-0~1-6に対する重み情報を更新する。
【0005】
従来技術では、機械学習モデルに対する学習がある程度進んだ段階では、学習の進んだ層に対する重み情報の更新を入力側の層から順にスキップさせていく。出力側の層からスキップすると学習精度が目標精度に達成しないが、入力側の層からスキップすることで、学習精度を向上させることができる。
図9に示す例では、層1-0,1-1,1-2に対する重み情報の更新を停止させている。
【0006】
Forward Propagation全体の処理量を「1」とすると、Backward Propagationの処理量は「2」となる。たとえば、Backward Propagationを一切しない状態では、処理速度は3倍となり、高速化の限界となる。
【0007】
図10について説明する。機械学習モデルに対する学習はepochを単位として行われ、たとえば、1epochには、770Iterationが含まれる。機械学習モデルに対して、「Forward Propagation」および「Backward Propagation」を1回ずつ実行し、重み情報を更新する処理が、1Iterationに対応する。
【0008】
図10のグラフG1,G2は、異なる段階のIterationにおける各層と重み差分との関係を示す。グラフG1は、初回のIterationを実行した場合の各層の重み差分を示す。グラフG2は、初回から数百回後のIterationを実行した場合の各層の重み差分を示す。G1,G2の縦軸は重み差分に対応する軸であり、横軸は層に対応する軸である。
【0009】
重み差分は、n-1回目のIterationを実行した場合の重み情報と、n回目のIterationを実行した場合の重み情報との差分を示す。重み差分が大きい層は、学習されていることを示す。重み差分が閾値未満となる層は、学習されていないことを示す。
【0010】
グラフG1に示す例では、全層(たとえば、0層から158層)において、重み差分が閾値Th以上となっており、全層について学習されている。グラフG2に示す例では、入力側の各層Ls1-1の重み差分が閾値未満となっており、学習されていない。一方、出力側の各層Ls1-2の重み差分が閾値以上となっており、学習されている。
【0011】
従来技術では、入力側の各層Ls1-1の重み情報を更新する処理をスキップすることで、誤差勾配算出分の計算量と通信量を削減する。たとえば、グラフG2´に示すように、通常の1Iterationに要する処理量2-1が、処理量2-2となり、処理量2-3が削減される。すなわち、1epoch当たりの削減効果も、処理量2-3となる。なお、後述するように、機械学習モデルの各層の学習の進み具合を特定するためには、各層の重みのノルム(norm)計算を行うことになる。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国特許出願公開第2020/0380365号明細書
【特許文献2】米国特許出願公開第2020/0285992号明細書
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、上述した従来技術では、計算コストが大きいという問題がある。
【0014】
従来技術では、機械学習モデルの各層の学習の進み具合を特定するために、各層の重みのノルム計算を行うことになる。一方、機械学習モデルに対する学習の進み具合に限らず、全層の重み情報の更新を行う場合には、各層の重みのノルムの計算は不要となる。
【0015】
ここでは、機械学習モデルに対する学習の進み具合に限らず、常に、全層の重み情報の更新を行う技術を、従来技術(Gradient Skip技術)区別するために、「他の従来技術」と表記する。
【0016】
図11は、従来技術の問題を説明するための図である。
図11の縦軸は、単位時間(sec)当たりの画像(samples)の処理量に対応する軸であり、横軸は、epochに対応する軸である。単位時間当たりの画像の処理量を、単に「処理量」と表記する。
【0017】
線5aは、他の従来技術の処理量とepochとの関係を示す。線5bは、従来技術の処理量とepochとの関係を示す。
図11では、機械学習モデルの150層の中で、入力側の0層~30層を、ある閾値でスキップする場合の例である。
【0018】
従来技術では、約0~40epochの期間において、50層のConvolutional層(以下、Conv層)で、1Iteration毎に各層150の重みのノルムを計算する。このため、
図11の(1)に示すように、従来技術は、他の従来技術よりも処理量が500samples/secだけ、処理量が少なくなっている。
【0019】
続いて、従来技術では、約40~50epochの期間において、30層(Conv層は10層)のConv層の重み差分が徐々に閾値に達し、徐々にスキップされる層が増加し、ノルム計算がスキップされる。このように、ノルムの計算量が減ることで、
図11の(2)に示すように、従来技術では、徐々に処理量が増加する。
【0020】
続いて、従来技術では、50epoch移行の期間において、30層分のスキップが可能となり、計算量削減となるが、次のスキップのための残りのConv層40層分のノルム計算が残っており、処理量は、9200samples/sec程度となる。
図11の(3)に示すように、他の従来技術と比較して100samples/sec程度の向上にとどまる。
【0021】
図11で説明したように、従来技術では、層のスキップが可能かを判定するために、学習の進み具合を判定するノルム計算が発生し、総合的には、他の従来技術よりも計算コストが大きくなり、処理量が低下してしまう場合があり得る。
【0022】
1つの側面では、本発明は、計算コストを削減することができる情報処理プログラム、情報処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0023】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、機械学習モデルに対する学習を実行する場合に、機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出する。コンピュータは、値が閾値に達した場合に、値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する。
【発明の効果】
【0024】
計算コストを削減することができる。
【図面の簡単な説明】
【0025】
【
図2】
図2は、本実施例に係る情報処理装置の処理を説明するための図である。
【
図3】
図3は、epochと各層の学習状況との関係を説明するための図である。
【
図4】
図4は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
【
図5】
図5は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
【
図6】
図6は、本実施例に係る情報処理装置の効果を示す図である。
【
図7】
図7は、情報処理装置のその他の処理を説明するための図である。
【
図8】
図8は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【
図9】
図9は、従来技術を説明するための図(1)である。
【
図10】
図10は、従来技術を説明するための図(2)である。
【
図11】
図11は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【0026】
以下に、本願の開示する情報処理プログラム、情報処理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例0027】
本実施例に係る情報処理装置は、重み差分を算出し、機械学習モデルの対象の層の学習が進んだか否かを特定する。以下の説明では、機械学習モデルに含まれる複数の層のうち、重み差分の算出対象となる層を、適宜、「対象の層」と表記する。
【0028】
重み差分は、式(1)によって定義される。式(1)の添え字「l」は、Iterationの回数に対応する。たとえば、「Wl+1-Wl」は、l+1回目のIterationの重みの情報と、l回目のIterationの重みの情報との重み差分を示す。式(1)において、「LR」、「Decay」、「mom」には、定数が予め設定される。
【0029】
【0030】
式(1)のΔWlは、対象の層において、前回のIterationの重みと、今回のIterationの重みとの差分をテンソルで示したものである。式(1)のWlは、対象の層において、今回のIterationによって更新された重みをテンソルで示したものある。Vl-1は、momentumを示すテンソルであり、たとえば、式(2)によって、VlとVl-1との関係が定義される。
【0031】
【0032】
情報処理装置は、式(1)の値を、閾値と比較可能なスカラー値に変換するため、ΔWlのノルム(g_weight_norm)、Wlのノルム(weight_norm)、Vlのノルム(momentum_norm)をそれぞれ算出する。ΔWlのノルム(g_weight_norm)は、式(3)によって算出される。Wlのノルムは、式(4)によって算出される。Vlのノルムは、式(5)によって算出される。
【0033】
【0034】
図1は、評価指標の傾向を示す図である。
図1のグラフG10の縦軸は重み差分に対応する軸であり、横軸はepochに対応する軸である。
図10の線10aは、機械学習モデルの第6層(L6)を対象の層とした場合の、重み差分とepochとの関係を示す。線10bは、第36層(L36)を対象の層とした場合の、重み差分とepochとの関係を示す。線10cは、第75層(L75)を対象の層とした場合の、重み差分とepochとの関係を示す。線10dは、第132層(L132)を対象の層とした場合の、重み差分とepochとの関係を示す。各層を機械学習モデルの入力側から出力側に並べると、L6,L36,L75,L132の順となる。
【0035】
各層には、閾値が設定され、重み差分が閾値に達した場合に、対象の層の重み差分の計算がスキップされる。たとえば、L6では、10epochにおいて、重み差分が閾値Th6に達する。L36では、22epochにおいて、重み差分が閾値Th36に達する。L75では、35epochにおいて、重み差分が閾値Th75に達する。L132では、46epochにおいて、重み差分が閾値Th75に達する。すなわち、入力側の層から、重み差分が閾値に達する。
【0036】
続いて、本実施例に係る情報処理装置の処理の一例について説明する。本実施例に係る情報処理装置は、初期における対象の層を、1層のみとする。続いて、情報処理装置は、対象の層の重み差分が閾値に達した後に、重み差分が閾値に達した層に続く、複数の層を対象の層として、重み差分を算出する処理を繰り返し実行する。本実施例では、重み差分の値が閾値未満となったことを、重み差分が閾値に達したと表記する。
【0037】
図2は、本実施例に係る情報処理装置の処理を説明するための図である。
図2では、機械学習モデルに含まれる複数の層のうち、第0層(L0)、第3層(L3)、第6層(L6)、第9層(L9)、第12層(L12)を用いて説明する。また、機械学習モデルに含まれる複数の層のうち、第15層(L15)、第18層(L18)、第21層(L21)、第24層(L24)、第27層(L27)を用いて説明する。たとえば、各層(L0,3,6,9,12,15,18,21,24,27)は、Conv層に対応する。
図2の説明では、重み差分を算出することを「ノルム計算」と表記する。
【0038】
情報処理装置は、訓練データを機械学習モデルに入力し、Forward PropagationおよびBackward Propagationを実行して、機械学習モデルの訓練を開始する。情報処理装置は、
図2に示すように、epoch毎に、対象の層のノルム計算を実行する。
【0039】
1epochにおけるノルム計算(初期のノルム計算)について説明する。情報処理装置は、L0を対象の層として、ノルム計算を開始する。
【0040】
2epoch~n-1epochにおけるノルム計算について説明する。情報処理装置は、L0を対象の層として、ノルム計算を継続する。
【0041】
nepochにおけるノルム計算について説明する。nをある自然数とする。情報処理装置は、L0の重み差分が閾値に到達したことを特定すると、閾値に達した層よりも出力側の、3つの層「L3,L6,L9」に対して、ノルム計算を開始する。nepochの段階において、各層の学習は、ある程度進んでいる。
【0042】
図3は、epochと各層の学習状況との関係を説明するための図である。
図3では、L0,L3,L6,L9の重さ差分を用いて説明する。なお、L3,L6,L9の重さ差分は、説明のために示すものであり、n-1epoch以前において、L3,L6,L9に対するノルム計算は行われていないものとする。
【0043】
図3に示す例では、37epochにおいて、L0の重み差分が閾値に達している。また、37epochにおいて、L3,L6,L9の学習も進んでおり、
図3の例では、L3,L6,L9の重み差分も、閾値に達している。このため、L0のノルム計算から、L3,L6,L9のノルム計算に移行した場合、L3,L6,L9の重み差分もすぐに閾値に達することになる。
【0044】
図2の説明に戻る。n+1epochにおけるノルム計算について説明する。情報処理装置は、L0のノルム計算をスキップする。情報処理装置は、L3,L6の重み差分が閾値に達したことを特定すると、閾値に達した層よりも出力側の層「L12,L15」に対して、ノルム計算を開始する。情報処理装置は、L9に対するノルム計算を継続する。
【0045】
n+2epochにおけるノルム計算について説明する。情報処理装置は、L0,L3,L6のノルム計算をスキップする。情報処理装置は、L9の重み差分が閾値に達したことを特定すると、閾値に達した層よりも出力側の層「L18」に対して、ノルム計算を開始する。情報処理装置は、L12,L15に対するノルム計算を継続する。
【0046】
n+3epochにおけるノルム計算について説明する。情報処理装置は、L0,L3,L6,L9のノルム計算をスキップする。情報処理装置は、L18の重み差分が閾値に達したことを特定すると、閾値に達した層よりも出力側の層「L21」に対して、ノルム計算を開始する。
【0047】
n+4epochにおけるノルム計算について説明する。情報処理装置は、L0,L3,L6,L9のノルム計算をスキップする。情報処理装置は、重み差分が閾値に達したL18よりも、入力側の層L12,15のノルム計算がスキップされていないため、L18のノルム計算を停止することを待機させる。情報処理装置は、L12,L15の重み差分が閾値に達したことを特定すると、閾値に達した層よりも出力側の層「L24,L27」に対して、ノルム計算を開始する。情報処理装置は、L21に対するノルム計算を継続する。
【0048】
n+5epochにおけるノルム計算について説明する。情報処理装置は、L0,L3,L6,L9,L12,L15,L18のノルム計算をスキップする。情報処理装置は、L21,L24,L27に対するノルム計算を継続する。n+6epochにおけるノルム計算の説明を省略する。
【0049】
上記のように、本実施例に係る情報処理装置は、機械学習モデルの訓練する場合に、ノルム計算を実行する対象の層を絞り込み、計算コストを削減することができる。
【0050】
次に、本実施例に係る情報処理装置の構成の一例について説明する。
図4は、本実施例に係る情報処理装置の構成を示す機能ブロック図である。
図4に示すように、この情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0051】
通信部110は、ネットワークを介して外部装置から各種のデータを受信する。通信部110は、通信装置の一例である。たとえば、通信部110は、後述する訓練データ141等を、外部装置から受信してもよい。
【0052】
入力部120は、情報処理装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。
【0053】
表示部130は、制御部150から出力される情報を表示する表示装置である。
【0054】
記憶部140は、訓練データ141、機械学習モデル142を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0055】
訓練データ141は、機械学習モデル142の学習を実行する場合に使用されるデータである。たとえば、訓練データ141は、入力データと、正解データとの組を複数有する。
【0056】
機械学習モデル142は、複数の層を有するニューラルネットワーク(Neural Network)に対応するモデルデータである。
【0057】
制御部150は、FP処理部151と、BP処理部152と、選択部153とを有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0058】
FP処理部151は、機械学習モデル142に対してForward Propagationを実行する。たとえば、FP処理部151は、機械学習モデル142の入力層に、訓練データ141の入力データを入力して、機械学習モデル142の出力値を算出する。FP処理部151は、出力値の情報を、BP処理部152に出力する。
【0059】
BP処理部152は、機械学習モデル142に対してBackward Propagationを実行する。たとえば、BP処理部152は、機械学習モデル142の出力層から出力される出力値と、訓練データ141の正解データとの誤差を算出し、誤差逆伝播によって、誤差が小さくなるように、機械学習モデル142の各層の重み情報を更新する。
【0060】
また、BP処理部152は、後述する選択部153から対象の層の通知を受け付けると、機械学習モデル142に含まれる全層のうち、対象の層について、ノルム計算を実行する。たとえば、BP処理部152は、上述した式(3)、式(4)、式(5)を基にして、ΔWlのノルム、Wlのノルム、Vlのノルムのノルムを計算し、対象の層毎の計算結果を、選択部153に出力する。
【0061】
BP処理部152は、選択部153から、ノルム計算をスキップする層の選択を受け付けると、選択を受け付けた対象の層に関して、ノルム計算をスキップする。また、BP処理部152は、ノルム計算のスキップの対象となった層と、この層より入力側の層に対する誤差伝播を停止する。
【0062】
選択部153は、BP処理部152から出力されるノルム計算の結果を基にして、ノルム計算を実行する対象の層を選択し、選択した対象の層を、BP処理部152に通知する。選択部153は、初期における対象の層を、1層のみとする。たとえば、選択部153は、初期において、L0を対象の層として選択し、BP処理部152に出力する。
【0063】
選択部153は、対象の層のノルム計算の計算結果をBP処理部152から取得すると、式(1)を基にして、対象の層の重み差分を算出し、閾値に達したか否かを特定する。選択部153は、対象の層の重み差分が閾値に達した場合には、重み差分が閾値に達した対象の層に対するノルム計算をスキップすることを、BP処理部152に通知する。
【0064】
選択部153は、初期に選択したL0の重み差分が閾値に達した場合には、
図2で説明したように、L0よりも出力側の複数の層(L3,L6,L9)を対象の層として選択し、対象の層を、BP処理部152に出力する。選択部153は、初期における対象の層の重み差分が閾値に達した後は、対象の層が「M個(たとえば、3個)」となるように、対象の層を選択する。選択部153は、対象の層を選択する場合、重み差分が閾値に達していない層であって、より入力側に近い層を優先して選択する。
【0065】
ところで、選択部153は、
図2のn+3epochで説明したように、ノルム計算を行っている複数の層のうち、L18の重み差分が閾値に達し、L12,L15の重み差分が閾値に達していない場合には、L18をスキップすることを待機する。選択部153は、L12,L15の重み差分が閾値に達した後に、L18をスキップすることを、BP処理部152に出力する。
【0066】
次に、本実施例に係る情報処理装置100の処理手順の一例について説明する。
図5は、本実施例に係る情報処理装置の処理手順を示すフローチャートである。
図5に示すように、情報処理装置100のFP処理部151、BP処理部152は、機械学習モデル142に対する訓練(Forward PropagationおよびBackward Propagation)を開始する(ステップS101)。
【0067】
情報処理装置100の選択部153は、機械学習モデル142の入力側の1層を、対象の層として選択する(ステップS102)。BP処理部152は、対象の層のノルム計算を実行する(ステップS103)。
【0068】
選択部153は、ノルム計算の結果を基にして、重み差分が閾値に達したか否かを特定する(ステップS104)。選択部153は、閾値に達した対象の層が存在する場合には(ステップS105,Yes)、ステップS106に移行する。一方、選択部153は、閾値に達した対象の層が存在しない場合には(ステップS105,No)、ステップS108に移行する。
【0069】
BP処理部152は、重み差分が閾値に達した対象の層のノルム計算をスキップする(ステップS106)。選択部153は、ノルム計算を実行する層がM(たとえば、3層)層となるように、対象の層を選択する(ステップS107)。
【0070】
情報処理装置100は、訓練を終了する場合には(ステップS108,Yes)、処理を終了する。一方、情報処理装置100は、訓練を終了しない場合には(ステップS108,No)、次のepochの訓練に移行し(ステップS109)、ステップS103に移行する。
【0071】
次に、本実施例に係る情報処理装置100の効果について説明する。情報処理装置100は、初期における対象の層を、1層のみとしてノルム計算を実行する。続いて、情報処理装置100は、対象の層の重み差分が閾値に達した後に、重み差分が閾値に達した層に続く、複数の層を対象の層として、重み差分を算出する処理を繰り返し実行する。このように、情報処理装置100は、ノルム計算を実行する対象の層を絞り込むことで、計算コストを削減することができる。
【0072】
情報処理装置100は、重み差分が閾値に達した対象の層に対するノルム計算をスキップすることで、計算コストを更に削減することができる。
【0073】
情報処理装置100は、複数の層のうち、第1層および第1層よりも出力側の第2層の値が閾値に達した場合、または、第1層に対する値の算出をスキップ(停止)し、かつ、第2層の値が閾値に達した場合には、第2層に対する値の算出をスキップする。また、情報処理装置100は、第2層の値が閾値に達し、かつ、第1層の値が閾値に達していない場合には、第1層の値が閾値に達するまで、第2層に対する値の算出を継続(スキップを待機)させる。これによって、入力側の層から順に、スキップすることができ、機械学習モデル142の学習精度を向上させることができる。
【0074】
図6は、本実施例に係る情報処理装置の効果を示す図である。
図6のグラフG20の縦軸は、単位時間(sec)当たりの画像(samples)の処理量に対応する軸であり、横軸は、epochに対応する軸である。単位時間当たりの画像の処理量を、単に「処理量」と表記する。グラフG20の線5aは、他の従来技術の処理量とepochとの関係を示す。線5bは、従来技術の処理量とepochとの関係を示す。線5cは、本実施例に係る情報処理装置の処理量と、epochとの関係を示す。
【0075】
図6のグラフG30の縦軸は、ノルム計算の対象となる層の数に対応する軸であり、横軸は、epochに対応する軸である。ノルム計算の対象となる層の数を、単に、「対象層数」と表記する。グラフG30の線6aは、他の従来技術の対象層数とepochとの関係を示す。線6bは、従来技術の対象層数とepochとの関係を示す。線6cは、本実施例に係る情報処理装置の対象層数と、epochとの関係を示す。
【0076】
0~50epoch付近までについて検討する。従来技術(線6b)と比較して、情報処理装置100の対象層数(線6c)が、1/50になっている。これにより、情報処理装置100の処理量(線5c)が、他の従来技術の処理量(線5a)と同等となっている。
【0077】
50epoch以降について検討する。情報処理装置100では、順次各層の重み差分が閾値に達し、スキップが開始されるため、誤差勾配算出分の計算量、逆伝播の停止により、処理量(線5c)が増加する。スキップした後も、ノルム計算の総数を3にしているため、37階層分の処理により速度低下とならず、処理量が向上する。
【0078】
図6に示す例では、30層でスキップを停止したが、後の層もスキップすることで、更に処理量が増加する。
【0079】
ところで、機械学習モデル142では、各層の要素数の塊が4段階(4種類)に分かれているため、各塊について、任意の層(各段階の最後の層L36、L75、L132)を選択して、ノルム計算を行ってもよい。
【0080】
図7は、情報処理装置のその他の処理を説明するための図である。
図7に示す例では、機械学習モデル142が、複数のブロックに分割されている。各ブロックには、Batch Norm、ReLU、convolution等が含まれる。情報処理装置は、層lb1,lb2,lb3,lb4,lb5,lb6を、対象の層として選択している。情報処理装置100は、Conv層の代わりに、Batch Norm等を対象の層として選択し、ノルム計算を実行してもよい。
【0081】
次に、上記実施例に示した情報処理装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図8は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0082】
図8に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、外部装置からデータを受信する通信装置204と、各種の装置と接続するインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
【0083】
ハードディスク装置207は、FP処理プログラム207a、BP処理プログラム207b、選択プログラム207cを有する。CPU201は、FP処理プログラム207a、BP処理プログラム207b、選択プログラム207cを読み出してRAM206に展開する。
【0084】
FP処理プログラム207aは、FP処理プロセス206aとして機能する。BP処理プログラム207bは、BP処理プロセス206bとして機能する。選択プログラム207cは、選択プロセス206cとして機能する。
【0085】
FP処理プロセス206aの処理は、FP処理部151の処理に対応する。BP処理プロセス206bの処理は、BP処理部152の処理に対応する。選択プロセス206cの処理は、選択部153の処理に対応する。
【0086】
なお、各プログラム207a~207cについては、必ずしも最初からハードディスク装置207に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム207a~207cを読み出して実行するようにしてもよい。
【0087】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0088】
(付記1)機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0089】
(付記2)前記学習の進捗情報を示す値が閾値に達した層に対する前記値の算出を停止する処理を更にコンピュータに実行させることを特徴とする付記1に記載の情報処理プログラム。
【0090】
(付記3)前記停止する処理は、前記複数の層のうち、第1層および前記第1層よりも出力側の第2層の値が閾値に達した場合、または、前記第1層に対する値の算出を停止し、かつ、前記第2層の値が閾値に達した場合には、前記第2層に対する値の算出を停止することを特徴とする付記2に記載の情報処理プログラム。
【0091】
(付記4)前記停止する処理は、前記第2層の値が閾値に達し、かつ、前記第1層の値が閾値に達していない場合には、前記第1層の値が閾値に達するまで、前記第2層に対する値の算出を継続させることを特徴とする付記3に記載の情報処理プログラム。
【0092】
(付記5)前記学習の進捗状況を示す値としてノルムを算出することを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
【0093】
(付記6)コンピュータが実行する情報処理方法であって、
機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理を実行することを特徴とする情報処理方法。
【0094】
(付記7)前記学習の進捗情報を示す値が閾値に達した層に対する前記値の算出を停止する処理を更に実行することを特徴とする付記6に記載の情報処理方法。
【0095】
(付記8)前記停止する処理は、前記複数の層のうち、第1層および前記第1層よりも出力側の第2層の値が閾値に達した場合、または、前記第1層に対する値の算出を停止し、かつ、前記第2層の値が閾値に達した場合には、前記第2層に対する値の算出を停止することを特徴とする付記7に記載の情報処理方法。
【0096】
(付記9)前記停止する処理は、前記第2層の値が閾値に達し、かつ、前記第1層の値が閾値に達していない場合には、前記第1層の値が閾値に達するまで、前記第2層に対する値の算出を継続させることを特徴とする付記8に記載の情報処理方法。
【0097】
(付記10)前記学習の進捗状況を示す値としてノルムを算出することを特徴とする付記6~9のいずれか一つに記載の情報処理方法。
【0098】
(付記11)機械学習モデルに対する学習を実行する場合に、前記機械学習モデルに含まれる複数の層のうち、入力側の一つの層を対象として学習の進捗状況を示す値を算出し、
前記値が閾値に達した場合に、前記値が閾値に達した層に続く、複数の層を対象として学習の進捗状況を示す値を算出する処理を繰り返し実行する
処理を実行する制御部を有する情報処理装置。
【0099】
(付記12)前記制御部は、前記学習の進捗情報を示す値が閾値に達した層に対する前記値の算出を停止する処理を更に実行することを特徴とする付記11に記載の情報処理装置。
【0100】
(付記13)前記制御部は、前記複数の層のうち、第1層および前記第1層よりも出力側の第2層の値が閾値に達した場合、または、前記第1層に対する値の算出を停止し、かつ、前記第2層の値が閾値に達した場合には、前記第2層に対する値の算出を停止することを特徴とする付記12に記載の情報処理装置。
【0101】
(付記14)前記制御部は、前記第2層の値が閾値に達し、かつ、前記第1層の値が閾値に達していない場合には、前記第1層の値が閾値に達するまで、前記第2層に対する値の算出を継続させることを特徴とする付記13に記載の情報処理装置。
【0102】
(付記15)前記制御部は、前記学習の進捗状況を示す値としてノルムを算出することを特徴とする付記11~14のいずれか一つに記載の情報処理装置。