WO2020054402A1 - ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 - Google Patents

ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 Download PDF

Info

Publication number
WO2020054402A1
WO2020054402A1 PCT/JP2019/033594 JP2019033594W WO2020054402A1 WO 2020054402 A1 WO2020054402 A1 WO 2020054402A1 JP 2019033594 W JP2019033594 W JP 2019033594W WO 2020054402 A1 WO2020054402 A1 WO 2020054402A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
neuron
integration
artificial neurons
neurons
Prior art date
Application number
PCT/JP2019/033594
Other languages
English (en)
French (fr)
Inventor
和田 俊和
幸司 菅間
雄基 磯田
Original Assignee
国立大学法人 和歌山大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 国立大学法人 和歌山大学 filed Critical 国立大学法人 和歌山大学
Priority to JP2020546831A priority Critical patent/JP7438544B2/ja
Publication of WO2020054402A1 publication Critical patent/WO2020054402A1/ja

Links

Images

Classifications

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

Definitions

  • the present disclosure relates to a neural network processing device, a computer program, a neural network manufacturing method, a neural network data manufacturing method, a neural network using device, and a neural network miniaturization method.
  • a neural network such as a deep neural network is a calculation mechanism in which a plurality of artificial neurons (hereinafter, sometimes referred to as “neurons”) are connected. Giving a large amount of data to a neural network and performing optimization calculations such as weighting factors for each connection of neurons is called deep learning.
  • ⁇ Huge calculations are required when learning a neural network and when operating a trained neural network. That is, a neural network generally has a large number of neurons and is large-scale, so that a huge amount of calculation is required. In order to perform enormous calculations, a large-scale parallel computing mechanism such as a graphic processing unit (GPU) is often used.
  • GPU graphic processing unit
  • Non-Patent Document 1 discloses that attention is paid to the sameness / similarity of weight vectors (weight sets) of neuron connections in order to reduce the size of the neural network.
  • two weight vectors (weight sets) are the same or similar, one weight vector is deleted and integrated with the remaining weight vectors.
  • Non-Patent Document 1 the present inventors have found that the performance of the original large-scale neural network is likely to decrease when the size is reduced. Therefore, a new technique capable of suppressing a decrease in the performance of the neural network when downsizing is desired.
  • the neural network processing device provides a plurality of input data to a neural network in which a plurality of artificial neurons are connected, and obtains a vector including a plurality of outputs output from the artificial neurons for each of the plurality of artificial neurons. And an integration process of selecting a plurality of artificial neurons having the same or similar behavior based on the vector and integrating the selected plurality of artificial neurons.
  • a computer program that provides a plurality of input data to a neural network in which a plurality of artificial neurons are connected, and obtains a vector including a plurality of outputs output from the artificial neurons for each of the plurality of artificial neurons;
  • the computer performs an integration process of selecting a plurality of artificial neurons having the same or similar behavior based on the vector and integrating the selected plurality of artificial neurons.
  • a method for manufacturing a neural network includes providing a plurality of input data to an original neural network in which a plurality of artificial neurons are connected, and generating a vector including a plurality of outputs output from the artificial neurons for each of the plurality of artificial neurons. Determining, based on the vector, selecting a plurality of artificial neurons having the same or similar behavior, and integrating the selected plurality of artificial neurons.
  • the method for producing neural network data includes providing a plurality of input data to an original neural network in which a plurality of artificial neurons are connected, and converting a vector including a plurality of outputs output from the artificial neurons into a plurality of the artificial neurons. For each of them, based on the vector, select a plurality of artificial neurons having the same or similar behavior and integrate the selected plurality of artificial neurons, so that the number of artificial neurons is smaller than that of the original neural network. Generating an integrated neural network and generating neural network data for causing a neural network engine to function as the integrated neural network.
  • the neural network utilization device functions as a neural network, and the neural network is configured such that artificial neurons that output the same or similar outputs when an input is given to an original neural network having a larger number of artificial neurons than the neural network. It is integrated and structured.
  • FIG. 1 is a configuration diagram of a neural network processing device and a neural network using device.
  • FIG. 2 is a flowchart of the downsizing process.
  • FIG. 3 is an explanatory diagram of the neuron behavior vector.
  • FIG. 4 is an explanatory diagram of the neuron output.
  • FIG. 5 is an explanatory diagram of a neuron behavior vector matrix and the like.
  • FIG. 6 is an explanatory diagram of the weight matrix and the weight vector.
  • FIG. 7A is a diagram showing the same neuron behavior vector.
  • FIG. 7B is an explanatory diagram of a neuron behavior vector and a weight vector output from a layer having two neurons.
  • FIG. 7C is a diagram showing the neural network after integration.
  • FIG. 8A is a diagram showing two neuron behavior vectors having different sizes.
  • FIG. 8B is an explanatory diagram of a neuron behavior vector and a weight vector output from a layer having two neurons.
  • FIG. 8C is a diagram showing the neural network after integration.
  • FIG. 9A is a diagram showing neuron behavior vectors having different sizes and directions
  • FIG. 9B is a diagram showing a neural network after integration.
  • FIG. 10 is a diagram showing three neuron behavior vectors.
  • FIG. 11 is an explanatory diagram of a chain of integration.
  • FIG. 12 is a diagram illustrating asymmetry of integration.
  • FIG. 13A is a diagram showing intra-layer integration.
  • FIG. 13B is a diagram showing inter-layer integration.
  • FIG. 14A is a diagram showing an experimental result for the first model.
  • FIG. 14B is a diagram illustrating an experimental result of the second model.
  • FIG. 14A is a diagram showing an experimental result for the first model.
  • FIG. 15 shows the results of a comparison experiment with the method of Non-Patent Document 1.
  • FIG. 16 is an explanatory diagram of a first criterion of projection residual and integration in the first embodiment.
  • FIG. 17 is an explanatory diagram of a second standard of integration in the second embodiment.
  • FIG. 18 is a configuration diagram of a deep neural network.
  • FIG. 19 is a graph showing a comparison experiment result of the first embodiment and the second embodiment.
  • FIG. 20 is an explanatory diagram of an error in the third embodiment.
  • FIG. 21 is a graph showing a comparison experiment result of the second embodiment and the third embodiment.
  • FIG. 22 is a flowchart illustrating the neuron integration processing according to the fourth embodiment.
  • FIG. 23 is an explanatory diagram of the neuron integration processing according to the fourth embodiment.
  • FIG. 24 is an explanatory diagram of the neuron behavior vector in the fourth embodiment.
  • FIG. 25 shows an experimental result of the neuron integration processing according to the fourth embodiment.
  • the neural network processing device supplies a plurality of input data to a neural network in which a plurality of artificial neurons are connected, and converts a vector including a plurality of outputs output from the artificial neuron into a plurality of vectors.
  • the apparatus is configured to execute processing for obtaining each of the artificial neurons. By actually providing input data to the neural network, the output of each artificial neuron can be obtained.
  • the output of each artificial neuron indicates the behavior of each artificial neuron. That is, by obtaining the output vector, the behavior of the artificial neuron when the input data is given can be grasped.
  • the neural network processing device is configured to select a plurality of artificial neurons having the same or similar behavior based on the vector, and execute an integration process of integrating the selected plurality of artificial neurons.
  • the integration can reduce the size of the neural network.
  • a plurality of artificial neurons having the same or similar behavior are integrated based on a vector indicating the behavior of the artificial neuron, appropriate integration becomes possible, and the performance of the neural network is reduced when downsizing. Can be suppressed. That is, the performance of the neural network is not determined only by the weight of the connection of the artificial neurons, but is also affected by the activation function and bias of each artificial neuron.
  • weight vectors weight sets
  • the behavior of each artificial neuron when input data is actually given is not necessarily the same or similar.
  • appropriate attention can be paid to the same / similarity of the vector indicating the behavior of each neuron when the input data is given, so that appropriate integration is possible.
  • the integration of neurons may be performed only in one neural network, or may be performed over a plurality of neural networks.
  • a plurality of artificial neurons having the same or similar behavior can be selected based on an index indicating the degree of similarity between vectors. That is, if the vectors are the same or similar, it can be determined that they behave the same or similar. Various well-known indices can be adopted as the indices indicating the similarity between the vectors. Whether or not the vectors are similar can be determined, for example, by comparing an index indicating the similarity of the vectors with a predetermined threshold.
  • the index is a residual between a first vector included in the plurality of vectors and a projection of the first vector onto a second vector included in the plurality of vectors.
  • this residual which of the plurality of artificial neurons is to be integrated with which (for example, a first artificial neuron that outputs a first vector, a second artificial neuron that outputs a second vector) (Whether to integrate the artificial neuron or the second artificial neuron to the first neuron).
  • the integration process may include a determination process of determining an integration destination neuron to be integrated based on the residual among a plurality of selected artificial neurons.
  • the residual can be obtained by the number of combinations of the plurality of vectors. Since the plurality of residuals serve as an index of which of the plurality of artificial neurons to be integrated with which, it is possible to appropriately select an integration method.
  • the neural network has a plurality of layers each having an artificial neuron.
  • artificial neurons included in different layers can be selected as a plurality of artificial neurons having the same or similar behavior. Preferably it is.
  • inter-layer integration for integrating artificial neurons included in different layers can be performed.
  • the index may be based on an error in the internal activity of the other layer artificial neuron calculated from the vector. Since the index is based on an error in the internal activity, it is possible to prevent a decrease in accuracy due to the integration of artificial neurons.
  • “based on the error of the internal activity” means that if the index is based on the error of the internal activity, a value other than the error of the internal activity (for example, the number of parameters deleted due to integration) Means that it may also be based on Further, “based on the error of the internal activity” may mean that the index is a derived value calculated based on the “error of the internal activity” (for example, a value calculated by an activation function). Means that.
  • the index is further based on the number of parameters of the neural network to be deleted by integration. In this case, the number of parameters can be efficiently deleted.
  • the index is preferably a value obtained by dividing the error caused by the integration by the number of parameters deleted by the integration. Further, the index is a first vector that is the vector output from the first artificial neuron included in the plurality of artificial neurons, and the vector output from the second artificial neuron included in the plurality of artificial neurons. The residual of the projection of the first vector onto a certain second vector, and the weight of the connection from the second artificial neuron to the other layer when the first artificial neuron is integrated into the second artificial neuron. Can be based on
  • the integration processing may include updating a weight for the integration-target neuron using a weight for the artificial neuron that is erased with the integration.
  • the behavior of the artificial neuron that is deleted due to the integration may be simulated by two or more artificial neurons including the integration destination neuron.
  • the weights for the two or more artificial neurons including the integration destination neuron are updated using the weights for the artificial neurons that are erased during the integration.
  • the computer program provides a neural network in which a plurality of artificial neurons are connected to each other to provide a plurality of input data, and converts a vector including a plurality of outputs output from the artificial neurons into a plurality of the artificial neurons.
  • the computer is caused to execute a process of obtaining each of the neurons and a process of selecting a plurality of artificial neurons having the same or similar behavior based on the vector and integrating the selected plurality of artificial neurons.
  • a plurality of input data is given to an original neural network in which a plurality of artificial neurons are connected, and a vector including a plurality of outputs output from the artificial neuron is expressed by:
  • the method includes obtaining a plurality of artificial neurons for each of the plurality of artificial neurons, selecting a plurality of artificial neurons having the same or similar behavior based on the vector, and integrating the selected plurality of artificial neurons.
  • it is possible to manufacture a neural network in which the original neural network is reduced in size, and it is possible to suppress a decrease in the performance of the manufactured neural network.
  • a plurality of input data are given to an original neural network in which a plurality of artificial neurons are connected, and a vector including a plurality of outputs output from the artificial neurons is provided.
  • Is determined for each of the plurality of artificial neurons based on the vector, select a plurality of artificial neurons that have the same or similar behavior, by integrating the selected plurality of artificial neurons, from the original neural network Generating an integrated neural network having a small number of artificial neurons, and generating neural network data for causing a neural network engine to function as the integrated neural network.
  • the method for manufacturing neural network data it is possible to manufacture neural network data on a reduced scale.
  • the manufactured neural network data is small, it can be executed even in a neural network engine having relatively low computational power.
  • the neural network engine is configured by an arithmetic device such as a CPU, a GPU, an FPGA, or an ASCI. Since the neural network data manufactured by the manufacturing method of the embodiment is small-scale, it can be executed even by an arithmetic unit having a relatively low calculation capability such as a low power consumption CPU in an embedded system.
  • the neural network using device is a device that functions as a neural network, and the neural network is the same when an input is given to an original neural network having a larger number of artificial neurons than the neural network. Alternatively, it is configured by integrating artificial neurons having similar outputs.
  • the neural network downsizing method is a neural network downsizing method including obtaining an index for downsizing a neural network in which a plurality of artificial neurons are connected, wherein the index is , Are obtained based on a plurality of outputs output from each artificial neuron when a plurality of input data are given to the neural network.
  • FIG. 1 shows a neural network processing device (hereinafter, referred to as “processing device”) 10 and a neural network using device (hereinafter, “using device”) 100 according to the embodiment.
  • the processing device 10 according to the embodiment executes a downsizing process 21 for downsizing the neural network N1.
  • the method implemented by executing the downsizing process 21 is also a method of manufacturing a downsized neural network or a method of manufacturing downsized neural network data.
  • the neural network N1 to be scaled down is called an “original neural network”, and the scaled down neural network N2 is called an “integrated neural network”.
  • the processing device 10 can also execute a process for machine learning (deep learning) of the original neural network N1.
  • the processing device 10 reduces the size of the learned original neural network N1.
  • the processing device 10 is configured by a computer having one or a plurality of processors 20 and a storage device 30.
  • the one or more processors 20 include, for example, a graphics processing unit (GPU).
  • One or more processors 20 may further include a CPU.
  • a massively parallel computing mechanism such as a GPU is suitable for a large amount of computation for executing a process related to a large-scale neural network.
  • the storage device 30 stores the computer program 31 executed by the processor 20.
  • the processor 20 performs the downsizing process 21 by executing the computer program 31.
  • the miniaturization process 21 includes a neurocoding (Neuro Coding) process 22 and a neuron unification (Neuro Unification) process 23, as described later. These processes 22 and 23 will be described later.
  • the storage device 30 stores a plurality of input data 40 used for the downsizing process 21.
  • the input data is provided as an input to the original neural network N1 in the neurocoding process 22 in order to grasp the behavior of the neuron.
  • the input data 40 is not particularly limited as long as it is data handled by the neural network, and is, for example, image data or audio data.
  • the storage device 30 can store data (integrated neural network data) N20 representing the integrated neural network N2 manufactured by the downsizing process 21.
  • the integrated neural network data N20 is data including various parameters (weights, connection relations, etc.) representing the integrated neural network N2.
  • the integrated neural network data N20 is read by the neural network engine, thereby causing the neural network engine to function as the integrated neural network N2.
  • the utilization device 100 has a neural network engine that reads the reduced-scale neural network data N20 and functions as an integrated neural network N2.
  • the neural network engine includes, for example, a processor 200 and a storage device 300.
  • the processor 200 may be, for example, a low power consumption CPU in an embedded system.
  • the size of the neural network data N20 is smaller than that of the data of the original neural network N1, so that processing by a low power consumption CPU is possible.
  • the embedded system is not a general-purpose computer system but a computer system for a specific application.
  • home devices such as smartphones and home appliances, industrial devices such as industrial robots, and various medical devices.
  • a computer system in vehicles such as automobiles and drones, and other devices.
  • a low-power-consumption CPU is often used as a processor, but the neural network data N20 has a small data size and is therefore easy to execute.
  • the integrated neural network N2 is used for, for example, image / sound conversion, segmentation, identification, and the like. More specifically, for example, it can be used to extract necessary information from an image of a target object, such as measurement of the number of customers in a store or the like, gender / age group analysis, vehicle counting, vehicle type analysis, and the like.
  • the original neural network N1 is large-scale and computationally expensive, so it is difficult to execute it in an embedded system. However, since the integrated neural network N2 is downsized, it can be easily executed in an embedded system. It is.
  • FIG. 2 shows a process (small-scale processing 21) of manufacturing an integrated neural network N2 reduced in size from the original neural network N1.
  • the original neural network N1 to be reduced in size is, for example, a deep neural network, and more specifically, is, for example, a convolutional neural network (CNN).
  • the original neural network N1 has a fully connected layer in which artificial neurons arranged in layers are connected between layers.
  • the downsizing process 21 of the embodiment downscales all the connected layers as an example. It is assumed that the original neural network N1 is a model that has undergone deep learning.
  • the neurocoding process is a process of giving a plurality of input data (coding data) 40 to the original neural network N1 and detecting the behavior of each artificial neuron included in the original neural network N1 as a neuron behavior vector.
  • FIG. 3 shows an original neural network N1 having a plurality of layers.
  • FIG. 3 representatively shows three layers (1-1 layer, l layer, and l + 1 layer).
  • the circles in each layer are artificial neurons.
  • the i-th neuron of l layer shown in Z i l indicating the j-th neuron of l + 1 layer as Z j l + 1.
  • Equations (1) and (2) are general notations indicating forward propagation in a neural network.
  • w ij l in Equation (1) is a connection from a plurality of (l: the number of neurons included in the l layer) neurons Z i l of the l layer to a neuron Z j l + 1 of the l + 1 layer.
  • b j l + 1 indicates the bias in neuron Z j l + 1 .
  • u j l + 1 indicates the internal activity.
  • F in the equation (2) indicates an activation function.
  • the internal activity matrix in the (l + 1) th layer is defined as in the equation (3) in FIG.
  • the internal activity matrix of equation (3) indicates the internal activity of rl + 1 neurons in the l + 1 layer when one input data is given to the neural network N1.
  • NBV Neuron Behavior Vector
  • NBV neuron behavior vector
  • a weight matrix from the l-th layer to the (l + 1) -th layer is expressed as in equation (5) in FIG.
  • the weight matrix of Expression (5) has a plurality of (r l ) weight vectors from the l-th layer to the l + 1-th layer as elements.
  • the weight vector is a vector of a weight (weight) from each neuron in the l layer to the l + 1 layer.
  • the NBV matrix in the l + 1 layer is represented by the equations (6) and (7) in FIG. 6 using the NBV matrix in the l layer, the weight matrix from the l layer to the l + 1 layer, and the bias matrix. Note that the bias matrix is expressed as in equation (8) in FIG.
  • equation (6) in FIG. 5 can be rewritten as equation (9) in FIG.
  • the weight vector w i l and neuron behavior vector x i l in the right side of the equation (9) is a variable related to neuronal z i l.
  • the matrix w i l x i lT sections except the bias matrix in the right side of the equation (9) can be considered as an element of U l + 1 propagated from neuron z i l.
  • a neuron integration process 23 is executed.
  • the neuron integration process 23 based on the neuron behavior vector (NBV), a plurality of artificial neurons having the same or similar behavior are selected from all neurons of the neural network N1.
  • the neural network N1 is further downsized by integrating the selected plurality of artificial neurons.
  • the behavior of the artificial neuron erased by the integration is inherited by the artificial neuron remaining by the integration. By inheriting the behavior, it is possible to suppress a decrease in the performance of the original neural network N1 even if the size is reduced.
  • FIG. 7A, 7B and 7C show neuron integration in the case of the same behavior.
  • the l layer of the neural network N1 it is assumed that only two neurons (first neuron Z i l and the second neuron Z j l) are present.
  • the behavior vector of the first neuron Z i l is the same as the behavior vector of the second neuron Z j l .
  • equation (9) in FIG. 5 becomes equation (10) in FIG. 7B.
  • a plurality of neurons Z i l , Z j l having the same behavior vector are selected as targets for integration.
  • the selected neurons Z i l , Z j l are integrated into one. If behavior vectors are the same, to the first neuron Z i l may be integrated into the second neuron Z j l, may be integrated second neuron Z j l to the first neuron Z i l. In any of the integrations, the performance after the integration is equivalent.
  • the first neuron Z i l integrated into the second neuron Z j l, the first neuron Z i l shall be deleted.
  • the first weight vector for the first neuron Z i l is integrated into the second vector for the second neuron Z j l , and the first weight vector is to be eliminated.
  • the second weight vector after integration is shown in FIG. 7C.
  • Expression (11) in FIG. 7C is obtained by rewriting expression (10) in FIG. 7B into a format after integration. If the two behavior vectors are the same, the right side of equation (10) and the right side of equation (11) are clearly equivalent. Therefore, the performance of the neural network before integration shown in FIG. 7B is equivalent to the performance of the neural network after integration shown in FIG. 7C, and the performance does not deteriorate due to the integration.
  • FIG. 8A, 8B, and 8C show a first example of neuron integration in the case of similar behavior.
  • the l layer of the neural network N1 it is assumed that only two neurons (first neuron Z i l and the second neuron Z j l) are present.
  • the behavior vector (first NBV) of the first neuron Z i l is k times (k is a natural number larger than zero) the behavior vector (second NBV) of the second neuron Z j l.
  • the first neuron behavior vector and the second neuron behavior vector are linearly dependent, and one vector can represent the other vector.
  • a plurality of neurons Z i l , Z j l having such a relationship are also selected as targets for integration.
  • the neural network before integration shown in Figure 8B the first neuron Z i l integrated into the second neuron Z j l, erases the first neuron Z i l, the for the first neuron Z i l
  • One weight vector can be integrated into the second vector for the second neuron Z j l to eliminate the first weight vector.
  • the second weight vector after integration is shown in FIG. 8C.
  • the second weight vector after integration is the sum of the first weight vector multiplied by k and the second weight vector before integration.
  • FIGS. 9A and 9B show a second example of neuron integration in the case of similar behavior.
  • the magnitudes of the vectors are different and the directions are the same, but in the second example, the behavior vector of the first neuron (first NBV) and the behavior vector of the second neuron (second NBV) are: Not only the size but also the direction is slightly different.
  • equation (12) of FIG. 9A the projection of the first NBV onto the second NBV is p, and the residual between the first NBV and p is e.
  • the projection p of the first NBV and the second NBV have the same relationship as shown in FIG. 8A. Therefore, as shown in FIG. 9B, the same integration as in FIG. 8C can be performed.
  • the second weight vector after integration is the sum of a value obtained by multiplying the first weight vector by k and the second weight vector before integration.
  • k is a value obtained from the projection p and the second NBV, and is shown in Expression (13) of FIG. 9B.
  • the residual e in the first NBV is orthogonal to the second NBV. Therefore, when the first neuron is integrated with the second neuron, the component of the residual e in the first NBV cannot be inherited by the integrated second neuron. Therefore, a plurality of neurons capable of outputting a vector having a relationship in which the residual e is sufficiently small (for example, the residual e becomes equal to or less than a predetermined threshold) are regarded as neurons having similar behavior, and are subjected to integration. Can be selected as Thereby, the influence on the neural network performance due to the integration can be suppressed.
  • an objective function e total shown in Expression (14) of FIG. 10 is introduced in order to manage the influence of the residual at the time of integration.
  • C represents a set of neuron behavior vectors (NBV) of integrated neurons in the neural network.
  • the second neuron Z j l integrated are intended to be further integrated into the third neuron Z k l.
  • the second neuron Z j l had succeeded the role of the first neuron Z i l is no longer fulfill the role of the first neuron Z i l. Therefore, the third neuron Z k l is not only the second neuron Z j l, it is necessary to also play the role of the first neuron Z i l. That is, the second neuron Z j l integrated further when it is integrated into the third neuron Z k l, third weight vector for the 3 neurons Z k l is as shown in equation (16) in FIG. 11 Will be updated to Then, e total is recalculated as shown in equation (17) of FIG.
  • the term on the right side of the equation (15) (the residual between the first NBV and the second NBV) does not exist. This is the integration of the third neuron Z k l, because also the first neuron Z i l is also erased second neuron Z j l.
  • e total needs to be recalculated.
  • the processing device 10 keeps holding the weight vector for the neuron already erased during the integration process 23. As a result, it is possible to recalculate the residual between the first neuron and the already deleted first neuron, like the first residual shown in Expression (17).
  • the residual e is used for determining which one of the plurality of neurons selected as the integration target is to be integrated, that is, for determining the integration destination neuron.
  • the determination of the destination neuron takes into account the asymmetry of integration. Due to the asymmetry of integration, the magnitude (norm) of the residual e differs depending on which neuron is integrated with which neuron. Therefore, in order to make e total as small as possible, it is necessary to determine the integration destination neuron in which the residual error e becomes small.
  • a neuron Z i l indicates the norm of residuals when integrated into the neuron Z j l, likewise formula (19), on the contrary, the neuron Z j l neuron Z i l This shows the norm of the residual when integrated.
  • is the angle between the two neuron behavior vectors.
  • the norms of the residuals shown in equations (18) and (19) will be different. Therefore, in the determination processing of the integration destination neuron, as shown in Expressions (18) and (19), the norm of the residual is calculated between a plurality of vectors to be integrated, and the residual is minimized. Decide where to integrate.
  • the remaining neurons are integrated with the integration destination neuron determined by the determination process.
  • the selection of the integration target is based on the same / similarity of the neuron behavior vectors, but whether the same / similarity is required does not need to be determined only within the same layer, and may be determined across a plurality of layers. . Therefore, in the embodiment, when neurons belonging to different layers have the same or similar neuron behavior vectors, neurons belonging to different layers may be selected as integration targets.
  • FIG. 13A shows integration within the same layer (intra-layer integration).
  • Figure 13 (a) the neuron Z il is integrated into other neurons Z j l belonging to the same layer.
  • the deleted weight vector for neuronal Z il (corresponding to the bond shown by a dotted line) is the weight integrated vector (corresponding to the bond shown by a solid line) for other neurons Z j l (updated) .
  • FIG. 13B shows integration between different layers (interlayer integration).
  • the neuron Z i l belonging to the l-th layer is integrated with the neuron Z j m belonging to the other layer, the m-th layer.
  • processing 231 of calculating a residual e based on a neuron behavior vector (NBV) is performed for a combination of all neurons included in the original neural network N1.
  • a process 232 of selecting a combination of two or more neurons whose residual e is equal to or less than a predetermined threshold value as an integration target is performed.
  • a process 234 for determining one integration-destination neuron from the selected integration target is performed, and a process 233 for integration into the integration-destination neuron is performed.
  • the weight vector is also updated.
  • the processing device 10 By the neuron integration process 23, a reduced-scale integrated neural network N2 is manufactured while almost maintaining the performance of the original neural network N1.
  • the processing device 10 generates (manufactures) parameters such as a weight (weight) in the integrated neural network N2 as integrated neural network data N20, and stores it in the storage device 30.
  • the processing device 10 can perform a process 24 of outputting the data N20 to the outside.
  • the output process 24 may be an output to a recording medium, or may be to transmit the data N20 from the processing device 10 to the use device 100 via a network (not shown).
  • the usage device 100 stores the data N20 received from the processing device 10 in the storage device 300.
  • the use device 100 reads the data N20 and functions as an integrated neural network N2.
  • the model (first model) used in the experiment is a neural network (original neural network N1) composed of three fully connected layers (input layer, hidden layer, and output layer).
  • the input layer has 784 neurons.
  • the hidden layer has 2000 neurons, each having a ReLU function.
  • the output layer has 10 neurons, each having a softmax function.
  • This model was trained with 6000 learning characters of MINST. The number of epochs was set to 100.
  • the estimation accuracy of this model (original neural network N1) was 0.9795 (error rate: 0.0205).
  • VGG16 model (second model) was also prepared.
  • the output layer of 1000 neurons was replaced with a new layer of 31 neurons, and the fully connected layer was fine-tuned (re-learned) with 100 epochs.
  • the estimation accuracy of this VGG16 model was 0.8380.
  • the entropy method is based on the entropy importance function (T. He, Y. Fan, Y. Qian, T. Tan, K. Yu, Reshaping deep neural network for fast decoding by node-pruning, Proc. IEEE International Conference on Acoustics This is a method for evaluating the importance of neurons based on Signal Processing, pp. 245-249, Florence, Italy, May 2014). Insignificant neurons are deleted.
  • the miniaturization process (neurocoding 22 and neuron integration 23) 21 of the embodiment was applied to the model learned by MINST.
  • the entropy method was also applied.
  • the entropy method was applied in two cases, one without re-learning and the other with re-learning every 100 neurons were deleted.
  • 2,000 neurons in the hidden layer were used as a target for integration / reduction of neurons.
  • FIG. 14A and FIG. 14B show experimental results.
  • the horizontal axis represents the number of neurons in the hidden layer after integration or reduction
  • the vertical axis represents the estimated error rate.
  • “Neuro-Unification” indicates a result of applying the downsizing process 21 of the embodiment
  • “Entropy” indicates a result of applying no retraining of the entropy method
  • “Entropy-retraining”. Shows the result of applying re-learning with the entropy method.
  • FIG. 14A shows the result using the first model.
  • the error rate greatly increases when the number of neurons decreases below 1500, whereas according to the miniaturization processing 21 of the embodiment, the initial 2000 neurons have 85% The error rate increased by only about 1%, even if the decrease was near.
  • the downsizing process 21 of the embodiment even though re-learning was not performed, a better result was obtained than with entropy method having re-learning.
  • FIG. 14B shows the result using the second model.
  • the re-training of the entropy method was performed every time 500 neurons were deleted.
  • the neurons of the two hidden fully connected layers are used as the targets for integration / reduction of neurons.
  • the number of neurons in each of the two hidden fully connected layers is 4096.
  • the scale-down processing 21 of the embodiment showed a better result than that without re-learning of the entropy method.
  • a result similar to that of the entropy method with re-learning was obtained until the number of neurons decreased by almost half, even though re-learning was not performed.
  • FIG. 15 shows the result of a comparison experiment between the downsizing process 21 of the embodiment and the method of Non-Patent Document 1.
  • the experiment here used the same model data as the experiment of MNIST in Non-Patent Document 1.
  • “Neuro-Unification” indicates the result of applying the downsizing process 21 of the embodiment
  • “DPP” applies the method described in Non-Patent Document 1 (Data-free-Parameter Pruning (DPP)). The results are shown.
  • the downsizing process 21 of the embodiment is superior to the DPP of Non-Patent Document 1 in that a reduction in performance can be suppressed and that it is superior.
  • the criteria for selecting neurons to be integrated are different from those in the first embodiment.
  • the selection criterion for neurons to be integrated is a criterion in terms of minimizing an error of a neuron behavior vector (NBV) caused by the integration of neurons.
  • the selection criterion for the neuron to be integrated is based on the internal activity of the neuron in the layer next to the layer where the integrated neuron exists (the layer to which the output of the integrated neuron is given). This is a criterion from the viewpoint of minimizing a degree error (square error).
  • the criteria for selecting neurons to be integrated in the first embodiment will be described again.
  • the integration is performed such that the projection residual r between the plurality of neuron behavior vectors (NBV) is minimized. A pair of neurons is selected. Then, the neuron to be deleted so that the projection residual r becomes small and the remaining neuron (integration destination neuron) are determined.
  • a neuron behavior vector x i and x j have a relationship shown in FIG. 16, a case where neurons outputs these neurons behaviors vector is integrated. In this case, the projection residual r (x i, x j) shown in equation (20) in FIG.
  • the integration-destination neuron as the norm of decrease is determined. Specifically, the neuron that outputs x i is deleted, and the neuron that outputs x j becomes the integration destination neuron, replacing the function of the neuron that outputs x i .
  • a first criterion for integration of neurons in the first embodiment is represented by Expression (21) in FIG.
  • x * remove is the behavior vector of the neuron to be removed
  • x * remain is the behavior vector of the remaining neuron.
  • argmin is a function for obtaining a set of
  • the first criterion shown in equation (21) of FIG. 16 is for minimizing an error (projection residual r) of a neuron behavior vector (NBV) caused by integration of neurons.
  • a second criterion is used. The second criterion is to minimize the error (square error) of the internal activity of the neuron in the layer next to the layer where the integrated neuron exists (the layer to which the output of the integrated neuron is given). It is a standard that can be obtained.
  • neurons to be integrated are selected using an error relating to internal activity as an index.
  • equation (24-1) in FIG. 17 The sum r IA of the square errors ⁇ A k 2 in all neurons of the layer (l + 1 layer) after the l layer after integration is expressed as in equation (24-1) in FIG.
  • equations (24-2) and (24-3) are obtained. If the neurons m and n to be integrated are determined so as to minimize the equation (24-3), the error of the internal activity of the neuron (other layer artificial neuron) in the next layer (l + 1 layer) is minimized. That is, equation (25-1) in FIG. 17 is the second criterion for integration.
  • equation (25-2) By transforming equation (25-1) in FIG. 17, equation (25-2) is obtained.
  • the second criterion shown in the equation (25-2) is obtained by multiplying the “difference from the first criterion D” shown in FIG. 17 by the first criterion of the equation (21) in FIG. I have.
  • the difference D from the first criterion is the square root of the sum of squares of the weights w ik of all the connections from the ith neuron in the l layer to the next l + 1 layer. That is, the second criterion takes into account not only the error r (projection deviation) handled in the first criterion but also the weight on the output side of the neuron.
  • the second criterion not only considers the error of the neuron behavior vector, but also considers the integration of the internal activity in the other layer (the next l + 1 layer) to which the output of the l layer in which the integrated neuron exists is given.
  • the neurons to be integrated are selected to reduce the effect.
  • FIG. 18 shows a VGG 16 used for comparison between the first embodiment (first criterion: NBV error minimization method) and the second embodiment (second criterion: internal activity square error minimization method),
  • FIG. 19 shows the results of the comparative experiment.
  • the VGG 16 used in the experiment is a DNN (Deep Neural Network) for image identification, and has a convolutional network (convolutional @ Networks) and a fully connected network (fully @ connected @ Networks) as shown in FIG.
  • the convolution network (convolution layer) of FIG. 18 includes a first layer FC1 and a second layer FC2.
  • neuron integration was performed after neurocoding.
  • integration using the first criterion NBV error minimization method
  • integration using the second criterion internal activity square error minimization method
  • fine tuning was not performed.
  • FIG. 19 shows the error rate for the test data.
  • the horizontal axis in FIG. 19 indicates the number of coupling coefficients (parameters) of the neuron, and the vertical axis indicates the error rate.
  • the second criterion internal activity square error minimization method
  • the false identification rate is suppressed lower than that of the first criterion (NBV error minimization method). It can be seen that an integrated neural network having various characteristics has been obtained.
  • the second criterion can suppress a decrease in accuracy of the integrated neural network more than the first criterion.
  • FIGS. 20 and 21 show a modified example (third embodiment) of the neuron integration process 23.
  • points that are not particularly described are the same as those in the first embodiment and the second embodiment.
  • neurons to be integrated are selected so as to minimize the error r IA relating to the internal activity, but in the third embodiment, r param (Eq. (27 in FIG. 20) A pair of neurons that are integrated so as to minimize ()) is selected. r param is obtained by dividing the error r IA by param (z i l ) (see equation (26) in FIG. 20).
  • param (z i l ) indicates the number of parameters deleted from the neural network with the deletion of the neuron z i l .
  • the parameters here include the weight w of the connection between neurons and the bias b of the neurons.
  • the number of neurons is often different for each layer.
  • the number of weights w connected to neurons in a certain layer depends on the number of neurons existing in an adjacent layer.
  • the parameter number param (z i l ) for the i-th neuron z i l in the l- th layer is defined by equation (26) in FIG.
  • n l-1 is the number of neurons existing in the l-1 layer
  • n l + 1 is the number of neurons existing in the l + 1 layer.
  • the number of parameters deleted when one neuron is deleted differs for each layer. Since the size of the neural network is determined by the number of parameters, it is preferable that a larger number of parameters be deleted by one integration in order to reduce the size of the neural network.
  • the deletion of the first neuron is accompanied by the deletion of the first neuron. If the number of parameters to be deleted by deletion is larger than the number of parameters to be deleted due to the deletion of the second neuron, it is advantageous to perform integration by deleting the first neuron for downsizing. is there.
  • the error per parameter deleted due to the integration of neurons is minimized.
  • the error r param relating to the internal activity per one parameter to be deleted is obtained by dividing the error r IA relating to the internal activity by the number param of parameters to be deleted due to the integration of neurons, as shown in equation (27) of FIG. It is required by doing.
  • r param is not limited to the value obtained by dividing the error r IA by the number of parameters param, and may be calculated so that the value decreases as the number of parameters param increases.
  • FIG. 21 shows the results of a comparison experiment between the second embodiment (internal activity square error minimization method) and the third embodiment (parameter number compression method).
  • neurocoding was performed on the VGG16 model shown in FIG. 18, and then neuron integration was performed in all connected layers.
  • the neuron integration was performed on the intermediate layer 2 of the first layer FC1 and the second layer FC2.
  • 10 classes of each class were randomly extracted from 1000 classes of learning data of Imagenet (ILSVRC2012) dataset, and a total of 10,000 data was used.
  • ILSVRC2012 imagenet
  • the vertical axis represents the test error
  • the horizontal axis represents the number of parameters.
  • the number of parameters can be reduced while maintaining higher accuracy than in the second embodiment (internal activity square error minimization method). You can see that.
  • neuron integration the behavior of a neuron that is erased as a result of integration is simulated by other neurons.
  • the number of neurons simulating the behavior of the neurons to be erased may be one or two or more.
  • a case will be described in which the behavior of a neuron to be erased is simulated by two or more neurons.
  • FIG. 22 shows a neuron integration process 23 according to the fourth embodiment.
  • the neuron integration process 23 shown in FIG. 22 integrates the process 231 for calculating the residual, the process 232 for selecting the neuron to be integrated, and the selected neurons, similarly to the neuron integration process 23 shown in FIG. Processing 233.
  • the integration destination neuron is determined, neurons other than the integration destination neuron among the selected neurons are deleted, and the weight vector for the integration destination neuron is updated.
  • Equation (28) in FIG. 23 shows an update equation of the weight w jn of the connection from the integration destination neuron Z j to the neuron Z n ′ of the next layer (l + 1).
  • the weight update in the process 233 is performed according to the equation (28).
  • Equation (28) is equivalent to equation (13) in FIG. 9B.
  • the coefficient a ik * in the equation (28) is a value obtained from the projection p and the NBV x j , and is equivalent to k in the equation (13).
  • x j is a behavior vector neuron Z i NBV (first 1NBV) is a neuron Z j behavior vector NBV (first 2NBV) It is approximated by a certain x j .
  • Residual r i of this approximation is represented by the formula (29) in FIG. 24.
  • the residual r i is equivalent to the residual e in Figure 9A. Residual r i in order to cause the error to the next layer (l + 1), is preferably small.
  • the neuron Z k selection process 235 for making the simulated behavior of a neuron Z i is performed (see FIG. 22).
  • the selection process 235 from among the neurons that remain without being erased, neuron Z k which can best approximate the residual r i is selected.
  • the selection of the neuron Z k is performed according to the equation (30) in FIG. Beta ik * x k shown in FIG. 24 shows an approximation of the residual r i according to x k is a behavior vector NBV neuron Z k.
  • a weight (weight vector) update process 236 for the selected neuron Z k is executed.
  • the update of the weight for the neuron Z k is performed using the coefficient ⁇ ik * included in the approximation ⁇ ik * x k .
  • Expression (31) in FIGS. 23 and 24 shows an update expression of the weight w kn of the connection from the neuron Z k to the neuron Z n ′ of the next layer (l + 1).
  • the residual r i and, x and approximate ⁇ ik * x k of the residual r i by k, the residuals (residual vector), a new residual r i 237 is executed.
  • the process 235 and the process 236 are repeated with the new residual r i .
  • the processing 235 and the processing 236 are repeated a required number of times. By the repetition, the residual r i of x i becomes smaller. Thereby, the error of the internal activity of the neuron of the next layer (l + 1) is reduced.
  • the residual can be reduced by a plurality of neurons. Since the loads of the processes 235, 236, and 237 of the fourth embodiment are small, the residual can be reduced without a large calculation resource.
  • FIG. 25 shows an experimental result of the neuron integration processing 23 according to the fourth embodiment.
  • neurocoding was performed on the VGG16 model shown in FIG. 18, and the neuron integration processing 23 according to the fourth embodiment was performed on all the connection layers FC1 and FC2.
  • data for neurocoding 5,000 pieces of data randomly selected from the Imagenet (ILSVRC2012) dataset were used.
  • the neuron integration is performed until the number of parameters is reduced to 1/2 (“ ⁇ 1 /” in FIG. 25) and until the number of parameters is reduced to 1/3 (“ ⁇ 1 /” in FIG. 25).
  • ⁇ 1 / in FIG. 25
  • FIG. 25 The experimental results shown in FIG. 25 are obtained when the processes 235 and 236 in FIG. 22 are repeated 0 times (NU (0) in FIG. 25) and when the processes are repeated once (NU (1) in FIG. 25). Similarly, the case where the repetition is 10 times (NU (10) in FIG. 25) is shown.
  • the numerical values in FIG. 25 indicate the accuracy (Accuracy) of the integrated neural network N2. As shown in FIG. 25, the accuracy is improved when the processes 235 and 236 are repeated 0 times as compared with the case where the processes 235 and 236 are repeated 0 times. In addition, the accuracy increases as the number of repetitions increases.
  • processing device 20 processor 21: downsizing process 22: neurocoding process 23: neuron integration process 24: output process 30: storage device 31: computer program 40: input data 100: neural network using device 200: processor 231: Residual calculation process 232: Selection process 233: Integration process 234: Decision process 235: Selection process 236: Update process 237: Residual update process 300: Storage device N1: Original neural network N2: Integrated neural network N20: Integrated neural network data FC1: first layer FC2: second layer

Landscapes

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

Abstract

小規模化の際におけるニューラルネットワークの性能の低下を抑制する。本開示のニューラルネットワーク処理装置10は、複数の人工ニューロンが結合したニューラルネットワークN1に対して複数の入力データ40を与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理22と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理23と、を実行するように構成されている。

Description

ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
 本開示は、ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法に関する。
 ディープニューラルネットワークのようなニューラルネットワークは、複数の人工ニューロン(以下、「ニューロン」ということがある)が結合した計算機構である。ニューラルネットワークへ大量のデータを与えて、ニューロンの各結合の重み係数等の最適化計算をすることを深層学習とよぶ。
S. Srinivas and R. V. Babu., Data-free parameter pruning for deep neural networks., In Proceedings of the British Machine Vision Conference (BMVC), pages 31.1-31.12. BMVA Press, 2015.
 ニューラルネットワークの学習の際及び学習済ニューラルネットワークを動作させる際には、膨大な計算が必要となる。すなわち、ニューラルネットワークは、一般に、ニューロンの数が多く、大規模であるため、膨大な計算が必要となる。膨大な計算を実行するため、グラフィックプロセッシングユニット(GPU)のような大規模並列計算機構が用いられることが多い。
 膨大な計算が必要であると、ニューラルネットワークの利用に制約が生じる。例えば、大規模な学習済ニューラルネットワークを、組み込み系システムにおける低消費電力のCPUによって実行することは困難である。したがって、大規模なニューラルネットワークの性能をおおむね維持しつつ、小規模化することが望まれる。
 ここで、非特許文献1は、ニューラルネットワークの小規模化のため、ニューロンの結合の重みベクトル(重み集合)の同一・類似性に着目することを開示している。非特許文献1では、2つの重みベクトル(重み集合)が同一・類似であれば、一方の重みベクトルが削除され、残った重みベクトルに統合される。
 しかし、非特許文献1に開示では、小規模化の際に、元の大規模なニューラルネットワークの性能が低下し易いことを本発明者らは見出した。したがって、小規模化の際におけるニューラルネットワークの性能の低下を抑制できる新たな技術が望まれる。
 本開示の一の態様は、ニューラルネットワーク処理装置である。ニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、を実行するように構成されている。
 本開示の他の態様は、コンピュータプログラムである。コンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
 本開示の他の態様は、ニューラルネットワークの製造方法である。ニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。
 本開示の他の態様は、ニューラルネットワークデータの製造方法である。ニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。
 本開示の他の態様は、ニューラルネットワーク利用装置である。ニューラルネットワーク利用装置は、ニューラルネットワークとして機能し、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士が統合されて 構成されている。
 更なる詳細は、後述の実施形態として説明される。
図1は、ニューラルネットワーク処理装置及びニューラルネットワーク利用装置の構成図である。 図2は、小規模化処理のフローチャートである。 図3は、ニューロン振舞いベクトルの説明図である。 図4は、ニューロン出力の説明図である。 図5は、ニューロン振舞いベクトル行列等の説明図である。 図6は、ウエイト行列及びウエイトベクトルの説明図である。 図7Aは、同一のニューロン振舞いベクトルを示す図である。図7Bは、2つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。図7Cは、統合後のニューラルネットワークを示す図である。 図8Aは、大きさが異なる2つのニューロン振舞いベクトルを示す図である。図8Bは、2つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。図8Cは、統合後のニューラルネットワークを示す図である。 図9Aは、大きさと向きが異なるニューロン振舞いベクトルを示す図であり、図9Bは、統合後のニューラルネットワークを示す図である。 図10は、3つのニューロン振舞いベクトルを示す図である。 図11は、統合の連鎖の説明図である。 図12は、統合の非対称性を示す図である。 図13(a)は、層内統合を示す図である。図13(b)は、層間統合を示す図である。 図14Aは、第1モデルについての実験結果を示す図である。図14Bは、第2モデルについての実験結果を示す図である。 図15は、非特許文献1の手法との比較実験結果である。 図16は、第1実施形態における射影残差と統合の第1基準の説明図である。 図17は、第2実施形態における統合の第2基準の説明図である。 図18は、ディープニューラルネットワークの構成図である。 図19は、第1実施形態と第2実施形態の比較実験結果を示すグラフである。 図20は、第3実施形態における誤差の説明図である。 図21は、第2実施形態と第3実施形態の比較実験結果を示すグラフである。 図22は、第4実施形態に係るニューロン統合処理を示すフローチャートである。 図23は、第4実施形態に係るニューロン統合処理の説明図である。 図24は、第4実施形態におけるニューロン振舞いベクトルの説明図である。 図25は、第4実施形態に係るニューロン統合処理の実験結果である。
 <1.ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の概要>
(1)実施形態に係るニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理を実行するよう構成されている。ニューラルネットワークに実際に入力データを与えることで、各人工ニューロンの出力を求めることができる。各人工ニューロンの出力は、各人工ニューロンの振舞いを示す。すなわち、出力のベクトルを求めることで、入力データが与えられたときの人工ニューロンの振舞いを把握することができる。
 実施形態に係るニューラルネットワーク処理装置は、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理を実行するよう構成されている。統合により、ニューラルネットワークを小規模化することができる。実施形態においては、人工ニューロンの振舞いを示すベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを統合するため、適切な統合が可能となり、小規模化の際におけるニューラルネットワークの性能低下を抑制できる。すなわち、ニューラルネットワークの性能は人工ニューロンの結合の重みだけで決まるのではなく、各人工ニューロンの活性化関数やバイアスによっても影響を受ける。したがって、非特許文献1のように、重みベクトル(重み集合)が同一・類似であっても、実際に入力データが与えられたときの各人工ニューロンの振舞いが同一・類似であるとは限らない。これに対して、本実施形態では、入力データが与えられたときの各ニューロンの振舞いを示すベクトルの同一・類似性に着目しているため、適切な統合が可能となる。
 なお、ニューロンの統合は、一つのニューラルネットワークの中だけで行われてもよいし、複数のニューラルネットワークに跨っておこなわれてもよい。
(2)同一又は類似の振舞いをする複数の人工ニューロンは、ベクトルの類似度を示す指標に基づいて、選択することができる。すなわち、ベクトルが同一又は類似していれば、同一又は類似の振舞いをすると判定することができる。ベクトルの類似度を示す指標としては、公知の様々な指標を採用することができる。ベクトルが類似しているか否かは、例えば、ベクトルの類似度を示す指標を所定の閾値と比較することで判定することができる。
(3)前記指標は、複数の前記ベクトルに含まれる第1ベクトルと、複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差であるのが好ましい。この残差を用いると、統合処理の際に、複数の人工ニューロンのうちのどれをどれに統合するか(例えば、第1ベクトルを出力する第1人工ニューロンを、第2ベクトルを出力する第2人工ニューロンに統合するのか、それとも第2人工ニューロンを第1ニューロンに統合するのか)を選択することが可能となる。
(4)前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含むことができる。前述のように、統合すべき複数のベクトルの大きさと向きが異なる場合、前記残差は、複数のベクトルの組み合わせの数だけ求めることができる。複数の残差は、統合されるべき複数の人工ニューロンのうちのどれをどれに統合するかの指標になるため、統合の仕方を適切に選択することが可能となる。
(5)前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能であるのが好ましい。これにより、異なる層に含まれる人工ニューロンを統合する層間統合が行える。
(6)前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記ベクトルから計算される前記他層人工ニューロンの内部活性度の誤差に基づくことができる。前記指標が、内部活性度の誤差に基づくことで、人工ニューロンの統合に伴う精度低下を防止できる。ここで、「内部活性度の誤差に基づく」とは、前記指標が、内部活性度の誤差に基づいていれば、内部活性度の誤差以外の値(例えば、統合に伴い削除されるパラメータ数)にも基づいてもよいことを意味する。また、「内部活性度の誤差に基づく」とは、前記指標が、「内部活性度の誤差」に基づいて計算される派生値(例えば、活性化関数により計算される値)であってもよいことを意味する。
(7)前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づくのが好ましい。この場合、パラメータ数を効率的に削除することができる。
(8)前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値であるのが好ましい。また、前記指標は、複数の前記人工ニューロンに含まれる第1人工ニューロンから出力される前記ベクトルである第1ベクトルと、複数の前記人工ニューロンに含まれる第2人工ニューロンから出力される前記ベクトルである第2ベクトルへの前記第1ベクトルの射影と、の残差と、前記第1人工ニューロンを前記第2人工ニューロンに統合したときの第2人工ニューロンから他層への結合のウエイトと、に基づくことができる。
(9)前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含むことができる。
(10)前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される。
(11)前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬されてもよい。
(12)前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新されるのが好ましい。
(13)実施形態に係るコンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
(14)実施形態に係るニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。実施形態に係るニューラルネットワークの製造方法によれば、原ニューラルネットワークを小規模化したニューラルネットワークを製造することができ、しかも、製造されたニューラルネットワークの性能低下を抑制できる。
(15)実施形態に係るニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。実施形態に係るニューラルネットワークデータの製造方法によれば、小規模化されたニューラルネットワークデータを製造することができる。製造されたニューラルネットワークデータは、小規模であるため、計算能力が比較的低いニューラルネットワークエンジンにおいても実行可能である。ここで、ニューラルネットワークエンジンは、例えば、CPU,GPU,FPGA,又はASCIなどの演算装置によって構成される。実施形態の製造方法によって製造されたニューラルネットワークデータは、小規模であるため、組み込み系システムにおける低消費電力のCPUなど計算能力が比較的低い演算装置であっても、実行することができる。
(16)実施形態に係るニューラルネットワーク利用装置は、ニューラルネットワークとして機能する装置であり、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士の統合により構成されている。
(17)実施形態に係るニューラルネットワーク小規模化方法は、複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、前記指標は、前記ニューラルネットワークに対して複数の入力データが与えられたときに各人工ニューロンから出力される複数の出力に基づいて求められる。
 <2.ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の例(第1実施形態)>
 図1は、実施形態に係るニューラルネットワーク処理装置(以下、「処理装置」という)10とニューラルネットワーク利用装置(以下、「利用装置」という)100とを示している。実施形態に係る処理装置10は、ニューラルネットワークN1を小規模化するための小規模化処理21を実行する。小規模化処理21を実行することにより実施される方法は、小規模化されたニューラルネットワークの製造方法又は小規模化されたニューラルネットワークデータの製造方法でもある。
 以下では、小規模化処理の対象となるニューラルネットワークN1を、「原ニューラルネットワーク」といい、小規模化されたニューラルネットワークN2を「統合ニューラルネットワーク」という。なお、実施形態に係る処理装置10は、原ニューラルネットワークN1の機械学習(深層学習)のための処理も実行可能である。処理装置10は、学習済の原ニューラルネットワークN1を小規模化する。
 処理装置10は、1又は複数のプロセッサ20及び記憶装置30を有するコンピュータによって構成されている。1又は複数のプロセッサ20は、例えば、グラフィックプロセッシングユニット(GPU)を含む。1又は複数のプロセッサ20は、さらにCPUを含んでもよい。GPUのような大規模並列計算機構は、大規模なニューラルネットワークに関する処理を実行するための大量の計算に適している。
 記憶装置30は、プロセッサ20によって実行されるコンピュータプログラム31を記憶している。プロセッサ20は、コンピュータプログラム31を実行することで、小規模化処理21を行う。小規模化処理21は、後述のように、ニューロコーディング(Neuro Coding)処理22と、ニューロン統合(Neuro Unification)処理23と、を含む。これらの処理22,23については後述する。
 記憶装置30は、小規模化処理21に用いられる複数の入力データ40を記憶している。入力データは、ニューロコーディング処理22において、ニューロンの振舞いを把握するため、原ニューラルネットワークN1に入力として与えられる。入力データ40は、ニューラルネットワークが扱うデータであれば特に限定されず、例えば、画像データ又は音声データである。
 記憶装置30は、小規模化処理21によって製造された統合ニューラルネットワークN2を表すデータ(統合ニューラルネットワークデータ)N20を記憶することができる。統合ニューラルネットワークデータN20は、統合ニューラルネットワークN2を表現する各種のパラメータ(重み、結合関係など)からなるデータである。統合ニューラルネットワークデータN20は、ニューラルネットワークエンジンに読み込まれることで、そのニューラルネットワークエンジンを統合ニューラルネットワークN2として機能させる。
 利用装置100は、小規模化されたニューラルネットワークデータN20を読み込んで、統合ニューラルネットワークN2として機能するニューラルネットワークエンジンを有する。ニューラルネットワークエンジンは、例えば、プロセッサ200と記憶装置300とを備える。プロセッサ200は、例えば、組み込み系システムにおける低消費電力のCPUでよい。ニューラルネットワークデータN20は、原ニューラルネットワークN1のデータに比べて、サイズが小さいため、低消費電力のCPUによる処理が可能である。
 組み込み系システムは、汎用的なコンピュータシステムではなく、特定の用途に向けられたコンピュータシステムであり、例えば、スマートフォン・家電などの家庭用機器、産業用ロボットなどの産業用機器、各種の医療用機器、自動車・ドローンなどのビークル、及びその他の機器におけるコンピュータシステムである。組み込み系システムでは、プロセッサとして、低消費電力のCPUが使われることが多いが、ニューラルネットワークデータN20は、データサイズが小さいため、実行が容易である。
 統合ニューラルネットワークN2は、例えば、画像・音声の変換、セグメンテーション、識別などの用途に用いられる。より具体的には、例えば、店舗等の客数計測、男女・年齢層分析、車両計数、車種分析など、対象物の画像から必要な情報を抽出するために用いることができる。原ニューラルネットワークN1は大規模であり、計算コストが大きいため、組み込み系システムでの実行が困難であるが、統合ニューラルネットワークN2は、小規模化されているため、組み込み系システムでの実行が容易である。
 図2は、原ニューラルネットワークN1から小規模化された統合ニューラルネットワークN2を製造する工程(小規模化処理21)を示している。小規模化の対象となる原ニューラルネットワークN1は、例えば、ディープニューラルネットワークであり、より具体的には、例えば、畳み込みニューラルネットワーク(CNN)である。原ニューラルネットワークN1は、層状に並べられた人工ニューロンが層間で結合されている全結合層を有する。実施形態の小規模化処理21は、一例として、全結合層を小規模化する。なお、ここでの原ニューラルネットワークN1は深層学習済みのモデルであるものとする。
 小規模化処理21では、まず、ニューロコーディング処理22が行われる。ニューロコーディング処理は、原ニューラルネットワークN1に対して複数の入力データ(コーディング用データ)40を与えて、原ニューラルネットワークN1に含まれる各人工ニューロンの振舞いを、ニューロン振舞いベクトルとして検出する処理である。
 図3は、複数の層を有する原ニューラルネットワークN1を示している。図3では、3つの層(l-1層,l層,l+1層)を代表的に示している。各層中における丸印が人工ニューロンである。以下では、l層のi番目のニューロンをZi lで示し、l+1層のj番目のニューロンをZj l+1のように示す。
 ニューラルネットワークN1に対して入力データが与えられると、ニューロンZj l+1の出力xj l+1は、図4の式(1)(2)によって表される。式(1)(2)は、ニューラルネットワークにおける順伝搬(forward propagation)を示す一般的な表記である。ここで、式(1)中のwij lは、l層の複数(rl個:l層に含まれるニューロンの数)のニューロンZi lから、l+1層のニューロンZj l+1へ向かう結合の重み(ウエイト)を示す。bj l+1はニューロンZj l+1におけるバイアスを示す。uj l+1は内部活性度を示す。式(2)中のfは、活性化関数を示す。
 続いて、ウエイト行列Wを用いて、l+1層における内部活性度行列を図4の式(3)のように定義する。式(3)の内部活性度行列は、一つの入力データがニューラルネットワークN1に与えられたときにおける、l+1層のrl+1個のニューロンの内部活性度を示す。
 さて、本実施形態では、ニューラルネットワークN1に複数(d個)の入力データ(コーディング用データ)が与えられたときのニューロンの振舞いを示す指標として、「ニューロン振舞いベクトル(Neuron Behavioral Vector):NBV」という概念を導入する。ニューラルネットワークN1に複数(d個)の入力データが与えられたときにおける、ニューロンZi lの振舞いベクトルは、図3中の式のように、d個の出力xによって表される。ニューロコーディング処理22では、複数の入力データが与えられることで、ニューラルネットワークN1に含まれる全ニューロンそれぞれのニューロン振舞いベクトル(NBV)が求められる。
 ニューロン振舞いベクトル(NBV)を用いると、ニューロンの出力は、スカラーではなく、ベクトルとなる。l層における複数(r個)のニューロン振舞いベクトルからなる行列(NBV行列)を図5の式(4)のように表す。
 さらに、l層からl+1層へのウエイト行列を図6の式(5)のように表す。式(5)のウエイト行列は、l層からl+1層への複数(r個)のウエイトベクトルを要素として有する。ウエイトベクトルは、l層の各ニューロンからl+1層へ向かう重み(ウエイト)のベクトルである。
 したがって、l+1層におけるNBV行列は、l層におけるNBV行列と、l層からl+1層へのウエイト行列と、バイアス行列と、を用いて、図6の式(6)(7)によって表される。なお、バイアス行列は、図6の式(8)のように表される。
 図5の式(4)及び図6の式(5)を用いると、図5の式(6)は、図5の式(9)のように書き換えられる。ここで、式(9)の右辺中のウエイトベクトルwi lとニューロン振舞いベクトルxi lは、ニューロンzi lに関する変数である。したがって、式(9)の右辺中のバイアス行列を除く各項の行列wi li lTは、ニューロンzi lから伝播したUl+1の要素であると考えることができる。
 図2に戻り、ニューロコーディング処理22に続いて、ニューロン統合処理23が実行される。ニューロン統合処理23では、ニューロン振舞いベクトル(NBV)に基づいて、ニューラルネットワークN1の全ニューロンの中から同一又は類似の振舞いをする複数の人工ニューロンを選択する。統合処理23では、さらに、選択された複数の人工ニューロンを統合することで、ニューラルネットワークN1を小規模化する。統合により消去された人工ニューロンの振舞いは、統合により残った人工ニューロンに承継される。振舞いの承継により、小規模化しても、原ニューラルネットワークN1の性能低下を抑制することができる。
 以下では、まず、より簡単な例として、同一の振舞いをするニューロン同士の統合を説明し、続いて、類似の振舞いをするニューロン同士の統合を説明する。図7A,7B,7Cは、同一振舞いの場合のニューロン統合を示している。ここでは、ニューラルネットワークN1のl層には、2つのニューロン(第1ニューロンZi l及び第2ニューロンZj l)だけが存在するものとする。図7Aに示すように、第1ニューロンZi lの振舞いベクトルと第2ニューロンZj lの振舞いベクトルとは同じであるものとする。この場合、図5の式(9)は、図7Bの式(10)のようになる。2つのニューロンZi l,Zj lは、同じ入力データに対して常に同じ出力を生成するため、2つのニューロンZi l,Zj lの存在は、明らかに冗長である。
 したがって、振舞いベクトルが同じである複数のニューロンZi l,Zj lは、統合の対象として選択される。選択された複数のニューロンZi l,Zj lは、一つに統合される。振舞いベクトルが同じである場合、第1ニューロンZi lを第2ニューロンZj lに統合してもよいし、第2ニューロンZj lを第1ニューロンZi lに統合してもよい。いずれの統合でも、統合後の性能は等価である。ここでは、第1ニューロンZi lを第2ニューロンZj lに統合し、第1ニューロンZi lは消去されるものとする。そして、第1ニューロンZi lのための第1ウエイトベクトルを第2ニューロンZj lのための第2ベクトルに統合し、第1ウエイトベクトルは消去されるものとする。統合後の第2ウエイトベクトルを図7C中に示す。また、図7Cの式(11)は、図7Bの式(10)を統合後の形式に書き直したものである。2つの振舞いベクトルが同じである場合、式(10)の右辺と式(11)の右辺は明らかに等価である。したがって、図7Bに示す統合前のニューラルネットワークの性能と、図7Cに示す統合後のニューラルネットワーク性能とは等価であり、統合による性能劣化は生じない。
 図8A,8B,8Cは、類似振舞いの場合のニューロン統合の第1例を示している。ここでも、ニューラルネットワークN1のl層には、2つのニューロン(第1ニューロンZi l及び第2ニューロンZj l)だけが存在するものとする。また、図8Aに示すように、第1ニューロンZi lの振舞いベクトル(第1NBV)は、第2ニューロンZj lの振舞いベクトル(第2NBV)のk倍(kはゼロより大きい自然数)であるものとする。この場合、第1ニューロン振舞いベクトルと第2ニューロン振舞いベクトルとは線形従属の関係にあり、一方のベクトルによって他方のベクトルを表すことができる。このような関係にある複数のニューロンZi l,Zj lも、統合の対象として選択される。
 したがって、図8Bに示す統合前のニューラルネットワークにおいて、第1ニューロンZi lを第2ニューロンZj lに統合し、第1ニューロンZi lを消去し、第1ニューロンZi lのための第1ウエイトベクトルを第2ニューロンZj lのための第2ベクトルに統合し、第1ウエイトベクトル消去することができる。統合後の第2ウエイトベクトルを図8C中に示す。統合後の第2ウエイトベクトルは、第1ウエイトベクトルをk倍したものと統合前の第2ウエイトベクトルとの和となる。
 図9A,9Bは、類似振舞いの場合のニューロン統合の第2例を示している。先の第1例では、ベクトルの大きさが異なり向きは同じであったが、第2例では、第1ニューロンの振舞いベクトル(第1NBV)と第2ニューロンの振舞いベクトル(第2NBV)とは、大きさだけでなく、向きも多少異なる。ここで、図9Aの式(12)に示すように、第2NBVへの第1NBVの射影をpとし、第1NBVとpとの残差をeとする。この場合、第1NBVの射影pと第2NBVとは、図8Aに示す関係と同様である。したがって、図9Bに示すように、図8Cと同様の統合が行える。すなわち、統合後の第2ウエイトベクトルは、第1ウエイトベクトルをk倍したものと統合前の第2ウエイトベクトルとの和となる。kは、射影pと第2NBVとから求まる値であり、図9Bの式(13)に示される。
 第1NBVにおける残差eは、第2NBVに直交する。したがって、第1ニューロンを第2ニューロンに統合した場合、第1NBVにおける残差eの成分は、統合された第2ニューロンが承継することができない。したがって、残差eが十分に小さくなる(例えば、残差eが所定の閾値以下になる)関係にあるベクトルを出力できる複数のニューロンを、類似する振舞いをするニューロンであるとみなし、統合の対象として選択することができる。これにより、統合によるニューラルネットワーク性能への影響を抑制できる。
 本実施形態では、統合の際の残差による影響を管理するため、図10の式(14)に示す目的関数etotalを導入する。式(14)において、Cは、ニューラルネットワークにおいて、統合されたニューロンのニューロン振舞いベクトル(NBV)の集合を示す。統合の対象となるニューロンを選択し、統合する際には、etotalの増加ができるだけ抑制されるように行えばよい。
 以下では、統合の連鎖(chained unification)における残差eの取り扱いについて説明する。ここでは、統合を繰り返すことで、2以上のニューロンが一つのニューロンに統合される場合を考える。図10に示すようなニューロン振舞いベクトルを持つ第1ニューロンZi lが、第2ニューロンZj lに統合された場合、etotalは、図10の式(15)に示すようになる。
 そして、図11に示すように、統合された第2ニューロンZj lが、さらに第3ニューロンZk lに統合されるものとする。この場合、第1ニューロンZi lの役割を承継していた第2ニューロンZj lは、もはや第1ニューロンZi lの役割を果たせなくなる。したがって、第3ニューロンZk lは、第2ニューロンZj lだけでなく、第1ニューロンZi lの役割をも果たす必要がある。すなわち、統合された第2ニューロンZj lが、さらに第3ニューロンZk lに統合されると、3ニューロンZk lのための第3ウエイトベクトルは、図11の式(16)に示すように更新される。そして、etotalは、図11の式(17)に示すように再計算される。
 式(17)において、式(15)の右辺の項(第1NBVと第2NBVとの残差)は存在しない。これは、第3ニューロンZk lへの統合により、第1ニューロンZi lも第2ニューロンZj lも消去されるためである。このように、統合の連鎖が生じる場合、etotalは再計算される必要がある。etotalの再計算のため、処理装置10は、統合処理23中において、既に消去されたニューロンのためのウエイトベクトルを保持し続ける。その結果、式(17)に示す第1残差のように、既に消去された第1ニューロンとの間の残差を再計算することができる。
 実施形態では、残差eは、統合対象として選択された複数のニューロンのうちのどれをどれに統合するか、すなわち、統合先ニューロンを決定する決定処理に用いられる。統合先ニューロンの決定は、統合の非対称性を考慮したものである。統合の非対称性のため、どのニューロンをどのニューロンに統合するかによって、残差eの大きさ(ノルム)が異なることになる。したがって、etotalをできるだけ小さくするには、残差eが小さくなる統合先ニューロンを決定すべきである。
 図12の式(18)は、ニューロンZi lをニューロンZj lに統合したときの残差のノルムを示し、同じく式(19)は、逆に、ニューロンZj lをニューロンZi lに統合したときの残差のノルムを示す。式(18)及び式(19)において、θは2つのニューロン振舞いベクトルの間の角度である。2つのニューロン振舞いベクトルのノルムが等しくなる例外的な場合以外は、式(18)及び式(19)に示す残差のノルムは、異なるものとなる。したがって、統合先ニューロンの決定処理においては、式(18)及び式(19)に示すように、複数の統合対象のベクトル間で、残差のノルムをそれぞれ計算し、残差が最も小さくなるように統合先を決定する。
 ニューロン統合処理23では、統合対象として選択された複数のニューロンのうち、決定処理により決定された統合先ニューロンへ、残りのニューロンが統合される。統合対象の選択は、ニューロン振舞いベクトルの同一・類似性に基づくが、同一・類似であるかは、同一の層内だけで判定される必要はなく、複数の層を跨いで判定されてもよい。したがって、実施形態においては、異なる層に属するニューロンが、同一又は類似のニューロン振舞いベクトルを持つ場合、異なる層に属するニューロン同士が統合対象として選択されることがある。
 図13(a)は、同一層内での統合(層内統合)を示している。図13(a)では、ニューロンZilが、同一層内に属する他のニューロンZj lに統合される。そして、ニューロンZilのためのウェイトベクトル(点線で示される結合に相当)が削除され、他のニューロンZj lのためのウェイトベクトル(実線で示される結合に相当)に統合(更新)される。図13(b)は、異なる層間での統合(層間統合)を示している。図13(b)では、l層に属するニューロンZi lが、他の層であるm層に属するニューロンZj mに統合される。この場合、ニューロンZi lが削除されるため、ニューロンZi lのためのウエイトベクトルの代替として、ニューロンZj mから層を1つ飛び越えて結合する新たな結合(スキップコネクション)が生成され、新たな結合のためのウエイトベクトルwskipが生成される。
 図2に戻り、以上のニューロン統合処理23を整理すると、まず、原ニューラルネットワークN1に含まれる全ニューロンの組み合わせについて、ニューロン振舞いベクトル(NBV)に基づき、残差eを算出する処理231を行う。そして、残差eが所定の閾値以下となる2以上のニューロンの組み合わせを統合対象として選択する処理232を行う。そして、選択された統合対象の中から、一つの統合先ニューロンの決定処理234を行い、その統合先ニューロンへ統合する処理233を行う。統合に伴い、ウエイトベクトルも更新される。
 ニューロン統合処理23によって、原ニューラルネットワークN1の性能をほぼ維持しつつ、小規模化された統合ニューラルネットワークN2が製造される。処理装置10は、統合ニューラルネットワークN2における重み(ウエイト)などのパラメータを、統合ニューラルネットワークデータN20として生成(製造)し、記憶装置30に保存する。処理装置10は、データN20を、外部へ出力する処理24を行うことができる。出力処理24は、記録媒体への出力でもよいし、処理装置10から図示しないネットワークを介して、データN20を利用装置100へ送信することであってもよい。利用装置100は、処理装置10から受信したデータN20を記憶装置300に保存する。利用装置100は、データN20を読み取って、統合ニューラルネットワークN2として機能する。
<3.実験結果>
 手書き数字文字データベースMNISTの6000字の学習用文字(学習用データ)を用いて学習し、1000文字のテスト用文字を用いてテストを行った。実験では、6000字の学習用文字を、ニューロン振舞いベクトルを求めるための入力データとしても用いた。
 実験に用いたモデル(第1モデル)は、3層の全結合層(入力層、隠れ層、出力層)からなるニューラルネットワーク(原ニューラルネットワークN1)である。入力層は、784ニューロンを有する。隠れ層は、2000ニューロンを有し、各ニューロンは、ReLU関数を有する。出力層は、10ニューロンを有し、各ニューロンは、ソフトマックス関数を有する。このモデルを、MINSTの6000文字の学習用文字で学習させた。エポック数は100とした。このモデル(原ニューラルネットワークN1)による推定精度は、0.9795(エラー率:0.0205)であった。
 実験では、さらに、学習済VGG16モデル(第2モデル)も準備した。VGG16モデル(第2モデル)は、1000ニューロンの出力層を、31ニューロンの新たな層に置き換え、全結合層をエポック数100にて、ファインチューニング(再学習)した。このVGG16モデルによる推定精度は、0.8380であった。
 実験では、小規模化処理21の比較例として、エントロピー法による処理を行った。エントロピー法は、エントロピーインポータンス関数(T. He, Y. Fan, Y. Qian, T. Tan, K. Yu, Reshaping deep neural network for fast decoding by node-pruning, Proc. IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 245-249, Florence, Italy, May2014)に基づいて、ニューロンの重要性を評価する手法である。重要でないニューロンは削除される。
 実験では、MINSTによって学習されたモデルに対して、実施形態の小規模化処理(ニューロコーディング22及びニューロン統合23)21を適用した。また、エントロピー法も適用した。エントロピー法の適用は、再学習無しの場合と、100ニューロンが削除されるごとに再学習する場合の2通りで行った。実験では、ニューロンの統合・削減の対象として、隠れ層の2000ニューロンとした。
 図14A及び図14Bは、実験結果を示している。図14A、14Bの横軸は、統合又は削減後の隠れ層のニューロンの数であり、縦軸は、推定エラー率である。図14A,14Bにおいて、「Neuro-Unification」は、実施形態の小規模化処理21を適用した結果を示し、「Entropy」は、エントロピー法の再学習無を適用した結果を示し、「Entropy-retraining」は、エントロピー法の再学習有を適用した結果を示す。
 図14Aは、第1モデルを用いた結果を示す。この場合、エントロピー法の再学習無では、ニューロン数が1500よりも減少するとエラー率が大きく上昇するのに対して、実施形態の小規模化処理21によると、当初の2000個のニューロンが85%近く減少しても、エラー率は1%程度しか上昇しなかった。驚くべきことに、実施形態の小規模化処理21では、再学習を行っていないのに、エントロピー法の再学習有よりも良好な結果が得られた。
 図14Bは、第2モデルを用いた結果を示す。なお、ここでは、エントロピー法の再学習は、500ニューロンが削除される毎に行った。また、ここでは、ニューロンの統合・削減の対象として、2つの隠れ全結合層のニューロンとした。2つの隠れ全結合層のニューロン数は、それぞれ4096個である。図14Bに示すように、実施形態の小規模化処理21は、エントロピー法の再学習無よりも良好な結果を示した。また、実施形態の小規模化処理21では、再学習を行わないにもかかわらず、ニューロンが半分近く減少するまでは、エントロピー法の再学習有と同程度の結果が得られた。
 図15は、実施形態の小規模化処理21と、非特許文献1の手法との比較実験結果を示している。ここでの実験は、非特許文献1中のMNISTの実験と同じモデル・データを使用した。図15において「Neuro-Unification」は、実施形態の小規模化処理21を適用した結果を示し、「DPP」は、非特許文献1記載の手法(Data-free Parameter Pruning (DPP))を適用した結果を示す。
 図15に示すように、実施形態の小規模化処理21では、ニューロンの統合が進んでニューロンの数が少なくなっても、DPPに比べて、エラー率の上昇が抑えられている。したがって、実施形態の小規模化処理21は、非特許文献1のDPPに比べて、性能の低下を抑制できており、優れていることがわかる。
<4.内部活性度2乗誤差最小化手法(第2実施形態)>
 以下では、ニューロン統合処理23の変形例(第2実施形態)を説明する。第2実施形態において、特に説明しない点については、第1実施形態と同様である。
 第2実施形態においては、統合されるニューロンの選択基準が、第1実施形態とは異なる。第1実施形態においては、統合されるニューロンの選択基準は、ニューロンの統合により生じるニューロン振舞いベクトル(NBV)の誤差を最小化する、という観点での基準である。これに対して、第2実施形態においては、統合されるニューロンの選択基準は、統合されたニューロンが存在する層の次の層(統合されたニューロンの出力が与えられる層)におけるニューロンの内部活性度の誤差(2乗誤差)を最小化する、という観点での基準である。
 理解の容易のため、第1実施形態における、統合されるニューロンの選択基準を再度説明する。第1実施形態では、複数の異なる入力データ(コーディング用データ)がニューラルネットワークに与えられたときの、複数のニューロン振舞いベクトル(NBV)間の射影残差rが最も小さくなるように、統合されるニューロンのペアが選択される。そして、射影残差rが小さくなるように削除されるニューロンと、残されるニューロン(統合先ニューロン)と、が決定される。例えば、ニューロン振舞いベクトルxiとxjとが、図16に示す関係にあり、これらのニューロン振舞いベクトルを出力するニューロンが統合される場合を考える。この場合、図16の式(20)に示す射影残差r(xi,xj)のノルムが小さくなるように統合先ニューロンが決定される。具体的には、xiを出力するニューロンが削除され、xjを出力するニューロンが、統合先ニューロンとなり、xiを出力するニューロンの働きを代替する。
 ここで、ニューラルネットワークにおける全ニューロンについてのニューロン振舞いベクトルNBVの集合をXとすると、第1実施形態におけるニューロンの統合の第1基準は、図16の式(21)のように表される。式(21)において、x* removeは、削除されるニューロンの振舞いベクトルであり、x* remainは、残されるニューロンの振舞いベクトルである。なお、argminは、||r(xi,xj)||を最小化する(xi,xj)の集合を求める関数である。
 図16の式(21)に示す第1基準は、ニューロンの統合により生じるニューロン振舞いベクトル(NBV)の誤差(射影残差r)を最小化するためのものである。これに対して、第2実施形態においては、第2基準が用いられる。第2基準は、統合されたニューロンが存在する層の次の層(統合されたニューロンの出力が与えられる層)におけるニューロンの内部活性度の誤差(2乗誤差)を最小化する、という観点から得られる基準である。第2実施形態では、内部活性度に関する誤差を指標として、統合されるニューロンが選択される。
 ここで、図17に示すように、l層のニューロンが、n個存在し、l層の次の層であるl+1層のニューロンが、nl+1個存在するものとする。l層のi番目のニューロンから次のl+1層のk番目のニューロンへの結合係数(ウエイト)を、wikと表す。このとき、全入力データ(全コーディング用データ)によって発生するl+1層のk番目のニューロンの内部活性度の和Aは、ニューロン振舞いベクトルxi及びウエイトwikに基づいて計算され、図17の式(22)のように表される。
 そして、l層のm番目のニューロンをn番目のニューロンに統合することにより生じるl+1層のk番目のニューロンでの内部活性度の総和の誤差ΔAは、図17の式(23)のように表される。
 統合後のl層の次の層(l+1層)の全てのニューロンでの2乗誤差ΔA 2の和rIAは、図17の式(24-1)のように表される。式(24-1)を変形することにより、式(24-2)及び式(24-3)が得られる。式(24-3)を最小化するように、統合されるニューロンm,nを決めれば、次の層(l+1層)におけるニューロン(他層人工ニューロン)の内部活性度の誤差が最も小さくなる。すなわち、図17の式(25-1)が統合の第2基準である。
 図17の式(25-1)を変形すると式(25-2)が得られる。式(25-2)に示す第2基準は、図17に示す「第1基準との違いD」の部分が、第1基準である図16の式(21)に掛けられたものとなっている。第1基準との違いDは、l層のi番目のニューロンから次のl+1層へ向かう全ての結合のウエイトwikの二乗和の平方根である。つまり、第2基準は、第1基準で扱われる誤差r(射影偏差)だけでなく、ニューロンの出力側のウエイトをも考慮した基準になっている。
 このように、第2基準では、ニューロン振舞いベクトルの誤差を考慮するだけでなく、統合されたニューロンが存在するl層の出力が与えられる他層(次のl+1層)における内部活性度に対する統合の影響を少なくするように、統合されるニューロンが選択される。
 図18は、第1実施形態(第1基準:NBV誤差最小化手法)と第2実施形態(第2基準:内部活性度二乗誤差最小化手法)との比較のために用いたVGG16を示し、図19は、比較実験結果を示している。実験に用いたVGG16は、画像識別用DNN(ディープニューラルネットワーク)であり、図18に示すように、畳み込みネットワーク(convolutional Networks)と全結合ネットワーク(fully connected Networks)とを備えている。図18の畳み込みネットワーク(畳み込み層)は、第1層FC1と、第2層FC2と、を備える。
 実験では、ニューロコーディングの後、ニューロン統合を行った。ニューロン統合では、第1基準(NBV誤差最小化手法)を用いた統合、及び、第2基準(内部活性度二乗誤差最小化手法)を用いた統合のそれぞれを行った。統合に際しては、まず、第2層FC2を25%削減し、続いて、第1層FC1を削減した。なお、実験では、ファインチューニングは行っていない。
 図19は、テストデータに対する誤り率を示している。図19の横軸は、ニューロンの結合係数(パラメータ)の数を示し、縦軸は誤り率を示している。図19に示すように、第2基準(内部活性度二乗誤差最小化手法)を用いて統合すると、第1基準(NBV誤差最小化手法)よりも、誤識別率が低く抑えられており、良好な特性を持つ統合ニューラルネットワークが得られていることがわかる。このように、第2基準は、第1基準よりも統合ニューラルネットワークの精度低下を抑えることができる。
<5.パラメータ数圧縮手法(第3実施形態)>
 図20及び図21は、ニューロン統合処理23の変形例(第3実施形態)を示している。第3実施形態において、特に説明しない点については、第1実施形態及び第2実施形態と同様である。
 第2実施形態(第2基準)においては、内部活性度に関する誤差rIAを最小化するように統合されるニューロンが選択されるが、第3実施形態では、rparam(図20の式(27)参照)を最小化するように統合されるニューロンのペアが選択される。rparamは、誤差rIAを、param(zi l)(図20の式(26)参照)で除したものである。
 param(zi l)は、ニューロンzi の削除に伴って、ニューラルネットワークから削除されるパラメータの数を示す。ここでのパラメータは、ニューロン間の結合の重み(ウエイト)wと、ニューロンのバイアスbと、を含む。ニューラルネットワークでは、層毎に、ニューロンの数が異なる場合が多い。ある層のニューロンに結合するウエイトwの数は、隣接する層に存在するニューロンの数に応じてきまる。全結合層の場合、l層におけるi番目のニューロンzi lに関するパラメータ数param(zi l)は、図20の式(26)によって定義される。ここで、nl-1は、l-1層に存在するニューロンの数であり、nl+1は、l+1層に存在するニューロンの数である。ニューロンの数が層毎に異なる場合、一つのニューロンを削除した場合に削除されるパラメータの数は、層毎に異なる。ニューラルネットワークの規模は、パラメータの数によって決まるため、ニューラルネットワークの小規模化のためには、1回の統合によって、より多くのパラメータが削除される方が好ましい。
 仮に、ある層の第1ニューロンを削除したときの誤差rIAと、別の層の第2ニューロンを削除したときの誤差rIAとが、同じであったとしても、第1ニューロンの削除に伴って削除されるパラメータの数の方が、第2ニューロンの削除に伴って削除されるパラメータの数よりも多ければ、第1ニューロンを削除する統合を行った方が、小規模化には有利である。
 そこで、第3実施形態では、ニューロン統合に伴い削除されるパラメータ1個あたりの誤差を最小化する。削除されるパラメータ1個あたりの内部活性度に関する誤差rparamは、図20の式(27)に示すように、内部活性度に関する誤差rIAを、ニューロン統合に伴い削除されるパラメータ数paramによって除することによって求められる。このように、統合されるニューロンを選択する際に、誤差rIAだけでなく、ニューロン統合に伴い削除されるパラメータ数paramをも考慮することで、ニューラルネットワークの精度低下を防止しつつ、効率的にパラメータ数を削減することができる。なお、rparamは、誤差rIAを、パラメータ数paramを除したものに限られず、パラメータ数paramが多いほど、値が小さくなるように算出されるものであってもよい。
 図21は、第2実施形態(内部活性度二乗誤差最小化手法)と第3実施形態(パラメータ数圧縮手法)の比較実験結果を示している。実験では、図18に示すVGG16モデルに対してニューロコーディングを行い、その後の全結合層においてニューロン統合を行った。ニューロン統合は、第1層FC1と第2層FC2の中間層2層を対象として行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの1000クラスの学習データの中から、各クラス10個ずつランダムに抜き出し、合計10000個のデータを使用した。第2実施形態・第3実施形態の手法それぞれで、統合512回毎にテストを行い、精度を比較した。
 図21に示す比較実験結果において、縦軸はテストエラーを示し、横軸はパラメータ数を示している。図21に示すように、第3実施形態(パラメータ数圧縮手法)では、第2実施形態(内部活性度二乗誤差最小化手法)よりも、高い精度を維持しつつ、パラメータ数を削減できていることがわかる。
<6.消去されるニューロンの振舞いを複数のニューロンにより模擬(第4実施形態)>
 ニューロン統合では、統合に伴い消去されるニューロンの振舞いは、他のニューロンによって模擬(emulate)される。消去されるニューロンの振舞いを模擬するニューロンの数は、一つでもよいし、二以上でもよい。第4実施形態では、二以上のニューロンにより、消去されるニューロンの振舞いを模擬する場合について説明する。
 図22は、第4実施形態に係るニューロン統合処理23を示している。図22に示すニューロン統合処理23は、図2に示すニューロン統合処理23と同様に、残差を算出する処理231と、統合対象となるニューロンを選択する処理232と、選択されたニューロンを統合する処理233と、を含む。統合する処理233では、統合先ニューロンが決定され、選択されたニューロンのうち統合先ニューロン以外のニューロンが削除され、統合先ニューロンのためのウエイトベクトルが更新される。
 例えば、図23に示すように、ニューロンZiを統合先ニューロンZjに統合する場合、ニューロンZiが消去され、統合先ニューロンZjのためのウエイト(統合先ニューロンZjから次層(l+1)の各ニューロンへの接続のウエイト)が、ニューロンZiのためのウエイトを用いて更新される(図9B参照)。したがって、図9Bに示す例では、消去されるニューロンZiの振舞いは、一つの統合先ニューロンZjにより模擬される。
 図23中の式(28)は、統合先ニューロンZjから次層(l+1)のニューロンZn’への接続のウエイトwjnの更新式を示している。処理233におけるウエイト更新は式(28)に従って行われる。式(28)は、図9B中の式(13)と等価である。式(28)中の係数aik *は、射影pと、NBVであるxjから求まる値であり、式(13)中のkと等価である。
 図24に示すように、ニューロンZiを統合先ニューロンZjに統合する場合、ニューロンZiの振舞いベクトルNBV(第1NBV)であるxjは、ニューロンZjの振舞いベクトルNBV(第2NBV)であるxjよって近似される。この近似による残差riは、図24中の式(29)によって表される。なお、残差riは、図9A中の残差eと等価である。残差riは、次層(l+1)への誤差を生じさせため、小さい方が好ましい。
 第4実施形態では、残差riを小さくするため、ニューロンZi,Zj以外のニューロンZkによって、ニューロンZiの振舞いを模擬させる。つまり、ニューロンZiの振舞いは、二以上のニューロンによって模擬される。このため、第4実施形態に係るニューロン統合処理23では、ニューロンZiの振舞いを模擬させるためのニューロンZkの選択処理235が行われる(図22参照)。選択処理235では、消去されずに残っているニューロンの中から、残差riを最もよく近似できるニューロンZkが選択される。選択処理235において、ニューロンZkの選択は、図24中の式(30)に従って行われる。図24に示すβik *kは、ニューロンZkの振舞いベクトルNBVであるxkによる残差riの近似を示している。
 そして、選択されたニューロンZkのためのウエイト(ウエイトベクトル)の更新処理236が実行される。ニューロンZkのためのウエイトの更新は、近似βik *kに含まれる係数βik *を用いて行われる。図23及び図24中の式(31)は、ニューロンZkから次層(l+1)のニューロンZn’への接続のウエイトwknの更新式を示している。
 このように、図23では、ニューロンZiの消去に伴い、二つのニューロンZi,Zkのためのウエイトが更新される。これにより、消去されたニューロンZiの振舞い(挙動)は、二つのニューロンZi,Zkによって再現される。
 第4実施形態に係るニューロン統合処理23では、残差riと、xkによる残差riの近似βik *kと、の残差(残差ベクトル)を、新たな残差riとして求める残差更新処理237が実行される。新たな残差riによって、処理235及び処理236が繰り返される。処理235及び処理236の繰り返しは、必要な回数行われる。繰り返しにより、xiの残差riは、より小さくなる。これにより、次層(l+1)のニューロンの内部活性度の誤差は減少する。
 第4実施形態に係るニューロン統合処理23によれば、NBVの類似度が比較的低い(すなわち、残差が大きくなる)ニューロン同士を統合しても、残差を複数のニューロンによって小さくできる。第4実施形態の処理235,236,237の負荷は小さいため、大きな計算資源がなくても、残差を小さくすることができる。
 図25は、第4実施形態に係るニューロン統合処理23の実験結果を示している。実験では、図18に示すVGG16モデルに対して、ニューロコーディングを行い、全結合層FC1,FC2において第4実施形態に係るニューロン統合処理23を行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの中から、ランダムに選択した5000個のデータを使用した。ニューロン統合は、パラメータ数が1/2になるまで(図25の「×1/2」)と、パラメータ数が1/3になるまで(図25の「×1/3」)と、について行った。
 図25に示す実験結果は、図22の処理235,236の繰り返しが0回である場合(図25のNU(0))、同じく繰り返しが1回である場合(図25のNU(1))、同じく繰り返しが10回である場合(図25のNU(10))について示している。
 図25中の数値は、統合ニューラルネットワークN2の精度(Accuracy)を示している。図25に示すように、処理235,236の繰り返しが0回である場合に比べて、処理235,236の繰り返しがあるほうが、精度が向上している。また、繰り返し回数が多くなるほど、精度が向上する。
 <6.付記>
 本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
10      :処理装置
20      :プロセッサ
21      :小規模化処理
22      :ニューロコーディング処理
23      :ニューロン統合処理
24      :出力処理
30      :記憶装置
31      :コンピュータプログラム
40      :入力データ
100     :ニューラルネットワーク利用装置
200     :プロセッサ
231     :残差算出処理
232     :選択処理
233     :統合処理
234     :決定処理
235     :選択処理
236     :更新処理
237     :残差更新処理
300     :記憶装置
N1      :原ニューラルネットワーク
N2      :統合ニューラルネットワーク
N20     :統合ニューラルネットワークデータ
FC1     :第1層
FC2     :第2層

Claims (17)

  1.  複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、
     前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
    を実行するように構成されているニューラルネットワーク処理装置。
  2.  同一又は類似の振舞いをする複数の人工ニューロンは、前記ベクトルの類似度を示す指標に基づいて、選択される
     請求項1に記載のニューラルネットワーク処理装置。
  3.  前記指標は、複数の前記ベクトルに含まれる第1ベクトルと、複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差である
     請求項2に記載のニューラルネットワーク処理装置。
  4.  前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含む
     請求項3に記載のニューラルネットワーク処理装置。
  5.  前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、
     前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能である
     請求項1~4のいずれか1項に記載のニューラルネットワーク処理装置。
  6.  前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記ベクトルから計算される前記他層人工ニューロンの内部活性度の誤差に基づく
     請求項2に記載のニューラルネットワーク処理装置。
  7.  前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づく
     請求項1から6のいずれか1項に記載のニューラルネットワーク処理装置。
  8.  前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値である
     請求項6に記載のニューラルネットワーク処理装置。
  9.  前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含む
     請求項1から8のいずれか1項に記載のニューラルネットワーク処理装置。
  10.  前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される
     請求項1から9のいずれか1項に記載のニューラルネットワーク処理装置。
  11.  前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬される
     請求項1から9のいずれか1項に記載のニューラルネットワーク処理装置。
  12.  前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新される
     請求項11に記載のニューラルネットワーク処理装置。
  13.  複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、
     前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
    をコンピュータに実行させるためのコンピュータプログラム。
  14.  複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、
     前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
     選択された複数の人工ニューロンを統合する
     ことを含むニューラルネットワークの製造方法。
  15.  複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、
     前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
     選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、
     ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成する
     ことを含むニューラルネットワークデータの製造方法。
  16.  ニューラルネットワークとして機能するニューラルネットワーク利用装置であって、
     前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士が統合されて構成されている
     ニューラルネットワーク利用装置。
  17.  複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、
     前記指標は、前記ニューラルネットワークに対して複数の入力データが与えられたときに各人工ニューロンから出力される複数の出力に基づいて求められる
     ニューラルネットワーク小規模化方法。
PCT/JP2019/033594 2018-09-11 2019-08-28 ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 WO2020054402A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020546831A JP7438544B2 (ja) 2018-09-11 2019-08-28 ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2018169412 2018-09-11
JP2018-169412 2018-09-11
JP2019059091 2019-03-26
JP2019-059091 2019-03-26

Publications (1)

Publication Number Publication Date
WO2020054402A1 true WO2020054402A1 (ja) 2020-03-19

Family

ID=69777561

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/033594 WO2020054402A1 (ja) 2018-09-11 2019-08-28 ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法

Country Status (2)

Country Link
JP (1) JP7438544B2 (ja)
WO (1) WO2020054402A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036564A (zh) * 2020-08-28 2020-12-04 腾讯科技(深圳)有限公司 神经网络的剪枝方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03134761A (ja) * 1989-10-20 1991-06-07 Fujitsu Ltd 階層型ニューラルネットワークの中間層ユニット数推定方法
JP2017182319A (ja) * 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170364799A1 (en) 2016-06-15 2017-12-21 Kneron Inc. Simplifying apparatus and simplifying method for neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03134761A (ja) * 1989-10-20 1991-06-07 Fujitsu Ltd 階層型ニューラルネットワークの中間層ユニット数推定方法
JP2017182319A (ja) * 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MASUDA, TATSUYA ET AL.,: "Compact Structuring of Hierarchical Neural Networks by Combining Extra Hidden Units", TRANSACTIONS OF THE SOCIETY OF INSTRUMENT AND CONTROL ENGINEERS, 30 April 1992 (1992-04-30), pages 519 - 527 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036564A (zh) * 2020-08-28 2020-12-04 腾讯科技(深圳)有限公司 神经网络的剪枝方法、装置、设备及存储介质
CN112036564B (zh) * 2020-08-28 2024-01-09 腾讯科技(深圳)有限公司 图片识别方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP7438544B2 (ja) 2024-02-27
JPWO2020054402A1 (ja) 2021-09-02

Similar Documents

Publication Publication Date Title
US11915128B2 (en) Neural network circuit device, neural network processing method, and neural network execution program
US20190370665A1 (en) System and method for mimicking a neural network without access to the original training dataset or the target model
WO2019177951A1 (en) Hybrid quantum-classical generative modes for learning data distributions
US20220147877A1 (en) System and method for automatic building of learning machines using learning machines
US11514694B2 (en) Teaching GAN (generative adversarial networks) to generate per-pixel annotation
US20180018555A1 (en) System and method for building artificial neural network architectures
KR20190031318A (ko) 도메인 분리 뉴럴 네트워크들
JP6579198B2 (ja) リスク評価方法、リスク評価プログラム及び情報処理装置
CN114186609A (zh) 模型训练方法和装置
CN111105017A (zh) 神经网络量化方法、装置及电子设备
CN111340245B (zh) 一种模型训练方法及系统
JP7150651B2 (ja) ニューラルネットワークのモデル縮約装置
CN113449840A (zh) 神经网络训练方法及装置、图像分类的方法及装置
JP2022165395A (ja) ニューラルネットワークモデルの最適化方法及びニューラルネットワークモデルに関するグラフィックユーザインターフェースを提供する方法
CN111931939A (zh) 一种单振幅量子计算模拟方法
WO2020054402A1 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
KR20210035702A (ko) 인공 신경망의 양자화 방법 및 인공 신경망을 이용한 연산 방법
CN113490955A (zh) 用于产生金字塔层的架构的系统和方法
CN114511092B (zh) 一种基于量子线路的图注意力机制实现方法
WO2022127603A1 (zh) 一种模型处理方法及相关装置
CN111788582A (zh) 电子设备及其控制方法
JP2022189799A (ja) Few-shot模倣のためのデモンストレーション条件付き強化学習
KR20230141828A (ko) 적응형 그래디언트 클리핑을 사용하는 신경 네트워크들
US20220121927A1 (en) Providing neural networks
JP7297286B2 (ja) 最適化方法、最適化プログラム、推論方法、および推論プログラム

Legal Events

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

Ref document number: 19859947

Country of ref document: EP

Kind code of ref document: A1

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2020546831

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19859947

Country of ref document: EP

Kind code of ref document: A1