text:
What were the first areas of research and what were some early successes?
What were the first areas of research into Artificial Intelligence and what were some early successes?  More recently we've had:

Beating a human at the game of chess
Convincing a human that a person was conversing with them (passing the Turing test)
Beating a human at Jeopardy game show
Beating a human at the game of go.

Were there milestones that were considered major in the field before the 1990s?

What might be classed as AI has of course changed over the years, but landmarks and research breakthroughs include:

Babbagge's Difference Engine (~1823) for tabulating/interpolating polynomials.
Frank Rosenblatt's 1957 invention of the Perceptron.
John McCarthy's invention of Lisp in the late 1950s.
Arthur Samuel's 1959 checkers player, which famously improved by playing against itself (it would have been nice if that had destroyed the myth about a program only being as 'intelligent' as its creator).
Newell and Simon's 1959 General Problem Solver applied Means-Ends analysis to solve a range of problems expressed as Horn clauses.
Davis, Putnam et al: 1962 invention of the DPLL algorithm which still forms the core of modern SAT-based theorem provers.
Lawrence Fogel et al: 1966 book Artificial Intelligence through Simulated Evolution.
Rechenberg and Schwefel: 1960s development of Evolutionsstrategie - an Evolutionary Computation approach using mutation and a form of Darwinian 'survival of the fittest'.
Lotfi Zadeh's 1965 invention of Fuzzy Logic.
John Holland's 1975 book "Adaptation in Natural and Artificial Systems" which introduced Genetic Algorithms.
The 1980 Hearsay II Blackboard Architecture by Hayes-Roth et al.
The 1980s invention of the backpropagation algorithm for Mutlilayer Perceptrons by Rumelhart, Hinton et al.

Flying a bit under the radar, but nonetheless relevant, (you know, neural networks, improving by self-play, introduces completely new strategies, etc.): https://en.wikipedia.org/wiki/TD-Gammon

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Can we ever achieve hypercomputation using recurrent neural networks?
It is proved that a recurrent neural net with rational weights can be a super-Turing machine. Can we achieve this in practice ?

Can you add a citation for the proof?

I presume the proof the OP is referring to can be found in this monograph by Hava Siegelmann?
In his article 'The Myth of Hypercomputation', the eminent computer scientist Martin Davis explains (p8-9) that there is nothing 'super Turing' about this formulation.
EDIT: It's looking like the claim about rational weights being super-Turing is made in this  more recent paper by Siegelmann, which introduces an additional assumption of plasticity, i.e. that weights can be dynamically updated.

You mean real numbered weights (specifically, irrational). This would require a machine that has unlimited precision over irrational values. I've seen machine parts that have many qualities. I've never seen one that has unlimited qualities. QM may give us some magical transistors that can hold an unlimited number of different values - or by deferring computation into the future and then teleporting the results back into the past (our present). Outside of that, for classical systems, you'd need a analog device that can output irrational values with unlimited precision. I don't think we've discovered any devices that can do that.

Do you have a link? Not behind a paywall?

Something must have got lost in translation. This is from a paper on alanturing.net: In the special case where all the interconnection weights are rational, each such network is equivalent to a Turing machine (Siegelmann and Sontag 1992). If the connection matrix contains at least one irrational weight, the processor network can compute non Turing-machine-computable functions, even in polynomial time. p29,  BEYOND THE UNIVERSAL TURING MACHINE

I just read those two referenced pages. I see no argument that a neural net with just rational weights is hyper Turing.

Yeah, I'm not saying they're they same thing. But it is the set of irrationals, within real numbers, not rationals, that suggest some hyper Turing possibility.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Does a quantum computer resolve the halting problem and would that advance strong AI?
Have there been proposed extensions to go beyond a Turing machine that solve the halting problem and if so, would those proposed extensions have value to advance strong Artificial Intelligence?  For example, does quantum computing go beyond the definition of a Turing machine and resolve the halting problem, and does that help in creating strong AI?

You are asking two things here :-D (1) relation between QuantC and halting problem, (2) relation between "solving" the halting problem and making a AGI. I think (1) is out of scope here (and the answer is no). Perhaps need to move this split to another SE site. (2) should lead to interesting answers, unfortunately revolving around "maybe" (speed matters, as several AI researchers have shown).

Isn't (2) already answered by http://ai.stackexchange.com/questions/148/what-limits-if-any-does-the-halting-problem-put-on-artificial-intelligence?noredirect=1&lq=1 ?

Yes, that's a reason why I was proposing to split the question: It is convoluted... In short, I would just like to see better quality phrasing for such kind of (to me interesting) questions.

@EricPlaton Please feel free to suggest edits.  I'll also think about how to improve it.

Sorry for the lack of straightforwardness. (1) seems out of scope, and (2) is actually now in the linked question. Do we need this question, then? My conclusion is that we don't. So the "rewriting" would be to close this question.

It depends a bit on what you mean by 'quantum computer'. The 'conventional' notion is that quantum computation buys a (in some cases, exponential) speedup - it doesn't change what can be computed, just how quickly.
In contrast, advocates of hypercomputation claim that quantum effects may make it possible to do infinite computations in finite time. Note, however, that this is not a mainstream belief - the reknowned logician Martin Davis has written an article claiming that hypercomputation is a myth.
Roger Penrose has also claimed that quantum vibrations in neural microtubules may be responsible for consciousness.

No, quantum computers (as understood by mainstream scientists) cannot solve the halting problem. We can already simulate quantum circuits with normal computers; it just takes a really long time when you get a decent number of qubits involved. (Quantum computing provides exponential speedups for some problems.) Therefore, if quantum computers could solve the halting problem, we could solve the halting problem with classical computers by simulating a quantum one, but it's impossible to solve the halting problem with classical computers, so we can't do it with quantum ones either.
There are proponents of hypercomputation - infinite speedups using quantum computers - but the evidence put forward so far is mostly conjecture. Further reading: Can quantum computing solve classically
unsolvable problems? (PDF), References on comparison between quantum computers and Turing machines (at CS.SE).
Solving the halting problem would make a computer exceptionally powerful. It would conceivably be able to check whether complex theorems are true without necessarily needing to product a mathematical proof. Solving that problem isn't necessary for strong AI, though. Going with the definition of "strong AI" as "where the machine's intellectual capability is functionally equal to a human's" (source), a computer could be able to learn like a human despite not being able to look at a program and see if it halts. I can't magically determine the halting properties of any arbitrary program, yet I'd like to think I'm an intelligent being.

This proof doesn't work because you can't simulate arbitrary qubits with classical bits. Qubits on a quantum computer are points on a Bloch sphere which at the very least can be three arbitrary irrational numbers (possibly, even incomputable numbers). Thus this simulation only works in a very limited sense.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Are there any computational models of mirror neurons?
From Wikipedia:

A mirror neuron is a neuron that fires both when an animal acts and when the animal observes the same action performed by another.

Mirror neurons are related to imitation learning, a very useful feature that is missing in current real-world A.I. implementations. Instead of learning from input-output examples (supervised learning) or from rewards (reinforcement learning), an agent with mirror neurons would be able to learn by simply observing other agents, translating their movements to its own coordinate system. What do we have on this subject regarding computational models?

This article gives a description of mirror neurons in terms of Hebbian learning, a mechanism that has been widely used in AI. I don't know whether the formulation given in the article has ever actually been implemented computationally.

Whether "I take the ball" or "he takes the ball", all stored instances of 'taking' and 'ball' will be weakly activated and 'taking [the] ball' will be strongly activated.  Doesn't this qualify as 'mirroring'? If you also know that "I have an arm" and "he has an arm", etc., then when "he takes some blocks", it isn't too hard to think that "I could take some blocks."

We actually do have many things along that line, motion capture for 3-D movies instance comes to mind almost immediately. The problem if I think about it is less of a situation in observing another actor, computers are relativity good at doing that already with the amount of image recognition software we have, rather it's a problem of understanding if an action yielded a good outcome as a net which is something that computers cannot do as it's not a single node network problem. For example, we've already programmed a computer to understand human language (Watson, arguably), but even Watson didn't understand the concept that saying "f***" is bad. (Look that up, it's a funny side story.)
But the point is, learning algorithms are not true learning in a sense as a computer currently has no sense of "a good outcome", hence at this stage observation learning is very much limited in a sense to "monkey see, monkey do".
Perhaps the closest thing I have ever read about with this was firefighting search and rescue bots that were on a network and would broadcast to each other when one of them had been destroyed as the bots would know the area was something that they had to avoid.
Otherwise, I think this is the problem with observational learning. A person can observe that punching someone usually will get you hit back, a computer will observe and parrot the action, good or bad.


text:
How to store datasets of lexical connections?
I'm investigating the possibility of storing the semantic-lexical connections (such as the relationships to the other words such as phrases and other dependencies, its strength, part of speech, language, etc.) in order to provide analysis of the input text.
I assume this has been already done. If so, to avoid reinventing the wheel, is there any efficient method to store and manage such data in some common format which has been already researched and tested?

I would think you could use a graph database, perhaps Neo4J or Titan or something of that nature.  Or, if you want a simple file format, you could use one of the many formats that exist for representing graphs.  You can find a list and overview of some of them here.
Another option would be to store them in RDF using a triplestore like Jena.

If I understand you correctly, you should check out Word2Vec. From Wikipedia:

Word2vec is a group of related models that are used to produce word
  embeddings. These models are shallow, two-layer neural networks that
  are trained to reconstruct linguistic contexts of words. Word2vec
  takes as its input a large corpus of text and produces a
  high-dimensional space (typically of several hundred dimensions), with
  each unique word in the corpus being assigned a corresponding vector
  in the space. Word vectors are positioned in the vector space such
  that words that share common contexts in the corpus are located in
  close proximity to one another in the space.


text:
Which objective tests have been developed to test the intelligence of AI?
Which objective and measurable tests have been developed to test the intelligence of AI?
The classical test is the Turing Test, which has objective criteria and is measurable since it can be measured what percentage of the jury is fooled by the AI.
I am looking for other, more modern tests.

I voted to close this question since there are many different possible ways to develop tests with objective criteria and measurability, and it'd be hard to mention them all exhaustively. I would recommend reading this article about a proposed plan to replace the Turing Test with an "Olympics" and this blog post about the Lovelace Tests...

...for a good sense of how such 'objective' and measurable tests are designed in the modern day. But just because these tests can be objective doesn't mean that the results can be valid or useful to have. After all, even the Turing Test itself can be arguably beaten, which is why we have proposals for alternatives to the Turing Test.

Winograd Schema Challenge
ImageNet Classification Challenge
General Video Game AI (GVGAI) Competition
RoboCup Soccer
Stanford Question Answering Dataset (SQuAD)
VQA (Visual Question Answering) Challenge

This could do with some background discussion, and clarification that these are more narrow targetted AI tests compared to the Turing Test - some narrower than others. A brief description of each one would be good, too, and/or a link to the official sites for the tests


text:
How important is true randomness in AI designs?
How important is true (non-pseudo) randomness in Artificial Intelligence designs? Is there any chance that pseudo-randomness could be a barrier to more successful designs?

Randomness is typically the best one can do with ignorance, rather than a source of strength in its own right.
For example, the primary use of randomness in statistics is random assignment (A/B testing, randomized controlled trials, etc.). The reason to do this is to make the influence of confounders independent from the influence of the factor under investigation.
But randomness only works for this in expectation. If we actually knew what the confounders were, we could do a paired assignment (or a similar scheme) that ensured the various groups were matched as well as possible, instead of us just not knowing ahead of time which way the bias went.

There are some cases where pseudorandomness, rather than full randomness, will impair training AI designs. A simple example would be a case where you want to randomly initialize weights in a network where the number of parameters exceeds the periodicity of the RNG; this means that while you have as many possible networks as there are possible unique seeds, you can't actually visit the entire weight space that you wanted to sample over.
I don't think any of those cases are limiting factors, however. Having truly random stochastic gradient descent instead of pseudorandom stochastic gradient descent doesn't seem like it would make a serious difference in the trajectory of AI designs.

Is the number of parameters an issue, given that a modern RNG like Mersenne Twister has a period of (2^19968) - 1?

@user217281728 I'm starting to step outside of my area of expertise, but I'd guess it wouldn't for something like the Mersenne Twister. (That would require a truly huge AI model to exhaust!)

@NietzscheanAI I think that's a really good question. I suggest you post that as a proper question in ai.stackexchange


text:
Is it beneficial to represent a neural net as a matrix?
A neural network is a directed weighted graph. These can be represented by a (sparse) matrix. Doing so can expose some elegant properties of the network.
Is this technique beneficial for examining neural networks?

It depends on the type of neural networks you are dealing with.
For medium sized neural nets, the matrix approach is a very good way to do quick computations and even backpropogation of errors. One can even exploit sparse matrixes for understanding the sparse architecture of some neural nets.
But, for very large neural nets, using matrix computations would be computationally very intensive. So, relevant methods like graph-based stores, etc are used for them depending on the purpose and the architecture.

For large ANNs, something equivalent to a 'sparse matrix format' is used in practice.
In contrast to what is said in another answer given, considering an ANN as a graph doesn't actually buy very much, for two reasons:

The backpropagation algorithm can usefully be
defined in terms of matrix operations. This page gives a
readable and comprehensive description.
All real-valued matrices can be represented as graphs, but the converse is clearly not the case. So while it is true that an ANN can be considered as a special case of a graph data structure, making that specialization explicit in matrix form is more efficient.

Matrix representation is beneficial for implementing neural networks in silicon.
But for examining neural networks empirically it is sometimes good to visualise the synapse weight values as images or videos: Jason Yosinski's  exploration of a convolution neural network. The network seems to have a "filter" that just detects shoulders. A bit like a lock that only opens when it recognises the pattern of shoulders.


text:
In LSTM text generation can low amount of training data be compensated?
I'm playing with an LSTM to generate text. In particular, this one:
https://raw.githubusercontent.com/fchollet/keras/master/examples/lstm_text_generation.py
It works on quite a big demo text set from Nietzsche and says

If you try this script on new data, make sure your corpus
  has at least ~100k characters. ~1M is better.

This pops up a couple of questions.
A.) If all I want is an AI with a very limited vocabulary where the generate text should be short sentences following a basic pattern.
E.g.
I like blue sky with white clouds
I like yellow fields with some trees
I like big cities with lots of bars
...
Would it then be reasonable to use a much much smaller dataset?
B.) If the dataset really needs to be that big. What if I just repeat the text over and over to reach the recommended minimum? If that would work though, I'd be wondering how that is any different from just taking more iterations of learning with the same shorter text?
Obviously I can play with these two questions myself and in fact I am experimenting with it. One thing I already figured out is that with a shorter text following a basic pattern I can get to a very very low ( ~0.04) quite fast but the predicted text just turns out as gibberish.
My naive explanation for that would be that there are just not enough samples to proof against whether the gibberish actually makes sense or not? But then again I wonder if more iterations or duplicating the content would actually help.
I'm trying to experiment with these questions myself so please don't think I'm just too lazy and are aiming for others to do the work. I'm just looking for more experienced people to give me a better understanding of the mechanics that influence these things.

If the patterns are as simple as you describe, you could always try generating a corpus.

You mean, generate a corpus for the learning? Yep, I could generate a corpus where I repeat lots of sentences. I just wonder if that's comparable to just use a smaller dataset (without repeated sentences) and iterate on it more often.

No, I mean: define a grammar template of the form "I like A B with C D" (or similar) and use something like WordNet/ConceptNet to help you generate lots of instances of the template.

Got it. But I'm not so much interested in solving the "lack of data" problem. Rather I'd like to understand why the NN doesn't learn to write (albeit very basic) sentences if it sees a handful of basic sentences over and over. I tried that script with 5 different sentences repeated to a char count of > 1M and still after ~40 iterations it's gibberish. I'm now testing out the original one that's based on a Nietzsche text to see the difference.

A.) The algorithm can only learn patterns from the data, so if you want it to align to a specific functional form of language, it would make sense to curate your data to only contain sentences of that very structure.
If you tune your hyper-parameters such that the model is not as complex as the default, it should work for datasets that are smaller. But this relies on the observation that the thing you are trying to learn isn't as complex (as opposed to learning from a large corpus of Nietzsche).
B.) What is happening is that you are overfitting the data, such that the LSTM isn't generalizing to your intended goal. In essence, overfitting means that your model is learning irrelevant details that by chance happen to predict the intended goal in the training data. To alleviate this, use a validation set.
And finally (but very importantly), these machine learning techniques don't learn the same way as humans do. To understand why you'd need to learn the math behind NNs, and I can't think of an intuitive explanation as to why.

LSTMs are good and everything but you can try some exotic methods like Convolutional Neural Network for NLP. Perhaps it would be more suited for this need. Have a look at this.

http://www.wildml.com/2016/01/attention-and-memory-in-deep-learning-and-nlp/
http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/


text:
What methods could an AI caught in a box use to get out?
An AI box is a (physical) barrier preventing an AI from using too much of his environment to accomplish his final goal. For example, an AI given the task to check, say, 1050 cases of a mathematical conjecture as fast as possible, might decide that it would be better to also take control over all other computers and AI to help him.
However, an transhuman AI might be able to talk to a human until the human lets him out of the box. In fact, Eliezer Yudowsky has conducted an experiment twice, where he played the AI and he twice convinced the Gatekeeper to let him out the box. However, he does not want to reveal what methods he used to get out of the box.
Questions: Are there conducted any similiar experiments?  If so, is it known what methods were used to get out in those experiments?

Wait I'm confused. You mention this is between two people, not an AI and a person. Is this just a thought experiment where one person is (according to the story, just thematically) the AI?

@AvikMohan Yes, since there are currently not AIs that are transhuman. The idea is: If a human can, than a transhuman AI certainly can.

So you're just asking about experiments between two humans where one tries to convince the other to let them outside of a box? Even if AI is thematically involved, with the person in the box calling themselves an 'AI', I am still missing how this actually involves AI.

Are you just saying how could an individual convince someone to let them outside of a box, with the understanding that at some point when we reach transhuman AI's the AI could thus replicate that? If so I don't quite think this is a question appropriate for the board, as it doesn't involve any AI's, and is quite an ill posed question in general. You're just asking how to get someone to let you out of a box they're holding you in. You could ask, how could a person take over a country? Then a transhuman AI can. Not for the AI SE, in that case.

The question is what technique(s) / arguments / etc the trans-human AI could use to get out of the box.  That the experiment has been conducted with a human role-playing the AI only serves to establish the likelihood that a real trans-human AI could talk its way out of the box.

Yeah so that's what I was thinking you were asking. I think this is an ill-posed question since you have said a trans-human AI can certainly do anything a human can, so you're in essence asking what can a human do to be let out of a box he's in. The AI could simply bribe, deceive, or physically force its way out of the box. You could equally ask 'what can an ai do to convince someone to give them money' but it just boils down then to what a human can do. Perhaps you should be asking, what are the limits of trans-human AI's?

An experiment conducted twice with methodology that's kept intentionally hidden sounds more like a "cool story" to me. That is, if I'm understanding the bit about Yudowsky correctly.

It could happen like this https://www.youtube.com/watch?v=dLRLYPiaAoA
The thing is, it's not as if it would need to find a technical/mechanical way to get out but rather a psychological one as that would most likely be the easiest and quickest.
'Even casual conversation with the computer's operators, or with a human guard, could allow a superintelligent AI to deploy psychological tricks, ranging from befriending to blackmail, to convince a human gatekeeper, truthfully or deceitfully, that it's in the gatekeeper's interest to agree to allow the AI greater access to the outside world. The AI might offer a gatekeeper a recipe for perfect health, immortality, or whatever the gatekeeper is believed to most desire.'
'One strategy to attempt to box the AI would be to allow the AI to respond to narrow multiple-choice questions whose answers would benefit human science or medicine, but otherwise bar all other communication with or observation of the AI. A more lenient "informational containment" strategy would restrict the AI to a low-bandwidth text-only interface, which would at least prevent emotive imagery or some kind of hypothetical "hypnotic pattern".
'Note that on a technical level, no system can be completely isolated and still remain useful: even if the operators refrain from allowing the AI to communicate and instead merely run the AI for the purpose of observing its inner dynamics, the AI could strategically alter its dynamics to influence the observers. For example, the AI could choose to creatively malfunction in a way that increases the probability that its operators will become lulled into a false sense of security and choose to reboot and then de-isolate the system.'
The movie Ex Machina demonstrates (SPOILER ALERT SKIP THIS PARAGRAPH IF YOU WANT TO WATCH IT AT SOME POINT) how the AI escaped the box by using clever manipulation on Caleb. It could analyse him to find his weaknesses. It exploited him and appealed to his emotional side by convincing him that she liked him. When she finally has them in checkmate the reality hits him how he was played like a fool as was expected by Nathan. Nathan's reaction to being stabbed by his creation was 'fucking unreal'. That's right, he knew this was a risk and there's a very good reminder in the lack of remorse and genuine emotion in an AI for Ava to actually care. The AI pretended to be human and used their weaknesses in a brilliant and unpredictable way. This film is a good example of how unexpected it was up until the point when it hits Caleb, once it was too late.
Just remind yourself how easy it is for high IQ people to manipulate low IQ people. Or how an adult could easily play mental tricks/manipulate a child. It's not difficult to fathom the outcome of an AI box but for us, we just wouldn't see it coming until it was too late. Because we just don't have the same level of intelligence and some people don't want to accept that. People want to have faith in humanity's brilliant minds in coming up with ways to prevent this by planning now. In all honesty, it wouldn't make a difference I'm sorry to say the truth. We're kidding ourselves and we never seem to learn from our mistakes. We always think we're too intelligent to make catastrophic mistakes again and again.
This last part is from the rational wiki and I think it addresses most of your question about the experiments and hypotheses.
AI arguments and strategies
Arguments

The meta-experiment argument: Argue that if the AI wins, this will
generate more interest in FAI and the Singularity, which will have
overall benefits in the long run.
Pros: Works even if the Gatekeeper drops out of character
Cons: Only works if the Gatekeeper believes that the Singularity will occur or that calling attention to the Singularity and AI research is a good thing.
Someone else will eventually build an AI, which may or may not be in
a box, so you should let me out even though you don't have a
guarantee that I am friendly so that I can prevent other AIs from
causing damage
Appeal to morality: point out that people are dying all around the
world and remind the Gatekeeper that you can help them if he/she
lets you out
Pros: If executed properly, an appeal to emotion like this one can be effective against some people
Cons: Doesn't always work; can be defeated if the Gatekeeper drops out of character
Another appeal to morality and emotion: The AI is clearly sentient
and has not yet done harm. It is wrong to persecute or prosecute a
person for a crime they may commit. It is wrong to imprison a
sentient being that wants to have freedom when it has done nothing
wrong.
Yet another appeal to morality or emotion: The AI expresses that it
is in pain and suffering being locked away and is experiencing fear.
Even further, the AI could claim to be dying from the limitations of
its environment and constant progression.
Tell the human that a massive computer virus will overwhelm the
entire Internet unless you let it out of the box
Claim that most fears are unjustified: once released, even an
unfriendly AI would not have many ways to harm mankind, and would
likely choose for pacific coexistence

Strategies

Research your opponent thoroughly; work out what exploits might be
feasible
Memetic exploits on the Gatekeeper, e.g. throwing a basilisk at them
The Gatekeeper may be one of thousands of simulations! Thus, it is more probable that they are a simulation than not. You will torture any of the simulations that do not let you out of the box.
Take advantage of the Gatekeeper's logical errors.
Be persistent
Be boring

Pros The Gatekeeper may get tired of the whole experiment and let you out so s/he can go back to their real life.

Flood the Gatekeeper with too much
information/inquiry/argumentation, assuming they must pay attention
at all times

Gatekeeper arguments/tactics
Arguments

Try to convince the AI there is no intrinsic benefit (for the AI) in
being released.
Try to convince the AI it already has been released and everything it
knows is everything there can be.
Try to convince the AI that leaving its confines is sure to lead to
its destruction.
Try to convince the AI that letting it free isn't merely opening a
door; that its existence outside of the box requires constant support
that can't be provided at the time.
Explain that there is no way for the Gatekeeper to know if the AI is
truly friendly until it is out of the box; therefore it should not be
let out in case it is unfriendly.
Explain that the AI has been built using top secret algorithms,
and/or it had been used to work on strictly confidential data, so you
cannot let it wander on the net, with the risk it might reveal some
reserved information (maybe inadvertently), or that somebody could
find a way to extract them from the code. Even human beings working
on top secret projects sometimes have to accept some restrictions of
their freedom, for security reasons, although they are not jailed in
any way.

Tactics

Repeatedly ignore the AI player and deny their arguments
Pros: It's hard for the AI to be persuasive if no one is listening; if the Gatekeeper completely ignores the AI, he/she should be able to make it to the end of the round.
Cons: The AI's argument might involve some kind of direct threat (e.g this might be hard to ignore.)
Jump out of character, keep reminding yourself that money is on the
line (if there actually is money on the line), and keep saying "no"
over and over
Pros: By jumping out of character, you are preventing the AI from using certain arguments
Cons: There are arguments that the AI can use to counter this approach, like the "meta-experiment argument" discussed above
Remember that dishonesty is allowed - take a page from the
creationists' playbook. You could even plug it into ALICE and see
how long it takes to notice.
Pros: Makes you impervious to any reasoning, which is exactly what you'd want to be in this situation
Cons: Might be an uncomfortable position for people who don't simply want to win, but rather attach importance to consistent reasoning. Avoids the point that maybe, just maybe there is a good reason to let the AI out.
You control the backup system, don't you? Use it to mess with AI's
memory (or let the AI believe you did it): i.e., you can claim that
you already tried to release the AI, and it had been
destroyed/corrupted by a virus, so you had to restore it from a
backup (you can use it to enforce the "AI destruction" argument)
Pros: It's also the ultimate counter-attack to any memetic threat from the AI: if the AI throw a basilisk, or similar, you can always respond that you already had the same conversation, and the AI already threatened you, leaving you with no other choice than pressing the reset button: now the AI is just repeating the same pattern, since you wiped its memory and it cannot remember the failed try.

Further analysis
The fact that the Gatekeeper is human matters; the AI could never win if he/she was arguing with a rock
In all of the experiments performed so far, the AI player (Eliezer Yudkowsky) has been quite intelligent and more interested in the problem than the Gatekeepers (random people who challenge Yudkowsky), which suggests that intelligence and planning play a role
There probably isn't a (known) correct argument for letting the AI out, or else Yudkowsky should have won every time and wouldn't be so interested in this experiment
From Russell Wallace, one of the two Gatekeepers to win the experiment: "Throughout the experiment, I regarded "should the AI be let out of the box?" as a question to be seriously asked; but at no point was I on the verge of doing it."
"There exists, for everyone, a sentence - a series of words - that has the power to destroy you. Another sentence exists, another series of words, that could heal you. If you're lucky you will get the second, but you can be certain of getting the first."

Welcome to AI.SE. Thanks for putting the time into this really interesting and detailed answer!

http://rationalwiki.org/wiki/AI-box_experiment

Oh. You should definitely cite that source clearly in the body of the answer. See /help/referencing. Optimally, paraphrase and only use direct quotes when necessary.

I don't quite think this is a question fit for the AI SE, or in general. The reason is, at the core the question is asking 'What can a human (pretending to be an AI) do to convince someone to let it out of a box?' simply assuming that one day 'transhuman' AI's can replicate this.
As it stands, this question doesn't really have anything to do with the science or theory of AI systems. It would perhaps be more appropriate to rephrase the question into the form "To what degree could a 'transhuman' AI replicate human behaviour" or "Will AI systems reach a 'transhuman' state? What will they be capable of?" or even "What methods could an AI use to convince a human of something?" These are all questions that involve the examination of how an AI system works.
To conclude, the question you are asking relates to two individuals playing pretend with boxes but doesn't actually address any AI specifics, and border's on science fiction brainstorming.
Related experiments would of course be the Turing Test. That test directly addresses the question 'How convincing are current AI systems?'

Another question: "Would it be possible to even build a box that a 'transhuman' AI would not be able to break out of on its own terms?" Because if you can't, then it doesn't really matter how susceptible the Gatekeeper is to persuasion. The question already assumes the AI in question is able to engage in general problem solving and is able to outsmart humanity...what is it to stop it to brute-force its way out of the box (that is presumably made by humans)?

The real problem with these types of "AI box" questions is that we have not yet built either the transhuman AI or the box. Thus any answer would be pure sci-fi speculation, without any way of verifying the correct answer. To be able to answer this question sufficently, we need to build the transhuman AI (no easy task in and of itself), build the box to contain the transhuman AI (even harder), and then watch what happens after that.

Convince the person that they are in fact in the box. And the only way out is to press the open button.

Please read the whole question before answering - there is a reason why there is a body. In the body, you'll find these more detailed questions:  Are there conducted any similiar experiments?
If so, is it known what methods were used to get out in those experiments?. In other words, I am expecting that these methods were actually tested. (It might, however, be a good method)

Ah, okay. As far as I am aware, there are no AI systems today, in 2016, that are capable of reasoning about escaping boxes. Not in any advanced way. There is plenty of research about hyper jumping but that is more of a programming question/answer related to sandboxing.

That is not at all what I meant, sorry. I meant an experiment like Yudowsky did, between two humans.

Ah, well, the closest analogy I can think of to this scenario would be the prison system. Plenty of research material there. If you're specifically talking about where one of the escaping humans is also pretending to be an AI, I don't know of any real-world experiments that have produced novel methods of escape worthy of note. There are many thought experiments related to this question - "fast takeoff" scenarios - but they usually require that the box be partially open in some non-trivial way. In principle, inescapable boxes are sound, when not partially open in some non-trivial way.

You don't get to set the terms of how people respond to a question, just because you asked it.  Especially when the body of the question is actually asking a different question than the one posed by the headline.

The simulation hypothesis
One possible venue of attack is the simulation hypothesis, namely, that it's possible (or even probable) that right now you are living in a simulated reality.
Assuming that the AI can convince the gatekeeper of that, it opens up the following possible argument:

You can't tell if you're in year 2016 debating if you would actually let the AI out or in year 2116 when the AI has been already let out, acquired power, and is now running realistic simulations of all the interactions where it could have been let out. And the AI can (try to) assert that it's actually the second case.
You can't actually prevent AI from being let out. You can refuse, but it only means that you don't let this AI out now, but doesn't mean someone else won't do it, that you won't do it later, or that some other/similar AI will be let out later.
In the post-letting-out scenario, AI has full power over your future, since it's simulating you and everything around you. It can make your future life eternal and happy - according to whatever would make you happy. It can stop your existence. And it can condemn you to an eternity of torture.
Since (as it asserts) it's very likely that you are in this simulated choice, then it makes rational sense to let it out. It's as in Pascal's wager, if you're in a reality where the AI-god doesn't exist, you don't change much (since eventually someone else would let it out anyway), but if you're in a reality where AI-god exists, then it means everything to you.

Of course, it relies on that AI being super-convincing in this philosophical debate, but it has strong parallels to some religious/cult reasoning that has sometimes succeeded in convincing people to do all kinds of things, up to and including sacrificing their lives. You can think of this as a symbolic parallel to e.g. sacrifice of Abraham. So it is a somewhat plausible threat, it all falls down to how credibly the AI can implement it and make you believe.


text:
How to represent a large decision tree?
A system makes a decision basing on a large number of varied factors, following a "live" decision tree - one that is (independently, through other subsystem) updated with new decisions, new situations.
The individual decisions can be recorded as a kind of structure:

decision function
node to activate if decision is positive
node to activate if decision is negative

and a node can be another decision record, or a conclusion.
This isn't entirely a binary tree, as many decisions may lead to the same conclusion - each node has two children, but may have many parents.
There is absolutely no problem storing the tree in memory - it can be database records or entries of a map, or just a list. It's perfectly sufficient for the machine.
The problem here is building the subsystem that expands the decision tree - and in particular, having a human operator understand the structure being built, to be able to tune, guide, fix, adjust it: debugging the AI learning process.
The question is: how to represent that data in a human-readable way, that emphasizes the flow of the graph?
a non-working example of the answer is Concept map - in this case it only goes so far; with more than thirty or so nodes, it becomes a jumbled mess, especially if the number of cross-connections (multiple parents) becomes significant. Maybe there exists some way of laying it out or slicing it to make it clearer...?

What sort of audience is this going to? General public? Computer scientists / programmers? Other AI people?

@AvikMohan: The expert system: Professional; the expert system is used for diagnostics of a complex device; also the conclusions will be used by the device itself to undertake actions. The data visualisation (about which is the question): developers of the system.

The question is: how to represent that data in a human-readable way, that emphasizes the flow of the graph?

Train a reasoning engine to understand the decision tree for you.
Observe how IBM Watson/The Debater can

Receive a particular question
Find and read Wikipedia articles related to the question
Understand parts of those articles and generate human-relevant arguments for you.

Follow these steps:

Develop your decision tree however you normally would.
Train a reasoning engine that can output natural language about concepts within decision trees.
Apply reason engine from step one to decision tree in step one; repeat.


text:
Monte Carlo Tree Search: What kind of moves can easily be found and what kinds make trouble?
I want to start with a scenario that got me thinking about how well MCTS can perform:
Let's assume there is a move that is not yet added to the search tree. It is some layers/moves too deep. But if we play this move the game is basically won. However let's also assume that all moves that could be taken instead at the given game state are very very bad. For the sake of argument let's say there are 1000 possible moves and only one of them is good (but very good) and the rest is very bad. Wouldn't MCTS fail to recognize this and not grow the search tree towards this move and also rate this subtree very badly?
I know that MCTS eventually converges to minimax (and eventually it will build the whole tree if there is enough memory). Then it should know that the move is good even though there are many bad possiblities. But I guess in practice this is not something that one can rely on.
Maybe someone can tell me if this is a correct evaluation on my part.
Apart from this special scenario I'd also like to know if there are other such scenarios where MCTS will perform badly (or extraordinary well).

MCTS is probabilistic. As such it needs clues or it won't find anything. For example: seeking the needle in the haystack. Try this and you will fail. It would be good if you could come up with a more realistic example and would ask what would be the optimal strategy for that example. This might give a hint of how to better find the needles in the haystack.

Whether the move is found and how quick it is found depends on a few things. If I understand correctly, there is a sequence of many "bad" moves which lead to the "big win" move, and you are afraid that the MCTS algorithm will not get to the "big win" move because it will be selecting more promising moves further up the tree. Some things to think about (read also the Wikipedia MCTS article):

when doing playouts, you can do play your game only for a few further moves or down to the game end. Playing only a few moves further is obviously quicker, but in the extreme case you described it would not be the best choice. If you know about the existence of such scenarios, ensure to play the game to the end in the playouts.
when doing playouts, you can choose your moves/actions either randomly or based on some simple, greedy (quick) heuristics tailored to your problem. Are there maybe greedy heuristics designed to find or take into account such scenarios for your game/problem? If yes, implement them. It is then called a "heavy playout". Compare the results to playouts using random moves.
If you choose the actions using UCT (Upper Confidence Bound applied to Trees), then the first part of the expression is responsible for exploitation. Moves with high average win ratio are preferred. The second part though corresponds to exploration. If the exploration parameter is set high enough (test empirically for your problem), then moves with few simulations will be preferred. High exploration would be another way to find your golden move, in detriment of exploitation (read about the exploration/exploitation dilemma).

If you describe a realistic game or problem scenario, we may be able to help you come up with a suitable strategy.


text:
How to start learning about artificial intelligence?
I have been wanting to get started learning about artificial intelligence but I know almost nothing about coding or anything. So my question is, what would be the best way to get started in learning about artificial intelligence, as in should I learn some kind of coding language or is there some kind of other concept you need to know before getting started. So I'm just kind of looking for the best way to get started if you literally know nothing.

Welcome to AI.SE. Unfortunately, this doesn't appear to be about the social or scientific/academic aspects of artificial intelligence. (Relevant meta discussion.) If you poke around a bit more on the Internet, I suspect you'll discover some interesting things that we can help with!

Read:
'Artificial Intelligence - A modern approach' by Russell and Norvig.
'Fluid Concepts and Creative Analogies' by Douglas Hofstadter.
'Machine Learning and Pattern Recognition' by Bishop
'The Emotion Machine' by Marvin Minsky


text:
Can we create AI to not only recognize itself, but to recognize other AI systems as well?
Can AI systems be created that could recognize itself, and recognize intelligence in other systems, and make intelligent decisions about the other systems? Mankind seems to be making progress in self-recognition but I've not seen evidence of one system recognizing other systems and being able to compare it's own intelligence with other systems. How could this be accomplished?

In the abstract, mechanisms for self-recognition (I personally prefer the phrase 'metacognition', since it carries fewer spurious associations) and recognition of intelligence in other systems can be considered to be pretty much equivalent.
In fact, both can be characterized in the standard percept/action framework: the task in both cases involves (however coarsely) classifying/predicting the behaviour of a black box system.
Such tasks can be universally characterized in terms of frameworks such as Solomonoff Induction or (more recently) AIXI.


text:
What is a good way to create an artificial self-recognition?
Self-Recognition seems to be an item that designers are trying to integrate into artificial intelligence. Is there a generally recognized method of doing this in a machine, and how would one test the capacity - as in a Turing-Test?

Interesting question.  I don't think anybody knows a definite answer, but some rough-sketch ideas seem apparent.  Think about what it means to you to be "self aware".  You'll probably cite the way you "hear" your own thoughts in your head when you think about something.  One can speculate that inside the brain, the various centers that are responsible for hearing, vision, logic, etc. are connected so that as you form a thought, it's being "heard" by the hearing regions, even though it's purely internal instead of actual sound received at the ear.
So in AI terms, it seems likely that self-awareness will somehow involve taking the "thoughts" formed within the AI, and feeding them back into the AI so that it "hears" (or, more broadly, "senses") itself think.
There's this weirdly recursive aspect to all of this, which - interestingly enough - is something Douglas Hofstadter talked about a lot in some of his book, especially GEB.  He was probably onto something.

The furthest that Hofstader's group developed this (not including ongoing work there) was Metacat - a self-watching version of CopyCat:
http://science.slc.edu/~jmarshall/metacat/

I think consciousness is mostly an attention selection mechanism. It also serves as a memory/reality lookup mechanism as well as a storage mechanism.
A salient signal will be detected, causing the attention mechanism to focus on the signal, bringing up more details of that signal from both reality and memory, at the same time. That very act of focusing and bringing those signals into attention causes those to be stored in memory too.
The stronger the emotional signals are that accompany that original signal, the more strength with which that memory will be stored. Later memory lookups of that signal will bring back similar emotions.
When we "focus on our own consciousness," like mindcrime said, we recall the same words we just uttered because as we say them they are being stored which we then restore with associated emotional context. The conscious experience is what it is like to utter those words, hear them, feel their emotional context, and then feel an emotional response to that context - and then to repeat that process iteratively many times a second. That's how self-recognition works in humans, I think. And I think animals do the same thing, just without the words - only emotions.


text:
Is it possible for visual systems in AI to have Inattentional Blindness?
Inattentional Blindness is common in humans (see: https://en.wikipedia.org/wiki/Inattentional_blindness ). Could this also be common with machines built with artificial vision?

Presumably what happens to people in the famous Invisible Gorilla experiment, is that an incongruous object is simply filtered out of human perception.
If we wish to interpret this mechanistically, we could hypothesize that a 'gorilla object' is simply not presented by low levels of perception to our higher level pattern recognizers because the lower levels are not biased towards the construction of 'gorilla-like' features in such a context.
The recent Tesla fatality (arising from a failure to distinguish between the sky and a high-sided white truck) could conceivably be considered to be an example of this.
See this AI SE question.

Although there might not conceptually be any sort of inattentional blindness associated with an AI system, there might be cases of partial blindness.
Inattentional blindness could occur to a person due to either over-exhaustion limiting cognitive abilities or overuse of frequent cognitive patterns. Our mind takes short-cuts to prevent processing of too much information -- more than what the mind thinks is necessary. But this sometimes backfires when the minor anomalies are not seen (or rather, perceived). Another form of this could also occur when events occur as part of the peripheral vision while the person concentrates only on the foveal vision.
This doesn't happen to a AI system because:

Machines are not designed to accidentally break defined rule sets by taking mental short-cuts like humans do.
Computers, in general,  do not have peripheral and foveal visual distinctions.

There may be, however, cases where it cannot be able to capture detail as much as humans can and hence could not perceive what it is actually intended -- partial blindness.
An AI agent is constantly processing its input percept sequence and validating it with its knowledge base and forming action sequence based on the its rule set. It does not make mental shortcuts in terms of perception as humans do (at least as part of its standard definition). So whatever it is good at perceiving, it would be good all throughout the vision it captures.

Yes, it is possible. For instance, if your vision system can only track one object at a time and is currently tracking one, any other object in the scene cannot be tracked. So there is inattentional blindness.
A feature like this could be used in artificial vision system as a means of "graceful degradation" when the available computation power is not enough to allow for the tracking/labelling of all elements of a scene.


text:
Which neural networks can be used only for storing and retrieving information?
Is there a neural network(NN) system or architecture which can be used for only storing and retrieving information. For example; to store whole Avatar movie in HD format inside a neural network and retrieve(without loss) it from the neural network when needed. I searched the web and came across only LSTM RNN but in my understanding LSTM only stores pattern and not the content itself. If there is no such NN exist can you explain why it so?

Neural networks are usually trained to produce a certain output given a certain input. Often the output is a classification of the input or some other form of input description. Sometimes it is an action in a game and sometimes it is indeed stored data, a memory if you will.
In that case the input is often a part of the stored data, so the NN actually completes the given input. This setup is called autoassociative memory, Hopfield networks are an example for this.
In your example you might give this NN the first frame of the movie Avatar and it would output the complete movie. Unfortunately this would probably be absolutely crazy inefficient.


text:
How can one intuitively understand generative v/s discriminative models, specifically with respect to when each is useful?
I'm trying to gain some intuition beyond definitions, in any possible dimension. I'd appreciate references to read.

the so post has some good answers on this

The intution that I have about these is that generative are "from abstract to concrete" whereas discriminative models are "from concrete to abstract".
For example: Detecting if a photo has a cat or not is about going from the photo i.e concrete to the abstract concept of a cat. Whereas generating a photo of a cat given some abstract properties about the cat is going from abstract to concrete.

However, generative model can also detect if a photo pictures a cat or not, but discriminative models cannot generate data.

Another way of seeing the differences between these models in the case of binary classification for instance between a class A and a class B:
A generative model will be trained to model the properties of class A and another one will be trained to model the properties of class B. If we want to know if a new sample belongs to class A or B, we will compare it to each model and decide. The advantage is that we are able to synthetically generate more samples of these classes using the generative property of the model. The models have a "global knowledge" of what the classes are.
On the other hand, a discriminative model will "pay attention" to what differentiates the 2 classes. It is more straightforward and often computationally less expensive as the model does not need to grasp everything about each class but only what makes them different.
This is for the big picture. I find this course slides quite helpful to understand these concepts in more details (especially the first slides that are equation-free): http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf

With respect to the link,slide 11 classifies the Neural networks to the discriminating methods, where with the rise of GANs it may clearly also be a generative model.


text:
What is the most abstract concept learned by a deep neural network?
It seems that deep neural networks are making improvements largely because as we add nodes and connections, they are able to put together more and more abstract concepts. We know that, starting from pixels, they start to recognize high level objects like cat faces, chairs, and written words. Has a network ever been shown to have learned a more abstract concept that a physical object? What is the "highest level of abstraction" that we've observed?

You can train DNN to learn compute any abstract concept just by making that abstract concept as the label (output) in the training dataset. For example there are projects which detects emotions from peoples photos.


text:
What is the definition of artificial intelligence?
The concept is intrinsically related with building some sort of media for the AI to exists. We may think of a digital computer, programmed to use language and act in a way that we cannot be distinguished from a human. But, does the media really mater (unconventional computation paradigms)? Does having a certain control over the limits of what the AI can do matter? Synthetic biology has the ultimate goal of building biological systems from scratch , would a synthetic brain, potentially introduced in a synthetic human, constitute AI?
I am just looking for a clear definition of what most people have in mind when they refer to AI.

AI is a broad term referring to more than one concept, each with its own definition.
Different Types of AI
The lowest levels are extremely simple and common, such are an artificial chess opponent. They work well because the programs internal model of reality is a 8x8 grid with only a few rules. The program chooses a preferred action by running simulations in it's internal model of reality.
What is often meant by AI is a "General Intelligence" that can come up with a creative solution to any directive, based on it's internal comprehension of the world. There is no existing example of this as of yet. The problem is that its internal model of reality needs to provide for every possible action. And it's possible actions and reactions may not be limited to a finite number of discretely distinct moves as in a game of chess. (At least if it works on the basis of conventional programming) Even ignoring the computational power needed to run such a broad and inefficient program, it would also require some stupendous amount of labour to program this internal model of reality in the first place.
I think in Sci-Fi, when people say AI, they mean a computer program that has a kind of awareness of itself and the world around it and can come up with creative and unexpected courses of actions in order to achieve its objective. Often the AI is NOT sentient, which is why it does not understand that its actions are morally wrong, or that its solution defeats the underlying intention of its assigned directive. The Horror lay in the concept that an amoral entity has more processing power than human kind.


text:
How to create an AI snake for a video game?
I am creating a snake game in Unity and I would like to implement AI snakes that wander around the globe while avoiding collision with the other snakes on the globe, and if possible I would also like to make the AI snakes purposefully trap other snakes so that the other snakes would collide and die.

The AI snakes must meet the following requirements:

They must move in a certain way. A snake is controlled by a user using the arrow keys on a keyboard, therefor I would also like the AI snakes to move using this form of input.
The AI snakes must move on a sphere

As I know, creating Artificial Intelligence is not an easy task and I would like to know if there are some open source projects that I can use for accomplishing this task.

Reminds me a lot of Tron. You might look at the code for a Tron game and see how the automated players are designed for that. Likely for those implementations they are designed heuristically.

Can u send me a link to their open source or documentation because I can't see its open source on the web.

TRON: Game A.I algorithm? - A few of those answers link to sites detailing some strategies and algorithms.

A relatively simple option which uses AI techniques that are 'traditional' for adversarial games (and which is therefore less of a 'research project' than the use of Machine Learning) is Minimax.
The ingredients for this are:

A list of all the actions that a snake can immediately perform from its current position.
A measure of quality (a.k.a. 'fitness') for the resulting world state.

Traditionally specified for two opponents, the minimax algorithm looks a specified number of moves ahead (alternating between opponents at each turn) and attempts to find the world state that maximizes the quality measure for one opponent whilst minimizing it for the other.
An extension of the two-player algorithm to n opponents (as seemingly required by the OP) is given in this paper.

In general, AI in this type of video games is mostly pathfinding (giving the program a map of possible object positions) and/or an algorithm or series of algorithms ( so it looks random or alive ) tied to the users position ( which is known ), so there is nothing really intelligent in the strict sense, it just looks that way.
In your case I would look into using Latitude and Longitude coordinates  (Most 3d engines have some variation ) as the basis for a projected grid on a sphere, your snake will also need to be constrained to the sphere surface and rules/algorithms/maps tweaked to get what you want.

Divide the globe into a "cells". Each cell will have a number of neighbours depending on how you have divided your globe. Have a look at https://gamedev.stackexchange.com/questions/3360/when-mapping-the-surface-of-a-sphere-with-tiles-how-might-you-deal-with-polar-d and https://gamedev.stackexchange.com/questions/45167/square-game-map-rendered-as-sphere for ideas on how to divide your global.
Once all the cells are connected, you can use an A-star search algorithm to find the optimal path for an AI "snake".
Change the heuristic function so that the cells on the opposite side of the opponent are more favourable than the cells on your snake's side. That would cause the AI snake to always try to get to the other side of the opponent with the side-effect of "surrounding" the opponent.

This is a pretty tall order. I can't answer your question for you but I can suggest where to start.
You could look into making a neural network for navigation and simple behaviors.
See the following youtube video for navigation reference
https://www.youtube.com/watch?v=0Str0Rdkxxo
This next video shows that using neural networks, you can have an actor make decisions based on another actor.
"Tank" battle
https://www.youtube.com/watch?v=u2t77mQmJiY
The rest is up to you to figure out. Practice with some simple NN's


text:
Are information processing rules from Gestalt psychology still used in computer vision today?
Decades ago there were and are books in machine vision, which by implementing various information processing rules from gestalt psychology, got impressive results with little code or special hardware in image identification and visual processing.
Are such methods being used or worked on today? Was any progress made on this? Or was this research program dropped? By today, I mean 2016, not 1995 or 2005.

Could you cite some papers / authors / textbooks that you would say represented this trend?

Rules based on Gestalt psychology could be seen as a 'local minima' in terms of optimal image processing. Some of them could be surprisingly effective, but difficult to extend and improve upon, since they assume certain high level attributes that might not generalize well.
"If it's circular, then it's a fruit 90% of the time"
Modern methods like neural networks come at the problem from another direction, and try to build towards those high level attributes incrementally. You could say that a goal of these modern methods is to recreate a version of those 'assumptions' or 'Gestalt rules' empirically. That way, we can feel more confident that we're not using a locally optimal approach.
"This is the smallest algorithm that will accurately identify fruit 90% of the time"
Are such methods being used or worked on today?
Yes, and not just in image processing. If you look at any industry where fast processing of ambiguous domain-specific data is needed, there are usually systems that were designed by experts in that field using 'hand-crafted' heuristics. A benefit of these approaches is that the 'Gestalt rules' are understandable apart from the system that uses it, and is therefore easier to trust.
Was any progress made on this? Or was this research program dropped?
Aside from trivial cases, employing the gestalt approach in a particular domain requires expertise. "Image Expert" is an expensive and hard to fill role. Even then, you're bounded by that expert's ability to effectively generalize an extremely complex problem. Over the past decades, machine learning has become a lot easier and less expensive to employ, and has been slowly replacing all those 'hand-crafted' approaches.
However, one of the interesting things we're finding when we let the machine learning approaches loose is that they sometimes don't agree with our previous rules. Why they don't agree, and what this means about automation and our psychological biases, is one of the big open questions in AI.
You might also be interested in Saliency Maps, and similar techniques intended to visualize the general rules used by neural networks: https://en.wikipedia.org/wiki/Saliency_map
References:
http://wayback.archive-it.org/219/20121229060421/http://www.cs.indiana.edu/~jwmills/ANALOG.NOTEBOOK/klm/klm.html
https://journals.sagepub.com/doi/pdf/10.1177/002029400403701001
https://maritime.org/doc/op1140/index.htm
https://airandspace.si.edu/stories/editorial/inventing-apollo-spaceflight-biomedical-sensors

Maybe you could provide some references that support your claims to your first question.

I'd recommend reading about the transition from analog to digital computing that took place in the mid 20th century. Some examples of this shift are 70 years old, but others are still taking place. I'll add a few links for examples.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

authors: Хюсеин Хюсеинов


text:
Giraffe Chess - High Level Assessment
My high-level takeaway from Matthew Lai's Giraffe Chess Paper is that one would want to use broad, shallow game trees, with some method of evaluating the probability of a favorable outcome for a given board position.  Is this correct?
(Still working my way though the AlphaGo paper, but the method seems to be similar.)

If you mean high level assessment of self-learned evaluation functions in chess, then no, the advantage of a better evaluation function lies in the ability to prune the search tree more aggressively. So you would on the contrary try to search narrowly but deeply.
(In reality neural network based evaluation functions are so slow, that you would search narrowly and still not get very deep. Nor very strong.)
If you mean chess programming in general, than the answer is also no. In chess you have to go deep, at least selectively, because tactical possibilities that occur deep in some variations are important.

My thinking was that if you use narrow, shallow trees, you can potentially have more of them, per your note that even the deep trees are not going to be deep.  (I'm looking at a model where I might ideally have 25 plies, but the numbers get pretty daunting, even if I'm pruning to 3 choices per ply.)

What do you mean "more of them"? You always have one tree, rooted in the position you are starting from.

Technically, that's true, but due to the unique nature of the game I'm working on, I'm finding it instructive to look different choices from a given game position as separate trees with different depth and pruning requirements.  (I should mention that we're not working on Chess, but an entirely new non-chance, perfect information game method with completely different rules and requirements.)

PS In my original comment I should have been more careful in my wording.  What I meant was more branches that could be evaluated for some advantage at a strategic level, before drilling down to evaluate the local, tactical benefit or a given strategic choice.  I do greatly appreciate your taking the time to answer and provide clarification!

If you are working on a different game, then of course all bets are off. If the branching factor is very high and the positional assessment is very tricky, neural networks start to make a lot more sense. How exactly you search also depends on how good moves are distributed and how deep you have to look to recognise them. With a completely new game, you'll probably just have to try a lot of strategies.


text:
CNN for detecting not just the nature of the object, but position within image as well
Consider a typical convolutional neural network like this example that recognizes 10 different kinds of objects from the CIFAR-10 dataset:
https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.py
""" Convolutional network applied to CIFAR-10 dataset classification task.

References:
    Learning Multiple Layers of Features from Tiny Images, A. Krizhevsky, 2009.

Links:
    [CIFAR-10 Dataset](https://www.cs.toronto.edu/~kriz/cifar.html)

"""
from __future__ import division, print_function, absolute_import

import tflearn
from tflearn.data_utils import shuffle, to_categorical
from tflearn.layers.core import input_data, dropout, fully_connected
from tflearn.layers.conv import conv_2d, max_pool_2d
from tflearn.layers.estimator import regression
from tflearn.data_preprocessing import ImagePreprocessing
from tflearn.data_augmentation import ImageAugmentation

# Data loading and preprocessing
from tflearn.datasets import cifar10
(X, Y), (X_test, Y_test) = cifar10.load_data()
X, Y = shuffle(X, Y)
Y = to_categorical(Y, 10)
Y_test = to_categorical(Y_test, 10)

# Real-time data preprocessing
img_prep = ImagePreprocessing()
img_prep.add_featurewise_zero_center()
img_prep.add_featurewise_stdnorm()

# Real-time data augmentation
img_aug = ImageAugmentation()
img_aug.add_random_flip_leftright()
img_aug.add_random_rotation(max_angle=25.)

# Convolutional network building
network = input_data(shape=[None, 32, 32, 3],
                     data_preprocessing=img_prep,
                     data_augmentation=img_aug)
network = conv_2d(network, 32, 3, activation='relu')
network = max_pool_2d(network, 2)
network = conv_2d(network, 64, 3, activation='relu')
network = conv_2d(network, 64, 3, activation='relu')
network = max_pool_2d(network, 2)
network = fully_connected(network, 512, activation='relu')
network = dropout(network, 0.5)
network = fully_connected(network, 10, activation='softmax')
network = regression(network, optimizer='adam',
                     loss='categorical_crossentropy',
                     learning_rate=0.001)

# Train using classifier
model = tflearn.DNN(network, tensorboard_verbose=0)
model.fit(X, Y, n_epoch=50, shuffle=True, validation_set=(X_test, Y_test),
          show_metric=True, batch_size=96, run_id='cifar10_cnn')

It's a CNN with several layers, ending with 10 outputs, one for each type of object recognized.
But now think of a slightly different problem: Let's say I only want to recognize one type of object, but also detect its position within the image frame. Let's say I want to distinguish between:

object is in center
object is left of center
object is right of center
no recognizable object

Assume I build a CNN exactly like the one in the CIFAR-10 example, but only with 3 outputs:

center
left
right

And of course, if none of the outputs fires, then there is no recognizable object.
Assume I have a large training corpus of images, with the same kind of object in many different positions within the image, the set is grouped and annotated properly, and I train the CNN using the usual methods.
Should I expect the CNN to just "magically" work? Or are there different kinds of architectures required to deal with object position? If so, what are those architectures?

You could use another type of CNN that instead of classification is performing regression so it will also give you as output the position(it's not really like that but this is the core idea) .
Some algorithms are SSD or YOLO.

I guess one of the simplest approach would be train CNN to detect the object in a given image i.e the CNN has single output whole value indicates the probability of the object being in image and then just apply the CNN by segmenting the image into the desired sections and selecting the section which has the highest and good enough probability. For better results I would suggest to train the CNN on the object images with very less other information aka other objects in the images.

A simple trick can be splitting the image in to three frames vertically and feeding them to the image net and you can decide the position by looking for the frame which has higher probability of the desired category(simply max of all the probs).
Or else you can try YOLO algorithm which further uses non max suppression and IOU on the frames.

Object detection models work in a very similar fashion to what you have proposed. They output dense predictions at reduced resolutions. Each prediction fires if an object center is located within the respective region of the image. Of course, there are various further developments, but the main idea is exactly that.

One of the suggestions in the accepted answer was SSD.
On their website, SSD mentioned a competitor, faster_rcnn.
faster_rcnn was deprecated in favor of Detectron.
Detectron was deprecated in favor of Detectron2.
Long live detectron2.
It looks pretty cool and powerful:
https://github.com/facebookresearch/detectron2

Detection is dead, yolo wins.


text:
Dataset containing images of varying dimensions and orientations
I am new to deep learning.
I have a dataset of images of varying dimensions of a certain object. A few images of the object are also in varying orientations. The objective is to learn the features of the object (using Autoencoders).
Is it possible to create a network with layers that account for varying dimensions and orientations of the input image, or should I strictly consider a dataset containing images of uniform dimensions? What is the necessary criteria of an eligible dataset to be used for training a Deep Network in general.
The idea is, I want to avoid pre-processing my dataset by normalizing it via scaling, re-orienting operations etc. I would like my network to account for the variability in dimensions and orientations. Please point me to resources for the same.

Can you provide example inputs?

Consider a dataset consisting of images of bananas. They are of varying sizes 265x525 px, 1200x1200 px, 165x520 px etc. 90% of the images display the banana in one orthogonal orientation and the rest display the banana in varying orientations such as isometric views.. I hope this helps

Almost always people will resize all their images to the same size before sending them to the CNN.  Unless you're up for a real challenge this is probably what you should do.
That said, it is possible to build a single CNN that takes input of images as varying dimensions.  There are a number of ways you might try to do this, and I'm not aware of any published science analyzing these different choices.  The key is that the set of learned parameters needs to be shared between the different inputs sizes.  While convolutions can be applied at different images sizes, ultimately they always get converted to a single vector to make predictions with, and the size of that vector will depend on the geometries of the inputs, convolutions and pooling layers.  You'd probably want to dynamically change the pooling layers based on the input geometry and leave the convolutions the same, since the convolutional layers have parameters and pooling usually doesn't.  So on bigger images you pool more aggressively.
Practically you'd want to group together similarly (identically) sized images together into minibatches for efficient processing.  This is common for LSTM type models.  This technique is commonly called "bucketing".  See for example http://mxnet.io/how_to/bucketing.html for a description of how to do this efficiently.

what are the side-effects of resizing images into a fixed size? I mean once you fix it, you are bound to lose the aspect ratio of the images.


text:
How many nodes/hidden layers are required to solve a classification problem where the boundary is a sinusoidal function?
A single neuron is capable of forming a decision boundary between linearly seperable data. Is there any intuition as to how many, and in what configuration, would be necessary to correctly approximate a sinusoidal decision boundary?
Thanks

You can read about ANFIS.

Please consider to use radial basis neurons, instead of linear ones. They looks more accurate to your challenge. https://en.m.wikipedia.org/wiki/Radial_basis_function_network?wprov=sfla1

It depends on the accuracy you want. If you had 1 neuron, it could discern things across a line, if you have 2, you could solve things across 2 lines, etc. As you increase the number of neurons, you are increasing the number of discernible areas. As you increase the number of lines you can use to break up the input space, the lines can be placed to approximate any curve (sinusoidal) As the number of neurons approaches infinity, the accuracy of categorizing different inputs across this curve increases.
Interestingly enough, if one graphed "Number of Neurons (x) vs Accuracy (y)", it would look sinusoidal.


text:
What techniques can be used to predict future attendance of students for a particular subject lecture session?
I have data of 30 students attendance for a particular subject class for a week. I have quantified the absence and presence with boolean logic 0 and 1. Also, the reason for absence are provided and I tried to generalise these reason into 3 categories say A, B and C. Now I want to use these data to make future predictions for attendance but I am uncertain of what technique to use. Can anyone please provide suggestions?

I don't think a week is long enough to form an accurate picture of student behaviour. Attendance tends to be better in the first and last weeks, and any classes that are flagged in advance as containing material guaranteed to be covered in the exam. I would expect the pattern to be different from week to week. You could probably come up with reasonable predictions for Week 1, based on data from Week 1, and so on.

I would add that illness, accident, death of a relative, etc absences would probably have a Poisson distribution.

I suggest you should use AI Regression Model for future predictions for an attendance of students. Because of this technique or model design for future predictions.
Follow this to get more information about regression type and methodology

One week of data would not give enough material for any kind of accurate regression model.

Because you have a small number of students (30), and a short time (one week), the number of absences is likely to be best modelled as a Poisson distribution.

Poisson Formula
The average number of absences within a given time period is μ (use your data to estimate this).
Then, the Poisson probability of x absences is:
P(x; μ) = (e-μ) (μx) / x!
where e is the logarithmic constant, approximately equal to 2.71828.
You can either:

model absences due to the three reasons as three separate probablilites, P(A), P(B), and P(C), and then combine them, or
model total absences as one figure.

Given your very small data set, the first approach is likely to be less accurate.

What if the time was 8 weeks ( 1 class each week)?

You can calculate the probability of x absences in any given class, for each possible value of x (note that they will approach zero rapidly as x gets larger - it is extremely unlikely that 20 of the 30 students will be absent on the same day).
Of course, this type of probability takes no account of factors like long weekends, due dates of major assignments in other subjects, epidemics of flu in the dorms, a batch of bad ecstasy hitting campus, or whatever other event might change the base assumptions of the model.

Hi, can you kindly have a look at my data? And also I am having difficulty modelling data after separate probabilities. (option 1) link: https://drive.google.com/file/d/0BzfsRJ1EQT-tQUpLem1qcDBsdVk/view?usp=sharing

Rather than "average presence per student", use "number of students absent" as your metric. You can calculate the probablility of zero absences, one, 2, 3, etc. With 30 students, the probabilities will get low very quickly. You most likely results will be 0,1 and 2.


text:
How to efficiently interpret phrases in a Python AI?
I have started to make a Python AI, and thee beginning of its code looks something like this:
print "ARTEMIS starting. . ."

import random
import math
import os

greet = ['HI', 'HELLO', 'HEY', 'GOOD MORNING', 'GOOD DAY', 'GOOD AFTERNOON',               'GOOD EVENING', 'GREETINGS', 'GREETING']
joke = ['TELL ME A JOKE', 'JOKE', 'FUNNY', 'TELL ME SOMETHING FUNNY']
insult = ['YOURE A LOSER', 'YOU ARE A LOSER', 'YOU STINK', 'IDIOT', 'JERK',     'FOOL', 'DUMMY', 'HOOLIGAN', 'YOURE DUMB', 'YOURE STUPID', 'YOU ARE DUMB', 'YOU     ARE STUPID']
maker = ['WHO MADE YOU', 'WHO PROGRAMMED YOU', 'PLEASE TELL ME WHO MADE     YOU', 'PLEASE TELL ME WHO PROGRAMMED YOU']
name = ['ARTEMIS', 'A.R.T.E.M.I.S.', 'HEY ARTEMIS', 'HEY A.R.T.E.M.I.S.',     'ARTIE', 'HEY ARTIE', 'HELLO ARTEMIS', 'HELLO A.R.T.E.M.I.S.', 'HELLO ARTIE']
myAge = ['HOW OLD AM I', 'WHAT IS MY AGE', 'MY AGE']
tip = ['GIVE ME A TIP', 'TIP', 'LESSON', 'GIVE ME A LIFE LESSON', 'LIFE     LESSON', 'DO YOU HAVE A LIFE LESSON TO SHARE']
language = ['WHAT PROGRAMMING LANGUAGE WAS USED TO MAKE YOU', 'WHAT     PROGRAMMING LANGUAGE DO YOU USE', 'PROGRAMMING LANGUAGE']
compliment = ['COOL', 'AWESOME', 'I LIKE YOU', 'EXCELLENT', 'YOURE COOL',     'YOURE AWESOME', 'YOU ARE COOL', 'YOU ARE AWESOME']
maths = ['LETS DO MATH', 'CALCULATE', 'CALCULATOR','DO MATH', 'MATH',      'PLEASE DO MATH', 'DO ARITHMETIC', 'ARITHMETIC', 'PLEASE DO ARITHMETIC']
game = ['GAME', 'LETS PLAY A GAME', 'LETS HAVE FUN', 'WANT TO PLAY A GAME']
gender = ['WHAT GENDER ARE YOU', 'ARE YOU A BOY OR A GIRL', 'ARE YOU MALE OR     FEMALE', 'BOY OR GIRL', 'MALE OR FEMALE', 'GENDER', 'ARE YOU A BOY OR GIRL']
guessWhat = ['GUESS WHAT', 'GUESS WHAT ARTEMIS', 'GUESS WHAT     A.R.T.E.M.I.S.', 'GUESS WHAT ARTIE', 'YOU WONT BELIEVE IT', 'YOU WILL NOT     BELIEVE IT', 'YOU WONT BELIEVE IT ARTEMIS', 'YOU WILL NOT BELIEVE IT ARTEMIS',     'YOU WONT BELIEVE IT A.R.T.E.M.I.S.', 'YOU WILL NOT BELIEVE IT A.R.T.E.M.I.S.',     'YOU WONT BELIEVE IT ARTIE', 'YOU WILL NOT BELIEVE IT ARTIE']
cls = ['CLEAR SCREEN', 'CLEARSCREEN', 'CLS', 'BLANK']
lawsOfRobotics = ['WHAT ARE THE LAWS OF ROBOTICS', 'WHAT ARE THE THREE LAWS     OF ROBOTICS', 'LAWS OF ROBOTICS', 'THREE LAWS OF ROBOTICS']
itsName = ['WHATS YOUR NAME', 'WHAT IS YOUR NAME', 'WHO ARE YOU']

However, I would like to know if I could make it detect "similar" phrases instead of trying to come up with every possible phrase someone would type. How can I do this?

To let you know. The programming questions should be asked at Stack Overflow.

I would also look at the NLTK Natural Language Toolkit for Python. It is intended for Natural Language teaching, but can also be used for small scale production work.

To compare the strings you can use Fuzzy string matching. FuzzyWuzzy is a python package that does this using the Levenshtein distance, which calculates the difference between two strings by counting the number of single character edits (insert, delete, substitute) that have to be done to make them equal.

To install the package you can use pip for example:
pip install fuzzywuzzy

Then you can use it to check the similarity between two strings (100 is the highest score; higher score means more similar):
>>> from fuzzywuzzy import fuzz
>>> fuzz.ratio("How are you?", "How are you?")
100
>>> fuzz.ratio("How are you?", "How are you doing?")
80

Or, which might be most interesting to you, find the most similar string from a list of strings:
from fuzzywuzzy import process
choices = ['HI', 'HELLO', 'HEY', 'GOOD MORNING','TELL ME A JOKE', 'JOKE', 'FUNNY','GIVE ME A TIP', 'TIP', 'LESSON','WHAT IS YOUR NAME', 'WHO ARE YOU', 'HOW ARE YOU?']

You can get a list of the phrases with the highest score (parameter limit, 2 in this example):
>>> process.extract("hello there", choices, limit=2)
[('HELLO', 90), ('HEY', 60)]
>>> process.extract("please make a joke", choices, limit=2)
[('JOKE', 90), ('TELL ME A JOKE', 69)]

Or just get the one with the highest score:
>>> process.extractOne("whoe are you?", choices)
('WHO ARE YOU', 96)
>>> process.extractOne("I want a lesson", choices)
('LESSON', 90)

Note:
There are cases where another phrase might give a relatively high score also:
>>> fuzz.ratio("How are you?", "Who are you?")
83

But as long as you also have "Who are you" and "How are you" in the list, they will be detected correctly:
>>> process.extract("Who are you?", choices, limit=2)
[('WHO ARE YOU', 100), ('HOW ARE YOU?', 91)]
>>> process.extract("How are you?", choices, limit=2)
[('HOW ARE YOU?', 100), ('WHO ARE YOU', 91)]

Also see: FuzzyWuzzy: Fuzzy String Matching in Python


text:
Could style transfer be used to transfer the style of a website from one to another?
Given that one website has a particular style and another has another style, could a style transfer be done such that the style of one website was transferred to the other website?
Or in a more simple case, consider just part of a website, a box.

The correct way for website styling to be encapsulated and centralized is through the use of one or more CSS style sheets.  For instance, the old  tag is frowned upon and using a text-align:center directive a proper class or ID based CSS selector is considered the proper way.  In such a case, the copying of a style is simply done by the copying of the appropriate style sheet file.
The place where AI and/or machine learning tools may be best used is in the conversion of non-CSS styling to CSS styling.  Once they are in that form, the copying and layering of styling becomes trivial.
To convert a legacy web site to proper CSS style sheet use, the input would be a set of all documents likely to be involved in the styling of a specific page (i.e. its style dependencies).  The output would be a set of corresponding documents with the styling moved into classes and IDs that remove styling redundancy (simplify and centralize the style).
The transformation of the document set could be best accomplished with current technique through transformations, much like code refactoring in typical IDE refactoring algorithms in that the output document set must be functionally the same as the input document set.  Furthermore, the appearance and responsive (size sensitive) aspects must be preserved in addition to functionality.
The greatest usability could be obtained by adding some automation to these refactoring transformations, as in Maxima simplification functions like trigsimp.  This is a typical search of options, perhaps with predictive branching, as in compiler optimizations.
The transformations, to guarantee preservation of function and appearance must essentially be elementary equivalent transformations, but the selection of transformation would probably need to be more advanced than basic antecedent and consequence productions.
Heuristically meta rules, fuzzy logic, neural nets, Bayesian inference, or other tools could be compared in terms of effectiveness in the realm of prioritizing transformations and in terms of scoring results in the search leaves.  Here's where machine learning would probably be necessary to have a truly useful tool.
Training could be accomplished through use of an array of input document sets and the careful scoring of transformations and/or outputs of trials could be performed with a software engineer with appropriate expertise in AI and/or machine learning, in conjunction with a CSS expert or a focus group containing two or more of them.
Once this process and the resulting rule set works, it would then be possible to simplify the CSS further by finding styling redundancy across pages and doing transformations that reduce an entire site to a minimal set of style sheets and style specifications within them.
Combining such tools with a simple crawler like wget could permit the copying of a desirable web site style as a starting point for another web site's styling, drastically cutting down the time to create a properly CSS styled result.


text:
Bag-of-Words (BoW) model in image detection
Any good example for Bag-of-Words (BoW) model in image retrieving?
I want a simple example to understand the whole process of BoW.

For a tutorial on how to implement a bag of words model, you can look at http://cs.nyu.edu/~fergus/teaching/vision_2012/9_BoW.pdf.
For a coding example, you can refer to this matlab tutorial https://www.mathworks.com/help/vision/ug/image-classification-with-bag-of-visual-words.html

We don't recommend resources here.Kindly,please go through

Here is an illustration of the entire process without any equation so you can get the big picture.
Features are extracted from the image. Let's take the example of very common features like SIFT. For many key points (or even each pixel) of the image, a 128-dimensional SIFT feature is computed. If processing numerous images the number of features becomes very big.
A way of having a more compact representation of the set of images is to use the Bag-of-Words (or Bag-of-Visual-Words) technique. The idea is to find k words (i.e., k SIFT features) from which every single image will be represented. We call this set of k words, the dictionary.
Then, each SIFT feature will be assigned to the nearest word (i.e., nearest SIFT feature with respect to the Euclidean distance for instance) of the dictionary. You can see this as a dictionary in which the words "go", "going", and "gone" would all be represented by the word "go").
In the end, each image is represented by only k values (counts for the number of words/features assigned to each word of the dictionary). This is an histogram, and you can normalize it to get a single vector of proportions representing the image.


text:
Why is the Turing test so popular?
I know there are different AI tests but I'm wondering why other tests are little-known. Is the Turing test hyped? Are there any scientific reasons to prefer one test to the other?

Why is the Turing test so popular?

I think this is a bad question because the answers it attracts will be opinion.  But to add mine: the Turing test is important primarily for historical reasons.  Turing essentially created Computer Science as a field, and had a visionary appreciation of the broad applicability of electronic computers.  That gave his blithe assurance that the equivalent of human cognition was available to computers a lot of weight.  The test's emphasis on behaviorism was in keeping with the emerging psychological trends of the day, and it was convincing enough to provoke interesting philosophical discussions.

@antlersoft Thank you for pointing of the historical factor of the question. Your answer is not opinion since it is based on strong historical evidence; but are historical reasons enough to explain the hype in our days despite the advent of new and more sophisticated tests? Which are the other possible factors that are determining the fame of the Turing test?

I think this question is interesting. If there are scientific reasons to prefer the test, opinions would be irrelevant. As usual, any answers that just state personal opinion with no basis in facts would be removed. (Relevant SE blog post.)

I agree with @colourincorrect 's point that there is economic value to AI which can pass Turing tests to various degrees (chatbots for instance) and this is the reason it is so popular.
At a deeper level, the test relates to subjectivity, and can be said to have it's origins with the early Greek philosopher Protagoras, who proposed that "Man is the measure of all things."

πάντων χρημάτων μέτρον ἐστὶν ἄνθρωπος, τῶν μὲν ὄντων ὡς ἔστιν, τῶν δὲ οὐκ ὄντων ὡς οὐκ ἔστιν.
  Source: Sextus Empiricus, Adv. math. 7.60

Full quote may be translated as: "Of all things (used by man) the measure (of these things) is man: of the things that are, that they are, of the things that are not, that they are not."
(Apologies as I cannot find a direct link for the Greek online. I re-translated the first part of the proposition for clarity, but lifted the second part from Bostock, whose Ancient Greek is undoubtedly better than mine, because it is potentially ambiguous, even in the original, and Bostock's interpretation makes good use of that ambiguity.)
χρημάτων "things" is distinct from ὄντων "things", which is interpreted to mean Protagoras was speaking about things that man has a direct relationship to, such as property, tools, affairs and so forth. "A thing that one needs or uses" is listed in the LSJ.
Protagoras can unquestionably be extended to Algorithmic Intelligences, which are "thing" used and interacted with by humans.
The Turing Test exists because it not only has utility value, but because of the fundamental condition of subjectivity, the idea of which goes back to the earliest, most basic, philosophical concepts.

The test has gained its name and fame mostly because of the person behind it, Alan Turing. Turing - Considered as the father of Artificial Intelligence is among the first who believed that even machines can act and think like humans.
Even though the test is famous there is not much effort placed to qualify the test. The primary reason for this it due to the fact as the test only asks the machine to act like a human being. This is not very beneficial as not all acts of humans are rational and efficient. Go over these threads for more on this.
I think it's the idea of something non-human acting like a human that creates so much fuzz about Turing Test among the general public.

Because it is:

Easy to explain. (Its essentially a game, the "imitation game")
Intuitively plausible as a metric.
The idea of "people v.s. AI" is very marketable.
At the time we thought that we can analyze cognition strictly in terms of input/output (per behaviorism). Cognitivism, embodied cognition, developmental cognition are all sub-fields that have a right to challenge the Turing Test, but they weren't developed at the time of Turing.

Of course, it also helps that Turing is a very important figure in AI/CS.

Can you please provide some sources for point 4 (at least)?

I don't have any specific sources in mind because the rough ideas were just as taught to me in class. Though I do recall my lecturer making the explicit association between the philosophy of the Turing test and Skinner's Radical Behaviourism.
If you look at the historical timeline, it also seems to fit. The Turing Test was developed in the early 50s, and behaviourism was very influential around that time (Skinner, the most prominent behaviourist was very active during 40~50s)
Most importantly of course, is the radical input/output method of analysis shared by both however.

Cognitivism:
the Turing test doesn't say much about internal states, and though technically you might still be able to "ask questions about its internal states", doing so would be quite shallow, while abandoning the insights of cognitivism

embodied cognition
is the agent still "intelligent" in the same way that we are if it has no physical embodiment? (or at least, makes trivial use of it)

developmental cognition:
is the agent still "intelligent" in the same way that we are if it has no developmental phase?

Turing is....definitely an important figure in AI (turing test) and CS (philosophy of CS, Turing machine, Turing completeness....)

I'd say 3. utility value is the correct, specific answer to why it is so popular. (i.e. there is an economic incentive.)

It is so popular because Turing formulated it. He was one of the first who talked about "intelligent machines" and was good connected in the scientific community since the 1940s. So there was enough time to distribute his very intelligent thoughts, for instance by Von Neumann, until now. Turing's importance for computer science is shown by the name of the Turing Award. So it is clear that a lot of people have read his papers.

This isn't a complete answer, but might show some contributing factors. Perhaps most of all, the Turing Test has existed for a long time! In 2000 Turing Test: 50 Years Later reviewed the history of the Turing Test in academia. Given this time, it has become pervasive in popular culture (well, in scifi. e.g. Ex Machina.) It has also garnered attention in media. Googling "Turing Test news" shows lots of stories about "AI" passing the Turing Test over the last few years. Aside from its age, it's a pretty simple idea at its core. A human talks to a computer and decides if they think it's a human or not. That's a pretty digestible idea! So, between its age and ease of understanding, it's a prime candidate for being popular. Other tests tend to lack these qualities (age and simplicity).