WO2020209078A1 - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents

情報処理装置、および情報処理方法、並びにプログラム Download PDF

Info

Publication number
WO2020209078A1
WO2020209078A1 PCT/JP2020/013571 JP2020013571W WO2020209078A1 WO 2020209078 A1 WO2020209078 A1 WO 2020209078A1 JP 2020013571 W JP2020013571 W JP 2020013571W WO 2020209078 A1 WO2020209078 A1 WO 2020209078A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
multitasking
similarity
information processing
unit
Prior art date
Application number
PCT/JP2020/013571
Other languages
English (en)
French (fr)
Inventor
信瑩 何
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US17/594,026 priority Critical patent/US20220197691A1/en
Priority to CN202080026554.2A priority patent/CN113711179A/zh
Priority to EP20786961.1A priority patent/EP3955109B1/en
Publication of WO2020209078A1 publication Critical patent/WO2020209078A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Definitions

  • the present disclosure relates to an information processing device, an information processing method, and a program, and more particularly to an information processing device, an information processing method, and a program that enable easy construction of a multitasking processing structure.
  • Multitasking is the process of solving multiple tasks at the same time, such as object recognition, person recognition, Path Planning (path planning), and Motion Planning (motion planning).
  • the multitask processing is realized by simply parallel processing a plurality of single task processes
  • the same or similar processes may be executed individually between the single task processes, and the process is performed once.
  • the same processing may be repeated unnecessarily due to the parallel processing, which may increase the processing load.
  • Non-Patent Document 1 a technique for constructing a processing structure for realizing single-task processing has been proposed using a neural network.
  • Non-Patent Document 1 Even though the amount of processing is enormous even in the structure search for single-task processing of Non-Patent Document 1, when the same structure search is applied to realize multitask processing, learning data is collected, labeled, and learned. , And evaluation etc. are expected to become more difficult.
  • the man-hours for constructing the multitasking processing structure is enormous compared to simply multiplying the man-hours for constructing the singletasking processing structure by the number of types of singletasking, and the construction takes an enormous amount of time. Needed.
  • This disclosure has been made in view of such a situation, and in particular, makes it possible to easily construct a multitasking processing structure.
  • the information processing device on one aspect of the present disclosure is an information processing device including an optimization unit that optimizes the multitasking processing structure based on the structure of the multitasking processing structure that controls the operation of the target device.
  • the information processing method and program of one aspect of the present disclosure correspond to the information processing device.
  • the multitasking processing structure is optimized based on the structure of the multitasking processing structure that controls the operation of the target device.
  • a sensor J1 consisting of a human sensor, a microphone, an illuminance sensor, a distance measuring sensor, etc.
  • a sensor J2 consisting of a SLAM (Simultaneous Localization and Mapping) camera, and an RGB (Red Green Blue) camera or ToF. (Time of Flight)
  • SLAM Simultaneous Localization and Mapping
  • RGB Red Green Blue
  • a neural network is a multitasking processing structure in which existing single tasks T1 to T3 are simultaneously executed, which are three types of object recognition, map construction, and Path Planning and motion control. ), Supply to the target device composed of the moving body R, and realize the multitasking processing by the moving body R.
  • the neural network is also simply referred to as NN.
  • the processing structure of the single task T1 for realizing the object processing is composed of, for example, processing modules M1 to M3 corresponding to layers in the NN.
  • the processing module M1 executes a predetermined process based on the sensing result of the sensor J3, and outputs the execution result to the processing module M2.
  • the processing module M2 executes a predetermined process based on the process result of the process module M1 and outputs the process result to the process module M3.
  • the processing module M3 executes a predetermined process based on the process result of the process module M2, and outputs the process result as an object recognition result.
  • the processing structure of the single task T1 related to the object recognition is composed of the processing modules M1 to M3, and the single task T1 realizes the object recognition based on the sensing result of the sensor J3.
  • processing structure of the single task T2 for realizing the map construction is composed of, for example, processing modules M11 to M14 corresponding to the layer in the NN.
  • the processing module M11 executes a predetermined process based on the sensing results of the sensors J2 and J3, and outputs the execution results to the processing modules M12 and M13.
  • the processing module M12 executes a predetermined process based on the process result of the process module M11, and outputs the process result to the process module M13.
  • the processing module M13 executes a predetermined process based on the process results of the process modules M11 and M12, and outputs the process result to the process module M14.
  • the processing module M14 executes a predetermined process based on the process result of the process module M13, and outputs the process result as a map construction result.
  • the processing structure of the single task T2 related to the map construction is composed of the processing modules M11 to M14, and the map construction is realized by the single task T2 based on the sensing results of the sensors J2 and J3.
  • the processing structure of the single task T3 for realizing Path Planning (movement route planning) and motion control is composed of, for example, processing modules M21 to M26 corresponding to Layer in NN.
  • the processing module M21 executes a predetermined process based on the sensing results of the sensors J1 and J3, and outputs the execution result to the processing modules M22 and M25.
  • the processing module M22 executes a predetermined process based on the process result of the process module M21, and outputs the process result to the process module M23.
  • the processing module M23 executes a predetermined process based on the process result of the process module M22, and outputs the process result to the process module M24.
  • the processing module M25 executes a predetermined process based on the process result of the process module M21, and outputs the process result to the process module M26.
  • the processing module M26 executes a predetermined process based on the process result of the process module M25, and outputs the process result to the process module M24.
  • the processing module M24 executes a predetermined process based on the process results of the process modules M23 and M26, and outputs the process result as Path Planning and motion control result.
  • the processing structure of the single task T3 related to Path Planning and motion control is composed of the processing modules M21 to M26, and Path Planning and motion control are performed by the single task T3 based on the sensing results of the sensors J1 and J3.
  • Multitask processing is realized by parallel processing the single tasks T1 to T3 used by the existing hardware in FIG. 1.
  • processing modules M1 to M3, M11 to M14, and M21 to M26 there is a processing module that executes similar processing and a block composed of a plurality of processing modules that execute similar processing. In such a case, unnecessary overhead of memory copy may occur, or the processing time may increase due to repeated duplicate processing.
  • the prototype structure is searched and the structure of the processing module and the block of the processing module is analyzed.
  • Optimize by sharing processing modules and blocks, sharing parameters corresponding to HyperParameter used in NN, joining or disconnecting processing modules and blocks, etc. in processing modules and blocks where duplicate processing is performed. , Make it easy to build a highly efficient multitasking processing structure.
  • processing module M2 in the single task T1 and the processing module M12 in the single task T2 in FIG. 1 are similar processing or processing modules that execute the same processing.
  • the processing module M12 is treated as the processing module M2, and the parameter HP1 to be used is shared with the processing modules M2 and M12 (M2).
  • processing module M3 in the single task T1 and the processing module M14 in the single task T2 in FIG. 1 are similar processing or processing modules that execute the same processing, as shown in FIG.
  • the processing module M14 is treated as the processing module M3, and the parameter HP2 to be used is shared with the processing modules M3 and M14 (M3).
  • processing module M2 in the single task T1 in FIG. 1 and the block consisting of the processing modules M11 to M13 in the single task T2 are similar processing or are processing modules and blocks that execute the same processing.
  • FIG. 3 by combining the processing modules M11 to M13, it is treated as the processing module M2', and the parameter HP11 to be used is shared.
  • processing module M3 in the single task T1 and the processing module M14 in the single task T2 in FIG. 1 are similar processing or processing modules that execute the same processing, as shown in FIG.
  • the processing module M14 is treated as the processing module M3, and the parameter HP12 to be used is shared with the processing modules M3 and M14 (M3).
  • the plurality of processing modules constituting the block are combined to form one processing module. Handle and share parameters between processing modules that realize similar processing.
  • the processing module M2 in the single task T1 and the processing module M12 in the single task T2 in FIG. 1 are processing modules that execute the same processing
  • the processing module M12 is used as shown in FIG. It is shared with the processing module M2, and in the processing module M13, the output result of the processing module M2 is used as it is (Input).
  • processing module M13 in the single task T2 and the processing module M22 in the single task T3 in FIG. 1 are processing modules that execute the same processing
  • the processing module M13 is used as the processing module as shown in FIG. It is shared with M22, and in the processing module M23, the output result of the processing module M13 is used as it is (Input).
  • the processing module that realizes the same processing is shared and used, and the processing result of the shared processing module is used as it is in the subsequent processing. ..
  • a prototype structure for parallel processing the existing single task processing structure is formed, and the processing modules constituting the single task processing structure are the same or are used. Search for similar processing modules in the prototype structure, share parameters with the same or similar processing modules searched, share processing modules, and combine or disconnect processing modules.
  • a prototype structure that is a structure in which a plurality of single-task processing structures are only processed in parallel is generated, and based on the search result of the prototype structure, the plurality of single-task processing structures constituting the prototype structure are used.
  • the processing module By optimizing the processing module, it becomes possible to easily construct a multitasking processing structure.
  • the information processing system of FIG. 5 is composed of a multitasking processing structure generation unit 11 composed of a PC (personal computer) and a target device 12.
  • the multitasking processing structure generation unit 11 provides a multitasking processing structure composed of a neural network (NN) for realizing multitasking processing to be executed by a target device 12 such as a robot or a moving body equipped with various sensors. It is constructed and supplied to the target device 12 to realize multitasking processing.
  • NN neural network
  • the multitasking processing structure generation unit 11 acquires an individual singletasking processing structure included in the multitasking processing to be realized by the target device 12, and simply performs parallel processing as a prototype structure of the multitasking processing structure. To build. Then, the multitask processing structure generation unit 11 searches for the same or similar processing modules among the single task processes constituting the prototype structure.
  • the processing module has a configuration corresponding to each layer such as an input layer, a hidden layer, and an output layer in NN, and is a module in which a program to be executed is described.
  • the multitask processing structure generation unit 11 has a plurality of processing modules and blocks that are the same or similar among the single task processing structures constituting the prototype structure, as described with reference to FIGS. 2 to 4. Optimize by sharing parameters and processing modules between single-task processing structures, and combining or disconnecting processing modules, and reconstruct as a multi-task processing structure.
  • the multitasking processing structure generation unit 11 relearns the reconstructed multitasking processing structure using the learning data and uses it in the processing module constituting the multitasking processing structure. Update the parameters to be done.
  • the target device 12 is, for example, a device such as a robot or a moving body equipped with various sensors and cameras such as a motion sensor, a microphone, an illuminance sensor, a distance measuring sensor, a SLAM camera, an RGB camera, and a ToF sensor.
  • a motion sensor such as a robot or a moving body equipped with various sensors and cameras such as a motion sensor, a microphone, an illuminance sensor, a distance measuring sensor, a SLAM camera, an RGB camera, and a ToF sensor.
  • the target device 12 acquires NN as a multitasking processing structure for embodying the multitasking processing supplied from the multitasking processing structure generation unit 11, and based on the detection results of various sensors and cameras, the target device 12 obtains NN. Achieve multitasking processing.
  • step S11 the user applies One-Shot or Few-Shot learning data to the sensors and cameras having the same performance as the various sensors and cameras provided in the target device 12. Request.
  • step S21 the sensors and cameras having the same performance as the various sensors and cameras provided in the target device 12 return the learning data of One-Shot or Few-Shot to the user.
  • the learning data of One-Shot or Few-Shot is the learning data for one or several times required for machine learning or the like.
  • the learning data may be learning data more times than One-Shot or Few-Shot, but by using One-Shot or Few-Shot, processing related to learning While reducing the load and processing time, it is possible to obtain parameters (coefficients) that are not highly accurate but can realize multitasking processing that can withstand practical use.
  • step S12 the user inputs the learning data of One-Shot or Few-Shot supplied from the sensors and cameras having the same performance as the various sensors and cameras provided in the target device 12. get.
  • step S40 the target device 12 returns the learning data of One-Shot or Few-Shot regarding the sensor, camera, etc. provided in the target device 12 to the user.
  • step S21 the learning data of One-Shot or Few-Shot is supplied from the sensor or camera equivalent to the target device 12 provided separately from the target device 12 by the process of step S21. Proceed with the explanation.
  • step S13 the user supplies the acquired One-Shot or Few-Shot learning data to the multitasking processing structure generation unit 11 composed of a PC.
  • step S31 the multitasking processing structure generation unit 11 acquires learning data of One-Shot or Few-Shot.
  • step S32 the multitasking processing structure generation unit 11 simply parallelizes the existing singletasking processing structure as the multitasking processing structure for realizing the multitasking processing to be executed by the target device 12. Build the prototype structure of the multitasking processing structure only.
  • the prototype structure of the multitasking processing structure constructed in the processing of step S32 is a structure including duplication of processing modules, etc., and has a large processing load and processing time. It has great potential and is not an optimized multitasking structure.
  • step S33 the multitasking processing structure generation unit 11 executes the prototype structure search processing described later with reference to the flowchart of FIG. 9, searches for a similar processing module, shares parameters, shares the processing module, and so on.
  • the multitasking processing structure consisting of the prototype structure is optimized to improve the processing efficiency and construct the multitasking processing structure.
  • step S34 the multitasking processing structure generation unit 11 supplies the completed multitasking processing structure to the target device 12.
  • step S41 the target device 12 acquires the multitasking processing structure supplied from the multitasking processing structure generation unit 11 and executes the multitasking processing.
  • the multitasking processing structure in the optimized state is constructed, so that the optimum multitasking processing is realized by the target device 12.
  • the multitasking processing structure generation unit 11 is composed of a control unit 31, an input unit 32, an output unit 33, a storage unit 34, a communication unit 35, a drive 36, and a removable storage medium 37. It is configured to be electrically connected to each other via a bus 38.
  • the control unit 31 is composed of a processor and a memory, and controls the entire operation of the multitask processing structure generation unit 11.
  • control unit 31 includes a structure search unit 51, executes a prototype structure search process described later, and uses an existing single task processing structure to cause the target device 12 to execute multitask processing. Build a processing structure.
  • the input unit 32 is composed of a keyboard, operation buttons, etc., receives user's operation input, and outputs it to the control unit 31.
  • the output unit 33 includes, for example, a display unit such as a display made of an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) for displaying an image, and an audio output unit including a speaker for outputting sound. Output images and sounds as needed.
  • a display unit such as a display made of an LCD (Liquid Crystal Display) or an organic EL (Electro Luminescence) for displaying an image
  • an audio output unit including a speaker for outputting sound. Output images and sounds as needed.
  • the storage unit 34 is controlled by the control unit 31 and is composed of an HDD (Hard Disk Drive), an SSD (Solid State Drive), a semiconductor memory, or the like, and writes or reads various data and programs.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • semiconductor memory or the like
  • the storage unit 34 has the same performance as the sensor or camera provided in the target device 12 or the sensor or camera provided in the target device 12. It stores data for learning One-shot or few-shot by sensors and cameras, and the single-task processing structure (corresponding to NN) used in existing hardware.
  • the communication unit 35 is controlled by the control unit 31 and communicates with the target device 12 by wire (or wirelessly (not shown)) via a communication network represented by a LAN (Local Area Network) or the like to generate the communication unit 35.
  • a communication network represented by a LAN (Local Area Network) or the like to generate the communication unit 35.
  • Send and receive the multitasking processing structure (corresponding to NN).
  • the drive 36 includes a magnetic disk (including a flexible disk), an optical disk (including a CD-ROM (Compact Disc-Read Only Memory), a DVD (Digital Versatile Disc)), a magneto-optical disk (including an MD (Mini Disc)), Alternatively, data is read / written to / from a removable storage medium 37 such as a semiconductor memory.
  • a magnetic disk including a flexible disk
  • an optical disk including a CD-ROM (Compact Disc-Read Only Memory), a DVD (Digital Versatile Disc)
  • a magneto-optical disk including an MD (Mini Disc)
  • MD Mini Disc
  • the structure search unit 51 includes a single task processing structure acquisition unit 71, a similarity comparison unit 72, a connection cutting unit 73, a simulation unit 74, an accuracy confirmation unit 75, a score calculation unit 76, a score determination unit 77, a learning determination unit 78, and learning. It is composed of a unit 79, a multitasking processing structure storage unit 80, and a multitasking processing structure output unit 81.
  • the single-task processing structure acquisition unit 71 reads out the necessary existing single-task processing structure (corresponding to NN) from the storage unit 34 in response to the multi-task processing to be executed by the target device 12, and performs the multi-task processing. Build the prototype structure of the structure.
  • FIG. 1 For example, when constructing a multitasking processing structure (NN consisting of 3 types of tasks) of object recognition, map construction, and Path Planning and motion control, as described with reference to FIG. 1, FIG.
  • the existing single tasks T1 to T3 of the above are read out, and the prototype structure of the multitask processing structure as shown in FIG. 1 is constructed.
  • each of the plurality of single-task processing structures constituting the prototype structure of the multi-task processing structure may contain processing modules or blocks that execute the same or similar processing, and duplicate processing is repeated. It is not a complete (optimized) multitasking processing structure because it may include wasteful processing such as the same parameters being repeatedly read out.
  • the similarity comparison unit 72 compares the similarity of the processing module constituting the single task processing structure constituting the prototype structure of the multitask processing structure or the block composed of a plurality of processing modules, and the similarity is a predetermined threshold value. It is determined whether or not it is higher than, and if the similarity is higher than a predetermined threshold value and is similar, it is output to the coupling cutting unit 73 in order to optimize the multitasking process.
  • the similarity is an input / output similarity which is the similarity of data input / output in a processing module or a block unit, and a parameter corresponding to HyperParameter in the NN used in the processing module or a block unit.
  • parameter similarity which is the similarity.
  • the similarity comparison unit 72 determines whether or not the processing module or block is similar for each of the input / output similarity and the parameter similarity.
  • the multitasking processing structure storage unit 80 is a completed processing module. To store in.
  • connection cutting unit 73 is set to share the parameters in the processing module or block between the single task NNs having high input / output similarity or parameter similarity, or to share the processing module or the block itself. If necessary, the processing modules or blocks are combined or cut to optimize the multitasking processing structure as the prototype structure to construct a new completed multitasking processing structure.
  • the coupling cutting unit 73 optimizes and outputs the newly constructed multitasking processing structure to the simulation unit 74.
  • the coupling cutting unit 73 shares the parameters of the processing module M2 and the processing module M12. Set to.
  • the coupling cutting unit 73 is the processing module.
  • the processing module M2' is constructed by combining M11 to M13, and is set to share the parameters with the processing module M2.
  • the coupling cutting portion 73 is connected to the processing module M13 in the subsequent stage of the processing module M12.
  • the processing module is shared so that the output result of the processing module M2 is input, and the connection configuration is rearranged.
  • the simulation unit 74 executes a simulation when the target device 12 is operated by the newly constructed optimized multitask processing structure (NN consisting of), and outputs the simulation processing result to the accuracy confirmation unit 75.
  • the accuracy confirmation unit 75 confirms the processing accuracy of the newly constructed optimized multitasking processing structure from the simulation processing result by the newly constructed multitasking processing structure, and the score calculation unit 76 obtains the confirmed processing accuracy information. Output to.
  • the score calculation unit 76 calculates the score related to the processing accuracy of the newly constructed optimized multitask processing structure based on the processing accuracy of the simulation processing result, and outputs the score to the score determination unit 77.
  • the score determination unit 77 can use the newly constructed multitasking processing structure by comparing the score related to the processing accuracy of the newly constructed optimized multitasking processing structure (NN consisting of) with a predetermined threshold value. It is determined whether or not there is, and the usable multitask processing structure is output to the learning determination unit 78 together with the score.
  • the learning determination unit 78 determines whether or not it is necessary to relearn the newly constructed optimized multitask processing structure, which is regarded as a usable multitask processing structure.
  • the score related to the processing accuracy is sufficient processing accuracy, re-learning for improving the processing accuracy is not necessary, so that the determination result is output to the learning unit 79 and newly constructed.
  • the available multitasking processing structure is associated with the score and output to the multitasking processing structure storage unit 80.
  • the learning unit 79 learns a newly constructed optimized multitasking processing structure based on the learning data, updates the parameters used by various processing modules, and stores the multitasking processing structure. It is stored in the part 80.
  • the multitasking processing structure storage unit 80 shares similar processing modules and blocks having higher input / output similarity and parameter similarity than a predetermined threshold value, and shares parameters as necessary.
  • the newly constructed optimized multitasking processing structure is stored with the score by being reconstructed by joining or disconnecting.
  • the multitasking processing structure storage unit 80 is newly constructed in which shared processing modules and blocks, shared parameters, connection patterns of processing modules reconstructed by joining and disconnecting, and the like are different.
  • the optimized multitasking processing structure is stored with the score.
  • the multitasking structure output unit 81 has the highest score, optimized, and newly constructed multitasking processing structure among various different and newly constructed multitasking processing structures stored in the multitasking processing structure storage unit 80.
  • the constructed multitask processing structure is output to the target device 12, and the multitask processing is executed.
  • step S111 the structure search unit 51 executes the input / output similarity comparison structure search process to form a processing module or block having a high input / output similarity between the single task processing structures forming the prototype structure of the multitask processing. Search and optimize based on the search result to build a new multitasking processing structure. Then, the structure search unit 51 stores the constructed multitask processing structure together with a score for evaluating the processing accuracy.
  • step S112 the structure search unit 51 executes the parameter similarity comparison structure search process and searches for a processing module or block having a high parameter similarity between the single task processing structures constituting the prototype structure of the multitask processing. , Based on the search results, optimize and build a new multitasking processing structure. Then, the structure search unit 51 stores the constructed multitask processing structure together with a score for evaluating the processing accuracy.
  • a new multitasking processing structure is newly constructed based on the input / output similarity and the parameter similarity, and is stored together with the score.
  • the multitasking processing structures configured in this way, the one with the highest score is selected, and the multitasking processing is executed by the target device.
  • step S131 the single-task processing structure acquisition unit 71 reads out the necessary existing single-task processing structure from, for example, the storage unit 34 in response to the multi-task processing to be executed by the target device 12, and of the multi-task processing structure. Build a prototype structure.
  • step S132 the similarity comparison unit 72 has not processed the combination of the processing modules constituting the prototype structure of the multitasking processing structure or the blocks composed of the plurality of processing modules. Set the combination as the processing target combination.
  • step S133 the similarity comparison unit 72 calculates the input / output similarity between the processing modules that are the combinations to be processed, or between the blocks that are composed of a plurality of processing modules.
  • step S134 the similarity comparison unit 72 determines whether or not the input / output similarity is higher than a predetermined threshold value.
  • step S134 when the input / output similarity is higher than a predetermined threshold value and is similar, the similarity comparison unit 72 outputs to the coupling cutting unit 73 in order to optimize the multitasking process.
  • step S135 the coupling cutting unit 73 joins or disconnects the processing module or block as necessary so as to share the processing module or block between the single-task processing structures having high input / output similarity. Build a new multitasking processing structure.
  • the coupling cutting unit 73 outputs the newly constructed multitasking processing structure to the simulation unit 74.
  • the coupling cutting unit 73 joins or joins processing modules and blocks as necessary in order to share processing modules and blocks having high input / output similarity. Disconnect.
  • the processing modules may be combined or disconnected so that the data processed in time series can be efficiently processed by parallel processing.
  • FIG. 11 a processing structure in which parallel processing is realized by four processing modules consisting of processing a to processing d for data D1 to D4 (displayed separately in different patterns in the figure) is provided. It is shown.
  • the data D1 to D4 are sequentially processed (Pipeline) by the sequential processing a to processing d every one clock cycle.
  • the data D2 to D4 are set as waiting for processing (Waiting instructions), and the data D1 is processed a.
  • the data D3 and D4 are set as waiting for processing (Waiting instructions), the processing b is performed on the data D1, the processing a is performed on the data D2, and the parallel processing (Pipeline) is performed.
  • the data D4 is set to wait for processing (Waiting instructions), the data D1 is processed c, the data D2 is processed b, the data D3 is processed a, and parallel processing (Pipeline) is performed. ..
  • the data D1 is regarded as completed (Completed instructions)
  • the data D2 is processed d
  • the data D3 is processed c
  • the data D4 is processed b
  • parallel processing is performed. ..
  • the data D1 and D2 are regarded as completed (Completed instructions), the data D3 is processed d, the data D4 is processed c, and the parallel processing (Pipeline) is performed.
  • the data D1 to D3 are regarded as completed (Completed instructions), the data D4 is processed d, and parallel processing (Pipeline) is performed.
  • the process a is a read process
  • the process b is a decode process
  • the process c is an execution process
  • the process d is a write-back process
  • the hardware configuration and memory of the target device 12 Data D1 to D4 can be processed in parallel in clock cycles 0 to 8 based on the band.
  • the processing modules may be combined or disconnected depending on the processing capacity of the hardware. That is, when the processing a takes twice the processing time of the processing b to d due to the performance and processing capacity of the hardware, the processing module of the processing a is made equal to the processing time of the processing b to d2. It may be cut so as to be divided so that the processing times of all the processing modules are aligned.
  • step S136 the simulation unit 74 executes a simulation when the target device 12 operates in the computing power and the memory band by the newly constructed multitask processing structure, and outputs the simulation processing result to the accuracy confirmation unit 75.
  • step S137 the accuracy confirmation unit 75 calculates the processing accuracy of the newly constructed multitasking processing structure from the simulation processing result by the newly constructed multitasking processing structure, and the score calculation unit 76 uses the calculated processing accuracy information. Output to.
  • step S138 the score calculation unit 76 calculates the score related to the processing accuracy of the newly constructed multitask processing structure based on the processing accuracy of the simulation processing result, and outputs the score to the score determination unit 77.
  • step S139 the score determination unit 77 determines whether or not the newly constructed multitasking processing structure is optimized by comparing the score related to the processing accuracy of the newly constructed multitasking processing structure with a predetermined threshold value. judge.
  • step S139 when the score related to the processing accuracy is higher than the predetermined threshold value and the newly constructed multitasking processing structure is considered to be optimized, the score determination unit 77 scores the multitasking processing structure. Is output to the learning determination unit 78.
  • step S140 the learning determination unit 78 determines whether or not re-learning of the newly constructed multitask processing structure, which is considered to be the optimized multitask processing structure, is necessary.
  • step S140 for example, when the score related to the processing accuracy of the newly constructed multitasking processing structure is optimized to be higher than a predetermined threshold value, but the processing accuracy is not sufficient, the learning determination is made.
  • the unit 78 considers that re-learning is necessary in order to improve the processing accuracy, and outputs the newly constructed multitask processing structure to the learning unit 79.
  • step S141 the learning unit 79 relearns the newly constructed multitasking processing structure based on the learning data.
  • step S142 the learning unit 79 reconfigures and updates the parameters used by the various processing modules with the re-learning.
  • step S143 the learning unit 79 stores the reconstructed multitasking processing structure in the multitasking processing structure storage unit 80 in association with the score.
  • step S144 the similarity comparison unit 72 has not processed a combination of processing modules constituting the single-task processing structure constituting the prototype structure of the multitasking processing structure or blocks composed of a plurality of processing modules. It is determined whether or not there is a combination, and if there is an unprocessed combination, the process returns to step S132.
  • optimization processing based on input / output similarity is performed for all combinations between the processing modules constituting the prototype structure of the multitasking processing structure or between blocks consisting of a plurality of processing modules. Until then, the processes of steps S132 to S144 are repeated.
  • step S144 it is considered that the optimization processing has been performed for all the combinations between the processing modules constituting the single task processing structure constituting the prototype structure of the multitasking processing structure or between the blocks composed of the plurality of processing modules. If so, the process ends.
  • step S134 when the input / output similarity is lower than the predetermined threshold value and is considered to be dissimilar, or in step S139, the score related to the processing accuracy is lower than the predetermined threshold value, and a new construction is performed. If the multitasking processing structure is deemed not to be optimized, processing proceeds to step S144. That is, in this case, the optimization process is not substantially performed.
  • step S140 when re-learning is not necessary, the learning determination unit 78 stores the reconstructed multitasking processing structure in the multitasking processing structure storage unit 80 in association with the score.
  • the multitasking processing structure storage unit 80 shares processing modules and blocks that perform similar or the same processing, shares parameters, and is composed of processing modules and blocks reconstructed by joining or disconnecting.
  • the newly constructed optimized multitasking processing structure is stored with the score.
  • the prototype structure of the multitasking processing structure is generated based on the existing singletasking processing, and further, the input / output similarity of the processing modules and blocks between the singletasking processing structures. Search for similar processing modules and blocks from, share parameters, share processing modules and blocks themselves, join or disconnect processing modules and blocks for optimization, and create new multitasking processing.
  • the structure is constructed and stored with the score.
  • the necessary existing single-task processing structure is read from, for example, the storage unit 34 according to the multi-task processing to be executed by the target device 12, and the prototype structure of the multi-task processing structure is obtained. Will be built. Then, the unprocessed combination is set as the processing target combination from the combination between the processing modules of the single task processing structure constituting the prototype structure of the multitasking processing structure or between the blocks composed of a plurality of processing modules.
  • step S163 the similarity comparison unit 72 calculates the parameter similarity between the processing modules that are the combinations to be processed or between the blocks that are composed of a plurality of processing modules.
  • step S164 the similarity comparison unit 72 determines whether or not the parameter similarity is higher than a predetermined threshold value.
  • step S164 when the parameter similarity is higher than a predetermined threshold value and is similar, the similarity comparison unit 72 outputs to the coupling cutting unit 73 in order to optimize the multitasking process.
  • step S165 the coupling cutting unit 73 joins or disconnects the processing module or block as necessary so as to share the parameter in the processing module or block between the single task processing structures having high parameter similarity.
  • the coupling cutting unit 73 outputs the newly constructed multitasking processing structure to the simulation unit 74.
  • the multitasking processing structure storage unit 80 shares the parameters in similar processing modules or blocks having a parameter similarity higher than a predetermined threshold value. Optimized by reconstructing by joining and breaking, a new multitasking processing structure is constructed and stored with the score.
  • the multitasking processing structure storage unit 80 is reconstructed and optimized by joining or disconnecting the processing modules or blocks so that the parameters are shared by the processing modules or blocks, and is newly constructed.
  • the multitasking processing structure is stored together with the score.
  • the multitasking processing structure output unit 81 combines the processing modules and blocks stored in the multitasking processing structure storage unit 80 so that the processing modules and blocks are shared or the parameters are shared.
  • the newly constructed multitasking processing structure having a score higher than a predetermined score is output to the target device 12 to execute the multitasking processing. ..
  • the prototype structure of the multitasking processing structure is generated based on the existing singletasking processing, and further, the input / output similarity of the processing modules and blocks between the singletasking processing structures.
  • searching for similar processing modules and blocks from and parameter similarity sharing parameters, sharing processing modules and blocks themselves, and joining or disconnecting processing modules and blocks for optimization.
  • a new optimized multitasking structure is built and stored with the score.
  • the multitasking processing structure output unit 81 sends an NN composed of the optimized multitasking processing structure having a score higher than a predetermined score to the target device 12. Output.
  • the target device 12 can realize the multitasking process optimized by the NN having the optimized multitasking process structure.
  • the single-tasking processing structure used in the existing device is used. Sharing, combining, and disconnecting processing modules and blocks, sharing parameters, or resetting parameters by re-learning using training data according to the performance and functions of the improved target device 12. Will be possible, and it will be possible to easily develop NN as a multitasking processing structure.
  • the existing single task processing structure is combined to form the prototype structure of the multitask processing structure, and the processing modules and blocks constituting the single task processing structure are input. Share, combine, and disconnect similar processing modules and blocks based on output similarity and parameter similarity, share parameters with similar processing modules and blocks, or retrain parameters using training data. An example of resetting has been described.
  • the existing multitasking processing structure is reused for the new target device 12
  • the existing multitasking processing structure is treated as the prototype structure of the multitasking processing structure, and the new target device
  • the prototype structure search process may be executed by excluding it.
  • the single-task processing structure consisting of the processing modules and blocks having low input / output similarity or parameter similarity is excluded from the single-task processing structures constituting the prototype structure, so that the input / output can be input / output. It is possible to realize a prototype structure search process of only a single-task processing structure composed of processing modules or blocks having a high degree of similarity or parameter similarity, and it is possible to improve the search efficiency of the prototype structure search process.
  • step S201 the single-task processing structure acquisition unit 71 reads out the necessary existing single-task processing structure from, for example, the storage unit 34 in response to the multi-task processing to be executed by the target device 12, and of the multi-task processing structure. Build a prototype structure.
  • step S202 the similarity comparison unit 72 is unprocessed among the combinations between the processing modules constituting the prototype structure of the multitasking processing structure or the blocks composed of the plurality of processing modules. Set the combination as the processing target combination.
  • step S203 the similarity comparison unit 72 calculates the input / output similarity between the processing modules that are the processing target combinations or between the blocks that are composed of a plurality of processing modules.
  • step S204 the similarity comparison unit 72 compares the input / output similarity with a predetermined threshold value.
  • step S205 the similarity comparison unit 72 stores the comparison result between the input / output similarity and the predetermined threshold value.
  • step S206 the similarity comparison unit 72 is unprocessed among the combinations between the processing modules constituting the prototype structure of the multitasking processing structure or the blocks composed of the plurality of processing modules. Determine if there is a combination.
  • step S206 it is determined that there is an unprocessed combination among the combinations between the processing modules constituting the single task processing structure constituting the prototype structure of the multitasking processing structure or between the blocks composed of a plurality of processing modules. If so, the process returns to step S202.
  • the input / output similarity for all combinations between the processing modules constituting the prototype structure of the multitasking processing structure or between the blocks consisting of a plurality of processing modules is compared with the threshold value. If it is determined that there is no unprocessed combination, the process proceeds to step S207.
  • step S207 the similarity comparison unit 72 determines the input / output similarity between the processing modules constituting the prototype structure of the multitasking processing structure or between blocks composed of a plurality of processing modules.
  • the comparison result with a predetermined threshold value is statistically processed.
  • the similarity comparison unit 72 excludes another single-task processing structure, a processing module having a low input / output similarity, or a single-task processing structure composed of blocks from the processing target in the prototype structure search processing.
  • steps S208 and S209 the input / output similarity comparison structure search process and the parameter similarity comparison structure search process are executed.
  • the target device 12 may independently realize the multitasking process.
  • the target device 12 functions as the multitasking processing structure generation unit 11.
  • step S231 the target device 12 acquires (reads) the learning data of One-Shot or Few-Shot of the sensors having the configurations corresponding to the various sensors provided in the target device 12.
  • step S232 the target device 12 that functions as the multitask processing structure generation unit 11 constructs a prototype structure of the multitask processing structure by combining the single task processing structures required for the multitask processing structure.
  • step S233 the target device 12 that functions as the multitasking processing structure generation unit 11 executes the prototype structure search processing described with reference to the flowchart of FIG. 9, searches for similar processing modules, and shares parameters.
  • the multitasking processing structure is optimized by processing such as sharing of processing modules, combining or disconnecting processing modules, aiming at high processing efficiency, and constructing a completed multitasking processing structure.
  • the target device 12 when the target device 12 has a multitasking processing structure necessary for operating on the earth as an existing multitasking processing structure, the target device 12 can be moved by the above-mentioned processing. You can reconstruct the multitasking processing structure by yourself.
  • the target device 12 when the target device 12 recognizes that it has reached the lunar surface, it acquires learning data necessary for operating on the lunar surface, relearns the multitask processing structure, and updates the parameters. By doing so, it becomes possible to reconstruct the multitasking processing structure suitable for the lunar surface.
  • the target device 12 can autonomously reconstruct the optimum multitasking processing structure in the current environment in real time while adapting to the current environment, and adapts to various environments. It is possible to realize multitasking processing.
  • the target device 12 functions as the multitask processing structure generation unit 11 by using the learning data of its own sensor, thereby performing the prototype structure search process.
  • the target device 12 functions as the multitask processing structure generation unit 11 by using the learning data of its own sensor, thereby performing the prototype structure search process.
  • the cloud computer may function as the multitasking processing structure generation unit 11 to realize the multitasking processing.
  • step S251 the target device 12 acquires the learning data of One-Shot or Few-Shot of the various sensors provided in the target device 12 and the sensors having the corresponding configurations.
  • step S252 the target device 12 transmits the learning data of One-Shot or Few-Shot of the various sensors provided in the target device 12 and the sensors having the corresponding configurations to the cloud computer 101.
  • step S271 the cloud computer 101 that functions as the multitasking processing structure generation unit 11 acquires learning data of One-Shot or Few-Shot.
  • step S272 the cloud computer 101 that functions as the multitasking processing structure generation unit 11 constructs a prototype structure of the multitasking processing structure by combining the singletasking processing structures required for the multitasking processing structure.
  • step S273 the cloud computer 101 functioning as the multitasking processing structure generation unit 11 executes the prototype structure search processing described with reference to the flowchart of FIG. 9, searches for similar processing modules, and shares parameters. , Optimize the multitasking processing structure by processing such as sharing of processing modules, combining or disconnecting processing modules, aiming at high processing efficiency, and constructing a completed multitasking processing structure.
  • step S274 the cloud computer 101 that functions as the multitasking processing structure generation unit 11 supplies the completed multitasking processing structure to the target device 12.
  • step S253 the target device 12 acquires the multitasking processing structure supplied from the cloud computer 101 that functions as the multitasking processing structure generation unit 11, and executes the multitasking process.
  • step S254 the target device 12 acquires the multitasking processing structure supplied from the cloud computer 101 that functions as the multitasking processing structure generation unit 11, and executes the multitasking process.
  • the multitasking processing structure in the optimized state is constructed by the prototype structure search processing by the cloud computer 101, so that the highly efficient multitasking processing by the target device 12 is realized. ..
  • the target device 12 can realize multitasking processing based on the multitasking processing structure by communicating with the cloud computer 101.
  • FIG. 16 shows a configuration example of a general-purpose computer.
  • This personal computer has a built-in CPU (Central Processing Unit) 1001.
  • the input / output interface 1005 is connected to the CPU 1001 via the bus 1004.
  • a ROM (Read Only Memory) 1002 and a RAM (Random Access Memory) 1003 are connected to the bus 1004.
  • the input / output interface 1005 includes an input unit 1006 including an input device such as a keyboard and a mouse for the user to input operation commands, an output unit 1007 for outputting a processing operation screen and an image of the processing result to a display device, a program and various data. It is composed of a storage unit 1008 including a hard disk drive for storing, a LAN (Local Area Network) adapter, and the like, and is connected to a communication unit 1009 for executing communication processing via a network represented by the Internet. In addition, magnetic disks (including flexible disks), optical disks (including CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc)), magneto-optical disks (including MD (Mini Disc)), or semiconductors.
  • a drive 1010 that reads and writes data to and from a removable storage medium 1011 such as a memory is connected.
  • the CPU 1001 is read from a program stored in the ROM 1002 or a removable storage medium 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, installed in the storage unit 1008, and loaded from the storage unit 1008 into the RAM 1003. Various processes are executed according to the program.
  • the RAM 1003 also appropriately stores data and the like necessary for the CPU 1001 to execute various processes.
  • the CPU 1001 loads the program stored in the storage unit 1008 into the RAM 1003 via the input / output interface 1005 and the bus 1004 and executes the above-described series. Is processed.
  • the program executed by the computer can be recorded and provided on the removable storage medium 1011 as a package medium or the like, for example. Programs can also be provided via wired or wireless transmission media such as local area networks, the Internet, and digital satellite broadcasting.
  • the program can be installed in the storage unit 1008 via the input / output interface 1005 by mounting the removable storage medium 1011 in the drive 1010.
  • the program can be received by the communication unit 1009 and installed in the storage unit 1008 via a wired or wireless transmission medium.
  • the program can be pre-installed in the ROM 1002 or the storage unit 1008.
  • the program executed by the computer may be a program in which processing is performed in chronological order in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • the system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all the components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and a device in which a plurality of modules are housed in one housing are both systems. ..
  • the present disclosure can have a cloud computing configuration in which one function is shared by a plurality of devices via a network and jointly processed.
  • each step described in the above flowchart can be executed by one device or shared by a plurality of devices.
  • one step includes a plurality of processes
  • the plurality of processes included in the one step can be executed by one device or shared by a plurality of devices.
  • An information processing device including an optimization unit that optimizes the multitasking processing structure based on the structure of the multitasking processing structure that controls the operation of the target device.
  • the single-task processing structure is composed of a processing module or a block composed of a plurality of the processing modules.
  • the optimization unit optimizes the multitasking processing structure by using the processing module or the block whose similarity indicating the degree of similarity is higher than a predetermined value among the singletasking processing structures.
  • the optimization unit optimizes the multitask processing structure by using the processing module or the block having a high input / output similarity indicating the degree of similarity of input / output data between the single task processing structures.
  • ⁇ 6> The optimization unit uses the processing module or the block whose parameter similarity indicating the degree of similarity of the parameters to be used is higher than a predetermined value among the single-task processing structures, and the multitask processing structure.
  • the optimization unit optimizes the multitask processing structure by sharing the processing module or the block whose similarity indicating the degree of similarity is higher than a predetermined value among the single task processing structures.
  • the optimization unit shares the processing module or the block whose similarity is higher than a predetermined value among the single-task processing structures by combining or disconnecting, thereby performing the multi-task processing.
  • the information processing device according to ⁇ 7> which optimizes the structure.
  • the optimization unit installs the processing module or the block having the similarity higher than a predetermined value between the single-task processing structures according to the performance and function of the hardware constituting the target device.
  • the information processing apparatus which optimizes the multitasking processing structure by sharing by combining or disconnecting.
  • the optimization unit shares the parameters used in the processing module or the block whose similarity indicating the degree of similarity is higher than a predetermined value among the single-task processing structures, thereby performing the multitasking process.
  • the information processing device according to ⁇ 3> for optimizing the structure.
  • a simulation unit that executes a simulation when the multitasking processing structure optimized by the optimization unit is operated by the target device, and a simulation unit.
  • a score calculation unit that calculates a score indicating the processing accuracy of the multitasking process realized based on the multitasking process structure by the simulation and the optimized multitasking process structure are relearned based on the score.
  • the information processing apparatus according to any one of ⁇ 1> to ⁇ 10>, further comprising a re-learning unit.
  • the re-learning unit performs at least one of the parameters of the processing module constituting the optimized multitasking processing structure and the block composed of the plurality of the processing modules by re-learning using the learning data.
  • the information processing device according to ⁇ 11> to be updated.
  • the information processing device according to ⁇ 12>, wherein the learning data is data according to the performance and function of the sensors and cameras provided in the target device.
  • the processing module and the block are predetermined based on at least one of the sensing result supplied by the sensors, the image supplied by the cameras, and the processing result of the processing module or the block.
  • the information processing apparatus which executes processing and outputs a processing result.
  • the multitasking processing structure is a program using a neural network that controls the operation of the target device.
  • the processing module and the block are layers and blocks in a program using the neural network, respectively.
  • the information processing device according to any one of ⁇ 1> to ⁇ 16>, which is the target device.
  • ⁇ 18> The information processing device according to any one of ⁇ 1> to ⁇ 16>, which is a cloud computer.
  • An information processing method including an optimization process that optimizes the multitasking process structure based on the structure of the multitasking process structure that controls the operation of the target device.
  • a program that causes a computer to function as an optimization unit that optimizes the multitasking processing structure based on the structure of the multitasking processing structure that controls the operation of the target device.
  • Multitask processing structure generation unit 12 target device, 31 control unit, 32 input unit, 33 output unit, 34 storage unit, 35 communication unit, 36 drive, 37 removable storage medium, 51 structure search unit, 71 single task processing structure Acquisition unit, 72 similarity comparison unit, 73 coupling cutting unit, 74 simulation unit, 75 accuracy confirmation unit, 76 score calculation unit, 77 score judgment unit, 78 learning judgment unit, 79 learning unit, 80 multitasking processing structure storage unit, 81 Multitask processing structure output unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本開示は、マルチタスク処理構造を容易に構築できるようにする情報処理装置、および情報処理方法、並びにプログラムに関する。 既存のシングルタスク処理構造を組み合わせることにより、ターゲットデバイスの動作を制御するマルチタスク処理構造の原型構造を構成し、シングルタスク処理構造間における処理モジュールや複数の処理モジュールからなるブロックのうち、類似した処理モジュールやブロックを共有、結合、または切断する、または、パラメータを共有することにより最適化し、マルチタスク処理構造を完成させる。ニューラルネットワークを用いたマルチタスク処理のプログラミングに適用することができる。

Description

情報処理装置、および情報処理方法、並びにプログラム
 本開示は、情報処理装置、および情報処理方法、並びにプログラムに関し、特に、マルチタスク処理構造を容易に構築できるようにした情報処理装置、および情報処理方法、並びにプログラムに関する。
 物体認識、人認識、Path Planning(経路計画)、Motion Planning(動作計画)など複数の作業(タスク)を同時に解決する処理をマルチタスク処理という。
 このため、人間は常にマルチタスク処理を実現しながら動作しているとも言える。
 ロボット等のデバイスに、マルチタスク処理を実現させるためのマルチタスク処理構造のプログラムを構築するにあたって、単純に、必要とされるシングルタスク処理構造のプログラムを並列処理させるような構成で実現することは可能である。
 しかしながら、マルチタスク処理を、複数のシングルタスク処理を単純に並列処理により実現させる場合、シングルタスク処理間で、同一、または、類似する処理が個別に実行されるようなこともあり、一度の処理で済ませることが可能な処理であるにも関わらず、並列処理がなされることで不要に同一の処理が繰り返され、処理負荷が増大してしまうことがあった。
 そこで、近年、ニューラルネットワーク(Neural Network)を使って、シングルタスク処理を実現するための処理構造を構築する技術が提案されている(非特許文献1参照)。
Learning Transferable Architectures for Scalable Image Recognition
 しかしながら、非特許文献1のシングルタスク処理向けの構造探索でも処理量が膨大であるにもかかわらず、同様の構造探索をマルチタスク処理を実現するため適用すると、学習データの収集・ラベル付け、学習、および評価等がさらに困難になることが予想される。
 このように、マルチタスク処理構造を構築するための工数は、シングルタスク処理構造を構築するときの工数を単純にシングルタスクの種類数倍するよりも膨大であり、その構築には膨大な時間が必要とされる。
 本開示は、このような状況に鑑みてなされたものであり、特に、マルチタスク処理構造を容易に構築できるようにするものである。
 本開示の一側面の情報処理装置は、ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化部を備える情報処理装置である。
 本開示の一側面の情報処理方法、およびプログラムは、情報処理装置に対応するものである。
 本開示の一側面においては、ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造が最適化される。
シングルタスク処理構造の並列処理により実現されるマルチタスク処理構造を説明する図である。 類似する処理を実行する処理モジュール間でパラメータを共有する例を説明する図である。 類似する処理を実行する処理モジュールとブロック間でパラメータを共有する例を説明する図である。 類似する処理を実行する処理モジュールをシングルタスク処理構造間で共有する例を説明する図である。 本開示の情報処理システムの構成例を説明する図である。 図5の情報処理システムによるマルチタスク実行処理を説明するフローチャートである。 図5のマルチタスク処理構造生成部の構成例を説明する図である。 図7の構造探索部の構成例を説明する図である。 原型構造探索処理を説明するフローチャートである。 図9の入出力類似度比較構造探索処理を説明するフローチャートである。 複数の処理モジュールによる並列処理の例を説明する図である。 図9のパラメータ類似度比較構造探索処理を説明するフローチャートである。 応用例1の原型構造探索処理を説明するフローチャートである。 応用例2のマルチタスク実行処理を説明するフローチャートである。 応用例3のマルチタスク実行処理を説明するフローチャートである。 汎用のパーソナルコンピュータの構成例を説明する図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
 1.本開示の概要
 2.本開示の実施の形態
 3.応用例1
 4.応用例2
 5.応用例3
 6.ソフトウェアにより実行させる例
 <<1.本開示の概要>>
 本開示は、マルチタスク処理構造を容易に構築できるようにするものである。
 まず、本開示の概要について説明する。
 図1で示されるように、人感センサ、マイクロフォン、照度センサ、および測距センサ等からなるセンサJ1、SLAM(Simultaneous Localization and Mapping)カメラからなるセンサJ2、およびRGB(Red Green Blue)カメラまたはToF(Time of Flight)センサ等からなるセンサJ3の3種類のセンサJ1乃至J3を備えたロボット等からなる移動体Rをターゲットデバイスとする場合について説明する。
 また、図1で示されるように、物体認識、地図構築、並びに、Path Planning及び動き制御という3種類の、既存のシングルタスクT1乃至T3が同時に実行されるマルチタスク処理構造をニューラルネットワーク(Neural Network)により構築し、移動体Rからなるターゲットデバイスに供給して、移動体Rによりマルチタスク処理を実現させる場合について考える。
 尚、以降においては、ニューラルネットワーク(Neural Network)は、単に、NNとも称する。
 図1においては、物体処理を実現するためのシングルタスクT1の処理構造は、例えば、NNにおけるレイヤ(Layer)に相当する処理モジュールM1乃至M3より構成される。
 ここでは、処理モジュールM1が、センサJ3のセンシング結果に基づいて、所定の処理を実行し、実行結果を処理モジュールM2に出力する。
 処理モジュールM2は、処理モジュールM1の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM3に出力する。
 処理モジュールM3は、処理モジュールM2の処理結果に基づいて、所定の処理を実行し、処理結果を物体認識結果として出力する。
 このように物体認識に係るシングルタスクT1の処理構造は、処理モジュールM1乃至M3により構成され、シングルタスクT1によりセンサJ3のセンシング結果に基づいた、物体認識が実現される。
 また、地図構築を実現するためのシングルタスクT2の処理構造は、例えば、NNにおけるLayerに相当する処理モジュールM11乃至M14より構成される。
 ここでは、処理モジュールM11が、センサJ2,J3のセンシング結果に基づいて、所定の処理を実行し、実行結果を処理モジュールM12,M13に出力する。
 処理モジュールM12は、処理モジュールM11の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM13に出力する。
 処理モジュールM13は、処理モジュールM11,M12の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM14に出力する。
 処理モジュールM14は、処理モジュールM13の処理結果に基づいて、所定の処理を実行し、処理結果を地図構築結果として出力する。
 このように地図構築に係るシングルタスクT2の処理構造は、処理モジュールM11乃至M14により構成され、センサJ2,J3のセンシング結果に基づいた、シングルタスクT2により、地図構築が実現される。
 同様に、Path Planning(移動経路計画)及び動き制御を実現するためのシングルタスクT3の処理構造は、例えば、NNにおけるLayerに相当する処理モジュールM21乃至M26より構成される。
 ここでは、処理モジュールM21が、センサJ1,J3のセンシング結果に基づいて、所定の処理を実行し、実行結果を処理モジュールM22,M25に出力する。
 処理モジュールM22は、処理モジュールM21の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM23に出力する。
 処理モジュールM23は、処理モジュールM22の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM24に出力する。
 処理モジュールM25は、処理モジュールM21の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM26に出力する。
 処理モジュールM26は、処理モジュールM25の処理結果に基づいて、所定の処理を実行し、処理結果を処理モジュールM24に出力する。
 処理モジュールM24は、処理モジュールM23,M26の処理結果に基づいて、所定の処理を実行し、処理結果をPath Planning及び動き制御結果として出力する。
 このようにPath Planning及び動き制御に係るシングルタスクT3の処理構造は、処理モジュールM21乃至M26により構成され、センサJ1,J3のセンシング結果に基づいた、シングルタスクT3により、Path Planning及び動き制御がなされる。
 図1における既存のハードウェアにより使用されているシングルタスクT1乃至T3が並列処理されることにより、マルチタスク処理が実現されることになる。
 しかしながら、シングルタスクT1乃至T3は、それぞれ既存の異なるハードウェアにより使用されているものであるので、含まれている処理モジュール間の最適化がなされていない。
 このため、例えば、処理モジュールM1乃至M3、M11乃至M14、およびM21乃至M26のうち、類似した処理を実行する処理モジュールや、類似した処理を実行する複数の処理モジュールからなるブロック(Block)が存在しているような場合、メモリコピーの不要なオーバヘッドが発生したり、重複した処理が繰り返されることにより処理時間が増大する恐れがある。
 そこで、本開示においては、既存のシングルタスク処理構造を用いて、マルチタスク処理構造の原型構造を構築した上で、原型構造を探索して、処理モジュールや処理モジュールのブロックの構造を解析し、重複した処理がなされる処理モジュールやブロックにおいて、処理モジュールやブロックを共有する、NNで使用されるHyper Parameterに相当するパラメータを共有する、処理モジュールやブロックを結合または切断する等により、最適化して、容易に高効率のマルチタスク処理構造を構築できるようにする。
 すなわち、より具体的には、例えば、図1におけるシングルタスクT1における処理モジュールM2とシングルタスクT2における処理モジュールM12とが類似した処理、または、同一の処理を実行する処理モジュールであるような場合、図2で示されるように、処理モジュールM12を処理モジュールM2として扱い、使用するパラメータHP1を処理モジュールM2,M12(M2)とで共有する。
 また、図1におけるシングルタスクT1における処理モジュールM3とシングルタスクT2における処理モジュールM14とが類似した処理、または、同一の処理を実行する処理モジュールであるような場合、図2で示されるように、処理モジュールM14を処理モジュールM3として扱い、使用するパラメータHP2を処理モジュールM3,M14(M3)とで共有する。
 このように類似する他の処理モジュール間でパラメータを共有することにより、メモリコピーの不要なオーバヘッドを削減し、メモリそのものの消費を低減させることが可能となり、メモリの利用頻度が低減されることにより、処理時間を低減させることが可能となる。
 また、例えば、図1におけるシングルタスクT1における処理モジュールM2とシングルタスクT2における処理モジュールM11乃至M13からなるブロックとが類似する処理、または、同一の処理を実行する処理モジュールとブロックであるような場合、図3で示されるように、処理モジュールM11乃至M13を結合させることにより、処理モジュールM2’として扱い、さらに、使用するパラメータHP11を共有する。
 また、図1におけるシングルタスクT1における処理モジュールM3とシングルタスクT2における処理モジュールM14とが類似する処理、または、同一の処理を実行する処理モジュールであるような場合、図3で示されるように、処理モジュールM14を処理モジュールM3として扱い、使用するパラメータHP12を処理モジュールM3,M14(M3)とで共有する。
 このように複数の処理モジュールからなるブロックと、類似する処理、または、同一の処理を実現する処理モジュールが存在する場合については、ブロックを構成する複数の処理モジュールを結合させて1つの処理モジュールとして扱い、さらに、類似する処理を実現する処理モジュール間でパラメータを共有する。
 これにより、メモリコピーの不要なオーバヘッドを削減し、メモリそのものの消費を低減させることが可能となり、さらに、メモリの利用頻度が低減されることにより、処理時間を低減させることが可能となる。
 さらに、例えば、図1におけるシングルタスクT1における処理モジュールM2とシングルタスクT2における処理モジュールM12とが同一の処理を実行する処理モジュールであるような場合、図4で示されるように、処理モジュールM12を処理モジュールM2と共有し、処理モジュールM13においては、処理モジュールM2の出力結果をそのまま使用する(Input)。
 また、図1におけるシングルタスクT2における処理モジュールM13とシングルタスクT3における処理モジュールM22とが同一の処理を実行する処理モジュールであるような場合、図4で示されるように、処理モジュールM13を処理モジュールM22と共有し、処理モジュールM23においては、処理モジュールM13の出力結果をそのまま使用する(Input)。
 このように同一の処理を実現する処理モジュールが存在する場合については、同一の処理が実現される処理モジュールを共有して使用し、以降の処理において、共有する処理モジュールの処理結果をそのまま使用する。
 これにより、メモリコピーの不要なオーバヘッドを削減し、メモリそのものの消費を低減させることが可能となり、さらに、処理モジュールが共有化されることにより、処理時間を低減させることが可能となる。
 以上のように、本開示においては、マルチタスク処理構造を構築するにあたって、既存のシングルタスク処理構造を並列処理する原型構造を形成し、シングルタスク処理構造を構成する処理モジュール間で同一、または、類似する処理モジュールを原型構造内において探索して、探索された同一、または類似する処理モジュールでパラメータを共有する、処理モジュールを共有する、処理モジュールを結合または切断する。
 すなわち、本開示においては、複数のシングルタスク処理構造が並列処理されるだけの構造である原型構造を生成し、原型構造の探索結果に基づいて、原型構造を構成する複数のシングルタスク処理構造における処理モジュールが最適化されることにより、容易にマルチタスク処理構造を構築することが可能となる。
 <<2.本開示の実施の形態>>
 次に、図5を参照して、本開示の情報処理システムの構成例を説明する。
 図5の情報処理システムは、PC(パーソナルコンピュータ)からなるマルチタスク処理構造生成部11、およびターゲットデバイス12より構成される。
 マルチタスク処理構造生成部11は、各種のセンサを備えたロボットや移動体などのターゲットデバイス12に実行させようとするマルチタスク処理を実現するためのニューラルネットワーク(NN)からなるマルチタスク処理構造を構築し、ターゲットデバイス12に供給し、マルチタスク処理を実現させる。
 より詳細には、マルチタスク処理構造生成部11は、ターゲットデバイス12により実現しようとするマルチタスク処理に含まれる個別のシングルタスク処理構造を取得し、単純に並列処理させるマルチタスク処理構造の原型構造を構築する。そして、マルチタスク処理構造生成部11は、原型構造を構成するシングルタスク処理間で、同一、または、類似の処理モジュールを探索する。
 ここで、処理モジュールとは、NNにおける入力レイヤ、隠れレイヤ、および出力レイヤ等の各レイヤに対応する構成であり、実行されるプログラムが記述されたモジュールである。
 そして、マルチタスク処理構造生成部11は、原型構造を構成するシングルタスク処理構造間で同一、または、類似の処理モジュールやブロックを、図2乃至図4を参照して説明したように、複数のシングルタスク処理構造間で、パラメータや処理モジュールを共有したり、処理モジュールを結合、または切断することにより最適化し、マルチタスク処理構造として再構築する。
 この際、必要に応じて、マルチタスク処理構造生成部11は、再構築したマルチタスク処理構造に対して、学習用データを用いた再学習を行い、マルチタスク処理構造を構成する処理モジュールで使用されるパラメータを更新させる。
 ターゲットデバイス12は、例えば、人感センサ、マイクロフォン、照度センサ、測距センサ、SLAMカメラ、RGBカメラ、およびToFセンサ等の各種のセンサやカメラを備えたロボットや移動体等のデバイスである。
 ターゲットデバイス12は、マルチタスク処理構造生成部11より供給されるマルチタスク処理を具現化するための、マルチタスク処理構造としてのNNを取得して、各種のセンサやカメラの検出結果に基づいて、マルチタスク処理を実現する。
 <マルチタスク実行処理>
 次に、図6のフローチャートを参照して、図5の情報処理システムにおけるターゲットデバイス12に対してマルチタスク処理を実現させるマルチタスク実行処理について説明する。
 ステップS11において、ユーザが、ターゲットデバイス12に備えられている各種のセンサやカメラと対応する同等の性能を備えたセンサやカメラに対して、One-Shot、または、Few-Shotの学習用データを要求する。
 ステップS21において、ターゲットデバイス12に備えられている各種のセンサやカメラと対応する同等の性能を備えたセンサやカメラは、One-Shot、または、Few-Shotの学習用データをユーザに返す。
 ここでは、One-Shot、または、Few-Shotの学習用データとは、機械学習等で必要とされる1回、または、数回分の学習用データである。
 尚、学習用データは、One-Shot、または、Few-Shotよりも多くの回数の学習用データであってもよいが、One-Shot、または、Few-Shotとすることにより、学習に係る処理負荷と処理時間を低減させつつ、高精度ではないが実用に耐えうる程度のマルチタスク処理を実現できる程度のパラメータ(係数)を求めることが可能となる。
 ステップS12において、ユーザは、ターゲットデバイス12に備えられている各種のセンサやカメラと対応する同等の性能を備えたセンサやカメラより供給されるOne-Shot、または、Few-Shotの学習用データを取得する。
 尚、One-Shot、または、Few-Shotの学習用データについては、ターゲットデバイス12に対して直接要求するようにしてもよい。
 この場合、ステップS40において、ターゲットデバイス12が、自らに設けられたセンサやカメラ等に関するOne-Shot、または、Few-Shotの学習用データをユーザに返す。
 尚、ここでは、ステップS21の処理によりターゲットデバイス12とは別途設けられた、ターゲットデバイス12と同等のセンサやカメラより、One-Shot、または、Few-Shotの学習用データが供給されるものとして説明を進める。
 ステップS13において、ユーザは、取得したOne-Shot、または、Few-Shotの学習用データをPCからなるマルチタスク処理構造生成部11に供給する。
 ステップS31において、マルチタスク処理構造生成部11は、One-Shot、または、Few-Shotの学習用データを取得する。
 ステップS32において、マルチタスク処理構造生成部11は、ターゲットデバイス12に対して実行させようとするマルチタスク処理を実現するためのマルチタスク処理構造として、既存のシングルタスク処理構造を単純に並列処理させるだけのマルチタスク処理構造の原型構造を構築する。
 ただし、ステップS32の処理で構築されるマルチタスク処理構造の原型構造は、図1を参照して説明したように、処理モジュールの重複等が含まれる構造であり、処理負荷が大きく、処理時間が大きい可能性のあるものであり、最適化されたマルチタスク処理構造ではない。
 ステップS33において、マルチタスク処理構造生成部11は、図9のフローチャートを参照して、後述する原型構造探索処理を実行し、類似する処理モジュールを探索して、パラメータの共有、処理モジュールの共有、処理モジュールの結合または切断等の処理により、原型構造からなるマルチタスク処理構造を最適化して、処理の高効率化を図り、マルチタスク処理構造を構築する。
 ステップS34において、マルチタスク処理構造生成部11は、完成したマルチタスク処理構造をターゲットデバイス12に供給する。
 ステップS41において、ターゲットデバイス12は、マルチタスク処理構造生成部11より供給されたマルチタスク処理構造を取得して、マルチタスク処理を実行する。
 以上の処理により、最適化された状態のマルチタスク処理構造が構築されることになるので、ターゲットデバイス12により最適なマルチタスク処理が実現される。
 結果として、メモリのオーバヘッドを削減し、処理負荷を低減することが可能になると共に、処理モジュールやブロックのパラメータが共有され、処理モジュールやブロックそのものが共有されることにより、マルチタスク処理構造が最適化されることで、処理負荷を低減し、処理速度を高速化することが可能となる。
 <マルチタスク処理構造生成部の構成例>
 次に、図7のブロック図を参照して、PCからなるマルチタスク処理構造生成部11の構成例について説明する。
 より具体的には、マルチタスク処理構造生成部11は、制御部31、入力部32、出力部33、記憶部34、通信部35、ドライブ36、およびリムーバブル記憶媒体37より構成され、それらが、相互にバス38を介して電気的に接続された構成とされている。
 制御部31は、プロセッサやメモリより構成されており、マルチタスク処理構造生成部11の動作の全体を制御する。
 また、制御部31は、構造探索部51を備えており、後述する原型構造探索処理を実行し、既存のシングルタスク処理構造を用いて、ターゲットデバイス12にマルチタスク処理を実行させるためのマルチタスク処理構造を構築する。
 尚、構造探索部51の詳細については、図8を参照して、後述する。
 入力部32は、キーボードや操作ボタンなどから構成れ、ユーザの操作入力を受け付けて、制御部31に出力する。
 出力部33は、画像を表示する例えば、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)などからなるディスプレイなどである表示部、音声を出力するスピーカなどからなる音声出力部を備えており、必要に応じて、画像や音声を出力する。
 記憶部34は、制御部31により制御され、HDD(Hard Disk Drive)、SSD(Solid State Drive)、または、半導体メモリなどからなり、各種のデータおよびプログラムを書き込む、または、読み出す。
 また、記憶部34は、図6を参照して説明したように、ターゲットデバイス12に設けられたセンサやカメラ、または、ターゲットデバイス12に設けられたセンサまたはカメラに相当する同等の性能を備えたセンサやカメラによるOne-shotまたはfew-shotの学習用データや既存のハードウェアに使用されているシングルタスク処理構造(に対応するNN)を記憶している。
 通信部35は、制御部31により制御され、有線(または無線(図示せず))により、LAN(Local Area Network)などに代表される通信ネットワークを介して、ターゲットデバイス12と通信し、生成したマルチタスク処理構造(に対応するNN)を送受信する。
 ドライブ36は、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブル記憶媒体37に対してデータを読み書きする。
 <構造探索部の構成例>
 次に、図8を参照して、構造探索部51の構成例について説明する。
 構造探索部51は、シングルタスク処理構造取得部71、類似度比較部72、結合切断部73、シミュレーション部74、精度確認部75、スコア算出部76、スコア判定部77、学習判定部78、学習部79、マルチタスク処理構造記憶部80、およびマルチタスク処理構造出力部81より構成される。
 シングルタスク処理構造取得部71は、ターゲットデバイス12に実行させるマルチタスク処理に応じて、必要な既存のシングルタスク処理構造(に対応するNN)を、例えば、記憶部34より読み出して、マルチタスク処理構造の原型構造を構築する。
 すなわち、例えば、図1を参照して説明したように、物体認識、地図構築、およびPath Planning及び動き制御の3種類のタスクからなるマルチタスク処理構造(からなるNN)を構築する場合、図1の既存のシングルタスクT1乃至T3を読み出して、図1で示されるようなマルチタスク処理構造の原型構造を構築する。
 この場合、マルチタスク処理構造の原型構造を構成する複数のシングルタスク処理構造のそれぞれには同一、または類似した処理を実行する処理モジュールやブロックが含まれていることがあり、重複した処理が繰り返されたり、同一のパラメータが繰り返し読み出されるといった処理の無駄が含まれていることがあり、完成された(最適化された)マルチタスク処理構造とされていない。
 類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール、または、複数の処理モジュールからなるブロックの類似度を比較して、類似度が所定の閾値よりも高いか否かを判定し、類似度が所定の閾値よりも高く類似している場合、マルチタスク処理の最適化を図るため、結合切断部73に出力する。
 ここで、類似度とは、処理モジュール、またはブロック単位で入出力されるデータの類似度である入出力類似度と、処理モジュール、またはブロック単位で使用されるNNにおけるHyper Parameterに相当するパラメータの類似度であるパラメータ類似度との2種類がある。
 類似度比較部72は、処理モジュール、またはブロックについて、入出力類似度、およびパラメータ類似度のそれぞれについて類似しているか否かを判定する。
 尚、類似度比較部72は、類似度が所定の閾値よりも低く類似していない場合、マルチタスク処理の最適化を図ることができないので、完成された処理モジュールとしてマルチタスク処理構造記憶部80に格納させる。
 結合切断部73は、入出力類似度、またはパラメータ類似度が高いシングルタスクNN間の処理モジュール、またはブロックにおけるパラメータを共有する、または、処理モジュール、もしくはブロックそのものを共有するように設定すると共に、必要に応じて、処理モジュール、またはブロックを結合または切断して、原型構造としてのマルチタスク処理構造を最適化して、完成された新たなマルチタスク処理構造を構築する。
 そして、結合切断部73は、最適化し、新たに構築したマルチタスク処理構造をシミュレーション部74に出力する。
 すなわち、図2を参照して説明したように、処理モジュールM2と処理モジュールM12とが類似している場合には、結合切断部73は、処理モジュールM2と処理モジュールM12とのパラメータを共有するように設定する。
 また、図3を参照して説明したように、処理モジュールM2と処理モジュールM11乃至M13からなるブロックとの入出力類似度やパラメータ類似度が類似しているときには、結合切断部73は、処理モジュールM11乃至M13を結合して処理モジュールM2’を構築し、処理モジュールM2とのパラメータを共有するように設定する。
 さらに、図4を参照して説明したように、処理モジュールM2,M12が入出力類似度やパラメータ類似度が類似している場合、結合切断部73は、処理モジュールM12の後段の処理モジュールM13に対して、処理モジュールM2の出力結果を入力するように処理モジュールを共有して、接続構成を組み替える。
 シミュレーション部74は、新たに構築した最適化されたマルチタスク処理構造(からなるNN)によりターゲットデバイス12を動作させたときのシミュレーションを実行して、シミュレーション処理結果を精度確認部75に出力する。
 精度確認部75は、新たに構築したマルチタスク処理構造によるシミュレーション処理結果から、新たに構築した最適化されたマルチタスク処理構造の処理精度を確認し、確認した処理精度の情報をスコア算出部76に出力する。
 スコア算出部76は、シミュレーション処理結果の処理精度に基づいて、新たに構築した最適化されたマルチタスク処理構造の処理精度に係るスコアを算出し、スコア判定部77に出力する。
 スコア判定部77は、新たに構築した最適化されたマルチタスク処理構造(からなるNN)の処理精度に係るスコアと所定の閾値との比較により、新たに構築したマルチタスク処理構造が使用可能であるか否かを判定し、使用可能なマルチタスク処理構造をスコアと共に学習判定部78に出力する。
 学習判定部78は、使用可能なマルチタスク処理構造とみなされた、新たに構築された最適化されたマルチタスク処理構造の再学習が必要であるか否かを判定する。
 例えば、処理精度に係るスコアは、使用可能な所定の閾値よりも高いが、十分な処理精度ではない場合、処理精度を向上させるため、再学習が必要であるものとみなし、判定結果を学習部79に出力する。
 また、例えば、処理精度に係るスコアが、十分な処理精度である場合、処理精度を向上させるための再学習は必要ではないので、判定結果を学習部79に出力すると共に、新たに構築された使用可能なマルチタスク処理構造とスコアを対応付けてマルチタスク処理構造記憶部80に出力する。
 学習部79は、学習用データに基づいて、新たに構築された最適化されているマルチタスク処理構造を学習させて、各種の処理モジュールにより使用されるパラメータを更新して、マルチタスク処理構造記憶部80に記憶させる。
 マルチタスク処理構造記憶部80には、上述したように、入出力類似度やパラメータ類似度が所定の閾値よりも高い類似した処理モジュールやブロックが、必要に応じて共有されたり、パラメータが共有されたり、結合や切断により再構成されることにより、新たに構築された最適化されたマルチタスク処理構造がスコアと共に記憶される。
 換言すれば、マルチタスク処理構造記憶部80は、共有される処理モジュールやブロック、共有されるパラメータ、結合や切断により再構成される処理モジュールの接続パターン等が、様々に異なる、新たに構築された最適化されたマルチタスク処理構造がスコアと共に記憶される。
 マルチタスク処理構造出力部81は、マルチタスク処理構造記憶部80に記憶されている、様々に異なる、新たに構築されたマルチタスク処理構造のうち、最もスコアの高い、最適化された、新たに構築されたマルチタスク処理構造をターゲットデバイス12に出力し、マルチタスク処理を実行させる。
 <原型構造探索処理>
 次に、図9のフローチャートを参照して、原型構造探索処理について説明する。
 ステップS111において、構造探索部51は、入出力類似度比較構造探索処理を実行し、マルチタスク処理の原型構造を構成する、シングルタスク処理構造間における、入出力類似度の高い処理モジュールやブロックを探索し、探索結果に基づいて、最適化して新たなマルチタスク処理構造を構築する。そして、構造探索部51は、構築したマルチタスク処理構造と、処理精度の評価となるスコアと共に記憶する。
 尚、入出力類似度比較構造探索処理については、図10のフローチャートを参照して詳細を後述する。
 ステップS112において、構造探索部51は、パラメータ類似度比較構造探索処理を実行し、マルチタスク処理の原型構造を構成する、シングルタスク処理構造間における、パラメータ類似度の高い処理モジュールやブロックを探索し、探索結果に基づいて、最適化して新たなマルチタスク処理構造を構築する。そして、構造探索部51は、構築したマルチタスク処理構造と、処理精度の評価となるスコアと共に記憶する。
 尚、パラメータ類似度比較構造探索処理については、図12のフローチャートを参照して詳細を後述する。
 以上の処理により、入出力類似度、およびパラメータ類似度に基づいて、マルチタスク処理構造が新たに構築されて、スコアと共に記憶される。
 このように構成されたマルチタスク処理構造のうち、スコアの最も高いものが選択されて、ターゲットデバイスによりマルチタスク処理が実行される。
 尚、以上においては、入出力類似度比較構造探索処理がなされた後に、パラメータ類似度比較構造探索処理がなされる例について説明したが、処理の前後は入れ替わってもよい。また、以上においては、入出力類似度比較構造探索処理、およびパラメータ類似度比較構造探索処理の両方の処理が実行される例について説明してきたが、いずれか一方の構造探索処理のみにするようにしてもよい。
 <入出力類似度比較構造探索処理>
 次に、図10のフローチャートを参照して、入出力類似度比較構造探索処理について説明する。
 ステップS131において、シングルタスク処理構造取得部71は、ターゲットデバイス12に実行させるマルチタスク処理に応じて、必要な既存のシングルタスク処理構造を、例えば、記憶部34より読み出して、マルチタスク処理構造の原型構造を構築する。
 ステップS132において、類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのうち、未処理の組み合わせを処理対象組み合わせに設定する。
 ステップS133において、類似度比較部72は、処理対象組み合わせとなる処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせの入出力類似度を算出する。
 ステップS134において、類似度比較部72は、入出力類似度が所定の閾値よりも高いか否かを判定する。
 ステップS134において、入出力類似度が所定の閾値よりも高く類似している場合、類似度比較部72は、マルチタスク処理の最適化を図るため、結合切断部73に出力する。
 ステップS135において、結合切断部73は、入出力類似度が高いシングルタスク処理構造間の処理モジュール、またはブロックを共有するように、必要に応じて、処理モジュール、またはブロックを結合または切断して、新たなマルチタスク処理構造を構築する。
 そして、結合切断部73は、新たに構築したマルチタスク処理構造をシミュレーション部74に出力する。
 すなわち、図2乃至図4を参照して説明したように、結合切断部73は、入出力類似度の高い処理モジュールやブロックを共有するために、必要に応じて、処理モジュールやブロックを結合または切断する。
 また、例えば、図11で示されるように、時系列に処理されるデータを並列処理により効率よく処理できるように処理モジュールを結合または切断するようにしてもよい。
 すなわち、図11においては、データD1乃至D4(図中では異なる模様で分けて表示されている)に対して、処理a乃至処理dからなる4つの処理モジュールにより並列処理が実現される処理構造が示されている。
 このような処理構造により、4つの処理モジュールによる4つのクロックサイクルによる並列処理が実現可能とされる。
 すなわち、クロックサイクル(Clock Cycle)0において、データD1乃至D4が処理待ち(Waiting instructions)とされる。
 そして、以降、1クロックサイクルごとにデータD1乃至D4が順次処理a乃至処理dにより並列処理(Pipeline)される。
 すなわち、次のタイミングであるクロックサイクル1においては、データD2乃至D4が処理待ち(Waiting instructions)とされ、データD1に処理aがなされる。
 クロックサイクル2において、データD3,D4が処理待ち(Waiting instructions)とされ、データD1に処理bがなされ、データD2に処理aがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル3において、データD4が処理待ち(Waiting instructions)とされ、データD1に処理cがなされ、データD2に処理bがなされ、データD3に処理aがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル4において、データD1に処理dがなされ、データD2に処理cがなされ、データD3に処理bがなされ、データD4に処理aがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル5において、データD1が処理完了(Completed instructions)とされ、データD2に処理dがなされ、データD3に処理cがなされ、データD4に処理bがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル6において、データD1,D2が処理完了(Completed instructions)とされ、データD3に処理dがなされ、データD4に処理cがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル7において、データD1乃至D3が処理完了(Completed instructions)とされ、データD4に処理dがなされて、並列処理(Pipeline)がなされる。
 クロックサイクル8において、データD1乃至D4が処理完了(Completed instructions)とされる。
 ここで、例えば、処理aが読み出し処理であり、処理bがデコード処理であり、処理cが実行処理であり、処理dが書き戻し処理であるような場合、ターゲットデバイス12のハードウェア構成やメモリ帯域に基づいて、データD1乃至D4をクロックサイクル0乃至8で並列処理することが可能となる。
 また、ハードウェアの処理能力により処理モジュールを結合または切断するようにしてもよい。すなわち、ハードウェアの性能や処理能力により処理aが、処理b乃至dの処理時間の2倍掛かるような場合、処理aの処理モジュールを、処理b乃至dの処理時間と均等になるように2分割するように切断して、全ての処理モジュールの処理時間を揃えるようにしてもよい。
 ステップS136において、シミュレーション部74は、新たに構築したマルチタスク処理構造によりターゲットデバイス12の演算能力とメモリ帯域において動作した場合のシミュレーションを実行して、シミュレーション処理結果を精度確認部75に出力する。
 ステップS137において、精度確認部75は、新たに構築したマルチタスク処理構造によるシミュレーション処理結果から、新たに構築したマルチタスク処理構造の処理精度を算出し、算出した処理精度の情報をスコア算出部76に出力する。
 ステップS138において、スコア算出部76は、シミュレーション処理結果の処理精度に基づいて、新たに構築したマルチタスク処理構造の処理精度に係るスコアを算出し、スコア判定部77に出力する。
 ステップS139において、スコア判定部77は、新たに構築したマルチタスク処理構造の処理精度に係るスコアと所定の閾値との比較により、新たに構築したマルチタスク処理構造が最適化されているか否かを判定する。
 ステップS139において、処理精度に係るスコアが所定の閾値よりも高く、新たに構築したマルチタスク処理構造が、最適化されているとみなされた場合、スコア判定部77は、マルチタスク処理構造をスコアと共に学習判定部78に出力する。
 ステップS140において、学習判定部78は、最適化されているマルチタスク処理構造であるとみなされた、新たに構築されたマルチタスク処理構造の再学習が必要であるか否かを判定する。
 ステップS140において、例えば、新たに構築されたマルチタスク処理構造の処理精度に係るスコアが、スコアが所定の閾値よりも高く最適化されているとみなせるが、十分な処理精度ではない場合、学習判定部78は、処理精度を向上させるため、再学習が必要であるものとみなし、新たに構築されたマルチタスク処理構造を学習部79に出力する。
 ステップS141において、学習部79は、学習用データに基づいて、新たに構築されたマルチタスク処理構造を再学習させる。
 ステップS142において、学習部79は、再学習に伴って、各種の処理モジュールにより使用されるパラメータを再構成して更新する。
 そして、ステップS143において、学習部79は、再構成されたマルチタスク処理構造を、スコアと対応付けてマルチタスク処理構造記憶部80に記憶させる。
 ステップS144において、類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのうち、未処理の組み合わせがあるか否かを判定し、未処理の組み合わせがある場合、処理は、ステップS132に戻る。
 すなわち、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の全ての組み合わせについて入出力類似度に基づいた最適化処理がなされるまで、ステップS132乃至S144の処理が繰り返される。
 そして、ステップS144において、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の全ての組み合わせについて最適化処理がなされたとみなされた場合、処理は、終了する。
 また、ステップS134において、入出力類似度が所定の閾値よりも低く類似していないとみなされた場合、または、ステップS139において、処理精度に係るスコアが所定の閾値よりも低く、新たに構築したマルチタスク処理構造が、最適化されていないとみなされた場合、処理は、ステップS144に進む。すなわち、この場合、実質的に最適化処理がなされない。
 さらに、ステップS140において、再学習が必要ではない場合、学習判定部78は、再構成されたマルチタスク処理構造を、スコアと対応付けてマルチタスク処理構造記憶部80に記憶させる。
 以上の処理によりマルチタスク処理構造記憶部80には、上述したように、入出力類似度が所定の閾値よりも高い類似した処理モジュールやブロックが、必要に応じて共有されたり、パラメータが共有したり、結合や切断により再構成されることにより、新たに構築された最適化されたマルチタスク処理構造としてスコアと共に記憶される。
 換言すれば、マルチタスク処理構造記憶部80には、類似、または同一の処理を行う処理モジュールやブロックが共有されたり、パラメータが共有されたり、結合や切断により再構成された処理モジュールやブロックからなる、新たに構築された最適化されたマルチタスク処理構造がスコアと共に記憶される。
 すなわち、マルチタスク処理構造を新たに構築する際、既存のシングルタスク処理に基づいて、マルチタスク処理構造の原型構造が生成され、さらに、シングルタスク処理構造間における処理モジュールやブロックの入出力類似度から類似する処理モジュールやブロックを探索して、パラメータを共有したり、処理モジュールやブロックそのものを共有したり、最適化を図るために処理モジュールやブロックを結合、または切断し、新たなマルチタスク処理構造が構築され、スコアと共に記憶される。
 <パラメータ類似度比較構造探索処理>
 次に、図12のフローチャートを参照して、パラメータ類似度比較構造探索処理について説明する。尚、図12のフローチャートにおけるステップS161,S162,S166乃至S174の処理は、図11のフローチャートにおけるステップS131,S132,S136乃至S144の処理と同様であるので、その説明は省略する。
 すなわち、ステップS161,S162の処理により、ターゲットデバイス12に実行させるマルチタスク処理に応じて、必要な既存のシングルタスク処理構造を、例えば、記憶部34より読み出して、マルチタスク処理構造の原型構造が構築される。そして、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造の処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせより、未処理の組み合わせが処理対象組み合わせに設定される。
 そして、ステップS163において、類似度比較部72は、処理対象組み合わせとなる処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのパラメータ類似度を算出する。
 ステップS164において、類似度比較部72は、パラメータ類似度が所定の閾値よりも高いか否かを判定する。
 ステップS164において、パラメータ類似度が所定の閾値よりも高く類似している場合、類似度比較部72は、マルチタスク処理の最適化を図るため、結合切断部73に出力する。
 ステップS165において、結合切断部73は、パラメータ類似度が高いシングルタスク処理構造間の処理モジュール、またはブロックにおいて、パラメータを共有するように、必要に応じて、処理モジュール、またはブロックを結合または切断して、新たなマルチタスク処理構造を構築する。
 そして、結合切断部73は、新たに構築したマルチタスク処理構造をシミュレーション部74に出力する。
 そして、ステップS166乃至S174の処理により、マルチタスク処理構造記憶部80には、上述したように、パラメータ類似度が所定の閾値よりも高い類似した処理モジュールやブロックにおいてパラメータが共有されるように、結合や切断により再構成されることにより最適化されて、新たにマルチタスク処理構造が構築されて、スコアと共に記憶される。
 換言すれば、マルチタスク処理構造記憶部80には、処理モジュールやブロックにおいてパラメータが共有されるように、処理モジュールやブロックが結合や切断されることにより再構成されて最適化され、新たに構築されたマルチタスク処理構造がスコアと共に記憶される。
 マルチタスク処理構造出力部81は、マルチタスク処理構造記憶部80に記憶されている、処理モジュールやブロックが共有されるように、または、パラメータが共有されるように、処理モジュールやブロックが結合や切断により再構成されて最適化され、新たに構築されたマルチタスク処理構造のうち、所定のスコアより高い新たに構築されたマルチタスク処理構造をターゲットデバイス12に出力し、マルチタスク処理を実行させる。
 すなわち、マルチタスク処理構造を新たに構築する際、既存のシングルタスク処理に基づいて、マルチタスク処理構造の原型構造が生成され、さらに、シングルタスク処理構造間における処理モジュールやブロックの入出力類似度とパラメータ類似度から類似する処理モジュールやブロックが探索されて、パラメータを共有する、処理モジュールやブロックそのものを共有する、並びに、最適化を図るために処理モジュールやブロックを結合または切断することで、新たな最適化されたマルチタスク処理構造が構築されて、スコアと共に記憶される。
 そして、図6を参照して説明したステップS34の処理により、マルチタスク処理構造出力部81が、最適化されたマルチタスク処理構造のうち所定のスコアよりたかいものからなるNNを、ターゲットデバイス12に出力する。これにより、ターゲットデバイス12は、最適化されたマルチタスク処理構造からなるNNにより最適化されたマルチタスク処理を実現することが可能となる。
 尚、以上においては、最適化されたマルチタスク処理構造がスコアと共に記憶されて、出力される際、所定のスコアより高いマルチタスク処理構造がターゲットデバイス12に出力される例について説明してきたが、スコアの高いマルチタスク処理構造のみを記憶させて、記憶されたマルチタスク処理構造がターゲットデバイス12に出力されるようにしてもよい。
 以上のような処理により、例えば、新たに開発された、高性能化されたターゲットデバイス12によりマルチタスク処理を実現させるような場合、既存のデバイスで使用していたシングルタスク処理構造を用いて、高性能化されたターゲットデバイス12の性能や機能に合わせて、処理モジュールやブロックを共有、結合、切断する、パラメータを共有する、または、学習用データを用いた再学習によりパラメータを再設定することが可能となり、マルチタスク処理構造としてのNNを容易に開発することが可能となる。
 また、以上においては、目的のマルチタスク処理に応じて、まず、既存のシングルタスク処理構造を組み合わせてマルチタスク処理構造の原型構造を構成し、シングルタスク処理構造を構成する処理モジュールやブロックの入出力類似度やパラメータ類似度に基づいて、類似する処理モジュールやブロックを共有、結合、切断する、類似する処理モジュールやブロックでパラメータを共有する、または、学習用データを用いた再学習によりパラメータを再設定する例について説明してきた。
 しかしながら、新たなターゲットデバイス12に対して、既存のマルチタスク処理構造を再利用するような場合については、既存のマルチタスク処理構造をマルチタスク処理構造の原型構造として扱うようにし、新たなターゲットデバイス12の性能や機能に応じて、上述と同様に最適化することで、新たなターゲットデバイス12に対して既存のマルチタスク処理構造を最適化して再利用することが可能となり、開発コストを低減することが可能となる。
 <<3.応用例1>>
 <探索効率を向上させた原型構造探索処理>
 以上においては、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造の全ての処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせを処理対象組み合わせに設定し、入出力類似度、または、パラメータ類似度が所定の閾値よりも高い組み合わせを探索する例について説明してきた。
 しかしながら、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造の中には、他のシングルタスク処理構造との類似性が低い処理モジュールやブロックから構成されているものもある。
 そこで、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造の中で、他のシングルタスク処理構造との類似性が低い処理モジュールやブロックから構成されているものを統計処理により、処理対象から除外するようにして、原型構造探索処理を実行するようにしてもよい。
 このようにすることで、原型構造を構成するシングルタスク処理構造のうち、入出力類似度、または、パラメータ類似度が低い処理モジュールやブロックからなるシングルタスク処理構造が除外されることにより、入出力類似度、または、パラメータ類似度が高い処理モジュールやブロックからなるシングルタスク処理構造のみの原型構造探索処理を実現することが可能となり、原型構造探索処理の探索効率を向上することが可能となる。
 次に、図13のフローチャートを参照して、探索効率を向上させた原型構造探索処理について説明する。尚、図13のフローチャートにおけるステップS208,S209の処理は、図9のフローチャートを参照して説明したステップS111,S112の処理と同様であるので、その説明は省略する。
 ステップS201において、シングルタスク処理構造取得部71は、ターゲットデバイス12に実行させるマルチタスク処理に応じて、必要な既存のシングルタスク処理構造を、例えば、記憶部34より読み出して、マルチタスク処理構造の原型構造を構築する。
 ステップS202において、類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのうち、未処理の組み合わせを処理対象組み合わせに設定する。
 ステップS203において、類似度比較部72は、処理対象組み合わせとなる処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせの入出力類似度を算出する。
 ステップS204において、類似度比較部72は、入出力類似度と所定の閾値とを比較する。
 ステップS205において、類似度比較部72は、入出力類似度と所定の閾値とを比較結果を記憶する。
 ステップS206において、類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのうち、未処理の組み合わせがあるか否かを判定する。
 ステップS206において、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせのうち、未処理の組み合わせがあると判定された場合、処理は、ステップS202に戻る。
 すなわち、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の全ての組み合わせについての入出力類似度が閾値と比較されて、未処理の組み合わせがないと判定された場合、処理は、ステップS207に進む。
 ステップS207において、類似度比較部72は、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造を構成する処理モジュール間、または、複数の処理モジュールからなるブロック間の組み合わせにおける入出力類似度と所定の閾値との比較結果を統計処理する。そして、類似度比較部72は、他のシングルタスク処理構造と、入出力類似度の低い処理モジュール、または、ブロックから構成されるシングルタスク処理構造を、原型構造探索処理における処理対象から除外する。
 そして、以降において、ステップS208,S209において、入出力類似度比較構造探索処理、およびパラメータ類似度比較構造探索処理が実行される。
 この処理の結果、マルチタスク処理構造の原型構造を構成するシングルタスク処理構造のうち、他のシングルタスク処理構造との間で、処理モジュール間、または、複数の処理モジュールからなるブロック間の入出力類似度の低いシングルタスク処理構造については、除外された状態で、パラメータの共有、処理モジュールやブロックの共有、および処理モジュール間、または、複数の処理モジュールからなるブロック間の結合または切断がなされて、処理が最適化されることになるので、原型構造探索処理の探索処理効率を向上させることが可能となる。
 尚、図13のフローチャートを参照して説明した原型構造探索処理においては、入出力類似度の低い処理モジュールやブロックにより構成されるシングルタスク処理構造を、原型構造探索処理の処理対象から除外する例について説明してきた。しかしながら、他のシングルタスク処理構造との間で、処理モジュール間、またはブロック間のパラメータ類似度の低いシングルタスク処理構造を、原型構造探索処理の対象から除外するようにしてもよい。さらに、入出力類似度およびパラメータ類似度の両方が低い、シングルタスク処理構造を、原型構造探索処理の対象から除外するようにしてもよい。
 <<4.応用例2>>
 以上においては、図6を参照して説明したように、ターゲットデバイス12に対応するセンサ、または、ターゲットデバイス12から取得される学習用データを用いて、PCからなるマルチタスク処理構造生成部11により、原型構造探索処理により探索されたマルチタスク処理構造をターゲットデバイス12に供給してマルチタスク処理を実現させる例について説明してきた。
 しかしながら、図14のフローチャートで示されるように、ターゲットデバイス12が単独でマルチタスク処理を実現させるようにしてもよい。
 この場合、ターゲットデバイス12は、マルチタスク処理構造生成部11として機能する。
 すなわち、ステップS231において、ターゲットデバイス12が、自らに備えられている各種のセンサと対応する構成のセンサの、One-Shot、または、Few-Shotの学習用データを取得する(読み出す)。
 ステップS232において、マルチタスク処理構造生成部11として機能するターゲットデバイス12は、マルチタスク処理構造に必要とされるシングルタスク処理構造を組み合わせて、マルチタスク処理構造の原型構造を構築する。
 ステップS233において、マルチタスク処理構造生成部11として機能するターゲットデバイス12は、図9のフローチャートを参照して説明した原型構造探索処理を実行し、類似する処理モジュールを探索して、パラメータの共有、処理モジュールの共有、処理モジュールの結合、または切断等の処理によりマルチタスク処理構造を最適化して、処理の高効率化を図り、完成されたマルチタスク処理構造を構築する。
 以上の処理により、マルチタスク処理構造生成部11として機能するターゲットデバイス12のみでも、マルチタスク処理構造を生成することが可能となる。
 これにより、例えば、ターゲットデバイス12に、既存のマルチタスク処理構造として、地球上で動作する上で必要なマルチタスク処理構造が構築されているような場合、上述した処理により、ターゲットデバイス12は、自らでマルチタスク処理構造を再構築することができる。
 従って、例えば、ターゲットデバイス12は、自らが月面に到達したことを認識すると、月面で動作する上で必要な学習用データを取得して、マルチタスク処理構造を再学習させてパラメータを更新することで、月面に適したマルチタスク処理構造を再構築することが可能となる。
 結果として、ターゲットデバイス12は、現状の環境に適応しながら、リアルタイムで、自律的に、現状の環境において最適なマルチタスク処理構造を繰り返し再構築することが可能となり、様々な環境に適応しながらマルチタスク処理を実現することが可能となる。
 <<5.応用例3>>
 以上においては、図14を参照して説明したように、ターゲットデバイス12が、自らのセンサの学習用データを用いて、自らがマルチタスク処理構造生成部11として機能することで、原型構造探索処理を実行し、最適化されたマルチタスク処理構造によりマルチタスク処理を実現させる例について説明してきた。
 しかしながら、図15のフローチャートで示されるように、クラウド(cloud)コンピュータがマルチタスク処理構造生成部11として機能し、マルチタスク処理を実現させるようにしてもよい。
 すなわち、ステップS251において、ターゲットデバイス12が、自らに備えられている各種のセンサと対応する構成のセンサの、One-Shot、または、Few-Shotの学習用データを取得する。
 ステップS252において、ターゲットデバイス12が、自らに備えられている各種のセンサと対応する構成のセンサの、One-Shot、または、Few-Shotの学習用データをクラウドコンピュータ101に送信する。
 ステップS271において、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101は、One-Shot、または、Few-Shotの学習用データを取得する。
 ステップS272において、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101は、マルチタスク処理構造に必要とされるシングルタスク処理構造を組み合わせて、マルチタスク処理構造の原型構造を構築する。
 ステップS273において、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101は、図9のフローチャートを参照して、説明した原型構造探索処理を実行し、類似する処理モジュールを探索して、パラメータの共有、処理モジュールの共有、処理モジュールの結合、または切断等の処理によりマルチタスク処理構造の最適化して、処理の高効率化を図り、完成されたマルチタスク処理構造を構築する。
 ステップS274において、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101は、完成したマルチタスク処理構造をターゲットデバイス12に供給する。
 ステップS253において、ターゲットデバイス12は、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101より供給されたマルチタスク処理構造を取得して、マルチタスク処理を実行する。
 ステップS254において、ターゲットデバイス12は、マルチタスク処理構造生成部11として機能するクラウドコンピュータ101より供給されたマルチタスク処理構造かを取得して、マルチタスク処理を実行する。
 以上の処理により、クラウドコンピュータ101による原型構造探索処理により、最適化された状態のマルチタスク処理構造が構築されることになるので、ターゲットデバイス12による高効率化されたマルチタスク処理が実現される。
 これにより、メモリのオーバヘッドを削減し、処理負荷を低減することが可能になるとともに、処理モジュールのパラメータや、処理モジュールそのものが共有されることにより、処理負荷が低減し、処理速度を高速化することが可能となる。
 また、ターゲットデバイス12が、クラウドコンピュータ101との通信によりマルチタスク処理構造に基づいたマルチタスク処理を実現することが可能となる。
 結果として、最適化された処理モジュールやブロックからなるマルチタスク処理構造を容易に構築することが可能となる。
 <<6.ソフトウェアにより実行させる例>>
 図16は、汎用のコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
 入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブル記憶媒体1011に対してデータを読み書きするドライブ1010が接続されている。
 CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブル記憶媒体1011ら読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
 以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記憶媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記憶媒体1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 尚、図16におけるCPU1001が、図7の制御部31の機能を実現させる。
 また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 尚、本開示は、以下のような構成も取ることができる。
<1> ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化部
 を備える情報処理装置。
<2> 前記マルチタスク処理構造は、複数の既存のシングルタスク処理構造から構成される
 <1>に記載の情報処理装置。
<3> 前記シングルタスク処理構造は、処理モジュールまたは複数の前記処理モジュールよりなるブロックより構成され、
 前記最適化部は、前記シングルタスク処理構造間において、類似する前記処理モジュールまたは前記ブロックを用いて前記マルチタスク処理構造を最適化する
 <2>に記載の情報処理装置。
<4> 前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
 <3>に記載の情報処理装置。
<5> 前記最適化部は、前記シングルタスク処理構造間において、入出力データの類似する度合いを示す入出力類似度の高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
 <4>に記載の情報処理装置。
<6> 前記最適化部は、前記シングルタスク処理構造間において、使用するパラメータの類似する度合いを示すパラメータ類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
 <4>に記載の情報処理装置。
<7> 前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを共有することで、前記マルチタスク処理構造を最適化する
 <3>に記載の情報処理装置。
<8> 前記最適化部は、前記シングルタスク処理構造間において、前記類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを、結合または切断することにより、共有することで、前記マルチタスク処理構造を最適化する
 <7>に記載の情報処理装置。
<9> 前記最適化部は、前記シングルタスク処理構造間において、前記類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを、前記ターゲットデバイスを構成するハードウェアの性能および機能に応じて、結合または切断することにより、共有することで、前記マルチタスク処理構造を最適化する
 <8>に記載の情報処理装置。
<10> 前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックで使用するパラメータを共有することで、前記マルチタスク処理構造を最適化する
 <3>に記載の情報処理装置。
<11> 前記最適化部により最適化された前記マルチタスク処理構造を、前記ターゲットデバイスにより動作させた場合のシミュレーションを実行するシミュレーション部と、
 前記シミュレーションにより前記マルチタスク処理構造に基づいて実現されるマルチタスク処理の処理精度を示すスコアを算出するスコア算出部と
 前記スコアに基づいて、前記最適化された前記マルチタスク処理構造を再学習させる再学習部をさらに備える
 <1>乃至<10>のいずれかに記載の情報処理装置。
<12> 前記再学習部は、学習用データを利用した再学習により、前記最適化された前記マルチタスク処理構造を構成する処理モジュールおよび複数の前記処理モジュールからなるブロックのパラメータの少なくともいずれかを更新する
 <11>に記載の情報処理装置。
<13> 前記学習用データは、前記ターゲットデバイスに設けられたセンサ類およびカメラ類の、性能および機能に応じたデータである
 <12>に記載の情報処理装置。
<14> 前記処理モジュールおよび前記ブロックは、前記センサ類より供給されるセンシング結果、前記カメラ類により供給される画像、および前記処理モジュールまたは前記ブロックの処理結果の少なくともいずれかに基づいて、所定の処理を実行し、処理結果を出力する
 <13>に記載の情報処理装置。
<15> 前記マルチタスク処理構造は、前記ターゲットデバイスの動作を制御するニューラルネットワークを用いたプログラムである
 <14>に記載の情報処理装置。
<16> 前記処理モジュールおよび前記ブロックは、それぞれ前記ニューラルネットワークを用いたプログラムにおけるレイヤおよびブロックである
 <15>に記載の情報処理装置。
<17> 前記情報処理装置は、前記ターゲットデバイスである
 <1>乃至<16>のいずれかに記載の情報処理装置。
<18> 前記情報処理装置は、クラウドコンピュータである
 <1>乃至<16>のいずれかに記載の情報処理装置。
<19> ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化処理
 を含む情報処理方法。
<20> ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化部
 としてコンピュータを機能させるプログラム。
 11 マルチタスク処理構造生成部, 12 ターゲットデバイス, 31 制御部, 32 入力部, 33 出力部, 34 記憶部, 35 通信部, 36 ドライブ, 37 リムーバブル記憶媒体, 51 構造探索部, 71 シングルタスク処理構造取得部, 72 類似度比較部, 73 結合切断部, 74 シミュレーション部, 75 精度確認部, 76 スコア算出部, 77 スコア判定部, 78 学習判定部, 79 学習部, 80 マルチタスク処理構造記憶部, 81 マルチタスク処理構造出力部

Claims (20)

  1.  ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化部
     を備える情報処理装置。
  2.  前記マルチタスク処理構造は、複数の既存のシングルタスク処理構造から構成される
     請求項1に記載の情報処理装置。
  3.  前記シングルタスク処理構造は、処理モジュールまたは複数の前記処理モジュールよりなるブロックより構成され、
     前記最適化部は、前記シングルタスク処理構造間において、類似する前記処理モジュールまたは前記ブロックを用いて前記マルチタスク処理構造を最適化する
     請求項2に記載の情報処理装置。
  4.  前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
     請求項3に記載の情報処理装置。
  5.  前記最適化部は、前記シングルタスク処理構造間において、入出力データの類似する度合いを示す入出力類似度の高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
     請求項4に記載の情報処理装置。
  6.  前記最適化部は、前記シングルタスク処理構造間において、使用するパラメータの類似する度合いを示すパラメータ類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを用いて、前記マルチタスク処理構造を最適化する
     請求項4に記載の情報処理装置。
  7.  前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを共有することで、前記マルチタスク処理構造を最適化する
     請求項3に記載の情報処理装置。
  8.  前記最適化部は、前記シングルタスク処理構造間において、前記類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを、結合または切断することにより、共有することで、前記マルチタスク処理構造を最適化する
     請求項7に記載の情報処理装置。
  9.  前記最適化部は、前記シングルタスク処理構造間において、前記類似度が所定値よりも高い前記処理モジュールまたは前記ブロックを、前記ターゲットデバイスを構成するハードウェアの性能および機能に応じて、結合または切断することにより、共有することで、前記マルチタスク処理構造を最適化する
     請求項8に記載の情報処理装置。
  10.  前記最適化部は、前記シングルタスク処理構造間において、類似する度合いを示す類似度が所定値よりも高い前記処理モジュールまたは前記ブロックで使用するパラメータを共有することで、前記マルチタスク処理構造を最適化する
     請求項3に記載の情報処理装置。
  11.  前記最適化部により最適化された前記マルチタスク処理構造を、前記ターゲットデバイスにより動作させた場合のシミュレーションを実行するシミュレーション部と、
     前記シミュレーションにより前記マルチタスク処理構造に基づいて実現されるマルチタスク処理の処理精度を示すスコアを算出するスコア算出部と
     前記スコアに基づいて、前記最適化された前記マルチタスク処理構造を再学習させる再学習部をさらに備える
     請求項1に記載の情報処理装置。
  12.  前記再学習部は、学習用データを利用した再学習により、前記最適化された前記マルチタスク処理構造を構成する処理モジュールおよび複数の前記処理モジュールからなるブロックのパラメータの少なくともいずれかを更新する
     請求項11に記載の情報処理装置。
  13.  前記学習用データは、前記ターゲットデバイスに設けられたセンサ類およびカメラ類の、性能および機能に応じたデータである
     請求項12に記載の情報処理装置。
  14.  前記処理モジュールおよび前記ブロックは、前記センサ類より供給されるセンシング結果、前記カメラ類により供給される画像、および前記処理モジュールまたは前記ブロックの処理結果の少なくともいずれかに基づいて、所定の処理を実行し、処理結果を出力する
     請求項13に記載の情報処理装置。
  15.  前記マルチタスク処理構造は、前記ターゲットデバイスの動作を制御するニューラルネットワークを用いたプログラムである
     請求項14に記載の情報処理装置。
  16.  前記処理モジュールおよび前記ブロックは、それぞれ前記ニューラルネットワークを用いたプログラムにおけるレイヤおよびブロックである
     請求項15に記載の情報処理装置。
  17.  前記情報処理装置は、前記ターゲットデバイスである
     請求項1に記載の情報処理装置。
  18.  前記情報処理装置は、クラウドコンピュータである
     請求項1に記載の情報処理装置。
  19.  ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化処理
     を含む情報処理方法。
  20.  ターゲットデバイスの動作を制御するマルチタスク処理構造の構造に基づいて、前記マルチタスク処理構造を最適化する最適化部
     としてコンピュータを機能させるプログラム。
PCT/JP2020/013571 2019-04-09 2020-03-26 情報処理装置、および情報処理方法、並びにプログラム WO2020209078A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/594,026 US20220197691A1 (en) 2019-04-09 2020-03-26 Information processing apparatus, information processing method, and program
CN202080026554.2A CN113711179A (zh) 2019-04-09 2020-03-26 信息处理设备、信息处理方法和程序
EP20786961.1A EP3955109B1 (en) 2019-04-09 2020-03-26 Information processing device, information processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019074221 2019-04-09
JP2019-074221 2019-04-09

Publications (1)

Publication Number Publication Date
WO2020209078A1 true WO2020209078A1 (ja) 2020-10-15

Family

ID=72751667

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/013571 WO2020209078A1 (ja) 2019-04-09 2020-03-26 情報処理装置、および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US20220197691A1 (ja)
EP (1) EP3955109B1 (ja)
CN (1) CN113711179A (ja)
WO (1) WO2020209078A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197705A (ja) * 1991-07-09 1993-08-06 Fujitsu Ltd ニューラルネットワークの学習システム
JP2014229124A (ja) * 2013-05-23 2014-12-08 独立行政法人情報通信研究機構 ディープ・ニューラルネットワークの学習方法、ディープ・ニューラルネットワークのサブネットワークのパラメータを記憶した記憶媒体及びコンピュータプログラム
JP2017211799A (ja) * 2016-05-25 2017-11-30 キヤノン株式会社 情報処理装置および情報処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04195246A (ja) * 1990-09-28 1992-07-15 Olympus Optical Co Ltd 最適化装置
EP3378222A4 (en) * 2015-11-16 2019-07-03 Orbital Insight, Inc. MOVING VEHICLE DETECTION AND ANALYSIS USING LOW RESOLUTION REMOTE DETECTION IMAGING
EP3474192A1 (en) * 2017-10-19 2019-04-24 Koninklijke Philips N.V. Classifying data
US11315015B2 (en) * 2018-06-08 2022-04-26 Technip France Continuous learning of simulation trained deep neural network model
US20200012890A1 (en) * 2018-07-06 2020-01-09 Capital One Services, Llc Systems and methods for data stream simulation
CN112005229A (zh) * 2018-08-30 2020-11-27 惠普发展公司,有限责任合伙企业 共享内容相似性分析

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197705A (ja) * 1991-07-09 1993-08-06 Fujitsu Ltd ニューラルネットワークの学習システム
JP2014229124A (ja) * 2013-05-23 2014-12-08 独立行政法人情報通信研究機構 ディープ・ニューラルネットワークの学習方法、ディープ・ニューラルネットワークのサブネットワークのパラメータを記憶した記憶媒体及びコンピュータプログラム
JP2017211799A (ja) * 2016-05-25 2017-11-30 キヤノン株式会社 情報処理装置および情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3955109A4 *

Also Published As

Publication number Publication date
EP3955109B1 (en) 2024-07-10
US20220197691A1 (en) 2022-06-23
CN113711179A (zh) 2021-11-26
EP3955109A1 (en) 2022-02-16
EP3955109A4 (en) 2022-06-01

Similar Documents

Publication Publication Date Title
RU2666631C2 (ru) Обучение dnn-студента посредством распределения вывода
US10474933B2 (en) Recognition and training method and apparatus
US20240220799A1 (en) Controlling agents using scene memory data
US20220092408A1 (en) Neural network weight distribution using a tree direct-memory access (dma) bus
US20200106632A1 (en) System and method for disambiguation of internet-of-things devices
CN112200266B (zh) 基于图结构数据的网络训练方法、装置以及节点分类方法
EP3881245B1 (en) Hardware accelerator extension to transfer learning - extending/finishing training to the edge
US20210086355A1 (en) Control server and method for controlling robot using artificial neural network, and robot implementing the same
US11709783B1 (en) Tensor data distribution using grid direct-memory access (DMA) controller
Gu et al. A deep learning tennis ball collection robot and the implementation on nvidia jetson tx1 board
Bassyouni et al. Augmented reality meets artificial intelligence in robotics: A systematic review
Wang et al. Towards versatile embodied navigation
Hu et al. Pipeedge: Pipeline parallelism for large-scale model inference on heterogeneous edge devices
Deng et al. Deep reinforcement learning based on local GNN for goal-conditioned deformable object rearranging
Zhang et al. HG-Meta: Graph meta-learning over heterogeneous graphs
WO2020209078A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
Fan et al. Predicting pupylation sites in prokaryotic proteins using pseudo-amino acid composition and extreme learning machine
Li et al. Remote object navigation for service robots using hierarchical knowledge graph in human-centered environments
US20230237337A1 (en) Large model emulation by knowledge distillation based nas
CN112648997A (zh) 一种基于多任务网络模型定位的方法及系统
US20230048006A1 (en) Interacting with machines using natural language input and a state graph
Sharma et al. Parallel bat algorithm using mapreduce model
US20230237089A1 (en) Method of processing multimodal retrieval tasks, and an apparatus for the same
US20240144051A1 (en) Hardware-aware generation of machine learning models
US20240202910A1 (en) Method and apparatus with semiconductor image processing

Legal Events

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

Ref document number: 20786961

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020786961

Country of ref document: EP

Effective date: 20211109

NENP Non-entry into the national phase

Ref country code: JP