WO2020217987A1 - 情報処理装置、情報処理方法、プログラム生成方法 - Google Patents

情報処理装置、情報処理方法、プログラム生成方法 Download PDF

Info

Publication number
WO2020217987A1
WO2020217987A1 PCT/JP2020/015781 JP2020015781W WO2020217987A1 WO 2020217987 A1 WO2020217987 A1 WO 2020217987A1 JP 2020015781 W JP2020015781 W JP 2020015781W WO 2020217987 A1 WO2020217987 A1 WO 2020217987A1
Authority
WO
WIPO (PCT)
Prior art keywords
learning
value
parameter
information processing
predetermined
Prior art date
Application number
PCT/JP2020/015781
Other languages
English (en)
French (fr)
Inventor
義己 田中
裕明 三上
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2020217987A1 publication Critical patent/WO2020217987A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • This technology was made in view of such a situation, and enables learning to converge quickly.
  • the information processing device may be an independent device or an internal block constituting one device.
  • the program can be provided by transmitting via a transmission medium or by recording on a recording medium.
  • the calculation node 10 has a configuration in which a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, and a GPU (Graphics Processing Unit) 14 are connected to each other by a bus 15. ing.
  • An input / output interface 16 is further connected to the bus 15.
  • An input unit 17, an output unit 18, a storage unit 19, a communication unit 20, and a drive 21 are connected to the input / output interface 16.
  • the learning data storage unit 31 can be configured by a storage unit 19 composed of a RAM 13 (FIG. 1), a hard disk drive (HDD), and the like.
  • the learning data storage unit 31 stores a learning data set that is an input for DNN learning.
  • a process for increasing the learning image a process called random crop is performed to increase the learning image by resizing the image to a predetermined size and randomly extracting a patch of the predetermined size from the resized image.
  • a process called horizontal / vertical flip is performed to increase the number of learned images by inverting the images in the horizontal and vertical directions.
  • a process called aspect ratio augmentation is performed to increase the learning image by changing the aspect ratio of the image.
  • a process called color augmentation is performed to increase the number of learned images by changing the color tone of the image.
  • the parameter calculation unit 33 can be configured by the CPU 11 (FIG. 1).
  • the parameter calculation unit 33 calculates and generates initial parameters used in DNN learning.
  • the initial parameters may be fixed to some extent or calculated by calculation, and the method to be used can be appropriately set. Further, the parameter calculation unit 33 in the present embodiment also has a function of adjusting the value of the parameter ⁇ described later.
  • the learning update unit 35 is also supplied with the DNN model stored in the DNN model storage unit 34.
  • initial parameters are also supplied to the learning update unit 35 from the parameter calculation unit 33.
  • the learning update unit 35 performs learning processing using the learning data set, the DNN model, and the initial parameters.
  • the error rate decreased and the progress of learning accelerated at the timing when LR Decay was executed. It can also be read that the reduction rate of the error rate at the timing T3 is smaller than the reduction rate of the error rate at the timing T1 and the timing T2. In this way, as learning progresses, the decrease in error rate may not accelerate even if LR Decay is executed.
  • the update amount ⁇ wt of the iteration I11 is used, and the learning of the iteration I12 following the iteration I11 is performed.
  • the influence of the iteration I11 during the learning remains.
  • Parameter ⁇ in iteration I52 after LR Decay is subject to adjustment.
  • the parameter ⁇ in the iteration I52 is set to ⁇ 2.
  • This ⁇ 2 is a value different from that of ⁇ 1.
  • ⁇ 2 can be a value that satisfies ⁇ 2 ⁇ 1.
  • ⁇ 2 can be a value close to 0, such as 0 or 0.01.
  • the value of the parameter ⁇ at the time of iteration I51 is ⁇ 1, which is the default value.
  • the parameter ⁇ in the iteration I52 after LR Decay is subject to adjustment.
  • the parameter ⁇ in the iteration I52 is set to ⁇ 2.
  • This ⁇ 2 is a value different from that of ⁇ 1, like ⁇ 2 described with reference to A in FIG.
  • ⁇ 2 can be a value that satisfies ⁇ 2 ⁇ 1.
  • ⁇ 2 can be a value close to 0, such as 0 or 0.01.
  • the parameter ⁇ in the iteration I53 following the iteration I52 is set to ⁇ 3.
  • This ⁇ 3 is a value different from ⁇ 1 and ⁇ 2.
  • ⁇ 3 can be a value that satisfies ⁇ 2 ⁇ 3 ⁇ 1.
  • the parameter ⁇ in the iteration I54 following the iteration I53 is set to ⁇ 4.
  • This ⁇ 4 is a value different from ⁇ 1, ⁇ 2, and ⁇ 3.
  • ⁇ 4 can be a value that satisfies ⁇ 2 ⁇ 3 ⁇ 4 ⁇ 1.
  • the parameter ⁇ in the iteration I55 following the iteration I54 is returned to ⁇ 1. Also, in iterations after iteration I55, learning is performed using ⁇ 1 until a new LR Decay is executed.
  • the parameter ⁇ may be adjusted by several iterations after LR Decay. Further, when the parameter ⁇ is adjusted over several iterations after LR Decay, the number of iterations for adjusting the value is 3 in the above case, but of course, it may be a number other than 3. ..
  • a setting screen for setting various parameters related to the learning environment is displayed. Since the wording "learning environment setting” is displayed, the user can recognize that the setting related to the learning environment is performed. Items such as “number of GPUs to be used”, “batch size in each GPU”, and “maximum number of learning episodes” are displayed as items that can be set as a learning environment.
  • the GPU number input field 112 for inputting the number of GPUs for distributed learning is displayed.
  • a numerical value such as "128" is input.
  • a batch size input field 113 for inputting a batch size that the user wants to execute in one GPU is displayed.
  • a numerical value such as "90" is input.
  • the epoch number input field 114 for the user to input the maximum epoch number is displayed.
  • a numerical value such as "90" is input.
  • the settings related to "Learning Rate Decay” can be made.
  • the user can set the timing when "Learning Rate Decay” is executed.
  • An item “manually set the timing” and an item “automatically set the timing” are displayed, and a check column 116 for selecting either item is displayed on the left side of each item.
  • the phrase “Adjust Momentum during Decay” is displayed, and a check box 119 is displayed to the left of the phrase.
  • the check column 119 is checked. In FIG. 18, the check column 119 is checked.
  • FIG. 18 shows an example in which the item “set to a fixed value” is selected.
  • An ⁇ value input field 121 is displayed below the item “Set to a fixed value”.
  • a numerical value can be input when the item “set to a fixed value” is selected.
  • a numerical value such as "0.01" is input.
  • the value input in the ⁇ value input field 121 is the value of the parameter ⁇ used in the iteration after LR Decay.
  • the user checks the check box 119 "Adjust Momentum at the time of Decay" and sets the item "Set to a fixed value”. It is performed by selecting and inputting a value in the ⁇ value input field 121.
  • the ⁇ value set in this way is applied to only one iteration after LR Decay, as described with reference to A in FIG. Alternatively, as described with reference to B in FIG. 17, it is applied to the number iterations after LR Decay.
  • the number of iterations of this number iteration may be a fixed value or set by the user. Is also good.
  • a screen as shown in FIG. 19 is presented to the user.
  • the screen shown in FIG. 19 has a portion for inputting the number of iterations added to the screen shown in FIG. 18, and the other portions are the same.
  • the check column 131 When the check column 131 is checked, it is possible to make settings related to period adjustment.
  • the user inputs the period for which the parameter ⁇ is desired to be adjusted in the period input field 132.
  • the period input field 132 when the item "setting the adjustment period” is checked, numerical input is possible. In the example shown in FIG. 19, a numerical value such as "3" is input.
  • a numerical value such as “30, 45, 75” is input in the timing input field 117
  • a numerical value such as “0.1” is input in the ratio input field 118
  • the ⁇ value is input in the ratio input field 118
  • learning is performed as follows.
  • LR Decay is executed at the timing when the number of epochs is 30, 45, 75.
  • the value of the learning coefficient ⁇ is changed to the value multiplied by 0.1.
  • the parameter ⁇ is adjusted, and the value of the adjusted parameter ⁇ is set to “0.01”.
  • the same parameter ⁇ may be used during that period, but gradually becomes the default value. You may try to bring them closer.
  • the value of the parameter ⁇ may be adjusted so that it approaches the default value at a constant rate each time from the set value. Further, as a method of approaching the default value, a linear function having the set ⁇ value and the default value as two points may be obtained, and the ⁇ value may be calculated from the linear function.
  • the adjustment of the parameter ⁇ is performed by the calculation node 10. It is done on the side. Specifically, the parameter calculation unit 33 (FIG. 2) of the calculation node 10 calculates the value of the parameter ⁇ .
  • the amount of dragging the first time is ⁇ .
  • the second time is ⁇ ⁇ 2
  • the third time is ⁇ ⁇ 3
  • the fourth time is ⁇ ⁇ 4
  • the Nth time is ⁇ ⁇ (N-1). Therefore, the amount of drag in N iterations can be estimated by the following equation (3).
  • 64 is a value obtained by dividing 16k by 256, and is a value corresponding to N in the formula (3).
  • LR Decay is executed at timing T11.
  • the value of the parameter ⁇ at the time of iteration I71 immediately before LR Decay is executed is 0.9.
  • the value of the parameter ⁇ at the time of iteration I72 immediately after LR Decay is executed is 0.014, which is a value calculated based on the equation (4).
  • the N + 1 to 2N iterations at the time of reference may be calculated in the same manner as in the above case.
  • the value of the parameter ⁇ may be calculated by an arithmetic expression different from the equation (3).
  • the value of the parameter ⁇ of the iteration I73 when the value of the parameter ⁇ of the iteration I73 is calculated to be 0.89, the value is close to the default value of the parameter ⁇ , 0.9. In this way, when a value close to the default value is calculated, the default value may be used as it is after the iteration, in other words, it may be returned to the default value.
  • a provisional value may be used as the value of the parameter ⁇ .
  • a value close to 0 such as 0.014 or 0
  • the parameter ⁇ of the second and subsequent iterations is, for example, a value close to the default value, and a preset value may be used.
  • Parameter ⁇ is a value related to the learning speed, and if it is a small value, the learning speed may not increase. Therefore, if the parameter ⁇ is used at a value close to 0 for a long time, the learning speed may not increase. Therefore, it is preferable to return to the default value at the earliest possible stage. That is, the parameter ⁇ is returned to the default value (or a value close to the default value) at an early stage when the influence of the iteration before LR Decay is sufficiently reduced.
  • the value of the parameter ⁇ used for the iteration after LR Decay is calculated by a predetermined arithmetic expression for each iteration, and the calculated value can be used until the value is close to the default value. .. Further, the value of the parameter ⁇ used for the first iteration after the LR Decay or up to the predetermined number of iterations is calculated by a predetermined arithmetic expression, and the parameter ⁇ used for the second iteration or the subsequent iterations is performed. As the value, a provisional value may be used.
  • FIG. 21 shows an example of the verification results.
  • the vertical axis of the graph shown in FIG. 21 represents the error rate, and the horizontal axis represents the number of epochs.
  • the solid line is a reference (when not distributed learning) graph, and the coarse dotted line is a graph when the parameter ⁇ is not adjusted (when the parameter ⁇ is a fixed value). Yes, the fine dotted line is a graph when the parameter ⁇ is adjusted (when the parameter ⁇ is a variable value).
  • the reference graph is a graph obtained when the batch size is 256, the number of GPUs is 8, and the parameter ⁇ is fixed at 0.9.
  • the graph when the parameter ⁇ is a fixed value is a graph obtained when the batch size is 34k (34816), the number of GPUs is 1088, and the parameter ⁇ is fixed at 0.9.
  • the batch size is 34k (34816)
  • the number of GPUs is 1088
  • the parameter ⁇ is 0.9 except immediately after LR Decay
  • immediately after LR Decay It is a graph obtained when the parameter ⁇ at the time is 0.
  • calculation node 10 for example, a calculation node 10 having the hardware configuration shown in FIG. 1 and having a functional configuration like the calculation node 10 shown in FIG. 2 can be used.
  • step S11 the screen shown in FIG. 18 or 19 is presented to the user.
  • the user can set whether or not to perform LR Decay, set the reduction rate of the learning coefficient ⁇ of the value after Decay, or perform Decay. Set whether or not to adjust the Momentum of, enter the value of the parameter ⁇ , and set the period for adjusting the parameter ⁇ .
  • the CPU 11 (FIG. 1) of the calculation node 10 controls the display so that the screen shown in FIG. 18 or 19 is displayed on the display 101 constituting the output unit 18. Further, the CPU 11 receives input of various values input by operating a keyboard or a mouse (neither shown) as an input unit 17.
  • step S12 learning with the set parameters is started.
  • a program for learning is generated based on various parameters set by the user, and processing at the calculation node 10 based on the program is started.
  • the parameter calculation unit 33 (FIG. 2) gives an instruction to the learning update unit 35 so that the LR Decay is executed at the timing set as the timing for executing the LR Decay.
  • step S13 when it is time to execute LR Decay, LR Decay is executed.
  • the parameter ⁇ is adjusted in step S14.
  • the ⁇ value is set to a fixed value, and if a numerical value such as 0.01 is set, this is set.
  • the parameter calculation unit 33 adjusts the parameter ⁇ based on the numerical value.
  • step S15 learning is performed with the changed parameter ⁇ .
  • the period during which this learning takes place is one iteration or several iterations. For example, referring to the screen as shown in FIG. 19, when the adjustment period is set by the user, learning is performed with the adjusted parameter ⁇ only for the set period (number of iterations).
  • step S16 the parameter ⁇ is returned to the default value, and learning is continued.
  • processing is performed based on the parameters set via the user interface.
  • the series of processes described above can be executed by hardware or by software.
  • the programs constituting the software are installed on the computer.
  • the computer includes a computer embedded in dedicated hardware and, for example, a general-purpose personal computer capable of executing various functions by installing various programs.
  • a computer that programmatically executes the above-mentioned series of processes can have basically the same configuration as the calculation node 10 shown in FIG. 1, for example.
  • the CPU 11 loads, for example, a program stored in the storage unit 19 into the RAM 13 via the input / output interface 16 and the bus 15 and executes the program. By doing so, the above-mentioned series of processes is performed.
  • the program executed by the computer (CPU 11) can be recorded and provided on the removable recording medium 22 as a package recording medium or the like, for example. Programs can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
  • the program can be installed in the storage unit 19 via the input / output interface 16 by mounting the removable recording medium 22 in the drive 21. Further, the program can be received by the communication unit 20 and installed in the storage unit 19 via a wired or wireless transmission medium. In addition, the program can be pre-installed in the ROM 12 or the storage unit 19.
  • the program executed by the computer may be a program that is processed in chronological order in the order described in this specification, or may be a program that is processed in parallel or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • system represents the entire device composed of a plurality of devices.
  • the present technology can also have the following configurations.
  • a learning unit that performs machine learning based on a predetermined arithmetic expression with a predetermined batch size, It is provided with an adjustment unit that adjusts the parameters used for the calculation of the learning unit. When the learning coefficient included in the calculation formula is reduced, the adjustment unit adjusts the value of a predetermined parameter included in the calculation formula to a value smaller than the value before the learning coefficient is reduced. ..
  • the predetermined parameter is a parameter included in the inertial term of the Momentum SGD.
  • the information processing apparatus according to any one of (1) to (10) above, wherein the timing for reducing the learning coefficient is a timing set by the user.
  • Information processing equipment that performs machine learning Perform the machine learning based on a predetermined calculation formula with a predetermined batch size, Set the parameters used for the machine learning calculation, An information processing method that adjusts the value of a predetermined parameter included in the calculation formula to a value smaller than the value before the reduction of the learning coefficient when the learning coefficient included in the calculation formula is reduced.
  • Timing to reduce the learning coefficient included in the calculation formula The values of the predetermined parameters included in the calculation formula applied immediately after the timing, and A program generation method for generating a program for controlling the learning unit so that the machine learning is performed based on a period in which the value of the predetermined parameter is applied.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Feedback Control In General (AREA)

Abstract

本技術は、機器学習が収束するまでの時間を短くすることができるようにする情報処理装置、情報処理方法、プログラム生成方法に関する。 所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部と、学習部の演算に用いるパラメータを調整する調整部とを備え、調整部は、演算式に含まれる学習係数を低減したとき、演算式に含まれる所定のパラメータの値を、学習係数を低減する前の値よりも小さい値に調整する。演算式は、Momentum SGD(Stochastic Gradient Descent)における式である。所定のパラメータは、Momentum SGDの慣性項に含まれるパラメータである。本技術は、例えば、機械学習を行うノードに適用できる。

Description

情報処理装置、情報処理方法、プログラム生成方法
 本技術は情報処理装置、情報処理方法、プログラム生成方法に関し、例えば、機械学習をより効率良く行えるようにした情報処理装置、情報処理方法、プログラム生成方法に関する。
 近年、人工知能における研究が盛んとなり、さまざまな学習方法が提案されている。例えば、ディープラーニング(Deep Learning)などと称される学習方法が提案されている。ディープラーニングによる学習では、一般に計算回数が膨大になるため、1台の装置で処理すると長時間の計算が必要となる傾向にある。そこで、複数台の装置で分散して処理することが提案されている(例えば、特許文献1参照)。
特開平05-108595号公報
 1台の装置で処理するよりも、複数台の装置で分散して処理した場合、それぞれの装置での処理負担を軽減し、処理(計算)にかかる時間を短縮することができる。さらに、より早く学習が収束することが望まれている。
 本技術は、このような状況に鑑みてなされたものであり、学習が早く収束することができるようにするものである。
 本技術の一側面の情報処理装置は、所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部と、前記学習部の演算に用いるパラメータを調整する調整部とを備え、前記調整部は、前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、前記学習係数を低減する前の値よりも小さい値に調整する。
 本技術の一側面の情報処理方法は、機械学習を行う情報処理装置が、所定のバッチサイズで、所定の演算式に基づき前記機械学習を行い、前記機械学習の演算に用いるパラメータを設定し、前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、学習係数を低減する前の値よりも小さい値に調整する。
 本技術の一側面のプログラム生成方法は、所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部を制御するためのプログラムであり、ユーザインタフェースで設定される、前記演算式に含まれる学習係数を低減するタイミングと、前記タイミング直後に適用される前記演算式に含まれる所定のパラメータの値と、前記所定のパラメータの値を適用する期間とに基づき前記機械学習が行われるように前記学習部を制御するためのプログラムを生成する。
 本技術の一側面の情報処理装置、情報処理方法においては、所定のバッチサイズで、所定の演算式に基づき機械学習が行われ、演算に用いられるパラメータが調整され、演算式に含まれる学習係数を低減したとき、演算式に含まれる所定のパラメータの値が、学習係数を低減する前の値よりも小さい値に調整される。
 本技術の一側面のプログラム生成方法においては、所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部を制御するためのプログラムが生成される。生成されるプログラムは、ユーザインタフェースで設定される、演算式に含まれる学習係数を低減するタイミングと、タイミング直後に適用される演算式に含まれる所定のパラメータの値と、所定のパラメータの値を適用する期間とに基づき機械学習が行われるように制御するためのプログラムである。
 なお、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
 また、プログラムは、伝送媒体を介して伝送することにより、または、記録媒体に記録して、提供することができる。
本技術を適用した情報処理装置の一実施の形態の構成を示す図である。 本技術を適用した情報処理装置の機能構成例を示す図である。 計算ノードにおける学習の進め方について説明するための図である。 計算ノードにおける分散学習の進め方について説明するための図である。 分散学習時のシステム構成例を示す図である。 分散学習時のシステムの処理について説明するための図である。 分散学習時の他のシステム構成例を示す図である。 分散学習時のシステム構成例を示す図である。 分散学習時のシステム構成例を示す図である。 分散学習時のシステム構成例を示す図である。 分散学習時のシステム構成例を示す図である。 分散学習時のシステム構成例を示す図である。 LR Decayが実行されたときのエラー率の変化について説明するための図である。 LR Decayが実行されたときのエラー率の変化について説明するための図である。 エラー率が低下しない原因について考察するための図である。 エラー率が低下しない原因について考察するための図である。 パラメータαの調整期間について説明するための図である。 ユーザに提示される設定画面の一例を示す図である。 ユーザに提示される設定画面の一例を示す図である。 パラメータαの値について説明するための図である。 LR Decayが実行されたときのエラー率の変化について説明するための図である。 計算ノードの処理について説明するための図である。
 以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。
 本技術は、機械学習に適用できる。また機械学習における分散学習に適用できる。機械学習としては、多層構造のニューラルネットワークを用いた機械学習であるディープラーニング(深層学習)に対して、本技術を適用できる。ここでは、ディープラーニングに本技術を適用した場合を例に挙げて説明を行うが、他の機械学習に対しても適用可能である。
 <計算ノードの構成>
 図1は、本技術を適用した情報処理装置の一実施の形態の構成を示す図である。本技術を適用した情報処理装置は、上記したように、機械学習を行う装置として適用できるため、以下の説明では計算ノードと記述する。計算ノード10は、例えば、パーソナルコンピュータで構成することができる。
 計算ノード10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、GPU(Graphics Processing Unit)14が、バス15により相互に接続されている構成とされている。バス15には、さらに、入出力インタフェース16が接続されている。入出力インタフェース16には、入力部17、出力部18、記憶部19、通信部20、およびドライブ21が接続されている。
 入力部17は、キーボード、マウス、マイクロフォンなどよりなる。出力部18は、ディスプレイ、スピーカなどよりなる。記憶部19は、ハードディスクや不揮発性のメモリなどよりなる。通信部20は、ネットワークインタフェースなどよりなる。ドライブ21は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体22を駆動する。
 <計算ノードの機能構成>
 図2に、計算ノード10の機能構成例を示す。計算ノード10は、学習データ保存部31、学習データ前処理部32、パラメータ計算部33、DNN(Deep Neural Network)モデル保存部34、学習更新部35、および勾配情報保存部36を備える。
 学習データ保存部31は、RAM13(図1)や、ハードディスクドライブ(HDD)などで構成される記憶部19で構成することができる。学習データ保存部31は、DNN学習の入力となる学習データセットを保存する。
 学習データ前処理部32は、CPU11(図1)で構成することができる。学習データ前処理部32は、実際のDNN学習の処理に投入する前に、学習データセットを加工する処理を行う。例えば、画像識別や画像認識等の学習を行う場合、画像データに対して以下のような処理を施す。
 JPEG(Joint Photographic Experts Group)等の保存形式から、DNN学習の入力となるフォーマットに変換する。また、入力画像から平均値を減算するmean subtractionと称される数値変換や、正規化(normalization)といった数値変換が行われる。
 学習画像を増加させる処理として、所定サイズに画像をリサイズし、リサイズされた画像から所定のサイズのパッチをランダムに取り出すことで学習画像を増やすrandom cropと称される処理が行われる。また水平方向や垂直方向に画像を反転することで学習画像を増やす(horizontal/vertical)flipと称される処理が行われる。
 また画像を回転することで学習画像を増やすrotationと称される処理が行われる。また、画像の大きさを変更することで学習画像を増やすScaleと称される処理が行われる。また、画像から所定サイズの画像を切り出すことで学習画像を増やすcutoutと称される処理が行われる。
 また、画像をリサイズした後、画像のアスペクト比を変更することで学習画像を増やすaspect ratio augmentationと称される処理が行われる。また、画像の色調を変更することで学習画像を増やすcolor augmentationと称される処理が行われる。
 また学習データ前処理部32は、音声認識等の学習を行う場合、音声データに対して、例えば、ホワイトノイズを加えることで学習音声を増やす処理を行う。また、音のピッチを変えることで学習音声を増やす処理が行われる。また、音のテンポを変えることで学習音声を増やす処理が行われる。
 学習データ前処理部32は、このような処理の1または複数の処理を行う。またここで挙げた処理は一例であり、他の処理が実行される(他の処理も実行される)ようにしても良い。
 パラメータ計算部33は、CPU11(図1)で構成することができる。パラメータ計算部33は、DNN学習で利用される初期パラメータを算出したり、生成したりする。なお、初期パラメータは、ある程度固定で持っている手法や、算出により算出する手法があり、どのような手法が用いられるかは、適宜設定可能である。また本実施の形態におけるパラメータ計算部33は、後述するパラメータαの値を調整する機能も有する。
 DNNモデル保存部34は、VRAM(Video RAM、図1では不図示)で構成することができる。DNNモデル保存部34は、学習したいモデルの情報が保存される。またモデルの形の定義だけではなく、初期の重みの決定方法なども適宜保存される。
 学習更新部35は、GPU14(図1)で構成することができる。学習更新部35は、GPU14以外に、CPU11で構成することもできる。また学習更新部35は、FPGA(Field-Programmable Gate Array)や、ASIC(Application Specific Integrated Circuit)などの専用のチップで構成されていても良い。
 学習更新部35は、学習を行い、パラメータを生成し、更新する処理を行う。学習更新部35には、学習データ保存部31により保存されている学習データセットであり、学習データ前処理部32で前処理が施された学習データセットが供給される。
 また学習更新部35には、DNNモデル保存部34で保存されているDNNモデルも供給される。また、学習更新部35には、パラメータ計算部33から初期パラメータも供給される。学習更新部35は、学習データセット、DNNモデル、初期パラメータを用いて学習処理を行う。
 学習処理の結果、勾配データが生成される。勾配データは、勾配情報保存部36に供給される。勾配情報保存部36は、VRAMで構成することができる。勾配情報保存部36は、学習により得られた勾配情報を一時的に保存しておく。後述する分散学習等には、保存された勾配情報は、GPU14間や計算ノード10間で交換(同期)される。
 なお、図2に示したような計算ノード10のみで学習を行う場合、換言すれば、後述する分散学習を行わない場合、勾配情報保存部36を省略した構成とすることも可能である。
 図2に示したような1つのGPU14(1つの学習更新部35)を有する計算ノードで学習処理を行う場合、図3に示すように学習が行われる。学習開始時には、上記したように、学習データセット、DNNモデル、初期パラメータが入力されることで、学習が開始される。学習は、学習データセットが適度なサイズのミニバッチに分割され、分割されたミニバッチ毎に行われる。
 1つのミニバッチが学習される単位を、学習イテレーション(Iteration)と称する。学習開始から学習終了まで、ミニバッチ毎に学習イテレーションが繰り返される。
 <分散学習について>
 ところで、ディープラーニングの処理量は膨大であり、学習完了までに時間がかかる。そこで、複数のGPU14(学習更新部35)を用いて、学習を分散し、1台当たりの処理負担の軽減や、処理にかかる時間を短縮する分散学習と称される学習方法がある。
 分散学習は、図4に示すように学習が行われる。学習データセットが、ミニバッチに分割され、分割されたミニバッチ毎に学習が行われるのは、図3を参照して説明した場合と同様であるが、分散学習の場合、学習は、複数のGPU14で行われる点が異なる。また、分散学習の場合、複数のGPU14で学習された学習結果を、同期する必要がある。
 分散学習においては、1学習イテレーションは、1つのミニバッチでの学習する学習期間と、その学習により得られたパラメータを複数のGPU14で同期する同期期間を合わせた期間となる。
 分散学習を行う場合のシステム構成は、パラメータサーバを含むシステムと、パラメータサーバを含まないシステムとがある。図5に、パラメータサーバを含む分散学習を行うシステムの構成例を示す。
 図5に示したシステムは、パラメータサーバ51と計算ノード10とから構成されている。パラメータサーバ51は、計算ノード10-1乃至10-M間でパラメータの状態などを共有するためのデータを管理する。計算ノード10-1乃至10-Mは、それぞれGPU14を含む装置であり、分散学習における所定の演算を行う。
 図5に示したシステムにおける処理について、図6のフローチャートを参照しながら説明する。学習が開始されると、ステップS11-1乃至S11-Mにおいて、パラメータサーバ51から複数の計算ノード10-1乃至10-Mに対して、学習用データが供給される。各計算ノード10-1乃至10-Mは、必要に応じて、供給された学習用データに対して前処理を施す。
 各計算ノード10-1乃至10-Mは、ステップS12-1乃至S12-Mにおいて、学習用データを受け取り、勾配gを計算する。学習用データは、各計算ノード10-1乃至10-Mに分散されて、供給される。
 例えば、学習データD1は、{D11,D10,D13・・・Dm}のM個に分散され、計算ノード10-1には、学習データD11が供給され、計算ノード10-2には、学習データD10が供給され、計算ノード10-Mには、学習データDmが供給される。
 各計算ノード10-1乃至10-Mは、学習により勾配データを生成する。ステップS13において、各計算ノード10-1乃至10-Mは、計算した勾配gを、パラメータサーバ51に供給する。例えば、計算ノード10-1は、勾配g1を算出し、パラメータサーバ51に供給し、計算ノード10-2は、勾配g2を算出し、パラメータサーバ51に供給し、計算ノード10-Mは、勾配gMを算出し、パラメータサーバ51に供給する。
 パラメータサーバ51は、各計算ノード10-1乃至10-Mからの勾配gを受け取り、その勾配gの平均を計算し、その平均に基づき、パラメータwを更新する。パラメータサーバ51において更新されたパラメータwは、計算ノード10-1乃至10-Mにそれぞれ供給される。各計算ノード10-1乃至10-Mは、供給されたパラメータwに基づき内部モデルを更新する(ステップS14-1乃至S14-M)。
 このような処理が、パラメータサーバ51と計算ノード10-1乃至10-Mとの間で繰り返されることで学習が進められる。そして、ステップS15において、学習データは残っていないと判定されたとき、学習は完了される。
 図7は、分散学習を行うシステムの他の構成例を示す図である。図7に示したシステムは、P2P(Peer to Peer)と称されるシステムである。図7に示したシステムにおいては、パラメータサーバ51は設けられず、複数台の計算ノード10から構成されている。
 図7に示したシステムにおいては、計算ノード10-1乃至10-M同士でデータの授受が行われる。計算ノード10-1は、自己が算出した勾配g1を計算ノード10-2と計算ノード10-3にそれぞれ供給する。同じく、計算ノード10-2は、自己が算出した勾配g2を計算ノード10-1と計算ノード10-3にそれぞれ供給する。同じく、計算ノード10-3は、自己が算出した勾配g3を計算ノード10-1と計算ノード10-2にそれぞれ供給する。
 各計算ノード10は、図5に示した計算ノード10と基本的に同様の処理を行うことで、また、パラメータサーバ51が行う処理も併せて行うことで、勾配を算出したり、パラメータを更新したりする。
 本技術が適用される分散学習を行うシステムとしては、図5または図7に示したシステムとすることができる。また、図5および図7に示したシステム以外のシステムに対しても、以下に説明する本技術を適用することはできる。
 図5に示したシステムにおけるパラメータサーバ51と計算ノード10の構成例について、図8を参照して説明する。以下の説明においては、図2に示した計算ノード10を、他の計算ノード10と区別する場合、計算ノード10aと記述する。
 図8に示したシステムは、パラメータサーバ51と計算ノード10b-1乃至10b-4が、ネットワーク71を介して接続されている。なお、以下の説明においては、計算ノード10b-1乃至10b-4の4台の計算ノード10bがネットワーク71に接続されている場合を例示し、この4台の計算ノード10bで分散学習を行うとして説明を続けるが、4台以外の計算ノード10bで分散学習を行う場合にも、本技術は適用できる。
 ネットワーク71は、有線または/および無線により構成された、例えば、ホームネットワーク、LAN(Local Area Network),WAN(Wide Area Network),または、インターネットなどの広域ネットワークなどに対応するネットワークである。パラメータサーバ51と計算ノード10bは、ネットワーク71を介してデータの授受を行えるように構成されている。
 計算ノード10b-1乃至10b-4は、基本的に同一の構成であり、各計算ノード10b-1乃至10b-4は、図2に示した計算ノード10aと同一の構成とすることができる。
 パラメータサーバ51は、DNNモデル保存部61と更新部62を備える。パラメータサーバ51のDNNモデル保存部61は、計算ノード10bのDNNモデル保存部34と同じく、学習したいモデルの情報が保存されている。更新部62は、勾配の同期により得られた各計算ノード10b-1乃至10b-4からの勾配の平均を計算し、その平均に基づき、パラメータwを更新する。パラメータサーバ51において更新されたパラメータwは、各計算ノード10b-1乃至10b-4に供給される。
 図7に示したシステムにおける計算ノード10の構成例について、図9を参照して説明する。図7に示したシステムは、パラメータサーバ51が含まれないシステムであり、計算ノード10同士でデータの授受を行うシステムであるため、図9に示すように、計算ノード10c-1乃至10c-4が、ネットワーク71に接続されている構成である。
 計算ノード10c-1乃至10c-4は、基本的に同一の構成であり、各計算ノード10c-1乃至10c-4は、図2に示した計算ノード10aと同一の構成とすることができる。
 図7に示したシステムにおける計算ノード10の他の構成例について、図10を参照して説明する。分散学習は、1つの計算ノード10内に、複数のGPU14を備えることで行うことも可能である。
 図10に示した計算ノード10dは、図2に示した計算ノード10aと同じく、学習データ保存部31、学習データ前処理部32、およびパラメータ計算部33を備える。さらに計算ノード10dは、学習更新部35d-1乃至35d―3を備え、それらの学習更新部35d-1乃至35d―3に、DNNモデルを供給するDNNモデル保存部34d-1乃至34d-3を備える。また、計算ノード10dは、学習更新部35d-1乃至35d―3からの勾配情報を保存する勾配情報保存部36d-1乃至36d-3も備える。
 計算ノード10dにおいては、学習更新部35d-1乃至35d―3のそれぞれで学習や更新を行うことで、分散学習が行われる。学習更新部35d-1乃至35d―3のそれぞれで学習や更新を行うために、学習データ前処理部32からの前処理済みの学習データは、学習更新部35d-1乃至35d―3のそれぞれに供給される。また、パラメータ計算部33からのパラメータも、学習更新部35d-1乃至35d―3のそれぞれに供給される。
 このように、1台の計算ノード10が、複数の学習更新部35(GPU14)を備えることで、分散学習が実行されるようにしても良い。さらに、図11に示すように、複数の学習更新部35を備える計算ノード10dが、ネットワーク71に複数台接続され、複数台の計算ノード10dにより分散学習が行われる構成とすることもできる。
 また、図10に示した計算ノード10dにおいて、DNNモデル保存部34d-1乃至34d-3と、勾配情報保存部36d-1乃至36d-3は、それぞれVRAMなどのメモリで構成することができる。計算ノード10dを、図12に示すようにメモリを共有する構成にすることもできる。
 図12に示した計算ノード10eは、図10に示した計算ノード10dと同じく、学習更新部35e-1乃至35e―3を備える。図10に示した計算ノード10dでは、DNNモデル保存部34d-1乃至34d-3が備えられていたが、図12に示した計算ノード10eでは、DNNモデル保存部34eを備え、このDNNモデル保存部34eを、学習更新部35e-1乃至35e―3で共有する構成とされている。
 また、図10に示した計算ノード10dでは、勾配情報保存部36d-1乃至36d-3が備えられていたが、図12に示した計算ノード10eでは、勾配情報保存部36eを備え、この勾配情報保存部36eを、学習更新部35e-1乃至35e―3で共有する構成とされている。
 図12に示した計算ノード10eを、図11に示した計算ノード10dの代わりとし、計算ノード10eがネットワーク71に複数台接続されているシステム構成とすることもできる。
 以下に説明する学習や更新に係わる処理は、上記したいずれの計算ノード10においても実行することができる。本技術は、計算ノード10の構成によらず適用することができる。
 <学習更新部の処理>
 学習更新部35は、学習を行い、パラメータを更新する。ニューラルネットワークにおける学習とは、損失関数の値を最小化するパラメータを見つけることであり、最適化問題などとも称されることがある。この最適化問題を解決するために、種々の方法が提案されている。
 最適化の手法として、確率的勾配降下法(SGD : Stochastic Gradient Descent)がある。このSGDは、パラメータの勾配方向にパラメータを更新し、より適したパラメータを見つけ出す手法である。一般的な式は、次式(1)のように表せる。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、wはパラメータを表し、ηは学習係数を表し、Eは誤差関数を表す。SGDによると、関数の形状が等方的ではない場合、非効率な経路で解を検索することになるため、収束するまでの時間がかかってしまう可能性があった。SGDによるこのような欠点は、勾配の方向が本来の最小値ではない方向を指していることが、1つの原因となっているため、次式(2)に示すように、SGDに慣性項(Momentum)を付与することで解決することが提案されている。
Figure JPOXMLDOC01-appb-M000002
 式(2)に基づく勾配法は、Momentum SGDと称されることもある。式(2)は、式(1)に、慣性項が追加された式である。この慣性項は、前回の更新量Δwtをα倍する項である。αは慣性項のパラメータである。Momentum SGDを用いると、SGDよりも収束するまでの時間が短くなる傾向にある。
 以下の説明では、最適化アルゴリズムとして、Momentum SGDを用いた場合を例に挙げて説明を行うが、他の最適化アルゴリズムを用いて学習が行われる場合にも本技術を適用することはできる。
 SGDにおける式(1)、Momentum SGDにおける式(2)を参照するに、式(1)と式(2)には学習係数ηが含まれている。学習係数は、パラメータの更新幅を制限する係数である。一般的に、学習係数が小さ過ぎると学習に時間がかかり、また、大き過ぎると発散して正しい値に収束しなくなる可能性がある。
 そこで、学習開始当初は大きな学習係数を用い、学習が進むにつれて学習係数を小さくすることも提案されている。この手法は、学習係数の低減(Learning Rate Decay)を行う手法であり、以下、LR Decayと記述する。
 図13は、LR Decayを行う学習を行ったときのエラー率の変化を示すグラフである。図13に示したグラフの横軸は、エポック数を表し、縦軸は、エラー率を表している。学習は、早い段階(エポック数が少ない段階)で、エラー率が0に近い値になるのが良い。
 図13に示したグラフでは、タイミングT1(エポック数が約30のとき)、タイミングT2(エポック数が約60のとき)、タイミングT3のタイミング(エポック数が約80のとき)でLR Decayが実行された場合を示している。
 また図13に示したグラフにおけるLR Decayは、学習係数を1/10に低減した場合を示している。また、図13に示したグラフは、分散学習時のグラフではなく、図2に示したような計算ノード10により学習を行ったときのグラフである。
 図13に示したグラフを参照するに、LR Decayが実行されたタイミングで、エラー率が下がり、学習の進みが加速化したことが読み取れる。タイミングT1とタイミングT2のときのエラー率の減少率に比べて、タイミングT3のときのエラー率の減少率は小さいことも読み取れる。このように、学習が進むと、LR Decayを実行してもエラー率の下がりが加速しないときもある。
 分散学習時におけるグラフを、図14に示す。図14に示したグラフは、タイミングT11(エポック数が約28のとき)に、LR Decayが実行された場合を表している。また図14に示したグラフのうち、点線のグラフはリファレンスのグラフであり、バッチサイズ(Bs)が256のケースを表し、実線のグラフはバッチサイズ(Bs)を64倍にしたケース(Bs=16k)を表す。
 分散学習におけるバッチサイズを、以下のように定義する。分散学習では、図4を参照して説明したように、データセットをミニバッチに分割して学習が行われる。この1回のミニバッチの学習で利用される学習データの量をバッチサイズと称する。分散学習の場合、複数のGPU14を利用してミニバッチ学習が行われることになる。よって、この複数のGPU14に割り当てられたミニバッチの総数が、分散学習におけるバッチサイズとなる。
 実線のグラフは、Bs=256の処理を実行する計算ノード10(GPU14)を64台用いて分散学習を行ったときのグラフであるため、Bs=16k(=256×64)となる。
 図14のグラフを参照するに、点線で示したBs=256のグラフからは、タイミングT11において、LR Decayが実行されることで、エラー率が下がり、学習速度が加速したことが読み取れる。しかしながら、実線で示したBs=16kのグラフからは、タイミングT11において、LR Decayが実行されても、エラー率の減少率は小さく、学習速度が加速していないことが読み取れる。
 なお、ここでは、Bs=16kは、分散学習時である場合を例に挙げて説明を続けるが、1台の計算ノード10(GPU14)で処理を行った場合も、同様に、エラー率の下がりが鈍化する。すなわち、一度に扱うバッチサイズが大きい場合に起こり得る現象である。
 このように、Bs=16kの場合、LR Decayしたタイミングでのエラー率の下がりが鈍くなる原因について考察する。
 ここで再度、式(2)を参照する。Momentum SGDでは、慣性項(αΔwt)で、前回の更新量Δwtをα倍しているため、前回の影響を受けることになる。すなわち、Momentum SGDでは、LR Decayの前の状態を考慮したアルゴリズムとなっている。
 バッチサイズが大きいということは、LR Decayの前の状態で処理される量が多いため、エラー率の下がり悪くなると考えられる。図15を参照して説明する。図15の上図は、Bs=16kでの学習の進み具合を表し、下図は、Bs=256での学習の進み具合を表している。1つの矢印は、1回のイテレーションを表している。
 Bs=16kでの学習は、Bs=256での学習に比べて、各イテレーションで、64倍のデータを処理する。例えば、図15に示したBs=16kでの学習時のイテレーションI11で処理されるデータ量は、Bs=256での学習時のイテレーションI21で処理するデータ量の64回分のデータ量となる。
 Bs=16kでの学習時のイテレーションI11の終了時に、LR Decayが行われたとする。同じく、Bs=256での学習時のイテレーションI21の終了時に、LR Decayが行われたとする。
 Bs=16kでの学習においては、イテレーションI11の更新量Δwtが用いられ、イテレーションI11の次のイテレーションI12の学習が行われる。このことを換言すると、イテレーションI12の学習時には、イテレーションI11の学習時の影響が残ることになる。さらに換言すれば、イテレーションI12のときには、Bs=16kのため、16kのデータが処理されるが、この16kのデータに対して、イテレーションI11時の影響が残ることになる。
 Bs=16kでの学習においては、LR Decay前のデータの影響を受けるLR Decay後のデータ量が大きい。そのため、図15に示した例では、イテレーションI12の次のイテレーションI13においても、イテレーションI11(LR Decay前)の影響を受けると考えられる。すなわち、1イテレーションで処理するデータ量が大きいと、LR Decay後も、長い間、LR Decay前の影響を受け、そのために、LR Decay後もエラー率の下がりが悪くなると考えられる。
 比較のため、Bs=256での学習時についても説明を加える。Bs=256での学習においては、イテレーションI21の更新量Δwtが用いられ、イテレーションI21の次のイテレーションI22の学習が行われる。このことを換言すると、イテレーションI22の学習時には、イテレーションI21の学習時の影響が残ることになる。さらに換言すれば、イテレーションI22のときには、Bs=256のため、256のデータが処理されるが、この256のデータに対して、イテレーションI21時の影響が残ることになる。
 Bs=256での学習においては、LR Decay前のデータの影響を受けるLR Decay後のデータ量は、Bs=16kでの学習時よりも小さい。図15に示した例では、LR Decay前のイテレーションI21の影響は、LR Decay後のイテレーションI22で処理される256個のデータに残る。影響を受けるデータが、256個で済むため、イテレーションI22後のイテレーションI23では、イテレーションI21の影響は小さくなる。
 Bs=256での学習時は、LR Decay前の影響を受けるデータ数が少ないため、LR Decay前の影響は徐々に薄まり、比較的早い段階で、LR Decay前の影響は受けなくなると考えられる。よって、LR Decay後は、エラー率が下がる。
 このように、1イテレーションで処理するデータ量が多くなると、換言すれば、バッチサイズが大きくなると、LR Decay前の影響(古いLR Decayの影響)が残り続けるため、LR Decay後のエラー率の下がり方が悪くなると考えられる。
 また、図15に示したようなケースの場合、バッチサイズが64倍となっているため、Bs=16kでの学習時におけるLC Decay後のエラー率の低下を、Bs=256での学習時におけるLC Decay後のエラー率の低下と同程度の低下を得たい場合、Bs=16kでの学習では、Bs=256での学習時の64倍のデータを処理する必要があると考えられる。
 <LR Decay後のエラー率を下げる方法について>
 再度式(2)を参照する。Momentum SGDでは、慣性項(αΔwt)で、前回の更新量Δwtをα倍しているため、前回の影響を受けることになる。この慣性項のうち、Δwtは、前回の更新量であるため調整することはできない値である。αはパラメータであるため、変更可能である。例えば、パラメータαを、1にした場合、前回の更新量Δwtがそのまま使われ、0にした場合、前回の更新量Δwtは使われないことになる。
 すなわち、パラメータαを調整することで、慣性項(αΔwt)の値を調整することができる。換言すれば、パラメータαを調整することで、LR Decay前の影響を、どの程度残すかを調整できるようになる。
 図16を参照して、パラメータαを調整した場合の学習の進み具合について説明する。図16は、図15の上図と同様であり、Bs=16kでの学習の進み具合を表す。タイミングT11において、LR Decayが実行されたとする。
 Bs=16kでの学習においては、イテレーションI11の更新量Δwtが用いられ、イテレーションI11の次のイテレーションI12’の学習が行われる。イテレーションI12’の学習時には、更新量Δwtに乗算するパラメータαの値を小さく設定する。パラメータαの値を小さくすることで、更新量Δwtの影響を小さくすることができる、すなわち、イテレーションI12’の学習時におけるイテレーションI11の更新量Δwtの影響を小さくすることができる。
 Bs=16kでの学習においては、LR Decay前のデータの影響を受けるLR Decay後のデータ数が多い。しかしながら、パラメータαを小さくすることで、LR Decay前のデータによる影響力そのものを小さくすることができるため、LR Decay前のデータの影響を受けるLR Decay後のデータ数が多くても、影響自体が小さいため、図15を参照して説明したようなことは発生しないように抑制することができる。
 すなわち、パラメータαを調整することで、1イテレーションで処理するデータ量が大きくなっても、LR Decay後の長い間、LR Decay前の影響が残ってしまうようなことを防ぐことができ、LR Decay後もエラー率の下がりが悪くなるといったことが発生するようなことを抑制することができる。
 図16に示した例では、パラメータαを調整することで、イテレーションI12’の次のイテレーションI13’において、イテレーションI11(LR Decay前)の影響を受けるようなことを防ぐ(低減する)ことができる。
 <パラメータαの設定の仕方について>
 このように、LR Decayしたタイミング以降、パラメータαを調整する場合、そのパラメータαの調整の仕方について説明を加える。まず、調整期間をどの程度にするかについて説明する。
 図17を参照してパラメータαの調整期間について説明する。イテレーションI51の終了後のタイミングT11において、LR Decayが実行されたとする。図17のAは、パラメータαの調整を、LR Decay後の1イテレーションのみに行う場合を示し、図17のBは、パラメータαの調整を、LR Decay後の数イテレーションにわたって行う場合を示す。
 図17のAを参照するに、イテレーションI51のときのパラメータαの値はα1であるとする。このα1は、パラメータαを調整しないときに用いられる値であり、デフォルト値とされている。通常の学習時には、デフォルト値であるα1が、パラメータαの値として用いられる。また、α1は、例えば、0.9である。
 LR Decay後のイテレーションI52におけるパラメータαは、調整対象とされる。ここでは、イテレーションI52におけるパラメータαは、α2に設定されるとする。このα2は、α1とは異なる値である。また、例えば、α2は、α2<α1を満たす値とすることができる。例えば、α2は、0や、0.01など、0に近い値とすることができる。
 イテレーションI52の次のイテレーションI53においては、パラメータαは、元のα1に戻される。また、イテレーションI53以降のイテレーションにおいても、新たなLR Decayが実行されるまでは、α1が用いられて学習が行われる。
 このように、パラメータαの調整は、LR Decay後の1イテレーションのみで行われるようにしても良い。
 図17のBを参照するに、イテレーションI51のときのパラメータαの値はデフォルト値であるα1である。LR Decay後のイテレーションI52におけるパラメータαは、調整対象とされる。図17のBに示した例では、イテレーションI52におけるパラメータαは、α2に設定されるとする。このα2は、図17のAを参照して説明したα2と同じく、α1とは異なる値である。また、例えば、α2は、α2<α1を満たす値とすることができる。また、例えば、α2は、0や、0.01など、0に近い値とすることができる。
 イテレーションI52の次のイテレーションI53におけるパラメータαは、α3に設定される。このα3は、α1やα2とは異なる値である。また、例えば、α3は、α2<α3<α1を満たす値とすることができる。さらに、イテレーションI53の次のイテレーションI54におけるパラメータαは、α4に設定される。このα4は、α1、α2、α3とは異なる値である。また、例えば、α4は、α2<α3<α4<α1を満たす値とすることができる。
 イテレーションI54の次のイテレーションI55におけるパラメータαは、α1に戻される。また、イテレーションI55以降のイテレーションにおいても、新たなLR Decayが実行されるまでは、α1が用いられて学習が行われる。
 この場合、イテレーションI52、イテレーションI53、イテレーションI54の3つのイテレーションにおいて、パラメータαの調整が行われる。また、この場合、3つのイテレーションで、パラメータαの値が徐々に大きくなり、4つめのイテレーションで元の値(デフォルト値)に戻される例を示した。
 または、α2=α3=α4でも良く、パラメータαが調整されている期間中は、同一の値が用いられるようにしても良い。
 このように、パラメータαの調整は、LR Decay後の数イテレーションで行われるようにしても良い。また、パラメータαの調整が、LR Decay後の数イテレーションにわたって行われるようにした場合、値を調整するイテレーションの数は、上記した場合は3であるが、3以外の数であってももちろん良い。
 パラメータαの調整を、LR Decay後の1イテレーションで行う場合、またはLR Decay後の数イテレーションで行う場合、αの値は、予め設定されている値が用いられるようにしても良いし、状況により適切な値が計算され、設定されるようにしてもよい。αの値を、状況により設定する場合については、後述する。
 なお、分散学習で、複数の計算ノード10(GPU14)で学習を行っているような場合であっても、各計算ノード10でパラメータαの計算が可能であるため、計算ノード10間でのパラメータαの値を同期する必要はない。よって、パラメータαの値を可変とした場合であっても、パラメータαを同期するための時間が必要となるといったことはなく、学習時間が延びるようなことはない。
 パラメータαの設定について、さらに説明を加える。パラメータαの設定の仕方としては大きく分けて、ユーザの指示により設定する仕方(ユーザが種々のパラメータを設定し、そのパラメータに基づきパラメータαなどが設定される場合)と、計算ノード10側で自動的に設定する仕方とに分けられる。
 なお、自動とは、ユーザの手を煩わすことなく計算ノード10側で設定する場合を意味し、ユーザ側の指示に基づき設定する手動に対する反意語の意味であるとする。
 パラメータαが、ユーザにより設定される場合、例えば、図18に示すような画面(ユーザインタフェース)がユーザに提示され、その画面が参照されながらパラメータαが設定される。
 図18に示した画面例について説明を加える。図18に示した画面は、例えば、計算ノード10の出力部18(図1)としてのディスプレイ101上に表示される。
 画面左上には、プロジェクト名を入力するプロジェクト名入力欄111が設けられている。ユーザは、画面左上に表示されている“プロジェクト設定”という文言と、その下に“プロジェクト名”との文言を参照することで、プロジェクト名を設定し、プロジェクト名入力欄111に入力すれば良いことを認識し、プロジェクト名を入力する。図18に示した例では、“プロジェクトA”といったプロジェクト名が入力されている。
 画面左下には、学習環境に関する各種のパラメータを設定する設定画面が表示されている。“学習環境設定”という文言が表示されていることから、ユーザは、学習環境に関する設定を行うことを認識できる。学習環境として設定できる項目として、“利用するGPU数”、“各GPUでのバッチサイズ”、“最大学習epoch数”という項目が表示されている。
 “利用するGPU数”の右側には、分散学習を行うGPU数を入力するGPU数入力欄112が表示されている。図18に示した例では、“128”といった数値が入力されている。
 “各GPUでのバッチサイズ”の右側には、ユーザが、1つのGPUで実行させたいバッチサイズを入力するバッチサイズ入力欄113が表示されている。図18に示した例では、“90”といった数値が入力されている。
 “最大学習epoch数”の右側には、ユーザが、最大のエポック数を入力するエポック数入力欄114が表示されている。図18に示した例では、“90”といった数値が入力されている。
 画面右側は、学習を最適に行うための各種のパラメータ等を設定する“学習最適化設定”画面が表示されている。“学習最適化設定”画面の上部には、“Learning Rate Decayを行う”という文言が表示され、その文言の左隣にチェック欄115が表示されている。ユーザは、学習時に、“Learning Rate Decay”を実行させたい場合、チェック欄115をチェックする。図18では、チェック欄115がチェックされている状態を表している。
 チェック欄115がチェックされた場合、“Learning Rate Decay”に関する設定が行える状態となる。ユーザは、“Learning Rate Decay”が実行されるタイミングを設定できる。“タイミングを手動設定”という項目と、“タイミングを自動設定”という項目が表示されており、それぞれの項目の左側には、どちらかの項目を選択するためのチェック欄116が表示されている。
 図18に示した例では、“タイミングを手動設定”という項目が選択されている例を示している。“タイミングを手動設定”という項目の右側には、タイミング入力欄117が表示されている。タイミング入力欄117は、“タイミングを手動設定”という項目が選択されているときに、数値入力が可能とされる。図18に示した例では、“30,45,75”といった数値が入力されている例を示している。
 “Learning Rate Decayを行う”というチェック欄115がチェックされた場合、“Decay後の値のLRの割合”という項目に対して数値を入力する割合入力欄118も有効にされる。割合入力欄118には、Learning Rate Decayを行うとき低減率が入力される。図18に示した例では、“0.1”との数値が入力されている。
 割合入力欄118に入力される値は、式(2)における学習係数ηの値に関する値であり、Learning Rate Decayが実行された後の学習係数ηを設定するときの値である。“0.1”との数値が入力された場合、Learning Rate Decay後の学習係数ηの値は、Learning Rate Decay前の学習係数ηの値に0.1を乗算した値(1/10にした値)に設定される。
 “学習最適化設定”画面の下部には、“Decay時のMomentum調整を行う”という文言が表示され、その文言の左隣にチェック欄119が表示されている。ユーザは、学習時に、“Learning Rate Decay”を実行させ、その“Learning Rate Decay”後に、Momentumの調整、すなわち、パラメータαの調整を行いたい場合、チェック欄119をチェックする。図18では、チェック欄119がチェックされている状態を表している。
 チェック欄119がチェックされた場合、“Decay時のMomentum調整”に関する設定が行える状態となる。ユーザは、“Decay時のMomentum調整”を固定値とするか、自動調整するかを選択できる。“固定値にする”という項目と、“自動調整する”という項目が表示されており、それぞれの項目の左側には、どちらかの項目を選択するためのチェック欄120が表示されている。
 図18に示した例では、“固定値にする”という項目が選択されている例を示している。“固定値にする”という項目の下側には、α値入力欄121が表示されている。α値入力欄121は、“固定値にする”という項目が選択されているときに、数値入力が可能とされる。図18に示した例では、“0.01”といった数値が入力されている例を示している。
 なお、パラメータαの値は、上記したように、デフォルト値以下に設定される必要がある。例えば、デフォルト値が、0.9である場合、パラメータαの値は、0から0.9までの値に設定される。よって、ユーザが、これらの範囲外の数値を入力した場合には、そのことをユーザに認識させるメッセージが表示されるようにしても良い。または、ユーザが直接数値を入力するのではなく、選択肢が表示され、その表示された選択肢から選択されるようにしても良い。
 または、設定のヒントとなるような表示もされるようにしても良い。例えば、“0に近い値が良いです”、“0~0.1の数値が良いです”、“設定可能範囲0~0.1”といったようなメッセージが表示されるようにしても良い。
 このα値入力欄121に入力された値が、LR Decay後のイテレーションにおいて用いられるパラメータαの値とされる。
 図18に示したような画面において、“自動調整”という項目が選択された場合、計算ノード10側で、α値を算出し、設定する。
 パラメータαが、手動で設定される場合、図18に示したような画面において、ユーザが、“Decay時のMomentum調整する”というチェック欄119にチェックを入れ、“固定値にする”という項目を選択し、α値入力欄121に値を入力することで行われる。このように設定されたα値は、図17のAを参照して説明したように、LR Decay後の1イテレーションのみ適用される。または図17のBを参照して説明したように、LR Decay後の数イテレーションに適用される。
 設定されたα値を、LR Decay後の数イテレーションに適用するようにした場合、この数イテレーションを、何イテレーションにするかは、固定値であっても良いし、ユーザにより設定されるようにしても良い。
 ユーザにより、設定されたα値が適用されるイテレーション数が設定される場合、図19に示すような画面が、ユーザに提示される。図19に示した画面は、図18に示した画面に、イテレーション数を入力する部分が追加され、その他の部分は、同一である。
 図19に示した画面のうち、右下側の画面には、“調整期間を設定する”との文言が表示され、その文言の左隣にチェック欄131が表示されている。ユーザは、パラメータαを調整する期間(イテレーション数)を入力したい場合、チェック欄131をチェックする。図19では、チェック欄131がチェックされている状態を表している。
 チェック欄131がチェックされた場合、期間調整に関する設定が行える状態となる。ユーザは、パラメータαを調整したい期間を、期間入力欄132に入力する。期間入力欄132は、“調整期間を設定する”という項目がチェックされてるとき、数値入力が可能とされる。図19に示した例では、“3”といった数値が入力されている例を示している。
 例えば、図19に示した例のように、タイミング入力欄117に、“30、45、75”といった数値が入力され、割合入力欄118に、“0.1”といった数値が入力され、α値入力欄121に、“0.01”といった数値が入力され、期間入力欄132に、“3”といった数値が入力された場合、以下のように学習が行われる。
 学習時において、エポック数が30、45、75のタイミングで、LR Decayが実行される。LR Decayが実行されることで、学習係数ηの値が、0.1乗算した値に変更される。また、LR Decayが実行された後の3イテレーションの期間は、パラメータαが調整され、その調整されたパラメータαの値は、“0.01”とされる。
 また、図17のBを参照して説明したように、パラメータαを調整する期間を数イテレーションとした場合、その期間の間、同一のパラメータαが用いられても良いが、徐々にデフォルト値に近づけるようにしても良い。
 例えば、α値入力欄121に、“0.01”といった数値が入力され、期間入力欄132に、“3”といった数値が入力されていた場合、またデフォルト値が0.9である場合、LR Decay直後のイテレーションのα値は、“0.01”であり、4イテレーション目のα値は、“0.9”であり、2イテレーション目と、3イテレーション目は、0.01乃至0.9の間の数値が設定される。
 数イテレーションの間、設定された値から毎回一定の割合でデフォルト値に近づけられるようにパラメータαの値が調整されるようにしても良い。また、デフォルト値に近づける方法として、設定されたα値とデフォルト値を2点とする一次関数を求め、その一次関数から、α値が算出されるようにしても良い。
 再度、図18または図19を参照する。ユーザに提示される画面において、“Decay時のMomentum調整を行う”という項目のチェック欄119がチェックされ、“自動調整する”という項目が選択されている場合、パラメータαの調整は、計算ノード10側で行われる。具体的には、計算ノード10のパラメータ計算部33(図2)において、パラメータαの値が算出される。
 パラメータ計算部33は、リファレンス時のMomentumによる前の状態の引きずり具合を概算した値からパラメータαの値を算出する。例えば、図15などを参照した説明と同じく、バッチサイズ(Bs)=256の場合と、Bs=16kの場合を例に挙げて、パラメータαの算出について説明する。Bs=256がリファレンスに該当する。
 リファレンス(Bs=256)に対して、N倍(64倍、Bs=16k)のバッチサイズとなる場合を想定する。分散学習時は、LR Decay直後の1回のイテレーションで処理されるデータ量は、リファレンスのN倍となる。よって、リファレンスでのN回分のイテレーションでLR Decay前の状態を引きずる量を概算すればよい。
 1回目に引きずる量はαとなる。2回目は、α^2、3回目は、α^3、4回目は、α^4となり、N回目では、α^(N-1)となる。よってN回分のイテレーションでの引きずり量は、次式(3)で概算値を算出することができる。
Figure JPOXMLDOC01-appb-M000003
 これがパラメータαを概算で算出する方法の一例である。パラメータαのデフォルト値を、α=0.9とし、リファレンスのバッチサイズを256とし、分散学習時のバッチサイズを16kとした場合、式(3)に具体的な数値を代入すると、以下の式(4)のように表せる。
Figure JPOXMLDOC01-appb-M000004
 式(4)において、64は、16kを256で除算した値であり、式(3)におけるNに該当する値である。式(4)において、10は、LR Decay時の学習係数ηの低減率であり、0.1(=1/10)に低減すると設定されている場合を例示しているため、その分だけ削減している。
 式(4)に基づいて算出された値である0.014は、LR Decay直後のイテレーションのパラメータαの値として用いられる。
 図20に示すように、LR Decayが、タイミングT11において実行されたとする。LR Decayが実行される直前のイテレーションI71のときのパラメータαの値は0.9である。LR Decayが実行された直後のイテレーションI72のときのパラメータαの値は、式(4)に基づき算出された値である0.014である。
 LR Decay後の2回目以降のイテレーションでは、リファレンス時のN+1乃至2N回目のイテレーション分が上記した場合と同様に算出されるようにしても良い。または、2回目以降のイテレーションでは、式(3)とは異なる演算式でパラメータαの値が算出されるようにしても良い。
 例えば、図20に示したように、イテレーションI73のパラメータαの値として、0.89と算出された場合、パラメータαのデフォルト値である0.9に近い値となっている。このように、デフォルト値に近い値が算出された場合、そのイテレーション以降は、デフォルト値をそのまま利用する、換言すれば、デフォルト値に戻しても良い。
 また、2回目以降のイテレーションでは、パラメータαの値として暫定値が用いられるようにしても良い。上記したように、LR Decay後の1回目のイテレーションのパラメータαの値として、0.014などの0に近い値や0を用いた場合、LR Decay後の1回目のイテレーションにおいて、LR Decay前のイテレーションの影響は十分に低減され、2回目以降のイテレーションでは、LR Decay前のイテレーションの影響はあまり受けないと考えられる。このような場合、2回目以降のイテレーションのパラメータαは、例えばデフォルト値に近い値であり、予め設定されている値が用いられるようにしても良い。
 パラメータαは、学習速度に関係する値であり、小さい値だと、学習速度が速まらない可能性がある。よって、パラメータαが、長い間、0に近い値が用いられると、学習速度が速まらない可能性があるため、できるだけ早い段階で、デフォルト値に戻されるのが良い。すなわち、LR Decay前のイテレーションの影響が十分に低減された早い段階で、パラメータαはデフォルト値(またはデフォルト値に近い値)に戻されるようにする。
 このように、LR Decay後のイテレーションに用いるパラメータαの値は、イテレーション毎に所定の演算式により算出され、またデフォルト値に近い値になるまで算出された値が用いられるようにすることができる。また、LR Decay後の1回目または所定の回数目までのイテレーションに用いるパラメータαの値は、所定の演算式により算出されるようにし、2回目または所定の回数目以降のイテレーションに用いるパラメータαの値は、暫定値が用いられるようにしても良い。
 このように、LR Decay後のイテレーションに用いるパラメータαの値を演算式により求めるか、演算式と暫定値により求めるかは、ユーザにより設定されるようにしても良い。例えば、図18に示した画面例において、“自動調整する”という選択肢の下側に、さらに“演算式により調整する”という選択肢と、“演算式と暫定値を用いて調整する”という選択肢を設け、ユーザが、どちらかを選択できる仕組みを設けても良い。
 このように、LR Decay後のイテレーションに用いるパラメータαを調整することで、図11を参照して説明したような、LR Decayを実行してもエラー率が下がらず、学習が加速しないというような状況が発生することを防ぐことができる。
 本出願人は、上記した方法により、LR Decay後のイテレーションに用いるパラメータαを調整することで学習が加速することを確認した。図21に実証結果の一例を示す。図21に示したグラフの縦軸は、エラー率を表し、横軸は、エポック数を表す。また、図21に示したグラフのうち、実線は、リファレンス(分散学習ではない場合)のグラフであり、粗い点線は、パラメータαを調整しない場合(パラメータαを固定値とした場合)のグラフであり、細かい点線は、パラメータαを調整した場合(パラメータαを可変値とした場合)のグラフである。
 リファレンスのグラフは、バッチサイズが256であり、GPU数が8個であり、パラメータαが0.9で固定である場合に得られたグラフである。パラメータαを固定値とした場合のグラフは、バッチサイズが34k(34816)であり、GPU数が1088個であり、パラメータαが0.9で固定である場合に得られたグラフである。パラメータαを可変値とした場合のグラフは、バッチサイズが34k(34816)であり、GPU数が1088個であり、LR Decay直後以外のときのパラメータαが0.9であり、LR Decay直後のときのパラメータαが0である場合に得られたグラフである。
 リファレンスのグラフを見るに、LR DecayがタイミングT21において実行されると、エラー率が低下し、学習が加速していることが読み取れる。このリファレンスと同じく、本技術を適用して、パラメータαを可変とした場合のグラフを見るに、LR DecayがタイミングT21において実行されると、エラー率が低下し、学習が加速していることが読み取れる。
 参考のために記載した、パラメータαを固定値とした場合のグラフを見るに、LR DecayがタイミングT21において実行されても、エラー率は低下せず、学習が鈍化していることが読み取れる。
 これらのことから、パラメータαを可変とした場合、LR Decayが実行されると、エラー率が低下し、学習が加速することが読み取れる。
 <計算ノードの処理について>
 上述したように、パラメータαの可変値とした場合の計算ノード10の動作について説明する。ここでは、分散学習を行う複数の計算ノード10のうちの1台の計算ノード10が実行する処理であり、上記したパラメータαの調整に係わる処理について説明を加える。
 計算ノード10としては、例えば、図1に示したハードウエア構成を有し、図2に示した計算ノード10のような機能構成を有する計算ノード10を用いることができる。
 ステップS11において、図18または図19に示した画面が、ユーザに提示される。例えば、図19に示した画面がユーザに提示されることで、ユーザは、LR Decayを行うか否かを設定したり、Decay後の値の学習係数ηの低減率を設定したり、Decay時のMomentum調整を行うか否かを設定したり、パラメータαの値を入力したり、パラメータαを調整する期間を設定したりする。
 計算ノード10の例えば、CPU11(図1)は、図18または図19に示した画面が、出力部18を構成するディスプレイ101に表示されるように表示を制御する。またCPU11は、入力部17としてのキーボードやマウス(いずれも不図示)を操作して入力される各種の値の入力を受け付ける。
 ステップS12において、設定されたパラメータによる学習が開始される。図18または図19に示した画面を参照して、ユーザが設定した各種のパラメータに基づいて、学習が行われるようなプログラムが生成され、そのプログラムに基づく計算ノード10における処理が開始される。例えば、パラメータ計算部33(図2)は、LR Decayを実行するタイミングとして設定されたタイミングで、LR Decayが実行されるように、学習更新部35に指示を出す。
 ステップS13において、LR Decayが実行されるタイミングである場合、LR Decayが実行される。LR Decayが実行されると、ステップS14において、パラメータαが調整される。ユーザが、図19に示したような画面を参照し、Decay時のMomentum調整を行うとし、そのα値は、固定値とし、例えば、0.01といった数値が設定されていた場合、この設定されている数値に基づき、パラメータ計算部33は、パラメータαを調整する。
 ステップS15において、変更されたパラメータαで学習が行われる。この学習が行われる期間は、1イテレーションであるか、数イテレーションである。例えば、図19に示したような画面を参照し、調整期間がユーザにより設定されていた場合、その設定されている期間(イテレーション数)だけ、調整されたパラメータαで学習が行われる。
 そして、指定された期間だけ学習が行われると、ステップS16に処理が進められ、パラメータαがデフォルト値に戻され、学習が継続される。
 このように、計算ノード10においては、ユーザインタフェースを介して設定されたパラメータに基づき、処理が行われる。
 本技術によれば、学習の収束の劣化を防ぐことができる。特に、Learning Rate Decay後の学習を加速させることができる。また、分散学習時にも有効である。
 <記録媒体について>
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 上述した一連の処理をプログラムにより実行するコンピュータは、例えば図1に示した計算ノード10と基本的に同様の構成とすることができる。図1に示した計算ノード10と同様に構成されるコンピュータでは、CPU11が、例えば、記憶部19に記憶されているプログラムを、入出力インタフェース16及びバス15を介して、RAM13にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU11)が実行するプログラムは、例えば、パッケージ記録媒体等としてのリムーバブル記録媒体22に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記録媒体22をドライブ21に装着することにより、入出力インタフェース16を介して、記憶部19にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部20で受信し、記憶部19にインストールすることができる。その他、プログラムは、ROM12や記憶部19に、予めインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
 なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 なお、本技術は以下のような構成も取ることができる。
(1)
 所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部と、
 前記学習部の演算に用いるパラメータを調整する調整部と
 を備え、
 前記調整部は、前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、前記学習係数を低減する前の値よりも小さい値に調整する
 情報処理装置。
(2)
 前記演算式は、Momentum SGD(Stochastic Gradient Descent)における式である
 前記(1)に記載の情報処理装置。
(3)
 前記所定のパラメータは、前記Momentum SGDの慣性項に含まれるパラメータである
 前記(2)に記載の情報処理装置。
(4)
 前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、0に近い値に調整する
 前記(1)乃至(3)のいずれかに記載の情報処理装置。
(5)
 前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、0に調整する
 前記(1)乃至(4)のいずれかに記載の情報処理装置。
(6)
 前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、前記バッチサイズと前記パラメータの値を用いた所定の式に基づき算出される値に調整する
 前記(1)乃至(5)のいずれかに記載の情報処理装置。
(7)
 前記調整部は、前記学習係数を低減した直後の1イテレーションだけ、前記所定のパラメータの値を調整する
 前記(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
 前記調整部は、前記学習係数を低減した直後の数イテレーションの期間、前記所定のパラメータの値を調整する
 前記(1)乃至(7)のいずれかに記載の情報処理装置。
(9)
 前記調整部は、前記所定のパラメータを小さい値に調整した後の数イテレーションにわたって、徐々に値を大きくし、デフォルト値に戻す
 前記(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
 前記学習係数を低減した直後の前記所定のパラメータの値は、ユーザにより設定された値である
 前記(1)乃至(9)のいずれかに記載の情報処理装置。
(11)
 前記学習係数を低減するタイミングは、ユーザにより設定されたタイミングである
 前記(1)乃至(10)のいずれかに記載の情報処理装置。
(12)
 機械学習を行う情報処理装置が、
 所定のバッチサイズで、所定の演算式に基づき前記機械学習を行い、
 前記機械学習の演算に用いるパラメータを設定し、
 前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、学習係数を低減する前の値よりも小さい値に調整する
 情報処理方法。
(13)
 所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部を制御するためのプログラムであり、
 ユーザインタフェースで設定される、
 前記演算式に含まれる学習係数を低減するタイミングと、
 前記タイミング直後に適用される前記演算式に含まれる所定のパラメータの値と、
 前記所定のパラメータの値を適用する期間と
 に基づき前記機械学習が行われるように前記学習部を制御するためのプログラムを生成する
 プログラム生成方法。
 10 計算ノード, 11 CPU, 12 ROM, 13 RAM, 15 バス, 16 入出力インタフェース, 17 入力部, 18 出力部, 19 記憶部, 20 通信部, 21 ドライブ, 22 リムーバブル記録媒体, 31 学習データ保存部, 32 学習データ前処理部, 33 パラメータ計算部, 34 DNNモデル保存部, 35 学習更新部, 36 勾配情報保存部, 51 パラメータサーバ, 61 DNNモデル保存部, 62 更新部, 71 ネットワーク, 101 ディスプレイ, 111 プロジェクト名入力欄, 112 GPU数入力欄, 113 バッチサイズ入力欄, 114 エポック数入力欄, 115 チェック欄, 116 チェック欄, 117 タイミング入力欄, 118 割合入力欄, 119 チェック欄, 120 チェック欄, 121 α値入力欄, 131 チェック欄, 132 期間入力欄

Claims (13)

  1.  所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部と、
     前記学習部の演算に用いるパラメータを調整する調整部と
     を備え、
     前記調整部は、前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、前記学習係数を低減する前の値よりも小さい値に調整する
     情報処理装置。
  2.  前記演算式は、Momentum SGD(Stochastic Gradient Descent)における式である
     請求項1に記載の情報処理装置。
  3.  前記所定のパラメータは、前記Momentum SGDの慣性項に含まれるパラメータである
     請求項2に記載の情報処理装置。
  4.  前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、0に近い値に調整する
     請求項1に記載の情報処理装置。
  5.  前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、0に調整する
     請求項1に記載の情報処理装置。
  6.  前記調整部は、前記学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、前記バッチサイズと前記パラメータの値を用いた所定の式に基づき算出される値に調整する
     請求項1に記載の情報処理装置。
  7.  前記調整部は、前記学習係数を低減した直後の1イテレーションだけ、前記所定のパラメータの値を調整する
     請求項1に記載の情報処理装置。
  8.  前記調整部は、前記学習係数を低減した直後の数イテレーションの期間、前記所定のパラメータの値を調整する
     請求項1に記載の情報処理装置。
  9.  前記調整部は、前記所定のパラメータを小さい値に調整した後の数イテレーションにわたって、徐々に値を大きくし、デフォルト値に戻す
     請求項1に記載の情報処理装置。
  10.  前記学習係数を低減した直後の前記所定のパラメータの値は、ユーザにより設定された値である
     請求項1に記載の情報処理装置。
  11.  前記学習係数を低減するタイミングは、ユーザにより設定されたタイミングである
     請求項1に記載の情報処理装置。
  12.  機械学習を行う情報処理装置が、
     所定のバッチサイズで、所定の演算式に基づき前記機械学習を行い、
     前記機械学習の演算に用いるパラメータを設定し、
     前記演算式に含まれる学習係数を低減したとき、前記演算式に含まれる所定のパラメータの値を、学習係数を低減する前の値よりも小さい値に調整する
     情報処理方法。
  13.  所定のバッチサイズで、所定の演算式に基づき機械学習を行う学習部を制御するためのプログラムであり、
     ユーザインタフェースで設定される、
     前記演算式に含まれる学習係数を低減するタイミングと、
     前記タイミング直後に適用される前記演算式に含まれる所定のパラメータの値と、
     前記所定のパラメータの値を適用する期間と
     に基づき前記機械学習が行われるように前記学習部を制御するためのプログラムを生成する
     プログラム生成方法。
PCT/JP2020/015781 2019-04-22 2020-04-08 情報処理装置、情報処理方法、プログラム生成方法 WO2020217987A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019081244 2019-04-22
JP2019-081244 2019-04-22

Publications (1)

Publication Number Publication Date
WO2020217987A1 true WO2020217987A1 (ja) 2020-10-29

Family

ID=72942673

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/015781 WO2020217987A1 (ja) 2019-04-22 2020-04-08 情報処理装置、情報処理方法、プログラム生成方法

Country Status (1)

Country Link
WO (1) WO2020217987A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7015405B1 (ja) 2021-04-27 2022-02-02 東京エレクトロンデバイス株式会社 学習モデルの生成方法、プログラム、情報処理装置及び学習用データの生成方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056802A (ja) * 1999-08-19 2001-02-27 Oki Electric Ind Co Ltd ニューラルネットワークの学習方法
US7502763B2 (en) * 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
JP2017076403A (ja) * 2015-10-16 2017-04-20 バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC 人間から示唆を得た簡単質問応答(hisqa)システム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001056802A (ja) * 1999-08-19 2001-02-27 Oki Electric Ind Co Ltd ニューラルネットワークの学習方法
US7502763B2 (en) * 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
JP2017076403A (ja) * 2015-10-16 2017-04-20 バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC 人間から示唆を得た簡単質問応答(hisqa)システム及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T P VOGL, J K MANGIS , A K RIGLER , W T ZINK , D L ALKON: "Accelerating the Convergence of the Back-Propagation Method", BIOLOGICAL CYBERNETICS, vol. 59, no. 4-5, 1 September 1988 (1988-09-01), pages 257 - 263, XP055758685, ISSN: 0340-1200, DOI: 10.1007/BF00332914 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7015405B1 (ja) 2021-04-27 2022-02-02 東京エレクトロンデバイス株式会社 学習モデルの生成方法、プログラム、情報処理装置及び学習用データの生成方法
JP2022169290A (ja) * 2021-04-27 2022-11-09 東京エレクトロンデバイス株式会社 学習モデルの生成方法、プログラム、情報処理装置及び学習用データの生成方法

Similar Documents

Publication Publication Date Title
JP6610278B2 (ja) 機械学習装置、機械学習方法及び機械学習プログラム
CN111758105A (zh) 学习数据增强策略
JP6740597B2 (ja) 学習方法、学習プログラムおよび情報処理装置
CN112313043A (zh) 自我监督的机器人对象交互
EP3673419A1 (en) Population based training of neural networks
CN117313789A (zh) 使用神经网络的黑盒优化
WO2020217987A1 (ja) 情報処理装置、情報処理方法、プログラム生成方法
CN108986063A (zh) 梯度融合的方法、装置及计算机可读存储介质
CN101390024A (zh) 运转控制方法、运转控制装置和运转控制系统
US11550274B2 (en) Information processing apparatus and information processing method
CN116868204A (zh) 用于机器学习模型的渐进学习以优化训练速度的系统和方法
CN111459505A (zh) 边缘计算环境下多版本推断模型部署方法、装置和系统
CN110991621A (zh) 一种基于通道数搜索卷积神经网络的方法
CN114972850A (zh) 多分支网络的分发推理方法、装置、电子设备及存储介质
Fourie et al. Generalised adaptive harmony search: a comparative analysis of modern harmony search
US20070143234A1 (en) Method and system for intelligent model-based optical proximity correction (OPC)
JP6942203B2 (ja) データ処理システムおよびデータ処理方法
JP7096362B2 (ja) ミニバッチ学習装置とその作動プログラムおよび作動方法
US11526690B2 (en) Learning device, learning method, and computer program product
US9344643B2 (en) Image processing apparatus, method and program
WO2020121678A1 (ja) ミニバッチ学習装置とその作動プログラム、作動方法、および画像処理装置
CN109670579A (zh) 模型生成方法和装置
US11455533B2 (en) Information processing apparatus, control method, and non-transitory computer-readable storage medium for storing information processing program
Pereslytskikh et al. Synthesis of Centralized Adaptive Excitation Control System by Reinforcement Learning Approach
JP5238327B2 (ja) 生産枠を伴う多品目多段工程動的ロットサイズスケジューリング方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20794926

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20794926

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP