WO2022102255A1 - 情報処理装置およびニューラルネットワーク縮約方法 - Google Patents
情報処理装置およびニューラルネットワーク縮約方法 Download PDFInfo
- Publication number
- WO2022102255A1 WO2022102255A1 PCT/JP2021/034898 JP2021034898W WO2022102255A1 WO 2022102255 A1 WO2022102255 A1 WO 2022102255A1 JP 2021034898 W JP2021034898 W JP 2021034898W WO 2022102255 A1 WO2022102255 A1 WO 2022102255A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subgraph
- reduction
- neural network
- perturbation
- contraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4802—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
Definitions
- the present invention relates to the contraction of a neural network.
- DNN Deep Neural Network
- DNN is realized by connecting one or more layers of arithmetic layers composed of a large number of neurons in multiple stages.
- the value output from the N-1th layer is used as an input, and the result obtained by weighting this input value with the weighting coefficient is output to the input of the N + 1th layer.
- high generalization performance can be obtained by setting the weighting coefficient to an appropriate value according to the application (learning).
- LiDAR Light Detection and Ringing, Laser Imaging Detection and Ringing, "light detection and ranging” or “laser image detection and ranging”
- point cloud AI Artificial Intelligence
- Patent Document 1 discloses a method for reducing (reducing) the amount of computation of a neural network represented by DNN.
- FIG. 2 shows a configuration example of the point cloud AI.
- Voxel volume element
- a pseudo image is generated by DNN or the like.
- CNN Convolutional Neural Network
- point cloud AI In order to apply point cloud AI to autonomous driving, it is necessary to improve the performance of point cloud AI by using high-resolution LiDAR. Therefore, the implementation of point cloud AI for autonomous driving requires a huge amount of computation compared to the computation performance of in-vehicle processors. For example, in order to realize object recognition in automated driving using Point PIllars, which is a type of point cloud AI, a calculation amount of 65 GOPs (Giga Operations) or more is required. On the other hand, the computing performance of the processor that can be mounted on the in-vehicle ECU is about several tens of TOPS (Tera Operation per Second), which is insufficient to execute the entire automated driving system including PointPillars in real time.
- TOPS Transmission Operation per Second
- FIG. 3 is a diagram created by the inventors, and shows an example in which an arbitrary single reduction algorithm is uniformly applied to the entire reduction target DNN in the DNN reduction flow.
- the initial reduction conditions are determined, for example, by selecting from preset reduction conditions (S303).
- S303 preset reduction conditions
- the pre-reduction DNN model 302 is assumed to have been trained in the training data set 301.
- the pre-reduction DNN model 302 is contracted based on the contraction location and contraction rate in the DNN based on the initial contraction conditions (S304).
- the DNN model after reduction is retrained with the training data set 301 (S305), and the error in the output of the DNN model before and after the reduction is evaluated to determine whether the reduction is completed (S306). ..
- the contracted DNN model is recorded as the contracted DNN model 307.
- the optimum reduction algorithm differs for each part (subgraph) that composes the DNN. Therefore, in order to realize high-precision reduction that achieves both reduction of DNN calculation amount and maintenance of inference accuracy, it is necessary to select and apply the optimum reduction algorithm for each subgraph.
- a preferred aspect of the present invention is an information processing apparatus for selecting an algorithm for reducing a neural network, which is a subgraph dividing unit for dividing a neural network into subgraphs and a plurality of subgraphs for each of the subgraphs. It is an information processing device equipped with an optimization unit that outputs a contraction config associated with one selected from the contraction methods.
- Another preferred aspect of the present invention is the first step of dividing the neural network into subgraphs, each of the subgraphs being tentatively reduced by associating one selected from a plurality of reduction methods.
- This is a neural network reduction method for executing the second step.
- a conceptual diagram showing the structure of a Deep Neural Network (DNN).
- DNN Deep Neural Network
- Conceptual diagram showing a configuration example of point cloud AI DNN contraction flow chart (comparative example).
- DNN reduction flow chart (Example).
- the processing schematic diagram of the reduction algorithm optimization part The graph which shows the effect of an Example.
- Block diagram of Example 2 / Basic configuration 2 (overall configuration).
- Example 2 / Basic configuration 2 (reduction algorithm optimization unit) processing flow diagram.
- Example 2 / Basic configuration 2 (reduction algorithm optimization unit) configuration diagram.
- Example 2 / Basic configuration 2 subgraph division
- Example 2 / Basic configuration 2 (Perturbation calculation unit 1) Configuration diagram.
- Example 2 / Basic configuration 2 (Perturbation calculation unit 2) Configuration diagram.
- Example 2 / Basic configuration 2 (reduced part) block diagram.
- Overall configuration diagram of Example 3 / Application Configuration 1.
- Overall configuration diagram of Example 4 / Application Configuration 2.
- Overall configuration diagram of Example 5 / Application Configuration 3.
- notations such as “first”, “second”, and “third” in the present specification and the like are attached to identify the components, and do not necessarily limit the number, order, or contents thereof. is not. Further, the numbers for identifying the components are used for each context, and the numbers used in one context do not always indicate the same composition in the other contexts. Further, it does not prevent the component identified by a certain number from functioning as the component identified by another number.
- FIG. 4 shows the flow of an example of the embodiment.
- the contraction algorithm optimization process (S409) is provided for the contraction flow of FIG.
- the pre-reduction DNN model 402 is first divided into multiple subgraphs, and then the optimum reduction algorithm is searched for in each subgraph with high efficiency.
- the initial reduction conditions are determined for each subgraph, for example, by selecting from preset reduction conditions (S403).
- S403 preset reduction conditions
- the pre-reduction DNN model 402 is assumed to have been trained in the training data set 401.
- the pre-reduction DNN model 402 is reduced for each subgraph based on the reduction location and reduction rate in the DNN based on the initial reduction conditions (S404).
- the DNN model after reduction is retrained with the training data set 401 (S405), and the error in the output of the DNN model before and after the reduction is evaluated to determine whether the reduction is completed (S406). ..
- the contracted DNN model is recorded as the contracted DNN model 407.
- re-learning is performed to restore the detection accuracy. If relearning is not performed, the detection rate of contracted AI may drop significantly.
- basically the same data set used for training the pre-reduction DNN model may be used, but the data set can be flexibly changed according to the application scene.
- FIG. 5 schematically shows the processing of the reduction algorithm optimization (S409).
- the initial value of the subgraph division is determined based on the input maximum number of subgraphs and the pre-reduction DNN model 402.
- the maximum number of subgraphs may be set in advance or specified by the user each time.
- the division points are divided according to a predetermined rule, for example, so that the number of neurons is as even as possible.
- the reduction algorithm is applied to each divided subgraph, and the absolute error value of the calculation result of each subgraph before and after the reduction is applied is output as the magnitude of the perturbation.
- the reduction algorithm is selected from, for example, a plurality prepared in advance. Different reduction algorithms can be selected for each subgraph.
- the perturbation calculation results are merged and evaluated comprehensively.
- the combination of reduction algorithms applied to each subgraph is changed so that the magnitude of the evaluated perturbation is small.
- the subgraph division part of the pre-reduction DNN model 402 is changed and the reduction algorithm is used again. Combinatorial optimization is performed.
- FIG. 6 shows the effect when this embodiment is applied to PointPillars, which is a point cloud AI for object recognition.
- PointPillars which is a point cloud AI for object recognition.
- a single reduction method 1b reduction of the number of Voxels
- the detection rate decreased significantly as in NG1.
- a single reduction method 2b Low rank approximation
- the reduction method 1a (reduction of the number of point clouds per Voxel) was applied to the subgraph 1 of the DNN model of the pre-reduction point cloud AI601, and the reduction method 2a (pruning) was applied to the subgraph 2. ..
- the optimum contraction point cloud AI602 was obtained.
- the arrow 603 indicates the limit value of the detection rate and the processing time obtained by the reduction method 1a for the subgraph 1
- the arrow 604 indicates the detection rate and the processing time obtained by the reduction method 2a for the subgraph 2.
- the diagonal line 605 indicates these boundaries. In this way, it can be seen that there is a suitable reduction method for each subgraph.
- the optimal contraction point cloud AI602 of this embodiment can reduce the inference time by 50% while suppressing the decrease in the detection rate due to the contraction of PointPillars.
- This embodiment can be applied not only to point cloud AI but also to other AI such as image processing CNN.
- FIG. 7 shows a configuration diagram of the first embodiment.
- the pre-reduction DNN (A001) read from the memory is accepted as an input, and the subgraph division unit (A004) divides the pre-reduction DNN into n subgraphs.
- n subgraphs and the contraction config (A002) read from the memory are accepted as inputs, and the contraction is applied to each subgraph in the contraction unit (A005).
- the subgraphs to which the reduction is applied are recombined and stored in memory as the reduction DNN (A003).
- the reduced DNN (A003) and LiDAR point cloud read from the memory are accepted as inputs, the inference unit (A006) executes the inference of the DNN, and outputs the inference result.
- FIG. 8A shows a configuration diagram of the second embodiment.
- the pre-reduction DNN (B001) and data set (B004) read from the memory and the reduction table (B002) containing the applicable reduction algorithm are input to the reduction algorithm optimization unit (B006).
- Optimize the reduction algorithm applied to the pre-reduction DNN in subgraph units is written to the reduction config (B003) and stored in the memory.
- the data set (B004) held in the memory shall be updated as appropriate by the LiDAR point cloud data acquired from the sensor.
- the contraction DNN (B005) is generated and stored in the memory.
- the reduced DNN (B005) and LiDAR point cloud are input to the inference unit (B008), and the inference result is obtained. According to this embodiment, it is possible to dynamically adjust the DNN reduction method according to changes in the driving scene.
- the system configuration of FIG. 8A can be configured by a general information processing device such as a server.
- the information storage device includes a processing device, a storage device, an input device, and an output device.
- functions such as calculation and control are realized by the processing device executing the program stored in the storage device in cooperation with other hardware.
- a program executed by a computer, its function, or a means for realizing the function may be referred to as a "function", a "means”, a "part”, a "unit”, a “module”, or the like.
- LiDAR point cloud data is input from, for example, an input device.
- the pre-reduction DNN (B001), data set (B004), and contraction table (B002) are stored as a database in, for example, a hard disk device that is a part of a storage device (memory), and are also a part of the storage device. It is appropriately called and used by a semiconductor memory or the like.
- the reduction algorithm optimization unit (B006) and the reduction unit (B007) are implemented as programs in the storage device, and are executed by the processing device to realize a predetermined function.
- the processing results are stored in the contraction config (B003) and contraction DNN (B005).
- the inference unit (B008) is a device for executing AI processing, and is commercially available as a module that can implement a neural network.
- modules for example, Versal (trademark), Xavier (trademark), NCS2 (trade name) and the like are known.
- the above server configuration may be configured by a single device, or may be configured by any part of an input device, an output device, a processing device, and a storage device by another computer connected by a network. good.
- the same function as the function configured by software can be realized by hardware such as FPGA (Field Programmable Gate Array) and ASIC (Application Specific Integrated Circuit).
- FPGA Field Programmable Gate Array
- ASIC Application Specific Integrated Circuit
- FIG. 8B is a table showing an example of a reduction table (B002).
- the affinity with each reduction method is recorded for devices # 1, # 2, # 3, and # 4, which are registered as devices applicable to the inference unit (B008).
- the affinity value is in the range of 1 to 0, and although it is close to 1, the affinity is high. This information is registered in advance as a database based on publicly known information or user knowledge.
- FIG. 9 shows the processing flow
- FIG. 10 shows the device configuration
- S000 DNN before reduction, subgraph perturbation output from perturbation calculation unit 2 (C006), maximum number of subgraphs which is the upper limit of the number of subgraphs to subgraph, and graph division signal output from optimization unit (C007). Is input to the subgraph division part (C003), and the pre-reduction DNN is divided into n subgraphs. The maximum number of subgraphs can be set in advance or entered by the user each time.
- S001 The contraction algorithm for each subgraph output from the subgraph, reduction table (B002) and optimization unit (C007) is input to the temporary reduction unit (C004), and the reduction algorithm corresponding to each subgraph. By applying, a temporary contraction subgraph is generated.
- known reduction algorithms such as pooling, Rowlank, WeightSharing, and quantization are registered in the reduction table (B002).
- the reduction algorithm for example, in the reduction table (B002), the one having a high affinity with the mounting device is preferentially selected.
- S002 Input the pre-reduction DNN, data set, and temporary contraction subgraph to the perturbation calculation unit 1 (C005) and perturbation calculation unit 2 (C006), and the perturbation of the calculation result before and after the contraction is NN perturbation and subgraph, respectively. Generated as a perturbation.
- the subgraph perturbation is recorded in the memory as a log file (C008).
- S005 Judge the end of optimization according to the predetermined end conditions.
- the end conditions include that the NN perturbation meets certain conditions, the processing time limit or the number of times is exceeded, and so on. Return to S001 to continue optimizing the reduction algorithm. Otherwise, the process is completed.
- FIG. 11A shows the processing flow of the subgraph division portion. This will be described together with FIG. FIG. 11B shows the concept of a subgraph divided.
- the perturbation calculation unit 2 (C006) outputs the same perturbation value as the perturbation calculation unit 1 (C005). If the combination of reduction algorithms is corrected (S003) and the end condition is satisfied, the AI does not need to be divided, so the reduction process ends (S005). If the NN perturbation exceeds the threshold for a predetermined number of times even after correcting the combination of reduction algorithms, enable the graph division signal and proceed to S012 (S000) (S004).
- S012 Save the pre-reduction DNN (graph 1101 in Fig. 11B) in the root of the m-divided tree, and set the root of the m-divided tree as the node to be divided.
- the pre-reduction DNN in FIG. 11B is 8 layers in this example.
- S013 The graph stored in the division target node is divided into m and saved in m child nodes under the division target node.
- graph 1102 and graph 1103 are child nodes.
- the method of division is to divide each layer so as to be as even as possible.
- the graph of each of the four layers is a subgraph.
- the subgraphs 1102 and 1103 after division are stored in m leaf nodes of m-divided trees (leaf nodes of depth 1: m), respectively.
- S014 The provisional contraction unit (C004) applies the contraction method for each subgraph after division (S001), and the perturbation calculation unit 1 (C005) applies the inference result due to the contraction to the entire AI. Calculate the perturbation value (S002). If the contraction algorithm is corrected (S003) and the NN perturbation due to contraction is still larger than the threshold value, the graph division signal is enabled and the process proceeds to S015 (S004). If the NN perturbation is smaller than the threshold value, the process is terminated assuming that the effect of graph division is obtained (S005).
- the perturbation calculation unit 2 acquires the value of the subgraph perturbation for each of the subgraphs stored in the m child nodes (S002). In the example of FIG. 11B, the perturbations of subgraph 1102 and subgraph 1103 are calculated.
- the child node with the largest absolute value of the subgraph perturbation is set as the new division target node.
- the perturbation of the subgraph 1102 is large, and the subgraph 1102 is the node to be divided.
- the divided subgraph 1104 and the subgraph 1105 are stored in m children of the node to be divided, respectively.
- the subgraphs stored in the m-divided leaf nodes 2m-1 are the subgraphs after division.
- the leaf node at depth 1 is the subgraph 1103 and the leaf node at depth 2 is the subgraphs 1104 and 1105.
- the number of these leaf nodes (3 in the example of FIG. 11B) is equal to the number n in the subgraph.
- S014 The provisional contraction unit (C004) applies the contraction method for each 2m-1 subgraph, and the perturbation calculation unit 1 (C005) perturbs the inference result due to the contraction for the entire AI. Calculate the value. Correct the reduction algorithm (S003), and if the value of the NN perturbation due to reduction is larger than the threshold value, enable the subgraph division signal and repeat the division (S004).
- the next division target is the graph with the largest subgraph perturbation among the subgraphs 1103, 1104, and 1105.
- the loop end condition is when the number of divisions n (the number of m-minute leaf nodes) of the subgraph exceeds the maximum value (S017).
- Perturbation calculation unit 1 calculates the NN perturbation of the entire network model.
- the NN perturbation is used to search for the optimal combination of reduction methods.
- FIG. 12 shows a configuration diagram.
- the 0th provisional contraction subgraph and the corresponding subgraph of the pre-reduction DNN are input to the forward propagation unit B0 and the forward propagation unit A0, respectively, and the same data set is forward-propagated.
- the kth provisional contraction subgraph and the corresponding subgraph of the pre-reduction DNN are input to the forward propagation section Bk and the forward propagation section Ak, respectively, and the k-1st forward propagation section Bk-1 operation. Propagate the result and the operation result of the forward propagation unit Ak-1 respectively.
- the above operation is repeated up to the nth subgraph, and the absolute value of the difference between the calculation results of the forward propagation parts An and Bn is calculated by the perturbation calculation unit to generate the NN perturbation.
- the perturbation calculation unit 2 (C006) calculates the subgraph perturbation for each subgraph.
- the subgraph perturbation is used to determine the necessity of subgraph division of the network.
- FIG. 13 shows a configuration diagram.
- the 0th provisional contraction subgraph and the corresponding subgraph of the pre-reduction DNN are input to the forward propagation section B0 and the forward propagation section A0, respectively, and the same data set is forward-propagated.
- the kth provisional contraction subgraph and the corresponding subgraph of the pre-reduction DNN are input to the forward propagation section Bk and the forward propagation section Ak, respectively, and the k-1st forward propagation section Ak-1 operation. Propagate the result forward to both sides. The above operation is repeated until the nth subgraph.
- FIG. 14 shows a configuration diagram.
- the contraction config that describes the n subgraphs and the contraction algorithm applied to each subgraph is accepted as input, and the reduction unit (D001) executes the contraction.
- the reduction result for each subgraph is recombined into one DNN at the subgraph connection part (D002).
- Re-learning is performed in the re-learning unit (D003) using the recombined DNNs and datasets, and a reduced NN model is generated.
- FIG. 15 shows the configuration of Example 3.
- the third embodiment has a configuration in which a system for generating a contraction config on the data center side is added to the first embodiment.
- the contraction algorithm optimizer (E009) generates the contraction config (E011) using the pre-reduction DNN (E012), dataset (E010), and contraction table (E013) on the data center side. Then, update the contraction config (E002) on the AD-ECU side via the OTA transmitter (E008) and OTA receiver (E007).
- FIG. 16 shows the configuration of Example 4.
- the pre-reduction DNN can be received from the outside by the OTA receiver (F009) as compared with the second embodiment.
- FIG. 17 shows the configuration of Example 5.
- the fifth embodiment has a configuration in which the perturbation log (G010) acquired by the reduction algorithm optimization unit for the fourth embodiment is stored in a memory and can be transmitted to the outside through the OTA transmitter (G011).
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Neurology (AREA)
- Electromagnetism (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
ニューラルネットワークの部分グラフ単位で,適用する縮約アルゴリズムの最適化を実現する。 本発明の好ましい一側面は,ニューラルネットワークを縮約するアルゴリズムを選定する情報処理装置であって,ニューラルネットワークを部分グラフに分割する部分グラフ分割部と,前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けた縮約コンフィグを出力する最適化部と,を備える情報処理装置である。
Description
本発明は,ニューラルネットワークの縮約に関する。
近年,車載ECU(Electronic Control Unit)にDNN(Deep Neural Network)を実装することで,高精度な物体認識や行動予測を用いたハイレベル自動運転の実現を目指す動きが加速している。
図1に示すように,DNNは多数のニューロンから構成される演算レイヤを1層以上、多段に接続することで実現される。N層目の演算レイヤでは,N-1層目から出力された値を入力とし,この入力値を重み係数で重みづけすることで得られた結果をN+1層目の入力へ出力する。このとき,重み係数をアプリケーションに応じて適切な値に設定すること(学習)で,高い汎化性能を得ることができる。
自動運転向けDNNの一例として,LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging、「光検出と測距」ないし「レーザー画像検出と測距」)点群を用いて物体認識やセグメンテーションなどを実現する点群AI(Artificial Intelligence)がある。
特許分文献1には、DNNに代表されるニューラルネットワークの演算量を削減(縮約)するための方法について開示がある。
図2に点群AIの構成例を示す。LiDAR点群にVoxel(体積要素)を割り当て,DNN等により疑似画像を生成する。疑似画像中の所定の物体の検出をCNN(Convolutional Neural Network)で行う。
点群AIを自動運転に適用するためには,高解像度なLiDARを用いることで点群AIを高性能化する必要がある。よって自動運転向け点群AIの実装には,車載プロセッサの演算性能と比較して膨大な演算量が必要である。例えば,点群AIの一種であるPointPIllarsを用いて自動運転における物体認識を実現するためには,65GOPs(Giga Operations)以上の演算量が必要である。一方で,車載ECUへ搭載可能なプロセッサの演算性能は数10TOPS(Tera Operation per Second)程度であり,PointPillarsを含む自動運転システム全体をリアルタイム実行するためには不十分である。
そこで,自動運転向け点群AIの演算量削減と高精度な推論精度維持を両立できる演算量削減(縮約)アルゴリズムが必要である。
特許文献1記載の技術では、DNNに代表されるニューラルネットワークの演算量を削減するため、Multi-iteration compression methodによりDNNの縮約を実現する。
図3は,発明者らが創作した図であり,DNN縮約フローにおいて,任意の単一の縮約アルゴリズムを縮約対象DNN全体に一律適用する例を示している。
学習データセット301と縮約前DNNモデル302に対して,例えば予め設定してある縮約条件から選択する等して初期縮約条件を決定する(S303)。縮約前DNNモデル302は,学習データセット301で学習済みとする。
次に,初期縮約条件に基づいたDNN中の縮約箇所および縮約率に基づいて,縮約前DNNモデル302を縮約する(S304)。
次に,縮約後のDNNモデルを学習データセット301で再学習し(S305),縮約前後のDNNモデルの出力の誤差を評価するなどして,縮約を終了するか判定する(S306)。縮約が終了した場合には,縮約後のDNNモデルを縮約DNNモデル307として記録する。
縮約を終了しない場合には,縮約箇所や縮約率の最適条件を探索し(S308),再度縮約を行う(S304)。
しかし、点群AIなどの複雑な構造を有するDNNでは,DNNを構成する部位(部分グラフ)ごとに最適な縮約アルゴリズムが異なる。そこで,DNNの演算量削減と推論精度維持を両立する高精度縮約を実現するためには,部分グラフ単位で最適な縮約アルゴリズムを選定し適用する必要がある。
よって,上記の構成では,ニューラルネットワークの部分グラフ単位で,適用する縮約アルゴリズムの最適化を実現できないという課題があった。
本発明の好ましい一側面は,ニューラルネットワークを縮約するアルゴリズムを選定する情報処理装置であって,ニューラルネットワークを部分グラフに分割する部分グラフ分割部と,前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けた縮約コンフィグを出力する最適化部と,を備える情報処理装置である。
本発明の好ましい他の一側面は,ニューラルネットワークを部分グラフに分割する第1のステップ,前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けて仮縮約する第2のステップ,を実行するニューラルネットワーク縮約方法である。
ニューラルネットワークの部分グラフ単位で,適用する縮約アルゴリズムの最適化を実現できる。
以下に実施例を図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する実施例の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
本明細書で引用した刊行物、特許および特許出願は、そのまま本明細書の説明の一部を構成する。
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
図4に実施例の一例のフローを示す。図3の縮約フローに対して縮約アルゴリズム最適化の処理(S409)を備えている。
縮約アルゴリズム最適化(S409)では,まず縮約前DNNモデル402を複数の部分グラフに分割し,さらに部分グラフ単位で最適な縮約アルゴリズムを高効率に探索する。
学習データセット401と縮約前DNNモデル402に対して,例えば予め設定してある縮約条件から選択する等して,部分グラフごとに初期縮約条件を決定する(S403)。縮約前DNNモデル402は,学習データセット401で学習済みとする。
次に,初期縮約条件に基づいたDNN中の縮約箇所および縮約率に基づいて,縮約前DNNモデル402を部分グラフ毎に縮約する(S404)。
次に,縮約後のDNNモデルを学習データセット401で再学習し(S405),縮約前後のDNNモデルの出力の誤差を評価するなどして,縮約を終了するか判定する(S406)。縮約が終了した場合には,縮約後のDNNモデルを縮約DNNモデル407として記録する。
ここで,縮約により検出精度が低下するため,検出精度を回復させるために再学習を実行している。再学習を実行しない場合は,縮約AIの検出率が大幅に低下する可能性がある。再学習には,基本的には縮約前DNNモデルの学習に用いたものと同じデータセットを利用してよいが,適用シーンなどに応じてデータセットは柔軟に変更することが可能である。
縮約を終了しない場合には,縮約箇所や縮約率の最適条件を探索し(S408),再度縮約を行う(S404)。
図5に縮約アルゴリズム最適化(S409)の処理を模式的に示す。まず入力された最大部分グラフ数および縮約前DNNモデル402をもとに,部分グラフ分割箇所の初期値を決定する。最大部分グラフ数は,予め設定あるいは,ユーザがその都度指定してよい。分割箇所は予め定めたルールにより、例えばニューロン数ができるだけ均等になるよう分割する。
次に,分割された部分グラフごとに縮約アルゴリズムを適用し,縮約適用前後における各部分グラフの計算結果の誤差絶対値を摂動の大きさとして出力する。縮約アルゴリズムは,例えば予め準備された複数の中から選択する。部分グラフごとに異なる縮約アルゴリズムを選択可能である。
摂動計算結果はマージして総合的に評価する。次に,任意の最適化アルゴリズムを用いて,評価した摂動の大きさが小さくなるように各部分グラフへ適用する縮約アルゴリズムの組み合わせを変更する。この時,縮約アルゴリズムの組み合わせを任意回数変更したにもかかわらず,摂動の大きさが一定閾値未満に収束しない場合,縮約前DNNモデル402の部分グラフ分割箇所を変更し,再度縮約アルゴリズの組み合わせ最適化を行う。
図6に物体認識向け点群AIであるPointPillarsに本実施例を適用した場合の効果を示す。縮約前点群AI601のDNNモデル全体に,単一の縮約手法1b(Voxel数削減)を適用した場合,NG1のように検出率が大幅に低下した。また,DNNモデル全体に,単一の縮約手法2b(Low rank近似)を適用した場合,NG2のように処理時間は短縮されるものの検出率が低下した。
本実施例では,縮約前点群AI601のDNNモデルのうち部分グラフ1に縮約手法1a(Voxelあたり点群数削減)を適用し,部分グラフ2に縮約手法2a(プルーニング)を適用した。この結果,最適縮約点群AI602が得られた。
なお、矢印603は,部分グラフ1に対する縮約手法1aで得られる検出率および処理時間の限界値を示しており,矢印604は,部分グラフ2に対する縮約手法2aで得られる検出率および処理時間の限界値を示している。斜点線605はこれらの境界を示す。このように,部分グラフごとに適した縮約手法があることがわかる。
本実施例の,最適縮約点群AI602は,PointPillarsの縮約に起因した検出率低下を抑制しつつ,推論時間を50%削減することが可能である。なお本実施例は,点群AIのみならず画像処理CNN等他のAIにも適用可能である。
図7に実施例1の構成図を示す。まずメモリより読み出された縮約前DNN(A001)を入力として受け付け,部分グラフ分割部(A004)において縮約前DNNをn個の部分グラフへ分割する。次にn個の部分グラフおよびメモリから読み出された縮約コンフィグ(A002)を入力として受け付け,縮約部(A005)において部分グラフごとに縮約をそれぞれ適用する。縮約が適用された部分グラフは再結合され,縮約DNN(A003)としてメモリに格納される。最後にメモリから読み出された縮約DNN(A003)およびLiDAR点群を入力として受け付け,推論部(A006)においてDNNの推論を実行し,推論結果を出力する。
図8Aに実施例2の構成図を示す。まずメモリから読み出された縮約前DNN(B001)およびデータセット(B004)ならびに適用可能な縮約アルゴリズムが記載された縮約テーブル(B002)を縮約アルゴリズム最適化部(B006)に入力し,縮約前DNNに適用する縮約アルゴリズムを部分グラフ単位で最適化する。ここで各部分グラフと最適縮約アルゴリズムの対応関係は,縮約コンフィグ(B003)に書き出されメモリで保持される。なお,メモリに保持されたデータセット(B004)はセンサから取得されたLiDAR点群データにより適宜更新されるものとする。
次に,縮約コンフィグ(B003)およびデータセット(B004)ならびにn個の部分グラフを縮約部(B007)に入力することで,縮約DNN(B005)を生成しメモリへ格納する。最後に,縮約DNN(B005)およびLiDAR点群を推論部(B008)に入力し,推論結果を得る。本実施例により,走行シーンの変化などに応じたDNN縮約手法の動的な調整が可能である。
図8Aのシステム構成は,サーバのような一般的な情報処理装置で構成可能である。情報記憶装置は,処理装置,記憶装置,入力装置,出力装置を備える。本実施例では計算や制御等の機能は,記憶装置に格納されたプログラムが処理装置によって実行されることで、定められた処理を他のハードウェアと協働して実現される。計算機などが実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。
図8Aにおいて,説明のため上記サーバの当然持つ構成は省略し,データや機能ブロックの形で表示している。LiDAR点群データは,例えば入力装置から入力される。縮約前DNN(B001),データセット(B004),縮約テーブル(B002)は,例えば記憶装置(メモリ)の一部であるハードディスク装置等にデータベースとして格納されており、同じく記憶装置の一部である半導体メモリなどに適宜呼び出されて使用される。縮約アルゴリズム最適化部(B006),縮約部(B007)は,記憶装置にプログラムとして実装されており,処理装置によって実行され所定の機能を実現する。縮約コンフィグ(B003),縮約DNN(B005)には,処理結果が格納される。
推論部(B008)は,AIの処理を実行するためのデバイスであり,ニューラルネットワークを実装可能なモジュールとして市販されている。モジュールとして,例えばVersal(商標),Xavier(商標),NCS2(商品名)などが知られている。
以上のサーバの構成は、単体の装置で構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。
本実施例中、ソフトウエアで構成した機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアでも実現できる。
図8Bは,縮約テーブル(B002)の例を示す表図である。推論部(B008)に適用可能なデバイスとして登録されている,デバイス#1,#2,#3,#4に対して,各縮約手法との親和性が記録されている。親和性の値は1~0の範囲であり,1に近いものの親和性が高い。これらの情報は,公知情報あるいはユーザの知見により,予めデータベースとして登録しておく。
以下で図8Aの縮約アルゴリズム最適化部(B006)の構成および処理フローについて詳述する。図9に処理フローを,図10に装置構成を示す。
図9のフローを順次説明する。
S000:縮約前DNN,摂動計算部2(C006)から出力された部分グラフ摂動,部分グラフへの分割数上限である最大部分グラフ数,および最適化部(C007)から出力されたグラフ分割信号を部分グラフ分割部(C003)に入力し,縮約前DNNをn個の部分グラフに分割する。最大部分グラフ数は,予め設定するか,ユーザがその都度入力する。
S000:縮約前DNN,摂動計算部2(C006)から出力された部分グラフ摂動,部分グラフへの分割数上限である最大部分グラフ数,および最適化部(C007)から出力されたグラフ分割信号を部分グラフ分割部(C003)に入力し,縮約前DNNをn個の部分グラフに分割する。最大部分グラフ数は,予め設定するか,ユーザがその都度入力する。
S001:部分グラフ,縮約テーブル(B002)および最適化部(C007)より出力された部分グラフごとの縮約アルゴリズムを仮縮約部(C004)に入力し,各部分グラフに対応する縮約アルゴリズムを適用することで,仮縮約部分グラフを生成する。図8Bに示したように,縮約テーブル(B002)には,公知の縮約アルゴリズム、例えばプーリング,Row lank,Weight Sharing,量子化などが登録されているものとする。縮約アルゴリズムの選択は,例えば縮約テーブル(B002)において,実装用デバイスと親和性が高いものを優先的に選択する。
S002:縮約前DNN,データセット,仮縮約部分グラフを摂動計算部1(C005)および摂動計算部2(C006)に入力し,縮約前後における計算結果の摂動をそれぞれNN摂動および部分グラフ摂動として生成する。ここで部分グラフ摂動はログファイル(C008)としてメモリ上に記録される。
S003:NN摂動を最適化部(C007)に入力することで,NN摂動の値が小さくなるように縮約アルゴリズムの組み合わせを補正する。組み合わせの探索は例えば、縮約テーブルB002にて,親和性が高いアルゴリズムの組み合わせを網羅的に試行し,縮約アルゴリズム最適化のループ処理を行う。
S004:最適化部(C007)の試行において,所定のk回連続でNN摂動が任意閾値以上の場合,グラフ分割信号をenableとし,S000の処理に戻る。それ以外の場合は,S005に進む。
S005:所定の終了条件により最適化の終了を判定する。終了条件としては,NN摂動が所定の条件を満たす,処理の制限時間あるいは制限回数を超える,などがある。縮約アルゴリズムの最適化を継続する場合はS001に戻る。それ以外は処理を完了する。
次に,部分グラフ分割部(C003)について述べる。
図11Aに部分グラフ分割部の処理フローを示す。図9と合わせて説明する。
図11Bに分割される部分グラフの概念を示す。
図11Aに部分グラフ分割部の処理フローを示す。図9と合わせて説明する。
図11Bに分割される部分グラフの概念を示す。
部分グラフ分割部(C003)は,通常は待ち状態になっており,グラフ分割信号がenableになったとき起動する(S004)。AIの縮約処理開始直後は,部分グラフ摂動やグラフ分割信号が適用されないため,AIは分割されておらず(すなわち部分グラフ数n=1),AI全体に同じ縮約手法を適用する(S001)。適用する縮約手法は仮縮約部(C004)が,縮約テーブル(B002)を参照して最適なものを選択している。摂動計算部1(C005)は,AI全体に対して,縮約に起因した推論結果の摂動値を計算する(S002)。この時点では部分グラフ=縮約前DNNなので,摂動計算部2(C006)は,摂動計算部1(C005)と同じ摂動値を出力する。縮約アルゴリズムの組み合わせを補正し(S003),終了条件を満足する場合には,AIを分割する必要がないので縮約処理は終了する(S005)。縮約アルゴリズムの組み合わせを補正しても,NN摂動が所定回連続で閾値以上となる場合には,グラフ分割信号をenableにしてS012(S000)へ進む(S004)。
S012:縮約前DNN(図11Bのグラフ1101)をm分木の根に保存し,m分木の根を分割対象ノードに設定する。mの値は予め設定あるいはユーザが都度入力すればよい。この例ではm=2の固定値として説明する。図11Bの縮約前DNNはこの例では8層とする。
S013:分割対象ノードに格納されたグラフをm分割し,分割対象ノードの配下にあるm個の子ノードに保存する。図11Bの例では、グラフ1101がm=2分割され,グラフ1102とグラフ1103が子ノードとなる。分割の方法は、層単位でなるべく均等になるように分割しており,この例では,各4層のグラフが部分グラフとなる。この状態では,m分木の葉ノードm個(深さ1の葉ノード:m個)にそれぞれ分割後の部分グラフ1102と1103が格納される。
S014:仮縮約部(C004)は,分割後の部分グラフごとに縮約手法を適用し(S001),摂動計算部1(C005)がAI全体に対して,縮約に起因した推論結果の摂動値を計算する(S002)。縮約アルゴリズムを補正して(S003)も尚,縮約によるNN摂動が閾値より大きい場合は、グラフ分割信号をenableにしてS015へ進む(S004)。NN摂動が閾値より小さい場合は、グラフ分割の効果が得られたとして処理を終了する(S005)。
S015:m個の子ノードに保存された部分グラフそれぞれに対して,摂動計算部2(C006)が部分グラフ摂動の値を取得する(S002)。図11Bの例では部分グラフ1102と部分グラフ1103の摂動が計算される。
S016:m個の子ノードのうち,部分グラフ摂動の絶対値が最大の子ノードを新しい分割対象ノードとして設定する。図11Bの例では部分グラフ1102の摂動が大きいとし,部分グラフ1102が分割対象ノードとなる。
S017:生成されたm分木の葉の数が最大部分グラフ数以下であれば,S013に戻る。それ以外は,処理を終了する。図11Bの例で,部分グラフ1102と部分グラフ1103まで分割されている場合は,これらが葉になるので,葉の数2が最大部分グラフ数を超えていれば分割は終了し、そうでなければS013に戻る。
S013:分割対象ノードのグラフ(この例では部分グラフ1102)が分割対象となり,m=2分割される。分割した部分グラフ1104と部分グラフ1105が,分割対象ノードのm個の子にそれぞれ格納される。この状態では、m分木の葉ノード2m-1個(深さ1の葉ノード:m-1個+深さ2の葉ノードm個)に格納された部分グラフがそれぞれ分割後の部分グラフとなる。この例では,深さ1の葉ノードは部分グラフ1103であり,深さ2の葉ノードは部分グラフ1104と1105である。これら葉ノードの数(図11Bの例では3)が部分グラフの数nに等しい。
S014:仮縮約部(C004)は,2m-1個の部分グラフごとに縮約手法を適用し,摂動計算部1(C005)がAI全体に対して,縮約に起因した推論結果の摂動値を計算する。縮約アルゴリズムを補正し(S003),縮約によるNN摂動の値が閾値より大きい場合,部分グラフ分割信号をenableにしてさらに分割を繰り返す(S004)。次の分割対象は,部分グラフ1103と1104と1105の中で,最も部分グラフ摂動が大きいグラフとなる。
ループの終了条件は,部分グラフの分割数n(m分木の葉ノードの数)が最大値を超えた場合(S017)である。
次に,摂動計算部1(C005)について述べる。摂動計算部1(C005)は,ネットワークモデル全体のNN摂動を計算する。NN摂動は,縮約手法の最適組み合わせ探索のために用いる。
図12に構成図を示す。まず0番目の仮縮約部分グラフおよびそれに対応する縮約前DNNの部分グラフを,順伝搬部B0および順伝搬部A0にそれぞれ入力し,同一のデータセットを順伝搬させる。同様にk番目の仮縮約部分グラフおよびそれに対応する縮約前DNNの部分グラフを,順伝搬部Bkおよび順伝搬部Akにそれぞれ入力し,k-1番目の順伝搬部Bk-1の演算結果および順伝搬部Ak-1の演算結果をそれぞれ順伝搬させる。以上の操作をn番目の部分グラフまで繰り返し,順伝搬部AnおよびBnの演算結果の差の絶対値を摂動計算部により算出し,NN摂動を生成する。
次に,摂動計算部2(C006)について述べる。摂動計算部2(C006)は,部分グラフごとの部分グラフ摂動を計算する。部分グラフ摂動は,ネットワークの部分グラフ分割の要否判定に用いる。
図13に構成図を示す。まず0番目の仮縮約部分グラフおよびそれに対応する縮約前DNNの部分グラフを,順伝搬部B0および順伝搬部A0にそれぞれ入力し,同一のデータセットを順伝搬させる。同様にk番目の仮縮約部分グラフおよびそれに対応する縮約前DNNの部分グラフを,順伝搬部Bkおよび順伝搬部Akにそれぞれ入力し,k-1番目の順伝搬部Ak-1の演算結果を双方に順伝搬させる。以上の操作をn番目の部分グラフまで繰り返す。このとき,順伝搬部AkおよびBkの演算結果の差の絶対値に正規化を適用した値を,部分グラフ摂動kとして生成する。正規化は,例えば(摂動pi/縮約前NNの出力yi)の演算で行うことができる。 最後に,縮約部(B007)について述べる。
図14に構成図を示す。まずn個の部分グラフおよび各部分グラフに適用する縮約アルゴリズムを記載した縮約コンフィグを入力として受け付け,演算量削減部(D001)において縮約を実行する。次に,各部分グラフに対する縮約結果を部分グラフ結合部(D002)において,一つのDNNに再結合する。再結合されたDNNおよびデータセットを用いて再学習部(D003)において再学習を実行し,縮約NNモデルを生成する。
図15に実施例3の構成を示す。実施例3は,実施例1に対し縮約コンフィグをデータセンタ側で生成するシステムを追加した構成である。具体的には,データセンタ側で縮約前DNN(E012)およびデータセット(E010)ならびに縮約テーブル(E013)を用いて縮約アルゴリズム最適化部(E009)により縮約コンフィグ(E011)を生成し,OTA送信機(E008)およびOTA受信機(E007)を介してAD-ECU側の縮約コンフィグ(E002)を更新する。
図16に実施例4の構成を示す。実施例4は,実施例2に対し縮約前DNNをOTA受信器(F009)により外部から受信可能とした構成である。
図17に実施例5の構成を示す。実施例5は,実施例4に対し縮約アルゴリズム最適化部で取得した摂動ログ(G010)を,メモリに記憶し,OTA送信器(G011)を通じて外部へ送信可能な構成である。
・縮約前DNN・・・A001,B001,E001,E012,F001,G001
・縮約コンフィグ・・・A002,B003,C002,E002,E011,F003,G003
・縮約DNN・・・A003,B005,E003,F005,G005
・部分グラフ分割部・・・A004,C003,E004
・縮約部・・・A005,B007,E005,F007,G007
・推論部・・・A006,B008,E006,F008,G008
・縮約テーブル・・・B002,C001,E013,F002,G002
・データセット・・・B004,E010,F004,G004
・縮約アルゴリズム最適化部・・・B006,E009,F006,G006
・仮縮約部・・・C004
・摂動計算部1・・・C005
・摂動計算部2・・・C006
・最適化部・・・C007
・ログファイル・・・C008,G010
・演算量削減部・・・D001
・部分グラフ結合部・・・D002
・再学習部・・・D003
・OTA受信器・・・E007,F009,G009
・OTA送信器・・・E008,G011
・縮約コンフィグ・・・A002,B003,C002,E002,E011,F003,G003
・縮約DNN・・・A003,B005,E003,F005,G005
・部分グラフ分割部・・・A004,C003,E004
・縮約部・・・A005,B007,E005,F007,G007
・推論部・・・A006,B008,E006,F008,G008
・縮約テーブル・・・B002,C001,E013,F002,G002
・データセット・・・B004,E010,F004,G004
・縮約アルゴリズム最適化部・・・B006,E009,F006,G006
・仮縮約部・・・C004
・摂動計算部1・・・C005
・摂動計算部2・・・C006
・最適化部・・・C007
・ログファイル・・・C008,G010
・演算量削減部・・・D001
・部分グラフ結合部・・・D002
・再学習部・・・D003
・OTA受信器・・・E007,F009,G009
・OTA送信器・・・E008,G011
Claims (15)
- ニューラルネットワークを縮約するアルゴリズムを選定する情報処理装置であって,
ニューラルネットワークを部分グラフに分割する部分グラフ分割部と,
前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けた縮約コンフィグを出力する最適化部と,
を備える情報処理装置。 - 前記部分グラフ分割部は,階層構造を有する前記ニューラルネットワークを,層単位で分割する,
請求項1記載の情報処理装置。 - さらに仮縮約部と第1の摂動計算部を備え,
前記仮縮約部は,前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けて縮約して仮縮約部分グラフを出力し,
前記第1の摂動計算部は,前記ニューラルネットワークの順伝搬値および複数の前記仮縮約部分グラフを直列結合した順伝搬値の差に基づく,ニューラルネットワークの摂動を出力し,
前記最適化部は,前記ニューラルネットワークの摂動が,所定値を満たす縮約コンフィグを出力する,
請求項2記載の情報処理装置。 - 前記仮縮約部は,前記ニューラルネットワークが実装されるデバイスの種類と適用すべき縮約手法の優先度が対応付けられた縮約テーブルを参照して,複数の縮約手法から一つを選択する,
請求項3記載の情報処理装置。 - さらに第2の摂動計算部を備え,
前記第2の摂動計算部は,それぞれの前記部分グラフの順伝搬値および前記仮縮約部分グラフの順伝搬値の差に基づく,それぞれの部分グラフの摂動を出力し,
前記部分グラフ分割部は,前記部分グラフの摂動に基づいて,さらに分割する部分グラフを選定する,
請求項3記載の情報処理装置。 - 前記部分グラフ分割部は,現状において摂動が最大の部分グラフを,さらに分割する部分グラフとして選定する,
請求項5記載の情報処理装置。 - さらに縮約部を備え,
前記縮約部は,演算量削減部と部分グラフ結合部を備え,
前記演算量削減部は,前記部分グラフと前記縮約コンフィグを入力とし,前記部分グラフのそれぞれに対して,前記縮約コンフィグに記載された縮約手法を適用して縮約後部分グラフを出力し,
前記部分グラフ結合部は,前記演算量削減部の出力を入力とし,前記縮約後部分グラフを結合して,縮約後ニューラルネットワークを出力する,
請求項1記載の情報処理装置。 - さらに再学習部を備え、
前記再学習部は,前記縮約後ニューラルネットワークと学習用データセットを受付け,前記縮約後ニューラルネットワークを学習する,
請求項7記載の情報処理装置。 - 前記部分グラフの摂動を摂動ログとしてメモリに保持することを特徴とする、
請求項5記載の情報処理装置。 - 前記摂動ログを演算装置外に送信することを特徴とする、
請求項9記載の情報処理装置。 - ニューラルネットワークを部分グラフに分割する第1のステップ,
前記部分グラフのそれぞれに対して,複数の縮約手法から選択された一つを対応付けて仮縮約する第2のステップ,
を実行するニューラルネットワーク縮約方法。 - 仮縮約したニューラルネットワークの摂動を計算する第3のステップ,
前記ニューラルネットワークの摂動に基づいて,前記部分グラフに対する縮約手法の対応を変更する第4のステップ,
を実行する請求項11記載のニューラルネットワーク縮約方法。 - 前記部分グラフのそれぞれに対して,仮縮約した部分グラフ単位で部分グラフの摂動を計算する第5のステップ,
前記部分グラフの摂動に基づいて、さらに分割する部分グラフを選択する第6のステップ,
を実行する請求項11記載のニューラルネットワーク縮約方法。 - 前記第1のステップにおいて,前記部分グラフへの分割方法をm分木によって管理し,
前記ニューラルネットワークをm分木の根に保管し,前記m分木の根に保管された前記ニューラルネットワークをm分割し,前記根の子である深さ1のノードにm個の部分グラフを保管し,前記m分木の葉に保管された部分グラフを出力する,
請求項12記載のニューラルネットワーク縮約方法。 - 前記根の子である深さ1のノードに保管されたm個の部分グラフのうち,部分グラフの摂動が最大のノードに格納された部分グラフをm分割し,前記部分グラフの摂動が最大のノードの子に保管する,
請求項14記載のニューラルネットワーク縮約方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/035,868 US20240070463A1 (en) | 2020-11-11 | 2021-09-22 | Information processing device and neural network compression method |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020188356A JP7538002B2 (ja) | 2020-11-11 | 2020-11-11 | 情報処理装置およびニューラルネットワーク縮約方法 |
| JP2020-188356 | 2020-11-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022102255A1 true WO2022102255A1 (ja) | 2022-05-19 |
Family
ID=81601815
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2021/034898 Ceased WO2022102255A1 (ja) | 2020-11-11 | 2021-09-22 | 情報処理装置およびニューラルネットワーク縮約方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20240070463A1 (ja) |
| JP (1) | JP7538002B2 (ja) |
| WO (1) | WO2022102255A1 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025158559A1 (ja) * | 2024-01-24 | 2025-07-31 | ファナック株式会社 | ツール座標系の設定装置及び設定方法並びにロボットシステム |
| CN118333101B (zh) * | 2024-06-12 | 2024-08-23 | 上海岩芯数智人工智能科技有限公司 | 一种参数量可变的神经网络模型构建方法及装置 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019050771A1 (en) * | 2017-09-05 | 2019-03-14 | Panasonic Intellectual Property Corporation Of America | EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE, AND PROGRAM FOR DEEP NEURAL NETWORK |
| WO2019146651A1 (ja) * | 2018-01-25 | 2019-08-01 | 株式会社モルフォ | 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム |
| WO2020158058A1 (ja) * | 2019-01-31 | 2020-08-06 | 日立オートモティブシステムズ株式会社 | 演算装置 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8052055B2 (en) * | 2007-01-31 | 2011-11-08 | Hewlett-Packard Development Company, L.P. | Method and system for perturbing multi-radio-frequency-identification-tag-reader networks to increase interrogation efficiency |
| US8645337B2 (en) * | 2009-04-30 | 2014-02-04 | Oracle International Corporation | Storing compression units in relational tables |
| US8819078B2 (en) * | 2012-07-13 | 2014-08-26 | Hewlett-Packard Development Company, L. P. | Event processing for graph-structured data |
| US11423284B2 (en) * | 2018-09-07 | 2022-08-23 | Black Sesame Technologies, Inc | Subgraph tile fusion in a convolutional neural network |
| US11562247B2 (en) * | 2019-01-24 | 2023-01-24 | Microsoft Technology Licensing, Llc | Neural network activation compression with non-uniform mantissas |
| US11610102B1 (en) * | 2019-11-27 | 2023-03-21 | Amazon Technologies, Inc. | Time-based memory allocation for neural network inference |
-
2020
- 2020-11-11 JP JP2020188356A patent/JP7538002B2/ja active Active
-
2021
- 2021-09-22 US US18/035,868 patent/US20240070463A1/en active Pending
- 2021-09-22 WO PCT/JP2021/034898 patent/WO2022102255A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019050771A1 (en) * | 2017-09-05 | 2019-03-14 | Panasonic Intellectual Property Corporation Of America | EXECUTION METHOD, EXECUTION DEVICE, LEARNING METHOD, LEARNING DEVICE, AND PROGRAM FOR DEEP NEURAL NETWORK |
| WO2019146651A1 (ja) * | 2018-01-25 | 2019-08-01 | 株式会社モルフォ | 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム |
| WO2020158058A1 (ja) * | 2019-01-31 | 2020-08-06 | 日立オートモティブシステムズ株式会社 | 演算装置 |
Non-Patent Citations (1)
| Title |
|---|
| YUHUI XU; YONGZHUANG WANG; AOJUN ZHOU; WEIYAO LIN; HONGKAI XIONG: "Deep Neural Network Compression with Single and Multiple Level Quantization", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 6 March 2018 (2018-03-06), 201 Olin Library Cornell University Ithaca, NY 14853 , XP080862954 * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7538002B2 (ja) | 2024-08-21 |
| US20240070463A1 (en) | 2024-02-29 |
| JP2022077466A (ja) | 2022-05-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7462623B2 (ja) | 活性スパース化を用いたニューラルネットワーク加速・埋め込み圧縮システム及び方法 | |
| KR102732517B1 (ko) | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 | |
| US10832123B2 (en) | Compression of deep neural networks with proper use of mask | |
| CN112257751B (zh) | 神经网络剪枝方法 | |
| CN115879533B (zh) | 一种基于类比学习的类增量学习方法及系统 | |
| CN115437795B (zh) | 一种异构gpu集群负载感知的显存重计算优化方法及系统 | |
| JPWO2018016608A1 (ja) | ニューラルネットワーク装置、車両制御システム、分解処理装置、及びプログラム | |
| JP7696429B2 (ja) | ニューラル・ネットワークにおける重みに基づく調節 | |
| US11275816B2 (en) | Selection of Pauli strings for Variational Quantum Eigensolver | |
| US12050976B2 (en) | Convolution operations utilizing nonzero padding data copied from input channel data | |
| TW202341011A (zh) | 訓練神經網路執行機器學習任務 | |
| CN112200316A (zh) | 一种针对在线预测任务的gbdt学习方法 | |
| US20170140072A1 (en) | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints | |
| CN117933345B (zh) | 一种医学图像分割模型的训练方法 | |
| JP7538002B2 (ja) | 情報処理装置およびニューラルネットワーク縮約方法 | |
| CN117035045A (zh) | 模型参数更新方法、装置、设备、存储介质和程序产品 | |
| CN114463596A (zh) | 一种超图神经网络的小样本图像识别方法、装置及设备 | |
| CN117933104B (zh) | 固体姿轨控发动机燃气调节阀压强修正方法 | |
| US20180082167A1 (en) | Recurrent neural network processing pooling operation | |
| TW202449657A (zh) | 基於稀疏化和量化的深度神經網路模型優化 | |
| CN107038244A (zh) | 一种数据挖掘方法和装置、一种可读介质和存储控制器 | |
| CN118886458A (zh) | 基于脉冲神经网络的信号处理方法、任务处理方法及装置 | |
| WO2021086486A1 (en) | Neural network instruction streaming | |
| CN118194717A (zh) | 基于数字孪生的飞秒脉冲仿真方法、系统及装置 | |
| US20220138580A1 (en) | Data swapping for neural network memory conservation |
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: 21891503 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: 21891503 Country of ref document: EP Kind code of ref document: A1 |