WO2021190715A1 - Computerimplementiertes verfahren und verteiltes speichersystem zum bereitstellen vertrauenswürdiger datenobjekte - Google Patents
Computerimplementiertes verfahren und verteiltes speichersystem zum bereitstellen vertrauenswürdiger datenobjekte Download PDFInfo
- Publication number
- WO2021190715A1 WO2021190715A1 PCT/DE2021/200023 DE2021200023W WO2021190715A1 WO 2021190715 A1 WO2021190715 A1 WO 2021190715A1 DE 2021200023 W DE2021200023 W DE 2021200023W WO 2021190715 A1 WO2021190715 A1 WO 2021190715A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data object
- data
- computer unit
- computer
- information
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Definitions
- the present invention relates to the provision of trustworthy data objects for training a neural network and relates in particular to a computer-implemented method, a distributed storage system and a computer program.
- Metadata represent structured data that contain information about the characteristics of other data.
- the metadata, corresponding labels, are assigned to the contents of the data records by a so-called label.
- the data records can be automatically labeled by a human analyst (expert, data scientist, etc.) or by a machine. It is also conceivable that the data records are generated synthetically (Groh, Synthetic Data as a Service).
- the disadvantage is that the data sets are often very large in terms of the number of data or the storage requirements and are made available via different sources.
- the data records are predominantly provided by a web server using an address which refers to the storage location of the data record in the form of a URL (Uniform Resource Locator).
- URL Uniform Resource Locator
- Another approach to providing data sets is to organize the data sets based on their content (content based vs. address based), as implemented, for example, with BitTorrent, Mule or IPFS.
- Index structures are also known in the prior art. Index structures are used in computer science to enable access to a collection of data. Data organized in flash tables or spreadsheets can be protected against changes by unauthorized users by means of a Merkle Tree Proof, or it can be determined which part of the data set or which data has been changed. Signatures and public key infrastructures are also known. These make it possible to verify the source of the data and to coordinate access to the data sets.
- Appropriate data is required to train neural networks or other entities of artificial intelligence.
- the disadvantage here is that the quality of the learning depends on the quality of the data provided.
- labels are defined differently, for example by a different language, meaning, etc., which means that the labeled data records cannot always be used in the same context.
- data records are copied and made available, although it is sometimes not possible to clearly identify who has made the data records available and / or labeled.
- data sets can diverge in version and content or data sets are copied, although this is not required for training the neural network and / or the artificial intelligence.
- a user wants to know whether the data records used come from a trustworthy source and have been labeled by this.
- the case may arise that only data records are to be used for training a neural network and / or artificial intelligence that have been labeled by a specific user, for example user A or B, but not by user C.
- data sets are made available where they are needed and used.
- a conversion e.g. png to jpg is often carried out. This is done by each target platform itself if the data records are organized centrally and the target platform does not know that the data record is already available and retrievable in a correspondingly converted form at another location.
- the present invention is based on the technical problem of making a data record, in particular data objects, available or of making it available for training in a neural network (or another entity of artificial intelligence).
- the invention thus relates to a computer-implemented method for providing trustworthy data objects for training a neural network.
- the data objects are provided by a distributed storage system with a large number of computer units.
- a distributed storage system is to be understood as a network of computer units (eg server, PC, etc.) which communicate and exchange data via a communication medium (eg Internet, intranet).
- the computer units can include physical computers (eg server, PC, laptop, data processing units, etc.) which have an interface (eg LAN, WLAN, Bluetooth, etc.) for communication in a network.
- the computer units of the distributed storage system can be provided hosted on other servers.
- the computer-implemented method preferably comprises the following method steps: - Receiving at least one data object information item for a data object to be provided from at least one computer unit for learning a neural network;
- a data object is to be understood as a data set, a formula, an analysis object and / or a data link object which contain data or provide a calculation result.
- Data can include visual data, for example graphic or textual data and / or audio data and / or images.
- data object information is to be understood as information that describes features of a data object by means of further information.
- a data object can comprise an image with three elements, for example a circle, square and rectangle.
- the data object information can describe the three elements contained in the data object by means of corresponding information.
- the respective elements can be provided with a label that describes the geometric design of the element, e.g. label "circle” for element "circle”.
- address information is to be understood as an address of the computer unit under which the computer unit can be identified in a network. This can be achieved, for example, via the MAC address (Media Access Control) of the network interface of the computer unit.
- address information of the computer unit is to be understood as the memory area under which the data objects can be called up and / or can be stored.
- the address information can include a public key, which is a Computer unit is clearly assigned and through which the computer unit is clearly identifiable. It is also necessary that the data objects are recognized and retrieved based on their content.
- the content recognition can be implemented as a label which refers to the content (object) in the memory and / or storage medium. In this regard, it can form a type of address which is based on the content itself or is based on the content.
- content recognitions can be identified independently of the size and the underlying content.
- the content identifiers can be based on a cryptographic hash of the content.
- each difference in content can advantageously generate a different content recognition and the same fragment of the content that is added to two different storage nodes (storage areas) in the same network can generate exactly the same content recognition.
- the address information can be obtained via the content recognition.
- a public key method thus enables the address information to be verified. This ensures that the data objects are stored at an address by a trustworthy location. In one embodiment, this can be done by signing the address information.
- the present invention is based on the knowledge that data from large databases with different data sets are used to train a neural network and artificial intelligence.
- the stored data sets are not all relevant for every special training or have been labeled or synthetically generated by a trustworthy body.
- the present invention advantageously provides directly relevant data objects on the basis of required data object information, for example labels or attributes. It is also ensured that the data objects provided have been labeled or synthetically generated by a trustworthy body.
- large amounts of data for example to train a neural network or artificial intelligence, can be used Using the distributed storage system where they are used. During use, provision and transmission from a central unit is no longer necessary, which saves bandwidth and transmission time.
- the method further comprises the step: learning of a neural network by the computer unit using the data object provided.
- a neural network can be trained by means of the provided data objects which are to be regarded as trustworthy.
- the present invention makes it possible to understand how and by whom (man or machine) the data object information was assigned to the data object. With knowledge of this information, the provided data object can be classified as trustworthy or as untrustworthy. Trustworthy is to be understood as meaning that the instance (computer, user) which provides the data object can be trusted, or the instance is known which provides the data object and / or contains and / or stores data object information of the data object.
- the data object information is assigned at least one address information item to at least one computer unit of the distributed storage system.
- the address information includes the address of the computer unit which requested a data object via the data object information to be recorded.
- the assigned address information is used to assign which computer unit can or is providing the data object.
- the address information includes a physical hardware address of the computer unit, a memory address of a memory of the computer unit and / or a public key.
- the physical hardware address for example the MAC address of the communication interface of the computer unit
- this computer unit can be identified and the data object information or the data object can be assigned by the computer unit provided.
- Alternative embodiments include the use of a memory address which contains the storage location of the data object or a public key which contains the address of the computer unit. Each computer unit that provides data objects can thus be identified.
- the data object information represents a data object and has at least one label or attribute assigned to the data object.
- the data object information includes information representing a data object.
- the data object information includes information that describes a data object and its elements.
- the information preferably comprises a label which is assigned to the data object.
- the label defines the data object and / or one and / or further elements of the data object.
- the label defines information which is connected to the data object by a neural network and which can be used for learning, in particular for “supervised learning”.
- the data object comprises attributes which comprise descriptive properties of the data object and / or of elements of the data object. The attributes are connected to the data objects and form relationships which can be used accordingly in a training phase for a neural network and / or an artificial intelligence.
- the data object information is generated by a user.
- the labels and / or attributes as data object information are specified by a user and selected according to the interpretation of the data objects and assigned to them.
- the data object information is generated automatically and / or synthetically by a computer unit.
- the data object can be generated synthetically via the data object information.
- the metadata eg a circle, a square
- an image with a circle and a square can be generated. This means that the data object does not have to be labeled in a further processing step.
- the data object is automatically generated by its labels.
- the data objects can thus also be generated dynamically with the aid of content recognition if a service is able to generate data objects using the labels. This presupposes that the content recognition makes the labels available to a data object generator service. This service then makes the data objects available on one or more addresses via a single content recognition.
- the acquired address information is assigned to the data object information in an encrypted and / or signed manner.
- the address information or an address list can thus be signed or encrypted by a user, which restricts access for other users, in particular unauthorized and / or untrustworthy users, to the data object information and thus to the data objects.
- a user with restricted access can thus himself provide non-corresponding data objects or data object information for learning a neural network via a computer unit.
- An address list is a collection of address information.
- the address list can be stored in a database in the computer unit from which the data object is made available.
- the encryption and / or signing comprises a symmetrical encryption method. Encryption and decryption are carried out with the same key using a symmetrical encryption process. Thus, a secret key is agreed or exchanged by the parties involved before the encryption and the key must also be kept secret in order to prevent changes to the address information and / or the address list.
- the symmetrical encryption method enables fast encryption to be provided.
- the encryption and / or signing comprises an asymmetrical encryption method. In the asymmetric encryption process, two keys are used for encryption and decryption. A public key, which is accessible to everyone, and a private key, which must be kept secret, are provided. The address information is encrypted with the public key and can only be decrypted with the private key.
- the (public) encryption key does not have to be kept secret here. However, it must be ensured that the public key really belongs to the recipient.
- the RSA method is used both for encrypting and for digitally signing the address information.
- a key pair is used, consisting of a private key, which is used to decrypt or sign data, and a public key, which can be used to encrypt or verify signatures.
- the private key must be kept secret here and cannot be calculated from the public key.
- Secure encryption can be provided through the asymmetric encryption method.
- the data object information and the recorded address information are hashed and stored as corresponding hash sheets in the distributed storage system.
- the data object information and the recorded address information serve as hash sheets of all hash trees to be created.
- the hash sheets and their assignment to hash trees can be used to trace, in particular in a non-manipulable manner, which data objects have been provided and on which computer unit of the distributed storage system they are stored.
- the security against manipulation can be increased.
- the traceability of the data exchange or the data object duplication is made more efficient and transparent by copying the data objects.
- the Data object information and thus the address information of the data objects are anonymized.
- the hash sheets are assigned to a hash tree.
- the hash sheets can be assigned to a hash tree by means of a search query for data object information.
- a hash tree is created when a data object is queried for several data object items of information. The structure of the hash tree makes it possible to understand which computer unit was used to request and provide data objects.
- a message digest algorithm (MD4, MD5) is used as the hash method to create the hash sheets.
- Hash values of 128 bits can be generated.
- the correctness of a loaded data object can be checked in a simplified manner.
- a Secure Hash Algorithm (SHA) is used as the hash method to create the hash sheets.
- a check value for any data objects, in particular digital data objects, can be calculated via SHA and represents the basis for creating a digital signature. The integrity of a message can be assured via the check value. If the checker value of two messages matches, the equality of the messages can be assumed.
- a hash value of 160 bits is provided via SHA, with which increased protection against brute force attacks can be achieved.
- a Race Integrity Primitive Evaluation Message Digest (RIPEMD) is used as the hash method to create the hash sheets.
- a hash value of 160 bits can be provided.
- the Tiger algorithm is used as the hash method for creating the hash sheets.
- the hash value generated by the algorithm has a length of 128, 160 or 192 bits.
- the tiger tree hash which is based on the Tiger algorithm, can advantageously be used to check the integrity of large data during or after transmission.
- the tiger tree hash hashed data blocks of 1024 bytes from the data object at the hash leaf level.
- the root hash is a unique identifier for the data object. If the complete Tiger hash tree is stored on a computer unit, it can be verified whether the individual file blocks are correct. In addition, it can be checked at the same time whether the hash tree itself is correct.
- the Whirlpool algorithm is used as the hash method for creating the hash sheets.
- the Whirlpool algorithm can be used for data objects up to 2 256 bits in size and returns a hash value of 512 bits.
- the invention relates to the use of the computer-implemented method according to one of the method claims of the present invention for providing a data object for teaching a neural network. Furthermore, the data objects provided can be provided for further learning algorithms.
- the invention in another aspect, relates to a distributed storage system.
- the distributed storage system includes at least one computing unit, e.g., an industrial computing unit.
- the computer unit is designed to carry out the computer-implemented method according to the present invention.
- the computer unit has a receiving interface, a recording interface and a processor unit for providing trustworthy data objects.
- the computer unit can be designed as a server, a PC, and / or as a software implementation hosted on a computer.
- the computer unit has different interfaces to
- HMI Human-machine communication
- the HMI interfaces include input and output devices for the condition of the computer unit.
- the interfaces for communication with other computer units have wireless interfaces (WLAN, Wifi, Bluetooth, etc.) and / or wired interfaces (Ethernet, USB, etc.).
- the processor unit is connected to the interfaces of the computer unit via a bus.
- the computer unit can be implemented in flardware on a microcontroller or an FPGA.
- a further solution provides a computer program with program elements (computer code) for performing all the method steps of the method described in more detail above, when the computer program and its program elements are loaded into a memory of the computer and are thus executed on the computer. It is also possible that the computer program is stored on a non-volatile, computer-readable medium.
- FIG. 1 shows a block diagram to illustrate a possible exemplary embodiment of a distributed memory system according to the invention
- FIG. 2 shows a flow chart to illustrate a possible exemplary embodiment of the method according to the invention
- FIG. 3 shows a block diagram to illustrate a possible exemplary embodiment of a data object provision
- FIG. 4 shows a block diagram to illustrate a further possible exemplary embodiment of a data object provision
- FIG. 5 shows a block diagram to illustrate a further possible exemplary embodiment of a data object provision
- FIG. 6 shows a block diagram to show a generated flash tree using an exemplary embodiment of the method according to the invention
- FIG. 7 shows a further block diagram to show a generated flash tree using an exemplary embodiment of the method according to the invention.
- FIG. 8 shows a block diagram to illustrate a possible exemplary embodiment of a distributed memory system.
- FIG. 1 shows a block diagram to illustrate a possible exemplary embodiment of a distributed memory system according to the invention.
- reference character S denotes a distributed storage system.
- the distributed storage system S comprises at least one computer unit, preferably several computer units Rn. In FIG. 1, three computer units Rn are shown. However, the configuration of the distributed storage system S should not be restricted to the configuration shown. Rather, a distributed storage system S can have further or fewer computer units Rn.
- the computer units Rn can be designed as servers, computers, etc., which have a communication interface for communication with a network and thus for communication and for the exchange of data with one another.
- the distributed storage system S is designed to store data objects D in a distributed manner in the distributed storage system S on the computer units Rn.
- the data object information DOI comprises a label and / or at least one attribute of the data object D.
- the data object information DOI can be created manually by a user or automatically created by a machine (e.g. a computer unit R).
- a data object D can comprise a set of labels and / or attributes.
- the amount of data object information DOI results from the amount of elements in the data object D and a degree of detail of the description of the elements in the data object D.
- a data object D can include graphic and / or textual information, images, music, video, etc.
- the data objects D are available in a digital version.
- the data objects D can have a different conversion and different data formats.
- the memory system S records address information A of the at least one computer unit R, which provides the data object information DOI or requests a data object.
- the address information A is specific information which the computer unit R unmistakably identifies with respect to other computer units R.
- the address information can define a memory area and / or memory location in which the data object information DOI and / or the data object D are stored and / or are to be stored.
- the acquired address information A of the computer unit R is assigned to the data object information DOI of the data object D made available. It is thus advantageously possible to trace the computer unit R on which the data object D was made available.
- the data object information DOI of the provided data object D is updated by assigning the address information A.
- the data object information DOI with the assigned address information A is stored in the distributed storage system S.
- Each computer unit connected to the distributed storage system S. R receives the data object information DOI with the assigned address information A and thus has the same information status.
- FIG. 2 shows a flow chart to illustrate a possible exemplary embodiment of the method according to the invention.
- the computer-implemented method V comprises several steps.
- a first step S1 at least one data object information item DOI for a data object D to be provided is received by at least one computer unit R.
- the data object D to be provided can be used for training a neural network N.
- address information of the at least one computer unit R is recorded.
- the data object D is provided to the computer unit R on the basis of the received data object information DOI.
- the received data object information DOI includes a label and / or attributes which describe elements and / or information of the data object D or are contained in the data object D.
- the data objects D are thus classified according to the elements and / or information they contain and can be searched for.
- the acquired address information A of the computer unit R is assigned to the data object information DOI of the data object D made available.
- the address information A can be arranged in a list and stored in a database.
- the data object D can be stored in the database.
- the data object information can include the address of the memory under which the data object D is stored.
- the database can be stored in a computer unit R and / or distributed in the computer units R of the distributed storage system S.
- FIG. 3 shows a block diagram to illustrate a possible exemplary embodiment of a data object provision.
- a plurality of computer units Rn is shown.
- the computer units Rn are connected to one another via a network and can form the distributed storage system S.
- the computer units Rn can be designed as a data server.
- the computer units Rn comprise at least one database in which the Data object information DOI and the data object D are stored. Separate databases for storing the data object information DOI and the data object D can also be provided.
- Each computing unit has address information A.
- the data object D can include graphic and / or textual information, music, videos or images, etc.
- the data objects D are assigned data object information DOI.
- the data object information DOI have labels or attributes as parameters, on the basis of which the data objects D are provided by the distributed storage system S. These data objects can be used to train neural networks, artificial intelligence or the like.
- the data objects D receive labels and / or attributes in a text form, from a defined set of images manually by a user or automated by a machine.
- the data object D includes, for example, an image with the elements house, tree, sun and car. These elements represent the defined set of images. A user or a machine can describe these elements textually with predefined labels.
- the labels can be evaluated automatically. The label thus describes that this data object D (image), for example, contains a sun.
- attributes can be assigned which describe the position and dimensions of the element.
- the manually or automatically created labels are stored together with the information on where the data object D can be found in a database of a computer unit R (step 100).
- the labels [house; Tree; Sun; Auto] can be assigned for the corresponding elements in data object D.
- the data object information DOI [house; Tree; Sun; Auto] assigned.
- searching for or querying one of the data object information items DOI the data object D is provided, which has been assigned the above-mentioned labels.
- the address of the data object D includes the storage location of the data object D, for example [https: //conti/db/pic.png].
- step 110 the address of the data object D is encrypted and signed.
- Symmetrical encryption methods are used for encryption.
- asymmetric encryption methods are used for encryption and signing.
- the address or an address list assigned to a data object information DOI can be signed and possibly encrypted by a user using a corresponding asymmetric encryption method (public-private-key method) if access to the data object information DOI and thus the data object D is restricted target.
- An address list is a collection of addresses which each define the storage location of the same data object D (copy) on different computer units R.
- step 120 the data object information DOI (e.g. labels) and the address of the data object D are hashed.
- the hash function SHA3 can be used.
- a hash value is formed from the label and the encrypted address using the hash function:
- Signing and / or encrypting the address also changes the hash value, as it results from SHA (label + address list).
- An indefinite number of address lists from different users can be assigned to a label, e.g. SHA (label + address list + address list2 + address list3).
- the hash sheets 140, 150, 160 are created on the basis of the hash value created.
- the hash sheets result in W (cp (Di)) + Labeil) 140, W (cp (D 2 )) + Label2) 150 and W (cp (Dn)) + Labein) 160.
- a data object D can be queried using the present invention by querying data object information, for example F (label), from a user via a computing unit R which communicates with the distributed storage system S.
- the distributed storage system S provides the data object D to the target address of the requesting computing unit R of the user or copies the data object D and supplements the address list corresponding.
- the distributed storage system S has the information as to where each data object D is stored, since the hash value is also updated and advantageously all participating users or computer units R can monitor and understand changes.
- a data record can be requested with the aid of a plurality of data object information items DOI.
- DOI data object information items
- several labels can be requested, e.g. F (house; face).
- the hashroot of the created hash tree is hash (x + y).
- FIG. 4 shows a block diagram to illustrate a further possible exemplary embodiment of a data object provision.
- a user provides data object information DOM via a computer unit R to the distributed storage system S with the computer units Rn.
- a data object D is made available to the computer unit R on the basis of the acquired data object information DOM.
- the address information A of the computer unit R is recorded and stored as new address information An in the address list A_DOI_1 for the data object information DOM in a database in the distributed storage system S or distributed on the computer units Rn.
- the current address list A_DOI_1 is stored in the database 1, for example.
- the address list A_DOI_1 is updated and saved.
- the hash value of the address list is changed by the new address information A of the computer unit R.
- a new hash value W (cp (D2)) + Labeil) is created for the copied data object D.
- This hash value takes into account the addresses of the address list (A_DOI_1) and the added address A of the computer unit R on which a copy of the data object D was provided, for example on the database D2.
- FIG. 5 shows a block diagram to illustrate a further possible exemplary embodiment of data provision.
- First data object information DOM and second data object information DOI_2 are provided to the user via a processing unit R to the distributed storage system S with the computer units Rn.
- a data object D is provided to the computer unit R.
- the address information A of the computer unit R is recorded and as new address information An in the first address list A_DOI_1 for the first data object information DOM and in the second address list A_DOI_2 for the second data object information DOI_2 in a database in the distributed storage system S or distributed on the computer units Rn saved.
- the first address list A_DOI_1 and the second address list A_DOI_2 are updated and saved.
- the hash value of the address lists is changed by the new address information A of the computer unit R. This makes it possible to trace who the data object D was made available to.
- a new hash value W ((p (D 3 )) + Labeil + Label 2) is created for the copied data object.
- FIG. 6 shows a block diagram to illustrate a hash tree generated using an exemplary embodiment of the method according to the invention.
- hash sheet 230 H (f ( ⁇ 3 )) + label3)
- the new address A of the processing unit R eg (p (D 3 )) is referenced in step 260.
- the address list is updated for the recorded label and label 2 and also includes the address A of the processing unit R.
- the order of the labels and thus the order of the hash sheets in the hash tree is defined by the request, for example depending on the data object D “house”, “sun”, “tree”.
- the ordered list of labels is created through the inquiries.
- the new hash root of the hash tree continues to receive a new address list, since all data objects D are stored with the combination of labels (e.g. all images with containing a tree and a sun).
- the corresponding node in a hash tree now contains two hash values.
- the hashroot of the hash tree can be designed as follows:
- the data set includes all objects that are relevant for training the neural network.
- a search query for example pictures with a house and a sun.
- new content identifiers are also added to an "address list". The system is thus able to determine the actual address of the data object, for example a sun, via the content recognition.
- the content IDs are hashed in the hash function.
- a new address list is created for the new hashroot by merging several content identifiers, which then contains and stores all data objects with the merged content identifiers.
- all images with the sun or the house can be found on the corresponding database.
- the sun and house data objects then advantageously no longer have to be obtained from several databases and / or sources.
- the hash sheet of a new hash tree results from the new hash value, i.e. the second hash value in addition to the hash root of the first hash tree. This allows hash trees to be linked with one another, with the hashroot being used for orientation in order to be able to determine where the data objects are located.
- FIG. 7 shows a further block diagram for the representation of a hash tree generated using an exemplary embodiment of the method according to the invention.
- the method according to the invention can guarantee the integrity of the data object information DOI (labels). It is also possible to assign several hash roots to the hash sheets. These are encrypted and / or signed using the private key of a user who has provided a data object with a label. Furthermore, the data object addresses are assigned by the user or the data objects can be saved and deposited where they are required for execution.
- DOI labels
- Training data can be stored in the databases DB1, DB2, DB3 and DB4.
- the databases DB1, DB2, DB3 and DB4 can be stored on one or a plurality of computer units R.
- a hashroot w1234 H (w12 + w34) 370 can be created from the hashroot w12 and w34.
- the present invention allows labeled data objects D (for example images, music, videos, text, etc.) to be managed in a distributed storage system (distributed database).
- the data objects D are accessed via the method according to the present invention, which only accepts data object information DOI (eg labels F (“house”; “car”)) and provides the data objects D as a return value.
- DOI data object information
- the addresses of the data objects D can be provided.
- the data objects D can be stored as a copy wherever processing is provided. Every provisioning process can be traced.
- the structure of the hash tree and the encryption make it possible to understand which user copied what and in which order. This information can be used to determine, for example, which data objects D (or addresses of the data objects) are best suited for replication.
- the data objects D can be grouped using the labels. For example, all images that are labeled “house”, “car” and “sun” can be copied to a data memory in a computing unit R, which can then be used to learn a neural network or artificial intelligence.
- it can be determined whether a data object has several labels (e.g. a picture with a house, car and sun). It is checked whether the labels have the same addresses. This allows logical AND, OR, XOR, etc. queries to be implemented. It is also possible to determine whether new data objects D have been added to a label. By using the hash tree, only the data objects D need to be updated which require this label.
- a data object D has received the same label from several places, ie whether the same data object (e.g. picture) has been viewed by two different users and both have each set the label "tree" for the tree element in the picture .
- a condition can be set that at least two users have assigned the same label.
- the method according to the present invention can be integrated into existing blockchain systems through the use of hash trees and public key methods. For example, access to Data objects are granted via cryptocurrency and smart contracts. In this way, the training data can be offered on a data market and access to the data objects can be regulated by smart contracts. Information as to whether data objects with the desired labels are available can be provided via the present method and thus serve as a search function.
- a developer would like to train an algorithm which recognizes pedestrians on streets.
- the developer can use services that generate synthetic videos of pedestrians along a street.
- the developer can have access to a database with vehicle camera data.
- the creation of the synthetic video sequences and the provision of new, labeled camera data can take several days. During this period, the developer may want to be informed when new data is available for training the algorithm. In addition, the data should be made available on the local hard drive so that it can be used directly for training.
- the developer found that vehicle camera data was often incorrectly labeled.
- the developer can determine which camera data he would like to receive and use.
- the developer can specify that he would like to receive camera data that has only been labeled by certain users.
- a query can be made for vehicle camera data:
- the data is automatically copied to the local hard drive and training of the neural network can begin.
- the data can be made available immediately or after training the neural network to other users who use a different algorithm, for example. The same label signature is required for this. If the replicated data are available through a communication link between the computer unit R and the network to the distributed storage system S, these data can be copied to the computer unit R of the other users.
- 8 shows a block diagram to illustrate a possible exemplary embodiment of a distributed memory system.
- the reference character S denotes the distributed storage system.
- the distributed storage system S comprises at least one computer unit R.
- the illustration in FIG. 8 is not to be regarded as restrictive. Rather, the distributed storage system S can comprise further computer units R.
- the computer unit R comprises a receiving interface 11 and a recording interface 12, as well as a processor unit 13.
- the receiving interface 11 and the recording interface 12 are connected to the processor unit 13 via a data bus (not shown).
- the processor unit 13 is designed to provide trustworthy data objects D.
- the receiving interface 11 is configured to receive data object information DOI.
- the acquisition interface 12 is configured to acquire address information A of a computer unit R.
- the computer unit R can comprise a further interface (not shown) via which the data object D is provided. Alternatively, the acquisition interface 12 or the reception interface 11 can be configured to provide the data object D.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Die Erfindung betrifft ein computerimplementiertes Verfahren zum Bereitstellen, durch ein verteiltes Speichersystem mit einer Vielzahl an Rechnereinheiten, vertrauenswürdiger Datenobjekte zum Anlernen eines neuronalen Netzwerkes. Das Verfahren umfasst die folgenden Schritte: - Empfangen wenigstens einer Datenobjektinformation für ein bereitzustellendes Datenobjekt von wenigstens einer Rechnereinheit zum Anlernen eines neuronalen Netzwerkes; - Erfassen einer Adressinformation der wenigstens einen Rechnereinheit; - Bereitstellen des Datenobjektes an die Rechnereinheit auf Basis der empfangenen Datenobjektinformation; und - Zuordnen der erfassten Adressinformation der Rechnereinheit zu der Datenobjektinformation des bereitgestellten Datenobjektes und Speichern der Datenobjektinformation mit der zugordneten Adressinformation in dem verteilten Speichersystem.
Description
Beschreibung
Computerimplementiertes Verfahren und verteiltes Speichersystem zum Bereitstellen vertrauenswürdiger Datenobjekte
Die vorliegende Erfindung bezieht sich auf das Bereitstellen vertrauenswürdiger Datenobjekte zum Anlernen eines neuronalen Netzwerkes und betrifft insbesondere ein computerimplementiertes Verfahren, ein verteiltes Speichersystem und ein Computerprogramm.
Um neuronale Netzwerke und/oder weitere Algorithmen des maschinellen Lernens anzulernen und/oder zu trainieren, werden Datensätze, insbesondere eine große Anzahl an Datensätzen benötigt. Damit diese Datensätze für das Trainieren verwendet werden können, wird der Inhalt der Datensätze über Metadaten beschrieben. Metadaten stellen hierbei strukturierte Daten dar, welche Informationen über Merkmale anderer Daten enthalten. Den Inhalten der Datensätze werden durch ein sogenanntes Labein die Metadaten, entsprechende Labels, zugewiesen. Die Datensätze können von einem menschlichen Analysten (Experten, Data Scientist, usw.) oder von einer Maschine automatisch gelabelt werden. Ferner ist es denkbar, dass die Datensätze synthetisch erzeugt werden (Groh, Synthetic Data as a Service). Nachteilig ist, dass die Datensätze oftmals sehr groß, im Sinne der Anzahl der Daten oder des Speicherbedarfs, sind und über unterschiedliche Quellen zur Verfügung gestellt werden. Zudem ist nachteilig, dass oftmals nur ein spezieller Teil der Inhalte der Datensätze benötigt wird, um das neuronale Netzwerk und/oder einen Algorithmus zu trainieren. Um diesen Nachteil zu überwinden, werden Daten mehrfach auf verschiedenen Datenträgern, beispielsweise Festplatten, USB Stick, usw., abgelegt um die Datensätze nicht immer von einem Server herunterladen zu müssen, bevor das neuronale Netzwerk und/oder ein Algorithmus trainiert werden kann.
Die Datensätze werden im heutigen Stand der Technik überwiegend durch einen Webserver unter Verwendung einer Adresse, welche auf den Speicherort des Datensatzes verweist, in Form einer URL (Uniform Resource Locator) bereitgestellt.
Ein anderer Ansatz Datensätze bereitzustellen besteht darin, die Datensätze über ihren Inhalt zu organisieren (Content based vs. Address based), wie es beispielsweise bei BitTorrent, Mule oder IPFS umgesetzt ist.
Ferner sind im Stand der Technik Indexstrukturen bekannt. Indexstrukturen werden in der Informatik verwendet, um den Zugriff auf eine Datensammlung zu ermöglichen. In Flashtabellen bzw. Streuwerttabellen organisierte Daten können durch einen Merkle Tree Proof vor der Veränderung durch nicht autorisierte Anwender geschützt werden, bzw. kann ermittelt werden, welcher Teil des Datensatzes, bzw. welche Daten verändert wurden. Weiterhin sind Signaturen und Public Key Infrastrukturen bekannt. Diese ermöglichen es, die Quelle der Daten zu verifizieren und den Zugriff auf die Datensätze zu koordinieren.
Zum Trainieren von neuronalen Netzwerken oder anderer Entitäten künstlicher Intelligenz werden entsprechende Daten benötigt. Nachteilig ist hierbei, dass die Qualität des Anlernens von der Qualität der bereitgestellten Daten abhängt. Zudem wird erschwert, entsprechend qualitativ notwendige Daten für das Trainieren bereitzustellen. Beispielsweise werden Label unterschiedlich definiert, beispielsweise durch eine andere Sprache, Bedeutung, usw., womit die gelabelten Datensätze nicht immer im gleichen Rahmen verwendet werden können. Ferner werden Datensätze kopiert und zur Verfügung gestellt, wobei zum Teil nicht eindeutig erkennbar ist, wer die Datensätze zur Verfügung gestellt und/oder gelabelt hat. Weiterhin können Datensätze in der Version und im Inhalt auseinanderlaufen oder es werden Datensätze kopiert, obwohl dies für das Trainieren des neuronalen Netzwerkes und/oder der künstlichen Intelligenz nicht benötigt werden.
Zudem kann der Fall eintreten, dass ein Anwender wissen möchte, ob die verwendeten Datensätze aus einer vertrauenswürdigen Quelle stammen und durch diese gelabelt wurden. Zudem kann der Fall eintreten, dass für ein Trainieren eines neuronalen Netzwerkes und/oder künstlicher Intelligenz nur Datensätze verwendet werden sollen, die durch einen spezifischen Anwender, beispielsweise Anwender A oder B, allerdings nicht durch Anwender C gelabelt wurden.
Ferner ist es notwendig, dass Datensätze dort zur Verfügung gestellt werden, wo diese benötigt und eingesetzt werden. Neben dem Kopieren der Datensätze wird oftmals eine Konvertierung (z.B. png nach jpg) durchgeführt. Dies erfolgt durch jede Zielplattform selber, wenn die Datensätze zentral organisiert sind und der Zielplattform nicht bekannt ist, dass der Datensatz bereits in entsprechend konvertierter Form an einer anderen Stelle verfügbar und abrufbar ist.
Ausgehend davon, liegt der vorliegenden Erfindung die technische Aufgabe zugrunde, einen Datensatz, insbesondere Datenobjekte verfügbar zu machen bzw. für ein Anlernen eines neuronalen Netzwerkes (oder einer anderen Entität künstlicher Intelligenz) bereitzustellen.
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst, insbesondere durch ein computerimplementiertes Verfahren, ein verteiltes Speichersystem und ein Computerprogramm. Vorteilhafte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen und der nachfolgenden Beschreibung beschrieben.
Gemäß einem ersten Aspekt bezieht sich die Erfindung somit auf ein computerimplementiertes Verfahren zum Bereitstellen vertrauenswürdiger Datenobjekte zum Anlernen eines neuronalen Netzwerkes. Die Datenobjekte werden durch ein verteiltes Speichersystem mit einer Vielzahl an Rechnereinheiten bereitgestellt. Im Sinne der vorliegenden Erfindung ist unter einem verteilten Speichersystem ein Verbund von Rechnereinheiten (z.B. Server, PC, usw.) zu verstehen, die über ein Kommunikationsmedium (z.B. Internet, Intranet) kommunizieren und Daten austauschen. Die Rechnereinheiten können physikalische Rechner (z.B. Server, PC, Laptop, datenverarbeitende Einheiten, usw.) umfassen, welche eine Schnittstelle (z.B. LAN, WLAN, Bluetooth, usw.) zur Kommunikation in einem Netzwerk aufweisen. Ferner können die Rechnereinheiten des verteilten Speichersystems gehostet auf anderen Servern bereitgestellt werden. Das computerimplementierte Verfahren umfasst vorzugsweise die folgenden Verfahrensschritte:
- Empfangen wenigstens einer Datenobjektinformation für ein bereitzustellendes Datenobjekt von wenigstens einer Rechnereinheit zum Anlernen eines neuronalen Netzwerkes;
- Erfassen einer Adressinformation der wenigstens einen Rechnereinheit;
- Bereitstellen des Datenobjektes an die Rechnereinheit auf Basis der empfangenen Datenobjektinformation; und
- Zuordnen der erfassten Adressinformation der Rechnereinheit zu der Datenobjektinformation des bereitgestellten Datenobjektes und Speichern der Datenobjektinformation mit der zugordneten Adressinformation in dem verteilten Speichersystem.
Im Sinne der vorliegenden Erfindung ist unter einem Datenobjekt ein Datensatz, eine Formel, ein Analyseobjekt und/oder ein Datenverknüpfungsobjekt zu verstehen, welche Daten enthalten bzw. ein Berechnungsergebnis bereitstellen. Daten können visuelle Daten, beispielsweise graphische oder textuelle Daten und/oder Audiodaten und/oder Bilder umfassen.
Weiterhin ist unter einer Datenobjektinformation eine Information zu verstehen, die Merkmale eines Datenobjektes durch eine weitere Information beschreibt. Beispielsweise kann ein Datenobjekt ein Bild mit drei Elementen, beispielsweise einem Kreis, Quadrat und Rechteck umfassen. Die Datenobjektinformation kann die in dem Datenobjekt enthaltenen drei Elemente durch entsprechende Information beschreiben. Beispielsweise können die jeweiligen Elemente durch ein Label versehen werden, welches die geometrische Ausgestaltung des Elementes, z.B. Label „Kreis“ für Element „Kreis“ beschreibt.
Zudem ist unter einer Adressinformation eine Adresse der Rechnereinheit zu verstehen, unter welcher die Rechnereinheit in einem Netzwerk identifizierbar ist. Dies kann beispielsweise über die MAC-Adresse (Media Access Control) der Netzwerkschnittstelle der Rechnereinheit erreicht werden. Alternativ oder zusätzlich ist unter einer Adressinformation der Rechnereinheit der Speicherbereich zu verstehen, unter der die Datenobjekte abrufbar und/oder ab speicherbar sind. Weiterhin kann die Adressinformation einen Public Key umfassen, welcher einer
Rechnereinheit eindeutig zu geordnet ist und durch den die Rechnereinheit eindeutig identifizierbar ist. Weiterhin ist es notwendig, dass die Datenobjekte inhaltsbasiert erkannt und abgerufen werden. In einer Ausführungsform kann die Inhaltserkennung als ein Label implementiert sein, welches auf den Inhalt (Objekt) im Speicher und/oder Speichermedium verweist. Diesbezüglich kann es eine Art Adresse ausbilden, welche auf dem Inhalt selbst basiert, bzw. auf dem Inhalt basierend ausgebildet ist. In vorteilhafter Weise sind Inhaltserkennungen unabhängig von der Größe und des zugrunde liegenden Inhaltes identifizierbar.
Die Inhaltserkennungen können auf einem kryptografischen Hash des Inhaltes basierend aufgebaut sein. Somit kann in vorteilhafter Weise jeder Unterschied im Inhalt eine andere Inhaltserkennung erzeugen und das gleiche Fragment des Inhaltes, das zwei unterschiedlichen Speicher-Knoten (Speicherbereichen) im gleichen Netzwerk hinzugefügt wird, kann genau dieselbe Inhaltserkennung erzeugen. Von Vorteil ist diesbezüglich, dass die Adressinformation über die Inhaltserkennung bezogen werden kann.
Ein Public-Key-Verfahren ermöglicht somit die Adressinformation zu verifizieren. Somit kann sichergestellt werden, dass die Datenobjekte von einer vertrauenswürdigen Stelle an einer Adresse abgelegt werden. In einer Ausführungsform kann das durch ein Signieren der Adressinformation erfolgen.
Der vorliegenden Erfindung liegt die Kenntnis zu Grunde, dass zum Trainieren eines neuronalen Netzwerkes und einer künstlichen Intelligenz Daten aus großen Datenbanken mit unterschiedlichen Datensätzen verwendet werden. Allerdings sind die gespeicherten Datensätze nicht alle für jedes spezielle Training relevant oder wurden von einer vertrauenswürdigen Stelle gelabelt oder synthetisch erzeugt.
In vorteilhafter Weise werden durch die vorliegende Erfindung anhand benötigter Datenobjektinformation, beispielsweise Labels oder Attribute, direkt relevante Datenobjekte zur Verfügung gestellt. Ferner wird sichergestellt, dass die bereitgestellten Datenobjekte von einer vertrauenswürdigen Stelle gelabelt bzw. synthetisch erzeugt wurden. Zudem können große Datenmengen, um z.B. ein neuronales Netzwerk oder eine künstliche Intelligenz zu trainieren, unter
Verwendung des verteilten Speichersystems da zur Verfügung gestellt werden, wo sie verwendet werden. Während der Nutzung ist somit keine Bereitstellung und Übertragung von einer zentralen Einheit mehr notwendig, womit Bandbreite und Übertragungszeit gespart werden.
Vorteilhafte Ausführungsformen und Weiterbildungen ergeben sich aus den Unteransprüchen, sowie aus der Beschreibung unter Bezugnahme auf die Figuren.
In einer Ausführungsform der Erfindung umfasst das Verfahren weiterhin den Schritt: Anlernen eines neuronalen Netzwerkes durch die Rechnereinheit unter Verwendung des bereitgestellten Datenobjektes. In vorteilhafter Weise kann ein neuronales Netzwerk mittels den bereitgestellten Datenobjekten trainiert werden, welche als vertrauenswürdig zu erachten sind. Durch die vorliegende Erfindung kann nachvollzogen werden, wie und von wem (Mensch oder Maschine) die Datenobjektinformation dem Datenobjekt zugeordnet wurden sind. Mit Kenntnis dieser Information, kann das bereitgestellte Datenobjekt als vertrauenswürdig bzw. als nicht vertrauenswürdig eingestuft werden. Unter vertrauenswürdig ist somit zu verstehen, dass der Instanz (Rechner, Anwender), welche das Datenobjekt bereitstellt, vertraut werden kann, bzw. die Instanz bekannt ist, welche das Datenobjekt bereitstellt und/oder eine Datenobjektinformation des Datenobjektes beinhaltet und/oder speichert.
In einer Ausführungsform der Erfindung wird der Datenobjektinformation wenigstens eine Adressinformation wenigstens einer Rechnereinheit des verteilten Speichersystems zugeordnet. Die Adressinformation umfasst die Adresse der Rechnereinheit, welche ein Datenobjekt über die zu erfassende Datenobjektinformation angefordert hat. Über die zugeordnete Adressinformation wird zugeordnet, welche Rechnereinheit das Datenobjekt bereitstellen kann oder bereitstellt.
In einer Ausführungsform der Erfindung umfasst die Adressinformation eine physikalische Hardwareadresse der Rechnereinheit, eine Speicheradresse eines Speichers der Rechnereinheit und/oder einen öffentlichen Schlüssel. Über die
physikalische Hardwareadresse, beispielsweise die MAC-Adresse der Kommunikationsschnittstelle der Rechnereinheit, kann diese Rechnereinheit identifiziert und die Datenobjektinformation bzw. das Datenobjekt von der dieser Rechnereinheit bereitgestellt zugeordnet werden. Alternative Ausführungsformen umfassen die Verwendung einer Speicheradresse, welche den Speicherort des Datenobjektes beinhaltet oder einen öffentlichen Schlüssel, welcher die Adresse der Rechnereinheit umfasst. Somit kann jede Rechnereinheit, welche Datenobjekte bereitstellt, identifiziert werden.
In einer Ausführungsform der Erfindung repräsentiert die Datenobjektinformation ein Datenobjekt und weist wenigstens ein dem Datenobjekt zugeordnetes Label oder Attribut auf. Die Datenobjektinformation umfasst eine Information, die ein Datenobjekt repräsentiert. Insbesondere umfasst die Datenobjektinformation eine Information, die ein Datenobjekt und deren Elemente beschreibt. Vorzugsweise umfasst die Information ein Label, welches dem Datenobjekt zugeordnet ist. Das Label definiert das Datenobjekt und/oder ein und/oder weitere Elemente des Datenobjektes. Das Label definiert Informationen, welche durch ein neuronales Netz mit dem Datenobjekt in Verbindung gesetzt werden und zum Anlernen dienen können, insbesondere beim „supervised learning“. Alternativ oder ergänzend umfasst das Datenobjekt Attribute, welche beschreibende Eigenschaften des Datenobjektes und/oder von Elementen des Datenobjektes umfassen. Die Attribute werden mit den Datenobjekten in Verbindung gesetzt und bilden Beziehungen aus, welche entsprechend in einer Trainingsphase für ein neuronales Netzwerk und/oder eine künstliche Intelligenz eingesetzt werden können.
In einer Ausführungsform der Erfindung wird die Datenobjektinformation durch einen Anwender erzeugt. Die Labels und/oder Attribute als Datenobjektinformation werden durch einen Anwender spezifiziert und entsprechend der Interpretation der Datenobjekte gewählt und diesen zugewiesen.
In einer Ausführungsform der Erfindung wird die Datenobjektinformation durch eine Rechnereinheit automatisch und/oder synthetisch erzeugt. Über die Datenobjektinformationen kann das Datenobjekt synthetisch erzeugt werden.
Beispielsweise kann unter Zuhilfenahme der Metadaten, (z.B. ein Kreis, ein Quadrat) ein Bild mit einem Kreis und einem Quadrat erzeugt werden. Damit muss das Datenobjekt in einem weiteren Verarbeitungsschritt nicht zusätzlich gelabelt werden. Das Datenobjekt wird durch seine Labels automatisch erzeugt. In vorteilhafter Weise können somit die Datenobjekte auch dynamisch mit Hilfe der Inhaltserkennung erzeugt werden, wenn ein Dienst (Service) in der Lage ist, durch die Labels Datenobjekte zu erzeugen. Dies setzt voraus, dass die Inhaltserkennung die Labels einem Datenobjektgeneratordienst (Service) zur Verfügung stellt. Dieser Service stellt die Datenobjekte dann auf eine oder mehrere Adressen über eine einzige Inhaltserkennung zur Verfügung.
In einer Ausführungsform der Erfindung wird die erfasste Adressinformation der Datenobjektinformation verschlüsselt und/oder signiert zugeordnet. In vorteilhafter Weise kann somit die Adressinformation bzw. eine Adressliste durch einen Anwender signiert oder verschlüsselt werden, womit der Zugriff für weitere Anwender, insbesondere nicht berechtigte und/oder nicht vertrauenswürdige Anwender, auf die Datenobjektinformation und somit auf die Datenobjekte eingeschränkt wird. Ein Anwender mit eingeschränktem Zugriff kann somit selbst nicht entsprechende Datenobjekte bzw. Datenobjektinformationen zum Anlernen eines neuronalen Netzwerkes über eine Rechnereinheit bereitstellen. Unter einer Adressliste ist eine Sammlung an Adressinformationen zu verstehen. In einer Ausführungsform kann die Adressliste in einer Datenbank in der Rechnereinheit, von der das Datenobjekt zur Verfügung gestellt wird, gespeichert sein.
In einer Ausführungsform der Erfindung umfasst das Verschlüsseln und/oder Signieren ein symmetrisches Verschlüsselungsverfahren. Über ein symmetrisches Verschlüsselungsverfahren werden die Verschlüsselung und Entschlüsselung mit demselben Schlüssel durchgeführt. Somit wird vor der Verschlüsselung durch die beteiligten Parteien ein geheimer Schlüssel vereinbart bzw. ausgetauscht und der Schlüssel muss ebenso geheim gehalten werden, um eine Veränderung der Adressinformation und/oder der Adressliste zu unterbinden. Durch das symmetrische Verschlüsselungsverfahren kann eine schnelle Verschlüsselung bereitgestellt werden.
In einer alternativen Ausführungsform der Erfindung umfasst das Verschlüsseln und/oder Signieren ein asymmetrisches Verschlüsselungsverfahren. In dem asymmetrischen Verschlüsselungsverfahren werden zwei Schlüssel zum Verschlüsseln und Entschlüsseln eingesetzt. Es werden ein öffentlicher Schlüssel, welcher für jeden zugänglich ist und ein privater Schlüssel, welcher geheim gehalten werden muss, bereitgestellt. Die Adressinformation wird mit dem öffentlichen Schlüssel verschlüsselt und kann nur mit dem privaten Schlüssel entschlüsselt werden. Hier muss der (öffentliche) Verschlüsselungsschlüssel nicht geheim gehalten werden. Allerdings ist sicherzustellen, dass der öffentliche Schlüssel auch wirklich zu dem Empfänger gehört.
In einer Ausführungsform wird das RSA Verfahren sowohl zum Verschlüsseln als auch zum digitalen Signieren der Adressinformation verwendet. Wie bereits ausgeführt, wird ein Schlüsselpaar verwendet, bestehend aus einem privaten Schlüssel, der zum Entschlüsseln oder Signieren von Daten verwendet wird, und einem öffentlichen Schlüssel, mit dem verschlüsselt werden kann oder Signaturen überprüft werden. Der private Schlüssel ist hier geheim zu halten und kann nicht aus dem öffentlichen Schlüssel berechnet werden. Durch das asymmetrische Verschlüsselungsverfahren kann eine sichere Verschlüsselung bereitgestellt werden.
In einer Ausführungsform der Erfindung werden die Datenobjektinformation und die erfasste Adressinformation gehashed als entsprechende Hashblätter in dem verteilten Speichersystem gespeichert. Insbesondere dienen die Datenobjektinformation und die erfasste Adressinformation als Hashblätter aller zu erstellenden Hashbäume. Durch die Hashblätter und deren Zuordnung zu Hashbäumen kann nachvollzogen werden, insbesondere nicht-manipulierbar nachvollzogen werden, welche Datenobjekte bereitgestellt wurden und auf welcher Rechnereinheit des verteilten Speichersystems diese gespeichert sind. Somit kann die Sicherheit vor Manipulation erhöht werden. Zudem wird die Nachvollziehbarkeit des Datenaustausches bzw. der Datenobjektduplizierung durch Kopieren der Datenobjekte effizienter und transparenter nachvollziehbar. Ferner werden die
Datenobjektinformation und somit die Adressinformation der Datenobjekte anonymisiert.
In einer Ausführungsform der Erfindung werden die Hashblätter zu einem Hashbaum zugeordnet. Das Zuordnen der Hashblätter zu einem Hashbaum kann durch eine Suchanfrage nach einer Datenobjektinformation erfolgen. Insbesondere wird ein Hashbaum erstellt, wenn ein Datenobjekt über mehrere Datenobjektinformationen angefragt wird. Der Aufbau des Hashbaumes ermöglicht es, nachzuvollziehen, über welche Rechnereinheit Datenobjekte angefordert und bereitgestellt worden.
In einer Ausführungsform der Erfindung wird zum Erstellen der Hashblätter als Hashverfahren ein Message-Digest Algorithmus (MD4, MD5) verwendet. Es können Hash-Werte von 128 Bit erzeugt werden. Die Korrektheit eines geladenen Datenobjektes kann vereinfacht überprüft werden.
In einer alternativen Ausführungsform der Erfindung wird zum Erstellen der Hashblätter als Hashverfahren ein Secure Hash Algorithmus (SHA) verwendet. Über SHA kann ein Prüfwert für beliebige Datenobjekte, insbesondere digitale Datenobjekte berechnet werden und stellt die Grundlage zur Erstellung einer digitalen Signatur dar. Über den Prüfwert kann die Integrität einer Nachricht zugesichert werden. Stimmt der Prüferwert zweier Nachrichten überein, ist von der Gleichheit der Nachrichten auszugehen. Über SHA wird ein Hash-Wert von 160 Bit bereitgestellt, womit ein erhöhter Schutz gegenüber Brute-Force-Angriffe erzielbar ist.
In einer alternativen Ausführungsform der Erfindung wird zum Erstellen der Hashblätter als Hashverfahren ein Race Integrity Primitives Evaluation Message Digest (RIPEMD) verwendet. Es kann ein Hash-Wert von 160 Bit bereitgestellt werden.
In einer alternativen Ausführungsform der Erfindung wird zum Erstellen der Hashblätter als Hashverfahren der Tiger Algorithmus verwendet. Der vom Tiger
Algorithmus erzeugte Hashwert hat eine Länge von 128, 160 oder 192 Bit. Der auf dem Tiger Algorithmus basierende Tiger-Tree-Hash kann in vorteilhafter weise verwendet werden, die Integrität großer Daten bei oder nach der Übertragung zu überprüfen. Der Tiger-Tree-Hash hashed auf der Ebene der Hash-Blätter je 1024 Byte große Datenblöcke aus dem Datenobjekt. Die Root-Hash ist ein eindeutiger Identifikator für das Datenobjekt. Ist der vollständige Tiger-Hashbaum auf einer Rechnereinheit gespeichert, kann verifiziert werden, ob die einzelnen Dateiblöcke korrekt sind. Zudem kann gleichzeitig überprüft werden, ob der Hashbaum selbst korrekt ist.
In einer alternativen Ausführungsform der Erfindung wird zum Erstellen der Hashblätter als Hashverfahren der Whirlpool Algorithmus verwendet. Der Whirlpool Algorithmus kann für Datenobjekte bis zu 2256 Bit Größe verwendet werden und gibt einen Hash-Wert von 512 Bit zurück.
In einem weiteren Aspekt bezieht sich die Erfindung auf die Verwendung des computerimplementierten Verfahrens nach einem der Verfahrensansprüche der vorliegenden Erfindung zum Bereitstellen eines Datenobjektes, für das Anlernen eines neuronalen Netzwerkes. Weiterhin können die bereitgestellten Datenobjekte für weitere Lernalgorithmen vorgesehen sein.
In einem weiteren Aspekt bezieht sich die Erfindung auf ein verteiltes Speichersystem. Das verteilte Speichersystem umfasst wenigstens eine Rechnereinheit, z.B. eine industrielle Rechnereinheit. Die Rechnereinheit ist ausgebildet das computerimplementiere Verfahren gemäß der vorliegenden Erfindung auszuführen. Die Rechnereinheit weist eine Empfangsschnittstelle, eine Erfassungsschnittstelle und eine Prozessoreinheit zum Bereitstellen vertrauenswürdiger Datenobjekte auf.
Die Rechnereinheit kann als ein Server, ein PC, und/oder als eine auf einem Computer gehostete Softwareimplementierung ausgebildet sein. Die Rechnereinheit weist unterschiedliche Schnittstellen zur
Mensch-Maschine-Kommunikation (HMI), sowie Schnittstellen zur Kommunikation
mit weiteren Rechnereinheiten auf. Die HMI-Schnittstellen umfassen Eingabe- und Ausgabegeräte zur Bedingung der Rechnereinheit. Die Schnittstellen zur Kommunikation mit weiteren Rechnereinheiten weisen drahtlose Schnittstellen (WLAN, Wifi, Bluetooth, usw.) und/oder drahtgebundene Schnittstellen (Ethernet, USB, usw.) auf. Die Prozessoreinheit ist über einen Bus mit den Schnittstellen der Rechnereinheit verbunden. Alternativ kann die Rechnereinheit auf einem Mikrocontroller oder einem FPGA in Flardware realisiert sein.
Vorstehend wurde die Lösung der Aufgabe anhand des Verfahrens beschrieben. Dabei erwähnte Merkmale, Vorteile oder alternative Ausführungsformen sind ebenso auch auf die anderen beanspruchten Gegenstände zu übertragen und umgekehrt. Mit anderen Worten können auch die gegenständlichen Ansprüche (die beispielsweise auf eine Rechnereinheit oder auf ein Com puterprogramm produkt gerichtet sind) mit den Merkmalen weitergebildet sein, die in Zusammenhang mit dem Verfahren beschrieben und/oder beansprucht sind. Die entsprechenden funktionalen Merkmale des Verfahrens werden dabei durch entsprechende gegenständliche Module, insbesondere durch Hardware-Module oder Mikroprozessor-Module, der Rechnereinheit bzw. des Produktes ausgebildet und umgekehrt.
Eine weitere Aufgabenlösung sieht ein Computerprogramm vor, mit Programmelementen (Computercode) zur Durchführung aller Verfahrensschritte des oben näher beschriebenen Verfahrens, wenn das Computerprogramm und dessen Programmelemente in einen Speicher des Computers geladen werden und somit auf dem Computer ausgeführt werden. Dabei ist es auch möglich, dass das Computerprogramm auf einem von einem nicht-flüchtigen, computerlesbaren Medium gespeichert ist.
In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen. In dieser zeigen:
Fig. 1 ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels einer erfindungsgemäßen verteilten Speichersystems;
Fig. 2 ein Ablaufdiagramm zur Darstellung eines möglichen Ausführungsbeispiels des erfindungsgemäßen Verfahrens;
Fig. 3 ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels einer Datenobjektbereitstellung;
Fig. 4 ein Blockdiagramm zur Darstellung eines weiteren möglichen Ausführungsbeispiels einer Datenobjektbereitstellung;
Fig. 5 ein Blockdiagramm zur Darstellung eines weiteren möglichen Ausführungsbeispiels einer Datenobjektbereitstellung;
Fig. 6 ein Blockdiagramm zur Darstellung eines erzeugten Flashbaumes unter Verwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens;
Fig. 7 ein weiteres Blockdiagramm zur Darstellung eines erzeugten Flashbaumes unter Verwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens; und
Fig. 8 ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels eines verteilten Speichersystems.
Die beiliegenden Zeichnungen sollen ein weiteres Verständnis der Ausführungsformen der Erfindung vermitteln. Sie veranschaulichen Ausführungsformen und dienen im Zusammenhang mit der Beschreibung der Erklärung von Prinzipien und Konzepten der Erfindung. Andere Ausführungsformen und viele der genannten Vorteile ergeben sich im FHinblick auf die Zeichnungen. Die Elemente der Zeichnungen sind nicht notwendigerweise maßstabsgetreu zueinander gezeigt.
In den Figuren der Zeichnung sind gleiche, funktionsgleiche, und gleich wirkende Elemente, Merkmale und Komponenten - sofern nichts anderes ausgeführt ist - jeweils mit denselben Bezugszeichen zu versehen.
Fig. 1 zeigt ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels einer erfindungsgemäßen verteilten Speichersystems. In Fig. 1 bezeichnet Bezugszeichen S ein verteiltes Speichersystem. Das verteilte Speichersystem S umfasst wenigstens eine Rechnereinheit, vorzugsweise mehrere Rechnereinheiten Rn. In der Fig. 1 sind drei Rechnereinheiten Rn dargestellt. Die Ausgestaltung des verteilten Speichersystems S soll aber nicht auf die dargestellte Ausgestaltung beschränkt sein. Vielmehr kann ein verteiltes Speichersystem S weitere oder weniger Rechnereinheiten Rn aufweisen. Die Rechnereinheiten Rn können als Server, Computer usw. ausgebildet sein, die eine Kommunikationsschnittstelle zur Kommunikation mit einem Netzwerk und somit zur Kommunikation und für den Datenaustausch untereinander aufweisen. Das verteilte Speichersystem S ist ausgebildet, Datenobjekte D verteilt in dem verteilten Speichersystem S auf den Rechnereinheiten Rn zu speichern.
Eine Rechnereinheit R außerhalb des verteilten Speichersystems S, aber in Kommunikation mit dem verteilten Speichersystem S kann eine Datenobjektinformation DOI an das verteilte Speichersystem S bereitstellen. Weiterhin ist denkbar, dass die Rechnereinheit R, welche eine Datenobjektinformation DOI bereitstellt, Teil des verteilten Speichersystems S ist. Weiterhin kann die Rechnereinheit R eine Vielzahl an Datenobjektinformation DOI bereitstellen. Zudem ist das Bereitstellen von Datenobjektinformationen DOI nicht nur auf eine Rechnereinheit R beschränkt. Insbesondere können Datenobjektinformationen DOI durch eine Vielzahl an Rechnereinheiten Rn aus dem verteilten Speichersystem S oder außerhalb des verteilten Speichersystems S bereitgestellt werden. Die bereitgestellte Datenobjektinformation DOI wird durch das verteilte Speichersystem S, insbesondere durch die Rechnereinheiten Rn des verteilten Speichersystems S empfangen. Die Rechnereinheiten Rn sind ausgebildet ein neuronales Netzwerk, eine künstliche Intelligenz und/oder einen
lernfähigen Algorithmus zu trainieren. Für das Trainieren werden Datenobjekte D verwendet, die durch das verteilte Speichersystem S auf Basis der empfangenen Datenobjektinformation DOI bereitgestellt werden.
Die Datenobjektinformation DOI umfasst ein Label und/oder wenigstens ein Attribut des Datenobjektes D. Die Datenobjektinformation DOI kann durch einen Anwender manuell erstellt oder durch eine Maschine (z.B. eine Rechnereinheit R) automatisch erzeugt werden. Einem Datenobjekt D kann eine Menge an Label und/oder Attribute umfassen. Die Menge der Datenobjektinformation DOI ergibt sich aus der Menge an Elementen in dem Datenobjekt D und einem Detailierungsgrad der Beschreibung der Elemente in dem Datenobjekt D. Ein Datenobjekt D kann graphische und/oder textuelle Information, Bilder, Musik, Video usw. umfassen. Die Datenobjekte D liegen in digitaler Version vor. Die Datenobjekte D können eine unterschiedliche Konvertierung und unterschiedliche Datenformate aufweisen.
Durch das Speichersystem S wird eine Adressinformation A der wenigstens einen Rechnereinheit R erfasst, welche die Datenobjektinformation DOI bereitstellt bzw. ein Datenobjekt anfordert. Die Adressinformation A ist eine bestimmte Information, welche die Rechnereinheit R gegenüber anderen Rechnereinheiten R unverwechselbar identifiziert. Alternativ kann die Adressinformation einen Speicherbereich und/oder Speicherort definieren, an dem die Datenobjektinformation DOI und/oder das Datenobjekt D gespeichert sind und/oder zu speichern sind.
Die erfasste Adressinformation A der Rechnereinheit R wird der Datenobjektinformation DOI des bereitgestellten Datenobjektes D zugeordnet. In vorteilhafter Weise kann somit nachvollzogen werden, auf welche Rechnereinheit R das Datenobjekt D bereitgestellt wurde. Insbesondere wird die Datenobjektinformation DOI des bereitgestellten Datenobjektes D durch das Zuordnen der Adressinformation A aktualisiert. Die Datenobjektinformation DOI mit der zugeordneten Adressinformation A wird in dem verteilten Speichersystem S gespeichert. Jede mit dem verteilten Speichersystem S verbundene Rechnereinheit
R empfängt die Datenobjektinformation DOI mit der zugeordneten Adressinformation A und weist somit den gleichen Informationsstand auf.
Fig. 2 zeigt ein Ablaufdiagramm zur Darstellung eines möglichen Ausführungsbeispiels des erfindungsgemäßen Verfahrens. Das computerimplementierte Verfahren V umfasst bei dem dargestellten Ausführungsbeispiel mehrere Schritte. In einem ersten Schritt S1 wird wenigstens eine Datenobjektinformation DOI für ein bereitzustellendes Datenobjekt D von wenigstens einer Rechnereinheit R empfangen. Das bereitzustellende Datenobjekt D kann für das Anlernen eines neuronalen Netzwerkes N verwendet werden. In einem weiteren Schritt S2 wird eine Adressinformation der wenigstens einen Rechnereinheit R erfasst. In einem weiteren Schritt S3 wird das Datenobjekt D an die Rechnereinheit R auf Basis der empfangenen Datenobjektinformation DOI bereitgestellt. Die empfangene Datenobjektinformation DOI umfasst ein Label und/oder Attribute, welche Elemente und/oder Informationen des Datenobjektes D beschreiben bzw. in dem Datenobjekt D enthalten sind. Über die Datenobjektinformation DOI werden die Datenobjekte D somit nach enthaltenen Elementen und/oder Informationen klassifiziert und können nach diesen gesucht werden. In einem weiteren Schritt S4 werden die erfassten Adressinformation A der Rechnereinheit R zu der Datenobjektinformation DOI des bereitgestellten Datenobjektes D zugeordnet. Die Adressinformationen A können in einer Liste angeordnet und in einer Datenbank gespeichert werden. In der Datenbank kann das Datenobjekt D abgespeichert werden. Die Datenobjektinformation kann die Adresse des Speichers umfassen, unter der das das Datenobjekt D gespeichert ist. Die Datenbank kann in einer Rechnereinheit R und/oder verteilt in den Rechnereinheiten R des verteilten Speichersystems S gespeichert sein.
Fig. 3 zeigt ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels einer Datenobjektbereitstellung. In Fig. 3 ist eine Vielzahl an Rechnereinheiten Rn dargestellt. Die Rechnereinheiten Rn sind über ein Netzwerk untereinander verbunden und können das verteilte Speichersystem S ausbilden. Die Rechnereinheiten Rn können als ein Datenserver ausgebildet sein. Die Rechnereinheiten Rn umfassen wenigstens eine Datenbank, in der die
Datenobjektinformation DOI und das Datenobjekt D gespeichert sind. Es können auch separate Datenbanken zur Speicherung der Datenobjektinformation DOI und des Datenobjektes D vorgesehen sein. Jede Recheneinheit weist eine Adressinformation A auf. Das Datenobjekt D kann graphische und/oder textuelle Informationen, Musik, Videos oder Bilder usw. umfassen. Den Datenobjekten D werden Datenobjektinformation DOI zugeordnet. Die Datenobjektinformation DOI weisen Label oder Attribute als Parameter auf, auf deren Basis durch das verteilte Speichersystem S die Datenobjekte D bereitgestellt werden. Diese Datenobjekte können zum Trainieren von neuronalen Netzwerken, künstlicher Intelligenz o.ä. verwendet werden.
Die Datenobjekte D erhalten Labels und/oder Attribute in einer Textform, aus einer definierten Bildmenge manuell durch einen Anwender oder automatisiert durch eine Maschine. Das Datenobjekt D umfasst beispielsweise ein Bild mit den Elementen Haus, Baum, Sonne und Auto. Diese Elemente stellen die definierte Bildmenge dar. Ein Anwender oder eine Maschine kann diese Elemente textuell mit vorgegebenen Labels beschreiben. Die Labels können maschinell ausgewertet werden. Somit beschreibt das Label, dass in diesem Datenobjekt D (Bild), beispielsweise eine Sonne enthalten ist. In einer Ausführungsform, können Attribute vergeben werden, welche Position und Dimension des Elementes beschreiben.
Die manuell oder automatisch erstellten Labels werden zusammen mit der Information, wo das Datenobjekt D zu finden ist, in einer Datenbank einer Rechnereinheit R gespeichert (Schritt 100). Beispielsweise können die Label: [Haus; Baum; Sonne; Auto] für die entsprechenden Elemente in dem Datenobjekt D vergeben werden. Somit wird dem Datenobjekt D die Datenobjektinformation DOI [Haus; Baum; Sonne; Auto] zugeordnet. Bei der Suche bzw. Abfrage einer der Datenobjektinformationen DOI wird das Datenobjekt D bereitgestellt, welches die o.g. Labels zugewiesen bekommen hat. Die Adresse des Datenobjektes D umfasst den Speicherort des Datenobjektes D, beispielsweise [https://conti/db/pic.png].
Im Schritt 110 wird die Adresse des Datenobjektes D verschlüsselt und signiert. Für das Verschlüsseln werden symmetrische Verschlüsselungsverfahren verwendet.
Insbesondere werden für das Verschlüsseln und Signieren asymmetrische Verschlüsselungsverfahren verwendet. Die Adresse bzw. eine zu einer Datenobjektinformationen DOI zugeordneten Adressliste kann von einem Anwender durch ein entsprechendes asymmetrische Verschlüsselungsverfahren (public-private-key - Verfahren) signiert und ggf. verschlüsselt werden, wenn der Zugriff auf die Datenobjektinformationen DOI und somit das Datenobjekt D eingeschränkt werden soll. Eine Adressliste ist eine Sammlung an Adressen, welche jeweils den Speicherort des gleichen Datenobjektes D (Kopie) auf verschiedenen Rechnereinheiten R definieren. Eine verschlüsselte Adresse ergibt sich zu cp(Di) => Adresse [verschlüsselt & signiert] Di beschreibt hierbei den Speicherort, beispielsweise Datenbank 1.
Im Schritt 120 werden die Datenobjektinformationen DOI (z.B. Labels) und die Adresse des Datenobjektes D gehashed. In einer Ausführungsform kann die Hashfunktion SHA3 verwendet werden. Aus dem Label und der verschlüsselten Adresse wird über die Hashfunktion ein Hash-Wert gebildet:
W(cp(Di) + Label).
Durch das Signieren und/oder Verschlüsseln der Adresse wird auch der Hash-Wert geändert, da sich dieser aus SHA(Label + Adressliste) ergibt. Einem Label kann eine unbestimmte Anzahl an Adresslisten von verschiedenen Anwendern zugewiesen werden, z.B. SHA(Label + Adreslistel + Adressliste2 + Adressliste3).
In Schritt 130 werden auf Basis des erstellten Hash-Wertes die Hashblätter 140, 150, 160 erstellt. Die Hashblätter ergeben sich zu W(cp(Di)) + Labeil) 140, W(cp(D2)) + Label2) 150 und W(cp(Dn)) + Labein) 160.
Ein Datenobjekt D kann unter Verwendung der vorliegenden Erfindung durch die Abfrage einer Datenobjektinformation, beispielsweise F(Label) von einem Anwender über eine Recheneinheit R, die mit dem verteilten Speichersystem S kommuniziert, abgefragt werden. Das verteilte Speichersystem S stellt das Datenobjekt D auf die Zieladresse der anfragenden Recheneinheit R des Anwenders bereit bzw. kopiert das Datenobjekt D und ergänzt die Adressliste
entsprechend. Flierdurch hat das verteilte Speichersystem S die Information, wo jedes Datenobjekt D gespeichert ist, da der Hash-Wert auch aktualisiert wird und in vorteilhafter Weise können alle teilnehmenden Anwender bzw. Rechnereinheiten R Änderungen überwachen und nachvollziehen.
In einer Ausführungsform kann ein Datensatz mit Hilfe mehrerer Datenobjektinformationen DOI angefragt werden. Beispielsweise können mehrere Labels angefragt, z.B. F(Haus; Gesicht). In diesem Fall wird ein Hashbaum mit den Blättern x = hash(Haus + Adressen) und y = hash(Gesicht + Adressen) erstellt. Die Hashroot des erstellten Hashbaums ist hash(x + y).
Fig. 4 zeigt ein Blockdiagramm zur Darstellung eines weiteren möglichen Ausführungsbeispiels einer Datenobjektbereitstellung. In Fig. 4 wird durch einen Anwender über eine Rechnereinheit R eine Datenobjektinformation DOM an das verteilte Speichersystem S mit den Rechnereinheiten Rn bereitgestellt. Auf Basis der erfassten Datenobjektinformation DOM wird ein Datenobjekt D an die Rechnereinheit R bereitgestellt. Zudem wird die Adressinformation A der Rechnereinheit R erfasst und als neue Adressinformation An in der Adressliste A_DOI_1 für die Datenobjektinformation DOM in einer Datenbank in dem verteilten Speichersystem S bzw. verteilt auf den Rechnereinheiten Rn gespeichert. Die aktuelle Adressliste A_DOI_1 ist beispielsweise in der Datenbank 1 gespeichert. Die Adressliste A_DOI_1 wird aktualisiert gespeichert. Der Hash-Wert der Adressliste wird durch die neue Adressinformation A der Rechnereinheit R geändert. Somit ist nachvollziehbar, an wen das Datenobjekt D bereitgestellt wurde. Es wird ein neuer Hash-Wert W(cp(D2)) + Labeil ) für das kopierte Datenobjekt D erstellt. Dieser Hash-Wert berücksichtigt die Adressen der Adressliste (A_DOI_1 ) und die hinzugefügte Adresse A der Rechnereinheit R auf der eine Kopie des Datenobjektes D bereitgestellt wurde, beispielsweise auf der Datenbank D2.
Fig. 5 zeigt ein Blockdiagramm zur Darstellung eines weiteren möglichen Ausführungsbeispiels einer Datenbereitstellung. In Figur 5 werden durch einen
Anwender über eine Recheneinheit R eine erste Datenobjektinformation DOM und eine zweite Datenobjektinformation DOI_2 an das verteilte Speichersystem S mit den Rechnereinheiten Rn bereitgestellt. Auf Basis der erfassten ersten und zweiten Datenobjektinformation DOM , DOI_2 wird ein Datenobjekt D an die Rechnereinheit R bereitgestellt. Zudem wird die Adressinformation A der Rechnereinheit R erfasst und als neue Adressinformation An in der ersten Adressliste A_DOI_1 für die erste Datenobjektinformation DOM und in der zweiten Adressliste A_DOI_2 für die zweite Datenobjektinformation DOI_2 in einer Datenbank in dem verteilten Speichersystem S bzw. verteilt auf den Rechnereinheiten Rn gespeichert. Die erste Adressliste A_DOI_1 und die zweite Adressliste A_DOI_2 werden aktualisiert gespeichert. Der Hash-Wert der Adresslisten wird durch die neue Adressinformation A der Rechnereinheit R geändert. Somit ist nachvollziehbar, an wen das Datenobjekt D bereitgestellt wurde. Es wird ein neuer Hash-Wert W((p(D3)) + Labeil + Label 2) für das kopierte Datenobjekt erstellt.
Fig. 6 zeigt ein Blockdiagramm zur Darstellung eines erzeugten Hashbaumes unter Verwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens. In Fig. 6 liegen drei erstellte Hashblätter 210, 260 und 230 vor. Beispielsweise für Hashblatt 210 w1 = H(cp(Di)) + Labeil ), für Hashblatt 220 w2 = H(f(ϋ2)) + Label2), für Hashblatt 230 w3 = H(f(ϋ3)) + Label3), usw. Aus den einzelnen Hashes kann ein binärer Hashbaum mit Hashroot 240 erstellt, beispielsweise w12 = H(w1 + w2) werden. Diese ergibt sich zu fi = H((p(D3)) + Labeil + Label 2) (Schritt 250). In diesem Hashbaum wird auf die neue Adresse A der Recheneinheit R, z.B. (p(D3) in Schritt 260 referenziert. In Schritt 270 ist für das erfasste Labeil und Label2 die Adressliste aktualisiert und umfasst ebenfalls die Adresse A der Rechnereinheit R.
Die Reihenfolge der Labels und damit die Ordnung der Hashblätter in dem Hashbaum, wird durch die Anfrage definiert, beispielsweise je nach Datenobjekt D „Haus“, „Sonne“, „Baum“. Die geordnete Labelliste wird durch die Anfragen erstellt. Die neue Hashroot des Hashbaumes erhält weiterhin eine neue Adressliste, da alle Datenobjekte D mit der Kombination der Labels abgelegt sind (z.B. alle Bilder mit
einem Baum und einer Sonne enthaltend). Der entsprechende Knoten in einem Hashbaum enthält nun zwei Hash-Werte.
Die Hashroot des Hashbaumes kann folgendermaßen ausgebildet sein:
Hashroot = SHA(SHA(Label1) + SHA(Label2)) sowie dem Hash der neuen Adressliste HA = SHA(label1/2 + Adressliste).
Somit ist es möglich, einen Datensatz zu aktualisieren, sobald sich die Adressliste eines Labelknotens geändert hat.
Der Datensatz umfasst alle Objekte, welche für ein Training des neuronalen Netzwerkes relevant sind. Das heißt der Datensatz umfasst alle Datenobjekte, welche entsprechend einer Suchanfrage gelabelt sind, beispielsweise Bilder mit einem Haus und einer Sonne. Wenn neue Datenobjekte hinzukommen, werden auch neue Inhaltserkennungen zu einer „Adressliste“ hinzugefügt. Das System ist somit in der Lage, über die Inhaltserkennung die tatsächliche Adresse des Datenobjektes, beispielsweise eine Sonne, zu ermitteln.
Alternativ werden in der Hashfunktion die Inhaltserkennungen gehashed. Die
Inhaltserkennung stellt somit den Schlüssel zu den tatsächlichen Adressen dar. inhaltserkennung _ SHA(bildsonne.jpg) alle_adressen = adresse[inhaltserkennung] echteAdresse = alle_adressen[0] print(echteAdresse) print(alle_adressen[1 ])
In vorteilhafter Weise entsteht für die neue Hashroot, durch das Zusammenführen von mehreren Inhaltserkennungen eine neue Adressliste, welche dann alle Datenobjekte mit den zusammengeführten Inhaltserkennungen beinhaltet und aufbewahrt. Somit sind dann, beispielsweise, alle Bilder mit der Sonne oder dem Haus auf der entsprechenden Datenbank auffindbar. Die Sonne und Haus Datenobjekte müssen in vorteilhafter Weise dann nicht mehr über mehrere Datenbanken und/oder Quellen bezogen werden.
Aus dem neuen Hash-wert, also dem zweiten Hash-Wert neben der Hashroot des ersten Hashbaumes ergibt sich das Hashblatt eines neuen Hashbaumes. Damit lassen sich Hashbäume miteinander verknüpfen, wobei die Hashroot zur Orientierung dient, um feststellen zu können, wo sich die Datenobjekte befinden.
Fig. 7 zeigt ein weiteres Blockdiagramm zur Darstellung eines erzeugten Hashbaumes unter Verwendung eines Ausführungsbeispiels des erfindungsgemäßen Verfahrens. Durch das erfindungsgemäße Verfahren kann die Integrität der Datenobjektinformation DOI (Labels) gewährleistet werden. Weiterhin ist es möglich mehrere Hashroots den Hashblättern zuzuordnen. Diese werden über den privaten Schlüssel eines Anwenders, welcher ein Datenobjekt mit einem Label versehen hat, verschlüsselt und/oder signiert. Weiterhin werden durch den Anwender die Datenobjektadressen zugewiesen bzw. können die Datenobjekt gespeichert und hinterlegt werden, wo sie zur Ausführung benötigt werden.
In Fig. 7 werden vier Datenbanken DB1 , DB2, DB3 und DB4 dargestellt. In den Datenbanken DB1 , DB2, DB3 und DB4 können Trainingsdaten (Datenobjekte D) gespeichert sein. Die Datenbanken DB1 , DB2, DB3 und DB4 können auf einem oder einer Vielzahl an Rechnereinheiten R gespeichert sein. Ein Anwender kann für die Trainingsdaten verschiedene Datenobjektinformationen DOI (Labels) vergeben. Beispielsweise kann ein Anwender ein Label L1 = „Haus“, ein Label L2 = „Baum“, ein Label L3 = „Auto“ , L4 = „Sonne“ usw. vergeben. Es werden für die Labels und die entsprechenden Speicheradressen (Adresse: A1 , A2, An) Hashwerte w1 = H(f(Ai)) + Labeil ) 310, w2 = H(f(A2)) + Label2) 320, w3 = H(f(A3)) + Label3) 330, w4 = H(f(A4)) + Label4) 340, usw. wn = H(f(Ah)) + Labein) erstellt.
Aus den Hashwerten 310, 320, 330, 340 können Hashroots w12 = H(w1 + w2) 350 und w34 = H(w3 + w4) 360 erstellt werden. Aus der Hashroot w12 und w34 kann eine Hashroot w1234 = H(w12 + w34) 370 erstellt werden. Aus der erstellten Hashroot w1234 (Schritt 370) ergibt sich ein neues Hashblatt fi = H(f(Aii)) + L1234) 380, wobei sich An aus den Datenbanken DB1 , DB2, DB3 und DB4 ergibt und das Label L1234 die Labels „Haus,“ „Baum“, „Auto“ und „Sonne“ umfasst.
Durch die vorliegende Erfindung können gelabelte Datenobjekte D (z.B. Bilder, Musik, Videos, Text, usw.) in einem verteilten Speichersystem (verteilte Datenbank) verwaltet werden. Ein Zugriff auf die Datenobjekte D erfolgt über das Verfahren gemäß der vorliegenden Erfindung, welche nur Datenobjektinformation DOI (z.B. Labels F(„Haus“; „Auto“)) entgegennimmt und als einen Rückgabewert die Datenobjekte D bereitstellt. Alternativ können die Adressen der Datenobjekte D bereitgestellt werden. Die Datenobjekte D können als eine Kopie dort gespeichert werden, wo eine Verarbeitung vorgesehen ist. Jeder Bereitstellungsvorgang kann nachvollzogen werden. Über den Aufbau des Hashbaumes und der Verschlüsselung kann nachvollzogen werden, welcher Anwender, was und in welcher Reihenfolge kopiert hat. Diese Information kann verwendet werden, um beispielsweise zu ermitteln, welche Datenobjekte D (bzw. Adressen der Datenobjekte) sich am besten für die Replikation eignen. Weiterhin können die Datenobjekte D unter Verwendung der Labels gruppiert werden. Beispielsweise können alle Bilder, welche mit dem Label „Haus“, „Auto“ und „Sonne“ versehen sind, auf einen Datenspeicher in einer Recheneinheit R kopiert werden, welcher im Anschluss zum Anlernen eines neuronalen Netzwerkes oder einer künstlichen Intelligenz verwendet werden kann. Zudem kann festgestellt werden, ob ein Datenobjekt mehrere Labels besitzt (z.B. ein Bild mit Haus, Auto und Sonne). Es wird geprüft, ob die Labels die gleichen Adressen besitzen. Damit lassen sich logische UND, ODER, XOR, usw. Abfragen umsetzen. Ferner ist es möglich, festzustellen ob neue Datenobjekte D einem Label hinzugefügt wurden. Durch die Verwendung des Hashbaumes müssen nur die Datenobjekte D aktualisiert werden, welche dieses Label benötigen. Zudem kann ermittelt werden, ob ein Datenobjekt D das gleiche Label von mehreren Stellen erhalten hat, d.h. ob das gleiche Datenobjekt (z.B. Bild) von zwei unterschiedlichen Anwendern gesichtet wurde und beide jeweils das Label „Baum“ für das Element Baum in dem Bild gesetzt haben. Somit kann bei einer Abfrage eine Bedingung gesetzt werden, dass mindestens zwei Anwender das gleiche Label vergeben haben.
Weiterhin ist es möglich, dass durch die Verwendung von Hashbäumen und Public Key Verfahren, das Verfahren gemäß der vorliegenden Erfindung in bestehende Blockchainsysteme integriert werden kann. Beispielsweise kann der Zugriff auf
Datenobjekte über Cryptowährung und Smart Contracts gewährt werden. Somit können die Trainingsdaten auf einem Datenmarkt angeboten werden und der Zugriff auf die Datenobjekte durch Smart Contracts geregelt werden. Informationen, ob Datenobjekte mit gewünschten Labels zur Verfügung stehen, kann über das vorliegende Verfahren erfolgen und somit als Suchfunktion dienen.
In einer Ausführungsbeispiel kann vorgesehen sein, dass ein Entwickler einen Algorithmus trainieren möchte, welcher Fußgänger auf Straßen erkennt. Hierzu kann der Entwickler auf Services zurückgreifen, welche synthetische Videos von Fußgängern entlang einer Straße erzeugen. Weiterhin kann der Entwickler Zugriff auf eine Datenbank mit Fahrzeugkameradaten haben. Die Erzeugung der synthetischen Videosequenzen, als auch die Bereitstellung neuer gelabelter Kameradaten kann mehrere Tage in Anspruch nehmen. In diesem Zeitraum möchte der Entwickler ggf. darüber informiert werden, wann neue Daten für das Training des Algorithmus zur Verfügung stehen. Zudem sollen die Daten auf der lokalen Festplatte bereitgestellt werden, um diese direkt für das Training verwenden zu können. Bei Verwendung der Fahrzeugkameradaten hat der Entwickler festgestellt, dass Fahrzeugkameradaten oftmals falsch gelabelt wurden. Diesbezüglich kann durch den Entwickler festgelegt werden, welche Kameradaten er erhalten und verwenden möchte. Insbesondere kann der Entwickler festlegen, dass er Kameradaten erhalten möchte, die nur von bestimmten Anwendern gelabelt wurden. Es kann eine Abfrage in der Form für Fahrzeugkameradaten gestellt werden:
F ((Fußgänger>2 & Straße>2 & Fahrzeugkamera) 1 1 (Fußgänger & Straße & Synthetisch)).
Die Daten werden automatisch auf die lokale Festplatte kopiert und es kann mit dem Training des neuronalen Netzwerkes begonnen werden. Die Daten können sofort oder nach dem Training des neuronalen Netzwerkes weiteren Anwendern zur Verfügung gestellt werden, welche beispielsweise einen anderen Algorithmus verwenden. Hierzu wird die jeweils gleiche Labelsignatur benötigt. Sind die replizierten Daten durch eine Kommunikationsverbindung der Rechnereinheit R mit dem Netz zum verteilten Speichersystem S verfügbar, können diese Daten auf die Rechnereinheit R der weiteren Anwender kopiert werden.
Fig. 8 zeigt ein Blockdiagramm zur Darstellung eines möglichen Ausführungsbeispiels eines verteilten Speichersystems. Das Bezugszeichen S bezeichnet das verteilte Speichersystem. Das verteilte Speichersystem S umfasst wenigstens eine Rechnereinheit R. Die Darstellung der Fig. 8 ist nicht als beschränkend anzusehen. Vielmehr kann das verteilte Speichersystem S weitere Rechnereinheiten R umfassen. Die Rechnereinheit R umfasst eine Empfangsschnittstelle 11 und eine Erfassungsschnittstelle 12, sowie eine Prozessoreinheit 13. Die Empfangsschnittstelle 11 und die Erfassungsschnittstelle 12 sind über einen Datenbus (nicht dargestellt) mit der Prozessoreinheit 13 verbunden. Die Prozessoreinheit 13 ist ausgebildet, vertrauenswürdige Datenobjekte D bereitzustellen. Die Empfangsschnittstelle 11 ist konfiguriert, eine Datenobjektinformation DOI zu empfangen. Die Erfassungsschnittstelle 12 ist konfiguriert, eine Adressinformation A einer Rechnereinheit R zu erfassen. Die Rechnereinheit R kann eine weitere Schnittstelle (nicht dargestellt) umfassen, über welche das Datenobjekt D bereitgestellt wird. Alternativ können die Erfassungsschnittstelle 12 oder die Empfangsschnittstelle 11 konfiguriert sein, dass Datenobjekt D bereitzustellen.
Claims
1. Computerimplementiertes Verfahren (V) zum Bereitstellen, durch ein verteiltes Speichersystem (S) mit einer Vielzahl an Rechnereinheiten (R), vertrauenswürdiger Datenobjekte (D) zum Anlernen eines neuronalen Netzwerkes (N), mit den folgenden Schritten:
- Empfangen (S1 ) wenigstens einer Datenobjektinformation (DOI) für ein bereitzustellendes Datenobjekt (D) von wenigstens einer Rechnereinheit (R) zum Anlernen eines neuronalen Netzwerkes (N);
- Erfassen (S2) einer Adressinformation (A) der wenigstens einen Rechnereinheit
(R);
- Bereitstellen (S3) des Datenobjektes (D) an die Rechnereinheit (R) auf Basis der empfangenen Datenobjektinformation (DOI); und
- Zuordnen (S4) der erfassten Adressinformation (A) der Rechnereinheit (R) zu der Datenobjektinformation (DOI) des bereitgestellten Datenobjektes (D) und Speichern der Datenobjektinformation (DOI) mit der zugordneten Adressinformation (A) in dem verteilten Speichersystem (S).
2. Verfahren nach Anspruch 1 , wobei das Verfahren weiterhin den Schritt umfasst:
- Anlernen eines neuronalen Netzwerkes (N) durch die Rechnereinheit (R) unter Verwendung des bereitgestellten Datenobjektes (D).
3. Verfahren nach einem der vorherigen Ansprüche, wobei der Datenobjektinformation (DOI) wenigstens eine Adressinformation (A) wenigstens einer Rechnereinheit (R) des verteilten Speichersystems (S) zugeordnet wird.
4. Verfahren nach Anspruch 3, wobei die Adressinformation (A) eine physikalische Hardwareadresse der Rechnereinheit (R), eine Speicheradresse eines Speichers der Rechnereinheit (R) und/oder einen öffentlichen Schlüssel umfasst.
5. Verfahren nach einem der vorherigen Ansprüche, wobei die Datenobjektinformation (DOI) ein Datenobjekt (D) repräsentiert und wenigstens ein dem Datenobjekt (D) zugeordnetes Label oder Attribut aufweist.
6. Verfahren nach einem der vorherigen Ansprüche, wobei die Datenobjektinformation (D) durch einen Anwender erzeugt oder durch eine Rechnereinheit automatisch und/oder synthetisch erzeugt werden.
7. Verfahren nach einem der vorherigen Ansprüche, wobei die erfasste Adressinformation (A) der Datenobjektinformation (DOI) verschlüsselt und/oder signiert zugeordnet wird.
8. Verfahren nach Anspruch 7, wobei das Verschlüsseln und/oder Signieren ein symmetrisches Verschlüsselungsverfahren oder ein asymmetrisches Verschlüsselungsverfahren umfasst.
9. Verfahren nach einem der vorherigen Ansprüche, wobei die Datenobjektinformation und die erfasste Adressinformation (A) gehashed als entsprechende Hashblätter in dem verteilten Speichersystem (S) gespeichert werden.
10. Verfahren nach Anspruch 9, wobei die Hashblätter zu einem Hashbaum zugeordnet werden.
11. Verfahren nach Anspruch 9 oder 10, wobei zum Erstellen der Hashblätter ein Hashverfahren, wenigstens umfassend:
- Message-Digest Algorithmus (MD4, MD5),
- Secure Hash Algorithmus (SHA),
- Race Integrity Primitives Evaluation Message Digest (RIPEMD),
- Tiger,
- HAVAL und/oder
- Whirlpool verwendet wird.
12. Verwendung des durch das Verfahren nach einem der vorangegangenen Verfahrensansprüche bereitgestellten Datenobjektes zum Anlernen eines neuronalen Netzwerkes.
13. Computerprogramm mit Programmelementen, die eine Rechnereinheit (R) veranlassen, die Schritte des Verfahrens gemäß einem der vorhergehenden Verfahrensansprüche auszuführen, wenn die Programmelemente in einen Speicher der Rechnereinheit (R) geladen werden.
14. Verteiltes Speichersystem (S) umfassend wenigstens eine Rechnereinheit (R) zur Ausführung des computerimplementierten Verfahrens (V) nach einem der Verfahrensansprüche 1 bis 10 mit einer Empfangsschnittstelle (11), einer Erfassungsschnittstelle (12) und einer Prozessoreinheit (13) zum Bereitstellen vertrauenswürdiger Datenobjekte (D).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020204033.8A DE102020204033A1 (de) | 2020-03-27 | 2020-03-27 | Computerimplementiertes Verfahren und verteiltes Speichersystem zum Bereitstellen vertrauenswürdiger Datenobjekte |
DE102020204033.8 | 2020-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021190715A1 true WO2021190715A1 (de) | 2021-09-30 |
Family
ID=74874608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE2021/200023 WO2021190715A1 (de) | 2020-03-27 | 2021-02-25 | Computerimplementiertes verfahren und verteiltes speichersystem zum bereitstellen vertrauenswürdiger datenobjekte |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102020204033A1 (de) |
WO (1) | WO2021190715A1 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020216131A1 (de) | 2020-12-17 | 2022-01-05 | Continental Automotive Gmbh | Computer-implementiertes Verfahren zur Verwaltung von Datensätzen und Annotationen zu den Datensätzen |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977822A (zh) * | 2019-03-15 | 2019-07-05 | 广州市网星信息技术有限公司 | 数据供给方法、模型训练方法、装置、系统、设备和介质 |
-
2020
- 2020-03-27 DE DE102020204033.8A patent/DE102020204033A1/de not_active Withdrawn
-
2021
- 2021-02-25 WO PCT/DE2021/200023 patent/WO2021190715A1/de active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109977822A (zh) * | 2019-03-15 | 2019-07-05 | 广州市网星信息技术有限公司 | 数据供给方法、模型训练方法、装置、系统、设备和介质 |
Non-Patent Citations (2)
Title |
---|
MALENSEK MATTHEW ET AL: "Trident: Distributed Storage, Analysis, and Exploration of Multidimensional Phenomena", IEEE TRANSACTIONS ON BIG DATA, IEEE, vol. 5, no. 2, 1 June 2019 (2019-06-01), pages 252 - 265, XP011726144, DOI: 10.1109/TBDATA.2018.2817505 * |
NICK HYNES ET AL: "A demonstration of sterling", PROCEEDINGS OF THE VLDB ENDOWMENT; [ACM DIGITAL LIBRARY], ASSOC. OF COMPUTING MACHINERY, NEW YORK, NY, vol. 11, no. 12, 1 August 2018 (2018-08-01), pages 2086 - 2089, XP058416431, ISSN: 2150-8097, DOI: 10.14778/3229863.3236266 * |
Also Published As
Publication number | Publication date |
---|---|
DE102020204033A1 (de) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102016110939B3 (de) | Datenorganisationsverfahren und Entwicklungsumgebungssystem | |
DE112012005037B4 (de) | Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds | |
DE112014000408B4 (de) | Sicheres Speichern und Zugreifen auf digitale Artefakte | |
DE69907631T2 (de) | Netzzugang zu inhaltsadressierbaren daten | |
DE69622325T2 (de) | Informationsablaufverfolgungssystem | |
DE112020003820T5 (de) | Erkennung von Anomalien und Abweichungen unter Verwendung eines domänenindizierten Einschränkungs-Repository | |
DE69500424T2 (de) | Verfahren und gerät zur sicheren objektveränderung in einem verteilten system | |
DE102013222384B4 (de) | Sicherheits-Screening auf Kontextgrundlage für Zugriff auf Daten | |
DE60224030T2 (de) | Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem | |
DE112020000767T5 (de) | Hybride blockchains und streamchains mit nicht-kryptografischen hashes zur absicherung von audio-, video-, bild- und sprachbasierten transaktionen und verträgen | |
DE202016005239U1 (de) | Graph-basierte Abfragen | |
DE202011110895U1 (de) | Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen | |
DE112021002797T5 (de) | Datenschutzerhaltende architektur für genehmigungspflichtige blockchains | |
DE102006011294A1 (de) | Verfahren und Kommunikationssystem zum rechnergestützten Auffinden und Identifizieren von urheberrechtlich geschützten Inhalten | |
DE112018005725T5 (de) | Daten-deidentifikation auf der grundlage eines erkennens von zulässigen konfigurationen für daten-deidentifikationsprozesse | |
DE102012220716A1 (de) | Verfahren, Datenverarbeitungsvorrichtung und Programm zum Identifizieren vertraulicher Daten | |
DE112011100620T5 (de) | Verfahren und system zum verwalten der lebensdauer von semantisch gekennzeichneten daten | |
DE102021125856A1 (de) | Erkennen von feindlichen angriffen auf ein tiefes neuronales netz (deep neural network (dnn)) | |
DE112022002919T5 (de) | Datenverteilung und sicherheit in einer mehrschichtigen speicher-infrastruktur | |
EP3552141B1 (de) | Server-computersystem zur bereitstellung von datensätzen | |
WO2018122269A1 (de) | Bitsequenzbasiertes datenklassifikationssystem | |
DE112021004008T5 (de) | Validieren von verfolgten abschnitten von empfangenen sensordaten mithilfe von kryptographischer computerverarbeitung | |
DE112022000906T5 (de) | Trennen von blockchain-daten | |
DE112020002859T5 (de) | Verschlüsselter wissens-graph | |
WO2021190715A1 (de) | Computerimplementiertes verfahren und verteiltes speichersystem zum bereitstellen vertrauenswürdiger datenobjekte |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21712037 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21712037 Country of ref document: EP Kind code of ref document: A1 |