(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】学習装置、方法及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240722BHJP
【FI】
G06N20/00
(21)【出願番号】P 2020181966
(22)【出願日】2020-10-30
【審査請求日】2023-02-17
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】新田 修平
(72)【発明者】
【氏名】谷口 敦司
(72)【発明者】
【氏名】坂田 幸辰
(72)【発明者】
【氏名】谷沢 昭行
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2020-067910(JP,A)
【文献】特開2019-164839(JP,A)
【文献】米国特許出願公開第2020/0167639(US,A1)
【文献】特開2020-064468(JP,A)
【文献】Jiahui Yu ほか,SLIMMABLE NEURAL NETWORKS,arXiv [online],2018年12月21日,インターネット:<URL: https://arxiv.org/abs/1812.08928 >,[令和6年3月27日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
特定の学習条件に関する第1の学習パラメータ値に従い学習された第1の機械学習モデルの学習進捗に応じた推論性能の推移を表す第1の系列データを取得する取得部と、
前記特定の学習条件に関する第2の学習パラメータ値に従い第2の機械学習モデルを反復的に学習する部であって、前記第2の機械学習モデルの学習過程において、前記第2の機械学習モデルの推論性能と前記第1の系列データとに基づいて前記第2の学習パラメータ値を変更する、学習部と、
を具備する学習装置。
【請求項2】
前記学習部は、
前記第1の系列データと前記第2の機械学習モデルの学習開始段階から現進捗段階までの推論性能の推移を表す第2の系列データとに基づいて、前記第2の機械学習モデルの前記現進捗段階から学習終了段階までの推論性能の推移を表す予測系列データを生成し、
前記予測系列データに応じて前記第2の学習パラメータ値を変更する、
請求項1記載の学習装置。
【請求項3】
前記学習部は、所定の学習段階において前記予測系列データが示す認識率と許容値との差分に応じて前記学習パラメータ値を変更する、請求項2記載の学習装置。
【請求項4】
前記予測系列データに対応する曲線、前記第1の系列データに対応する曲線、前記第2の系列データに対応する曲線、前記第1の系列データと前記第2の系列データとの差分の推移に対応する曲線、前記学習部による修正後の学習パラメータ値の推移に対応する曲線及び/又は前記
予測系列データが示す認識率に対する許容値を表示する表示部、を更に備える、請求項2記載の学習装置。
【請求項5】
前記学習部は、前記第1の系列データと前記第2の系列データとの差分の比率を、前記現進捗段階から前記学習終了段階までの前記第
1の系列データに乗じて前記予測系列データを算出する、請求項2記載の学習装置。
【請求項6】
前記学習部は、前記学習終了段階における前記予測系列データが示す推論性能と前記第1の系列データが示す推論性能と
の差分と、前記差分に対する許容値とに基づいて前記第2の学習パラメータ値を変更する、請求項2記載の学習装置。
【請求項7】
前記学習部は、所定の学習進捗段階における前記第1の系列データが示す推論性能と前記第2の機械学習モデルの推論性能との差分、又は前記第2の機械学習モデルの学習進捗に応じた推論性能の推移を表す第2の系列データと前記第1の系列データとの差分に応じて前記第2の学習パラメータ値を変更する、請求項1記載の学習装置。
【請求項8】
前記学習部は、前記差分と、前記差分に対する許容値とに基づいて前記第2の学習パラメータ値を変更する、請求項7記載の学習装置。
【請求項9】
前記学習部は、前記第2の学習パラメータ値を、前記差分が前記差分に対する許容値よりも大きい場合、前記第1の学習パラメータ値に近づけ、前記差分が前記許容値よりも小さい場合、前記第1の学習パラメータ値から離す、ように変更する、請求項
8記載の学習装置。
【請求項10】
前記学習部は、前記第1の系列データが示す推論性能と前記第2の機械学習モデルの推論性能との差分が基準誤差よりも大きい場合、遡り先の学習進捗段階から反復学習をやり直す、請求項1記載の学習装置。
【請求項11】
前記特定の学習条件は、損失関数に含まれる学習誤差に対するペナルティを調整するための調整パラメータである、請求項1記載の学習装置。
【請求項12】
前記第2の機械学習モデルは、同一タスクを処理する複数の計算コストにそれぞれ対応する複数のモデル構造を切り替え可能に有し、
前記第1の機械学習モデルは、前記複数のモデル構造のうちの特定の計算コストに対応する特定のモデル構造を有し、
前記特定の学習条件は、前記複数のモデル構造にそれぞれ対応する複数の学習誤差に対するペナルティのバランスを調整するための調整パラメータ値である、
請求項11記載の学習装置。
【請求項13】
前記特定の学習条件は、学習誤差及び正則化項に対するペナルティのバランスを調整するための調整パラメータ値である、請求項11記載の学習装置。
【請求項14】
前記特定の学習条件は、セグメンテーション又は画像分類に関する複数のクラスにそれぞれ対応する複数の学習誤差に対するペナルティのバランスを調整するための調整パラメータ値である、請求項11記載の学習装置。
【請求項15】
前記特定の学習条件は、物体検出に関するクラス分類又はROIサイズにそれぞれ対応する複数の学習誤差に対するペナルティのバランスを調整するための調整パラメータ値である、請求項11記載の学習装置。
【請求項16】
前記特定の学習条件は、マルチタスク学習に関する第1のタスクの学習誤差及び第2のタスクの学習誤差に対するペナルティのバランスを調整するための調整パラメータ値である、請求項11記載の学習装置。
【請求項17】
前記特定の学習条件は、ニューラル・アーキテクチャ・サーチに関する学習誤差及び計算コストに対するペナルティのバランスを調整するための調整パラメータ値である、請求項11記載の学習装置。
【請求項18】
学習装置が、
特定の学習条件に関する第1の学習パラメータ値に従い学習された第1の機械学習モデルの学習進捗に応じた推論性能の推移を表す第1の系列データを取得し、
前記特定の学習条件に関する第2の学習パラメータ値に従い第2の機械学習モデルを反復的に学習する工程であって、前記第2の機械学習モデルの学習過程において、前記第2の機械学習モデルの推論性能と前記第1の系列データとに基づいて前記第2の学習パラメータ値を変更する、
ことを具備する学習方法。
【請求項19】
コンピュータに、
特定の学習条件に関する第1の学習パラメータ値に従い学習された第1の機械学習モデルの学習進捗に応じた推論性能の推移を表す第1の系列データを取得させる機能と、
前記特定の学習条件に関する第2の学習パラメータ値に従い第2の機械学習モデルを反復的に学習させる機能であって、前記第2の機械学習モデルの学習過程において、前記第2の機械学習モデルの推論性能と前記第1の系列データとに基づいて前記第2の学習パラメータ値を変更させる、機能と、
を実現させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習装置、方法及びプログラムに関する。
【背景技術】
【0002】
ネットワーク構造やハイパーパラメータ値等の学習パラメータ値毎に演算量や誤差等のモデル性能の変化を示すグラフを表示し、当該グラフを参照することで学習条件の選択を行う技術がある。しかしながら、複数の学習パラメータ値毎に網羅的にモデルの学習を行う必要があり、モデルの学習に多大な時間を要し、処理が煩雑である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、所望の効果を有する機械学習モデルを効率的に得る事が可能な学習装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態に係る学習装置は、取得部と学習部とを有する。取得部は、特定の学習条件に関する第1の学習パラメータ値に従い学習された第1の機械学習モデルの学習進捗に応じた推論性能の推移を表す第1の系列データを取得する。学習部は、前記特定の学習条件に関する第2の学習パラメータ値に従い第2の機械学習モデルを反復的に学習する部であって、前記第2の機械学習モデルの学習過程において、前記第2の機械学習モデルの推論性能と前記第1の系列データとに基づいて前記第2の学習パラメータ値を変更する。
【図面の簡単な説明】
【0006】
【
図1】本実施形態に係る学習装置の機能構成を例示するブロック図
【
図2】本実施例に係る対象モデル(スリマブル・ニューラルネットワークス)の構成例を示す図
【
図3】
図1の学習装置の動作を例示するフローチャート
【
図4】参照系列データに対応する参照系列曲線の一例を示す図
【
図5】参照系列データに対応する参照系列曲線、対象系列データに対応する対象系列曲線及び予測系列データに対応する予測系列曲線を示す図
【
図8】対象系列曲線、予測系列曲線、参照系列曲線、進捗誤差曲線、調整パラメータ値曲線及び許容値の表示例を示す図
【
図9】現行値を維持する旨の棄却ボタンと候補値を採用する旨の採用ボタンとを表示する表示ウィンドウの一例を示す図
【
図11】本実施形態に係る学習装置のハードウェア構成例を示す図
【発明を実施するための形態】
【0007】
以下、図面を参照しながら本実施形態に係わる学習装置、方法及びプログラムを説明する。
【0008】
図1は、本実施形態に係る学習装置の機能構成を例示するブロック図である。
図1の学習装置100は、機械学習モデルを学習することによって学習済みモデルを生成するためのコンピュータである。本実施形態に係る機械学習モデルは、ニューラルネットワークであるものとする。
【0009】
図1に示すように、学習装置100は、取得部1、学習部2及び表示制御部3を有する。
【0010】
取得部1は、学習サンプル、教示データ、対象モデル構造、学習条件、参照系列データ及び許容値を取得する。取得部1は、学習サンプル、教示データ、学習条件、参照系列データ及び許容値を学習部2へと出力し、少なくとも参照系列データ及び許容値を表示制御部3へと出力する。
【0011】
学習サンプルは、反復学習のために機械学習モデルに入力されるデータである。学習サンプルは、教示データと対応付けられている。学習サンプルと教示データとの組み合わせは、学習データセットと呼ばれる。以降では、例えば、学習サンプルを、xi(i=1,2,…,N)で表し、教示データをti(i=1,2,…,N)で表すものとする。ここで、iは学習データセットのインデックスであり、Nは学習データセットの総数を示す。
【0012】
対象モデル構造は、学習装置100による学習対象の機械学習モデル(以下、対象モデルと呼ぶ)のモデル構造(アーキテクチャ)である。対象モデル構造は、例えば、モデル構造の種類、ニューラルネットワークの階層数、各層のノード数、各層の間の接続方法、各層で用いられる活性化関数の種類等の構造パラメータにより規定される。
【0013】
学習条件は、機械学習モデルの学習に関する条件である。学習条件を構成するパラメータは学習パラメータと呼び、学習パラメータの値を学習パラメータ値と呼ぶ。なお、学習パラメータは、ハイパーパラメータとも呼ばれる。学習条件は、例えば、最適化パラメータ及び損失関数などを含む。最適化パラメータは、例えば、最適化法(オプティマイザ)の種類、学習率、ミニバッチの個数(ミニバッチサイズ)、反復学習回数の上限値、終了条件などを含む。損失関数は、学習誤差を評価する関数である。損失関数に含まれ、学習誤差に対するペナルティのバランスを調整するためのパラメータは調整パラメータと呼ばれる。本実施形態に関する損失関数は、学習誤差に正則化項、罰則化項及び/又は慣性項等の他の項を付加した目的関数を含む概念であるとする。
【0014】
参照系列データは、対象モデルとは少なくともモデル構造及び学習条件の1つが異なる機械学習モデル(以下、参照モデルと呼ぶ)の学習進捗に応じた推論性能の推移を表す系列データである。推論性能は、機械学習モデルの推論又は出力の精度を評価する指標である。参照系列データは、対象モデルの学習過程において学習パラメータ値を変更する際に参照される。
【0015】
許容値は、学習過程において対象モデルの学習パラメータ値を変更するか否かの判断の基準に用いられる。許容値は、例えば、参照系列データに基づいて決定される。
【0016】
学習部2は、取得部1から学習サンプル、教示データ、学習条件、参照系列データ及び許容値を受け取る。学習部2は、学習サンプル、教示データ及び学習条件に基づいて対象モデルを反復的に学習する。より詳細には、学習部3は、特定の学習条件に関する学習パラメータ値に従い対象モデルを反復的に学習する。学習部2は、反復学習の学習進捗と対象モデルの推論性能とを表示制御部3へと出力し、反復学習が完了した対象モデルを学習済み対象モデルとして出力する。学習部2は、対象モデルの学習過程において、対象モデルの推論性能と参照系列データとに基づいて学習パラメータ値を変更する。より詳細には、学習部2は、所定の学習段階における参照系列データが示す推論性能と対象モデルの推論性能との差分(乖離)に応じて学習パラメータ値を変更する。この際、学習部2は、差分と許容値との比較に基づいて学習パラメータ値を変更してもよい。
【0017】
学習進捗は、例えば、重みパラメータやバイアス等の学習可能パラメータを更新した回数(反復学習回数)に規定される。学習サンプル数/ミニバッチサイズの反復学習ごとにカウントされる反復回数はエポック数とも呼ばれる。学習誤差とは、機械学習モデルに対して学習サンプルを入力することによって出力された出力データと、学習サンプルに対応付けられる教示データとの誤差を表す。学習誤差は、機械学習モデルの推論又は出力の精度を表すので、推論性能の一例であるといえる。
【0018】
表示制御部3は、取得部1から少なくとも参照系列データ及び許容値を受け取り、学習部2から対象モデルの学習進捗及び学習誤差を受け取る。表示制御部3は、種々の表示情報をディスプレイ等へ出力する。例えば、表示制御部3は、表示情報として、参照系列データに対応する曲線(以下、参照系列曲線と呼ぶ)や対象モデルの学習開始段階から現在時点までの学習進捗に応じた推論性能の推移を表す系列データ(以下、対象系列データと呼ぶ)に対応する曲線(以下、対象系列曲線と呼ぶ)、対象モデルの現在時点から学習終了段階までの学習進捗に応じた推論性能の推移の予測を表す系列データ(以下、予測系列データと呼ぶ)に対応する曲線(以下、予測系列曲線と呼ぶ)、許容値等を表示する。
【0019】
なお、学習装置1は、メモリ及びプロセッサを有してもよい。メモリは、例えば、学習装置1の動作に関する各種プログラム(例えば、学習部2による機械学習のための学習プログラムなど)を記憶する。プロセッサは、メモリに保存された各種プログラムを実行することで、取得部1、学習部2及び表示制御部3の各機能を実現する。
【0020】
次に、学習装置1の動作例について説明する。
【0021】
以下の説明において、学習サンプルを画像とし、対象モデル及び参照モデルは、画像に描画された対象に応じて画像を分類する画像分類タスクを実行するニューラルネットワークであるとする。以下の実施例に係る画像分類タスクは、一例として、「犬」又は「猫」の何れかに分類する2クラスの画像分類であるとする。学習サンプルである入力画像xiは、横幅W、縦幅H、チャネル数Cの画素集合であり、W×H×C次元のベクトルで表すことが可能である。教示データであるラベルtiは、クラス数に対応する次元数のベクトルである。本実施例においてラベルtiは、クラス「犬」に対応する要素とクラス「猫」に対応する要素とを有する2次元ベクトルである。各要素は、入力画像に当該要素に対応する対象が描画されている場合、「1」をとり、それ以外の対象が描画されている場合、「0」をとる。例えば、入力画像xiに「犬」が描画されている場合、ラベルtiは(1,0)Tで表される。
【0022】
対象モデルのモデル構造は、一例として、スリマブル・ニューラルネットワークス(Slimmable Neural Networks)であるとする。
【0023】
図2は、本実施例に係る対象モデル(スリマブル・ニューラルネットワークス)の構成例を示す図である。
図2に示すように、本実施例に係る対象モデルは、複数の計算コストにそれぞれ対応する複数のモデル構造に切り替え可能とする。複数のモデル構造は同一タスクを処理するように反復学習されている。計算コストは、各モデル構造の計算負荷に関する性能指標であり、例えば、隠れ層数や各隠れ層のチャネル数、入力画像の解像度等により評価される。スリマブル・ニューラルネットワークスにおいて切り替え可能な計算コストは、各隠れ層のチャネル数である。
【0024】
図2に示すように、対象モデルは、複数のモデルサイズにそれぞれ対応する複数のモデル構造として、100%モデル、75%モデル、50%モデル及び25%モデルを有する。100%モデルは、各隠れ層のチャネルを全て用いるモデル構造である。100%モデルは、参照モデルと同一のモデル構造である。75%モデルは、各隠れ層のチャネルの割合が100%モデルのうちの75%のみを用いるモデル構造であり、50%モデルは、50%のみを用いるモデル構造であり、25%モデルは、25%のみを用いるモデル構造である。対象モデルは、上述の4種類のうちのどのモデル構造でも推論が可能なように反復学習される。
【0025】
対象モデルの出力yi(j)は、下記(1)式により規定される。なお、jは対象モデルに含まれるモデル構造を表すインデックスである。本実施例の場合、j={1、2、3、4}であり、j=1は100%モデルを表し、j=2は75%モデルを表し、j=3は50%モデルを表し、j=4は25%モデルを表す。Θは重みパラメータやバイアス等の学習可能パラメータの集合を表す。fは、パラメータ集合Θを保持するニューラルネットワークの関数である。関数fは、入力画像xiを、畳み込み層、全結合層、正規化層及びプーリング層等の隠れ層に順伝播させ、2次元ベクトルである出力ラベルyi(j)を出力する。なお、対象モデルの隠れ層は、上記の層に限定されず、如何なる処理を行う層を含んでもよい。
【0026】
yi(j)=f(Θ,xi,j) (1)
【0027】
対象モデルの損失関数Liは、下記(2)式の通り、対象モデルの4種のモデル構造の学習誤差Li(j)の加重平均として設計される。「i」は、学習サンプルのインデックスである。(2)式の学習誤差Li(j)は、クロスエントロピーとして、下記(3)式により表される。
【0028】
Li=aLi(1)+(1-a){Li(2)+Li(3)+Li(4)} (2)
Li(j)=-ti
Tln{yi(j)} (3)
【0029】
(2)式の「a」は調整パラメータである。調整パラメータ値aは、0から1の値をとる。調整パラメータ値aは、100%モデルの学習誤差Li(1)に対するペナルティと他の75%、50%及び25%モデルの学習誤差{Li(2)+Li(3)+Li(4)}に対するペナルティとのバランスを調整するためのパラメータである。調整パラメータ値aを大きくする(1に近づける)ほど、100%モデルの推論性能が高くなり、75%、50%及び25%モデルの推論性能が低くなる。100%モデルの推論性能と他の75%、50%及び25%モデルの推論性能とはトレードオフの関係にある。すなわち、調整パラメータ値aは、100%モデルの推論性能と他のモデルの推論性能とのバランスを調整するためのパラメータであるともいえる。本実施例では、対象モデルの学習過程において調整パラメータ値aを変更することにより、ユーザの所望する上記バランスを実現する。調整パラメータ値aは、学習パラメータの一例である。なお、本実施例において対象モデルは画像分類タスクを行うので、推論性能は認識率(正解率)であるとする。
【0030】
図3は、
図1の学習装置100の動作を例示するフローチャートである。
図3のフローチャートの処理は、ユーザによって学習プログラムが実行されることで開始される。
【0031】
学習プログラムが実行されると取得部1は、学習サンプル、教示データ、対象モデル、学習条件、参照系列データ、第1許容値及び第2許容値を取得する(ステップS1)。上記の通り、学習サンプルは画像であり、教示データは対象ラベルである。対象モデルには重みパラメータやバイアスの初期値が割り当てられている。学習条件は、上記の種々の学習パラメータを含み、学習パラメータには任意の学習パラメータ値が設定されている。学習パラメータのうちの調整パラメータには初期値が割り当てられている。調整パラメータの初期値は任意の数値に設定されていればよい。第1許容値は、対象系列データ、参照系列データ及び予測系列データに対して比較される許容値である。第2許容値は、後述する進捗誤差系列データに対して比較される許容値である。
【0032】
本実施例においては、参照モデルとして100%モデルと同じモデル構造が用いられる。すなわち、参照モデルは、基本学習条件として、調整パラメータ値a=1に従い反復学習されたスリマブル・ニューラルネットワークスである。この場合、参照系列データは、参照モデル(100%モデル)の学習進捗に応じた学習誤差の推移を表す系列データr(e)である。ここで、e={1、2、・・・、E}である。eはエポック数、Eはエポック数の総数を表す。
【0033】
図4は、参照系列データに対応する参照系列曲線21の一例を示す図である。
図4に示すように、参照系列曲線21は、縦軸が認識率に規定され、横軸は学習進捗(エポック数)に規定されたグラフにより表現される。
図4に示すように、参照モデルの学習過程において認識率は、学習進捗が進むにつれて向上する。
【0034】
スリマブル・ニューラルネットワークスを利用する本実施例における第1許容値R1は、100%モデルの認識率に基づいて設定されるとよい。スリマブル・ニューラルネットワークスは、例えば、100%モデルの認識率は第1許容値R1%以上であり、且つ75%モデル、50%モデル及び25%モデルの認識率もなるべく高くしたい、という考えのもとに学習される。本実施例に対象モデルの学習では、調整パラメータ値aを用いて対象モデルの各モデルの認識率のバランスを調整するため、100%モデルの認識率が第1許容値R1%以上となる範囲でなるべく小さい調整パラメータ値aを用いて学習が行われる。
【0035】
ステップS1が行われると学習部2は、ステップS1において取得された対象モデルを反復学習する(ステップS2)。ステップS2において学習部2は、例えば、ミニバッチサイズに応じて選択された学習サンプル集合の学習誤差の平均に基づく学習誤差を用いて、誤差逆伝播法及び確率的勾配降下法により対象モデルのパラメータ集合Θの値を反復的に学習する。より詳細には、学習部2は、学習サンプルと教示データとの複数の組合せについて、調整パラメータ値と各モデルの学習誤差Li(j)とに基づく損失関数Liを最小化(又は最大化)するようなパラメータ集合Θを探索する。学習誤差Li(j)は、(3)式に従い、学習サンプルに基づき対象モデルの順伝播演算をすることにより算出された出力ラベルと、教示ラベルとに基づいて算出される。探索されたパラメータ集合Θが対象モデルに割り当てられる。
【0036】
ステップS2において学習部2は、探索されたパラメータ集合Θが割り当てられた対象モデルに検証サンプルを適用して、推論性能として認識率を算出する。認識率としては、例えば、バリデーション・アキュラシ(validation accuracy)が算出される。なお、学習部2は、探索されたパラメータ集合Θが割り当てられた対象モデルに学習サンプルを適用して、認識率として、トレーニング・アキュラシ(training accuracy)を算出してもよい。これら認識率は、検証サンプルに基づき算出された学習誤差又は学習サンプルに基づき算出された学習誤差から換算される。認識率は、現進捗段階を示すエポック数に関連付けてメモリ等に保存される。
【0037】
ステップS2が行われると学習部2は、反復学習を終了するか否かを判定する(ステップS3)。ステップS3において学習部2は、終了条件に基づいて反復学習を終了するか否かの判定を行う。例えば、学習部2は、対象系列データと第1許容値R1とに基づく終了条件が満たされたか否かを判定する。終了条件としては、例えば、対象系列データが示す認識率が第1許容値R1に到達したことに規定される。なお、終了条件は、これに限定されず、例えば、現エポック数がエポック総数に到達したことに規定されてもよい。
【0038】
ステップS3において反復学習を終了しないと判定した場合(ステップS3:NO)、学習部2は、対象系列データを生成する(ステップS4)。ステップ4において学習部2は、学習開始段階から現エポック数(現進捗段階)までの認識率の推移を表す対象系列データを生成する。具体的には、ステップS2において算出された認識率と当該認識率に関連付けられたエポック数とを関連付けたデータとして対象系列データが生成される。
【0039】
ステップS4が行われると学習部2は、予測系列データを生成する(ステップS5)。ステップS5において学習部2は、ステップS4において生成された対象系列データに基づいて予測系列データを生成する。
【0040】
図5は、参照系列データに対応する参照系列曲線21、対象系列データに対応する対象系列曲線22及び予測系列データに対応する予測系列曲線23を示す図である。
図5に示すように、対象系列曲線22は、学習開始段階esから現エポック数ecまでの対象モデルの認識率の推移を表している。予測系列曲線23は、現エポック数ecから学習終了段階eeまでの対象モデルの認識率の予測の推移を表している。参照系列曲線21は、学習開始段階esから学習終了段階eeまでの参照モデルの認識率の推移を表している。
【0041】
予測系列データの生成方法について説明する。ステップS5において学習部2は、対象系列データと参照系列データとに基づいて予測系列データを生成する。例えば、学習部2は、対象系列データと参照系列データとの差分が維持されるとの仮定に基づいて予測系列データを生成する。
【0042】
具体的には、学習部2は、所定の学習段階における対象系列データが示す認識率と参照系列データが示す認識率との差分を算出する。所定の学習段階は、任意のエポック数に設定可能である。例えば、学習部2は、
図5に示すように、現エポック数ecにおける対象系列データが示す認識率と参照系列データが示す認識率との差分D1を算出する。次に学習部2は、算出された差分D1が現エポック数ecから学習終了段階eeに亘り維持されるとの仮定のもと、現エポック数ecから学習終了段階eeまでの参照系列データに差分D1の比率を乗じることにより予測系列データを生成する。例えば、差分D1の比率は、参照系列データが示す認識率に対する差分D1の比率として算出される。学習部2は、この際、現エポック数ecから学習終了段階eeまでの各エポック数の参照系列データが示す認識率に対する当該比率の乗算値を、当該エポック数の予測系列データの認識率として算出してもよいし、各エポック数に関する認識率の移動平均値に対する当該比率の乗算値を、当該エポック数の予測系列データの認識率として算出してもよい。
【0043】
なお、比率の算出方法は上記方法のみに限定されない。例えば、学習部2は、現エポック数ecから遡って所定回数前のエポック数までの期間に亘る比率の平均値や学習開始段階eから現エポック数ecまでの全期間に亘る比率の平均値を算出する。そして学習部2は、算出された平均値を参照系列データに乗じて予測系列データを生成してもよい。
【0044】
予測系列データの他の生成方法として学習部2は、過去の実験結果から生成したテーブルに対象系列データを適用して予測系列データを生成してもよい。また、学習部2は、学習開始段階から任意の途中段階までの認識率の推移を表す系列データを入力とし且つ当該途中段階から学習終了段階までの認識率の推移を表す系列データを出力とするように重みパラメータが学習された機械学習モデルに対象系列データを適用して予測系列データを生成してもよい。
【0045】
ステップS4が行われると学習部2は、進捗誤差を算出する(ステップS5)。ステップS5において学習部2は、所定の学習段階における対象系列データ又は予測系列データが示す認識率と参照系列データが示す認識率との差分を進捗誤差として算出する。
【0046】
図6は、進捗誤差の一例を示す図である。
図6は、
図5と同じ参照系列曲線21、対象系列曲線22及び予測系列曲線23に進捗誤差D1及びD2を示している。
図6に示すように、学習部2は、例えば、現エポック数ecにおける対象系列曲線22が示す認識率と参照系列曲線21が示す認識率との差分D1を進捗誤差として算出する。他の例として、学習部2は、学習終了段階eにおける予測系列曲線23が示す認識率と参照系列曲線21が示す認識率との差分D2を進捗誤差として算出してもよい。なお、学習部2は、現エポック数ec及び学習終了段階ee以外の任意の段階における対象系列曲線22又は予測系列曲線23が示す認識率と参照系列曲線21が示す認識率との差分を進捗誤差として算出してもよい。
【0047】
ステップS4において学習部2は、対象系列曲線22自体と参照系列曲線21自体との差分を進捗誤差として算出してもよい。対象系列曲線22自体と参照系列曲線21自体との差分としては、例えば、学習終了段階eeにおける対象系列曲線22と参照系列曲線21との差分が用いられるとよい。他の例としては、対象系列曲線22の代表点が示す認識率と参照系列曲線21の代表点が示す認識率との差分が用いられてもよい。代表点は、対象系列曲線22又は参照系列曲線21の重心点や平均点等に設定されればよい。また、各エポック数における対象系列曲線22の認識率と参照系列曲線21の認識率との差分の平均値等の統計値が進捗誤差として算出されてもよい。同様に、学習部2は、予測系列曲線23自体と参照系列曲線21自体との差分を進捗誤差として算出してもよい。
【0048】
なお、参照系列曲線21、対象系列曲線22及び予測系列曲線23は、それぞれ参照系列データ、対象系列データ及び予測系列データの一形態であり、系列データである数値データに基づいて進捗誤差が算出されてもよいし、上記の通り、曲線に基づいて進捗誤差が算出されてもよい。
【0049】
他の例として、学習部2は、予測系列データが示す認識率と第1許容値R1との差分を進捗誤差として算出してもよい。
【0050】
図7は、予測系列データが示す認識率と第1許容値R1との差分(進捗誤差)の一例を示す図である。
図7は、
図5と同じ対象系列曲線22及び予測系列曲線23に進捗誤差を示している。
図7に示すように、学習部2は、例えば、学習終了段階eeにおける予測系列曲線23が示す認識率(以下、最終予測認識率と呼ぶ)を第1許容値R1から減じて得た差分D3を、進捗誤差として算出する。最終予測認識率が第1許容値R1よりも高い場合、差分D3は負値となり、最終予測認識率が第1許容値R1よりも低い場合、差分D3は正値となる。
【0051】
学習部2は、学習終了段階ee以外の任意の段階における予測系列曲線23が示す認識率と第1許容値R1との差分を進捗誤差として算出してもよい。また、学習部2は、予測系列曲線23全体と第1許容値R1との差分を進捗誤差として算出してもよい。予測系列曲線23全体と第1許容値R1との差分としては、例えば、予測系列曲線23の代表点が示す認識率と第1許容値R1が示す認識率との差分が用いられてもよい。代表点は、予測系列曲線23の重心点や平均点等に設定されればよい。また、各エポック数における予測系列曲線23が示す認識率と第1許容値R1との差分の平均値等の統計値が進捗誤差として算出されてもよい。
【0052】
学習進捗の各位置で算出された進捗誤差により構成される系列データ(以下、進捗誤差系列データと呼ぶ)に対応する曲線を、以下では進捗誤差曲線と呼ぶ。また、対象系列データと参照系列データとに基づく進捗誤差系列データを実績進捗誤差系列データと呼び、予測系列データと参照系列データとに基づく進捗誤差系列データを予測進捗誤差系列データと呼ぶ。また、実績進捗誤差系列データに対応する曲線を実績進捗誤差曲線、予測進捗誤差系列データを予測進捗誤差曲線と呼ぶ。なお、実績進捗誤差系列データと予測進捗誤差系列データとを特に区別しないときは進捗誤差系列データと呼び、実績進捗誤差曲線と予測進捗誤差曲線とを特に区別しないときは進捗誤差系列曲線と呼ぶ。また、以下の説明において進捗誤差は、一例として、最終予測認識率を第1許容値R1から減じて得た差分であるとする。
【0053】
ステップS6が行われると表示制御部3は、対象系列曲線、予測系列曲線、参照系列曲線、進捗誤差曲線、調整パラメータ値曲線、第1許容値及び/又は第2許容値を表示する(ステップS7)。ステップS7において表示制御部3は、例えば、対象系列曲線、予測系列曲線、参照系列曲線、進捗誤差曲線、調整パラメータ値曲線及び許容値をディスプレイに表示する。
【0054】
図8は、対象系列曲線22、予測系列曲線23、参照系列曲線21、実績進捗誤差曲線241、予測進捗誤差曲線242、調整パラメータ値曲線25、第1許容値R1及び第2許容値R2の表示例を示す図である。対象系列曲線22、予測系列曲線23、参照系列曲線21、実績進捗誤差曲線241、予測進捗誤差曲線242、第1許容値R1及び第2許容値R2は、縦軸が認識率に規定され、横軸が学習進捗(エポック数)に規定されたグラフである。調整パラメータ値曲線25は、縦軸が調整パラメータ値に規定され、横軸が学習進捗(エポック数)に規定されたグラフである。
【0055】
対象系列曲線22は、ステップS4において生成された対象系列データに対応する曲線である。予測系列曲線23は、ステップS5において生成された予測系列データに対応する曲線である。参照系列曲線21は、ステップS1において取得された参照系列データに対応する曲線である。実績進捗誤差曲線241は、ステップS6において算出された、対象系列データと参照系列データとに基づく実績進捗誤差系列データに対応する曲線であり、予測進捗誤差曲線242は、ステップS6において算出された、予測系列データと参照系列データとに基づく予測進捗誤差系列データに対応する曲線である。調整パラメータ値曲線25は、調整パラメータ値の学習進捗に応じた推移を表す系列データ(以下、調整パラメータ値系列データと呼ぶ)に対応する曲線である。調整パラメータ値は、ステップS8において変更される。第1許容値R1は、対象系列曲線22及び予測系列曲線23が示す認識率に対する許容値である。第2許容値R2は、実績進捗誤差曲線241及び予測進捗誤差曲線242が示す進捗誤差に対する許容値である。
【0056】
対象系列曲線22及び参照系列曲線21が並べて表示されることにより操作者は、対象系列曲線22と参照系列曲線21との差分度合いを目視で確認することができる。予測系列曲線23が表示されることにより操作者は、現状の調整パラメータ値にて反復学習された場合において対象モデルに見込まれる最終的な認識率を予見することが可能になる。予測系列曲線23と第1許容値R1とが並べて表示されることにより操作者は、対象モデルに見込まれる最終的な認識率が第1許容値R1に到達するか否かを目視で判断すること可能になる。予測系列曲線23及び参照系列曲線21が並べて表示されることにより操作者は、予測系列曲線23と参照系列曲線21との差分度合いを目視で確認することができる。操作者は、実績進捗誤差曲線241及び予測進捗誤差曲線242と第2許容値R2とが並べて表示されることにより操作者は、進捗誤差が第2許容値R2を超えているか否かを目視で確認することが可能になる。また、調整パラメータ値曲線25が表示されることにより、調整パラメータ値の推移と、進捗誤差や対象モデルの認識率の推移等との関連性などを知ることが可能になる。
【0057】
なお、ステップS7において表示制御部3は、対象系列曲線22、予測系列曲線23、参照系列曲線21、実績進捗誤差曲線241、予測進捗誤差曲線242、調整パラメータ値曲線25、第1許容値R1及び第2許容値R2の全てを一のグラフに表示する必要はない。例えば、表示制御部3は、対象系列曲線22、予測系列曲線23、参照系列曲線21、実績進捗誤差曲線241、予測進捗誤差曲線242、第1許容値R1及び第2許容値R2のグラフと、調整パラメータ値曲線25のグラフとを個別に表示してもよい。また、表示制御部3は、対象系列曲線22、予測系列曲線23、参照系列曲線21、実績進捗誤差曲線241、予測進捗誤差曲線242、第1許容値R1及び第2許容値R2を個別に選択的に表示してもよい。例えば、表示制御部3は、対象系列曲線22、予測系列曲線23、参照系列曲線21及び第1許容値R1を選択的に表示してもよいし、実績進捗誤差曲線241、予測進捗誤差曲線242及び第2許容値R2を選択的に表示してもよい。
【0058】
ステップS7が行われると学習部2は、調整パラメータ値を変更する(ステップS8)。ステップS8において学習部2は、例えば、ステップS5において生成された予測系列データに応じて調整パラメータ値を変更する。この場合、より詳細には、学習部2は、ステップS6において算出された、最終予測認識率を第1許容値R1から減じて得た差分(進捗誤差)に応じて調整パラメータ値aを変更する。上記の通り、最終予測認識率が第1許容値R1よりも高い場合、差分D3は負値となり、最終予測認識率が第1許容値R1よりも低い場合、差分D3は正値となる。
【0059】
進捗誤差D3が正値の場合、100%モデルの最終的な認識率が第1許容値R1よりも低くなるおそれがあるので、参照モデルの調整パラメータ値に近づける、すなわち調整パラメータ値aを大きくする。進捗誤差D3が負値の場合、進捗誤差D3が小さいほど、100%モデルの認識率が第1許容値R1を確保できる事が見込まれるので、他の75%モデル、50%モデル及び25%モデルの認識率をより高めるため、参照モデルの調整パラメータ値aから離す、すなわち調整パラメータ値aを小さくする。調整パラメータ値aを大きくする場合、調整パラメータ値aに値εを加算し、調整パラメータ値aを小さく場合、調整パラメータ値aから値εを減算すればよい。値εは、予め定められた固定値でもよいし、予測系列データが示す認識率と第1許容値R1との差分に応じた可変値でもよい。値εが可変値である場合、例えば、予測系列データが示す認識率と第1許容値R1との差分が大きいほど値εが大きくなるように設定され、予測系列データが示す認識率と第1許容値R1との差分が小さいほど値εが小さくなるように設定されるとよい。また、値εは、操作者により入力機器を介して指定された値に設定されてもよい。
【0060】
ここで、学習部2は、予測系列データが示す認識率と参照系列データが示す認識率との差分(進捗誤差)と第2許容値R2とに基づいて調整パラメータ値を変更してもよい。進捗誤差が第2許容値R2よりも大きい場合、100%モデルの最終的な認識率が操作者の期待する認識率よりも低くなるおそれがあるので、参照モデルの調整パラメータ値に近づける、すなわち調整パラメータ値を大きくする。進捗誤差が第2許容値R2よりも小さい場合、100%モデルの認識率が操作者の期待する認識率を確保できる事が見込まれるので、75%モデル、50%モデル及び25%モデルの認識率をより高めるため、参照モデルの調整パラメータ値から離す、すなわち調整パラメータ値を小さくする。
【0061】
他の例として学習部2は、予測系列データが示す認識率と参照系列データが示す認識率とに基づいて調整パラメータ値を変更してもよい。具体的には、学習部2は、学習終了段階ee等の所定の進捗段階における予測系列データが示す認識率と参照系列データが示す認識率とに応じて調整パラメータ値を変更してもよい。
【0062】
他の例として、進捗誤差として対象系列データが示す認識率と参照系列データが示す認識率との差分が算出された場合、学習部2は、上記方法と同様、当該進捗誤差に応じて調整パラメータ値を変更してもよい。例えば、現エポック数における対象系列データが示す認識率と参照系列データが示す認識率との差分に応じて調整パラメータ値を変更する。この場合、学習部2は、対象系列データが示す認識率と参照系列データが示す認識率との差分(進捗誤差)と第1許容値R1とに基づいて調整パラメータ値を変更してもよい。また、学習部2は、対象系列データを生成せず、現エポック数における対象モデルの認識率と参照系列データが示す認識率との差分に応じて調整パラメータ値を変更してもよい。この場合、学習部2は、対象モデルの認識率と参照系列データが示す認識率との差分(進捗誤差)と第1許容値R1とに基づいて調整パラメータ値を変更してもよい。
【0063】
ステップS8が行われると学習部2は、ステップS8における変更後の調整パラメータ値に従い対象モデルを反復学習する(ステップS2)。なお、調整パラメータ値は、学習部2により自動的に変更されてもよいし、操作者による入力デバイス等を介した承認を得てから変更されてもよい。承認を得る場合、例えば、表示制御部3は、
図9に示すように、現行値を維持する旨の棄却ボタンB1と、候補値を採用する旨の採用ボタンB2とを表示する表示ウィンドウI1等を表示機器に表示する。この際、表示制御部3は、参考のため、
図9に示すように、調整パラメータの現行値と当該現行値に値εを加算又は減算した候補値とを並べて表示してもよい。棄却ボタンB1が入力機器等を介して押下された場合、学習部2は、調整パラメータの現行値に従い反復学習を行う(ステップS2)。採用ボタンB2が入力機器等を介して押下された場合、学習部2は、候補値を調整パラメータ値に設定し、当該調整パラメータ値に従い反復学習を行う(ステップS2)。また、調整パラメータ値は、操作者により入力機器を介して指定された値に変更されてもよい。
【0064】
このようにして学習部2は、ステップS3において反復学習を終了すると判定されるまで、ステップS4、S5、S6、S7、S8、S2及びS3を順番に繰り返す。この繰り返しに伴い学習進捗が進行し、対象系列データ、予測系列データ、進捗誤差系列データ及び調整パラメータ値系列データが更新される。調整パラメータ値aの数値にも依るが、大局的には、学習進捗が進行するにつれて学習誤差が縮小し且つ認識率が向上していくこととなる。そしてステップS3において、例えば、「対象系列データが第1許容値R1に到達したこと」等の反復学習の終了条件が満たされると、学習部2により反復学習を終了すると判定される。ステップS3において反復学習を終了すると判定された場合(ステップS3:NO)、学習部2は、学習済み対象モデルを出力する(ステップS9)。ステップS9において学習部2は、学習終了段階における学習対象パラメータが割り当てられた対象モデルを学習済み対象モデルとして出力する。ステップS9の後、学習プログラムが終了する。
【0065】
上記の通り、本実施例によれば、対象モデルの学習過程において、対象モデルの認識率と、既知の調整パラメータ値に従い学習された参照モデルの認識率とを参考にして、対象モデルの調整パラメータ値を動的に修正することができる。これにより、複数の調整パラメータ値各々について一から反復学習する場合に比して、操作者の期待する認識率を有する対象モデルを、効率良く生成することができる。
【0066】
なお、上記の実施例は、要旨を逸脱しない範囲で種々の変形を行うことができる。例えば、以下のような変形が可能である。
【0067】
(変形例1)
上記実施例において第1許容値及び第2許容値は、一定値であるとした。しかしながら、変形例1に係る第1許容値及び第2許容値は、エポック数に応じて変化する系列データでもよい。この場合、第1許容値及び第2許容値は、エポック数が大きくなるにつれて進捗誤差が小さくなるように、厳しく設定されるとよい。具体的には、エポック数が大きくなるにつれて、第1許容値は大きくなり、第2許容値は小さくなるように設定されるとよい。変形例1によれば、進捗段階に応じて適切に調整パラメータ値を調整することが可能になる。
【0068】
(変形例2)
上記実施例において参照モデルは100%モデルであるとした。しかしながら、変形例2に係る参照モデルは、100%モデル以外の75%モデル、50%モデル及び25%モデルの何れか1つのモデル構造に設定されてもよい。この場合、調整パラメータは、参照モデルである1つのモデル構造の学習誤差に対するペナルティと他の3つのモデル構造の学習誤差に対するペナルティとのバランスを調整する。例えば、参照モデルが25%モデルに設定された場合、参照モデルの認識率を対象モデルの認識率の下限と見做して、調整パラメータ値を変更することが可能である。変形例2によれば、操作者の目的に応じて柔軟に100%モデル、75%モデル、50%モデル及び25%モデルの推論性能を調整することが可能になる。
【0069】
(変形例3)
上記実施例において調整パラメータは、一のモデルの学習誤差と他のモデルの学習誤差とのバランス、すなわち、2種のモデルの学習誤差に対するペナルティのバランスを調整するものとした。しかしながら、変形例3に係る調整パラメータは、3種以上の学習誤差に対するペナルティのバランスを調整してもよい。例えば、3種の学習誤差に対するペナルティのバランスを調整する場合、損失関数は、下記(4)式のように表すことが可能である。
【0070】
Li=aLi(1)+(2/3-2a/3)Li(2)+(1/3-a/3){Li(3)+Li(4)} (4)
【0071】
なお、Li(1)、Li(2)及び{Li(3)+Li(4)}に乗じられる係数は一例であり、調整パラメータ値aに連動する限りにおいて、任意に設計可能である。変形例3によれば、対象モデルの学習過程において、モデル構造間の学習誤差に対するペナルティをより詳細に調整することが可能になり、ひいては、モデル構造間の推論性能をより詳細に区別化することが可能になる。
【0072】
(変形例4)
変形例4に係る学習部2は、再学習を行うことが可能である。参照系列データが示す認識率と対象モデルの認識率との差分(進捗誤差)が基準誤差よりも大きい場合、学習部2は、遡り先の学習進捗段階(エポック数)から反復学習をやり直す。進捗誤差が基準誤差よりも大きい場合、対象モデルの性能を保証することができないので、現エポック数から一定段階(以下、遡りエポック数と呼ぶ)だけ遡って再び反復学習をやり直すことが望ましい。学習過程において学習部2は、エポック数毎に重みパラメータ値やバイアス値等の学習可能パラメータ値を記憶している。
【0073】
ステップ2において反復学習が行われた後、進捗誤差が基準誤差よりも大きいか否かを判定する。進捗誤差が基準誤差よりも小さい場合、再学習は行われない。進捗誤差が基準誤差よりも大きい場合、学習部2は、遡り先のエポック数の学習対象パラメータ値を読み出し、読み出した学習対象パラメータ値を現エポック数における学習対象パラメータ値に上書きし、遡り先のエポック数から反復学習を再開する。この際、調整パラメータ値は、遡り先のエポック数における調整パラメータ値に上書きされてもよいし、現エポック数の調整パラメータ値が流用されてもよい。遡りエポック数は、任意に設定されてもよいし、操作者により入力機器を介して設定されてもよい。基準誤差は、任意の値に設定されればよく、取得部1により取得することが可能である。変形例4によれば、進捗誤差が基準誤差よりも大きくなってしまった場合において再学習を行うので、対象モデルの性能を保証することができる。
【0074】
(変形例5)
上記実施例において予測系列データは、一意に決定されるものとした。変形例5に係る学習部2は、機械学習モデルを用いて予測系列データを予測する場合、予測系列データの各エポック数の認識率を、不確実性を持たせて予測することも可能である。表示制御部3は、予測系列データに対応する予測系列曲線を、
図10に示すように、帯41で表示するとよい。帯の上端42は、取り得る認識率の上限値の系列データに対応し、帯の下端43は、取り得る認識率の下限値の系列データに対応する。上限値と下限値とが乖離しているほど不確実性が大きいことを意味する。学習部2は、帯の情報、すなわち、認識率の上限値から下限値までの情報に基づいて調整パラメータ値を変更するとよい。
【0075】
例えば、学習部2は、進捗誤差の算出対象のエポック数(例えば、学習終了段階ee)における上限値に基づく第1の進捗誤差と、下限値に基づく第2の進捗誤差とを算出し、上限値から下限値までの任意の認識率に基づく第3の進捗誤差を算出し、第1の進捗誤差、第2の進捗誤差及び第3の進捗誤差に基づく任意の統計値を算出し、当該統計値を進捗誤差として用いて調整パラメータ値を変更する。統計値は、第1の進捗誤差、第2の進捗誤差及び第3の進捗誤差の最大値、最小値、中間値及び平均値等の任意の数値を用いることが可能である。また、統計値は、不確実性に応じた重み付けされた第1の進捗誤差、第2の進捗誤差及び第3の進捗誤差に基づいて算出されてもよい。変形例5によれば、予測系列データの不確実性を加味して調整パラメータ値を変更することができる。
【0076】
(変形例6)
上記実施例において対象モデル及び参照モデルは、画像分類タスクを実行するものとした。しかしながら、画像分類タスク以外の任意のタスクを実行する対象モデル及び参照モデルが用いられてもよい。例えば、セグメンテーションタスクや回帰タスクを実行する対象モデル及び参照モデルが用いられてもよい。対象モデル及び参照モデルの入力は画像である必要はなく、数値や波形等の任意の形式が入力に設定されてもよい。
【0077】
(変形例7)
上記実施例において対象モデルは、計算コストを切り替え可能な機械学習モデルの一例として、チャネル数を切り替え可能なスリマブル・ニューラルネットワークスにより実現されるとした。変形例7に係る対象モデルは、隠れ層の層数又は入力画像の解像度を切り替え可能な複数の機械学習モデルにより実現されてもよい。
【0078】
他の例として、対象モデルは、隠れ層の重み行列のランクを切り替えることで計算コストを変更可能なスケーラブルDNNにより実現されてもよい。スケーラブルDNNは、重み行列を分解しランクを制御することで複数の計算コストにそれぞれ対応する複数のモデル構造を有する。スケーラブルDNNの学習は、フルランク(行列分解による計算コスト削減のないモデル)の損失関数と低ランク(行列分解により計算コストを削減したモデル)の損失関数との比率を調整パラメータでバランスして学習するため、上記実施例と同じ要領で調整パラメータ値の修正が可能となる。
【0079】
(変形例8)
上記実施例において対象モデルは、計算コストを切り替え可能な機械学習モデルの一例として、チャネル数を切り替え可能なスリマブル・ニューラルネットワークスにより実現されるとした。変形例8では、重み減衰などの正則化を導入することで、学習後に推論寄与度の低い重みパラメータを除去する技術である枝刈り(プルーニング)によりモデルサイズを削減する場合を考える。変形例8に係る対象モデルおよび参照モデルの学習時の構造は同一であり、学習パラメータである正則化の強度がそれぞれ異なる。
【0080】
変形例8に係る損失関数Lは、下記(6)式に示すような、右辺第1項の学習誤差(ミニバッチサイズBの平均)と右辺第2項の正則化項との和として設計される。正則化項R(Θ)は、例えば、各重みパラメータの2乗の和により規定される。変形例8ではモデル構造が1つであるので、Jの記載を削除している。変形例8に係る調整パラメータ値aは、学習誤差と正則化とのバランスを調整するための学習パラメータである。調整パラメータ値aを大きくすることで正則化の強度が高くなり、重みパラメータが高い値をとることが抑制される。結果、推論寄与度の低い重みパラメータが増加し、学習後に枝刈りできる重みパラメータが増えてモデルサイズを小さくできる。一方、調整パラメータ値aを大きくすると、損失関数Lにおける正則化の寄与が増加するため、相対的に認識率が低下し、調整パラメータ値aを小さくすると、正則化の寄与が低下するため、相対的に認識率が増加する。このように、モデルサイズと認識率との間には、調整パラメータ値の増減に伴うトレードオフが存在する。
【0081】
L=-1/BΣi
B(ti
Tln{f(Θ,xi)})+aR(Θ) (6)
【0082】
変形例8に係る参照モデルは、例えば、調整パラメータ値a=0など小さい値で学習されたニューラルネットワークとし、モデルサイズは大きいものの、認識率が高いものとする。対象モデルを学習する場合は、調整パラメータ値aを調整しながら反復学習することで、所望の認識率を維持しつつ、なるべくモデルサイズを小さくするための調整パラメータ値aの設定を効率的に実施することが可能になる。
【0083】
(変形例9)
上記実施例において対象モデルは、計算コストを切り替え可能な機械学習モデルの一例として、チャネル数を切り替え可能なスリマブル・ニューラルネットワークスにより実現されるとした。変形例9に係る対象モデル及び参照モデルは、同一のモデル構造を有するニューラルネットワークであり、セグメンテーション又は画像分類を行うニューラルネットワークである。セグメンテーションでは画像の各画素がクラスに分類される。画像分類は、画像がクラスに分類される。変形例9に係る調整パラメータは、各クラスに関する学習誤差に対するペナルティを調整する。
【0084】
変形例9に係る損失関数Liは、下記(7)式に示すような、セグメンテーション又は画像分類モデルの学習に関する損失関数であり、第1のクラスに関する学習誤差LC1iと第2のクラスに関する学習誤差LC2iとの和として設計される。学習誤差LC1i及びLC2iは、(3)式と同様、クロスエントロピーとして定義されればよい。変形例9に係る対象モデルは、モデル構造が1つであるので、jの記載を削除している。変形例9に係る調整パラメータ値aは、学習誤差LC1iに対するペナルティと学習誤差LC2iに対するペナルティとのバランスを調整するための調整パラメータである。変形例9に係る調整パラメータ値aも0から1までの値をとり得る。
【0085】
Li=aLC1i+(1-a)LC2i (7)
【0086】
変形例9に係る参照モデルは、任意の調整パラメータ値aに従い学習される。例えば、参照モデルは、a=0.7であり、第1のクラスに関する学習誤差LC1iを重視した学習がされる。変形例9によれば、対象モデルの学習過程において調整パラメータ値を動的に調整することにより、第1のクラスに関する学習誤差に対するペナルティと第2のクラスに関する学習誤差に対するペナルティとのバランスを調整しながら反復学習を行うことができる。例えば、第1のクラスが「人」であり、第2のクラスが「犬」であるとした場合、「人」の画素であるのに「人」でないと判断したときのペナルティと「犬」の画素であるのに「犬」でないと判断したときのペナルティとを調整することができる。なお、クラス数が3以上ある場合、当該クラス集合を任意の基準により第1のクラス群と第2のクラス群とに分割するとよい。よって、変形例9によれば、操作者の所望のセグメンテーション性能又は分類性能を有する対象モデルを生成することが可能になる。
【0087】
(変形例10)
変形例10に係る対象モデル及び参照モデルは、同一のモデル構造を有するニューラルネットワークであり、物体検出を行うニューラルネットワークである。物体検出においては、画像に描画されているオブジェクトのうち検出されたオブジェクトをROIで囲み、ROIで囲まれたオブジェクトがクラスに分類される。変形例10に係る調整パラメータは、クラス分類又はROIサイズに関する学習誤差に対するペナルティを調整する。
【0088】
変形例10に係る対象モデル及び参照モデルは、画像に描画されているオブジェクト毎に算出される、クラスに関する学習誤差を評価する損失関数と、ROI位置に関する学習誤差を評価する損失関数とを用いて反復学習することが可能である。
【0089】
変形例10に係るクラスに関する学習誤差を評価する損失関数Liは、下記(8)式に示すような、第1のROIサイズに関するオブジェクトの学習誤差LR1iと第2のROIサイズに関するオブジェクトの学習誤差LR2iとの和として設計可能される。ROIサイズの閾値は、予め所定の値として設定しておく。学習誤差LR1i及びLR2iは、対応するオブジェクトのクラス分類に関する推定誤差(クロスエントロピー)及びROIの位置ずれに関する誤差として定義されればよい。変形例10に係る対象モデルは、モデル構造が1つであるので、jの記載を削除している。変形例10に係る調整パラメータ値aは、学習誤差LR1iに対するペナルティと学習誤差LR2iに対するペナルティとのバランスを調整するための調整パラメータである。変形例10に係る調整パラメータ値aも0から1までの値をとり得る。
【0090】
Li=aLR1i+(1-a)LR2i (8)
【0091】
変形例10に係る参照モデルは、任意の調整パラメータ値aに従い学習される。例えば、参照モデルは、a=1であり、第1のROIサイズに関する学習誤差を重視した学習がされる。変形例10によれば、対象モデルの学習過程において、第1のROIサイズに関する学習誤差に対するペナルティと第2のROIサイズに関する学習誤差に対するペナルティとのバランスを調整しながら反復学習を行うことができる。例えば、第1のROIサイズが「大」であり、第2のクラスが「小」であるとした場合、サイズ「大」のROIのオブジェクトの分類性能を、サイズ「小」のROIのオブジェクトの分類性能よりも重視することができる。調整パラメータ値を適切に調整することにより、対象モデルに、サイズ「大」の分類誤差が大きくならない範囲でサイズ「小」も妥当な分類誤差で物体検出させることができる。
【0092】
同様に、例えば、オブジェクトのクラス種、ROIの位置(画像の下や中央のオブジェクトの方が重要などの場合)、クラス分類とROIの位置精度とのバランスなどについても同様に調整パラメータの制御が可能である。例えば、変形例10に係る損失関数は、第1のROI位置に関するオブジェクトの学習誤差と第2のROI位置に関するオブジェクトの学習誤差との和として設計可能である。この場合、各学習誤差は、対応するオブジェクトのクラス分類に関する推定誤差及びROIサイズに関する誤差として定義されればよい。他の例としては、変形例10に係る損失関数は、第1のクラス種に関するオブジェクトの学習誤差と第2のクラス種に関するオブジェクトの学習誤差との和として設計可能である。この場合、各学習誤差は、対応するオブジェクトのクラス分類に関する推定誤差と、ROIサイズ及び/又はROI位置に関する誤差と、として定義されればよい。
【0093】
(変形例11)
変形例11に係る対象モデル及び参照モデルは、同一のモデル構造を有するニューラルネットワークとして、マルチタスク学習が行われるニューラルネットワークが用いられる。マルチタスク学習は、複数のタスクを実行可能なニューラルネットワークである。組み合わされるタスクの種類は、特に限定されず、画像分類、セグメンテーション、物体検出、奥行き推定その他の如何なるタスクが組み合わされてもよい。変形例11に係る調整パラメータは、複数のタスクに関する学習誤差に対するペナルティを調整する。
【0094】
変形例11に係る損失関数Liは、下記(9)式に示すような、マルチタスク学習に関する損失関数であり、第1のタスクに関する学習誤差LT1iと第2のタスクに関する学習誤差LT2iとの和として設計される。学習誤差LT1i及びLT2iは、タスクに応じて設計される。例えば、セグメンテーション及び奥行推定のマルチタスクの場合、セグメンテーションに関する学習誤差としては画素ごとのクロスエントロピー、奥行推定に関する学習誤差としては画素ごとの二乗誤差などが用いられる。変形例11に係る対象モデルは、モデル構造が1つであるので、jの記載を削除している。変形例11に係る調整パラメータ値aは、学習誤差LT1iに対するペナルティと学習誤差LT2iに対するペナルティとのバランスを調整するための調整パラメータである。変形例11に係る調整パラメータ値aも0から1までの値をとり得る。
【0095】
Li=aLT1i+(1-a)LT2i (9)
【0096】
変形例11に係る参照モデルは、任意の調整パラメータ値aに従い学習される。例えば、参照モデルは、a=1であり、第1のタスクの学習誤差LT1iを重視した学習がされる。変形例11によれば、対象モデルの学習過程において調整パラメータ値を動的に調整することにより、第1のタスクに関する学習誤差LT1iに対するペナルティと第2のタスクに関する学習誤差LT2iに対するペナルティとのバランスを調整しながら反復学習を行うことができる。例えば、第1のタスクがセグメンテーションであり、第2のタスクが奥行推定であるとした場合、セグメンテーションの認識率が所望の精度以上となる範囲で、奥行推定の推定精度を最大化する、などの調整が容易に実現可能となる。これにより、操作者の所望の推論性能を有する対象モデルを生成することが可能になる。
【0097】
(変形例12)
変形例12に係る対象モデル及び参照モデルは、ニューラル・アーキテクチャ・サーチのためのニューラルネットワークである。変形例12に係る調整パラメータ値aは、下記(10)式に示すような、ニューラル・アーキテクチャ・サーチに関する損失関数に含まれる、学習誤差LEに対するペナルティと計算コストLCに対するペナルティとのバランスを調整するためのパラメータである。変形例13についても、jに関する記載は削除する。
【0098】
L=aLE+(1-a)LC (10)
【0099】
変形例12に係る参照モデルは、任意の値の調整パラメータ値aに従い学習される。例えば、参照モデルは、調整パラメータ値aは値「1」に設定され、学習誤差LEを重視した学習がされる。変形例12によれば、対象モデルの学習過程において調整パラメータ値を動的に調整することにより、学習誤差LEに対するペナルティと計算コストLCに対するペナルティとのバランスを調整しながら反復学習を行うことができる。これにより、例えば、参照モデルよりも一定程度推論性能を犠牲にしつつ、計算コストを減少させたニューラルネットワークを生成することが可能になる。このように変形例12によれば、操作者の所望の推論性能を有するニューラルネットワークを探索することが可能になる。
【0100】
(変形例13)
上記実施例において対象モデル及び参照モデルは、機械学習モデルの一例として、ニューラルネットワークであるとした。変形例13に係る対象モデル及び参照モデルは、逐次最適が実行される学習手法であればよく、サポートベクターマシーン等の任意の機械学習モデルが用いられてもよい。
【0101】
(変形例14)
上記述べた実施形態及び変形例1-13は、対象モデルの学習過程において調整パラメータ値を変更する限りにおいて、適宜組合せ可能である。
【0102】
(その他)
図11は、本実施形態に係る学習装置100のハードウェア構成例を示す図である。学習装置100は、処理回路11、主記憶装置12、補助記憶装置13、表示機器14、入力機器15及び通信機器16を備える。処理回路11、主記憶装置12、補助記憶装置13、表示機器14、入力機器15及び通信機器16は、バスを介して接続されている。
【0103】
処理回路11は、補助記憶装置13から主記憶装置12に読み出された学習プログラムを実行し、取得部1、学習部2及び表示制御部3として動作する。主記憶装置12は、ROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置13は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及び、メモリカード等である。
【0104】
表示機器14は、種々の表示情報を表示する。表示機器14は、例えばディスプレイやプロジェクタ等である。入力機器15は、コンピュータを操作するためのインタフェースである。入力機器15は、例えばキーボードやマウス等である。コンピュータがスマートフォン及びタブレット型端末等のスマートデバイスの場合、表示機器14及び入力機器15は、例えばタッチパネルである。通信機器16は、他の装置と通信するためのインタフェースである。
【0105】
コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0106】
コンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。またコンピュータで実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0107】
コンピュータで実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。コンピュータで実行されるプログラムは、上述の学習装置100の機能構成(機能ブロック)のうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、処理回路11が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置12上にロードされる。すなわち上記各機能ブロックは主記憶装置12上に生成される。
【0108】
上述した各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC(Integrated Circuit)等のハードウェアにより実現してもよい。複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
【0109】
学習装置100を実現するコンピュータの動作形態は任意でよい。例えば、学習装置100を1台のコンピュータにより実現してもよい。また例えば、学習装置100を、ネットワーク上のクラウドシステムとして動作させてもよい。
【0110】
かくして、本実施形態によれば、所望の効果を有する機械学習モデルを効率的に得る事が可能になる。
【0111】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0112】
1…取得部、2…学習部、3…表示制御部、11…処理回路、12…主記憶装置、13…補助記憶装置、14…表示機器、15…入力機器、16…通信機器、100…学習装置。