WO2021049005A1 - 情報処理装置およびそれを備えた電子機器 - Google Patents
情報処理装置およびそれを備えた電子機器 Download PDFInfo
- Publication number
- WO2021049005A1 WO2021049005A1 PCT/JP2019/036101 JP2019036101W WO2021049005A1 WO 2021049005 A1 WO2021049005 A1 WO 2021049005A1 JP 2019036101 W JP2019036101 W JP 2019036101W WO 2021049005 A1 WO2021049005 A1 WO 2021049005A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layer
- signal
- amplitude
- fourier transform
- information processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
- G06V10/431—Frequency domain transformation; Autocorrelation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/778—Active pattern-learning, e.g. online learning of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/103—Static body considered as a whole, e.g. static pedestrian or occupant recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
Definitions
- the present application relates to an information processing device and an electronic device equipped with the information processing device.
- Neural networks used for image recognition, etc. train images by deep learning and extract features in the images.
- CNN Convolutional Neural Network
- This CNN convolves the weight function learned by the error back propagation method with the input image, updates the weight function by the error back propagation method, and associates the input image with the output result.
- the input image is expressed as a set of points in a high-dimensional space
- the input image is perturbed using a matrix obtained by smoothing the weighting function
- the perturbed input image is subjected to a discrete Fourier transform or discrete.
- a method is known in which a cosine transform is performed, the image is projected onto a subspace, and the transformed image is inversely transformed to obtain an image after perturbation (for example, Patent Document 1).
- the recognition accuracy can be improved by forming the convolutional layer into a multi-layer structure.
- the number of matrix operations to be calculated in the convolution layer increases in proportion to the total number of pixels of the image for a large image such as an image of 2048 pixels ⁇ 2048 pixels, so that the amount of calculation is enormous. become. Therefore, the required calculation cost is high, and it is difficult to simplify the information processing apparatus.
- the conventional calculation of each layer in CNN is imitated by incorporating the structure of the brain into a mathematical model, but it is difficult to grasp the physical meaning.
- the present application discloses a technique for solving the above-mentioned problems, reduces the amount of calculation in the neural network, obtains high recognition accuracy by the neural network with a low-cost and simple device configuration, and obtains high recognition accuracy by the neural network.
- An object of the present invention is to provide an information processing apparatus capable of detailed analysis of a neural network. Furthermore, it is an object of the present invention to provide an electronic device that performs high-speed and high-precision control operation based on learning and inference using this information processing device.
- the information processing apparatus disclosed in the present application processes an input signal with a neural network, and has a Fourier transform layer that Fourier transforms the input signal and outputs a first amplitude signal and a first phase signal, and a matrix by training.
- the first weight matrix that updates the value in the matrix is applied to the first amplitude signal to output the second amplitude signal
- the second weight matrix that updates the value in the matrix by training is applied to the first phase signal.
- a phase coupling layer that outputs a two-phase signal and a complex activation function f that is an activation function in the spatial frequency region, at least the second amplitude signal among the second amplitude signal and the second phase signal is generated. It includes a complex activation layer to be updated, and an inverse Fourier transform layer that performs inverse Fourier transformation by combining the second amplitude signal and the second phase signal updated by the complex activation layer.
- the electronic device disclosed in the present application performs a control operation using the above information processing device.
- the amount of calculation in the neural network can be reduced, high recognition accuracy by the neural network can be obtained with a low-cost and simple apparatus configuration, and detailed analysis of the neural network becomes possible. Become. Further, according to the electronic device disclosed in the present application, high-speed and high-precision control operation becomes possible.
- FIG. It is a figure which shows the configuration example of the hardware by Embodiment 1.
- FIG. It is a figure which shows the structural example of CNN as a 1st comparative example. It is a figure which shows the structural example of the neural network by Embodiment 1.
- FIG. It is a partial detailed view of FIG. It is a figure explaining the processing of the input image in the Fourier transform by Embodiment 1.
- FIG. It is a figure explaining the operation of updating the amplitude value by using the complex activation function f according to Embodiment 1.
- FIG. It is a figure explaining the example of the complex activation function f by Embodiment 1.
- FIG. It is a figure explaining another example of the complex activation function f according to Embodiment 1.
- FIG. It is a figure explaining another example of the complex activation function f according to Embodiment 1.
- FIG. It is a figure explaining another example of the complex activation function f according to Embodiment 1.
- FIG. It is a figure which shows the structural example of the neural network by another example of Embodiment 1.
- FIG. It is a figure which shows the accuracy of the neural network by Embodiment 1.
- FIG. It is a figure explaining the speed-up effect of the neural network by Embodiment 1.
- FIG. It is a figure explaining the operation using the complex activation function f by Embodiment 3.
- FIG. It is a figure which shows the partial structure example of the neural network by Embodiment 5.
- FIG. 7 It is a figure which shows the partial structure example of the neural network by Embodiment 7. It is a figure which shows the partial structure example of the neural network by Embodiment 8. It is a figure which shows the structural example of the neural network by Embodiment 9.
- FIG. It is a figure which shows the structural example of the neural network by Embodiment 10. It is a figure which shows the configuration example of the air conditioner according to Embodiment 11. It is a figure which shows the structural example of the electronic device by another example of Embodiment 11.
- FIG. 1 is a diagram showing an overall configuration of hardware 100 as an information processing device that functions as a neural network (hereinafter referred to as NN) according to the first embodiment of the present application.
- the hardware 100 may be a stand-alone computer, a server of a server client system using a cloud or the like, or a client. Further, the hardware 100 may be a smartphone or a microcomputer. Further, when assuming the inside of a factory, a computer environment in a closed network in the factory called edge computing may be used.
- the hardware 100 has a built-in CPU (Central Processing Unit) 30, and an input / output interface 35 is connected to the CPU 30 via a bus wiring 34.
- the CPU 30 executes a program stored in the ROM (Read Only Memory) 31 accordingly. Execute. Alternatively, the CPU 30 loads the program stored in the hard disk (HDD) 33 or SSD (Solid State Drive, not shown) into the RAM (Random Access Memory) 32, and reads / writes / executes it as necessary. ..
- the CPU 30 performs various processes to make the hardware 100 function as a device having a predetermined function.
- the CPU 30 outputs the results of various processes from the output device which is the output unit 36, transmits them from the communication device which is the communication unit 38, and further records them on the hard disk 33 via the input / output interface 35, if necessary. Further, the CPU 30 receives various information from the communication unit 38 via the input / output interface 35 as needed, and calls the information from the hard disk 33 for use.
- the input unit 37 is composed of a keyboard, a mouse, a microphone, a camera, and the like.
- the output unit 36 is composed of an LCD (Liquid Crystal Display), a speaker, or the like.
- the program executed by the CPU 30 can be pre-recorded on the hard disk 33 or the ROM 31 as a recording medium built in the hardware 100. Alternatively, the program can be stored (recorded) in the removable recording medium 40 connected via the drive 39.
- Such a removable recording medium 40 can be provided as so-called package software.
- the removable recording medium 40 include a flexible disc, a CD-ROM (Compact Disk Ready Memory), an MO (Magnet Optical) disc, a DVD (Digital entirely Disc), a magnetic disc, and a semiconductor memory.
- the program can be transmitted and received through a system (Comport) such as WWW (World Wide Web) that connects a plurality of hardwares via either one or both of wired and wireless.
- a system such as WWW (World Wide Web) that connects a plurality of hardwares via either one or both of wired and wireless.
- the training described later can be performed, and only the weighting function obtained by the training can be transmitted / received by the above method.
- the CPU 30 causes the hardware 100 to function as an information processing device that processes each layer constituting the NN and generates the NN.
- the hardware 100 functions as an NN and also functions as an NN generator.
- Each layer of the NN is composed of general-purpose hardware such as a CPU or GPU (Graphics Processing Unit) that specializes in parallel computing, FPGA (Field-Programmable Gate Array), FFT (Fast Fourier Transform) computing architecture, and FFT (Fast Fourier Transform) computing architecture.
- a CPU or GPU Graphics Processing Unit
- FFT Field-Programmable Gate Array
- FFT Fast Fourier Transform
- FFT Fast Fourier Transform
- the matrix operations such as the Fourier transform and the inverse Fourier transform, which will be described later, may be performed by dedicated hardware.
- hardware for fast Fourier transform and fast inverse Fourier transform capable of performing Fourier transform and inverse Fourier transform at high speed can be obtained as general-purpose hardware. Some of this dedicated hardware is built into the CPU or GPU.
- a sensor for the purpose of converting physical phenomena such as electromagnetic waves including sound waves or visible light, heat, or vibration into numerical data, or a mechanism for outputting an image or calculation result such as CAD designed in the hardware 100.
- the hardware 100 may be provided.
- the hardware 100 may include a mechanism for fusing the information of the sensor and the calculation result of the hardware 100.
- the hardware 100 includes a mechanism for driving the power line or the internal battery.
- the hardware 100 may be configured by a plurality of units via a communication port, and the training and inference described later may be carried out by the hardware 100 having a different configuration. Further, the hardware 100 may receive sensor signals connected to different hardware 100 via the communication port, or may receive a plurality of sensor signals via the communication port. Further, a plurality of virtual hardware environments may be prepared in one hardware 100, and each virtual hardware may be treated as individual hardware.
- NN ⁇ Data used for learning>
- the data used in NN is supervised learning, unsupervised learning, or reinforcement learning.
- NN is sometimes called deep learning or perceptron.
- the perceptron when the hidden layer is one layer, which will be described later, it is called a single perceptron, and when there are two or more layers, it is called a multi-layer perceptron. This multi-layer perceptron is called NN.
- Supervised learning is a method of learning the correct answer label associated with the learning data with respect to the learning data.
- the input signal and the output signal are associated with each other.
- unsupervised learning is a method of learning without attaching a correct answer label to the learning data.
- Known examples include a Stacked Autoencoder (SAE) in which a self-encoder is multi-layered, and a Deep Boltzmann Machine (DBM) in which a constrained Boltzmann machine is multi-layered.
- SAE Stacked Autoencoder
- DBM Deep Boltzmann Machine
- reinforcement learning may use DQN (Deep Q Learning), which maximizes the expected value obtained in the future, for data that changes from moment to moment instead of giving the correct answer.
- DQN Deep Boltzmann Machine
- unsupervised learning When using unsupervised learning, perform multivariate analysis such as data clustering and principal component analysis. Further, since an image having two or more dimensions is generally used as the input image, reinforcement learning can also be used. In addition, semi-supervised learning in which some training data is not given a correct answer label, or transfer learning data in which a model trained using the training data is applied to another training data is also conventional CNN. Is also applicable to this embodiment as long as is applicable.
- learning includes batch learning in which data to be learned is processed in a batch, and online learning in which the data is added and learned each time the data to be learned is input.
- batch learning in which data to be learned is processed in a batch
- online learning in which the data is added and learned each time the data to be learned is input.
- FIG. 2 is a diagram showing a configuration example of CNN as a first comparative example.
- the CNNs are, in order from the input layer 1, a convolutional layer 2, an activation function 3, a convolutional layer 2, an activation function 3, a pooling layer 4, a convolutional layer 2, an activation function 3, and a fully connected layer. 5. It is configured to include an activation function 3, a fully connected layer 5, an output layer 6, and an output 7.
- the CNN performs learning by using the convolution layer 2 and the activation function 3, and the convolution layer 2 and the activation function 3 are used with respect to the input layer 1 whose input signal is an image which is training data.
- the convolution layer 2, the activation function 3, the pooling layer 4, and the fully connected layer 5 are combined a plurality of times. Then, with respect to the output from this combination, a desired output signal (output 7) is obtained through the output layer 6 including an error function such as a softmax function.
- the layer between the input layer 1 and the output layer 6 is called a hidden layer.
- the NN has two or more hidden layers, and the NN is formed by appropriately combining a plurality of layers including an input layer and an output layer.
- the layer on the input side is also referred to as a lower layer and the layer on the output side is also referred to as an upper layer when viewed from a certain layer.
- a CNN having more than 150 hidden layers is also known, and in recent years, there is a tendency to increase the number of layers in order to improve the accuracy.
- the error back propagation method is one method for efficiently calculating the derivative for expressing the propagation of the error from the output layer 6 to the input layer 1.
- the convolution layer 2 applies a kernel (or a filter) to the map and performs a convolution operation.
- the kernel is composed of, for example, a 7 pixel ⁇ 7 pixel image, that is, a 7 ⁇ 7 matrix, that is, 49 elements.
- This kernel is applied to the data of the input layer 1 or the map of the lower layer to be combined to perform the convolution operation, and the signal is output to the upper layer.
- the convolution operation has the function of extracting the characteristic edge of the image indicated by the input image from the image by the kernel.
- the edge is a boundary between an object and an object, an object and a background image, and the like.
- the process of preparing a plurality of these kernels and updating the matrices constituting the kernel by the above error back propagation method is a process called learning.
- xij be the value of the position (i, j) in the input image.
- i and j are integers, and here they are integers of 0 or more. In this case, each pixel value is an integer of 0 or more.
- the kernel be an image smaller than the input image and its size be H ⁇ H. H is an integer greater than or equal to 2.
- hpq At this time, it is assumed that hpq takes an arbitrary real value. Under such conditions, the convolution operation is expressed by the following equation (1). Note that uij is a value in the output image obtained by the convolution operation.
- the convolution operation in deep learning is generally defined by the following equation (2). This is called cross-correlation, or correlation, except for deep learning. Since the correlation in this case gives the same result as the convolution operation when the kernel is inverted vertically and horizontally, the operation represented by the equation (2) is referred to as a convolution operation here.
- the difference between the convolution operation and the correlation corresponds to the complex conjugate of the Fourier transform in one of xij and hpq.
- the kernel consists of values obtained by learning, it is not necessary to use the complex conjugate when making the initial value of the kernel random, but when changing the weight of the initial value, use the complex conjugate for the kernel. Is desirable.
- stride is sometimes used. Assuming that the stride width is an integer s of 2 or more, the stride can be expressed by the following equation (3).
- the convolution operation the calculation is performed while sliding the kernel with respect to the input image, and the sum is taken.
- the size of the image (input image) of the lower layer is W ⁇ H and the size of the kernel is U ⁇ V
- the size of the output image is (W-2 [U / 2]]. )
- [] is an operator that rounds down to the nearest whole number. Since [U / 2] and [V / 2] are natural numbers, when the convolution operation is performed, the image after the operation becomes smaller than the input image before the operation.
- the width [U / 2] and the width [V] are outside the image after the convolution operation.
- / 2] image is added to enlarge the output image.
- This method is called padding.
- the image to be added to the outside may be any image, but it is often set to 0, and is particularly called zero padding.
- the size of the matrix needs to be a power of 2, so it is desirable to make the size of the input matrix and the output matrix equal by padding. ..
- the activation function 3 which is a non-linear function, is applied to the output signal after the convolution operation in the convolution layer 2. It is important for the NN (CNN in this case) that the activation function 3 is non-linear, and the inclusion of the non-linear function makes it possible to express arbitrary data that could not be expressed by the linear function alone.
- a linear function h (x) cx using the constant c as an activation function.
- y c ⁇ c ⁇ c ⁇ x
- y c 3 x
- two or more hidden layers using a nonlinear function as an activation function are required, so the identity function will not be described here.
- the weight and bias values of the CNN composed of the convolutional layer 2 and the activation function 3 are updated by the error back propagation method. This update is called the learning process, or simply learning. In the early stages of learning, pseudo-random numbers are used for weights and biases. In addition, the initial value of Xavier or the initial value of He, which will be described later, may be used. When the training process is complete, the weights and biases with updated values are output.
- inference process or simply inference.
- the learning process is done on a GPU or a server client system with dedicated hardware.
- inference does not require a learning process to reduce the error from the correct label, and only calculates and outputs from the input layer 1 to the output layer 6 using the above weights and biases.
- the amount of calculation is small.
- the amount of calculation of the convolution layer 2 is large, and the calculation time is required.
- the inference process often requires a response speed within a few seconds, but in a general CNN where the number of layers of the convolution layer 2 is increased to improve the learning accuracy, the desired time is required for simple hardware such as a microcomputer. It is often difficult to respond within.
- Edge computers that have only computers with relatively low computing power, such as smartphones, may be equipped with dedicated hardware for CNN, but the hardware mounting area will increase, the processing system will become more complicated, or the amount of power used will increase. Becomes a problem.
- the output signal of the sensor that converts a physical phenomenon such as electromagnetic waves including sound waves or visible light, heat, or vibration into numerical data, a signal designed by calculation in the hardware 100, or a sensor signal is calculated.
- a configuration example of hardware 100 (information processing apparatus) that processes a signal including both results is shown.
- the calculation in the hardware 100 is a calculation process using NN.
- the input signal may be any one as long as it is one-dimensional or more, but in this embodiment, a two-dimensional image will be described.
- the operation corresponding to the convolution operation is performed in the spatial frequency domain, and the complex activation function, which is the activation function in the spatial frequency domain, is applied to the signal after the calculation. That is, the input signal in the spatial domain such as the output signal of the sensor described above is Fourier transformed to convert it into a signal in the spatial frequency domain, and in the spatial frequency domain, an operation corresponding to a convolution operation and a complex activation function are used. Performs the calculation that was performed. Then, the signal in the spatial frequency domain is inverse Fourier transformed and returned to the signal in the spatial domain to obtain a desired output signal.
- the convolution operation in the CNN shown in the first comparative example above requires a plurality of matrix operations for one convolution operation, but one convolution operation in this spatial domain is once in the spatial frequency domain. Is replaced by the matrix operation of.
- the operation corresponding to the convolution operation in the spatial frequency domain will be referred to as a complex convolution operation for convenience.
- a complex activation function that is a non-linear function is applied to the signal after the calculation by the complex convolution operation. In this way, the complex convolution operation and the operation using the complex activation function are performed in the processing in the continuous spatial frequency domain. As a result, the above-mentioned effect that the number of operations can be significantly reduced can be surely realized without being hindered.
- the complex activation function is used after the complex convolution operation, if the Fourier transform and the inverse Fourier transform in the hidden layer are performed once each, the processing in the spatial frequency domain continuous between them can be performed.
- the complex convolution operation and the operation using the complex activation function can be performed as many times as necessary. As a result, a significant reduction in calculation cost can be achieved.
- FIG. 3 is a diagram showing a configuration example of the simplest NN according to this embodiment.
- the NN is composed of the Fourier transform layer 12, the amplitude coupling layer 13A, and the phase coupling layer 13B in this order from the input layer 11, and uses the coupling layer 13 that performs the complex convolution operation and the complex activation function f. It is configured to include a complex activation layer 14, an inverse Fourier transform layer 15, an output layer 16 and an output 17 for performing operations.
- FIG. 4 is a partial detailed view of FIG. 3, and also shows signals generated in each layer.
- This NN uses a two-dimensional image as an input signal 20, and the input layer 11 inputs the input signal 20 to the NN.
- the Fourier transform layer 12 Fourier transforms the input signal 20 in the spatial domain and outputs the first amplitude signal 21r and the first phase signal 21 ⁇ , which are signals in the spatial frequency domain. In this case, the Fast Fourier Transform is used.
- the amplitude coupling layer 13A has a first weight matrix W1 that updates the values in the matrix by training, and outputs the second amplitude signal 22r by applying the first weight matrix W1 to the first amplitude signal 21r.
- the phase coupling layer 13B has a second weight matrix W2 that updates the values in the matrix by training, and outputs the second phase signal 22 ⁇ by applying the second weight matrix W2 to the first phase signal 21 ⁇ .
- the complex activation layer 14 updates at least the second amplitude signal 22r of the second amplitude signal 22r and the second phase signal 22 ⁇ by using the complex activation function f in the spatial frequency domain. In this embodiment, only the second amplitude signal 22r is updated and output as the third amplitude signal 23r using the second phase signal 22 ⁇ , and the second phase signal 22 ⁇ is output without being updated.
- the inverse Fourier transform layer 15 combines the third amplitude signal 23r and the second phase signal 22 ⁇ to perform an inverse Fourier transform to generate the signal 25 in the spatial region.
- the fast inverse Fourier transform is used.
- the output layer 16 converts the signal 25 from the inverse Fourier transform layer 15 into a desired shape, obtains an output 7, and outputs the output 7 from the NN.
- a coupling layer 13 that performs a complex convolution operation and a complex activation layer 14 that performs an operation using the complex activation function f are provided.
- the number of rows of the first weight matrix W1 is the same as the number of rows of the amplitude matrix which is the first amplitude signal 21r
- the number of rows of the second weight matrix W2 is the phase which is the first phase signal 21 ⁇ . It is the same as the number of columns in the matrix. Further, there is no limitation on the number of columns of the first weight matrix W1 and the second weight matrix W2.
- the amplitude matrix and the phase matrix need to be a matrix of powers of 2. Therefore, in the amplitude coupling layer 13A and the phase coupling layer 13B, a first weight matrix W1 and a second weight matrix W2 that output a matrix having the same magnitude as the amplitude matrix and the phase signal are used.
- the input data includes a sensor signal that receives electromagnetic waves including sound waves or visible light, a sensor signal that acquires heat or vibration, a signal that is calculated and output in the hardware 100, or both the sensor signal and the calculation result. Use a signal that is a fusion of.
- the signal received by the microphone or ultrasonic sensor is used.
- Sensors that collect electromagnetic waves include cameras that collect visible light, cameras that collect infrared or ultraviolet light, light intensity sensors, near-field antennas, far-field antennas, magnetic sensors, electric field / magnetic field sensors, current sensors, voltage sensors, or radiation sensors.
- an acceleration sensor a temperature sensor, a humidity sensor, a gas sensor, a distance sensor, a pressure sensor, an acceleration sensor, or a vibration sensor such as a gyro may be used.
- the sensor signal does not necessarily have to acquire all the data at the same time, and may be treated as one input data by performing processing after acquiring the data at any time. Further, it may be a sensor that senses by contact or a sensor that senses by non-contact. Further, a signal obtained by combining a signal of a visible light camera and a signal of an infrared camera or the like may be used as input data.
- an active phased array antenna or a device that measures a distant wind condition using an active phased array antenna or a laser beam can scan electromagnetic waves or winds in space at high speed to obtain input data as a two-dimensional or higher-dimensional image.
- the data to be the input data does not have to be a single unit, and two or more data may be used in combination. In that case, desired learning can be performed by learning in combination with the NN using the complex activation function shown in this embodiment and the conventional perceptron.
- the hardware 100 processes, for example, an input signal relating to an object obtained from a camera that captures images with visible light, and outputs an output signal from the output layer.
- the output signal is the result of a classification of the input signal, a regression-analyzed estimator, clustering, or a multivariate analysis.
- the type of output signal is determined by the data (teacher data) with the correct label associated with the input signal.
- the data associated with the input image and the correct answer label in a one-to-one correspondence at the time of learning is learned as teacher data.
- the parameters obtained by learning each element of the weight matrix constituting the layer of NN
- the signal captured by the camera and the learned parameters are calculated, and the output signal for the classification is obtained.
- the safety of an image scene is classified into analog signals from 0 to 100 points.
- one real number from 0 to 100 points is given as a correct label for one image.
- a plurality of combinations of the image and the correct label are prepared and used as learning data.
- the parameters of the layers in the NN are determined.
- a regression signal is obtained as an output signal.
- a camera that shoots in a frequency band that is visible light is used as a sensor, but even in a sensor such as an antenna that receives infrared rays, ultraviolet rays, or electromagnetic waves having a frequency lower than that of infrared rays, the sensor signal is If a correct label such as classification or regression is given, the same processing can be performed. Further, in the above explanation, supervised learning has been described, but the same applies to unsupervised learning without a correct answer label.
- the self-encoder is an information processing device configured to perform unsupervised learning by NN.
- the purpose of the self-encoder is to use the input as data at the time of learning and to extract the features representing the data, that is, each element of the matrix in the layer of NN. Therefore, the NN output layer aims to output the same signal as the input layer, and reduces the size of the matrix of the hidden layer between the input layer and the output layer. In this way, if the results of the input layer and the output layer can be made equal even through a small matrix, the file size of the input signal can be reduced. This is called dimensional compression. Also in this self-encoder, the image captured by the camera is used as the input signal in the same manner as described above. At this time, the correct label is unnecessary, and learning is performed by inputting the output of the camera to the self-encoder.
- a computer-aided design tool CAD
- a simulator of electromagnetic field, heat or stress, or other environment such as a computer game
- the input signal in which both the sensor signal and the calculation result are fused the signal obtained by inputting the sensor signal into the simulator or the like is used as the input signal.
- a signal obtained by appropriately changing the type or position information of the sensor based on the output of the simulator may be used as an input signal.
- the physical signal obtained by manufacturing or simulating based on the CAD data is used as the correct label, or the correct label is artificially changed.
- Physical signals calculated based on CAD data include, for example, electromagnetic field distribution due to electromagnetic waves, current, voltage, heat, and the like.
- the input of the electromagnetic field simulation is CAD data (2D or 3D image)
- the correct label is the S parameter (Scatting parameters) that is the simulation result, and the amplitude value of the electric / magnetic field at a certain position in space. , Voltage / current, or pointing vector.
- the above-mentioned CAD and simulator input signals have one-dimensional or higher input images. Even if it is one-dimensional data such as time-series data, it can be two-dimensional by using a spectrogram in which the horizontal axis is time, the vertical axis is frequency, and the amplitude at each time / frequency is the amplitude of the output of Fourier transform. It can also be treated as data. As the Fourier transform when creating the spectrogram in this way, a short-time Fourier transform that performs the Fourier transform every hour is used. In this embodiment, two-dimensional data will be used for the sake of simplicity.
- a grayscale image is assumed, but in the case of a color image, in the case of RGB, the input image is separated into Red, Green, and Blue to make an image one-dimensionally higher than the input image. To do. This dimension is called a channel, and in the case of RGB, there are 3 channels. In the case of CMYK, there are four channels: Cyan, Magenta, Yellow, and Key plate.
- a plurality of channels are input, generally, 4 channels are converted into 1 channel by a convolution operation using a kernel.
- a method of providing one convolution layer in front of the Fourier transform layer 12, a method of performing a Fourier transform on each channel and converting it into one channel by a fully connected layer, or simply pre-weighting each channel. , And the method of converting the input signal 20 to be input to the input layer 11 into one channel can be used.
- the input layer 11 stores the input data which is the input signal 20 to the NN and passes it to the upper layer of the NN.
- the learning result using MNIST is shown.
- the MNIST is a grayscale image having a length ⁇ width of 32 ⁇ 32, and has 60,000 training data and 10000 test data not used for training.
- ⁇ Fourier transform layer, inverse Fourier transform layer> The Fourier transform layer 12 that performs the Fourier transform will be described below. Since the inverse Fourier transform is the inverse transform of the Fourier transform, the details of the inverse Fourier transform and the inverse Fourier transform layer 15 will be omitted. In the Fourier transform, due to its nature, the transformation is performed on the premise that the two-dimensional image input to the Fourier transform is a two-dimensional plane infinitely connected vertically and horizontally. When the input images are directly connected vertically and horizontally, the images at the edges of the images become discontinuous on the connecting line, and frequency components that the original input image does not have may occur. Therefore, in a normal Fourier transform, a window function is applied to each of the vertical and horizontal directions of the image, and the signal whose end is close to 0 is Fourier transformed.
- a method is used in which an image symmetrical in the vertical, horizontal, and diagonal directions of one image is arranged with respect to the input image before the Fourier transform. Assuming that the horizontal axis of the input image is the x-axis and the vertical axis is the y-axis, an image that is line-symmetrical with the boundary line ly parallel to the y-axis is placed at the end of the x-axis component of the input image, and the y of the input image.
- An image line-symmetrical with the boundary line lp parallel to the x-axis is placed at the end of the axis component. Further, at a position diagonal to the input image, a point-symmetrical image is arranged with respect to the intersection of the two boundary lines lp and ly, that is, a rotationally symmetric image rotated by 180 degrees.
- the original input image does not have without using the window function. It is possible to suppress the generation of frequency components and perform calculations.
- the fast Fourier transform is used for the Fourier transform
- the vertical and horizontal dimensions of the input image are powers of 2, that is, even numbers.
- the vertical and horizontal directions of the image composed of four images are even, and since they have a power of 2 magnitude, a fast Fourier transform is used. be able to.
- the input image becomes large, so that the processing of the fast Fourier transform becomes large. Therefore, it is not applied when there is no information at the edge of the image such as an MNIST image and no discontinuity occurs even if the images are connected vertically and horizontally as they are. Further, in the inverse Fourier transform, the same processing may be performed before the inverse Fourier transform.
- the Fourier transform is a transformation from a signal in the spatial domain to a signal in the spatial frequency domain.
- the signal in the spatial domain is called a spatial signal
- the signal in the spatial frequency domain after Fourier transform is called a spatial frequency signal.
- the Fourier transform of the signal a (s, t) in the spatial region having a magnitude of m ⁇ n is expressed by the following equation (4). This equation is called the discrete Fourier transform.
- j is a complex number
- e is a Napier number
- ⁇ is a pi.
- a fast Fourier transform is used for the Fourier transform. Since the FFT with the radix 2 divides the signal at the N point in half, it can be considered as a Fourier transform with the radix 2 time-decimated. Assuming that n is the size of a two-dimensional image, the calculation order of the normal Fourier transform is O (n 3 ), and the calculation order of the convolution operation is also O (n 3 ). Note that O () indicates an approximate value of the number of calculations. The calculation order of the fast Fourier transform is O (n 2 ⁇ log 2 n), and the calculation order of the combination of the fast Fourier transform and the fast inverse Fourier transform (IFFT) is O (2 n 2 ⁇ log 2 n).
- IFFT fast inverse Fourier transform
- the calculation order of the above-mentioned complex convolution operation which is the operation in the coupling layer 13, is O (n 2 ), which is sufficient as compared with other calculation orders O (n 3 ) and O (n 2 ⁇ log 2 n). It is small and can be ignored.
- the NN calculation order according to this embodiment is O (2n 2 ⁇ log 2 n), and the amount of calculation can be reduced and the speed can be increased.
- the calculation order of the CNN is O (m ⁇ n 3 ).
- the complex convolution operation is performed instead of the convolution operation, but since the Fourier transform and the inverse Fourier transform are repeatedly used before and after each complex convolution operation, the fast Fourier transform and the high-speed Fourier transform are performed.
- the calculation order is O (2 m ⁇ n 2 ⁇ log 2 n).
- the number of complex convolution operations in the second comparative example is equal to the number ⁇ of the convolution layer 2 in the CNN.
- the calculation order of NN according to this embodiment is O (2n 2 ⁇ log 2 n) regardless of the number of complex convolution operations corresponding to the number of coupling layers 13, whereas CNN, which is the first comparative example.
- the amount of calculation sharply increases as the number of times m of the convolution operation or the complex convolution operation increases.
- the calculation amount is reduced by 10 times as compared with the second comparative example, and the calculation amount is reduced by about three digits as compared with the CNN of the first comparative example using the convolution operation.
- the amount of calculation is directly linked to the calculation time, it means that, for example, a calculation that takes one month on CNN can be calculated in about 90 minutes on NN according to this embodiment.
- the larger the number of complex convolution operations corresponding to the convolution operations and the larger the image the greater the effect of reducing the amount of calculation.
- the convolution layer 2 is often used by stacking it several times to several tens of times, and by using the NN of this embodiment, the amount of calculation can be significantly reduced and the speed can be increased.
- some smartphones in recent years have 50 million pixels or more (that is, output a matrix of 7,000 ⁇ 7,000) or more, and some cameras have 100 million pixels (output a matrix of 10,000 ⁇ 10,000) or more. It was difficult to perform the CNN convolution operation on such a large image without reducing the number of pixels, that is, without degrading the information contained in the image, considering the amount of calculation. It becomes possible by using NN by.
- the amount of calculation can be reduced and the calculation can be performed at high speed, and the reliability of the calculation can be improved.
- the fast Fourier transform uses only the power of 2 signal, and in the case of a two-dimensional image, only the image obtained by multiplying the power of 2 by 2 is calculated at high speed by using, for example, a butterfly operation. Since a general signal is not a matrix of powers of 2, the input signal is padded with zeros so that it has a power of 2. This allows the Fast Fourier Transform to be used for all signals. The same applies to the fast inverse Fourier transform.
- a frequency shift operation is performed in which the order of the images is changed so that the low frequency components are concentrated in the center of the data.
- the low frequency component gathers in the central part of the matrix and the high frequency component gathers in the peripheral part.
- Such a frequency shift operation is often used because many low-frequency signals contain features.
- the processing of the edge portion of the image causes discontinuity, which easily leads to an error cause, so that the frequency shift calculation is more effective.
- the frequency shift operation has no effect on the result.
- the Fourier transform in the Fourier transform layer 12 can be separated into an amplitude and a phase, or a combination of a real part and an imaginary part.
- the first amplitude signal 21r and the first phase signal 21 ⁇ are generated.
- the amplitude becomes a real number of 0 or more.
- the phase should be a real number greater than or equal to ⁇ and less than ⁇ .
- the above-mentioned padding is performed so that the input signal and the output signal of the Fourier transform layer 12 are matrices of the same magnitude, and usually zero padding is performed.
- the coupling layer 13 is used in the spatial frequency domain in this embodiment.
- the bonding layer 13 a fully bonded layer or a loosely bonded layer is used.
- overfitting can be prevented by using the loosely coupled layer in the fully connected layer and the layer close to the output layer 16 of the upper layer.
- the matrix constituting the fully connected layer all the elements of the weight matrix are updated, but in the matrix constituting the loosely coupled layer, the elements are not stochastically updated.
- the bias vector may be a zero vector at a location close to the output layer 16. Pseudo-random values are usually used as the initial values of W and b. Further, it is known that a matrix called an initial value of Xavier or an initial value of He may be used as an initial value, and learning proceeds quickly. This is the same as the case of the spatial signal, and the description thereof will be omitted.
- the coupling layer 13 is composed of an amplitude coupling layer 13A and a phase coupling layer 13B.
- the spatial signal input to the Fourier transform layer 12 is separated into a first amplitude signal 21r and a first phase signal 21 ⁇ , which are spatial frequency signals, by the Fourier transform.
- the first amplitude signal 21r is input to the amplitude coupling layer 13A
- the first phase signal 21 ⁇ is input to the phase coupling layer 13B
- the first and second weight matrices W1 and W2 which are the weight matrices, are input to the phase coupling layer 13B, respectively.
- the second amplitude signal 22r and the second phase signal 22 ⁇ are output.
- the amplitude coupling layer 13A outputs the second amplitude signal 22r by multiplying the first amplitude signal 21r by the first weight matrix W1. Further, the phase coupling layer 13B outputs the second phase signal 22 ⁇ by multiplying the first phase signal 21 ⁇ by the second weight matrix W2.
- Each initial value of the first weight matrix W1 and the second weight matrix W2 has a pseudo random number value or another initial value described above. Then, in the amplitude coupling layer 13A and the phase coupling layer 13B, the first weight matrix W1 and the second weight matrix W2 are matrixed so that the relationship between the input and the output becomes close by the error back propagation method. Update the value in. That is, the values in the first weight matrix W1 and the second weight matrix W2 are updated by training. It is assumed that the first weight matrix W1 has only positive real numbers with respect to the amplitude matrix (input matrix) x that becomes the first amplitude signal 21r.
- the amplitude matrix x is a positive real number, it may be converted to an absolute value
- for the elements of the matrix of (W1) x but in this case, the first weight matrix W1 is positive.
- Learn by setting a constraint that only real numbers are used. By providing constraints, the search range during learning can be reduced, and the number of operations can be reduced. In addition, learning can be speeded up by eliminating the need for absolute value conversion operations for each element.
- the second weight matrix W2 is not restricted with respect to the phase matrix (input matrix) x that becomes the first phase signal 21 ⁇ .
- a modulo operation of 2 ⁇ is performed on the matrix of (W2) x so that the value is 0 or more and less than 2 ⁇ , or ⁇ or more and less than ⁇ .
- the complex activation function f that applies a trigonometric function to the phase matrix is used in the complex activation layer 14 in the subsequent stage, it is not necessary to perform the remainder calculation.
- the degree as a unit of angle calculated by multiplying 180 / ⁇ by radians may be used for the phase. In this case, the remainder calculation of 360 ° is performed.
- ⁇ Complex activation layer> The second amplitude signal 22r and the second phase signal 22 ⁇ output from the amplitude coupling layer 13A and the phase coupling layer 13B are input to the complex activation layer 14, and the activation function in the spatial frequency domain for these signals. The calculation is performed using the complex activation function f. In this case, the second amplitude signal 22r is updated and output as the third amplitude signal 23 by the calculation using the complex activation function f, and the second phase signal 22 ⁇ is output as it is.
- the response of the complex activation function f to the phase ⁇ (i) at each point i in the phase matrix constituting the second phase signal 22 ⁇ causes the response of the complex activation function f in the amplitude matrix constituting the second amplitude signal 22r.
- the value of the amplitude r (i) at the point at the same position as the point i is updated.
- FIG. 6 is a diagram illustrating an operation of updating the value of the amplitude r (i) using the complex activation function f.
- the value of the complex activation function f is calculated for the phase ⁇ (xi, yi) which is an element at the point i, where the position of the point i in the phase matrix (second phase signal 22 ⁇ ) is (xi, yi).
- the amplitude r (xi, yi) which is an element at the same position (xi, yi) as the point i in the phase matrix, is rewritten.
- the rewritten amplitude matrix is the third amplitude signal 23r.
- the complex activation function f which is an activation function in the spatial frequency domain, will be described below.
- a non-linear function is used as in the activation function in the spatial region.
- g (k ⁇ x) k ⁇ g (x) It can be defined as a function that does not satisfy either or both of.
- Logistic functions and hyperbolic tangent functions are examples of activation functions in the spatial domain. By multiplying such a non-linear function, a difference occurs between forward propagation and back propagation, which creates a function that cannot be expressed by a linear function alone, that is, weighting.
- the complex activation function f in this embodiment is a function for using this non-linear function for the spatial frequency signal after Fourier transform.
- the complex activation function f is different from the conventional activation function for spatial signals. Moreover, the complex activation function f cannot be created by Fourier transform including the activation function. This is also clear from the following equation.
- g is an activation function in the spatial region. F [g (x)] ⁇ F [g] ⁇ F [x] That is, the result of Fourier transforming the value x in the spatial region obtained by applying the activation function g, the Fourier transform of the activation function g, the Fourier transform of the value x, and the product of both are obtained. different. For example, when the Relu function is Fourier transformed, the Fourier transform diverges because the Relu function is monotonically increasing in the region of x ⁇ 0. Therefore, the Fourier transform of the Relu function does not become an activation function in the spatial frequency domain.
- the complex activation function f based on the characteristics of the Relu function is referred to as the complex Relu function.
- the Relu function in the spatial region calculates the same value as the input value when the input value is positive or 0, and 0 when the input value is negative.
- the complex Relu function is not determined only by one of the amplitude r and the phase ⁇ , but updates the amplitude component by using a function that applies a trigonometric function to the phase component. In this case, a trigonometric function is applied to the phase component, and a function obtained by multiplying the amplitude component is used to update the amplitude component when either the real axis component or the imaginary axis component is positive or 0, for example. Do not use the same value, and if it is negative, update it to the value calculated by the function.
- the complex activation function f is a case where either the real axis component or the imaginary axis component is positive or 0 with respect to the phase ⁇ (i) at each point i in the matrix constituting the second phase signal 22 ⁇ . And, the value of the amplitude r (i) at the point at the same position as the point i in the matrix constituting the second amplitude signal 22r is updated by the response different from the negative case.
- An example of the complex activation function f using the complex Relu function is shown in the following equation (5).
- FIG. 7 illustrates the above equation (5).
- the real axis u and the imaginary axis jv are for a circle having a radius r
- the jv component is converted to
- the component of the real axis u is negative, it is equivalent to replacing the amplitude r with the absolute value of rsin ⁇ .
- another example of the complex activation function f using the complex Relu function is shown in the following equation (6).
- FIG. 8 illustrates the above equation (6).
- the imaginary axis jv component when the imaginary axis jv component is negative, it is equivalent to replacing the amplitude r with the absolute value of rcos ⁇ . This is the same value as substituting ( ⁇ + ( ⁇ / 2)) for ⁇ in the above equation (5), but in terms of ease of program creation, less number of comparisons, that is, faster calculation. It is superior to the complex activation function f by the complex Relu function represented by the above equation (5). Moreover, since the number of comparisons of ⁇ can be reduced, the amount of calculation can be reduced.
- the possible value of the amplitude r may be divided into two or more by the phase ⁇ , and the condition of ⁇ may be divided into three or more.
- a discontinuous function can also be used.
- a step function which is a discontinuous function may be used as an activation function.
- the continuity of the complex activation function f is not an indispensable condition, and it may be a non-linear function and a structure in which the amplitude r is rewritten by the output calculated by the value of the phase ⁇ . ..
- the complex activation function f using the non-continuous complex Relu function is represented by, for example, the following equation (10).
- each of the weight matrix W is used to minimize the loss L, which is the difference between the output of the NN and the teacher data.
- the error back propagation method is a means for finding the optimum value, and is based on the gradient descent method.
- the weight matrix W is updated based on the following equation (12) using the weight matrix W, the learning coefficient ⁇ , and the loss L which is a component of the difference between the inference result and the correct label. I will go.
- the ⁇ L / ⁇ W (calculation in which the loss L is partially differentiated with respect to the weight matrix W) to be calculated in the gradient descent method is calculated by the error backpropagation method in which forward propagation and back propagation are repeated, and the weight matrix W is updated. ..
- the process from the input layer to the output layer is called forward propagation, and the process from the output layer to the input layer is called back propagation.
- the operation of updating the weight matrix W is learning, and the process of learning is training.
- the training is completed, the learning of NN is completed.
- the data used for training is called training data, but it is used in the same meaning as training data.
- early termination may be used to stop learning when the desired performance set before learning is satisfied, which helps prevent overfitting and shortens learning time. Connect. In this regard, there is no difference between this embodiment and the CNN technique performed in the spatial domain.
- the gradient descent method is an algorithm used to search for a solution used when minimizing (generally optimizing) an objective function.
- the stochastic gradient descent method represented by the above equation (12) is used, which is a method generally used when the objective function to be minimized is differentiable.
- the learning coefficient ⁇ becomes an important parameter for the gradient descent method, and various methods such as the AdaGrad method, the Adam method, and the momentum method are known. These methods are the same in the learning in the spatial frequency domain as in the learning in the spatial domain, and detailed methods will be omitted.
- the Newton method or the quasi-Newton method which is a derivative method thereof, converges to the solution faster.
- the gradient descent method such as the AdaGrad method, the Adam method, and the momentum method described above, it is preferable to use the Newton method or the quasi-Newton method because the convergence speed and the accuracy greatly depend on the value of the learning coefficient ⁇ .
- the gradient descent method is practically used.
- the purpose of learning is not the training data (input data and correct label) used for learning, but the purpose of making correct inferences for unknown samples given after learning.
- the error for the former training data is called the training error
- the expected value of the error for the latter unknown data is called the generalization error.
- the purpose of learning is to reduce this generalization error, it cannot be calculated at the time of learning like the training error.
- a method is used in which a sample set different from the training data is prepared, and the error calculated by the same method as the training error is used as a guideline for the generalization error. For example, when MNIST data is used, 70% to 80% of the total data is used as training data, and the remaining 20% to 30% of the data is used as test data. Calculate the test error. Specifically, the training data is 60,000 and the test data is 10,000. The change in the test error that accompanies the update of the weight matrix W is called the learning curve.
- Weight attenuation is a method of updating weights so that the larger the value of the weight matrix, the closer to 0. This alleviates the divergence of weight.
- Various methods such as a regularization method are known for weight attenuation, and there are no restrictions when applied to the spatial frequency domain as in the spatial domain.
- overfitting can be prevented by probabilistically setting the component of the amplitude matrix to 0 in the dropout layer. Usually, 20% to 50% is used as the probability.
- overfitting is likely to occur even when the amount of learning data is small.
- the data is inflated. Specifically, translation of one image, left-right mirror image inversion, geometric deformation such as rotation, shading, color variation, and random noise are uniformly added. By increasing the data in this way, it becomes easier to prevent overfitting, and the same applies to this embodiment.
- overfitting may be prevented by using a loosely coupled layer instead of the fully coupled layer, or by giving the hidden layer a method of lowering significant figures such as early termination and calculation results.
- Forward propagation is used in inference to estimate the result using the trained weight matrix.
- forward propagation and back propagation are performed a plurality of times. Forward propagation applies a hidden layer matrix or function to the input data at any time.
- back propagation the inferred value obtained by the forward propagation and the error information with the difference between the correct label as an error are back-propagated from the upper layer immediately after to the lower layer immediately before.
- ⁇ r is an update formula for r from the upper layer to the lower layer
- ⁇ is an update formula for ⁇ from the upper layer to the lower layer.
- the complex activation function f becomes more complicated, it becomes more difficult to express the derivative as a mathematical formula.
- a numerical differentiation is used in which the amount of change ⁇ y when ⁇ is moved by a minute amount ⁇ , that is, ( ⁇ y / ⁇ ) is the derivative. If the derivative is formulated, the calculation is completed by substitution, whereas the numerical differentiation requires subtraction or division, so the amount of calculation is large, but it is necessary to find the derivative for any complex activation function f. Can be done.
- ⁇ L / ⁇ W for back-propagating the loss L is calculated.
- two functions that convert a matrix into a matrix and set them as intermediate values Y and Z.
- the size of the input matrix and the output matrix shall be equal.
- the input X, the weight matrix W, the intermediate values Y and Z are considered as a matrix
- the loss L is considered as a scalar.
- ⁇ L / ⁇ W, ⁇ L / ⁇ Z, ⁇ L / ⁇ Y, ⁇ L / ⁇ X, ⁇ L / ⁇ W are calculated.
- the size of each matrix is equal to Z, Y, X, W.
- the output layer 16 will be described below.
- an activation function which is a function that deforms a signal in order to obtain a desired output 7, is used.
- the activation function used in the output layer 16 is called an output activation function.
- This scale is called an error function in this embodiment.
- Regression analysis is a method of defining a function that reproduces training data for a function that takes a continuous value in the output.
- select a NN output activation function whose range matches the range of the target function.
- a square error is used for the difference between the output result of the output activation function and the correct label. Considering the derivative of backpropagation, the squared error multiplied by 1/2 is generally used for the error function.
- the input data is classified into a finite number of classes.
- MNIST is a multi-value classification problem that classifies handwritten characters with numbers from 0 to 9 in input into 10 ways.
- the softmax function is used as the output activation function.
- the cross entropy is used for the error function.
- the softmax function and cross entropy are similar to the method in the spatial domain.
- the input data is classified into two types.
- the logistic function is used for the output activation function
- the same method as the maximum likelihood estimation is used for the error function.
- binary classification is also considered as a kind of multi-value classification, and as with multi-value classification, a softmax function may be used as the output activation function and a cross entropy may be used as the error function.
- FIG. 11 is a diagram showing a configuration example of NN when two layers each of the binding layer 13 and the complex activation layer 14 are used. The accuracy of the test data when such an NN is used is shown in FIG. 12 together with the case of the first comparative example, that is, the CNN having two convolution layers 2.
- the result of supervised learning when handwritten characters are classified into 10 ways using MNIST as input data is shown by the transition of calculation accuracy with respect to the number of trainings (number of calculations).
- the solid line in FIG. 12 is the case where the NN according to this embodiment is used, and the dotted line is the case where the CNN of the first comparative example is used.
- the complex activation function f represented by the above formula (6) was used.
- FIG. 12 in the NN according to this embodiment, when the number of calculations exceeds 1500, it can be inferred with an accuracy of about 95% with respect to the test data.
- the CNN of the first comparative example has an accuracy of about 97%, so it can be said that the performance is almost the same.
- FIG. 13 is a diagram for explaining the speed-up effect by NN according to this embodiment.
- a first comparative example using a CNN having two convolutional layers 2 and a second comparative example in which a complex convolution operation is performed twice and a Fourier transform and an inverse Fourier transform are performed before and after each complex convolution operation are shown.
- the difference in calculation speed is shown for NN according to the embodiment.
- the time required for the actual calculation using MNIST in the calculation by the CPU calculation in this case, the calculation of 2000 times shown in FIG. 12 is shown.
- the training data is 60,000 and the test data at the time of inference is 10,000.
- the MNIST is a relatively small image of 32 ⁇ 32, but the calculation time of the first comparative example is 260 seconds, that of the second comparative example is 200 seconds, and that of the NN according to this embodiment is 75 seconds. It takes about 30% of the time compared to the example, and it can be seen that the speed is significantly increased.
- a dedicated IC for Fourier transform and inverse Fourier transform that require calculation time it is possible to calculate NN with a large number of layers even with a small processing device such as a microcomputer. ..
- the NN according to this embodiment can perform calculations with almost the same accuracy as the conventional CNN. Further, since the convolution operation that requires a large amount of calculation is replaced with the complex convolution operation by one matrix operation, the amount of calculation can be greatly reduced. Furthermore, by using the complex activation function f, if the Fourier transform and the inverse Fourier transform in the hidden layer are performed once each, the complex convolution operation and the complex activity can be performed in the processing in the spatial frequency domain continuous between them. The conversion function f can be used many times, and the amount of calculation required for the Fourier transform and the inverse Fourier transform can be reduced. Therefore, high-speed processing is possible even for a large image, and high recognition accuracy by NN can be obtained with a low-cost and simple hardware 100 configuration.
- all the operations of each layer between the Fourier transform and the inverse Fourier transform are operations dealing with the spatial frequency signal in the continuous spatial frequency domain, and the input signal and the output signal for each operation are used. Therefore, it becomes possible to analyze the physical function of each operation. As a result, detailed analysis of the NN becomes possible, the configuration of the NN can be determined from the analysis results of each layer, and a high-performance NN can be constructed.
- a two-dimensional image can be processed at a higher speed than the CNN of the first comparative example, and particularly in an NN having a plurality of connecting layers 13 corresponding to the convolution layer 2. , Demonstrate a great effect.
- image recognition in addition to the data acquired by CMOS (Complementary Metal-Oxide-Semiconducor) or the like, an image obtained by visualizing electromagnetic waves with an infrared camera, an ultraviolet camera, a phased array antenna, or the like can be used as input data.
- CMOS Complementary Metal-Oxide-Semiconducor
- the analysis model designed by GUI using CAD of two dimensions or more is used as input data.
- Learning may be performed using the data using the analysis result in the simulator as the correct answer label.
- one-dimensional data can be regarded as two-dimensional data by converting it into a spectrogram, so that the method according to this embodiment can be used.
- the NN according to this embodiment is used as an information processing device that processes input data having a time change such as a moving image by using a convolution operation, such as a generally known Long short-term memory (Convolutional LSTM). It can also be applied. Further, by converting to a spectrogram, the method according to this embodiment can be applied to the entire RNN (Recurrent Neural Networks) where a convolution operation is required.
- a convolution operation such as a generally known Long short-term memory (Convolutional LSTM).
- an image that is not included in the training data or test data is generated by using an NN called GAN (Generative Adversarial Network) that simultaneously trains two NNs, a generation network (generator) and an identification network (discriminator).
- GAN Geneative Adversarial Network
- This embodiment can also be applied to the method of performing.
- This GAN usually constitutes a generation network and an identification network by stacking a large number of convolutional layers, but since two NNs are trained at the same time, the number of convolutional layers increases and the amount of calculation becomes enormous. By using the method of the embodiment, the calculation cost can be significantly reduced.
- a large-scale computer was indispensable for a calculation such as GAN because it is usually learned using several tens to tens of thousands of GPU boards (printed circuit boards on which GPU arithmetic elements are mounted). By applying this embodiment, speeding up of about 3 to 8 digits can be expected, although it depends on the size of the generated image. Depending on the conditions, learning is possible even with hardware that does not have a parallel processing mechanism such as GPU.
- the input data may be a two-dimensional or higher-dimensional image, so that it is possible to input simulation data and perform a desired design, for example.
- the user can set the conditions and limit the output by using the weight function that has been learned.
- GAN enables a desired design, and by applying this embodiment, the time required for learning the design and the time required for inference can be significantly reduced.
- reinforcement learning a method of advancing learning using a two-dimensional image as input data is often used, and most of them have a plurality of convolution layers.
- reinforcement learning does not give a correct answer label, but is learned by an NN called an agent repeating trial and error, so that the amount of calculation becomes enormous.
- NN can be efficiently learned.
- the self-encoder is an NN that trains, for example, to output the same image when a two-dimensional image is input to the input layer, and various arithmetic processes including a convolution layer between the input layer and the output layer. There is, and arithmetic processing is performed so that necessary information is not lost. Since the convolution operation is an indispensable technique even in unsupervised learning, the calculation cost can be significantly reduced by applying this embodiment.
- the input data is not limited to two-dimensional data, and the three-dimensional data may be used as the input data as it is as the three-dimensional data such as a bird's-eye view, a cross-sectional view, a CAD or a 3D camera (stereo camera) in combination with a plan view. ..
- Embodiment 2 In the second embodiment, a complex activation function f different from the complex Relu function used in the first embodiment is used.
- the Fourier transform layer 12 decomposes into an amplitude component which is a real number of 0 or more and a phase component which is a real number of ⁇ or more and less than ⁇ .
- Other configurations are the same as those in the first embodiment.
- the complex activation layer 14 includes the second amplitude signal 22r and the second phase signal 22 ⁇ output from the amplitude coupling layer 13A and the phase coupling layer 13B. Is input, a calculation is performed on these signals using the complex activation function f, the second amplitude signal 22r is updated and output as the third amplitude signal 23r, and the second phase signal 22 ⁇ is output as it is.
- the response of the complex activation function f to the phase ⁇ (i) at each point i in the phase matrix constituting the second phase signal 22 ⁇ causes the response of the complex activation function f in the amplitude matrix constituting the second amplitude signal 22r.
- the value of the amplitude r (i) at the point at the same position as the point i is updated.
- the complex activation function f based on the characteristics of the logistic function in the spatial domain is referred to as a complex logistic function.
- the complex activation function f used in the first embodiment updates the value of the amplitude r (i) with different responses depending on the magnitude of the phase ⁇ (i).
- the complex activation function f used in the above updates the value of the amplitude r (i) by a constant response by the same arithmetic expression regardless of the magnitude of the phase ⁇ (i).
- An example of the complex activation function f using the complex logistic function is shown in the following equation (21).
- k is a real number larger than 1.
- the output of the complex activation function f moves between 0 and 1. This output replaces the amplitude r.
- the complex activation function f shown in the following equation (22) may be used.
- the maximum value of the output of the complex activation function f the (2 / (k 2 -1) ).
- the minimum value of the complex activation function f is a real number of 0 or more, and the above condition that the amplitude component is a real number of 0 or more is satisfied.
- This complex activation function f is a modification of the Gaussian error function.
- the same effect as that of the first embodiment can be obtained. That is, it is possible to perform calculations with almost the same accuracy as the conventional CNN. Further, since the convolution operation that requires a large amount of calculation is replaced with the complex convolution operation by one matrix operation, the amount of calculation can be greatly reduced. Furthermore, by using the complex activation function f, if the Fourier transform and the inverse Fourier transform in the hidden layer are performed once each, the complex convolution operation and the complex activity can be performed in the processing in the spatial frequency domain continuous between them. The conversion function f can be used many times, and the amount of calculation required for the Fourier transform and the inverse Fourier transform can be reduced. Therefore, high-speed processing is possible even for a large image, and high recognition accuracy by NN can be obtained with a low-cost and simple hardware 100 configuration.
- all the operations of each layer between the Fourier transform and the inverse Fourier transform are operations that handle spatial frequency signals within a continuous spatial frequency domain, and the physics of each operation is based on the input signal and output signal for each operation. Function can be analyzed. As a result, detailed analysis of the NN becomes possible, the configuration of the NN can be determined from the analysis results of each layer, and a high-performance NN can be constructed.
- the derivative can be theoretically calculated and the amount of calculation is small, as in the complex Relu function shown in the first embodiment. It is desirable to use f.
- Embodiment 3 In the third embodiment, a complex activation function f different from that of the first and second embodiments is used. Other configurations are the same as those in the first embodiment. Also in the third embodiment, similarly to the first embodiment, the complex activation layer 14 includes the second amplitude signal 22r and the second phase signal 22 ⁇ output from the amplitude coupling layer 13A and the phase coupling layer 13B. Is input, and the second amplitude signal 22r and the second phase signal 22 ⁇ are updated and output by performing calculations on these signals using the complex activation function f. The second amplitude signal 22r and the second phase signal 22 ⁇ are updated in the same manner by the same method, but the second phase signal 22 ⁇ may be held as it is and only the second amplitude signal 22r may be updated.
- FIG. 14 is a diagram illustrating an operation of updating the second amplitude signal 22r and the second phase signal 22 ⁇ using the complex activation function f.
- the second amplitude signal 22r and the second phase signal 22 ⁇ generated by the coupling layer 13 are an amplitude matrix and a phase matrix, which are two-dimensional matrices, respectively.
- Each axis of the amplitude matrix indicates the frequency axis, and each element indicates the amplitude value.
- N and M are set to N ⁇ 2 and M ⁇ 1, respectively, and the frequency axis component, that is, the frequency component is 1 / N, and the amplitude of each element is 1 / M, which is a reduced micromatrix.
- Generate Lr This minute matrix Lr is added to the original amplitude matrix. The matrix generated after addition is used as the output (updated amplitude matrix) of the complex activation function f.
- phase matrix is also subjected to the operation of generating and adding the minute matrix L ⁇ , and the matrix generated after the addition is used as the output of the complex activation function f (updated phase matrix).
- the complex activation function f is a non-linear function in the spatial frequency domain.
- the input second amplitude signal 22r and the second phase signal 22 ⁇ can effectively aggregate the signal components into the lower frequency components.
- a pooling layer which will be described later, is used after using this complex activation function f, information can be aggregated in low frequency components while preventing deterioration of main information in the pooling layer.
- the pooling layer is provided after the complex activation layer 14, and serves as a low-pass filter in electrical engineering, more generally as a filter.
- the calculation of the complex activation function f according to the third embodiment requires more calculation time than the calculation of the complex activation function f shown in the first or second embodiment, but it deteriorates the information. It is possible to perform more accurate calculations.
- the calculation of the complex activation function f according to the third embodiment is combined with the error backpropagation method in the learning of NN, the calculation is performed for each element of each matrix when reciprocating between the upper layer and the lower layer a plurality of times. Therefore, the number of calculations becomes enormous. Therefore, it is effective to set N and M to the power of 2 respectively and to reduce the weight of the calculation by using the shift operation for the generation of the minute matrices Lr and L ⁇ . Since the shift operation does not need to be a decimal number and is a 2-bit operation that is good at calculation, the calculation cost is small in the operation using a von Neumann computer. For example, in a compiled language such as C language, the calculation cost is about 1/10.
- Right-shift bit operations may be performed for operations that make 1/2 a power, such as 1/2, 1/4, and 1/8.
- each element of the second amplitude signal 22r, the amplitude matrix forming the second phase signal 22 ⁇ , and the phase matrix is thinned out one by one.
- the size of the rows and columns of each matrix is halved to become the minute matrices Lr and L ⁇ .
- the minute matrices Lr and L ⁇ whose size has become smaller, the high frequency components are zero-filled and processed to the same size as the amplitude matrix and phase matrix before thinning.
- the output signal of the simplest complex activation function f can be generated by adding the processed minute matrices Lr and L ⁇ to the matrix amplitude matrix and phase matrix before thinning.
- a plurality of minute matrices Lr and L ⁇ may be used, respectively, and not only 1/2 but also minute matrices Lr and L ⁇ such as 1/4 and 1/8 may be further added.
- the convolution operation requiring a large amount of calculation is replaced with the complex convolution operation by one matrix operation, so that the amount of calculation can be greatly reduced.
- the complex activation function f if the Fourier transform and the inverse Fourier transform in the hidden layer are performed once each, the complex convolution operation and the complex activity can be performed in the processing in the spatial frequency domain continuous between them.
- the conversion function f can be used many times, and the amount of calculation required for the Fourier transform and the inverse Fourier transform can be reduced. Therefore, high-speed processing is possible even for a large image, and high recognition accuracy by NN can be obtained with a low-cost and simple hardware 100 configuration.
- all the operations of each layer between the Fourier transform and the inverse Fourier transform are operations that handle spatial frequency signals within a continuous spatial frequency domain, and the physics of each operation is based on the input signal and output signal for each operation. Function can be analyzed. As a result, detailed analysis of the NN becomes possible, the configuration of the NN can be determined from the analysis results of each layer, and a high-performance NN can be constructed.
- Embodiment 4 a complex activation function f different from that of the first to third embodiments is used. Other configurations are the same as those in the first embodiment.
- the complex activation layer 14 includes the second amplitude signal 22r and the second phase signal 22 ⁇ output from the amplitude coupling layer 13A and the phase coupling layer 13B. Is input, and the second amplitude signal 22r and the second phase signal 22 ⁇ are updated and output by performing calculations on these signals using the complex activation function f.
- the second amplitude signal 22r and the second phase signal 22 ⁇ are updated in the same manner by the same method, but the second phase signal 22 ⁇ may be held as it is and only the second amplitude signal 22r may be updated.
- the complex activation function f performs a convolution operation on the input signal (target signal) with the function that maximizes the absolute value of the value at the reference origin as the kernel F [h]. ..
- a complex activation function f having the same accuracy as the activation function of the spatial region can be obtained.
- the convolution calculation is performed on the second amplitude signal 22r using this F [h]
- the convolution calculation may be performed on the second phase signal 22 ⁇ in the same manner.
- the amplitude of the result (F [g] * F [h]) after the convolution operation there is a point where the amplitude is 0, and the point where the amplitude is 0 becomes the information in the NN.
- the output of the second amplitude signal 22r needs to be a positive real number, it is desirable to convert it to an absolute value with respect to the output (F [g] * F [h]) after the convolution operation.
- the amount of calculation becomes enormous when the calculation is performed by the backpropagation method.
- the sigmoid function shown in the following equation (26) is a function that converges in the spatial frequency domain.
- the Fourier transform and the inverse Fourier transform in the hidden layer are performed once by using the complex activation function f, the operation of each layer between the Fourier transform and the inverse Fourier transform can be performed.
- All are operations that handle spatial frequency signals within a continuous spatial frequency domain. Therefore, it is possible to analyze the physical function of each operation from the input signal and the output signal for each operation. As a result, detailed analysis of the NN becomes possible, the configuration of the NN can be determined from the analysis results of each layer, and a high-performance NN can be constructed.
- the complex activation function f performs a convolution operation using the kernel in the spatial frequency domain. Therefore, it is possible to perform a calculation theoretically equivalent to the CNN of the first comparative example and obtain the same accuracy, but the calculation speed is not improved.
- the CNN method is used in the calculation for handling the spatial frequency signal in the continuous spatial frequency domain, and the detailed analysis of the CNN, which is the conventional method, becomes possible.
- the convolution operation (Hadamard product in the spatial frequency domain) is responsible for emphasizing the edge (the boundary line between objects).
- the activation function (complex activation function in the spatial frequency domain) is a non-linear function and is responsible for generating frequency components different from the input signal (both low frequency band and high frequency band). Pooling (complex pooling in the spatial frequency domain), which will be described later, plays the role of a filter typified by a low-pass filter. In this way, each operation can be clearly separated and analyzed, which can contribute to the development of NN including CNN.
- CNN analyzes the input image by extracting edges in various directions using multiple kernels obtained by training and synthesizing them.
- the features of the image are extracted by the convolution process that involves a plurality of operations in this way. Then, a process having the same physical meaning as this can be performed in the spatial frequency domain by a complex convolution operation that does not use a convolution operation using a kernel.
- the analysis of the activation function (complex activation function in the spatial frequency domain) will be described.
- the processing of the spatial region can express a structure similar to the firing of nerve cells in the brain with a non-linear function.
- the function of pooling (complex pooling in the spatial frequency domain) described later is also analyzed, the most important role of the activation function in deep learning is. , It is possible to derive the result that it is to generate a frequency component different from the input signal.
- the Relu function in the spatial domain can be reduced to processing half-wave rectification in the spatial frequency domain in the spatial frequency domain. That is, in the half-wave rectification process for a triangular wave (general image) having two or more different periods, a part of energy is transferred to a low frequency component close to a DC component in addition to the frequency component of the original triangular wave. .. Therefore, as shown in the third embodiment approximately, it can be seen that the same effect can be obtained by the calculation of outputting a part of the signal to the low frequency component side.
- the calculation in the spatial frequency domain does not give the same result as the calculation in the spatial domain, but the difference in the calculation results can be adjusted by training in the complex convolution calculation.
- the fifth embodiment is provided with a complex pooling layer in the NN according to the first to fourth embodiments.
- the complex pooling layer 18 is a layer in the spatial frequency domain corresponding to the pooling layer 4 in the spatial domain.
- FIG. 15 is a diagram showing the configuration of the NN according to the fifth embodiment, and is a partial detailed view corresponding to FIG. 4 shown in the first embodiment.
- the amplitude coupling layer 13A has a first weight matrix W1 and outputs a second amplitude signal 22r by applying the first weight matrix W1 to the first amplitude signal 21r.
- the phase coupling layer 13B applies the second weight matrix W2 to the first phase signal 21 ⁇ and outputs the second phase signal 22 ⁇ .
- the complex activation layer 14 updates only the second amplitude signal 22r out of the second amplitude signal 22r and the second phase signal 22 ⁇ and outputs it as the third amplitude signal 23r by using the complex activation function f.
- the second phase signal 22 ⁇ is output without being updated.
- the complex pooling layer 18 is provided immediately after the complex activation layer 14, and performs arithmetic processing on the signal updated by the complex activation layer 14. In this case, since only the amplitude component is updated, the input third amplitude signal 23r is subjected to arithmetic processing and the amplitude signal 23ra is output.
- the complex pooling layer 18 is provided in the above embodiments 3 and 4, and the complex activation layer 14 updates both the second amplitude signal 22r and the second phase signal 22 ⁇ , the complex activation layer 14 is updated.
- the complex pooling layer 18 performs arithmetic processing on both signals.
- pooling The operation of the pooling layer 4 in the spatial domain is referred to as pooling, and the operation of the complex pooling layer 18 in the spatial frequency domain is referred to as complex pooling.
- Pooling in the spatial region reduces the sensitivity of the position of the feature extracted by the convolution layer 2, and can be recognized as an image having the same feature amount even if the position of the target feature amount in the image changes. It is a thing. This means “blurring" the image. Applying "blurring" to the spatial frequency domain can be easily obtained by removing the high frequency components. Since the high frequency component is a component generated when the elements of adjacent pixels change suddenly, complex pooling can be obtained by removing the high frequency component in the spatial frequency domain.
- the calculation on the complex pooling layer 18, that is, the complex pooling corresponds to a low-pass filter in the field of signal processing. Then, by performing complex pooling, the structure becomes strong against the displacement and rotation of the input image, overfitting of the NN is prevented, and the calculation accuracy is improved.
- the pooling in the spatial area is generally the maximum value pooling that cuts out a map for each image size of S ⁇ T (S and T are integers of 2 or more) and outputs the maximum value, or the average value pooling that outputs the average value.
- S and T are integers of 2 or more
- Lp pooling and the like are known. These differences in pooling can be considered to indicate differences in the shape of the low-pass filter in the spatial frequency domain.
- a window function obtained by transforming a window function such as a Han window, a Humming window, a Hanning window, a Blackman window, or a Kaiser window according to the dimension of the input signal of each hidden layer may be used for complex pooling.
- a window function obtained by transforming a window function such as a Han window, a Humming window, a Hanning window, a Blackman window, or a Kaiser window according to the dimension of the input signal of each hidden layer
- the calculation result is converted to an absolute value so that the negative component is not generated. Since this window function can also remove the discontinuity in the Fourier transform and the inverse Fourier transform, it is possible to remove the noise component generated by the influence of the numerical processing.
- a high-pass filter that removes information offset by a single color, that is, a low frequency component close to direct current, it is possible to remove single color information such as a background component. Specifically, with respect to the frequency-shifted signal, the signal corresponding to several pixels in the central portion is removed. In this case, a high-pass filter that suppresses the pixels in the central portion, which is usually 10% or less, is provided. Note that this method cannot be used for data in which the DC component is an important factor.
- a bandpass filter in which the highpass filter and the lowpass filter are combined.
- a bandpass filter there is a method using a Gabor filter which is a function represented by the product of a trigonometric function and a Gaussian function shown by David Hubel and Torsten Wiesel. Further, any bandpass filter may be used in combination with the lowpass filter and the highpass filter.
- the complex activation function f shown in the above-described third or fourth embodiment or the activation function used in CNN has a meaning for NN to generate a frequency component lower than a specific frequency.
- the output of the activation function (Relu function) becomes 0.
- An output of 0 means a frequency of 0 in the spatial frequency domain, that is, a DC component, and a half-wave rectification in electrical engineering.
- half-wave rectification changes the frequency continuously from the DC component to a specific frequency, so even if the input signal to the activation function is a single frequency, the output signal will be wideband. It will have the frequency component of.
- the main information in the low frequency component can be effectively aggregated.
- the aggregation of information described here means that the high frequency component has been removed by a low-pass filter (for example, a Gaussian filter).
- the complex pooling layer 18 is provided not only immediately after the complex activation layer 14 but also before the complex activation layer 14.
- pooling (complex pooling in the spatial frequency domain) can also be analyzed, which will be described below.
- pooling in the spatial region is roughly classified into maximum value pooling and average value pooling. For example, it is an operation of cutting an image with 2 ⁇ 2 bits and outputting the maximum value or the average value among the 2 ⁇ 2 bits. This operation has the effect of blurring. Further, by blurring, it is possible to produce an effect that the same image can be recognized even if the position of the input image is deviated or rotated.
- the pooling operation is a low-pass filter. It can also be seen that the maximum value pooling and the average value pooling differ only in the edge sharpness at the cutoff frequency of the filter. For this reason, pooling in the spatial domain has a physically ambiguous meaning, but in the spatial frequency domain, complex pooling can be applied as an explicit filter. This allows complex pooling to build deep learning models with higher accuracy in inference than filters in the spatial domain. Further, in addition to the low-pass filter, an arbitrary filter such as a band-pass filter that removes only DC components and high-frequency components can be constructed, so that a deep learning model with a high degree of freedom can be constructed.
- this complex pooling is a low-pass filter has a great connection with the activation function (complex activation function in the spatial frequency domain).
- the activation function has the effect of producing low-frequency components.
- the low-frequency component generated by the activation function can be left, and the high-frequency component originally generated by the input signal can be removed.
- the cutoff frequency of the low-pass filter that is, the design of the low-pass filter.
- CNN is to convolve the filter obtained by training, extract the edge of the image, generate a signal in the low frequency component by the nonlinear function that becomes the activation function, leave the frequency component that appeared in the low frequency component by pooling, and leave it. This is a method of learning by removing components other than the above.
- Embodiment 6 is provided with a complex batch normalization layer in the NN according to the above-described first to fifth embodiments.
- FIG. 16 is a diagram showing the configuration of the NN according to the sixth embodiment, and is a partial detailed view corresponding to FIG. 4 shown in the first embodiment.
- the complex batch normalization layer 19 is provided between the bond layer 13 and the complex activation layer 14 is shown, but in addition to this, the complex batch normalization layer 19 is provided at the subsequent stage of the complex activation layer 14 or at the front stage of the bond layer 13. You may.
- the complex batch normalization layer 19 is a hidden layer that performs complex batch normalization in the spatial frequency domain corresponding to the batch normalization in the spatial domain.
- Complex batch normalization can reduce the effect of internal covariate shift by performing the same calculation as batch normalization in the spatial domain only for the amplitude signal in the spatial frequency domain, and shortens the training time. it can.
- the complex batch normalization layer 19 since the complex batch normalization layer 19 is arranged between the coupling layer 13 and the complex activation layer 14, the complex batch normalization layer 19 makes only the second amplitude signal 22r output by the amplitude coupling layer 13A complex. Batch normalize and output the amplitude signal 22ra.
- the demerit to the calculation accuracy by providing the complex batch normalization layer 19 is small, it is before or after the complex pooling layer 18, or before a hidden layer such as an amplitude logarithmic layer or an axis logarithmic layer, which will be described later.
- a complex batch normalization layer 19 may be provided later.
- the calculation time of the complex batch normalization layer 19 itself affects and the learning takes time, it is desirable to reduce the number of the complex batch normalization layers 19 and take the following measures. That is, the complex activation function f is changed, the initial value of the weight matrix W is pre-learned, the learning coefficient in the gradient descent method is lowered, and the degree of freedom of NN is restricted by a dropout layer or a loosely coupled layer.
- Embodiment 7 the NN according to the first to sixth embodiments is provided with an amplitude logarithmic layer and an inverse amplitude logarithmic layer.
- FIG. 17 is a diagram showing the configuration of the NN according to the seventh embodiment, showing the case where the amplitude logarithmized layer and the inverse amplitude logarithmized layer are applied to the sixth embodiment, and the portion of the NN corresponding to FIG. It is a detailed view.
- an amplitude logarithmic layer 10A is provided between the Fourier transform layer 12 and the coupling layer 13
- an inverse amplitude logarithmic layer 10B is further provided in front of the inverse Fourier transform layer 15.
- the first amplitude signal 21r When the input signal 20 is Fourier-transformed by the Fourier transform layer 12 and divided into a first amplitude signal 21r and a first phase signal 21 ⁇ , the first amplitude signal 21r has a large amplitude signal at a specific frequency on the frequency axis. Signals with amplitude may occur. In that case, a signal having a large amplitude may cause the other components of the matrix that becomes the amplitude signal to become almost 0, lose the characteristics of the image, and learn only the portion having a large amplitude.
- the amplitude logarithmic layer 10A calculates a logarithm with respect to the amplitude of the first amplitude signal 21r (amplitude matrix), that is, generates and outputs an amplitude signal 21ra whose amplitude is logarithmic. As a result, it is possible to suppress the adverse effect of a signal having a large amplitude generated after the Fourier transform and improve the reliability of learning.
- the radix a is generally the natural logarithm e, 2, or 10, but other real numbers may be used.
- the magnitude of the input signal may differ by about 2 to 3 digits, but for example, when the radix 10 is used, even if the difference is 3 digits, the change is 3 times, and the signal has a small amplitude. Can be trained to be sensitive and insensitive to signals with large amplitudes.
- the amplitude signal 21ra is used by the following calculation formula using the error component ⁇ for multiplying the logarithmized signal by a constant b which is a real number larger than 0 and avoiding the input signal becoming 0. May be generated.
- y b ⁇ log a (x + ⁇ )
- the error component ⁇ does not need to be input when it does not have 0 as an element of the amplitude matrix, and when it has 0 as an element of the amplitude matrix, an value that is one digit or more smaller than the minimum value excluding 0 is input. It is desirable to do.
- the constant b is used for the purpose of preventing the output value y from becoming smaller or excessive than the rounding error of the information processing apparatus, and 10 or 20 is often used, but other constants b. It can be a real number.
- the amplitude (logarithmic amplitude) of the input amplitude signal (third amplitude signal 23r) is returned to the true number to generate the amplitude signal 23ra. And output.
- the following equation (27) or equation (28) is used.
- Embodiment 8 the NN according to the first to seventh embodiments is provided with an axial logarithmic layer and an inverse logarithmic layer.
- FIG. 18 is a diagram showing the configuration of the NN according to the eighth embodiment, showing the case where the axial logarithmic layer and the inverse logarithmic layer are applied to the sixth embodiment, and the portion of the NN corresponding to FIG. It is a detailed figure. As shown in FIG. 18, an axis logarithmic layer 10C is provided between the Fourier transform layer 12 and the coupling layer 13, and an inverse logarithmic layer 10D is provided in front of the inverse Fourier transform layer 15.
- the axis logarithmic layer 10C will be described below.
- the input data used for learning is two-dimensional data.
- One axis of the two-dimensional data is called the X axis, and the other axis is called the Y axis.
- the X-axis and Y-axis of the first amplitude signal 21r and the first phase signal 21 ⁇ after being Fourier-transformed by the Fourier transform layer 12 are antilogarithms as in the input data.
- the first amplitude signal 21r and the first phase signal 21 ⁇ are input to the axis logarithmic layer 10C, and the axis logarithmic layer 10C is connected to the X-axis and Y-axis of the first amplitude signal 21r and the first phase signal 21 ⁇ .
- a logarithm is used, that is, an axial logarithmic amplitude signal 21rb and a phase signal 21 ⁇ b are generated and output.
- the radix may be a real number of 0 or more.
- the amplitude signal 21rb and the phase signal 21 ⁇ b can be two-dimensional data in which the low frequency components are emphasized in each of the X-axis and the Y-axis. It can be considered that the dynamic range has expanded, and even small changes in low-frequency components can be learned without being overlooked. It should be noted that the conventional CNN cannot use such a method. In this embodiment, the information of the low frequency component having a large amount of information can be emphasized, the information of the high frequency component having a small amount of information can be suppressed, and highly reliable learning can be efficiently advanced.
- the X-axis and Y-axis of the input amplitude signal (third amplitude signal 23r) and phase signal (second phase signal 22 ⁇ ) are made true numbers.
- the amplitude signal 23 rb and the phase signal 22 ⁇ b are generated and output.
- the inverse Fourier logarithm that returns the X-axis and the Y-axis to the antilogarithm is not always necessary if the inverse Fourier transform layer 15 in the subsequent stage can perform the inverse Fourier transform.
- the amplitude signal 21rb and the phase signal 21 ⁇ b may have images with a rough sampling interval on the low frequency side due to the axis logarithmization.
- interpolation is performed.
- known methods such as linear interpolation, polynomial interpolation, and spline interpolation are used.
- linear interpolation polynomial interpolation
- spline interpolation spline interpolation
- only one axis may be logarithmized.
- the viewpoints of learning are different between the X-axis and the Y-axis, similarly, only one of the axes may be logarithmized.
- the matrix of the amplitude signal (first amplitude signal 21r) becomes logarithmic in rows, columns, and each element, and the matrix of the phase signal (first phase signal 21 ⁇ ) becomes logarithmic in rows and columns. ..
- FIG. 19 is a diagram showing the configuration of the NN according to the ninth embodiment.
- the NN is composed of the amplitude coupling layer 13A and the phase coupling layer 13B in this order from the input layer 11A, the coupling layer 13 that performs the complex convolution operation, and the complex activity that performs the calculation using the complex activation function f. It includes a chemical layer 14, a complex pooling layer 18, an inverse Fourier transform layer 15, an output layer 16 and an output 17.
- a Fourier transform layer 12A which is a calculation unit that performs Fourier transform in the preprocessing of the NN, is provided separately from the NN, and the Fourier transform layer 12A Fourier transforms the input signal 20 in the input spatial domain to perform a Fourier transform in the spatial frequency domain.
- the first amplitude signal 21r and the first phase signal 21 ⁇ which are signals, are output.
- the NN input layer 11A passes the first amplitude signal 21r and the first phase signal 21 ⁇ , which are signals in the spatial frequency region, to the upper layer, the coupling layer 13, as input signals. Therefore, it is not necessary to perform the Fourier transform in the NN, it is not necessary to perform the iterative calculation in the Fourier transform layer at the time of learning, and the calculation of the back propagation thereof is also unnecessary, so that the calculation time can be shortened. Can be done.
- the Fourier transform layer 12A is referred to as an NN by applying this embodiment to the NNs shown in the above embodiments 1 to 8.
- the Fourier transform can be performed by NN preprocessing.
- FIG. 20 is a diagram showing the configuration of the NN according to the tenth embodiment.
- the NN is composed of a convolution layer 2 that performs a convolution operation, an activation function 3, a Fourier transform layer 12, an amplitude coupling layer 13A, and a phase coupling layer 13B in order from the input layer 11, and performs a complex convolution calculation. It is composed of a coupling layer 13 to be performed, a complex activation layer 14 to perform an operation using the complex activation function f, a complex pooling layer 18, an inverse Fourier transform layer 15, an output layer 16 and an output 17.
- the convolution layer 2 and the activation function 3 are inserted in the subsequent stage of the input layer 11 of the NN according to the fifth embodiment.
- the input signal 20, which is a spatial signal, is calculated by using the activation function 3 after the convolution calculation is performed by the kernel in the convolution layer 2 in the spatial region.
- the spatial signal after the calculation by the activation function 3 is divided into a first amplitude signal 21r and a first phase signal 21 ⁇ by the Fourier transform layer 12. Subsequent calculations are the same as in the fifth embodiment.
- the convolution layer 2 and the activation function 3 which are hidden layers in the spatial region are provided in front of the Fourier transform layer 12. Therefore, the NN is a combination of the spatial domain and the spatial frequency domain.
- the input signal 20 configured by combining RGB
- a method of dividing the input data for each color in the input layer is used in CNN.
- it in addition to the vertical and horizontal information, it usually has a three-dimensional shape in the channel direction, which is the dimension of RGB colors.
- This three-dimensional shape contains spatial information such as many similar values between pixels that are spatially close to each other.
- the three-dimensional shape may contain essential information of the image, such that there is a close relationship between each of the RGB channels, or pixels that are separated from each other are not so related to each other. ..
- the convolution layer 2 can extract and retain this information.
- unique methods in the spatial frequency domain such as complex convolution, complex activation function f, and complex pooling, can be used, enabling calculations that are impossible in the spatial domain.
- the spatial region it was difficult to investigate the amount of local change in the image, but in this embodiment, it is possible to proceed with the learning inference while retaining this information.
- Information on the physical positional relationship of the features lost by the Fourier transform can be left by providing the convolution layer 2 and the activation function 3 near the input layer 11. Therefore, learning and inference can be performed with high accuracy.
- the NN is configured to have multiple layers, and one convolutional layer 2 is provided between the input layer 11 and the Fourier transform layer 12.
- the entire NN is constructed by inserting a CNN having about 5 layers and a small number of layers. Then, training is performed between the Fourier transform layer 12 and the output layer 16 in the same manner as in the first embodiment. As a result, the speed can be increased even for multidimensional input data having three or more dimensions.
- the weight of calculation can be reduced, so that the number of images that can be processed by one learning can be increased. Therefore, when the same amount of calculation is considered, higher accuracy can be expected as compared with the case where the first comparative example is used.
- the convolution layer 2 and the activation function 3 which are hidden layers in the spatial region are provided in front of the Fourier transform layer 12, but the inverse Fourier transform layer 15 and the output layer 16 are used.
- the convolution layer 2 and the activation function 3 may be provided between the two, and may be provided in both the front stage of the Fourier transform layer 12 and the rear stage of the inverse Fourier transform layer 15.
- Embodiment 11 the electronic device that performs the control operation by using the NN by the information processing apparatus shown in the above-described first to tenth embodiments will be described.
- the information processing device is used for processing sensor information mounted on an air conditioner, processing sensor information such as a servo system used in a factory in factory automation, or processing sensor information installed outdoors in a vehicle. Used. Conventionally, in order to use CNN for these processes, it has been necessary to prepare a GPU, an ASIC (application specific integrated circuit), or an FPGA dedicated to the neural network process.
- information on an air conditioner, a servo system, an in-vehicle sensor, and the like can be processed by general-purpose hardware including an existing CPU microcomputer and memory.
- FIG. 21 is a diagram showing a configuration example of an air conditioner as an electronic device according to the eleventh embodiment.
- the air conditioner includes an information processing device 50 according to the present application, an infrared sensor 51 that recognizes an object 58, and a blower 52.
- the information processing device 50 includes an input unit 53 for inputting data, an analysis unit 54 for analyzing the data input from the input unit 53, a storage unit 55 for recording the analysis result, and an object 58 for the analysis result.
- a determination unit 56 for determination and a control unit 57 for controlling each unit are provided.
- the information processing device 50 controls at least the wind direction, the air volume, and the temperature of the blower unit 52 from the control unit 57.
- the analysis unit 54, the determination unit 56, and the control unit 57 have the functions of the CPU 30 of the hardware 100 shown in FIG. 1 as a whole, and the storage unit 55 has the functions of the ROM 31 and the RAM 32 of the hardware 100.
- the information processing device 50 uses the output signal of the infrared sensor 51 as an input signal, and based on the learning process of learning the position and temperature change of the living body from the input signal and the information obtained in the learning process, based on the input signal. It is provided with an inference process for inferring, and a control operation is performed based on the inference process.
- the NN has a process of inferring the position of the living body and the temperature change of the living body from the input signal from the infrared sensor 51.
- the position of the living body is determined by detecting the temperature of the living body using the information processing device 50.
- the information processing device 50 performs a process of predicting the temperature suitable for each living body from the temperature change of the living body.
- the NN Before using the air conditioner, the NN is trained and the weight matrix W, which is the learning result of the NN, is stored in the storage unit 55, or a part of the weight matrix W of the NN is stored in the air conditioner.
- the information processing device 50 includes only the inference process among the learning process and the inference process, calls the weight matrix W in the storage unit 55 at the time of inference, and receives an input signal from the infrared sensor 51. And calculate.
- the NN training according to the above-described first to tenth embodiments is performed.
- the correct label is, for example, a mechanism for grasping the structure of the room, grasping and controlling the distance between each living body and the air conditioner, or the appropriate temperature and air volume for each living body.
- the structure of the room for example, those that do not change in temperature are recognized as rooms, furniture, etc., and those that change in temperature are recognized as doors, living organisms, etc.
- the appropriate temperature and air volume for each living body for example, when a mechanism that can grasp the position of the controller (for example, a member that absorbs or reflects infrared rays at the tip of the controller) is provided and each living body operates the controller of the air conditioner.
- Information is used as the correct answer label.
- a process of moving a different living body and extracting and recognizing features such as body temperature and contour is performed by NN.
- the NN may be determined whether the object is a living body or an object such as a cooker from the temperature change when cold air or hot air is applied to the object 58. Further, the NN may determine whether or not to blow the wind on each living body by identifying each living body, or may make a judgment such as not blowing the wind on the cooker.
- the learned NN weight matrix W is stored in the storage unit 55, and is read from the storage unit 55 and used at the next startup of the air conditioner.
- normalization is performed to set the maximum value of the image data to 1 and the minimum value is 0, preprocessing such as standardization to set the average of the image data to 0 and the variance to 1 is performed, and only at startup. You may use online learning, in which batch learning is performed, or learning is performed at any time depending on the situation even during startup.
- blower portions 52 of the air conditioner is one in FIG. 21, a plurality of blower portions 52 may be provided.
- two blower units 52 capable of outputting different temperatures and air volumes are provided, and a mechanism for sending temperatures and air volumes according to each living body is provided according to the NN processing result. Further, the temperature can be adjusted by appropriately mixing the air in the room by the two blowers 52.
- it is possible to identify each living body by learning the NN it is possible to construct an air conditioner having various functions by combining the information. Further, even when a plurality of living organisms are present at the same time, each blowing unit 52 can fix the wings for adjusting the wind direction, and can continuously send the wind having an appropriate temperature and air volume for each living body.
- an infrared sensor, a distance sensor, or the like is used to recognize an article, a person, the opening / closing of a door, etc. in the room.
- the NN is an input signal of a sensor signal such as an infrared sensor, and an output signal of an article, a person, opening / closing of a door, etc. in the room.
- the amount of information (number of pixels) to be acquired has increased, and a response in real time is required. For this reason, it is becoming indispensable to increase the size and power of the hardware for processing information accordingly.
- the air conditioner according to this embodiment it is possible to suppress the increase in size and power consumption and speed up the processing. Therefore, the power consumption can be reduced, an additional structure for heat dissipation is not required, the indoor unit can be miniaturized, and the efficiency of the indoor unit can be improved.
- the calculation is performed through an information network such as WWW and a computer that is good at large-scale calculation such as a computer server, and the result of the computer is air-conditioned through WWW. Work was being done to return it to the machine.
- the air conditioner according to this embodiment does not need to use an information network such as the WWW, can reduce the power and time lag required for their communication, and provides the user with a more comfortable air conditioner system. Can be done.
- FIG. 22 is a diagram showing a configuration of an electronic device constituting a servo system as an electronic device according to another example of the eleventh embodiment.
- the electronic device includes an information processing device 50 according to the present application, a sensor 51a for detecting electromagnetic waves, and an operating unit 52a.
- the information processing device 50 includes an input unit 53 for inputting data, an analysis unit 54 for analyzing the data input from the input unit 53, a storage unit 55 for recording the analysis result, and a determination unit for determining the analysis result. 56 and a control unit 57 for controlling each unit are provided.
- the information processing device 50 controls at least one of stopping the operation of the operating unit 52a and eliminating abnormal objects from the control unit 57.
- the analysis unit 54, the determination unit 56, and the control unit 57 have the functions of the CPU 30 of the hardware 100 shown in FIG. 1 as a whole, and the storage unit 55 has the functions of the ROM 31 and the RAM 32 of the hardware 100. ..
- the information processing device 50 uses the output signal of the sensor 51a as an input signal, and learns at least one of the amount of change in the position of the object, the electric field, the magnetic field, and the temperature from the input signal, and obtains it in the learning process. It is provided with an inference process that makes an inference based on an input signal based on the information obtained, and performs a control operation based on the inference process.
- the NN may be learned in advance, and the information processing device 50 includes at least an inference process among the learning process and the inference process, and calls the weight matrix W in the storage unit 55 at the time of inference. Use.
- the position of an article being produced using the servo system is monitored by calculation using NN, and the characters, colors, barcodes, and defects written on the article are defective. Analyze the presence or absence.
- a signal read by a CCD such as a camera, a CMOS image sensor, a near-field antenna, or a far-field antenna is input to the NN. Since the servo system operates at high speed, instant judgment is required, and CNN has been used in the past, but the search range has been reduced to reduce the size of the image in order to increase the speed.
- the same processing speed can be maintained for a large image, so that a wide range of information can be processed with a smaller number of sensors, and an NN having a larger number of layers can be used.
- the accuracy can be improved.
- the power and time lag required for their communication can be reduced, and a servo system that responds more quickly can be provided to the user. .. Since the servo system is required to control at the same time by linking multiple servo motors, real-time performance is emphasized.
- the quick response can quickly avoid manufacturing and operation in the event of an abnormality. Therefore, waste as waste can be reduced, and failures due to collisions between devices due to the devices operating in an abnormal posture can be reduced.
- the self-supporting robot includes at least one of a CCD such as a camera, a CMOS image sensor, a near-field antenna, and a far-field antenna as a sensor 51a, monitors the position of an article, and has characters, colors, and bars written on the article. At least one of the codes can be identified and determined.
- the sensor 51a is attached directly to or around the self-supporting robot.
- the information processing device 50 learns from the input signal input from the sensor 51a whether or not there is a character, a color, a bar code, or a defect to which the noise of the sensor 51a itself or the noise depending on the usage environment of the sensor 51a is applied. It includes a learning process and an inference process that makes inferences based on input signals based on the information obtained in the learning process, and performs control operations based on the inference process.
- the information processing device 50 may include at least an inference process among the learning process and the inference process, and in that case, the weight matrix W in the storage unit 55 is called and used at the time of inference.
- the collision prevention device includes an information processing device 50 according to the present application, a sensor 51a, and an operating unit 52a.
- the information processing device 50 includes an input unit 53 for inputting data, an analysis unit 54 for analyzing the data input from the input unit 53, a storage unit 55 for recording the analysis result, and a determination unit for determining the analysis result. 56 and a control unit 57 for controlling each unit are provided.
- the sensor 51a detects external environment information in the vehicle, which is information for control operation, and at least one of a CCD such as a camera, a CMOS image sensor, a radar, and an ultrasonic sonar is used.
- a CCD such as a camera, a CMOS image sensor, a radar, and an ultrasonic sonar is used.
- a radar a radar using a laser beam, a radar using a millimeter wave, or the like such as a lidar (Light Detection and Ranger) is used.
- a lidar Light Detection and Ranger
- a combination of different sensors or a plurality of the same sensors may be used, and safety during driving can be enhanced.
- the information processing device 50 obtains a learning process that learns at least one of the position of a living body outside the vehicle, the position and traveling direction of surrounding vehicles, signal information, and lane information from an input signal input from the sensor 51a, and a learning process. It is equipped with an inference process that makes inferences based on input signals based on the information received, and performs control operations based on the inference process. In this case as well, at least an inference process may be provided.
- This collision prevention device can control the steering, accelerator, and brake, but the output from the control unit 57 of the information processing device 50 is roughly classified into one that gives a warning to the driver in the event of an abnormality, or a warning to the driver.
- an abnormality when a vehicle detects a deviation from the lane, when the vehicle is traveling, when the distance between the vehicle and the preceding vehicle is approaching, there is a person or an object in the direction in which the vehicle travels (front and back, left and right), and a collision occurs. In some cases, such as, a warning is given to the driver by sound, light or vibration to inform the driver of the abnormality.
- the operation unit 52a directly controls the vehicle by a command from the control unit 57 of the information processing device 50.
- the information processing device 50 electrically controls the steering to avoid deviation from the lane, drives the accelerator or the brake so as to control the distance to the preceding vehicle or the front, rear, left and right objects. ..
- the surrounding conditions of the vehicle are grasped, and control such as stopping the vehicle at a safe position is performed.
- the collision prevention device is provided with only the sensor 51a for detecting the environment information outside the vehicle, but further, a sensor such as a camera using visible light or infrared light is mounted in the vehicle to judge the physical condition of the driver and detect an abnormality. You may. Also in this case, the output signal of the in-vehicle sensor is used as an input signal, and the information processing device 50 performs a calculation to determine the driver's physical condition, such as a sleeping state and a drinking state. Based on that judgment, the driver is warned by sound, light, or vibration, or the situation around the car is grasped and the car is stopped at a safe position.
- a sensor such as a camera using visible light or infrared light
- an in-vehicle device capable of identifying and authenticating a driver and preventing vehicle theft, driving by an unlicensed driver, etc. is shown below.
- the configuration in this case is also the same as in the case shown in FIG.
- the sensor 51a detects in-vehicle environment information that is mounted in the vehicle and serves as information for control operation, and at least one of a CCD or CMOS image sensor such as a camera is used.
- the information processing device 50 includes a learning process that learns the driver's face and at least the face of the driver from the input signal input from the sensor 51a, and an inference process that makes inferences based on the input signal based on the information obtained in the learning process. And perform control operations based on the inference process.
- the information processing device 50 includes both a learning process and an inference process, can learn a specific driver, identify and authenticate the driver, and only that driver can operate the vehicle.
- the information is updated regularly using online learning, in which the data is added and learned. ..
- it is not necessary to use an information network such as WWW, and the driver can be quickly identified and authenticated with an energy-saving, simple and inexpensive configuration regardless of the connection environment with them. You can do things.
- a surveillance camera can be applied as an electronic device provided with the information processing device 50 according to the present application.
- a visible light image from a camera serving as a sensor 51a is input to the information processing device 50, and the information processing device 50, for example, inputs an ID assigned to each individual (in Japan, a my number, a passport passport number, etc.). Output.
- the behavior of each individual can be monitored in real time by a surveillance camera. In this embodiment, it is not necessary to upload the image of the surveillance camera via an information network such as WWW, and the amount of information can be reduced by performing distributed processing by the information processing device 50.
- the amount of information of 1 MB / s is handled per surveillance camera, but in this embodiment, the amount of information can be significantly reduced by processing the amount of information of 1 kB / s. This makes it easy and reliable to monitor personal behavior.
- In-vehicle devices that identify and authenticate drivers and electronic devices such as surveillance cameras that monitor personal behavior use input signals read by a CCD or CMOS image sensor and use human behavior, state, etc. as output signals. ..
- an image is used as input information, it is possible to increase the speed and accuracy by increasing the number of layers of NN.
- the electronic device using the NN to which the tenth embodiment is applied can effectively improve the accuracy by calculating both the spatial domain and the spatial frequency domain.
- FIGS. 21 and 22 show electronic devices provided with sensors 51 and 51a
- the information processing device 50 according to the present application can also be applied to electronic devices not provided with sensors 51 and 51a.
- the signal generated by the calculation in the information processing apparatus 50 is used as the input signal.
- the inference process includes at least the inference process among the learning process in which learning is performed based on the input signal and the inference process in which inference is performed based on the input signal based on the information obtained in the learning process. The control operation is performed based on the above.
- At least one of characters, colors, light intensities, dimensions, shapes, positions, angles, speeds, or changes in the position of an object due to acceleration, electric fields, magnetic fields, and temperatures is inferred.
- the information processing device according to the present application can be applied to electronic devices.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Human Computer Interaction (AREA)
- Medical Informatics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Image Analysis (AREA)
Abstract
ニューラルネットワークを用いて信号処理する情報処理装置(100)は、入力信号(20)をフーリエ変換し、第1振幅信号(21r)と第1位相信号(21θ)とを出力するフーリエ変換層(12)と、訓練によって値を更新する第1重み行列(W1)を第1振幅信号(21r)にかけて第2振幅信号(22r)を出力する振幅結合層(13A)と、訓練によって値を更新する第2重み行列(W2)を第1位相信号(21θ)にかけて第2位相信号(22θ)を出力する位相結合層(13B)と、空間周波数領域の複素活性化関数fを用いて、第2振幅信号(22r)および第2位相信号(22θ)の内、少なくとも第2振幅信号(22r)を更新する複素活性化層(14)と、更新後の信号を組み合わせて逆フーリエ変換する逆フーリエ変換層(15)とを備える。
Description
本願は、情報処理装置およびそれを備えた電子機器に関するものである。
画像認識などに用いられるニューラルネットワークは、画像を深層学習によって学習させ、画像内の特徴量を抽出する。近年、畳み込み演算を用いて高い認識性能が得られるCNN(畳み込みニューラルネットワーク)が注目されている。このCNNは、誤差逆伝搬法によって学習する重み関数を入力画像に対して畳み込み、誤差逆伝搬法によって重み関数の更新を行い、入力画像と出力結果との関連付けを行う。この際、入力画像を高次元空間における点の集合として表現し、重み付け関数を平滑化した行列を用いて、前記入力画像を摂動させ、その摂動させた入力画像に対して離散フーリエ変換または、離散コサイン変換を行い、サブ空間に投影すると共に、上記変換を行った画像を逆変換して、摂動後の画像を取得する方法が知られている(例えば特許文献1)。
上記のような畳み込み演算を用いるニューラルネットワーク、即ちCNNでは、畳み込み層を多層構造にすることで認識精度の向上が図れる。しかしながら、畳み込み層において計算すべき行列の演算回数は、例えば2048画素×2048画素の画像のように大きな画像に対しては、おおよそ画像の総画素数に比例して大きくなるため、計算量が膨大になる。このため、必要計算コストが高く、情報処理装置の簡略化は困難であった。
また、従来のCNNにおける各層の演算は、脳の構造を数学モデルに落とし込んで模倣したものであるが、物理的な意味の把握が困難であった。このため、CNN全体の演算結果のみに基づいて、構築したCNN全体を評価する事は可能であるが、各演算における入力信号と出力信号に基づいて、各演算の物理的な機能を解析できずCNNの詳細解析ができないと言う問題点があった。
また、従来のCNNにおける各層の演算は、脳の構造を数学モデルに落とし込んで模倣したものであるが、物理的な意味の把握が困難であった。このため、CNN全体の演算結果のみに基づいて、構築したCNN全体を評価する事は可能であるが、各演算における入力信号と出力信号に基づいて、各演算の物理的な機能を解析できずCNNの詳細解析ができないと言う問題点があった。
本願は、上記のような課題を解決するための技術を開示するものであり、ニューラルネットワークにおける計算量を削減して低コストで簡略な装置構成にて、ニューラルネットワークによる高い認識精度を得ると共に、ニューラルネットワークの詳細解析が可能な情報処理装置を提供することを目的とする。
さらに、この情報処理装置を用いた学習および推論に基づいて高速高精度な制御動作を行う電子機器を提供する事を目的とする。
さらに、この情報処理装置を用いた学習および推論に基づいて高速高精度な制御動作を行う電子機器を提供する事を目的とする。
本願に開示される情報処理装置は、入力信号をニューラルネットワークで処理するもので、前記入力信号をフーリエ変換し、第1振幅信号と第1位相信号とを出力するフーリエ変換層と、訓練によって行列内の値を更新する第1重み行列を前記第1振幅信号にかけて第2振幅信号を出力する振幅結合層と、訓練によって行列内の値を更新する第2重み行列を前記第1位相信号にかけて第2位相信号を出力する位相結合層と、空間周波数領域の活性化関数である複素活性化関数fを用いて、前記第2振幅信号および前記第2位相信号の内、少なくとも前記第2振幅信号を更新する複素活性化層と、前記複素活性化層で更新された前記第2振幅信号と前記第2位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、を備えるものである。
本願に開示される電子機器は、上記情報処理装置を用いて制御動作を行うものである。
本願に開示される情報処理装置によれば、ニューラルネットワークにおける計算量が削減でき、低コストで簡略な装置構成にて、ニューラルネットワークによる高い認識精度が得られると共に、ニューラルネットワークの詳細解析が可能になる。
また、本願に開示される電子機器によれば、高速高精度な制御動作が可能になる。
また、本願に開示される電子機器によれば、高速高精度な制御動作が可能になる。
実施の形態1.
<ハードウェアの構成例>
図1は、本願の実施の形態1によるニューラルネットワーク(以下、NNと称す)として機能する情報処理装置としてのハードウェア100の全体構成を示す図である。
ハードウェア100は、スタンドアロンのコンピュータであっても良いし、クラウド等を利用したサーバクライアン卜システムのサーバ、またはクライアン卜であっても良い。さらにハードウェア100は、スマートフォンまたはマイコンであっても良い。また工場内などを想定した場合には、エッジコンピューティングと呼ばれる工場内で閉じたネットワーク内での計算機環境であっても良い。
<ハードウェアの構成例>
図1は、本願の実施の形態1によるニューラルネットワーク(以下、NNと称す)として機能する情報処理装置としてのハードウェア100の全体構成を示す図である。
ハードウェア100は、スタンドアロンのコンピュータであっても良いし、クラウド等を利用したサーバクライアン卜システムのサーバ、またはクライアン卜であっても良い。さらにハードウェア100は、スマートフォンまたはマイコンであっても良い。また工場内などを想定した場合には、エッジコンピューティングと呼ばれる工場内で閉じたネットワーク内での計算機環境であっても良い。
図1に示すように、ハードウェア100は、CPU(Central Processing Unit)30を内蔵しており、CPU30にはバス配線34を介して、入出力インタフェース35が接続されている。CPU30は入出力インタフェース35を介して、NNを用いるユーザによって、入力部37が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)31に格納されているプログラムを実行する。あるいは、CPU30は、ハードディスク(HDD)33、あるいはSSD(Solid State Drive、図示せず)に格納されたプログラムを、RAM(Random Access Memory)32にロードして、必要に応じて読み書きして実行する。これにより、CPU30は各種の処理を行い、ハードウェア100を所定の機能を有する装置として機能させる。
CPU30は、各種処理の結果を、必要に応じて入出力インタフェース35を介して、出力部36である出力デバイスから出力、あるいは通信部38である通信デバイスから送信、さらにはハードディスク33に記録させる。また、CPU30は、各種情報を、必要に応じて入出力インタフェース35を介して通信部38から受信し、ハードディスク33から呼び出して用いる。
入力部37は、キーボード、マウス、マイクあるいはカメラ等で構成される。また、出力部36は、LCD(Liquid Crystal Display)あるいはスピーカ等で構成される。また、CPU30が実行するプログラムは、ハードウェア100に内蔵されている記録媒体としてのハードディスク33またはROM31に予め記録しておくことができる。あるいは、プログラムは、ドライブ39を介して接続されるリムーバブル記録媒体40に格納(記録)しておくことができる。
入力部37は、キーボード、マウス、マイクあるいはカメラ等で構成される。また、出力部36は、LCD(Liquid Crystal Display)あるいはスピーカ等で構成される。また、CPU30が実行するプログラムは、ハードウェア100に内蔵されている記録媒体としてのハードディスク33またはROM31に予め記録しておくことができる。あるいは、プログラムは、ドライブ39を介して接続されるリムーバブル記録媒体40に格納(記録)しておくことができる。
このようなリムーバブル記録媒体40は、いわゆるパッケージソフトウェアとして提供することができる。リムーバブル記録媒体40としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)、MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
また、プログラムは、複数のハードウェア間を有線、無線のいずれか一方あるいは、双方を介して接続するWWW(World Wide Web)等のシステム(Com port)を通して送受信することができる。さらに、後述する訓練を行い、訓練によって得られた重み関数のみを、上記方法で送受信することができる。
また、プログラムは、複数のハードウェア間を有線、無線のいずれか一方あるいは、双方を介して接続するWWW(World Wide Web)等のシステム(Com port)を通して送受信することができる。さらに、後述する訓練を行い、訓練によって得られた重み関数のみを、上記方法で送受信することができる。
例えば、CPU30は、ハードウェア100を、NNを構成する各層の処理、およびNNの生成を行う情報処理装置として機能させる。この場合、ハードウェア100は、NNとして機能すると共に、NNの生成装置として機能する。
なお、NNの各層は、CPUあるいはGPU(Graphics Processing Unit)等の並列演算を得意とする汎用のハードウェアで構成する他、FPGA(Field-Programmable Gate Array)、FFT(Fast Fourier Transform)演算アーキテクチャ、あるいは専用のハードウェアで構成することができる。
なお、NNの各層は、CPUあるいはGPU(Graphics Processing Unit)等の並列演算を得意とする汎用のハードウェアで構成する他、FPGA(Field-Programmable Gate Array)、FFT(Fast Fourier Transform)演算アーキテクチャ、あるいは専用のハードウェアで構成することができる。
また、後述するフーリエ変換および逆フーリエ変換等の行列演算は、専用のハードウェアが行っても構わない。特に、フーリエ変換、逆フーリエ変換を高速に行うことができる高速フーリエ変換、高速逆フーリエ変換用のハードウェアは汎用的なハードウェアとして入手することができる。この専用のハードウェアはCPUあるいはGPUに内蔵されているものもある。
また、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換する目的でのセンサ、またはハードウェア100内で設計したCAD等の画像または計算結果を出力する機構を、ハードウェア100が備えていても良い。あるいは、上記センサの情報とハードウェア100の計算結果とを融合する機構を、ハードウェア100が備えていても良い。さらに、ハードウェア100は、電源線または内部バッテリを元に駆動する機構を備えている。
また、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換する目的でのセンサ、またはハードウェア100内で設計したCAD等の画像または計算結果を出力する機構を、ハードウェア100が備えていても良い。あるいは、上記センサの情報とハードウェア100の計算結果とを融合する機構を、ハードウェア100が備えていても良い。さらに、ハードウェア100は、電源線または内部バッテリを元に駆動する機構を備えている。
さらにハードウェア100は、通信ポートを経由して複数台で構成されていても良く、後述する訓練と推論とが、別構成のハードウェア100で実施されていても良い。さらに、ハードウェア100が、通信ポートを経由して、異なるハードウェア100に繋がれたセンサ信号を受信する、あるいは通信ポートを経由して複数のセンサ信号を受信してもよい。さらに、1つのハードウェア100内に、複数の仮想ハードウェア環境を用意し、各仮想ハードウェアを個別のハードウェアとして扱っても構わない。
<学習に用いるデータ>
NNで使用するデータは、教師あり学習、教師なし学習、あるいは強化学習によるものが用いられる。NNは深層学習(ディープラーニング)あるいはパーセプトロンとも呼ばれることがある。パーセプトロンに関しては、後述する隠れ層が1層の場合は単一パーセプトロン、2層以上の場合は多層パーセプトロンと呼ばれる。この多層パーセプトロンがNNと呼ばれる。
NNで使用するデータは、教師あり学習、教師なし学習、あるいは強化学習によるものが用いられる。NNは深層学習(ディープラーニング)あるいはパーセプトロンとも呼ばれることがある。パーセプトロンに関しては、後述する隠れ層が1層の場合は単一パーセプトロン、2層以上の場合は多層パーセプトロンと呼ばれる。この多層パーセプトロンがNNと呼ばれる。
教師あり学習は、学習データに対して、学習データに紐付けられた正解ラベルを学習する方法である。NNにおいては、入力信号と出力信号の対応付けされているものである。
一方、教師なし学習は、学習データに正解ラベルを付けずに学習する方法である。自己符号化器を多層化したStacked Auto Encoder(SAE)、制約ボルツマンマシンを多層化したDeep Boltzmann Machine(DBM)などが知られている。
さらに強化学習は、教師あり学習および教師なし学習とは異なり、正解を与える代わりに時々刻々と変わるデータに対して、将来得られる期待値を最大化するDQN(Deep Q Learning)が用いられる場合が多い。
一方、教師なし学習は、学習データに正解ラベルを付けずに学習する方法である。自己符号化器を多層化したStacked Auto Encoder(SAE)、制約ボルツマンマシンを多層化したDeep Boltzmann Machine(DBM)などが知られている。
さらに強化学習は、教師あり学習および教師なし学習とは異なり、正解を与える代わりに時々刻々と変わるデータに対して、将来得られる期待値を最大化するDQN(Deep Q Learning)が用いられる場合が多い。
なお、この実施の形態では、教師あり学習を用いる場合を示すが、教師なし学習を用いても良い。教師なし学習を用いる場合は、データ・クラスタリング、主成分分析などの多変量解析を行う。また、入力画像は一般的には2次元以上の画像が用いられるため、強化学習を用いることもできる。
その他にも、一部の学習データに正解ラベルが与えられていない半教師あり学習、あるいは、学習データを用いて学習させたモデルを別の学習データに適用させる転移学習のデータでも、従来のCNNが適用できるものであれば、この実施の形態にも適用できる。
その他にも、一部の学習データに正解ラベルが与えられていない半教師あり学習、あるいは、学習データを用いて学習させたモデルを別の学習データに適用させる転移学習のデータでも、従来のCNNが適用できるものであれば、この実施の形態にも適用できる。
また、学習には、学習の対象となるデータを一括で処理するバッチ学習と、学習の対象となるデータが入るたびに、そのデータを追加して学習を行うオンライン学習とがある。この実施の形態では、バッチ学習を用いる場合を示すが、オンライン学習を用いる事もでき、いずれの場合も、この実施の形態により計算を軽量化、高速化させることができる。
<第1比較例としてのCNN構成例>
この実施の形態で説明するNNは、CNNの代替手段となるものであるため、この実施の形態によるNNを説明するに先だって、第1比較例となるCNNについて以下に説明する。CNNは深層学習で最も代表的な技術であって、推論時に高い精度を持つ手法であり、ネオコグニトロンと呼ばれるパターン認識を応用して作られた技術である。
図2は、第1比較例としてのCNNの構成例を示す図である。図2に示すように、CNNは、入力層1から順に、畳み込み層2、活性化関数3、畳み込み層2、活性化関数3、プーリング層4、畳み込み層2、活性化関数3、全結合層5、活性化関数3、全結合層5、出力層6、出力7を備えて構成される。
この実施の形態で説明するNNは、CNNの代替手段となるものであるため、この実施の形態によるNNを説明するに先だって、第1比較例となるCNNについて以下に説明する。CNNは深層学習で最も代表的な技術であって、推論時に高い精度を持つ手法であり、ネオコグニトロンと呼ばれるパターン認識を応用して作られた技術である。
図2は、第1比較例としてのCNNの構成例を示す図である。図2に示すように、CNNは、入力層1から順に、畳み込み層2、活性化関数3、畳み込み層2、活性化関数3、プーリング層4、畳み込み層2、活性化関数3、全結合層5、活性化関数3、全結合層5、出力層6、出力7を備えて構成される。
このように、CNNは、畳み込み層2と活性化関数3とを用いて学習を行うもので、学習データである画像を入力信号とする入力層1に対して、畳み込み層2、活性化関数3を通した後、畳み込み層2、活性化関数3、プーリング層4、全結合層5を複数回組み合わせる。そして、この組み合わせからの出力に対して、ソフトマックス関数等の誤差関数を含む出力層6を通して所望の出力信号(出力7)を得る。
入力層1と出力層6の間の層を隠れ層と呼ぶ。上述したように、隠れ層が2層以上あるものがNNであり、NNは、入力層及び出力層を含む複数の層が適宜、組み合わされて構成される。NNにおいて、ある層から見て入力側の層を下位層、出力側の層を上位層ともいう。
従来例においては、150層を超える隠れ層を有するCNNも知られており、近年、高精度化のためには層数を増やす傾向にある。
従来例においては、150層を超える隠れ層を有するCNNも知られており、近年、高精度化のためには層数を増やす傾向にある。
教師あり学習においては正解ラベルが与えられているため、入力層1、隠れ層、出力層6を通して出力された結果と正解ラベルとを比較し、その誤差成分を出力層6から入力層1に向かって伝搬させ、隠れ層で用いた重みとバイアスを最適化する。最適化には各層の演算に対する微分を計算する必要がある。誤差逆伝搬法は、この出力層6から入力層1への誤差の伝搬を表現するための微分を効率よく計算する1つの手法である。
畳み込み層2は、マップに対してカーネル(またはフィルタと呼ばれる)を適用し、畳み込み演算を行う。カーネルは、例えば7ピクセル×7ピクセルの画像、すなわち7×7の行列、つまり49個の要素で構成される。このカーネルを入力層1のデータ、あるいは結合している下位層のマップに対して適用して畳み込み演算を行い、上位層に信号を出力する。畳み込み演算は、カーネルによって、入力画像が示す特徴的な画像のエッジを、画像から抽出する働きを持つ。ここで、エッジとは、物体と物体、物体と背景画像などの境界のことである。このカーネルを複数用意し、上記の誤差逆伝搬法によってカーネルを構成する行列を更新する過程が学習と呼ばれる過程である。
次に畳み込み演算について説明する。入力画像内の位置(i,j)の値をxijとする。i、jは整数であり、ここでは0以上の整数である。またこの場合、各画素値は0以上の整数とする。カーネルを入力画像より小さい画像とし、そのサイズをH×Hとする。Hは2以上の整数である。カーネルはインデックス(p,q)((p=0,1,2,・・・,H-1),(q=0,1,2,・・・,H-1))で表し、画像内の値をhpqとする。この時、hpqは任意の実数値を取るとする。このような条件においては、畳み込み演算は以下の式(1)で表される。なお、uijは、畳み込み演算による出力画像内の値である。
但し、深層学習における畳み込み演算は、以下の式(2)で定義されるのが一般的である。これは深層学習以外では相互相関、または相関と呼ばれる。この場合の相関は、カーネルを上下、左右方向に反転すると畳み込み演算と同じ結果を与えるため、ここでは、式(2)で表される演算を畳み込み演算と呼ぶ。
後述するフーリエ変換後の空間周波数領域においては、畳み込み演算と相関との違いは、xij、hpqの一方におけるフーリエ変換の複素共役に相当する。但し、カーネルは学習によって得る値から成るため、カーネルの初期値をランダムにする場合には複素共役を用いる必要はないが、初期値の重みを変える場合にはカーネルに対して複素共役を用いるのが望ましい。
また、畳み込み演算の計算量を低減するために、ストライドと呼ばれる手法が用いられるときもある。ストライドの幅を2以上の整数sとすると、ストライドは以下の式(3)で表すことができる。
これにより、1/sまで出力画像を小さくすることができるが、sを大きくすることは、画像の特徴を取りこぼす可能性を意味し、通常は性能を悪化させる方向に働くため、学習あるいは推論の高速化が不可欠な場合以外には行わない。
畳み込み演算では、入力画像に対してカーネルをスライドさせながら計算し、和を取って行くものである。1つの畳み込み層2において、下位層の画像(入力画像)の大きさをW×H、カーネルの大きさをU×Vとすると、出力画像の大きさは、(W-2[U/2])×(H-2[V/2])となる。この場合、[ ]は小数点以下を切り下げて整数化する演算子とする。[U/2]および[V/2]は自然数であるため、畳み込み演算を行うと演算後の画像は、演算前の入力画像よりも小さくなる。
畳み込み演算の前後の画像が同じ大きさになると、誤差逆伝搬時の演算等、計算が平易になることが多いため、畳み込み演算後の画像の外側に、幅[U/2]および幅[V/2]の画像を追加して出力画像を大きくする。この手法をパディングと呼ぶ。外側に追加する画像は任意の画像で良いが、0にする場合が多く、特にゼロパディングと呼ぶ。
後述する高速フーリエ変換および高速逆フーリエ変換においては、行列の大きさは2のべき乗である必要があるため、入力する行列と、出力する行列との大きさをパディングによって等しくしておくのが望ましい。
後述する高速フーリエ変換および高速逆フーリエ変換においては、行列の大きさは2のべき乗である必要があるため、入力する行列と、出力する行列との大きさをパディングによって等しくしておくのが望ましい。
次に、畳み込み層2での畳み込み演算後の出力信号に対して非線形関数である活性化関数3をかける。活性化関数3が非線形であることが、NN(この場合CNN)にとって重要であり、非線形関数が入ることで線形関数だけでは表現することができなかった任意のデータを表現することができる。
簡単な例として、仮に、定数cを用いた線形関数h(x)=cx、を活性化関数と考える。この線形関数h(x)を3層重ねる関数(xからyへの関数)は、y=h(h(h(x)))となる。しかし、この関数は、y=c・c・c・x、即ち、y=c3x、とも記載でき、これは1層でも表現できる。これは、出力yは入力xに対して線形の関数しか表現できないことを意味しており、隠れ層を増やす意味がない。そのため、活性化関数には非線形関数を用いる必要がある。
簡単な例として、仮に、定数cを用いた線形関数h(x)=cx、を活性化関数と考える。この線形関数h(x)を3層重ねる関数(xからyへの関数)は、y=h(h(h(x)))となる。しかし、この関数は、y=c・c・c・x、即ち、y=c3x、とも記載でき、これは1層でも表現できる。これは、出力yは入力xに対して線形の関数しか表現できないことを意味しており、隠れ層を増やす意味がない。そのため、活性化関数には非線形関数を用いる必要がある。
活性化関数3に非線形関数を用いることにより、層数が大きくなるに従い、表現できる関数の自由度が増え、任意の入力信号と正解ラベルの間の関係を精度良くつなぐことができる。
活性化関数3となる非線形関数には、Relu関数(正規化線形関数)である
g(x)=max(x,0)
シグモイド関数(またはロジスティックシグモイド関数とも呼ばれる)である
g(x)=1/(1+exp(-x))
あるいは、双極線正接関数である
g(x)=tanh(x)
が用いられる。
活性化関数3となる非線形関数には、Relu関数(正規化線形関数)である
g(x)=max(x,0)
シグモイド関数(またはロジスティックシグモイド関数とも呼ばれる)である
g(x)=1/(1+exp(-x))
あるいは、双極線正接関数である
g(x)=tanh(x)
が用いられる。
その他にも、Leaky ReLU
g(x)=ax for x<0,g(x)=x for x>=0
あるいは、Thresholded ReLU
g(x)=x for x>θ,g(x)=0 otherwise
など、様々な活性化関数が知られている。
例外として出力層6の直前に、線形関数である恒等関数g(x)=x、を用いることもある。但し、任意の曲線を表現するためには、非線形関数を活性化関数に用いた、2層以上の隠れ層が必要となるため、ここでは恒等関数に関しては説明しない。
g(x)=ax for x<0,g(x)=x for x>=0
あるいは、Thresholded ReLU
g(x)=x for x>θ,g(x)=0 otherwise
など、様々な活性化関数が知られている。
例外として出力層6の直前に、線形関数である恒等関数g(x)=x、を用いることもある。但し、任意の曲線を表現するためには、非線形関数を活性化関数に用いた、2層以上の隠れ層が必要となるため、ここでは恒等関数に関しては説明しない。
以上のように、畳み込み層2と活性化関数3とを複数用いて構成したCNNを誤差逆伝搬法によって、重みおよびバイアスの値を更新する。この更新を学習プロセス、または単に学習と呼ぶ。学習初期においては、重みおよびバイアスは疑似乱数が用いられる。他にも後述するXavierの初期値あるいはHeの初期値等が用いられることもある。学習プロセスが完了すると、値が更新された重みおよびバイアスが出力となる。
そして、値が更新された重みおよびバイアスを用いて、入力画像に対して出力を推定する推論を行う。この推論を行うプロセスを推論プロセス、または簡単に推論と呼ぶ。
通常の使用においては、学習プロセスはGPUあるいは専用ハードウェアを搭載したサーバクライアン卜システムで行う。
通常の使用においては、学習プロセスはGPUあるいは専用ハードウェアを搭載したサーバクライアン卜システムで行う。
一方、推論は、正解ラベルとの誤差を減らす学習プロセスが不要で、入力層1から出力層6に向かって、上記の重みおよびバイアスを用いて演算し出力するだけであるため、学習に比べて計算量が小さい。しかしながら、CNNを構成する層の中では畳み込み層2の計算量が大きく、計算時間を要する。推論プロセスは数秒以内の応答速度が求められることが多いが、畳み込み層2の層数を増やして学習の精度を上げている一般的なCNNにおいては、マイコンなどの簡易なハードウェアでは所望の時間内での応答が困難である場合が多い。スマートフォンなどの比較的演算能力の低い計算機しか持たないエッジコンピュータにおいて、CNN用の専用ハードウェアを搭載する場合もあるが、ハードウェア実装面積の増加、処理系統の複雑化あるいは電力使用量の増加などが問題となる。
<全体像>
この実施の形態では、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換するセンサの出力信号、またはハードウェア100内で演算により設計した信号、またはセンサ信号と演算結果の両方を含む信号を処理するハードウェア100(情報処理装置)の構成例を示す。ハードウェア100内での演算は、NNを用いた演算処理である。入力信号は1次元以上であればいずれでも構わないが、この実施の形態では2次元の画像を対象に説明する。
この実施の形態では、音波または可視光を含む電磁波、熱、あるいは振動等の物理現象を数値データに変換するセンサの出力信号、またはハードウェア100内で演算により設計した信号、またはセンサ信号と演算結果の両方を含む信号を処理するハードウェア100(情報処理装置)の構成例を示す。ハードウェア100内での演算は、NNを用いた演算処理である。入力信号は1次元以上であればいずれでも構わないが、この実施の形態では2次元の画像を対象に説明する。
この実施の形態によるNNでは、畳み込み演算に相当する演算を空間周波数領域で行い、演算後の信号に対して、空間周波数領域における活性化関数である複素活性化関数をかける。即ち、上記したセンサの出力信号などによる空間領域での入力信号を、フーリエ変換して空間周波数領域の信号に変換し、空間周波数領域において、畳み込み演算に相当する演算と、複素活性化関数を用いた演算とを行う。その後、空間周波数領域の信号を逆フーリエ変換して空間領域の信号に戻して、所望の出力信号を得る。
上記第1比較例で示したCNN内の畳み込み演算は、一度の畳み込み演算に対して複数回の行列演算を要するものであるが、この空間領域での一度の畳み込み演算は、空間周波数領域では一度の行列演算に置き換えられる。この実施の形態では、この特徴を利用して学習あるいは推論を行うことで、演算回数を大幅に削減でき、計算時間、計算量、計算にかかる消費電力を大幅に低減でき計算コストを大幅に低減できる。以下、空間周波数領域における、畳み込み演算に相当する演算を、便宜上、複素畳み込み演算と称す。
また、空間周波数領域において、複素畳み込み演算による演算後の信号に対して、非線形関数となる複素活性化関数をかける。このように、複素畳み込み演算と、複素活性化関数を用いる演算とを、連続する空間周波数領域での処理の中で行う。これにより、演算回数を大幅に削減できると言う上述した効果を、阻害する事なく確実に実現できる。
また、空間周波数領域において、複素畳み込み演算による演算後の信号に対して、非線形関数となる複素活性化関数をかける。このように、複素畳み込み演算と、複素活性化関数を用いる演算とを、連続する空間周波数領域での処理の中で行う。これにより、演算回数を大幅に削減できると言う上述した効果を、阻害する事なく確実に実現できる。
仮に、上記第1比較例で示したCNN内の畳み込み演算を、空間周波数領域での複素畳み込み演算に置き換え、その後、第1比較例で示したCNN内の活性化関数を用いる場合を考察し、第2比較例と称す。この第2比較例の場合、複素畳み込み演算後に逆フーリエ変換し、逆フーリエ変換の出力結果に対して活性化関数を用いる必要がある。即ち、複素畳み込み演算毎に、その前後にフーリエ変換と逆フーリエ変換とを繰り返し用いる必要があり、計算コストの大幅な低減化を阻害するものである。
この実施の形態では、複素畳み込み演算後に複素活性化関数を用いるため、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数を用いる演算とを、何度でも行う事ができる。これにより大幅な計算コスト低減が達成できる。
この実施の形態では、複素畳み込み演算後に複素活性化関数を用いるため、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数を用いる演算とを、何度でも行う事ができる。これにより大幅な計算コスト低減が達成できる。
図3は、この実施の形態による最も簡単なNNの構成例を示す図である。図3に示すように、NNは、入力層11から順に、フーリエ変換層12、振幅結合層13Aおよび位相結合層13Bから成り、複素畳み込み演算を行う結合層13、複素活性化関数fを用いた演算を行う複素活性化層14、逆フーリエ変換層15、出力層16および出力17を備えて構成される。図4は、図3の部分詳細図であり、各層で生成される信号を併せて示す。
このNNは、2次元画像を入力信号20とし、入力層11は、入力信号20をNNに入力する。フーリエ変換層12は、空間領域の入力信号20をフーリエ変換し、空間周波数領域の信号である第1振幅信号21rと第1位相信号21θとを出力する。この場合、高速フーリエ変換を用いる。
このNNは、2次元画像を入力信号20とし、入力層11は、入力信号20をNNに入力する。フーリエ変換層12は、空間領域の入力信号20をフーリエ変換し、空間周波数領域の信号である第1振幅信号21rと第1位相信号21θとを出力する。この場合、高速フーリエ変換を用いる。
振幅結合層13Aは、訓練によって行列内の値を更新する第1重み行列W1を有し、第1重み行列W1を第1振幅信号21rにかけて第2振幅信号22rを出力する。位相結合層13Bは、訓練によって行列内の値を更新する第2重み行列W2を有し、第2重み行列W2を第1位相信号21θにかけて第2位相信号22θを出力する。
複素活性化層14は、空間周波数領域における複素活性化関数fを用いて、第2振幅信号22rおよび第2位相信号22θの内、少なくとも第2振幅信号22rを更新する。この実施の形態では、第2位相信号22θを用いて第2振幅信号22rのみを更新して第3振幅信号23rとして出力すると共に、第2位相信号22θは更新せずに出力する。
複素活性化層14は、空間周波数領域における複素活性化関数fを用いて、第2振幅信号22rおよび第2位相信号22θの内、少なくとも第2振幅信号22rを更新する。この実施の形態では、第2位相信号22θを用いて第2振幅信号22rのみを更新して第3振幅信号23rとして出力すると共に、第2位相信号22θは更新せずに出力する。
逆フーリエ変換層15は、第3振幅信号23rと第2位相信号22θとを組み合わせて逆フーリエ変換して、空間領域の信号25を生成する。この場合、高速逆フーリエ変換を用いる。
そして、出力層16は、逆フーリエ変換層15からの信号25を所望の形に変換し、出力7を得てNNから出力する。
そして、出力層16は、逆フーリエ変換層15からの信号25を所望の形に変換し、出力7を得てNNから出力する。
なお、図3および図4では、フーリエ変換層12と逆フーリエ変換層15との間に、複素畳み込み演算を行う結合層13と複素活性化関数fを用いた演算を行う複素活性化層14とを、それぞれ1つとして示したが、通常、それぞれ複数回有するものである。
また、第1重み行列W1の行の数は、第1振幅信号21rである振幅行列の列の数と同じであり、第2重み行列W2の行の数は、第1位相信号21θである位相行列の列の数と同じである。また、第1重み行列W1および第2重み行列W2の列の数には制約が無い。
また、この実施の形態では、高速フーリエ変換と高速逆フーリエ変換とを用いるため、振幅行列および位相行列は、2のべき乗の行列である必要がある。このため、振幅結合層13Aおよび位相結合層13Bでは、振幅行列、位相信号と同じ大きさの行列を出力する第1重み行列W1と第2重み行列W2とが用いられる。
また、第1重み行列W1の行の数は、第1振幅信号21rである振幅行列の列の数と同じであり、第2重み行列W2の行の数は、第1位相信号21θである位相行列の列の数と同じである。また、第1重み行列W1および第2重み行列W2の列の数には制約が無い。
また、この実施の形態では、高速フーリエ変換と高速逆フーリエ変換とを用いるため、振幅行列および位相行列は、2のべき乗の行列である必要がある。このため、振幅結合層13Aおよび位相結合層13Bでは、振幅行列、位相信号と同じ大きさの行列を出力する第1重み行列W1と第2重み行列W2とが用いられる。
<入力データ>
入力データには、音波または可視光を含む電磁波を受信するセンサ信号、熱または振動を取得するセンサ信号、あるいはハードウェア100内で演算されて出力された信号、あるいはセンサ信号と演算結果との両方を融合した信号を用いる。音波に関しては、マイクまたは超音波センサで受信した信号を用いる。電磁波を収集するセンサは、可視光を収集するカメラ、赤外線または紫外線を収集するカメラ、光量センサ、近傍界アンテナ、遠方界アンテナ、磁気センサ、電界/磁界センサ、電流センサ、電圧センサ、あるいは放射線センサで受信した信号を用いる。その他にも加速度センサ、温度センサ、湿度センサ、ガスセンサ、距離センサ、圧力センサ、加速度センサ、あるいはジャイロ等の振動センサを用いても良い。
入力データには、音波または可視光を含む電磁波を受信するセンサ信号、熱または振動を取得するセンサ信号、あるいはハードウェア100内で演算されて出力された信号、あるいはセンサ信号と演算結果との両方を融合した信号を用いる。音波に関しては、マイクまたは超音波センサで受信した信号を用いる。電磁波を収集するセンサは、可視光を収集するカメラ、赤外線または紫外線を収集するカメラ、光量センサ、近傍界アンテナ、遠方界アンテナ、磁気センサ、電界/磁界センサ、電流センサ、電圧センサ、あるいは放射線センサで受信した信号を用いる。その他にも加速度センサ、温度センサ、湿度センサ、ガスセンサ、距離センサ、圧力センサ、加速度センサ、あるいはジャイロ等の振動センサを用いても良い。
また、センサ信号は必ずしも同時刻に全てのデータを取得する必要はなく、随時、データを取得後に、処理を行うことで一つの入力データとして扱っても良い。また、接触してセンシングするセンサであっても、非接触でセンシングするセンサであっても構わない。さらに、可視光のカメラの信号と、赤外線カメラ等の信号とを組み合わせた信号を入力データとして用いても構わない。例えば、アクティブフェイズドアレイアンテナまたはレーザ光を使って、遠方の風の状況を測定する装置により、空間内の電磁波または風を高速にスキャンし、2次元以上の画像として入力データを得る事もできる。
また、入力データとなるデータは単体である必要はなく、2つ以上のデータを組合せて用いても良い。その際は、この実施の形態で示す複素活性化関数を用いたNNと、従来のパーセプトロンとを組合せて学習することにより、所望の学習を行うことができる。
また、入力データとなるデータは単体である必要はなく、2つ以上のデータを組合せて用いても良い。その際は、この実施の形態で示す複素活性化関数を用いたNNと、従来のパーセプトロンとを組合せて学習することにより、所望の学習を行うことができる。
この実施の形態によるハードウェア100は、例えば可視光で撮影するカメラから得られる対象物に関する入力信号に対して処理を行い、出力層から出力信号を出す。出力信号は、入力信号を分類したもの、回帰分析した推定量、クラスタリング、または多変量解析の結果とする。出力信号の種類は、入力信号に関連付ける正解ラベルが付けられたデータ(教師データ)によって決められる。
例えば、画像の入力信号を10通りに分類するハードウェア100においては、学習時において入力画像と正解ラベルが1対1で対応する形で関連付けられたデータを教師データとして学習させる。学習によって得られたパラメータ(NNの層を構成する重み行列の各要素)に対して、カメラによって撮影された信号と学習済みのパラメータを演算させ、分類に対する出力信号を得る。
例えば、画像の入力信号を10通りに分類するハードウェア100においては、学習時において入力画像と正解ラベルが1対1で対応する形で関連付けられたデータを教師データとして学習させる。学習によって得られたパラメータ(NNの層を構成する重み行列の各要素)に対して、カメラによって撮影された信号と学習済みのパラメータを演算させ、分類に対する出力信号を得る。
また、画像の入力信号から回帰信号を出力する処理について考察する。例えば、画像の場面による安全性を0点から100点までのアナログ信号に分類する。この場合、1つの画像に対して0点から100点までの1つの実数を正解ラベルとして与える。その画像と正解ラベルとの組み合わせを複数用意して、学習データとする。そして、学習結果として、NN内の層のパラメータを決定する。そして、カメラから得られる画像を入力信号として、上記パラメータを演算することで、出力信号として回帰信号を得る。
上記説明は、可視光となる周波数帯で撮影するカメラをセンサとしたものであるが、赤外線、紫外線、あるいは赤外線よりも低周波数の電磁波を受信するアンテナなどのセンサにおいても、センサ信号に対して分類あるいは回帰等の正解ラベルが与えられれば、同様の処理を行うことができる。
また、上記説明では、教師あり学習について説明したが、正解ラベルがない教師なし学習においても同様である。
また、上記説明では、教師あり学習について説明したが、正解ラベルがない教師なし学習においても同様である。
教師なし学習の一例として自己符号化器について、以下に説明する。自己符号化器は、NNによって教師なし学習を行う様に構成された情報処理装置である。自己符号化器では、入力を学習時のデータとして用い、そのデータを表す特徴、すなわちNNの層における行列の各要素を抽出することを目的とする。そのため、NNの出力層では入力層と同じ信号を出力することを目的にし、入力層と出力層との間の隠れ層の行列の大きさを小さくする。このように、小さな行列を通っても入力層と出力層との結果を等しくすることができれば、入力信号はファイルサイズを小さくできる。これを次元圧縮と呼ぶ。
この自己符号化器においても、上述した同様にカメラからの撮影画像を入力信号とする。この際、正解ラベルは不要であり、カメラの出力を自己符号化器に入力していくことで学習を行う。
この自己符号化器においても、上述した同様にカメラからの撮影画像を入力信号とする。この際、正解ラベルは不要であり、カメラの出力を自己符号化器に入力していくことで学習を行う。
ハードウェア100内で演算されて出力された信号を入力信号とする場合は、コンピュータ支援設計ツール(CAD)、あるいは、電磁界、熱または応力等のシミュレータ、その他、コンピュータゲームのような環境を模擬するシミュレータを用いた演算であっても良い。
また、センサ信号と演算結果との両方を融合した入力信号については、センサ信号をシミュレータ等に入力して得られた信号を入力信号とする。また、シミュレータの出力に基づいて、センサの種類あるいは位置情報を適宜変更して得られた信号を入力信号としても良い。
また、センサ信号と演算結果との両方を融合した入力信号については、センサ信号をシミュレータ等に入力して得られた信号を入力信号とする。また、シミュレータの出力に基づいて、センサの種類あるいは位置情報を適宜変更して得られた信号を入力信号としても良い。
さらに、CADデータに基づいて、製造またはシミュレーションして得られた物理信号を正解ラベルとすること、あるいは正解ラベルを人為的に変更することも、この実施の形態に適用できる。CADデータに基づいて計算される物理信号としては、例えば、電磁波による電磁界分布、電流、電圧、熱等を含む。電磁波に関しては、電磁界シミュレーションの入力をCADデータ(2次元または3次元画像)とし、正解ラベルを、シミュレーション結果であるSパラメータ(Scattering parameters)、空間上のある位置での電界/磁界の振幅値、電圧/電流、あるいはポインティング・ベクトルなどとする。このとき、Sパラメータおよび電界/磁界の振幅は周波数依存性を持つため、これらの場合は、入力画像1つに対して、複数のデータを正解ラベルとして持つ。
上述したCADおよびシミュレータによる入力信号は、1次元以上の入力画像を持つ。時系列データのように1次元のデータであっても、横軸を時間、縦軸を周波数、各時間/各周波数での振幅をフーリエ変換の出力の振幅とするスペクトログラムとすることで2次元のデータとして扱うこともできる。このようにスペクトログラムを作成する際のフーリエ変換は、時間毎にフーリエ変換を行う短時間フーリエ変換を用いる。なお、この実施の形態では簡単のため2次元データを用いて説明する。
この実施の形態では、グレースケールの画像を想定するが、カラー画像の場合には、RGBの場合には、Red、Green、Blueに入力画像を分離して、入力画像よりも1次元高い画像にする。この次元をチャネルと呼び、RGBの場合には3チャネルとなる。また、CMYKの場合には、Cyan、Magenta、Yellow、Key plateの4チャネルとなる。
複数のチャネルを入力とする場合においては、一般的にはカーネルを用いた畳み込み演算によって4チャネルを1チャネルに変換する。この実施の形態では、フーリエ変換層12の前段に畳み込み層を1層設ける方法、各チャネルに対してフーリエ変換を行い、全結合層によって1チャネルに変換する方法、あるいは単に各チャネルに事前に重み付けを行い、入力層11に入れる入力信号20を1チャネルにする方法を用いる事ができる。
複数のチャネルを入力とする場合においては、一般的にはカーネルを用いた畳み込み演算によって4チャネルを1チャネルに変換する。この実施の形態では、フーリエ変換層12の前段に畳み込み層を1層設ける方法、各チャネルに対してフーリエ変換を行い、全結合層によって1チャネルに変換する方法、あるいは単に各チャネルに事前に重み付けを行い、入力層11に入れる入力信号20を1チャネルにする方法を用いる事ができる。
入力層11は、NNへの入力信号20である入力データを記憶し、NNの上位層に渡す。
この実施の形態では、NNの性能評価に一般的に用いられているMNIST(Mixed National Institute of Standards and Technology database)を用いた学習結果を示す。MNISTは、縦×横が32×32のグレースケールの画像であって、60000の学習用データと、学習には使わない10000のテスト用のデータとを有する。
この実施の形態では、NNの性能評価に一般的に用いられているMNIST(Mixed National Institute of Standards and Technology database)を用いた学習結果を示す。MNISTは、縦×横が32×32のグレースケールの画像であって、60000の学習用データと、学習には使わない10000のテスト用のデータとを有する。
<フーリエ変換層、逆フーリエ変換層>
フーリエ変換を行うフーリエ変換層12について、以下に説明する。なお、逆フーリエ変換は、フーリエ変換の逆変換であるため、逆フーリエ変換および逆フーリエ変換層15についての詳細は省略する。
フーリエ変換においては、その性質上、フーリエ変換に入力した2次元画像が縦横に無限に接続された2次元平面になっていることを前提に変換を行う。
入力画像を縦横に直接接続した場合は、画像の端部の画像が接続される線上で不連続になり、本来の入力画像が持っていない周波数成分が発生することがある。そのため、通常のフーリエ変換では画像の縦横にそれぞれ窓関数をかけ、端部を0に近づけた信号をフーリエ変換する。
フーリエ変換を行うフーリエ変換層12について、以下に説明する。なお、逆フーリエ変換は、フーリエ変換の逆変換であるため、逆フーリエ変換および逆フーリエ変換層15についての詳細は省略する。
フーリエ変換においては、その性質上、フーリエ変換に入力した2次元画像が縦横に無限に接続された2次元平面になっていることを前提に変換を行う。
入力画像を縦横に直接接続した場合は、画像の端部の画像が接続される線上で不連続になり、本来の入力画像が持っていない周波数成分が発生することがある。そのため、通常のフーリエ変換では画像の縦横にそれぞれ窓関数をかけ、端部を0に近づけた信号をフーリエ変換する。
このような窓関数を用いる手法では、CNNによって抽出したい重要な情報が、画像端部にあると、その情報が失われてしまう。そこで、図5に示すように、フーリエ変換前の入力画像に対して、1つの画像の縦横、対角に対称な画像を配置する手法を用いる。
入力画像の横軸をx軸、縦軸をy軸とすると、入力画像のx軸成分の端部に、y軸と平行な境界線lyと線対称な画像を配置すると共に、入力画像のy軸成分の端部に、x軸と平行な境界線lxと線対称な画像を配置する。さらに、入力画像に対して対角の位置には、2つの境界線lx、lyの交点に対して点対称、即ち、180度回転した回転対称な画像を配置する。
入力画像の横軸をx軸、縦軸をy軸とすると、入力画像のx軸成分の端部に、y軸と平行な境界線lyと線対称な画像を配置すると共に、入力画像のy軸成分の端部に、x軸と平行な境界線lxと線対称な画像を配置する。さらに、入力画像に対して対角の位置には、2つの境界線lx、lyの交点に対して点対称、即ち、180度回転した回転対称な画像を配置する。
このように1つの画像の縦横、対角に対称な画像を配置した計4枚の画像で構成された画像をフーリエ変換することで、窓関数を用いることなく、本来の入力画像が持っていない周波数成分が発生する事を抑止して演算することができる。
この実施の形態では、フーリエ変換に高速フーリエ変換を用いることを前提としているため、入力画像の縦横の大きさは2のべき乗、すなわち偶数になる。1つの画像の縦横、対角に対称な画像を配置する上記手法では、4枚の画像で構成した画像の縦横も偶数になると共に、2のべき乗の大きさを持つため、高速フーリエ変換を用いることができる。
この実施の形態では、フーリエ変換に高速フーリエ変換を用いることを前提としているため、入力画像の縦横の大きさは2のべき乗、すなわち偶数になる。1つの画像の縦横、対角に対称な画像を配置する上記手法では、4枚の画像で構成した画像の縦横も偶数になると共に、2のべき乗の大きさを持つため、高速フーリエ変換を用いることができる。
但し、この手法を用いると入力画像が大きくなるため高速フーリエ変換の処理が大きくなる。そのため、MNISTの画像など、画像の端部に情報がなく、画像を縦横にそのまま接続しても不連続が発生しない場合には適用しない。
また、逆フーリエ変換においても、逆フーリエ変換する前に、同様の処理をしても良い。
また、逆フーリエ変換においても、逆フーリエ変換する前に、同様の処理をしても良い。
フーリエ変換は、空間領域の信号から空間周波数領域の信号への変換である。空間領域の信号を空間信号、フーリエ変換した後の空間周波数領域の信号を空間周波数信号と呼ぶ。
上述したように、空間信号の畳み込み演算は、空間周波数信号に対しては行列の掛け算となる。この掛け算は具体的にはアダマール積であり、以下の数式で表される。但し、Fをフーリエ変換、*を畳み込み演算、◎をアダマール積とする。
F[k*u]=F[k]◎F[u]
上述したように、空間信号の畳み込み演算は、空間周波数信号に対しては行列の掛け算となる。この掛け算は具体的にはアダマール積であり、以下の数式で表される。但し、Fをフーリエ変換、*を畳み込み演算、◎をアダマール積とする。
F[k*u]=F[k]◎F[u]
m×nの大きさを持つ空間領域の信号a(s,t)のフーリエ変換は、以下の式(4)で表される。この式は、離散フーリエ変換と呼ばれる。このとき、jは複素数、eはネイピア数、πは円周率を示す。
フーリエ変換には高速フーリエ変換(FFT)を用いる。基数2のFFTは、N点の信号を半分ずつに分割していくことから、基数2の時間間引きしたフーリエ変換と考えることもできる。
nを2次元画像の大きさとすると、通常のフーリエ変換の計算オーダはO(n3)で、畳み込み演算の計算オーダも、同様にO(n3)である。なお、O( )は計算の回数の概算値を示すものである。
高速フーリエ変換の計算オーダはO(n2・log2n)であり、高速フーリエ変換と高速逆フーリエ変換(IFFT)とを合わせた計算オーダはO(2n2・log2n)となる。また、結合層13での演算である上述した複素畳み込み演算の計算オーダはO(n2)であり、他の計算オーダO(n3)、O(n2・log2n)に比べて充分小さく無視できる。
nを2次元画像の大きさとすると、通常のフーリエ変換の計算オーダはO(n3)で、畳み込み演算の計算オーダも、同様にO(n3)である。なお、O( )は計算の回数の概算値を示すものである。
高速フーリエ変換の計算オーダはO(n2・log2n)であり、高速フーリエ変換と高速逆フーリエ変換(IFFT)とを合わせた計算オーダはO(2n2・log2n)となる。また、結合層13での演算である上述した複素畳み込み演算の計算オーダはO(n2)であり、他の計算オーダO(n3)、O(n2・log2n)に比べて充分小さく無視できる。
このため、従来のCNNの計算オーダがO(n3)に対し、この実施の形態によるNNの計算オーダはO(2n2・log2n)であり、計算量が低減され高速化できる。
上述したように、1つのCNNにおいて、通常、畳み込み層2は複数あり、畳み込み層2の数をmとすると、CNNの計算オーダは、O(m・n3)となる。また、上述した第2比較例の場合では、畳み込み演算の代わりに複素畳み込み演算を行うが、複素畳み込み演算毎に、その前後にフーリエ変換と逆フーリエ変換とを繰り返し用いるため、高速フーリエ変換と高速逆フーリエ変換とを用いると、計算オーダは、O(2m・n2・log2n)となる。なお、第2比較例における複素畳み込み演算の回数は、CNN内の畳み込み層2の数αと等しい。
上述したように、1つのCNNにおいて、通常、畳み込み層2は複数あり、畳み込み層2の数をmとすると、CNNの計算オーダは、O(m・n3)となる。また、上述した第2比較例の場合では、畳み込み演算の代わりに複素畳み込み演算を行うが、複素畳み込み演算毎に、その前後にフーリエ変換と逆フーリエ変換とを繰り返し用いるため、高速フーリエ変換と高速逆フーリエ変換とを用いると、計算オーダは、O(2m・n2・log2n)となる。なお、第2比較例における複素畳み込み演算の回数は、CNN内の畳み込み層2の数αと等しい。
この実施の形態によるNNの計算オーダは、結合層13の数に対応する複素畳み込み演算の回数に拘わらず、O(2n2・log2n)であるのに対し、第1比較例であるCNN、および上記第2比較例では、畳み込み演算または複素畳み込み演算の回数mが増加する毎に、計算量が急激に増加する。
n=64で(64×64)程度の比較的小さい画像の場合、例えばm=10とすると、畳み込み演算を用いたCNNでは、計算オーダは、O(m・n3)=O(2.6×106)となり、上記第2比較例の場合では、計算オーダは、O(2m・n2・log2n)=O(4.9×106)となる。これに対して、この実施の形態によるNNの計算オーダは、O(2n2・log2n)=O(4.9×105)であり、10倍程度の計算量低減および高速化ができる。
n=1024で(1024×1024)のように、比較的大きい画像の場合、m=10の場合、畳み込み演算を用いたCNNでは、計算オーダは、O(m・n3)=O(1.0×1010)となり、上記第2比較例の場合では、計算オーダは、O(2m・n2・log2n)=O(2.1×108)となる。これに対して、この実施の形態によるNNの計算オーダは、O(2n2・log2n)=O(2.1×107)である。即ち、この実施の形態によるNNでは、上記第2比較例と比べると10倍の計算量低減であり、畳み込み演算を用いた第1比較例のCNNと比べると、3桁程度の計算量低減となる。計算量は計算時間と直結するため、例えば、CNNで1ヶ月かかる計算が、この実施の形態によるNNでは90分程度で計算できることを意味する。
このように、この実施の形態では、畳み込み演算に対応する複素畳み込み演算の回数が多いほど、また、画像が大きくなるにつれて計算量低減の効果が大きくなる。
このように、この実施の形態では、畳み込み演算に対応する複素畳み込み演算の回数が多いほど、また、画像が大きくなるにつれて計算量低減の効果が大きくなる。
CNNでは、畳み込み層2が数回から数10回積み重ねて使われることが多く、この実施の形態のNNを用いる事により、大幅に計算量を低減でき高速化が図れる。例えば、近年のスマートフォンにおいては画素数が5000万画素(すなわち7000×7000の行列を出力)以上のもの、カメラにおいては1億画素(10000×10000の行列を出力)以上のものもある。そのような大きな画像に対して、画素数を落とさず、即ち画像に含まれる情報を劣化させずにCNNの畳み込み演算を行うのは、計算量を考慮すると困難であったが、この実施の形態によるNNを用いる事で可能になる。
このように、この実施の形態によるNNによると、計算量を低減して高速に演算できると共に、演算の信頼性向上も図れる。
このように、この実施の形態によるNNによると、計算量を低減して高速に演算できると共に、演算の信頼性向上も図れる。
高速フーリエ変換は、2のべき乗の信号のみ用いる、また2次元画像の場合には、2のべき乗に2を掛け算した画像のみを、例えばバタフライ演算を用いて高速に算出する。一般的な信号は、2のべき乗の大きさの行列ではないため、入力信号に対して、2のべき乗の大きさになるように0埋めの処理を行う。これにより、全ての信号に対して高速フーリエ変換を用いることができる。高速逆フーリエ変換に対しても同様である。
また、フーリエ変換層12を通して得られた第1振幅信号21r、第1位相信号21θに対して、データの中心部に低周波成分が集中するように画像の順番を入れ替える周波数シフト演算を行う。これにより、行列の中心部に低周波成分、周辺部に高周波成分が集まる。このような周波数シフト演算は、低周波信号に特徴量を含んでいる信号が多いために用いられることが多い。この実施の形態によるNNでは、画像の端部の処理は不連続性が生じて、誤差原因に繋がりやすいため、上記周波数シフト演算はさらに効果的である。数学的には、周波数シフト演算による結果への影響はない。
なお、フーリエ変換層12でのフーリエ変換は、振幅と位相、または実部と虚部の組み合わせに分離することができるが、後段の複素活性化層14での演算のために、振幅と位相とに分離して第1振幅信号21rおよび第1位相信号21θを生成する。このとき、振幅は0以上の実数になる。一方、位相は-π以上π未満の実数になるようにする。また、フーリエ変換の際に、フーリエ変換層12の入力信号と出力信号が同じ大きさの行列になるように、上述したパディングを行い、通常、ゼロパディングを行う。
また、フーリエ変換、および逆フーリエ変換は係数等が異なる数通りの手法が知られており、いずれの手法を用いても良い。
但し、手法によっては結果に差が生じることがある。それは、フーリエ変換の入力と出力との関係において、空間領域が持つ全エネルギ(体積)と空間周波数領域が持つ全エネルギとが異なるためである。即ち、フーリエ変換した後、逆フーリエ変換すると入力前の信号と出力された信号との間に差異が生じることがある。学習と推論を、同じ隠れ層を持つNNで行う場合は、ほぼ問題にならないが、データよってはパーセバルの等式(またはレイリーのエネルギ定理)に従い、空間領域が持つ全エネルギと空間周波数領域が持つ全エネルギとを等しくする演算を行っても良い。また、学習と推論とで用いるハードウェア100が異なる場合、あるいは丸め誤差が問題となる場合に、パーセバルの等式を用いると良い。これは、逆フーリエ変換においても同様である。
但し、手法によっては結果に差が生じることがある。それは、フーリエ変換の入力と出力との関係において、空間領域が持つ全エネルギ(体積)と空間周波数領域が持つ全エネルギとが異なるためである。即ち、フーリエ変換した後、逆フーリエ変換すると入力前の信号と出力された信号との間に差異が生じることがある。学習と推論を、同じ隠れ層を持つNNで行う場合は、ほぼ問題にならないが、データよってはパーセバルの等式(またはレイリーのエネルギ定理)に従い、空間領域が持つ全エネルギと空間周波数領域が持つ全エネルギとを等しくする演算を行っても良い。また、学習と推論とで用いるハードウェア100が異なる場合、あるいは丸め誤差が問題となる場合に、パーセバルの等式を用いると良い。これは、逆フーリエ変換においても同様である。
<結合層>
空間領域における畳み込み層2の代わりに、この実施の形態では、空間周波数領域において結合層13を用いる。結合層13は、全結合層または疎結合層を用いる。特に、入力層11に近い層に関しては、全結合層、上位層の出力層16に近い層においては、疎結合層を用いることで、過学習を防止することができる。なお、全結合層を構成する行列においては、すべての重み行列の要素を更新するが、疎結合層を構成する行列においては、確率的に更新しない要素を持つ。
空間領域における畳み込み層2の代わりに、この実施の形態では、空間周波数領域において結合層13を用いる。結合層13は、全結合層または疎結合層を用いる。特に、入力層11に近い層に関しては、全結合層、上位層の出力層16に近い層においては、疎結合層を用いることで、過学習を防止することができる。なお、全結合層を構成する行列においては、すべての重み行列の要素を更新するが、疎結合層を構成する行列においては、確率的に更新しない要素を持つ。
全結合層は結合する層間の重み行列をWとし、xを入力行列、uを出力行列、bをバイアスとなるベクトルとすると、
u=Wx+b
で表現される演算を行う。
特に出力層16に近い箇所においては、バイアスベクトルをゼロベクトルとしても良い。Wおよびbの初期値は、通常、疑似乱数値を用いる。また、Xavierの初期値あるいはHeの初期値と呼ばれる行列を、初期値に用いても良く、学習が速く進むことが知られている。これについては、空間信号の場合と同様であり、説明を省略する。
u=Wx+b
で表現される演算を行う。
特に出力層16に近い箇所においては、バイアスベクトルをゼロベクトルとしても良い。Wおよびbの初期値は、通常、疑似乱数値を用いる。また、Xavierの初期値あるいはHeの初期値と呼ばれる行列を、初期値に用いても良く、学習が速く進むことが知られている。これについては、空間信号の場合と同様であり、説明を省略する。
結合層13は、振幅結合層13Aおよび位相結合層13Bから成る。フーリエ変換層12に入力された空間信号は、フーリエ変換によって空間周波数信号である第1振幅信号21rと第1位相信号21θとに分離される。そして、第1振幅信号21rは振幅結合層13Aに入力され、第1位相信号21θは位相結合層13Bに入力されて、それぞれに、上記重み行列となる第1、第2重み行列W1、W2を掛け、第2振幅信号22rと第2位相信号22θとが出力される。
即ち、振幅結合層13Aでは、第1振幅信号21rに第1重み行列W1を掛けて第2振幅信号22rを出力する。また、位相結合層13Bでは、第1位相信号21θに第2重み行列W2を掛けて第2位相信号22θを出力する。
即ち、振幅結合層13Aでは、第1振幅信号21rに第1重み行列W1を掛けて第2振幅信号22rを出力する。また、位相結合層13Bでは、第1位相信号21θに第2重み行列W2を掛けて第2位相信号22θを出力する。
第1重み行列W1および第2重み行列W2の各初期値は、疑似乱数値、あるいは上述した他の初期値を持つ。
そして、振幅結合層13Aおよび位相結合層13Bでは、第1重み行列W1と第2重み行列W2とのそれぞれに対して、誤差逆伝搬法によって、入力と出力との関係が密接になるように行列内の値を更新する。即ち、第1重み行列W1と第2重み行列W2とは、訓練によって行列内の値が更新される。
第1振幅信号21rとなる振幅行列(入力行列)xに対して、第1重み行列W1は、正の実数のみを持つものとする。振幅行列xは正の実数であるため、(W1)xの行列の要素に対して絶対値|(W1)x|に変換しても良いが、この場合、第1重み行列W1に、正の実数のみとする制約を設けて学習させる。
制約を設けることで学習時の探索範囲を小さくでき、演算回数の低減が図れる。また、各要素に対して絶対値変換の演算を不要にして学習の高速化が図れる。
そして、振幅結合層13Aおよび位相結合層13Bでは、第1重み行列W1と第2重み行列W2とのそれぞれに対して、誤差逆伝搬法によって、入力と出力との関係が密接になるように行列内の値を更新する。即ち、第1重み行列W1と第2重み行列W2とは、訓練によって行列内の値が更新される。
第1振幅信号21rとなる振幅行列(入力行列)xに対して、第1重み行列W1は、正の実数のみを持つものとする。振幅行列xは正の実数であるため、(W1)xの行列の要素に対して絶対値|(W1)x|に変換しても良いが、この場合、第1重み行列W1に、正の実数のみとする制約を設けて学習させる。
制約を設けることで学習時の探索範囲を小さくでき、演算回数の低減が図れる。また、各要素に対して絶対値変換の演算を不要にして学習の高速化が図れる。
また、第1位相信号21θとなる位相行列(入力行列)xに対しては、第2重み行列W2に制約はない。位相にラジアンを用いる場合には、0以上、2π未満の値、または-π以上、π未満の値となるように、(W2)xの行列に対して、2πの剰余演算を行う。但し、後段の複素活性化層14で、三角関数を位相行列に施す複素活性化関数fを用いる場合には、剰余演算を行う必要はない。
なお、180/πをラジアンにかけることで算出される角度の単位としての度を、位相に用いても良く、この場合は360°の剰余演算を行う。
なお、180/πをラジアンにかけることで算出される角度の単位としての度を、位相に用いても良く、この場合は360°の剰余演算を行う。
<複素活性化層>
複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して空間周波数領域における活性化関数である複素活性化関数fを用いて演算する。この場合、複素活性化関数fを用いた演算により、第2振幅信号22rは更新されて第3振幅信号23として出力され、第2位相信号22θはそのまま出力される。
複素活性化層14では、第2位相信号22θを構成する位相行列内の各点iにおける位相θ(i)に対する複素活性化関数fの応答によって、第2振幅信号22rを構成する振幅行列内の前記点iと同位置の点における振幅r(i)の値を更新する。
複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して空間周波数領域における活性化関数である複素活性化関数fを用いて演算する。この場合、複素活性化関数fを用いた演算により、第2振幅信号22rは更新されて第3振幅信号23として出力され、第2位相信号22θはそのまま出力される。
複素活性化層14では、第2位相信号22θを構成する位相行列内の各点iにおける位相θ(i)に対する複素活性化関数fの応答によって、第2振幅信号22rを構成する振幅行列内の前記点iと同位置の点における振幅r(i)の値を更新する。
図6は、複素活性化関数fを用いて振幅r(i)の値を更新する動作を説明する図である。位相行列(第2位相信号22θ)内の点iの位置を(xi,yi)として、点iにおける要素である位相θ(xi,yi)に対して複素活性化関数fの値を演算し、同じ周波数にある振幅行列(第2振幅信号22r)における、上記位相行列内の点iと同位置(xi,yi)の要素である振幅r(xi,yi)を書き換える。なお、書き換え後の振幅行列は第3振幅信号23rとなる。
空間周波数領域での活性化関数である複素活性化関数fについて以下に説明する。
複素活性化関数fは、空間領域での活性化関数と同様、非線形関数を用いる。非線形関数とは、kを任意の定数とし、x,yを任意の変数とするとき、以下の線形関数gの定義
g(x+y)=g(x)+g(y)
g(k・x)=k・g(x)
のどちらか一方、または双方を満たさない関数として定義できる。
複素活性化関数fは、空間領域での活性化関数と同様、非線形関数を用いる。非線形関数とは、kを任意の定数とし、x,yを任意の変数とするとき、以下の線形関数gの定義
g(x+y)=g(x)+g(y)
g(k・x)=k・g(x)
のどちらか一方、または双方を満たさない関数として定義できる。
空間領域での活性化関数の一例としてロジスティック関数、双曲線正接関数がある。このような非線形関数をかけることによって、順伝搬と逆伝搬時に差異が生じ、これが線形関数だけでは表せない関数、すなわち重み付けを生み出すことになる。
この実施の形態における複素活性化関数fは、この非線形関数を、フーリエ変換後の空間周波数信号に対して用いる為の関数である。
この実施の形態における複素活性化関数fは、この非線形関数を、フーリエ変換後の空間周波数信号に対して用いる為の関数である。
複素活性化関数fは、空間信号に対する従来の活性化関数とは異なる。また、活性化関数を含めてフーリエ変換しても複素活性化関数fを作ることはできない。これは、以下の式からも明らかである。なお、gは空間領域での活性化関数である。
F[g(x)]≠F[g]◎F[x]
即ち、空間領域での値xに対して活性化関数gを施したものをフーリエ変換する結果と、活性化関数gをフーリエ変換すると共に、値xをフーリエ変換し、両者をかけ合わせたものは異なる。
例えば、Relu関数をフーリエ変換すると、Relu関数はx≧0の領域で単調増加であるからフーリエ変換は発散する。そのため、Relu関数をフーリエ変換したものは、空間周波数領域での活性化関数にはならない。
F[g(x)]≠F[g]◎F[x]
即ち、空間領域での値xに対して活性化関数gを施したものをフーリエ変換する結果と、活性化関数gをフーリエ変換すると共に、値xをフーリエ変換し、両者をかけ合わせたものは異なる。
例えば、Relu関数をフーリエ変換すると、Relu関数はx≧0の領域で単調増加であるからフーリエ変換は発散する。そのため、Relu関数をフーリエ変換したものは、空間周波数領域での活性化関数にはならない。
この実施の形態では、Relu関数の特徴に基づく複素活性化関数fを、複素Relu関数と称して用いる。
空間領域でのRelu関数は、入力値が正または0の場合は入力値と同じ値を、入力値が負の場合は0を、演算する。複素Relu関数は、振幅r、または位相θの一方のみで決まるものではなく、三角関数を位相成分に施す関数を用いて、振幅成分を更新する。この場合、三角関数を位相成分に施し、さらに振幅成分を乗じた関数を用いて、実軸成分、虚軸成分のいずれか一方、例えば実軸成分が正または0の場合に、振幅成分を更新せず同じ値とし、負の場合に、その関数による演算値に更新する。
空間領域でのRelu関数は、入力値が正または0の場合は入力値と同じ値を、入力値が負の場合は0を、演算する。複素Relu関数は、振幅r、または位相θの一方のみで決まるものではなく、三角関数を位相成分に施す関数を用いて、振幅成分を更新する。この場合、三角関数を位相成分に施し、さらに振幅成分を乗じた関数を用いて、実軸成分、虚軸成分のいずれか一方、例えば実軸成分が正または0の場合に、振幅成分を更新せず同じ値とし、負の場合に、その関数による演算値に更新する。
即ち、複素活性化関数fは、第2位相信号22θを構成する行列内の各点iにおける位相θ(i)に対して、実軸成分、虚軸成分のいずれか一方が正または0の場合と、負の場合とで異なる応答によって、第2振幅信号22rを構成する行列内の前記点iと同位置の点における振幅r(i)の値を更新する。
複素Relu関数を用いた複素活性化関数fの例を以下の式(5)に示す。
複素Relu関数を用いた複素活性化関数fの例を以下の式(5)に示す。
この場合、θ=-π/2、またはπ/2の時、r|sinθ|=rであるため、関数の連続性が確保される。
図7は、上記式(5)を図示したものである。図7に示すように、半径rの円に対して、実軸u、虚軸jvとすると、u成分が負の場合に、u成分をu=0、jv成分を|jv|に変換する。このように、実軸uの成分が負の場合に、振幅rをrsinθの絶対値で置き換える事と同値である。
さらに、複素Relu関数を用いた複素活性化関数fの別例を以下の式(6)に示す。
図7は、上記式(5)を図示したものである。図7に示すように、半径rの円に対して、実軸u、虚軸jvとすると、u成分が負の場合に、u成分をu=0、jv成分を|jv|に変換する。このように、実軸uの成分が負の場合に、振幅rをrsinθの絶対値で置き換える事と同値である。
さらに、複素Relu関数を用いた複素活性化関数fの別例を以下の式(6)に示す。
この場合も、関数の連続性が確保される。
図8は、上記式(6)を図示したものである。この場合、虚軸jv成分が負の場合に、振幅rをrcosθの絶対値で置き換える事と同値である。これは、上記式(5)のθに対して(θ+(π/2))を代入したものと同値であるが、プログラム作成の容易性、比較回数の少なさ、すなわち計算の高速化の点で上記式(5)で示す複素Relu関数による複素活性化関数fよりも勝っている。また、θの比較回数も低減できるため、計算量を削減できる。
図8は、上記式(6)を図示したものである。この場合、虚軸jv成分が負の場合に、振幅rをrcosθの絶対値で置き換える事と同値である。これは、上記式(5)のθに対して(θ+(π/2))を代入したものと同値であるが、プログラム作成の容易性、比較回数の少なさ、すなわち計算の高速化の点で上記式(5)で示す複素Relu関数による複素活性化関数fよりも勝っている。また、θの比較回数も低減できるため、計算量を削減できる。
上記2式(5)、(6)の変形は、θに対するrの連続性が確保されている限り、様々な組み合わせを取ることができる。例えば、θ→(θ/2)として、θの領域を変更すること、あるいは|sinθ|の代わりに双曲線正割sechθとすることなどが考えられる。
さらに、複素活性化関数fを以下の式(7)で定義しても良い。なお、kをlより大きい実数とする。
さらに、複素活性化関数fを以下の式(7)で定義しても良い。なお、kをlより大きい実数とする。
以上のように、複素活性化関数fは、位相θにより振幅rの取り得る値が2以上に分割されていれば良く、θの条件が3つ以上に分割されていても良い。
なお、複素活性化関数fが連続関数であるものを説明したが、不連続関数を用いることもできる。
従来、空間領域において、活性化関数に不連続関数であるステップ関数を用いる事もあった。ステップ関数は以下の式(8)で表される。あるいは、x=0での特異性を考慮して式(9)のように表現することもある。
従来、空間領域において、活性化関数に不連続関数であるステップ関数を用いる事もあった。ステップ関数は以下の式(8)で表される。あるいは、x=0での特異性を考慮して式(9)のように表現することもある。
空間周波数領域においても、複素活性化関数fの連続性は不可欠な条件ではなく、非線形関数であって、かつ、位相θの値によって算出される出力によって振幅rを書き換える構造となっていれば良い。
連続性のない複素Relu関数を用いた複素活性化関数fは、例えば、以下の式(10)で表される。
連続性のない複素Relu関数を用いた複素活性化関数fは、例えば、以下の式(10)で表される。
上記式(10)は、上記式(6)の絶対値演算を除いたものであり、連続性は失われ、空間領域のRelu関数とは対応しないものであるが、絶対値演算を減らせる分、NNの学習時間を短縮することができる。
図9は、上記式(10)を図示したものである。図9に示すように、半径rの円に対して、虚軸jvの成分が負の場合に、jv=0である実軸uに写像したものである。
さらに、連続性のない複素活性化関数fの別例を以下の式(11)に示す。
図9は、上記式(10)を図示したものである。図9に示すように、半径rの円に対して、虚軸jvの成分が負の場合に、jv=0である実軸uに写像したものである。
さらに、連続性のない複素活性化関数fの別例を以下の式(11)に示す。
上記式(11)は、上記式(5)の絶対値演算を除いたものである。この場合も、連続性は失われ、空間領域のRelu関数とは対応しないものであるが、絶対値演算を減らせる分、NNの学習時間を短縮することができる。
図10は、上記式(11)を図示したものである。図10に示すように、半径rの円に対して、実軸uの成分が負の場合に、u=0である虚軸jvに写像したものである。
図10は、上記式(11)を図示したものである。図10に示すように、半径rの円に対して、実軸uの成分が負の場合に、u=0である虚軸jvに写像したものである。
<訓練>
NNの重み行列W(第1重み行列W1、第2重み行列W2)を更新する際には、NNの出力と教師データとの差である損失Lを最小にするために、重み行列Wの各要素の最適値を検索する。誤差逆伝搬法は、最適値を探すための手段であり、勾配降下法を基本とするものである。
勾配降下法においては、重み行列W、学習係数α、および、推論結果と正解ラベルの差の成分である損失Lを用いて、以下の式(12)に基づいて、重み行列Wを更新していく。
NNの重み行列W(第1重み行列W1、第2重み行列W2)を更新する際には、NNの出力と教師データとの差である損失Lを最小にするために、重み行列Wの各要素の最適値を検索する。誤差逆伝搬法は、最適値を探すための手段であり、勾配降下法を基本とするものである。
勾配降下法においては、重み行列W、学習係数α、および、推論結果と正解ラベルの差の成分である損失Lを用いて、以下の式(12)に基づいて、重み行列Wを更新していく。
そして、勾配降下法において算出したい∂L/∂W(損失Lを重み行列Wで偏微分した演算)を、順伝搬と逆伝搬とを繰り返す誤差逆伝搬法によって算出し、重み行列Wを更新する。入力層から出力層への処理を順伝搬、出力層から入力層への処理を逆伝搬と呼ぶ。
この重み行列Wの更新を行う演算が学習であり、学習させるプロセスが訓練である。訓練が完了するとNNの学習が完了したことになる。なお、訓練に用いるデータを訓練データと呼ぶが、学習データと同じ意味で用いる。
訓練データを用いて訓練している際に、学習前に定めておいた所望の性能を満足した時点で学習をとめる、早期終了を用いても良く、これは過学習防止および学習時間の短縮につながる。この点については、この実施の形態と空間領域で行われるCNNの技術との差異はない。
この重み行列Wの更新を行う演算が学習であり、学習させるプロセスが訓練である。訓練が完了するとNNの学習が完了したことになる。なお、訓練に用いるデータを訓練データと呼ぶが、学習データと同じ意味で用いる。
訓練データを用いて訓練している際に、学習前に定めておいた所望の性能を満足した時点で学習をとめる、早期終了を用いても良く、これは過学習防止および学習時間の短縮につながる。この点については、この実施の形態と空間領域で行われるCNNの技術との差異はない。
勾配降下法について、以下に説明する。
勾配降下法とは、目的関数を最小化(一般的には最適化)する際に用いる解の探索に用いるアルゴリズムである。特に、NNでは、上記式(12)で示した確率的勾配降下法が用いられ、これは最小化する目的関数が微分可能である際に一般的に用いる方法である。このとき、学習係数αは勾配降下法にとって重要なパラメータとなり、AdaGrad法、Adam法、モメンタム法など様々な方法が知られている。これらの方法は、空間周波数領域での学習においても、空間領域での学習と同様であり、詳細な手法については省略する。
勾配降下法とは、目的関数を最小化(一般的には最適化)する際に用いる解の探索に用いるアルゴリズムである。特に、NNでは、上記式(12)で示した確率的勾配降下法が用いられ、これは最小化する目的関数が微分可能である際に一般的に用いる方法である。このとき、学習係数αは勾配降下法にとって重要なパラメータとなり、AdaGrad法、Adam法、モメンタム法など様々な方法が知られている。これらの方法は、空間周波数領域での学習においても、空間領域での学習と同様であり、詳細な手法については省略する。
但し、一般的に非線形関数の最小化手法に関しては、目的関数の2次微分が可能な場合、ニュートン法あるいはその派生方法である準ニュートン法の方が解への収束が早い。また、上記のAdaGrad法、Adam法、モメンタム法などの勾配降下法は、学習係数αの値に収束速度および精度が大きく依存することから、ニュートン法あるいは準ニュートン法を用いる方が望ましい。複雑なNNを用いる場合には、2次微分を求めることが困難な場合が多いため、現実的には勾配降下法が用いられる。
上記のように目的関数の最適化を行うことで入力データと正解ラベルとの間を密接に関連付ける重み行列Wを構築することができる。しかし、学習の目的は学習に用いた訓練データ(入力データと正解ラベル)ではなく、学習後に与えられる未知のサンプルに対して正しい推論を行えるようにすることにある。前者の訓練データに対する誤差を訓練誤差、後者の未知のデータに対する誤差の期待値を汎化誤差と呼ぶ。この汎化誤差を小さくすることが、学習の目的であるものの、訓練誤差のように学習時に計算することはできない。
そこで、訓練データとは別のサンプル集合を準備し、これに対して訓練誤差と同じ方法で計算される誤差を汎化誤差の目安とする方法が用いられる。例えば、MNISTのデータを用いる場合においては、全データの70%~80%を訓練データ、残りの20%~30%のデータをテストデータとして、学習後にテストデータを用いてテストデータに対する誤差であるテスト誤差を演算する。具体的には訓練データが60000、テストデータが10000としている。重み行列Wの更新に伴うテスト誤差の変化を学習曲線と呼ぶ。
訓練を重ねるごとにテスト誤差が小さくなることが期待されるが、訓練データに対する誤差が小さくなっても、テストデータに対する誤差が大きくなることがある。これは、過学習(または過剰適応)と呼ばれ、NNの訓練の際の問題となる現象である。これを防ぐ方法として、過学習防止に向けた重み減衰(または、荷重減衰)とドロップアウトが知られている。この実施の形態においても、これらの方法を、CNNの場合と同様に適宜使用する。
重み減衰は、重み行列の値の大きさが大きいほど0に近づいていくように重みを更新する手法である。これにより重みの発散を緩和させる。重み減衰にも正則化手法など様々な方法が知られており、空間領域と同様、空間周波数領域に適用する場合における制約はない。
一方、ドロップアウトは、ドロップアウト層において振幅行列の成分を確率的に0にすることで、過学習を防止できる。通常は、確率として20%~50%を用いる。
一方、ドロップアウトは、ドロップアウト層において振幅行列の成分を確率的に0にすることで、過学習を防止できる。通常は、確率として20%~50%を用いる。
また、学習データが少ない場合においても過学習を起こしやすくなる。この場合、データ水増しを行う。具体的には一つの画像の平行移動、左右の鏡像反転、回転等の幾何学的な変形、その他にも濃淡、色彩の変動、ランダムノイズを一律に加える。このようにデータを増やすことで過学習が防止しやすくなり、この実施の形態においても同様である。
さらに全結合層の代わりに疎結合層を用いる方法、あるいは早期終了、計算結果等の有効数字を下げることを隠れ層に持たせることにより、過学習を防止しても構わない。
さらに全結合層の代わりに疎結合層を用いる方法、あるいは早期終了、計算結果等の有効数字を下げることを隠れ層に持たせることにより、過学習を防止しても構わない。
次に、誤差逆伝搬法について説明する。
順伝搬は、学習済みの重み行列を用いて結果を推定する推論の際に用いられる。また、訓練によって重み行列を更新する際には、順伝搬と逆伝搬とを複数回行う。
順伝搬は、隠れ層の行列あるいは関数を随時入力データに施す。一方、逆伝搬は、順伝搬によって得られた推論値と、正解ラベルの差を誤差とする誤差情報を直後の上位層から直前の下位層に逆伝搬させる。
順伝搬は、学習済みの重み行列を用いて結果を推定する推論の際に用いられる。また、訓練によって重み行列を更新する際には、順伝搬と逆伝搬とを複数回行う。
順伝搬は、隠れ層の行列あるいは関数を随時入力データに施す。一方、逆伝搬は、順伝搬によって得られた推論値と、正解ラベルの差を誤差とする誤差情報を直後の上位層から直前の下位層に逆伝搬させる。
逆伝搬は、順伝搬の微分の連鎖率で表記できるが、数式の算出が煩雑で計算量が多くなるため、誤差逆伝搬法が用いられる。誤差逆伝搬法は、出力層から始まる誤差成分を上位層から下位層に向かって伝搬させ、順伝搬時の処理の微分項を、誤差成分に演算することによって入力層まで伝搬させる。その誤差成分が小さくなるように、重み行列の値を更新する。
この実施の形態で用いる複素活性化関数fについても、微分が必要となる。
複素活性化関数fが、上記式(5)で示す場合、即ち、以下の複素Relu関数に対して、
この実施の形態で用いる複素活性化関数fについても、微分が必要となる。
複素活性化関数fが、上記式(5)で示す場合、即ち、以下の複素Relu関数に対して、
y=f(r,θ)とすると、偏微分項∂r、∂θは、以下の式(14)で表される。
このとき、∂rは上位層から下位層へのrの更新式、∂θは上位層から下位層へのθの更新式となる。そして、第1振幅信号21rにかける第1重み行列W1、および第1位相信号21θにかける第2重み行列W2の各要素に対して代入による更新を施す。
また、複素活性化関数fが、上記式(11)で示す場合、即ち、以下の複素Relu関数に対して、
また、複素活性化関数fが、上記式(11)で示す場合、即ち、以下の複素Relu関数に対して、
y=f(r,θ)とすると、偏微分項∂r、∂θは、以下の式(16)で表される。
また、複素活性化関数fが、上記式(6)で示す場合、即ち、以下の複素Relu関数に対して、
y=f(r,θ)とすると、偏微分項∂r、∂θは、以下の式(18)で表される。
また、複素活性化関数fが、上記式(10)で示す場合、即ち、以下の複素Relu関数に対して、
y=f(r,θ)とすると、偏微分項∂r、∂θは、以下の式(20)で表される。
複素活性化関数fが複雑になるに従い、微分を数式として表現し難くなる。そのような場合は、微小量Δθだけθを動かしたときの変化量Δy、つまり(Δy/Δθ)を微分とする数値微分を用いる。微分が定式化されていれば代入で計算が終了するのに対し、数値微分は引き算あるいは割り算の必要があるため計算量が多くなるが、任意の複素活性化関数fに対して微分を求めることができる。
上述したように、誤差逆伝搬法において、損失Lを逆伝搬させる∂L/∂Wを算出する。ここで、行列を行列に変換する2つの関数を定義し、中間値Y、Zとする。入力された行列と出力する行列の大きさは、等しいものとする。そして、入力X、重み行列W、中間値Y、Zは行列、損失Lはスカラとして考える。
誤差逆伝搬法において、∂L/∂Wを算出する際、∂L/∂Z、∂L/∂Y、∂L/∂X、∂L/∂Wを算出することになるが、このとき、それぞれの行列の大きさは、Z、Y、X、Wと等しくなる。∂L/∂Z、∂L/∂Y、∂L/∂X、∂L/∂Wがそれぞれ一意に決まるので、これを算出するために、一般的な偏微分の演算である連鎖律を用いる。
この誤差逆伝搬法は、数式をプログラムに落とし込む際に大変都合が良いため、訓練の際には広く用いられる。
誤差逆伝搬法において、∂L/∂Wを算出する際、∂L/∂Z、∂L/∂Y、∂L/∂X、∂L/∂Wを算出することになるが、このとき、それぞれの行列の大きさは、Z、Y、X、Wと等しくなる。∂L/∂Z、∂L/∂Y、∂L/∂X、∂L/∂Wがそれぞれ一意に決まるので、これを算出するために、一般的な偏微分の演算である連鎖律を用いる。
この誤差逆伝搬法は、数式をプログラムに落とし込む際に大変都合が良いため、訓練の際には広く用いられる。
<出力層>
出力層16について、以下に説明する。出力層16では、所望の出力7を得るために信号を変形させる関数である活性化関数が用いられる。この実施の形態では、出力層16で用いる活性化関数を出力活性化関数と呼ぶ。
また教師あり学習においては、入力データと正解ラベルのペアが与えられているため、出力活性化関数の出力結果と教師データとの近さの尺度を測る必要がある。この尺度のことをこの実施の形態では誤差関数と呼ぶ。
出力層16について、以下に説明する。出力層16では、所望の出力7を得るために信号を変形させる関数である活性化関数が用いられる。この実施の形態では、出力層16で用いる活性化関数を出力活性化関数と呼ぶ。
また教師あり学習においては、入力データと正解ラベルのペアが与えられているため、出力活性化関数の出力結果と教師データとの近さの尺度を測る必要がある。この尺度のことをこの実施の形態では誤差関数と呼ぶ。
一般的な教師あり学習において、NNに求められる出力は大きく分けて3つある。一つ目が回帰分析、二つ目が多値分類、三つ目が二値分類である。以下、順番に説明する。
回帰分析とは出力に連続値をとる関数を対象に、訓練データを再現するような関数を定める手法である。この場合、NNの出力活性化関数に、その値域が、目標とする関数の値域と一致するものを選ぶ。値域が-1以上1以下の場合には、双極線正接関数y=tanh(x)が適している。値域が-∞から∞の間である場合には、恒等写像y=xを選ぶ場合が多い。また、出力活性化関数の出力結果と正解ラベルとの差に関しては、2乗誤差を用いる。逆伝搬の微分を考慮すると、一般的には2乗誤差に対して1/2をかけたものを誤差関数に用いる。
回帰分析とは出力に連続値をとる関数を対象に、訓練データを再現するような関数を定める手法である。この場合、NNの出力活性化関数に、その値域が、目標とする関数の値域と一致するものを選ぶ。値域が-1以上1以下の場合には、双極線正接関数y=tanh(x)が適している。値域が-∞から∞の間である場合には、恒等写像y=xを選ぶ場合が多い。また、出力活性化関数の出力結果と正解ラベルとの差に関しては、2乗誤差を用いる。逆伝搬の微分を考慮すると、一般的には2乗誤差に対して1/2をかけたものを誤差関数に用いる。
次に、多値分類では、入力データに対して有限個のクラスに分類する。例えば、MNISTは多値分類問題であり、入力の0~9までの数字が書かれた手書き文字を10通りに分類する。このような多値分類に対しては、出力活性化関数はソフトマックス関数が用いられる。また、誤差関数には交差エントロピを用いる。ソフトマックス関数および交差エントロピに関しては、空間領域での手法と同様である。
次に、二値分類では、入力データを二種類に分類する。この場合、出力活性化関数にはロジスティック関数、誤差関数には最尤推定と同じ手法を用いる。ただし、二値分類も多値分類の一種と考え、多値分類と同様、出力活性化関数はソフトマックス関数、誤差関数には交差エントロピを用いても構わない。
上述したように、この実施の形態では、結合層13にて重み行列Wをかける複素畳み込み演算後に複素活性化関数fを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、結合層13および複素活性化層14での演算を何度でも行える。
図11は、結合層13および複素活性化層14を2層ずつ用いた場合のNNの構成例を示す図である。このようなNNを用いた場合の、テストデータに対する精度を、第1比較例、即ち、畳み込み層2を2層有するCNNの場合と共に図12に示す。
図11は、結合層13および複素活性化層14を2層ずつ用いた場合のNNの構成例を示す図である。このようなNNを用いた場合の、テストデータに対する精度を、第1比較例、即ち、畳み込み層2を2層有するCNNの場合と共に図12に示す。
この場合、MNISTを入力データとして手書き文字を10通りに分類させたときの、教師あり学習させた結果を、訓練回数(計算回数)に対する計算精度の推移で示した。
図12内の実線が、この実施の形態によるNNを用いた場合であり、点線が、第1比較例のCNNを用いた場合である。またこの場合、この実施の形態によるNNでは、上記式(6)で示した複素活性化関数fを用いた。
図12に示すように、この実施の形態によるNNでは、計算回数が1500回を超えるとテストデータに対して95%程度の精度で推論できる。第1比較例のCNNでは、97%程度の精度であるから、ほぼ同等な性能と言える。
図12内の実線が、この実施の形態によるNNを用いた場合であり、点線が、第1比較例のCNNを用いた場合である。またこの場合、この実施の形態によるNNでは、上記式(6)で示した複素活性化関数fを用いた。
図12に示すように、この実施の形態によるNNでは、計算回数が1500回を超えるとテストデータに対して95%程度の精度で推論できる。第1比較例のCNNでは、97%程度の精度であるから、ほぼ同等な性能と言える。
図13は、この実施の形態によるNNによる高速化効果を説明する図である。図13では、畳み込み層2を2層有するCNNによる第1比較例と、複素畳み込み演算を2回行い、各複素畳み込み演算の前後にフーリエ変換と逆フーリエ変換とを行う第2比較例と、この実施の形態によるNNとについて、計算速度の違いを示す。この場合、CPU演算による計算で、MNISTを用いた実際の計算、この場合、図12で示す計算回数2000回の計算を行う場合にかかった時間を示す。
なお、MNISTのデータとして、訓練データが60000、推論時のテストデータが10000とする。
なお、MNISTのデータとして、訓練データが60000、推論時のテストデータが10000とする。
MNISTは32×32の比較的小さな画像であるが、第1比較例の計算時間が260秒に対し、第2比較例では200秒、この実施の形態によるNNでは75秒であり、第1比較例と比べ約30%の時間であり、格段と高速化されることが分かる。
また、訓練データ数を少なくすること、あるいは、計算時間を要するフーリエ変換および逆フーリエ変換について、専用のICを用いることにより、マイコンなどの小さな処理装置でも層数の大きいNNの計算が可能になる。
また、訓練データ数を少なくすること、あるいは、計算時間を要するフーリエ変換および逆フーリエ変換について、専用のICを用いることにより、マイコンなどの小さな処理装置でも層数の大きいNNの計算が可能になる。
以上のように、この実施の形態によるNNでは、従来のCNNとほぼ同等の精度の演算が行える。また、大きな計算量を要した畳み込み演算を、1度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数fを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数fとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア100の構成にて、NNによる高い認識精度が得られる。
また、この実施の形態では、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、NNの詳細解析が可能になり、各層の解析結果からNNの構成が決定でき、高性能のNNが構築できる。
<活用例>
この実施の形態によると、主に2次元の画像を対象に、第1比較例のCNNに比べて高速に処理することができ、特に、畳み込み層2に相当する結合層13を複数持つNNでは、大きな効果を発揮する。画像認識においては、CMOS(Complementary Metal-Oxide-Semiconductor)などで取得したデータ以外にも、赤外線カメラ、紫外線カメラ、あるいはフェーズドアレイアンテナ等で電磁波を可視化した映像を入力データに用いることができる。
この実施の形態によると、主に2次元の画像を対象に、第1比較例のCNNに比べて高速に処理することができ、特に、畳み込み層2に相当する結合層13を複数持つNNでは、大きな効果を発揮する。画像認識においては、CMOS(Complementary Metal-Oxide-Semiconductor)などで取得したデータ以外にも、赤外線カメラ、紫外線カメラ、あるいはフェーズドアレイアンテナ等で電磁波を可視化した映像を入力データに用いることができる。
また、応力、熱伝導、電場、磁場、電磁波、圧電、音波、流体、光学、流体、構造等のシミュレータを用い、2次元以上のCAD等を利用してGUIで設計した解析モデルを入力データとし、該シミュレータでの解析結果を正解ラベルとするデータを用いた学習を行ってもよい。
さらに、上述したように、1次元のデータであってもスペクトログラムに変換することで2次元のデータとみなすことができるため、この実施の形態による手法を用いることができる。
さらに、上述したように、1次元のデータであってもスペクトログラムに変換することで2次元のデータとみなすことができるため、この実施の形態による手法を用いることができる。
また、この実施の形態によるNNは、一般に知られているConvolutional LSTM(Long short-term memory)のように、畳み込み演算を用いて動画のような時間変化がある入力データを処理する情報処理装置に適用することもできる。
また、スペクトログラムに変換することにより、RNN(Recurrent Neural Networks)全般にも、畳み込み演算を要する箇所に、この実施の形態による手法を適用することができる。
また、スペクトログラムに変換することにより、RNN(Recurrent Neural Networks)全般にも、畳み込み演算を要する箇所に、この実施の形態による手法を適用することができる。
また、GAN(Generative Adversarial Network)と呼ばれる、生成ネットワーク(generator)と識別ネットワーク(discriminator)との2つのNNを同時に学習させていくNNを用いて、訓練データあるいはテストデータに含まれない画像を生成する手法にも、この実施の形態を適用できる。このGANは、通常、多数の畳み込み層を重ねることで生成ネットワークと識別ネットワークとを構成するが、2つのNNを同時に訓練することから畳み込み層の数が増え、計算量が膨大になるが、この実施の形態の手法を用いる事で、大幅な計算コストの削減が図れる。
GANのような計算には、通常、数10枚から数万枚のGPUボード(GPUの演算素子が実装されたプリント基板)を用いて学習するため、大規模な計算機が不可欠であったが、この実施の形態を適用することにより、生成する画像の大きさにもよるが、3~8桁程度の高速化が期待できる。条件によっては、GPUなどの並列処理機構を持たないハードウェアでも学習が可能になる。
GANによれば、入力データは2次元以上の画像であっても構わないため、例えばシミュレーションデータを入力し、所望の設計を行うことも可能である。
GANによれば、入力データは2次元以上の画像であっても構わないため、例えばシミュレーションデータを入力し、所望の設計を行うことも可能である。
さらに、公知のConditional GANのように、学習を終えた重み関数を用いて、使用者が条件を定め、出力を限定させることもできる。この場合、GANにより所望の設計が可能になり、この実施の形態を適用することにより、その設計を学習させる時間、および推論に要する時間を大幅に削減できる。
さらにまた、強化学習においても、2次元の画像を入力データとして学習を進める手法が多く用いられており、その多くは複数の畳み込み層を有する。特に、強化学習は正解ラベルを与えるのではなく、エージェントと呼ばれるNNが試行錯誤を繰り返す中で学習させるものであるため、計算量が膨大になる。このような強化学習に対しても、この実施の形態を適用することで、NNを効率的に学習させることができる。
また、教師なし学習である自己符号化器を多層化したstacked auto encoder(SAE)、制約ボルツマンマシンを多層化したdeep Boltzmann machine(DBM)等についても同様である。
自己符号化器は、例えば2次元の画像を入力層に入力すると同じ画像が出力されるように学習させるNNであり、入力層と出力層との間には畳み込み層を含む、様々な演算処理があり、必要な情報が欠落しないように、演算処理が行われる。
教師なし学習においても、畳み込み演算は不可欠な技術であるため、この実施の形態を適用することにより、計算コストを大幅に低減させることができる。
自己符号化器は、例えば2次元の画像を入力層に入力すると同じ画像が出力されるように学習させるNNであり、入力層と出力層との間には畳み込み層を含む、様々な演算処理があり、必要な情報が欠落しないように、演算処理が行われる。
教師なし学習においても、畳み込み演算は不可欠な技術であるため、この実施の形態を適用することにより、計算コストを大幅に低減させることができる。
また、入力データは2次元とは限らず、3次元データを平面図の組み合わせ鳥瞰図、断面図、CADまたは3Dカメラ(ステレオカメラ)などの画像を3次元データとしてそのまま入力データとして用いても構わない。
実施の形態2.
実施の形態2では、上記実施の形態1で用いた複素Relu関数とは異なる複素活性化関数fを用いる。この実施の形態では、フーリエ変換層12において、0以上の実数である振幅成分と、-π以上π未満の実数である位相成分とに分解する。その他の構成は実施の形態1と同様である。
実施の形態2では、上記実施の形態1で用いた複素Relu関数とは異なる複素活性化関数fを用いる。この実施の形態では、フーリエ変換層12において、0以上の実数である振幅成分と、-π以上π未満の実数である位相成分とに分解する。その他の構成は実施の形態1と同様である。
この実施の形態2においても、上記実施の形態1と同様に、複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して複素活性化関数fを用いて演算し、第2振幅信号22rは更新されて第3振幅信号23rとして出力され、第2位相信号22θはそのまま出力される。
複素活性化層14では、第2位相信号22θを構成する位相行列内の各点iにおける位相θ(i)に対する複素活性化関数fの応答によって、第2振幅信号22rを構成する振幅行列内の前記点iと同位置の点における振幅r(i)の値を更新する。
複素活性化層14では、第2位相信号22θを構成する位相行列内の各点iにおける位相θ(i)に対する複素活性化関数fの応答によって、第2振幅信号22rを構成する振幅行列内の前記点iと同位置の点における振幅r(i)の値を更新する。
この実施の形態では、空間領域におけるロジスティック関数の特徴に基づく複素活性化関数fを、複素ロジスティック関数と称して用いる。
上記実施の形態1で用いた複素活性化関数fは、位相θ(i)の大きさに応じて異なる応答により振幅r(i)の値を更新するものであったが、この実施の形態2で用いる複素活性化関数fは、位相θ(i)の大きさによらず同じ演算式による一定の応答により振幅r(i)の値を更新する。
複素ロジスティック関数を用いた複素活性化関数fの例を以下の式(21)に示す。
上記実施の形態1で用いた複素活性化関数fは、位相θ(i)の大きさに応じて異なる応答により振幅r(i)の値を更新するものであったが、この実施の形態2で用いる複素活性化関数fは、位相θ(i)の大きさによらず同じ演算式による一定の応答により振幅r(i)の値を更新する。
複素ロジスティック関数を用いた複素活性化関数fの例を以下の式(21)に示す。
但し、kは1より大きい実数である。θが-π以上π未満で動くときに、複素活性化関数fの出力は0から1の間を動く。この出力で振幅rを置き換える。
なお、上記式(21)において、((k2-1)/2)は、複素活性化関数fの出力の最大値を1にするための定数であるため、必須ではない。このため、以下の式(22)に示す複素活性化関数fを用いても良い。この場合、複素活性化関数fの出力の最大値は、(2/(k2-1))となる。複素活性化関数fの最小値は0以上の実数となり、振幅成分を0以上の実数とする上記条件を満たす。
なお、上記式(21)において、((k2-1)/2)は、複素活性化関数fの出力の最大値を1にするための定数であるため、必須ではない。このため、以下の式(22)に示す複素活性化関数fを用いても良い。この場合、複素活性化関数fの出力の最大値は、(2/(k2-1))となる。複素活性化関数fの最小値は0以上の実数となり、振幅成分を0以上の実数とする上記条件を満たす。
また、複素ロジスティック関数を用いた複素活性化関数fの別例を以下の式(23)に示す。この複素活性化関数fは、θ=0、に対して対象な関数であり、出力の最小値は0、最大値は1になる。
さらに、複素活性化関数fの別例を以下の式(24)に示す。この複素活性化関数fは、ガウスの誤差関数を変形したものである。
このように、振幅rと位相θとの2つの入力信号に基づいて、空間周波数領域における2次元の複素活性化関数fを定義することにより、空間領域での活性化関数では表現できない活性化関数を定義できる。これにより、活性化関数の表現の自由度を向上させ、より汎用性の高い学習ができる。
損失を上位層である出力層から下位層である入力層に伝搬させる誤差逆伝搬法においては、この実施の形態で用いる複素活性化関数fについても、微分が必要となる。但し、上記のような複素ロジスティック関数の微分は難しい。そのような場合は、上述した数値微分を行うことで微分することが可能である。
この実施の形態2においても、上記実施の形態1と同様の効果が得られる。即ち、従来のCNNとほぼ同等の精度の演算が行える。また、大きな計算量を要した畳み込み演算を、1度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数fを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数fとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア100の構成にて、NNによる高い認識精度が得られる。
また、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、NNの詳細解析が可能になり、各層の解析結果からNNの構成が決定でき、高性能のNNが構築できる。
なお、複素ロジスティック関数の計算速度がNNにおける律速条件となる際には、実施の形態1で示した複素Relu関数のように、微分が理論的に計算できて、計算量が少ない複素活性化関数fを用いるのが望ましい。
実施の形態3.
実施の形態3では、上記実施の形態1、2とは異なる複素活性化関数fを用いる。その他の構成は、上記実施の形態1と同様である。
この実施の形態3においても、上記実施の形態1と同様に、複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して複素活性化関数fを用いて演算することにより、第2振幅信号22rおよび第2位相信号22θを更新して出力する。
なお、第2振幅信号22rおよび第2位相信号22θは、同じ手法で同様に更新するが、第2位相信号22θをそのまま保持し、第2振幅信号22rのみを更新しても良い。
実施の形態3では、上記実施の形態1、2とは異なる複素活性化関数fを用いる。その他の構成は、上記実施の形態1と同様である。
この実施の形態3においても、上記実施の形態1と同様に、複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して複素活性化関数fを用いて演算することにより、第2振幅信号22rおよび第2位相信号22θを更新して出力する。
なお、第2振幅信号22rおよび第2位相信号22θは、同じ手法で同様に更新するが、第2位相信号22θをそのまま保持し、第2振幅信号22rのみを更新しても良い。
図14は、複素活性化関数fを用いて第2振幅信号22rおよび第2位相信号22θを更新する動作を説明する図である。
ここでは、簡単のために、結合層13で生成された第2振幅信号22rおよび第2位相信号22θは、それぞれ2次元の行列である振幅行列および位相行列とする。
振幅行列の各軸は周波数軸を示し、各要素は振幅の値を示す。複素活性化層14では、N、MをそれぞれN≧2、M≧1とし、周波数軸の成分、即ち周波数成分が1/N、各要素の振幅が1/Mである、縮小された微小行列Lrを生成する。この微小行列Lrを元の振幅行列に加算する。加算後に生成された行列を複素活性化関数fの出力(更新された振幅行列)とする。
ここでは、簡単のために、結合層13で生成された第2振幅信号22rおよび第2位相信号22θは、それぞれ2次元の行列である振幅行列および位相行列とする。
振幅行列の各軸は周波数軸を示し、各要素は振幅の値を示す。複素活性化層14では、N、MをそれぞれN≧2、M≧1とし、周波数軸の成分、即ち周波数成分が1/N、各要素の振幅が1/Mである、縮小された微小行列Lrを生成する。この微小行列Lrを元の振幅行列に加算する。加算後に生成された行列を複素活性化関数fの出力(更新された振幅行列)とする。
また、位相行列に対しても、同様に微小行列Lθを生成して加算する演算を行い、加算後に生成された行列を複素活性化関数fの出力(更新された位相行列)とする。
なお、この複素活性化関数fは、空間周波数領域での非線形関数となっている。
なお、この複素活性化関数fは、空間周波数領域での非線形関数となっている。
このような複素活性化関数fの演算により、入力された第2振幅信号22rおよび第2位相信号22θは、信号成分を、より低い周波数成分に効果的に集約させることができる。この複素活性化関数fを用いた後に、後述するプーリング層を用いると、プーリング層にて主要な情報の劣化を防ぎつつ、低い周波数成分に情報を集約させることができる。
なお、プーリング層は、複素活性化層14の後段に設けられて、電気工学におけるローパスフィルタ、より一般にはフィルタになるものである。
また、この実施の形態3による複素活性化関数fの演算は、上記実施の形態1または2で示した複素活性化関数fの演算よりも、演算時間を要するものであるが、情報を劣化させず、より高精度な計算ができる。
なお、プーリング層は、複素活性化層14の後段に設けられて、電気工学におけるローパスフィルタ、より一般にはフィルタになるものである。
また、この実施の形態3による複素活性化関数fの演算は、上記実施の形態1または2で示した複素活性化関数fの演算よりも、演算時間を要するものであるが、情報を劣化させず、より高精度な計算ができる。
この実施の形態3による複素活性化関数fの演算は、NNの学習において誤差逆伝播法と組み合わせると、上位層と下位層との間を複数回往復する際、各行列の要素ごとの演算になるため計算回数が膨大になる。そのため、N、Mをそれぞれ2のべき乗とし、微小行列Lr、Lθの生成にシフト演算を利用して計算を軽量化する手法が有効である。
シフト演算は10進数にする必要がなく、計算が得意な2ビットの演算になることから、ノイマン型コンピュータを使った演算においては計算コストが小さい。例えば、C言語のようなコンパイル言語においては、計算コストは1/10程度になる。1/2、1/4、1/8など、1/2のべき乗にする演算には右シフトのビット演算を行えばよい。
シフト演算は10進数にする必要がなく、計算が得意な2ビットの演算になることから、ノイマン型コンピュータを使った演算においては計算コストが小さい。例えば、C言語のようなコンパイル言語においては、計算コストは1/10程度になる。1/2、1/4、1/8など、1/2のべき乗にする演算には右シフトのビット演算を行えばよい。
具体的な演算例としてN=2、M=1の場合を、以下に説明する。
この場合、第2振幅信号22r、第2位相信号22θを形成する振幅行列、位相行列の各要素を1つずつ間引きする。その結果、各行列の行、及び列のサイズは1/2になり微小行列Lr、Lθとなる。サイズが小さくなった微小行列Lr、Lθに対して、高周波成分に0埋めをし、間引きをする前の振幅行列、位相行列と同じサイズに加工する。加工後の微小行列Lr、Lθを、間引き前の行列振幅行列、位相行列に足し合わせることにより、最も簡単な複素活性化関数fの出力信号を生成することができる。
この場合、第2振幅信号22r、第2位相信号22θを形成する振幅行列、位相行列の各要素を1つずつ間引きする。その結果、各行列の行、及び列のサイズは1/2になり微小行列Lr、Lθとなる。サイズが小さくなった微小行列Lr、Lθに対して、高周波成分に0埋めをし、間引きをする前の振幅行列、位相行列と同じサイズに加工する。加工後の微小行列Lr、Lθを、間引き前の行列振幅行列、位相行列に足し合わせることにより、最も簡単な複素活性化関数fの出力信号を生成することができる。
なお、微小行列Lr、Lθは、それぞれ複数個用いても良く、1/2だけでなく1/4、1/8等の微小行列Lr、Lθをさらに加算しても良い。
また、この実施の形態では離散信号を扱っているため、M=1以外の場合には端数が発生するが、その場合、端数を丸め込む方法、あるいは補間によって値を推定する方法を用いる。
この実施の形態3においても、上記実施の形態1と同様に、大きな計算量を要した畳み込み演算を、1度の行列演算による複素畳み込み演算に置き換えるため、計算量を大きく削減できる。さらに、複素活性化関数fを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、その間に連続する空間周波数領域での処理の中で、複素畳み込み演算と複素活性化関数fとを何度でも用いる事ができ、フーリエ変換および逆フーリエ変換に要する計算量も削減できる。このため、大きな画像に対しても高速処理が可能になり、低コストで簡略なハードウェア100の構成にて、NNによる高い認識精度が得られる。
また、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となり、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、NNの詳細解析が可能になり、各層の解析結果からNNの構成が決定でき、高性能のNNが構築できる。
実施の形態4.
実施の形態4では、上記実施の形態1~3とは異なる複素活性化関数fを用いる。その他の構成は、上記実施の形態1と同様である。
この実施の形態4においても、上記実施の形態1と同様に、複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して複素活性化関数fを用いて演算することにより、第2振幅信号22rおよび第2位相信号22θを更新して出力する。
なお、第2振幅信号22rおよび第2位相信号22θは、同じ手法で同様に更新するが、第2位相信号22θをそのまま保持し、第2振幅信号22rのみを更新しても良い。
実施の形態4では、上記実施の形態1~3とは異なる複素活性化関数fを用いる。その他の構成は、上記実施の形態1と同様である。
この実施の形態4においても、上記実施の形態1と同様に、複素活性化層14には、振幅結合層13Aおよび位相結合層13Bから出力される第2振幅信号22rと第2位相信号22θとが入力され、これらの信号に対して複素活性化関数fを用いて演算することにより、第2振幅信号22rおよび第2位相信号22θを更新して出力する。
なお、第2振幅信号22rおよび第2位相信号22θは、同じ手法で同様に更新するが、第2位相信号22θをそのまま保持し、第2振幅信号22rのみを更新しても良い。
ところで、フーリエ変換においては、g、hを任意の関数とする時、以下の等式が成り立つ。但し、Fはフーリエ変換、*は畳み込み演算、◎はアダマール積である。
F[g◎h]=F[g]*F[h]
即ち、空間領域でのアダマール積は、空間周波数領域での畳み込みとなることを意味している。この時、F[g]を入力信号、F[h]をカーネルと考え、F[h]をカーネルとして入力信号F[g]に畳み込み演算することを、複素活性化関数fの演算として適用する。
F[g◎h]=F[g]*F[h]
即ち、空間領域でのアダマール積は、空間周波数領域での畳み込みとなることを意味している。この時、F[g]を入力信号、F[h]をカーネルと考え、F[h]をカーネルとして入力信号F[g]に畳み込み演算することを、複素活性化関数fの演算として適用する。
但し、空間周波数領域において任意のカーネルF[h]をF[g]にかけると、入力信号F[g]が持っている情報が劣化してしまう。すなわち、gを構成する支配的な周波数成分である、振幅が大きい周波数の情報を失うことになる。このため、カーネルF[h]の原点において、振幅(絶対値)が最大となる関数を選択することにより、情報の劣化を防止する。
このような関数の一例として、sinc関数がある。sinc関数はxを周波数とすると(sin(x)/x)で表され、x=0で最大値を取る。
このような関数の一例として、sinc関数がある。sinc関数はxを周波数とすると(sin(x)/x)で表され、x=0で最大値を取る。
このように、複素活性化関数fは、基準となる原点での値の絶対値が最大となる関数をカーネルF[h]として、入力信号(対象信号)に対して畳み込み演算を行うものである。これにより、空間領域の活性化関数と同等の精度を有する複素活性化関数fが得られる。
このF[h]を用いて、第2振幅信号22rに対して畳み込み演算を行うが、第2位相信号22θに対しても同様に畳み込み演算を行ってもよい。
また、カーネルF[h]の原点において、振幅が最大となる以外にも正負の両方の値を持つことが望ましい。即ち、カーネルF[h]の振幅0の軸を横切る関数になることが望ましい。これにより、畳み込み演算後の結果(F[g]*F[h])の振幅において、振幅0となる点が存在し、この振幅0の点がNNにおける情報となる。
このF[h]を用いて、第2振幅信号22rに対して畳み込み演算を行うが、第2位相信号22θに対しても同様に畳み込み演算を行ってもよい。
また、カーネルF[h]の原点において、振幅が最大となる以外にも正負の両方の値を持つことが望ましい。即ち、カーネルF[h]の振幅0の軸を横切る関数になることが望ましい。これにより、畳み込み演算後の結果(F[g]*F[h])の振幅において、振幅0となる点が存在し、この振幅0の点がNNにおける情報となる。
さらに、第2振幅信号22rの出力は正の実数である必要があるため、畳み込み演算後の出力(F[g]*F[h])に対して絶対値に変換することが望ましい。
また、上述したsinc関数の他、Relu関数の空間周波数領域でも計算することができる。しかし、一般的なRelu関数であるRelu(x)は、xに比例して大きくなるため、フーリエ変換の値が発散する。そのため、画像の軸方向の大きさ(画素数)をx0とすると、F[h]は、以下の式(25)で表すことができる。
この場合、誤差逆伝播法による計算を行う場合には、計算量が膨大となる。
その他、以下の式(26)に示すシグモイド関数は空間周波数領域では収束する関数となっている。
その他、以下の式(26)に示すシグモイド関数は空間周波数領域では収束する関数となっている。
このため、F[h]は、
F[h](x)=-jπ・csch(πx)
で算出される関数であっても良い。
また、csch(πx)はcosech(x)で表される関数であっても良い。但し、x=0で発散する関数となるため、実際の計算においては有限の値で丸め込む。
F[h](x)=-jπ・csch(πx)
で算出される関数であっても良い。
また、csch(πx)はcosech(x)で表される関数であっても良い。但し、x=0で発散する関数となるため、実際の計算においては有限の値で丸め込む。
この実施の形態4においても、複素活性化関数fを用いることにより、隠れ層におけるフーリエ変換と逆フーリエ変換とをそれぞれ1度実施すれば、フーリエ変換と逆フーリエ変換との間の各層の演算は、全て、連続する空間周波数領域内での空間周波数信号を扱う演算となる。このため、演算毎の入力信号と出力信号とから、各演算の物理的な機能を解析することが可能になる。これにより、NNの詳細解析が可能になり、各層の解析結果からNNの構成が決定でき、高性能のNNが構築できる。
そして、この実施の形態4では、複素活性化関数fは、空間周波数領域内でカーネルを用いて畳み込み演算を行うものである。このため、第1比較例のCNNと理論的に等価な演算をすることができ同等の精度が得られるが、計算速度の向上を図るものでは無い。
しかしながら、連続する空間周波数領域内での空間周波数信号を扱う演算で、CNNの手法を行っていることになり、従来手法であるCNNの詳細解析が可能になる。
しかしながら、連続する空間周波数領域内での空間周波数信号を扱う演算で、CNNの手法を行っていることになり、従来手法であるCNNの詳細解析が可能になる。
例えば、畳み込み演算(空間周波数領域ではアダマール積)はエッジ(物体と物体の境界線)の強調を担う。活性化関数(空間周波数領域では複素活性化関数)は非線形関数であると共に、入力信号とは異なる周波数成分発生(低周波帯域、高周波帯域ともに発生)を担う。後述するプーリング(空間周波数領域では複素プーリング)はローパスフィルタに代表されるフィルタの役割を担う。このように、各演算を明確に切り分けて解析でき、CNNを含むNNの発展に貢献できる。
NN各層における演算の解析について、より詳しく説明する。
空間領域での畳み込み演算では、入力画像の横軸をx軸、縦軸をy軸とする時、カーネルを例えばガウシアンのx軸方向に微分した2次元の信号とすると、このカーネルを入力画像に畳み込むことでy軸方向成分のエッジが強調された画像を出力することができる。同様に、ガウシアンを任意の方向で微分したカーネルを入力画像に畳み込むことで、入力画像のあらゆる方向の画像のエッジを抽出することができる。
空間領域での畳み込み演算では、入力画像の横軸をx軸、縦軸をy軸とする時、カーネルを例えばガウシアンのx軸方向に微分した2次元の信号とすると、このカーネルを入力画像に畳み込むことでy軸方向成分のエッジが強調された画像を出力することができる。同様に、ガウシアンを任意の方向で微分したカーネルを入力画像に畳み込むことで、入力画像のあらゆる方向の画像のエッジを抽出することができる。
CNNでは、訓練によって得られる複数のカーネルにより、様々な方向のエッジを抽出し、それらを合成することで入力画像を分析している。空間領域ではこのように複数回の演算が伴う畳み込み処理によって画像の特徴を抽出する。そして、これと同じ物理的な意味を持つ処理が、空間周波数領域では、カーネルを用いた畳み込み演算を用いない複素畳み込み演算により行うことができる。
次に、活性化関数(空間周波数領域では複素活性化関数)についての解析について説明する。
従来、空間領域の処理は脳の神経細胞の発火と似た構造を非線形関数で表現できることが、ネオコグニトロンあるいはCNNの研究を通して分かっている。
しかしながら、この実施の形態による、活性化関数の解析では、後述するプーリング(空間周波数領域では複素プーリング)の機能を併せて解析すると、深層学習における活性化関数の役割の中で最も重要な役割は、入力信号とは異なる周波数成分を発生させることにある、という結果を導くことができる。
従来、空間領域の処理は脳の神経細胞の発火と似た構造を非線形関数で表現できることが、ネオコグニトロンあるいはCNNの研究を通して分かっている。
しかしながら、この実施の形態による、活性化関数の解析では、後述するプーリング(空間周波数領域では複素プーリング)の機能を併せて解析すると、深層学習における活性化関数の役割の中で最も重要な役割は、入力信号とは異なる周波数成分を発生させることにある、という結果を導くことができる。
例えば、空間領域のRelu関数は、空間周波数領域では、半波整流を空間周波数領域で処理をすることに帰着できる。すなわち、2つ以上の異なる周期を持つ三角波(一般的な画像)に対する半波整流処理は、元の三角波が持つ周波数成分以外にも、直流成分に近い低周波成分にエネルギの一部が移行する。そのため、近似的に実施の形態3に示すように、信号の一部を低周波成分側に出力させる演算によっても同様の効果が得られることが分かる。
なお、この空間周波数領域での演算は、空間領域での演算と同じ結果とはならないが、演算結果の差は、複素畳み込み演算における訓練によって調整することが可能である。
なお、この空間周波数領域での演算は、空間領域での演算と同じ結果とはならないが、演算結果の差は、複素畳み込み演算における訓練によって調整することが可能である。
実施の形態5.
実施の形態5は、上記実施の形態1~4によるNNに、複素プーリング層を備えたものである。複素プーリング層18は、空間領域でのプーリング層4に対応する、空間周波数領域での層である。図15は、この実施の形態5によるNNの構成を示す図であり、上記実施の形態1で示した図4に対応する部分詳細図である。
上記実施の形態1と同様に、振幅結合層13Aは、第1重み行列W1を有し、第1重み行列W1を第1振幅信号21rにかけて第2振幅信号22rを出力する。位相結合層13Bは、第2重み行列W2を第1位相信号21θにかけて第2位相信号22θを出力する。
複素活性化層14は、複素活性化関数fを用いて、第2振幅信号22rおよび第2位相信号22θの内、第2振幅信号22rのみを更新して第3振幅信号23rとして出力すると共に、第2位相信号22θは更新せずに出力する。
実施の形態5は、上記実施の形態1~4によるNNに、複素プーリング層を備えたものである。複素プーリング層18は、空間領域でのプーリング層4に対応する、空間周波数領域での層である。図15は、この実施の形態5によるNNの構成を示す図であり、上記実施の形態1で示した図4に対応する部分詳細図である。
上記実施の形態1と同様に、振幅結合層13Aは、第1重み行列W1を有し、第1重み行列W1を第1振幅信号21rにかけて第2振幅信号22rを出力する。位相結合層13Bは、第2重み行列W2を第1位相信号21θにかけて第2位相信号22θを出力する。
複素活性化層14は、複素活性化関数fを用いて、第2振幅信号22rおよび第2位相信号22θの内、第2振幅信号22rのみを更新して第3振幅信号23rとして出力すると共に、第2位相信号22θは更新せずに出力する。
複素プーリング層18は、複素活性化層14の直後に設けられ、複素活性化層14で更新された信号に対して演算処理する。この場合、振幅成分のみ更新されているため、入力される第3振幅信号23rに対して演算処理して、振幅信号23raを出力する。
なお、上記実施の形態3、4に複素プーリング層18を設けた場合で、複素活性化層14が第2振幅信号22rおよび第2位相信号22θの双方を更新している場合には、更新された双方の信号に対して複素プーリング層18が演算処理する。
なお、上記実施の形態3、4に複素プーリング層18を設けた場合で、複素活性化層14が第2振幅信号22rおよび第2位相信号22θの双方を更新している場合には、更新された双方の信号に対して複素プーリング層18が演算処理する。
空間領域におけるプーリング層4の演算をプーリングと称し、空間周波数領域における複素プーリング層18の演算を複素プーリングと称す。
空間領域におけるプーリングは、畳み込み層2で抽出された特徴の位置の感度を低下させるもので、対象とする特徴量の画像内での位置が変化しても同一の特徴量を持つ画像と認識できるものである。これはすなわち画像の「ぼかし」を意味する。
空間周波数領域に「ぼかし」を適用するには、高周波成分を除去することで容易に得ることができる。高周波成分とは、隣り合うピクセルの要素が急激に変化するときに発生する成分であるため、空間周波数領域で高周波成分を除去することにより複素プーリングが得られる。
空間領域におけるプーリングは、畳み込み層2で抽出された特徴の位置の感度を低下させるもので、対象とする特徴量の画像内での位置が変化しても同一の特徴量を持つ画像と認識できるものである。これはすなわち画像の「ぼかし」を意味する。
空間周波数領域に「ぼかし」を適用するには、高周波成分を除去することで容易に得ることができる。高周波成分とは、隣り合うピクセルの要素が急激に変化するときに発生する成分であるため、空間周波数領域で高周波成分を除去することにより複素プーリングが得られる。
この複素プーリング層18での演算、即ち複素プーリングは、信号処理の分野におけるローパスフィルタに相当する。そして、複素プーリングを行う事により、入力画像の位置ずれ、および回転に対して強固な構造になると共に、NNの過学習を防止すると共に、計算精度が向上する。
一般に空間領域におけるプーリングは、S×T(S、Tは2以上の整数)の画像サイズ毎にマップを切り出し、その最大値を出力する最大値プーリング、あるいは平均値を出力する平均値プーリングが一般的に用いられる。その他、Lpプーリングなどが知られている。これらのプーリングの違いは、空間周波数領域ではローパスフィルタの形状の違いを示すものと考えることができる。
空間周波数領域において、行列の中心部に低周波成分、行列の周辺部に高周波成分とする周波数シフトを施した振幅信号と位相信号の行列を考える。これらの行列に対する複素プーリングに用いる関数は、2次元のガウシアンが望ましい。ガウシアンでは、フーリエ変換してもフィルタの形状が変わらないため、フーリエ変換の際に発生する高周波成分の発生を抑制するフィルタ演算が不要となるためである。
それ以外にもハン窓、ハミング窓、ハニング窓、ブラックマン窓、カイザー窓などの窓関数を各隠れ層の入力信号の次元にあわせて変形した窓関数を複素プーリングに用いても良い。但し、フラット・トップ窓のように負成分が発生する複素プーリングの関数を振幅信号に演算する場合においては、負成分が発生しないように演算結果に対して絶対値に変換する。この窓関数により、フーリエ変換逆フーリエ変換する際の不連続性も除去できるため、数値処理の影響で発生するノイズ成分も除去することができる。
さらに、単色、つまり直流に近い低周波成分によりオフセットされている情報を除去するハイパスフィルタを用いることで、背景成分などの単色情報を除去することができる。具体的には、周波数シフトした信号に対して、中心部の数画素分の信号を除去する。この場合、通常10%以下の中心部の画素を抑圧するハイパスフィルタを設ける。なお、この手法は、直流成分が重要なファクタであるデータに対しては使えない。
実際のNNの設計においては、上記ハイパスフィルタと上記ローパスフィルタとが組み合わされたバンドパスフィルタを用いるのが望ましい。
バンドパスフィルタの例として、David HubelとTorsten Wieselとによって示された三角関数とガウス関数との積で表される関数であるガボールフィルタを用いる方法がある。また、ローパスフィルタとハイパスフィルタとを組み合わせて、任意のバンドパスフィルタを用いても良い。
バンドパスフィルタの例として、David HubelとTorsten Wieselとによって示された三角関数とガウス関数との積で表される関数であるガボールフィルタを用いる方法がある。また、ローパスフィルタとハイパスフィルタとを組み合わせて、任意のバンドパスフィルタを用いても良い。
ところで、上記実施の形態3または4で示した複素活性化関数f、あるいはCNNで用いる活性化関数は、NNにとって特定の周波数よりも低い周波数成分を発生させる意味を持つ。
例えば、CNNで振幅がマイナスとなる場合、活性化関数(Relu関数)の出力が0となる。出力が0というのは、空間周波数領域では周波数0、すなわち直流成分を意味し、電気工学では半波整流になることを意味する。また、特定の周波数では、半波整流は直流成分から特定の周波数へ連続的に周波数が変化することになるため、活性化関数への入力信号が単一周波数であっても、出力信号は広帯域の周波数成分を持つものになる。
例えば、CNNで振幅がマイナスとなる場合、活性化関数(Relu関数)の出力が0となる。出力が0というのは、空間周波数領域では周波数0、すなわち直流成分を意味し、電気工学では半波整流になることを意味する。また、特定の周波数では、半波整流は直流成分から特定の周波数へ連続的に周波数が変化することになるため、活性化関数への入力信号が単一周波数であっても、出力信号は広帯域の周波数成分を持つものになる。
この実施の形態5では、複素活性化関数fの演算後に複素プーリング層18を設けることで、低い周波数成分にある主要な情報を、効果的に集約させることができる。
ここで述べる情報の集約とはローパスフィルタ(例えば、ガウシアンフィルタ)によって高周波成分が除去されたことを意味する。
ここで述べる情報の集約とはローパスフィルタ(例えば、ガウシアンフィルタ)によって高周波成分が除去されたことを意味する。
なお、隠れ層を多層化したNNにおいて、複素プーリング層18は、複素活性化層14の直後だけでなく、複素活性化層14の前段に設けるのも望ましい。
また、上記実施の形態4を適用すると、プーリング(空間周波数領域では複素プーリング)についても解析することができ、以下に説明する。
上述したように、空間領域におけるプーリングは大別して最大値プーリングと平均値プーリングがある。例えば2×2のビットで画像を切り取っていき、その2×2のビットの中で最大値、または平均値を出力する演算である。この演算はぼかしの効果がある。また、ぼかすことによって、入力画像の位置がずれたり、回転したりした場合でも同一の画像として認識できる効果を生むことができる。
上述したように、空間領域におけるプーリングは大別して最大値プーリングと平均値プーリングがある。例えば2×2のビットで画像を切り取っていき、その2×2のビットの中で最大値、または平均値を出力する演算である。この演算はぼかしの効果がある。また、ぼかすことによって、入力画像の位置がずれたり、回転したりした場合でも同一の画像として認識できる効果を生むことができる。
一方、上記実施の形態4を適用して空間周波数領域で複素プーリングを解析すると、プーリングの演算は、ローパスフィルタとなっていることが分かる。また、最大値プーリングおよび平均値プーリングは、フィルタのカットオフ周波数でのエッジの鋭さだけの違いであることが分かる。
このため、空間領域でのプーリングは、物理的に曖昧な意味を持つものであったが、空間周波数領域では明示的なフィルタとして複素プーリングを作用させることができる。これにより、複素プーリングは、空間領域でのフィルタよりも、推論における精度の高い深層学習モデルを構築することができる。更に、ローパスフィルタ以外にもDC成分と高周波成分だけを除去するバンドパスフィルタなど、任意のフィルタを構築することができるため、自由度の高い深層学習モデルを構築できる。
このため、空間領域でのプーリングは、物理的に曖昧な意味を持つものであったが、空間周波数領域では明示的なフィルタとして複素プーリングを作用させることができる。これにより、複素プーリングは、空間領域でのフィルタよりも、推論における精度の高い深層学習モデルを構築することができる。更に、ローパスフィルタ以外にもDC成分と高周波成分だけを除去するバンドパスフィルタなど、任意のフィルタを構築することができるため、自由度の高い深層学習モデルを構築できる。
この複素プーリングがローパスフィルタになっていることは、活性化関数(空間周波数領域では複素活性化関数)と大きなつながりがある。上述のとおり活性化関数は低周波成分を生む作用がある。それに対してローパスフィルタをかけると、活性化関数によって発生した低周波成分は残し、入力信号本来の高い周波数成分は除去する構成にすることもできる。但し、ローパスフィルタのカットオフ周波数、即ちローパスフィルタの設計に依存する。
上記実施の形態4を、この実施の形態5に適用してCNNを解析した内容をまとめると、以下のような結果が得られる。CNNとは、訓練によって得られるフィルタを畳み込み、画像のエッジを抽出し、活性化関数となる非線形関数によって低周波成分に信号を発生させ、プーリングによって低周波成分に現れた周波数成分を残し、それ以外の成分を除去し学習させる手法である。
実施の形態6.
実施の形態6は、上記実施の形態1~5によるNNに、複素バッチ正規化層を備えたものである。図16は、この実施の形態6によるNNの構成を示す図であり、上記実施の形態1で示した図4に対応する部分詳細図である。
この場合、結合層13と複素活性化層14との間に複素バッチ正規化層19を設ける例を示すが、これ以外にも、複素活性化層14の後段、あるいは結合層13の前段に設けても良い。
実施の形態6は、上記実施の形態1~5によるNNに、複素バッチ正規化層を備えたものである。図16は、この実施の形態6によるNNの構成を示す図であり、上記実施の形態1で示した図4に対応する部分詳細図である。
この場合、結合層13と複素活性化層14との間に複素バッチ正規化層19を設ける例を示すが、これ以外にも、複素活性化層14の後段、あるいは結合層13の前段に設けても良い。
学習に用いるデータの分布(平均値および標準偏差)が訓練時と推論時に異なる、即ち、ずれが発生することを共変量シフトと呼ぶ。NNにおいて、訓練中に各隠れ層の間での共変量シフトを内部共変量シフトと呼び、内部共変量シフトのずれは伝搬する。NNの隠れ層の数が多くなるにつれて、ずれが伝搬し出力層に近い上位層の重み付けにかかる学習に時間がかかる。そして、場合によっては学習が進まなくなることもある。
このため、空間領域では、訓練にかかる時間を短縮するバッチ正規化と呼ばれる手法を用いる場合がある。空間領域でのバッチ正規化は、一つの隠れ層の入力(通常は行列)の平均と標準偏差をとり、その入力から平均値を引いたものを、標準偏差で除算した演算を行う。
このため、空間領域では、訓練にかかる時間を短縮するバッチ正規化と呼ばれる手法を用いる場合がある。空間領域でのバッチ正規化は、一つの隠れ層の入力(通常は行列)の平均と標準偏差をとり、その入力から平均値を引いたものを、標準偏差で除算した演算を行う。
この実施の形態6による複素バッチ正規化層19は、空間領域でのバッチ正規化に対応する空間周波数領域での複素バッチ正規化を行う隠れ層である。
複素バッチ正規化は、空間周波数領域においても、振幅信号のみに対して空間領域でのバッチ正規化と同様の演算を行うことで、内部共変量シフトの影響を低減でき、訓練にかかる時間を短縮できる。
この場合、複素バッチ正規化層19を、結合層13と複素活性化層14との間に配したため、複素バッチ正規化層19は、振幅結合層13Aが出力する第2振幅信号22rのみを複素バッチ正規化して振幅信号22raを出力する。
複素バッチ正規化は、空間周波数領域においても、振幅信号のみに対して空間領域でのバッチ正規化と同様の演算を行うことで、内部共変量シフトの影響を低減でき、訓練にかかる時間を短縮できる。
この場合、複素バッチ正規化層19を、結合層13と複素活性化層14との間に配したため、複素バッチ正規化層19は、振幅結合層13Aが出力する第2振幅信号22rのみを複素バッチ正規化して振幅信号22raを出力する。
なお、複素バッチ正規化層19を設けることによる計算精度へのデメリットは小さいことから、複素プーリング層18の前または後、あるいは、後述する振幅対数化層、軸対数化層などの隠れ層の前または後に、複素バッチ正規化層19を設けても良い。
また、複素バッチ正規化層19自体の演算時間が影響して学習に時間がかかる場合には、複素バッチ正規化層19の数を減らし、以下の方法で対応するのが望ましい。即ち、複素活性化関数fの変更、重み行列Wの初期値の事前学習、勾配降下法における学習係数を下げる、ドロップアウト層あるいは疎結合層などによりNNの自由度を制約する方法で対応する。
また、複素バッチ正規化層19自体の演算時間が影響して学習に時間がかかる場合には、複素バッチ正規化層19の数を減らし、以下の方法で対応するのが望ましい。即ち、複素活性化関数fの変更、重み行列Wの初期値の事前学習、勾配降下法における学習係数を下げる、ドロップアウト層あるいは疎結合層などによりNNの自由度を制約する方法で対応する。
実施の形態7.
実施の形態7は、上記実施の形態1~6によるNNに、振幅対数化層および逆振幅対数化層を備えたものである。図17は、この実施の形態7によるNNの構成を示す図であり、振幅対数化層および逆振幅対数化層を上記実施の形態6に適用した場合を示し、図16に対応するNNの部分詳細図である。
図17に示すように、フーリエ変換層12と結合層13との間に振幅対数化層10Aを設け、さらに、逆フーリエ変換層15の前段に逆振幅対数化層10Bを設ける。
実施の形態7は、上記実施の形態1~6によるNNに、振幅対数化層および逆振幅対数化層を備えたものである。図17は、この実施の形態7によるNNの構成を示す図であり、振幅対数化層および逆振幅対数化層を上記実施の形態6に適用した場合を示し、図16に対応するNNの部分詳細図である。
図17に示すように、フーリエ変換層12と結合層13との間に振幅対数化層10Aを設け、さらに、逆フーリエ変換層15の前段に逆振幅対数化層10Bを設ける。
入力信号20がフーリエ変換層12でフーリエ変換されて、第1振幅信号21rと第1位相信号21θとに分割されると、第1振幅信号21rにおいて、周波数軸の特定の周波数の振幅信号に大きな振幅を持つ信号が発生することがある。その場合、大きな振幅を持つ信号により、振幅信号となる行列の他の成分がほぼ0になって画像の特徴を失い、大きな振幅の箇所のみを学習することがある。
この実施の形態7では、振幅対数化層10Aが、第1振幅信号21r(振幅行列)の振幅に対して対数を演算し、即ち、振幅を対数化した振幅信号21raを生成して出力する。これにより、フーリエ変換後に発生する、大きな振幅を持つ信号による悪影響を抑制して学習の信頼性を高めることができる。
この実施の形態7では、振幅対数化層10Aが、第1振幅信号21r(振幅行列)の振幅に対して対数を演算し、即ち、振幅を対数化した振幅信号21raを生成して出力する。これにより、フーリエ変換後に発生する、大きな振幅を持つ信号による悪影響を抑制して学習の信頼性を高めることができる。
入力信号をx、基数をaとすると、振幅を対数化する演算による出力信号yは、
y=logax
となる。ここで、基数aは自然対数e、2、または10を使うのが一般的であるが、その他の実数でも良い。
通常の画像においては、入力信号の大きさが2~3桁程度異なることもあるが、例えば基数10を使った場合には3桁異なっていても3倍の変化となり、小さな振幅を持つ信号には敏感になり、大きな振幅を持つ信号には鈍感になるように学習させることができる。
y=logax
となる。ここで、基数aは自然対数e、2、または10を使うのが一般的であるが、その他の実数でも良い。
通常の画像においては、入力信号の大きさが2~3桁程度異なることもあるが、例えば基数10を使った場合には3桁異なっていても3倍の変化となり、小さな振幅を持つ信号には敏感になり、大きな振幅を持つ信号には鈍感になるように学習させることができる。
なお、対数化された信号に対して0より大きい実数である定数bを乗じ、入力信号が0となるのを回避するための誤差成分δを用いて、以下の演算式を用いて振幅信号21raを生成しても良い。
y=b・loga(x+δ)
なお、誤差成分δは、振幅行列の要素として0を持たない場合には入力する必要がなく、振幅行列の要素として0を持つ場合は、0を除く最小値よりも一桁以上小さい値を入力するのが望ましい。
y=b・loga(x+δ)
なお、誤差成分δは、振幅行列の要素として0を持たない場合には入力する必要がなく、振幅行列の要素として0を持つ場合は、0を除く最小値よりも一桁以上小さい値を入力するのが望ましい。
また、定数bは、出力値yが、情報処理装置の丸め込み誤差よりも小さくなること、あるいは過大になることを避ける目的で用いられるもので、10または20が用いられることが多いが、その他の実数でも良い。
逆フーリエ変換層15の前段に設けた逆振幅対数化層10Bでは、入力される振幅信号(第3振幅信号23r)の振幅(対数化された振幅)を真数に戻して振幅信号23raを生成して出力する。この演算は、入力信号をxとすると、出力信号をyとすると、以下の式(27)または式(28)が用いられる。
実施の形態8.
実施の形態8は、上記実施の形態1~7によるNNに、軸対数化層および逆軸対数化層を備えたものである。図18は、この実施の形態8によるNNの構成を示す図であり、軸対数化層および逆軸対数化層を上記実施の形態6に適用した場合を示し、図16に対応するNNの部分詳細図である。
図18に示すように、フーリエ変換層12と結合層13との間に軸対数化層10Cを設け、さらに、逆フーリエ変換層15の前段に逆軸対数化層10Dを設ける。
実施の形態8は、上記実施の形態1~7によるNNに、軸対数化層および逆軸対数化層を備えたものである。図18は、この実施の形態8によるNNの構成を示す図であり、軸対数化層および逆軸対数化層を上記実施の形態6に適用した場合を示し、図16に対応するNNの部分詳細図である。
図18に示すように、フーリエ変換層12と結合層13との間に軸対数化層10Cを設け、さらに、逆フーリエ変換層15の前段に逆軸対数化層10Dを設ける。
軸対数化層10Cについて、以下に説明する。
この実施の形態においても、簡単のために、学習に用いる入力データは2次元データとする。2次元データの一方の軸をX軸、他方の軸をY軸と呼ぶ。
フーリエ変換層12でフーリエ変換された後の第1振幅信号21rおよび第1位相信号21θのX軸、Y軸は、入力データと同様に真数である。第1振幅信号21rおよび第1位相信号21θは、軸対数化層10Cに入力され、軸対数化層10Cは、第1振幅信号21rおよび第1位相信号21θのX軸、Y軸の各軸に対して対数を用い、即ち、軸対数化した振幅信号21rb、位相信号21θbを生成して出力する。
なお、基数は0以上の実数であれば良い。
この実施の形態においても、簡単のために、学習に用いる入力データは2次元データとする。2次元データの一方の軸をX軸、他方の軸をY軸と呼ぶ。
フーリエ変換層12でフーリエ変換された後の第1振幅信号21rおよび第1位相信号21θのX軸、Y軸は、入力データと同様に真数である。第1振幅信号21rおよび第1位相信号21θは、軸対数化層10Cに入力され、軸対数化層10Cは、第1振幅信号21rおよび第1位相信号21θのX軸、Y軸の各軸に対して対数を用い、即ち、軸対数化した振幅信号21rb、位相信号21θbを生成して出力する。
なお、基数は0以上の実数であれば良い。
これにより、振幅信号21rb、位相信号21θbは、X軸、Y軸の各軸において、低周波成分を強調した2次元データとすることができる。これはダイナミックレンジが広がったと考えることができ、低周波成分における小さな変化も見逃すことなく、学習させることができる。なお、従来のCNNでは、このような手法を用いる事はできない。
この実施の形態においては、情報量の多い低周波成分の情報を強調し、情報量の少ない高周波成分の情報を抑圧することができ、信頼性の高い学習を効率良く進めることができる。
この実施の形態においては、情報量の多い低周波成分の情報を強調し、情報量の少ない高周波成分の情報を抑圧することができ、信頼性の高い学習を効率良く進めることができる。
逆フーリエ変換層15の前段に設けた逆軸対数化層10Dでは、入力される振幅信号(第3振幅信号23r)および位相信号(第2位相信号22θ)のX軸、Y軸を真数に戻して振幅信号23rbおよび位相信号22θbを生成して出力する。但し、X軸、Y軸を真数に戻す逆軸対数化に関しては、後段の逆フーリエ変換層15において逆フーリエ変換が可能であれば、必ずしも必要ではない。
振幅信号21rbおよび位相信号21θbは、軸対数化によって低周波側のサンプリング間隔が荒い画像となる場合がある。そのような場合には、補間を行う。補間は線形補間、多項式補間、スプライン補間など公知の方法を用いる。
さらに、スペクトログラムのようにX軸とY軸とで物理量が異なる場合においては、一方の軸のみを軸対数化してもよい。また、同じ物理量においても、X軸とY軸とで学習の観点が異なる場合においては、同様に、一方の軸のみ軸対数化しても構わない。
さらに、スペクトログラムのようにX軸とY軸とで物理量が異なる場合においては、一方の軸のみを軸対数化してもよい。また、同じ物理量においても、X軸とY軸とで学習の観点が異なる場合においては、同様に、一方の軸のみ軸対数化しても構わない。
なお、この実施の形態8を上記実施の形態7に適用した場合、振幅をZ軸とすると、X軸、Y軸、Z軸の全ての軸に対して対数化することになり、即ち全対数化の処理となる。上記実施の形態7の振幅対数化層10A、逆振幅対数化層10Bを、この実施の形態8の軸対数化層10C、逆軸対数化層10Dと合成して、全対数化および逆全対数化を行う全対数化層および逆全対数化層を構成することもできる。全対数化層を通すことにより、振幅信号(第1振幅信号21r)の行列は行、列、各要素ともに対数となり、位相信号(第1位相信号21θ)の行列は行、列が対数となる。
実施の形態9.
図19は、この実施の形態9によるNNの構成を示す図である。
図19に示すように、NNは、入力層11Aから順に、振幅結合層13Aおよび位相結合層13Bから成り、複素畳み込み演算を行う結合層13、複素活性化関数fを用いた演算を行う複素活性化層14、複素プーリング層18、逆フーリエ変換層15、出力層16および出力17を備えて構成される。
そして、NNの前処理でフーリエ変換を行う演算部となるフーリエ変換層12AをNNとは別に備え、フーリエ変換層12Aは、入力される空間領域の入力信号20をフーリエ変換し、空間周波数領域の信号である第1振幅信号21rと第1位相信号21θとを出力する。
図19は、この実施の形態9によるNNの構成を示す図である。
図19に示すように、NNは、入力層11Aから順に、振幅結合層13Aおよび位相結合層13Bから成り、複素畳み込み演算を行う結合層13、複素活性化関数fを用いた演算を行う複素活性化層14、複素プーリング層18、逆フーリエ変換層15、出力層16および出力17を備えて構成される。
そして、NNの前処理でフーリエ変換を行う演算部となるフーリエ変換層12AをNNとは別に備え、フーリエ変換層12Aは、入力される空間領域の入力信号20をフーリエ変換し、空間周波数領域の信号である第1振幅信号21rと第1位相信号21θとを出力する。
この実施の形態9では、NNの入力層11Aは、空間周波数領域の信号である第1振幅信号21rと第1位相信号21θを入力信号として上位層である結合層13に受け渡す。
このため、NNの中でフーリエ変換を行わなくても良く、学習時フーリエ変換層での繰り返し計算することが不要になり、またその逆伝搬の計算も不要となるため、計算時間を短縮することができる。
このため、NNの中でフーリエ変換を行わなくても良く、学習時フーリエ変換層での繰り返し計算することが不要になり、またその逆伝搬の計算も不要となるため、計算時間を短縮することができる。
なお、この場合、複素プーリング層18を備えた例を示したが、上記各実施の形態1~8で示したNNにおいても、この実施の形態を適用して、フーリエ変換層12AをNNとは別にして、フーリエ変換をNNの前処理で行うことができる。
実施の形態10.
図20は、この実施の形態10によるNNの構成を示す図である。
図20に示すように、NNは、入力層11から順に、畳み込み演算を行う畳み込み層2、活性化関数3、フーリエ変換層12、振幅結合層13Aおよび位相結合層13Bから成り、複素畳み込み演算を行う結合層13、複素活性化関数fを用いた演算を行う複素活性化層14、複素プーリング層18、逆フーリエ変換層15、出力層16および出力17を備えて構成される。この場合、上記実施の形態5によるNNの入力層11の後段に、畳み込み層2および活性化関数3を挿入した例である。
図20は、この実施の形態10によるNNの構成を示す図である。
図20に示すように、NNは、入力層11から順に、畳み込み演算を行う畳み込み層2、活性化関数3、フーリエ変換層12、振幅結合層13Aおよび位相結合層13Bから成り、複素畳み込み演算を行う結合層13、複素活性化関数fを用いた演算を行う複素活性化層14、複素プーリング層18、逆フーリエ変換層15、出力層16および出力17を備えて構成される。この場合、上記実施の形態5によるNNの入力層11の後段に、畳み込み層2および活性化関数3を挿入した例である。
空間信号である入力信号20は、空間領域において、畳み込み層2においてカーネルを用いて畳み込み演算された後に活性化関数3を用いて演算される。活性化関数3による演算後の空間信号は、フーリエ変換層12で、第1振幅信号21rと第1位相信号21θとに分割される。その後の演算は、上記実施の形態5と同様である。
この実施の形態では、フーリエ変換層12の前段に、空間領域での隠れ層となる畳み込み層2および活性化関数3を備える。このため、空間領域と空間周波数領域とを組み合わせたNNとなる。
例えば、RGBを組み合わせて構成される入力信号20に対しては、CNNにおいては入力層で色彩ごとに入力データを分割する方法が用いられる。カラー画像の場合は通常、縦と横の情報の他に、RGBの色彩の次元であるチャンネル方向の3次元形状となる。この3次元形状には、空間的に近い画素間は類似する値が多い、等の空間情報が含まれている。また、RGBの各チャンネルの間にはそれぞれに密接な関係がある、あるいは距離の離れた画素同士はあまり関わりがない等、3次元形状は、画像の本質的な情報を含んでいる場合がある。
畳み込み層2は、これらの情報を抽出して保持することができる。
例えば、RGBを組み合わせて構成される入力信号20に対しては、CNNにおいては入力層で色彩ごとに入力データを分割する方法が用いられる。カラー画像の場合は通常、縦と横の情報の他に、RGBの色彩の次元であるチャンネル方向の3次元形状となる。この3次元形状には、空間的に近い画素間は類似する値が多い、等の空間情報が含まれている。また、RGBの各チャンネルの間にはそれぞれに密接な関係がある、あるいは距離の離れた画素同士はあまり関わりがない等、3次元形状は、画像の本質的な情報を含んでいる場合がある。
畳み込み層2は、これらの情報を抽出して保持することができる。
この実施の形態では、複素畳み込み演算、複素活性化関数fおよび複素プーリング等、空間周波数領域での特有な手法を用いることができ、空間領域では不可能な計算が可能になる。特に、空間領域では画像の局所的な変化量大局的な変化量を調べるのは困難であったが、この実施の形態では、これらの情報を保持したまま学習推論を進めることができる。フーリエ変換によって失われる特徴量の物理的な位置関係については、入力層11の近くに畳み込み層2および活性化関数3を設けることで、情報を残すことが可能になる。このため、学習と推論とを高い精度で行うことができる。
上記例では、畳み込み層2および活性化関数3を各1層のみ設けたが、通常、NNは多層化されて構成され、入力層11とフーリエ変換層12との間に、畳み込み層2を1~5層程度有する層数の少ないCNNを挿入して全体のNNが構成される。そして、フーリエ変換層12と出力層16との間で、上記実施の形態1と同様に訓練を行う。
これにより、3次元以上の多次元の入力データに対しても高速化することができる。
これにより、3次元以上の多次元の入力データに対しても高速化することができる。
なお、空間領域のCNNのみの第1比較例と比べて、計算の軽量化が図れるため一度の学習で処理できる画像を多くすることができる。そのため、同じ計算量と考えた場合、第1比較例を用いた場合に比べてより高い精度を期待できる。
上記実施の形態10では、フーリエ変換層12の前段に、空間領域での隠れ層となる畳み込み層2および活性化関数3を設けたものを示したが、逆フーリエ変換層15と出力層16との間に、畳み込み層2および活性化関数3を設けても良く、フーリエ変換層12の前段および逆フーリエ変換層15の後段の双方に設けても良い。
実施の形態11.
この実施の形態11では、上記各実施の形態1~10にて示した情報処理装置によるNNを用いて制御動作を行う電子機器について説明する。
本願による情報処理装置は、空気調和機に搭載されるセンサ情報の処理、ファクトリーオートメーションにおける工場で使用されるサーボシステム等のセンサ情報の処理、あるいは、車内屋外に取り付けられたセンサ情報の処理等に用いられる。従来、これらの処理は、CNNを用いるために、ニューラルネットワーク処理専用のGPU、ASIC(application specific integrated circuit)、あるいはFPGAを用意する必要があった。一方、この実施の形態によれば、空気調和機、サーボシステム、車載センサ等の情報を、既存のCPUマイコン、メモリを含む汎用のハードウェアで処理することが可能となる。
この実施の形態11では、上記各実施の形態1~10にて示した情報処理装置によるNNを用いて制御動作を行う電子機器について説明する。
本願による情報処理装置は、空気調和機に搭載されるセンサ情報の処理、ファクトリーオートメーションにおける工場で使用されるサーボシステム等のセンサ情報の処理、あるいは、車内屋外に取り付けられたセンサ情報の処理等に用いられる。従来、これらの処理は、CNNを用いるために、ニューラルネットワーク処理専用のGPU、ASIC(application specific integrated circuit)、あるいはFPGAを用意する必要があった。一方、この実施の形態によれば、空気調和機、サーボシステム、車載センサ等の情報を、既存のCPUマイコン、メモリを含む汎用のハードウェアで処理することが可能となる。
図21は、この実施の形態11による電子機器としての空気調和機の構成例を示す図である。空気調和機は、本願による情報処理装置50と、対象物58を認識する赤外線センサ51と、送風部52とを備える。情報処理装置50は、データを入力する入力部53と、入力部53から入力されたデータを解析する解析部54と、解析した結果を記録する記憶部55と、解析した結果を対象物58と判定する判定部56と、各部を制御する制御部57とを備える。
情報処理装置50は、制御部57から、少なくとも送風部52の風向きと風量、温度を制御する。
情報処理装置50は、制御部57から、少なくとも送風部52の風向きと風量、温度を制御する。
この場合、解析部54、判定部56および制御部57が、全体として、図1で示すハードウェア100のCPU30の機能を有し、記憶部55がハードウェア100のROM31およびRAM32の機能を有する。
そして、情報処理装置50は、赤外線センサ51の出力信号を入力信号とし、入力信号から生体の位置および温度変化を学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
そして、情報処理装置50は、赤外線センサ51の出力信号を入力信号とし、入力信号から生体の位置および温度変化を学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
以下に、NNを用いた情報処理装置50の動作について説明する。
情報処理装置50では、NNが赤外線センサ51からの入力信号から生体の位置および生体の温度変化を推論するプロセスを有する。生体の位置は生体の温度を情報処理装置50を用いて検知することで行う。また、生体の温度変化から各生体にあった温度を予測する処理を情報処理装置50によって行う。
情報処理装置50では、NNが赤外線センサ51からの入力信号から生体の位置および生体の温度変化を推論するプロセスを有する。生体の位置は生体の温度を情報処理装置50を用いて検知することで行う。また、生体の温度変化から各生体にあった温度を予測する処理を情報処理装置50によって行う。
空気調和機の使用にあたっては、事前にNNに学習させておき、そのNNの学習結果である重み行列Wを記憶部55に保存する方法、またはNNの重み行列Wの一部を空気調和機を取り付け後の環境に合わせて学習により習得させる方法を用いる。事前にNNを学習させる場合、情報処理装置50は、学習プロセスと推論プロセスとの内、推論プロセスのみ備え、推論時に記憶部55にある重み行列Wを呼び出し、赤外線センサ51からの入力信号に対して演算する。重み行列Wの一部を環境に合わせて学習する場合、上記実施の形態1~10に記載のNNの訓練を行う。
特に空気調和機の場合には、正解ラベルは、例えば部屋の構造を把握するものとし、各生体と空気調和機との距離、あるいは各生体にとっての適切な温度風量を把握して制御する機構等を設ける。部屋の構造に関しては、例えば温度変化しないものを部屋、家具等と認識し、温度変化するものを扉、生体等と認識する。
また、各生体にとっての適切な温度風量に関して、例えばコントローラの位置を把握できる機構(例えば、コントローラの先に赤外線を吸収あるいは反射する部材)を設け、各生体が空気調和機のコントローラを操作した際の情報を正解ラベルとして用いる。その際、NNにより、例えば、異なる生体を動き、体温、輪郭等の特徴量を抽出して認識する処理を行う。
また、各生体にとっての適切な温度風量に関して、例えばコントローラの位置を把握できる機構(例えば、コントローラの先に赤外線を吸収あるいは反射する部材)を設け、各生体が空気調和機のコントローラを操作した際の情報を正解ラベルとして用いる。その際、NNにより、例えば、異なる生体を動き、体温、輪郭等の特徴量を抽出して認識する処理を行う。
その他、NNにより、例えば、冷風あるいは温風を対象物58に当てたときの温度変化から生体か、調理器などの物体であるかを判断しても良い。さらに、NNにより、各生体に対しても風を当てる/当てないと言う判断を各生体を識別して行う、また、調理器に関しては風を当てないなどの判断を行っても良い。
学習したNNの重み行列Wは、記憶部55に保存し、空気調和機の次に起動時に、記憶部55から読み込み使用する。
学習したNNの重み行列Wは、記憶部55に保存し、空気調和機の次に起動時に、記憶部55から読み込み使用する。
さらに、NNに入力する前に画像データの最大値を1、最小値を0にする正規化を行う、画像データの平均を0、分散を1にする標準化等の前処理を行う、起動時のみに学習するバッチ学習を行う、あるいは、起動中にも状況に応じて随時学習を行うオンライン学習を用いても良い。
なお、図21では、空気調和機の送風部52は1つとしたが、複数個の送風部52を設けても良い。例えば、異なる温度、風量を出力可能な2つの送風部52を設け、NNの処理結果に応じて、各生体に応じた温度、風量を送る機構を備える。また、2つの送風部52により、適切に室内の空気を混ぜ合わせて温度調整することができる。
また、NNの学習により、各生体の識別も実施できるため、その情報を組み合わせて様々な機能を有する空気調和機を構成することができる。また、複数の生体が同時に居る場合にも、各送風部52が風向きを調整する羽を固定して、各生体にとって適切な温度、風量を持った風を連続して送り続けることができる。
また、NNの学習により、各生体の識別も実施できるため、その情報を組み合わせて様々な機能を有する空気調和機を構成することができる。また、複数の生体が同時に居る場合にも、各送風部52が風向きを調整する羽を固定して、各生体にとって適切な温度、風量を持った風を連続して送り続けることができる。
一般に、空気調和機においては、室内にある物品、人、扉の開閉等を認識するため、赤外線センサ、さらに距離センサ等が用いられる。このシステムにおいては、赤外線センサ等のセンサ信号を入力信号として、室内にある物品、人、扉の開閉等を出力信号とするNNとなる。近年、赤外線センサ等の性能向上により、取得する情報量(画素数)は大きくなり、さらに、リアルタイムでの応答が求められる。このため、それに応じて情報を処理するためのハードウェアの大型、大電力化が不可欠となりつつある。
この実施の形態による空気調和機では、大型、大電力化を抑制して、処理を高速化できる。このため、消費電力を低減でき、放熱のための追加構造も不要となり、室内機の小型化と共に、室内機の高効率化を図ることができる。
さらに、大規模な計算を要する場合、従来では、WWWのような情報ネットワークを通じて、計算機サーバのような大規模な計算を得意とする計算機経由で計算を行い、その計算機の結果をWWWを通じて空気調和機に戻す作業が行われていた。この実施の形態による空気調和機では、WWWのような情報ネットワークを利用する必要が無く、それらの通信にかかる電力およびタイムラグを低減でき、より快適な空気調和機のシステムを、ユーザに提供することができる。
図22は、この実施の形態11の別例による電子機器として、サーボシステムを構成する電子機器の構成を示す図である。電子機器は、本願による情報処理装置50と、電磁波を検出するセンサ51aと、動作部52aとを備える。情報処理装置50は、データを入力する入力部53と、入力部53から入力されたデータを解析する解析部54と、解析した結果を記録する記憶部55と、解析した結果を判定する判定部56と、各部を制御する制御部57とを備える。
情報処理装置50は、制御部57から、動作部52aの動作停止、異常物排除の少なくとも一方を制御する。
情報処理装置50は、制御部57から、動作部52aの動作停止、異常物排除の少なくとも一方を制御する。
この場合も、解析部54、判定部56および制御部57が、全体として、図1で示すハードウェア100のCPU30の機能を有し、記憶部55がハードウェア100のROM31およびRAM32の機能を有する。
そして、情報処理装置50は、センサ51aの出力信号を入力信号とし、入力信号から物体の位置変化量、電界、磁界、温度の内、少なくとも1つを学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
なお、この場合も、事前にNNを学習させても良く、情報処理装置50は、学習プロセスと推論プロセスとの内、少なくとも推論プロセスを備え、推論時に記憶部55にある重み行列Wを呼び出して用いる。
そして、情報処理装置50は、センサ51aの出力信号を入力信号とし、入力信号から物体の位置変化量、電界、磁界、温度の内、少なくとも1つを学習する学習プロセスと、該学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、該推論プロセスに基づいて制御動作を行う。
なお、この場合も、事前にNNを学習させても良く、情報処理装置50は、学習プロセスと推論プロセスとの内、少なくとも推論プロセスを備え、推論時に記憶部55にある重み行列Wを呼び出して用いる。
一般に、サーボシステムに取り付けられる情報処理装置では、NNを用いた演算にて、サーボシステムを用いて生産を行っている物品の位置の監視、物品に記載された文字、色、バーコード、不良の有無等を分析する。NNには、カメラ等のCCD、CMOSイメージセンサ、近傍界アンテナ、あるいは遠方界アンテナで読み取った信号を入力する。
サーボシステムは高速で動作するため、瞬時の判断が求められ、従来から、CNNが用いられることがあったが、高速化のために探索範囲を小さくして画像を小型化していた。 この実施の形態による電子機器をサーボシステムに用いる事により、大きな画像で同等の処理速度を維持できるため、より少ないセンサで広範囲の情報を処理することができ、より層数の多いNNを用いて精度向上を図ることができる。
サーボシステムは高速で動作するため、瞬時の判断が求められ、従来から、CNNが用いられることがあったが、高速化のために探索範囲を小さくして画像を小型化していた。 この実施の形態による電子機器をサーボシステムに用いる事により、大きな画像で同等の処理速度を維持できるため、より少ないセンサで広範囲の情報を処理することができ、より層数の多いNNを用いて精度向上を図ることができる。
この実施の形態によるサーボシステムでは、WWWのような情報ネットワークを利用する必要が無く、それらの通信にかかる電力およびタイムラグを低減でき、より迅速に応答するサーボシステムを、ユーザに提供することができる。
サーボシステムは複数のサーボモータを連携した同時刻の制御が要求されるためリアルタイム性が重視される。また、動作異常時には迅速に状況を判断し、必要に応じて停止、再開する必要がある。この実施の形態によるサーボシステムでは、迅速な応答により、異常時の製造および動作を迅速に回避できる。このため、廃棄物となる無駄の削減ができ、また、装置が異常な体勢で動作することによる装置間の衝突等に起因する故障の低減ができる。
サーボシステムは複数のサーボモータを連携した同時刻の制御が要求されるためリアルタイム性が重視される。また、動作異常時には迅速に状況を判断し、必要に応じて停止、再開する必要がある。この実施の形態によるサーボシステムでは、迅速な応答により、異常時の製造および動作を迅速に回避できる。このため、廃棄物となる無駄の削減ができ、また、装置が異常な体勢で動作することによる装置間の衝突等に起因する故障の低減ができる。
また、上述したサーボシステムを構成する電子機器として、例えば以下に示す自立型ロボットがある。自立型ロボットは、センサ51aとして、カメラ等のCCD、CMOSイメージセンサ、近傍界アンテナ、遠方界アンテナの少なくとも1つを備え、物品の位置の監視、および該物品に記載された文字、色、バーコードの少なくとも1つを識別して判断可能とする。
センサ51aは、自立型ロボットに直接、あるいは周囲に取り付けられる。情報処理装置50は、センサ51aから入力される入力信号からセンサ51a自体が持つノイズ、あるいはセンサ51aの使用環境に依存するノイズが印加された文字、色、バーコード、または不良の有無を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
センサ51aは、自立型ロボットに直接、あるいは周囲に取り付けられる。情報処理装置50は、センサ51aから入力される入力信号からセンサ51a自体が持つノイズ、あるいはセンサ51aの使用環境に依存するノイズが印加された文字、色、バーコード、または不良の有無を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
この場合も、情報処理装置50は、学習プロセスと推論プロセスとの内、少なくとも推論プロセスを備えれば良く、その場合、推論時に記憶部55にある重み行列Wを呼び出して用いる。
他にも、本願による情報処理装置50を備える電子機器として、車両の自動運転に向けた車載機器である衝突防止装置がある。この場合の構成も図22で示す場合と同様であり、同様の効果、即ち、低電力で迅速な応答が得られる。
衝突防止装置は、本願による情報処理装置50と、センサ51aと、動作部52aとを備える。情報処理装置50は、データを入力する入力部53と、入力部53から入力されたデータを解析する解析部54と、解析した結果を記録する記憶部55と、解析した結果を判定する判定部56と、各部を制御する制御部57とを備える。
衝突防止装置は、本願による情報処理装置50と、センサ51aと、動作部52aとを備える。情報処理装置50は、データを入力する入力部53と、入力部53から入力されたデータを解析する解析部54と、解析した結果を記録する記憶部55と、解析した結果を判定する判定部56と、各部を制御する制御部57とを備える。
センサ51aは、制御動作の為の情報となる車外環境情報を検出するもので、カメラ等のCCD、CMOSイメージセンサ、レーダ、超音波ソナーの少なくとも1つが用いられる。レーダの場合は、ライダー(Light Detection and Ranging)のようにレーザ光を用いたレーダ、ミリ波を用いたレーダ等が用いられる。また、単体のセンサの他、異なるセンサの組み合わせ、あるいは同じセンサを複数用いても良く、運転時の安全性を高めることができる。
情報処理装置50は、センサ51aから入力される入力信号から車外の生体の位置、周囲の車の位置および進行方向、信号機情報、車線情報の少なくとも1つを学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。なお、この場合も少なくとも推論プロセスを備えれば良い。
情報処理装置50は、センサ51aから入力される入力信号から車外の生体の位置、周囲の車の位置および進行方向、信号機情報、車線情報の少なくとも1つを学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。なお、この場合も少なくとも推論プロセスを備えれば良い。
この衝突防止装置は、ステアリング、アクセルおよびブレーキを制御可能であるが、情報処理装置50の制御部57からの出力としては、大きく分類して、異常時にドライバに警告を出すもの、またはドライバに警告なく車を制御する2種のものがある。異常時の具体例としては、車が車線の逸脱を検知した場合、走行時、先行車との車間距離が近づいた場合、車が進む向き(前後、左右)に人あるいは物体があり、衝突が予想される場合等があり、音、光あるいは振動によってドライバに警告を与えて異常を伝える。車両の高速走行等により、ドライバへの警告では間に合わないと判断される場合は、情報処理装置50の制御部57からの指令により動作部52aが直接、車を制御する。具体的には、情報処理装置50がステアリングを電気的に制御して車線の逸脱を回避すること、先行車あるいは前後左右の物体との距離を制御するようにアクセルあるいはブレーキを駆動させる等である。また、車両の周囲の状況を把握して、車両を安全な位置に停車させる等の制御を行う。
なお、上記衝突防止装置は、車外環境情報を検出するセンサ51aのみを備えたが、さらに、可視光あるいは赤外線によるカメラ等のセンサを車内に搭載し、ドライバの体調を判断して異常を検出しても良い。この場合も、車内センサの出力信号を入力信号として、情報処理装置50によって演算を行い、ドライバの体調、例えば睡眠状態、飲酒状態等を判断する。その判断によってドライバに音、光あるいは振動によって警告を与えること、あるいは車の周囲の状況を把握して、車を安全な位置に停車させる等の制御を行う。
また、本願による情報処理装置50を備える電子機器の別例として、ドライバを識別および認証が可能で、車両の盗難、無免許のドライバによる運転等を未然に防ぐ車載機器を、以下に示す。この場合の構成も図22で示す場合と同様である。
センサ51aは、車内に搭載されて制御動作の為の情報となる車内環境情報を検出するもので、カメラ等のCCD、CMOSイメージセンサの少なくとも1つが用いられる。
情報処理装置50は、センサ51aから入力される入力信号からドライバの顔、体格の少なくとも顔を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
センサ51aは、車内に搭載されて制御動作の為の情報となる車内環境情報を検出するもので、カメラ等のCCD、CMOSイメージセンサの少なくとも1つが用いられる。
情報処理装置50は、センサ51aから入力される入力信号からドライバの顔、体格の少なくとも顔を学習する学習プロセスと、学習プロセスで得た情報を元に入力信号に基づいて推論を行う推論プロセスとを備え、推論プロセスに基づいて制御動作を行う。
この場合、情報処理装置50は、学習プロセスと推論プロセスとの双方を備え、特定のドライバを学習して、ドライバを識別および認証して、そのドライバのみが車両を操作可能にすることができる。ただし、人の顔および体型は年齢とともに変わっていくことを考慮すると、学習の対象となるデータが入るたびに、そのデータを追加して学習を行うオンライン学習を用いて定期的に情報を更新する。
この実施の形態による車載機器では、WWWのような情報ネットワークを利用する必要が無く、それらとの接続環境に拘わらず、省エネルギかつ簡易で安価な構成にてドライバの識別および認証を迅速に行う事ができる。
この実施の形態による車載機器では、WWWのような情報ネットワークを利用する必要が無く、それらとの接続環境に拘わらず、省エネルギかつ簡易で安価な構成にてドライバの識別および認証を迅速に行う事ができる。
さらに、本願による情報処理装置50を備える電子機器として、監視カメラを適用することもできる。例えば、センサ51aとなるカメラからの可視光の映像を情報処理装置50に入力し、情報処理装置50は、例えば、各個人に割り振られたID(日本においてはマイナンバ、パスポートの旅券番号等)を出力する。その他、監視カメラにより各個人の行動をリアルタイムに監視することができる。
この実施の形態では、監視カメラの映像をWWWのような情報ネットワークを介してアップロードする必要が無く、情報処理装置50で分散処理することによって、情報量を削減できる。例えば、監視カメラ1台あたり、従来では1MB/sの情報量を扱っていたが、この実施の形態では、1kB/sの情報量を処理すれば良く格段と情報量を削減できる。これによって、個人行動の監視が容易で信頼性良く可能になる。
この実施の形態では、監視カメラの映像をWWWのような情報ネットワークを介してアップロードする必要が無く、情報処理装置50で分散処理することによって、情報量を削減できる。例えば、監視カメラ1台あたり、従来では1MB/sの情報量を扱っていたが、この実施の形態では、1kB/sの情報量を処理すれば良く格段と情報量を削減できる。これによって、個人行動の監視が容易で信頼性良く可能になる。
上述したドライバを識別および認証する車載機器、および個人行動を監視する監視カメラなどの電子機器では、CCD、あるいはCMOSイメージセンサで読み取った入力信号を用い、人の行動、状態等を出力信号とする。画像を入力情報とする際には、NNの多層化により高速化、高精度化が可能である。この場合、上述した空気調和機あるいはサーボシステム等の電子機器に比べると、電力および計算機の使用に制約が少ないが、この実施の形態による電子機器を用いる事で、さらに、高速化、高精度化が図れる。特に、実施の形態10を適用したNNを用いた電子機器により、空間領域と空間周波数領域との双方の演算により、効果的に精度向上が図れる。
なお、図21および図22では、センサ51、51aを備える電子機器を示したが、本願による情報処理装置50は、センサ51、51aを設けない電子機器にも適用できる。その場合、情報処理装置50内で演算により生成された信号を入力信号として用いる。この場合も、入力信号に基づいて学習を行う学習プロセスと、学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う。
また、上述した以外にも、文字、色、光の強さ、寸法、形状、位置、角度、速度または加速度に伴う物体の位置変化量、電界、磁界、温度の内、少なくとも1つを推論する電子機器に、本願による情報処理装置は適用できる。
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
従って、例示されていない無数の変形例が、本願に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
2 畳み込み層、10A 振幅対数化層、10B 逆振幅対数化層、10C 軸対数化層、11,11A 入力層、12,12A フーリエ変換層、13A 振幅結合層、13B 位相結合層、14 複素活性化層、15 逆フーリエ変換層、16 出力層、18 複素プーリング層、20 入力信号、21r 第1振幅信号、21θ 第1位相信号、22r 第2振幅信号、22θ 第2位相信号、50 情報処理装置、51 赤外線センサ、51a センサ、100 ハードウェア、f 複素活性化関数、Lr,Lθ 微小行列、W1 第1重み行列、W2 第2重み行列。
Claims (25)
- 入力信号をニューラルネットワークで処理する情報処理装置において、
前記入力信号をフーリエ変換し、第1振幅信号と第1位相信号とを出力するフーリエ変換層と、
訓練によって行列内の値を更新する第1重み行列を前記第1振幅信号にかけて第2振幅信号を出力する振幅結合層と、
訓練によって行列内の値を更新する第2重み行列を前記第1位相信号にかけて第2位相信号を出力する位相結合層と、
空間周波数領域の活性化関数である複素活性化関数fを用いて、前記第2振幅信号および前記第2位相信号の内、少なくとも前記第2振幅信号を更新する複素活性化層と、
前記複素活性化層で更新された前記第2振幅信号と前記第2位相信号とを組み合わせて逆フーリエ変換する逆フーリエ変換層と、
を備えた情報処理装置。 - 前記フーリエ変換層と前記逆フーリエ変換層との間に、前記振幅結合層、前記位相結合層および前記複素活性化層をそれぞれ少なくとも1つ備え、前記フーリエ変換層と前記逆フーリエ変換層との間で、連続して空間周波数領域における信号処理を行うものである、
請求項1に記載の情報処理装置。 - 前記複素活性化層は、前記第2位相信号を構成する行列内の各点iにおける位相θ(i)に対する前記複素活性化関数fの応答によって、前記第2振幅信号を構成する行列内の前記点iと同位置の点における振幅r(i)の値を更新して、更新された前記第2振幅信号を出力すると共に、前記第2位相信号を更新せずに出力する、
請求項1または請求項2に記載の情報処理装置。 - 前記複素活性化層で用いる前記複素活性化関数fは、前記第2振幅信号および前記第2位相信号の内、少なくとも前記第2振幅信号である対象信号に対して、N、MをそれぞれN≧2、M≧1である整数とし、前記対象信号を構成する行列の軸方向成分である周波数成分が1/N、かつ各要素が1/Mである微小行列を生成して前記行列に加算することにより前記対象信号を更新するものである、
請求項1または請求項2に記載の情報処理装置。 - 前記複素活性化層で用いる前記複素活性化関数fは、基準となる原点での値の絶対値が最大となる関数をカーネルとして、前記第2振幅信号および前記第2位相信号の内、少なくとも前記第2振幅信号である対象信号に対して畳み込み演算を行うものである、
請求項1または請求項2に記載の情報処理装置。 - 前記複素活性化関数fは、前記第2位相信号における前記位相θ(i)に対し、実軸成分、虚軸成分のいずれか一方が正または0の場合と、負の場合とで異なる応答によって、前記第2振幅信号における前記振幅r(i)の値を更新する複素Relu関数である、
請求項3に記載の情報処理装置。 - 前記複素活性化関数fは、
前記実軸成分が正または0である、(-π/2)≦θ(i)<(π/2)、において、前記振幅r(i)の値を保持し、前記実軸成分が負である、-π≦θ(i)<(-π/2)、または、(π/2)≦θ(i)<π、において、前記振幅r(i)の値を、(r(i)・|sinθ(i)|)、あるいは、(r(i)・sinθ(i))の値に変更する、
請求項6に記載の情報処理装置。 - 前記複素活性化関数fは、
前記虚軸成分が正または0である、0≦θ(i)<π、において、前記振幅r(i)の値を保持し、前記虚軸成分が負である、-π≦θ(i)<0、において、前記振幅r(i)の値を、(r(i)・|cosθ(i)|)、あるいは、(r(i)・cosθ(i))の値に変更する、
請求項6に記載の情報処理装置。 - 前記複素活性化関数fは、前記第2位相信号における前記位相θ(i)の大きさに依らず同じ演算式を用いた一定の応答により、前記第2振幅信号における前記振幅r(i)の値を更新する複素ロジスティック関数である、
請求項3に記載の情報処理装置。 - 前記複素活性化関数fは、複数個の前記微小行列を用いて前記対象信号を更新するものである、
請求項4に記載の情報処理装置。 - 前記N、Mは、それぞれ2のべき乗であり、前記微小行列はシフト演算を行うことで演算する、
請求項4または請求項10に記載の情報処理装置。 - 前記複素活性化関数fは、前記カーネルとなる関数にsinc関数を用い、前記対象信号に対して畳み込み演算後に絶対値を算出する、
請求項5に記載の情報処理装置。 - 前記第2振幅信号および前記第2位相信号の内、複素活性化関数fによって更新された信号に対して、ローパスフィルタまたはバンドパスフィルタとなる複素プーリング層を、前記複素活性化層の直後に備える、
請求項1から請求項12のいずれか1項に記載の情報処理装置。 - 前記第1振幅信号の振幅を対数化する振幅対数化層を、前記フーリエ変換層の後段に設け、該対数化を解消する逆振幅対数化層を、前記逆フーリエ変換層の前段に設ける、
請求項1から請求項13のいずれか1項に記載の情報処理装置。 - 前記第1振幅信号および前記第1位相信号の軸に対して対数化を行う軸対数化層を、前記フーリエ変換層の後段に設ける、
請求項1から請求項14のいずれか1項に記載の情報処理装置。 - 前記入力信号を前記ニューラルネットワークに入力する入力層と、前記逆フーリエ変換層の後段に配され、入力される信号を所望の形に変換して前記ニューラルネットワークから出力する出力層とを備える、
請求項1から請求項15のいずれか1項に記載の情報処理装置。 - 前記フーリエ変換層を、前記入力層の前段に、前記ニューラルネットワークの前処理のために配し、前記入力信号が前記フーリエ変換層にてフーリエ変換された後に前記入力層に入力される、
請求項16に記載の情報処理装置。 - 前記入力層と該入力層の後段に配される前記フーリエ変換層との間、および前記逆フーリエ変換層と該逆フーリエ変換層の後段に配される前記出力層との間、の少なくとも一方に、少なくとも1層の畳み込み層を備える、
請求項16に記載の情報処理装置。 - 請求項1から請求項18のいずれか1項に記載の情報処理装置を備えて制御動作を行う電子機器において、
前記電子機器は前記制御動作の為の情報を検出するセンサを備え、
前記情報処理装置は、前記センサの出力信号を前記入力信号とし、該入力信号に基づいて学習を行う学習プロセスと、該学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う、
情報処理装置を備えた電子機器。 - 前記電子機器は、前記センサとして赤外線センサを備えて、風向、風量および温度を制御可能な空気調和機であり、
前記学習プロセスは、生体の位置および温度変化を学習するものである、
請求項19に記載の情報処理装置を備えた電子機器。 - 前記電子機器は、前記センサとして、CCD、CMOSイメージセンサ、近傍界アンテナ、遠方界アンテナの少なくとも1つを備え、物品の位置の監視、および該物品に記載された文字、色、バーコードの少なくとも1つを識別可能な自立型ロボットであり、
前記学習プロセスは、前記センサ自体が持つノイズ、あるいは前記センサの使用環境に依存するノイズが印加された文字、色、バーコード、または不良の有無を学習するものである、
請求項19に記載の情報処理装置を備えた電子機器。 - 前記電子機器は、ステアリング、アクセルおよびブレーキを制御可能な車載機器であって、前記センサとして、CCD、CMOSイメージセンサ、レーダ、超音波ソナーの少なくとも1つを備えて、前記制御動作の為の情報となる車外環境情報を検出し、
前記学習プロセスは、車外の生体の位置、周囲の車の位置および進行方向、信号機情報、車線情報の少なくとも1つを学習するものである、
請求項19に記載の情報処理装置を備えた電子機器。 - 前記電子機器は、ドライバを識別および認証可能な車載機器であって、前記センサとして、CCD、CMOSイメージセンサの少なくとも1つを備えて、前記制御動作の為の情報となる車内環境情報を検出し、
前記情報処理装置は、前記学習プロセスおよび前記推論プロセスを備え、
前記学習プロセスは、前記ドライバの顔、体格の少なくとも顔を学習して、得られた情報を定期的に更新するものである、
請求項19に記載の情報処理装置を備えた電子機器。 - 前記電子機器は、前記センサにより電磁波を検出して、動作停止、異常物排除の少なくとも一方を制御可能であり、
前記学習プロセスは、物体の位置変化量、電界、磁界、温度の内、少なくとも1つを学習するものである、
請求項19に記載の情報処理装置を備えた電子機器。 - 請求項1から請求項18のいずれか1項に記載の情報処理装置を備えて制御動作を行う電子機器において、
前記情報処理装置は、演算により生成された信号を前記入力信号とし、該入力信号に基づいて学習を行う学習プロセスと、該学習プロセスで得た情報を元に前記入力信号に基づいて推論を行う推論プロセスとの内、少なくとも前記推論プロセスを備え、該推論プロセスに基づいて前記制御動作を行う、
情報処理装置を備えた電子機器。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/633,968 US20220335276A1 (en) | 2019-09-13 | 2019-09-13 | Information processing device and electronic apparatus equipped with same |
PCT/JP2019/036101 WO2021049005A1 (ja) | 2019-09-13 | 2019-09-13 | 情報処理装置およびそれを備えた電子機器 |
EP19944683.2A EP4030346A4 (en) | 2019-09-13 | 2019-09-13 | INFORMATION PROCESSING DEVICE AND EQUIPPED ELECTRONIC DEVICE |
CN201980100089.XA CN114341878A (zh) | 2019-09-13 | 2019-09-13 | 信息处理装置以及具备该信息处理装置的电子设备 |
JP2020509541A JP6742554B1 (ja) | 2019-09-13 | 2019-09-13 | 情報処理装置およびそれを備えた電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/036101 WO2021049005A1 (ja) | 2019-09-13 | 2019-09-13 | 情報処理装置およびそれを備えた電子機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021049005A1 true WO2021049005A1 (ja) | 2021-03-18 |
Family
ID=72048001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/036101 WO2021049005A1 (ja) | 2019-09-13 | 2019-09-13 | 情報処理装置およびそれを備えた電子機器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220335276A1 (ja) |
EP (1) | EP4030346A4 (ja) |
JP (1) | JP6742554B1 (ja) |
CN (1) | CN114341878A (ja) |
WO (1) | WO2021049005A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113008559A (zh) * | 2021-02-23 | 2021-06-22 | 西安交通大学 | 基于稀疏自编码器和Softmax的轴承故障诊断方法及*** |
CN113203566A (zh) * | 2021-04-06 | 2021-08-03 | 上海吞山智能科技有限公司 | 一种基于一维数据增强和cnn的电机轴承故障诊断方法 |
JP2022142602A (ja) * | 2021-03-16 | 2022-09-30 | 独立行政法人国立高等専門学校機構 | 電磁波レーダ装置および電磁波レーダ装置の学習方法 |
WO2022250267A1 (ko) * | 2021-05-27 | 2022-12-01 | 울산과학기술원 | 왜곡된 영상으로부터 대상을 복원하는 방법 및 장치 |
WO2024018592A1 (ja) * | 2022-07-21 | 2024-01-25 | 日本電信電話株式会社 | モデル学習装置、モデル学習方法、およびプログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210319289A1 (en) * | 2020-04-13 | 2021-10-14 | Alibaba Group Holding Limited | Frequency domain neural network accelerator |
JP2022038285A (ja) * | 2020-08-26 | 2022-03-10 | 株式会社Jvcケンウッド | 機械学習装置及び遠赤外線撮像装置 |
JP7485062B2 (ja) * | 2020-09-30 | 2024-05-16 | 日本電気株式会社 | 情報処理装置、生体検知システム、生体検知方法及びプログラム |
CN116716079B (zh) * | 2023-06-14 | 2024-01-19 | 山东沃赛新材料科技有限公司 | 高性能防霉型醇型美容收边胶及其制备方法 |
CN117825601B (zh) * | 2024-03-05 | 2024-05-24 | 山东润达检测技术有限公司 | 一种食品中二氧化硫的测定方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017049996A (ja) | 2015-09-02 | 2017-03-09 | 富士通株式会社 | 画像認識に用いられるニューラルネットワークの訓練方法及び訓練装置 |
-
2019
- 2019-09-13 US US17/633,968 patent/US20220335276A1/en active Pending
- 2019-09-13 WO PCT/JP2019/036101 patent/WO2021049005A1/ja unknown
- 2019-09-13 CN CN201980100089.XA patent/CN114341878A/zh active Pending
- 2019-09-13 EP EP19944683.2A patent/EP4030346A4/en active Pending
- 2019-09-13 JP JP2020509541A patent/JP6742554B1/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017049996A (ja) | 2015-09-02 | 2017-03-09 | 富士通株式会社 | 画像認識に用いられるニューラルネットワークの訓練方法及び訓練装置 |
Non-Patent Citations (2)
Title |
---|
KO, JONG HWAN ET AL.: "Design of an Energy-Efficient Accelerator for Training of Convolutional Neural Networks using Frequency-Domain Computation", PROCEEDINGS OF THE 54TH ANNUAL DESIGN AUTOMATION CONFERENCE 2017, 22 June 2017 (2017-06-22), XP058367854, Retrieved from the Internet <URL:https://dl.acm.org/citation.cfm?id=3062228> [retrieved on 20191115] * |
See also references of EP4030346A4 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113008559A (zh) * | 2021-02-23 | 2021-06-22 | 西安交通大学 | 基于稀疏自编码器和Softmax的轴承故障诊断方法及*** |
CN113008559B (zh) * | 2021-02-23 | 2022-02-22 | 西安交通大学 | 基于稀疏自编码器和Softmax的轴承故障诊断方法及*** |
JP2022142602A (ja) * | 2021-03-16 | 2022-09-30 | 独立行政法人国立高等専門学校機構 | 電磁波レーダ装置および電磁波レーダ装置の学習方法 |
CN113203566A (zh) * | 2021-04-06 | 2021-08-03 | 上海吞山智能科技有限公司 | 一种基于一维数据增强和cnn的电机轴承故障诊断方法 |
WO2022250267A1 (ko) * | 2021-05-27 | 2022-12-01 | 울산과학기술원 | 왜곡된 영상으로부터 대상을 복원하는 방법 및 장치 |
KR20220160406A (ko) * | 2021-05-27 | 2022-12-06 | 울산과학기술원 | 왜곡된 영상으로부터 대상을 복원하는 방법 및 장치 |
KR102476808B1 (ko) * | 2021-05-27 | 2022-12-12 | 울산과학기술원 | 왜곡된 영상으로부터 대상을 복원하는 방법 및 장치 |
WO2024018592A1 (ja) * | 2022-07-21 | 2024-01-25 | 日本電信電話株式会社 | モデル学習装置、モデル学習方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN114341878A (zh) | 2022-04-12 |
JPWO2021049005A1 (ja) | 2021-09-30 |
US20220335276A1 (en) | 2022-10-20 |
EP4030346A4 (en) | 2022-10-19 |
JP6742554B1 (ja) | 2020-08-19 |
EP4030346A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6742554B1 (ja) | 情報処理装置およびそれを備えた電子機器 | |
Feng et al. | A review and comparative study on probabilistic object detection in autonomous driving | |
CN110378381B (zh) | 物体检测方法、装置和计算机存储介质 | |
US10733755B2 (en) | Learning geometric differentials for matching 3D models to objects in a 2D image | |
Chen et al. | Semi-supervised multiresolution classification using adaptive graph filtering with application to indirect bridge structural health monitoring | |
CN112651511A (zh) | 一种训练模型的方法、数据处理的方法以及装置 | |
US11654934B2 (en) | Methods and systems for diversity-aware vehicle motion prediction via latent semantic sampling | |
US11062141B2 (en) | Methods and apparatuses for future trajectory forecast | |
CN108694408B (zh) | 一种基于深度稀疏滤波卷积神经网络的驾驶行为识别方法 | |
US20210089923A1 (en) | Icospherical gauge convolutional neural network | |
US20240005164A1 (en) | Neural Network Training Method and Related Device | |
WO2023072175A1 (zh) | 点云数据的处理方法、神经网络的训练方法以及相关设备 | |
CN112036381B (zh) | 视觉跟踪方法、视频监控方法及终端设备 | |
López-Randulfe et al. | Spiking neural network for fourier transform and object detection for automotive radar | |
Khanapuri et al. | Learning based longitudinal vehicle platooning threat detection, identification and mitigation | |
Ye et al. | Steering angle prediction YOLOv5-based end-to-end adaptive neural network control for autonomous vehicles | |
Gong et al. | How to implement automotive fault diagnosis using artificial intelligence scheme | |
Qian et al. | Support Vector Machine for Behavior‐Based Driver Identification System | |
Liang et al. | Car detection and classification using cascade model | |
Hu et al. | Driver identification through vehicular CAN bus data: An ensemble deep learning approach | |
He et al. | Driving behaviour characterisation by using phase‐space reconstruction and pre‐trained convolutional neural network | |
xi Wang et al. | Detection of MMW radar target based on Doppler characteristics and deep learning | |
CN114120634B (zh) | 基于WiFi的危险驾驶行为识别方法、装置、设备及存储介质 | |
US20220101143A1 (en) | Method and system for learning joint latent adversarial training | |
CN111126310B (zh) | 一种基于场景迁移的行人性别识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2020509541 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19944683 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019944683 Country of ref document: EP Effective date: 20220413 |