Human-based computation (HBC), human-assisted computation,[1]ubiquitous human computing or distributed thinking (by analogy to distributed computing) is a computer science technique in which a machine performs its function by outsourcing certain steps to humans, usually as microwork. This approach uses differences in abilities and alternative costs between humans and computer agents to achieve symbiotic human–computer interaction. For computationally difficult tasks such as image recognition, human-based computation plays a central role in training Deep Learning-based Artificial Intelligence systems. In this case, human-based computation has been referred to as human-aided artificial intelligence.[2]
In traditional computation, a human employs a computer[3] to solve a problem; a human provides a formalized problem description and an algorithm to a computer, and receives a solution to interpret.[4] Human-based computation frequently reverses the roles; the computer asks a person or a large group of people to solve a problem,[5] then collects, interprets, and integrates their solutions. This turns hybrid networks of humans and computers into "large scale distributed computing networks".[6][7][8] where code is partially executed in human brains and on silicon based processors.