WO2020026741A1 - 情報処理方法、情報処理装置及び情報処理プログラム - Google Patents

情報処理方法、情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
WO2020026741A1
WO2020026741A1 PCT/JP2019/027415 JP2019027415W WO2020026741A1 WO 2020026741 A1 WO2020026741 A1 WO 2020026741A1 JP 2019027415 W JP2019027415 W JP 2019027415W WO 2020026741 A1 WO2020026741 A1 WO 2020026741A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
information
information processing
unit
evaluation
Prior art date
Application number
PCT/JP2019/027415
Other languages
English (en)
French (fr)
Inventor
高橋 亮
愉希夫 大渕
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US17/263,868 priority Critical patent/US20210312295A1/en
Priority to CN201980050289.9A priority patent/CN112513886B/zh
Priority to JP2020534148A priority patent/JP7287397B2/ja
Priority to DE112019003910.5T priority patent/DE112019003910T5/de
Publication of WO2020026741A1 publication Critical patent/WO2020026741A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/2163Partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Definitions

  • the present disclosure relates to an information processing method, an information processing device, and an information processing program. More specifically, the present invention relates to a process of automatically searching for a structure of a neural network.
  • neural networks that mimic the mechanism of the cerebral nervous system are used. Further, since it is known that the accuracy of learning by a neural network largely depends on given data and the structure of the network, a technique for searching for an appropriate structure in the neural network has been proposed.
  • the Pareto optimal solution is updated based on the evaluation result of the neural network, and another neural network having a different structure is generated from the neural network related to the Pareto optimal solution, thereby efficiently searching for a structure according to the environment.
  • the technology is known.
  • an optimal structure is searched for while sequentially generating a network structure by a genetic operation.
  • a calculation amount is considered in addition to the recognition performance, a network structure that can be processed by a computer having a low calculation performance can be obtained.
  • the prior art assumes that a single device processes a neural network. For this reason, for example, when distributed processing is performed in which a plurality of devices share a neural network, it is not always possible to search for an optimal network structure.
  • the present disclosure proposes an information processing method, an information processing apparatus, and an information processing program capable of searching for an appropriate network structure in distributed processing of a neural network.
  • an information processing method is directed to a neural network having a structure in which a computer is divided and held by a first device and a second device.
  • the neural network is evaluated based on information related to information transmission between the first device and the second device, and the structure of the neural network is determined based on the evaluation of the neural network.
  • the information processing method, the information processing apparatus, and the information processing program according to the present disclosure it is possible to search for an appropriate network structure in the distributed processing of the neural network.
  • the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • FIG. 1 is a diagram illustrating an information processing system according to a first embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of a user interface according to the present disclosure.
  • FIG. 2 is a diagram (1) illustrating a structure of a neural network according to the present disclosure.
  • FIG. 3 is a diagram (2) illustrating a structure of a neural network according to the present disclosure.
  • 1 is a diagram illustrating a configuration example of an information processing device according to a first embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating an example of an arithmetic unit information storage unit according to the first embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating an example of a communication standard storage unit according to the first embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example of a model storage unit according to the first embodiment of the present disclosure.
  • FIG. 4 is a diagram illustrating an example of a structure search by a genetic operation according to the present disclosure.
  • FIG. 14 is a diagram illustrating an example of a structure search based on arithmetic unit information according to the present disclosure.
  • 1 is a diagram illustrating a configuration example of an information processing server according to a first embodiment of the present disclosure.
  • FIG. 2 is a diagram illustrating a configuration example of a terminal device according to the first embodiment of the present disclosure.
  • 5 is a flowchart illustrating a procedure of information processing according to the first embodiment of the present disclosure.
  • 5 is a flowchart illustrating a procedure of a search process according to the first embodiment of the present disclosure.
  • FIG. 2 is a hardware configuration diagram illustrating an example of a computer that realizes functions of an information processing device.
  • a neural network is a model imitating a human brain neural circuit, and is a technique for realizing the learning ability of a human on a computer.
  • One of the features of the neural network is that it has a learning ability.
  • an artificial neuron (node) that has formed a network by synaptic connection acquires the ability to solve a problem by changing the synaptic connection strength through learning. That is, the neural network automatically infers a solution rule for a problem by repeating learning.
  • Examples of learning using neural networks include image recognition and voice recognition.
  • the neural network for example, it is possible to classify input image information into any of the numbers 0 to 9 by repeatedly learning a handwritten numeral pattern.
  • the learning ability of the neural network as described above has been attracting attention as a key for promoting the development of artificial intelligence (Artificial @ Intelligence). Further, the pattern recognition ability of the neural network is expected to be applied in various industrial fields.
  • the amount of calculation is one of the important indexes in addition to the learning accuracy.
  • the amount of calculation is determined depending on, for example, the network structure.
  • learning accuracy generally tends to improve as the amount of computation increases.
  • the amount of computation greatly affects the amount of memory used and the execution time of the hardware on which the neural network is mounted, so that a neural network with high learning accuracy is not always the best.
  • the calculation amount and the learning accuracy have a so-called trade-off relationship. Therefore, there is a need for a method of searching for a network structure with higher learning accuracy while suppressing the amount of calculation.
  • the information processing according to the present disclosure evaluates the generated neural network by focusing on the search for the network structure as described above.
  • the information processing according to the present disclosure generates a neural network having an efficient network structure based on the evaluation result, and provides the generated neural network to a user.
  • generation of a neural network includes a process of updating the structure of an existing neural network.
  • generation of a neural network may be realized by a genetic operation including mutation, crossover, and the like.
  • the mutation may be a model of a mutation of a gene found in an organism. That is, in the information processing method according to the present disclosure, each layer constituting the network is regarded as a gene, and the layers are mutated to generate another neural network having a different network structure.
  • the above-mentioned crossover may be a model of partial exchange of chromosomes in the crossing of organisms. That is, in the information processing method according to the present disclosure, another neural network can be generated by partially exchanging the layer configuration of two networks. The details of the mutation and crossover according to the present disclosure will be described later.
  • the neural network according to the present disclosure has a structure that is distributed to the first device and the second device.
  • the first device is, for example, an IoT (Internet of Things) device, and is a computer having relatively low computational performance.
  • the second device is, for example, a server device on a cloud, and is a computer having relatively high computational performance.
  • the first device is a camera having a shooting function
  • the second device is a server device connected to the camera via a wireless network or the like.
  • the assumed information processing is, for example, an image recognition process for an image captured by the camera.
  • the information layer using the neural network can be distributed by distributing the preceding part of the intermediate layer from the input layer to IoT devices and distributing the output layer to the server side from the latter part of the intermediate layer. Is possible.
  • the IoT device acquires intermediate data smaller in size than the input data through a relatively small-scale neural network.
  • the IoT device acquires the compressed intermediate data so that the information amount is smaller than the input data (for example, image data) input to the input layer.
  • the IoT device transmits the intermediate data to the server device.
  • the server device executes the processing of the latter part of the relatively large-scale neural network based on the acquired intermediate data. According to such distributed processing, it is possible to realize advanced recognition processing while suppressing resources such as power consumption as compared with sending input data to the server apparatus as it is.
  • this transmission point Is described as a “transmission point” the compression processing in the first device and the determination of which layer of the neural network to transmit the intermediate data (hereinafter, this transmission point Is described as a “transmission point”), etc., based on information on data transmission, and evaluates a neural network divided into a former stage and a latter stage. Accordingly, the information processing method according to the present disclosure can appropriately search for an efficient structure in the divided neural network.
  • the information processing method according to the present disclosure will be described with reference to specific examples.
  • FIG. 1 is a diagram illustrating an outline of information processing according to the first embodiment of the present disclosure.
  • Information processing according to the first embodiment of the present disclosure is realized by the information processing system 1 illustrated in FIG.
  • the information processing system 1 includes an information processing device 100, an information processing server 200, and a terminal device 300.
  • the information processing device 100 is an example of an information processing device according to the present disclosure, and is a server device managed by a user 10 searching for a structure of a neural network.
  • the information processing device 100 generates a neural network according to the operation of the user 10.
  • the information processing server 200 is an example of a second device according to the present disclosure, and is a server device that executes a subsequent process in a neural network generated by the information processing device 100.
  • the terminal device 300 is an example of a first device according to the present disclosure, and is an information processing terminal that executes a preceding process in a neural network generated by the information processing device 100.
  • the user 10 specifies, via a predetermined user interface provided from the information processing apparatus 100, a neural network that the user 10 requests to generate (step S1).
  • a neural network that the user 10 requests to generate
  • the user 10 specifies a basic neural network structure suitable for a process (image recognition, voice recognition, or the like) that the user wants to execute.
  • the user 10 when generating a neural network for performing image recognition, specifies a layer structure or the like according to the resolution of input image data.
  • the user 10 specifies information on the information processing server 200 and the terminal device 300 that actually execute the processing based on the neural network. For example, the user 10 specifies the computing capability of the terminal device 300, the service provider of the information processing server 200 in which the subsequent neural network is placed, and the like. Further, the user 10 specifies a communication standard or the like between the terminal device 300 and the information processing server 200.
  • FIG. 2 is a diagram illustrating an example of a user interface according to the present disclosure.
  • the user 10 inputs, via the user interface 50, information on the neural network that he / she wants to generate.
  • the user 10 inputs information regarding the arithmetic unit of the terminal device 300 that processes the previous stage of the neural network. For example, the user 10 selects a board name, an SoC (System-on-a-Chip), and an architecture included in the terminal device 300 from the pull-down display 52. Although details will be described later, the information processing apparatus 100 stores a predetermined numerical value corresponding to the selected information, and can change the structure of the neural network according to the selection of the user 10.
  • SoC System-on-a-Chip
  • the pull-down display 52 may allow the user to select a model name or a manufacturer name of the terminal device 300, for example.
  • the information processing device 100 stores the information corresponding to the model name or the manufacturer name of the terminal device 300 so that the selected model Can be referred to the computing unit and computing capability corresponding to.
  • the user 10 selects, from the pull-down display 54, a communication standard between the terminal device 300 and the information processing server 200, and a subcategory for specifying more detailed information on the communication standard and information in a column of details.
  • the communication standard is, for example, 3G, 4G, LTE (Long Term Evolution), or the like.
  • the user 10 selects, from the pull-down display 56, the name of a service providing company that provides a cloud server or the like that places the latter part of the neural network, specific service names, and detailed information.
  • the service providing company refers to a company that provides a cloud service for performing relatively advanced processing to the user 10 or a general company.
  • the information processing apparatus 100 stores a predetermined numerical value corresponding to the information selected by the user 10 in the storage unit 120 in advance as described above, and searches for a neural network structure suitable for the information selected by the user 10.
  • FIG. 3 is a diagram (1) illustrating a structure of a neural network according to the present disclosure.
  • step S11 a situation in which intermediate data is transmitted from the terminal device 300 to the information processing server 200 via the network is conceptually shown (step S11).
  • the terminal device 300 holds the former part 20 of the neural network in a neural network having an intermediate layer of an Nth layer (N is an arbitrary natural number).
  • the information processing server 200 holds the latter part 25 of the neural network.
  • the terminal device 300 performs the processing of the former part 20, and transmits the intermediate data at the transmission point (the third layer in the example of FIG. 3) (step S12).
  • the information processing server 200 receives the intermediate data transmitted at the transmission point, and performs processing using the subsequent part 25 of the fourth layer or lower.
  • FIG. 4 is a diagram (2) illustrating the structure of the neural network according to the present disclosure.
  • the graph 30 in FIG. 4 illustrates the relationship between the structure of the neural network and the amount of information.
  • a display 32 (“input_size” shown in FIG. 4) shown in FIG. 4 indicates the information amount of input data input to the input layer of the neural network.
  • a display 34 (“compressed_size” shown in FIG. 4) shown in FIG. 4 indicates the information amount when the information amount is more compressed than the input data.
  • a display 36 (“transfer_point” illustrated in FIG. 4) illustrated in FIG. 4 indicates a transmission point that is a point at which intermediate data is transmitted to the information processing server 200.
  • a portion closer to the input layer is deeper than a layer in which the size of output information is the largest. It is assumed that a layer in which information is output that is smaller than the size of information output from the input layer of the neural network is determined as a transmission point at which information is transmitted from the terminal device 300 to the information processing server 200. . That is, a layer that satisfies the above condition is an intermediate layer that is a transmission point in the neural network. As shown in the graph 30, in the example of FIG. 4, the third layer corresponds to the transmission point.
  • the display 38 (“all_layer_num” shown in FIG. 4) indicates the total number of layers of the neural network. Further, the display 40 (“server_layer_num” shown in FIG. 4) indicates the number of layers in the latter part of the neural network. The display 42 (“output layer” shown in FIG. 4) indicates the output layer of the neural network.
  • the information processing apparatus 100 determines the structure of the neural network that is divided and held by searching for a transmission point that satisfies the condition. Further, the information processing apparatus 100 searches for a transmission point at which the information amount of the intermediate data transmitted from the terminal apparatus 300 to the information processing server 200 is reduced as much as possible.
  • the information processing apparatus 100 performs the neural network based on the information specified by the user 10 and the information regarding the transmission such as the position of the transmission point and the compression amount of the intermediate data. Is generated (step S2).
  • the information processing apparatus 100 comprehensively evaluates not only the above information but also various information such as the amount of computation and the computing capacity of the terminal device 300, and generates a neural network based on the evaluation result.
  • the information processing apparatus 100 uses the following equation (1) in calculating the evaluation value of the neural network.
  • V eval indicates an evaluation value of the neural network.
  • V recognition quantifies the recognition performance of the neural network.
  • the recognition performance is indicated by, for example, an F value, a precision, a recall, an IoU (Intersection-over-Union) of the recognition processing of the neural network.
  • the information processing apparatus 100 performs normalization or the like on the above numerical values as appropriate to obtain a numerical value as an evaluation value.
  • C computation quantifies the amount of computation required for information processing of the neural network.
  • the operation amount is indicated by, for example, the number of product-sum operations, the number of instructions in a specific processor, and the like.
  • V energy_saving is a model of how much power is reduced by the compression processing of the network structure of the target neural network.
  • An example of the calculation of “V energy_saving ” will be described again using the graph 30 in FIG.
  • “V energy_saving ” is represented by the following equation (2) from the relationship between the output size of each layer of the neural network and the size of the input data (“input_size” shown in FIG. 4).
  • V energy_saving takes a value of “0” when the entire neural network has a structure processed by the second device (the information processing server 200).
  • V energy_saving is obtained by two variables “r compressinon ” and “r depth ” when the entire neural network is not processed by the server, that is, when the neural network is divided.
  • “R compressinon ” is represented by, for example, the following equation (3).
  • r compressinon is a ratio between “compressed_size” and “input_size”. According to Expressions (2) and (3), the smaller the “compressed_size”, the larger the value of “V energy_saving ”. Therefore , the neural network is highly evaluated.
  • r depth is represented, for example, by the following equation (4).
  • r depth is a ratio between “server_layer_num” and “all_layer_num”. According to Expressions (2) and (4), the value of “V energy_saving ” increases as “server_layer_num” increases (in other words, as “r depth ” increases). High praise is given.
  • the information processing apparatus 100 transmits the “intermediate data as small as possible” at the “earlier stage (deep part) of the neural network”.
  • a neural network with is evaluated as being more power saving.
  • weight values may be determined in accordance with the specification of the user 10 such as what variables are to be weighted to generate the neural network.
  • the weight value is a numerical value (a numerical value stored in the information processing device 100) set in advance based on the arithmetic capacity of the terminal device 300 and a relationship such as a communication standard between the terminal device 300 and the information processing server 200. ) May be determined automatically.
  • the information processing apparatus 100 evaluates the generated neural network using Expression (1). Then, the information processing device 100 continues searching for the structure of the neural network until the evaluation value satisfies the predetermined condition. For example, the information processing apparatus 100 changes the structure of the neural network using a genetic structure search method described later, and calculates an evaluation value for the changed structure.
  • the information processing apparatus 100 optimizes the structure of the evaluated neural network. Is determined, and the structure of the neural network to be provided is determined. The information processing device 100 generates a neural network based on the determined structure, and stores the generated neural network in the storage unit 120.
  • the information processing apparatus 100 transmits the neural network whose structure has been determined to the information processing server 200 (step S3).
  • the information processing server 200 receives the transmitted neural network.
  • the information processing server 200 divides the received neural network at transmission points (step S4).
  • the information processing server 200 stores the latter part of the divided neural network in the storage unit 220.
  • the information processing server 200 transmits the former part of the divided neural network to the terminal device 300 (Step S5).
  • the terminal device 300 receives the transmitted precedent part of the neural network, and stores the received precedent part in the storage unit 320.
  • the terminal device 300 When the terminal device 300 has an opportunity to execute an image recognition process using a neural network, for example, the terminal device 300 obtains intermediate data obtained by compressing the input image data by using a preceding stage of the neural network. Then, the terminal device 300 transmits the intermediate data to the information processing server 200. The information processing server 200 inputs the intermediate data transmitted from the terminal device 300 to a subsequent stage of the neural network, and performs an image recognition process. Accordingly, the terminal device 300 and the information processing server 200 can realize advanced recognition processing without directly transmitting image data having a large amount of information to the information processing server 200. Can be reduced.
  • the information processing method according to the present disclosure can be applied to a first network (a terminal device 300) and a second device (an information processing server 200) in a neural network having a structure that is divided and held.
  • the neural network is evaluated based on information relating to the transmission of information between the first device and the second device. Further, the information processing method according to the present disclosure determines the structure of the neural network based on the evaluation of the neural network.
  • the information processing method according to the present disclosure uses the information regarding transmission for evaluation, thereby dividing the data based on the compression amount of data transmitted on the edge side (terminal device 300), the location of the transmission point, and the like. Search of the structure of the neural network held as a result.
  • the information processing method according to the present disclosure it is possible to search for an optimal structure when distributed processing such as recognition processing via communication is performed using a neural network.
  • FIG. 5 is a diagram illustrating a configuration example of the information processing device 100 according to the first embodiment of the present disclosure.
  • the information processing apparatus 100 includes a communication unit 110, a storage unit 120, and a control unit 130.
  • the information processing apparatus 100 includes an input unit (for example, a keyboard and a mouse) for receiving various operations from an administrator or the like managing the information processing apparatus 100, and a display unit (for example, a liquid crystal display or the like) for displaying various information. ) May be included.
  • the communication unit 110 is realized by, for example, an NIC (Network Interface Card) or the like.
  • the communication unit 110 is connected to a network N (such as the Internet) by wire or wirelessly, and transmits and receives information to and from the information processing server 200 and the terminal device 300 via the network N.
  • a network N such as the Internet
  • the storage unit 120 is realized by, for example, a semiconductor memory device such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disk.
  • the storage unit 120 includes a learning data storage unit 121, a computing unit information storage unit 122, a communication standard storage unit 123, and a model storage unit 124.
  • each storage unit will be described in order.
  • the learning data storage unit 121 stores a learning data group used for learning of the neural network.
  • the learning data is a set of image data and a set of correct answer data as a recognition result of the image data.
  • the learning data may be appropriately acquired from an external server or the like without being held by the information processing apparatus 100.
  • the arithmetic unit information storage unit 122 stores information regarding an arithmetic unit of an apparatus that performs arithmetic processing using a neural network.
  • FIG. 6 illustrates an example of the computing unit information storage unit 122 according to the first embodiment.
  • FIG. 6 is a diagram illustrating an example of the computing unit information storage unit 122 according to the first embodiment of the present disclosure.
  • the computing unit information storage unit 122 has items such as “apparatus ID”, “type”, and “computing unit information”.
  • Device ID is identification information for identifying a device that executes a process using a neural network.
  • Type indicates the type of the device.
  • Computer unit information indicates information on the computing unit of each device.
  • the item of the operation unit information is conceptually described as “operation unit information # 1”.
  • the operation unit information item includes an operation unit capable of performing a floating-point operation.
  • Various types of information are stored, such as information that the device has, or its operation performance, and information for identifying a board or SoC used for the operation.
  • the information processing apparatus 100 may calculate the evaluation of the neural network according to the arithmetic unit and the arithmetic performance of each apparatus. At this time, the information processing device 100 may perform a predetermined correction on the evaluation value based on the arithmetic unit information of the device that executes the neural network.
  • the device identified by the device ID “A01” has a type of “server” and the computing unit information is “computing unit information # 1”.
  • the communication standard storage unit 123 stores a communication standard used for communication between the first device and the second device when the neural network is distributed and held, and a predetermined numerical value given to the communication standard. The relationship with is stored.
  • FIG. 7 illustrates an example of the communication standard storage unit 123 according to the first embodiment.
  • FIG. 7 is a diagram illustrating an example of the communication standard storage unit 123 according to the first embodiment of the present disclosure.
  • the communication standard storage unit 123 includes items such as “communication standard ID”, “communication standard”, and “correction value”.
  • Communication standard ID indicates identification information for identifying a communication standard.
  • Communication standard indicates a communication standard used for communication between the first device and the second device.
  • the “correction value” is a value that is corrected according to the specified communication standard when the communication standard is specified by the user 10 in the generation of the neural network. For example, the weight value shown in Expression (1) is determined. Used for In FIG. 7, the correction value item is conceptually described as “correction value # 11”. However, in practice, the correction value item includes a numerical value that is actually substituted as a weight value or a weight value. A numerical value such as a ratio to be multiplied in the calculation of the value is stored.
  • the communication standard identified by the communication standard ID “B01” is “3G”, and the correction value is “correction value # 11”.
  • the model storage unit 124 stores a model (such as an image recognition model having a divided neural network structure) generated by the information processing device 100.
  • FIG. 8 illustrates an example of the model storage unit 124 according to the first embodiment.
  • FIG. 8 is a diagram illustrating an example of the model storage unit 124 according to the first embodiment of the present disclosure.
  • the model storage unit 124 has items such as “model ID”, “structure information”, “transmission information”, and “evaluation value”.
  • Model ID indicates identification information for identifying a model.
  • Structure information indicates structural information of the model.
  • the structure information item is conceptually described as “structure information # 1”. However, in actuality, the structure information item includes the total number of layers and data accepted as input data.
  • Various types of information about the structure of the neural network such as the type and amount of information and the type of the activation function, are stored.
  • Transmission information indicates information on transmission in the model that is divided and held.
  • the items of the transmission information are conceptually described as “transmission information # 1”.
  • the items of the transmission information include the compression ratio of the intermediate data to be transmitted and the transmission point. And the like are stored.
  • Evaluation value indicates the evaluation value of the model.
  • the item of the evaluation value is conceptually described as “evaluation value # 1”.
  • the item of the evaluation value includes the model calculated using Expression (1). Is stored.
  • the model identified by the model ID “M01” has structure information “structure information # 1”, transmission information “transmission information # 1”, and an evaluation value "Evaluation value # 1".
  • the control unit 130 stores a program (for example, an information processing program according to the present disclosure) stored in the information processing apparatus 100 by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. ) Is performed as a work area.
  • the control unit 130 is a controller, and may be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • control unit 130 includes a reception unit 131, a generation unit 132, a search unit 133, an evaluation unit 134, a determination unit 135, and a transmission unit 136, and includes information described below. Implement or execute a processing function or action.
  • the internal configuration of the control unit 130 is not limited to the configuration illustrated in FIG. 5 and may be another configuration as long as the configuration performs information processing described below.
  • the receiving unit 131 receives various information. For example, the receiving unit 131 receives a request for generating a neural network from the user 10 via the user interface 50 illustrated in FIG.
  • the receiving unit 131 receives, from the user 10, the type of information processing performed using a neural network, such as image recognition or voice recognition, together with the generation request. In addition, the receiving unit 131 receives information such as the type and resolution of input data. That is, the receiving unit 131 receives, from the user 10, basic information necessary for determining a basic structure of the neural network.
  • the receiving unit 131 is configured to execute the neural network to be generated, the configuration of the first device and the second device, the communication standard between the first device and the second device, and the environment in which the neural network is provided. Is received via the user interface 50.
  • the configurations of the first device and the second device are information specified by the user 10 by using the pull-down display 52 shown in FIG. 2 and the like, for example, such as the board name of the first device and the SoC. It is a name.
  • the communication standard between the first device and the second device is information specified by the user 10 by using the pull-down display 54 shown in FIG.
  • the user 10 may communicate between the first device and the second device when a communication standard supported by both the first device and the second device or when processing using a neural network is actually performed. Specify the assumed communication standard, etc.
  • the receiving unit 131 receives a communication standard specified by the user 10.
  • the information on the environment in which the neural network is provided is information specified by the user 10 by using the pull-down display 56 shown in FIG.
  • the name of the service providing company to be provided is information specified by the user 10 by using the pull-down display 56 shown in FIG. The name of the service providing company to be provided.
  • the reception unit 131 receives information from the user 10 about the configuration of the first device and the second device, the communication standard between the first device and the second device, and information about the environment in which the neural network is provided. May be used to determine the weight value in equation (1). For example, it is assumed that a numerical value serving as a reference is given in advance to the weight value by an administrator of the information processing apparatus 100 or the like. Specifically, the weight value holds a relationship in which the sum of “k 1 ”, “k 2 ”, and “k 3 ” in Expression (1) is “1”, and for example, the communication standard is “3G” In this case, it is determined by correcting the value of “k 3 ” to be relatively large.
  • the variable that causes a bottleneck in information processing for transmission between the first device and the second device is “V energy_saving ”.
  • the weighting of “V energy_saving ” makes the information processing in the divided neural network more efficient. Because it is likely to be performed smoothly.
  • the setting of the weight value is not limited to the above example, and may be automatically tuned by a learning process based on a result of actual information processing. Further, the weight value may be determined by receiving an input of a numerical value from the user 10.
  • the generating unit 132 generates a neural network having a structure that is divided and held by the first device and the second device. For example, the generating unit 132 generates a neural network desired by the user 10 based on the information received by the receiving unit 131.
  • the generation unit 132 updates the generated neural network through the processing by the search unit 133 and the evaluation unit 134 described below. For example, the generation unit 132 updates the structure of the existing neural network through the search processing by the search unit 133. Further, the generation unit 132 updates the neural network based on the evaluation value calculated by the evaluation unit 134. For example, when the evaluation value calculated by the evaluation unit 134 is lower than a predetermined threshold, the generation unit 132 determines that the structure of the neural network is not optimal, and adds the neural network to the structure newly searched by the search unit 133. To update.
  • the search unit 133 searches for the structure of the neural network.
  • the search unit 133 can search the structure using various known methods.
  • the search unit 133 may search for the structure of the neural network using a genetic operation.
  • FIG. 9 is a diagram illustrating an example of a structure search by a genetic operation according to the present disclosure.
  • FIG. 9 shows an example in which a search for a structure of a neural network by mutation (generation of a new neural network) is performed as a genetic operation.
  • another neural network having a different network structure is generated from the evaluated neural network (hereinafter, referred to as a “seed network”) as a base.
  • the search for the structure of the neural network using the genetic operation includes mutation, crossover, and the like. That is, in the search method according to the present disclosure, another neural network having a different network structure is generated by regarding each layer constituting the network as a gene and mutating or crossing the layers.
  • the seed network SN is composed of ten layers including “Input” and “Output”. “Input” indicates an input layer, and “Output” indicates an output layer. “Conv1” and “Conv2” illustrated in FIG. 9 indicate a Convolution layer (convolution layer). “Pool1” and “Pool2” indicate Max-Pooling (pooling layer). Further, as shown in FIG. 9, parameters such as a kernel shape and the number of output maps are set in “Conv1” and “Conv2”. In addition, a parameter indicating a pool shape is set in “Pool1” and “Pool2”. Note that each layer shown in FIG. 9 is widely and generally used, and thus detailed description is omitted. The structure of each layer illustrated in FIG. 9 is defined by the user 10 via the user interface 50, for example, as information unique to the task to be processed using the neural network.
  • the search unit 133 generates a neural network MN1, which is another neural network, by mutating or crossing over the seed network SN (step S21).
  • the neural network MN1 is obtained by partially changing the layer configuration from the network structure of the seed network SN. Specifically, in the neural network MN1, the activation function “relu1” related to the seed network SN has changed to another activation function “Tanh1”. As described above, in the information processing method according to the present disclosure, another neural network having a different network structure can be generated by changing the layer type of the layers configuring the network structure.
  • the search unit 133 may generate a neural network MN2, which is another neural network, by mutating or crossing over the neural network MN1 (step S22).
  • an activation function “Abs1” is inserted in addition to the layer configuration of the neural network MN1.
  • another neural network MN2 having a different network structure can be generated by newly inserting a layer.
  • the mutation relating to the genetic operation includes, in addition to the above-described processing, for example, “layer insertion”, “layer deletion”, “layer type change”, “parameter change”, “graph branch”, “graph branch”. Operations such as "delete”.
  • the crossover related to the genetic operation is an operation of exchanging layers between the seed network additionally specified by the user 10 and the currently held neural network.
  • Various methods such as one-point crossover, two-point crossover, and multipoint crossover can be supported as to how to switch layers.
  • a structure search and generation technique is not limited to an example using a genetic operation.
  • the evaluation unit 134 evaluates the neural network (in other words, the network structure of the neural network).
  • the evaluation unit 134 learns the learning data stored in the learning data storage unit 121 or the like using the structure of the neural network searched by the search unit 133. Then, as will be described later, the evaluation unit 134 calculates an evaluation value after comprehensively considering information on transmission, a power saving effect, a recognition performance of a neural network, a calculation amount, and the like. In the above-described learning process, an existing software library or the like developed for learning and evaluating the neural network may be used as appropriate.
  • the evaluator 134 converts information related to transmission of information between the first device and the second device in a neural network having a structure that is divided and held by the first device and the second device.
  • the neural network is evaluated based on the neural network.
  • the evaluator 134 determines, among the layers of the neural network, information that is deeper than the layer where the size of the output information is the largest and that is smaller than the size of the information output from the input layer of the neural network. Is determined as a transmission point at which information is transmitted from the first device to the second device. Then, the evaluation unit 134 evaluates the neural network based on the information on the determined transmission point.
  • the evaluation unit 134 evaluates the neural network based on the number of layers existing at a depth lower than the transmission point and the total number of layers forming the neural network. Specifically, the evaluation unit 134 evaluates the neural network based on the index value represented by “V energy_saving ” shown in the above equations (1) to (4).
  • the evaluation unit 134 may comprehensively evaluate the neural network based on not only information on transmission but also other index values shown in the above equation (1).
  • the evaluation unit 134 evaluates the neural network based on an index value indicating the recognition performance of the neural network. Specifically, the evaluation unit 134 evaluates the neural network based on the index value represented by “V recognition ” in the above equation (1). As an example, the evaluation unit 134 evaluates the neural network based on an F value, a precision, a recall, an IoU, or the like normalized as an index value in the neural network recognition processing, and the like.
  • the evaluation unit 134 evaluates the neural network based on the amount of calculation in the neural network. Specifically, the evaluation unit 134 evaluates the neural network based on the index value indicated by “C computation ” in the above equation (1). As an example, the evaluation unit 134 evaluates the neural network based on the number of product-sum operations performed when the neural network is executed, the number of instructions in a specific processor, and the like.
  • the evaluation unit 134 may evaluate the neural network based on information regarding the performance of the arithmetic processing of the first device.
  • Various devices such as an IoT device are assumed as the first device such as the terminal device 300 in which the former stage of the neural network is processed. For this reason, it is assumed that the performance of the arithmetic processing of each device is also variously different. For this reason, the evaluation unit 134 can obtain a more realistic evaluation by adding information on the performance of the arithmetic processing of the first device to the evaluation target.
  • the evaluation unit 134 may perform the evaluation using the following equation (5) in which a variable is added to the above equation (1).
  • Equation (5) further has a weight value “k 4 ” and a variable “V efficient_arithmetic ” as compared to equation (1).
  • “V efficient_arithmetic ” indicates the calculation efficiency in the first device.
  • the evaluation unit 134 considers not only the amount of power involved in communication (transmission) but also the characteristics of a device (first device) that processes the neural network, such as the terminal device 300, as a computer, and considers the neural network. evaluate.
  • the user 10 can easily acquire a network structure in which the operation efficiency on the first device side is increased. This means that when the operation efficiency of a specific expression format in the first device is low, the evaluation value of a network having a large number of operations in that format is reduced.
  • the evaluator 134 evaluates the neural network based on the number of times of performing a floating-point operation (the number of instructions) in each layer of the neural network held in the first device and the number of times of performing an operation other than the floating-point operation. May be.
  • the evaluation unit 134 lowers the evaluation value of the neural network having a relatively large number of floating-point operations.
  • the evaluation unit 134 increases the evaluation value of the neural network.
  • the evaluation unit 134 may calculate the variable “V efficient_arithmetic ” using, for example, an expression such as the following Expression (6).
  • N dev indicates the number of layers to be processed on the terminal device 300 side.
  • FI i indicates the number of instructions using a floating-point arithmetic unit in each layer.
  • OI i indicates the number of other instructions.
  • FIG. 10 is a diagram illustrating an example of a structure search based on arithmetic unit information according to the present disclosure.
  • FIG. 10 shows an example in which the transmission point (“transfer_point”) is the third layer.
  • the evaluation unit 134 calculates the number of instructions using the floating-point arithmetic unit and the number of other instructions in each layer of the neural network in the terminal device 300.
  • the number of instructions is conceptually shown as “# 21”.
  • the evaluation unit 134 calculates the value of “V efficient_arithmetic ” by substituting the number of instructions shown in Table 60 into Expression (6), and also calculates the value of “V eval ”, which is the evaluation value of the neural network. calculate.
  • the evaluation unit 134 virtually expands the table 60 illustrated in FIG. 10 in the storage unit 120, and obtains the value of “V eval ” through the above calculation process.
  • a predetermined weight value is set for each variable for which an evaluation value is obtained. That is, the evaluation unit 134 multiplies each of the information on the transmission, the index value indicating the recognition performance of the neural network, the amount of operation in the neural network, and the information on the performance of the arithmetic processing of the first device by a predetermined weight value. Evaluate the neural network based on the values.
  • the evaluation unit 134 includes information on the configuration of the first device and the second device, the communication standard between the first device and the second device, and information on the environment in which the neural network is provided.
  • the weight value is determined based on the weight value.
  • the evaluation unit 134 may determine each weight value according to the designation from the user 10.
  • the user 10 can arbitrarily set a weight value with emphasis on the performance that the user 10 emphasizes, and thus can obtain a desired neural network structure.
  • the determination unit 135 determines the structure of the neural network based on the evaluation result of the neural network by the evaluation unit 134.
  • the determination unit 135 determines that the structure of the neural network is optimal when the search process ends. Determine the structure of
  • the search process by the search unit 133 such as adding a genetic operation is performed again. It may be executed.
  • the termination condition may be arbitrarily set by the user 10. The termination condition may be created by combining the recognition performance of the neural network, the amount of calculation, the power saving effect, the compression ratio, the number of repetitions of the repetition processing such as how many times the search processing is repeated, and the like.
  • the transmission unit 136 transmits the neural network having the structure determined by the determination unit 135 to the second device.
  • FIG. 11 is a diagram illustrating a configuration example of the information processing server 200 according to the first embodiment of the present disclosure.
  • the information processing server 200 includes a communication unit 210, a storage unit 220, and a control unit 230.
  • the information processing server 200 includes an input unit (for example, a keyboard and a mouse) for receiving various operations from an administrator or the like managing the information processing server 200, and a display unit (for example, a liquid crystal display or the like) for displaying various information. ) May be included.
  • the communication unit 210 is realized by, for example, an NIC or the like.
  • the communication unit 210 is connected to the network N by wire or wirelessly, and transmits and receives information to and from the information processing device 100 and the terminal device 300 via the network N.
  • the storage unit 220 is realized by, for example, a semiconductor memory device such as a RAM or a flash memory, or a storage device such as a hard disk or an optical disk.
  • the storage unit 220 includes a latter-stage model storage unit 221.
  • the post-stage model storage unit 221 stores a post-stage portion of the neural network transmitted from the information processing apparatus 100, which is after the transmission point.
  • the control unit 230 is realized by, for example, executing a program stored in the information processing server 200 using a RAM or the like as a work area by a CPU, an MPU, or the like. Further, the control unit 230 is a controller, and may be realized by, for example, an integrated circuit such as an ASIC or an FPGA.
  • control unit 230 includes a model receiving unit 231, a dividing unit 232, a model transmitting unit 233, an intermediate data receiving unit 234, a recognizing unit 235, and a recognition result transmitting unit 236. Implements or executes the functions and operations of the information processing described below. Note that the internal configuration of the control unit 230 is not limited to the configuration shown in FIG. 11, and may be another configuration as long as it performs information processing described later.
  • the model receiving unit 231 receives a model (a recognition processing model having a neural network structure, etc.) transmitted from the information processing apparatus 100.
  • the division unit 232 divides the model received by the model reception unit 231. Then, the dividing unit 232 stores the latter part of the neural network in the divided model in the latter model storage unit 221.
  • the model transmitting unit 233 transmits, to the terminal device 300, the former part of the neural network in the model divided by the dividing unit 232.
  • the intermediate data receiving unit 234 receives intermediate data (data compressed in the terminal device 300) transmitted from the terminal device 300.
  • the recognition unit 235 inputs the intermediate data received by the intermediate data reception unit 234 to a subsequent stage of the neural network and performs various recognition processes. For example, when the input data is image data, the recognition unit 235 performs an image recognition process.
  • the recognition result transmitting unit 236 transmits the result recognized by the recognizing unit 235 to the terminal device 300. Accordingly, the user of the terminal device 300 can obtain a recognition result of the data input by the user. Further, the recognition result transmitting unit 236 may transmit the result recognized by the recognizing unit 235 to the information processing device 100.
  • FIG. 12 is a diagram illustrating a configuration example of the terminal device 300 according to the first embodiment of the present disclosure.
  • the terminal device 300 includes a communication unit 310, a storage unit 320, and a control unit 330.
  • the terminal device 300 has an input unit (for example, a keyboard and a mouse) for receiving various operations from a user or the like who uses the terminal device 300, and a display unit (for example, a liquid crystal display or the like) for displaying various information. May be.
  • the communication unit 310 is realized by, for example, an NIC or the like.
  • the communication unit 310 is connected to the network N by wire or wirelessly, and transmits and receives information to and from the information processing apparatus 100 and the information processing server 200 via the network N.
  • the storage unit 320 is realized by, for example, a semiconductor memory device such as a RAM or a flash memory, or a storage device such as a hard disk or an optical disk.
  • the storage unit 320 has a preceding model storage unit 321.
  • the former model storage unit 321 stores the latter part of the neural network generated by the information processing apparatus 100, which is the former part (deep part) of the transmission point.
  • the control unit 330 is realized, for example, by a CPU, an MPU, or the like executing a program stored in the terminal device 300 using a RAM or the like as a work area. Further, the control unit 330 is a controller, and may be realized by, for example, an integrated circuit such as an ASIC or an FPGA.
  • control unit 330 includes a model receiving unit 331, a sensing unit 332, a recognizing unit 333, and an intermediate data transmitting unit 334, and realizes functions and operations of information processing described below. Or execute. Note that the internal configuration of the control unit 230 is not limited to the configuration shown in FIG.
  • the model receiving unit 331 receives a preceding part of a model (such as a recognition processing model having a neural network structure) transmitted from the information processing server 200.
  • the model receiving unit 331 stores the preceding part of the received model in the preceding model storage unit 321.
  • the sensing unit 332 performs sensing by using various sensors and acquires various data. For example, the sensing unit 332 acquires image data using a camera. In addition, the sensing unit 332 may acquire sound using a microphone. In addition, the sensing unit 332 may acquire not only information using a sensor but also any information such as data input from a user as long as the information can be input data of a model having a neural network.
  • the recognition unit 333 inputs the information acquired by the sensing unit 332 to the former stage of the neural network, and performs various recognition processes. For example, the recognizing unit 333 obtains intermediate data having a smaller amount of information than the input data by inputting the input data to the preceding stage of the neural network. That is, the recognition unit 333 performs a recognition process up to the transmission point in the neural network.
  • the intermediate data transmission unit 334 transmits the intermediate data output by the recognition unit 333 to the information processing server 200. Further, after transmitting the intermediate data to the information processing server 200, the intermediate data transmitting unit 334 receives the recognition result from the information processing server 200. Accordingly, the terminal device 300 can obtain a result of image recognition or the like without performing a process of a subsequent stage that requires a relatively advanced operation.
  • FIG. 13 is a flowchart illustrating a procedure of information processing according to the first embodiment of the present disclosure.
  • the information processing apparatus 100 determines whether or not model setting information has been received from the user 10 via the user interface 50 (step S101). If the model setting information has not been received (Step S101; No), the information processing apparatus 100 waits until the model setting information is received.
  • step S101 when the model setting information has been received (step S101; Yes), the information processing apparatus 100 executes a search process regarding the structure of the neural network (step S102). Details of the search processing will be described later with reference to FIG.
  • the information processing device 100 determines the network structure of the neural network (step S103). Then, the information processing device 100 transmits the model whose structure has been determined to the information processing server 200 (Step S104).
  • FIG. 14 is a flowchart illustrating a procedure of a search process according to the first embodiment of the present disclosure.
  • the information processing apparatus 100 inputs a basic seed network (step S201). Subsequently, the information processing apparatus 100 performs a genetic operation on the network structure of the seed network (step S202). Thereby, the information processing apparatus 100 obtains neural networks having different network structures.
  • the information processing apparatus 100 calculates an evaluation value of the obtained neural network (step S203). Subsequently, the information processing apparatus 100 determines whether or not the obtained evaluation value matches the search termination condition (step S204).
  • step S204 If the termination condition is not satisfied (step S204; No), the information processing apparatus 100 obtains a neural network having a new structure by performing a genetic operation on the network structure again (step S202).
  • Step S204 if the termination condition is satisfied (Step S204; Yes), the information processing apparatus 100 completes the search processing.
  • the information processing device 100 when the information processing device 100 reflects the calculation performance of the first device (the terminal device 300) on the evaluation value, the information processing device 100 uses the presence or absence of a floating-point calculator and the performance of the floating-point calculation. Examples have been given.
  • the information processing device 100 may reflect the operation performance of the first device in the evaluation value by using the operation performance different from the above.
  • the information processing apparatus 100 uses a neural network based on a relationship between the number of times of performing multiplication and the number of times of performing operations other than multiplication in a layer of the neural network held in the first apparatus. Evaluate the network.
  • the information processing apparatus 100 achieves higher power saving by evaluating the structure of the neural network based on whether or not the first apparatus can perform the operation without performing the multiplication.
  • a device having relatively low computational performance such as an IoT device
  • the first device when the convolution operation or inner product operation on the first device is replaced with a relatively low-load operation using a known technique called BinaryNet or the like, the first device performs addition or multiplication. Approximation calculation can be performed by a simple calculation such as XNOR or bit count without performing the calculation. For example, as described above, when the first device is realized by an ASIC, an FPGA, or the like, a multiplier can be removed from the first device by this replacement, so that greater power saving can be achieved. is there. In order to achieve such power saving, the variable represented by the above equation (6) is redefined by the following equation (7).
  • N dev indicates the number of layers to be processed on the first device side among the total number of layers of the neural network.
  • MI i indicates the number of multiplication instructions in each layer of the first device.
  • OI i indicates the number of instructions other than the multiplication in each layer of the first device.
  • the information processing apparatus 100 can indirectly support that the first apparatus and the second apparatus perform advanced recognition while suppressing the amount of power.
  • the neural network having one transmission point has been described as an example.
  • a plurality of transmission points may exist.
  • processing using a neural network may be executed by three or more devices.
  • the processing using the neural network may be performed by a wearable device such as an earphone, a smart device such as a smartphone, and a cloud server.
  • the information processing apparatus 100 performs two or more transmissions.
  • a structure of a neural network having points may be generated and the structure may be evaluated.
  • the evaluation amount is not limited to the power, and any information may be adopted as long as it is a numerical value having some index such as the amount of information to be transmitted and the amount of calculation.
  • the information processing apparatus 100 may re-search the structure of the neural network by receiving feedback of the recognition result actually executed by the terminal apparatus 300 or the information processing server 200. For example, when the number of transmissions between the terminal device 300 and the information processing server 200 is performed more frequently than expected, or when the communication state is worse than expected, the information processing apparatus 100 May be adjusted heavily, and an adjustment such as re-searching the structure of the neural network may be performed.
  • each device shown in the drawings are functionally conceptual, and do not necessarily need to be physically configured as shown in the drawings. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part thereof may be functionally or physically distributed / arbitrarily divided into arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • FIG. 15 is a hardware configuration diagram illustrating an example of a computer 1000 that implements the functions of the information processing apparatus 100.
  • the computer 1000 has a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, a HDD (Hard Disk Drive) 1400, a communication interface 1500, and an input / output interface 1600.
  • Each unit of the computer 1000 is connected by a bus 1050.
  • the CPU 1100 operates based on a program stored in the ROM 1300 or the HDD 1400, and controls each unit. For example, the CPU 1100 loads a program stored in the ROM 1300 or the HDD 1400 into the RAM 1200, and executes processing corresponding to various programs.
  • the ROM 1300 stores a boot program such as a BIOS (Basic Input Output System) executed by the CPU 1100 when the computer 1000 starts up, a program that depends on the hardware of the computer 1000, and the like.
  • BIOS Basic Input Output System
  • the HDD 1400 is a computer-readable recording medium for non-temporarily recording a program executed by the CPU 1100 and data used by the program.
  • HDD 1400 is a recording medium that records an information processing program according to the present disclosure, which is an example of program data 1450.
  • the communication interface 1500 is an interface for connecting the computer 1000 to an external network 1550 (for example, the Internet).
  • the CPU 1100 receives data from another device via the communication interface 1500 or transmits data generated by the CPU 1100 to another device.
  • the input / output interface 1600 is an interface for connecting the input / output device 1650 and the computer 1000.
  • the CPU 1100 receives data from an input device such as a keyboard and a mouse via the input / output interface 1600.
  • the CPU 1100 transmits data to an output device such as a display, a speaker, or a printer via the input / output interface 1600.
  • the input / output interface 1600 may function as a media interface that reads a program or the like recorded on a predetermined recording medium (media).
  • the medium is, for example, an optical recording medium such as a DVD (Digital Versatile Disc), a PD (Phase Changeable Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory. It is.
  • an optical recording medium such as a DVD (Digital Versatile Disc), a PD (Phase Changeable Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory. It is.
  • the CPU 1100 of the computer 1000 implements the functions of the control unit 130 and the like by executing the information processing program loaded on the RAM 1200. I do.
  • the HDD 1400 stores an information processing program according to the present disclosure and data in the storage unit 120. Note that the CPU 1100 reads and executes the program data 1450 from the HDD 1400. However, as another example, the CPU 1100 may acquire these programs from another device via the external network 1550.
  • the present technology can also have the following configurations.
  • the neural network according to (6) wherein the neural network is evaluated based on the number of times that a floating-point operation is performed in each layer of the neural network held in the first device and the number of times that an operation other than the floating-point operation is performed. Information processing method.
  • the neural network is evaluated based on the relationship between the number of times of performing multiplication in each layer of the neural network held in the first device and the number of times of performing operations other than multiplication. (6) or (7) An information processing method according to claim 1.
  • a neural network having a structure that is divided and held by a first device and a second device the neural network is configured based on information related to information transmission between the first device and the second device.
  • Computer In a neural network having a structure that is divided and held by a first device and a second device, the neural network is configured based on information related to information transmission between the first device and the second device.

Landscapes

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

Abstract

本開示に係る情報処理方法は、コンピュータが、第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価し、前記ニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する。

Description

情報処理方法、情報処理装置及び情報処理プログラム
 本開示は、情報処理方法、情報処理装置及び情報処理プログラムに関する。詳しくは、ニューラルネットワークの構造を自動探索する処理に関する。
 様々な技術分野において、脳神経系の仕組みを模したニューラルネットワークが活用されている。また、ニューラルネットワークによる学習の精度は、与えられるデータやネットワークの構造に大きく依存することが知られていることから、ニューラルネットワークにおける適切な構造を探索する技術も提案されている。
 例えば、ニューラルネットワークの評価結果に基づいてパレート最適解を更新し、パレート最適解に係るニューラルネットワークから、構造の異なる別のニューラルネットワークを生成することで、環境に応じた構造を効率的に探索する技術が知られている。
国際公開第2017/154284号
 従来技術によれば、遺伝的操作によってネットワーク構造を順次生成しながら、最適な構造を探索する。このとき、従来技術は、認識性能に加えて演算量も考慮するため、演算性能の低い計算機にも処理可能なネットワーク構造を獲得し得る。
 しかしながら、従来技術は、単一の機器でニューラルネットワークを処理する場合を想定している。このため、例えば複数の機器でニューラルネットワークを共有するような分散処理が行われる場合においては、最適なネットワーク構造を探索できるとは限らない。
 そこで、本開示では、ニューラルネットワークの分散処理における適切なネットワーク構造を探索することができる情報処理方法、情報処理装置及び情報処理プログラムを提案する。
 上記の課題を解決するために、本開示に係る一形態の情報処理方法は、コンピュータが、第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価し、前記ニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する。
 本開示に係る情報処理方法、情報処理装置及び情報処理プログラムによれば、ニューラルネットワークの分散処理における適切なネットワーク構造を探索することができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本開示の第1の実施形態に係る情報処理システムを示す図である。 本開示に係るユーザインターフェイスの一例を示す図である。 本開示に係るニューラルネットワークの構造を説明するための図(1)である。 本開示に係るニューラルネットワークの構造を説明するための図(2)である。 本開示の第1の実施形態に係る情報処理装置の構成例を示す図である。 本開示の第1の実施形態に係る演算器情報記憶部の一例を示す図である。 本開示の第1の実施形態に係る通信規格記憶部の一例を示す図である。 本開示の第1の実施形態に係るモデル記憶部の一例を示す図である。 本開示に係る遺伝的操作による構造探索の一例を示す図である。 本開示に係る演算器情報に基づく構造探索の一例を示す図である。 本開示の第1の実施形態に係る情報処理サーバの構成例を示す図である。 本開示の第1の実施形態に係る端末装置の構成例を示す図である。 本開示の第1の実施形態に係る情報処理の手順を示すフローチャートである。 本開示の第1の実施形態に係る探索処理の手順を示すフローチャートである。 情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
(1.第1の実施形態)
[1-1.本開示に係るニューラルネットワークについて]
 ニューラルネットワークとは、人間の脳神経回路を模したモデルであり、人間が持つ学習能力をコンピュータ上で実現しようとする技法である。ニューラルネットワークは、学習能力を有することを特徴の一つとする。ニューラルネットワークでは、シナプスの結合によりネットワークを形成した人工ニューロン(ノード)が、学習によりシナプスの結合強度を変化させることで、問題に対する解決能力を獲得する。すなわち、ニューラルネットワークは、学習を重ねることで、問題に対する解決ルールを自動的に推論する。
 ニューラルネットワークによる学習の例としては、画像認識や音声認識が挙げられる。ニューラルネットワークでは、例えば、手書きの数字パターンを繰り返し学習することで、入力される画像情報を0~9の数字のいずれかに分類することが可能となる。ニューラルネットワークの有する上記のような学習能力は、人工知能(Artificial Intelligence)の発展を推し進める鍵としても注目されている。また、ニューラルネットワークが有するパターン認識力は、種々の産業分野における応用が期待される。
 ここで、ニューラルネットワークによる学習の精度は、与えられるデータやネットワーク構造に大きく依存することが知られている。すなわち、ニューラルネットワークによる学習では、与えられるデータの量と質が直接的に性能に影響する。また、同一のデータが与えられた場合でも、ネットワーク構造の異なるニューラルネットワークでは、学習精度に大きな差が生じる可能性がある。
 また、ニューラルネットワークによる処理においては、学習精度のほか、演算量も重要な指標の一つとなる。ニューラルネットワークにおいて、演算量は、例えばネットワーク構造に依存して求められる。ニューラルネットワークでは、通常、演算量が増加するほど学習精度が向上する傾向がある。
 しかし、演算量は、ニューラルネットワークが搭載されるハードウェアの使用メモリ量や実行時間に大きく影響するため、学習精度の高いニューラルネットワークが必ずしも最良とは限らない。言い換えると、ニューラルネットワークにおいて、演算量と学習精度とは、いわゆるトレードオフの関係となる。このため、演算量を抑えつつ、より学習精度の高いネットワーク構造を探索する手法が求められる。
 本開示に係る情報処理は、上記で説明したようなネットワーク構造の探索に着目することで、生成されたニューラルネットワークに対して評価を行う。そして、本開示に係る情報処理は、評価結果に基づいて、効率の良いネットワーク構造を有するニューラルネットワークを生成し、生成したニューラルネットワークをユーザに提供する。なお、本開示において、ニューラルネットワークの生成とは、既存のニューラルネットワークの構造を更新する処理を含む。
 例えば、ニューラルネットワークの生成は、突然変異や交叉などを含む遺伝的操作により実現されてもよい。ここで、突然変異とは、生物に見られる遺伝子の突然変異をモデル化したものであってよい。すなわち、本開示に係る情報処理方法では、ネットワークを構成する各レイヤーを遺伝子と見立て、レイヤーを突然変異させることで、ネットワーク構造の異なる別のニューラルネットワークを生成する。また、上記の交叉とは、生物の交配における染色体の部分的交換をモデル化したものであってよい。すなわち、本開示に係る情報処理方法では、2つのネットワークのレイヤー構成を部分的に交換することで、上記の別のニューラルネットワークを生成することができる。なお、本開示に係る突然変異及び交叉の詳細については後述する。
 また、本開示に係るニューラルネットワークは、第1の装置と第2の装置とに分散される構造を有する。例えば、第1の装置は、例えばIoT(Internet of Things)機器であり、比較的演算性能の低い計算機である。また、第2の装置は、例えばクラウド上のサーバ装置であり、比較的演算性能の高い計算機である。一例として、第1の装置は、撮影機能を有するカメラであり、第2の装置は、カメラと無線ネットワーク等で接続するサーバ装置である。この場合、想定される情報処理は、カメラが撮影した画像に対する画像認識処理等である。
 IoT機器のような、比較的演算性能の低い計算機を用いて画像認識等の高度な処理を実行する場合、IoT機器のみで処理を実行するのではなく、高度な処理を行うことができる機器と分散して処理を行う方が望ましい。例えば、ニューラルネットワークのうち、入力層から中間層の前段部分をIoT機器に分配し、中間層の後段部分から出力層をサーバ側に分配することで、ニューラルネットワークを利用した情報処理を分散することが可能である。
 この場合、IoT機器は、比較的小規模なニューラルネットワークを通じて、入力データよりサイズの小さい中間データを取得する。言い換えれば、IoT機器は、入力層に入力される入力データ(例えば画像データ)よりも情報量が小さくなるよう、圧縮された中間データを取得する。かかる圧縮処理ののち、IoT機器は、中間データをサーバ装置に送信する。そして、サーバ装置は、取得した中間データに基づいて、比較的大規模なニューラルネットワークの後段部分の処理を実行する。このような分散処理によれば、入力データをそのままサーバ装置に送るよりも消費電力量等のリソースを抑えながら、高度な認識処理を実現することができる。
 そこで、本開示に係る情報処理方法では、上述した演算量等の評価に加えて、第1の装置における圧縮処理や、ニューラルネットワークのうちどのレイヤーで中間データを伝送するか(以下、この伝送箇所を「伝送ポイント」と表記する)等、データの伝送に関する情報に基づいて、前段と後段とに分割されるニューラルネットワークに対する評価を行う。これにより、本開示に係る情報処理方法は、分割されるニューラルネットワークにおいて効率の良い構造を適切に探索することができる。以下、本開示に係る情報処理方法について、具体的な実施例を挙げて説明する。
[1-2.第1の実施形態に係る情報処理の概要]
 図1は、本開示の第1の実施形態に係る情報処理の概要を示す図である。本開示の第1の実施形態に係る情報処理は、図1に示す情報処理システム1によって実現される。情報処理システム1は、情報処理装置100と、情報処理サーバ200と、端末装置300とを含む。
 情報処理装置100は、本開示に係る情報処理装置の一例であり、ニューラルネットワークの構造を探索するユーザ10によって管理されるサーバ装置である。情報処理装置100は、ユーザ10の操作に従ってニューラルネットワークを生成する。
 情報処理サーバ200は、本開示に係る第2の装置の一例であり、情報処理装置100によって生成されたニューラルネットワークのうち、後段の処理を実行するサーバ装置である。
 端末装置300は、本開示に係る第1の装置の一例であり、情報処理装置100によって生成されたニューラルネットワークのうち、前段の処理を実行する情報処理端末である。
 以下、図1を用いて、本開示の情報処理の概要を流れに沿って説明する。まず、ユーザ10は、情報処理装置100から提供される所定のユーザインターフェイスを介して、自身が生成を要望するニューラルネットワークを指定する(ステップS1)。例えば、ユーザ10は、自身が実行したい処理(画像認識や音声認識等)に適した基本的なニューラルネットワークの構造を指定する。一例として、ユーザ10は、画像認識を行うためのニューラルネットワークを生成する場合には、入力される画像データの解像度等に応じたレイヤー構造等を指定する。
 また、ユーザ10は、実際にニューラルネットワークに基づく処理を実行する情報処理サーバ200や端末装置300に関する情報を指定する。例えば、ユーザ10は、端末装置300が備える演算能力や、後段のニューラルネットワークが置かれる情報処理サーバ200のサービス提供先等を指定する。また、ユーザ10は、端末装置300と情報処理サーバ200との間の通信規格等を指定する。
 この点について、図2を用いて説明する。図2は、本開示に係るユーザインターフェイスの一例を示す図である。ユーザ10は、ユーザインターフェイス50を介して、自身が生成を要望するニューラルネットワークに関する情報を入力する。
 例えば、ユーザ10は、ニューラルネットワークの前段を処理する端末装置300の演算器に関する情報を入力する。例えば、ユーザ10は、プルダウン表示52から、端末装置300が備えるボード名や、SoC(System-on-a-Chip)や、アーキテクチャを選択する。詳細は後述するが、情報処理装置100は、これら選択される情報に対応する所定の数値を記憶しており、ユーザ10の選択に応じて、ニューラルネットワークの構造を変化させることができる。
 なお、図2で示した情報の選択は一例であり、プルダウン表示52は、例えば端末装置300の機種名やメーカー名を選択させるものであってもよい。この場合、情報処理装置100は、ユーザ10から端末装置300のボード名等を指定されずとも、端末装置300の機種名やメーカー名に対応した情報を記憶しておくことで、選択された機種に対応する演算器や演算能力を参照することができる。
 また、ユーザ10は、プルダウン表示54から、端末装置300と情報処理サーバ200との間の通信規格や、通信規格に関する、より詳細な情報を指定するサブカテゴリや詳細の欄の情報を選択する。通信規格は、例えば、3Gや4G、LTE(Long Term Evolution)等である。
 また、ユーザ10は、プルダウン表示56から、ニューラルネットワークの後段部分を置くクラウドサーバ等を提供するサービス提供企業の名称や、具体的なサービス名や、詳細情報を選択する。サービス提供企業とは、比較的高度な処理を行うためのクラウドサービスをユーザ10や一般企業等に提供する企業をいう。
 情報処理装置100は、上記のようにユーザ10に選択される情報に対応した所定の数値を予め記憶部120に格納しておき、ユーザ10が選択した情報に適するニューラルネットワークの構造を探索する。
 ここで、図3に用いて、端末装置300と情報処理サーバ200とに分割されて保持されるニューラルネットワークの構造について説明する。図3は、本開示に係るニューラルネットワークの構造を説明するための図(1)である。
 図3に示す例では、ネットワークを介して、端末装置300から情報処理サーバ200に中間データが送信される状況を概念的に示す(ステップS11)。このような処理が行われる場合、図3に示すように、端末装置300は、第N層(Nは任意の自然数)の中間層を有するニューラルネットワークにおいて、ニューラルネットワークの前段部分20を保持する。また、情報処理サーバ200は、ニューラルネットワークの後段部分25を保持する。そして、端末装置300は、前段部分20の処理を行い、中間データを伝送ポイント(図3の例では第3層)で送信する(ステップS12)。情報処理サーバ200は、伝送ポイントで送信された中間データを受信し、第4層以下の後段部分25を用いて処理を行う。
 続けて、図4を用いて、図3に示したニューラルネットワークが取り扱う情報量を概念的に示す。図4は、本開示に係るニューラルネットワークの構造を説明するための図(2)である。
 図4のグラフ30は、ニューラルネットワークの構造と情報量との関係を図示したものである。図4に示す表示32(図4に示す「input_size」)は、ニューラルネットワークの入力層に入力される入力データの情報量を示す。また、図4に示す表示34(図4に示す「compressed_size」)は、入力データよりも情報量が圧縮された際の情報量を示す。また、図4に示す表示36(図4に示す「transfer_point」)は、中間データを情報処理サーバ200に伝送するポイントである伝送ポイントを示す。
 本開示に係るニューラルネットワークでは、各層のうち、出力される情報のサイズが最大となる層よりも深部(図4の例では、入力層に近い側(より左に近い側)を意味する)にあり、かつ、ニューラルネットワークの入力層から出力される情報のサイズよりも小さい情報が出力される層を、端末装置300から情報処理サーバ200へと情報が伝送される伝送ポイントと決定するものとする。すなわち、上記の条件を満たす層が、ニューラルネットワークにおける伝送ポイントとなる中間層である。グラフ30に示すように、図4の例では、第3層が伝送ポイントに該当する。
 なお、グラフ30において、表示38(図4に示す「all_layer_num」)は、当該ニューラルネットワークの層の総数を示す。また、表示40(図4に示す「server_layer_num」)は、当該ニューラルネットワークの後段部分の層の数を示す。また、表示42(図4に示す「出力レイヤー」)は、当該ニューラルネットワークの出力層を示す。
 上記のように、情報処理装置100は、条件を満たす伝送ポイントを探索することにより、分割して保持されるニューラルネットワークの構造を決定する。また、情報処理装置100は、可能な限り、端末装置300から情報処理サーバ200に送信される中間データの情報量が少なくなる伝送ポイントを探索する。
 これは、分割されたニューラルネットワークにおいて、できる限り早く端末装置300から情報処理サーバ200に情報を送信した方が望ましく、かつ、できる限り送信する情報量を少なくなくした方が、一般的に情報処理の効率が良くなることによる。
 図1に戻り説明を続ける。図2乃至図4を用いて説明したように、情報処理装置100は、ユーザ10から指定された情報、及び、伝送ポイントの位置や中間データの圧縮量等の伝送に関する情報に基づいて、ニューラルネットワークを生成する(ステップS2)。
 なお、情報処理装置100は、上記の情報に限らず、演算量や端末装置300の演算能力等、種々の情報を総合的に評価して、評価結果に基づいてニューラルネットワークを生成する。
 例えば、情報処理装置100は、ニューラルネットワークの評価値の算出において、以下の式(1)を用いる。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、「Veval」は、ニューラルネットワークの評価値を示す。「Vrecognition」は、ニューラルネットワークの認識性能を定量化したものである。認識性能は、例えば、ニューラルネットワークの認識処理のF値や適合率、再現率、IoU(Intersection-over-Union)等により示される。情報処理装置100は、上記の数値に対して、適宜、正規化等を行い、評価値としての数値を得る。
 「Ccomputation」は、ニューラルネットワークの情報処理に要する演算量を定量化したものである。演算量は、例えば、積和演算数、特定のプロセッサにおけるインストラクション数等により示される。
 「Venergy_saving」は、対象とするニューラルネットワークのネットワーク構造の圧縮処理によって、どの程度の電力量が削減されるかをモデル化したものである。「Venergy_saving」の算出の一例について、再度、図4のグラフ30を用いて説明する。例えば、「Venergy_saving」は、ニューラルネットワークの各レイヤーの出力サイズと、入力データのサイズ(図4で示した「input_size」)との関係から、下記式(2)のように示される。
Figure JPOXMLDOC01-appb-M000002
 式(2)に示されるように、「Venergy_saving」は、ニューラルネットワーク全体が第2の装置(情報処理サーバ200)で処理される構造となる場合、「0」の値をとる。一方、「Venergy_saving」は、ニューラルネットワーク全体がサーバで処理されない、すなわち分割される構造となる場合、「rcompressinon」と「rdepth」という2つの変数によって求められる。「rcompressinon」は、例えば下記式(3)で示される。
Figure JPOXMLDOC01-appb-M000003
 式(3)に示されるように、「rcompressinon」は、「compressed_size」と「input_size」の比である。式(2)及び式(3)によれば、「compressed_size」がより小さくなるほど、「Venergy_saving」の値が大きくなるため、当該ニューラルネットワークに高評価が与えられる。一方、「rdepth」は、例えば下記式(4)で示される。
Figure JPOXMLDOC01-appb-M000004
 式(4)に示されるように、「rdepth」は、「server_layer_num」と「all_layer_num」の比である。式(2)及び式(4)によれば、「server_layer_num」がより大きくなる(言い換えれば、「rdepth」がより大きくなる)ほど、「Venergy_saving」の値が大きくなるため、当該ニューラルネットワークに高評価が与えられる。
 以上のように、上記式(2)乃至(4)によれば、情報処理装置100は、「よりニューラルネットワークの早い段階(深部)」で、かつ、「できる限り小さい中間データ」を送信する構造を持つニューラルネットワークが、より省電力であると評価する。
 なお、上記式(1)において、「k」、「k」「k」は、各変数の係数であり、言い換えれば、評価に関する所定の重み値を示す。これら重み値は、どのような変数に重みをもたせてニューラルネットワークを生成するかといったユーザ10の指定を受けて決定されてもよい。また、重み値は、端末装置300の演算能力や、端末装置300と情報処理サーバ200との間の通信規格等の関係性に基づいて予め設定された数値(情報処理装置100に格納された数値)に基づいて、自動的に決定されてもよい。
 情報処理装置100は、式(1)を用いて、生成したニューラルネットワークを評価する。そして、情報処理装置100は、評価値が所定の条件を満たすまで、ニューラルネットワークの構造の探索を継続する。例えば、情報処理装置100は、後述する遺伝的な構造探索手法を用いて、ニューラルネットワークの構造に変化を与え、変化した構造に対する評価値の算出を行う。
 情報処理装置100は、探索した構造が所定の条件を満たしている場合(例えば、ユーザ10が予め指定した閾値を評価値が超えている場合等)に、評価したニューラルネットワークの構造が最適であると判定し、提供するニューラルネットワークの構造を決定する。情報処理装置100は、決定した構造に基づいてニューラルネットワークを生成し、生成したニューラルネットワークを記憶部120に格納する。
 そして、情報処理装置100は、構造を決定したニューラルネットワークを情報処理サーバ200に送信する(ステップS3)。情報処理サーバ200は、送信されたニューラルネットワークを受信する。そして、情報処理サーバ200は、受信したニューラルネットワークを伝送ポイントで分割する(ステップS4)。情報処理サーバ200は、分割したニューラルネットワークのうち、後段部分を記憶部220に格納する。
 さらに、情報処理サーバ200は、分割したニューラルネットワークのうち、前段部分を端末装置300に送信する(ステップS5)。端末装置300は、送信されたニューラルネットワークの前段部分を受信し、受信した前段部分を記憶部320に格納する。
 端末装置300は、例えばニューラルネットワークを利用した画像認識処理を実行する機会が発生した場合、ニューラルネットワークの前段部分を用いて、入力された画像データを圧縮した中間データを取得する。そして、端末装置300は、中間データを情報処理サーバ200に送信する。情報処理サーバ200は、端末装置300から送信された中間データをニューラルネットワークの後段部分に入力し、画像認識処理を行う。これにより、端末装置300及び情報処理サーバ200は、情報量の多い画像データをそのまま情報処理サーバ200に送信せずとも、高度な認識処理を実現することができるので、通信や演算の処理負荷を軽減することができる。
 このように、本開示に係る情報処理方法は、第1の装置(端末装置300)と第2の装置(情報処理サーバ200)とで分割して保持される構造を有するニューラルネットワークにおける、第1の装置と第2の装置間の情報の伝送に関する情報に基づいて、ニューラルネットワークを評価する。また、本開示に係る情報処理方法は、ニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する。
 具体的には、本開示に係る情報処理方法は、伝送に関する情報を評価に用いることにより、エッジ側(端末装置300)が伝送するデータの圧縮量や、伝送ポイントの箇所等に基づいて、分割して保持されるニューラルネットワークの構造探索を行う。これにより、本開示に係る情報処理方法によれば、通信を介した認識処理等の分散された処理がニューラルネットワークを利用して行われる場合における最適な構造を探索することができる。
[1-3.第1の実施形態に係る情報処理装置の構成]
 次に、第1の実施形態に係る情報処理を実行する情報処理装置の一例である情報処理装置100の構成について説明する。図5は、本開示の第1の実施形態に係る情報処理装置100の構成例を示す図である。
 図5に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100を管理する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
 通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、ネットワークN(インターネット等)と有線又は無線で接続され、ネットワークNを介して、情報処理サーバ200や端末装置300等との間で情報の送受信を行う。
 記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、学習データ記憶部121と、演算器情報記憶部122と、通信規格記憶部123と、モデル記憶部124とを有する。以下、各記憶部について順に説明する。
 学習データ記憶部121は、ニューラルネットワークの学習に用いられる学習データ群を記憶する。例えば、学習データは、画像データと、当該画像データの認識結果となる正解データのセット等である。なお、学習データは、情報処理装置100が保持せずに、外部サーバ等から、適宜取得してもよい。
 演算器情報記憶部122は、ニューラルネットワークを用いて演算処理を行う装置が有する演算器に関する情報を記憶する。図6に、第1の実施形態に係る演算器情報記憶部122の一例を示す。図6は、本開示の第1の実施形態に係る演算器情報記憶部122の一例を示す図である。図6に示した例では、演算器情報記憶部122は、「装置ID」、「種別」、「演算器情報」といった項目を有する。
 「装置ID」は、ニューラルネットワークを用いた処理を実行する装置を識別する識別情報である。「種別」は、装置の種別を示す。
 「演算器情報」は、各装置が有する演算器に関する情報を示す。図6では、演算器情報の項目を「演算器情報#1」のように概念的に記載しているが、実際には、演算器情報の項目には、浮動小数点演算を可能な演算器を装置が有しているか、あるいは、その演算性能や、演算に用いるボードやSoC等を識別する情報等、種々の情報が記憶される。詳細は後述するが、情報処理装置100は、各装置が有する演算器や演算性能に応じて、ニューラルネットワークの評価を算出する場合がある。このとき、情報処理装置100は、ニューラルネットワークを実行する装置の演算器情報に基づいて、評価値に対する所定の補正を行ってもよい。
 すなわち、図6に示した例では、装置IDが「A01」で識別される装置は、種別が「サーバ」であり、演算器情報が「演算器情報#1」であることを示している。
 次に、通信規格記憶部123について説明する。通信規格記憶部123は、ニューラルネットワークが分散されて保持される場合の第1の装置と第2の装置との間の通信で用いられる通信規格と、その通信規格に対して与えられる所定の数値との関係性を記憶する。図7に、第1の実施形態に係る通信規格記憶部123の一例を示す。図7は、本開示の第1の実施形態に係る通信規格記憶部123の一例を示す図である。図7に示した例では、通信規格記憶部123は、「通信規格ID」、「通信規格」、「補正値」といった項目を有する。
 「通信規格ID」は、通信規格を識別する識別情報を示す。「通信規格」は、第1の装置と第2の装置との間の通信で用いられる通信規格を示す。「補正値」は、ニューラルネットワークの生成において通信規格がユーザ10から指定された場合に、指定された通信規格に応じて補正される値であり、例えば、式(1)に示す重み値の決定に用いられる。図7では、補正値の項目を「補正値#11」のように概念的に記載しているが、実際には、補正値の項目には、実際に重み値として代入される数値や、重み値の算出において乗算される割合等の数値が記憶される。
 すなわち、図7に示した例では、通信規格ID「B01」で識別される通信規格は「3G」であり、その補正値は「補正値#11」であることを示している。
 次に、モデル記憶部124について説明する。モデル記憶部124は、情報処理装置100によって生成されたモデル(分割されたニューラルネットワークの構造を有する画像認識モデル等)を記憶する。図8に、第1の実施形態に係るモデル記憶部124の一例を示す。図8は、本開示の第1の実施形態に係るモデル記憶部124の一例を示す図である。図8に示した例では、モデル記憶部124は、「モデルID」、「構造情報」、「伝送情報」、「評価値」といった項目を有する。
 「モデルID」は、モデルを識別する識別情報を示す。「構造情報」は、モデルが有する構造情報を示す。図8では、構造情報の項目を「構造情報#1」のように概念的に記載しているが、実際には、構造情報の項目には、全体の層の数や、入力データとして受け付けるデータの種別や情報量、活性化関数の種別等、ニューラルネットワークの構造に関する種々の情報が記憶される。
 「伝送情報」は、分割されて保持されるモデルにおける伝送に関する情報を示す。図8では、伝送情報の項目を「伝送情報#1」のように概念的に記載しているが、実際には、伝送情報の項目には、伝送される中間データの圧縮率や、伝送ポイントに関する情報等が記憶される。
 「評価値」は、モデルの評価値を示す。図8では、評価値の項目を「評価値#1」のように概念的に記載しているが、実際には、評価値の項目には、式(1)を用いて算出された当該モデルの具体的な評価値の数値等が記憶される。
 すなわち、図8に示した例では、モデルID「M01」で識別されるモデルは、構造情報が「構造情報#1」であり、伝送情報が「伝送情報#1」であり、その評価値が「評価値#1」であることを示している。
 図5に戻り、説明を続ける。制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部に記憶されたプログラム(例えば、本開示に係る情報処理プログラム)がRAM(Random Access Memory)等を作業領域として実行されることにより実現される。また、制御部130は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
 図5に示すように、制御部130は、受付部131と、生成部132と、探索部133と、評価部134と、決定部135と、送信部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図5に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
 受付部131は、各種情報を受け付ける。例えば、受付部131は、図2に示したユーザインターフェイス50を介して、ニューラルネットワークの生成要求をユーザ10から受け付ける。
 受付部131は、生成要求とともに、画像認識や音声認識等、ニューラルネットワークを利用して行う情報処理の種別をユーザ10から受け付ける。また、受付部131は、入力するデータの種別や解像度等の情報を受け付ける。すなわち、受付部131は、ニューラルネットワークの基本的な構造を決定するために要する、基本的な情報をユーザ10から受け付ける。
 また、受付部131は、生成するニューラルネットワークが実行される第1の装置及び第2の装置の構成、第1の装置と第2の装置間の通信規格、及び、ニューラルネットワークが提供される環境に関する情報を、ユーザインターフェイス50を介して受け付ける。
 第1の装置及び第2の装置の構成とは、図2に示したプルダウン表示52等を利用してユーザ10から指定される情報であり、例えば、第1の装置のボード名やSoC等の名称である。また、第1の装置と第2の装置間の通信規格とは、図2に示したプルダウン表示54等を利用してユーザ10から指定される情報である。例えば、ユーザ10は、第1の装置及び第2の装置がともに対応している通信規格や、実際にニューラルネットワークを用いた処理が行われる場合に、第1の装置と第2の装置間で想定される通信規格等を指定する。受付部131は、ユーザ10が指定した通信規格を受け付ける。
 また、ニューラルネットワークが提供される環境に関する情報とは、図2に示したプルダウン表示56等を利用してユーザ10から指定される情報であり、例えば、ニューラルネットワークの後段が置かれるクラウドサーバ等を提供するサービス提供企業の名称等である。
 また、受付部131は、ユーザ10から受け付けた第1の装置及び第2の装置の構成、第1の装置と第2の装置間の通信規格、及び、ニューラルネットワークが提供される環境に関する情報等に基づいて、式(1)における重み値を決定してもよい。例えば、重み値は、情報処理装置100の管理者等によって、予め基準となるような数値が与えられるものとする。具体的には、重み値は、式(1)の「k」、「k」、「k」の合計が「1」となる関係を保持しつつ、例えば、通信規格が「3G」であれば、「k」の値が比較的大きくなるよう補正する等によって決定される。これは、例えば通信規格が「3G」である場合、伝送速度が比較的遅いことから、第1の装置と第2の装置間の伝送が情報処理のボトルネックとなる変数が「Venergy_saving」になる、と想定されることによる。すなわち、第1の装置と第2の装置間の通信が低速で行われることが想定される場合には、より「Venergy_saving」に重みを置いた方が、分割されたニューラルネットワークにおける情報処理が円滑に行われる可能性が高いことによる。なお、重み値の設定は、上記の例に限らず、実際の情報処理による結果を踏まえた学習処理等により、自動的にチューニングされてもよい。また、重み値は、ユーザ10から数値の入力を受け付けることにより決定されてもよい。
 生成部132は、第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークを生成する。例えば、生成部132は、受付部131によって受け付けられた情報に基づいて、ユーザ10が要望するニューラルネットワークを生成する。
 また、生成部132は、後述する探索部133及び評価部134による処理を経て、生成したニューラルネットワークを更新する。例えば、生成部132は、探索部133による探索処理を経て、既存のニューラルネットワークの構造を更新する。また、生成部132は、評価部134によって算出される評価値に基づいてニューラルネットワークを更新する。例えば、生成部132は、評価部134によって算出された評価値が所定の閾値よりも低い場合、当該ニューラルネットワークの構造が最適でないと判定し、探索部133によって新たに探索される構造にニューラルネットワークを更新する。
 探索部133は、ニューラルネットワークの構造を探索する。探索部133は、既知の種々の手法を用いて構造を探索することができる。例えば、探索部133は、遺伝的操作を用いてニューラルネットワークの構造を探索してもよい。
 ここで、図9を用いて、探索部133が遺伝的操作を用いてニューラルネットワークの構造を探索する例について説明する。図9は、本開示に係る遺伝的操作による構造探索の一例を示す図である。図9では、遺伝的操作として、突然変異によるニューラルネットワークの構造の探索(新たなニューラルネットワークの生成)を行う例を示す。
 具体的には、図9に示す例では、元となる評価済のニューラルネットワーク(以下、「シードネットワーク」と表記する)から、ネットワーク構造の異なる別のニューラルネットワークを生成する。
 上述のように、遺伝的操作を用いたニューラルネットワークの構造探索は、突然変異や交叉等を含む。すなわち、本開示に係る探索手法では、ネットワークを構成する各層を遺伝子と見立て、層を突然変異又は交叉させることで、ネットワーク構造の異なる別のニューラルネットワークを生成する。
 図9に示す例では、シードネットワークSNは、「Input」及び「Output」を含む10の層から構成される。「Input」は入力層を示し、「Output」は出力層を示す。また、図9に示す「Conv1」及び「Conv2」は、Convolutionレイヤー(畳み込み層)を示す。また、「Pool1」及び「Pool2」は、Max-Pooling(プーリング層)を示す。また、図9に示すように、「Conv1」及び「Conv2」には、カーネルシェイプや出力マップ数などのパラメータが設定される。また、「Pool1」及び「Pool2」には、プールシェイプを示すパラメータが設定される。なお、図9で示す各層については、広く一般に使用されるものであるため、詳細な説明は省略する。また、図9で示す各層の構造は、ニューラルネットワークを利用して処理するタスク固有の情報として、例えばユーザインターフェイス50を介して、ユーザ10によって定義される。
 続いて、図9に示すニューラルネットワークMN1について説明する。探索部133は、シードネットワークSNを突然変異又は交叉させることで、別のニューラルネットワークであるニューラルネットワークMN1を生成する(ステップS21)。
 図9に示すように、ニューラルネットワークMN1は、シードネットワークSNのネットワーク構造から、レイヤー構成の一部が変化されたものである。具体的には、ニューラルネットワークMN1では、シードネットワークSNに係る活性化関数「relu1」が、別の活性化関数「Tanh1」に変化している。このように、本開示に係る情報処理方法では、ネットワーク構造を構成する層のレイヤー種類を変更することで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。
 さらに、探索部133は、ニューラルネットワークMN1を突然変異又は交叉させることで、別のニューラルネットワークであるニューラルネットワークMN2を生成してもよい(ステップS22)。
 図9に示すように、ニューラルネットワークMN2のネットワーク構造では、ニューラルネットワークMN1のレイヤー構成に加え、活性化関数「Abs1」が挿入されている。このように、本開示に係る情報処理方法では、層を新規に挿入することで、ネットワーク構造の異なる別のニューラルネットワークMN2を生成することができる。
 なお、遺伝的操作に係る突然変異とは、上記の処理以外にも、例えば、「レイヤー挿入」、「レイヤー削除」、「レイヤー種変更」、「パラメータ変更」、「グラフ分岐」、「グラフ分岐削除」等の操作を含む。また、遺伝的操作に係る交叉とは、ユーザ10が追加で指定したシードネットワークと現在保持するニューラルネットワークの間で、レイヤーを入れ替える操作である。レイヤーの入れ替え方については、一点交叉、二点交叉、多点交叉を始め、様々な手法をサポートし得る。
 また、上記で説明した構造探索処理は一例であり、本開示に係る情報処理方法では、構造の探索及び生成手法は、遺伝的操作による例に限定されない。
 評価部134は、ニューラルネットワーク(言い換えれば、ニューラルネットワークが有するネットワーク構造)を評価する。
 まず、評価部134は、探索部133によって探索されたニューラルネットワークの構造を用いて、学習データ記憶部121等に保持された学習データを学習する。そして、評価部134は、後述するように、伝送に関する情報や省電力効果、ニューラルネットワークの認識性能や演算量等を総合的に考慮した上で、評価値を算出する。なお、上記の学習処理においては、ニューラルネットワークの学習や評価のために開発された既存のソフトウェアライブラリ等が適宜用いられてもよい。
 本開示において、評価部134は、第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、第1の装置と第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価する。
 例えば、評価部134は、ニューラルネットワークの各層のうち、出力される情報のサイズが最大となる層よりも深部にあり、かつ、当該ニューラルネットワークの入力層から出力される情報のサイズよりも小さい情報が出力される層を、第1の装置から第2の装置へと情報が伝送される伝送ポイントと決定する。そして、評価部134は、決定した伝送ポイントに関する情報に基づいてニューラルネットワークを評価する。
 一例として、評価部134は、伝送ポイントよりも浅部に存在する層の数、及び、ニューラルネットワークを構成する層の総数に基づいて、ニューラルネットワークを評価する。具体的には、評価部134は、上記式(1)乃至(4)に示した「Venergy_saving」により示される指標値に基づいて、ニューラルネットワークを評価する。
 また、評価部134は、伝送に関する情報のみならず、上記式(1)に示される他の指標値に基づいて、ニューラルネットワークを総合的に評価してもよい。
 例えば、評価部134は、ニューラルネットワークの認識性能を示す指標値に基づいて、ニューラルネットワークを評価する。具体的には、評価部134は、上記式(1)の「Vrecognition」で示す指標値に基づいてニューラルネットワークを評価する。一例として、評価部134は、ニューラルネットワークの認識処理のF値や適合率、再現率、IoU等を指標値として正規化した数値等に基づいて、ニューラルネットワークを評価する。
 また、評価部134は、ニューラルネットワークにおける演算量に基づいて、前記ニューラルネットワークを評価する。
 具体的には、評価部134は、上記式(1)の「Ccomputation」で示す指標値に基づいてニューラルネットワークを評価する。一例として、評価部134は、ニューラルネットワークが実行される際の積和演算数や特定のプロセッサにおけるインストラクション数等に基づいて、ニューラルネットワークを評価する。
 また、評価部134は、第1の装置の演算処理の性能に関する情報に基づいてニューラルネットワークを評価してもよい。ニューラルネットワークの前段が処理される端末装置300等の第1の装置は、IoT機器等、種々の装置が想定される。このため、各装置が有する演算処理の性能も、また様々に異なると想定される。このため、評価部134は、第1の装置の演算処理の性能に関する情報を評価対象に加えることにより、より実状に即した評価を得ることができる。
 この場合、評価部134は、上記式(1)に変数を追加した下記式(5)を用いて評価を行ってもよい。
Figure JPOXMLDOC01-appb-M000005
 式(5)は、式(1)と比較して、重み値「k」と変数「Vefficient_arithmetic」をさらに有する。「Vefficient_arithmetic」は、第1の装置における演算効率を示す。すなわち、評価部134は、通信(伝送)に伴う電力量に限らず、端末装置300等、ニューラルネットワークを処理するデバイス(第1の装置)の計算機としての特性についても考慮して、ニューラルネットワークを評価する。
 例えば、ユーザ10は、上記変数の重みを重くすることにより、第1の装置側での演算効率が高まるネットワーク構造を獲得しやすくなる。このことは、第1の装置における特定の表現形式の演算効率が低い場合、その形式の演算数が多いネットワークの評価値を下げることを意味する。
 例えば、評価部134は、第1の装置に保持されるニューラルネットワークの各層における浮動小数点演算を行う回数(インストラクション数)と、浮動小数点演算以外の演算を行う回数とに基づいて、ニューラルネットワークを評価してもよい。
 すなわち、評価部134は、端末装置300が浮動小数点演算器を保持していない場合、浮動小数演算数が比較的多いニューラルネットワークの評価値を下げる。一方、評価部134は、ニューラルネットワークにおいて、固定小数点数などの量子化手法によって重みや中間データを表現する層が多い場合には、そのニューラルネットワークの評価値を高める。
 評価部134は、浮動小数点演算に関する評価値を算出する場合、例えば下記式(6)のような式を用いて、変数「Vefficient_arithmetic」を算出してもよい。
Figure JPOXMLDOC01-appb-M000006
 上記式(6)において、「Ndev」は、端末装置300側で処理する層の数を示す。また、「FIi」は、各層において浮動小数点演算器を用いるインストラクション数を示す。また、「OIi」は、その他のインストラクション数を示す。
 この点について、図10を用いて説明する。図10は、本開示に係る演算器情報に基づく構造探索の一例を示す図である。なお、図10では、伝送ポイント(「transfer_point」)第3層である例を示す。
 図10の表60に示すように、評価部134は、端末装置300内のニューラルネットワークの各層において、浮動小数点演算器を用いるインストラクション数と、その他のインストラクション数とを算出する。なお、図10では、インストラクション数を「#21」のように概念的に示す。そして、評価部134は、表60に示される各インストラクション数を式(6)に代入して「Vefficient_arithmetic」の値を算出するとともに、当該ニューラルネットワークの評価値である「Veval」の値を算出する。例えば、評価部134は、図10に示す表60を記憶部120内に仮想的に展開し、上記の算出処理を経て、「Veval」の値を得る。
 なお、上記式(1)や(5)で示されるように、評価値を求める各変数には、所定の重み値が設定される。すなわち、評価部134は、伝送に関する情報、ニューラルネットワークの認識性能を示す指標値、ニューラルネットワークにおける演算量、及び、第1の装置の演算処理の性能に関する情報の各々に所定の重み値を乗算した値に基づいて、ニューラルネットワークを評価する。
 また、上述のように、評価部134は、第1の装置及び第2の装置の構成、第1の装置と第2の装置間の通信規格、及び、ニューラルネットワークが提供される環境に関する情報に基づいて、重み値を決定する。あるいは、評価部134は、ユーザ10からの指定に従い、各々の重み値を決定してもよい。これにより、ユーザ10は、自身が重視する性能に重きを置いた重み値を任意に設定できるので、自身が所望するニューラルネットワークの構造を得ることができる。
 決定部135は、評価部134によるニューラルネットワークの評価結果に基づいて、ニューラルネットワークの構造を決定する。
 例えば、決定部135は、評価部134による評価の結果が所定の閾値を超えるなど、探索処理の終了条件に合致する場合に、当該ニューラルネットワークの構造が最適なものであると判定し、ニューラルネットワークの構造を決定する。
 一方、決定部135は、評価部134による評価の結果が所定の閾値以下であるなど、探索処理の終了条件に合致しない場合には、遺伝的操作を加えるなどの探索部133による探索処理を再度実行させてもよい。なお、終了条件は、ユーザ10によって任意に設定されてもよい。終了条件は、ニューラルネットワークの認識性能や演算量、省電力効果、圧縮率、あるいは、探索処理を何度反復させるかといった反復処理の繰り返し回数等を組み合わせて作成されてもよい。
 送信部136は、決定部135によって決定された構造を有するニューラルネットワークを第2の装置に送信する。
[1-4.第1の実施形態に係る情報処理サーバの構成]
 次に、第1の実施形態に係る第2の装置の一例である情報処理サーバ200の構成について説明する。図11は、本開示の第1の実施形態に係る情報処理サーバ200の構成例を示す図である。
 図11に示すように、情報処理サーバ200は、通信部210と、記憶部220と、制御部230とを有する。なお、情報処理サーバ200は、情報処理サーバ200を管理する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
 通信部210は、例えば、NIC等によって実現される。通信部210は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、情報処理装置100や端末装置300等との間で情報の送受信を行う。
 記憶部220は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部220は、後段モデル記憶部221を有する。
 後段モデル記憶部221は、情報処理装置100から送信されたニューラルネットワークのうち、伝送ポイント以後である後段部分を記憶する。
 制御部230は、例えば、CPUやMPU等によって、情報処理サーバ200内部に記憶されたプログラムがRAM等を作業領域として実行されることにより実現される。また、制御部230は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
 図11に示すように、制御部230は、モデル受信部231と、分割部232と、モデル送信部233と、中間データ受信部234と、認識部235と、認識結果送信部236とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部230の内部構成は、図11に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
 モデル受信部231は、情報処理装置100から送信されたモデル(ニューラルネットワークの構造を有する認識処理モデル等)を受信する。
 分割部232は、モデル受信部231によって受信されたモデルを分割する。そして、分割部232は、分割したモデルにおけるニューラルネットワークの後段部分を、後段モデル記憶部221に格納する。
 モデル送信部233は、分割部232によって分割したモデルにおけるニューラルネットワークの前段部分を、端末装置300に送信する。
 中間データ受信部234は、端末装置300から送信される中間データ(端末装置300において圧縮処理されたデータ)を受信する。
 認識部235は、中間データ受信部234によって受信された中間データを、ニューラルネットワークの後段部分に入力し、各種認識処理を行う。例えば、認識部235は、入力データが画像データである場合、画像認識処理を行う。
 認識結果送信部236は、認識部235によって認識された結果を端末装置300に送信する。これにより、端末装置300のユーザは、自身が入力したデータの認識結果を得ることができる。また、認識結果送信部236は、認識部235によって認識された結果を情報処理装置100に送信してもよい。
[1-5.第1の実施形態に係る端末装置の構成]
 次に、第1の実施形態に係る第1の装置の一例である端末装置300の構成について説明する。図12は、本開示の第1の実施形態に係る端末装置300の構成例を示す図である。
 図12に示すように、端末装置300は、通信部310と、記憶部320と、制御部330とを有する。なお、端末装置300は、端末装置300を使用するユーザ等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
 通信部310は、例えば、NIC等によって実現される。通信部310は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、情報処理装置100や情報処理サーバ200等との間で情報の送受信を行う。
 記憶部320は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部320は、前段モデル記憶部321を有する。
 前段モデル記憶部321は、情報処理装置100によって生成されたニューラルネットワークのうち、伝送ポイントよりも前段(深部)である後段部分を記憶する。
 制御部330は、例えば、CPUやMPU等によって、端末装置300内部に記憶されたプログラムがRAM等を作業領域として実行されることにより実現される。また、制御部330は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
 図12に示すように、制御部330は、モデル受信部331と、センシング部332と、認識部333と、中間データ送信部334とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部230の内部構成は、図12に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
 モデル受信部331は、情報処理サーバ200から送信されたモデル(ニューラルネットワークの構造を有する認識処理モデル等)の前段部分を受信する。モデル受信部331は、受信したモデルの前段部分を前段モデル記憶部321に格納する。
 センシング部332は、各種センサを用いてセンシングを行い、各種データを取得する。例えば、センシング部332は、カメラを用いて画像データを取得する。また、センシング部332は、マイクを用いて音声を取得してもよい。なお、センシング部332は、センサを用いた情報のみならず、例えばユーザから入力されたデータ等、ニューラルネットワークを有するモデルの入力データとなりうる情報であれば、あらゆる情報を取得してもよい。
 認識部333は、センシング部332によって取得された情報をニューラルネットワークの前段部分に入力し、各種認識処理を行う。例えば、認識部333は、ニューラルネットワークの前段部分に入力データを入力することにより、入力データよりも情報量が圧縮された中間データを得る。すなわち、認識部333は、ニューラルネットワークにおける伝送ポイントまでの認識処理を行う。
 中間データ送信部334は、認識部333によって出力された中間データを情報処理サーバ200に送信する。また、中間データ送信部334は、中間データを情報処理サーバ200に送信したのちに、認識結果を情報処理サーバ200から受信する。これにより、端末装置300は、比較的高度な演算を要する後段部分の処理を行うことなく、画像認識等の結果を得ることができる。
[1-6.第1の実施形態に係る情報処理の手順]
 次に、図13及び図14を用いて、第1の実施形態に係る情報処理の手順について説明する。まず、図13を用いて、本開示の第1の実施形態に係る情報処理の全体の流れについて説明する。図13は、本開示の第1の実施形態に係る情報処理の手順を示すフローチャートである。
 図13に示すように、情報処理装置100は、ユーザインターフェイス50を介して、モデルの設定情報をユーザ10から受け付けたか否かを判定する(ステップS101)。モデルの設定情報を受け付けていない場合(ステップS101;No)、情報処理装置100は、モデルの設定情報を受け付けるまで待機する。
 一方、モデルの設定情報を受け付けた場合(ステップS101;Yes)、情報処理装置100は、ニューラルネットワークの構造に関する探索処理を実行する(ステップS102)。探索処理の詳細は、図14を用いて後述する。
 探索処理が完了すると、情報処理装置100は、ニューラルネットワークのネットワーク構造を決定する(ステップS103)。そして、情報処理装置100は、構造が決定したモデルを情報処理サーバ200に送信する(ステップS104)。
 次に、図14を用いて、本開示の第1の実施形態に係る探索処理の詳細な流れについて説明する。図14は、本開示の第1の実施形態に係る探索処理の手順を示すフローチャートである。
 図14に示すように、情報処理装置100は、基本となるシードネットワークを入力する(ステップS201)。続けて、情報処理装置100は、シードネットワークのネットワーク構造に対して遺伝的操作を加える(ステップS202)。これにより、情報処理装置100は、ネットワーク構造の異なるニューラルネットワークを得る。
 そして、情報処理装置100は、得られたニューラルネットワークの評価値を算出する(ステップS203)。続けて、情報処理装置100は、得られた評価値が、探索の終了条件に合致しているか否かを判定する(ステップS204)。
 終了条件に合致していない場合(ステップS204;No)、情報処理装置100は、再び、ネットワーク構造に対して遺伝的操作を加えることにより、新たな構造のニューラルネットワークを得る(ステップS202)。
 一方、終了条件に合致していた場合(ステップS204;Yes)、情報処理装置100は、探索処理を完了する。
(2.第2の実施形態)
 次に、第2の実施形態について説明する。上記第1の実施形態では、情報処理装置100が、第1の装置(端末装置300)の演算性能を評価値に反映する場合に、浮動小数点演算器の有無や、浮動小数点演算の性能を用いる例を示した。ここで、情報処理装置100は、上記とは異なる演算の性能を用いて、第1の装置の演算性能を評価値に反映してもよい。
 例えば、第2の実施形態に係る情報処理装置100は、第1の装置に保持されるニューラルネットワークの層において乗算を行う回数と、乗算以外の演算を行う回数との関係性に基づいて、ニューラルネットワークを評価する。
 これは、IoT機器等の比較的演算性能の低い装置の場合、乗算を行う回数が多いほど、演算処理に負荷が生じることによる。すなわち、情報処理装置100は、乗算を行わずに第1の装置が演算を行うことができるか否かに基づいて、ニューラルネットワークの構造を評価することにより、より高い省電力化を達成することができる可能性がある。
 具体的には、第1の装置上での畳み込み演算や内積演算をBinaryNet等と称される既知の技術を用いて比較的負荷の低い演算に置き換えた場合、第1の装置は、加算や乗算を行うことなく、XNORやビットカウント等の単純な演算によって、近似計算を行うことができる。例えば、上記のように、第1の装置がASICやFPGA等によって実現される場合、この置き換えによって、第1の装置から乗算器を取り除くことができるため、より大幅な省電力化を達成可能である。このような省電力化を図る場合、上記式(6)で示した変数は、下記式(7)で再定義される。
Figure JPOXMLDOC01-appb-M000007
 上記式(7)において、「Ndev」は、ニューラルネットワーク全体の層数のうち第1の装置側で処理する層の数を示す。また、「MIi」は、第1の装置の各層における乗算のインストラクション数を示す。また、「OIi」は、第1の装置の各層における乗算以外のインストラクション数を示す。
 式(7)を用いてニューラルネットワークの構造を評価することで、第1の装置の計算機としての特性がより考慮されるため、情報処理装置100は、第1の装置側での演算効率が高まるようなネットワーク構造を獲得しやすくなる。結果として、情報処理装置100は、第1の装置及び第2の装置が電力量を抑えつつ高度な認識を行うことを間接的に支援することができる。
(3.その他の実施形態)
 上述した各実施形態に係る処理は、上記各実施形態以外にも種々の異なる形態にて実施されてよい。
 上記した各実施形態では、伝送ポイントが一つであるニューラルネットワークを例として説明した。しかし、伝送ポイントは複数存在してもよい。例えば、ニューラルネットワークを利用した処理は、三以上の装置によって実行される場合がある。具体的には、ニューラルネットワークを利用した処理は、イヤホン等のウェアラブルデバイスと、スマートフォン等のスマートデバイスと、クラウドサーバ等により行われる場合がある、この場合、情報処理装置100は、二以上の伝送ポイントを有するニューラルネットワークの構造を生成し、かかる構造について評価してもよい。
 また、上記した各実施形態では、圧縮に関する評価量として省電力化を例に挙げて説明した。しかし、評価量は、電力に限らず、伝送される情報量や演算量等、何らかの指標を有する数値であれば、いずれの情報が採用されてもよい。
 また、情報処理装置100は、実際に端末装置300や情報処理サーバ200で実行された認識結果のフィードバックを受けて、ニューラルネットワークの構造を再探索してもよい。例えば、情報処理装置100は、端末装置300と情報処理サーバ200の間の伝送回数が想定以上に頻繁に行われることや、想定以上に通信状態が悪い場合等には、伝送に関する情報の重み値を重く調整して、ニューラルネットワークの構造を再探索する等の調整を行ってもよい。
 また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
 また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
(4.ハードウェア構成)
 上述してきた各実施形態に係る情報処理装置100、情報処理サーバ200、端末装置300等の情報機器は、例えば図15に示すような構成のコンピュータ1000によって実現される。以下、第1の実施形態に係る情報処理装置100を例に挙げて説明する。図15は、情報処理装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
 CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
 ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る情報処理プログラムを記録する記録媒体である。
 通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
 入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が第1の実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされた情報処理プログラムを実行することにより、制御部130等の機能を実現する。また、HDD1400には、本開示に係る情報処理プログラムや、記憶部120内のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 コンピュータが、
 第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価し、
 前記ニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する
 情報処理方法。
(2)
 前記ニューラルネットワークの各層のうち、出力される情報のサイズが最大となる層よりも深部にあり、かつ、当該ニューラルネットワークの入力層から出力される情報のサイズよりも小さい情報が出力される層を、前記第1の装置から前記第2の装置へと情報が伝送される伝送ポイントと決定し、決定した伝送ポイントに関する情報に基づいて、当該ニューラルネットワークを評価する
 前記(1)に記載の情報処理方法。
(3)
 前記伝送ポイントよりも浅部に存在する層の数、及び、前記ニューラルネットワークを構成する層の総数に基づいて、当該ニューラルネットワークを評価する
 前記(2)に記載の情報処理方法。
(4)
 前記ニューラルネットワークの認識性能を示す指標値に基づいて、前記ニューラルネットワークを評価する
 前記(1)~(3)のいずれかに記載の情報処理方法。
(5)
 前記ニューラルネットワークにおける演算量に基づいて、前記ニューラルネットワークを評価する
 前記(1)~(4)のいずれかに記載の情報処理方法。
(6)
 前記第1の装置の演算処理の性能に関する情報に基づいて、前記ニューラルネットワークを評価する
 前記(1)~(5)のいずれかに記載の情報処理方法。
(7)
 前記第1の装置に保持される前記ニューラルネットワークの各層における浮動小数点演算を行う回数と、浮動小数点演算以外の演算を行う回数とに基づいて、当該ニューラルネットワークを評価する
 前記(6)に記載の情報処理方法。
(8)
 前記第1の装置に保持される前記ニューラルネットワークの各層における乗算を行う回数と、乗算以外の演算を行う回数との関係性に基づいて、当該ニューラルネットワークを評価する
 前記(6)又は(7)に記載の情報処理方法。
(9)
 前記伝送に関する情報、前記ニューラルネットワークの認識性能を示す指標値、当該ニューラルネットワークにおける演算量、及び、前記第1の装置の演算処理の性能に関する情報の各々に所定の重み値を乗算した値に基づいて、前記ニューラルネットワークを評価する
 前記(1)~(8)のいずれかに記載の情報処理方法。
(10)
 前記第1の装置及び前記第2の装置の構成、当該第1の装置と当該第2の装置間の通信規格、及び、前記ニューラルネットワークが提供される環境に関する情報に基づいて、前記重み値を決定する
 前記(9)に記載の情報処理方法。
(11)
 第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価する評価部と、
 前記評価部によるニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する決定部と
 を備えた情報処理装置。
(12)
 コンピュータを、
 第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価する評価部と、
 前記評価部によるニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する決定部と
 として機能させるための情報処理プログラム。
 1 情報処理システム
 100 情報処理装置
 110 通信部
 120 記憶部
 121 学習データ記憶部
 122 演算器情報記憶部
 123 通信規格記憶部
 124 モデル記憶部
 130 制御部
 131 受付部
 132 生成部
 133 探索部
 134 評価部
 135 決定部
 136 送信部
 200 情報処理サーバ
 300 端末装置

Claims (12)

  1.  コンピュータが、
     第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価し、
     前記ニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する
     情報処理方法。
  2.  前記ニューラルネットワークの各層のうち、出力される情報のサイズが最大となる層よりも深部にあり、かつ、当該ニューラルネットワークの入力層から出力される情報のサイズよりも小さい情報が出力される層を、前記第1の装置から前記第2の装置へと情報が伝送される伝送ポイントと決定し、決定した伝送ポイントに関する情報に基づいて、当該ニューラルネットワークを評価する
     請求項1に記載の情報処理方法。
  3.  前記伝送ポイントよりも浅部に存在する層の数、及び、前記ニューラルネットワークを構成する層の総数に基づいて、当該ニューラルネットワークを評価する
     請求項2に記載の情報処理方法。
  4.  前記ニューラルネットワークの認識性能を示す指標値に基づいて、前記ニューラルネットワークを評価する
     請求項1に記載の情報処理方法。
  5.  前記ニューラルネットワークにおける演算量に基づいて、前記ニューラルネットワークを評価する
     請求項1に記載の情報処理方法。
  6.  前記第1の装置の演算処理の性能に関する情報に基づいて、前記ニューラルネットワークを評価する
     請求項1に記載の情報処理方法。
  7.  前記第1の装置に保持される前記ニューラルネットワークの各層における浮動小数点演算を行う回数と、浮動小数点演算以外の演算を行う回数とに基づいて、当該ニューラルネットワークを評価する
     請求項6に記載の情報処理方法。
  8.  前記第1の装置に保持される前記ニューラルネットワークの各層における乗算を行う回数と、乗算以外の演算を行う回数との関係性に基づいて、当該ニューラルネットワークを評価する
     請求項6に記載の情報処理方法。
  9.  前記伝送に関する情報、前記ニューラルネットワークの認識性能を示す指標値、当該ニューラルネットワークにおける演算量、及び、前記第1の装置の演算処理の性能に関する情報の各々に所定の重み値を乗算した値に基づいて、前記ニューラルネットワークを評価する
     請求項1に記載の情報処理方法。
  10.  前記第1の装置及び前記第2の装置の構成、当該第1の装置と当該第2の装置間の通信規格、及び、前記ニューラルネットワークが提供される環境に関する情報に基づいて、前記重み値を決定する
     請求項9に記載の情報処理方法。
  11.  第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価する評価部と、
     前記評価部によるニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する決定部と
     を備えた情報処理装置。
  12.  コンピュータを、
     第1の装置と第2の装置とで分割して保持される構造を有するニューラルネットワークにおける、前記第1の装置と前記第2の装置間の情報の伝送に関する情報に基づいて、当該ニューラルネットワークを評価する評価部と、
     前記評価部によるニューラルネットワークの評価に基づいて、当該ニューラルネットワークの構造を決定する決定部と
     として機能させるための情報処理プログラム。
PCT/JP2019/027415 2018-08-03 2019-07-10 情報処理方法、情報処理装置及び情報処理プログラム WO2020026741A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US17/263,868 US20210312295A1 (en) 2018-08-03 2019-07-10 Information processing method, information processing device, and information processing program
CN201980050289.9A CN112513886B (zh) 2018-08-03 2019-07-10 信息处理方法、信息处理装置和信息处理程序
JP2020534148A JP7287397B2 (ja) 2018-08-03 2019-07-10 情報処理方法、情報処理装置及び情報処理プログラム
DE112019003910.5T DE112019003910T5 (de) 2018-08-03 2019-07-10 Informationsverarbeitungsverfahren, informationsverarbeitungsvorrichtung und informationsverarbeitungsprogramm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018147180 2018-08-03
JP2018-147180 2018-08-03

Publications (1)

Publication Number Publication Date
WO2020026741A1 true WO2020026741A1 (ja) 2020-02-06

Family

ID=69231065

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/027415 WO2020026741A1 (ja) 2018-08-03 2019-07-10 情報処理方法、情報処理装置及び情報処理プログラム

Country Status (5)

Country Link
US (1) US20210312295A1 (ja)
JP (1) JP7287397B2 (ja)
CN (1) CN112513886B (ja)
DE (1) DE112019003910T5 (ja)
WO (1) WO2020026741A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113470653A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 声纹识别的方法、电子设备和系统
WO2022001822A1 (zh) * 2020-06-30 2022-01-06 华为技术有限公司 获取神经网络的方法和装置
WO2022138232A1 (ja) * 2020-12-23 2022-06-30 ソニーグループ株式会社 通信装置、通信方法、および通信システム
JP2023014906A (ja) * 2021-07-19 2023-01-31 ヤフー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2023127388A1 (ja) * 2021-12-28 2023-07-06 ソニーグループ株式会社 無線基地局、無線基地局の制御方法、通信制御装置、通信制御装置の制御方法およびプログラム
JP7371188B2 (ja) 2022-01-17 2023-10-30 ネイバー コーポレーション ディープラーニングモデルのチューニング方法およびシステム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200084099A (ko) * 2019-01-02 2020-07-10 삼성전자주식회사 뉴럴 네트워크 최적화 장치 및 뉴럴 네트워크 최적화 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474948B2 (en) * 2015-03-27 2019-11-12 University Of Dayton Analog neuromorphic circuit implemented using resistive memories
US11093826B2 (en) * 2016-02-05 2021-08-17 International Business Machines Corporation Efficient determination of optimized learning settings of neural networks
EP3428856A4 (en) * 2016-03-09 2019-04-10 Sony Corporation INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING DEVICE
CN105892691A (zh) * 2016-06-07 2016-08-24 京东方科技集团股份有限公司 代步工具的控制方法和控制装置、代步工具系统
EP3480739A4 (en) * 2016-06-30 2019-06-26 Panasonic Intellectual Property Management Co., Ltd. INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING FOR TIME SERIES DATA AND PROGRAM
US11205110B2 (en) * 2016-10-24 2021-12-21 Microsoft Technology Licensing, Llc Device/server deployment of neural network data entry system
DE202017106532U1 (de) * 2016-10-28 2018-02-05 Google Llc Suche nach einer neuronalen Architektur
CN106960281A (zh) * 2017-03-23 2017-07-18 深圳大图科创技术开发有限公司 一种基于神经网络的电力通信网风险管理系统
JP6832783B2 (ja) * 2017-04-20 2021-02-24 株式会社日立製作所 データ分析装置、データ分析方法、およびデータ分析プログラム
KR102413028B1 (ko) * 2017-08-16 2022-06-23 에스케이하이닉스 주식회사 중첩 신경망을 프루닝하는 방법 및 장치
US20190354852A1 (en) * 2018-05-17 2019-11-21 Advanced Micro Devices, Inc. Stress indicators associated with instances of input data for training neural networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LANE, N. D. ET AL.: "DeepX: a software accelerator for low-power deep learning inference on mobile devices", PROCEEDINGS OF THE 15TH INTERNATIONAL CONFERENCE ON INFORMATION PROCESSING IN SENSOR NETWORKS, April 2016 (2016-04-01), XP032896064, ISBN: 978-1-5090-0802-5, Retrieved from the Internet <URL:https://dl.acm.org/citation.cfm?id=2959378> [retrieved on 20190826] *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113470653A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 声纹识别的方法、电子设备和系统
WO2022001822A1 (zh) * 2020-06-30 2022-01-06 华为技术有限公司 获取神经网络的方法和装置
WO2022138232A1 (ja) * 2020-12-23 2022-06-30 ソニーグループ株式会社 通信装置、通信方法、および通信システム
JP2023014906A (ja) * 2021-07-19 2023-01-31 ヤフー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP7352600B2 (ja) 2021-07-19 2023-09-28 ヤフー株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2023127388A1 (ja) * 2021-12-28 2023-07-06 ソニーグループ株式会社 無線基地局、無線基地局の制御方法、通信制御装置、通信制御装置の制御方法およびプログラム
JP7371188B2 (ja) 2022-01-17 2023-10-30 ネイバー コーポレーション ディープラーニングモデルのチューニング方法およびシステム

Also Published As

Publication number Publication date
CN112513886B (zh) 2024-03-22
CN112513886A (zh) 2021-03-16
JPWO2020026741A1 (ja) 2021-08-05
DE112019003910T5 (de) 2021-04-29
JP7287397B2 (ja) 2023-06-06
US20210312295A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
WO2020026741A1 (ja) 情報処理方法、情報処理装置及び情報処理プログラム
CN110852438B (zh) 模型生成方法和装置
WO2020094060A1 (zh) 推荐方法及装置
JP2021517295A (ja) レコメンダシステムのための高効率畳み込みネットワーク
CN110766142A (zh) 模型生成方法和装置
CN111047563B (zh) 一种应用于医学超声图像的神经网络构建方法
CN111406264A (zh) 神经架构搜索
US10592777B2 (en) Systems and methods for slate optimization with recurrent neural networks
WO2022166115A1 (en) Recommendation system with adaptive thresholds for neighborhood selection
WO2022171066A1 (zh) 基于物联网设备的任务分配方法、网络训练方法及装置
CN111445020A (zh) 一种基于图的卷积网络训练方法、装置及系统
CN112925857A (zh) 基于谓语类型预测关联的数字信息驱动的系统和方法
CN114707654B (zh) 基于人工智能框架的算法训练推理性能可视化方法及装置
CN115905687A (zh) 基于元学习图神经网络面向冷启动的推荐系统及方法
KR20220009682A (ko) 분산 기계 학습 방법 및 시스템
CN116245142A (zh) 用于深度神经网络的混合精度量化的系统和方法
CN110782016A (zh) 用于优化神经网络架构搜索的方法和装置
TW202145078A (zh) 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體
WO2022252694A1 (zh) 神经网络优化方法及其装置
CN110610231A (zh) 一种信息处理方法、电子设备和存储介质
CN109670579A (zh) 模型生成方法和装置
WO2022166125A1 (en) Recommendation system with adaptive weighted baysian personalized ranking loss
CN115907041A (zh) 一种模型训练方法及装置
JP2020155010A (ja) ニューラルネットワークのモデル縮約装置
CN111027709B (zh) 信息推荐方法、装置、服务器及存储介质

Legal Events

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

Ref document number: 19843498

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020534148

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 19843498

Country of ref document: EP

Kind code of ref document: A1