(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-04
(45)【発行日】2023-10-13
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20231005BHJP
【FI】
G06N3/08
(21)【出願番号】P 2019130732
(22)【出願日】2019-07-12
【審査請求日】2022-06-30
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100114971
【氏名又は名称】青木 修
(72)【発明者】
【氏名】堤 匡史
【審査官】今城 朋彬
(56)【参考文献】
【文献】特開2018-160200(JP,A)
【文献】米国特許出願公開第2019/0138901(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
所定のニューラルネットワークの機械学習を実行する機械学習処理部と、
ハイパーパラメーターに従って、前記機械学習処理部に前記機械学習を実行させる学習制御部とを備え、
前記学習制御部は、前段学習と、前記前段学習の後の後段学習とを実行し、(a)前記前段学習において、前記ハイパーパラメーターの単一の値セットで、所定第1条件が成立するまで、前記機械学習処理部に前記機械学習を実行させ、前記所定第1条件が成立したときの前記ニューラルネットワークのパラメーターの値を保存し、(b)前記後段学習において、保存した前記ニューラルネットワークのパラメーターの値を前記ニューラルネットワークのパラメーター初期値として、所定第2条件が成立するまで、前記ハイパーパラメーターの値セットを変更して、前記機械学習処理部に前記機械学習を実行させること、
を特徴とする情報処理装置。
【請求項2】
前記第1条件は、前記機械学習の学習誤差が所定第1閾値より低くなることであり、
前記第2条件は、前記機械学習の学習誤差が所定第2閾値より低くなることであり、
前記第2閾値は、前記第1閾値より低いこと、
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記学習制御部は、前記ハイパーパラメーターの値セットにおける各値を所定の値域内で変更し、
前記学習制御部は、(a)前記値域において、前記ニューラルネットワークの構造に最も複雑さが要求される値を、前記ハイパーパラメーターの値セットにおける各値に設定して、所定第3条件が成立するまで、前記ニューラルネットワークの構造を変更して、前記機械学習処理部に前記機械学習を実行させ、(b)前記所定第3条件が成立したときの前記ニューラルネットワークの構造で、前記前段学習および前記後段学習を実行すること、
を特徴とする請求項1記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関するものである。
【背景技術】
【0002】
ある学習システムは、機械学習によって得られた学習結果と、機械学習のハイパーパラメーターとの関係を示す推定関数を推定し、推定関数に基づいて、ハイパーパラメーターの値域を限定して、ハイパーパラメーターの調整工程を短縮している(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のシステムでは、推定関数の推定に時間がかかるとともに、限定後のハイパーパラメーターの値域における各ハイパーパラメーターの値のセットについての機械学習および学習結果の評価にかかる時間は変わらない。
【0005】
本発明は、上記の問題に鑑みてなされたものであり、ハイパーパラメーターの調整を短時間で行う情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る情報処理装置は、所定のニューラルネットワークの機械学習を実行する機械学習処理部と、ハイパーパラメーターに従って、前記機械学習処理部に前記機械学習を実行させる学習制御部とを備える。そして、前記学習制御部は、前段学習と、前記前段学習の後の後段学習とを実行し、(a)前記前段学習において、前記ハイパーパラメーターの単一の値セットで、所定第1条件が成立するまで、前記機械学習処理部に前記機械学習を実行させ、前記所定第1条件が成立したときの前記ニューラルネットワークのパラメーターの値を保存し、(b)前記後段学習において、保存した前記ニューラルネットワークのパラメーターの値を前記ニューラルネットワークのパラメーター初期値として、所定第2条件が成立するまで、前記ハイパーパラメーターの値セットを変更して、前記機械学習処理部に前記機械学習を実行させる。
【発明の効果】
【0007】
本発明によれば、ハイパーパラメーターの調整を短時間で行う情報処理装置が得られる。
【0008】
本発明の上記又は他の目的、特徴および優位性は、添付の図面とともに以下の詳細な説明から更に明らかになる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【
図2】
図2は、
図1に示す情報処理装置の動作について説明するフローチャートである。
【発明を実施するための形態】
【0010】
以下、図に基づいて本発明の実施の形態を説明する。
【0011】
実施の形態1.
【0012】
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
図1に示す情報処理装置は、記憶装置1、通信装置2、および演算処理装置3を備える。
【0013】
記憶装置1は、フラッシュメモリー、ハードディスクなどの不揮発性の記憶装置であって、各種データやプログラムを格納する。
【0014】
通信装置2は、ネットワークインターフェイス、周辺機器インターフェイス、モデムなどのデータ通信可能な装置であって、必要に応じて、他の装置とデータ通信を行う。
【0015】
演算処理装置3は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを備えるコンピューターであって、プログラムを、ROM、記憶装置1などからRAMにロードしCPUで実行することで、各種処理部として動作する。ここでは、演算処理装置3は、学習制御部21、および機械学習処理部22として動作する。
【0016】
学習制御部21は、ハイパーパラメーターに従って、機械学習処理部22に機械学習を実行させる。
【0017】
ハイパーパラメーターは、機械学習の対象となるニューラルネットワーク自体のパラメーターではなく、機械学習処理におけるパラメーターであり、例えば、学習率、ドロップアウト率、データオーグメンテーション変動幅、バッチサイズ、エポック数などである。
【0018】
機械学習処理部22は、所定のニューラルネットワークの機械学習を実行する。
【0019】
なお、ここで、ニューラルネットワークは、隠れ層が2つ以上のディープニューラルネットワークである。つまり、ディープラーニングで機械学習されるニューラルネットワークである。また、このディープニューラルネットワークの構造および機械学習については、既知のものが使用できる。
【0020】
学習制御部21は、機械学習処理部22を使用して、前段学習と、前段学習の後の後段学習とを実行する。前段学習では、学習制御部21は、ハイパーパラメーターの調整をせず、特定の値セットのハイパーパラメーターで、機械学習処理部22に、機械学習を進行させ、その後、後段学習では、学習制御部21は、前段学習で得られたニューラルネットワークのパラメーター(重み係数やバイアス)の値を、ニューラルネットワークのパラメーターの初期値として、複数の値セットのハイパーパラメーターのそれぞれで、機械学習処理部22に、機械学習を進行させる。
【0021】
具体的には、学習制御部21は、(a)前段学習において、ハイパーパラメーターの単一の値セット(例えばユーザーにより指定されたデフォルトの値セット)で、所定第1条件が成立するまで、機械学習処理部に機械学習を実行させ、所定第1条件が成立したときのニューラルネットワークのパラメーターの値をRAMや記憶装置1に保存し、(b)後段学習において、保存したニューラルネットワークのパラメーターの値をニューラルネットワークのパラメーター初期値として、所定第2条件が成立するまで、ハイパーパラメーターの値セットを変更して、機械学習処理部に機械学習を実行させる。
【0022】
ここで、第1条件および第2条件は、学習誤差、エポック数などに基づき設定される。
【0023】
例えば、第1条件は、機械学習の学習誤差が所定第1閾値より低くなることとされ、第2条件は、機械学習の学習誤差が所定第2閾値より低くなることとされ、その際の第2閾値は、第1閾値より低く設定される。
【0024】
ここで、学習誤差は、機械学習のトレーニングデータとは別に準備されている評価データ(入力データと出力データとの対)に基づいて計算される。具体的には、対象のニューラルネットワークに評価データの入力データを入力し、対象のニューラルネットワークの出力データと、評価データの出力データとの差分に基づいて、学習誤差が導出される。
【0025】
後段学習では、学習制御部21は、ハイパーパラメーターの値セットにおける各値を所定の値域内で変更する。また、後段学習では、学習制御部21は、ハイパーパラメーターの値セットを、ランダムサーチ、グリッドサーチ、ベイズ最適化などといった既知の方法に従って変更していく。
【0026】
次に、上記装置の動作について説明する。
図2は、
図1に示す情報処理装置の動作について説明するフローチャートである。
【0027】
まず、学習制御部21は、機械学習の対象のニューラルネットワークの構造(中間層の数、各層のニューロン数など)を設定する(ステップS1)。なお、入力層および出力層のニューロン数は、トレーニングデータの入力データおよび出力データに基づき特定され、その他の構造については、ここでは、例えばユーザーにより予め指定される。
【0028】
次に、学習制御部21は、機械学習処理部22に、そのニューラルネットワークの機械学習処理(前段学習)を実行させる(ステップS2)。このとき、機械学習処理部22は、記憶装置1などに予め記憶されたトレーニングデータを使用して、そのニューラルネットワークの機械学習処理を実行する。
【0029】
機械学習処理部22が所定回数の機械学習処理を実行すると、学習制御部21は、前段学習を終了するか否かを判定する(ステップS3)。前段学習を終了しないとを判定した場合、学習制御部21は、ステップS2の前段学習を継続する。前段学習を終了するとを判定した場合、学習制御部21は、前段学習を終了し、この時点でのニューラルネットワークのパラメーター(重み係数など)を保存する(ステップS4)。
【0030】
例えば、ステップS3では、機械学習処理部22は、評価データに基づいて、現時点のニューラルネットワークの学習誤差を導出し、その学習誤差が所定閾値未満であれば、前段学習を終了する。
【0031】
次に、学習制御部21は、後段学習を実行する。まず、学習制御部21は、所定の方式(ランダムサーチ、ベイズ最適化など)に従って、ハイパーパラメーターの値セットを変更し(ステップS5)、変更後のハイパーパラメーターで、機械学習処理部22に、所定エポック数の機械学習処理を実行させる(ステップS6,S7)。
【0032】
所定エポック数の機械学習処理が終了すると、学習制御部21は、後段学習を終了するか否か(つまり、適切なハイパーパラメーターでの機械学習が完了したか否か)を判定する(ステップS8)。後段学習を終了しないとを判定した場合、学習制御部21は、(必要に応じて、現時点のハイパーパラメーターの値セットとニューラルネットワークのパラメーターの値とを互いに関連付けて学習結果として記憶装置1などに保存し)ステップS4で保存したニューラルネットワークのパラメーターの値を読み出して、ニューラルネットワークのパラメーター初期値としてセットし(ステップS9)、ハイパーパラメーターの値セットを変更し(ステップS5)、ステップS6以降の処理を実行する。
【0033】
一方、ステップS8において後段学習を終了すると判定した場合、学習制御部21は、この時点でのニューラルネットワークのパラメーター(重み係数など)の値およびハイパーパラメーターの値セットを学習結果として保存し、機械学習を終了する。
【0034】
以上のように、上記実施の形態1によれば、学習制御部21は、前段学習と、前段学習の後の後段学習とを実行する。そして、前段学習において、学習制御部21は、ハイパーパラメーターの単一の値セットで、所定第1条件が成立するまで、機械学習処理部22に機械学習を実行させ、所定第1条件が成立したときのニューラルネットワークのパラメーターの値を保存する。次に、後段学習において、学習制御部21は、保存したニューラルネットワークのパラメーターの値をニューラルネットワークのパラメーター初期値として、所定第2条件が成立するまで、ハイパーパラメーターの値セットを変更して、機械学習処理部22に機械学習を実行させる。
【0035】
これにより、前段学習で途中まで機械学習を進行させてからハイパーパラメーターの調整を行うため、ハイパーパラメーターの調整が比較的短時間で済む。
【0036】
実施の形態2.
【0037】
実施の形態2では、学習制御部21は、上述のステップS1において、(a)上述の各ハイパーパラメーターの値域において、ニューラルネットワークの構造(中間層の数、各層のニューロン数など)に最も複雑さが要求される値を、ハイパーパラメーターの値セットにおける各値に設定して、所定条件が成立するまで、ニューラルネットワークの構造を変更して、機械学習処理部22に機械学習を実行させ、(b)所定条件が成立したときのニューラルネットワークの構造で、上述の前段学習および後段学習を実行する。なお、ここでは、ハイパーパラメーターには、上述の前段処理と同様に、所定の単一の値セットが適用される。
【0038】
例えば、学習制御部21は、所定初期値からニューラルネットワークの中間層の数、各層のニューロン数などを増加させ、各構造でニューラルネットワークの機械学習を実行させ、学習誤差が所定閾値未満になったときの構造を、機械学習対象のニューラルネットワークの構造とし、上述の前段学習および後段学習を実行する。
【0039】
例えば、データオーグメンテーションの画像回転範囲幅の値域が0~15度である場合、最大値である15度がニューラルネットワークの構造に最も複雑さが要求される値であるため、ここでは、データオーグメンテーションの画像回転範囲幅を15度に固定して、機械学習すべきニューラルネットワークの構造が上述のようにして特定される。同様に、例えば、ドロップ率の値域が0~60%である場合、最大値である60%がニューラルネットワークの構造に最も複雑さが要求される値であるため、ここでは、ドロップ率を60%に固定して、機械学習すべきニューラルネットワークの構造が上述のようにして特定される。
【0040】
なお、実施の形態2に係る情報処理装置のその他の構成および動作については実施の形態1と同様であるので、その説明を省略する。
【0041】
以上のように、上記実施の形態2によれば、前段学習および後段学習の前に、機械学習の対象となるニューラルネットワークの適切な構造が特定されるため、前段学習や後段学習において、学習誤差が適切に減少させることができる。
【0042】
なお、上述の実施の形態に対する様々な変更および修正については、当業者には明らかである。そのような変更および修正は、その主題の趣旨および範囲から離れることなく、かつ、意図された利点を弱めることなく行われてもよい。つまり、そのような変更および修正が請求の範囲に含まれることを意図している。
【0043】
例えば、上記実施の形態において、後段学習の終了条件(ステップS8)は、ベイズ最適化の場合には、学習誤差が収束したか否か(つまり、前回の学習誤差と今回の学習誤差との差が所定値未満となったか否か)としてもよい。
【0044】
また、上記実施の形態において、後段学習の終了条件(ステップS8)は、ハイパーパラメーターの値セットの変更回数としてもよい。その場合、ハイパーパラメーターの値セットのうち、学習誤差が最小であった学習結果(ニューラルネットワークのパラメーター値)が、機械学習対象のニューラルネットワークのパラメーター値として選択される。
【0045】
さらに、上記実施の形態1において、前段学習または後段学習において、所定回数の機械学習処理を行っても学習誤差が閾値より低くならない場合、機械学習処理を中止し、ニューラルネットワークの構造を変更して(つまり、中間層の数や中間層のニューロン数を増加させ、再度、前段学習および後段学習を実行するようにしてもよい。
【産業上の利用可能性】
【0046】
本発明は、例えば、ニューラルネットワークの機械学習に適用可能である。
【符号の説明】
【0047】
3 演算処理装置
21 学習制御部
22 機械学習処理部