WO2017149971A1 - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- WO2017149971A1 WO2017149971A1 PCT/JP2017/001554 JP2017001554W WO2017149971A1 WO 2017149971 A1 WO2017149971 A1 WO 2017149971A1 JP 2017001554 W JP2017001554 W JP 2017001554W WO 2017149971 A1 WO2017149971 A1 WO 2017149971A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processing unit
- processing
- arithmetic
- pooling
- result data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
Definitions
- This disclosure relates to an arithmetic processing device.
- CNN convolutional neural network
- a convolution operation process is executed on a plurality of different calculation result data obtained by the previous hierarchy, that is, feature value extraction result data, an activation process is executed, and a pooling process is executed. Therefore, higher-dimensional feature amounts are extracted. Further, by performing normalization processing on the processing result data by the pooling processing, the feature amount recognition rate can be improved, and the feature amount extraction processing can be performed more preferentially.
- an object of the present disclosure is to suppress the occurrence of latency by improving the configuration for performing normalization processing in an arithmetic processing device that realizes arithmetic processing using a neural network.
- the arithmetic processing device is an arithmetic processing device that performs an arithmetic operation using a neural network in which a plurality of processing layers are hierarchically connected, and includes a convolution arithmetic processing unit, a pooling processing unit, an integration processing unit, A statistical processing unit and a normalization processing unit are provided.
- the convolution operation processing unit performs a convolution operation process on the input data input from the previous layer.
- the pooling processing unit performs a pooling process on the processing result data by the convolution operation unit.
- the integration processing unit integrates the processing result data by the pooling processing unit before the calculation of the next layer is started.
- the statistical processing unit calculates an average value and a standard deviation of the data integrated by the integration processing unit.
- the normalization processing unit uses the average value and the standard deviation calculated by the statistical processing unit in the previous layer, and the processing result data output by the pooling processing unit in the previous layer Normalization processing is executed for.
- the normalization process can be performed using the statistical value obtained during the calculation process of the previous layer in the input part of the calculation process in the next layer. Therefore, it is not necessary to read data from the memory twice in the same processing hierarchy, and the occurrence of latency can be suppressed.
- FIG. 1 is a diagram conceptually illustrating a configuration example of a convolutional neural network.
- FIG. 2 is a diagram “part 1” that visually shows the flow of arithmetic processing in the intermediate layer.
- FIG. 3 is a diagram “part 2” that visually shows the flow of arithmetic processing in the intermediate layer.
- FIG. 4 is a diagram showing general arithmetic expressions and functions used in the feature amount extraction processing.
- FIG. 5 is a block diagram schematically illustrating a configuration example of the arithmetic processing device according to the first embodiment.
- FIG. 6 is a diagram illustrating an example of a normalization function.
- FIG. 1 is a diagram conceptually illustrating a configuration example of a convolutional neural network.
- FIG. 2 is a diagram “part 1” that visually shows the flow of arithmetic processing in the intermediate layer.
- FIG. 3 is a diagram “part 2” that visually shows the flow of arithmetic processing in the intermediate layer.
- FIG. 7 is a diagram visually showing the flow of arithmetic processing by the arithmetic processing device.
- FIG. 8 is a block diagram schematically illustrating a configuration example of the arithmetic processing device according to the second embodiment.
- FIG. 9 is a diagram illustrating an example of a subtraction expression and a division expression constituting the normalization process.
- FIG. 10 is a block diagram schematically illustrating a configuration example of the arithmetic processing device according to the third embodiment.
- FIG. 11 is a diagram illustrating a sampling example of processing result data of the pooling processing unit,
- FIG. 12 is a block diagram schematically illustrating a configuration example of the arithmetic processing device according to the fourth embodiment.
- FIG. 13 is a diagram illustrating an example of processing result data of the pooling processing unit in binary number
- FIG. 14 is a block diagram “part 1” schematically illustrating a configuration example of an arithmetic processing device according to the fifth embodiment.
- FIG. 15 is a block diagram “part 2” schematically illustrating a configuration example of the arithmetic processing device according to the fifth embodiment.
- FIG. 16 is a diagram illustrating an example of a nonlinear activation function
- FIG. 17 is a block diagram schematically illustrating a configuration example of an arithmetic processing device according to the sixth embodiment.
- FIG. 1 conceptually shows the configuration of a neural network, in this case a convolutional neural network, applied to arithmetic processing units 10, 20, 30, 40, 50, and 60, which will be described in detail later. That is, the convolutional neural network N is applied to an image recognition technique for recognizing a predetermined shape or pattern from the image data D1 that is input data, and includes an intermediate layer Na and a total coupling layer Nb.
- the intermediate layer Na has a configuration in which a plurality of feature quantity extraction processing layers Na1, Na2,. Each feature amount extraction processing layer Na1, Na2,... Includes a convolution layer C and a pooling layer P, respectively.
- the arithmetic processing unit scans the input image data D1 for each predetermined size by, for example, raster scanning. A plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data. Note that the first feature amount extraction processing layer Na1 extracts relatively simple single feature amounts such as a linear feature amount extending in the horizontal direction and a linear feature amount extending in the oblique direction. At this time, the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image.
- the arithmetic processing unit scans input data input from the feature amount extraction processing layer Na1 of the previous layer for every predetermined size by, for example, raster scanning. A plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data.
- the feature amount extraction processing layer Na2 of the second layer by integrating the spatial positional relationship of a plurality of feature amounts extracted by the feature amount extraction processing layer Na1 of the first layer, Extract higher-dimensional composite features.
- the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image.
- the arithmetic processing unit scans the input data input from the preceding feature amount extraction processing layer Na2 for each predetermined size by, for example, raster scanning.
- a plurality of feature amounts included in the input image are extracted by performing a known feature amount extraction process on the scanned data.
- the feature extraction processing layer Na3 of the third layer is integrated by considering the spatial positional relationship of a plurality of feature amounts extracted by the feature extraction processing layer Na2 of the second layer, Extract higher-dimensional composite features.
- the arithmetic processing device generates a plurality of feature maps respectively corresponding to the plurality of features included in the input image. In this way, by repeating the feature amount extraction processing by the plurality of feature amount extraction processing layers, the arithmetic processing device performs image recognition of the detection target object included in the image data D1.
- the arithmetic processing unit extracts various feature amounts included in the input image data D1 in a high dimension by repeating the processing by the plurality of feature amount extraction processing layers Na1, Na2, Na3... In the intermediate layer Na. Then, the arithmetic processing unit outputs the result obtained by the processing of the intermediate layer Na to the all coupling layer Nb as intermediate operation result data.
- the all combined layer Nb combines a plurality of intermediate calculation result data obtained from the intermediate layer Na and outputs final calculation result data. That is, the total connection layer Nb combines a plurality of intermediate operation result data obtained from the intermediate layer Na, and further performs a sum-of-products operation while varying the weighting coefficient for the combined result, thereby obtaining a final operation.
- Result data that is, image data in which the detection target included in the image data D1 as input data is recognized is output. At this time, the part where the value of the result of the product-sum operation is large is recognized as a part or all of the detection target.
- the arithmetic processing device uses a predetermined size for the input data Dn input from the feature extraction processing layer in the previous hierarchy, in this case, according to the filter size for each 3 ⁇ 3 pixel indicated by hatching in the figure. Scan.
- the pixel size is not limited to 3 ⁇ 3 pixels, and can be appropriately changed, for example, 5 ⁇ 5 pixels.
- the arithmetic processing unit performs a known convolution operation on the scanned data. Then, the arithmetic processing device performs a well-known activation process on the data after the convolution operation, and outputs the result to the convolution layer C. Then, the arithmetic processing unit performs a well-known pooling process on the output data Cn of the convolution layer C at a predetermined size, in this case, 2 ⁇ 2 pixels, and outputs the result to the pooling layer P. Then, the arithmetic processing device outputs the output data Pn of the pooling layer P to the feature amount extraction processing layer of the next layer.
- the pixel size is not limited to 2 ⁇ 2 pixels and can be changed as appropriate.
- the arithmetic processing unit performs well-known normalization processing on the data Pn1, Pn2,... After the pooling processing, thereby converting the pooling data Pn into the normalized data Nn1, Pn2, which is a predetermined reference format. ... and then output to the next layer. Thereby, the pooling data Pn can be output to the next layer in a more unified format. Therefore, the recognition rate of the feature amount can be improved, and the feature amount extraction process can be performed more preferentially. In each embodiment described later, the arithmetic processing device is improved in the configuration for performing this normalization process.
- FIG. 4 shows general examples of a convolution function used for convolution calculation processing, a function used for activation processing, and a function used for pooling processing.
- the convolution function Yij is a function that accumulates values obtained by multiplying the output Xij of the immediately preceding layer by the weighting factors Wp, q obtained by learning.
- “N” indicates a pixel size to be processed by one cycle of convolution operation processing. That is, for example, when the pixel size of one calculation cycle is “3 ⁇ 3” pixels, the value of N is “2”.
- the convolution function Yij may be a function for adding a predetermined bias value to the accumulated value.
- the convolution function can be adopted as long as it is a function capable of multiply-accumulate operation that can cope with all-join processing.
- a well-known logistic sigmoid function, ReLU function (Rectified Linear Units), or the like is used.
- ReLU function Rectified Linear Units
- the pooling process a known maximum pooling function that outputs a maximum value of input data, a known average pooling function that outputs an average value of input data, or the like is used.
- the processing by the convolution layer C and the processing by the pooling layer P are repeated, so that higher-dimensional feature amounts can be extracted.
- a plurality of embodiments according to an arithmetic processing device to which the convolutional neural network N is applied will be described.
- the arithmetic processing device that performs the processing of the nth layer is indicated by a solid line
- the arithmetic processing device that performs the processing of the (n + 1) th layer that is the next layer is indicated by a two-dot chain line. It shows by.
- a calculation block that performs processing of the nth layer is indicated by a solid line
- a calculation block that performs processing of the (n + 1) th layer that is the next layer is indicated by a two-dot chain line.
- the arithmetic processing device 10 illustrated in FIG. 5 includes a convolution arithmetic processing unit 11, a pooling processing unit 12, an integration processing unit 13, a statistical processing unit 14, and a normalization processing unit 15.
- the convolution operation processing unit 11 performs a well-known convolution operation process on the input data input from the previous layer, and outputs the processing result data to the pooling processing unit 12.
- the arithmetic processing device 10 performs a known activation process on the processing result data of the convolution arithmetic processing unit 11 by an activation processing unit (not shown) and outputs the result to the pooling processing unit 12.
- the pooling processing unit 12 performs a well-known pooling process on the processing result data input from the convolution operation processing unit 11, and outputs the processing result data to the normalization processing unit 15 at the next layer arithmetic processing. It is supposed to be.
- the integration processing unit 13 integrates the processing result data output from the pooling processing unit 12 before the calculation processing in the next layer is started.
- the statistical processing unit 14 calculates the average value and standard deviation of the data integrated by the integration processing unit 13, that is, the processing result data output by the pooling processing unit 12.
- the normalization processing unit 15 includes a subtractor, a divider, and the like (not shown), and when arithmetic processing in the next layer is started, the average value and standard deviation calculated by the statistical processing unit 14 in the previous layer are used.
- a known normalization process is performed on the processing result data output by the pooling processing unit 12 in the previous hierarchy.
- the normalization processing unit 15 performs normalization processing based on, for example, the normalization function shown in FIG.
- the normalization processing is performed using the statistical value obtained during the arithmetic processing in the previous layer in the input portion of the arithmetic processing in the next layer. Therefore, it is not necessary to read out data from the memory twice in the same processing hierarchy, and normalization processing can be performed in a pipeline over two consecutive layers. Therefore, the processing speed can be increased and the occurrence of latency can be suppressed.
- the arithmetic processing device 20 illustrated in FIG. 8 includes a convolution arithmetic processing unit 21, a pooling processing unit 22, an integration processing unit 23, a statistical processing unit 24, and a normalization processing unit 25.
- the normalization processing unit 25 includes a subtraction processing unit 25a and a division processing unit 25b.
- the subtraction processing unit 25a calculates the average value calculated by the statistical processing unit 24 in the previous hierarchy based on the subtraction formula (1) illustrated in FIG. 9 from the processing result data output by the pooling processing unit 22 in the previous hierarchy. Subtract.
- the convolution operation processing unit 21 performs a well-known convolution operation process on the processing result data output from the subtraction processing unit 25a.
- the division processing unit 25b divides the processing result data output from the convolution operation processing unit 21 by the standard deviation calculated by the statistical processing unit 24 in the previous hierarchy based on the division formula (2) illustrated in FIG.
- a division circuit corresponding to the number of data input to the normalization processing unit is necessary, and there is a problem that the circuit scale increases. is there.
- the arithmetic processing unit 20 a normalization process including subtraction is performed, a convolution operation process is performed on the processing result data, and a normalization process including division is performed on the processing result data.
- the convolution operation process there are a plurality of input data, but only one data is output. Therefore, according to the configuration of the arithmetic processing unit 20, since the division is performed after the convolution arithmetic processing, the number of division circuits can be reduced.
- the arithmetic processing device 30 illustrated in FIG. 10 includes a convolution arithmetic processing unit 31, a pooling processing unit 32, an integration processing unit 33, a statistical processing unit 34, a normalization processing unit 35, and a sampling processing unit 36.
- the sampling processing unit 36 samples a part of the processing result data output from the pooling processing unit 32.
- the sampling processing unit 36 outputs the sampled data to the integration processing unit 33.
- the integration processing unit 33 integrates only part of the data sampled by the sampling processing unit 36, that is, the processing result data by the pooling processing unit 32.
- the statistical processing unit 34 calculates the average value and the standard deviation based only on a part of the processing result data by the pooling processing unit 32 accumulated by the accumulation processing unit 33.
- the average value and the standard deviation are calculated based on only a part rather than all of the processing result data by the pooling processing unit 32 and used for the normalization process. In this way, it is possible to perform normalization processing with sufficiently high accuracy even with statistical values based only on part of the processing result data by the pooling processing unit 32. Moreover, according to the arithmetic processing unit 30, the processing load of the integration processing unit 33 can be reduced.
- the arithmetic processing device 40 illustrated in FIG. 12 includes a convolution arithmetic processing unit 41, a pooling processing unit 42, an integration processing unit 43, a statistical processing unit 44, a normalization processing unit 45, a right shift processing unit 46, and a left shift processing unit 47.
- the right shift processing unit 46 is provided between the pooling processing unit 42 and the integration processing unit 43, shifts the processing result data by the pooling processing unit 42 to the right by a predetermined bit, and outputs it to the integration processing unit 43.
- the left shift processing unit 47 is provided between the integration processing unit 43 and the statistical processing unit 44, shifts the processing result data by the integration processing unit 43 to the left by a predetermined bit, and outputs it to the statistical processing unit 44.
- the integration processing unit 43 is configured to integrate only the upper predetermined bits of the processing result data by the pooling processing unit 42. According to the arithmetic processing unit 40, the integration processing unit 43 integrates not only all bits of the processing result data by the pooling processing unit 42 but only the upper predetermined bits. According to this configuration, the processing load of the integration processing unit 43 can be reduced.
- the arithmetic processing device 50 illustrated in FIG. 14 includes a plurality of arithmetic blocks 500 each including a convolution arithmetic processing unit 51, a pooling processing unit 52, an integration processing unit 53, a statistical processing unit 54, and a normalization processing unit 55.
- FIG. 14 shows only one calculation block 500.
- Each calculation block 500 includes a weight adjustment processing unit 56.
- the weight adjustment processing unit 56 specifies a weighting coefficient indicating the maximum value among the weighting coefficients used when the convolution operation processing unit 51 of each operation block 500 executes the convolution operation processing. Then, the weight adjustment processing unit 56 divides the weighting factor used by the convolution operation processing unit 51 by the absolute value of the maximum value of the identified weighting factor. As a result, the weight adjustment processing unit 56 adjusts the weight coefficient so that it falls within the range of ⁇ 1 to 1.
- the arithmetic processing device 50 specifies the maximum value of the weighting coefficient used when each of the plurality of convolution arithmetic processing units 51 executes the convolution arithmetic processing, and uses the absolute value of the specified maximum value to determine the plurality of convolution arithmetic processing units 51.
- the weighting factor used by is divided to adjust the weighting factor to a range of ⁇ 1 to 1.
- the arithmetic processing device 50 may further include a storage unit 57 and a multiplication processing unit 58.
- the storage unit 57 stores the absolute value of the maximum value of the weighting coefficient specified by the weight adjustment processing unit 56.
- the multiplication processing unit 58 is constituted by, for example, a multiplier, and multiplies the processing result data output from the convolution operation processing unit 51 by the absolute value of the maximum value of the weighting coefficient stored in the storage unit 57 to activate the multiplication result.
- the activation processing unit 59 performs a well-known activation process on the input processing result data, and outputs the processing result data to the pooling processing unit 52.
- This configuration is particularly effective when the activation function used for the activation process is non-linear. That is, in the processing result data by the non-linear activation function illustrated in FIG. 16, when the amount of change in the processing result near the processing result R1 when the weighting factor of the convolution operation is not adjusted and the weighting factor of the convolution operation are adjusted. The amount of change in the processing result in the vicinity of the processing result R2 is different. Therefore, the arithmetic processing unit 50 multiplies the processing result data R2 when the weighting factor is adjusted by the absolute value of the maximum value used when the weighting factor is adjusted, as shown by the arrow r. The processing result data of the arithmetic processing is returned to the processing result data R1 when the weighting coefficient is not adjusted.
- An arithmetic processing device 60 illustrated in FIG. 17 includes a plurality of arithmetic blocks 600 each including a convolution arithmetic processing unit 61, a pooling processing unit 62, an integration processing unit 63, and a normalization processing unit 65.
- the calculation block 600 includes an addition processing unit 66 and a storage unit 67, respectively.
- the statistical processing unit 64 is provided in any one of the plurality of calculation blocks 600, in this case, the most upstream calculation block 600.
- the lower side of the figure is defined as the downstream side
- the upper side of the figure is defined as the upstream side.
- the addition processing unit 66 adds the data input from the calculation block 600 downstream of itself to the data input from the integration processing unit 63 that constitutes the same calculation block 600 as that of the addition processing unit 66 and outputs the result to the storage unit 67. To do.
- the storage unit 67 stores the data input from the addition processing unit 66 and outputs the data to the addition processing unit 66 of the arithmetic block 600 on the upstream side of itself.
- the storage unit 67 of the most upstream calculation block 600 outputs the stored data to the statistical processing unit 64.
- the statistical processing unit 64 calculates an average value and a standard deviation for the input data and outputs them to the normalization processing unit 65 of each calculation block 600. That is, the statistical processing unit 64 calculates the average value and standard deviation of the data calculated by the plurality of integration processing units 63 and provides them to the plurality of normalization processing units 65, respectively.
- the statistical processing unit 64 is not provided in each arithmetic block 600, but the statistical processing unit 64 is provided only in one arithmetic block 600, and the statistical The statistical value output from the processing unit 64 is shared by the plurality of normalization processing units 65. According to this configuration, even if a plurality of operation blocks 600 are provided, the statistical processing unit 64 having a relatively large circuit scale can be suppressed to one, and the entire apparatus can be made compact and low in cost. Can be planned.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
演算処理装置10は、前階層から入力される入力データに対して畳み込み演算処理を実行する畳み込み演算処理部11と、畳み込み演算処理部による処理結果データに対してプーリング処理を実行するプーリング処理部12と、次回層の演算が開始される前に、プーリング処理部による処理結果データを積算する積算処理部13と、積算処理部が積算するデータの平均値および標準偏差を算出する統計処理部14と、次回層の演算が開始されると、前階層において統計処理部により算出された平均値および標準偏差を用いて、前階層においてプーリング処理部により出力された処理結果データに対して正規化処理を実行する正規化処理部15と、を備える。
Description
本出願は、2016年3月1日に出願された日本出願番号2016-038956号に基づくもので、ここにその記載内容を援用する。
本開示は、演算処理装置に関する。
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が中核的な存在となっている。
従来の畳み込みニューラルネットワークでは、前段の階層により得られる複数の異なる演算結果データ、つまり特徴量の抽出結果データに対して畳み込み演算処理を実行し、活性化処理を実行し、プーリング処理を実行することで、より高次元の特徴量の抽出を行っている。そして、さらに、プーリング処理による処理結果データに対して正規化処理を施すことにより、特徴量の認識率を向上することができ、特徴量の抽出処理を一層優位に行うことができる。
ところで、処理結果データに対して正規化処理を行う場合、従来では、まず、畳み込み演算処理時にメモリからデータを読み出し、読み出したデータに対して畳み込み演算処理およびプーリング処理を行い、その演算結果データをメモリに格納する。そして、その後、同一の処理階層において、そのメモリに格納したデータを読み出し、読み出したデータに対して正規化処理を行う。即ち、従来技術では、同一の処理階層においてメモリからのデータの読み出しを2回行う必要があり、大きなレイテンシが発生してしまう。
そこで、本開示は、ニューラルネットワークによる演算処理を実現する演算処理装置において、正規化処理を行うための構成に改良を施すことにより、レイテンシの発生を抑えることを目的とする。
本開示の一態様において、演算処理装置は、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置であって、畳み込み演算処理部、プーリング処理部、積算処理部、統計処理部、正規化処理部を備える。畳み込み演算処理部は、前階層から入力される入力データに対して畳み込み演算処理を実行する。プーリング処理部は、前記畳み込み演算部による処理結果データに対してプーリング処理を実行する。積算処理部は、次回層の演算が開始される前に、前記プーリング処理部による処理結果データを積算する。統計処理部は、前記積算処理部が積算するデータの平均値および標準偏差を算出する。正規化処理部は、次回層の演算が開始されると、前階層において前記統計処理部により算出された平均値および標準偏差を用いて、前階層において前記プーリング処理部により出力された処理結果データに対して正規化処理を実行する。
この構成によれば、次回層における演算処理の入力部分において、前階層の演算処理時に得られた統計値を用いて正規化処理を行うことができる。そのため、同一の処理階層においてメモリからのデータの読み出しを2回行う必要が無く、レイテンシの発生を抑えることができる。
本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、畳み込みニューラルネットワークの構成例を概念的に示す図であり、
図2は、中間層における演算処理の流れを視覚的に示す図「その1」であり、
図3は、中間層における演算処理の流れを視覚的に示す図「その2」であり、
図4は、特徴量抽出処理に用いられる一般的な演算式および関数を示す図であり、
図5は、第1実施形態に係る演算処理装置の構成例を概略的に示すブロック図であり、
図6は、正規化関数の一例を示す図であり、
図7は、演算処理装置による演算処理の流れを視覚的に示す図であり、
図8は、第2実施形態に係る演算処理装置の構成例を概略的に示すブロック図であり、
図9は、正規化処理を構成する減算式および除算式の一例を示す図であり、
図10は、第3実施形態に係る演算処理装置の構成例を概略的に示すブロック図であり、
図11は、プーリング処理部の処理結果データのサンプリング例を示す図であり、
図12は、第4実施形態に係る演算処理装置の構成例を概略的に示すブロック図であり、
図13は、プーリング処理部の処理結果データの一例を2進数により示す図であり、
図14は、第5実施形態に係る演算処理装置の構成例を概略的に示すブロック図「その1」であり、
図15は、第5実施形態に係る演算処理装置の構成例を概略的に示すブロック図「その2」であり、
図16は、非線形の活性化関数の一例を示す図であり、
図17は、第6実施形態に係る演算処理装置の構成例を概略的に示すブロック図である。
以下、演算処理装置の複数の実施形態について図面を参照しながら説明する。なお、各実施形態において実質的に同一の要素には同一の符号を付し、説明を省略する。
(ニューラルネットワーク)
図1には、詳しくは後述する演算処理装置10,20,30,40,50,60に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。即ち、畳み込みニューラルネットワークNは、入力データである画像データD1から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Naと全結合層Nbとを有する。中間層Naは、複数の特徴量抽出処理層Na1,Na2・・・が階層的に接続された構成である。各特徴量抽出処理層Na1,Na2・・・は、それぞれ畳み込み層Cおよびプーリング層Pを備える。
(ニューラルネットワーク)
図1には、詳しくは後述する演算処理装置10,20,30,40,50,60に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。即ち、畳み込みニューラルネットワークNは、入力データである画像データD1から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Naと全結合層Nbとを有する。中間層Naは、複数の特徴量抽出処理層Na1,Na2・・・が階層的に接続された構成である。各特徴量抽出処理層Na1,Na2・・・は、それぞれ畳み込み層Cおよびプーリング層Pを備える。
次に、中間層Naにおける処理の流れについて説明する。図2に例示するように、第1層目の特徴量抽出処理層Na1では、演算処理装置は、入力される画像データD1を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第1層目の特徴量抽出処理層Na1では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
第2層目の特徴量抽出処理層Na2では、演算処理装置は、前階層の特徴量抽出処理層Na1から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第2層目の特徴量抽出処理層Na2では、第1層目の特徴量抽出処理層Na1で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。
第3層目の特徴量抽出処理層Na3では、演算処理装置は、前階層の特徴量抽出処理層Na2から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる複数の特徴量を抽出する。なお、第3層目の特徴量抽出処理層Na3では、第2層目の特徴量抽出処理層Na2で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このとき、演算処理装置は、入力画像に含まれる複数の特徴にそれぞれ対応する複数の特徴マップを生成する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データD1に含まれる検出対象物体の画像認識を行う。
演算処理装置は、中間層Naにおいて複数の特徴量抽出処理層Na1,Na2,Na3・・・による処理を繰り返すことで入力画像データD1に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Naの処理により得られた結果を中間演算結果データとして全結合層Nbに出力する。
全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Nbは、中間層Naから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データD1に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図3に例示するように、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データDnを所定サイズ、この場合、図にてハッチングで示す3×3画素ごとのフィルタサイズにより走査する。なお、画素サイズは、3×3画素に限られず、例えば5×5画素など適宜変更することができる。
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、畳み込み層Cの出力とする。そして、演算処理装置は、畳み込み層Cの出力データCnに対して、所定サイズ、この場合、2×2画素ごとに周知のプーリング処理を行い、プーリング層Pの出力とする。そして、演算処理装置は、プーリング層Pの出力データPnを次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、2×2画素に限られず適宜変更することができる。
ここで、演算処理装置は、プーリング処理後のデータPn1,Pn2,・・・に対して周知の正規化処理を施すことにより、プーリングデータPnを所定の基準形式である正規化データNn1,Pn2,・・・に変換してから次の階層に出力する。これにより、より統一された形式でプーリングデータPnを次の階層に出力することができる。従って、特徴量の認識率を向上することができ、特徴量の抽出処理を一層優位に行うことができる。後述する各実施形態においては、演算処理装置には、この正規化処理を行うための構成に改良が施されている。
図4には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を示している。即ち、畳み込み関数Yijは、直前の層の出力Xijに学習により得られる重み係数Wp,qを乗算した値を累積する関数となっている。なお、「N」は1サイクルの畳み込み演算処理により処理される画素サイズを示す。即ち、例えば1演算サイクルの画素サイズが「3×3」画素である場合、Nの値は「2」である。また、畳み込み関数Yijは、累積値に所定のバイアス値を加算する関数としてもよい。また、畳み込み関数は、全結合処理にも対応し得る積和演算が可能な関数であれば、種々の関数を採用することができる。また、活性化処理には、周知のロジスティックジグモイド関数やReLU関数(Rectified Linear Units)などが用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。
上述した畳み込みニューラルネットワークNによれば、コンボルーション層Cによる処理およびプーリング層Pによる処理が繰り返されることにより、より高次元の特徴量の抽出が可能となる。次に、この畳み込みニューラルネットワークNを適用した演算処理装置に係る複数の実施形態について説明する。なお、各実施形態に係る図においては、第n層目の処理を行っている演算処理装置を実線により示し、次回層である第n+1層目の処理を行っている演算処理装置を二点鎖線により示している。また、第n層目の処理を行っている演算ブロックを実線により示し、次回層である第n+1層目の処理を行っている演算ブロックを二点鎖線により示している。
(第1実施形態)
図5に例示する演算処理装置10は、畳み込み演算処理部11、プーリング処理部12、積算処理部13、統計処理部14、正規化処理部15を備える。畳み込み演算処理部11は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データをプーリング処理部12に出力する。なお、演算処理装置10は、畳み込み演算処理部11の処理結果データに対して図示しない活性化処理部により周知の活性化処理を実行してからプーリング処理部12に出力する。プーリング処理部12は、畳み込み演算処理部11から入力される処理結果データに対して周知のプーリング処理を実行して、その処理結果データを、次回層の演算処理時における正規化処理部15に出力するようになっている。
図5に例示する演算処理装置10は、畳み込み演算処理部11、プーリング処理部12、積算処理部13、統計処理部14、正規化処理部15を備える。畳み込み演算処理部11は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データをプーリング処理部12に出力する。なお、演算処理装置10は、畳み込み演算処理部11の処理結果データに対して図示しない活性化処理部により周知の活性化処理を実行してからプーリング処理部12に出力する。プーリング処理部12は、畳み込み演算処理部11から入力される処理結果データに対して周知のプーリング処理を実行して、その処理結果データを、次回層の演算処理時における正規化処理部15に出力するようになっている。
積算処理部13は、プーリング処理部12が出力する処理結果データを、次回層における演算処理が開始される前に積算する。統計処理部14は、積算処理部13が積算するデータ、つまり、プーリング処理部12が出力する処理結果データの平均値および標準偏差を算出する。正規化処理部15は、図示しない減算器や除算器などを備えており、次回層における演算処理が開始されると、前階層において統計処理部14により算出された平均値および標準偏差を用いて、前階層においてプーリング処理部12により出力された処理結果データに対して周知の正規化処理を実行する。正規化処理部15は、例えば図6に示す正規化関数に基づいて正規化処理を実行する。
演算処理装置10によれば、図7に例示するように、次回層における演算処理の入力部分において、前階層の演算処理時に得られた統計値を用いて正規化処理を行うようにした。そのため、同一の処理階層においてメモリからのデータの読み出しを2回行う必要が無く、連続する2層にわたって正規化処理をパイプライン化して行うことができる。よって、処理の高速化を図ることができ、レイテンシの発生を抑えることができる。
(第2実施形態)
図8に例示する演算処理装置20は、畳み込み演算処理部21、プーリング処理部22、積算処理部23、統計処理部24、正規化処理部25を備える。正規化処理部25は、減算処理部25aおよび除算処理部25bを備える。
図8に例示する演算処理装置20は、畳み込み演算処理部21、プーリング処理部22、積算処理部23、統計処理部24、正規化処理部25を備える。正規化処理部25は、減算処理部25aおよび除算処理部25bを備える。
減算処理部25aは、図9に例示する減算式(1)に基づいて、前階層において統計処理部24により算出された平均値を、前階層においてプーリング処理部22により出力された処理結果データから減算する。畳み込み演算処理部21は、減算処理部25aが出力する処理結果データに対し周知の畳み込み演算処理を実行する。除算処理部25bは、図9に例示する除算式(2)に基づいて、畳み込み演算処理部21が出力する処理結果データを、前階層において統計処理部24により算出された標準偏差により除算する。
減算および除算からなる正規化処理を行った上で畳み込み演算処理を行う構成では、正規化処理部に入力されるデータの数に応じた除算回路が必要であり、回路規模が大きくなるという課題がある。演算処理装置20によれば、減算からなる正規化処理を行い、その処理結果データに対して畳み込み演算処理を行い、その処理結果データに対して除算からなる正規化処理を行うようにした。畳み込み演算処理において、入力されるデータは複数であるのに対し、出力されるデータは1つである。そのため、演算処理装置20の構成によれば、畳み込み演算処理の後に除算を行うようにしたので、除算回路の数を削減することができる。
(第3実施形態)
図10に例示する演算処理装置30は、畳み込み演算処理部31、プーリング処理部32、積算処理部33、統計処理部34、正規化処理部35、サンプリング処理部36を備える。図11に例示するように、サンプリング処理部36は、プーリング処理部32が出力する処理結果データの一部をサンプリングする。そして、サンプリング処理部36は、サンプリングしたデータを積算処理部33に出力する。そして、積算処理部33は、サンプリング処理部36によってサンプリングされたデータ、つまり、プーリング処理部32による処理結果データの一部のみを積算する。そして、統計処理部34は、積算処理部33により積算されたプーリング処理部32による処理結果データの一部のみに基づいて、その平均値および標準偏差を算出する。
図10に例示する演算処理装置30は、畳み込み演算処理部31、プーリング処理部32、積算処理部33、統計処理部34、正規化処理部35、サンプリング処理部36を備える。図11に例示するように、サンプリング処理部36は、プーリング処理部32が出力する処理結果データの一部をサンプリングする。そして、サンプリング処理部36は、サンプリングしたデータを積算処理部33に出力する。そして、積算処理部33は、サンプリング処理部36によってサンプリングされたデータ、つまり、プーリング処理部32による処理結果データの一部のみを積算する。そして、統計処理部34は、積算処理部33により積算されたプーリング処理部32による処理結果データの一部のみに基づいて、その平均値および標準偏差を算出する。
演算処理装置30によれば、プーリング処理部32による処理結果データの全てではなく一部のみに基づいて、その平均値と標準偏差を算出して正規化処理に用いる。このように、プーリング処理部32による処理結果データの一部のみに基づく統計値によっても十分精度が高い正規化処理を行うことができる。また、演算処理装置30によれば、積算処理部33の処理負荷を低減することができる。
(第4実施形態)
図12に例示する演算処理装置40は、畳み込み演算処理部41、プーリング処理部42、積算処理部43、統計処理部44、正規化処理部45、右シフト処理部46、左シフト処理部47を備える。右シフト処理部46は、プーリング処理部42と積算処理部43との間に設けられており、プーリング処理部42による処理結果データを所定ビットだけ右にシフトさせて積算処理部43に出力する。左シフト処理部47は、積算処理部43と統計処理部44との間に設けられており、積算処理部43による処理結果データを所定ビットだけ左にシフトさせて統計処理部44に出力する。
図12に例示する演算処理装置40は、畳み込み演算処理部41、プーリング処理部42、積算処理部43、統計処理部44、正規化処理部45、右シフト処理部46、左シフト処理部47を備える。右シフト処理部46は、プーリング処理部42と積算処理部43との間に設けられており、プーリング処理部42による処理結果データを所定ビットだけ右にシフトさせて積算処理部43に出力する。左シフト処理部47は、積算処理部43と統計処理部44との間に設けられており、積算処理部43による処理結果データを所定ビットだけ左にシフトさせて統計処理部44に出力する。
なお、右シフト処理部46がデータを右シフトするときのビット数と、左シフト処理部47がデータを左シフトするときのビット数は同じである。そのため、図13に例示するように、積算処理部43は、プーリング処理部42による処理結果データの上位の所定ビットのみを積算する構成となる。演算処理装置40によれば、積算処理部43により、プーリング処理部42による処理結果データの全ビットではなく上位の所定ビットのみを積算する。この構成によれば、積算処理部43の処理負荷を低減することができる。
(第5実施形態)
図14に例示する演算処理装置50は、畳み込み演算処理部51、プーリング処理部52、積算処理部53、統計処理部54、正規化処理部55を有する演算ブロック500を複数備える構成である。なお、図14には、1つの演算ブロック500のみを示している。演算ブロック500には、それぞれ重み調整処理部56が備えられている。重み調整処理部56は、各演算ブロック500の畳み込み演算処理部51がそれぞれ畳み込み演算処理を実行する際に用いる重み係数のうち最大の値を示す重み係数を特定する。そして、重み調整処理部56は、その特定した重み係数の最大値の絶対値により、畳み込み演算処理部51が用いる重み係数を除算する。これにより、重み調整処理部56は、重み係数を-1~1の範囲に収まるように調整する。
図14に例示する演算処理装置50は、畳み込み演算処理部51、プーリング処理部52、積算処理部53、統計処理部54、正規化処理部55を有する演算ブロック500を複数備える構成である。なお、図14には、1つの演算ブロック500のみを示している。演算ブロック500には、それぞれ重み調整処理部56が備えられている。重み調整処理部56は、各演算ブロック500の畳み込み演算処理部51がそれぞれ畳み込み演算処理を実行する際に用いる重み係数のうち最大の値を示す重み係数を特定する。そして、重み調整処理部56は、その特定した重み係数の最大値の絶対値により、畳み込み演算処理部51が用いる重み係数を除算する。これにより、重み調整処理部56は、重み係数を-1~1の範囲に収まるように調整する。
演算処理装置50は、複数の畳み込み演算処理部51がそれぞれ畳み込み演算処理を実行する際に用いる重み係数の最大値を特定し、その特定した最大値の絶対値により、複数の畳み込み演算処理部51が用いる重み係数を除算して、重み係数を-1~1の範囲に調整する。このように重み係数を所定の範囲内に収めることで、当該重み係数を用いて算出される畳み込み演算処理の処理結果データを所定の範囲内に収めることができ、処理結果データのぶれを抑えることができる。よって、処理結果データを、浮動小数点数よりも表現範囲が狭い固定小数点数によっても表現することができ、また、固定小数点数による処理により、より高速で精度の良い演算が可能となる。
なお、図15に例示するように、演算処理装置50は、さらに、記憶部57、乗算処理部58を備える構成とするとよい。この構成において、記憶部57は、重み調整処理部56が特定した重み係数の最大値の絶対値を記憶する。乗算処理部58は、例えば乗算器で構成されており、畳み込み演算処理部51が出力する処理結果データに、記憶部57に記憶されている重み係数の最大値の絶対値を乗算して、活性化処理部59に出力する。活性化処理部59は、入力される処理結果データに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部52に出力する。
この構成は、活性化処理に用いる活性化関数が非線形である場合に特に効果を発揮する。即ち、図16に例示する非線形の活性化関数により処理結果データにおいては、畳み込み演算の重み係数を調整しない場合の処理結果R1付近における処理結果の変化量と、畳み込み演算の重み係数を調整した場合の処理結果R2付近における処理結果の変化量とが異なってくる。そのため、演算処理装置50は、重み係数を調整した場合の処理結果データR2に対し、重み係数の調整の際に用いた最大値の絶対値を乗算することにより、矢印rで示すように、畳み込み演算処理の処理結果データを、重み係数を調整しない場合の処理結果データR1に戻すようにした。これにより、調整された重み係数により高速で精度の良い畳み込み演算を行いつつも、その処理結果データを、重み係数を調整しなかった場合の処理結果データに近似させることができ、特に活性化関数が非線形である場合であっても、その影響を抑えることができる。
(第6実施形態)
図17に例示する演算処理装置60は、畳み込み演算処理部61、プーリング処理部62、積算処理部63、正規化処理部65を有する演算ブロック600を複数備える。演算ブロック600には、それぞれ、加算処理部66、記憶部67が備えられている。また、複数の演算ブロック600のうちの何れか1つ、この場合、最上流の演算ブロック600には、統計処理部64が備えられている。なお、説明の便宜上、図の下側を下流側、図の上側を上流側と定義する。
図17に例示する演算処理装置60は、畳み込み演算処理部61、プーリング処理部62、積算処理部63、正規化処理部65を有する演算ブロック600を複数備える。演算ブロック600には、それぞれ、加算処理部66、記憶部67が備えられている。また、複数の演算ブロック600のうちの何れか1つ、この場合、最上流の演算ブロック600には、統計処理部64が備えられている。なお、説明の便宜上、図の下側を下流側、図の上側を上流側と定義する。
加算処理部66は、自身と同じ演算ブロック600を構成する積算処理部63から入力されるデータに、自身よりも下流側の演算ブロック600から入力されるデータを加算して、記憶部67に出力する。記憶部67は、加算処理部66から入力されるデータを記憶するとともに、そのデータを自身よりも上流側の演算ブロック600の加算処理部66に出力する。最も上流側の演算ブロック600の記憶部67は、記憶したデータを統計処理部64に出力する。統計処理部64は、入力されたデータについて平均値と標準偏差を算出し、各演算ブロック600の正規化処理部65にそれぞれ出力する。即ち、統計処理部64は、複数の積算処理部63が算出するデータの平均値および標準偏差を算出して、複数の正規化処理部65にそれぞれ提供する。
演算処理装置60によれば、複数の演算ブロック600を備える構成において、各演算ブロック600にそれぞれ統計処理部64を設けるのではなく、1つの演算ブロック600のみに統計処理部64を設け、当該統計処理部64が出力する統計値を複数の正規化処理部65により共用するようにした。この構成によれば、複数の演算ブロック600を備える場合であっても、回路規模が比較的大きくなる統計処理部64を1つだけに抑えることができ、装置全体としてコンパクト化や低コスト化を図ることができる。
(その他の実施形態)
なお、本開示は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、上述した複数の実施形態を適宜組み合わせて実施してもよい。
なお、本開示は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、上述した複数の実施形態を適宜組み合わせて実施してもよい。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
Claims (7)
- 複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置(10,20,30,40,50,60)であって、
前階層から入力される入力データに対して畳み込み演算処理を実行する畳み込み演算処理部(11,21,31,41,51,61)と、
前記畳み込み演算処理部による処理結果データに対してプーリング処理を実行するプーリング処理部(12,22,32,42,52,62)と、
次回層の演算が開始される前に、前記プーリング処理部による処理結果データを積算する積算処理部(13,23,33,43,53,63)と、
前記積算処理部が積算するデータの平均値および標準偏差を算出する統計処理部(14,24,34,44,54,64)と、
次回層の演算が開始されると、前階層において前記統計処理部により算出された平均値および標準偏差を用いて、前階層において前記プーリング処理部により出力された処理結果データに対して正規化処理を実行する正規化処理部(15,25,35,45,55,65)と、
を備える演算処理装置。 - 前記正規化処理部(25)は、減算処理部(25a)および除算処理部(25b)を備え、
前記減算処理部は、前階層において前記統計処理部(24)により算出された平均値を、前階層において前記プーリング処理部(22)により出力された処理結果データから減算し、
前記畳み込み演算処理部(21)は、前記減算処理部が出力する処理結果データに対して畳み込み演算処理を実行し、
前記除算処理部は、前記畳み込み演算処理部が出力する処理結果データを、前階層において前記統計処理部(24)により算出された標準偏差により除算する請求項1に記載の演算処理装置。 - 前記積算処理部(33)は、前記プーリング処理部(32)による処理結果データの一部を積算する請求項1または2に記載の演算処理装置。
- 前記積算処理部(43)は、前記プーリング処理部(42)による処理結果データの上位の所定ビットを積算する請求項1から3の何れか1項に記載の演算処理装置。
- 前記畳み込み演算処理部(61)、前記プーリング処理部(62)、前記積算処理部(63)、前記正規化処理部(65)を有する演算ブロック(600)が複数備えられ、
前記統計処理部(64)は、複数の前記積算処理部(63)が算出するデータの平均値および標準偏差を算出する請求項1から4の何れか1項に記載の演算処理装置。 - 前記畳み込み演算処理部(51)、前記プーリング処理部(52)、前記積算処理部(53)、前記正規化処理部(55)を有する演算ブロック(500)が複数備えられ、
複数の前記畳み込み演算処理部がそれぞれ畳み込み演算処理を実行する際に用いる重み係数の最大値を特定し、その特定した最大値の絶対値により、複数の前記畳み込み演算処理部が用いる重み係数を除算する重み調整処理部(56)を備える請求項1から5の何れか1項に記載の演算処理装置。 - 前記畳み込み演算処理部(51)が前記重み調整処理部により調整された重み係数を用いて演算した演算結果データに、前記重み係数の最大値の絶対値を乗算する乗算処理部(58)を備える請求項6に記載の演算処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016-038956 | 2016-03-01 | ||
| JP2016038956A JP6561877B2 (ja) | 2016-03-01 | 2016-03-01 | 演算処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017149971A1 true WO2017149971A1 (ja) | 2017-09-08 |
Family
ID=59743775
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2017/001554 Ceased WO2017149971A1 (ja) | 2016-03-01 | 2017-01-18 | 演算処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6561877B2 (ja) |
| WO (1) | WO2017149971A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021509994A (ja) * | 2018-05-23 | 2021-04-08 | ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド | 画像処理方法、装置、コンピュータ装置及びコンピュータ記憶媒体 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11580369B2 (en) | 2017-10-23 | 2023-02-14 | Nec Corporation | Inference apparatus, convolution operation execution method, and program |
| JP6757349B2 (ja) * | 2018-03-12 | 2020-09-16 | 株式会社東芝 | 固定小数点を用いて認識処理を行う多層の畳み込みニューラルネットワーク回路を実現する演算処理装置 |
| WO2020013075A1 (ja) * | 2018-07-12 | 2020-01-16 | ソニー株式会社 | 積和演算システム及び積和演算方法 |
| JP2020201883A (ja) | 2019-06-13 | 2020-12-17 | キヤノン株式会社 | データ処理装置及びその制御方法 |
| JP7342544B2 (ja) | 2019-09-09 | 2023-09-12 | 富士通株式会社 | 学習プログラムおよび学習方法 |
| JP7322620B2 (ja) | 2019-09-13 | 2023-08-08 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013069132A (ja) * | 2011-09-22 | 2013-04-18 | Fuji Xerox Co Ltd | 画像処理装置及び画像処理プログラム |
| JP2015215837A (ja) * | 2014-05-13 | 2015-12-03 | 株式会社デンソー | 演算処理装置 |
-
2016
- 2016-03-01 JP JP2016038956A patent/JP6561877B2/ja active Active
-
2017
- 2017-01-18 WO PCT/JP2017/001554 patent/WO2017149971A1/ja not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013069132A (ja) * | 2011-09-22 | 2013-04-18 | Fuji Xerox Co Ltd | 画像処理装置及び画像処理プログラム |
| JP2015215837A (ja) * | 2014-05-13 | 2015-12-03 | 株式会社デンソー | 演算処理装置 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2021509994A (ja) * | 2018-05-23 | 2021-04-08 | ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド | 画像処理方法、装置、コンピュータ装置及びコンピュータ記憶媒体 |
| US11080569B2 (en) | 2018-05-23 | 2021-08-03 | Beijing Sensetime Technology Development Co., Ltd. | Method and device for image processing, and computer storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6561877B2 (ja) | 2019-08-21 |
| JP2017156941A (ja) | 2017-09-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6561877B2 (ja) | 演算処理装置 | |
| US12282852B2 (en) | Dynamic quantization of neural networks | |
| JP2015215837A (ja) | 演算処理装置 | |
| US20200160493A1 (en) | Image filtering based on image gradients | |
| JP6365258B2 (ja) | 演算処理装置 | |
| KR20200049366A (ko) | 뉴럴 네트워크 프로세서 및 그것의 컨볼루션 연산 방법 | |
| JP6414458B2 (ja) | 演算処理装置 | |
| JP7274180B2 (ja) | プログラム、ニューラルネットワーク処理コンピュータ、ニューラルネットワーク処理装置、およびニューラルネットワークの演算方法 | |
| JP2019091439A5 (ja) | 画像データ補間の方法 | |
| KR20230050340A (ko) | 테이블 형식의 컨볼루션 및 가속 | |
| KR100298327B1 (ko) | 고속 컨벌루션 처리 방법 및 그 장치 | |
| JP2010028241A (ja) | ビット選択回路 | |
| CN103514589A (zh) | 图像恢复中的滤波方法 | |
| CN112200299B (zh) | 神经网络计算装置、数据处理方法及装置 | |
| CN117994506A (zh) | 一种动态知识集成的遥感图像显著性目标检测方法 | |
| KR101546200B1 (ko) | 다중 스펙트럼 영상의 대칭점 매칭 방법 및 장치 | |
| Zhang et al. | An efficient multiplier-less architecture for 2-D convolution with quadrant symmetric kernels | |
| CN101815165A (zh) | 实时高效的数字图像分数阶积分滤波器 | |
| JPWO2018235168A1 (ja) | 学習装置、超解像化装置、学習方法、超解像化方法およびプログラム | |
| Mishra et al. | Noise removing filters and its implementation on FPGA | |
| CN114359116B (zh) | 一种双边滤波器的硬件架构系统及其权重优化方法 | |
| JP2017219960A (ja) | 演算処理装置 | |
| US20240112456A1 (en) | On-device inference method for multi-frame processing in a neural network | |
| CN112308199B (zh) | 数据块的处理方法、装置及存储介质 | |
| CN121785563A (zh) | 数据处理方法及装置、电子设备、存储介质、程序产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17759443 Country of ref document: EP Kind code of ref document: A1 |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17759443 Country of ref document: EP Kind code of ref document: A1 |