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 PDF

Info

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
Application number
DE102022104325.8A
Other languages
German (de)
Inventor
David Bethge
Aikaterina Kourti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dr Ing HCF Porsche AG
Original Assignee
Dr Ing HCF Porsche AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dr Ing HCF Porsche AG filed Critical Dr Ing HCF Porsche AG
Priority to DE102022104325.8A priority Critical patent/DE102022104325A1/en
Publication of DE102022104325A1 publication Critical patent/DE102022104325A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward 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 US 2021/0294581 A1 bezieht sich auf die Wiederverwendbarkeit von bekannten Projektkomponenten für den Aufbau eines neuen Projekts. Das Verfahren umfasst das Extrahieren der aktuellen Anforderung des neuen Projekts aus einer oder mehreren Datenquellen unter Verwendung von Natural Language Processing (NLP). Unter Verwendung einer maschinellen Lerntechnik, wie z. B. der latenten semantischen Analyse (LSA), wird erkannt, ob bereits existierende Anforderungen mit der aktuellen Anforderung ähnlich sind, indem eine semantische Analyse der aktuellen Anforderung und der bereits existierenden Anforderungen durchgeführt wird.The US 2021/0294581 A1 refers to the reusability of known project components to build a new project. The method includes extracting the current requirement of the new project from one or more data sources using Natural Language Processing (NLP). Using a machine learning technique such as B. the latent semantic analysis (LSA), it is recognized whether pre-existing requirements are similar to the current requirement by performing a semantic analysis of the current requirement and the pre-existing requirements.

Die US 2021/0019665 A1 offenbart ein Metadatenmodell mit einer Vielzahl von maschinellen Lernalgorithmen, das eine benutzerspezifische Anfrage in Suchkriterien für maschinelle Lernalgorithmen transformiert, um die passenden maschinellen Lernalgorithmen für die spezifische Anfrage zu identifizieren.The US 2021/0019665 A1 discloses a metadata model with a plurality of machine learning algorithms that transforms a user-specific query into machine learning algorithm search criteria to identify the appropriate machine learning algorithms for the specific query.

Die US 2020/0348929 A1 offenbart ein Verfahren zur herkunftsbasierten Wiederverwendung von Software-Skripten, wobei Herkunftsdaten aus einem Quellcode, der Quellcodefragmente umfasst, extrahiert werden.The US 2020/0348929 A1 discloses a method for lineage-based reuse of software scripts, wherein lineage data is extracted from source code, which includes source code fragments.

Die WO 2011/126489 A1 offenbart ein Projektsuchsystem, das gespeicherte Projekte umfasst, die durch elektronisch gespeicherte, computerzugängliche Daten dargestellt werden, die in einer Projektdatenbank gespeichert sind. Ein Projektvergleichs-Subsystem wird erzeugt, um ein oder mehrere gespeicherte Projekte mit der größten Ähnlichkeit zu einem Eingangsprojekt zu identifizieren.The WO 2011/126489 A1 discloses a project search system that includes stored projects represented by electronically stored computer-accessible data stored in a project database. A project comparison subsystem is created to identify one or more stored projects that are most similar to an input project.

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.
According to a first aspect, the invention provides a method for creating a data structure for projects based on artificial intelligence (AI) for performing search queries. A project is represented by data from one or more different data sources and one or more program code(s). The process comprises the process steps:
  • - 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.
It shows:
  • 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 data 20 from different data sources and one or more program code(s) 30 with a large number of program code segments.

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 data 20 can be measured values, images, graphics, diagrams, holograms, series of numbers, video sequences, acoustic sequences, text files, documents, labeled data, etc. In connection with the invention, “data” is to be understood as meaning both raw data and data that has already been processed. The data 20 can be determined from sensor signals from sensors in a sensor system 700 . The sensors of the sensor system 700 can be 2D/3D cameras, LiDAR sensors, radar sensors, ultrasonic sensors, GPS sensors, force/torque sensors, lambda probes, torque sensors, speed sensors, acceleration sensors, speed sensors, capacitive sensors , inductive sensors, pressure sensors, temperature sensors, humidity sensors, gas sensors etc. act. The sensor system 700 can be integrated in an entity to which the project P i relates, such as a project to further develop the entity due to new technical requirements. The entity can be, for example, a motor vehicle, an autonomously driving vehicle, an agricultural vehicle such as a combine harvester shear, a robot in production or in service and care facilities, a watercraft or a flying object such as an airplane or a drone. However, the entity can also be in the form of a complex facility such as an industrial plant. Furthermore, the entity can be embodied as a scientific analysis instrument or as a medical device for diagnosing and supporting bodily functions. The data 20 can be stored in different storage devices and databases 720 from which it can be retrieved.

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 program code 30 is embodied in particular as source code and was created in a programming language that is particularly suitable for artificial intelligence algorithms, such as Python, C++, Java, Javascript, etc. Examples of artificial intelligence algorithms are genetic algorithms, neural networks, and reinforcement learning agents, which in turn use various other algorithms.

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 data 20 and program code segments of the program code 30 more easily and to use them for new projects P j , the system 100 according to the invention is provided. The system 100 comprises an input module 200, a representation learning module 300 and a search module 400.

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 input module 200, the representation learning module 300 and the search module 400 can each be provided with a processor and/or a memory unit and can be designed as independent computer units or as a cloud-based solution. In order to enable a fast calculation speed, it is provided in particular that the representation learning module 300 and the search module 400 are fully or partially integrated in a cloud computing infrastructure 700 .

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 input module 200 can be integrated in a computer, a tablet, a smartphone, etc. and has a user interface 210 for inputting data 20 such as images, graphics, diagrams, time series, etc. and program codes 30 of a project P i . In addition, the input module 200 is connected to the sensor system 700 , which forwards sensor signals from the sensors directly to the input module 200 . In addition, the input module 200 can be connected to a database 720 in which further data 20 and program codes 30 of the project P i are stored.

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 sensor system 700 and/or the database 720 with the input module 200 . A wireless communication connection is designed in particular as a mobile radio connection and/or a near-field communication connection such as Bluetooth® , Ethernet, NFC (near field communication) or Wi-Fi®. This applies equally to the connections between the input module 200, the representation learning module 300 and the search module 400.

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 input module 200 and/or the search module 400 are equipped with mobile radio modules of the 5G standard. 5G is the fifth-generation mobile communications standard and, compared to the 4G mobile communications standard, is characterized by higher data rates of up to 10 Gbit/sec, the use of higher frequency ranges such as 2100, 2600 or 3600 megahertz, increased frequency capacity and thus increased data throughput and real-time data transmission because up to one million devices per square kilometer can be addressed simultaneously. The latency times are a few milliseconds to less than 1 ms, so that real-time transmission of data and calculation results is possible. The data 20 entered into the input module 200 and the program code(s) 30 of a project P i can then be sent in real time to the representation learning module 300 integrated in the cloud computing infrastructure 790 .

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 data 20 and the program code 30, since these offer the advantage of high and therefore fast computing power. In order to protect the connection to the cloud computing infrastructure 790 by means of a mobile radio connection, cryptographic encryption methods are provided in particular.

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 data 20 and the program code(s) 30 of a project P i are transmitted or entered to the input module 200 and can be forwarded directly from the input module 200 to the representation learning module 300 . However, it can also be provided that the data 20 and the program code(s) 30 of a project P i are additionally processed with regard to preferred data formats, so that they are in a coded form that can be further processed by the representation learning module 400 . For this purpose, the input module 200 has appropriate processing algorithms.

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 representation learning module 300 includes at least a first encoder 320 for the data 20 and a second encoder 340 for the Pro gram code 30. The first encoder 320 is designed to encode the data 20 in such a way that the data 20 is present as a data representation 322 in the form of one or more vectors in a latent vector space 350. The second encoder 340 is designed to encode the program code 30 in such a way that the program code 30 is present as a program code representation 343 in the form of one or more vectors in the latent vector space 350 . Latent vector space 350 is a multidimensional vector space having a dimension corresponding to the representation of data 20 and program code 30 . It is provided in particular that Word2Vec is used to create the representation of the data 20 by the encoder 320 and Doc2Vec is used by the encoder 340 to create the representation of the program code 30 . Word2Vec is a concept used to create representation vectors from words. Doc2Vec is a further development of Word2Vec for creating document vectors for documents that consist of a large number of elements and are therefore more complex than individual words. The data 20 and the program codes 30 of a project P i can thus be mapped in a latent vector space 350 . In order to map a project P i in the latent vector space 350, the vectors of the data representation 322 and the vectors of the program code representation 343 are linked (concatenated) with one another so that they form a project representation 355, which is also in the vector space 350 is mapped.

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 encoders 320, 340 are in particular deep encoders that include deep neural networks and in particular for coupled neural networks that can have different structures. In addition, the encoders 320, 340 may include other structures and algorithms, such as genetic algorithms and learning reinforcement agents, to perform efficient and precise classification and feature extraction of the data 20 and the program codes 30 that form the basis for creating the data representations 322 and Program Code Representations 343 forms.

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 data 20 and the program code(s) 30 are transmitted to the input module 20 for a new project P j . The data 20 and the program code(s) 30 of the new project P j are now likewise transformed into data representations 322 and program code representations 343 by the representation learning module 300 and set in the vector space 350 . The vector space 350 is thus further developed with each further learning cycle by entering a new project P j , in which case its dimension can change constantly. Since the respective data 20 and the program code 30 are encoded by the representation learning module 300 for a large number of projects P i , a latent vector space 350 with a large number of data representations 322, program code, is created successively in a continuous learning mode through new projects P j -representations 343 and project representations 355. The vector space 350 generated in this way is passed on to the search module 400.

Wie in der 2 dargestellt, kann die Ähnlichkeit zwischen den Daten 20 und dem Programmcode 30 eines ersten Projekts Pi und den Daten eines zweiten Projekts Pj und eines dritten Projekts Pk sowie zwischen den Projekten Pi, Pj, Pk durch die Lage der Daten-Repräsentationen 322, Programmcode-Repräsentationen 343 und Projekt-Repräsentationen 355 ermittelt werden. Hierzu können bekannte Verfahren wie Triangulationsverfahren zur Bestimmung von Abständen verwendet werden.Like in the 2 shown, the similarity between the data 20 and the program code 30 of a first project P i and the data of a second project P j and a third project P k and between the projects P i , P j , P k can be determined by the position of the data Representations 322, program code representations 343 and project representations 355 are determined. Known methods such as triangulation methods for determining distances can be used for this purpose.

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 vector space 350 and a future project P k is to be determined, then virtual data 20 and program codes 30 can be transmitted to the input module 200, from which the representation learning module 400 generates data representations 322, program code Representations 343 and project representations 355 are derived, which are compared to the representations already present in the vector space 350 by the search module 400. The found similar data representations 322, program code representations 343 and project representations 355 can be output by the search module 400. It can be provided in particular that the search module 400 includes algorithms such as decoders that transform the data formats of the found data representations 322, program code representations 343 and project representations 355 into user-friendly data formats.

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 input module 200, which is transformed by the input module 200 and/or the data representation module 300 into data 20 and program codes 30 in such a way that data Representations 322, Program Code Representations 343 and Project Representations 355 for this request create. The request may be entered into the input module 200 in the form of a textual description, a graphic, and/or a chart.

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 data representations 322, program code representations 343 and project representations 355 to create a latent vector space 350 which forms the basis for determining similarity structures.

In der 3 sind die Verfahrensschritte eines Verfahrens zur Erstellung einer Datenbank für auf künstlicher Intelligenz (KI) basierende Projekte Pi für die Durchführung von Suchanfragen dargestellt.In the 3 the procedural steps of a method for creating a database for projects P i based on artificial intelligence (AI) for carrying out search queries are shown.

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, data 20 of a first project P i is transmitted to an input module 200, the data 20 comprising sensor signals of at least one sensor system 700 and/or being retrieved from at least one database 720.

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 program code 30 of the first project P i is transmitted to the input module 200, the program code 30 having been created in a programming language suitable for programming machine learning algorithms and artificial intelligence.

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 data 20 and the programming code 30 are transmitted to a representation learning module 300, the representation learning module 300 using artificial intelligence algorithms;

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 data 20 is analyzed and classified to create a data representation 322 in the form of at least one vector in a latent vector space 350.

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 program code 30 is analyzed and classified to create a program code representation 343 in the form of at least one vector in the latent vector space 350.

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 data representation 322 and the program code representation 343 are linked to form a project representation 355 in the form of at least one vector in the latent vector space 350.

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 further data representations 322, program code representations 343 and vector representations 355 for a set of further projects P i in the latent vector space 350 are created.

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 latent vector space 350 with the calculated further data representations 322, program code representations 343 and vector representations 355 for a set of projects P i is forwarded to a search module 400.

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 vector space 350 between the data representations 322, program code representations 343 and vector representations 355 of at least one first project P i and at least one second project P j from the set of projects P i .

4 stellt schematisch ein Computerprogrammprodukt 900 dar, das einen ausführbaren Programmcode 950 umfasst, der konfiguriert ist, um das Verfahren gemäß dem ersten Aspekt der vorliegenden Erfindung auszuführen, wenn es ausgeführt wird. 4 Figure 12 schematically illustrates a computer program product 900 comprising executable program code 950 configured to perform the method according to the first aspect of the present invention when executed.

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)

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: - Übermitteln (S10) von Daten (20) eines ersten Projekts (Pi,) an ein Eingabemodul (200), wobei die Daten (20) Sensorsignale zumindest eines Sensorsystems (700) umfassen und/oder aus zumindest einer Datenbank (720) abgerufen werden; - Übermitteln (S20) zumindest eines Programmcodes (30) des ersten Projekts (Pi,) an das Eingabemodul (200), wobei der Programmcode (30) in einer für die Programmierung von Algorithmen des Maschinenlernens und der künstlichen Intelligenz geeigneten Programmiersprache erstellt wurde(n); - Weitergeben (S30) der Daten (20) und des Programmiercodes (30) an ein Repräsentationslernmodul (300), wobei das Repräsentationslernmodul (300) Algorithmen der künstlichen Intelligenz verwendet; - Analysieren und Klassifizieren (S40) der Daten (20) zur Erstellung einer Daten-Repräsentation (322) in Form zumindest eines Vektors in einem latenten Vektorraum (350); - Analysieren und Klassifizieren (S50) des Programmcodes (30) zur Erstellung einer Programmcode-Repräsentation (343) in Form zumindest eines Vektors 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 Form zumindest eines Vektors 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); - Weitergeben (S80) des latenten 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); - 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).Method for creating a data structure for projects (P i ) based on artificial intelligence (AI) for carrying out search queries, a project (P i ) being replaced by data (20) from one or more different data sources and one or more program code(s) (30) is represented, comprising: - Transmission (S10) of data (20) of a first project (P i ,) to an input module (200), the data (20) comprising sensor signals of at least one sensor system (700) and/or retrieved from at least one database (720); - Transmission (S20) of at least one program code (30) of the first project (P i ,) to the input module (200), the program code (30) being created in a programming language suitable for programming machine learning algorithms and artificial intelligence ( n); - Forwarding (S30) the data (20) and the programming code (30) to a representation learning module (300), wherein the representation learning module (300) uses artificial intelligence algorithms; - Analyzing and classifying (S40) the data (20) to create a data representation (322) in the form of at least one vector in a latent vector space (350); - Analyzing and classifying (S50) the program code (30) to create a program code representation (343) in the form of at least one vector in the latent vector space (350); - Linking (S60) the data representation (322) and the program code representation (343) to form a project representation (355) in the form of at least one vector in the latent vector space (350); - Creation (S70) of further data representations (322), program code representations (343) and vector representations (355) for a set of further projects (P i ) in the latent vector space (350); - Passing on (S80) the latent vector space (350) with the calculated further data representations (322), program code representations (343) and vector representations (355) for a set of projects (P i ) to a search module (400) ; - Carrying out (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 (P i ) and at least one second project (P j ) from the set of projects (P i ). Verfahren nach Anspruch 1, wobei die Ergebnisse der Ähnlichkeitssuche als Ausgabedaten (500) ausgegeben werden, insbesondere in Form von Bildern, Graphiken, Videosequenzen, akustischen Sequenzen, Textbausteinen, Hologrammen, und/oder Power-Point-Präsentationen.procedure after claim 1 , the results of the similarity search being output as output data (500), in particular in the form of images, graphics, video sequences, acoustic sequences, text modules, holograms and/or Power Point presentations. Verfahren nach Anspruch 1 oder 2, wobei das Repräsentationslernmodul (300) zumindest einen ersten Encoder (320) für die Daten (20) und zumindest einen zweiten Encoder (340) für den Programmcode (30) umfasst, wobei der erste Encoder (320) die Daten (20) derart codiert, dass die Daten (20) als Daten-Repräsentation (322) in Form eines oder mehrerer Vektoren in dem latenten Vektorraum (350) vorliegen, und der zweite Encoder (340) den Programmcode (30) derart codiert, dass der Programmcode (30) als Programmcode-Repräsentation (343) in Form eines oder mehrerer Vektoren in dem latenten Vektorraum (350) vorliegt.procedure after claim 1 or 2 , wherein the representation learning module (300) comprises at least a first encoder (320) for the data (20) and at least a second encoder (340) for the program code (30), the first encoder (320) encoding the data (20) in such a way that the data (20) is present as a data representation (322) in the form of one or more vectors in the latent vector space (350), and the second encoder (340) encodes the program code (30) in such a way that the program code (30) is present as a program code representation (343) in the form of one or more vectors in the latent vector space (350). Verfahren nach einem der Ansprüche 1 bis 3, wobei der latente Vektorraum (350) als mehrdimensionaler Vektorraum mit einer Dimension, die der Repräsentation der Daten (20) und des Programmcodes (30) entspricht, ausgebildet ist.Procedure according to one of Claims 1 until 3 , wherein the latent vector space (350) is designed as a multidimensional vector space with a dimension that corresponds to the representation of the data (20) and the program code (30). Verfahren nach Anspruch 3 oder 4, wobei für die Erstellung der Repräsentation der Daten (20) von dem ersten Encoder (320) Word2Vec und für die Erstellung der Repräsentation des Programmcodes (30) von dem zweiten Encoder (340) Doc2Vec verwendet wird.procedure after claim 3 or 4 , wherein Word2Vec is used to create the representation of the data (20) from the first encoder (320) and Doc2Vec is used to create the representation of the program code (30) from the second encoder (340). Verfahren nach einem der Ansprüche 3 bis 5, wobei der erste Encoder (320) und der zweite Encoder (340) ein oder mehrere neuronale Netzwerke umfassen.Procedure according to one of claims 3 until 5 , wherein the first encoder (320) and the second encoder (340) comprise one or more neural networks. Verfahren nach Anspruch 6, wobei die neuronalen Netzwerke als tiefe neuronale Netzwerke und/oder rekurrente neuronale Netze und/oder gefaltete neuronale Netze (Convolutional Neural Networks) ausgebildet sind.procedure after claim 6 , wherein the neural networks are designed as deep neural networks and/or recurrent neural networks and/or folded neural networks (convolutional neural networks). Verfahren nach einem der Ansprüche 1 bis 7, wobei die Ähnlichkeitssuche in dem Vektorraum (350) mithilfe von trigonometrischen Verfahren durchgeführt wird und/oder ein Ähnlichkeitsfaktor für die Ähnlichkeit 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) ausgegeben wird.Procedure according to one of Claims 1 until 7 , wherein the similarity search in the vector space (350) is carried out using trigonometric methods and/or a similarity factor for the similarity between the data representations (322), program code representations (343) and vector representations (355) of at least one first project (P i ) and at least one second project (P j ) from the set of projects (P i ) is output. System (100) zur Erstellung einer Datenbank für auf künstlicher Intelligenz 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 mehrere Programmcode(s) (30) repräsentierbar ist; umfassend ein Eingabemodul (200), ein Repräsentationslernmodul (300) und ein Suchmodul (400); wobei das Eingabemodul (200) ausgebildet ist, Daten (20) eines ersten Projekts (Pi,) zu empfangen, wobei die Daten (20) Sensorsignale zumindest eines Sensorsystems (700) umfassen und/oder aus zumindest einer Datenbank (720) abgerufen werden, und zumindest einen Programmcode (30) des ersten Projekts (Pi,) zu empfangen, wobei der Programmcode (30) in einer für die Programmierung von Algorithmen des Maschinenlernens und der künstlichen Intelligenz geeigneten Programmiersprache erstellt wurde, und die Daten (20) und den Programmiercode (30) an das Repräsentationslernmodul (300) weiterzugeben; wobei das Repräsentationslernmodul (300) Algorithmen der künstlichen Intelligenz verwendet und ausgebildet ist, die Daten (20) zu analysieren und zu klassifizieren zur Erstellung einer Daten-Repräsentation (322) in Form zumindest eines Vektors in einem latenten Vektorraum (350), den Programmcode (30) zu analysieren und zu klassifizieren zur Erstellung einer Programmcode-Repräsentation (343) in Form zumindest eines Vektors in dem latenten Vektorraum (350), und die Daten-Repräsentation (322) und die Programmcode-Repräsentation (343) zu einer Projekt-Repräsentation (355) in Form zumindest eines Vektors in dem latenten Vektorraum (350) zu verknüpfen; und wobei das Repräsentationslernmodul (300) ausgebildet ist, 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) zu erstellen, und den berechneten Vektorraum (350) an das Suchmodul (400) weiterzugeben; und wobei das Suchmodul (400) ausgebildet ist, 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) durchzuführen.System (100) for creating a database for projects (P i ) based on artificial intelligence for carrying out search queries, a project (P i ) being replaced by data (20) from one or more different data sources and one or more program code(s) (30) is representable; comprising an input module (200), a representation learning module (300) and a search module (400); wherein the input module (200) is designed to receive data (20) of a first project (P i ,), the data (20) comprising sensor signals of at least one sensor system (700) and/or being retrieved from at least one database (720). , and to receive at least one program code (30) of the first project (P i ,), wherein the program code (30) was created in a programming language suitable for programming machine learning algorithms and artificial intelligence, and the data (20) and pass the programming code (30) to the representation learning module (300); wherein the representation learning module (300) uses artificial intelligence algorithms and is designed to analyze and classify the data (20) to create a data representation (322) in the form of at least one vector in a latent vector space (350), the program code ( 30) analyze and classify to create a program code representation (343) in the form of at least one vector in the latent vector space (350), and the data representation (322) and the program code representation (343) into a project representation (355) in the form of at least one vector in the latent vector space (350); and wherein the representation learning module (300) is configured to create further data representations (322), program code representations (343) and vector representations (355) for a set of further projects (P i ) in the latent vector space (350). , and passing the computed vector space (350) to the search module (400); and wherein the search module (400) is designed to carry out 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 (P i ) and at least to carry out a second project (P j ) from the set of projects (P i ). System (100) nach Anspruch 9, wobei die Ergebnisse der Ähnlichkeitssuche als Ausgabedaten (500) ausgegeben werden, insbesondere in Form von Bildern, Graphiken, Videosequenzen, akustischen Sequenzen, Textbausteinen, Hologrammen, und/oder Power-Point-Präsentationen.system (100) after claim 9 , the results of the similarity search being output as output data (500), in particular in the form of images, graphics, video sequences, acoustic sequences, text modules, holograms and/or Power Point presentations. System (100) nach Anspruch 9 oder 10, wobei das Repräsentationslernmodul (300) zumindest einen ersten Encoder (320) für die Daten (20) und einen zweiten Encoder (340) für den Programmcode (30) umfasst, wobei der erste Encoder (320) die Daten (20) derart codiert, dass die Daten (20) als Daten-Repräsentation (322) in Form eines oder mehrerer Vektoren in dem latenten Vektorraum (350) vorliegen, und der zweite Encoder (340) den Programmcode (30) derart codiert, dass der Programmcode (30) als Programmcode-Repräsentation (343) in Form eines oder mehrerer Vektoren in dem latenten Vektorraum (350) vorliegt.system (100) after claim 9 or 10 , wherein the representation learning module (300) comprises at least a first encoder (320) for the data (20) and a second encoder (340) for the program code (30), wherein the first encoder (320) encodes the data (20) in such a way, that the data (20) is present as a data representation (322) in the form of one or more vectors in the latent vector space (350), and the second encoder (340) encodes the program code (30) in such a way that the program code (30) is Program code representation (343) is present in the form of one or more vectors in the latent vector space (350). System (100) nach einem der Ansprüche 9 bis 11, wobei der latente Vektorraum (350) als mehrdimensionaler Vektorraum mit einer Dimension, die der Repräsentation der Daten (20) und des Programmcodes (30) entspricht, ausgebildet ist.System (100) according to one of claims 9 until 11 , wherein the latent vector space (350) is designed as a multidimensional vector space with a dimension that corresponds to the representation of the data (20) and the program code (30). System (100) nach einem der Ansprüche 9 bis 12, wobei für die Erstellung der Repräsentation der Daten (20) von dem ersten Encoder (320) Word2Vec und für die Erstellung der Repräsentation des Programmcodes (30) von dem zweiten Encoder (340) Doc2Vec verwendet wird.System (100) according to one of claims 9 until 12 , wherein Word2Vec is used to create the representation of the data (20) from the first encoder (320) and Doc2Vec is used to create the representation of the program code (30) from the second encoder (340). System (100) nach Anspruch 13, wobei der erste Encoder (320) und der zweite Encoder (340) ein oder mehrere neuronale Netzwerke umfassen, und wobei die neuronalen Netzwerke als tiefe neuronale Netzwerke und/oder rekurrente neuronale Netze und/oder gefaltete neuronale Netze (Convolutional Neural Networks) ausgebildet sind.system (100) after Claim 13 , wherein the first encoder (320) and the second encoder (340) comprise one or more neural networks, and wherein the neural networks are designed as deep neural networks and/or recurrent neural networks and/or folded neural networks (convolutional neural networks). . Computerprogrammprodukt (900), umfassend einen ausführbaren Programmcode (950), der so konfiguriert ist, dass er bei seiner Ausführung das Verfahren nach einem der Ansprüche 1 bis 8 ausführt.Computer program product (900), comprising an executable program code (950), which is configured so that when it is executed it performs the method according to any one of Claims 1 until 8th executes
DE102022104325.8A 2022-02-23 2022-02-23 Method, system and computer program product for creating a data structure for projects based on artificial intelligence Pending DE102022104325A1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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