WO2020054083A1 - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- WO2020054083A1 WO2020054083A1 PCT/JP2018/042950 JP2018042950W WO2020054083A1 WO 2020054083 A1 WO2020054083 A1 WO 2020054083A1 JP 2018042950 W JP2018042950 W JP 2018042950W WO 2020054083 A1 WO2020054083 A1 WO 2020054083A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- learning
- batch size
- information processing
- value
- loss
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/96—Management of image or video recognition tasks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Definitions
- the present disclosure relates to an information processing device and an information processing method.
- Non-Patent Document 1 discloses a technique for changing a batch size during learning.
- Non-Patent Literature 1 depends on a specific learning method, and it is difficult to apply the technique to learning that does not employ the method.
- a learning unit that performs learning using a neural network, wherein the learning unit determines a batch size during learning based on a gap value from an ideal state related to learning output by the neural network.
- An information processing device that dynamically changes a value is provided.
- the processor performs learning using a neural network, including performing the learning, based on a gap value with an ideal state related to learning output by the neural network.
- An information processing method is provided, further comprising dynamically changing a value of a batch size during learning.
- FIG. 4 is a diagram for describing an outline of batch size change according to an embodiment of the present disclosure.
- FIG. 3 is a block diagram illustrating a functional configuration example of the information processing apparatus according to the embodiment.
- FIG. 14 is a diagram illustrating a verification result when the batch size change based on the loss gradient according to the embodiment is applied to ImageNet / ResNet-50.
- FIG. 14 is a diagram illustrating a verification result when a batch size change based on a training value according to the embodiment is applied to ImageNet / ResNet-50.
- FIG. 14 is a diagram illustrating a verification result when the batch size change based on the loss according to the embodiment is applied to learning using MNIST.
- FIG. 14 is a diagram illustrating a verification result when the batch size change based on the loss according to the embodiment is applied to learning using cifar10.
- FIG. 14 is a diagram illustrating a verification result when the batch size change based on the loss according to the embodiment is applied to learning using cifar10. It is a figure which shows an example of the training script and loss slope calculation module which implement
- FIG. 14 is a diagram illustrating a verification result when the batch size increase for each epoch according to the embodiment is applied to learning using MNIST.
- FIG. 14 is a diagram illustrating a verification result when the batch size change based on the loss and the epoch according to the embodiment is applied to learning using cifar10. It is a figure which shows an example of the training script which implement
- FIG. 14 is a diagram for describing re-creation of a medium-GPU model by the batch size changing unit according to the embodiment. It is a figure for explaining control of increase and decrease of the number of calculation loops by the batch size changing unit according to the embodiment.
- FIG. 9 is a diagram for describing increase / decrease control of the GPU used by the batch size changing unit according to the embodiment. 4 is a flowchart illustrating a flow of control by a batch size changing unit according to the embodiment.
- FIG. 2 is a diagram illustrating a hardware configuration example according to an embodiment of the present disclosure.
- DNN Deep Neural Network
- the number of times the parameter is updated can be reduced, for example, by increasing the batch size.
- the batch size is changed during learning, By setting a large batch size, it is possible to reduce the number of times of updating parameters, and it is expected that the learning speed will be increased.
- Non-Patent Document 1 is a technique applicable only to a specific learning method.
- the above-mentioned specific learning method refers to a method called Step ⁇ Learning ⁇ rate ⁇ decay.
- FIG. 1 is a diagram showing an example of a transition of a loss in the case of applying Step ⁇ Learning ⁇ rate ⁇ decay.
- Step ⁇ Learning ⁇ late ⁇ decay is a method in which the learning rate is reduced stepwise, as shown in FIG. 1, so that the loss is reduced stepwise. Referring to the example shown in FIG. 1, it can be seen that the loss is greatly reduced in the vicinity of the epochs 30 and 60, and the graph has a stepped shape.
- Non-Patent Document 1 it is possible to change the batch size at a timing such as the epochs 30 and 60 at which the loss is greatly reduced, but the transition of the loss shows the above-described step shape. It cannot be applied to no learning methods.
- the information processing apparatus 10 includes a learning unit 120 that performs learning using a neural network, and the learning unit 120 includes a gap between the learning state output from the neural network and an ideal state related to learning.
- One of the features is that the value of the batch size is dynamically changed during learning based on the value.
- the gap value from the ideal state may be an index quantitatively representing a difference between an expected output and an actual output.
- the gap value from the ideal state according to the present embodiment includes, for example, a loss.
- the gap value from the ideal state according to the present embodiment may include a training error and a validation error.
- examples of the training error and the variation error used as the gap value include, for example, a mean square error (MSE), a mean absolute error (MAE), and an image, which may be used as a loss.
- MSE mean square error
- MAE mean absolute error
- images which may be used as a loss.
- Top-k-error particularly, top-1-error and top-5-error
- mAP mean ⁇ Average ⁇ Precision
- FIG. 2 is a graph showing a change in loss with the passage of the epoch.
- a solid line indicates a change in loss (Reference) without a change in batch size
- a broken line indicates a change in loss (Approach) to which the change in batch size according to the present embodiment is applied. ing.
- the learning unit 120 may increase the value of the batch size during learning when the convergence of learning is estimated based on the loss, for example.
- the learning unit 120 may increase the value of the batch size during learning based on the n-th derivative of the loss.
- the learning unit 120 can increase the value of the batch size when the first derivative of the loss, that is, the slope is smaller than a predetermined threshold.
- the learning unit 120 increases the value of the batch size from 32K to 64K at the timing T1 (epoch 30) at which the slope of the loss has calmed down.
- the learning unit 120 can increase the value of the batch size when the zero-time differential value of the loss, that is, the loss value itself falls below a predetermined threshold.
- the learning unit 120 may increase the value of the batch size at the timing T2 (epoch 60) at which the value of the loss falls below 0.3.
- the learning unit 120 may increase the value of the batch size based on the n-th derivative value of n> 2 or more.
- comparing Approach and Reference shows that even when the batch size changing method according to the present embodiment is applied, learning does not diverge and the performance is maintained. That is, according to the batch change method implemented by the information processing apparatus 10 according to the present embodiment, it is possible to achieve both the securing of the learning performance and the reduction of the number of parameter updates, that is, the reduction of the learning time.
- the batch changing method according to the present embodiment even if the transition of the loss does not show the step shape as shown in FIG. 2, it is possible to increase the batch size and shorten the learning time. It becomes possible.
- the information processing apparatus 10 according to the present embodiment it is possible to effectively speed up the learning by the DNN without depending on the learning method.
- FIG. 3 is a block diagram illustrating a functional configuration example of the information processing apparatus 10 according to the present embodiment.
- the information processing device 10 according to the present embodiment includes an input / output control unit 110, a learning unit 120, a differential calculation unit 130, and a batch size change unit 140.
- the input / output control unit 110 controls a user interface related to DNN learning. For example, the input / output control unit 110 according to the embodiment transfers various data input via the input device to the learning unit 120. Further, for example, the input / output control unit 110 transfers the value output by the learning unit 120 to the output device.
- the learning unit 120 performs learning using DNN. As described above, the learning unit 120 according to the present embodiment dynamically changes the value of the batch size during learning based on the gap value between the ideal state and the learning output from the DNN.
- the gap value from the ideal state according to the present embodiment includes, for example, a loss, a training error, a validation error, and the like.
- the differential calculation unit 130 calculates the n-th differential value by performing the n-th differential process on the loss input from the learning unit 120, and outputs the n-th differential value to the learning unit 120.
- the batch size changing unit 140 has a function of controlling the increase or decrease of the batch size based on the value of the batch size set by the learning unit 120. Details of the functions of the batch size changing unit 140 according to the present embodiment will be separately described later.
- the example of the functional configuration of the information processing apparatus 10 according to the present embodiment has been described. Note that the configuration described above with reference to FIG. 3 is merely an example, and the functional configuration of the information processing apparatus 10 according to the present embodiment is not limited to the example.
- the functional configuration of the information processing apparatus 10 according to the present embodiment can be flexibly modified according to specifications and operations.
- FIG. 4 is a diagram illustrating a verification result when the batch size change based on the loss slope according to the present embodiment is applied to ImageNet / ResNet-50.
- the batch size in Reference was fixed at 32K, and learning was performed.
- the batch size was increased from 32K to 68K at the time T3 (epoch 30) at which the first derivative of the loss, that is, the slope was below the threshold, to continue learning.
- FIG. 5 is a diagram showing a verification result when the batch size change based on the training value according to the present embodiment is applied to ImageNet / ResNet-50.
- FIG. 6 is a diagram illustrating a verification result when the batch size change based on the loss according to the present embodiment is applied to learning using MNIST.
- the batch size in Reference was fixed at 128, and learning was performed.
- the batch size is increased from 128 to 3072 at the timing T5 (Epoch 1) at which the first derivative of the loss falls below the threshold value and the zero derivative value of the loss falls below the threshold value 0.03. Was continued.
- the number of parameter updates can be reduced from 2000 to 560, and the learning time can be significantly reduced.
- FIG. 7 and FIG. 8 are diagrams illustrating verification results when the batch size change based on the loss according to the present embodiment is applied to learning using cifar10.
- the number of parameter updates can be reduced from 20,000 to 5,000, and the learning time can be significantly reduced.
- the batch size in Reference was fixed at 64, and learning was performed.
- the batch size was increased from 64 to 1024, and learning was continued.
- the number of parameter updates can be reduced from 20,000 to 7250, and the learning time can be significantly reduced.
- the verification results of the batch size changing method according to the present embodiment have been described above.
- the above verification results show that when the batch size changing method according to the present embodiment is applied, the number of parameter updates can be reduced by about 1/3 to 1/4 without substantially affecting performance.
- the information processing apparatus 10 according to the present embodiment it is possible to effectively speed up the learning by the DNN without depending on the learning method.
- the change of the batch size based on the first derivative of the loss can be realized by, for example, the training script TS1 and the loss slope calculation module CM as shown in FIG. Note that FIG. 9 shows the code in a pseudo manner.
- the loss slope acquisition API that is, the calling process of the loss slope calculation module CM is executed, and the current value of loss_grad is obtained as a return value.
- the loss slope calculation module CM saves the value of the retained loss to loss_prev, and calculates the difference between newly acquired loss and loss_prev, thereby calculating loss_grad.
- the loss gradient calculation module CM may perform a process of taking a moving average of the loss and removing noise as shown in the figure.
- the learning unit 120 may reduce the learning batch size. It is also possible to decrease the value.
- the learning unit 120 since the learning is still unstable during the period D1, the learning unit 120 maintains the value of the small batch size given as the initial value. On the other hand, when the learning is stabilized in the period D2, the learning unit 120 may increase the value of the batch size.
- Step learning learning rate decay since the loss is generally large immediately after the learning rate is lowered, it is assumed that the learning is more likely to diverge than before the learning rate is lowered. For this reason, the learning unit 120 according to the present embodiment can achieve convergence of learning by reducing the value of the batch size once increased in the period D2 in the period D3. At this time, the learning unit 120 may set a value of the batch size that falls between the period D1 and the period D2, for example.
- the learning unit 120 can increase the value of the batch size as the epoch elapses.
- the learning unit 120 according to the present embodiment may increase the value of the batch size for each epoch.
- FIG. 10 is a diagram illustrating verification results when the batch size increase for each epoch according to the present embodiment is applied to learning using MNIST.
- 128 is set as the initial value of the batch size
- the batch size is set to 256 at epoch 1 (timing T8), to 512 at epoch 2 (timing T9), and to the batch size at epoch 3 (timing T10).
- timing T8 is set as the initial value of the batch size
- the batch size is set to 256 at epoch 1 (timing T8), to 512 at epoch 2 (timing T9), and to the batch size at epoch 3 (timing T10).
- timing T8 is set as the initial value of the batch size
- the batch size is set to 256 at epoch 1 (timing T8), to 512 at epoch 2 (timing T9), and to the batch size at epoch 3 (timing T10).
- timing T8 is set as the initial value of
- the learning unit 120 when the divergence of the learning is estimated as a result of increasing the value of the batch size based on the loss or the epoch, the network model before the divergence, that is, the network model in the epoch immediately before. By re-reading, convergence of learning can be achieved.
- FIG. 11 is a diagram illustrating a verification result when the batch size change based on the loss and the epoch according to the present embodiment is applied to the learning using cifar10.
- 64 was set as the initial value of the batch size, and the threshold value of the zero-time differential value of the loss was set to 0.35.
- the process of increasing the batch size is started based on the fact that the loss has fallen below the threshold value of 0.35 at epoch 8 (timing T11), and thereafter the batch size is increased for each epoch.
- the learning unit 120 stops increasing the value of the batch size at the start of the epoch 15, reloads the model at the start of the epoch 14, and then fixes the value of the batch size to 2K. And continued learning.
- the learning unit 120 when the network model in the past epoch is re-read, the learning unit 120 according to the present embodiment may set a value of the batch size smaller than the value set in the past epoch.
- the value of the batch size can be automatically increased or decreased based on the loss or the epoch, and the number of parameter updates can be effectively reduced while avoiding the divergence of learning. It is possible to reduce the number.
- the increase and decrease of the batch size based on the loss and the epoch as described above can be realized by, for example, a training script TS2 as shown in FIG. In FIG. 12, the code is shown in a pseudo manner.
- the training script TS2 first compares the loss_grad acquired as a return value by calling the loss slope calculation module CM shown in FIG. 9 with a threshold value.
- the training script TS2 starts the automatic increase of the batch size.
- the training script TS2 determines whether or not the loss has become larger than the previous epoch by a threshold or more. Here, if an increase in the loss is recognized, the training script TS2 stops the automatic increase in the batch size.
- the training script TS2 re-reads the DNN network model in the previous epoch.
- the batch size changing unit 140 obtains the value of the batch size set by the learning unit 120, and controls the GPU (Graphics Processing Unit) based on the value to increase or decrease the batch size. .
- the batch size changing unit 140 may control the increase or decrease of the batch size by recreating a model in the GPU.
- FIG. 13 is a diagram for describing re-creation of a medium GPU model by the batch size changing unit 140 according to the present embodiment.
- the learning unit 120 inputs the value of the loss to the differential calculation unit 130, and acquires a partial value of the value n times. Further, the learning unit 120 determines the value of the batch size after the change based on the acquired n partial values, and inputs the value of the batch size to the batch size changing unit 140.
- the batch size changing unit 140 instructs the GPU currently used for learning to re-create the model based on the input batch size value.
- GPU_0 is currently used for learning, and when the batch size of the model in GPU_0 is 32, batch size changing unit 140 instructs GPU_0 to recreate the model.
- the batch size of the model is changed to 64 is shown.
- the batch size changing unit 140 can be increased globally without being affected by the number of GPUs included in the information processing apparatus 10, and the parallel computing capability of the GPU can be utilized. Describes the effect that leads to further speeding up.
- the batch size changing unit 140 may control the increase / decrease of the batch size by increasing / decreasing the number of calculation loops related to learning.
- Such a technique is also referred to as accum-grad.
- FIG. 14 is a diagram for describing control for increasing / decreasing the number of calculation loops by the batch size changing unit 140 according to the present embodiment.
- the batch size changing unit 140 according to the present embodiment instructs the GPU currently used for learning to change the number of calculation loops based on the value of the batch size input from the learning unit 120.
- the batch size changing unit 140 sends accum-grad twice to GPU_0.
- An example is shown in which an instruction is given to perform the learning and learning using the batch size 32 is performed twice.
- the batch size changing unit 140 can be increased without being limited by the number of GPUs and the memory capacity, and the number of times of synchronization processing is reduced. Learning can be speeded up by the number of times of processing.
- the batch size changing unit 140 may control the increase or decrease of the batch size by increasing or decreasing the number of GPUs used for learning.
- FIG. 15 is a diagram for explaining the increase / decrease control of the GPU used by the batch size changing unit 140 according to the present embodiment.
- the batch size changing unit 140 according to the present embodiment instructs a GPU that is not currently used for learning to operate based on the value of the batch size input from the learning unit 120.
- FIG. 15 illustrates an example in which the batch size changing unit 140 instructs GPU_1 to operate when only GPU_0 of GPU_0 and GPU_1 is currently used for learning.
- the learning can be speeded up by increasing the computational resources.
- the batch size changing unit 140 according to the present embodiment can increase the effect of speeding up by increasing the batch size by selecting a batch size change control method based on, for example, the priority shown in FIG. can do.
- FIG. 16 is a flowchart showing a flow of control by the batch size changing unit 140 according to the present embodiment.
- the batch size changing unit 140 determines whether or not there is an additional available GPU (S1101).
- the batch size changing unit 140 controls the increase of the batch size by allocating the available GPU to learning (S1102).
- the batch size changing unit 140 determines whether the target batch size has been achieved by the processing in step S1102 (S1103).
- the batch size changing unit 140 ends the processing related to the batch size change.
- the batch size changing unit 140 stores in the memory of the currently used GPU. It is determined whether there is free space (S1104).
- the batch size changing unit 140 controls the increase of the batch size by recreating the model in the currently used GPU. (S1105).
- the batch size changing unit 140 determines whether the target batch size has been achieved by the processing in step S1105 (S1106).
- the batch size changing unit 140 ends the processing related to the batch size change.
- the batch size change unit 140 performs the calculation related to the learning. By increasing the number of loops, the increase in the batch size is controlled (S1107), and the processing related to the change in the batch size ends.
- FIG. 17 is a block diagram illustrating a hardware configuration example of the information processing device 10 according to an embodiment of the present disclosure.
- the information processing apparatus 10 includes, for example, a processor 871, a ROM 872, a RAM 873, a host bus 874, a bridge 875, an external bus 876, an interface 877, an input device 878, and an output device 879.
- a storage 880, a drive 881, a connection port 882, and a communication device 883 Note that the hardware configuration shown here is an example, and some of the components may be omitted. Further, components other than the components shown here may be further included.
- the processor 871 functions as, for example, an arithmetic processing device or a control device, and controls the overall operation of each component or a part thereof based on various programs recorded in the ROM 872, the RAM 873, the storage 880, or the removable recording medium 901. .
- the processor 871 includes, for example, a GPU and a CPU. Note that the information processing device 10 according to an embodiment of the present disclosure includes at least two GPUs.
- the ROM 872 is a means for storing a program read by the processor 871, data used for calculation, and the like.
- the RAM 873 temporarily or permanently stores, for example, a program read by the processor 871 and various parameters that appropriately change when the program is executed.
- the processor 871, the ROM 872, and the RAM 873 are mutually connected, for example, via a host bus 874 capable of high-speed data transmission.
- the host bus 874 is connected to, for example, an external bus 876 having a relatively low data transmission speed via a bridge 875.
- the external bus 876 is connected to various components via an interface 877.
- Input device 8708 As the input device 878, for example, a mouse, a keyboard, a touch panel, a button, a switch, a lever, and the like are used. Further, as the input device 878, a remote controller (hereinafter, remote controller) capable of transmitting a control signal using infrared rays or other radio waves may be used. Further, the input device 878 includes a voice input device such as a microphone.
- the output device 879 transmits acquired information to a user, such as a display device such as a CRT (Cathode Ray Tube), LCD, or organic EL, an audio output device such as a speaker or a headphone, a printer, a mobile phone, or a facsimile. It is a device that can visually or audibly notify the user.
- the output device 879 according to the present disclosure includes various vibration devices capable of outputting a tactile stimulus.
- the storage 880 is a device for storing various data.
- a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like is used.
- the drive 881 is, for example, a device that reads information recorded on a removable recording medium 901 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information on the removable recording medium 901.
- a removable recording medium 901 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory
- the removable recording medium 901 is, for example, a DVD medium, a Blu-ray (registered trademark) medium, an HD DVD medium, various semiconductor storage media, and the like.
- the removable recording medium 901 may be, for example, an IC card on which a non-contact type IC chip is mounted, or an electronic device.
- connection port 882 is, for example, a port for connecting an external connection device 902 such as a USB (Universal Serial Bus) port, an IEEE1394 port, a SCSI (Small Computer System Interface), an RS-232C port, or an optical audio terminal. is there.
- an external connection device 902 such as a USB (Universal Serial Bus) port, an IEEE1394 port, a SCSI (Small Computer System Interface), an RS-232C port, or an optical audio terminal. is there.
- the external connection device 902 is, for example, a printer, a portable music player, a digital camera, a digital video camera, or an IC recorder.
- the communication device 883 is a communication device for connecting to a network, for example, a communication card for wired or wireless LAN, Bluetooth (registered trademark), or WUSB (Wireless USB), a router for optical communication, and an ADSL (Asymmetric Digital). Subscriber Line) or a modem for various communications.
- a network for example, a communication card for wired or wireless LAN, Bluetooth (registered trademark), or WUSB (Wireless USB), a router for optical communication, and an ADSL (Asymmetric Digital). Subscriber Line) or a modem for various communications.
- the information processing device 10 includes the learning unit 120 that performs learning using a neural network, and the learning unit 120 determines an ideal state related to learning output from the neural network.
- One of the features is that the value of the batch size is dynamically changed during learning based on the gap value of. According to such a configuration, it is possible to effectively speed up the learning by the DNN without depending on the learning method.
- a program for causing a hardware such as a CPU, a ROM, and a RAM built in the computer to exhibit the same function as the configuration of the information processing apparatus 10 can be created.
- Possible non-transitory recording media can also be provided.
- each step related to the processing of the information processing device 10 in the present specification does not necessarily need to be processed in a time series in the order described in the flowchart.
- each step related to the processing of the information processing apparatus 10 may be processed in an order different from the order described in the flowchart, or may be processed in parallel.
- a learning unit that performs learning using a neural network, With The learning unit dynamically changes the value of the batch size during learning based on a gap value with an ideal state related to learning output by the neural network.
- Information processing device (2)
- the gap value with the ideal state includes at least a loss, The information processing device according to (1).
- the learning unit increases the value of the batch size during learning when the convergence of learning is estimated based on the loss.
- the learning unit increases the value of the batch size during learning based on the n-th derivative of the loss.
- the information processing device according to (3) is mapped to the probability
- the learning unit increases the value of the batch size during learning based on that at least one of the value of the loss or the slope of the loss is less than a threshold, The information processing device according to (4).
- the learning unit when the divergence of learning is estimated based on the loss, reduces the value of the batch size during learning, The information processing device according to any one of (2) to (5).
- the learning unit dynamically changes the value of the batch size based on the epoch, The information processing device according to any one of (1) to (6).
- the learning unit increases the value of the batch size as the epoch progresses, The information processing device according to (7).
- the learning unit When the divergence of learning is estimated from the gap value with the ideal state, the learning unit reloads the network model in the past epoch, The information processing device according to (8). (10) The learning unit, when re-reading the network model in the past epoch, set a value of the batch size smaller than the value set in the past epoch, The information processing device according to (9). (11) The learning unit increases the value of the batch size for each epoch, The information processing device according to (7). (12) A batch size changing unit that controls an increase or decrease of the batch size based on the value set by the learning unit; Further comprising, The information processing apparatus according to any one of (1) to (11).
- the batch size changing unit controls increase / decrease of the batch size by recreating a model in the GPU.
- the batch size change unit controls the increase or decrease of the batch size by increasing or decreasing the number of loops of the calculation related to learning, The information processing device according to (12) or (13).
- the batch size changing unit controls the increase or decrease of the batch size by increasing or decreasing the number of GPUs used for learning.
- the batch size changing unit controls an increase in batch size by allocating the GPU to learning when an additional available GPU exists, The information processing device according to any one of (12) to (15).
- the batch size changing unit when there is no additionally available GPU and there is free space in the memory of the currently used GPU, re-creates the model in the currently used GPU, thereby changing the batch size. Control the increase, The information processing device according to any one of the above (12) to (16). (18) The batch size changing unit controls an increase in the batch size by increasing the number of loops of the calculation related to learning when there is no free space in the memory of the currently used GPU. The information processing device according to any one of (12) to (17). (19) The gap value with the ideal state includes at least one of a training error and a validation error, The information processing device according to (1). (20) The processor performs learning using the neural network, Including Performing the learning, dynamically changing the value of the batch size during learning, based on the gap value with the ideal state according to the learning output by the neural network, Further comprising, Information processing method.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】DNNによる学習を学習手法に依らず効果的に高速化する。【解決手段】ニューラルネットワークを用いた学習を行う学習部、を備え、前記学習部は、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更する、情報処理装置が提供される。また、プロセッサが、ニューラルネットワークを用いた学習を行うこと、を含み、前記学習を行うことは、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、をさらに含む、情報処理方法が提供される。
Description
本開示は、情報処理装置および情報処理方法に関する。
近年、脳神経系の仕組みを模した数学モデルであるニューラルネットワークが注目されている。また、ニューラルネットワークによる学習を高速化するための技術も多く提案されている。例えば、非特許文献1には、学習中にバッチサイズを変更する技術が開示されている。
Samuel L. Smith、外3名、「Don't Decay the Learning Rate, Increase the Batch Size」、2017年11月1日、[Online]、[平成30年9月7日検索]、インターネット<https://arxiv.org/pdf/1711.00489.pdf>
しかし、非特許文献1に記載の技術は、特定の学習手法に依存しており、当該手法を採用しない学習には適用することが困難である。
本開示によれば、ニューラルネットワークを用いた学習を行う学習部、を備え、前記学習部は、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更する、情報処理装置が提供される。
また、本開示によれば、プロセッサが、ニューラルネットワークを用いた学習を行うこと、を含み、前記学習を行うことは、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、をさらに含む、情報処理方法が提供される。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.実施形態
1.1.概要
1.2.情報処理装置10の機能構成例
1.3.検証結果
1.4.バッチサイズ増減の実現手法
2.ハードウェア構成例
3.まとめ
1.実施形態
1.1.概要
1.2.情報処理装置10の機能構成例
1.3.検証結果
1.4.バッチサイズ増減の実現手法
2.ハードウェア構成例
3.まとめ
<1.実施形態>
<<1.1.概要>>
まず、本開示の一実施形態の概要について説明する。上述したように、近年、ニューラルネットワークによる学習を高速化するための技術が多く提案されている。一般に、DNN(Deep Neural Network)の学習に要する時間は、パラメータの更新回数と比例関係にあることから、当該更新回数を減らすことが学習の高速化に対し有効な手段となり得る。
<<1.1.概要>>
まず、本開示の一実施形態の概要について説明する。上述したように、近年、ニューラルネットワークによる学習を高速化するための技術が多く提案されている。一般に、DNN(Deep Neural Network)の学習に要する時間は、パラメータの更新回数と比例関係にあることから、当該更新回数を減らすことが学習の高速化に対し有効な手段となり得る。
パラメータの更新回数は、例えば、バッチサイズを増加させることで減らすことが可能である。また、学習の後半においては、バッチサイズを増加させても学習が収束することが知られていることから、例えば、非特許文献1に開示されるように学習中にバッチサイズを変更し、できるだけ大きなバッチサイズを設定することで、パラメータの更新回数を削減することができ、ひいては学習を高速化させる効果が期待される。
しかし、非特許文献1に記載されるバッチサイズの変更手法は、特定の学習手法にのみ適用可能な技術である。ここで、上記の特定の学習手法とは、Step Learning rate decayと呼ばれる手法を指す。
図1は、Step Learning rate decayを適用した場合の損失(loss)の推移の一例を示す図である。Step Learning rate decayとは、図1に示すように、学習率を階段状に下げることで、損失を階段状に下げていく手法である。図1に示す一例を参照すると、エポック30および60付近において損失が大きく低下し、グラフが階段形状をなしていることがわかる。
非特許文献1に記載の技術によれば、損失が大きく低下するエポック30や60のようなタイミングでバッチサイズを変更することが可能であるが、損失の推移が上記のような階段形状を示さない学習手法には適用することができない。
本開示に係る技術思想は上記の点に着目して発想されたものであり、DNNによる学習を学習手法に依らず効果的に高速化することを可能とする。このために、本開示の一実施形態に係る情報処理装置10は、ニューラルネットワークを用いた学習を行う学習部120を備え、学習部120は、ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、を特徴の一つとする。
ここで、上記の理想状態とのギャップ値とは、期待される出力と実際の出力との差を定量的に表した指標であってよい。本実施形態に係る理想状態とのギャップ値には、例えば、損失が含まれる。また、本実施形態に係る理想状態とのギャップ値は、トレーニングエラーやバリデーションエラーを含みうる。
なお、上記ギャップ値として用いられるトレーニングエラーおよびバリエーションエラーの一例としては、例えば、損失として用いられることもある平均二乗誤差(MSE:Mean Square Error)や平均絶対誤差(MAE:Mean Absolute Error)、画像分類において用いられるTop-k-error(特に、top-1-errorやtop-5-errorなど)、また物体検出において用いられるmAP(mean Average Precision)などが挙げられる。
ここで、図2を参照して、本実施形態に係るバッチサイズ変更の概要について説明する。図2には、エポックの経過に伴う損失の推移を表すグラフが示されている。なお、図2以降に示す各グラフにおいては、実線がバッチサイズ変更を伴わない損失の推移(Reference)を、破線が本実施形態に係るバッチサイズ変更を適用した損失の推移(Approach)をそれぞれ示している。
本実施形態に係る学習部120は、例えば、損失に基づいて学習の収束が推定される場合、学習中にバッチサイズの値を増加させてよい。
損失の値が小さくなることは、DNNが解に近づいていること、すなわち学習が収束に向かっていること(学習が安定していること)を示す。このことから、本実施形態に係る学習部120は、損失のn回微分値に基づいて、学習中にバッチサイズの値を増加させてもよい。
例えば、本実施形態に係る学習部120は、損失の1回微分値、すなわち傾きが所定の閾値を下回る場合、バッチサイズの値を増加させることができる。図2に示す一例の場合、学習部120は、損失の傾きが落ち着いたタイミングT1(エポック30)でバッチサイズの値を32Kから64Kに増加させている。
また、例えば、本実施形態に係る学習部120は、損失の0回微分値、すなわち損失の値そのものが所定の閾値を下回る場合、バッチサイズの値を増加させることもできる。ここで、上記の閾値が0.3である場合、学習部120は、損失の値が0.3を下回ったタイミングT2(エポック60)でバッチサイズの値を増加させてよい。なお、学習部120は、n>2以上のn回微分値に基づいてバッチサイズの値を増加させてもよい。
ここで、ApproachとReferenceを比較すると、本実施形態に係るバッチサイズ変更手法を適用した場合であっても、学習が発散せずに性能を保っていることがわかる。すなわち、本実施形態に係る情報処理装置10が実現するバッチ変更手法によれば、学習性能の確保と、パラメータ更新回数の削減すなわち学習時間の短縮と、を両立することが可能となる。
また、本実施形態に係るバッチ変更手法によれば、図2に示すような、損失の推移が階段形状を示さない学習手法であっても、バッチサイズを増加させ、学習時間を短縮することが可能となる。このように、本実施形態に係る情報処理装置10によれば、DNNによる学習を学習手法に依らず効果的に高速化することが可能となる。
<<1.2.情報処理装置10の機能構成例>>
次に、本実施形態に係る情報処理装置10の機能構成例について説明する。図3は、本実施形態に係る情報処理装置10の機能構成例を示すブロック図である。図3を参照すると、本実施形態に係る情報処理装置10は、入出力制御部110、学習部120、微分計算部130、およびバッチサイズ変更部140を備える。
次に、本実施形態に係る情報処理装置10の機能構成例について説明する。図3は、本実施形態に係る情報処理装置10の機能構成例を示すブロック図である。図3を参照すると、本実施形態に係る情報処理装置10は、入出力制御部110、学習部120、微分計算部130、およびバッチサイズ変更部140を備える。
(入出力制御部110)
本実施形態に係る入出力制御部110は、DNNの学習に係るユーザインタフェースを制御する。例えば、本実施形態に係る入出力制御部110は、入力装置を介して入力された各種のデータを学習部120に引き渡す。また、例えば、入出力制御部110は、学習部120が出力する値を出力装置に引き渡す。
本実施形態に係る入出力制御部110は、DNNの学習に係るユーザインタフェースを制御する。例えば、本実施形態に係る入出力制御部110は、入力装置を介して入力された各種のデータを学習部120に引き渡す。また、例えば、入出力制御部110は、学習部120が出力する値を出力装置に引き渡す。
(学習部120)
本実施形態に係る学習部120は、DNNを用いた学習を行う。上述したように、本実施形態に係る学習部120は、DNNが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、を特徴の一つとする。本実施形態に係る理想状態とのギャップ値は、例えば、損失、トレーニングエラー、バリデーションエラーなどを含む。
本実施形態に係る学習部120は、DNNを用いた学習を行う。上述したように、本実施形態に係る学習部120は、DNNが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、を特徴の一つとする。本実施形態に係る理想状態とのギャップ値は、例えば、損失、トレーニングエラー、バリデーションエラーなどを含む。
(微分計算部130)
本実施形態に係る微分計算部130は、学習部120から入力される損失にn回微分処理を行うことでn回微分値を算出し、当該n回微分値を学習部120に出力する。
本実施形態に係る微分計算部130は、学習部120から入力される損失にn回微分処理を行うことでn回微分値を算出し、当該n回微分値を学習部120に出力する。
(バッチサイズ変更部140)
本実施形態に係るバッチサイズ変更部140は、学習部120が設定したバッチサイズの値に基づいて、バッチサイズの増減を制御する機能を有する。本実施形態に係るバッチサイズ変更部140が有する機能の詳細については、別途後述する。
本実施形態に係るバッチサイズ変更部140は、学習部120が設定したバッチサイズの値に基づいて、バッチサイズの増減を制御する機能を有する。本実施形態に係るバッチサイズ変更部140が有する機能の詳細については、別途後述する。
以上、本実施形態に係る情報処理装置10の機能構成例について説明した。なお、図3を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理装置10の機能構成は係る例に限定されない。本実施形態に係る情報処理装置10の機能構成は、仕様や運用に応じて柔軟に変形可能である。
<<1.3.検証結果>>
次に、本実施形態に係る情報処理装置10により実現されるバッチサイズ変更手法の検証結果について述べる。
次に、本実施形態に係る情報処理装置10により実現されるバッチサイズ変更手法の検証結果について述べる。
まず、データセットにImageNetを、DNNにResNet-50を用いた場合の検証結果について説明する。図4は、本実施形態に係る損失の傾きに基づくバッチサイズ変更をImageNet/ResNet-50に適用した際の検証結果を示す図である。
ここでは、Referenceにおけるバッチサイズを32Kで固定し、学習を行った。一方、Approachにおいては、損失の1回微分値、すなわち傾きが閾値を下回ったタイミングT3(エポック30)において、バッチサイズを32Kから68Kに増加させ学習を継続させた。
ReferenceとApproachを比較すると、本実施形態に係るバッチ変更手法によりバッチサイズを増加させた場合であっても、損失の収束に大きな影響を与えないことがわかる。
また、図5は、本実施形態に係るトレーニングの値に基づくバッチサイズ変更をImageNet/ResNet-50に適用した際の検証結果を示す図である。
ここでは、トレーニングエラーの0回微分値が閾値1.8を下回ったタイミングT4(エポック30)において、バッチサイズを2Kから20Kに増加させ学習を継続させた。
図5を参照すると、トレーニングエラーの0回微分値に基づいてバッチサイズを増加させた場合であっても、影響なく学習が収束に向かっていることがわかる。
次に、データセットにMNISTを用いた場合の検証結果について説明する。図6は、本実施形態に係る損失に基づくバッチサイズ変更をMNISTを用いた学習に適用した際の検証結果を示す図である。
ここでは、Referenceにおけるバッチサイズを128で固定し、学習を行った。一方、Approachにおいては、損失の1回微分値が閾値を下回り、かつ損失の0回微分値が閾値0.03を下回ったタイミングT5(エポック1)において、バッチサイズを128から3072に増加させ学習を継続させた。
上記の制御の結果、パラメータの更新回数を2000回から560回に削減することができ、学習時間を大幅に短縮することができた。
次に、データセットにcifar10を用いた場合の検証結果について説明する。図7および図8は、本実施形態に係る損失に基づくバッチサイズ変更をcifar10を用いた学習に適用した際の検証結果を示す図である。
図7に係る検証では、Referenceにおけるバッチサイズを64で固定し、学習を行った。一方、Approachにおいては、損失の1回微分値が閾値を下回り、かつ損失の0回微分値が閾値0.35を下回ったタイミングT6(エポック5)において、バッチサイズを64から1024に増加させ学習を継続させた。
上記の制御の結果、パラメータの更新回数を20000回から5000回に削減することができ、学習時間を大幅に短縮することができた。
また、図8に係る検証では、図7に係る検証と同様に、Referenceにおけるバッチサイズを64で固定し、学習を行った。一方、Approachにおいては、損失の0回微分値が閾値0.35を下回ったタイミングT7(エポック8)において、バッチサイズを64から1024に増加させ学習を継続させた。
上記の制御の結果、パラメータの更新回数を20000回から7250回に削減することができ、学習時間を大幅に短縮することができた。
以上、本実施形態に係るバッチサイズ変更手法の検証結果について述べた。上述した検証結果では、本実施形態に係るバッチサイズ変更手法を適用した場合、性能にほぼ影響を与えずに、パラメータ更新回数を1/3~1/4程度削減できることが示されている。このように、本実施形態に係る情報処理装置10によれば、DNNによる学習を学習手法に依らず効果的に高速化することが可能となる。
なお、損失の1回微分値に基づくバッチサイズの変更は、例えば、図9に示すような訓練スクリプトTS1および損失傾き計算モジュールCMにより実現することができる。なお、図9においては、コードを擬似的に示している。
図9に示す一例の場合、訓練スクリプトTS1では、まず、損失傾き取得APIすなわち損失傾き計算モジュールCMの呼び出し処理を実行し、返り値として現在のloss_gradの値が取得される。
次に、取得されたloss_gradの値と閾値との比較処理が実行され、ここで、loss_gradの値が閾値を下回る場合、バッチサイズの増加処理が実行される。
訓練スクリプトTS1では、学習が収束するまで、上記の各処理が繰り返し実行される。
また、損失傾き計算モジュールCMは、訓練スクリプトTS1により呼び出されると、保持するlossの値をloss_prevに退避し、新たに取得したlossとloss_prevとの差を求めることで、loss_gradを算出する。この際、損失傾き計算モジュールCMは、図示するように、損失の移動平均をとりノイズを除去する処理を行なってもよい。
なお、上記では、バッチサイズを増加させる場合を主な例に説明したが、本実施形態に係る学習部120は、損失に基づいて学習の発散が推定される場合には、学習中バッチサイズの値を減少させることも可能である。
例えば、図5に示した一例の場合、期間D1においては学習がまだ不安定であることから、学習部120は、初期値として与えられた小さいバッチサイズの値を維持する。一方、期間D2において学習が安定した場合、学習部120はバッチサイズの値を増加させてよい。
しかし、Step learning rate decayでは、一般に学習率を下げた直後に大きく損失が下がることから、学習率を下げる前と比較して学習が発散しやすくなることが想定される。このため、本実施形態に係る学習部120は、期間D2において一度増加させたバッチサイズの値を期間D3においては減少させることで学習の収束を図ることができる。この際、学習部120は、例えば期間D1および期間D2の間となるようなバッチサイズの値を設定してよい。
次に、本実施形態に係るエポックに基づくバッチサイズの変更について説明する。DNNによる学習では、学習率の減衰がない場合、学習が進むにつれ、すなわちエポックが重なるにつれ、学習が容易となる傾向が強く見られる。このため、本実施形態に係る学習部120は、エポックの経過に伴いバッチサイズの値を増加させることができる。例えば、本実施形態に係る学習部120は、エポックごとにバッチサイズの値を増加させてもよい。
図10は、本実施形態に係るエポックごとのバッチサイズ増加をMNISTを用いた学習に適用した場合の検証結果を示す図である。ここでは、バッチサイズの初期値として128を設定し、エポック1(タイミングT8)でバッチサイズを256に、エポック2(タイミングT9)でバッチサイズを512に、エポック3(タイミングT10)でバッチサイズを1024に、それぞれ倍増させる制御を行った。
上記の制御の結果、パラメータの更新回数を2000回から938に削減することができた。係る検証結果によれば、エポックごとにバッチサイズを増加させた場合であっても、損失の収束に大きな影響を与えず、学習時間を大幅に削減できることがわかる。
また、本実施形態に係る学習部120は、損失やエポックに基づいてバッチサイズの値を増加させた結果、学習の発散が推定された場合には、発散前、すなわち直前のエポックにおけるネットワークモデルを再読み込みすることで、学習の収束を図ることも可能である。
図11は、本実施形態に係る損失およびエポックに基づくバッチサイズ変化をcifar10を用いた学習に適用した場合の検証結果を示す図である。
ここでは、バッチサイズの初期値として64を設定し、損失の0回微分値の閾値を0.35に設定した。図11に示す一例の場合、エポック8(タイミングT11)において損失が閾値0.35を下回ったことに基づいてバッチサイズの増加処理を開始し、その後エポックごとにバッチサイズを増加させた。
その後、エポック14(タイミングT12)においてバッチサイズを4Kに増加させたところ、学習の発散が推定された。このため、本実施形態に係る学習部120は、エポック15の開始時点でバッチサイズの値の増加を停止し、エポック14開始時点におけるモデルを再読み込みしたうえで、バッチサイズの値を2Kに固定し学習を継続した。
このように、本実施形態に係る学習部120は、過去のエポックにおけるネットワークモデルの再読み込みを行った場合、当該過去のエポックで設定した値よりも小さいバッチサイズの値を設定してよい。
本実施形態に係る学習部120が有する上記の機能によれば、損失やエポックに基づいて自動でバッチサイズの値を増減することができ、学習の発散を回避しながらパラメータの更新回数を効果的に削減することが可能となる。
なお、上記のような損失とエポックに基づくバッチサイズの増減は、例えば、図12に示すような訓練スクリプトTS2より実現することができる。なお、図12においては、コードを擬似的に示している。
図12に示す一例の場合、訓練スクリプトTS2は、まず、図9に示した損失傾き計算モジュールCMを呼び出し返り値として取得したloss_gradを、閾値と比較している。ここで、loss_gradが閾値を下回る場合、訓練スクリプトTS2は、バッチサイズの自動増加を開始する。
その後、訓練スクリプトTS2は、損失が前エポックよりも閾値以上大きくなったか否かを判定する。ここで、損失の増大が認められる場合、訓練スクリプトTS2は、バッチサイズの自動増加を停止する。
また、この際、訓練スクリプトTS2は、前エポックにおけるDNNのネットワークモデルを再読み込みする。
<<1.4.バッチサイズ増減の実現手法>>
続いて、本実施形態に係るバッチサイズ増減の実現手法について詳細に説明する。本実施形態に係るバッチサイズ変更部140は、学習部120が設定したバッチサイズの値を取得し、当該値に基づいてGPU(Graphics Processing Unit)を制御することで、バッチサイズの増減を実現する。
続いて、本実施形態に係るバッチサイズ増減の実現手法について詳細に説明する。本実施形態に係るバッチサイズ変更部140は、学習部120が設定したバッチサイズの値を取得し、当該値に基づいてGPU(Graphics Processing Unit)を制御することで、バッチサイズの増減を実現する。
例えば、本実施形態に係るバッチサイズ変更部140は、GPU中のモデルを作り直すことによりバッチサイズの増減を制御してもよい。
図13は、本実施形態に係るバッチサイズ変更部140によるGPU中モデルの作り直しについて説明するための図である。この場合、まず、学習部120が損失の値を微分計算部130に入力し、当該値のn回部分値を取得する。また、学習部120は、取得したn回部分値に基づいて変更後のバッチサイズの値を決定し、当該バッチサイズの値をバッチサイズ変更部140に入力する。
次に、本実施形態に係るバッチサイズ変更部140は、入力されたバッチサイズの値に基づいて、現在学習に利用されているGPUにモデルの再作成指示を行う。
なお、図13では、GPU_0およびGPU_1のうち、GPU_0が現在学習に用いられており、GPU_0中のモデルのバッチサイズが32である場合において、バッチサイズ変更部140がGPU_0にモデルの再作成を指示し、当該モデルのバッチサイズを64に変更させる場合の一例が示されている。
本実施形態に係るバッチサイズ変更部140による上記の制御によれば、情報処理装置10が有するGPUの数に影響されずグローバルにバッチサイズを上げることができ、またGPUの並列演算能力が活きることでさらなる高速化に繋がる効果も記載される。
また、例えば、本実施形態に係るバッチサイズ変更部140は、学習に係る計算のループ数を増減させることによりバッチサイズの増減を制御してもよい。上記のようなテクニックは、accum-gradとも称される。
図14は、本実施形態に係るバッチサイズ変更部140による計算ループ数の増減制御について説明するための図である。この場合、本実施形態に係るバッチサイズ変更部140は、学習部120から入力されたバッチサイズの値に基づいて、現在学習に利用されているGPUに計算ループ数を変更するよう指示する。
なお、図14では、GPU_0およびGPU_1のうち、GPU_0が現在学習に用いられており、GPU_0中のモデルのバッチサイズが32である場合において、バッチサイズ変更部140がGPU_0に2回accum-gradを行うよう指示し、バッチサイズ32による学習が2回行われる場合の一例が示されている。
本実施形態に係るバッチサイズ変更部140による上記の制御によれば、GPUの数やメモリ容量に制限されることなくバッチサイズを上げることができ、また同期処理の回数が減るため、減った同期処理の回数分だけ学習を高速化することができる。
また、例えば、本実施形態に係るバッチサイズ変更部140は、学習に用いられるGPUの数を増減させることによりバッチサイズの増減を制御してもよい。
図15は、本実施形態に係るバッチサイズ変更部140による利用GPUの増減制御について説明するための図である。この場合、本実施形態に係るバッチサイズ変更部140は、学習部120から入力されたバッチサイズの値に基づいて、現在学習に利用されていないGPUに稼働を指示する。
なお、図15では、GPU_0およびGPU_1のうち、GPU_0のみが現在学習に用いられている場合において、バッチサイズ変更部140がGPU_1に稼働を指示する場合の一例が示されている。
本実施形態に係るバッチサイズ変更部140による上記の制御によれば、計算資源を増やすことで、その分学習を高速化することができる。
以上、本実施形態に係るバッチサイズ変更部140によるバッチサイズの変更制御手法について説明した。なお、本実施形態に係るバッチサイズ変更部140は、例えば、図16に示すような優先度に基づいて、バッチサイズの変更制御手法を選択することで、バッチサイズ増加による高速化効果をより大きくすることができる。
図16は、本実施形態に係るバッチサイズ変更部140による制御の流れを示すフローチャートである。
図16を参照すると、バッチサイズ変更部140は、まず、追加で利用可能なGPUが存在するか否かを判定する(S1101)。
ここで、追加で利用可能なGPUが存在する場合(S1101:Yes)、バッチサイズ変更部140は、当該利用可能なGPUを学習に割り当てることで、バッチサイズの増加を制御する(S1102)。
続いて、バッチサイズ変更部140は、ステップS1102における処理により目的のバッチサイズを達成したかを判定する(S1103)。
ここで、目的のバッチサイズが達成されている場合(S1103:Yes)、バッチサイズ変更部140は、バッチサイズ変更に係る処理を終了する。
一方、目的のバッチサイズが達成されていない場合(S1103:No)、または追加で利用可能なGPUが存在しない場合(S1101:No)、バッチサイズ変更部140は、現在利用中のGPUのメモリに空き容量が存在するか否かを判定する(S1104)。
ここで、現在利用中のGPUのメモリに空き容量が存在する場合(S1104:Yes)、バッチサイズ変更部140は、現在利用中のGPU中のモデルを作り直すことで、バッチサイズの増加を制御する(S1105)。
続いて、バッチサイズ変更部140は、ステップS1105における処理により目的のバッチサイズを達成したかを判定する(S1106)。
ここで、目的のバッチサイズが達成されている場合(S1106:Yes)、バッチサイズ変更部140は、バッチサイズ変更に係る処理を終了する。
一方、目的のバッチサイズが達成されていない場合(S1106:No)、または現在利用中のGPUのメモリに空き容量が存在しない場合(S1104:No)、バッチサイズ変更部140は、学習に係る計算のループ数を増加させることで、バッチサイズの増加を制御し(S1107)、バッチサイズ変更に係る処理を終了する。
<2.ハードウェア構成例>
次に、本開示の一実施形態に係る情報処理装置10のハードウェア構成例について説明する。図17は、本開示の一実施形態に係る情報処理装置10のハードウェア構成例を示すブロック図である。図17を参照すると、情報処理装置10は、例えば、プロセッサ871と、ROM872と、RAM873と、ホストバス874と、ブリッジ875と、外部バス876と、インターフェース877と、入力装置878と、出力装置879と、ストレージ880と、ドライブ881と、接続ポート882と、通信装置883と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
次に、本開示の一実施形態に係る情報処理装置10のハードウェア構成例について説明する。図17は、本開示の一実施形態に係る情報処理装置10のハードウェア構成例を示すブロック図である。図17を参照すると、情報処理装置10は、例えば、プロセッサ871と、ROM872と、RAM873と、ホストバス874と、ブリッジ875と、外部バス876と、インターフェース877と、入力装置878と、出力装置879と、ストレージ880と、ドライブ881と、接続ポート882と、通信装置883と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
(プロセッサ871)
プロセッサ871は、例えば、演算処理装置又は制御装置として機能し、ROM872、RAM873、ストレージ880、又はリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。プロセッサ871は、例えば、GPUやCPUを含む。なお、本開示の一実施形態に係る情報処理装置10は、少なくとも2つのGPUを備える。
プロセッサ871は、例えば、演算処理装置又は制御装置として機能し、ROM872、RAM873、ストレージ880、又はリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。プロセッサ871は、例えば、GPUやCPUを含む。なお、本開示の一実施形態に係る情報処理装置10は、少なくとも2つのGPUを備える。
(ROM872、RAM873)
ROM872は、プロセッサ871に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM873には、例えば、プロセッサ871に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
ROM872は、プロセッサ871に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM873には、例えば、プロセッサ871に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
(ホストバス874、ブリッジ875、外部バス876、インターフェース877)
プロセッサ871、ROM872、RAM873は、例えば、高速なデータ伝送が可能なホストバス874を介して相互に接続される。一方、ホストバス874は、例えば、ブリッジ875を介して比較的データ伝送速度が低速な外部バス876に接続される。また、外部バス876は、インターフェース877を介して種々の構成要素と接続される。
プロセッサ871、ROM872、RAM873は、例えば、高速なデータ伝送が可能なホストバス874を介して相互に接続される。一方、ホストバス874は、例えば、ブリッジ875を介して比較的データ伝送速度が低速な外部バス876に接続される。また、外部バス876は、インターフェース877を介して種々の構成要素と接続される。
(入力装置878)
入力装置878には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置878としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置878には、マイクロフォンなどの音声入力装置が含まれる。
入力装置878には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置878としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置878には、マイクロフォンなどの音声入力装置が含まれる。
(出力装置879)
出力装置879は、例えば、CRT(Cathode Ray Tube)、LCD、又は有機EL等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置879は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
出力装置879は、例えば、CRT(Cathode Ray Tube)、LCD、又は有機EL等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置879は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
(ストレージ880)
ストレージ880は、各種のデータを格納するための装置である。ストレージ880としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
ストレージ880は、各種のデータを格納するための装置である。ストレージ880としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
(ドライブ881)
ドライブ881は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体901に記録された情報を読み出し、又はリムーバブル記録媒体901に情報を書き込む装置である。
ドライブ881は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体901に記録された情報を読み出し、又はリムーバブル記録媒体901に情報を書き込む装置である。
(リムーバブル記録媒体901)
リムーバブル記録媒体901は、例えば、DVDメディア、Blu-ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。
リムーバブル記録媒体901は、例えば、DVDメディア、Blu-ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。
(接続ポート882)
接続ポート882は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、又は光オーディオ端子等のような外部接続機器902を接続するためのポートである。
接続ポート882は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、又は光オーディオ端子等のような外部接続機器902を接続するためのポートである。
(外部接続機器902)
外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。
外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。
(通信装置883)
通信装置883は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデム等である。
通信装置883は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデム等である。
<3.まとめ>
以上説明したように、本開示の一実施形態に係る情報処理装置10は、ニューラルネットワークを用いた学習を行う学習部120を備え、学習部120は、ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、を特徴の一つとする。係る構成によれば、DNNによる学習を学習手法に依らず効果的に高速化することが可能となる。
以上説明したように、本開示の一実施形態に係る情報処理装置10は、ニューラルネットワークを用いた学習を行う学習部120を備え、学習部120は、ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、を特徴の一つとする。係る構成によれば、DNNによる学習を学習手法に依らず効果的に高速化することが可能となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
また、コンピュータに内蔵されるCPU、ROMおよびRAMなどのハードウェアに、情報処理装置10が有する構成と同等の機能を発揮させるためのプログラムも作成可能であり、当該プログラムを記録した、コンピュータに読み取り可能な非一過性の記録媒体も提供され得る。
また、本明細書の情報処理装置10の処理に係る各ステップは、必ずしもフローチャートに記載された順序に沿って時系列に処理される必要はない。例えば、情報処理装置10の処理に係る各ステップは、フローチャートに記載された順序と異なる順序で処理されても、並列的に処理されてもよい。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
ニューラルネットワークを用いた学習を行う学習部、
を備え、
前記学習部は、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更する、
情報処理装置。
(2)
前記理想状態とのギャップ値は、少なくとも損失を含む、
前記(1)に記載の情報処理装置。
(3)
前記学習部は、前記損失に基づいて学習の収束が推定される場合、学習中にバッチサイズの値を増加させる、
前記(2)に記載の情報処理装置。
(4)
前記学習部は、前記損失のn回微分値に基づいて、学習中にバッチサイズの値を増加させる、
前記(3)に記載の情報処理装置。
(5)
前記学習部は、前記損失の値または前記損失の傾きの少なくともいずれかが閾値を下回ることに基づいて、学習中にバッチサイズの値を増加させる、
前記(4)に記載の情報処理装置。
(6)
前記学習部は、前記損失に基づいて学習の発散が推定される場合、学習中にバッチサイズの値を減少させる、
前記(2)~(5)のいずれかに記載の情報処理装置。
(7)
前記学習部は、エポックに基づいて、バッチサイズの値を動的に変更する、
前記(1)~(6)のいずれかに記載の情報処理装置。
(8)
前記学習部は、エポックの経過に伴いバッチサイズの値を増加させる、
前記(7)に記載の情報処理装置。
(9)
前記学習部は、前記理想状態とのギャップ値から学習の発散が推定される場合、過去のエポックにおけるネットワークモデルを再読み込みする、
前記(8)に記載の情報処理装置。
(10)
前記学習部は、前記過去のエポックにおけるネットワークモデルの再読み込みを行った場合、前記過去のエポックで設定した値よりも小さいバッチサイズの値を設定する、
前記(9)に記載の情報処理装置。
(11)
前記学習部は、エポックごとにバッチサイズの値を増加させる、
前記(7)に記載の情報処理装置。
(12)
前記学習部が設定した値に基づいて、バッチサイズの増減を制御するバッチサイズ変更部、
をさらに備える、
前記(1)~(11)のいずれかに記載の情報処理装置。
(13)
前記バッチサイズ変更部は、GPU中のモデルを作り直すことによりバッチサイズの増減を制御する、
前記(12)に記載の情報処理装置。
(14)
前記バッチサイズ変更部は、学習に係る計算のループ数を増減させることによりバッチサイズの増減を制御する、
前記(12)または(13)に記載の情報処理装置。
(15)
前記バッチサイズ変更部は、学習に用いられるGPUの数を増減させることによりバッチサイズの増減を制御する、
前記(12)~(14)のいずれかに記載の情報処理装置。
(16)
前記バッチサイズ変更部は、追加で利用可能なGPUが存在する場合、当該GPUを学習に割り当てることで、バッチサイズの増加を制御する、
前記(12)~(15)のいずれかに記載の情報処理装置。
(17)
前記バッチサイズ変更部は、追加で利用可能なGPUが存在せず、かつ現在利用中のGPUのメモリに空き容量が存在する場合、現在利用中のGPU中のモデルを作り直すことで、バッチサイズを増加を制御する、
前記(12)~(16)のいずれかに記載の情報処理装置。
(18)
前記バッチサイズ変更部は、現在利用中のGPUのメモリに空き容量が存在しない場合、学習に係る計算のループ数を増加させることで、バッチサイズの増加を制御する、
前記(12)~(17)のいずれかに記載の情報処理装置。
(19)
前記理想状態とのギャップ値は、トレーニングエラーまたはバリデーションエラーのうち少なくともいずれかを含む、
前記(1)に記載の情報処理装置。
(20)
プロセッサが、ニューラルネットワークを用いた学習を行うこと、
を含み、
前記学習を行うことは、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、
をさらに含む、
情報処理方法。
(1)
ニューラルネットワークを用いた学習を行う学習部、
を備え、
前記学習部は、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更する、
情報処理装置。
(2)
前記理想状態とのギャップ値は、少なくとも損失を含む、
前記(1)に記載の情報処理装置。
(3)
前記学習部は、前記損失に基づいて学習の収束が推定される場合、学習中にバッチサイズの値を増加させる、
前記(2)に記載の情報処理装置。
(4)
前記学習部は、前記損失のn回微分値に基づいて、学習中にバッチサイズの値を増加させる、
前記(3)に記載の情報処理装置。
(5)
前記学習部は、前記損失の値または前記損失の傾きの少なくともいずれかが閾値を下回ることに基づいて、学習中にバッチサイズの値を増加させる、
前記(4)に記載の情報処理装置。
(6)
前記学習部は、前記損失に基づいて学習の発散が推定される場合、学習中にバッチサイズの値を減少させる、
前記(2)~(5)のいずれかに記載の情報処理装置。
(7)
前記学習部は、エポックに基づいて、バッチサイズの値を動的に変更する、
前記(1)~(6)のいずれかに記載の情報処理装置。
(8)
前記学習部は、エポックの経過に伴いバッチサイズの値を増加させる、
前記(7)に記載の情報処理装置。
(9)
前記学習部は、前記理想状態とのギャップ値から学習の発散が推定される場合、過去のエポックにおけるネットワークモデルを再読み込みする、
前記(8)に記載の情報処理装置。
(10)
前記学習部は、前記過去のエポックにおけるネットワークモデルの再読み込みを行った場合、前記過去のエポックで設定した値よりも小さいバッチサイズの値を設定する、
前記(9)に記載の情報処理装置。
(11)
前記学習部は、エポックごとにバッチサイズの値を増加させる、
前記(7)に記載の情報処理装置。
(12)
前記学習部が設定した値に基づいて、バッチサイズの増減を制御するバッチサイズ変更部、
をさらに備える、
前記(1)~(11)のいずれかに記載の情報処理装置。
(13)
前記バッチサイズ変更部は、GPU中のモデルを作り直すことによりバッチサイズの増減を制御する、
前記(12)に記載の情報処理装置。
(14)
前記バッチサイズ変更部は、学習に係る計算のループ数を増減させることによりバッチサイズの増減を制御する、
前記(12)または(13)に記載の情報処理装置。
(15)
前記バッチサイズ変更部は、学習に用いられるGPUの数を増減させることによりバッチサイズの増減を制御する、
前記(12)~(14)のいずれかに記載の情報処理装置。
(16)
前記バッチサイズ変更部は、追加で利用可能なGPUが存在する場合、当該GPUを学習に割り当てることで、バッチサイズの増加を制御する、
前記(12)~(15)のいずれかに記載の情報処理装置。
(17)
前記バッチサイズ変更部は、追加で利用可能なGPUが存在せず、かつ現在利用中のGPUのメモリに空き容量が存在する場合、現在利用中のGPU中のモデルを作り直すことで、バッチサイズを増加を制御する、
前記(12)~(16)のいずれかに記載の情報処理装置。
(18)
前記バッチサイズ変更部は、現在利用中のGPUのメモリに空き容量が存在しない場合、学習に係る計算のループ数を増加させることで、バッチサイズの増加を制御する、
前記(12)~(17)のいずれかに記載の情報処理装置。
(19)
前記理想状態とのギャップ値は、トレーニングエラーまたはバリデーションエラーのうち少なくともいずれかを含む、
前記(1)に記載の情報処理装置。
(20)
プロセッサが、ニューラルネットワークを用いた学習を行うこと、
を含み、
前記学習を行うことは、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、
をさらに含む、
情報処理方法。
10 情報処理装置
110 入出力制御部
120 学習部
130 微分計算部
140 バッチサイズ変更部
110 入出力制御部
120 学習部
130 微分計算部
140 バッチサイズ変更部
Claims (20)
- ニューラルネットワークを用いた学習を行う学習部、
を備え、
前記学習部は、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更する、
情報処理装置。 - 前記理想状態とのギャップ値は、少なくとも損失を含む、
請求項1に記載の情報処理装置。 - 前記学習部は、前記損失に基づいて学習の収束が推定される場合、学習中にバッチサイズの値を増加させる、
請求項2に記載の情報処理装置。 - 前記学習部は、前記損失のn回微分値に基づいて、学習中にバッチサイズの値を増加させる、
請求項3に記載の情報処理装置。 - 前記学習部は、前記損失の値または前記損失の傾きの少なくともいずれかが閾値を下回ることに基づいて、学習中にバッチサイズの値を増加させる、
請求項4に記載の情報処理装置。 - 前記学習部は、前記損失に基づいて学習の発散が推定される場合、学習中にバッチサイズの値を減少させる、
請求項2に記載の情報処理装置。 - 前記学習部は、エポックに基づいて、バッチサイズの値を動的に変更する、
請求項1に記載の情報処理装置。 - 前記学習部は、エポックの経過に伴いバッチサイズの値を増加させる、
請求項7に記載の情報処理装置。 - 前記学習部は、前記理想状態とのギャップ値から学習の発散が推定される場合、過去のエポックにおけるネットワークモデルを再読み込みする、
請求項8に記載の情報処理装置。 - 前記学習部は、前記過去のエポックにおけるネットワークモデルの再読み込みを行った場合、前記過去のエポックで設定した値よりも小さいバッチサイズの値を設定する、
請求項9に記載の情報処理装置。 - 前記学習部は、エポックごとにバッチサイズの値を増加させる、
請求項7に記載の情報処理装置。 - 前記学習部が設定した値に基づいて、バッチサイズの増減を制御するバッチサイズ変更部、
をさらに備える、
請求項1に記載の情報処理装置。 - 前記バッチサイズ変更部は、GPU中のモデルを作り直すことによりバッチサイズの増減を制御する、
請求項12に記載の情報処理装置。 - 前記バッチサイズ変更部は、学習に係る計算のループ数を増減させることによりバッチサイズの増減を制御する、
請求項12に記載の情報処理装置。 - 前記バッチサイズ変更部は、学習に用いられるGPUの数を増減させることによりバッチサイズの増減を制御する、
請求項12に記載の情報処理装置。 - 前記バッチサイズ変更部は、追加で利用可能なGPUが存在する場合、当該GPUを学習に割り当てることで、バッチサイズの増加を制御する、
請求項12に記載の情報処理装置。 - 前記バッチサイズ変更部は、追加で利用可能なGPUが存在せず、かつ現在利用中のGPUのメモリに空き容量が存在する場合、現在利用中のGPU中のモデルを作り直すことで、バッチサイズを増加を制御する、
請求項12に記載の情報処理装置。 - 前記バッチサイズ変更部は、現在利用中のGPUのメモリに空き容量が存在しない場合、学習に係る計算のループ数を増加させることで、バッチサイズの増加を制御する、
請求項12に記載の情報処理装置。 - 前記理想状態とのギャップ値は、トレーニングエラーまたはバリデーションエラーのうち少なくともいずれかを含む、
請求項1に記載の情報処理装置。 - プロセッサが、ニューラルネットワークを用いた学習を行うこと、
を含み、
前記学習を行うことは、前記ニューラルネットワークが出力する学習に係る理想状態とのギャップ値に基づいて、学習中にバッチサイズの値を動的に変更すること、
をさらに含む、
情報処理方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/761,263 US10922612B2 (en) | 2018-09-11 | 2018-11-21 | Information processing apparatus and information processing method |
| CN201880071369.8A CN111295677A (zh) | 2018-09-11 | 2018-11-21 | 信息处理设备和信息处理方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018169979A JP6471825B1 (ja) | 2018-09-11 | 2018-09-11 | 情報処理装置および情報処理方法 |
| JP2018-169979 | 2018-09-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020054083A1 true WO2020054083A1 (ja) | 2020-03-19 |
Family
ID=65442963
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2018/042950 Ceased WO2020054083A1 (ja) | 2018-09-11 | 2018-11-21 | 情報処理装置および情報処理方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10922612B2 (ja) |
| JP (1) | JP6471825B1 (ja) |
| CN (1) | CN111295677A (ja) |
| WO (1) | WO2020054083A1 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102064882B1 (ko) | 2019-07-12 | 2020-01-10 | (주)웨이브웨어 | 그래픽 처리 장치의 자원 관리가 가능한 딥러닝 플랫폼 및 이를 이용한 그래픽 처리 장치의 자원 관리 방법 |
| KR102494945B1 (ko) * | 2020-05-15 | 2023-02-01 | 한국항공대학교산학협력단 | 멀티 gpu를 이용한 딥러닝 모델 학습 시의 최적 스플릿 크기 결정 장치 및 방법과 이를 이용한 딥러닝 모델 학습 방법 |
| CA3166581A1 (en) * | 2020-05-22 | 2021-11-25 | Parisa Darvish Zadeh Varcheie | Method and system for training inspection equipment for automatic defect classification |
| KR102758486B1 (ko) * | 2020-12-08 | 2025-01-22 | 한국전자통신연구원 | 인공신경망 가속기를 위한 배치 크기 최적화 방법 및 장치 |
| US12175587B2 (en) * | 2021-03-29 | 2024-12-24 | Samsung Electronics Co., Ltd. | Apparatus and method with graphics processing |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03223933A (ja) * | 1989-12-18 | 1991-10-02 | Hitachi Ltd | 情報処理システム |
| JP2001056802A (ja) * | 1999-08-19 | 2001-02-27 | Oki Electric Ind Co Ltd | ニューラルネットワークの学習方法 |
| US20180144261A1 (en) * | 2016-11-18 | 2018-05-24 | NantOmics, LLC. | Methods and systems for predicting dna accessibility in the pan-cancer genome |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018231708A2 (en) * | 2017-06-12 | 2018-12-20 | D5Ai Llc | Robust anti-adversarial machine learning |
| US11003992B2 (en) * | 2017-10-16 | 2021-05-11 | Facebook, Inc. | Distributed training and prediction using elastic resources |
| US10720151B2 (en) * | 2018-07-27 | 2020-07-21 | Deepgram, Inc. | End-to-end neural networks for speech recognition and classification |
-
2018
- 2018-09-11 JP JP2018169979A patent/JP6471825B1/ja active Active
- 2018-11-21 WO PCT/JP2018/042950 patent/WO2020054083A1/ja not_active Ceased
- 2018-11-21 US US16/761,263 patent/US10922612B2/en active Active
- 2018-11-21 CN CN201880071369.8A patent/CN111295677A/zh active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03223933A (ja) * | 1989-12-18 | 1991-10-02 | Hitachi Ltd | 情報処理システム |
| JP2001056802A (ja) * | 1999-08-19 | 2001-02-27 | Oki Electric Ind Co Ltd | ニューラルネットワークの学習方法 |
| US20180144261A1 (en) * | 2016-11-18 | 2018-05-24 | NantOmics, LLC. | Methods and systems for predicting dna accessibility in the pan-cancer genome |
Non-Patent Citations (2)
| Title |
|---|
| NINOMIYA HIROSHI: "Improved online quasi-Newton method for training of neural networks", IEICE TECHNICAL REPORT; NLP, vol. 109, no. 269 (NLP2009-115), 4 November 2009 (2009-11-04), pages 187 - 192, XP009520355, ISSN: 0913-5685 * |
| SAMUEL L. SMITH: "three other persons", DON'T DECAY THE LEARNING RATE, INCREASE THE BATCH SIZE, 1 November 2017 (2017-11-01), Retrieved from the Internet <URL:https://arxiv.org/pdf/1711.00489.pdf> |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6471825B1 (ja) | 2019-02-20 |
| US20200372343A1 (en) | 2020-11-26 |
| JP2020042591A (ja) | 2020-03-19 |
| US10922612B2 (en) | 2021-02-16 |
| CN111295677A (zh) | 2020-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2020054083A1 (ja) | 情報処理装置および情報処理方法 | |
| KR102648232B1 (ko) | 다중 모드 사전 훈련 모델 취득 방법, 장치, 전자 기기 및 기록 매체 | |
| CN111869220B (zh) | 电子装置及其控制方法 | |
| CN116705018B (zh) | 语音控制方法、装置、电子设备与可读存储介质 | |
| KR20200013162A (ko) | 전자 장치 및 그의 제어 방법 | |
| CN111105375A (zh) | 图像生成方法及其模型训练方法、装置及电子设备 | |
| JP7287388B2 (ja) | 情報処理装置および情報処理方法 | |
| CN111177453A (zh) | 控制音频播放的方法、装置、设备及计算机可读存储介质 | |
| EP3926958A1 (en) | Method and apparatus for optimizing video playback start, device and storage medium | |
| US12530865B2 (en) | Information processing device and program | |
| JP2020042753A (ja) | 情報処理装置および情報処理方法 | |
| KR102689642B1 (ko) | 확산 모델과 암시적 신경망 기반의 임의의 해상도와 스케일의 이미지를 생성하는 방법 및 이를 위한 장치 | |
| JP2022101679A (ja) | 交通信号機の制御信号生成方法、装置、電子機器、記憶媒体及びコンピュータプログラム | |
| WO2022001027A1 (zh) | 网络教学中投屏画面自适应的方法以及装置 | |
| US11184670B2 (en) | Display apparatus and control method thereof | |
| WO2025081964A1 (zh) | 音频修复方法、装置、存储介质及电子设备 | |
| CN119399509A (zh) | 预训练模型的高效微调方法、装置、服务器及存储介质 | |
| CN114153542A (zh) | 投屏方法、装置、电子设备及计算机可读存储介质 | |
| CN118175386A (zh) | 基于混合控制适配器网络的关键帧生成方法、设备及介质 | |
| CN116866661A (zh) | 一种视频预渲染方法、装置、设备及存储介质 | |
| CN117830478A (zh) | 数字人视频生成方法、装置、设备及介质 | |
| KR20230102506A (ko) | 전자 장치 및 이의 제어 방법 | |
| CN117934323B (zh) | 图像生成方法、装置、电子设备及存储介质 | |
| CN113391848A (zh) | 应用程序智能适配方法、装置、设备、介质 | |
| CN116228897B (zh) | 图像处理方法、图像处理模型和训练方法 |
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: 18933692 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18933692 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |