WO2021038793A1 - 学習システム、学習方法、及びプログラム - Google Patents
学習システム、学習方法、及びプログラム Download PDFInfo
- Publication number
- WO2021038793A1 WO2021038793A1 PCT/JP2019/033910 JP2019033910W WO2021038793A1 WO 2021038793 A1 WO2021038793 A1 WO 2021038793A1 JP 2019033910 W JP2019033910 W JP 2019033910W WO 2021038793 A1 WO2021038793 A1 WO 2021038793A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- learning
- layers
- model
- quantized
- learning model
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Definitions
- the present invention relates to a learning system, a learning method, and a program.
- Patent Document 1 describes a learning system that repeats a learning process a number of times called an epoch number based on teacher data.
- the present invention has been made in view of the above problems, and an object of the present invention is to provide a learning system, a learning method, and a program capable of reducing the data size of a learning model while suppressing a decrease in the accuracy of the learning model. Is to provide.
- the learning system includes a learning means for acquiring teacher data to be trained by the learning model and a learning means for repeatedly executing the learning process of the learning model based on the teacher data.
- the learning means quantizes the parameters of a part of the layers of the learning model to execute the learning process, and then quantizes the parameters of the other layers of the learning model to execute the learning process. , Characterized by.
- the learning method includes an acquisition step of acquiring teacher data to be trained by the learning model and a learning step of repeatedly executing the learning process of the learning model based on the teacher data. , The learning process is executed by quantizing the parameters of a part of the layers of the learning model, and then the parameters of the other layers of the learning model are quantized to execute the learning process. ..
- the program according to the present invention is a program for operating a computer as an acquisition means for acquiring teacher data to be trained by a learning model and a learning means for repeatedly executing a learning process of the learning model based on the teacher data. Then, the learning means quantizes the parameters of a part of the layers of the learning model and executes the learning process, and then quantizes the parameters of the other layers of the learning model and executes the learning process.
- the learning means repeatedly executes the learning process until the parameters of all layers of the learning model are quantized.
- the learning means is characterized in that the layers of the learning model are quantized one by one.
- the learning means is characterized in that layers to be quantized are selected one after another in a predetermined order from the learning model.
- the learning means is characterized in that layers to be quantized are randomly selected one after another from the learning model.
- the learning means quantizes the parameters of the part of the layers and repeats the learning process a predetermined number of times, and then quantizes the parameters of the other layers to determine the learning process. It is characterized by repeating it many times.
- the learning means selects layers to be quantized one after another based on each of a plurality of sequences to create a plurality of the learning models, and the learning system prepares each learning. It further comprises a selection means for selecting at least one of the plurality of learning models based on the accuracy of the model.
- the learning system further includes another model learning means that executes learning processing of another learning model based on the order corresponding to the learning model selected by the selection means. It is characterized by.
- the parameters of each layer include a weighting coefficient
- the learning means quantizes the weighting coefficient of the part of the layers and executes the learning process, and then the learning process is performed. It is characterized in that the learning process is executed by quantizing the weighting coefficients of other layers.
- the learning means binarizes the parameters of a part of the layers of the learning model, executes the learning process, and then binarizes the parameters of the other layers of the learning model.
- the learning process is executed.
- the data size of the learning model can be reduced while suppressing the decrease in the accuracy of the learning model.
- FIG. 1 is a diagram showing the overall configuration of the learning system.
- the learning system S includes a learning device 10.
- the learning system S may include a plurality of computers capable of communicating with each other.
- the learning device 10 is a computer that executes the process described in this embodiment.
- the learning device 10 is a personal computer, a server computer, a personal digital assistant (including a tablet computer), a mobile phone (including a smartphone), or the like.
- the learning device 10 includes a control unit 11, a storage unit 12, a communication unit 13, an operation unit 14, and a display unit 15.
- the control unit 11 includes at least one processor.
- the control unit 11 executes processing according to the programs and data stored in the storage unit 12.
- the storage unit 12 includes a main storage unit and an auxiliary storage unit.
- the main storage unit is a volatile memory such as RAM
- the auxiliary storage unit is a non-volatile memory such as ROM, EEPROM, flash memory, or hard disk.
- the communication unit 13 is a communication interface for wired communication or wireless communication, and performs data communication via a network such as the Internet.
- the operation unit 14 is an input device, for example, a pointing device such as a touch panel or a mouse, a keyboard, a button, or the like.
- the operation unit 14 transmits the operation content by the user to the control unit 11.
- the display unit 15 is, for example, a liquid crystal display unit, an organic EL display unit, or the like.
- the display unit 15 displays an image according to the instructions of the control unit 11.
- the program and data described as being stored in the storage unit 12 may be supplied via the network.
- the hardware configuration of each computer described above is not limited to the above example, and various hardware can be applied. For example, even if a reading unit for reading a computer-readable information storage medium (for example, an optical disk drive or a memory card slot) or an input / output unit for inputting / outputting data to / from an external device (for example, a USB port) is included. Good.
- the program or data stored in the information storage medium may be supplied to each computer via the reading unit or the input / output unit.
- the learning system S of the present embodiment executes the learning process of the learning model based on the teacher data.
- Teacher data is data to be trained by the learning model.
- Teacher data is sometimes referred to as learning data or training data.
- teacher data is a pair of input (question) to the learning model and output (answer) of the learning model.
- the teacher data is data in which the data in the same format as the input data input to the learning model and the label indicating the classification of the input data are paired.
- the teacher data is a pair of the image or video and a label indicating the classification of the object (subject or object drawn by CG) shown in the image or video. This is the data.
- the teacher data is data in which the text or the document and a label indicating the classification of the described contents are paired.
- the input data is voice
- the data is a pair of voice and a label indicating the content of voice or the classification of the speaker.
- a collection of a plurality of teacher data is described as a teacher data set, and each one included in the teacher data set.
- One data is described as teacher data.
- the part described as teacher data in the present embodiment means the pair described above, and the teacher data set means a group of pairs.
- the learning model is a supervised learning model.
- the learning model can perform arbitrary processing, for example, image recognition, character recognition, voice recognition, human behavior pattern recognition, or recognition of natural phenomena.
- Various known methods can be applied to machine learning itself, and for example, DNN (Deep Neural Network), CNN (Convolutional Neural Network), ResNet (Residual Network), or RNN (Recurrent Neural Network) can be used. ..
- the learning model includes multiple layers, and parameters are set for each layer.
- the layer may include layers called Affine, ReLU, Sigmoid, Tanh, or Softmax.
- the number of layers included in the learning model may be arbitrary, for example, it may be about several, or it may be 10 or more. Further, a plurality of parameters may be set in each layer.
- the learning process is a process of training the teacher data in the learning model.
- the learning process is the process of adjusting the parameters of the learning model so that the relationship between the input and output of the teacher data can be obtained.
- a process used in known machine learning can be applied, and for example, a learning process of DNN, CNN, ResNet, or RNN can be used.
- the learning process is executed by a predetermined learning algorithm (learning program).
- the processing of the learning system S will be described by taking DNN for image recognition as an example as a learning model.
- the training model calculates the feature amount of the image and outputs a label indicating the type of the object in the image based on the feature amount.
- the teacher data trained by such a learning model is a pair of an image and the label of the object shown in the image.
- FIG. 2 is a diagram showing a learning method of a general learning model.
- the learning model includes a plurality of layers, and parameters are set for each layer.
- the number of layers of the learning model is L (L: natural number).
- the L layers are arranged in a predetermined order.
- i-th the parameters of the layer of (i is a natural number of 1 ⁇ L) to as p i.
- the parameters p i of each layer includes a weight coefficient w i and the bias b i.
- the learning process is repeated as many times as the number of epochs based on the same teacher data.
- the number of epochs N an (N is a natural number)
- the weight coefficient w i of each layer is adjusted.
- the first learning processing the weighting coefficient w i of the initial values of each layer is adjusted.
- the weighting coefficient adjusted by the first learning process is described as wi 1.
- the second learning process is executed.
- the second learning processing the weighting factor w i 1 for each layer is adjusted.
- the weighting coefficient adjusted by the first learning process is referred to as wi 2 .
- the learning process is repeated N times in the same manner.
- the weighting coefficient adjusted by the Nth learning process is referred to as wi N.
- w i N is a weighting coefficient w i finally set in the learning model.
- the learning system S by quantizing the weighting coefficients w i, so that to reduce the data size.
- the weight coefficient w i in general by binarizing the weight coefficient w i being represented by a floating point number, a case where compressing the information amount of the weight coefficient w i, to reduce the data size of the learning model example It will be explained by listing in.
- the weight coefficient w i is a diagram showing an example of a learning process to be quantized.
- Q (x) shown in FIG. 3 is a function that quantizes the variable x. For example, when “x ⁇ 0”, it becomes “-1”, and when “x> 0”, it becomes “1”.
- the quantization is not limited to binarization, and two or more stages of quantization may be performed.
- Q (x) may be a function that performs three-step quantization of "-1", "0", and “1”, or "-2 n " to "2 n " (n: natural number). ) May be a function that quantizes. Any number of quantization steps and thresholds can be adopted.
- the first learning processing the weighting coefficient w i of the initial values of each layer are quantized are adjusted.
- the weighting coefficients are adjusted by the first learning processing is described as Q (w i 1).
- the weight coefficient w i of all layers is quantized, "- 1" or will be represented by "1".
- the second learning process is executed.
- the second learning processing quantized weighting factors Q (w i 2) is obtained.
- the learning process is repeated N times in the same manner.
- the weighting coefficients quantized by the N-th learning process referred to as Q (w i N).
- Q (w i N) is a weight coefficient w i to be finally set to the learning model.
- the learning system S of the present embodiment is designed to suppress a decrease in the accuracy of the learning model by quantizing the layers one by one.
- FIG. 4 is a diagram showing an example of a learning process in which layers are quantized one by one.
- the first learning process only the weighting coefficient w1 of the first layer is quantized and the learning process is executed. Therefore, the weighting coefficient w 2 ⁇ w L of the second and subsequent layers will remain floating point without being quantized. Therefore, by the first learning process, the weighting coefficient of the first layer becomes Q (w 1 1 ), and the weighting coefficient of the second and subsequent layers becomes w 2 1 to w L 1 .
- the second learning process is executed.
- the weighting coefficient w1 of the first layer is quantized. Therefore, by the second learning process, the weighting coefficient of the first layer becomes Q (w 1 2 ), and the weighting coefficient of the second and subsequent layers becomes w 2 2 to w L 2 .
- the learning process in which only the weighting coefficient w 1 of the first layer is quantized is repeated K times (K: natural number).
- K natural number
- the K + 1-th learning process is executed, and the weighting coefficient w 2 of the second layer is quantized. Since the weighting coefficient w 1 of the first layer has already been quantized, it is continuously quantized in the learning process after the K + 1th time. On the other hand, the weighting coefficient w 3 ⁇ w L of third and subsequent layers will remain floating point without being quantized. Therefore, by the K + 1th learning process, the weighting coefficients of the first and second layers are Q (w 1 K + 1 ) and Q (w 2 K + 1 ), respectively, and the weighting coefficients of the third and subsequent layers are w 3 K + 1. ⁇ W L K + 1 .
- the K + 2nd learning process is executed.
- K + also in the second learning processing, only the first weight factor for the second layer w 1, w 2 is quantized. Therefore, by the K + second learning process, the weighting coefficients of the first and second layers become Q (w 1 K + 2 ) and Q (w 2 K + 2 ), respectively, and the weighting coefficients of the third and subsequent layers become w 3 K + 2. ⁇ W L K + 2 . Thereafter, the first and learning process of quantizing only weighting coefficients w 1, w 2 of the second layer is repeated K times.
- the third and subsequent layers are quantized one by one in order, and the learning process is executed.
- a number of layers L since the number of individual epoch is K times, the total number of the learning process becomes LK times, eventually the weight coefficient w i of all layers are quantized.
- Weighting factor for each layer that is quantized by LK-time learning process Q (w i LK) is a weighting factor to be finally set to the learning model.
- quantization is performed in the forward direction (ascending order) of the layer arrangement order from the first layer to the Lth layer, but the quantization of each layer is arbitrary. It may be done in order. For example, quantization may be performed in the reverse direction (descending order) of the layer arrangement order from the Lth layer to the first layer.
- FIG. 5 is a diagram showing an example of a learning process in which quantization is performed in order from the last layer.
- the weighting coefficient w L of the Lth layer is quantized and the learning process is executed. Therefore, the weighting coefficients w1 to w L-1 of the 1st to L-1st layers are not quantized and remain as floating point numbers.
- the weighting coefficient of the Lth layer becomes Q (w L 1 )
- the weighting coefficient of the 1st to L-1st layers becomes w 1 1 to w L-1 1 .
- the second learning process is executed. Also in the second learning process, only the weighting coefficient w L of the Lth layer is quantized. Therefore, by the second learning processing, the weighting factor of the L-th weighting coefficients of the layer Q (w L 2), and the first ⁇ L-1 th layer becomes w 1 2 ⁇ w L-1 2 .. After that, the learning process in which only the weighting coefficient w L of the Lth layer is quantized is repeated K times (K: natural number). By K-th of the learning process, the weighting factor of the L-th layer Q (w L K), and the weighting factor of the first ⁇ L-1 th layer becomes w 1 K ⁇ w L-1 K.
- the K + 1-th learning process is executed, and the weighting coefficient w L-1 of the L-1st layer is quantized. Since the weighting coefficient w L of the Lth layer has already been quantized, it is continuously quantized in the learning process after the K + 1th time. On the other hand, the weighting coefficients w1 to w L-2 of the 1st to L-2nd layers are not quantized and remain as floating point numbers. Therefore, by the K + 1th learning process, the weighting coefficients of the L-1st and Lth layers become Q (w L-1 K + 1 ) and Q (w L K + 1 ), respectively, and are the 1st to L-2nd layers. The weighting coefficients of the layers are w 1 K + 1 to w L-2 K + 1 .
- the K + 2nd learning process is executed.
- the K + second learning process only the weighting coefficients w L-1 and w L of the L-1st and Lth layers are quantized. Therefore, by the K + 2nd learning process, the weighting coefficients of the L-1st and Lth layers become Q (w L-1 K + 2 ) and Q (w L K + 2 ), respectively, and are the 1st to L-2nd layers.
- the weighting coefficients of the layers are w 1 K + 2 to w L-2 K + 2 .
- the learning process in which only the weighting coefficients w L-1 and w L of the L-1st and Lth layers are quantized is repeated K times.
- the weighting coefficients of the L-1st and Lth layers become Q (w L- 12K ) and Q (w L 2K ), respectively, and the weights of the 1st to L-2nd layers are obtained.
- coefficient is w 1 2K ⁇ w L-2 2K.
- the learning process is executed by being quantized one by one in the reverse direction of the layer arrangement order.
- the quantization may be performed in the reverse direction instead of the forward direction of the layer arrangement order.
- the quantization may be performed in an order other than the forward direction or the reverse direction of the layer arrangement order.
- the quantization may be performed in the order of "1st layer-> 5th layer-> 3rd layer-> 2nd layer ##.
- FIG. 6 is a diagram showing the accuracy of the learning model.
- the error rate (incorrect answer rate) for the teacher data is used as the accuracy will be described.
- (1) does not quantize the weighting coefficients w i learning model (learning model of FIG. 2), (2) all layers of the quantized learning model at a time (the learning model in FIG. 3), (3) Forward Layer Four learning models are shown: a learning model quantized one by one (learning model in FIG. 4) and a learning model quantized one by one in the opposite direction of the layer (4). ..
- the learning model (1) since the weight coefficient w i not in quantization is shown in detail, most accurate. However, as described above, the learning model (1), it is necessary to express the weight coefficient w i a float or the like, has the largest data size. On the other hand, the learning model (2) is the data size becomes small since the quantized weighting coefficients w i, accuracy is the lowest since all layers are quantized at once.
- the learning model of (4) has higher accuracy than the learning model of (3), but the learning of (3) depends on the contents of the teacher data and the number of layers.
- the model may be more accurate than the learning model of (4).
- a learning model that quantizes in another order may be more accurate than a learning model that quantizes in the forward or reverse direction.
- the learning model that quantizes one by one is more accurate than the learning model of (2) that quantizes all layers at once.
- the learning system S of the present embodiment does not quantize all the layers at once, but quantizes the layers one by one and executes the learning process, thereby reducing the accuracy of the learning model. I try to reduce the data size of the learning model while keeping it to a minimum.
- the details of the learning system S will be described. In the following description, the symbols of the parameters and the weighting factors are omitted when it is not necessary to refer to the drawings.
- FIG. 7 is a functional block diagram showing an example of the functions realized by the learning system S. As shown in FIG. 7, in the learning system S, the data storage unit 100, the acquisition unit 101, and the learning unit 102 are realized. In the present embodiment, a case where each of these functions is realized by the learning device 10 will be described.
- the data storage unit 100 is mainly realized by the storage unit 12.
- the data storage unit 100 stores data necessary for executing the process described in this embodiment.
- the teacher data set DS and the learning model M will be described as an example of the data stored by the data storage unit 100.
- FIG. 8 is a diagram showing a data storage example of the teacher data set DS.
- the teacher data set DS stores a plurality of teacher data which are pairs of input data and labels.
- the teacher data set DS is shown in a table format, and each record corresponds to the teacher data.
- the label is indicated by characters such as "dog" and "cat” in FIG. 8, it may be indicated by a symbol or a numerical value for identifying these.
- the input data corresponds to the question for the learning model M, and the label corresponds to the answer.
- the data storage unit 100 stores the program (algorithm) and parameters of the learning model M.
- the learning model M that has been learned (parameters have been adjusted) by the teacher data set DS is stored in the data storage unit 100 will be described, but the learning model M before learning (before parameter adjustment) is stored in the data. It may be stored in the part 100.
- the reference numerals of the learning model M will be omitted.
- the data stored in the data storage unit 100 is not limited to the above example.
- the data storage unit 100 may store an algorithm (program) for learning processing.
- the data storage unit 100 may store setting information such as the order of layers to be quantized and the number of epochs.
- the acquisition unit 101 is mainly realized by the control unit 11.
- the acquisition unit 101 acquires teacher data to be trained by the learning model.
- the acquisition unit 101 acquires at least one teacher data from the teacher data set DS stored in the data storage unit 100. ..
- the acquisition unit 101 may acquire an arbitrary number of teacher data, and may acquire all or a part of the teacher data set DS.
- the acquisition unit 101 may acquire about ten to several tens of teacher data, or may acquire one hundred to several thousand or more teacher data.
- the teacher data set DS is recorded on a computer or information storage medium other than the learning device 10
- the acquisition unit 101 may acquire the teacher data from the other computer or information storage medium.
- the learning unit 102 is mainly realized by the control unit 11.
- the learning unit 102 repeatedly executes the learning process of the learning model based on the teacher data acquired by the acquisition unit 101.
- a known method can be applied to the learning process itself, and in the present embodiment, the learning model of DNN is given as an example. Therefore, the learning unit 102 is based on the learning algorithm used in DNN. Then, the learning process may be repeatedly executed.
- the learning unit 102 adjusts the parameters of the learning model so that the relationship between the input and the output indicated by the teacher data can be obtained.
- the number of repetitions (number of epochs) of the learning process may be a predetermined number of times, for example, it may be about several times to 100 times, or more. It is assumed that the number of repetitions is recorded in the data storage unit 100. The number of repetitions may be a fixed value or may be changed by a user operation.
- the learning unit 102 repeats the learning process as many times as the number of repetitions based on the same teacher data.
- different teacher data may be used in each learning process. For example, in the second learning process, teacher data that was not used in the first learning process may be used.
- the learning unit 102 quantizes the parameters of a part of the layers of the learning model and executes the learning process, and then quantizes the parameters of the other layers of the learning model and executes the learning process. That is, the learning unit 102 does not execute the learning process by quantizing the parameters of all layers at once, but quantizes only the parameters of some layers and does not quantize the parameters of other layers. Execute the learning process.
- the case where the non-quantized parameter is adjusted will be described, but the non-quantized parameter may be excluded from the adjustment target.
- the learning unit 102 quantizes the parameters of the other layers that have not been quantized and executes the learning process.
- the quantized parameter is also adjusted will be described, but the quantized parameter may be excluded from the target of the subsequent adjustment.
- Some layers are one or more and less than L layers selected as the target of quantization.
- the layers are quantized one by one, the case where some layers are one will be described, but some layers may be plural. It suffices that all L layers are not quantized at once. For example, two layers may be quantized or three layers may be quantized at one time. Alternatively, the number of layers to be quantized may change, for example, one layer is quantized and then a plurality of other layers are quantized.
- the other layers are layers other than some of the layers of the learning model.
- the other layers may mean all layers other than some layers, or may mean some of the layers other than some layers.
- the layers are gradually quantized, and finally all the layers are quantized. Therefore, the learning unit 102 repeats the learning process until the parameters of all the layers of the learning model are quantized. Execute. For example, the learning unit 102 selects a layer to be quantized from the layers that have not been quantized yet, quantizes the parameters of the selected layer, and executes the learning process. The learning unit 102 repeats the selection of the layer to be quantized and the execution of the learning process until all the layers are finally quantized. The learning unit 102 ends the learning process when the parameters of all the layers are quantized, and determines the parameters of the learning model.
- the fixed parameters are quantized values, not floating point numbers.
- the learning unit 102 quantizes the layers of the learning model one by one.
- the learning unit 102 selects any one layer from the layers that have not been quantized yet, quantizes the parameters of the selected layer, and executes the learning process.
- the learning unit 102 selects layers to be quantized one by one, and gradually quantizes L layers.
- the order of quantization may be defined in the learning algorithm.
- the order of quantization is stored in the data storage unit 100 as a setting of a learning algorithm that sequentially selects layers to be quantized from the learning model in a predetermined order.
- the learning unit 102 repeats the selection of the layer to be quantized and the execution of the learning process based on a predetermined order.
- the learning unit 102 when the first layer to the Lth layer are quantized in the forward direction (ascending order of the layers), the learning unit 102 is the first layer as the layer to be quantized. Is selected, and the learning process is executed K times. That is, the learning unit 102, only parameters p 1 of the first layer quantizes the parameters p 2 ⁇ p L of the second and subsequent layers without quantization, run the K times of the learning process. Next, the learning unit 102 selects the second layer as the layer to be quantized, and executes the learning process K times.
- the learning unit 102 includes a first layer which has already been quantized, and a second layer which is selected this time, the quantized parameter p 3 ⁇ p L of the third and subsequent layers without quantization,
- the learning process is executed K times. After that, the learning unit 102 selects one by one in the forward direction of the layer arrangement order up to the Lth layer, and executes the learning process.
- the learning unit 102 when the L-th layer to the first layer are quantized in the opposite direction (in descending order of the layer arrangement order), the learning unit 102 is the L-th layer to be quantized. A layer is selected and the learning process is executed K times. That is, the learning unit 102 quantizes only the parameters p L of the L-th layer, and does not quantize the parameters p 1 to p L-1 of the first to L-1st layers, and performs K learning processes. To execute. Next, the learning unit 102 selects the L-1st layer as the layer to be quantized, and executes the learning process K times.
- the learning unit 102 quantizes the already quantized L-th layer and the L-1st layer selected this time, and the parameters p1 to pL -of the first to L-2nd layers. 2 executes the learning process K times without quantization. After that, the learning unit 102 selects up to the first layer one by one in the reverse direction of the layer arrangement order, and executes the learning process.
- the order of selecting the layers to be quantized may be any order, and is not limited to the forward direction or the reverse direction of the layer arrangement order. For example, it does not have to be aimed or in descending order, such as "1st layer-> 5th layer-> 3rd layer-> 2nd layer ".
- the layer to be quantized first is not limited to the first layer or the Lth layer, and an intermediate layer such as the third layer may be selected first.
- the layer to be quantized last is not limited to the first layer or the Lth layer, and an intermediate layer such as the third layer may be quantized last.
- the selection order of the layers to be quantized does not have to be predetermined, and the learning unit 102 may randomly select the layers to be quantized one after another from the learning model.
- the learning unit 102 may generate a random number by using a land function or the like, and determine the selection order of the layers to be quantized based on the random number.
- the learning unit 102 selects layers to be quantized one after another based on the selection order determined by the random numbers, and executes the learning process.
- the learning unit 102 may determine the selection order of the L layers at once, or may randomly determine the next layer to be selected each time a certain layer is selected.
- the learning unit 102 quantizes the parameters of some layers and repeats the learning process a predetermined number of times, and then quantizes the parameters of the other layers and repeats the learning process a predetermined number of times.
- these times are K times, which are the same times, but the number of repetitions may be different from each other.
- the first layer is quantized and the learning process is repeated 10 times, and then the second layer is quantized and the learning process is repeated 8 times. The number of repetitions may be different.
- the parameters of each layer include weighting coefficients
- the learning unit 102 quantizes the weighting coefficients of some layers to execute the learning process, and then determines the weighting coefficients of the other layers. Quantumize and execute the learning process. That is, among the parameters of each layer, the weighting coefficient is the target of quantization.
- the bias is not quantized, but the parameter to be quantized may be the bias. Also, for example, both the weighting factor and the bias may be the targets of quantization. Further, for example, when a parameter other than the weighting coefficient and the bias exists in each layer, the other parameter may be the target of quantization.
- binarization will be described as an example of quantization. Therefore, the learning unit 102 binarizes the parameters of a part of the layers of the learning model to execute the learning process, and then the other layers of the learning model. The learning process is executed by binarizing the parameters of. The learning unit 102 binarizes the parameters by comparing the parameters of each layer with a predetermined threshold value.
- a case where parameters are classified into binary values of -1 or 1 will be described, but binarization may be performed with other values such as 0 or 1. .. That is, in binarization, the parameters may be classified into arbitrary first value and second value.
- FIG. 9 is a flow chart showing an example of processing executed in the learning system S.
- the process shown in FIG. 9 is executed by the control unit 11 operating according to the program stored in the storage unit 12.
- the process described below is an example of the process executed by the functional block shown in FIG. 7.
- the control unit 11 acquires the teacher data included in the teacher data set DS (S1).
- the control unit 11 refers to the teacher data set DS stored in the storage unit 12 and acquires an arbitrary number of teacher data.
- the control unit 11 selects a layer to be quantized from the layers that have not been quantized yet, based on a predetermined order (S2). For example, as shown in FIG. 4, when the quantization is performed in the forward direction of the layer arrangement order, in S2, the control unit 11 first selects the first layer. Further, for example, when quantization is performed in the reverse direction of the layer arrangement order as shown in FIG. 5, in S2, the control unit 11 first selects the Lth layer.
- the control unit 11 quantizes the weighting coefficient of the selected layer based on the teacher data acquired in S1 and executes the learning process (S3). In S3, the control unit 11 adjusts the weighting coefficient of each layer so that the relationship between the input and the output indicated by the teacher data can be obtained. The control unit 11 quantizes the weighting coefficient for the layer selected as the target of quantization.
- the control unit 11 determines whether or not the learning process in which the weighting coefficient of the selected layer is quantized is repeated K times (S4). In S4, the control unit 11 determines whether or not the process of S3 is executed K times after selecting the layer in S2. If it is not determined that the learning process has been repeated K times (S4; N), the process returns to S3 and the learning process is executed again. After that, the process of S3 is repeated until the learning process reaches K times.
- the control unit 11 determines whether or not there is a layer that has not been quantized yet (S5).
- the control unit 11 determines whether or not the learning process of LK times has been executed in total. become.
- the process returns to S2, the next layer is selected, and the processes of S3 and S4 are executed.
- the control unit 11 determines the quantized weighting coefficient of each layer as the final weighting coefficient of the learning model (S6). ), This process ends. In S6, the control unit 11 records the learning model in which the latest quantized weighting coefficient is set in each layer in the storage unit 12, and completes the learning process.
- the parameters of a part of the layers of the learning model are quantized to execute the learning process, and then the parameters of the other layers of the learning model are quantized to execute the learning process.
- the data size of the learning model can be reduced while suppressing the decrease in the accuracy of the learning model. For example, when all the layers of the learning model are quantized at once, the amount of information possessed by the parameters drops at once, so the accuracy of the quantized parameters also drops at once.
- By gradually quantizing the layers of the learning model and gradually reducing the amount of information it is possible to prevent the amount of information from dropping to match, thus preventing the accuracy of the quantized parameters from dropping to match. It is possible to minimize the decrease in the accuracy of the learning model.
- the parameters of some layers of the training model are quantized and the training process is executed, the parameters of the other layers are not quantized and are more accurate than floating point numbers. Since it is expressed, the quantized parameters can be determined to be accurate values and the decrease in the accuracy of the training model can be minimized as compared with the case where the parameters of other layers are also quantized.
- the learning system S quantizes the parameters of all layers and compresses the amount of information by repeatedly executing the learning process until the parameters of all layers of the learning model are quantized, and the data of the learning model.
- the size can be made smaller.
- the learning system S can effectively suppress a decrease in the accuracy of the learning model by quantizing the layers of the learning model one by one and gradually advancing the quantization of each layer. That is, if the quantization of each layer is advanced at once, the accuracy of the learning model may be lowered at once for the reason described above, but by proceeding with the quantization one by one, the accuracy of the learning model is reduced at once. It can be prevented and the decrease in the accuracy of the learning model can be minimized.
- the learning system S can execute the quantization in the order according to the intention of the creator of the learning model by selecting the layers to be quantized one after another from the learning model in a predetermined order. For example, if the creator of the training model has found an order to reduce the loss of accuracy, the layer to be quantized is selected based on the order specified by the creator to minimize the loss of accuracy. It is possible to create a learning model that is limited to.
- the learning system S can execute the learning process without specifying the order in particular by the creator of the learning model by randomly selecting the layers to be quantized from the learning model one after another.
- the learning system S quantizes the parameters of some layers and repeats the learning process a predetermined number of times, and then quantizes the parameters of the other layers and repeats the learning process a predetermined number of times to obtain the quantized parameters. It is possible to set a more accurate value and effectively suppress the deterioration of the accuracy of the learning model.
- the learning system S reduces the accuracy of the learning model by quantizing the weighting coefficients of some layers and executing the learning process, and then quantizing the weighting coefficients of the other layers and executing the learning process.
- the data size of the learning model can be reduced while suppressing it.
- the data size of the learning model can be made smaller by quantizing the weighting coefficient, which tends to have a large amount of information due to floating-point numbers or the like.
- the learning system S binarizes the parameters of a part of the layers of the learning model and executes the learning process, and then binarizes the parameters of the other layers of the learning model and executes the learning process to obtain the data size.
- binarization that is effective for compression, the data size of the training model can be made smaller.
- FIG. 10 is a functional block diagram of a modified example. As shown in FIG. 10, in the modified example described below, in addition to the functions described in the embodiment, the model selection unit 103 and the other model learning unit 104 are realized.
- the accuracy of the learning model may differ depending on the order in which the layers to be quantized are selected. Therefore, if you do not know in which order the quantization will be the most accurate, create multiple training models based on multiple orders, and finally select the relatively accurate learning model. It may be done.
- the learning unit 102 of this modified example selects layers to be quantized one after another based on each of a plurality of orders, and creates a plurality of learning models.
- the plurality of combinations here may be all combinations of permutations of L layers, or may be only some combinations. For example, if the number of layers is about 5, the learning model may be created in the entire order, but if the number of layers is 10 or more, the number of permutation combinations in all the ways increases, so that some of them.
- a learning model may be created only for permutations.
- the plurality of orders may be specified in advance or may be randomly created.
- the learning unit 102 creates a learning model by quantizing layers one after another in the order.
- the method of creating the individual learning model itself is as described in the embodiment.
- the number of sequences and the number of learning models created match. That is, there is a one-to-one correspondence between the order and the learning model. For example, assuming that there are m ways (m: natural numbers of 2 or more) in order, the learning unit 102 creates m learning models.
- the learning system S of this modification includes the model selection unit 103.
- the model selection unit 103 is mainly realized by the control unit 11.
- the model selection unit 103 selects at least one of the plurality of learning models based on the accuracy of each learning model.
- the accuracy of the learning model itself may be evaluated by a known method, and in this modification, the case where the error rate (incorrect answer rate) for the teacher data is used will be described.
- the error rate is the opposite concept to the correct answer rate, and is shown in the output from the learning model and the teacher data when all the teacher data used in the learning process is input to the trained learning model. The rate at which the output (correct answer) did not match. The lower the error rate, the higher the accuracy of the training model.
- the model selection unit selects a learning model with relatively high accuracy from a plurality of learning models.
- the model selection unit may select only one learning model, or may select a plurality of learning models.
- the model selection unit selects the learning model with the highest accuracy from the plurality of learning models.
- the model selection unit may select a learning model having the second or third highest accuracy instead of the learning model having the highest accuracy.
- the model selection unit may select one of a plurality of learning models whose accuracy is equal to or higher than the threshold value.
- a plurality of learning models are created by selecting layers to be quantized one after another based on each of a plurality of orders, and a plurality of learning models are created based on the accuracy of each learning model. By selecting at least one of them, it is possible to effectively suppress a decrease in the accuracy of the learning model.
- the order of the learning models having relatively high accuracy may be diverted to the learning of other learning models.
- the learning system S of this modified example includes another model learning unit 104.
- the other model learning unit 104 is mainly realized by the control unit 11.
- the other model learning unit 104 executes the learning process of the other learning model based on the order corresponding to the learning model selected by the model selection unit 103.
- the order corresponding to the learning model is the selection order of the layers used when creating the learning model.
- the other learning model is a model different from the trained learning model. For other learning models, the same teacher data as the trained learning model may be used, or different teacher data may be used.
- the learning of other learning models should be executed in the same flow as the learned learning model. That is, the other model learning unit 104 repeatedly executes the learning process of the other learning model based on the teacher data.
- the other model learning unit 104 executes the learning process by quantizing the layers of the other learning model one after another in the order corresponding to the learning model selected by the model selection unit 103.
- the individual learning process itself is as described in the learning unit 102 of the embodiment.
- the learning process of another learning model is made more efficient by executing the learning process of another learning model based on the order corresponding to the learning model with relatively high accuracy. Can be done. For example, it is possible to create a highly accurate learning model without having to try a plurality of sequences when creating another learning model. As a result, the processing load of the learning device 10 can be reduced, and a highly accurate learning model can be quickly created.
- the case where the parameters of all layers of the learning model are quantized has been described, but there may be layers in the learning model that are not the targets of quantization. That is, a layer in which parameters are expressed by floating-point numbers or the like and a quantized layer may coexist.
- the case where the layers of the learning model are quantized one by one has been described, but the layers may be quantized one by one. For example, two or three layers of the learning model may be quantized.
- other parameters such as bias may be quantized instead of the weighting factor.
- the quantization is not limited to binarization, and any quantization that can reduce the amount of parameter information (number of bits) may be used.
- the learning system S includes a plurality of computers, and the functions may be shared by each computer.
- the selection unit 101 and the learning unit 102 may be realized by the first computer
- the model selection unit 103 and the other model learning unit 104 may be realized by the second computer.
- the data storage unit 100 may be realized by a database server or the like outside the learning system S.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
学習システム(S)の取得手段(101)は、学習モデルに学習させる教師データを取得する。学習手段(102)は、教師データに基づいて、学習モデルの学習処理を繰り返し実行する。学習手段(102)は、学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、学習モデルの他のレイヤのパラメータを量子化して学習処理を実行する。
Description
本発明は、学習システム、学習方法、及びプログラムに関する。
従来、教師データに基づいて、学習モデルの学習処理を繰り返し実行する技術が知られている。例えば、特許文献1には、教師データに基づいて、エポック数と呼ばれる回数だけ学習処理を繰り返す学習システムが記載されている。
上記のような技術では、学習モデルのレイヤ数が増えると、学習モデル全体のパラメータの数も増えるので、学習モデルのデータサイズが大きくなる。この点、パラメータを量子化して個々のパラメータの情報量を少なくし、データサイズを小さくすることも考えられるが、本発明の発明者が極秘に行った研究によると、全てのパラメータを一度に量子化して学習処理を実行すると、学習モデルの精度が大幅に低下することが発見された。
本発明は上記課題に鑑みてなされたものであって、その目的は、学習モデルの精度の低下を抑えつつ、学習モデルのデータサイズを小さくすることが可能な学習システム、学習方法、及びプログラムを提供することである。
上記課題を解決するために、本発明に係る学習システムは、学習モデルに学習させる教師データを取得する取得手段と、前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習手段と、を含み、前記学習手段は、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する、ことを特徴とする。
本発明に係る学習方法は、学習モデルに学習させる教師データを取得する取得ステップと、前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習ステップと、を含み、前記学習ステップは、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する、を含むことを特徴とする。
本発明に係るプログラムは、学習モデルに学習させる教師データを取得する取得手段、前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習手段、としてコンピュータを機能させるためのプログラムであって、前記学習手段は、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する。
本発明の一態様によれば、前記学習手段は、前記学習モデルの全てのレイヤのパラメータが量子化されるまで、前記学習処理を繰り返し実行する、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、前記学習モデルのレイヤを1つずつ量子化する、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、前記学習モデルの中から、量子化するレイヤを所定の順序で次々と選択する、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、前記学習モデルの中から、量子化するレイヤをランダムに次々と選択する、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、前記一部のレイヤのパラメータを量子化して前記学習処理を所定回数繰り返した後に、前記他のレイヤのパラメータを量子化して前記学習処理を所定回数繰り返す、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、複数通りの順序の各々に基づいて、量子化するレイヤを次々と選択し、複数の前記学習モデルを作成し、前記学習システムは、各学習モデルの精度に基づいて、前記複数の学習モデルのうちの少なくとも1つを選択する選択手段、を更に含むことを特徴とする。
本発明の一態様によれば、前記学習システムは、前記選択手段により選択された学習モデルに対応する順序に基づいて、他の学習モデルの学習処理を実行する他モデル学習手段、を更に含むことを特徴とする。
本発明の一態様によれば、各レイヤのパラメータには、重み係数が含まれており、前記学習手段は、前記一部のレイヤの重み係数を量子化して前記学習処理を実行した後に、前記他のレイヤの重み係数を量子化して前記学習処理を実行する、ことを特徴とする。
本発明の一態様によれば、前記学習手段は、前記学習モデルの一部のレイヤのパラメータを二値化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを二値化して前記学習処理を実行する、ことを特徴とする。
本発明によれば、学習モデルの精度の低下を抑えつつ、学習モデルのデータサイズを小さくすることができる。
[1.学習システムの全体構成]
以下、本発明に係る学習システムの実施形態の例を説明する。図1は、学習システムの全体構成を示す図である。図1に示すように、学習システムSは、学習装置10を含む。なお、学習システムSには、互いに通信可能な複数台のコンピュータが含まれていてもよい。
以下、本発明に係る学習システムの実施形態の例を説明する。図1は、学習システムの全体構成を示す図である。図1に示すように、学習システムSは、学習装置10を含む。なお、学習システムSには、互いに通信可能な複数台のコンピュータが含まれていてもよい。
学習装置10は、本実施形態で説明する処理を実行するコンピュータである。例えば、学習装置10は、パーソナルコンピュータ、サーバコンピュータ、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)等である。学習装置10は、制御部11、記憶部12、通信部13、操作部14、及び表示部15を含む。
制御部11は、少なくとも1つのプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ROM、EEPROM、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、インターネットなどのネットワークを介してデータ通信を行う。
操作部14は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部14は、ユーザによる操作内容を制御部11に伝達する。表示部15は、例えば、液晶表示部又は有機EL表示部等である。表示部15は、制御部11の指示に従って画像を表示する。
なお、記憶部12に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするための入出力部(例えば、USBポート)が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
[2.学習システムの概要]
本実施形態の学習システムSは、教師データに基づいて、学習モデルの学習処理を実行する。
本実施形態の学習システムSは、教師データに基づいて、学習モデルの学習処理を実行する。
教師データは、学習モデルに学習させるデータである。教師データは、学習データ又は訓練データと呼ばれることもある。例えば、教師データは、学習モデルに対する入力(設問)と、学習モデルの出力(回答)と、のペアである。例えば、分類学習器の場合、教師データは、学習モデルに入力される入力データと同じ形式のデータと、入力データの分類を示すラベルと、がペアになったデータである。
例えば、入力データが画像又は動画であれば、教師データは、画像又は動画と、画像又は動画に示されたオブジェクト(被写体又はCGで描かれた物体)の分類を示すラベルと、がペアになったデータである。また例えば、入力データがテキスト又は文書であれば、教師データは、テキスト又は文書と、記述された内容の分類を示すラベルと、がペアになったデータである。また例えば、入力データが音声であれば、音声と、音声の内容又は発話者の分類を示すラベルと、がペアになったデータである。
なお、機械学習では、複数の教師データを利用して学習処理が実行されるので、本実施形態では、複数の教師データの集まりを教師データセットと記載し、教師データセットに含まれる1つ1つのデータを教師データと記載する。本実施形態で教師データと記載した箇所は、上記説明したペアを意味し、教師データセットは、ペアの集まりを意味する。
学習モデルは、教師あり学習のモデルである。学習モデルは、任意の処理を実行可能であり、例えば、画像認識、文字認識、音声認識、人間の行動パターンの認識、又は自然界の現象の認識を行う。機械学習自体は、公知の種々の手法を適用可能であり、例えば、DNN(Deep Neural Network)、CNN(Convolutional Neural Network)、ResNet(Residual Network)、又はRNN(Recurrent Neural Network)を利用可能である。
学習モデルは、複数のレイヤを含み、各レイヤには、パラメータが設定されている。例えば、レイヤとしては、Affine、ReLU、Sigmoid、Tanh、又はSoftmaxといった名前で呼ばれるレイヤが含まれていてよい。学習モデルに含まれるレイヤの数は、任意であってよく、例えば、数個程度であってもよいし、10個以上であってもよい。また、各レイヤには、複数のパラメータが設定されていてもよい。
学習処理は、教師データを学習モデルに学習させる処理である。別の言い方をすれば、学習処理は、教師データの入力と出力の関係が得られるように、学習モデルのパラメータを調整する処理である。学習処理自体は、公知の機械学習で利用される処理を適用可能であり、例えば、DNN、CNN、ResNet、又はRNNの学習処理を利用可能である。学習処理は、所定の学習アルゴリズム(学習プログラム)により実行される。
本実施形態では、学習モデルとして、画像認識をするDNNを例に挙げて、学習システムSの処理を説明する。学習済みの学習モデルに未知の画像が入力されると、学習モデルは、画像の特徴量を計算し、特徴量に基づいて、画像内のオブジェクトの種類を示すラベルを出力する。このような学習モデルに学習させる教師データは、画像と、画像に示されたオブジェクトのラベルと、のペアとなる。
図2は、一般的な学習モデルの学習方法を示す図である。図2に示すように、学習モデルは、複数のレイヤを含み、各レイヤにはパラメータが設定されている。本実施形態では、学習モデルのレイヤ数をL(L:自然数)とする。L個のレイヤは、所定の順序で並べられている。本実施形態では、i番目(i:1~Lの自然数)のレイヤのパラメータをpiと記載する。図2に示すように、各レイヤのパラメータpiには、重み係数wiとバイアスbiが含まれている。
一般的なDNNの学習方法によれば、同じ教師データに基づいて、エポック数と呼ばれる回数だけ学習処理が繰り返される。図2の例では、エポック数をN(N:自然数)とし、N回の学習処理の各々において、各レイヤの重み係数wiが調整される。学習処理が繰り返されることにより、教師データが示す入力と出力の関係が得られるように、各レイヤの重み係数wiが徐々に調整される。
例えば、1回目の学習処理により、各レイヤの初期値の重み係数wiが調整される。図2では、1回目の学習処理により調整された重み係数を、wi
1と記載する。1回目の学習処理が完了すると、2回目の学習処理が実行される。2回目の学習処理により、各レイヤの重み係数wi
1が調整される。図2では、1回目の学習処理により調整された重み係数を、wi
2と記載する。以降同様にして、学習処理がN回繰り返される。図2では、N回目の学習処理により調整された重み係数を、wi
Nと記載する。wi
Nは、学習モデルに最終的に設定される重み係数wiとなる。
従来技術で説明したように、学習モデルのレイヤ数が増えると、パラメータpiの数も増えるので、学習モデルのデータサイズが大きくなる。そこで、学習システムSは、重み係数wiを量子化することによって、データサイズを小さくするようにしている。本実施形態では、一般的には浮動小数点数で表現される重み係数wiを二値化することによって、重み係数wiの情報量を圧縮し、学習モデルのデータサイズを小さくする場合を例に挙げて説明する。
図3は、重み係数wiが量子化される学習処理の一例を示す図である。図3に示すQ(x)は、変数xを量子化する関数であり、例えば、「x≦0」の場合は「-1」となり、「x>0」の場合は「1」となる。なお、量子化は、二値化に限られず、2段階以上の量子化が行われてもよい。例えば、Q(x)は、「-1」、「0」、「1」の3段階の量子化をする関数であってもよいし、「-2n」~「2n」(n:自然数)の間で量子化をする関数であってもよい。量子化の段階数や閾値は、任意のものを採用可能である。
図3に示す例では、1回目の学習処理により、各レイヤの初期値の重み係数wiが調整されて量子化される。図3では、1回目の学習処理により調整された重み係数を、Q(wi
1)と記載する。図3の例では、1回目の学習処理において、全てのレイヤの重み係数wiが量子化され、「-1」又は「1」で表現されることになる。
1回目の学習処理が完了すると、2回目の学習処理が実行される。2回目の学習処理により、量子化された重み係数Q(wi
2)が取得される。以降同様にして、学習処理がN回繰り返される。図2では、N回目の学習処理により量子化された重み係数を、Q(wi
N)と記載する。Q(wi
N)は、学習モデルに最終的に設定される重み係数wiとなる。
上記のようにして、各レイヤの重み係数wiを量子化すると、浮動小数点数等に比べて情報量を圧縮できるので、学習モデルのデータサイズを小さくすることができる。しかしながら、発明者の独自の研究によると、全てのレイヤを一度に量子化すると、学習モデルの精度が大きく低下することが発見された。そこで、本実施形態の学習システムSは、レイヤを1つずつ量子化することによって、学習モデルの精度低下を抑えるようにしている。
図4は、レイヤを1つずつ量子化する学習処理の一例を示す図である。図4に示すように、1回目の学習処理では、1番目のレイヤの重み係数w1だけが量子化されて学習処理が実行される。このため、2番目以降のレイヤの重み係数w2~wLは、量子化されずに浮動小数点数のままとなる。このため、1回目の学習処理により、1番目のレイヤの重み係数はQ(w1
1)となり、2番目以降のレイヤの重み係数はw2
1~wL
1となる。
1回目の学習処理が完了すると、2回目の学習処理が実行される。2回目の学習処理においても、1番目のレイヤの重み係数w1だけが量子化される。このため、2回目の学習処理により、1番目のレイヤの重み係数はQ(w1
2)となり、2番目以降のレイヤの重み係数はw2
2~wL
2となる。以降、1番目のレイヤの重み係数w1だけを量子化した学習処理がK回(K:自然数)繰り返される。K回目の学習処理により、1番目のレイヤの重み係数はQ(w1
K)となり、2番目以降のレイヤの重み係数はw2
K~wL
Kとなる。
K回目の学習処理が完了すると、K+1回目の学習処理が実行され、2番目のレイヤの重み係数w2が量子化される。1番目のレイヤの重み係数w1は、既に量子化されているので、K+1回目以降の学習処理においても引き続き量子化される。一方、3番目以降のレイヤの重み係数w3~wLは、量子化されずに浮動小数点数のままとなる。このため、K+1回目の学習処理により、1番目と2番目のレイヤの重み係数は、それぞれQ(w1
K+1),Q(w2
K+1)となり、3番目以降のレイヤの重み係数はw3
K+1~wL
K+1となる。
K+1回目の学習処理が完了すると、K+2回目の学習処理が実行される。K+2回目の学習処理においても、1番目と2番目のレイヤの重み係数w1,w2だけが量子化される。このため、K+2回目の学習処理により、1番目と2番目のレイヤの重み係数は、それぞれQ(w1
K+2),Q(w2
K+2)となり、3番目以降のレイヤの重み係数はw3
K+2~wL
K+2となる。以降、1番目と2番目のレイヤの重み係数w1,w2だけを量子化した学習処理がK回繰り返される。2K回目の学習処理により、1番目と2番目のレイヤの重み係数は、それぞれQ(w1
2K),Q(w2
2K)となり、3番目以降のレイヤの重み係数はw3
2K~wL
2Kとなる。
以降同様にして、3番目以降のレイヤが1つずつ順番に量子化されて学習処理が実行される。図4の例では、レイヤ数がLであり、個々のエポック数がK回なので、学習処理の合計回数はLK回となり、最終的には全てのレイヤの重み係数wiが量子化される。LK回目の学習処理により量子化された各レイヤの重み係数Q(wi
LK)は、学習モデルに最終的に設定される重み係数となる。
なお、図4では、1番目のレイヤからL番目のレイヤに向けて、レイヤの並び順の順方向(昇順)に量子化が行われる場合を説明したが、各レイヤの量子化は、任意の順序で行われるようにすればよい。例えば、L番目のレイヤから1番目のレイヤに向けて、レイヤの並び順の逆方向(降順)に量子化が行われてもよい。
図5は、最後のレイヤから順番に量子化する学習処理の一例を示す図である。図5に示すように、1回目の学習処理では、L番目のレイヤの重み係数wLだけが量子化されて学習処理が実行される。このため、1番目~L-1番目のレイヤの重み係数w1~wL-1は、量子化されずに浮動小数点数のままとなる。1回目の学習処理により、L番目のレイヤの重み係数はQ(wL
1)となり、1番目~L-1番目のレイヤの重み係数はw1
1~wL-1
1となる。
1回目の学習処理が完了すると、2回目の学習処理が実行される。2回目の学習処理においても、L番目のレイヤの重み係数wLだけが量子化される。このため、2回目の学習処理により、L番目のレイヤの重み係数はQ(wL
2)となり、1番目~L-1番目のレイヤの重み係数はw1
2~wL-1
2となる。以降、L番目のレイヤの重み係数wLだけを量子化した学習処理がK回(K:自然数)繰り返される。K回目の学習処理により、L番目のレイヤの重み係数はQ(wL
K)となり、1番目~L-1番目のレイヤの重み係数はw1
K~wL-1
Kとなる。
K回目の学習処理が完了すると、K+1回目の学習処理が実行され、L-1番目のレイヤの重み係数wL-1が量子化される。L番目のレイヤの重み係数wLは、既に量子化されているので、K+1回目以降の学習処理においても引き続き量子化される。一方、1番目~L-2番目のレイヤの重み係数w1~wL-2は、量子化されずに浮動小数点数のままとなる。このため、K+1回目の学習処理により、L-1番目とL番目のレイヤの重み係数は、それぞれQ(wL-1
K+1),Q(wL
K+1)となり、1番目~L-2番目のレイヤの重み係数はw1
K+1~wL-2
K+1となる。
K+1回目の学習処理が完了すると、K+2回目の学習処理が実行される。K+2回目の学習処理においても、L-1番目とL番目のレイヤの重み係数wL-1,wLだけが量子化される。このため、K+2回目の学習処理により、L-1番目とL番目のレイヤの重み係数は、それぞれQ(wL-1
K+2),Q(wL
K+2)となり、1番目~L-2番目のレイヤの重み係数はw1
K+2~wL-2
K+2となる。以降、L-1番目とL番目のレイヤの重み係数wL-1,wLだけを量子化した学習処理がK回繰り返される。2K回目の学習処理により、L-1番目とL番目のレイヤの重み係数は、それぞれQ(wL-1
2K),Q(wL
2K)となり、1番目~L-2番目のレイヤの重み係数はw1
2K~wL-2
2Kとなる。
以降同様にして、レイヤの並び順の逆方向に1つずつ順番に量子化されて学習処理が実行される。このように、レイヤの並び順の順方向ではなく、逆方向に向けて量子化が行われてもよい。更に、レイヤの並び順の順方向又は逆方向以外の順序で量子化が行われてもよい。例えば、「1番目のレイヤ→5番目のレイヤ→3番目のレイヤ→2番目のレイヤ・・・」といったような順序で量子化が行われてもよい。
図6は、学習モデルの精度を示す図である。図6の例では、教師データに対するエラー率(不正解率)を精度として利用する場合を説明する。(1)重み係数wiを量子化しない学習モデル(図2の学習モデル)、(2)全てのレイヤを一度に量子化した学習モデル(図3の学習モデル)、(3)レイヤの順方向に1つずつ量子化した学習モデル(図4の学習モデル)、及び(4)レイヤの逆方向に1つずつ量子化した学習モデル(図5の学習モデル)の4つの学習モデルを示している。
図6に示すように、(1)の学習モデルは、量子化しておらず重み係数wiが詳細に示されるので、最も精度が高い。しかし、先述したように、(1)の学習モデルは、重み係数wiを浮動小数点数等で表現する必要があるので、最もデータサイズが大きい。一方、(2)の学習モデルは、重み係数wiを量子化しているためデータサイズは小さくなるが、全てのレイヤを一度に量子化しているので精度が最も低くなる。
(3)の学習モデルと(4)の学習モデルは、重み係数wiを量子化しているためデータサイズは小さくなり、(2)の学習モデルと同じ又は略同じデータサイズとなる。しかし、全てのレイヤを一度に量子化するのではなく、各レイヤを徐々に量子化することにより、学習モデルの精度の低下を抑えることができる。量子化によるデータサイズの低減と学習モデルの精度はトレードオフの関係にあり、本実施形態では、各レイヤを徐々に量子化することにより、学習モデルの精度の低下を最低限に抑えるようにしている。
なお、図6の例では、(4)の学習モデルの方が、(3)の学習モデルよりも精度が高くなるが、教師データの内容やレイヤ数等の条件によっては、(3)の学習モデルの方が、(4)の学習モデルよりも精度が高くなることもある。他にも例えば、順方向又は逆方向に量子化する学習モデルよりも、他の順序で量子化する学習モデルの方が、精度が高くなることもある。ただし、どの順序であったとしても、1つずつ量子化する学習モデルの方が、全てのレイヤを一度に量子化する(2)の学習モデルよりも精度が高くなる。
以上のように、本実施形態の学習システムSは、全てのレイヤを一度に量子化するのではなく、レイヤを1つずつ量子化して学習処理を実行することにより、学習モデルの精度の低下を最低限に抑えつつ、学習モデルのデータサイズを小さくするようにしている。以降、学習システムSの詳細を説明する。なお、以降の説明では、特に図面を参照する必要のないときは、パラメータや重み係数の符号を省略する。
[3.学習システムにおいて実現される機能]
図7は、学習システムSで実現される機能の一例を示す機能ブロック図である。図7に示すように、学習システムSでは、データ記憶部100、取得部101、及び学習部102が実現される。本実施形態では、これら各機能が学習装置10によって実現される場合を説明する。
図7は、学習システムSで実現される機能の一例を示す機能ブロック図である。図7に示すように、学習システムSでは、データ記憶部100、取得部101、及び学習部102が実現される。本実施形態では、これら各機能が学習装置10によって実現される場合を説明する。
[データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、教師データセットDSと、学習モデルMと、について説明する。
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、教師データセットDSと、学習モデルMと、について説明する。
図8は、教師データセットDSのデータ格納例を示す図である。図8に示すように、教師データセットDSには、入力データとラベルのペアである教師データが複数個格納されている。図8では、教師データセットDSをテーブル形式で示しており、個々のレコードが教師データに相当する。なお、図8では、ラベルを「犬」や「猫」などの文字で示しているが、これらを識別するための記号又は数値によって示されるようにしてもよい。入力データは、学習モデルMに対する設問に相当し、ラベルは回答に相当する。
また、データ記憶部100は、学習モデルMのプログラム(アルゴリズム)やパラメータなどを記憶する。ここでは、教師データセットDSによって学習済み(パラメータの調整済み)の学習モデルMがデータ記憶部100に記憶される場合を説明するが、学習前(パラメータの調整前)の学習モデルMがデータ記憶部100に記憶されていてもよい。以降の説明では、学習モデルMの符号を省略する。
なお、データ記憶部100に記憶されるデータは、上記の例に限られない。例えば、データ記憶部100は、学習処理のアルゴリズム(プログラム)を記憶してもよい。また例えば、データ記憶部100は、量子化するレイヤの順序やエポック数などの設定情報を記憶してもよい。
[取得部]
取得部101は、制御部11を主として実現される。取得部101は、学習モデルに学習させる教師データを取得する。本実施形態では、教師データセットDSがデータ記憶部100に記憶されているので、取得部101は、データ記憶部100に記憶された教師データセットDSの中から、少なくとも1つの教師データを取得する。取得部101は、任意の数の教師データを取得すればよく、教師データセットDSの全部又は一部を取得すればよい。例えば、取得部101は、十個~数十個程度の教師データを取得してもよいし、百個~数千個又はそれ以上の教師データを取得してもよい。なお、教師データセットDSが学習装置10以外の他のコンピュータ又は情報記憶媒体に記録されている場合には、取得部101は、当該他のコンピュータ又は情報記憶媒体から教師データを取得すればよい。
取得部101は、制御部11を主として実現される。取得部101は、学習モデルに学習させる教師データを取得する。本実施形態では、教師データセットDSがデータ記憶部100に記憶されているので、取得部101は、データ記憶部100に記憶された教師データセットDSの中から、少なくとも1つの教師データを取得する。取得部101は、任意の数の教師データを取得すればよく、教師データセットDSの全部又は一部を取得すればよい。例えば、取得部101は、十個~数十個程度の教師データを取得してもよいし、百個~数千個又はそれ以上の教師データを取得してもよい。なお、教師データセットDSが学習装置10以外の他のコンピュータ又は情報記憶媒体に記録されている場合には、取得部101は、当該他のコンピュータ又は情報記憶媒体から教師データを取得すればよい。
[学習部]
学習部102は、制御部11を主として実現される。学習部102は、取得部101により取得された教師データに基づいて、学習モデルの学習処理を繰り返し実行する。先述したように、学習処理自体は、公知の手法を適用可能であり、本実施形態では、DNNの学習モデルを例に挙げているので、学習部102は、DNNで利用される学習アルゴリズムに基づいて、学習処理を繰り返し実行すればよい。学習部102は、教師データが示す入力と出力の関係が得られるように、学習モデルのパラメータを調整する。
学習部102は、制御部11を主として実現される。学習部102は、取得部101により取得された教師データに基づいて、学習モデルの学習処理を繰り返し実行する。先述したように、学習処理自体は、公知の手法を適用可能であり、本実施形態では、DNNの学習モデルを例に挙げているので、学習部102は、DNNで利用される学習アルゴリズムに基づいて、学習処理を繰り返し実行すればよい。学習部102は、教師データが示す入力と出力の関係が得られるように、学習モデルのパラメータを調整する。
学習処理の繰り返し回数(エポック数)は、予め定められた回数であればよく、例えば、数回~百回程度であってもよいし、それ以上であってもよい。繰り返し回数は、データ記憶部100に記録されているものとする。繰り返し回数は、固定値であってもよいし、ユーザの操作により変更可能としてもよい。例えば、学習部102は、同じ教師データに基づいて、繰り返し回数だけ学習処理を繰り返す。なお、各学習処理において異なる教師データが用いられてもよい。例えば、2回目の学習処理において、1回目の学習処理では用いられなかった教師データが用いられてもよい。
学習部102は、学習モデルの一部のレイヤのパラメータを量子化して学習処理を実行した後に、学習モデルの他のレイヤのパラメータを量子化して学習処理を実行する。即ち、学習部102は、全てのレイヤのパラメータを一度に量子化して学習処理を実行するのではなく、一部のレイヤのパラメータだけを量子化し、他のレイヤのパラメータについては量子化しない状態で学習処理を実行する。本実施形態では、量子化されていないパラメータについても調整される場合を説明するが、量子化されていないパラメータについては、調整の対象から除外してもよい。その後、学習部102は、量子化しなかった他のレイヤのパラメータを量子化して学習処理を実行する。本実施形態では、量子化済みのパラメータについても調整される場合を説明するが、量子化済みのパラメータについては、その後の調整の対象から除外してもよい。
一部のレイヤとは、量子化の対象として選択される1個以上L個未満のレイヤである。本実施形態では、レイヤが1つずつ量子化されるため、一部のレイヤが1個である場合を説明するが、一部のレイヤは複数個であってもよい。L個の全てのレイヤが一度に量子化されないようにすればよく、例えば、レイヤが2つずつ量子化されてもよいし、レイヤが3つずつ量子化されてもよい。他にも例えば、1つのレイヤが量子化された後に、他の複数のレイヤが量子化されるといったように、量子化の対象となるレイヤの数が変わってもよい。他のレイヤは、学習モデルが有するレイヤのうち、一部のレイヤ以外のレイヤである。他のレイヤは、一部のレイヤ以外の全てを意味してもよいし、一部のレイヤ以外のレイヤのうち、一部を意味してもよい。
本実施形態では、レイヤが徐々に量子化され、最終的に全てのレイヤが量子化されるので、学習部102は、学習モデルの全てのレイヤのパラメータが量子化されるまで、学習処理を繰り返し実行する。例えば、学習部102は、まだ量子化していないレイヤの中から、量子化するレイヤを選択し、当該選択したレイヤのパラメータを量子化して学習処理を実行する。学習部102は、最終的に全てのレイヤが量子化されるまで、量子化するレイヤの選択と学習処理の実行を繰り返す。学習部102は、全てのレイヤのパラメータが量子化された場合に学習処理を終了し、学習モデルのパラメータを確定させる。確定されたパラメータは、浮動小数点数等ではなく、量子化された値となる。
本実施形態では、学習部102は、学習モデルのレイヤを1つずつ量子化する。学習部102は、まだ量子化していないレイヤの中から、何れか1つのレイヤを選択し、当該選択したレイヤのパラメータを量子化して学習処理を実行する。学習部102は、量子化するレイヤを1つずつ選択し、L個のレイヤを徐々に量子化する。
量子化の順序は、学習アルゴリズムの中に定義されていてもよい。本実施形態では、学習モデルの中から量子化するレイヤを所定の順序で次々と選択する学習アルゴリズムの設定として、量子化の順序がデータ記憶部100に記憶されている。学習部102は、所定の順序に基づいて、量子化するレイヤの選択と学習処理の実行を繰り返す。
例えば、図3のように、1番目のレイヤからL番目のレイヤまで順方向に(レイヤの並び順の昇順に)量子化する場合、学習部102は、量子化するレイヤとして、1番目のレイヤを選択し、K回の学習処理を実行する。即ち、学習部102は、1番目のレイヤのパラメータp1だけを量子化し、2番目以降のレイヤのパラメータp2~pLは量子化せずに、K回の学習処理を実行する。次に、学習部102は、量子化するレイヤとして、2番目のレイヤを選択し、K回の学習処理を実行する。即ち、学習部102は、既に量子化された1番目のレイヤと、今回選択した2番目のレイヤと、を量子化し、3番目以降のレイヤのパラメータp3~pLは量子化せずに、K回の学習処理を実行する。以降、学習部102は、L番目のレイヤまで、レイヤの並び順の順方向に1つずつ選択し、学習処理を実行する。
また例えば、図4のように、L番目のレイヤから1番目のレイヤまで逆方向に(レイヤの並び順の降順に)量子化する場合、学習部102は、量子化するレイヤとして、L番目のレイヤを選択し、K回の学習処理を実行する。即ち、学習部102は、L番目のレイヤのパラメータpLだけを量子化し、1番目~L-1番目のレイヤのパラメータp1~pL-1は量子化せずに、K回の学習処理を実行する。次に、学習部102は、量子化するレイヤとして、L-1番目のレイヤを選択し、K回の学習処理を実行する。即ち、学習部102は、既に量子化されたL番目のレイヤと、今回選択したL-1番目のレイヤと、を量子化し、1番目~L-2番目のレイヤのパラメータp1~pL-2は量子化せずに、K回の学習処理を実行する。以降、学習部102は、1番目のレイヤまで、レイヤの並び順の逆方向に1つずつ選択し、学習処理を実行する。
なお、量子化するレイヤの選択順は、任意の順序であってよく、レイヤの並び順の順方向又は逆方向に限られない。例えば、「1番目のレイヤ→5番目のレイヤ→3番目のレイヤ→2番目のレイヤ・・・」といったように、照準又は降順ではなくてもよい。また例えば、最初に量子化されるレイヤは、1番目のレイヤ又はL番目のレイヤに限られず、3番目のレイヤなどの中間的なレイヤが最初に選択されてもよい。同様に、最後に量子化されるレイヤについても、1番目のレイヤ又はL番目のレイヤに限られず、3番目のレイヤなどの中間的なレイヤが最後に量子化されてもよい。
また、量子化するレイヤの選択順は、予め定められていなくてもよく、学習部102は、学習モデルの中から、量子化するレイヤをランダムに次々と選択してもよい。例えば、学習部102は、rand関数等を利用して乱数を発生し、乱数に基づいて、量子化するレイヤの選択順を決定してもよい。この場合、学習部102は、乱数によって決定された選択順に基づいて、量子化するレイヤを次々と選択し、学習処理を実行する。なお、学習部102は、L個のレイヤの選択順を一度にまとめて決定してもよいし、あるレイヤを選択するたびに、次に選択するレイヤをランダムに決定してもよい。
本実施形態では、学習部102は、一部のレイヤのパラメータを量子化して学習処理を所定回数繰り返した後に、他のレイヤのパラメータを量子化して学習処理を所定回数繰り返す。本実施形態では、これらの回数がK回であり、互いに同じ回数とするが、繰り返し回数は互いに異なっていてもよい。例えば、図4の例であれば、1番目のレイヤを量子化して10回の学習処理を繰り返した後に、2番目のレイヤを量子化して8回の学習処理を繰り返すといったように、各レイヤの繰り返し回数が異なってもよい。
本実施形態では、各レイヤのパラメータには、重み係数が含まれており、学習部102は、一部のレイヤの重み係数を量子化して学習処理を実行した後に、他のレイヤの重み係数を量子化して学習処理を実行する。即ち、各レイヤのパラメータのうち、重み係数が量子化の対象となる。本実施形態では、バイアスについては量子化されないものとするが、量子化の対象となるパラメータは、バイアスであってもよい。また例えば、重み係数とバイアスの両方が量子化の対象となってもよい。また例えば、各レイヤに重み係数とバイアス以外のパラメータが存在する場合には、当該他のパラメータが量子化の対象となってもよい。
本実施形態では、量子化の一例として二値化を説明するので、学習部102は、学習モデルの一部のレイヤのパラメータを二値化して学習処理を実行した後に、学習モデルの他のレイヤのパラメータを二値化して学習処理を実行する。学習部102は、各レイヤのパラメータを所定の閾値と比較することによって、パラメータの二値化を行う。本実施形態では、二値化の一例として、-1又は1の二値にパラメータが分類される場合を説明するが、0又は1といった他の値で二値化が行われるようにしてもよい。即ち、二値化は、任意の第1の値と第2の値にパラメータが分類されるようにすればよい。
[4.本実施形態において実行される処理]
図9は、学習システムSにおいて実行される処理の一例を示すフロー図である。図9に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図7に示す機能ブロックにより実行される処理の一例である。
図9は、学習システムSにおいて実行される処理の一例を示すフロー図である。図9に示す処理は、制御部11が記憶部12に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図7に示す機能ブロックにより実行される処理の一例である。
図9に示すように、まず、制御部11は、教師データセットDSに含まれる教師データを取得する(S1)。S1においては、制御部11は、記憶部12に記憶された教師データセットDSを参照し、任意の数の教師データを取得する。
制御部11は、所定の順序に基づいて、まだ量子化していないレイヤの中から、量子化するレイヤを選択する(S2)。例えば、図4のように、レイヤの並び順の順方向に量子化が行われる場合、S2においては、制御部11は、1番目のレイヤを最初に選択する。また例えば、図5のように、レイヤの並び順の逆方向に量子化が行われる場合、S2においては、制御部11は、L番目のレイヤを最初に選択する。
制御部11は、S1で取得した教師データに基づいて、選択したレイヤの重み係数を量子化して学習処理を実行する(S3)。S3においては、制御部11は、教師データが示す入力と出力の関係が得られるように、各レイヤの重み係数を調整する。制御部11は、量子化の対象として選択済みのレイヤについては、重み係数を量子化する。
制御部11は、選択したレイヤの重み係数を量子化した学習処理をK回繰り返したか否かを判定する(S4)。S4においては、制御部11は、S2でレイヤを選択した後に、S3の処理をK回実行したか否かを判定する。学習処理をK回繰り返したと判定されない場合(S4;N)、S3の処理に戻り、学習処理が再び実行される。以降、学習処理がK回に達するまで、S3の処理が繰り返される。
一方、学習処理をK回繰り返したと判定された場合(S4;Y)、制御部11は、まだ量子化していないレイヤがあるか否かを判定する(S5)。本実施形態では、L個のレイヤの各々についてK回のエポック数が設定されているので、S5においては、制御部11は、合計でLK回の学習処理を実行したか否かを判定することになる。
まだ量子化していないレイヤがあると判定された場合(S5;Y)、S2の処理に戻り、次のレイヤが選択され、S3及びS4の処理が実行される。一方、まだ量子化していないレイヤが存在あると判定されない場合(S5;N)、制御部11は、各レイヤの量子化された重み係数を、学習モデルの最終的な重み係数として決定し(S6)、本処理は終了する。S6においては、制御部11は、最新の量子化された重み係数が各レイヤに設定された学習モデルを記憶部12に記録し、学習処理を完了させる。
以上説明した学習システムSによれば、学習モデルの一部のレイヤのパラメータを量子化して学習処理を実行した後に、学習モデルの他のレイヤのパラメータを量子化して学習処理を実行することにより、学習モデルの精度の低下を抑えつつ、学習モデルのデータサイズを小さくすることができる。例えば、学習モデルの全てのレイヤを一度に量子化した場合には、パラメータが有する情報量が一気に落ちるので、量子化されたパラメータの精度も一気に下がってしまう。学習モデルのレイヤを徐々に量子化して情報量を徐々に落とすことによって、このように情報量が一致に落ちることを防止できるので、量子化されたパラメータの精度が一致に下がることを防止し、学習モデルの精度の低下を最低限に抑えることができる。別の言い方をすれば、学習モデルの一部のレイヤのパラメータを量子化して学習処理を実行している間は、他のレイヤのパラメータは、量子化されておらず浮動小数点数等により正確に表現されているので、他のレイヤのパラメータも量子化されている場合に比べて、量子化されたパラメータを正確な値に決定し、学習モデルの精度の低下を最低限に抑えることができる。
また、学習システムSは、学習モデルの全てのレイヤのパラメータが量子化されるまで、学習処理を繰り返し実行することにより、全てのレイヤのパラメータを量子化して情報量を圧縮し、学習モデルのデータサイズをより小さくすることができる。
また、学習システムSは、学習モデルのレイヤを1つずつ量子化し、各レイヤの量子化を徐々に進めることにより、学習モデルの精度の低下を効果的に抑えることができる。即ち、各レイヤの量子化を一気に進めると、先述した理由により学習モデルの精度が一気に低下する可能性があるが、1つずつ量子化を進めることにより、学習モデルの精度が一気に低下することを防止し、学習モデルの精度の低下を最低限に抑えることができる。
また、学習システムSは、学習モデルの中から、量子化するレイヤを所定の順序で次々と選択することにより、学習モデルの作成者の意図に沿った順序で量子化を実行することができる。例えば、学習モデルの作成者が、精度の低下を抑える順序を発見している場合には、作成者が指定した順序に基づいて、量子化するレイヤを選択することにより、精度の低下を最低限に抑えた学習モデルを作成することができる。
また、学習システムSは、学習モデルの中から、量子化するレイヤをランダムに次々と選択することにより、学習モデルの作成者が特に順序を指定しなくても学習処理を実行することができる。
また、学習システムSは、一部のレイヤのパラメータを量子化して学習処理を所定回数繰り返した後に、他のレイヤのパラメータを量子化して学習処理を所定回数繰り返すことにより、量子化されたパラメータをより正確な値に設定し、学習モデルの精度の低下を効果的に抑えることができる。
また、学習システムSは、一部のレイヤの重み係数を量子化して学習処理を実行した後に、他のレイヤの重み係数を量子化して学習処理を実行することにより、学習モデルの精度の低下を抑えつつ、学習モデルのデータサイズを小さくすることができる。例えば、浮動小数点数等によって情報量が多くなりがちな重み係数を量子化することにより、学習モデルのデータサイズをより小さくすることができる。
また、学習システムSは、学習モデルの一部のレイヤのパラメータを二値化して学習処理を実行した後に、学習モデルの他のレイヤのパラメータを二値化して学習処理を実行し、データサイズの圧縮に効果的な二値化を利用することによって、学習モデルのデータサイズをより小さくすることができる。
[5.変形例]
なお、本発明は、以上に説明した実施形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
なお、本発明は、以上に説明した実施形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
図10は、変形例の機能ブロック図である。図10に示すように、以降説明する変形例では、実施形態で説明した機能に加えて、モデル選択部103と他モデル学習部104が実現される。
(1)例えば、実施形態で説明したように、量子化するレイヤを選択する順序によって、学習モデルの精度が異なることがある。このため、どの順序で量子化をすると最も精度が高くなるか分からない場合には、複数通りの順序に基づいて複数の学習モデルを作成し、相対的に精度の高い学習モデルが最終的に選択されるようにしてもよい。
本変形例の学習部102は、複数通りの順序の各々に基づいて、量子化するレイヤを次々と選択し、複数の学習モデルを作成する。ここでの複数通りは、L個のレイヤの順列組合せの全通りであってもよいし、一部の組み合わせだけであってもよい。例えば、レイヤ数が5個程度であれば、全通りの順序で学習モデルが作成されてもよいが、レイヤ数が10個以上であれば、全通りの順列組合せが多くなるので、一部の順序についてのみ学習モデルが作成されてもよい。複数通りの順序は、予め指定されていてもよいし、ランダムに作成されてもよい。
学習部102は、順序ごとに、当該順序でレイヤを次々と量子化して学習モデルを作成する。個々の学習モデルの作成方法自体は、実施形態で説明した通りである。本変形例では、順序の数と、作成される学習モデルの数と、は一致する。即ち、順序と学習モデルは1対1で対応することになる。例えば、m通り(m:2以上の自然数)の順序があったとすると、学習部102は、m個の学習モデルを作成することになる。
本変形例の学習システムSは、モデル選択部103を含む。モデル選択部103は、制御部11を主として実現される。モデル選択部103は、各学習モデルの精度に基づいて、複数の学習モデルのうちの少なくとも1つを選択する。
学習モデルの精度自体は、公知の手法によって評価されるようにすればよく、本変形例では、教師データに対するエラー率(不正解率)を利用する場合を説明する。エラー率は、正解率とは逆の概念であり、学習済みの学習モデルに対し、学習処理で利用した教師データの全てを入力した場合に、学習モデルからの出力と、教師データに示された出力(正解)と、が一致しなかった割合である。エラー率が低いほど、学習モデルの精度が高くなる。
モデル選択部は、複数の学習モデルの中で相対的に精度が高い学習モデルを選択する。モデル選択部は、1つだけ学習モデルを選択してもよいし、複数の学習モデルを選択してもよい。例えば、モデル選択部は、複数の学習モデルのうち、精度が最も高い学習モデルを選択する。なお、モデル選択部は、精度が最も高い学習モデルではなく、2番目又は3番目に精度が高い学習モデルを選択してもよい。他にも例えば、モデル選択部は、複数の学習モデルのうち、精度が閾値以上の学習モデルの何れかを選択してもよい。
変形例(1)によれば、複数通りの順序の各々に基づいて、量子化するレイヤを次々と選択して複数の学習モデルを作成し、各学習モデルの精度に基づいて、複数の学習モデルのうちの少なくとも1つを選択することにより、学習モデルの精度の低下を効果的に抑えることができる。
(2)また例えば、変形例(1)において、精度が相対的に高い学習モデルの順序を、他の学習モデルの学習に流用してもよい。この場合、他の学習モデルの学習時に、複数通りの順序を試さなくても、精度の高い学習モデルを作成することができる。
本変形例の学習システムSは、他モデル学習部104を含む。他モデル学習部104は、制御部11を主として実現される。他モデル学習部104は、モデル選択部103により選択された学習モデルに対応する順序に基づいて、他の学習モデルの学習処理を実行する。学習モデルに対応する順序とは、学習モデルを作成するときに利用したレイヤの選択順序である。他の学習モデルは、学習済みの学習モデルとは異なるモデルである。他の学習モデルは、学習済みの学習モデルと同じ教師データが用いられてもよいし、異なる教師データが用いられてもよい。
他の学習モデルの学習は、学習済みの学習モデルと同様の流れで実行されるようにすればよい。即ち、他モデル学習部104は、教師データに基づいて、他の学習モデルの学習処理を繰り返し実行する。他モデル学習部104は、モデル選択部103により選択された学習モデルに対応する順序で、他の学習モデルのレイヤを次々と量子化して学習処理を実行する。個々の学習処理自体は、実施形態の学習部102で説明した通りである。
変形例(2)によれば、相対的に精度が高い学習モデルに対応する順序に基づいて、他の学習モデルの学習処理を実行することにより、他の学習モデルの学習処理を効率化することができる。例えば、他の学習モデルを作成するときに複数通りの順序を試さなくても、精度の高い学習モデルを作成することができる。その結果、学習装置10の処理負荷を軽減し、精度の高い学習モデルを迅速に作成することができる。
(3)また例えば、上記変形例を組み合わせてもよい。
また例えば、学習モデルの全てのレイヤのパラメータが量子化される場合を説明したが、学習モデルの中には、量子化の対象とはならないレイヤが存在してもよい。即ち、浮動小数点数等でパラメータが表現されるレイヤと、量子化されたレイヤと、が混在していてもよい。また例えば、学習モデルのレイヤが1つずつ量子化される場合を説明したが、レイヤは複数個ずつ量子化されてもよい。例えば、学習モデルのレイヤが2つずつ又は3つずつ量子化されてもよい。また例えば、重み係数ではなく、バイアスなどの他のパラメータが量子化されてもよい。また例えば、量子化は二値化に限られず、パラメータの情報量(ビット数)を減らすことができる量子化であればよい。
また例えば、学習システムSには、複数のコンピュータが含まれており、各コンピュータによって機能が分担されてもよい。例えば、選択部101と学習部102が第1のコンピュータによって実現され、モデル選択部103と他モデル学習部104が第2のコンピュータによって実現されてもよい。また例えば、データ記憶部100は、学習システムSの外部にあるデータベースサーバ等によって実現されてもよい。
Claims (12)
- 学習モデルに学習させる教師データを取得する取得手段と、
前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習手段と、
を含み、
前記学習手段は、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する、
ことを特徴とする学習システム。 - 前記学習手段は、前記学習モデルの全てのレイヤのパラメータが量子化されるまで、前記学習処理を繰り返し実行する、
ことを特徴とする請求項1に記載の学習システム。 - 前記学習手段は、前記学習モデルのレイヤを1つずつ量子化する、
ことを特徴とする請求項1又は2に記載の学習システム。 - 前記学習手段は、前記学習モデルの中から、量子化するレイヤを所定の順序で次々と選択する、
ことを特徴とする請求項1~3の何れかに記載の学習システム。 - 前記学習手段は、前記学習モデルの中から、量子化するレイヤをランダムに次々と選択する、
ことを特徴とする請求項1~4の何れかに記載の学習システム。 - 前記学習手段は、前記一部のレイヤのパラメータを量子化して前記学習処理を所定回数繰り返した後に、前記他のレイヤのパラメータを量子化して前記学習処理を所定回数繰り返す、
ことを特徴とする請求項1~5の何れかに記載の学習システム。 - 前記学習手段は、複数通りの順序の各々に基づいて、量子化するレイヤを次々と選択し、複数の前記学習モデルを作成し、
前記学習システムは、各学習モデルの精度に基づいて、前記複数の学習モデルのうちの少なくとも1つを選択する選択手段、
を更に含むことを特徴とする請求項1~6の何れかに記載の学習システム。 - 前記学習システムは、前記選択手段により選択された学習モデルに対応する順序に基づいて、他の学習モデルの学習処理を実行する他モデル学習手段、
を更に含むことを特徴とする請求項7に記載の学習システム。 - 各レイヤのパラメータには、重み係数が含まれており、
前記学習手段は、前記一部のレイヤの重み係数を量子化して前記学習処理を実行した後に、前記他のレイヤの重み係数を量子化して前記学習処理を実行する、
ことを特徴とする請求項1~8の何れかに記載の学習システム。 - 前記学習手段は、前記学習モデルの一部のレイヤのパラメータを二値化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを二値化して前記学習処理を実行する、
ことを特徴とする請求項1~9の何れかに記載の学習システム。 - 学習モデルに学習させる教師データを取得する取得ステップと、
前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習ステップと、
を含み、
前記学習ステップは、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する、
を含むことを特徴とする学習方法。 - 学習モデルに学習させる教師データを取得する取得手段、
前記教師データに基づいて、前記学習モデルの学習処理を繰り返し実行する学習手段、
としてコンピュータを機能させるためのプログラムであって、
前記学習手段は、前記学習モデルの一部のレイヤのパラメータを量子化して前記学習処理を実行した後に、前記学習モデルの他のレイヤのパラメータを量子化して前記学習処理を実行する、
プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980085721.8A CN113228058A (zh) | 2019-08-29 | 2019-08-29 | 学习系统、学习方法和程序 |
PCT/JP2019/033910 WO2021038793A1 (ja) | 2019-08-29 | 2019-08-29 | 学習システム、学習方法、及びプログラム |
US17/414,596 US20220138566A1 (en) | 2019-08-29 | 2019-08-29 | Learning system, learning method and program |
JP2020542471A JP6795721B1 (ja) | 2019-08-29 | 2019-08-29 | 学習システム、学習方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/033910 WO2021038793A1 (ja) | 2019-08-29 | 2019-08-29 | 学習システム、学習方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021038793A1 true WO2021038793A1 (ja) | 2021-03-04 |
Family
ID=73544839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/033910 WO2021038793A1 (ja) | 2019-08-29 | 2019-08-29 | 学習システム、学習方法、及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220138566A1 (ja) |
JP (1) | JP6795721B1 (ja) |
CN (1) | CN113228058A (ja) |
WO (1) | WO2021038793A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7132196B2 (ja) | 2019-09-17 | 2022-09-06 | 株式会社東芝 | 処理装置および推論システム |
JP2021047711A (ja) * | 2019-09-19 | 2021-03-25 | キオクシア株式会社 | 演算装置、演算方法、及び学習方法 |
US11386368B1 (en) * | 2022-03-04 | 2022-07-12 | John Schneider | Method for matching students with teachers to achieve optimal student outcomes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017149722A1 (ja) * | 2016-03-03 | 2017-09-08 | 三菱電機株式会社 | 演算装置および演算方法 |
KR102343952B1 (ko) * | 2017-06-30 | 2021-12-27 | 현대자동차주식회사 | 하이브리드 차량 및 그를 위한 주행 부하 대응 제어 방법 |
KR20190034985A (ko) * | 2017-09-25 | 2019-04-03 | 삼성전자주식회사 | 인공 신경망의 양자화 방법 및 장치 |
US11734568B2 (en) * | 2018-02-14 | 2023-08-22 | Google Llc | Systems and methods for modification of neural networks based on estimated edge utility |
WO2020019236A1 (en) * | 2018-07-26 | 2020-01-30 | Intel Corporation | Loss-error-aware quantization of a low-bit neural network |
GB2580171B (en) * | 2018-12-21 | 2021-02-17 | Imagination Tech Ltd | Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation |
-
2019
- 2019-08-29 CN CN201980085721.8A patent/CN113228058A/zh active Pending
- 2019-08-29 US US17/414,596 patent/US20220138566A1/en active Pending
- 2019-08-29 WO PCT/JP2019/033910 patent/WO2021038793A1/ja active Application Filing
- 2019-08-29 JP JP2020542471A patent/JP6795721B1/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220138566A1 (en) | 2022-05-05 |
JPWO2021038793A1 (ja) | 2021-09-27 |
CN113228058A (zh) | 2021-08-06 |
JP6795721B1 (ja) | 2020-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11875268B2 (en) | Object recognition with reduced neural network weight precision | |
KR101880901B1 (ko) | 기계 학습 방법 및 장치 | |
CN109906460B (zh) | 用于问答的动态协同注意力网络 | |
KR102558300B1 (ko) | 신경망 및 신경망 트레이닝 방법 | |
US9619749B2 (en) | Neural network and method of neural network training | |
CN107330127B (zh) | 一种基于文本图片检索的相似文本检测方法 | |
JP6795721B1 (ja) | 学習システム、学習方法、及びプログラム | |
JP6620439B2 (ja) | 学習方法、プログラム及び学習装置 | |
US11710044B2 (en) | System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations | |
JP6869676B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
US10853738B1 (en) | Inference circuit for improving online learning | |
CN108764195A (zh) | 手写模型训练方法、手写字识别方法、装置、设备及介质 | |
US20200372325A1 (en) | Neural network reduction device, neural network reduction method, and storage medium | |
CN112446888B (zh) | 图像分割模型的处理方法和处理装置 | |
CN115129386A (zh) | 用于神经网络部署和执行的有效优化 | |
US20230376777A1 (en) | System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations | |
DE102022105810A1 (de) | Effiziente Speichernutzungsoptimierung für Einsatz und Ausführung neuronaler Netze | |
CN115080139A (zh) | 用于神经网络部署和执行的有效量化 | |
KR102539876B1 (ko) | 인공지능 기술을 이용한 적층형 저항 변화 메모리 소자의 계층 최적화 시스템 및 그 방법 | |
CN114781639A (zh) | 面向边缘设备多层共享码本向量量化的深度模型压缩方法 | |
CN115063374A (zh) | 模型训练、人脸图像质量评分方法、电子设备及存储介质 | |
Zhao et al. | U-net for satellite image segmentation: Improving the weather forecasting | |
EP4318315A1 (en) | A computer implemented method for transforming a pre-trained neural network and a device therefor | |
CN117953972A (zh) | 一种基于扩散模型的大肠杆菌dna启动子生成方法 | |
KR20220030406A (ko) | 정규화된 합성곱 신경망 시스템 및 합성곱 신경망 정규화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2020542471 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19943278 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: 19943278 Country of ref document: EP Kind code of ref document: A1 |