WO2017187798A1 - 情報処理装置、及び情報処理方法 - Google Patents

情報処理装置、及び情報処理方法 Download PDF

Info

Publication number
WO2017187798A1
WO2017187798A1 PCT/JP2017/008988 JP2017008988W WO2017187798A1 WO 2017187798 A1 WO2017187798 A1 WO 2017187798A1 JP 2017008988 W JP2017008988 W JP 2017008988W WO 2017187798 A1 WO2017187798 A1 WO 2017187798A1
Authority
WO
WIPO (PCT)
Prior art keywords
neural network
unit
information processing
hardware
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2017/008988
Other languages
English (en)
French (fr)
Inventor
愉希夫 大渕
慎吾 高松
啓 福井
井手 直紀
由幸 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to EP17789087.8A priority Critical patent/EP3451237A4/en
Priority to US16/080,475 priority patent/US20190057309A1/en
Priority to JP2018514172A priority patent/JP6996497B2/ja
Publication of WO2017187798A1 publication Critical patent/WO2017187798A1/ja
Anticipated expiration legal-status Critical
Priority to US19/333,985 priority patent/US20260017521A1/en
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Definitions

  • the present disclosure relates to an information processing apparatus and an information processing method.
  • Non-Patent Document 1 discloses a library for monitoring a learning process using a neural network.
  • Non-Patent Document 1 it is assumed that the neural network is executed on a single hardware, and it is difficult to design a neural network suitable for processing by a plurality of hardware. It was.
  • the present disclosure proposes an information processing apparatus and an information processing method capable of more efficiently designing a neural network suitable for processing by a plurality of hardware.
  • an information processing apparatus including an acquisition unit that acquires a plurality of hardware constraints and a determination unit that determines whether a neural network satisfies the constraints.
  • an information processing comprising: a receiving unit that receives a determination result as to whether or not the neural network satisfies a plurality of hardware constraints; and a processing unit that performs processing based on the determination result apparatus.
  • an information processing method including acquiring constraints related to a plurality of hardware and determining whether a neural network satisfies the constraints.
  • FIG. 14 is an explanatory diagram for describing a configuration example of a server 2-2 according to the second embodiment of the present disclosure.
  • FIG. It is a flowchart for demonstrating the operation example of the embodiment. It is a flowchart figure for demonstrating the processing flow which concerns on the neural network production
  • a neural network that is a model imitating a human brain neural circuit and attempts to realize the learning ability of a human on a computer has attracted attention.
  • one of the features of the neural network is that it has learning ability.
  • an artificial neuron node
  • an artificial neuron node
  • the neural network can automatically infer a solution rule for a problem by repeating learning.
  • Examples of learning using a neural network include image recognition and voice recognition.
  • the neural network for example, it is possible to classify input image information into any of numbers 0 to 9 by repeatedly learning a handwritten number pattern.
  • the learning ability of the neural network as described above is attracting attention as a key for promoting the development of artificial intelligence.
  • the pattern recognition ability of neural networks is expected to be applied in various industrial fields.
  • the recognition performance by the neural network may be executed by different hardware for each processing (for example, for each layer included in the neural network), thereby improving the overall performance.
  • FIG. 1 is an explanatory diagram for explaining an example in which recognition processing by a neural network is executed by a plurality of hardware.
  • processes P1 to P3 exist between an input layer and an output layer.
  • the processes P1 to P3 described above may be executed by different hardware, for example, by a neurochip, a CPU, and a GPU, respectively.
  • a neurochip for example, a central processing unit (CPU)
  • a CPU for example, a CPU
  • GPU GPU
  • the performance may differ depending on the combination of processing and hardware.
  • the present embodiment determines whether the neural network satisfies the constraint based on constraints related to a plurality of hardware, and provides, for example, a warning based on the determination result to the user. According to this embodiment, it is possible to more efficiently design a neural network suitable for processing by a plurality of hardware.
  • a configuration example of the first embodiment of the present disclosure for realizing the above-described effect will be described.
  • FIG. 2 is an explanatory diagram for describing a configuration example of the information processing system according to the first embodiment of the present disclosure.
  • the information processing system 1000 according to the present embodiment is an information processing system for designing a neural network by a user, and may provide a tool capable of designing a neural network by, for example, visual programming.
  • visual programming refers to a technique for creating a program code using a visual object without describing it in text in software development.
  • a program can be created by manipulating an object on a GUI (Graphical User Interface).
  • the information processing system 1000 includes a client terminal 1, a server 2, and a communication network 5, and the client terminal 1 and the server 2 communicate with each other via the communication network 5. Connected as possible.
  • the client terminal 1 is an information processing apparatus for the user to design a neural network.
  • the client terminal 1 may present (display) a design screen for designing a neural network by visual programming.
  • the client terminal 1 may receive a determination result as to whether or not the neural network satisfies a plurality of hardware constraints from the server 2, and may perform display control processing based on the determination result.
  • the server 2 is an information processing apparatus that provides a design screen for designing a neural network to the client terminal 1 and creates a program related to the neural network based on a user input via the client terminal 1. Further, the server 2 determines whether or not the neural network satisfies the constraint based on constraints on a plurality of hardware, and provides the determination result to the client terminal 1. When the neural network does not satisfy the restriction, the server 2 does not have to create a program related to the neural network.
  • the communication network 5 is a wired or wireless transmission path for information transmitted from a device or system connected to the communication network 5.
  • the communication network 5 may include a public line network such as the Internet, a telephone line network, a satellite communication network, various LANs including Ethernet (Registered Trademark), a WAN (Wide Area Network), and the like.
  • the communication network 5 may include a dedicated line network such as an IP-VPN (Internet Protocol-Virtual Private Network).
  • the information processing system 1000 it is determined whether or not a neural network designed by a user satisfies a plurality of hardware constraints, and a determination result is provided to the user.
  • a neural network design tool is provided in which a program related to a neural network that satisfies a plurality of hardware constraints is created.
  • the client terminal 1 is an information processing apparatus that includes a control unit 10, a communication unit 12, a display unit 14, and an operation unit 16.
  • the client terminal 1 may be, for example, a PC (Personal Computer), a tablet PC, or the like.
  • the control unit 10 controls each configuration of the client terminal 1.
  • the control unit 10 has a function as a communication control unit that controls communication by the communication unit 12.
  • the communication unit 12 can receive, for example, various screens and determination results from the server 2 as to whether the neural network satisfies a plurality of hardware constraints.
  • the control unit 10 also has a function as a display control unit that performs display control processing by the display unit 14.
  • the control unit 10 may display various screens on the display unit 14. With reference to FIG. 3 and FIG. 4, an example of a screen that the control unit 10 displays on the display unit 14 will be described.
  • FIG. 3 is an explanatory diagram showing an example of a constraint input screen for inputting constraints related to a plurality of hardware.
  • the constraint input screen includes, for example, hardware input forms G11 to G14 indicating hardware used for recognition processing and communication speed input forms G15 to G17 indicating communication speeds between hardware.
  • the user can use the hardware input forms G11 to G14 to select the type (Type) of hardware (HW: Hardware) and input hardware information (for example, computing performance).
  • Type type of hardware
  • HW Hardware
  • input hardware information for example, computing performance
  • the user can further customize the constraints by further inputting information of each hardware using the hardware input forms G11 to G14.
  • the user can input (customize) the communication speed between hardware using the communication speed input forms G15 to G17.
  • the connection relationship between the hardware input forms G11 to G14 may be changeable by a user operation.
  • FIG. 4 is an explanatory diagram showing an example of a design screen for designing a neural network.
  • the design screen illustrated in FIG. 4 may be received from the server 2 via the communication unit 12.
  • the design screen includes a plurality of layers G20 to G30 in the neural network.
  • the arranged layers G20 to G30 may mean, for example, data acquisition, data processing, and data output, respectively.
  • the user can design a neural network by adding, deleting, and changing a layer using a design screen as shown in FIG.
  • the layers G21 to G29 between the input layer G20 and the output layer G30 may be processed sequentially or in parallel in the order in which they are arranged.
  • the processing of layers G24 to G26 and the processing of layers G27 to G28 may be performed in parallel.
  • control unit 10 may control the display unit 14 to perform display control processing based on the determination result received from the server 2. For example, when it is determined by the server 2 that the neural network does not satisfy the constraints related to a plurality of hardware, the control unit 10 (display control unit) may display a warning screen indicating that the constraints are not satisfied. Good.
  • the warning screen displayed by the control unit 10 may be a screen that presents a portion that does not satisfy the restriction in the neural network. With such a configuration, the user can more efficiently design the neural network so as to satisfy the constraints related to a plurality of hardware.
  • the communication unit 12 (reception unit) is a communication interface that is controlled by the control unit 10 and mediates communication with other devices.
  • the communication unit 12 supports an arbitrary wireless communication protocol or wired communication protocol, and establishes a communication connection with another device via, for example, the communication network 5 shown in FIG.
  • the communication unit 12 receives from the server 2 a design screen for designing a neural network and a determination result as to whether or not the neural network satisfies a plurality of hardware constraints.
  • the communication unit 12 causes the server 2 to transmit information related to user input on various screens displayed on the display unit 14.
  • the display unit 14 is a display that displays various screens under the control of the control unit 10.
  • the display unit 14 may display the above-described constraint input screen, design screen, warning screen, and the like.
  • the display unit 14 may be realized by, for example, a CRT (Cathode Ray Tube) display device, a liquid crystal display (LCD) device, or an OLED (Organic Light Emitting Diode) device.
  • CTR Cathode Ray Tube
  • LCD liquid crystal display
  • OLED Organic Light Emitting Diode
  • the operation unit 16 receives user input and provides it to the control unit 10. For example, the user may operate the operation unit 16 to perform input for customizing constraints related to a plurality of hardware and designing a neural network.
  • the operation unit 16 may be realized by, for example, a mouse, a keyboard, a touch panel, a button, a switch, a line-of-sight input device, a gesture input device, a voice input device, or the like.
  • FIG. 5 is an explanatory diagram for explaining a configuration example of the server 2 according to the present embodiment.
  • the server 2 is an information processing apparatus that includes a control unit 20, a communication unit 22, and a storage unit 24.
  • the control unit 20 controls each component of the server 2. Further, as illustrated in FIG. 5, the control unit 20 also functions as a communication control unit 201, an acquisition unit 202, a determination unit 203, a design control unit 204, a learning unit 205, and a recognition unit 206.
  • the communication control unit 201 controls communication by the communication unit 22.
  • the communication control unit 201 may control the communication unit 22 to transmit the design screen of the neural network, the determination result by the determination unit 203, and the like to the client terminal 1.
  • the communication control unit 201 may control the communication unit 22 to receive information related to user input for customizing constraints related to a plurality of hardware and designing a neural network.
  • the acquisition unit 202 acquires constraints related to a plurality of hardware. For example, the acquisition unit 202 may acquire a plurality of hardware restrictions from the storage unit 24. In addition, the acquisition unit 202 may acquire a plurality of hardware constraints based on a user input for customizing a plurality of hardware constraints received via the communication unit 22. Further, the acquisition unit 202 may acquire a plurality of hardware constraints based on a user input related to hardware selection and a hardware constraint stored in advance in the storage unit 24.
  • constraints related to the neurochip, the CPU, and the GPU described with reference to FIG. 1 will be described, but the constraints related to the hardware are not limited to the following examples.
  • Constraints related to a plurality of hardware acquired by the acquisition unit 202 may be constraints used for determination by the determination unit 203 described below, for example. Examples of the constraints used for the determination may include constraints related to connections between hardware, constraints related to communication speed between hardware, constraints related to hardware processing capability, and the like. Examples of constraints used for determination by the determination unit 203 are shown below.
  • the neurochip is connected to the sensor (input layer)-The number of nodes that can be processed by the neurochip is 10 or less-The convolution layer is the only layer that can be processed by the neurochip-Between the neurochip and the CPU
  • the communication speed of the CPU is a predetermined speed.
  • the RAM usable by the CPU is below a predetermined value.
  • the communication speed between the CPU and the GPU is a predetermined speed.
  • the GPU cannot be directly connected to the neurochip.
  • constraints related to the plurality of hardware acquired by the acquiring unit 202 may be constraints used for the learning unit 205 described later to perform learning according to the hardware, for example.
  • constraints used to perform learning may include constraints related to hardware characteristics, constraints related to types of operations, and the like. Below, the example of the restrictions used for the learning by the learning part 205 is shown.
  • the determination unit 203 determines whether the neural network satisfies a plurality of hardware restrictions acquired by the acquisition unit 202.
  • the determination unit 203 determines, for example, whether the neural network designed by the design control unit 204 satisfies the above constraints based on a user input.
  • the determination unit 203 determines whether the neural network satisfies a plurality of hardware constraints acquired by the acquisition unit 202 based on a predetermined processing time that is set in advance or input by the user. A determination may be made. In such a case, the determination unit 203 satisfies the constraint when it is determined that the neural network satisfies a plurality of hardware constraints acquired by the acquisition unit 202 and the processing is completed within the predetermined processing time. You may judge.
  • the determination unit 203 determines that the neural network after the change is the above when the neural network is changed by the design control unit 204 based on the user input (for example, when a layer is added, deleted, or a layout is changed). It may be determined whether or not the constraint is satisfied. Note that the determination unit 203 may provide the determination result to the communication control unit 201 and the design control unit 204.
  • the design control unit 204 controls the design of the neural network based on the user input acquired via the communication unit 22. For example, the design control unit 204 may generate the design screen described with reference to FIG. 4 and provide it to the client terminal 1 via the communication unit 22. The design control unit 204 may control the arrangement of layers in the neural network based on user input.
  • the design control unit 204 associates the layers in the neural network with the hardware based on the user input acquired via the communication unit 22.
  • the user input related to the association may be performed by range selection on the design screen of the neural network, or may be performed by specifying the order in the layer processing order.
  • the design control unit 204 may create a program for constructing the neural network designed by the design control unit 204 when the determination unit 203 determines that the constraint is satisfied. According to such a configuration, a program that satisfies the constraints on a plurality of hardware and constructs a neural network that can execute recognition by the plurality of hardware is generated.
  • the design control unit 204 is a layer related to the change of the neural network so that the neural network designed by the design control unit 204 satisfies the constraint when the determination unit 203 determines that the constraint is not satisfied. May be rearranged. For example, the design control unit 204 may rearrange the added layer or the rearranged layer on hardware that can communicate with the hardware currently associated with the layer. In addition, the design control unit 204 may acquire a determination result as to whether or not the rearranged neural network satisfies the constraint from the determination unit 203, and may repeat the rearrangement until the constraint is satisfied. According to such a configuration, it becomes possible to design a neural network that satisfies the constraints related to a plurality of hardware more efficiently.
  • the learning unit 205 learns the neural network designed by the design control unit 204. For example, the learning unit 205 may perform learning according to the hardware associated with the layer for each layer in the neural root and the workpiece based on the constraints acquired by the acquisition unit 202. According to this configuration, the performance of recognition performed by the recognition unit 206 described later can be improved.
  • the learning related to the layer associated with the neurochip may be performed by a learning method according to the characteristics of the neurochip.
  • the learning method according to the characteristic of a neurochip is not limited, For example, when the characteristic of a neurochip is spiking, the learning method described in the following nonpatent literature 2 can also be used.
  • Non-Patent Document 2 O. Peter, 4 others, “Real-time classification and sensor fusion with a spiking deep belief network”, 2013, Neuromorphic Engineering 7: 178.
  • learning related to a layer associated with hardware capable of performing only integer operations may be performed by a learning method that enables processing by only integer operations.
  • the learning method which concerns is not limited, For example, the learning method described in the following nonpatent literature 3 can also be used.
  • Non-Patent Document 3 M. Courbariaux, 2 others, "BinaryConnect: Training Deep Neural Networks with binary weights during propagations TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems", November 12, 2015, [Online] Search on April 21, 2016], Internet ⁇ http://arxiv.org/pdf/1511.00363.pdf>
  • learning related to a layer associated with hardware capable of floating-point arithmetic can be performed by various learning methods that can use floating-point arithmetic.
  • the learning unit 205 may perform learning based on learning data stored in the storage unit 24 or may perform learning based on learning data acquired from the outside via the communication unit 22.
  • the recognition unit 206 performs recognition based on learning by the learning unit 205.
  • the recognition unit 206 may perform recognition by performing feedforward calculation using hardware associated with each layer in the neural network. Note that the recognition unit 206 may recognize data stored in the storage unit 24 or may recognize data acquired from the outside via the communication unit 22.
  • the communication unit 22 is a communication interface that mediates communication with other devices.
  • the communication unit 22 supports an arbitrary wireless communication protocol or wired communication protocol, and establishes a communication connection with another device via, for example, the communication network 5 illustrated in FIG.
  • the server 2 can receive a user input from the client terminal 1 connected to the communication network 5, and can transmit a design screen, a determination result by the determination unit 203, and the like to the client terminal 1. Become.
  • the storage unit 24 stores a program and parameters for each component of the server 2 to function.
  • the storage unit 24 may store hardware constraints, learning data, recognition data, and the like.
  • the server 2 includes the learning unit 205 and the recognition unit 206 to perform learning and recognition.
  • learning and recognition may be performed by other devices connected to the communication network 5, and learning and recognition may be performed by different devices.
  • the acquisition unit 202 may acquire, via the communication unit 22, from the device that performs the recognition, restrictions on a plurality of hardware that the device that performs the recognition has.
  • Example of operation> The configuration example of the information processing system 1000 according to the present embodiment has been described above. Subsequently, an operation example of the information processing system 1000 according to the present embodiment will be described with reference to FIGS. In the following, first, the processing flow of the information processing system 1000 will be described with reference to FIGS. 6 and 7, and examples of screen transitions displayed on the client terminal 1 in this embodiment will be described with reference to FIGS. .
  • FIG. 6 is a flowchart showing a processing flow example of the information processing system 1000 according to the present embodiment.
  • the flowchart shown in FIG. 6 shows the processing flow especially related to the design of the neural network among the operations according to the present embodiment.
  • the user inputs constraints related to hardware, and the acquisition unit 202 acquires the constraints (S1101).
  • the range for each hardware related to the correspondence between the hardware and the layer is set by the user (S1102).
  • the range setting for each hardware may be performed by selecting a display range on the design screen of the neural network, or by specifying the order in the layer processing order.
  • the user designs a neural network using the neural network design screen (S1103).
  • the determination unit 203 determines whether or not the designed neural network satisfies a plurality of hardware constraints (S1104).
  • the determination unit 203 determines that the neural network does not satisfy the constraint (S1104: NO)
  • a warning screen that presents a portion (part) that does not satisfy the constraint is displayed (S1105), and the process returns to step S1103.
  • the determination unit 203 determines that the neural network satisfies the constraints (S1104: YES)
  • the design process ends.
  • FIG. 7 is a flowchart showing a processing flow example of the information processing system 1000 according to the present embodiment.
  • the flowchart shown in FIG. 7 shows the processing flow especially related to the change in the design of the neural network among the operations according to the present embodiment.
  • the processing flow described below may be a processing flow for changing the design of the neural network designed by the processing of the flowchart shown in FIG.
  • the user changes the design of the neural network (for example, adding, deleting, or changing the arrangement of layers) (S1203).
  • the determination unit 203 determines whether or not the changed neural network satisfies a plurality of hardware constraints (S1204).
  • the design control unit 204 automatically performs rearrangement (S1206).
  • the automatically rearranged neural network is displayed on the design screen (S1207).
  • step S1204 If it is determined in step S1204 that the constraint is satisfied, the neural network whose design has been changed is displayed on the design screen (S1207).
  • FIG. 8 to 10 are explanatory diagrams showing examples of screens displayed on the client terminal 1 according to the present embodiment. 8 to 10 are examples of screen transitions related to the design change of the neural network included in the design screen described with reference to FIG. Further, the following description will be given with reference to the processing steps shown in FIG.
  • step S1201 in FIG. 7 the constraint input screen described with reference to FIG. 3 is displayed. Note that if the user does not need to change the hardware constraint, the acquisition unit 202 may acquire the constraint from the storage unit 24, for example, without user input.
  • step S1202 of FIG. 7 range selection for each hardware is performed as in the design screen shown in FIG.
  • the layers included in the ranges G31 to G34 shown in FIG. 8 are associated with hardware corresponding to each range by the design control unit 204.
  • the ranges G31, G32, G33, and G34 shown in FIG. 8 correspond to, for example, the hardware HW1, HW2, HW4, and HW3 in FIG. 3, respectively.
  • step S1203 of FIG. 7 the neural network is changed as shown in the screen of FIG.
  • the layer G42 is added between the layer G41 and the layer G43.
  • the layer G42 newly added in FIG. 9 is associated with HW4 because it is included in the range G33 shown in FIG.
  • step S1204 in FIG. 7 a design screen including a neural network in which the layer G52 is newly added by the change is displayed in step S1207 as illustrated in FIG. .
  • step S1204 in FIG. 7 a design screen including the neural network before change is displayed as shown in the screen in FIG. 4 (the display is the design screen in FIG. 4). Back to).
  • Second embodiment >> The first embodiment of the present disclosure has been described above. Subsequently, a second embodiment of the present disclosure will be described.
  • the second embodiment of the present disclosure generates another neural network having a different network structure based on the evaluation result of the designed neural network.
  • the Pareto optimal solution related to the evaluated neural network is updated based on the generated evaluation result of the neural network. Furthermore, according to the second embodiment of the present disclosure, it is possible to search for an efficient network structure by repeatedly generating a network and updating a Pareto optimal solution.
  • FIG. 11 is an explanatory diagram for describing a configuration example of the server 2-2 according to the second embodiment of the present disclosure.
  • the server 2-2 is an information processing apparatus including a control unit 21, a communication unit 22, and a storage unit 24.
  • the server 2-2 according to the present embodiment is different from the server 2 in FIG. 5 in that the functional configuration of the control unit 21 is partially different from the functional configuration of the control unit 20 in FIG. Note that, among the components shown in FIG. 11, the components substantially the same as the components shown in FIG. Below, the function as the determination part 213, the production
  • the determination unit 213 includes an acquisition unit that is a neural network designed or changed by the design control unit 204 based on a user input. It is determined whether or not the constraint acquired by 202 is satisfied. Further, the determination unit 213 according to the present embodiment determines whether or not a neural network generated by the generation unit 217 described later satisfies a constraint acquired by the acquisition unit 202.
  • the generation unit 217 has a function of generating another neural network having a different network structure from the original network. For example, the generation unit 217 generates another neural network having a different network structure from a neural network (hereinafter also referred to as a seed network) that is designed based on input from the user and determined to satisfy the constraints by the determination unit 213. May be. The generation unit 217 may generate another neural network having a different network structure from the neural network related to the Pareto optimal solution.
  • a neural network hereinafter also referred to as a seed network
  • the generation of the neural network by the generation unit 217 according to the present embodiment may be realized by a genetic operation including, for example, mutation or crossover (or also called crossing).
  • the mutation may be a model of a gene mutation found in an organism. That is, in the present embodiment, another neural network having a different network structure can be generated by regarding each layer constituting the network as a gene and mutating the layer.
  • the mutation according to the present embodiment may include at least one of layer insertion, layer deletion, layer type change, parameter change, graph branch, and graph branch delete.
  • the above crossover may be a model of partial exchange of chromosomes in the mating of organisms. That is, in the information processing method according to the present disclosure, the other neural network can be generated by partially exchanging the layer configurations of the two networks.
  • the method for generating a neural network according to the present embodiment is not limited to such an example.
  • the generation of another neural network according to the present embodiment may be realized using, for example, a neural network that changes the network structure of the input network.
  • Various methods including the above example can be applied to the generation of the neural network.
  • the generation unit 217 may repeat generation of another neural network until a neural network determined to satisfy the constraint by the determination unit is generated. According to such a configuration, the generation unit 217 can generate a neural network that satisfies the constraints related to a plurality of hardware.
  • the evaluation unit 218 has a function of acquiring the evaluation result of the generated neural network.
  • the evaluation unit 218 may cause the recognition unit 206 to execute the generated neural network and acquire the evaluation result.
  • the acquisition of the evaluation result by the evaluation unit 218 is not limited to the above, and the evaluation result may be acquired by executing a neural network generated by various devices connected via the communication network 5.
  • the evaluation result acquired by the evaluation unit 218 includes at least one of a calculation amount related to the generated neural network and a learning error or a validation error (hereinafter, sometimes collectively referred to as an error). It's okay.
  • the evaluation unit 218 can acquire the above calculation amount based on the network structure of the generated neural network. Note that the evaluation result according to the present embodiment is not limited to the above. For example, the total cost of hardware calculated from the amount of used memory, the amount of heat generation, the amount of power consumption, the amount of calculation, the server cost, etc.
  • the total service cost including The evaluation unit 218 can calculate the above values based on information related to hardware and services stored in advance.
  • the evaluation unit 218 has a function of updating the Pareto optimal solution related to the evaluated neural network based on the generated evaluation result of the neural network. In other words, the evaluation unit 218 acquires the evaluation result of the neural network generated by the generation unit 217, and repeatedly executes the update of the Pareto optimal solution based on the evaluation result.
  • FIG. 12 is a flowchart for explaining an operation example of the present embodiment.
  • the processing in steps S2100 and S2200 shown in FIG. 7 is the same as the processing in steps S1101 and S1102 described with reference to FIG.
  • step S2300 the design of the neural network by the user and the determination by the determination unit 213 are performed (S2300).
  • the processing in step S2300 may include, for example, processing similar to the processing in steps S1103 to S1105 described with reference to FIG. 6 or the processing in steps S1203 to S1208 described with reference to FIG.
  • the generation unit 217 generates another neural network having a different network structure from the neural network (seed network) determined to satisfy the constraint by the determination unit 213 in step S2300 (S2400).
  • seed network the neural network determined to satisfy the constraint by the determination unit 213 in step S2300 (S2400).
  • a detailed processing flow relating to generation of the neural network in step S2400 will be described later with reference to FIGS.
  • the evaluation unit 218 acquires the evaluation result of the generated neural network (S2500). If the network structure search by the evaluation unit 218 has not been completed (S2600: NO), the process proceeds to step S2700.
  • step S2700 the evaluation unit 218 updates the Pareto optimal solution related to the evaluated neural network based on the generated evaluation result of the neural network. Subsequently, the process returns to step S2400, and the generation unit 217 generates another neural network having a different network structure from the neural network related to the Pareto optimal solution.
  • a neural network with a minimum error (maximum performance), a neural network with a minimum amount of calculation, or a neural network with an intermediate solution may be obtained.
  • the definition of the intermediate solution may be appropriately designed according to conditions.
  • the neural network as described above may be presented to the user, and the user may select one of the neural networks.
  • FIG. 13 is a flowchart for explaining a processing flow relating to generation of a neural network.
  • the generation unit 217 randomly determines another neural network generation method to be applied to the original neural network (S2410).
  • the original neural network may be a seed network designed based on an input by the user and determined to satisfy the constraint by the determination unit 213.
  • the original neural network may be a network randomly selected by the generation unit 217 from the neural network related to the Pareto optimal solution updated by the evaluation unit 218.
  • the generation unit 217 generates another neural network having a different network structure from the original neural network based on the generation method selected in step S2410.
  • the generation unit 217 according to the present embodiment may generate another neural network described above by mutating the original neural network (S2420).
  • the generation unit 217 may generate another neural network described above by crossing the original neural network (S2430).
  • S2430 The detailed flow of mutation and crossover in step S2420 and step S2430 will be described later with reference to FIGS. 14 and 15, respectively.
  • the generation unit 217 determines the consistency of the neural network generated in step S2420 or step S2430 (S2440). At this time, the generation unit 217 may determine whether an error has occurred in the layer configuration of the generated neural network. The generation unit 217 may determine that there is no network consistency, for example, when the input data is too small during the Max-Pooling process. Thus, when it determines with there being no consistency of the produced
  • the determination unit 213 determines whether or not the generated neural network satisfies the constraint acquired by the acquisition unit 202. If the determination unit 213 determines that the generated neural network does not satisfy the constraint (S2450: NO), the generation unit 217 discards the generated neural network and returns to step S2410.
  • the generation unit 217 determines whether the input and output of the generated neural network and the original neural network are the same (S2460). .
  • the generation unit 217 discards the generated neural network and returns to step S2410.
  • the generation unit 217 normally ends the process related to network generation.
  • the generation unit 217 according to the present embodiment can generate another neural network having a different network structure from a seed network or a network related to the Pareto optimal solution.
  • FIG. 13 the case where the generation unit 217 generates another neural network by genetic operation using mutation or crossover has been described as an example.
  • the generation of the network according to the present embodiment is not limited to the example.
  • the generation unit 217 according to the present embodiment may generate another neural network described above using a neural network that changes the network structure of the input neural network. Various methods may be applied to the generation of the neural network by the generation unit 217.
  • FIG. 14 is a flowchart for explaining network generation using mutation by the generation unit 217. That is, the flowchart shown in FIG. 14 shows the detailed control of the generation unit 217 in step S2420 shown in FIG.
  • the mutation according to the present embodiment may include layer insertion, layer deletion, layer type change, parameter change, graph branch, and graph branch delete.
  • the generation unit 217 randomly determines a mutation technique to be applied to the original neural network (S2421). Subsequently, the generation unit 217 changes the network structure of the original neural network based on the method selected in step S2421.
  • the generation unit 217 may perform a process of inserting a new layer (S2422). For example, the generation unit 217 can generate another neural network having a different network structure by newly inserting an activation function such as Relu into the original neural network.
  • the generation unit 217 may perform a process of deleting an existing layer (S2423).
  • the generation unit 217 can generate another neural network having a different network structure, for example, by deleting a layer related to Max-Pooling from the original neural network.
  • the generation unit 217 may perform a process of changing the layer type of the existing layer (S2424).
  • the generation unit 217 can generate another neural network having a different network structure, for example, by replacing an activation function existing in the original neural network with another activation function.
  • the generation unit 217 may perform a process of changing parameters related to an existing layer (S2425). For example, the generation unit 217 can generate another neural network having a different network structure by changing the kernel shape of an existing Convolution layer.
  • the generation unit 217 may perform a process of creating a new graph branch (S2426). For example, the generation unit 217 can generate another neural network by creating a graph branch by copying a part of an existing layer and inserting a Concatenate layer as a connection unit of the graph branch.
  • the generation unit 217 may perform a process of deleting an existing graph branch (S2427). For example, the generation unit 217 can generate another neural network by deleting one route of an existing graph branch and deleting the Concatenate layer when the branch disappears due to the deletion.
  • the network generation using mutation by the generation unit 217 according to the present embodiment has been described above.
  • the case where the generation unit 217 executes the processing of steps S2422 to S2427 selected at random has been described as an example.
  • the mutation control according to the present embodiment is not limited to this example.
  • the generation unit 217 may perform two or more processes related to steps S2422 to S2427 at the same time, or may execute execution determinations of steps S2422 to S2427. Further, the generation unit 217 may execute processing other than that shown in the example of FIG. Mutation control by the generation unit 217 can be flexibly changed.
  • FIG. 15 is a flowchart for explaining network generation using crossover by the generation unit 217. That is, the flowchart shown in FIG. 15 shows the detailed control of the generation unit 217 in step S2430 shown in FIG.
  • the generation unit 217 selects two original networks in order to perform crossover (S2431).
  • the generation unit 217 may select two seed networks that are designed based on an input by the user and determined to satisfy the constraint by the determination unit 213.
  • the generation unit 217 can also select one seed network that is designed based on an input by the user and determined to satisfy the constraint by the determination unit 213, and a crossover network that is registered in advance.
  • the generation unit 217 may select another neural network generated by mutation from the seed network that is designed based on input from the user and determined to satisfy the constraint by the determination unit 213.
  • the generation unit 217 crosses the two networks selected in step S2431, and generates another neural network having a different network structure (S2432). At this time, the generation unit 217 may perform crossover by various methods.
  • the generation unit 217 can generate another neural network as described above, for example, by one-point crossing, two-point crossing, multi-point crossing, uniform crossing, or the like.
  • the generation unit 217 according to the present embodiment can generate another neural network having a different network structure from the original neural network by a genetic operation including mutation and crossover. That is, in the information processing method according to the present embodiment, it is possible to search for a more efficient network structure by repeatedly updating the Pareto optimal solution based on the evaluation result of the neural network generated by the generation unit 217. .
  • another neural network having a different network structure can be generated based on the evaluation result of the designed neural network. Further, according to the present embodiment, it is possible to search for an efficient network structure by repeatedly generating a network and updating the Pareto optimal solution.
  • the generated neural network is a neural network that is determined by the determination unit 213 to satisfy a plurality of hardware constraints. Therefore, according to the present embodiment, it is possible to search for an efficient network structure that is suitable for processing by a plurality of hardware.
  • the client terminal 1 has the functions of the acquisition unit 202, the determination unit 203, and the design control unit 204 described with reference to FIG. 5, and information on the neural network designed using the client terminal 1 is stored in the server. 2 may be provided.
  • FIG. 16 is an explanatory diagram showing the hardware configuration of the server 2.
  • the server 2 includes a CPU (Central Processing Unit) 2001, a DSP (Digital Signal Processor) 2002, a GPU (Graphics Processing Unit) 2003, a neurochip 2004, and a ROM (Read Only Only). 2005, RAM (Random Access Memory) 2006, an input device 2007, an output device 2008, a storage device 2009, a drive 2010, and a communication device 2011.
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • GPU Graphics Processing Unit
  • ROM Read Only Only
  • RAM Random Access Memory
  • the CPU 2001 functions as an arithmetic processing unit and a control unit, and controls the overall operation in the server 2 according to various programs. Further, the CPU 2001 may be a microprocessor.
  • the DSP 2002, GPU 2003, and neurochip 2004 function as an arithmetic processing device.
  • the CPU 2001, the DSP 2002, the GPU 2003, and the neurochip 2004 may be hardware that executes recognition processing using a neural network in the present disclosure.
  • the ROM 2005 stores programs used by the CPU 2001, calculation parameters, and the like.
  • the RAM 2006 temporarily stores programs used in the execution of the CPU 2001, DSP 2002, GPU 2003, and neurochip 2004, parameters that change as appropriate during the execution, and the like. These are connected to each other by a host bus including a CPU bus. Mainly, the functions of the communication control unit 201, the acquisition unit 202, the determination unit 203, the design control unit 204, and the learning unit 205 are realized by the cooperation of the CPU 2001, the ROM 2005, the RAM 2006, and the software.
  • the input device 2007 includes input means for a user to input information, such as a mouse, keyboard, touch panel, button, microphone, switch, and lever, and an input control circuit that generates an input signal based on the input by the user and outputs the input signal to the CPU 2001.
  • a user can input various data and instruct processing operations to the server 2 by operating the input device 2007.
  • the output device 2008 includes a display device such as a liquid crystal display (LCD) device, an OLED (Organic Light Emitting Diode) device, and a lamp. Furthermore, the output device 2008 includes an audio output device such as a speaker and headphones. For example, the display device displays a captured image or a generated image. On the other hand, the audio output device converts audio data or the like into audio and outputs it.
  • a display device such as a liquid crystal display (LCD) device, an OLED (Organic Light Emitting Diode) device, and a lamp.
  • the output device 2008 includes an audio output device such as a speaker and headphones.
  • the display device displays a captured image or a generated image.
  • the audio output device converts audio data or the like into audio and outputs it.
  • the storage device 2009 is a data storage device configured as an example of the storage unit 24 of the server 2 according to the present embodiment.
  • the storage device 2009 may include a storage medium, a recording device that records data on the storage medium, a reading device that reads data from the storage medium, a deletion device that deletes data recorded on the storage medium, and the like.
  • the storage device 2009 stores programs executed by the CPU 2001 and various data.
  • the drive 2010 is a reader / writer for a storage medium, and is built in the server 2 or externally attached.
  • the drive 2010 reads information recorded on a removable storage medium such as a mounted magnetic disk, optical disk, magneto-optical disk, or semiconductor memory, and outputs the information to the RAM 2005.
  • the drive 2010 can also write information to a removable storage medium.
  • the communication device 2011 is a communication interface configured by a communication device or the like.
  • the communication device 2011 may be a wireless LAN (Local Area Network) compatible communication device, an LTE (Long Term Evolution) compatible communication device, or a wire communication device that performs wired communication.
  • the communication device 2011 corresponds to the communication unit 22 of the server 2.
  • the client terminal 1 and the server 2-2 according to the second embodiment also have hardware equivalent to the CPU 2001, the ROM 205, the RAM 206, and the like, like the server 2.
  • the function of the control part 10 is implement
  • functions corresponding to the determination unit 213, the generation unit 217, and the evaluation unit 218 are realized by the cooperation of the hardware and software of the server 2-2 according to the second embodiment.
  • each step in the above-described embodiment does not necessarily have to be processed in time series in the order described as a flowchart.
  • each step in the processing of the above embodiment may be processed in an order different from the order described as the flowchart diagram or may be processed in parallel.
  • the processing in step S1101 for inputting or obtaining hardware-related constraints and the processing in step S1102 for setting a range for each hardware are performed after the processing in step S1103 related to the design of the neural network. May be.
  • the computer program for causing the hardware such as the CPU 2001, the ROM 2005, and the RAM 2006 to perform the same functions as the configurations of the client terminal 1, the server 2, and the server 2-2 described above. Can be provided.
  • a recording medium on which the computer program is recorded is also provided.
  • the design control unit creates a program for constructing the neural network when the determination unit determines that the constraint is satisfied.
  • Processing equipment (6)
  • the display unit further includes a display control unit that displays a warning screen indicating that the constraint is not satisfied.
  • the information processing apparatus according to item.
  • the warning screen presents a portion that does not satisfy the restriction in the neural network.
  • the learning unit according to any one of (1) to (7), further including a learning unit that performs learning according to hardware associated with the layer for each layer in the neural network based on the constraint. Information processing device.
  • a generating unit that generates another neural network having a different network structure from the neural network determined to satisfy the constraint by the determining unit;
  • An evaluation unit that obtains an evaluation result of the generated neural network, and The evaluation unit updates the Pareto optimal solution related to the evaluated neural network based on the generated evaluation result of the neural network,
  • the generation unit generates another neural network having a different network structure from the neural network related to the Pareto optimal solution.
  • the information processing apparatus according to any one of (1) to (8).
  • the determination unit determines whether the neural network generated by the generation unit satisfies the constraint, The information processing apparatus according to (9), wherein the generation unit repeats generation of the other neural network until a neural network determined to satisfy the constraint is generated by the determination unit.
  • the information processing apparatus according to (9) or (10), wherein the generation unit generates the another neural network by a genetic operation.
  • the genetic operation includes at least one of mutation and crossover.
  • the mutation includes at least one of layer insertion, layer deletion, layer type change, parameter change, graph branch, or graph branch delete .
  • the information processing apparatus according to any one of (1) to (13), further including a communication control unit that transmits a determination result by the determination unit.
  • a receiving unit that receives a determination result of whether or not the neural network satisfies a plurality of hardware constraints;
  • a processing unit for performing processing based on the determination result;
  • An information processing apparatus comprising: (16) Obtaining constraints on multiple hardware; Determining whether the neural network satisfies the constraints;
  • An information processing method including:

Landscapes

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

Abstract

【課題】複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能な情報処理装置、及び情報処理方法を提供する。 【解決手段】複数のハードウェアに係る制約を取得する取得部と、ニューラルネットワークが、前記制約を満たすか否か判定を行う判定部と、を備える情報処理装置。

Description

情報処理装置、及び情報処理方法
 本開示は、情報処理装置、及び情報処理方法に関する。
 近年、脳神経系の仕組みを模したニューラルネットワークが注目されている。また、ニューラルネットワークを開発するための種々の手法が提案されている。例えば、非特許文献1には、ニューラルネットワークによる学習過程をモニタリングするライブラリが開示されている。
M. Abadi、外39名、「TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems」、2015年11月9日、[Online]、[平成28年4月22日検索]、インターネット<http://download.tensorflow.org/paper/whitepaper2015.pdf>
 しかし、非特許文献1に記載のライブラリでは、ニューラルネットワークが単一のハードウェア上で実行されることを前提としており、複数のハードウェアによる処理に適合したニューラルネットワークを設計することは困難であった。
 そこで、本開示では、複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能な情報処理装置、及び情報処理方法を提案する。
 本開示によれば、複数のハードウェアに係る制約を取得する取得部と、ニューラルネットワークが、前記制約を満たすか否か判定を行う判定部と、を備える情報処理装置が提供される。
 また、本開示によれば、ニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果を受信する受信部と、前記判定結果に基づいて処理を行う処理部と、を備える情報処理装置。
 また、本開示によれば、複数のハードウェアに係る制約を取得することと、ニューラルネットワークが、前記制約を満たすか否か判定を行うことと、を含む情報処理方法が提供される。
 以上説明したように本開示によれば、複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能である。
 なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
ニューラルネットワークによる認識処理を複数のハードウェアで実行する例を説明するための説明図である。 本開示の第一の実施形態に係る情報処理システムの構成例を説明するための説明図である。 複数のハードウェアに係る制約を入力するための制約入力画面の一例を示す説明図である。 同実施形態に係るニューラルネットワークの設計を行うための設計画面の一例を示す説明図である。 同実施形態に係るサーバ2の構成例を説明するための説明図である。 同実施形態による情報処理システム1000の処理フロー例を示すフローチャート図である。 同実施形態に係る情報処理システム1000の処理フロー例を示すフローチャート図である。 同実施形態に係るクライアント端末1に表示される画面例を示す説明図である。 同実施形態に係るクライアント端末1に表示される画面例を示す説明図である。 同実施形態に係るクライアント端末1に表示される画面例を示す説明図である。 本開示の第二の実施形態に係るサーバ2-2の構成例を説明するための説明図である。 同実施形態の動作例を説明するためのフローチャート図である。 同実施形態に係るニューラルネットワーク生成に係る処理フローを説明するためのフローチャート図である。 同実施形態に係る生成部217による突然変異を用いたネットワーク生成を説明するためのフローチャートである。 同実施形態に係る生成部217による交叉を用いたネットワーク生成を説明するためのフローチャート図である。 ハードウェア構成例を示す説明図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 <<1.第一の実施形態>>
  <1-1.背景>
  <1-2.構成例>
  <1-3.動作例>
  <1-4.効果>
 <<2.第二の実施形態>>
  <2-1.構成例>
  <2-2.動作例>
  <2-3.効果>
 <<3.変形例>>
  <3-1.変形例1>
  <3-2.変形例2>
 <<4.ハードウェア構成例>>
 <<5.むすび>>
 <<1.第一の実施形態>>
  <1-1.背景>
 本開示の第一の実施形態に係る情報処理装置について説明する前に、まず、本実施形態の創作に至った背景を説明する。
 近年、人間の脳神経回路を模したモデルであり、人間が持つ学習能力をコンピュータ上で実現しようとするニューラルネットワークが注目されている。上述したとおり、ニューラルネットワークは学習能力を有することを特徴の一つとする。ニューラルネットワークでは、シナプスの結合によりネットワークを形成した人工ニューロン(ノード)が、学習によりシナプスの結合強度を変化させることで、問題に対する解決能力を獲得することが可能である。すなわち、ニューラルネットワークは、学習を重ねることで、問題に対する解決ルールを自動的に推論することができる。
 ニューラルネットワークによる学習の例としては、画像認識や音声認識が挙げられる。ニューラルネットワークでは、例えば、手書きの数字パターンを繰り返し学習することで、入力される画像情報を、0~9の数字のいずれかに分類することが可能となる。ニューラルネットワークの有する上記のような学習能力は、人工知能(Artificial Intelligence)の発展を推し進める鍵としても注目されている。また、ニューラルネットワークが有するパターン認識力は、種々の産業分野における応用が期待される。
 一方、ニューラルネットワークを設計する際、ニューラルネットワークによる認識処理におけるパフォーマンス(例えば実行時間や消費電力等)は重要な指標となる。また、パフォーマンスを向上させるため、異なる種類の複数のハードウェアを用いてニューラルネットワークによる認識処理を行うことが考えられる。
 例えば、ニューラルネットワークによる認識処理が、処理毎に(例えばニューラルネットワークに含まれるレイヤーごと)に異なるハードウェアにより実行されることで、全体としてのパフォーマンスが向上する場合がある。
 図1は、ニューラルネットワークによる認識処理を複数のハードウェアで実行する例を説明するための説明図である。図1に示すニューラルネットワークにおいて、入力レイヤー(Input layer)と出力レイヤー(Output layer)の間には処理P1~P3が存在する。上記の処理P1~P3が、それぞれ異なるハードウェアで実行されてもよく、例えば、それぞれニューロチップ、CPU、及びGPUで実行されてもよい。例えば、CPUは消費電力が大きく、GPUは消費電力が小さい場合、処理とハードウェアの組み合わせに応じて、パフォーマンスが異なり得る。
 しかし、単一のハードウェアで認識処理が実行されることを前提としたニューラルネットワークの設計ツールを用いて、複数のハードウェアで実行されるニューラルネットワークの設計を行うことは困難であった。また、複数のハードウェアで実行されるニューラルネットを設計できたとしても、それぞれのハードウェアには、制約が存在し得るため、例えば設計されたニューラルネットワークが、当該複数のハードウェアの実行に適合しない恐れがあった。例えば、ハードウェアによっては、処理可能なノード数に制約が存在する場合があり、当該ノード数以上のノード数を有するレイヤーが当該ハードウェアに割り当てられてしまうと、認識処理を実行することができない恐れがあった。
 そこで、上記事情を一着眼点にして本実施形態を創作するに至った。本実施形態は、複数のハードウェアに係る制約に基づき、ニューラルネットワークが当該制約を満たすか否かを判定し、例えばユーザに判定結果に基づく警告を提供する。本実施形態によれば、複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能である。以下、上記のような効果を実現するための本開示の第一の実施形態の構成例について説明する。
  <1-2.構成例>
 図2を参照しながら、本開示の第一の実施形態の構成例を説明する。図2は、本開示の第一の実施形態に係る情報処理システムの構成例を説明するための説明図である。本実施形態に係る情報処理システム1000は、ユーザによるニューラルネットワークの設計のための情報処理システムであり、例えばビジュアルプログラミングにより、ニューラルネットワークを設計することが可能なツールを提供してもよい。
 本開示において、ビジュアルプログラミングとは、ソフトウェア開発において、プログラムコードをテキストで記述することなく、視覚的なオブジェクトを用いて作成する手法を指す。ビジュアルプログラミングでは、例えば、GUI(Graphical User Interface)上で、オブジェクトを操作することで、プログラムを作成することができる。
 図2に示すように、本実施形態に係る情報処理システム1000は、クライアント端末1、サーバ2、及び通信網5を含み、クライアント端末1とサーバ2とは、通信網5を介して互いに通信を行えるように接続される。
 クライアント端末1は、ユーザがニューラルネットワークの設計を行うための情報処理装置である。例えば、クライアント端末1は、ビジュアルプログラミングによりニューラルネットワークの設計を行うための設計画面をユーザに提示(表示)してもよい。また、クライアント端末1は、サーバ2からニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果を受信し、当該判定結果に基づいて、表示制御処理を行ってもよい。
 サーバ2は、クライアント端末1にニューラルネットワークの設計を行うための設計画面を提供し、クライアント端末1を介したユーザの入力に基づいて、ニューラルネットワークに係るプログラムを作成する情報処理装置である。また、サーバ2は、複数のハードウェアに係る制約に基づいて、ニューラルネットワークが当該制約を満たすか否か判定を行い、判定結果をクライアント端末1に提供する。また、ニューラルネットワークが当該制約を満たさない場合、サーバ2は当該ニューラルネットワークに係るプログラムを作成しなくてもよい。
 通信網5は、通信網5に接続されている装置、またはシステムから送信される情報の有線、または無線の伝送路である。例えば、通信網5は、インターネット、電話回線網、衛星通信網等の公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)等を含んでもよい。また、通信網5は、IP-VPN(Internet Protocol-Virtual Private Network)等の専用回線網を含んでもよい。
 本実施形態に係る情報処理システム1000によれば、ユーザにより設計されるニューラルネットワークが、複数のハードウェアに係る制約を満たすか否かの判定が行われ、判定結果がユーザに提供される。また、本実施形態に係る情報処理システム1000によれば、複数のハードウェアに係る制約を満たすニューラルネットワークに係るプログラムが作成されるようなニューラルネットワークの設計ツールが提供される。
 (クライアント端末)
 続いて、本実施形態に係るクライアント端末1について詳細に説明する。図2に示すように、本実施形態に係るクライアント端末1は、制御部10、通信部12、表示部14、及び操作部16を備える情報処理装置である。なお、クライアント端末1は、例えばPC(Personal Computer)、タブレットPC等であってもよい。
 制御部10は、クライアント端末1の各構成を制御する。例えば、制御部10は、通信部12による通信を制御する通信制御部としての機能を有する。係る構成により、通信部12は、例えば各種画面や、ニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果をサーバ2から受信することが出来る。
 また、制御部10は、表示部14による表示の制御処理を行う表示制御部としての機能を有する。例えば、制御部10は、各種画面を表示部14に表示させてもよい。図3、図4を参照して、制御部10が表示部14に表示させる画面の例を説明する。
 図3は、複数のハードウェアに係る制約を入力するための制約入力画面の一例を示す説明図である。図3に示すように、制約入力画面は、例えば、認識処理に用いられるハードウェアを示すハードウェア入力フォームG11~G14と、ハードウェア間の通信速度を示す通信速度入力フォームG15~G17を含む。ユーザは、ハードウェア入力フォームG11~G14を用いて、ハードウェア(HW:Hardware)の種類(Type)の選択や、ハードウェアの情報(例えば演算性能等)の入力を行うことが可能である。例えば、ハードウェア入力フォームG11~G14によりそれぞれハードウェアHW1~HW4が選択されることで、予め用意された、ハードウェアに係る制約が設定され得る。また、ユーザがハードウェア入力フォームG11~G14を用いて各ハードウェアの情報をさらに入力することで、制約をカスタマイズすることも可能である。
 また、ユーザは、通信速度入力フォームG15~G17を用いて、ハードウェア間の通信速度の入力(カスタマイズ)を行うことが可能である。なお、ハードウェア入力フォームG11~G14の間の接続関係は、ユーザ操作により変更可能であってもよい。
 図4は、ニューラルネットワークの設計を行うための設計画面の一例を示す説明図である。図4に示す設計画面は、通信部12を介して、サーバ2から受信されてもよい。図4に示すように、設計画面は、ニューラルネットワークにおける複数のレイヤーG20~G30が配置される。配置されたレイヤーG20~G30は、例えばデータの取り込み、データの処理、データの出力をそれぞれ意味していてもよい。ユーザは、図4に示すような設計画面を用いて、レイヤーの追加、削除、配置変更等を行い、ニューラルネットワークを設計することが出来る。
 また、入力レイヤーG20と出力レイヤーG30の間のレイヤーG21~G29は、配置された順に逐次、または並列に処理されてもよい。例えば、レイヤーG24~G26の処理と、レイヤーG27~G28の処理とは、並列に処理されてもよい。
 また、制御部10(処理部)は、表示部14を制御して、サーバ2から受信される判定結果に基づく表示制御処理を行ってもよい。例えば、サーバ2により、ニューラルネットワークが複数のハードウェアに係る制約を満たさないと判定された場合に、制御部10(表示制御部)は、制約が満たされないことを示す警告画面を表示させてもよい。また、制御部10が表示させる警告画面は、ニューラルネットワークにおいて当該制約を満たさない部分を提示する画面であってもよい。係る構成により、ユーザは複数のハードウェアに係る制約を満たすようにニューラルネットワークをより効率的に設計することが可能となる。
 通信部12(受信部)は、制御部10により制御されて、他の装置との間の通信を仲介する通信インタフェースである。通信部12は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、例えば図2に示す通信網5を介して他の装置との間の通信接続を確立する。例えば、通信部12はニューラルネットワークの設計を行うための設計画面や、ニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果をサーバ2から受信する。また、通信部12は、表示部14に表示される各種画面に対するユーザの入力に係る情報をサーバ2に送信させる。
 表示部14は制御部10に制御されて、各種画面を表示するディスプレイである。例えば、表示部14は、上述した制約入力画面、設計画面、警告画面等を表示してもよい。なお、表示部14は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD:Liquid Crystal Display)装置、OLED(Organic Light Emitting Diode)装置により実現されてもよい。
 操作部16は、ユーザの入力を受け付け、制御部10に提供する。例えば、ユーザは、操作部16を操作して、複数のハードウェアに係る制約のカスタマイズや、ニューラルネットワークの設計を行うための入力を行ってもよい。なお、操作部16は、例えばマウス、キーボード、タッチパネル、ボタン、スイッチ、視線入力装置、ジェスチャ入力装置、音声入力装置などにより実現されてもよい。
 (サーバ)
 以上、本実施形態に係るクライアント端末1の構成例を説明した。続いて、図5を参照して、本実施形態に係るサーバ2の構成例を説明する。図5は、本実施形態に係るサーバ2の構成例を説明するための説明図である。図5に示すように、サーバ2は、制御部20、通信部22、及び記憶部24を備える情報処理装置である。
 制御部20は、サーバ2の各構成を制御する。また、制御部20は、図5に示すように、通信制御部201、取得部202、判定部203、設計制御部204、学習部205、及び認識部206としても機能する。
 通信制御部201は、通信部22による通信を制御する。例えば、通信制御部201は、通信部22を制御して、ニューラルネットワークの設計画面、判定部203による判定結果等を、クライアント端末1に送信させてもよい。また、通信制御部201は、通信部22を制御して、複数のハードウェアに係る制約のカスタマイズや、ニューラルネットワークの設計を行うためのユーザの入力に係る情報を受信してもよい。
 取得部202は、複数のハードウェアに係る制約を取得する。例えば、取得部202は、記憶部24から、複数のハードウェアに係る制約を取得してもよい。また、取得部202は、通信部22を介して受信される複数のハードウェアに係る制約のカスタマイズを行うためのユーザの入力に基づいて、複数のハードウェアに係る制約を取得してもよい。また、取得部202は、ハードウェアの選択に係るユーザの入力と、記憶部24に予め記憶されたハードウェアに係る制約に基づいて、複数のハードウェアに係る制約を取得してもよい。
 以下では、図1を参照して説明した、ニューロチップ、CPU、及びGPUに係る制約の例について説明を行うが、ハードウェアに係る制約は以下の例に限定されない。
 取得部202により取得される、複数のハードウェアに係る制約は、例えば後述する判定部203による判定に用いられる制約であってもよい。判定に用いられる制約の例としては、ハードウェア間の接続に係る制約や、ハードウェア間の通信速度に係る制約、ハードウェアの処理能力に係る制約等であってもよい。以下に判定部203による判定に用いられる制約の例を示す。
 ・ニューロチップはセンサ(入力レイヤー)に接続される
 ・ニューロチップが処理可能なノード数は10以下である
 ・ニューロチップが処理可能なレイヤーはコンボリューションレイヤーのみである
 ・ニューロチップとCPUとの間の通信速度は所定の速度である
 ・CPUが利用可能なRAMは所定値以下である
 ・CPUとGPUとの間の通信速度は所定の速度である
 ・GPUはニューロチップと直接接続できない
 また、取得部202により取得される、複数のハードウェアに係る制約は、例えば後述する学習部205がハードウェアに応じた学習を行うために用いられる制約であってもよい。学習を行うために用いられる制約の例としては、ハードウェアの特性に係る制約や、演算の種類に係る制約等であってもよい。以下に、学習部205による学習に用いられる制約の例を示す。
 ・ニューロチップのニューロンの特性はスパイキングである
 ・CPUは整数演算のみ可能(浮動小数点演算不可能)である
 判定部203は、ニューラルネットワークが、取得部202により取得される複数のハードウェアに係る制約を満たすか否か判定を行う。判定部203は、例えば、ユーザの入力に基づいて設計制御部204により設計されたニューラルネットワークが、上記制約を満たすか否か判定を行う。
 なお、判定部203は、予め設定される、またはユーザにより入力される、所定の処理時間にさらに基づき、ニューラルネットワークが、取得部202により取得される複数のハードウェアに係る制約を満たすか否か判定を行ってもよい。係る場合、判定部203は、ニューラルネットワークが取得部202により取得される複数のハードウェアに係る制約を満たし、かつ当該所定の処理時間内に処理が完了すると判定された場合に、制約を満たすと判定してもよい。
 また、判定部203は、ユーザの入力に基づいて、設計制御部204によりニューラルネットワークが変更された(例えばレイヤーの追加、削除、配置変更等が発生した)場合に、変更後のニューラルネットワークが上記制約を満たすか否か判定を行ってもよい。なお、判定部203は判定結果を通信制御部201と設計制御部204に提供してもよい。
 設計制御部204は、通信部22を介して取得されるユーザの入力に基づいて、ニューラルネットワークの設計を制御する。例えば、設計制御部204は、図4を参照して説明した設計画面を生成し、通信部22を介してクライアント端末1に提供してもよい。また、設計制御部204は、ユーザの入力に基づいて、ニューラルネットワークにおけるレイヤーの配置を制御してもよい。
 また、設計制御部204は、通信部22を介して取得されるユーザの入力に基づいて、ニューラルネットワークにおけるレイヤーと、ハードウェアの対応付けを行う。対応付けに係るユーザの入力は、ニューラルネットワークの設計画面において範囲選択により行われてもよいし、レイヤーの処理順における順番の指定により行われてもよい。
 また、設計制御部204は、設計制御部204により設計されたニューラルネットワークが、判定部203により、制約を満たすと判定された場合に、当該ニューラルネットワークを構築するプログラムを作成してもよい。係る構成によれば、複数のハードウェアに係る制約を満たし、当該複数のハードウェアにより認識を実行可能なニューラルネットワークを構築するプログラムが生成される。
 また、設計制御部204は、設計制御部204により設計されたニューラルネットワークが、判定部203により、制約を満たさないと判定された場合に、当該制約を満たすように、ニューラルネットワークの変更に係るレイヤーの再配置を行ってもよい。例えば、設計制御部204は、追加されたレイヤーまたは配置変更されたレイヤーを、当該レイヤーが現在対応付けられているハードウェアから通信可能なハードウェアに再配置してもよい。また、設計制御部204は、再配置後のニューラルネットワークが制約を満たすか否かの判定結果を判定部203から取得して、制約が満たされるまで、再配置を繰り返してもよい。係る構成によれば、より効率的に、複数のハードウェアに係る制約を満たしたニューラルネットワークを設計することが可能となる。
 学習部205は、設計制御部204により設計されたニューラルネットワークの学習を行う。学習部205は、例えば取得部202により取得される制約に基づいて、ニューラル根とワークにおけるレイヤーごとに、レイヤーに対応付けられたハードウェアに応じた学習を行ってもよい。係る構成によれば、後述する認識部206により行われる認識の実行パフォーマンスが向上し得る。
 例えば、ニューロチップと対応付けられたレイヤーに係る学習は、当該ニューロチップの特性に応じた学習手法により行われてもよい。ニューロチップの特性に応じた学習手法は限定されないが、例えばニューロチップの特性がスパイキングである場合には、下記非特許文献2に記載される学習手法を用いることも可能である。
 非特許文献2:O. Peter、外4名、「Real-time classification and sensor fusion with a spiking deep belief network」、2013年, Neuromorphic Engineering 7: 178.
 また、整数演算のみ可能なハードウェアと対応付けられたレイヤーに係る学習は、整数演算のみで処理可能となるような学習手法により行われてもよい。係る学習手法は限定されないが、例えば下記非特許文献3に記載される学習手法を用いることも可能である。
 非特許文献3:M. Courbariaux、外2名、「BinaryConnect: Training Deep Neural Networks with binary weights during propagations TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems」、2015年11月12日、[Online]、[平成28年4月21日検索]、インターネット< http://arxiv.org/pdf/1511.00363.pdf>
 また、浮動小数点演算可能なハードウェアと対応付けられたレイヤーに係る学習は、浮動小数点演算を利用可能な多様な学習手法により行われ得る。
 なお、学習部205は、記憶部24に記憶される学習データに基づいて学習を行ってもよいし、通信部22を介して外部から取得される学習データに基づいて学習を行ってもよい。
 認識部206は、学習部205による学習に基づき、認識を実行する。認識部206はニューラルネットワークにおけるレイヤーごとに対応付けられたハードウェアで、フィードフォワード計算を行うことで認識を実行してもよい。なお、認識部206は、記憶部24に記憶されるデータに対して認識を行ってもよいし、通信部22を介して外部から取得されるデータに対して認識を行ってもよい。
 通信部22は、他の装置との間の通信を仲介する通信インタフェースである。通信部22は、任意の無線通信プロトコルまたは有線通信プロトコルをサポートし、例えば図2に示した通信網5を介して他の装置との間の通信接続を確立する。それにより、例えば、サーバ2が通信網5に接続されたクライアント端末1からユーザの入力等を受信し、及びクライアント端末1に設計画面、及び判定部203による判定結果等を送信することが可能となる。
 記憶部24は、サーバ2の各構成が機能するためのプログラムやパラメータを記憶する。また、記憶部24は、ハードウェアに係る制約、学習データ、認識用のデータ等を記憶してもよい。
 なお、上記ではサーバ2が学習部205、認識部206を備えて、学習と認識を行う例を説明したが、本実施形態は上記に限定されない。例えば、学習、及び認識は、通信網5に接続される他の装置で行われてもよく、学習、及び認識のそれぞれが異なる装置により行われてもよい。係る場合、取得部202は、通信部22を介して、当該認識を行う装置から、当該認識を行う装置が有する複数のハードウェアに係る制約を取得してもよい。
  <1-3.動作例>
 以上、本実施形態による情報処理システム1000の構成例について説明した。続いて、本実施形態による情報処理システム1000の動作例について、図6~10を参照して説明する。以下では、まず情報処理システム1000の処理フローについて図6、図7を参照して説明した後、本実施形態においてクライアント端末1に表示される画面遷移例について図8~10を参照して説明する。
 (処理フロー例1)
 図6は、本実施形態による情報処理システム1000の処理フロー例を示すフローチャート図である。図6に示すフローチャートは、本実施形態に係る動作のうち、特にニューラルネットワークの設計に係る処理フローを示す。
 まず、ユーザが図3を参照して説明した制約入力画面を用いて、ハードウェアに係る制約を入力し、取得部202が制約を取得する(S1101)。
 続いて、ユーザにより、ハードウェアとレイヤーの対応に関するハードウェアごとの範囲が設定される(S1102)。なお、ハードウェアごとの範囲の設定は、ニューラルネットワークの設計画面において、表示上の範囲を選択することで行われてもよいし、レイヤーの処理順における順番の指定により行われてもよい。
 続いて、ユーザにより、ニューラルネットワークの設計画面を用いたニューラルネットワークの設計が行われる(S1103)。
 続いて、判定部203により、設計されたニューラルネットワークが、複数のハードウェアに係る制約を満たすか否かの判定が行われる(S1104)。判定部203により、ニューラルネットワークが制約を満たさないと判定された場合(S1104:NO)、制約を満たさない箇所(部分)を提示する警告画面が表示され(S1105)、処理はステップS1103に戻る。一方、判定部203により、ニューラルネットワークが制約を満たすと判定された場合(S1104:YES)、設計処理は終了する。
 (処理フロー例2)
 図7は、本実施形態による情報処理システム1000の処理フロー例を示すフローチャート図である。図7に示すフローチャートは、本実施形態に係る動作のうち、特にニューラルネットワークの設計の変更に係る処理フローを示す。例えば以下に説明する処理フローは、図6に示したフローチャートの処理により設計されたニューラルネットワークの設計を変更する際の処理フローであってもよい。
 図7に示すステップS1201、S1202の処理は、図6を参照して説明したステップS1101、S1102の処理と同様であるため、説明を省略する。
 続いて、ユーザにより、ニューラルネットワークの設計の変更(例えば、レイヤーの追加、削除、配置変更)が行われる(S1203)。続いて、判定部203により、変更後のニューラルネットワークが、複数のハードウェアに係る制約を満たすか否かの判定が行われる(S1204)。
 判定部203により、ニューラルネットワークが制約を満たさないと判定された場合(S1204:NO)、設計制御部204による自動的な再配置が可能であるか否かが判定される(S1205)。自動的な再配置が可能ではない場合(S1205:NO)、処理はステップS1203に戻る。
 一方、自動的な再配置が可能である場合、(S1205:NO)、設計制御部204は、自動的に再配置を行う(S1206)。また、自動的な再配置が行われたニューラルネットワークが設計画面に表示される(S1207)
 また、ステップS1204において制約を満たすと判定された場合、設計が変更されたニューラルネットワークが設計画面に表示される(S1207)。
 設計が変更されたニューラルネットワーク、または自動的な再配置が行われたニューラルネットワークを設計画面において確認したユーザにより、設計終了の操作入力が行われると(S1208:YES)、処理は終了する。一方、ユーザが続けて設計の変更行う場合(S1208:NO)、処理はステップS1203に戻る。
 (画面遷移例)
 以上、本実施形態による情報処理システム1000の処理フローを説明した。続いて、図7を参照して説明した処理フローにおいて、クライアント端末1に表示される画面の遷移例を図3、4及び図8~10を参照して説明する。図8~10は、本実施形態に係るクライアント端末1に表示される画面例を示す説明図である。なお、図8~10は図4を参照して説明した設計画面に含まれるニューラルネットワークの設計変更に係る画面遷移の一例である。また、以下では、図7に示した処理ステップを適宜参照しながら説明を行う。
 まず、図7のステップS1201において、図3を参照して説明した制約入力画面が表示される。なお、ハードウェアに係る制約をユーザが変更する必要のない場合には、ユーザの入力なしに、取得部202が例えば記憶部24から制約を取得してもよい。
 続いて、図7のステップS1202において、図8に示す設計画面のように、ハードウェアごとの範囲選択が行われる。ここで、図8に示す範囲G31~G34に含まれるレイヤーは、設計制御部204により、各範囲に対応するハードウェアと対応付けられる。なお、図8に示す範囲G31、G32、G33、G34は、例えば、それぞれ図3におけるハードウェアHW1、HW2、HW4、HW3に対応している。
 続いて、図7のステップS1203において、図9に示す画面のように、ニューラルネットワークの変更が行われる。図9に示す例では、レイヤーG42がレイヤーG41とレイヤーG43の間に追加されている。なお、図8を参照すれば、図9において新たに追加されるレイヤーG42は、図8に示す範囲G33に含まれるため、HW4に対応付けられる。
 続いて、図7のステップS1204において、制約を満たすと判定された場合、ステップS1207において、図10に示すように、変更によりレイヤーG52が新たに追加されたニューラルネットワークを含む設計画面が表示される。一方、図7のステップS1204において、制約を満たさないと判定された場合、図4に示した画面のように、変更前のニューラルネットワークを含む設計画面が表示される(表示が図4の設計画面に戻る)。
  <1-4.効果>
 以上説明したように、本開示の第一の実施形態によれば、複数のハードウェアに係る制約に基づき、ニューラルネットワークが当該制約を満たすか否かを判定し、例えばユーザに判定結果に基づく警告画面を提供する。係る構成により、複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能である。また、本実施形態によれば、変更されたニューラルネットワークが当該制約を満たさない場合には、制約を満たすように自動的に再配置が行われることで、制約を満たしたニューラルネットワークの設計を支援することが可能である。
 <<2.第二の実施形態>>
 以上、本開示の第一の実施形態を説明した。続いて、本開示の第二の実施形態を説明する。本開示の第二の実施形態は、設計されたニューラルネットワークの評価結果に基づいて、ネットワーク構造の異なる別のニューラルネットワークを生成する。また、本開示の第二の実施形態は、生成されたニューラルネットワークの評価結果に基づいて、評価済のニューラルネットワークに係るパレート最適解を更新する。さらに、本開示の第二の実施形態は、ネットワークの生成とパレート最適解の更新を繰り返すことで、効率の良いネットワーク構造を探索することが可能である。
 以下、上記のような効果を実現するための本開示の第二の実施形態の構成例について説明する。なお、以下の説明においては、第一の実施形態との差異について説明し、第一の実施形態と共通するクライアント端末1、及び通信網5については説明を省略する。
  <2-1.構成例>
 図11は、本開示の第二の実施形態に係るサーバ2-2の構成例を説明するための説明図である。図11に示すように、サーバ2-2は、制御部21、通信部22、及び記憶部24を備える情報処理装置である。図11に示すように、本実施形態に係るサーバ2―2は、制御部21の機能構成が図5の制御部20の機能構成と一部異なる点で、図5のサーバ2と異なる。なお、図11に示す各構成のうち、図5に示した各構成と実質的に同様の構成については同一の符号を付してあるため、説明を省略する。以下では、本実施形態に係る制御部21が有する判定部213、生成部217、及び評価部218、としての機能について説明する。
 本実施形態に係る判定部213は、第一の実施形態で説明した判定部203と同様に、ユーザの入力に基づいて設計制御部204により設計された、または変更されたニューラルネットワークが、取得部202により取得される制約を満たすか否か判定を行う。また、本実施形態に係る判定部213は、後述する生成部217により生成されるニューラルネットワークが、取得部202により取得される制約を満たすか否か判定を行う。
 生成部217は、元となるネットワークからネットワーク構造の異なる別のニューラルネットワークを生成する機能を有する。例えば、生成部217は、ユーザによる入力に基づいて設計され、判定部213により制約を満たすと判定されたニューラルネットワーク(以降、シードネットワークとも呼ぶ)から、ネットワーク構造の異なる別のニューラルネットワークを生成してもよい。また、生成部217は、パレート最適解に係るニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成してもよい。
 本実施形態に係る生成部217によるニューラルネットワークの生成は、例えば、突然変異や交叉(または、交差、とも呼ぶ)などを含む遺伝的操作により実現されてもよい。ここで、上記の突然変異とは、生物に見られる遺伝子の突然変異をモデル化したものであってよい。すなわち、本実施形態では、ネットワークを構成する各レイヤーを遺伝子と見立て、レイヤーを突然変異させることで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。例えば、本実施形態に係る突然変異は、レイヤーの挿入、レイヤーの削除、レイヤー種類の変更、パラメータの変更、グラフ分岐、またはグラフ分岐の削除のうち少なくともいずれか一つを含んでもよい。
 また、上記の交叉とは、生物の交配における染色体の部分的交換をモデル化したものであってよい。すなわち、本開示に係る情報処理方法では、2つのネットワークのレイヤー構成を部分的に交換することで、上記の別のニューラルネットワークを生成することができる。
 なお、上記では、遺伝的操作により別のニューラルネットワークを生成する場合を例に説明したが、本実施形態に係るニューラルネットワークの生成方法は、係る例に限定されない。本実施形態に係る別のニューラルネットワークの生成は、例えば、入力されたネットワークのネットワーク構造を変化させるニューラルネットワークを用いて実現されてもよい。ニューラルネットワークの生成には、上記の例を含む種々の方法が適用され得る。
 また、生成部217は、判定部により制約を満たすと判定されたニューラルネットワークが生成されるまで、別のニューラルネットワークの生成を繰り返してもよい。係る構成によれば、生成部217は、複数のハードウェアに係る制約を満たすようなニューラルネットワークを生成することが可能となる。
 評価部218は、生成されたニューラルネットワークの評価結果を取得する機能を有する。評価部218は、例えば、生成されたニューラルネットワークを認識部206に実行させ、上記の評価結果を取得してもよい。なお、評価部218による評価結果の取得は上記に限定されず、通信網5を介して接続される各種のデバイスに生成されたニューラルネットワークを実行させ、評価結果を取得してもよい。
 また、評価部218が取得する評価結果には、生成されたニューラルネットワークに係る演算量、及び学習誤差またはヴァリデーション誤差(以下、まとめて誤差と表現することがある)のうち少なくとも一方が含まれてよい。評価部218は、生成されたニューラルネットワークのネットワーク構造に基づいて、上記の演算量を取得することができる。なお、本実施形態に係る評価結果は、上記に限定されず、例えば、ハードウェアに係る使用メモリ量、発熱量、消費電力量、演算量から算出されるハードウェアのトータルコストや、サーバ費用などを含むトータルサービスコスト等を含んでもよい。評価部218は、予め記憶されたハードウェアやサービスに係る情報を基に、上記の値を算出することができる。
 また、評価部218は、生成されたニューラルネットワークの評価結果に基づいて、評価済のニューラルネットワークに係るパレート最適解を更新する機能を有する。すなわち、評価部218は、生成部217が生成したニューラルネットワークの評価結果を取得し、当該評価結果に基づいてパレート最適解の更新を繰り返し実行する。
  <2-2.動作例>
 以上、本実施形態に係るサーバ2-2の構成例について説明した。続いて、本実施形態の動作例について、図12~15を参照して説明する。
 図12は、本実施形態の動作例を説明するためのフローチャート図である。図7に示すステップS2100、S2200の処理は、図6を参照して説明したステップS1101、S1102の処理と同様であるため、説明を省略する。
 続いて、ユーザによるニューラルネットワークの設計と、判定部213による判定が行われる(S2300)。なお、ステップS2300の処理は、例えば、図6を参照して説明したステップS1103~S1105の処理、または図7を参照して説明したステップS1203~S1208の処理と同様の処理を含んでもよい。
 続いて、生成部217は、ステップS2300において、判定部213により制約を満たすと判定されたニューラルネットワーク(シードネットワーク)から、ネットワーク構造の異なる別のニューラルネットワークを生成する(S2400)。なお、ステップS2400におけるニューラルネットワークの生成に係る詳細な処理フローについては図13~15を参照して後述する。
 続いて、評価部218が、生成されたニューラルネットワークの評価結果を取得する(S2500)。評価部218のネットワーク構造の探索が終了していない場合(S2600:NO)、処理はステップS2700に進む。
 ステップS2700において、評価部218は、生成されたニューラルネットワークの評価結果に基づいて、評価済のニューラルネットワークに係るパレート最適解を更新する。続いて、処理はステップS2400に戻り、生成部217は、当該パレート最適解に係るニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する。
 上記のステップS2400~S2700の処理により、ニューラルネットワークの生成と、パレート最適解の更新が繰り返し実行されて、ネットワーク構造の探索が終了すると(S2600:YES)、処理は終了する。
 なお、ネットワーク構造の探索が終了した際、例えば誤差が最小(最高性能)であるニューラルネットワーク、または演算量が最小であるニューラルネットワーク、または中間解であるニューラルネットワークが得られてもよい。中間解の定義は、条件に応じて適宜設計されてよい。なお、上記のようなニューラルネットワークがユーザに提示されて、ユーザがいずれかのニューラルネットワークを選択してもよい。
 以上、本実施形態の動作例の全体的な処理フローについて説明した。続いて、図12に示すステップS2400のニューラルネットワーク生成に係る処理フローについて、図13を参照して説明する。図13はニューラルネットワーク生成に係る処理フローを説明するためのフローチャート図である。
 図13を参照すると、まず、生成部217は、元となるニューラルネットワークに適用する別のニューラルネットワークの生成方法をランダムで決定する(S2410)。この際、元となるニューラルネットワークは、ユーザによる入力に基づいて設計され、判定部213により制約を満たすと判定されたシードネットワークであってもよい。また、元となるニューラルネットワークは、評価部218が更新したパレート最適解に係るニューラルネットワークから生成部217がランダムに選択したネットワークであってもよい。
 続いて、生成部217は、ステップS2410で選択した生成方法に基づいて、元となるニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する。図13に示す一例を参照すると、本実施形態に係る生成部217は、元となるニューラルネットワークを突然変異させることで、上記の別のニューラルネットワークを生成してもよい(S2420)。
 また、生成部217は、元となるニューラルネットワークを交叉させることで、上記の別のニューラルネットワークを生成してもよい(S2430)。ステップS2420及びステップS2430における突然変異と交叉の詳細な流れについては、それぞれ図14、図15を参照して後述する。
 続いて、生成部217は、ステップS2420またはステップS2430で生成したニューラルネットワークの整合性を判定する(S2440)。この際、生成部217は、生成したニューラルネットワークのレイヤー構成にエラーが生じているか否かを判定してもよい。生成部217は、例えば、Max-Pooling処理に際し、入力されるデータが小さすぎる場合などに、ネットワークの整合性がない、と判定してよい。このように、生成したニューラルネットワークの整合性がないと判定した場合(S2450:No)、生成部217は、生成したニューラルネットワークを破棄し、ステップS2410に復帰する。
 一方、生成されたニューラルネットワークに整合性が認められる場合(S2450:Yes)、判定部213が、生成されたニューラルネットワークが、取得部202により取得された制約を満たすか否かを判定する。判定部213が、生成されたニューラルネットワークが制約を満たさないと判定した場合(S2450:NO)、生成部217は、生成したニューラルネットワークを破棄し、ステップS2410に復帰する。
 一方、生成されたニューラルネットワークが制約を満たすと判定した場合、生成部217は、生成したニューラルネットワークと、元となるニューラルネットワークと、の入出力が同一であるか否かを判定する(S2460)。ここで、両者の入出力が異なる場合(S2460:No)、想定する認識問題を処理することが困難となるため、生成部217は、生成したニューラルネットワークを破棄し、ステップS2410に復帰する。一方、生成されたニューラルネットワークと、元となるニューラルネットワークとの入出力が同一である場合(S2460:Yes)、生成部217は、ネットワーク生成に係る処理を正常に終了する。
 以上、本実施形態に係るニューラルネットワークの生成について説明した。上述したとおり、本実施形態に係る生成部217は、シードネットワークやパレート最適解に係るネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成することが可能である。なお、図13では、生成部217が突然変異または交叉を用いた遺伝的操作により別のニューラルネットワークを生成する場合を例に説明したが、本実施形態に係るネットワークの生成は係る例に限定されない。本実施形態に係る生成部217は、入力されたニューラルネットワークのネットワーク構造を変化させるニューラルネットワークを用いて、上記の別のニューラルネットワークを生成してもよい。生成部217によるニューラルネットワークの生成には、種々の手法が適用されてよい。
 続いて、本実施形態に係る突然変異によるネットワーク生成の流れについて説明する。図14は、生成部217による突然変異を用いたネットワーク生成を説明するためのフローチャートである。すなわち、図14に示すフローチャートは、図13に示したステップS2420における生成部217の詳細な制御を示している。図14を参照すると、本実施形態に係る突然変異は、レイヤーの挿入、レイヤーの削除、レイヤー種類の変更、パラメータの変更、グラフ分岐、グラフ分岐の削除を含んでよい。
 図14を参照すると、まず、生成部217は、元となるニューラルネットワークに適用する突然変異の手法をランダムで決定する(S2421)。続いて、生成部217は、ステップS2421で選択した手法に基づいて、元となるニューラルネットワークのネットワーク構造を変化させる。
 生成部217は、新規レイヤーを挿入する処理を行ってもよい(S2422)。生成部217は、例えば、元となるニューラルネットワークに、Reluなどの活性化関数を新たに挿入することで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。
 また、生成部217は、既存レイヤーを削除する処理を行ってもよい(S2423)。生成部217は、例えば、元となるニューラルネットワークから、Max-Poolingに係るレイヤーを削除することで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。
 また、生成部217は、既存レイヤーのレイヤー種類を変更する処理を行ってもよい(S2424)。生成部217は、例えば、元となるニューラルネットワークに存在する活性化関数を別の活性化関数に置換することで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。
 また、生成部217は、既存レイヤーに係るパラメータを変更する処理を行ってもよい(S2425)。生成部217は、例えば、既存するConvolutionレイヤーのカーネルシェイプを変更することで、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。
 また、生成部217は、新たなグラフ分岐を作成する処理を行ってもよい(S2426)。生成部217は、例えば、既存レイヤーの一部をコピーすることでグラフ分岐を作成し、当該グラフ分岐の結合部としてConcatenateレイヤーを挿入することで、別のニューラルネットワークを生成することができる。
 また、生成部217は、既存のグラフ分岐を削除する処理を行ってもよい(S2427)。生成部217は、例えば、既存するグラフ分岐の1ルートを削除し、当該削除により分岐が消失した場合にはConcatenateレイヤーも削除することで、別のニューラルネットワークを生成することができる。
 以上、本実施形態に係る生成部217による突然変異を用いたネットワーク生成について説明した。なお、上記では、生成部217がランダムで選択したステップS2422~S2427の処理を実行する場合を例に説明したが、本実施形態に係る突然変異の制御は、係る例に限定されない。生成部217は、ステップS2422~S2427に係る処理を同時に2つ以上行ってもよいし、ステップS2422~S2427の実行判断をそれぞれ実施してもよい。また、生成部217は、図14の例に示した以外の処理を実行してもよい。生成部217による突然変異の制御は、柔軟に変更され得る。
 続いて、本実施形態に係る交叉によるネットワーク生成の流れについて説明する。図15は、生成部217による交叉を用いたネットワーク生成を説明するためのフローチャート図である。すなわち、図15に示すフローチャートは、図13に示したステップS2430における生成部217の詳細な制御を示している。
 図15を参照すると、まず、生成部217は、交叉を実行するために、元となる2つのネットワークを選択する(S2431)。ここで、生成部217は、ユーザによる入力に基づいて設計され、判定部213により制約を満たすと判定された2つのシードネットワークを選択してもよい。また、生成部217は、ユーザによる入力に基づいて設計され、判定部213により制約を満たすと判定された1つのシードネットワークと、予め登録された交叉用のネットワークと、を選択することもできる。さらには、生成部217は、ユーザによる入力に基づいて設計され、判定部213により制約を満たすと判定されたシードネットワークから突然変異により生成した別のニューラルネットワークを選択してもよい。
 続いて、生成部217は、ステップS2431で選択した2つのネットワークを交叉させ、ネットワーク構造の異なる別のニューラルネットワークを生成する(S2432)。この際、生成部217は、種々の手法により交叉を実行してよい。生成部217は、例えば、一点交叉、二点交叉、多点交叉、一様交叉などにより、上記の別のニューラルネットワークを生成することができる。
 以上、本実施形態に係るニューラルネットワークの生成について説明した。上述したとおり、本実施形態に係る生成部217は、突然変異及び交叉を含む遺伝的操作などにより、元となるニューラルネットワークからネットワーク構造の異なる別のニューラルネットワークを生成することができる。すなわち、本実施形態に係る情報処理方法では、生成部217が生成したニューラルネットワークの評価結果に基づいてパレート最適解の更新を繰り返すことで、より効率のよいネットワーク構造を探索することが可能となる。
  <2-3.効果>
 以上説明したように、本開示の第二の実施形態によれば、設計されたニューラルネットワークの評価結果に基づいて、ネットワーク構造の異なる別のニューラルネットワークを生成することができる。また、本実施形態は、ネットワークの生成と、パレート最適解の更新を繰り返すことで、効率の良いネットワーク構造を探索することが可能である。また、本実施形態において、生成されるニューラルネットワークは、判定部213により、複数のハードウェアに係る制約を満たすと判定されたニューラルネットワークである。したがって、本実施形態によれば、複数のハードウェアによる処理に適合し、かつ効率の良いネットワーク構造を探索することが可能である。
 <<3.変形例>>
 以上、本開示の実施形態を説明した。以下では、本開示に係る幾つかの変形例を説明する。なお、以下に説明する各変形例は、単独で各実施形態に適用されてもよいし、組み合わせで各実施形態に適用されてもよい。また、各変形例は、上記実施形態で説明した構成に代えて適用されてもよいし、上記実施形態で説明した構成に対して追加的に適用されてもよい。
  <3-1.変形例1>
 上記実施形態ではビジュアルプログラミングによりニューラルネットワークの設計が行われる例を説明したが、本技術は係る例に限定されない。例えば、本技術に係るニューラルネットワークの設計は、テキストによるプログラミングや、CUI(Command User Interface)上の操作により行われてもよい。また、ハードウェアに係る制約や、ハードウェアとレイヤーの対応付けも、上記で説明された例に限定されず、テキスト、またはCUIにより入力されてもよい。
  <3-2.変形例2>
 また、上記実施形態では、図2、図5、及び図11を参照してクライアント端末1、サーバ2、及びサーバ2-2が有する機能を説明したが、本技術は係る例に限定されない。上記実施形態で説明したクライアント端末1の機能をサーバ2、またはサーバ2-2が有してもよいし、上記実施形態で説明したサーバ2、またはサーバ2-2の機能をクライアント端末1が有してもよい。
 例えば、クライアント端末1が、図5を参照して説明した取得部202、判定部203、及び設計制御部204の機能を有し、クライアント端末1を用いて設計されたニューラルネットワークの情報が、サーバ2に提供されてもよい。
 <<4.ハードウェア構成例>>
 以上、本開示の各実施形態を説明した。上述した表示制御処理、通信制御処理、取得処理、判定処理、設計制御処理、学習処理、認識処理、ネットワーク生成処理、評価結果取得処理等の情報処理は、ソフトウェアと、クライアント端末1、サーバ2、2-2との協働により実現される。以下では、本実施形態に係るサーバ2のハードウェア構成例について説明する。
 図16は、サーバ2のハードウェア構成を示した説明図である。図16に示したように、サーバ2は、CPU(Central Processing Unit)2001と、DSP(Digital Signal Pocessor)2002と、GPU(Graphics Processing Unit)2003と、ニューロチップ2004と、ROM(Read Only Memory)2005と、RAM(Random Access Memory)2006と、入力装置2007と、出力装置2008と、ストレージ装置2009と、ドライブ2010と、通信装置2011とを備える。
 CPU2001は、演算処理装置および制御装置として機能し、各種プログラムに従ってサーバ2内の動作全般を制御する。また、CPU2001は、マイクロプロセッサであってもよい。また、DSP2002、GPU2003、ニューロチップ2004は、演算処理装置として機能する。例えば、CPU2001、DSP2002、GPU2003、及びニューロチップ2004は、本開示において、ニューラルネットワークによる認識処理を実行するハードウェアであってもよい。ROM2005は、CPU2001が使用するプログラムや演算パラメータなどを記憶する。RAM2006は、CPU2001、DSP2002、GPU2003、ニューロチップ2004の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時記憶する。これらはCPUバスなどから構成されるホストバスにより相互に接続されている。主に、CPU2001、ROM2005及びRAM2006とソフトウェアとの協働により、通信制御部201、取得部202、判定部203、設計制御部204、学習部205の機能が実現される。
 入力装置2007は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU2001に出力する入力制御回路などから構成されている。サーバ2のユーザは、該入力装置2007を操作することにより、サーバ2に対して各種のデータを入力したり処理動作を指示したりすることができる。
 出力装置2008は、例えば、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置およびランプなどの表示装置を含む。さらに、出力装置2008は、スピーカおよびヘッドホンなどの音声出力装置を含む。例えば、表示装置は、撮像された画像や生成された画像などを表示する。一方、音声出力装置は、音声データなどを音声に変換して出力する。
 ストレージ装置2009は、本実施形態にかかるサーバ2の記憶部24の一例として構成されたデータ格納用の装置である。ストレージ装置2009は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置2009は、CPU2001が実行するプログラムや各種データを格納する。
 ドライブ2010は、記憶媒体用リーダライタであり、サーバ2に内蔵、あるいは外付けされる。ドライブ2010は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記憶媒体に記録されている情報を読み出して、RAM2005に出力する。また、ドライブ2010は、リムーバブル記憶媒体に情報を書き込むこともできる。
 通信装置2011は、通信デバイスなどで構成された通信インタフェースである。また、通信装置2011は、無線LAN(Local Area Network)対応通信装置であっても、LTE(Long Term Evolution)対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。通信装置2011は、サーバ2の通信部22に対応する。
 なお、上記ではサーバ2のハードウェア構成を説明したが、クライアント端末1及び第二の実施形態によるサーバ2-2も、サーバ2と同様に、CPU2001、ROM205およびRAM206などに相当するハードウェアを有する。そして、クライアント端末1のハードウェアとソフトウェアとの協働により例えば制御部10の機能が実現される。また、例えば第二の実施形態によるサーバ2-2、のハードウェアとソフトウェアとの協働により判定部213、生成部217、及び評価部218に相当する機能が実現される。
 <<5.むすび>>
 以上、説明したように、本開示の実施形態によれば、複数のハードウェアによる処理に適合したニューラルネットワークをより効率的に設計することが可能である。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 例えば、上記実施形態における各ステップは、必ずしもフローチャート図として記載された順序に沿って時系列に処理する必要はない。例えば、上記実施形態の処理における各ステップは、フローチャート図として記載した順序と異なる順序で処理されても、並列的に処理されてもよい。例えば、図6において、ハードウェアに係る制約を入力または取得するステップS1101の処理、及びハードウェアごとに範囲を設定するステップS1102の処理は、ニューラルネットワークの設計に係るステップS1103の処理の後に行われてもよい。
 また、上記実施形態によれば、CPU2001、ROM2005、及びRAM2006等のハードウェアを、上述したクライアント端末1、サーバ2、及びサーバ2-2の各構成と同様の機能を発揮させるためのコンピュータプログラムも提供可能である。また、該コンピュータプログラムが記録された記録媒体も提供される。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 複数のハードウェアに係る制約を取得する取得部と、
 ニューラルネットワークが、前記制約を満たすか否か判定を行う判定部と、
 を備える情報処理装置。
(2)
 ユーザの入力に基づく前記ニューラルネットワークの設計を制御する設計制御部をさらに備える、前記(1)に記載の情報処理装置。
(3)
 前記判定部は、前記設計制御部により前記ニューラルネットワークが変更された場合に、前記判定を行う、前記(2)に記載の情報処理装置。
(4)
 前記設計制御部は、前記判定部により、前記制約を満たさないと判定された場合に、前記制約を満たすように、前記変更に係るレイヤーの再配置を行う、前記(3)に記載の情報処理装置。
(5)
 前記設計制御部は、前記判定部により、前記制約を満たすと判定された場合に、前記ニューラルネットワークを構築するプログラムを作成する、前記(2)~(4)のいずれか一項に記載の情報処理装置。
(6)
 前記判定部により、前記制約を満たさないと判定された場合に、前記制約が満たされないことを示す警告画面を表示させる、表示制御部をさらに備える、前記(1)~(5)のいずれか一項に記載の情報処理装置。
(7)
 前記警告画面は、前記ニューラルネットワークにおいて、前記制約を満たない部分を提示する、前記(6)に記載の情報処理装置。
(8)
 前記制約に基づいて、前記ニューラルネットワークにおけるレイヤーごとに、前記レイヤーに対応付けられたハードウェアに応じた学習を行う学習部をさらに備える、前記(1)~(7)のいずれか一項に記載の情報処理装置。
(9)
 前記判定部により前記制約を満たすと判定されたニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する生成部と、
 生成されたニューラルネットワークの評価結果を取得する評価部と、をさらに備え、
 前記評価部は、生成されたニューラルネットワークの評価結果に基づいて、評価済のニューラルネットワークに係るパレート最適解を更新し、
 前記生成部は、前記パレート最適解に係るニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する、
 前記(1)~(8)のいずれか一項に記載の情報処理装置。
(10)
 前記判定部は、前記生成部により生成されるニューラルネットワークが、前記制約を満たすか否か判定を行い、
 前記生成部は、前記判定部により前記制約を満たすと判定されたニューラルネットワークが生成されるまで、前記別のニューラルネットワークの生成を繰り返す、前記(9)に記載の情報処理装置。
(11)
 前記生成部は、遺伝的操作により、前記別のニューラルネットワークを生成する、前記(9)または(10)に記載の情報処理装置。
(12)
 前記遺伝的操作は、突然変異または交叉のうち少なくとも一方を含む、前記(11)に記載の情報処理装置。
(13)
 前記突然変異は、レイヤーの挿入、レイヤーの削除、レイヤー種類の変更、パラメータの変更、グラフ分岐、またはグラフ分岐の削除のうち少なくともいずれか一つを含む、前記(12)に記載の情報処理装置。
(14)
 前記情報処理装置は、前記判定部による判定結果を送信させる通信制御部をさらに備える、前記(1)~(13)のいずれか一項に記載の情報処理装置。
(15)
 ニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果を受信する受信部と、
 前記判定結果に基づいて処理を行う処理部と、
 を備える情報処理装置。
(16)
 複数のハードウェアに係る制約を取得することと、
 ニューラルネットワークが、前記制約を満たすか否か判定を行うことと、
 を含む情報処理方法。
 1 クライアント端末
 2、2-2 サーバ
 5 通信網
 10 制御部
 12 通信部
 14 表示部
 16 操作部
 20、21 制御部
 22 通信部
 24 記憶部
 201 通信制御部
 202 取得部
 203、213 判定部
 204 設計制御部
 205 学習部
 206 認識部
 217 生成部
 218 評価部
 1000 情報処理システム

Claims (16)

  1.  複数のハードウェアに係る制約を取得する取得部と、
     ニューラルネットワークが、前記制約を満たすか否か判定を行う判定部と、
     を備える情報処理装置。
  2.  ユーザの入力に基づく前記ニューラルネットワークの設計を制御する設計制御部をさらに備える、請求項1に記載の情報処理装置。
  3.  前記判定部は、前記設計制御部により前記ニューラルネットワークが変更された場合に、前記判定を行う、請求項2に記載の情報処理装置。
  4.  前記設計制御部は、前記判定部により、前記制約を満たさないと判定された場合に、前記制約を満たすように、前記変更に係るレイヤーの再配置を行う、請求項3に記載の情報処理装置。
  5.  前記設計制御部は、前記判定部により、前記制約を満たすと判定された場合に、前記ニューラルネットワークを構築するプログラムを作成する、請求項2に記載の情報処理装置。
  6.  前記判定部により、前記制約を満たさないと判定された場合に、前記制約が満たされないことを示す警告画面を表示させる、表示制御部をさらに備える、請求項1に記載の情報処理装置。
  7.  前記警告画面は、前記ニューラルネットワークにおいて、前記制約を満たない部分を提示する、請求項6に記載の情報処理装置。
  8.  前記制約に基づいて、前記ニューラルネットワークにおけるレイヤーごとに、前記レイヤーに対応付けられたハードウェアに応じた学習を行う学習部をさらに備える、請求項1に記載の情報処理装置。
  9.  前記判定部により前記制約を満たすと判定されたニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する生成部と、
     生成されたニューラルネットワークの評価結果を取得する評価部と、をさらに備え、
     前記評価部は、生成されたニューラルネットワークの評価結果に基づいて、評価済のニューラルネットワークに係るパレート最適解を更新し、
     前記生成部は、前記パレート最適解に係るニューラルネットワークから、ネットワーク構造の異なる別のニューラルネットワークを生成する、
     請求項1に記載の情報処理装置。
  10.  前記判定部は、前記生成部により生成されるニューラルネットワークが、前記制約を満たすか否か判定を行い、
     前記生成部は、前記判定部により前記制約を満たすと判定されたニューラルネットワークが生成されるまで、前記別のニューラルネットワークの生成を繰り返す、請求項9に記載の情報処理装置。
  11.  前記生成部は、遺伝的操作により、前記別のニューラルネットワークを生成する、請求項9に記載の情報処理装置。
  12.  前記遺伝的操作は、突然変異または交叉のうち少なくとも一方を含む、請求項11に記載の情報処理装置。
  13.  前記突然変異は、レイヤーの挿入、レイヤーの削除、レイヤー種類の変更、パラメータの変更、グラフ分岐、またはグラフ分岐の削除のうち少なくともいずれか一つを含む、請求項12に記載の情報処理装置。
  14.  前記情報処理装置は、前記判定部による判定結果を送信させる通信制御部をさらに備える、請求項1に記載の情報処理装置。
  15.  ニューラルネットワークが複数のハードウェアに係る制約を満たすか否かの判定結果を受信する受信部と、
     前記判定結果に基づいて処理を行う処理部と、
     を備える情報処理装置。
  16.  複数のハードウェアに係る制約を取得することと、
     ニューラルネットワークが、前記制約を満たすか否か判定を行うことと、
     を含む情報処理方法。
     
PCT/JP2017/008988 2016-04-28 2017-03-07 情報処理装置、及び情報処理方法 Ceased WO2017187798A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17789087.8A EP3451237A4 (en) 2016-04-28 2017-03-07 INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
US16/080,475 US20190057309A1 (en) 2016-04-28 2017-03-07 Information processing apparatus and information processing method
JP2018514172A JP6996497B2 (ja) 2016-04-28 2017-03-07 情報処理装置、及び情報処理方法
US19/333,985 US20260017521A1 (en) 2016-04-28 2025-09-19 Information processing apparatus and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-091418 2016-04-28
JP2016091418 2016-04-28

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/080,475 A-371-Of-International US20190057309A1 (en) 2016-04-28 2017-03-07 Information processing apparatus and information processing method
US19/333,985 Continuation US20260017521A1 (en) 2016-04-28 2025-09-19 Information processing apparatus and information processing method

Publications (1)

Publication Number Publication Date
WO2017187798A1 true WO2017187798A1 (ja) 2017-11-02

Family

ID=60161587

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/008988 Ceased WO2017187798A1 (ja) 2016-04-28 2017-03-07 情報処理装置、及び情報処理方法

Country Status (4)

Country Link
US (2) US20190057309A1 (ja)
EP (1) EP3451237A4 (ja)
JP (1) JP6996497B2 (ja)
WO (1) WO2017187798A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800886A (zh) * 2017-11-17 2019-05-24 松下知识产权经营株式会社 信息处理方法以及信息处理系统
JP2019096285A (ja) * 2017-11-17 2019-06-20 パナソニックIpマネジメント株式会社 情報処理方法および情報処理システム
WO2019187542A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 情報処理方法、情報処理装置、およびプログラム
WO2019216404A1 (ja) * 2018-05-10 2019-11-14 パナソニックIpマネジメント株式会社 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
WO2019230254A1 (ja) * 2018-05-31 2019-12-05 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
CN111868754A (zh) * 2018-03-23 2020-10-30 索尼公司 信息处理装置和信息处理方法
JP2021039640A (ja) * 2019-09-05 2021-03-11 株式会社東芝 学習装置、学習システム、および学習方法
WO2021079763A1 (ja) * 2019-10-21 2021-04-29 ソニー株式会社 情報処理方法、情報処理装置、及びプログラム
JPWO2020188658A1 (ja) * 2019-03-15 2021-09-13 三菱電機株式会社 アーキテクチャ推定装置、アーキテクチャ推定方法、およびアーキテクチャ推定プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6720402B2 (ja) * 2017-03-21 2020-07-08 株式会社Preferred Networks サーバ装置、学習済モデル提供プログラム、学習済モデル提供方法及び学習済モデル提供システム
US12050991B1 (en) * 2018-05-21 2024-07-30 Google Llc Connectomics-based neural architecture search
CN112884118A (zh) * 2019-11-30 2021-06-01 华为技术有限公司 神经网络的搜索方法、装置及设备
JP7475164B2 (ja) * 2020-03-05 2024-04-26 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
TWI900601B (zh) * 2021-01-15 2025-10-11 美商谷歌有限責任公司 用於硬體加速器之神經架構縮放之電腦實施方法、系統及非暫時性電腦可讀儲存媒體
CN114969636B (zh) * 2021-03-23 2023-10-03 华为技术有限公司 一种模型推荐的方法、装置和计算机设备
CN113033784A (zh) * 2021-04-18 2021-06-25 沈阳雅译网络技术有限公司 一种针对cpu和gpu设备搜索神经网络结构的方法
CN115438767B (zh) * 2021-06-02 2025-12-12 杭州海康威视数字技术股份有限公司 神经网络模型的配置确定方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03237557A (ja) * 1990-02-14 1991-10-23 Oki Electric Ind Co Ltd ニューラルネットワークシミュレータ及び計算機システム
JPH1091676A (ja) * 1996-07-25 1998-04-10 Toyota Motor Corp 安定化設計方法及び安定化設計プログラムを記録した記録媒体
US20080319933A1 (en) * 2006-12-08 2008-12-25 Medhat Moussa Architecture, system and method for artificial neural network implementation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812993A (en) * 1996-03-07 1998-09-22 Technion Research And Development Foundation Ltd. Digital hardware architecture for realizing neural network
US8225074B2 (en) * 2008-10-02 2012-07-17 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
CN103678002A (zh) * 2013-12-09 2014-03-26 华为技术有限公司 资源复用的控制方法和装置
US10769517B2 (en) * 2016-03-05 2020-09-08 Fujitsu Limited Neural network analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03237557A (ja) * 1990-02-14 1991-10-23 Oki Electric Ind Co Ltd ニューラルネットワークシミュレータ及び計算機システム
JPH1091676A (ja) * 1996-07-25 1998-04-10 Toyota Motor Corp 安定化設計方法及び安定化設計プログラムを記録した記録媒体
US20080319933A1 (en) * 2006-12-08 2008-12-25 Medhat Moussa Architecture, system and method for artificial neural network implementation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JIN, YAOCHU ET AL.: "Neural network regularization and ensembling using multi-objective evolutionary algorithms", PROCEEDINGS OF THE 2004 CONGRESS ON EVOLUTIONARY COMPUTATION, 23 June 2004 (2004-06-23), pages 1 - 8, XP010720884 *
RYU KATAYAMA ET AL.: "A Comparative Analysis of Fuzzy Model and Neural Network Model by Plural Performance Indices", JOURNAL OF JAPAN SOCIETY FOR FUZZY THEORY AND SYSTEMS, vol. 4, no. 5, 31 October 1992 (1992-10-31), pages 942 - 957, XP055434320 *
See also references of EP3451237A4 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11270228B2 (en) 2017-11-17 2022-03-08 Panasonic Intellectual Property Management Co., Ltd. Information processing method and information processing system
JP2019096285A (ja) * 2017-11-17 2019-06-20 パナソニックIpマネジメント株式会社 情報処理方法および情報処理システム
CN109800886B (zh) * 2017-11-17 2024-04-26 松下知识产权经营株式会社 信息处理方法以及信息处理系统
CN109800886A (zh) * 2017-11-17 2019-05-24 松下知识产权经营株式会社 信息处理方法以及信息处理系统
JP7065368B2 (ja) 2017-11-17 2022-05-12 パナソニックIpマネジメント株式会社 情報処理方法および情報処理システム
US11768979B2 (en) 2018-03-23 2023-09-26 Sony Corporation Information processing device and information processing method
CN111868754A (zh) * 2018-03-23 2020-10-30 索尼公司 信息处理装置和信息处理方法
EP3770775A4 (en) * 2018-03-23 2021-06-02 Sony Corporation INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
WO2019187542A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 情報処理方法、情報処理装置、およびプログラム
JP7279705B2 (ja) 2018-03-28 2023-05-23 ソニーグループ株式会社 情報処理方法、情報処理装置、およびプログラム
JPWO2019187542A1 (ja) * 2018-03-28 2021-04-15 ソニー株式会社 情報処理方法、情報処理装置、およびプログラム
EP3779798A4 (en) * 2018-03-28 2021-07-28 Sony Group Corporation INFORMATION PROCESSING METHOD, INFORMATION PROCESSING DEVICE AND PROGRAM
JPWO2019216404A1 (ja) * 2018-05-10 2020-10-22 パナソニックセミコンダクターソリューションズ株式会社 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
WO2019216404A1 (ja) * 2018-05-10 2019-11-14 パナソニックIpマネジメント株式会社 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
WO2019230254A1 (ja) * 2018-05-31 2019-12-05 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JPWO2020188658A1 (ja) * 2019-03-15 2021-09-13 三菱電機株式会社 アーキテクチャ推定装置、アーキテクチャ推定方法、およびアーキテクチャ推定プログラム
JP7111671B2 (ja) 2019-09-05 2022-08-02 株式会社東芝 学習装置、学習システム、および学習方法
JP2021039640A (ja) * 2019-09-05 2021-03-11 株式会社東芝 学習装置、学習システム、および学習方法
US11704570B2 (en) 2019-09-05 2023-07-18 Kabushiki Kaisha Toshiba Learning device, learning system, and learning method
WO2021079763A1 (ja) * 2019-10-21 2021-04-29 ソニー株式会社 情報処理方法、情報処理装置、及びプログラム

Also Published As

Publication number Publication date
US20260017521A1 (en) 2026-01-15
JPWO2017187798A1 (ja) 2019-03-07
JP6996497B2 (ja) 2022-01-17
US20190057309A1 (en) 2019-02-21
EP3451237A4 (en) 2019-04-17
EP3451237A1 (en) 2019-03-06

Similar Documents

Publication Publication Date Title
WO2017187798A1 (ja) 情報処理装置、及び情報処理方法
JP6852748B2 (ja) 情報処理方法および情報処理装置
JP2019164839A (ja) 情報処理方法および情報処理装置
CN106471526B (zh) 用于处理图像的方法和系统
US20150220311A1 (en) Computer implemented modeling system and method
CN110968943A (zh) 一种终端界面的显示方法及装置
Nguyen et al. People-centric evolutionary system for dynamic production scheduling
TW201329788A (zh) 適應性調整虛擬按鍵尺寸的方法及其顯示裝置
CN114570022B (zh) 游戏资源处理方法、装置、设备及存储介质
CN108057249A (zh) 一种业务数据处理方法和装置
Engert et al. STRAIDE: a research platform for shape-changing spatial displays based on actuated strings
KR102592108B1 (ko) 동적 발광 패턴을 이용한 공연 연출 시뮬레이션 제공 시스템, 장치, 방법 및 프로그램
CN109446171A (zh) 一种数据处理方法和装置
KR20220090695A (ko) 강화 학습 기반 인테리어 서비스의 사물 배치 모델 제공 장치 및 방법
Reyna et al. A reinforcement learning approach for scheduling problems
CN112464497B (zh) 基于分布式系统的故障演练方法、装置、设备及介质
KR102601286B1 (ko) 조명 제어 장치, 방법 및 프로그램
JP6223866B2 (ja) 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム
JP7279705B2 (ja) 情報処理方法、情報処理装置、およびプログラム
KR20160052027A (ko) 관제 맵 기반 다이어그램 생성 방법 및 그 장치
CN108108430A (zh) 一种基于Unity3D知识森林虚拟现实系统实现的方法
JP6314717B2 (ja) ラダープログラム作成装置、モニタリング装置、コンピュータプログラム及び機器制御装置
JP6268322B1 (ja) 学習データ精度可視化システム、学習データ精度可視化方法、及びプログラム
WO2023153491A1 (ja) プロセス実行システム、データ構造、およびプロセス実行プログラム
Gu et al. Knowpc: Knowledge-driven programmatic reinforcement learning for zero-shot coordination

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018514172

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17789087

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2017789087

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017789087

Country of ref document: EP

Effective date: 20181128