DE102022104325A1 - Method, system and computer program product for creating a data structure for projects based on artificial intelligence - Google Patents
Method, system and computer program product for creating a data structure for projects based on artificial intelligence Download PDFInfo
- Publication number
- DE102022104325A1 DE102022104325A1 DE102022104325.8A DE102022104325A DE102022104325A1 DE 102022104325 A1 DE102022104325 A1 DE 102022104325A1 DE 102022104325 A DE102022104325 A DE 102022104325A DE 102022104325 A1 DE102022104325 A1 DE 102022104325A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- program code
- representation
- representations
- vector space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 25
- 238000004590 computer program Methods 0.000 title claims description 8
- 239000013598 vector Substances 0.000 claims abstract description 122
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 238000004422 calculation algorithm Methods 0.000 claims description 27
- 238000010801 machine learning Methods 0.000 claims description 12
- 238000013527 convolutional neural network Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002068 genetic effect Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 210000004205 output neuron Anatomy 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 210000002364 input neuron Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/0499—Feedforward networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Erstellung einer Datenstruktur für auf künstlicher Intelligenz (KI) basierende Projekte (Pi) für die Durchführung von Suchanfragen, wobei ein Projekt (Pi) durch Daten (20) aus ein oder mehreren unterschiedlichen Datenquellen und einen oder mehreren Programmcode(s) (30) repräsentiert wird, umfassend:- Analysieren und Klassifizieren (S40) der Daten (20) zur Erstellung einer Daten-Repräsentation (322) in einem latenten Vektorraum (350);- Analysieren und Klassifizieren (S50) des Programmcodes (30) zur Erstellung einer Programmcode-Repräsentation (343) in dem latenten Vektorraum (350);- Verknüpfen (S60) der Daten-Repräsentation (322) und der Programmcode-Repräsentation (343) zu einer Projekt-Repräsentation (355) in dem latenten Vektorraum (350);- Erstellen (S70) von weiteren Daten-Repräsentationen (322), Programmcode-Repräsentationen (343) und Vektor-Repräsentationen (355) für eine Menge von weiteren Projekten (Pi) in dem latenten Vektorraum (350);- Durchführen (S90) einer Ähnlichkeitssuche in dem Vektorraum (350) zwischen den Daten-Repräsentationen (322), Programmcode-Repräsentationen (343) und Vektor-Repräsentationen (355) zumindest eines ersten Projekts (Pi) und zumindest eines zweiten Projekts (Pj) aus der Menge der Projekte (Pi).The invention relates to a method for creating a data structure for projects (Pi) based on artificial intelligence (AI) for carrying out search queries, a project (Pi) being replaced by data (20) from one or more different data sources and one or more program codes ( s) (30), comprising: - Analyzing and classifying (S40) the data (20) to create a data representation (322) in a latent vector space (350); - Analyzing and classifying (S50) the program code (30 ) for creating a program code representation (343) in the latent vector space (350);- concatenating (S60) the data representation (322) and the program code representation (343) into a project representation (355) in the latent vector space (350); - creating (S70) further data representations (322), program code representations (343) and vector representations (355) for a set of further projects (Pi) in the latent vector space (350); - executing (S90) a similarity search in the vector space (350) between the data representations (322), program code representations (343) and vector representations (355) of at least one first project (Pi) and at least one second project (Pj) from the Set of projects (Pi).
Description
Die Erfindung betrifft ein Verfahren, ein System und ein Computerprogrammprodukt zur Erstellung einer Datenstruktur für auf künstlicher Intelligenz basierende Projekte.The invention relates to a method, a system and a computer program product for creating a data structure for projects based on artificial intelligence.
Bei der Entwicklung und Weiterentwicklung von neuen industriell hergestellten Produkten, beispielsweise eines Kraftfahrzeugs, werden zunehmend Algorithmen der Maschinenlernens und der künstlichen Intelligenz eingesetzt. Die Erstellung der dazu erforderlichen Programmcodes insbesondere in Form von Quelltexten (engl.: source code) und der Sammlung von Daten ist mit einem großen Aufwand an Zeit und Kosten verbunden. Bisher ist es jedoch nicht in einer zufriedenstellenden Weise möglich, diese Programmcodes und gesammelten Daten für neue Projekte effizient zu nutzen, da sich das Wiederauffinden von passenden Programmiercodes und Daten für ein neues Projekt schwierig gestaltet. Die Daten und Programmcodes sind häufig nicht ausreichend segmentiert und klassifiziert, um Suchkriterien entwickeln zu können, mit denen die passenden Daten und Programmcode gefunden werden können. Des Weiteren beruhen Verfahren zum Suchen von Daten häufig auf einem direkten Vergleich zwischen den vorhandenen Daten und einem Suchbegriff bzw. einer Zielvorgabe. Hierdurch können jedoch Ähnlichkeiten zwischen einem vorhandenen Katalog von Programmcodes und Daten nicht ermittelt werden, da diese Suchverfahren dafür nicht ausgelegt sind.In the development and further development of new industrially manufactured products, for example a motor vehicle, machine learning algorithms and artificial intelligence are increasingly being used. The creation of the necessary program codes, in particular in the form of source code and the collection of data, involves a great deal of time and money. So far, however, it has not been possible in a satisfactory manner to use these program codes and collected data efficiently for new projects, since it is difficult to find suitable programming codes and data for a new project. The data and program code are often not sufficiently segmented and classified to be able to develop search criteria with which the appropriate data and program code can be found. Furthermore, methods for searching for data are often based on a direct comparison between the existing data and a search term or a target specification. However, similarities between an existing catalog of program codes and data cannot be determined in this way, since these search methods are not designed for this.
Im Bereich der Computerlinguistik (engl. Natural Language Processing (NLP)) finden sich Verfahren zur Wörter- und Dokumentensuche, die Algorithmen der künstlichen Intelligenz wie die latente semantische Analyse (engl. Latent Semantic Analysis (LSA)) verwenden. Allerdings ist eine direkte Anwendung dieser Verfahren für Entwicklungsprojekte für industriell hergestellte Produkte, für die eine Vielzahl von Daten und Programmiercodes verwendet werden, nicht möglich, da die Datenformate von verschiedenen Daten und Programmiercodes zu unterschiedlich sind.In the field of computer linguistics (English Natural Language Processing (NLP)) there are methods for word and document searches that use algorithms of artificial intelligence such as latent semantic analysis (English Latent Semantic Analysis (LSA)). However, direct application of these methods to development projects for manufactured products using a variety of data and programming codes is not possible because the data formats of various data and programming codes are too different.
Die
Die
Die
Die
Die der Erfindung zu Grunde liegende Aufgabe besteht nun darin, Möglichkeiten zur verbesserten Erstellung einer Datenstruktur für auf künstlicher Intelligenz basierende Projekte anzugeben, um Projektkomponenten, Programmcodes und Daten eines Projekts benutzerfreundlich wiederfinden und für neue Projekte nutzen zu können.The object on which the invention is based now consists in specifying possibilities for improved creation of a data structure for projects based on artificial intelligence in order to be able to find project components, program codes and data of a project again in a user-friendly manner and to be able to use them for new projects.
Diese Aufgabe wird hinsichtlich eines Verfahrens durch die Merkmale des Patentanspruchs 1, hinsichtlich eines Systems durch die Merkmale des Patentanspruchs 9, und hinsichtlich eines Computerprogrammprodukts durch die Merkmale des Patentanspruchs 15 erfindungsgemäß gelöst. Die weiteren Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.This object is achieved according to the invention with regard to a method by the features of patent claim 1, with regard to a system by the features of patent claim 9, and with regard to a computer program product by the features of patent claim 15. The further claims relate to preferred embodiments of the invention.
Durch die vorliegende Erfindung können die Daten und Programmcodes einer Vielzahl von Projekten als Repräsentationen in einem Vektorraum dargestellt werden, in dem sie mittels einer Ähnlichkeitsanfrage wieder auffindbar sind. Der Vektorraum wird durch automatisiertes endloses Lernen durch die Daten und Programmcodes der Vielzahl von Projekten erstellt, so dass sich Ähnlichkeitsstrukturen wie Cluster von Projekten selbstlernend entwickeln.The present invention allows the data and program codes of a large number of projects to be presented as representations in a vector space in which they can be found again using a similarity query. The vector space is created through automated endless learning through the data and program codes of the multitude of projects, so that similarity structures such as clusters of projects develop in a self-learning manner.
Gemäß einem ersten Aspekt stellt die Erfindung ein Verfahren zur Erstellung einer Datenstruktur für auf künstlicher Intelligenz (KI) basierende Projekte für die Durchführung von Suchanfragen bereit. Ein Projekt wird durch Daten aus ein oder mehreren unterschiedlichen Datenquellen und einen oder mehreren Programmcode(s) repräsentiert. Das Verfahren umfasst die Verfahrensschritte:
- - Übermitteln von Daten eines ersten Projekts an ein Eingabemodul, wobei die Daten Sensorsignale zumindest eines Sensorsystems umfassen und/oder aus zumindest einer Datenbank abgerufen werden;
- - Übermitteln zumindest eines Programmcodes des ersten Projekts an das Eingabemodul, wobei der Programmcode in einer für die Programmierung von Algorithmen des Maschinenlernens und der künstlichen Intelligenz geeigneten Programmiersprache erstellt wurde(n);
- - Weitergeben der Daten und des Programmiercodes an ein Repräsentationslernmodul, wobei das Repräsentationslernmodul Algorithmen der künstlichen Intelligenz verwendet;
- - Analysieren und Klassifizieren der Daten zur Erstellung einer Daten-Repräsentation in Form zumindest eines Vektors in einem latenten Vektorraum;
- - Analysieren und Klassifizieren des Programmcodes zur Erstellung einer Programmcode-Repräsentation in Form zumindest eines Vektors in dem latenten Vektorraum;
- - Verknüpfen der Daten-Repräsentation und der Programmcode-Repräsentation zu einer Projekt-Repräsentation in Form zumindest eines Vektors in dem latenten Vektorraum;
- - Erstellen von weiteren Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen für eine Menge von weiteren Projekten in dem latenten Vektorraum;
- - Weitergeben des latenten Vektorraums mit den berechneten weiteren Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen für eine Menge von Projekten an ein Suchmodul;
- - Durchführen einer Ähnlichkeitssuche in dem Vektorraum zwischen den Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen zumindest eines ersten Projekts und zumindest eines zweiten Projekts aus der Menge der Projekte.
- - Transmission of data of a first project to an input module, the data sensor include signals from at least one sensor system and/or are retrieved from at least one database;
- - Transmission of at least one program code of the first project to the input module, the program code being created in a programming language suitable for programming machine learning algorithms and artificial intelligence;
- - passing the data and the programming code to a representation learning module, wherein the representation learning module uses artificial intelligence algorithms;
- - Analyzing and classifying the data to create a data representation in the form of at least one vector in a latent vector space;
- - Analyzing and classifying the program code to create a program code representation in the form of at least one vector in the latent vector space;
- - linking the data representation and the program code representation to a project representation in the form of at least one vector in the latent vector space;
- - creating further data representations, program code representations and vector representations for a set of further projects in the latent vector space;
- - Passing on the latent vector space with the calculated further data representations, program code representations and vector representations for a set of projects to a search module;
- - Carrying out a similarity search in the vector space between the data representations, program code representations and vector representations of at least one first project and at least one second project from the set of projects.
In einer Weiterentwicklung ist vorgesehen, dass die Ergebnisse der Ähnlichkeitssuche als Ausgabedaten ausgegeben werden, insbesondere in Form von Bildern, Graphiken, Videosequenzen, akustischen Sequenzen, Textbausteinen, Hologrammen, und/oder Power-Point-Präsentationen.A further development provides that the results of the similarity search are output as output data, in particular in the form of images, graphics, video sequences, acoustic sequences, text modules, holograms and/or Power Point presentations.
In einer vorteilhaften Ausführungsform ist vorgesehen, dass das Repräsentationslernmodul zumindest einen ersten Encoder für die Daten und zumindest einen zweiten Encoder für den Programmcode umfasst, wobei der erste Encoder die Daten derart codiert, dass die Daten als Daten-Repräsentation in Form eines oder mehrerer Vektoren in dem latenten Vektorraum vorliegen, und der zweite Encoder den Programmcode derart codiert, dass der Programmcode als Programmcode-Repräsentation in Form eines oder mehrerer Vektoren in dem latenten Vektorraum vorliegt.In an advantageous embodiment, it is provided that the representation learning module comprises at least a first encoder for the data and at least a second encoder for the program code, with the first encoder encoding the data in such a way that the data is stored as a data representation in the form of one or more vectors in are present in the latent vector space, and the second encoder encodes the program code in such a way that the program code is present as a program code representation in the form of one or more vectors in the latent vector space.
Vorteilhafterweise ist vorgesehen, dass der latente Vektorraum als mehrdimensionaler Vektorraum mit einer Dimension, die der Repräsentation der Daten und des Programmcodes entspricht, ausgebildet ist.Provision is advantageously made for the latent vector space to be in the form of a multi-dimensional vector space with a dimension which corresponds to the representation of the data and the program code.
In einer weiteren Ausführungsform ist vorgesehen, dass für die Erstellung der Repräsentation der Daten von dem ersten Encoder Word2Vec und für die Erstellung der Repräsentation des Programmcodes von dem zweiten Encoder Doc2Vec verwendet wird.A further embodiment provides that Word2Vec is used to create the representation of the data from the first encoder and Doc2Vec is used to create the representation of the program code from the second encoder.
Insbesondere umfassen der erste Encoder und der zweite Encoder ein oder mehrere neuronale Netzwerke.In particular, the first encoder and the second encoder include one or more neural networks.
Vorteilhafterweise sind die neuronalen Netzwerke als tiefe neuronale Netzwerke und/oder rekurrente neuronale Netze und/oder gefaltete neuronale Netze (Convolutional Neural Networks) ausgebildet.Advantageously, the neural networks are designed as deep neural networks and/or recurrent neural networks and/or folded neural networks (convolutional neural networks).
In einer weiteren Ausführungsform ist vorgesehen, dass die Ähnlichkeitssuche in dem Vektorraum mithilfe von trigonometrischen Verfahren durchgeführt wird und/oder ein Ähnlichkeitsfaktor für die Ähnlichkeit zwischen den Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen zumindest eines ersten Projekts und zumindest eines zweiten Projekts aus der Menge der Projekte ausgegeben wird.In a further embodiment it is provided that the similarity search in the vector space is carried out using trigonometric methods and/or a similarity factor for the similarity between the data representations, program code representations and vector representations of at least one first project and at least one second project the amount of projects is spent.
Gemäß einem zweiten Aspekt stellt die Erfindung ein System zur Erstellung einer Datenstruktur für auf künstlicher Intelligenz basierende Projekte für die Durchführung von Suchanfragen bereit. Ein Projekt ist durch Daten aus ein oder mehreren unterschiedlichen Datenquellen und einen oder mehrere Programmcode(s) repräsentierbar. Das System umfasst ein Eingabemodul, ein Repräsentationslernmodul und ein Suchmodul. Das Eingabemodul ist ausgebildet, Daten eines ersten Projekts zu empfangen, wobei die Daten Sensorsignale zumindest eines Sensorsystems umfassen und/oder aus zumindest einer Datenbank abgerufen werden, und zumindest einen Programmcode des ersten Projekts zu empfangen, wobei der Programmcode in einer für die Programmierung von Algorithmen des Maschinenlernens und der künstlichen Intelligenz geeigneten Programmiersprache erstellt wurde, und die Daten und den Programmiercode an das Repräsentationslernmodul weiterzugeben. Das Repräsentationslernmodul verwendet Algorithmen der künstlichen Intelligenz und ist ausgebildet, die Daten zu analysieren und zu klassifizieren zur Erstellung einer Daten-Repräsentation in Form zumindest eines Vektors in einem latenten Vektorraum, den Programmcode zu analysieren und zu klassifizieren zur Erstellung einer Programmcode-Repräsentation in Form zumindest eines Vektors in dem latenten Vektorraum, und die Daten-Repräsentation und die Programmcode-Repräsentation zu einer Projekt-Repräsentation in Form zumindest eines Vektors in dem latenten Vektorraum zu verknüpfen. Das Repräsentationslernmodul ist darüber hinaus ausgebildet, weitere Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen für eine Menge von weiteren Projekten in dem latenten Vektorraum zu erstellen, und den berechneten Vektorraum an das Suchmodul weiterzugeben. Das Suchmodul ist ausgebildet, eine Ähnlichkeitssuche in dem Vektorraum zwischen den Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen zumindest eines ersten Projekts und zumindest eines zweiten Projekts aus der Menge der Projekte durchzuführen.According to a second aspect, the invention provides a system for creating a data structure for projects based on artificial intelligence for performing search queries. A project can be represented by data from one or more different data sources and one or more program code(s). The system includes an input module, a representation learning module, and a search module. The input module is designed to receive data from a first project, the data comprising sensor signals from at least one sensor system and/or being retrieved from at least one database, and to receive at least one program code from the first project, the program code being in a format for programming algorithms programming language suitable for machine learning and artificial intelligence, and to pass the data and the programming code to the representation learning module. The representation learning module uses artificial intelligence algorithms and is designed to analyze and classify the data to create a data representation in the form of at least one vector in a latent vector space, to analyze and classify the program code to create a program code representation in the form of at least one vector in the latent vector space, and the data representation and the program code representation to a project representation in To link the form of at least one vector in the latent vector space. The representation learning module is also designed to create further data representations, program code representations and vector representations for a number of further projects in the latent vector space and to forward the calculated vector space to the search module. The search module is designed to carry out a similarity search in the vector space between the data representations, program code representations and vector representations of at least one first project and at least one second project from the set of projects.
In einer Weiterentwicklung ist vorgesehen, dass die Ergebnisse der Ähnlichkeitssuche als Ausgabedaten ausgegeben werden, insbesondere in Form von Bildern, Graphiken, Videosequenzen, akustischen Sequenzen, Textbausteinen, Hologrammen, und/oder Power-Point-Präsentationen.A further development provides that the results of the similarity search are output as output data, in particular in the form of images, graphics, video sequences, acoustic sequences, text modules, holograms and/or Power Point presentations.
In einer vorteilhaften Ausführungsform ist vorgesehen, dass das Repräsentationslernmodul zumindest einen ersten Encoder für die Daten und einen zweiten Encoder für den Programmcode umfasst, wobei der erste Encoder die Daten derart codiert, dass die Daten als Daten-Repräsentation in Form eines oder mehrerer Vektoren in dem latenten Vektorraum vorliegen, und der zweite Encoder den Programmcode derart codiert, dass der Programmcode als Programmcode-Repräsentation in Form eines oder mehrerer Vektoren in dem latenten Vektorraum vorliegt.In an advantageous embodiment, it is provided that the representation learning module comprises at least a first encoder for the data and a second encoder for the program code, with the first encoder encoding the data in such a way that the data as a data representation in the form of one or more vectors in the latent vector space are present, and the second encoder encodes the program code in such a way that the program code is present as a program code representation in the form of one or more vectors in the latent vector space.
Vorteilhafterweise ist der latente Vektorraum als mehrdimensionaler Vektorraum mit einer Dimension, die der Repräsentation der Daten und des Programmcodes entspricht, ausgebildet.The latent vector space is advantageously in the form of a multi-dimensional vector space with a dimension that corresponds to the representation of the data and the program code.
In einer weiteren Ausführungsform ist vorgesehen, dass für die Erstellung der Repräsentation der Daten von dem ersten Encoder Word2Vec und für die Erstellung der Repräsentation des Programmcodes von dem zweiten Encoder Doc2Vec verwendet wird.A further embodiment provides that Word2Vec is used to create the representation of the data from the first encoder and Doc2Vec is used to create the representation of the program code from the second encoder.
Insbesondere umfassen der erste Encoder und der zweite Encoder ein oder mehrere neuronale Netzwerke, wobei die neuronalen Netzwerke als tiefe neuronale Netzwerke und/oder rekurrente neuronale Netze und/oder gefaltete neuronale Netze (Convolutional Neural Networks) ausgebildet sind.In particular, the first encoder and the second encoder comprise one or more neural networks, the neural networks being designed as deep neural networks and/or recurrent neural networks and/or folded neural networks (convolutional neural networks).
Gemäß einem dritten Aspekt stellt die Erfindung ein Computerprogrammprodukt bereit, das einen ausführbaren Programmcode umfasst, der so konfiguriert ist, dass er bei seiner Ausführung das Verfahren gemäß dem ersten Aspekt ausführt.According to a third aspect, the invention provides a computer program product comprising executable program code configured, when executed, to carry out the method according to the first aspect.
Nachfolgend wird die Erfindung anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert.The invention is explained in more detail below with reference to exemplary embodiments illustrated in the drawing.
Dabei zeigt:
-
1 ein Blockdiagramm zur Erläuterung eines Ausführungsbeispiels eines erfindungsgemäßen Systems; -
3 eine schematische Darstellung eines Vektorraums mit Repräsentationen; -
3 ein Flussdiagramm zur Erläuterung der einzelnen Verfahrensschritte eines erfindungsgemäßen Verfahrens; -
4 ein Blockdiagramm eines Computerprogrammprodukt gemäß einer Ausführungsform des dritten Aspekts der Erfindung.
-
1 a block diagram to explain an embodiment of a system according to the invention; -
3 a schematic representation of a vector space with representations; -
3 a flowchart to explain the individual steps of a method according to the invention; -
4 a block diagram of a computer program product according to an embodiment of the third aspect of the invention.
Zusätzliche Kennzeichen, Aspekte und Vorteile der Erfindung oder ihrer Ausführungsbeispiele werden in der nachfolgenden Beschreibung in Verbindung mit den Ansprüchen erläutert.Additional characteristics, aspects and advantages of the invention or its embodiments are explained in the following description in connection with the claims.
Ein auf Algorithmen des Maschinenlernens basierendes Projekt Pi umfasst eine Vielzahl von Daten 20 aus unterschiedlichen Datenquellen und einen oder mehrere Programmcode(s) 30 mit einer Vielzahl von Programmcode-Segmenten.A project P i based on machine learning algorithms comprises a large number of
Bei den Daten 20 kann es sich um Messwerte, Bilder, Grafiken, Diagramme, Hologramme, Zahlenreihen, Videosequenzen, akustische Sequenzen, Textdateien, Dokumente, gelabelte Daten, etc. handeln. Unter „Daten“ sind im Zusammenhang mit der Erfindung sowohl Rohdaten als auch bereits aufbereitete Daten zu verstehen. Die Daten 20 können aus Sensorsignalen von Sensoren eines Sensorsystems 700 ermittelt werden. Bei den Sensoren des Sensorsystems 700 kann es sich um 2D/3D-Kameras, LiDAR-Sensoren, Radar-Sensoren, Ultraschall-Sensoren, GPS-Sensoren, Kraft/Drehmoment-Sensoren, Lambdasonden, Drehmomentsensoren, Drehzahlsensoren, Beschleunigungssensoren, Geschwindigkeitssensoren, kapazitive Sensoren, induktive Sensoren, Drucksensoren, Temperatursensoren, Feuchtigkeitssensoren, Gassensoren etc. handeln. Das Sensorsystem 700 kann in einer Entität integriert sein, auf die sich das Projekt Pi bezieht, wie beispielsweise ein Projekt zur Weiterentwicklung der Entität aufgrund von neuen technischen Erfordernissen. Bei der Entität kann es beispielsweise um ein Kraftfahrzeug, ein autonom fahrendes Fahrzeug, ein landwirtschaftliches Fahrzeug wie ein Mähdrescher, ein Roboter in der Produktion oder in Service- und Pflegeeinrichtungen, ein Wasserfahrzeug oder um ein Flugobjekt wie ein Flugzeug oder eine Drohne handeln. Die Entität kann aber auch als eine komplexe Einrichtung wie eine Industrieanlage ausgebildet sein. Des Weiteren kann die Entität als ein wissenschaftliches Analyseinstrument oder als medizinisches Gerät zur Diagnose und Unterstützung von Körperfunktionen ausgebildet sein. Die Daten 20 können in unterschiedlichen Speichereinheiten und Datenbanken 720 gespeichert sein, aus denen sie abgerufen werden können.The
Der Programmcode 30 ist insbesondere als Quelltext (engl. source code) ausgebildet und wurde in einer besonders für Algorithmen der künstlichen Intelligenz geeigneten Programmiersprache, wie beispielsweise Python, C++, Java, Javascript, etc., erstellt. Beispiele von Algorithmen der künstlichen Intelligenz sind genetische Algorithmen, neuronale Netze und Lernverstärkungsagenten (engl.: reinforcement learning agent), die wiederum verschiedene weitere Algorithmen verwenden.The
Genetische Algorithmen werden insbesondere zum Lösen von Optimierungsproblemen genutzt, bei denen eine anfängliche Lösung iterativ verbessert wird. Diese anfängliche Lösung ist zufällig entstanden und mit genetischen Mitteln wie der Kombination und der Rekombination werden die zufällig entstandenen Elemente derart verändert, dass eine neue Lösung entsteht. Genetic algorithms are used in particular to solve optimization problems where an initial solution is improved iteratively. This initial solution arose by chance, and through genetic means such as combination and recombination, the elements that arose by chance are modified in such a way that a new solution emerges.
Neuronale Netze werden oft als Prototyp von KI-Algorithmen angegeben. Ein neuronales Netzwerk besteht aus Neuronen, die in mehreren Schichten angeordnet und unterschiedlich miteinander verbunden sind. Ein Neuron ist in der Lage, an seinem Eingang Informationen von außerhalb oder von einem anderen Neuron entgegenzunehmen, die Information in einer bestimmten Art zu bewerten und sie in veränderter Form am Neuronen-Ausgang an ein weiteres Neuron weiterzuleiten oder als Endergebnis auszugeben. Hidden-Neuronen sind zwischen den Input-Neuronen und Output-Neuronen angeordnet. Je nach Netzwerktyp können mehrere Schichten von Hidden-Neuronen vorhanden sein. Sie sorgen für die Weiterleitung und Verarbeitung der Informationen. Output-Neuronen liefern schließlich ein Ergebnis und geben dieses an die Außenwelt aus. Durch die Anordnung und die Verknüpfung der Neuronen entstehen verschiedene Typen von neuronalen Netzwerken wie Feedforward-Netzwerke, rückgekoppelte neuronale Netzwerke (engl. Recurrent Neural Networks (RNN) oder gefaltete neuronale Netze (engl. Convolutional Neural Networks (CNN)).Neural networks are often given as a prototype of AI algorithms. A neural network consists of neurons that are arranged in several layers and connected to each other in different ways. A neuron is able to receive information from outside or from another neuron at its input, to evaluate the information in a certain way and to pass it on to another neuron in a changed form at the neuron output or to output it as the end result. Hidden neurons are located between the input neurons and output neurons. Depending on the network type, there can be several layers of hidden neurons. They ensure the forwarding and processing of the information. Finally, output neurons deliver a result and output it to the outside world. The arrangement and linking of the neurons creates different types of neural networks such as feedforward networks, recurrent neural networks (RNN) or folded neural networks (convolutional neural networks (CNN)).
Das Convolutional Neural Network ist eine besondere Form eines künstlichen neuronalen Netzwerks. Es besitzt mehrere Faltungsschichten und ist für maschinelles Lernen und Anwendungen mit Künstlicher Intelligenz (KI) im Bereich der Mustererkennung sehr gut geeignet. Die einzelnen Schichten des CNN sind die Convolutional-Schicht, die Pooling-Schicht und die vollständig verknüpfte Schicht. Die Convolutional-Schicht ist die eigentliche Faltungsebene und in der Lage, in den Eingabedaten einzelne Merkmale zu erkennen und zu extrahieren. Bei der Muster- und Bilderkennung können dies Merkmale wie Linien, Kanten oder bestimmte Formen sein. Die Verarbeitung der Eingabedaten erfolgt in Form von Tensoren wie einer Matrix oder Vektoren. Die Pooling-Schicht, auch Subsampling-Schicht genannt, verdichtet und reduziert die Auflösung der erkannten Merkmale durch passende Filterfunktionen. Durch das reduzierte Datenaufkommen erhöht sich die Berechnungsgeschwindigkeit. Da das CNN in mehrere lokale, teilverknüpfte Schichten aufgeteilt ist, hat es einen wesentlich geringeren Speicherplatzbedarf als vollverknüpfte neuronale Netze. Ebenfalls stark verkürzt ist die Trainingszeit des Convolutional Neural Networks. Mit dem Einsatz moderner Grafikprozessoren lassen sich CNNs sehr effizient trainieren.The convolutional neural network is a special form of an artificial neural network. It has multiple layers of convolution and is well suited for machine learning and artificial intelligence (AI) applications in the field of pattern recognition. The individual layers of the CNN are the convolutional layer, the pooling layer and the fully linked layer. The convolutional layer is the actual convolution layer and is able to recognize and extract individual features in the input data. In the case of pattern and image recognition, these can be features such as lines, edges or specific shapes. The input data is processed in the form of tensors such as a matrix or vectors. The pooling layer, also known as the subsampling layer, compresses and reduces the resolution of the recognized features using appropriate filter functions. The reduced data volume increases the calculation speed. Since the CNN is divided into several local, partially connected layers, it requires significantly less storage space than fully connected neural networks. The training time of the convolutional neural network is also greatly reduced. With the use of modern graphics processors, CNNs can be trained very efficiently.
Neuronale Netze sind auch deswegen interessant, da sie sich kombinieren lassen, so dass der Lernerfolg gesteigert werden kann. Derartig gekoppelte neuronale Netze werden auch als Deep Learning bezeichnet.Neural networks are also interesting because they can be combined so that learning success can be increased. Such coupled neural networks are also referred to as deep learning.
Ein Lernverstärkungsagent lernt eine Strategie, um eine Belohnung zu maximieren. Algorithmen für den Lernverstärkungsagenten sind beispielsweise als ein Markov-Entscheidungsprozess, Temporal Difference Learning (TD-Learning) oder als Q-Learning oder als SARSA oder als Monte-Carlo-Simulation oder als Actor-Critic ausgebildet.A learning reinforcement agent learns a strategy to maximize a reward. Algorithms for the learning reinforcement agent are designed, for example, as a Markov decision process, temporal difference learning (TD learning) or as Q-learning or as SARSA or as a Monte Carlo simulation or as an actor-critic.
Um ein Projekt Pi und die zugehörigen Daten 20 und Programmcode-Segmente des Programmcodes 30 besser wieder auffinden zu können und für neue Projekte Pj zu nutzen, ist das erfindungsgemäße System 100 vorgesehen. Das System 100 umfasst ein Eingabemodul 200, ein Repräsentationslernmodul 300 und ein Suchmodul 400.In order to be able to find a project P i and the associated
Das Eingabemodul 200, das Repräsentationslernmodul 300 und das Suchmodul 400 können jeweils mit einem Prozessor und/oder einer Speichereinheit versehen sein und als selbstständige Rechnereinheiten oder als cloudbasierte Lösung ausgebildet sein. Um eine schnelle Rechengeschwindigkeit zu ermöglichen, ist insbesondere vorgesehen, dass das Repräsentationslernmodul 300 und das Suchmodul 400 ganz oder teilweise in einer Cloud-Computing-Infrastruktur 700 integriert sind.The
Unter einem „Prozessor“ kann im Zusammenhang mit der Erfindung beispielsweise eine Maschine oder eine elektronische Schaltung verstanden werden. Bei einem Prozessor kann es sich insbesondere um einen Hauptprozessor (engl. Central Processing Unit, CPU), einen Mikroprozessor oder einen Mikrocontroller, beispielsweise eine anwendungsspezifische integrierte Schaltung oder einen digitalen Signalprozessor, möglicherweise in Kombination mit einer Speichereinheit zum Speichern von Programmbefehlen, etc. handeln. Auch kann unter einem Prozessor ein virtualisierter Prozessor, eine virtuelle Maschine oder eine Soft-CPU verstanden werden. Es kann sich beispielsweise auch um einen programmierbaren Prozessor handeln, der mit Konfigurationsschritten zur Ausführung des genannten erfindungsgemäßen Verfahrens ausgerüstet wird oder mit Konfigurationsschritten derart konfiguriert ist, dass der programmierbare Prozessor die erfindungsgemäßen Merkmale des Verfahrens, der Entität, der Module, oder anderer Aspekte und/oder Teilaspekte der Erfindung realisiert. Insbesondere kann der Prozessor hochparallele Recheneinheiten und leistungsfähige Grafikmodule enthalten.In the context of the invention, a “processor” can be understood to mean, for example, a machine or an electronic circuit. A processor can in particular be a central processing unit (CPU), a microprocessor or a microcontroller, for example an application-specific integrated circuit or a digital signal processor, possibly in combination with a memory unit for storing program instructions, etc . A processor can also be understood to mean a virtualized processor, a virtual machine or a soft CPU. It can also be a programmable processor, for example, which is equipped with configuration steps for executing the mentioned method according to the invention or is configured with configuration steps in such a way that the programmable processor implements the inventive features of the method, the entity, the modules, or other aspects and/or or implemented partial aspects of the invention. In particular, the processor can contain highly parallel computing units and powerful graphics modules.
Unter einer „Speichereinheit“ oder „Speichermodul“ und dergleichen kann im Zusammenhang mit der Erfindung beispielsweise ein flüchtiger Speicher in Form eines Arbeitsspeichers (engl. Random-Access Memory (RAM)) oder ein dauerhafter Speicher wie eine Festplatte oder ein Datenträger oder z. B. ein wechselbares Speichermodul verstanden werden. Es kann sich bei dem Speichermodul aber auch um eine cloudbasierte Speicherlösung handeln.In the context of the invention, a “memory unit” or “memory module” and the like can mean, for example, a volatile memory in the form of a random-access memory (RAM) or a permanent memory such as a hard disk or a data carrier or e.g. B. be understood as a removable memory module. However, the storage module can also be a cloud-based storage solution.
Unter einem „Modul“ kann im Zusammenhang mit der Erfindung beispielsweise ein Prozessor und/oder eine Speichereinheit zum Speichern von Programmbefehlen verstanden werden. Beispielsweise ist der Prozessor speziell dazu eingerichtet, die Programmbefehle derart auszuführen, damit der Prozessor und/oder die Steuereinheit Funktionen ausführt, um das erfindungsgemäße Verfahren oder einen Schritt des erfindungsgemäßen Verfahrens zu implementieren oder realisieren.In connection with the invention, a “module” can be understood to mean, for example, a processor and/or a memory unit for storing program instructions. For example, the processor is specially set up to execute the program instructions in such a way that the processor and/or the control unit executes functions in order to implement or realize the method according to the invention or a step of the method according to the invention.
Das Eingabemodul 200 kann in einem Computer, einem Tablet, einem Smartphone, etc. integriert sein und weist eine Benutzerschnittstelle 210 zur Eingabe von Daten 20 wie Bildern, Graphiken, Diagrammen, Zeitreihen, etc. und Programmcodes 30 eines Projekts Pi auf. Zudem ist das Eingabemodul 200 mit dem Sensorsystem 700 verbunden, das Sensorsignale der Sensoren direkt an das Eingabemodul 200 weitergibt. Zudem kann das Eingabemodul 200 mit einer Datenbank 720 verbunden sein, in welcher weitere Daten 20 und Programmcodes 30 des Projekts Pi abgelegt sind.The
Für die Kommunikation des Sensorsystems 700 und/oder der Datenbank 720 mit dem Eingabemodul 200 sind insbesondere drahtlose Verbindungen vorgesehen. Eine drahtlose Kommunikationsverbindung ist insbesondere als Mobilfunkverbindung und/oder einer Nahfeldkommunikationsverbindung wie Bluetooth®, Ethernet, NFC (near field communication) oder Wi-Fi® ausgebildet. Dies gilt in gleicher Weise für die Verbindungen zwischen dem Eingabemodul 200, dem Repräsentationslernmodul 300 und dem Suchmodul 400.In particular, wireless connections are provided for the communication of the
Des Weiteren kann vorgesehen sein, dass insbesondere das Eingabemodul 200 und/oder das Suchmodul 400 mit Mobilfunkmodulen des 5G-Standards ausgestattet sind. 5G ist der Mobilfunkstandard der fünften Generation und zeichnet sich im Vergleich zum 4G-Mobilfunkstandard durch höhere Datenraten bis zu 10 Gbit/sec, der Nutzung höherer Frequenzbereiche wie beispielsweise 2100, 2600 oder 3600 Megahertz, eine erhöhte Frequenzkapazität und damit einen erhöhten Datendurchsatz und eine Echtzeitdatenübertragung aus, da bis zu eine Million Geräte pro Quadratkilometer gleichzeitig ansprechbar sind. Die Latenzzeiten betragen wenige Millisekunden bis unter 1 ms, so dass Echtzeitübertragungen von Daten und von Berechnungsergebnissen möglich sind. Die in das Eingabemodul 200 eingegebenen Daten 20 und der/die Programmcodes 30 eines Projekts Pi können dann in Echtzeit an das in der Cloud-Computing-Infrastruktur 790 integrierte Repräsentationslernmodul 300 gesendet werden.Furthermore, it can be provided that in particular the
Diese Geschwindigkeit bei der Datenübermittlung ist vorteilhaft, wenn cloudbasierte Lösungen für die Verarbeitung der Daten 20 und der Programmcodes 30 verwendet werden sollen, da diese den Vorteil von hohen und damit schnellen Rechenleistungen bieten. Um die Verbindung zu der Cloud-Computing-Infrastruktur 790 mittels einer Mobilfunkverbindung zu schützen, sind insbesondere kryptographische Verschlüsselungsverfahren vorgesehen.This data transmission speed is advantageous if cloud-based solutions are to be used for processing the
Die Daten 20 und der/die Programmcode(s) 30 eines Projekts Pi werden an das Eingabemodul 200 übermittelt bzw. eingegeben und können von dem Eingabemodul 200 direkt an das Repräsentationslernmodul 300 weitergegeben werden. Es kann aber auch vorgesehen sein, dass die Daten 20 und der/die Programmcode(s) 30 eines Projekts Pi hinsichtlich bevorzugter Datenformate noch zusätzlich bearbeitet werden, so dass sie in einer codierten Form vorliegen, die von dem Repräsentationslernmodul 400 weiterverarbeitet werden kann. Hierfür weist das Eingabemodul 200 entsprechende Bearbeitungsalgorithmen auf.The
Das Repräsentationslernmodul 300 umfasst zumindest einen ersten Encoder 320 für die Daten 20 und einen zweiten Encoder 340 für den Programmcode 30. Der erste Encoder 320 ist ausgebildet, die Daten 20 derart zu codieren, dass die Daten 20 als eine Daten-Repräsentation 322 in Form eines oder mehrerer Vektoren in einem latenten Vektorraum 350 vorliegen. Der zweite Encoder 340 ist ausgebildet, den Programmcode 30 derart zu codieren, dass der Programmcode 30 als eine Programmcode-Repräsentation 343 in Form eines oder mehrerer Vektoren in dem latenten Vektorraum 350 vorliegt. Bei dem latenten Vektorraum 350 handelt es sich um einen mehrdimensionalen Vektorraum mit einer Dimension, die der Repräsentation der Daten 20 und des Programmcodes 30 entspricht. Dabei ist insbesondere vorgesehen, dass für die Erstellung der Repräsentation der Daten 20 von dem Encoder 320 Word2Vec und für die Erstellung der Repräsentation des Programmcodes 30 von dem Encoder 340 Doc2Vec verwendet wird. Word2Vec ist ein Konzept, mit dem Repräsentationsvektoren aus Wörtern erzeugt werden. Bei Doc2Vec handelt es sich um eine Weiterentwicklung von Word2Vec zur Erstellung von Dokumentenvektoren für Dokumente, die aus einer Vielzahl von Elementen bestehen und daher komplexer als einzelne Wörter sind. Die Daten 20 und die Programmcodes 30 eines Projekts Pi können somit in einem latenten Vektorraum 350 abgebildet werden. Um ein Projekt Pi in dem latenten Vektorraum 350 abzubilden, werden die Vektoren der Daten-Repräsentation 322 und die Vektoren der Programmcode-Repräsentation 343 miteinander verknüpft (konkateniert), so dass sie eine Projekt-Repräsentation 355 bilden, die ebenfalls in dem Vektorraum 350 abgebildet wird.The
Bei den Encodern 320, 340 handelt es sich insbesondere um tiefe Encoder, die tiefe neuronale Netze und insbesondere für gekoppelte neuronale Netze umfassen, die unterschiedliche Strukturen aufweisen können. Darüber hinaus können die Encoder 320, 340 weitere Strukturen und Algorithmen wie genetische Algorithmen und Lernverstärkungsagenten umfassen, um eine effiziente und präzise Klassifikation und Extraktion von Merkmalen der Daten 20 und der Programmcodes 30 durchzuführen, die die Basis für die Erstellung der Daten-Repräsentationen 322 und Programmcode-Repräsentationen 343 bildet.The
Für ein neues Projekt Pj werden dessen Daten 20 und der/die Programmcode(s) 30 dem Eingabemodul 20 übermittelt. Die Daten 20 und der/die Programmcode(s) 30 des neuen Projekts Pj werden von dem Repräsentationslernmodul 300 nun ebenfalls in Daten-Repräsentationen 322 und Programmcode-Repräsentationen 343 transformiert und in den Vektorraum 350 eingestellt. Der Vektorraum 350 wird somit mit jedem weiteren Lernzyklus durch Eingabe eines neuen Projekts Pj weiterentwickelt, wobei sich seine Dimension ständig verändern kann. Da für eine Vielzahl von Projekten Pi eine Codierung der jeweiligen Daten 20 und des Programmcodes 30 von dem Repräsentationslernmodul 300 durchgeführt wird, entsteht sukzessive in einem kontinuierlichen Lernmodus durch neue Projekte Pj ein latenter Vektorraum 350 mit einer Vielzahl von Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355. Der auf diese Weise generierte Vektorraum 350 wird an das Suchmodul 400 weitergegeben.The
Wie in der
Wenn nun die Ähnlichkeit zwischen den in dem Vektorraum 350 abgebildeten Projekten Pi und einem zukünftigen Projekt Pk ermittelt werden soll, so können virtuelle Daten 20 und Programmcodes 30 an Eingabemodul 200 übermittelt werden, aus denen das Repräsentationslernmodul 400 Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 ableitet, die mit den bereits im Vektorraum 350 vorhandenen Repräsentationen von dem Suchmodul 400 verglichen werden. Die gefundenen ähnlichen Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 können von dem Suchmodul 400 ausgegeben werden. Dabei kann insbesondere vorgesehen sein, dass das Suchmodul 400 Algorithmen wie Decoder umfasst, die die Datenformate der gefundenen Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 in benutzerfreundliche Datenformate transformiert.If the similarity between the projects P i depicted in the
Insbesondere können die Ähnlichkeiten zwischen den Daten-Repräsentationen, Programmcode-Repräsentationen und Vektor-Repräsentationen zumindest eines ersten Projekts und zumindest eines zweiten Projekts aus der Menge der Projekte durch einen Ähnlichkeitsfaktor, beispielsweise auf einer Skala zwischen 0 und 1, dargestellt werden.In particular, the similarities between the data representations, program code representations and vector representations of at least one first project and at least one second project from the set of projects can be represented by a similarity factor, for example on a scale between 0 and 1.
In einer Weiterentwicklung kann auch vorgesehen sein, dass für eine Suchanfrage in dem Vektorraum 350 eine Anforderung an das Eingabemodul 200 eingegeben wird, die von dem Eingabemodul 200 und/oder dem Datenrepräsentationsmodul 300 in Daten 20 und Programmcodes 30 derart transformiert werden, um daraus Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 für diese Anforderung zu erstellen. Die Anforderung kann in Form einer Textbeschreibung, einer Grafik und oder eines Diagramms in das Eingabemodul 200 eingegeben werden.In a further development it can also be provided that for a search query in the vector space 350 a request is input to the
Die vorliegende Erfindung beruht somit auf einem automatisierten endlosen Lernen von Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 zur Erstellung eines latenten Vektorraums 350, der die Basis für das Ermitteln von Ähnlichkeitsstrukturen bildet.The present invention is thus based on automated endless learning of
In der
In einem ersten Schritt S10 werden Daten 20 eines ersten Projekts Pi an ein Eingabemodul 200 übermittelt, wobei die Daten 20 Sensorsignale zumindest eines Sensorsystems 700 umfassen und/oder aus zumindest einer Datenbank 720 abgerufen werden.In a first step S10,
In einem Schritt S20 wird zumindest ein Programmcode 30 des ersten Projekts Pi an das Eingabemodul 200 übermittelt, wobei der Programmcode 30 in einer für die Programmierung von Algorithmen des Maschinenlernens und der künstlichen Intelligenz geeigneten Programmiersprache erstellt wurde(n).In a step S20, at least one
In einem Schritt S30 werden die Daten 20 und der Programmiercode 30 an ein Repräsentationslernmodul 300 übermittelt, wobei das Repräsentationslernmodul 300 Algorithmen der künstlichen Intelligenz verwendet;In a step S30, the
In einem Schritt S40 werden die Daten 20 analysiert und klassifiziert zur Erstellung einer Daten-Repräsentation 322 in Form zumindest eines Vektors in einem latenten Vektorraum 350.In a step S40, the
In einem Schritt S50 wird der Programmcode 30 analysiert und klassifiziert zur Erstellung einer Programmcode-Repräsentation 343 in Form zumindest eines Vektors in dem latenten Vektorraum 350.In a step S50, the
In einem Schritt S60 werden die Daten-Repräsentation 322 und die Programmcode-Repräsentation 343 verknüpft zu einer Projekt-Repräsentation 355 in Form zumindest eines Vektors in dem latenten Vektorraum 350.In a step S60, the
In einem Schritt S70 werden weitere Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Vektor-Repräsentationen 355 für eine Menge von weiteren Projekten Pi in dem latenten Vektorraum 350 erstellt.In a step S70
In einem Schritt S80 wird der latente Vektorraums 350 mit den berechneten weiteren Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Vektor-Repräsentationen 355 für eine Menge von Projekten Pi an ein Suchmodul 400 weitergegeben.In a step S80, the
In einem Schritt S90 wird eine Ähnlichkeitssuche in dem Vektorraum 350 zwischen den Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Vektor-Repräsentationen 355 zumindest eines ersten Projekts Pi und zumindest eines zweiten Projekts Pj aus der Menge der Projekte Pi durchgeführt. In a step S90, a similarity search is carried out in the
Mit der vorliegenden Erfindung kann somit das Wiederauffinden von Daten und Programmcodes eines Projekts effizient und wirkungsvoll durchgeführt werden. Die Daten und Programmcodes einer Vielzahl von Projekten werden als Repräsentationen in einem Vektorraum abgebildet, in dem sie mittels einer Ähnlichkeitsanfrage wieder auffindbar sind. Der Vektorraum wird durch automatisiertes endloses Lernen durch die Daten und Programmcodes der Vielzahl von Projekten gebildet, so dass sich Ähnlichkeitsstrukturen wie Cluster von Projekten selbstlernend entwickeln.The retrieval of data and program codes of a project can thus be carried out efficiently and effectively with the present invention. The data and program codes of a large number of projects are mapped as representations in a vector space in which they can be found again using a similarity query. The vector space is formed by automated endless learning through the data and program codes of the large number of projects, so that similarity structures such as clusters of projects develop in a self-learning manner.
BezugszeichenlisteReference List
- 2020
- DatenData
- 3030
- Programmcodeprogram code
- 100100
- Systemsystem
- 200200
- Eingabemodulinput module
- 210210
- Benutzerschnittstelleuser interface
- 300300
- RepräsentationslernmodulRepresentation Learning Module
- 320320
- Encoderencoders
- 322322
- Daten-Repräsentationdata representation
- 340340
- Encoderencoders
- 343343
- Programmcode-Repräsentationprogram code representation
- 350350
- latenter Vektorraumlatent vector space
- 355355
- Projekt-Repräsentationproject representation
- 400400
- Suchmodulsearch module
- 700700
- Sensorsystemsensor system
- 720720
- DatenbankDatabase
- 790790
- Cloud-Computing-Infrastrukturcloud computing infrastructure
- 900900
- Computerprogrammproduktcomputer program product
- 950950
- Programmcodeprogram code
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- US 2021/0294581 A1 [0004]US 2021/0294581 A1 [0004]
- US 2021/0019665 A1 [0005]US 2021/0019665 A1 [0005]
- US 2020/0348929 A1 [0006]US 2020/0348929 A1 [0006]
- WO 2011/126489 A1 [0007]WO 2011/126489 A1 [0007]
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022104325.8A DE102022104325A1 (en) | 2022-02-23 | 2022-02-23 | Method, system and computer program product for creating a data structure for projects based on artificial intelligence |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022104325.8A DE102022104325A1 (en) | 2022-02-23 | 2022-02-23 | Method, system and computer program product for creating a data structure for projects based on artificial intelligence |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022104325A1 true DE102022104325A1 (en) | 2023-08-24 |
Family
ID=87518562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022104325.8A Pending DE102022104325A1 (en) | 2022-02-23 | 2022-02-23 | Method, system and computer program product for creating a data structure for projects based on artificial intelligence |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102022104325A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011126489A1 (en) | 2010-04-09 | 2011-10-13 | Hewlett-Packard Development Company, L.P. | Method and system for comparing and locating projects |
US20200348929A1 (en) | 2019-05-02 | 2020-11-05 | EMC IP Holding Company LLC | Provenance-based reuse of software code |
US20210019665A1 (en) | 2019-07-18 | 2021-01-21 | International Business Machines Corporation | Machine Learning Model Repository Management and Search Engine |
US20210294581A1 (en) | 2018-08-03 | 2021-09-23 | Hitachi Automotive Systems, Ltd. | Method for Identifying Project Component, and Reusability Detection System Therefor |
-
2022
- 2022-02-23 DE DE102022104325.8A patent/DE102022104325A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011126489A1 (en) | 2010-04-09 | 2011-10-13 | Hewlett-Packard Development Company, L.P. | Method and system for comparing and locating projects |
US20210294581A1 (en) | 2018-08-03 | 2021-09-23 | Hitachi Automotive Systems, Ltd. | Method for Identifying Project Component, and Reusability Detection System Therefor |
US20200348929A1 (en) | 2019-05-02 | 2020-11-05 | EMC IP Holding Company LLC | Provenance-based reuse of software code |
US20210019665A1 (en) | 2019-07-18 | 2021-01-21 | International Business Machines Corporation | Machine Learning Model Repository Management and Search Engine |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE202017007641U1 (en) | Training machine learning models on multiple machine learning tasks | |
WO2020049154A1 (en) | Method and device for classifying objects | |
EP3557487B1 (en) | Generation of validation data with generative contradictory networks | |
DE102022119386A1 (en) | METHOD AND APPARATUS FOR PERFORMING DENSE PREDICTION USING TRANSFORMER BLOCKS | |
EP3736817A1 (en) | Checking and / or improvement in the consistency of data codes in medical image processing | |
DE102021004562A1 (en) | Modification of scene graphs based on natural language commands | |
EP3639199A1 (en) | Method for rating a state of a three-dimensional test object, and corresponding rating system | |
DE112021005739T5 (en) | GENERATION OF PEPTIDE-BASED VACCINE | |
DE112019004391T5 (en) | LARGE MODEL SUPPORT FOR DEEP LEARNING | |
DE112021005568T5 (en) | Data processing device and data processing method | |
DE112021001767T5 (en) | STREAMLINE COMPUTING OPTIMIZATIONS FOR WORKLOADS WITH MACHINE LEARNING | |
DE102022104325A1 (en) | Method, system and computer program product for creating a data structure for projects based on artificial intelligence | |
WO2021104608A1 (en) | Method for producing an engineering proposal for a device or plant | |
DE102022108379A1 (en) | Method, system and computer program product for the optimized construction and/or design of a technical component | |
DE112020003537T5 (en) | UNSUPERVISED CONCEPT DEVELOPMENT AND CROSS-MODAL RECOVERY IN TIME SERIES AND TEXT COMMENTS BASED ON CANONICAL CORRELATION ANALYSIS | |
DE102019216927A1 (en) | Synthetic generation of radar, LIDAR and ultrasonic measurement data | |
DE102022113690A1 (en) | Method, system and computer program product for the autonomous, intuitive calibration of a technical component, in particular a vehicle drive train for a motor vehicle | |
DE102022118246A1 (en) | System, method and computer program product for optimizing the number of product variants of a product | |
DE102021104077B3 (en) | Method, system and computer program product for the automated generation of traffic data | |
DE102023210855A1 (en) | Smoothed reward system transfer for reinforcement actor-critic learning models | |
DE102022108396A1 (en) | Method, system and computer program product for reinforcement learning for carrying out control and/or regulation tasks of an entity | |
DE102022118244A1 (en) | System, method and computer program product for optimized test planning for the prototype management of an entity | |
EP4124915A1 (en) | Computer-implemented method for producing a software image of at least part of a real controller suitable for a numerical simulation | |
DE102022113702A1 (en) | Method, system and computer program product for autonomously intuitively constructing a technical component for an entity | |
DE102020132042A1 (en) | Method, system, test system and computer program product for the predictive determination of test results for a technical test object |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication |