TRAINING DATA SYNTHESIS FOR MACHINE LEARNING

A method can include generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

BACKGROUND

Machine learning models may be trained using training data, with the accuracy of the models generally proportional to the quantity and quality of the training data provided. The training data may be provided as “pairs”, including the raw data (e.g., an image or another object) and one or more labels that the raw data represents. These pairs are employed to form “connections” within the model, and eventually the model may be able to predict a label associated with new data, based on the data itself. Generally, the data are provided to a machine learning model from manually labeled data sets, which is time intensive. Unsupervised learning methods also exist, but without manual labels to train the machine learning model, unsupervised techniques tend to involve clustering algorithms, which may demand model refinements to provide meaningful clusters.

Various machine learning models find use in computer graphics. In the computer graphics field, a raster graphics or bitmap image is a dot matrix data structure that represents a generally rectangular grid of pixels (points of color, grayscale, black and white), viewable via a bitmapped display (monitor). Raster images can be stored in image files with varying dissemination, production, generation, and acquisition formats. Common pixel formats include monochrome, grayscale, palletized, and full color, where color depth determines the fidelity of the colors represented and color space determines the range of color coverage, which may be less than the full range of human color vision.

Raster images of seismic data and well logs may include segments as log header segments, curve segments, tables, text blocks, graphs, and/or other segments. Curve segments can represent petrophysical properties of rocks and their contained fluids in the form of graphs, as may be based on sensed data from one or more sensors. Values and meaning of curve segments are generally recognizable using information provided by a log header, text blocks, and other segments. A “legacy” raster image of seismic data may include images generated prior to digital data acquisition techniques. A legacy raster image may be a scanned image saved as a computer image file. Image files may adequately depict the non-digital log data such that a human user can review and understand the information collected; however, the files may not include the digital data represented by the curve, e.g., the values for the properties and depths that the curve represents.

A machine learning model can be trained to extract information from raster images using training pairs of raster images and labels. However, again, the labeling process is time intensive. Thousands of pairs may be needed to adequately train a model, particularly where images are in a variety of formats. Further, “noise” may be present in scans of images (e.g., artifacts such as smudges that do not contain data that is represented by the curve), which can call for ever-larger training data sets to adequately train a machine learning model to handle.

Another area where machine learning is applied is natural language processing. In particular, a machine learning model may be trained to interpret a natural language query from a user, and predict the syntax that is associated with this natural language query for database searching, to name one specific example. Natural language queries may be difficult to predict, as different users may employ different words in different orders. Moreover, especially in the context of oilfield environments, connections may be made between different types of data that may not be included in the natural language queries, but may assist in providing useful results.

SUMMARY

A method can include generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

A non-transitory, computer-readable medium storing instructions that, when executed by at least one processor of a computing system, can cause the computing system to perform operations, where the operations can include: generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

A computing system can include one or more processors; and a memory system including one or more non-transitory computer-readable media storing instructions that, when executed by at least one of the one or more processors, can cause the computing system to perform operations, where the operations can include: generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

It will be appreciated that this summary is intended merely to introduce some aspects of the present methods, systems, and media, which are more fully described and/or claimed below. Accordingly, this summary is not intended to be limiting.

DETAILED DESCRIPTION

Attention is now directed to processing procedures, methods, techniques, and workflows that are in accordance with some embodiments. Some operations in the processing procedures, methods, techniques, and workflows disclosed herein may be combined and/or the order of some operations may be changed.

FIG.1illustrates an example of a system100that includes various management components110to manage various aspects of a geologic environment150(e.g., an environment that includes a sedimentary basin, a reservoir151, one or more faults153-1, one or more geobodies153-2, etc.). For example, the management components110may allow for direct or indirect management of sensing, drilling, injecting, extracting, etc., with respect to the geologic environment150. In turn, further information about the geologic environment150may become available as feedback160(e.g., optionally as input to one or more of the management components110).

In the example ofFIG.1, the management components110include a seismic data component112, an additional information component114(e.g., well/logging data), a processing component116, a simulation component120, an attribute component130, an analysis/visualization component142and a workflow component144. In operation, seismic data and other information provided per the components112and114may be input to the simulation component120.

In an example embodiment, the simulation component120may rely on entities122. Entities122may include earth entities or geological objects such as wells, surfaces, bodies, reservoirs, etc. In the system100, the entities122can include virtual representations of actual physical entities that are reconstructed for purposes of simulation. The entities122may include entities based on data acquired via sensing, observation, etc. (e.g., the seismic data112and other information114). An entity may be characterized by one or more properties (e.g., a geometrical pillar grid entity of an earth model may be characterized by a porosity property). Such properties may represent one or more measurements (e.g., acquired data), calculations, etc.

In an example embodiment, the simulation component120may operate in conjunction with a software framework such as an object-based framework. In such a framework, entities may include entities based on pre-defined classes to facilitate modeling and simulation. A commercially available example of an object-based framework is the MICROSOFT.NET framework (Redmond, Washington), which provides a set of extensible object classes. In the .NET framework, an object class encapsulates a module of reusable code and associated data structures. Object classes can be used to instantiate object instances for use in by a program, script, etc. For example, borehole classes may define objects for representing boreholes based on well data.

In the example ofFIG.1, the simulation component120may process information to conform to one or more attributes specified by the attribute component130, which may include a library of attributes. Such processing may occur prior to input to the simulation component120(e.g., consider the processing component116). As an example, the simulation component120may perform operations on input information based on one or more attributes specified by the attribute component130. In an example embodiment, the simulation component120may construct one or more models of the geologic environment150, which may be relied on to simulate behavior of the geologic environment150(e.g., responsive to one or more acts, whether natural or artificial). In the example ofFIG.1, the analysis/visualization component142may allow for interaction with a model or model-based results (e.g., simulation results, etc.). As an example, output from the simulation component120may be input to one or more other workflows, as indicated by a workflow component144.

As an example, the simulation component120may include one or more features of a simulator such as the ECLIPSE reservoir simulator (Schlumberger Limited, Houston Texas), the INTERSECT reservoir simulator (Schlumberger Limited, Houston Texas), etc. As an example, a simulation component, a simulator, etc. may include features to implement one or more meshless techniques (e.g., to solve one or more equations, etc.). As an example, a reservoir or reservoirs may be simulated with respect to one or more enhanced recovery techniques (e.g., consider a thermal process such as SAGD, etc.).

In an example embodiment, the management components110may include features of a commercially available framework such as the PETREL seismic to simulation software framework (Schlumberger Limited, Houston, Texas). The PETREL framework provides components that allow for optimization of exploration and development operations. The PETREL framework includes seismic to simulation software components that can output information for use in increasing reservoir performance, for example, by improving asset team productivity. Through use of such a framework, various professionals (e.g., geophysicists, geologists, and reservoir engineers) can develop collaborative workflows and integrate operations to streamline processes. Such a framework may be considered an application and may be considered a data-driven application (e.g., where data is input for purposes of modeling, simulating, etc.).

In an example embodiment, various aspects of the management components110may include add-ons or plug-ins that operate according to specifications of a framework environment. For example, a commercially available framework environment marketed as the OCEAN framework environment (Schlumberger Limited, Houston, Texas) allows for integration of add-ons (or plug-ins) into a PETREL framework workflow. The OCEAN framework environment leverages. NET tools and offers stable, user-friendly interfaces for efficient development. In an example embodiment, various components may be implemented as add-ons (or plug-ins) that conform to and operate according to specifications of a framework environment (e.g., according to application programming interface (API) specifications, etc.).

A framework may be implemented within or in a manner operatively coupled to the DELFI cognitive exploration and production (E&P) environment (Schlumberger, Houston, Texas), which is a secure, cognitive, cloud-based collaborative environment that integrates data and workflows with digital technologies, such as artificial intelligence and machine learning. As an example, such an environment can provide for operations that involve one or more frameworks. The DELFI environment may be referred to as the DELFI framework, which may be a framework of frameworks. As an example, the DELFI framework can include various other frameworks, which can include, for example, one or more types of models (e.g., simulation models, etc.).

FIG.1also shows an example of a framework170that includes a model simulation layer180along with a framework services layer190, a framework core layer195and a modules layer175. The framework170may include the commercially available OCEAN framework where the model simulation layer180is the commercially available PETREL model-centric software package that hosts OCEAN framework applications. In an example embodiment, the PETREL software may be considered a data-driven application. The PETREL software can include a framework for model building and visualization.

As an example, a framework may include features for implementing one or more mesh generation techniques. For example, a framework may include an input component for receipt of information from interpretation of seismic data, one or more attributes based at least in part on seismic data, log data, image data, etc. Such a framework may include a mesh generation component that processes input information, optionally in conjunction with other information, to generate a mesh.

In the example ofFIG.1, the model simulation layer180may provide domain objects182, act as a data source184, provide for rendering186and provide for various user interfaces188. Rendering186may provide a graphical environment in which applications can display their data while the user interfaces188may provide a common look and feel for application user interface components.

As an example, the domain objects182can include entity objects, property objects and optionally other objects. Entity objects may be used to geometrically represent wells, surfaces, bodies, reservoirs, etc., while property objects may be used to provide property values as well as data versions and display parameters. For example, an entity object may represent a well where a property object provides log information as well as version information and display information (e.g., to display the well as part of a model).

In the example ofFIG.1, data may be stored in one or more data sources (or data stores, generally physical data storage devices), which may be at the same or different physical sites and accessible via one or more networks. The model simulation layer180may be configured to model projects. As such, a particular project may be stored where stored project information may include inputs, models, results and cases. Thus, upon completion of a modeling session, a user may store a project. At a later time, the project can be accessed and restored using the model simulation layer180, which can recreate instances of the relevant domain objects.

In the example ofFIG.1, the geologic environment150may include layers (e.g., stratification) that include a reservoir151and one or more other features such as the fault153-1, the geobody153-2, etc. As an example, the geologic environment150may be outfitted with any of a variety of sensors, detectors, actuators, etc. For example, equipment152may include communication circuitry to receive and to transmit information with respect to one or more networks155. Such information may include information associated with downhole equipment154, which may be equipment to acquire information, to assist with resource recovery, etc. Other equipment156may be located remote from a well site and include sensing, detecting, emitting or other circuitry. Such equipment may include storage and communication circuitry to store and to communicate data, instructions, etc. As an example, one or more satellites may be provided for purposes of communications, data acquisition, etc. For example,FIG.1shows a satellite in communication with the network155that may be configured for communications, noting that the satellite may additionally or instead include circuitry for imagery (e.g., spatial, spectral, temporal, radiometric, etc.).

FIG.1also shows the geologic environment150as optionally including equipment157and158associated with a well that includes a substantially horizontal portion that may intersect with one or more fractures159. For example, consider a well in a shale formation that may include natural fractures, artificial fractures (e.g., hydraulic fractures) or a combination of natural and artificial fractures. As an example, a well may be drilled for a reservoir that is laterally extensive. In such an example, lateral variations in properties, stresses, etc. may exist where an assessment of such variations may assist with planning, operations, etc. to develop a laterally extensive reservoir (e.g., via fracturing, injecting, extracting, etc.). As an example, the equipment157and/or158may include components, a system, systems, etc. for fracturing, seismic sensing, analysis of seismic data, assessment of one or more fractures, etc.

As mentioned, the system100may be used to perform one or more workflows. A workflow may be a process that includes a number of worksteps. A workstep may operate on data, for example, to create new data, to update existing data, etc. As an example, a may operate on one or more inputs and create one or more results, for example, based on one or more algorithms. As an example, a system may include a workflow editor for creation, editing, executing, etc. of a workflow. In such an example, the workflow editor may provide for selection of one or more pre-defined worksteps, one or more customized worksteps, etc. As an example, a workflow may be a workflow implementable in the PETREL software, for example, that operates on seismic data, seismic attribute(s), etc. As an example, a workflow may be a process implementable in the OCEAN framework, the DELFI environment, etc. As an example, a workflow may include one or more worksteps that access a module such as a plug-in (e.g., external executable code, etc.).

FIG.2illustrates a flowchart of a method200for synthesizing training data for a machine learning model, according to an embodiment. As a general overview, the synthetized training data may be employed, for example, to label and assist with digitizing raster images of oilfield data, e.g., well logs, seismic survey logs, etc. In other embodiments, the synthesized training data may be employed to train machine learning models to predict database queries/commands from natural language queries received as input. In particular, such machine learning models may be trained to associate natural language queries/commands to particular fields in the database, for example, data that were not specifically requested using a proper syntactic query, but which may be useful as a response to the natural language query, based on the associations made in an oilfield context.

The method200may include receiving feature input as well as object and label pairs, as at block210. The objects may each include one or more features, as informed by the feature input, as will be described in greater detail below. For example, the objects may be well logs or seismic logs, which may include sections, such as header sections, plot sections, and depth tracks, each of which, the specific combination of which, and the arrangement of which, may be a feature of the object. Further, the individual sections may include data fields, which may further be features of the object. In another embodiment, the objects may be free-form or “natural language” text, which may be entered by a human user, e.g., in the form of a question. Such text-based objects may also include features, which may be data such as operator, field needs, etc., as will be described in greater detail below. Further, the order in which these data fields are provided may be a feature of the text-based objects.

The method200may also include training a first machine learning model to generate synthetic objects based on (e.g., manually) labeled pairs of objects and labels and high-level feature input, as at block220. The first machine learning model may be trained on a relatively low number of objects, e.g., on the order of tens of labeled synthetic objects. Further, the high-level feature input may be provided to the coarser levels of the first machine learning model, and may constrain the operation of the first machine learning model, e.g., specifying the features of the output synthetic objects. The first machine learning model may vary the data within the feature constraints of the objects in order to generate different objects that are similar to but not the same as the input objects.

The method200may further include receiving stochastic variation input, as at block230. The stochastic variation input may be provided to one, some, or each level of the first machine learning model. The stochastic variation input, as will be described in greater detail, may be a Gaussian, single-channel noise. The first machine learning model may, based on this input, be trained to generate stochastic variation, as at block240. The machine learning model may then inject the variations into the synthetic objects, resulting in stochastic variations in the synthetic objects (i.e., Stochastic variation output), as at block250. Such stochastic variation output may include, for example, grid lines, broken curve lines, image artifacts (e.g., spots, smudges, etc.), line width variations, and/or typographical errors, different fonts, different syntax or grammar usage, etc.

The machine learning model may also label the synthetic objects, e.g., annotate the objects with the location of, values for, etc. of the features contained in the synthetic objects, as at block260. The resulting pairs of synthetic objects and associated labels may then be outputted or stored, as at block270. Further, the pairs of synthetic object and labels may be provided to a second machine learning model, which may be trained to predict labels based on the synthetic objects, as at block280. The second machine learning model may thus, for example, convert image-based objects into data files that contain digital representations of the data represented by the images (e.g., coordinates of curves and associated values). In some embodiments, the digitized objects may be displayed and manipulated, e.g., showing values for specific locations within the curves, which may not have otherwise been possible on a plain image file. Likewise, in a text-based object scenario, the second machine learning model may be configured to return search results, which may be displayed on a computer screen, based on natural language queries that are converted to one or more database language queries.

FIG.3illustrates a schematic view of a system300for synthesizing objects and label pairs, according to an embodiment. The system300may include a client device310, e.g., one or more types of computing devices. The client device310may receive feature input312and stochastic variation input314, as discussed above. The feature input312and stochastic variation input314may be provided to an object synthesis system320, which may be another computing device (e.g., a server). The systems310and320may communicate over a network340, such as the Internet or a private network (e.g., satellite, etc.). The feature input312may provide guidance for the system320, e.g., constraints under which the system320operates. For example, if a plot is being generated, as shown, the feature input312may include a number of curves, curve shapes, value ranges for the plots, etc.

The object synthesis system320may implement embodiments of the method200discussed above. For example, the object synthesis system320may generate synthetic objects and associated labels335as pairs. The pairs may be stored in a database330of object and label pairs, providing a corpus of training data, as shown. The system320and/or310may communicate with the database330via the network340.

In this embodiment, as shown, the system320may be configured to synthesize raster images of plot curves, and provide labels associated therewith. The plot curves may each include a table of coordinates, e.g., Cartesian coordinates, which may specify digital values represented by discrete locations on the curves. When used to train a machine learning model, the digitized data may be used to train the machine learning model to identify the curve and the values it represents.

FIG.4illustrates a training pair400of a raster image402and a user-provided label404, which can include a number of labels (e.g., one or more labels). As shown, the raster image402includes a plurality of curves406and noise. The curves406have different shapes, value ranges, numbers of curves, and line styles, which may be features of the object. In this embodiment, the noise, which can be non-signal noise, is shown in the form of gridlines. The gridlines, while useful for visual inspection of the curves by a human, may not be directly representative of any information recorded by the sensor, and thus may be filtered out or otherwise not labeled. In the manual case of the user-provided label404, a user may trace the curves406, which may provide the individual labels408associated with the curves406.

A plurality of such pairs400may be provided to a deep learning network, e.g., the system320, which may be trained from these images to synthesize additional curves406and label408pairings, thereby potentially multiplying the training data set, which may be employed to train a machine learning model to predict the labels based on the objects (raster images). As noted above, high-level feature input312may include for example, number of curves, curve shapes, value ranges for the plots, etc. These high-level features may act as constraints, within which the curves406may be varied, e.g., randomly, so as to produce multiple synthesized curves and labels.

FIG.5AandFIG.5Billustrates an example of stochastic variation (e.g., noise) that may be part of objects (e.g., raster images), according to an embodiment. This noise, as mentioned above, may be synthetically generated and injected into the synthetic objects. The illustrations inFIG.5AandFIG.5Bare specific to a plot500of a well log; however, it will be appreciated that the concept of injecting uncorrelated noise into a “signal” (data in an object) may apply to any sort of object.

In the illustrated embodiment, the plot500includes a plurality of curves502. Several different (non-limiting examples of) types of noise are also present. As indicated at504, partially erased gridlines can be present. Width and intensity variation in the gridlines506may be another form of noise. Salt and pepper noise on the gridlines508could be present. Further, the curves502can also carry noise in their signal, such as intensity variations510and width variations512. Such noise may be produced as a function of the image having initially been printed, and then later optically scanned into digital format, and may thus be pervasive across different image-based data sets. Other, non-image stochastic variations (noise) can be present in text-based data sets, as well, as will be discussed in greater detail below; thus, the present discussion of image-based noise that is specific to plots and gridlines is merely an example.

Referring now toFIG.6, a system600is shown for synthesizing objects and labels, which may be similar to the system300, according to an embodiment. In particular, the system600may be configured for generating synthetic well logs or seismic survey logs and associated labels, based on input objects603, high-level feature input602, and stochastic variation604. The input objects603may be user-labeled (or otherwise pre-labeled) well logs or seismic surveys (e.g., objects of a same type as are to be synthesized).

FIG.7illustrates an example of such a well log700, which may be in a portrait orientation (e.g., vertical) or in a landscape orientation (e.g., horizontal). As shown, the well log700may include sections, each providing different information. For example, the well log700may include a log header section702, a plot section704, and a depth track706. The log header section702may provide a legend or key for understanding the curve found in the plot section704. For example, the log header section702may specify information such as line type (e.g., dashes and dots) for the curve, data type (e.g., gamma ray), scale, type of sensed data (e.g., spontaneous-potential) units (e.g., millivolts), etc. The depth track706may specify an independent variable for the sensor readings recorded in the plot section702; however, it will be recognized that the depth track706is just one example of an independent variable that may be produced as a feature along an X (or other independent variable) axis of a plot section704or another feature of an object.

Referring again toFIG.6, the system600may include a deep learning generative network601, or another type of machine learning model. The network601may receive the high-level feature input602, the input objects603, and the stochastic variation input604. As noted above, the input raster images603may be pre-labelled with the location of log header sections, plot segments, and depth track, e.g., forming a “mask” that identifies where the sections of the well logs are relative to one another.

The high-level feature input602may be provided to the coarser layers of the network601. The high-level feature input602may include the number and type of sections, such as sections702-704, to be generated, along, potentially, with contents and/or relative positioning of the sections in the well logs to be synthesized. Further, the stochastic variation input may specify different types of single-channel, uncorrelated Gaussian input and may be provided to each level of the network601.

The network601may output the synthetic pairs of objects and associated labels. For example, as shown, the synthetic object606is provided, along with a “mask”608that identifies the different sections (features) of the object606. The mask608may be a representation of a data file that identifies the locations within the object606. It will be appreciated that the relative location of the different segments itself may be a feature of the object, which may be adjusted or selected by the high-level input602.

The network601may generate a multitude of slightly different synthetic objects606and masks608from the input, thereby providing a multiplier for the relatively few manually labeled input objects. The different synthetic objects606may, for example, also have uncorrelated stochastic variation or noise injected therein, as well as slightly different positioning and/or contents of the different segments. The variation provided by the network601may be a function of the variation of the input objects (e.g., raster images) and the labels applied thereto, with greater variation in the input objects leading potentially to greater variation in the synthetic objects606. Accordingly, the network601may provide a robust training corpus from which to train a second machine learning model to predict masks from the unlabeled objects of similar content to the objects606and masks608.

FIG.8illustrates a diagrammatic view of another system800, according to an embodiment. The system800may be similar to the systems300and600, and may be implemented in combination therewith. The system800may include a deep learning based generative network (or another machine learning model)801that is configured to synthesize log header sections806and masks808associated therewith. In order to do this, the network801may receive, as input, labeled log headers803, high-level feature input802, and stochastic variation input804. The stochastic variation input804may be noise, similar to the image-based noise discussed above. The high-level feature input802may be provided to the coarser levels of the network801, and the stochastic variation to each of the layers of the network801.

FIG.9AandFIG.9Billustrate two examples of log header sections900,950, respectively, and associated masks910and960, respectively. The log header sections900and950may each include data fields. For example, the log header section900may include a type of measurement902, a unit904, a line type905, a lower value range906, and an upper value range908. Similarly, the log header section950may include data fields for type of measurement952, units954, lower value range955, upper value range956, and line type958.

The masks910and960may include labels for the location of the different data fields in the log header sections900and950. For example, label912represents the location of the type of measurement902of the log header section900, while the label952represents the location of the upper value range956.

Comparing the log header sections900and950, it can be seen that the relative positioning, font, style, and other aspects of the different data fields can vary, and thus training a machine learning model to accurately predict masks910and960can be challenging. Accordingly, different types of log headers, with different data field arrangements, different data field contents, etc., can be provided to train a machine learning model to predict the masks910and960. In order to do so, multiple variations of each type of log header section can be synthesized, along with labels, by a system such as, for example, the system800. These variations can include changes in position, style, and contents of the individual data fields, for example, along with noise (stochastic variation) injected therein.

Thus, referring back toFIG.8, the high-level feature input can specify the data fields to be included (e.g., the data fields902to908and/or952to958discussed above). Accordingly, in combination with the training objects/labels received as input803, and the stochastic variation, the network801can produce multiple different objects806and masks808.

It will be appreciated that the image-based raster training systems and methods discussed herein can be used together. For example, a machine learning model may be trained, using the synthesized objects, to parse a well log into its sections (e.g., identify labels), including at least one log header and at least one plot section. The machine learning model may also be trained to parse the data fields of the log header, and to determine the plotted curves (and values associated therewith) in the curve sections.

FIG.10illustrates a diagrammatic view of a system1000for synthesizing training data, according to an embodiment. The system1000may be similar to the systems300,600,800discussed above. The system1000may, for example, be configured to predict database queries (e.g., in SQL or another database language) from natural language queries. For example, input1003in the form of combinations of natural language queries (objects) and associated database queries (labels). High-level feature input1002may also be provided, e.g., country, state, and/or operator. Stochastic variation input1004may also be provided. In this embodiment, stochastic variation input1004may be related to grammatical inconsistencies as between human users. For example, different prepositions, verbs, or other parts of speech may be used by different people, and at times grammatically incorrect usage may be employed. Further, word choices made by different people may vary (e.g., synonyms may be available), although the meaning may be the same. The stochastic variation input1004may capture such variation, so that the machine learning model may be capable of accounting for it.

A deep learning based generative network1001may receive input and generate pairs of natural language queries1006and database queries1008. For example, the network1001may be configured to vary the natural language queries and provide, as a label, an associated database query as a ground truth. Specifically, the same query may be asked in different ways. For example, the query “Who is the operator of well XYZ?” may mean the same thing as “Who operates well XYZ?”; “Which operator operates well XYZ?”; “Show me the operator of well XYZ”; “Find me the operator of well XYZ”; “Provide me with the name of operator for well XYZ”; “Can you provide me the operator of well XYZ?”; and “Please give me the name of operator of well XYZ.” Thus, a same label may be given to each of these queries and may then be provided as training pairs to a machine learning model that is trained to predict database queries from natural language queries.

FIG.11illustrates a diagrammatic view of an implementation of a machine learning model to predict database queries, according to an embodiment. The machine learning model implemented as part ofFIG.11may have been trained using the natural language query and database query pairs synthesized by the system1000ofFIG.10.

As shown, a natural language query may be received at1102. The natural language query may be converted to a first database language (SQL) query using the trained machine learning model1104. The first database language query may then be converted to a second, more specific, e.g., oilfield-use, database language query at1105. For example, transformer-based encoder-decoder architectures may be used to train the natural language to SQL query association. For example, BERT based models may be trained to answer questions from a paragraph/document. The second database language may be configured to query databases with specific fields relevant to oilfield information, such as operator-specific data. An elastic search1106may then be performed, and search results1108returned.

FIG.12illustrates a workflow1200that implements one or more embodiments of the systems described above. For example, the workflow1200may provide for automatic updating of the machine learning models used to predict labels for features of objects, based at least in part on training pairs of objects and labels generated using a machine learning model.

The workflow1200may include receiving digital input1201. A human user may review a fraction of the data input as “sampled” data input1202, which may be used for data generation. These may be the training pairs of object and labels, as well as high-level inputs setting parameters for synthetic object/label generation, and stochastic variation. The sampled inputs1202may then be provided to a first machine learning model1204. The first machine learning model1204may implement one or more of the deep learning networks discussed above, and may generate the synthetic object/label pairs1206. In particular, the objects may have features, which are identified by labels as ground truths. The features are variations of the features of the sampled input, which may be representative of at least a portion of the non-sampled portions of the digital input1201.

In the example ofFIG.12, the first machine learning model1204is shown as being a generative adversarial network (GAN) synthetic data generator. GANs are implicit generative models, which means that they do not explicitly model the likelihood function nor provide a means for finding the latent variable corresponding to a given sample, unlike alternatives such as flow-based generative model. As to operational components of a GAN, a generative network generates candidates while a discriminative network evaluates them. A contest operates in terms of data distributions. For example, a generative network can learn to map from a latent space to a data distribution of interest, while a discriminative network can distinguish candidates produced by the generator from the true data distribution. A generative network's training objective can be to increase the error rate of the discriminative network (e.g., to trick the discriminator network by producing novel candidates that the discriminator thinks are not synthesized (e.g., thinks are part of the true data distribution)).

A known dataset can serve as initial training data for a discriminator. Training can involve presenting it with samples from the training dataset until it achieves acceptable accuracy. The generator can be trained based on whether it succeeds in fooling the discriminator. As an example, a generator may be seeded with randomized input that is sampled from a predefined latent space (e.g. a multivariate normal distribution). Thereafter, candidates synthesized by the generator can be evaluated by the discriminator. As an example, one or more independent backpropagation procedures may be applied to both networks so that the generator produces better samples, while the discriminator becomes more skilled at flagging synthetic samples. When used for image generation, a generator may be or include a deconvolutional neural network, and a discriminator may be or include a convolutional neural network.

As explained, a GAN architecture is an approach to training a model for image synthesis that can include two models: a generator model and a discriminator model. The generator takes a point from a latent space as input and generates new plausible images from the domain, and the discriminator takes an image as input and predicts whether it is real (from a dataset) or fake (generated). Both models can be trained in a game, such that the generator is updated to better fool the discriminator and the discriminator is updated to better detect generated images.

A CycleGAN is an extension of the GAN architecture that involves the simultaneous training of two generator models and two discriminator models. As an example, a system may utilize a CycleGAN. In a CycleGAN, one generator takes images from the first domain as input and outputs images for the second domain, and the other generator takes images from the second domain as input and generates images for the first domain. Discriminator models are then used to determine how plausible the generated images are and update the generator models accordingly. This extension alone might be enough to generate plausible images in each domain, but may not be sufficient to generate translations of the input images. A CycleGAN can use an additional extension to the architecture called cycle consistency whereby an image output by the first generator could be used as input to the second generator and the output of the second generator should match the original image. The reverse is also possible: that an output from the second generator can be fed as input to the first generator and the result should match the input to the second generator. Cycle consistency is a concept from machine translation where, for example, a phrase translated from English to French should translate from French back to English and be identical to the original phrase; noting that the reverse process is also to be valid.

A CycleGAN approach encourages cycle consistency by adding an additional loss to measure the difference between the generated output of the second generator and the original image, and the reverse. This acts as a regularization of the generator models, guiding the image generation process in the new domain toward image translation.

As an example, a conditional GAN (cGAN) architecture may be utilized. As an example, in a cGAN, image generation can be conditional on a class label, if available, allowing targeted generated of images of a given type. Where generator and discriminator models are conditioned on a class label, a trained generator model can be used as a standalone model to generate images in a domain where images of a given type, or class label, can be generated.

As an example, a cGAN can be trained to map edges to photo images. In such an example, a discriminator, D, learns to classify between fake (synthesized by a generator, G) and real (edge, photo) tuples. In such an approach, a generator, G, learns to fool the discriminator, D. Unlike an unconditional GAN, the generator, G, and the discriminator, D, can observe an input edge map.

As explained, an ordinary GAN may learn a mapping from a random noise vector z to an output image y, G: z→y; whereas, a cGAN can learn a mapping from an observed image x and a random noise vector z, to y, G: {x, z}→y. As noted, a cGAN involves learning a mapping using an observed image x, and a random noise vector z, to an output image y. In such an approach, the generator G can be trained to produce outputs that are to some degree indistinguishable from real inputs via an adversarially trained discriminator D, which is trained to do as well as possible at detecting generator generated fakes. Consider training a cGAN to map edges to a photographic image. In such an example, the discriminator D learns to classify between fake (e.g., G(x)) and real {edge, photo} tuples. The generator G learns to fool the discriminator D. As an example, a generator network and a discriminator network can observe the input, which in the foregoing example, can be an input edge map.

Referring again toFIG.12, the training pairs1206may be supplied to a second machine learning model1208. The second machine learning model1208may thus be trained to predict labels of the features of the objects, based on the training pairs1206. The remaining, non-sampled portions of the digital input1201may then be provided to the second machine learning model1208, which may proceed with the prediction of the labels1210associated with the objects of the digital input1201.

In some embodiments, an uncertainty of the predictions1210may be calculated, or otherwise, outliers may be collected at1212. An outlier may be a predicted label that does not match other labels, or for which label data is missing or null. For example, considering a log header section such as the log header section900ofFIG.9A, one or more different log header arrangements (e.g., with one of the sections omitted or in an unexpected location) may be included in the digital input1201that was not sampled, and thus not employed to train the second machine learning model1208. Thus, the mask910produced by the second machine learning model1208may include unexpected fields, data fields that are empty, or filled with unexpected data. Thus, the results of the prediction1210can be compared, and if a certain (e.g., predetermined or statistically determined) number of outliers are recorded, or a certain (e.g., predetermined or statistically determined) uncertainty threshold is met, the system1200may trigger or otherwise flag the data as calling for a retraining of second machine learning model.

The outliers may be provided to a user, and the user may manually label the outliers and/or other digital data samples, which may then be provided as sample inputs1202, from which synthetic training data may be generated and used to retrain the second machine learning model. In such an approach, some amount of manual labeling may be employed that may have a substantial effect on operations as the labeling can be for particular instances where improved training through use of labels can result in fewer outliers.

FIG.13shows an example of a method1300and an example of a system1390. In the example ofFIG.13, the method1300can include a reception block1310for receiving a labeled object having a feature and an assigned label that represents the feature; a reception block1320for receiving stochastic variation input; a training block1330for training a first machine learning system to generate a synthetic object based at least in part on the feature and the stochastic variation input; a generation block1340for generating a plurality of synthetic objects and associated labels using the trained first machine learning system; a training block1350for training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and a prediction block1360for predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, the method1300ofFIG.13can include generating a plurality of synthetic objects and associated labels using a trained first machine learning system as in the generation block1340, where the trained first machine learning system is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input, for example, as in the reception block1310, the reception block1320and the training block1330. Such a method can further include training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels per the training block1350; and, for example, optionally predicting a label for an unlabeled feature of an object using the second machine learning model per the prediction block1360.

In the example ofFIG.13, the system1390includes one or more information storage devices1391, one or more computers1392, one or more networks1395, and instructions1396. As to the one or more computers1392, each computer may include one or more processors (e.g., or processing cores)1393, and memory1394for storing the instructions1396, for example, executable by at least one of the one or more processors. As an example, a computer may include one or more network interfaces (e.g., wired or wireless), one or more graphics cards, a display interface (e.g., wired or wireless), etc.

The method1300is shown along with various computer-readable media blocks1311,1321,1331,1341,1351, and1361(e.g., CRM blocks). Such blocks may be utilized to perform one or more actions of the method1300. For example, consider the system1390ofFIG.13and the instructions1396, which may include instructions of one or more of the CRM blocks1311,1321,1331,1341,1351, and1361.

As an example, one or more machine learning techniques may be utilized to enhance process operations, a process operations environment, a communications framework, etc. As explained, various types of information can be generated via operations where such information may be utilized for training one or more types of machine learning models to generate one or more trained machine learning models, which may be deployed within one or more frameworks, environments, etc.

As an example, a machine model may be built using a computational framework with a library, a toolbox, etc., such as, for example, those of the MATLAB framework (MathWorks, Inc., Natick, Massachusetts). The MATLAB framework includes a toolbox that provides supervised and unsupervised machine learning algorithms, including support vector machines (SVMs), boosted and bagged decision trees, k-nearest neighbor (KNN), k-means, k-medoids, hierarchical clustering, Gaussian mixture models, and hidden Markov models. Another MATLAB framework toolbox is the Deep Learning Toolbox (DLT), which provides a framework for designing and implementing deep neural networks with algorithms, pretrained models, and apps. The DLT provides convolutional neural networks (ConvNets, CNNs) and long short-term memory (LSTM) networks to perform classification and regression on image, time-series, and text data. The DLT includes features to build network architectures such as generative adversarial networks (GANs) and Siamese networks using custom training loops, shared weights, and automatic differentiation. The DLT provides for model exchange various other frameworks.

As an example, the TENSORFLOW framework (Google LLC, Mountain View, CA) may be implemented, which is an open source software library for dataflow programming that includes a symbolic math library, which can be implemented for machine learning applications that can include neural networks. As an example, the CAFFE framework may be implemented, which is a DL framework developed by Berkeley Al Research (BAIR) (University of California, Berkeley, California). As another example, consider the SCIKIT platform (e.g., scikit-learn), which utilizes the PYTHON programming language. As an example, a framework such as the APOLLO AI framework may be utilized (APOLLO.AI GmbH, Germany). As an example, a framework such as the PYTORCH framework may be utilized (Facebook Al Research Lab (FAIR), Facebook, Inc., Menlo Park, California).

As an example, a training method can include various actions that can operate on a dataset to train a ML model. As an example, a dataset can be split into training data and test data where test data can provide for evaluation. A method can include cross-validation of parameters and best parameters, which can be provided for model training.

TENSORFLOW computations can be expressed as stateful dataflow graphs; noting that the name TENSORFLOW derives from the operations that such neural networks perform on multidimensional data arrays. Such arrays can be referred to as “tensors”.

As an example, a device may utilize TENSORFLOW LITE (TFL) or another type of lightweight framework. TFL is a set of tools that enables on-device machine learning where models may run on mobile, embedded, and IoT devices. TFL is optimized for on-device machine learning, by addressing latency (no round-trip to a server), privacy (no personal data leaves the device), connectivity (Internet connectivity is demanded), size (reduced model and binary size) and power consumption (e.g., efficient inference and a lack of network connections). Multiple platform support, covering ANDROID and iOS devices, embedded LINUX, and microcontrollers. Diverse language support, which includes JAVA, SWIFT, Objective-C, C++, and PYTHON. High performance, with hardware acceleration and model optimization. Machine learning tasks may include, for example, image classification, object detection, pose estimation, question answering, text classification, synthetic data generation, prediction, etc., on multiple platforms.

As an example, a method can include generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, a method can include receiving a labeled object having a feature and an assigned label that represents the feature; receiving stochastic variation input; training a first machine learning system to generate a synthetic object based at least in part on the feature and the stochastic variation input; generating a plurality of synthetic objects and associated labels using the trained first machine learning system; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, such a method may further include determining an uncertainty associated with labeling the unlabeled feature in the object using the trained second machine learning model; determining that the uncertainty is greater than a predetermined value; in response to determining that the uncertainty is greater than the predetermined value, soliciting an input of one or more training pairs of objects having the unlabeled feature of the object and an assigned label associated therewith; generating a new plurality of synthetic objects and associated labels using the trained first machine learning system and the one or more training pairs of objects; and training the second machine learning model to predict labels for features of objects based at least in part on the plurality of new synthetic objects and associated labels.

As an example, synthetic objects can include a stochastic variation output, where the stochastic variation input includes single channel images including uncorrelated Gaussian noise, and where the stochastic variation output includes one or more of: erased or partially erased gridlines; width and intensity variations in the gridlines; noise on the gridlines; intensity variation in curves; and width variation in the curves.

As an example, a labeled object can include a well log, where a feature includes one or more of a header section, a depth track, and a plot segment, and where training a first machine learning model includes training the first machine learning model to generate synthetic objects having variations of the one or more of the header section, the depth track, and the plot based on the labeled object. In such an example, the variations can include different relative locations for one or more of the header section, the depth track, and the plot segment in the individual synthetic objects.

As an example, a labeled object can include a plot of a well log or a seismic survey log, where a feature includes one or more of a curve shape, a number of curves, a range of values, and a line style, and where training a first machine learning model includes training the first machine learning model to generate synthetic objects having variations of the one or more of the curve shape, the number of curves, the range of values, and the line style.

As an example, a labeled object can include a header section of a well log, where a feature includes a line style, units, or a scale in the header section, and where training a first machine learning model includes training the first machine learning model to generate synthetic objects having variations of the one or more of the line style, the units, or the scale. In such an example, the variations can include different relative locations for display of the line style, the units, or the scale in the individual synthetic objects.

As an example, a labeled object can include a natural language search query, where a feature includes one or more of a country, a state, an operator identity, and a field need, and where training a first machine learning model includes training the first machine learning model to generate synthetic objects having variations of the one or more of the county, the state, the operator, and the field need, and where training a second machine learning model includes training the second machine learning model to label natural language search queries as database-specific language search queries.

As an example, a first machine learning system can include a generative adversarial network. In such an example, the generative adversarial network can include a generator and a discriminator and may include more than one generator and/or more than one discriminator.

As an example, an architecture of a first machine learning system may differ from an architecture of a second machine learning system.

As an example, a labeled object may be manually labeled. For example, consider a framework that can render a GUI to a display where a user can interact with the framework to assign a label to a feature. In such an example, the GUI may provide a menu that can include predefined labels where a user can utilize one of the predefined labels or, for example, a GUI may provide for generation of a new type of label or labels.

As an example, a non-transitory, computer-readable medium storing instructions that, when executed by at least one processor of a computing system, can cause the computing system to perform operations, where the operations include: generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, a non-transitory, computer-readable medium storing instructions that, when executed by at least one processor of a computing system, can cause the computing system to perform operations, where the operations include: receiving a labeled object having a feature and an assigned label that represents the feature; receiving stochastic variation input; training a first machine learning system to generate a synthetic object based at least in part on the feature and the stochastic variation input; generating a plurality of synthetic objects and associated labels using the trained first machine learning system; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, a computing system can include one or more processors; and a memory system including one or more non-transitory computer-readable media storing instructions that, when executed by at least one of the one or more processors, cause the computing system to perform operations, where the operations can include: generating a plurality of synthetic objects and associated labels using a trained first machine learning system that is trained to generate a synthetic object based at least in part on a feature of a labeled object, an assigned label that represents the feature, and stochastic variation input; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, a computing system can include one or more processors; and a memory system including one or more non-transitory computer-readable media storing instructions that, when executed by at least one of the one or more processors, cause the computing system to perform operations, where the operations can include: receiving a labeled object having a feature and an assigned label that represents the feature; receiving stochastic variation input; training a first machine learning system to generate a synthetic object based at least in part on the feature and the stochastic variation input; generating a plurality of synthetic objects and associated labels using the trained first machine learning system; training a second machine learning model to predict labels for features of objects based at least in part on the plurality of synthetic objects and associated labels; and predicting a label for an unlabeled feature of an object using the second machine learning model.

As an example, a computer program product can include one or more computer-readable storage media that can include processor-executable instructions to instruct a computing system to perform one or more methods and/or one or more portions of a method.

In some embodiments, a method or methods may be executed by a computing system.FIG.14shows an example of a system1400that can include one or more computing systems1401-1,1401-2,1401-3and1401-4, which may be operatively coupled via one or more networks1409, which may include wired and/or wireless networks.

As an example, a system can include an individual computer system or an arrangement of distributed computer systems. In the example ofFIG.14, the computer system1401-1can include one or more modules1402, which may be or include processor-executable instructions, for example, executable to perform various tasks (e.g., receiving information, requesting information, processing information, simulation, outputting information, etc.).

As an example, a module may be executed independently, or in coordination with, one or more processors1404, which is (or are) operatively coupled to one or more storage media1406(e.g., via wire, wirelessly, etc.). As an example, one or more of the one or more processors1404can be operatively coupled to at least one of one or more network interface1407. In such an example, the computer system1401-1can transmit and/or receive information, for example, via the one or more networks1409(e.g., consider one or more of the Internet, a private network, a cellular network, a satellite network, etc.). As shown, one or more other components1408can be included.

As an example, the computer system1401-1may receive from and/or transmit information to one or more other devices, which may be or include, for example, one or more of the computer systems1401-2, etc. A device may be located in a physical location that differs from that of the computer system1401-1. As an example, a location may be, for example, a processing facility location, a data center location (e.g., server farm, etc.), a rig location, a wellsite location, a downhole location, etc.

As an example, a processor may be or include a microprocessor, microcontroller, processor module or subsystem, programmable integrated circuit, programmable gate array, or another control or computing device.

As an example, the storage media1406may be implemented as one or more computer-readable or machine-readable storage media. As an example, storage may be distributed within and/or across multiple internal and/or external enclosures of a computing system and/or additional computing systems.

As an example, a storage medium or storage media may include one or more different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories, magnetic disks such as fixed, floppy and removable disks, other magnetic media including tape, optical media such as compact disks (CDs) or digital video disks (DVDs), BLUERAY disks, or other types of optical storage, or other types of storage devices.

As an example, a storage medium or media may be located in a machine running machine-readable instructions, or located at a remote site from which machine-readable instructions may be downloaded over a network for execution.

As an example, various components of a system such as, for example, a computer system, may be implemented in hardware, software, or a combination of both hardware and software (e.g., including firmware), including one or more signal processing and/or application specific integrated circuits.

As an example, a system may include a processing apparatus that may be or include a general purpose processors or application specific chips (e.g., or chipsets), such as ASICs, FPGAs, PLDs, or other appropriate devices.

In some embodiments, computing system1400can include one or more raster digitization module(s) as other components1408. In the example of computing system1400includes the raster digitization module as at least some of the other components1408. In some embodiments, a single raster digitization module1408may be used to perform some aspects of one or more embodiments of the methods disclosed herein. In other embodiments, a plurality of raster digitization modules1408may be used to perform some aspects of methods herein.

Computational interpretations, models, and/or other interpretation aids may be refined in an iterative fashion; this concept is applicable to the methods discussed herein. This may include use of feedback loops executed on an algorithmic basis, such as at a computing device (e.g., computing system1400,FIG.14), and/or through manual control by a user who may make determinations regarding whether a given step, action, template, model, or set of curves has become sufficiently accurate for the evaluation of the subsurface three-dimensional geologic formation under consideration.

The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or limiting to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. Moreover, the order in which the elements of the methods described herein are illustrate and described may be re-arranged, and/or two or more elements may occur simultaneously. The embodiments were chosen and described in order to best explain the principals of the disclosure and its practical applications, to thereby enable others skilled in the art to best utilize the disclosed embodiments and various embodiments with various modifications as are suited to the particular use contemplated.