EP3712823A1 - Method and device for controlling a technical appliance using a program code - Google Patents
Method and device for controlling a technical appliance using a program code Download PDFInfo
- Publication number
- EP3712823A1 EP3712823A1 EP19164272.7A EP19164272A EP3712823A1 EP 3712823 A1 EP3712823 A1 EP 3712823A1 EP 19164272 A EP19164272 A EP 19164272A EP 3712823 A1 EP3712823 A1 EP 3712823A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- layers
- program
- execution device
- program code
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Definitions
- the invention relates to a method and a device for controlling a technical device by means of a program code.
- Neural networks in particular Deep Neural Networks (DNNs) or Deep Convolutional Neural Networks (CNNs) are used in numerous applications, for example in the field of computer vision. These applications sometimes generate enormous amounts of data because they are directly connected to sensors such as cameras, microphones, gyroscopes that record a large amount of input data, for example in the form of streaming data, and are processed using machine learning.
- DNNs Deep Neural Networks
- CNNs Deep Convolutional Neural Networks
- IoT Internet of Things
- classification with simple machine learning (ML) models such as a linear support vector machine (SVM)
- SVM linear support vector machine
- DDNNs Distributed deep neural networks over distributed computing hierarchies are known, including cloud, edge and geographically distributed end devices (devices).
- sections of a single DNN are often assigned to a distributed computing hierarchy, which can be trained together.
- a DDNN can use so-called binary neural networks (BNNs).
- BNNs binary neural networks
- the object is achieved by a method for controlling a technical device by means of a program code, which program code is executed by a system, and the system comprises a multilayered neural network with layers and a cloud execution device and a device execution device, and the program code is formed by a first program part and a third program part, and the first program part forms a first set of layers of the neural network and is executed by the cloud execution device and controls the device execution device, and the third program part forms a third set of layers of the neural network and is executed by the device execution device and controls the technical device, and the system further executes a configuration method which redefines the first and the third set of layers and the respective program part accordingly, determines the first and third program part therefrom and loads it into the associated execution device, and the system executes the program code and that controls technical device, wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
- the flexibility achieved can take into account both the current data traffic in the network as a whole, as well as the Improve service quality (QoS, "quality of service”) of individual services which are made available by or to technical devices.
- QoS Improve service quality
- the distribution in communication can be improved, latency times reduced, the data protection of user or sensor data and the system accuracy can be improved.
- Hierarchically distributed computing structures including cloud, edge and devices, have inherent advantages, such as the support of coordinated central and local decisions and the scalability of the system for extensive intelligent tasks based on geographically distributed IoT devices.
- An example of such a distributed approach is the combination of a small NN model (fewer parameters) on end devices and a larger NN model (more parameters) in the cloud.
- the small model on a terminal can quickly carry out an initial feature extraction and also a classification if the model is convinced (English "confidence"). Otherwise, the end device can transfer the result of the small model (e.g. extracted features) to the large NN model in the cloud, which carries out further processing and the final classification.
- This approach has the advantage of lower communication costs compared to submitting NN inputs to the cloud and can achieve higher accuracy compared to a simple device model.
- the system could also offer better privacy protection.
- Reinforcement learning stands for a series of machine learning methods in which an agent independently learns a strategy in order to maximize the rewards received.
- the agent is not shown which action is best in which situation, but instead receives a reward at certain times, which can also be negative. Using these rewards, he approximates a utility function that describes the value of a certain state or action.
- a neural network is defined as a computer system which consists of a number of simple but highly interconnected elements or nodes called “neurons" organized in layers that process information using dynamic state responses to external inputs.
- patterns can be found in an efficient manner, which are too complex for manual extraction and can be recognized by the machine.
- patterns are introduced into the neural network in that the input layer has a neuron for each component present in the input data and communicates to one or more hidden layers present in the network.
- Deep learning refers to a class of optimization methods of artificial neural networks that have numerous intermediate layers ("hidden layers”) between the input layer and the output layer and thus have an extensive internal structure or no intermediate layers, as with the single-layer perceptron, the deep learning methods enable stable learning success even with numerous intermediate layers.
- hidden layers numerous intermediate layers
- the deep learning methods enable stable learning success even with numerous intermediate layers.
- the partial programs of individual layers can also be referred to as instances.
- the instances used must work according to defined rules on both the sending and receiving side of a layer in order to enable the processing of data.
- the definition of these rules is described in a protocol and forms a logical, horizontal connection between two instances of the same layer.
- Each instance provides services that can be used by an instance directly above it. To provide the service, an instance itself uses the services of the instance immediately below. The real data flow is therefore vertical.
- the instances of a layer are exchangeable if they can be exchanged at both the sender and the recipient.
- the first and the third set of layers together form the layers of the multilayer neural network.
- two sets of layers are included, which supports a simple yet dynamically configurable architecture.
- the object according to the invention is also achieved by a method for controlling a technical device by means of a program code, which program code is executed by a system, and the system has a multilayer neural network with layers and a cloud execution device, an edge execution device and a device execution device and the program code is formed by a first program part, a second program part and a third program part, and the first program part forms a first set of layers of the neural network and is executed by the cloud execution device and controls the edge execution device, and the second program part forms a second set of layers of the neural network and is executed by the edge execution device and controls the device execution device, and the third program part forms a third set of layers of the neural network and is executed by the device execution device and controls the technical device, and a configuration method is carried out which determines the first, second and third set of layers, determines the first, second and third program parts therefrom and loads them into the associated execution device, and the system executes the program code and controls the technical device , wherein the configuration method is determined by at least one property of the
- an edge section is also provided between the cloud and the terminal, which can be used for greater flexibility.
- the first, the second and the third set of layers together form the layers of the multi-layer neural network.
- three sets of layers are included, which supports a particularly efficient yet flexibly configurable architecture.
- the properties of the program code relate to the properties of the technical device or the properties of the program code relate to the properties when the technical device is activated, preferably quality of service, latency, bandwidth for data transmission.
- the configuration method is based on the principle of machine learning, preferably on the application of the principle of "reinforcement learning" to DDNN. A particularly efficient determination of the configuration is thereby achieved.
- the configuration method is carried out continuously and the first, second and third set of layers and the respective program part are redefined accordingly.
- the configuration method is carried out again when a predetermined point in time is reached or a predetermined event is present.
- a time specification for a QoS can be supported. This can be schedule-controlled or event-controlled.
- the program code has more than 10 layers, preferably more than 20 layers, particularly preferably more than 50 layers, more than 100 layers, and in particular more than 150 layers.
- more than 10 layers, more than 20 layers, more than 50 layers, more than 100 layers, more than 150 layers or even more layers can be provided .
- VGGNet with 19 layers
- GoogLeNet with 22 layers
- ResNet with 152 layers.
- the object according to the invention is also achieved by a system for controlling a technical device by means of a program code, the system being a multi-layer neural network with layers, as well as a cloud execution device and a device execution device, and the program code is formed by a first program part and a third program part, and the first program part forms a first set of layers of the neural network and the cloud execution device is set up to execute the first program part to control the device execution device, and the third program part forms a third set of layers of the neural network and the device execution device is set up to execute the third program part and to control the technical device, and a configuration device is set up to execute a configuration method which determines the first and the third set of layers, determines the first and third program part therefrom and loads it into the associated execution device, and the system is set up to execute the program code and to control the technical device, wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
- the object according to the invention is also achieved by a system for controlling a technical device by means of a program code, the system having a multilayer neural network with layers as well as a cloud execution device, an edge execution device and a device execution device, and the program code is formed by a first program part, a second program part and a third program part, and the first program part forms a first set of layers of the neural network and sets up a cloud for this purpose is to execute the cloud execution device and control the edge execution device, and the second program part forms a second set of layers of the neural network and an edge execution device is set up to execute the second program part and control the device execution device, and the third program part forms a third set of layers of the neural network and the device execution device is set up to execute the third program part and to control the technical device, and a configuration device is set up to execute a configuration method which determines the first, the second and the third set of layers, determines the first, second and third program part therefrom and loads it into the associated execution device, and the system is set up to do
- an edge section is also provided between the cloud and the terminal, which can be used for greater flexibility.
- the edge execution device is provided in the form of a cloud service.
- a flexible but also powerful implementation of the edge execution device can be achieved.
- the cloud execution device and / or the configuration device is provided in the form of a cloud service. This allows a flexible, but also powerful Realization of the cloud execution device or the configuration device can be achieved.
- the method according to the invention can be used as a computer program on a computer platform or a computer system and the system may have a local or distributed system architecture.
- IoT device that is to say several IoT devices, can be controlled by the method or the system according to the invention.
- a device is, for example, an IoT device / IoT device or a technical device in general.
- Fig. 1 shows a general illustration of a cloud-based DNN with a cloud 100.
- the cloud 100 is accessible via a cloud output 101, at which samples from the cloud can be classified.
- Fig. 2 shows a general representation of a DDNN via a cloud 200 and a device 250.
- the cloud 200 is accessible via a cloud output 201, at which samples from the cloud can be classified.
- the method has a local output 203 at which samples can be classified in front of the cloud.
- Fig. 3 shows a general representation of a DDNN via a cloud 300 and geographically distributed devices 350.
- the cloud 300 is accessible via a cloud output 301, at which samples from the cloud can be classified.
- the method has a local output 303 at which samples can be classified in front of the cloud.
- Fig. 4 shows a general representation of a DDNN via a cloud 400, an edge 420 and a device 450.
- the cloud 400 is accessible via a cloud output 401, at which samples from the cloud can be classified.
- the method also has an edge output 402, at which samples can be classified before the cloud.
- the method has a local output 403 at which samples can be classified before the edge.
- Fig. 5 shows a general representation of a DDNN via a cloud 500, an edge 520 and geographically distributed devices 550.
- the cloud 500 is accessible via a cloud output 501, at which samples from the cloud can be classified.
- the method also has an edge output 502 at which samples can be classified before the cloud.
- the method has a local output 503 at which samples can be classified before the edge.
- FIG. 11 shows a general representation of a DDNN via a cloud 600, geographically distributed edges 620 and devices 650.
- the cloud 600 is accessible via a cloud output 601, at which samples from the cloud can be classified.
- the method also has an edge output 602 at which samples can be classified before the cloud.
- the method has a local output 603 at which samples can be classified before the edge.
- FIGS. 1 to 6 are known from the prior art.
- Fig. 7 represents an application of "reinforcement learning" on DDNN.
- a service 10 records sensor values 1 by means of one or more sensors 11 which are arranged in an environment 20 and determines the current status 12.
- one or more actions 13 are derived from the status 12 which actuate one or more actuators 15 2.
- the service 10 which describes the behavior between the sensor data acquisition 1 and the actuator actuation 2, can be implemented by the method according to the invention or by the system according to the invention and an improved QoS according to the invention can be achieved.
- Fig. 8 shows the system architecture according to Fig. 6 to which the method according to the invention is applied.
- the method is used to control a technical device 650 by means of a program code 800 according to FIG Fig. 9 and a program code 900 according to FIG Fig. 10 which is carried out by a system.
- the system has a multilayered neural network with layers 801-813, 901-914, as well as a cloud execution device 605, edge execution devices 625, 626 and device execution devices 655, 656.
- the program code 800, 900 is formed by a first program part 851, 951, a second program part 852, 952 and a third program part 853, 953.
- the first program part 851, 951 forms a first set of layers 821, 921 of the neural network and is executed by the cloud execution device 605 and controls the edge execution device 625, 626.
- the second program part 852, 952 forms a second set of layers 822, 922 of the neural network and is executed by the edge execution device 625, 626 and controls the device execution device 655, 656.
- the third program part 853, 953 forms a third set of layers 823, 923 of the neural network and is executed by the device execution device 655, 656 and controls the technical device 650.
- the program codes 800, 900 are provided for various device execution devices 655, 656 of the technical device 650. This means two different, geographically distributed devices.
- the program code 800 is provided for controlling a first device by means of the edge execution device 625 and the device execution device 655.
- the program code 900 is provided for controlling a further device by means of the edge execution device 626 and the device execution device 656.
- a configuration method 700 is performed and determines the first, second, and third sets of layers 821-823, 921-923.
- the configuration method 700 determines the first program part 851, 951 for the cloud execution device 605 from the first set of layers 821, 921 and loads it into the associated execution device 605.
- step 720 the configuration method 700 determines the second program part 852, 952 for the edge execution device 625 from the second set of layers 822, 922 and loads it into the associated execution device 625.
- step 730 the configuration method 700 determines the third program part 853, 953 for the device execution device 655 from the third set of layers 823, 923 and loads it into the associated execution device 655.
- the system executes the program code 800, 900 and controls the technical device 650.
- the configuration method 700 is determined by at least one property of the program code 800, 900 or at least one property of the technical device 650.
- the first, second and third sets of layers 821-823, 921-923 together form layers 801-813, 901-914 of the multilayer neural network.
- the properties of the program code 800, 900 and / or the properties of the technical device relate to the properties when the technical device 650 is activated, for example a quality of service, a latency or a bandwidth for data transmission.
- the configuration method 700 is based on the principle of machine learning, the principle of “reinforcement learning” also being applied to DDNN in order to obtain a particularly efficient configuration.
- the configuration method 700 is carried out continuously and the configuration of the layers is dynamically adapted to system parameters such as the current data traffic in the network, requirements for communication, latency times, data protection of user or sensor data, and system accuracy.
- the configuration method 700 can also be carried out again when a predetermined point in time is reached or a predetermined event, such as in the form of an interrupt, is present.
- the configuration method can adapt both the amount of layers and the program code in such a way that the total number of layers is modified in order to make the program code more efficient overall.
- the current program code can be a subset of the original program code and thus have fewer layers than originally if a device is used that does not support all functions of the original program code or is temporarily deactivated. This aspect is not shown in the figures.
- the first, the second and the third set of layers 821-823, 921-923, as well as the respective program part 851-853, 951-953 are correspondingly continuously redefined.
- the program code 800, 900 in the figure has more than ten layers 801-813, 901-914, but can also include more layers.
- Samples from the cloud 600 can be classified via the cloud output 601 and used for configuration.
- Samples of the device 650 can be classified via the local output 602 and used for the configuration.
- samples of the Edge 620 can be classified via the Edge output 603 and used for the configuration.
- a system according to the invention implements the method according to the invention, for example according to the system architecture of FIG Fig. 8 .
- Device 650 can be understood to mean one or more independent IoT devices. For a better overview, only one device 650 is shown.
- the edge 620 has two edge execution devices 625, 626, which are controlled by means of two program codes 800, 900.
- the device 650 has four device execution devices, two device execution devices 655, 656 which are controlled by means of the two program codes 800, 900.
- a dynamic configuration between the cloud 300 and the distributed device 350 according to FIG Fig. 3 can be used according to the invention, that is to say without the use of an edge.
- Fig. 9 shows an illustration of a first exemplary embodiment for a program code 800.
- the first program part 851 forms the first set of layers 821 of the neural network with six layers 801-806.
- the second program part 852 forms the second set of layers 822 of the neural network with four layers 807-810.
- the third program part 853 forms the third set of layers 823 of the neural network with three layers 811-813.
- the program code 800 is provided to a device 650, i. to control a device execution device 655, which via the Edge 620, i. the edge execution device 625, with the cloud 600, i. the cloud execution device 605.
- Fig. 10 shows an illustration of a second exemplary embodiment for a program code 900.
- the first program part 951 forms the first set of layers 921 of the neural network with six layers 901-906, which correspond to the six layers 801-806 of the program codes 800.
- the second program part 952 forms the second set of layers 922 of the neural network with two layers 907-908.
- the third program part 953 forms the third set of layers 923 of the neural network with six layers 909-914.
- the program code 900 is provided to control a device 650, ie a device execution device 656, which is connected to the cloud 600, ie the cloud execution device 605, via the edge 620, ie the edge execution device 626.
Abstract
Verfahren zur Steuerung eines technischen Geräts (650) mittels einem Programmcode, welcher durch ein System ausgeführt wird und das System ein mehrschichtiges neuronales Netzwerk aufweist und der Programmcode von einem ersten, einem zweiten und einem dritten Programmteil (851-853, 951-953) gebildet ist,und der erste Programmteil eine erste Menge an Schichten (821, 921) des neuronalen Netzwerks bildet und die Edge-Ausführungsvorrichtung (625, 626) ansteuert,und der zweite Programmteil eine zweite Menge an Schichten (822) des neuronalen Netzwerks bildet und die Device-Ausführungsvorrichtung (655, 656) ansteuert,und der dritte Programmteil eine dritte Menge an Schichten (823) des neuronalen Netzwerks bildet und das technische Gerät (650) ansteuert,und ein Konfigurations-Verfahren (700) ausgeführt wird, welches die erste, die zweite und die dritte Menge an Schichten (821-823, 921) bestimmt, daraus den ersten, zweiten und dritten Programmteil bestimmt und das System den Programmcode ausführt und das technische Gerät (650) ansteuert,wobei das Konfigurations-Verfahren (700) von einer Eigenschaft des Programmcodes oder des technischen Geräts (650) bestimmt ist.Method for controlling a technical device (650) by means of a program code which is executed by a system and the system has a multilayer neural network and the program code is formed by a first, a second and a third program part (851-853, 951-953) , and the first program part forms a first set of layers (821, 921) of the neural network and controls the edge execution device (625, 626), and the second program part forms a second set of layers (822) of the neural network and the Device execution device (655, 656) controls, and the third program part forms a third set of layers (823) of the neural network and controls the technical device (650), and a configuration method (700) is carried out, which the first, the second and the third set of layers (821-823, 921) are determined, the first, second and third program parts are determined therefrom and the system executes the program code t and controls the technical device (650), the configuration method (700) being determined by a property of the program code or of the technical device (650).
Description
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Steuerung eines technischen Geräts mittels einem Programmcode.The invention relates to a method and a device for controlling a technical device by means of a program code.
Neural Netwerke (NNs), insbesondere Deep Neural Networks (DNNs) oder Deep Convolutional Neural Networks (CNNs) werden in zahlreichen Anwendungen eingesetzt, zum Beispiel im Bereich Computer Vision. Durch diese Anwendungen werden teilweise enorme Datenmengen erzeugt, da sie direkt mit Sensoren, wie beispielsweise Kameras, Mikrofone, Gyroskope verbunden sind, die eine große Menge von Eingangsdaten, beispielsweise in Form von Streaming-Daten erfassen und mittels maschinellen Lernens verarbeitet werden.Neural networks (NNs), in particular Deep Neural Networks (DNNs) or Deep Convolutional Neural Networks (CNNs) are used in numerous applications, for example in the field of computer vision. These applications sometimes generate enormous amounts of data because they are directly connected to sensors such as cameras, microphones, gyroscopes that record a large amount of input data, for example in the form of streaming data, and are processed using machine learning.
Gleichzeitig hat die Anzahl der Endgeräte, einschließlich Internet of Things (IoT) Geräte, dramatisch zugenommen.At the same time, the number of end devices, including Internet of Things (IoT) devices, has increased dramatically.
Der aktuelle Stand der Technik bei Machine-Learning-Systemen auf Endgeräten führt häufig jedoch zu wenig zufriedenstellenden Einschränkungen:
Einerseits kann das Verlagern von Eingangssensordaten an große NN-Modelle (wie DNNs) in der Cloud zu damit verbundenen hohen Kommunikationskosten, Latenzproblemen und/oder Datenschutzproblemen führen.However, the current state of the art in machine learning systems on end devices often leads to less than satisfactory restrictions:
On the one hand, moving input sensor data to large NN models (such as DNNs) in the cloud can lead to associated high communication costs, latency problems and / or data protection problems.
Andererseits kann eine Klassifizierung mit einfachen Machine Learning (ML)-Modellen, wie einer linearer Support Vector Machine (SVM), direkt auf dem Endgerät durchgeführt werden, wobei die Systemgenauigkeit jedoch häufig gering ist.On the other hand, classification with simple machine learning (ML) models, such as a linear support vector machine (SVM), can be carried out directly on the end device, although the system accuracy is often low.
Es sind verteilte tiefe neuronale Netze (DDNNs) über verteilte Rechenhierarchien bekannt, umfassend Cloud, Edge und geografisch verteilte Endgeräte (Devices).Distributed deep neural networks (DDNNs) over distributed computing hierarchies are known, including cloud, edge and geographically distributed end devices (devices).
Bei der Implementierung eines DDNN werden häufig Abschnitte eines einzelnen DNN einer verteilten Rechenhierarchie zugeordnet, welche gemeinsam trainiert werden können.When implementing a DDNN, sections of a single DNN are often assigned to a distributed computing hierarchy, which can be trained together.
Darüber hinaus kann ein DDNN sogenannte binäre neuronale Netze (BNNs) nutzen.In addition, a DDNN can use so-called binary neural networks (BNNs).
Es ist Aufgabe der Erfindung, die genannten Unzulänglichkeiten zu verbessern.It is the object of the invention to improve the shortcomings mentioned.
Die Aufgabe wird durch ein Verfahren zur Steuerung eines technischen Geräts mittels einem Programmcode gelöst, welcher Programmcode durch ein System ausgeführt wird,
und das System ein mehrschichtiges neuronales Netzwerk mit Schichten, sowie eine Cloud-Ausführungsvorrichtung und eine Device-Ausführungsvorrichtung aufweist,
und der Programmcode von einem ersten Programmteil und einem dritten Programmteil gebildet ist,
und der erste Programmteil eine erste Menge an Schichten des neuronalen Netzwerks bildet und von der Cloud-Ausführungsvorrichtung ausgeführt wird und die Device-Ausführungsvorrichtung ansteuert,
und der dritte Programmteil eine dritte Menge an Schichten des neuronalen Netzwerks bildet und von der Device-Ausführungsvorrichtung ausgeführt wird und das technische Gerät ansteuert,
und vom System ferner ein Konfigurations-Verfahren ausgeführt wird, welches die erste und die dritte Menge an Schichten und den jeweiligen Programmteil entsprechend neu bestimmt, daraus den ersten und dritten Programmteil bestimmt und in die zugehörige Ausführungsvorrichtung lädt, und das System den Programmcode ausführt und das technische Gerät ansteuert,
wobei das Konfigurations-Verfahren von zumindest einer Eigenschaft des Programmcodes oder zumindest einer Eigenschaft des technischen Geräts bestimmt ist.The object is achieved by a method for controlling a technical device by means of a program code, which program code is executed by a system,
and the system comprises a multilayered neural network with layers and a cloud execution device and a device execution device,
and the program code is formed by a first program part and a third program part,
and the first program part forms a first set of layers of the neural network and is executed by the cloud execution device and controls the device execution device,
and the third program part forms a third set of layers of the neural network and is executed by the device execution device and controls the technical device,
and the system further executes a configuration method which redefines the first and the third set of layers and the respective program part accordingly, determines the first and third program part therefrom and loads it into the associated execution device, and the system executes the program code and that controls technical device,
wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
Dadurch wird erreicht, dass die Konfiguration der einzelnen Programmteile, beziehungsweise deren Verteilung auf einzelne Schichten, dynamisch anpassbar ist.This means that the configuration of the individual program parts or their distribution over individual layers can be dynamically adapted.
Die erreichte Flexibilität kann sowohl den aktuellen Datenverkehr im Netz insgesamt berücksichtigen, sowie auch die Servicequalität (QoS, "quality of service") einzelner Dienste, welche von oder zu technischen Geräten zur Verfügung gestellt werden, verbessern.The flexibility achieved can take into account both the current data traffic in the network as a whole, as well as the Improve service quality (QoS, "quality of service") of individual services which are made available by or to technical devices.
Ferner kann Verteilung in der Kommunikation verbessert, Latenzzeiten reduziert, der Datenschutz von Nutzer- oder Sensordaten, sowie die Systemgenauigkeit verbessert werden.Furthermore, the distribution in communication can be improved, latency times reduced, the data protection of user or sensor data and the system accuracy can be improved.
Es wird der Ansatz eines verteilten Rechnens in Betracht gezogen. Hierarchisch verteilte Rechenstrukturen, umfassend Cloud, Edge und Geräte, haben inhärente Vorteile, wie beispielsweise die Unterstützung koordinierter zentraler und lokaler Entscheidungen und die Skalierbarkeit des Systems für umfangreiche intelligente Aufgaben basierend auf geografisch verteilten IoT-Geräten.The distributed computing approach is considered. Hierarchically distributed computing structures, including cloud, edge and devices, have inherent advantages, such as the support of coordinated central and local decisions and the scalability of the system for extensive intelligent tasks based on geographically distributed IoT devices.
Ein Beispiel für einen solchen verteilten Ansatzes ist die Kombination eines kleinen NN-Modells (weniger Parameter) auf Endgeräten und eines größeren NN-Modells (mehr Parameter) in der Cloud. Das kleine Modell an einem Endgerät kann schnell eine anfängliche Merkmalsextraktion und auch eine Klassifizierung durchführen, wenn das Modell überzeugt ist (englisch "confidence"). Andernfalls kann das Endgerät das Resultat des kleinen Modells (z.B. extrahierte Merkmale) an das große NN-Modell in der Cloud übergeben, welches die weitere Verarbeitung und die endgültige Klassifizierung vornimmt. Dieser Ansatz hat den Vorteil niedriger Kommunikationskosten im Vergleich zur Abgabe von NN-Eingaben in die Cloud und kann im Vergleich zu einem einfachen Gerätemodell eine höhere Genauigkeit erzielen.An example of such a distributed approach is the combination of a small NN model (fewer parameters) on end devices and a larger NN model (more parameters) in the cloud. The small model on a terminal can quickly carry out an initial feature extraction and also a classification if the model is convinced (English "confidence"). Otherwise, the end device can transfer the result of the small model (e.g. extracted features) to the large NN model in the cloud, which carries out further processing and the final classification. This approach has the advantage of lower communication costs compared to submitting NN inputs to the cloud and can achieve higher accuracy compared to a simple device model.
Da eine Zusammenfassung, die auf extrahierten Merkmalen aus dem Endgerätemodell basiert, anstelle von Sensorrohdaten gesendet wird, könnte das System darüber hinaus einen besseren Schutz der Privatsphäre bieten.Since a summary based on features extracted from the terminal model is sent instead of raw sensor data, the system could also offer better privacy protection.
Diese Art des verteilten Ansatzes über eine Computerhierarchie hinweg ist jedoch aus mehreren Gründen herausfordernd:
- Endgeräte wie eingebettete Sensorknoten haben oft ein begrenztes Speicher- und Batteriebudget. Dies macht es problematisch, Modelle an die Geräte anzupassen, die die geforderten Genauigkeits- und Energieeinschränkungen erfüllen.
- Eine unkomplizierte Partitionierung von NN-Modellen über eine Berechnungshierarchie kann für die Übertragung von Zwischenergebnissen zwischen den Berechnungsknoten zu hohe Kommunikationskosten verursachen.
- End devices such as embedded sensor nodes often have limited storage and battery budgets. This makes it problematic Adapt models to devices that meet the required accuracy and energy restrictions.
- An uncomplicated partitioning of NN models via a calculation hierarchy can lead to excessive communication costs for the transmission of intermediate results between the calculation nodes.
Bestärkendes Lernen oder verstärkendes Lernen (englisch "reinforcement learning") steht für eine Reihe von Methoden des maschinellen Lernens, bei denen ein Agent selbständig eine Strategie erlernt, um erhaltene Belohnungen zu maximieren. Dabei wird dem Agenten nicht vorgezeigt, welche Aktion in welcher Situation die beste ist, sondern er erhält zu bestimmten Zeitpunkten eine Belohnung, die auch negativ sein kann. Anhand dieser Belohnungen approximiert er eine Nutzenfunktion, die beschreibt, welchen Wert ein bestimmter Zustand oder Aktion hat.Reinforcement learning stands for a series of machine learning methods in which an agent independently learns a strategy in order to maximize the rewards received. The agent is not shown which action is best in which situation, but instead receives a reward at certain times, which can also be negative. Using these rewards, he approximates a utility function that describes the value of a certain state or action.
Ein neuronales Netzwerk wird als Computersystem definiert, welches aus einer Anzahl einfacher, aber stark miteinander verbundener Elemente oder Knoten besteht, die als "Neuronen" bezeichnet werden und in Schichten organisiert sind, die Informationen unter Verwendung dynamischer Zustandsantworten auf externe Eingaben verarbeiten.A neural network is defined as a computer system which consists of a number of simple but highly interconnected elements or nodes called "neurons" organized in layers that process information using dynamic state responses to external inputs.
Ein künstliches Neuron j kann durch vier Basiselemente beschrieben werden:
- 1. Gewichtung: Gewichte wij bestimmen den Grad des Einflusses, den die Eingaben des Neurons in der Berechnung der späteren Aktivierung einnehmen. Abhängig von den Vorzeichen der Gewichte kann eine Eingabe hemmend (inhibitorisch) oder erregend (exzitatorisch) wirken. Ein Gewicht von 0 markiert eine nicht existente Verbindung zwischen zwei Knoten.
- 2. Übertragungsfunktion: eine Übertragungsfunktion ∑ berechnet anhand der Gewichtung der Eingaben die Netzeingabe des Neurons.
- 3. Aktivierungsfunktion: Die Ausgabe des Neurons wird schließlich durch die Aktivierungsfunktion ϕ bestimmt. Die Aktivierung wird beeinflusst durch die Netzeingabe aus der Übertragungsfunktion sowie einem Schwellenwert.
- 4. Schwellenwert: Das Addieren eines Schwellenwerts θ j zur Netzeingabe verschiebt die gewichteten Eingaben. Die Bezeichnung bestimmt sich aus der Verwendung einer Schwellenwertfunktion als Aktivierungsfunktion, bei der das Neuron aktiviert wird, wenn der Schwellenwert überschritten ist. Mathematisch gesehen wird die Trennebene, die den Merkmalsraum auftrennt, durch einen Schwellenwert mit einer Translation verschoben.
- 1. Weighting: Weights w ij determine the degree of influence that the inputs of the neuron have in the calculation of the later activation. Depending on the sign of the weights, an input can have an inhibitory or exciting (excitatory) effect. A weight of 0 marks a nonexistent connection between two nodes.
- 2. Transfer function: a transfer function ∑ uses the weighting of the inputs to calculate the network input of the neuron.
- 3. Activation function: The output of the neuron is finally determined by the activation function ϕ . The activation is influenced by the network input from the transfer function and a threshold value.
- 4. Threshold: Adding a threshold θ j to the network input shifts the weighted inputs. The designation is determined from the use of a threshold value function as an activation function, in which the neuron is activated when the threshold value is exceeded. From a mathematical point of view, the parting plane that separates the feature space is shifted by a threshold value with a translation.
Durch einen Verbindungsgraphen werden folgende Elemente festgelegt:
- 1. Eingaben: Eingaben xi können einerseits aus dem beobachteten Prozess resultieren, dessen Werte dem Neuron übergeben werden, oder wiederum aus den Ausgaben anderer Neuronen stammen.
- 2. Aktivierung oder Ausgabe: Das Ergebnis der Aktivierungsfunktion wird analog zur Nervenzelle als Aktivierung o j des künstlichen Neurons j bezeichnet.
- 1. Inputs: Inputs x i can on the one hand result from the observed process, the values of which are transferred to the neuron, or in turn come from the outputs of other neurons.
- 2. Activation or output: The result of the activation function is referred to as activation o j of artificial neuron j , analogous to the nerve cell.
Damit können auf effiziente Weise Muster gefunden werden, welche für eine manuelle Extraktion zu komplex sind und der Maschine erkannt werden können. Im Zusammenhang mit dieser Struktur werden Muster in das neuronale Netzwerk eingeführt, indem die Eingabeschicht ein Neuron für jede in den Eingabedaten vorhandene Komponente aufweist und an eine oder mehrere im Netzwerk vorhandene verborgene Schichten kommuniziert.In this way, patterns can be found in an efficient manner, which are too complex for manual extraction and can be recognized by the machine. In connection with this structure, patterns are introduced into the neural network in that the input layer has a neuron for each component present in the input data and communicates to one or more hidden layers present in the network.
Das tiefgehende Lernen (englisch "Deep Learning" bezeichnet eine Klasse von Optimierungsmethoden künstlicher neuronaler Netze, die zahlreiche Zwischenschichten (englisch "hidden layers") zwischen Eingabeschicht und Ausgabeschicht haben und dadurch eine umfangreiche innere Struktur aufweisen. In Erweiterungen der Lernalgorithmen für Netzstrukturen mit sehr wenigen oder keinen Zwischenlagen, wie beim einlagigen Perzeptron, ermöglichen die Methoden des Deep Learnings auch bei zahlreichen Zwischenlagen einen stabilen Lernerfolg.Deep learning refers to a class of optimization methods of artificial neural networks that have numerous intermediate layers ("hidden layers") between the input layer and the output layer and thus have an extensive internal structure or no intermediate layers, as with the single-layer perceptron, the deep learning methods enable stable learning success even with numerous intermediate layers.
Die Teilprogramme einzelner Schichten können auch als Instanzen bezeichnet werden. Die verwendeten Instanzen müssen sowohl auf der Sender- als auch auf der Empfängerseite einer Schicht nach festgelegten Regeln arbeiten, um die Verarbeitung von Daten zu ermöglichen. Die Festlegung dieser Regeln wird in einem Protokoll beschrieben und bildet eine logische, horizontale Verbindung zwischen zwei Instanzen derselben Schicht.The partial programs of individual layers can also be referred to as instances. The instances used must work according to defined rules on both the sending and receiving side of a layer in order to enable the processing of data. The definition of these rules is described in a protocol and forms a logical, horizontal connection between two instances of the same layer.
Jede Instanz stellt Dienste zur Verfügung, die eine direkt darüberliegende Instanz nutzen kann. Zur Erbringung der Dienstleistung bedient sich eine Instanz selbst der Dienste der unmittelbar darunterliegenden Instanz. Der reale Datenfluss erfolgt daher vertikal. Die Instanzen einer Schicht sind genau dann austauschbar, wenn sie sowohl beim Sender als auch beim Empfänger ausgetauscht werden können.Each instance provides services that can be used by an instance directly above it. To provide the service, an instance itself uses the services of the instance immediately below. The real data flow is therefore vertical. The instances of a layer are exchangeable if they can be exchanged at both the sender and the recipient.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass die erste und die dritte Menge an Schichten zusammen die Schichten des mehrschichtigen neuronalen Netzwerks bilden. Somit sind zwei Mengen an Schichten umfasst, was eine einfache und dennoch dynamisch konfigurierbare Architektur unterstützt.In a preferred development of the invention, it is provided that the first and the third set of layers together form the layers of the multilayer neural network. Thus, two sets of layers are included, which supports a simple yet dynamically configurable architecture.
Die erfindungsgemäße Aufgabe wird auch durch ein Verfahren zur Steuerung eines technischen Geräts mittels einem Programmcode gelöst, welcher Programmcode durch ein System ausgeführt wird,
und das System ein mehrschichtiges neuronales Netzwerk mit Schichten sowie eine Cloud-Ausführungsvorrichtung, eine Edge-Ausführungsvorrichtung und eine Device-Ausführungsvorrichtung aufweist und der Programmcode von einem ersten Programmteil, einem zweiten Programmteil und einem dritten Programmteil gebildet ist,
und der erste Programmteil eine erste Menge an Schichten des neuronalen Netzwerks bildet und von der Cloud-Ausführungsvorrichtung ausgeführt wird und die Edge-Ausführungsvorrichtung ansteuert,
und der zweite Programmteil eine zweite Menge an Schichten des neuronalen Netzwerks bildet und von der Edge- Ausführungsvorrichtung ausgeführt wird und die Device-Ausführungsvorrichtung ansteuert,
und der dritte Programmteil eine dritte Menge an Schichten des neuronalen Netzwerks bildet und von der Device-Ausführungsvorrichtung ausgeführt wird und das technische Gerät ansteuert,
und ein Konfigurations-Verfahren ausgeführt wird, welches die erste, die zweite und die dritte Menge an Schichten bestimmt, daraus den ersten, zweiten und dritten Programmteil bestimmt und in die zugehörige Ausführungsvorrichtung, lädt, und das System den Programmcode ausführt und das technische Gerät ansteuert,
wobei das Konfigurations-Verfahren von zumindest einer Eigenschaft des Programmcodes oder zumindest einer Eigenschaft des technischen Geräts bestimmt ist.The object according to the invention is also achieved by a method for controlling a technical device by means of a program code, which program code is executed by a system,
and the system has a multilayer neural network with layers and a cloud execution device, an edge execution device and a device execution device and the program code is formed by a first program part, a second program part and a third program part,
and the first program part forms a first set of layers of the neural network and is executed by the cloud execution device and controls the edge execution device,
and the second program part forms a second set of layers of the neural network and is executed by the edge execution device and controls the device execution device,
and the third program part forms a third set of layers of the neural network and is executed by the device execution device and controls the technical device,
and a configuration method is carried out which determines the first, second and third set of layers, determines the first, second and third program parts therefrom and loads them into the associated execution device, and the system executes the program code and controls the technical device ,
wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
In dieser Verfahrens-Variante der Erfindung ist zusätzlich ein Edge-Abschnitt zwischen der Cloud und dem Endgerät vorgesehen, was für eine höhere Flexibilität genutzt werden kann.In this method variant of the invention, an edge section is also provided between the cloud and the terminal, which can be used for greater flexibility.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass die erste, die zweite und die dritte Menge an Schichten zusammen die Schichten der mehrschichtigen neuronalen Netzwerks bilden. Somit sind drei Mengen an Schichten umfasst, was eine besonders effiziente und dennoch flexibel konfigurierbare Architektur unterstützt.In a preferred development of the invention it is provided that the first, the second and the third set of layers together form the layers of the multi-layer neural network. Thus, three sets of layers are included, which supports a particularly efficient yet flexibly configurable architecture.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass die Eigenschaften des Programmcodes die Eigenschaften des technischen Geräts oder die Eigenschaften des Programmcodes die Eigenschaften bei der Ansteuerung des technischen Geräts betreffen, vorzugsweise Quality-of-Service, Latenzzeit, Bandbreite für eine Datenübertragung. Dadurch kann auf einfache Weise ein effizientes und flexibles Verfahren zur Steuerung des technischen Geräts geschaffen werden. In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass das Konfigurations-Verfahren auf dem Prinzip des maschinellen Lernens beruht, vorzugsweise auf der Anwendung des Prinzips des "Reinforcement Learnings" auf DDNN. Dadurch wird eine besonders effiziente Bestimmung der Konfiguration erreicht.In a preferred development of the invention, it is provided that the properties of the program code relate to the properties of the technical device or the properties of the program code relate to the properties when the technical device is activated, preferably quality of service, latency, bandwidth for data transmission. In this way, an efficient and flexible method for controlling the technical device can be created in a simple manner. In a preferred development of the invention it is provided that the configuration method is based on the principle of machine learning, preferably on the application of the principle of "reinforcement learning" to DDNN. A particularly efficient determination of the configuration is thereby achieved.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass das Konfigurations-Verfahren fortlaufend ausgeführt wird und die erste, die zweite und die dritte Menge an Schichten und den jeweiligen Programmteil entsprechend neu bestimmt.In a preferred development of the invention, it is provided that the configuration method is carried out continuously and the first, second and third set of layers and the respective program part are redefined accordingly.
Dadurch wird erreicht, dass das Verfahren dynamisch mit Änderungen des Systems in einer Cloud beziehungsweise einem Netzwerk anpassbar ist.This ensures that the method can be dynamically adapted with changes to the system in a cloud or a network.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass das Konfigurations-Verfahren erneut ausgeführt wird, wenn ein vorbestimmter Zeitpunkt erreicht ist oder ein vorbestimmtes Ereignis vorliegt. Dadurch kann beispielsweise eine zeitliche Vorgabe an ein QoS unterstützt werden. Dies kann Zeitplan-gesteuert oder auch Anlass-gesteuert erfolgen.In a preferred development of the invention, it is provided that the configuration method is carried out again when a predetermined point in time is reached or a predetermined event is present. In this way, for example, a time specification for a QoS can be supported. This can be schedule-controlled or event-controlled.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass der Programmcode mehr als 10 Schichten, bevorzugt mehr als 20 Schichten, besonders bevorzugt mehr als 50 Schichten, mehr als 100 Schichten, und insbesondere mehr als 150 Schichten aufweist.In a preferred development of the invention it is provided that the program code has more than 10 layers, preferably more than 20 layers, particularly preferably more than 50 layers, more than 100 layers, and in particular more than 150 layers.
Es können in komplexen Software-Systemen, insbesondere für Steuer- und Messaufgaben mittels verteilter IoT-Geräte, mehr als 10 Schichten, mehr als 20 Schichten, mehr als 50 Schichten, mehr als 100 Schichten, mehr als 150 Schichten oder noch mehr Schichten vorgesehen sein.In complex software systems, in particular for control and measurement tasks using distributed IoT devices, more than 10 layers, more than 20 layers, more than 50 layers, more than 100 layers, more than 150 layers or even more layers can be provided .
Beispiele dafür sind VGGNet mit 19 Schichten, GoogLeNet mit 22 Schichten oder ResNet mit 152 Schichten.Examples are VGGNet with 19 layers, GoogLeNet with 22 layers or ResNet with 152 layers.
Die erfindungsgemäße Aufgabe wird auch durch ein System zur Steuerung eines technischen Geräts mittels einem Programmcode gelöst, wobei das System ein mehrschichtiges neuronales Netzwerk mit Schichten, sowie eine Cloud-Ausführungsvorrichtung und eine Device-Ausführungsvorrichtung aufweist,
und der Programmcode von einem ersten Programmteil und einem dritten Programmteil gebildet ist,
und der erste Programmteil eine erste Menge an Schichten des neuronalen Netzwerks bildet und die Cloud-Ausführungsvorrichtung dazu eingerichtet ist, den ersten Programmteil auszuführen die Device-Ausführungsvorrichtung anzusteuern,
und der dritte Programmteil eine dritte Menge an Schichten des neuronalen Netzwerks bildet und die Device-Ausführungsvorrichtung dazu eingerichtet ist, den dritten Programmteil auszuführen und das technische Gerät anzusteuern,
und eine Konfigurations-Vorrichtung dazu eingerichtet ist, ein Konfigurations-Verfahren auszuführen, welches die erste und die dritte Menge an Schichten bestimmt, daraus den ersten und dritten Programmteil bestimmt und in die zugehörige Ausführungsvorrichtung lädt, und das System dazu eingerichtet ist, den Programmcode auszuführen und das technische Gerät anzusteuern,
wobei das Konfigurations-Verfahren von zumindest einer Eigenschaft des Programmcodes oder zumindest einer Eigenschaft des technischen Geräts bestimmt ist.The object according to the invention is also achieved by a system for controlling a technical device by means of a program code, the system being a multi-layer neural network with layers, as well as a cloud execution device and a device execution device,
and the program code is formed by a first program part and a third program part,
and the first program part forms a first set of layers of the neural network and the cloud execution device is set up to execute the first program part to control the device execution device,
and the third program part forms a third set of layers of the neural network and the device execution device is set up to execute the third program part and to control the technical device,
and a configuration device is set up to execute a configuration method which determines the first and the third set of layers, determines the first and third program part therefrom and loads it into the associated execution device, and the system is set up to execute the program code and to control the technical device,
wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
Die erfindungsgemäße Aufgabe wird auch durch ein System zur Steuerung eines technischen Geräts mittels einem Programmcode gelöst, wobei das System ein mehrschichtiges neuronales Netzwerk mit Schichten, sowie eine Cloud-Ausführungsvorrichtung, eine Edge-Ausführungsvorrichtung und eine Device-Ausführungsvorrichtung aufweist,
und der Programmcode von einem ersten Programmteil, einem zweiten Programmteil und einem dritten Programmteil gebildet ist,
und der erste Programmteil eine erste Menge an Schichten des neuronalen Netzwerks bildet und eine Cloud dazu eingerichtet ist, die Cloud-Ausführungsvorrichtung auszuführen und die Edge-Ausführungsvorrichtung anzusteuern,
und der zweite Programmteil eine zweite Menge an Schichten des neuronalen Netzwerks bildet und eine Edge-Ausführungsvorrichtung dazu eingerichtet ist, den zweiten Programmteil auszuführen und die Device-Ausführungsvorrichtung anzusteuern,
und der dritte Programmteil eine dritte Menge an Schichten des neuronalen Netzwerks bildet und die Device-Ausführungsvorrichtung dazu eingerichtet ist, den dritten Programmteil auszuführen und das technische Gerät anzusteuern,
und eine Konfigurations-Vorrichtung dazu eingerichtet ist, ein Konfigurations-Verfahren auszuführen, welches die erste, die zweite und die dritte Menge an Schichten bestimmt, daraus den ersten, zweiten und dritten Programmteil bestimmt und in die zugehörige Ausführungsvorrichtung lädt, und das System dazu eingerichtet ist, den Programmcode auszuführen und das technische Gerät anzusteuern,
wobei das Konfigurations-Verfahren von zumindest einer Eigenschaft des Programmcodes oder zumindest einer Eigenschaft des technischen Geräts bestimmt ist.The object according to the invention is also achieved by a system for controlling a technical device by means of a program code, the system having a multilayer neural network with layers as well as a cloud execution device, an edge execution device and a device execution device,
and the program code is formed by a first program part, a second program part and a third program part,
and the first program part forms a first set of layers of the neural network and sets up a cloud for this purpose is to execute the cloud execution device and control the edge execution device,
and the second program part forms a second set of layers of the neural network and an edge execution device is set up to execute the second program part and control the device execution device,
and the third program part forms a third set of layers of the neural network and the device execution device is set up to execute the third program part and to control the technical device,
and a configuration device is set up to execute a configuration method which determines the first, the second and the third set of layers, determines the first, second and third program part therefrom and loads it into the associated execution device, and the system is set up to do this is to execute the program code and control the technical device,
wherein the configuration method is determined by at least one property of the program code or at least one property of the technical device.
In dieser System-Variante der Erfindung ist zusätzlich ein Edge-Abschnitt zwischen der Cloud und dem Endgerät vorgesehen, was für eine höhere Flexibilität genutzt werden kann.In this system variant of the invention, an edge section is also provided between the cloud and the terminal, which can be used for greater flexibility.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass die Edge-Ausführungsvorrichtung in Form eines Cloud-Service vorgesehen ist. Dadurch kann eine flexible, aber auch leistungsfähige Realisierung der Edge-Ausführungsvorrichtung erreicht werden.In a preferred development of the invention, it is provided that the edge execution device is provided in the form of a cloud service. As a result, a flexible but also powerful implementation of the edge execution device can be achieved.
In einer bevorzugten Weiterbildung der Erfindung ist es vorgesehen, dass die Cloud-Ausführungsvorrichtung und/oder die Konfigurations-Vorrichtung in Form eines Cloud-Service vorgesehen ist. Dadurch kann eine flexible, aber auch leistungsfähige Realisierung der Cloud-Ausführungsvorrichtung bzw. der Konfigurations-Vorrichtung erreicht werden.In a preferred development of the invention it is provided that the cloud execution device and / or the configuration device is provided in the form of a cloud service. This allows a flexible, but also powerful Realization of the cloud execution device or the configuration device can be achieved.
Die Erfindung wird nachfolgend anhand eines in den beigeschlossenen Zeichnungen dargestellten Ausführungsbeispiels näher erläutert. In den Zeichnungen zeigt:
- Fig. 1
- eine allgemeine Darstellung eines Cloud-basierten DNN,
- Fig. 2
- eine allgemeine Darstellung eines DDNN über eine Cloud und ein Device,
- Fig. 3
- eine allgemeine Darstellung eines DDNN über eine Cloud und geographisch verteile Devices,
- Fig. 4
- eine allgemeine Darstellung eines DDNN über eine Cloud, eine Edge und ein Device,
- Fig. 5
- eine allgemeine Darstellung eines DDNN über eine Cloud, eine Edge und geographisch verteile Devices,
- Fig. 6
- eine allgemeine Darstellung eines DDNN über eine Cloud, geographisch verteile Edges und Devices,
- Fig. 7
- eine Darstellung einer Anwendung von "Reinforcement Learning" auf DDNN,
- Fig. 8
- ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens,
- Fig. 9
- eine Darstellung eines ersten Ausführungsbeispiels für einen Programmcode,
- Fig. 10
- eine Darstellung eines zweiten Ausführungsbeispiels für einen Programmcode.
- Fig. 1
- a general representation of a cloud-based DNN,
- Fig. 2
- a general representation of a DDNN via a cloud and a device,
- Fig. 3
- a general representation of a DDNN via a cloud and geographically distributed devices,
- Fig. 4
- a general representation of a DDNN via a cloud, an edge and a device,
- Fig. 5
- a general representation of a DDNN via a cloud, an edge and geographically distributed devices,
- Fig. 6
- a general representation of a DDNN via a cloud, geographically distributed edges and devices,
- Fig. 7
- a representation of an application of "reinforcement learning" on DDNN,
- Fig. 8
- an embodiment of the method according to the invention,
- Fig. 9
- a representation of a first embodiment of a program code,
- Fig. 10
- a representation of a second embodiment for a program code.
Es ist klar, dass weitere nicht gezeigte Verfahrensschritte beziehungsweise Komponenten für den Betrieb des Systems erforderlich sind, wie beispielsweise Mittel zur Kommunikation, IO, Speicherung oder Verarbeitung. Zum besseren Verständnis werden diese Teile nicht dargestellt und beschrieben.It is clear that further method steps or components, not shown, are required for the operation of the system, such as means for communication, IO, storage or processing. For a better understanding these parts are not shown and described.
Das Verfahren gemäß der Erfindung kann als ein Computerprogramm auf einer Computerplattform oder einem Computersystem ausgeführt werden, wobei das System eine lokale oder verteilte Systemarchitektur aufweisen kann.The method according to the invention can be used as a computer program on a computer platform or a computer system and the system may have a local or distributed system architecture.
Darüber hinaus ist es klar, dass mehr als ein IoT-Gerät, das heißt mehrere IoT-Geräte, durch das Verfahren beziehungsweise das System gemäß der Erfindung gesteuert werden können.In addition, it is clear that more than one IoT device, that is to say several IoT devices, can be controlled by the method or the system according to the invention.
Im Weiteren wird mit einem Device beispielsweise ein IoT-Device/ IoT-Gerät oder allgemein ein technisches Gerät bezeichnet.In the following, a device is, for example, an IoT device / IoT device or a technical device in general.
Die Cloud 200 ist über einen Cloud-Ausgang 201 zugänglich, an dem Proben der Cloud klassifiziert werden können.The
Das Verfahren weist einen lokalen Ausgang 203 auf, an dem Proben vor der Cloud klassifiziert werden können.The method has a
Die Cloud 300 ist über einen Cloud-Ausgang 301 zugänglich, an dem Proben der Cloud klassifiziert werden können.The
Das Verfahren weist einen lokalen Ausgang 303 auf, an dem Proben vor der Cloud klassifiziert werden können.The method has a
Die Cloud 400 ist über einen Cloud-Ausgang 401 zugänglich, an dem Proben der Cloud klassifiziert werden können.The
Ferner weist das Verfahren einen Edge-Ausgang 402 auf, an dem Proben vor der Cloud klassifiziert werden können.The method also has an
Das Verfahren weist einen lokalen Ausgang 403 auf, an dem Proben vor der Edge klassifiziert werden können.The method has a
Die Cloud 500 ist über einen Cloud-Ausgang 501 zugänglich, an dem Proben der Cloud klassifiziert werden können.The
Ferner weist das Verfahren einen Edge-Ausgang 502 auf, an dem Proben vor der Cloud klassifiziert werden können.The method also has an
Das Verfahren weist einen lokalen Ausgang 503 auf, an dem Proben vor der Edge klassifiziert werden können.The method has a
Die Cloud 600 ist über einen Cloud-Ausgang 601 zugänglich, an dem Proben der Cloud klassifiziert werden können.The
Ferner weist das Verfahren einen Edge-Ausgang 602 auf, an dem Proben vor der Cloud klassifiziert werden können.The method also has an
Das Verfahren weist einen lokalen Ausgang 603 auf, an dem Proben vor der Edge klassifiziert werden können.The method has a
Ein Dienst 10 erfasst Sensorwerte 1 mittels eines oder mehrerer Sensoren 11, welche in einer Umgebung 20 angeordnet sind und bestimmt den aktuellen Status 12.A
Aus situationsabhängigen Bedingungen 14 werden aus dem Status 12 eine oder mehrere Aktionen 13 abgeleitet, welche einen oder mehrere Aktuatoren 15 betätigen 2.From the situation-
Der Dienst 10, der das Verhalten zwischen der Sensor-Datenerfassung 1 und der Aktuator-Betätigung 2 beschreibt, kann durch das erfindungsgemäße Verfahren beziehungsweise durch das erfindungsgemäße System implementiert werden und ein erfindungsgemäß ein verbesserter QoS erreicht werden.The
Das Verfahren dient zur Steuerung eines technischen Geräts 650 mittels einem Programmcode 800 gemäß der
Das System weist ein mehrschichtiges neuronales Netzwerk mit Schichten 801-813, 901-914, sowie eine Cloud-Ausführungsvorrichtung 605, Edge-Ausführungsvorrichtungen 625, 626 und Device-Ausführungsvorrichtungen 655, 656 auf.The system has a multilayered neural network with layers 801-813, 901-914, as well as a
Der Programmcode 800, 900 ist von einem ersten Programmteil 851, 951, einem zweiten Programmteil 852, 952 und einem dritten Programmteil 853, 953 gebildet.The
Der erste Programmteil 851, 951 bildet eine erste Menge an Schichten 821, 921 des neuronalen Netzwerks und wird von der Cloud-Ausführungsvorrichtung 605 ausgeführt und steuert die Edge-Ausführungsvorrichtung 625, 626 an.The
Der zweite Programmteil 852, 952 bildet eine zweite Menge an Schichten 822, 922 des neuronalen Netzwerks und wird von der Edge-Ausführungsvorrichtung 625, 626 ausgeführt und steuert die Device-Ausführungsvorrichtung 655, 656 an.The
Der dritte Programmteil 853, 953 bildet eine dritte Menge an Schichten 823, 923 des neuronalen Netzwerks und wird von der Device-Ausführungsvorrichtung 655, 656 ausgeführt und steuert das technische Gerät 650 an.The
Die Programmcodes 800, 900 sind für verschiedene Device-Ausführungsvorrichtung 655, 656 des technischen Geräts 650 vorgesehen. Somit zwei verschiedene, geographisch verteilte Geräte gemeint.The
Der Programmcode 800 ist zur Ansteuerung eines ersten Geräts mittel der Edge-Ausführungsvorrichtung 625 und der Device-Ausführungsvorrichtung 655 vorgesehen.The
Der Programmcode 900 ist zur Ansteuerung eines weiteren Geräts mittel der Edge-Ausführungsvorrichtung 626 und der Device-Ausführungsvorrichtung 656 vorgesehen.The
Ein Konfigurations-Verfahren 700 wird ausgeführt und bestimmt die erste, die zweite und die dritte Menge an Schichten 821-823, 921-923.A
Ferner bestimmt das Konfigurations-Verfahren 700 im Schritt 710 für die Cloud-Ausführungsvorrichtung 605 aus der ersten Menge an Schichten 821, 921 den ersten Programmteil 851, 951 und in die zugehörige Ausführungsvorrichtung 605 lädt.Furthermore, in
Ferner bestimmt das Konfigurations-Verfahren 700 im Schritt 720 für die Edge-Ausführungsvorrichtung 625 aus der zweiten Menge an Schichten 822, 922 den zweiten Programmteil 852, 952 und in die zugehörige Ausführungsvorrichtung 625 lädt.Furthermore, in
Ferner bestimmt das Konfigurations-Verfahren 700 im Schritt 730 für die Device-Ausführungsvorrichtung 655 aus der dritten Menge an Schichten 823, 923 den dritten Programmteil 853, 953 und in die zugehörige Ausführungsvorrichtung 655 lädt.Furthermore, in
Das System führt den Programmcode 800, 900 aus und steuert das technische Gerät 650 an.The system executes the
Das Konfigurations-Verfahren 700 ist dabei von zumindest einer Eigenschaft des Programmcodes 800, 900 oder zumindest einer Eigenschaft des technischen Geräts 650 bestimmt.The
Die erste, die zweite und die dritte Menge an Schichten 821-823, 921-923 bilden zusammen die Schichten 801-813, 901-914 des mehrschichtigen neuronalen Netzwerks.The first, second and third sets of layers 821-823, 921-923 together form layers 801-813, 901-914 of the multilayer neural network.
Die Eigenschaften des Programmcodes 800, 900 und/oder die Eigenschaften des technischen Geräts betreffen die Eigenschaften bei der Ansteuerung des technischen Geräts 650, beispielsweise ein Quality-of-Service, eine Latenzzeit oder eine Bandbreite für eine Datenübertragung.The properties of the
Das Konfigurations-Verfahren 700 beruht auf dem Prinzip des maschinellen Lernens, wobei auch das Prinzip des "Reinforcement Learning" auf DDNN angewandt wird, um eine besonders effiziente Konfiguration zu erhalten.The
Das Konfigurations-Verfahren 700 wird fortlaufend ausgeführt und die Konfiguration der Schichten dynamisch an Systemparameter wie der aktuelle Datenverkehr im Netz, Anforderungen an Kommunikation, Latenzzeiten, Datenschutz von Nutzer- oder Sensordaten, sowie Systemgenauigkeit angepasst.The
Das Konfigurations-Verfahren 700 kann auch erneut ausgeführt werden, wenn ein vorbestimmter Zeitpunkt erreicht ist oder ein vorbestimmtes Ereignis, wie in Form eines Interrupts, vorliegt.The
Das Konfigurations-Verfahren kann sowohl die Menge an Schichten wie auch den Programmcode derart anpassen, dass die Gesamtanzahl an Schichten modifiziert wird, um den Programmcode insgesamt effizienter zu machen. Mit anderen Worten kann der jeweils aktuelle Programmcode eine Teilmenge des ursprünglichen Programmcodes sein und somit weniger Schichten aufweisen, als ursprünglich, falls ein Gerät verwendet wird, welches nicht alle Funktionen des ursprünglichen Programmcodes unterstützt oder vorübergehend deaktiviert werden. Dieser Aspekt ist in den Figuren nicht dargestellt.The configuration method can adapt both the amount of layers and the program code in such a way that the total number of layers is modified in order to make the program code more efficient overall. In other words, the current program code can be a subset of the original program code and thus have fewer layers than originally if a device is used that does not support all functions of the original program code or is temporarily deactivated. This aspect is not shown in the figures.
Die erste, die zweite und die dritte Menge an Schichten 821-823, 921-923, sowie der jeweiligen Programmteil 851-853, 951-953 werden entsprechend fortlaufend neu bestimmt.The first, the second and the third set of layers 821-823, 921-923, as well as the respective program part 851-853, 951-953 are correspondingly continuously redefined.
Der Programmcode 800, 900 weist in der Figur mehr als zehn Schichten 801-813, 901-914 auf, kann aber durchaus auch mehr Schichten umfassen.The
In manchen Anwendungen sind mehr als 150 Schichten des neuronalen Netzwerks vorgesehen.In some applications there are more than 150 layers of the neural network.
Proben der Cloud 600 können über den Cloud-Ausgang 601 klassifiziert und für die Konfiguration herangezogen werden.Samples from the
Proben des Geräts 650 können über den lokalen Ausgang 602 klassifiziert und für die Konfiguration herangezogen werden.Samples of the
Ferner können Proben der Edge 620 über den Edge-Ausgang 603 klassifiziert werden und für die Konfiguration herangezogen werden.Furthermore, samples of the
Ein erfindungsgemäßes System implementiert das erfindungsgemäße Verfahren beispielsweise gemäß der Systemarchitektur der
Unter dem Gerät 650 kann ein oder mehrere unabhängige IoT-Devices verstanden werden. Zur besseren Übersicht ist nur ein Gerät 650 eingezeichnet.
Die Edge 620 weist in diesem Beispiel zwei Edge-Ausführungsvorrichtungen 625, 626 auf, welche mittels zweier Programmcodes 800, 900 angesteuert werden.In this example, the
Das Gerät 650 weist in diesem Beispiel vier Device-Ausführungsvorrichtungen auf, wobei zwei Device-Ausführungsvorrichtungen 655, 656, welche mittels der zwei Programmcodes 800, 900 angesteuert werden.In this example, the
Dadurch soll beispielhaft gezeigt werden, dass unterschiedliche Geräte von einem Verfahren in derselben Cloud 600 aus angesteuert werden können. Es ist klar, dass auch gleichartige Geräte 650 verwendet werden können, wodurch die Pfade der Programmcodes eine gleiche Länge aufweisen, wie in
Es können die Software-Systemarchitekturen gemäß der
Beispielsweise kann eine dynamische Konfiguration zwischen der Cloud 300 und dem verteilten Gerät 350 gemäß der
Der erste Programmteil 851 bildet die erste Menge an Schichten 821 des neuronalen Netzwerks mit sechs Schichten 801-806.The
Der zweite Programmteil 852 bildet die zweite Menge an Schichten 822 des neuronalen Netzwerks mit vier Schichten 807-810.The
Der dritte Programmteil 853 bildet die dritte Menge an Schichten 823 des neuronalen Netzwerks mit drei Schichten 811-813.The
Der Programmcode 800 ist dazu vorgesehen, ein Gerät 650, d.h. eine Device-Ausführungsvorrichtung 655 anzusteuern, welches über die Edge 620, d.h. der Edge-Ausführungsvorrichtung 625, mit der Cloud 600, d.h. der Cloud-Ausführungsvorrichtung 605, verbunden ist.The
Der erste Programmteil 951 bildet die erste Menge an Schichten 921 des neuronalen Netzwerks mit sechs Schichten 901-906, welche den sechs Schichten 801-806 der Programmcodes 800 entsprechen.The
Der zweite Programmteil 952 bildet die zweite Menge an Schichten 922 des neuronalen Netzwerks mit zwei Schichten 907-908.The
Der dritte Programmteil 953 bildet die dritte Menge an Schichten 923 des neuronalen Netzwerks mit sechs Schichten 909-914.The
Der Programmcode 900 ist dazu vorgesehen, ein Gerät 650, d.h. eine Device-Ausführungsvorrichtung 656 anzusteuern, welches über die Edge 620, d.h. der Edge-Ausführungsvorrichtung 626, mit der Cloud 600, d.h. der Cloud-Ausführungsvorrichtung 605, verbunden ist.The
- 11
- Erfassen von SensordatenAcquisition of sensor data
- 22
- Betätigung von AktuatorenOperation of actuators
- 1010
- Dienstservice
- 1111
- Sensor(en)Sensor (s)
- 1212
- Statusstatus
- 1313
- AktionenActions
- 1414th
- Bedingungenconditions
- 1515th
- Aktuator(en)Actuator (s)
- 2020th
- UmgebungSurroundings
- 100, 200, 300, 400, 500, 600100, 200, 300, 400, 500, 600
- CloudCloud
- 101, 201, 301, 401, 501, 601101, 201, 301, 401, 501, 601
- Cloud AusgangCloud output
- 402, 502, 602402, 502, 602
- Edge AusgangEdge exit
- 203, 303, 403, 503, 603203, 303, 403, 503, 603
- Lokaler AusgangLocal exit
- 250, 350, 450, 550, 650250, 350, 450, 550, 650
- Geräteequipment
- 420, 520, 620420, 520, 620
- EdgeEdge
- 605605
- Cloud-AusführungsvorrichtungCloud execution device
- 625625
- Edge-AusführungsvorrichtungEdge execution device
- 655655
- Device-AusführungsvorrichtungDevice execution device
- 700700
- Konfigurations-VerfahrenConfiguration procedure
- 710, 720, 730710, 720, 730
- Konfiguration der einzelnen ProgrammteileConfiguration of the individual program parts
- 800, 900800, 900
- ProgrammcodeProgram code
- 801-813, 901-914801-813, 901-914
- Schichten des ProgrammcodeLayers of program code
- 821-823, 921-923821-823, 921-923
- Menge an SchichtenAmount of layers
- 851-853, 951-953851-853, 951-953
- ProgrammteilPart of the program
Claims (13)
und der erste Programmteil (851, 951) eine erste Menge an Schichten (821, 921) des neuronalen Netzwerks bildet und von der Cloud-Ausführungsvorrichtung (605) ausgeführt wird und die Device-Ausführungsvorrichtung (655, 656) ansteuert,
und der dritte Programmteil (853, 953) eine dritte Menge an Schichten (823, 923) des neuronalen Netzwerks bildet und von der Device-Ausführungsvorrichtung (655, 656) ausgeführt wird und das technische Gerät (650) ansteuert,
und vom System ferner ein Konfigurations-Verfahren (700) ausgeführt wird, welches die erste und die dritte Menge an Schichten (821, 823, 921, 923) und den jeweiligen Programmteil (851, 853, 951, 953) entsprechend neu bestimmt, daraus den ersten und dritten Programmteil (851, 853, 951, 953) bestimmt und in die zugehörige Ausführungsvorrichtung (605, 655) lädt, und das System den Programmcode (800, 900) ausführt und das technische Gerät (650) ansteuert,
wobei das Konfigurations-Verfahren (700) von zumindest einer Eigenschaft des Programmcodes (800, 900) oder zumindest einer Eigenschaft des technischen Geräts (650) bestimmt ist.Method for controlling a technical device (650) by means of a program code (800, 900) which is executed by a system, and the system is a multi-layer neural network with layers (801-813, 901-914), as well as a cloud execution device ( 605) and a device execution device (655, 656), and the program code (800, 900) is formed by a first program part (851, 951) and a third program part (853, 953),
and the first program part (851, 951) forms a first set of layers (821, 921) of the neural network and is executed by the cloud execution device (605) and controls the device execution device (655, 656),
and the third program part (853, 953) forms a third set of layers (823, 923) of the neural network and is executed by the device execution device (655, 656) and controls the technical device (650),
and the system furthermore executes a configuration method (700) which redefines the first and the third quantity of layers (821, 823, 921, 923) and the respective program part (851, 853, 951, 953) accordingly, therefrom the first and third program parts (851, 853, 951, 953) are determined and loaded into the associated execution device (605, 655), and the system executes the program code (800, 900) and controls the technical device (650),
wherein the configuration method (700) is determined by at least one property of the program code (800, 900) or at least one property of the technical device (650).
und der erste Programmteil (851, 951) eine erste Menge an Schichten (821, 921) des neuronalen Netzwerks bildet und von der Cloud-Ausführungsvorrichtung (605) ausgeführt wird und die Edge-Ausführungsvorrichtung (625, 626) ansteuert,
und der zweite Programmteil (852, 952) eine zweite Menge an Schichten (822, 922) des neuronalen Netzwerks bildet und von der Edge- Ausführungsvorrichtung (625, 626) ausgeführt wird und die Device-Ausführungsvorrichtung (655, 656) ansteuert,
und der dritte Programmteil (853, 953) eine dritte Menge an Schichten (823, 923) des neuronalen Netzwerks bildet und von der Device-Ausführungsvorrichtung (655, 656) ausgeführt wird und das technische Gerät (650) ansteuert,
und ein Konfigurations-Verfahren (700) ausgeführt wird, welches die erste, die zweite und die dritte Menge an Schichten (821-823, 921-923) bestimmt, daraus den ersten, zweiten und dritten Programmteil (851-853, 951-953) bestimmt und in die zugehörige Ausführungsvorrichtung (605, 625, 655) lädt, und das System den Programmcode (800, 900) ausführt und das technische Gerät (650) ansteuert,
wobei das Konfigurations-Verfahren (700) von zumindest einer Eigenschaft des Programmcodes (800, 900) oder zumindest einer Eigenschaft des technischen Geräts (650) bestimmt ist.Method for controlling a technical device (650) by means of a program code (800, 900) which is executed by a system, and the system is multilayered neural network with layers (801-813, 901-914), as well as a cloud execution device (605), an edge execution device (625, 626) and a device execution device (655, 656) and the program code (800, 900 ) is formed by a first program part (851, 951), a second program part (852, 952) and a third program part (853, 953),
and the first program part (851, 951) forms a first set of layers (821, 921) of the neural network and is executed by the cloud execution device (605) and controls the edge execution device (625, 626),
and the second program part (852, 952) forms a second set of layers (822, 922) of the neural network and is executed by the edge execution device (625, 626) and controls the device execution device (655, 656),
and the third program part (853, 953) forms a third set of layers (823, 923) of the neural network and is executed by the device execution device (655, 656) and controls the technical device (650),
and a configuration method (700) is carried out which determines the first, the second and the third quantity of layers (821-823, 921-923), from this the first, second and third program parts (851-853, 951-953) ) and loads it into the associated execution device (605, 625, 655), and the system executes the program code (800, 900) and controls the technical device (650),
wherein the configuration method (700) is determined by at least one property of the program code (800, 900) or at least one property of the technical device (650).
und der erste Programmteil (851, 951) eine erste Menge an Schichten (821, 921) des neuronalen Netzwerks bildet und die Cloud-Ausführungsvorrichtung (605) dazu eingerichtet ist, den ersten Programmteil (851, 951) auszuführen die Device-Ausführungsvorrichtung (655, 656) anzusteuern,
und der dritte Programmteil (853, 953) eine dritte Menge an Schichten (823, 923) des neuronalen Netzwerks bildet und die Device-Ausführungsvorrichtung (655, 656) dazu eingerichtet ist, den dritten Programmteil (853, 953) auszuführen und das technische Gerät (650) anzusteuern,
und eine Konfigurations-Vorrichtung dazu eingerichtet ist, ein Konfigurations-Verfahren (700) auszuführen, welches die erste und die dritte Menge an Schichten (821-823, 921-923) bestimmt, daraus den ersten und dritten Programmteil (851, 951, 853, 953) bestimmt und in die zugehörige Ausführungsvorrichtung (605, 655) lädt, und das System dazu eingerichtet ist, den Programmcode (800, 900) auszuführen und das technische Gerät (650) anzusteuern,
wobei das Konfigurations-Verfahren (700) von zumindest einer Eigenschaft des Programmcodes (800, 900) oder zumindest einer Eigenschaft des technischen Geräts (650) bestimmt ist.System for controlling a technical device (650) by means of a program code (800, 900), the system being a multi-layer neural network with layers (801-813, 901-914), as well as a cloud execution device (605) and a device execution device (655, 656), and the program code (800, 900) is formed by a first program part (851, 951) and a third program part (853, 953),
and the first program part (851, 951) forms a first set of layers (821, 921) of the neural network and the cloud execution device (605) is set up to execute the first program part (851, 951) the device execution device (655) , 656) to control,
and the third program part (853, 953) forms a third set of layers (823, 923) of the neural network and the device execution device (655, 656) is set up to execute the third program part (853, 953) and the technical device (650) to control,
and a configuration device is set up to execute a configuration method (700) which determines the first and the third set of layers (821-823, 921-923), from this the first and third program parts (851, 951, 853 , 953) and loads it into the associated execution device (605, 655), and the system is set up to execute the program code (800, 900) and to control the technical device (650),
wherein the configuration method (700) is determined by at least one property of the program code (800, 900) or at least one property of the technical device (650).
und der erste Programmteil (851, 951) eine erste Menge an Schichten (821, 921) des neuronalen Netzwerks bildet und eine Cloud dazu eingerichtet ist, die Cloud-Ausführungsvorrichtung (605) auszuführen und die Edge-Ausführungsvorrichtung (625, 626) anzusteuern,
und der zweite Programmteil (852, 952) eine zweite Menge an Schichten (822, 922) des neuronalen Netzwerks bildet und eine Edge-Ausführungsvorrichtung (625, 626) dazu eingerichtet ist, den zweiten Programmteil (852, 952) auszuführen und die Device-Ausführungsvorrichtung (655, 656) anzusteuern,
und der dritte Programmteil (853, 953) eine dritte Menge an Schichten (823, 923) des neuronalen Netzwerks bildet und die Device-Ausführungsvorrichtung dazu eingerichtet ist, den dritten Programmteil (853, 953) auszuführen und das technische Gerät (650) anzusteuern,
und eine Konfigurations-Vorrichtung dazu eingerichtet ist, ein Konfigurations-Verfahren (700) auszuführen, welches die erste, die zweite und die dritte Menge an Schichten (821-823, 921-923) bestimmt, daraus den ersten, zweiten und dritten Programmteil (851-853, 951-953) bestimmt und in die zugehörige Ausführungsvorrichtung (605, 625, 655) lädt, und das System dazu eingerichtet ist, den Programmcode (800, 900) auszuführen und das technische Gerät (650) anzusteuern,
wobei das Konfigurations-Verfahren (700) von zumindest einer Eigenschaft des Programmcodes (800, 900) oder zumindest einer Eigenschaft des technischen Geräts (650) bestimmt ist.System for controlling a technical device (650) by means of a program code (800, 900), the system being a multi-layer neural network with layers (801-813, 901-914), as well as a cloud execution device (605), an edge execution device (625, 626) and a device execution device (655, 656) and the program code (800, 900) from a first program part (851, 951), a second program part (852, 952) and a third program part (853, 953 ) is formed,
and the first program part (851, 951) forms a first set of layers (821, 921) of the neural network and a cloud is set up to execute the cloud execution device (605) and to control the edge execution device (625, 626),
and the second program part (852, 952) forms a second set of layers (822, 922) of the neural network and an edge execution device (625, 626) is set up to execute the second program part (852, 952) and the device Control the execution device (655, 656),
and the third program part (853, 953) forms a third set of layers (823, 923) of the neural network and the device execution device is set up to execute the third program part (853, 953) and to control the technical device (650),
and a configuration device is set up to carry out a configuration method (700) which determines the first, second and third set of layers (821-823, 921-923), from which the first, second and third program parts ( 851-853, 951-953) and loads it into the associated execution device (605, 625, 655), and the system is set up to execute the program code (800, 900) and to control the technical device (650),
wherein the configuration method (700) is determined by at least one property of the program code (800, 900) or at least one property of the technical device (650).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19164272.7A EP3712823A1 (en) | 2019-03-21 | 2019-03-21 | Method and device for controlling a technical appliance using a program code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19164272.7A EP3712823A1 (en) | 2019-03-21 | 2019-03-21 | Method and device for controlling a technical appliance using a program code |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3712823A1 true EP3712823A1 (en) | 2020-09-23 |
Family
ID=65894924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19164272.7A Withdrawn EP3712823A1 (en) | 2019-03-21 | 2019-03-21 | Method and device for controlling a technical appliance using a program code |
Country Status (1)
Country | Link |
---|---|
EP (1) | EP3712823A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139314A1 (en) * | 2015-09-04 | 2017-03-08 | Baidu USA LLC | Systems and methods for efficient neural network deployments |
-
2019
- 2019-03-21 EP EP19164272.7A patent/EP3712823A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3139314A1 (en) * | 2015-09-04 | 2017-03-08 | Baidu USA LLC | Systems and methods for efficient neural network deployments |
Non-Patent Citations (4)
Title |
---|
KO JONG HWAN ET AL: "Edge-Host Partitioning of Deep Neural Networks with Feature Space Encoding for Resource-Constrained Internet-of-Things Platforms", 2018 15TH IEEE INTERNATIONAL CONFERENCE ON ADVANCED VIDEO AND SIGNAL BASED SURVEILLANCE (AVSS), IEEE, 27 November 2018 (2018-11-27), pages 1 - 6, XP033518237, DOI: 10.1109/AVSS.2018.8639121 * |
LI HE ET AL: "Learning IoT in Edge: Deep Learning for the Internet of Things with Edge Computing", IEEE NETWORK, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 32, no. 1, 1 January 2018 (2018-01-01), pages 96 - 101, XP011676330, ISSN: 0890-8044, [retrieved on 20180125], DOI: 10.1109/MNET.2018.1700202 * |
TEERAPITTAYANON SURAT ET AL: "Distributed Deep Neural Networks Over the Cloud, the Edge and End Devices", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, IEEE COMPUTER SOCIETY, US, 5 June 2017 (2017-06-05), pages 328 - 339, XP033122945, ISSN: 1063-6927, [retrieved on 20170713], DOI: 10.1109/ICDCS.2017.226 * |
ZHAO ZHUORAN ET AL: "DeepThings: Distributed Adaptive Deep Learning Inference on Resource-Constrained IoT Edge Clusters", IEEE TRANSACTIONS ON COMPUTER AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 37, no. 11, 1 November 2018 (2018-11-01), pages 2348 - 2359, XP011692619, ISSN: 0278-0070, [retrieved on 20181017], DOI: 10.1109/TCAD.2018.2858384 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1183619B1 (en) | Situation-dependent operating semantic n-order network | |
DE10341574A1 (en) | Configuration and viewing display for an integrated predictive model control and optimization function block | |
DE10341573A1 (en) | Integrated model-based predictive control and optimization within a process control system | |
DE102005046747B3 (en) | Computer-aided learning of neural networks involves changing cross-links between first and second layers of neurons of neural network based on variable state of neural network which is determined using feature instances and categories | |
EP3575890B1 (en) | Assistance system for supporting planning of automation systems | |
DE102016117560A1 (en) | TOOL MACHINE FOR PRODUCING A SPEED DISTRIBUTION | |
EP3785178A1 (en) | Method and device for determining a network configuration of a neural network | |
WO2020114739A1 (en) | Control device for controlling a manufacturing plant, manufacturing plant and method | |
EP3712823A1 (en) | Method and device for controlling a technical appliance using a program code | |
DE102019216973A1 (en) | LEARNING PROCEDURES FOR NEURAL NETWORKS BASED ON EVOLUTIONARY ALGORITHMS | |
WO2021063572A1 (en) | Device and method for processing data from a neural network | |
DE102020208765A1 (en) | Image classifier with variable receptive fields in convolutional layers | |
DE102019115092A1 (en) | Determining an object recognition rate of an artificial neural network for object recognition for an automated motor vehicle | |
DE102021207753A1 (en) | EFFICIENT SECOND-ORDER PRUNING OF COMPUTER-IMPLEMENTED NEURAL NETWORKS | |
Lindemann | Datengetriebene Kompensation anomaler Prozessdynamiken in Automatisierungssystemen auf Basis adaptiver LSTM-Netze | |
EP3343476A1 (en) | Method and device for computer-aided design of a production process for producing a product | |
DE102021207754A1 (en) | GENERATION OF COMPUTER-IMPLEMENTED NEURAL NETWORKS WITH ELIMINATED ARCHITECTURAL BOTTLES | |
WO2020193481A1 (en) | Method and device for training and producing an artificial neural network | |
DE102005045120A1 (en) | Dynamic information selection device, has neuron network with neuron pools, which are networked with one another and have neurons, where global background signal is applied to part of neuron pools and can be adjusted to number of set values | |
WO2020229407A1 (en) | Classifier system and method for generating classification models in a distributed manner | |
DE102012011194A1 (en) | Method for training an artificial neural network | |
DE102022107276A1 (en) | System, method and computer program product for constructing and/or designing at least one component of a body that is optimally adapted to a specified configuration of a sensor set | |
DE102021124252A1 (en) | Neural network systems for abstract thinking | |
DE102022209037A1 (en) | Method for configuring a quantum circuit and device for configuring a quantum circuit | |
DE102021119818A1 (en) | Computer-implemented method for producing a software image suitable for a numerical simulation of at least part of a real control unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN PUBLISHED |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20210324 |