Synthetic data

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Synthetic data is "any production data applicable to a given situation that are not obtained by direct measurement" according to the McGraw-Hill Dictionary of Scientific and Technical Terms;[1] where Craig S. Mullins, an expert in data management, defines production data as "information that is persistently stored and used by professionals to conduct business processes.".[2]

The creation of synthetic data is an involved process of data anonymization; that is to say that synthetic data is a subset of anonymized data.[3] Synthetic data is used in a variety of fields as a filter for information that would otherwise compromise the confidentiality of particular aspects of the data. Many times the particular aspects come about in the form of human information (i.e. name, home address, IP address, telephone number, social security number, credit card number, etc.).


Synthetic data are generated to meet specific needs or certain conditions that may not be found in the original, real data. This can be useful when designing any type of system because the synthetic data are used as a simulation or as a theoretical value, situation, etc. This allows us to take into account unexpected results and have a basic solution or remedy, if the results prove to be unsatisfactory. Synthetic data are often generated to represent the authentic data and allows a baseline to be set.[4] Another use of synthetic data is to protect privacy and confidentiality of authentic data. As stated previously, synthetic data is used in testing and creating many different types of systems; below is a quote from the abstract of an article that describes a software that generates synthetic data for testing fraud detection systems that further explains its use and importance. "This enables us to create realistic behavior profiles for users and attackers. The data is used to train the fraud detection system itself, thus creating the necessary adaptation of the system to a specific environment."[4]


The history of the generation of synthetic data dates back to 1993. In 1993, the idea of original fully synthetic data was created by Rubin.[5] Rubin originally designed this to synthesize the Decennial Census long form responses for the short form households. He then released samples that did not include any actual long form records - in this he preserved anonymity of the household.[6] Later that year, the idea of original partially synthetic data was created by Little. Little used this idea to synthesize the sensitive values on the public use file.[7]

In 1994, Fienberg came up with the idea of critical refinement, in which he used a parametric posterior predictive distribution (instead of a Bayes bootstrap) to do the sampling.[6] Later, other important contributors to the development of synthetic data generation were Trivellore Raghunathan, Jerry Reiter, Donald Rubin, John M. Abowd, and Jim Woodcock. Collectively they came up with a solution for how to treat partially synthetic data with missing data. Similarly they came up with the technique of Sequential Regression Multivariate Imputation.[6]


Synthetic data are used in the process of data mining. Testing and training fraud detection systems, confidentiality systems and any type of system is devised using synthetic data. As described previously, synthetic data may seem as just a compilation of “made up” data, but there are specific algorithms and generators that are designed to create realistic data.[8] This synthetic data assists in teaching a system how to react to certain situations or criteria. Researcher doing clinical trials or any other research may generate synthetic data to aid in creating a baseline for future studies and testing. For example, intrusion detection software is tested using synthetic data. This data is a representation of the authentic data and may include intrusion instances that are not found in the authentic data. The synthetic data allows the software to recognize these situations and react accordingly. If synthetic data was not used, the software would only be trained to react to the situations provided by the authentic data and it may not recognize another type of intrusion.[4]

Synthetic data is also used to protect the privacy and confidentiality of a set of data. Real data contains personal/private/confidential information that a programmer, software creator or research project may not want to be disclosed.[9] Synthetic data holds no personal information and cannot be traced back to any individual; therefore, the use of synthetic data reduces confidentiality and privacy issues.


Researchers test the framework on synthetic data, which is "the only source of ground truth on which they can objectively assess the performance of their algorithms".[10]

Synthetic data can be generated through the use of random lines, having different orientations and starting positions.[11] Datasets can be get fairly complicated. A more complicated dataset can be generated by using a synthesizer build. To create a synthesizer build, first use the original data to create a model or equation that fits the data the best. This model or equation will be called a synthesizer build. This build can be used to generate more data.[12]

Constructing a synthesizer build involves constructing a statistical model. In a linear regression line example, the original data can be plotted, and a best fit linear line can be created from the data. This line is a synthesizer created from the original data. The next step will be generating more synthetic data from the synthesizer build or from this linear line equation. In this way, the new data can be used for studies and research, and it protects the confidentiality of the original data.[12]

David Jensen from the Knowledge Discovery Laboratory explains how to generate synthetic data: "Researchers frequently need to explore the effects of certain data characteristics on their data model."[12] To help construct datasets exhibiting specific properties, such as auto-correlation or degree disparity, proximity can generate synthetic data having one of several types of graph structure: random graphs that are generated by some random process; lattice graphs having a ring structure; lattice graphs having a grid structure, etc.[12] In all cases, the data generation process follows the same process:

  1. Generate the empty graph structure.
  2. Generate attribute values based on user-supplied prior probabilities.

Since the attribute values of one object may depend on the attribute values of related objects, the attribute generation process assigns values collectively.[12]

Synthetic data in machine learning[edit]

Synthetic data is increasingly being used for machine learning applications: a model is trained on a synthetically generated dataset with the intention of transfer learning to real data. Efforts have been made to construct general-purpose synthetic data generators to enable data science experiments.[13] In general, synthetic data has several natural advantages:

  • once the synthetic environment is ready, it is fast and cheap to produce as much data as needed;
  • synthetic data can have perfectly accurate labels, including labeling that may be very expensive or impossible to obtain by hand;
  • the synthetic environment can be modified to improve the model and training;
  • synthetic data can be used as a substitute for certain real data segments that contain, e.g., sensitive information.

This usage of synthetic data has been proposed for computer vision applications, in particular object detection, where the synthetic environment is a 3D model of the object,[14] and learning to navigate environments by visual information.

At the same time, transfer learning remains a nontrivial problem, and synthetic data has not become ubiquitous yet. Research results indicate that adding a small amount of real data significantly improves transfer learning with synthetic data. Advances in generative models, in particular generative adversarial networks (GAN), lead to the natural idea that one can produce data and then use it for training. This fully synthetic approach has not yet materialized,[15] although GANs and adversarial training in general are already successfully used to improve synthetic data generation.[16]

Currently, synthetic data is used in practice for emulated environments for training self-driving cars (in particular, using realistic computer games for synthetic environments[17]), point tracking,[18] and retail applications,[19] with techniques such as domain randomizations for transfer learning.[20]

See also[edit]


  1. ^ "Synthetic data". McGraw-Hill Dictionary of Scientific and Technical Terms. Retrieved November 29, 2009. 
  2. ^ Mullins, Craig S. (February 5, 2009). "What is Production Data?". NEON Enterprise Software, Inc. Archived from the original on 2009-07-21. 
  3. ^ MacHanavajjhala, Ashwin; Kifer, Daniel; Abowd, John; Gehrke, Johannes; Vilhuber, Lars (2008). "Privacy: Theory meets Practice on the Map". 2008 IEEE 24th International Conference on Data Engineering: 277–286. doi:10.1109/ICDE.2008.4497436. 
  4. ^ a b c Barse, E.L.; Kvarnström, H.; Jonsson, E. (2003). Synthesizing test data for fraud detection systems. Proceedings of the 19th Annual Computer Security Applications Conference. IEEE. doi:10.1109/CSAC.2003.1254343. 
  5. ^ "Discussion: Statistical Disclosure Limitation". Journal of Official Statistics. 9: 461–468. 1993. 
  6. ^ a b c Abowd, John M. "Confidentiality Protection of Social Science Micro Data: Synthetic Data and Related Methods. [Powerpoint slides]". Retrieved 17 February 2011. 
  7. ^ "Statistical Analysis of Masked Data". Journal of Official Statistics. 9: 407–426. 1993. 
  8. ^ Deng, Robert H.; Bao, Feng; Zhou, Jianying (December 2002). Information and Communications Security. Proceedings of the 4th International Conference, ICICS 2002 Singapore. 
  9. ^ Abowd, John M.; Lane, Julia (June 9–11, 2004). New Approaches to Confidentiality Protection: Synthetic Data, Remote Access and Research Data Centers. Privacy in Statistical Databases: CASC Project Final Conference, Proceedings. Barcelona, Spain. doi:10.1007/978-3-540-25955-8_22. 
  10. ^ Jackson, Charles; Murphy, Robert F.; Kovačević, Jelena (September 2009). "Intelligent Acquisition and Learning of Fluorescence Microscope Data Models" (PDF). 18 (9). 
  11. ^ Wang, Aiqi; Qiu, Tianshuang; Shao, Longtan (July 2009). "A Simple Method of Radial Distortion Correction with Centre of Distortion Estimation". Journal of Mathematical Imaging and Vision. Springer Nature. 35 (3). doi:10.1007/s10851-009-0162-1. 
  12. ^ a b c d e David Jensen (2004). "6. Using Scripts". Proximity 4.3 Tutorial. 
  13. ^ Patki, Neha; Wedge, Roy; Veeramachaneni, Kalyan. The Synthetic Data Vault. Data Science and Advanced Analytics (DSAA) 2016. IEEE. doi:10.1109/DSAA.2016.49. 
  14. ^ Peng, Xingchao; Sun, Baochen; Ali, Karim; Saenko, Kate (2015). "Learning Deep Object Detectors from 3D Models". arXiv:1412.7122Freely accessible. 
  15. ^ Sanchez, Cassie. "At a Glance: Generative Models & Synthetic Data". Retrieved 5 September 2017. 
  16. ^ Shrivastava, Ashish; Pfister, Tomas; Tuzel, Oncel; Susskind, Josh; Wang, Wenda; Webb, Russ (2016). "Learning from Simulated and Unsupervised Images through Adversarial Training". arXiv:1612.07828Freely accessible. 
  17. ^ Knight, Will. "Self-Driving Cars Can Learn a Lot by Playing Grand Theft Auto". Retrieved 5 September 2017. 
  18. ^ De Tone, Daniel; Malisiewicz, Tomasz; Rabinovich, Andrew (2017). "Toward Geometric Deep SLAM". arXiv:1707.07410Freely accessible. 
  19. ^ "Neuromation has signed the letter of intent with the OSA Hybrid Platform for introducing a visual recognition service into the largest retail chains of Eastern Europe". 
  20. ^ Tobin, Josh; Fong, Rachel; Ray, Alex; Schneider, Jonas; Zaremba, Wojciech; Abbeel, Pieter (2017). "Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World". arXiv:1703.06907Freely accessible. 
  • Duncan, G. (2006). "Statistical confidentiality: Is Synthetic Data the Answer?". Archived from the original on 2006-09-05. 
  • Adam Coates and Blake Carpenter and Carl Case and Sanjeev Satheesh and Bipin Suresh and Tao Wang and David J. Wu and Andrew Y. Ng (2011). "Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning". ICDAR (PDF). pp. 440–445. Retrieved 13 May 2014. 

Further reading[edit]

External links[edit]

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.