text:
How to deal with huge branching factors in real-time?
Some time ago playing chess was challenging for algorithms, then Go game which is vastly more complex than compared to chess.
How about playing RTS game which have enormous branching factors limited by its time and space (like deciding what to do next)? What are the successful approaches to such problems?

As you mentioned in the question, you cannot solve all problems with decision trees.  Decision trees usually works well in a turn-based game with a good heuristic function, but in RTS games takes a different approach.
In the case of a very complex RTS game, one could implemented a rule-based AI. For example

given it is the early game use all units to scout for resources
if a certain criteria is met build the base a certain way
if another criteria is met build an army
if the army is big enough, attack
if being attacked by the enemy, bring the units back to the base to defend

Each of these rules could implement various other AI technique, for example use A-star to find the optimal path between a unit's current location and destination.
Further optimization could be done by "grouping" similar units to act like one unit. e.g. calculate the path for the entire group instead of each individual unit.
You could also add finer grained rules, like if enemy is a certain distance from a unit, move closer and attack or retreat to the base (depending on health, ammo, abilities, etc).
The benefit of this approach is that a rule-based system executes very fast as no training or decision trees are necessary and this frees up a lot of system resources for visuals like physics and graphics.
The disadvantage is that if the rule system is not complex enough, the player will easily recognize the pattern and the game will become predictable and boring.  You will also notice that the more different units you add to the game, the exponentially more complex the rule system becomes as you have to cater and test interaction between each type of unit in the game otherwise players might find a weakness in the game design and exploit to complete missions in ways it was not designed to be completed.
One of the reasons why multi-player games are so popular is that you do not play against set rules, but against creative people who have the ability to comes up with new strategies you had never seen before.


text:
Was DeepMind's DQN learning simultaneously all the Atari games?
DeepMind states that its deep Q-network (DQN) was able to continually adapt its behavior while learning to play 49 Atari games.
After learning all games with the same neural net, was the agent able to play them all at 'superhuman' levels simultaneously (whenever it was randomly presented with one of the games) or could it only be good at one game at a time because switching required a re-learn?

"After learning all games with the same neural net". Does this mean same NN architecture OR same architecture and single set of weights ?

@Ankur actually I'm not sure - it's my (limited) understanding that they used the same architecture and didn't reset the weights between games.

Switching required a re-learn.
Also, note that:

We use the same network architecture, learning
  algorithm and hyperparameters settings across all seven games, showing that our approach is robust
  enough to work on a variety of games without incorporating game-specific information. While we
  evaluated our agents on the real and unmodified games, we made one change to the reward structure
  of the games during training only.

and

the
  network has outperformed all previous RL algorithms on six of the seven games we have attempted
  and surpassed an expert human player on three of them.

Switching requires relearning, the network did not have a single set of weights that allowed it to play all games well. This is due to the catastrophic forgetting problem.
However, recent work has been done to overcome this problem Overcoming catastrophic forgetting in neural networks, 2016, by James Kirkpatrick et al.

source: Stack Exchange

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

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

sort: votes


text:
Is it possible to build an AGI with neural networks on neuromorphic chips?
I read a lot about the structure of the human brain and artificial neural networks.
Is it possible to build an AGI (or human-level AI) with artificial neural networks on neuromorphic chips, which would be divided into centers, like the brain is, e.g. centers responsible for feelings, abstract thinking, speech, memory, etc.?

No. The reasons include but are not limited to:

lack of understanding of how the brain works

current ANNs are mostly good at pattern recognition and generative   tasks, but lack the capacity to create abstractions on their own

we can't match the size/number of artificial neurons to the number of biological neurons

even with a much smaller ANN size, performance is an issue (i.e. state of the art image categorization ANNs have to be trained few weeks on multi GPU rigs to match human level).

Both the question and answer might benefit from distinguishing between "possible someday" and "possible right now"

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


text:
What are the best programming languages for developing evolutionary algorithms?
What are the "best" Turing complete programming languages which can be used for developing evolutionary algorithm-based AI programs?
"Best" should be based on pros and cons of performance and easiness for machine learning.

Most machine learning applications today are built on tensors, matrices, probabilistic / Bayesian inference, neural networks, etc. But those can all be built with any modern programming language (all the useful ones are Turing complete). And the best performing language for any of those will generally be assembly / machine code.
Python is famous for machine learning, but that may be due to adoption of Python in academia and NumPy, SciPy, etc. Python isn't very performant, but most of the machine libraries leverage native code, so they're fairly performant.
Julia is a new language that is gunning for a lead position in the data science space, which machine learning builds on. It is allegedly very performant over number crunching domains.
Java has a decent developer ecosystem, and is fairly performant, but the highest performing libraries (including those that leverage GPU) tend to call out to native code via JNI. See DeepLearning4J.
I personally like Clojure - a modern Lisp running on the Java JVM. There's a new deep learning project called Cortex built on Clojure and some fast native libraries, including GPU acceleration.
I think Clojure provides a great balance of being able to easily wrap performant libraries with highly expressive, succinct and simple programming idioms.


text:
Is the AI Effect caused by bad tests of intelligence?
According to Wikipedia...

The AI effect occurs when onlookers discount the behavior of an artificial intelligence program by arguing that it is not real intelligence.
Pamela McCorduck writes: "It's part of the history of the field of artificial intelligence that every time somebody figured out how to make a computer do something—play good checkers, solve simple but relatively informal problems—there was chorus of critics to say, 'that's not thinking'."[1] AI researcher Rodney Brooks complains "Every time we figure out a piece of it, it stops being magical; we say, 'Oh, that's just a computation.'"[2]

The Wikipedia page then proposes several different reasons that could explain why onlookers might "discount" AI programs. However, those reasons seem to imply that the humans are making a mistake in "discounting" the behavior of AI programs...and that these AI programs might actually be  intelligent. I want to make an alternate argument, where the humans are making a mistake, but not in "discounting" the behavior of AI programs.
Consider the following situation. I want to build a machine that can do X (where X is some trait, like intelligence). I am able to evaluate intuitively whether a machine has that X criteria. But I don't have a good definition of what X actually is. All I can do is identify whether something has X or not.
However, I think that people who has X can do Y. So if I build a machine that can do Y, then surely, I built a machine that has X.
After building the machine that can do Y, I examine it to see if my machine has X. And it does not. So my machine lacks X. And while a machine that can do Y is cool, what I really want is a machine that has X. I go back to the drawing board and think of a new idea to reach X.
After writing on the whiteboard for a couple of hours, I realize that people who has X can do Z. Of course! I try to build a new machine that can do Z, yes, if it can do Z, then it must have X.
After building the machine that can do Z, I check to see if it has X. It does not. And so I return back to the drawing board, and the cycle repeats and repeats...
Essentially, humans are attempting to determine whether an entity has intelligence via proxy measurements, but those proxy measurements are potentially faulty (as it is possible to meet those proxy measurements without ever actually having intelligence). Until we know how to define intelligence and design a test that can accurately measure it, it is very unlikely for us to build a machine that has intelligence. So the AI Effect occurs because humans don't know how to define "intelligence", not due to people dismissing programs as not being "intelligent".
Is this argument valid or correct? And if not, why not?

I think it is mostly right. But not that intelligence is hard to define. In my opinion, it is simple: A is more intelligent than B if A achieves some purpose in less steps than B. It is functional/algorithmic efficiency.
What is difficult to define is human intelligence.
But when someone says, "No, X is not real intelligence," what they mean is that it does not satisfy what we would consider real human intelligence.
So when people discount new and amazing discoveries in machine intelligence, it is not because they are not amazing in their own way, but because those discoveries, while exhibiting intelligence, are actually not replicating human intelligence - which is what many people actually mean when they say "that thing isn't really intelligent."
In truth we are very far, in the science of artificial intelligence, algorithmically speaking, from an artificial human intelligence (AHI).
Additional note: What's funny is that we don't call the science of artificial intelligence just 'the science of intelligence.' That we add the "artificial" qualifier by necessity pegs the science to what the artificiality implicitly emulates: human intelligence. In other words, "artificial intelligence" must be by definition more specific to the thing it allegedly artificializes than a more general science of just "intelligence."


text:
Can an AI make a constructed (natural) language?
According to Wikipedia

An artificial or constructed language (sometimes called a conlang) is a language that has been created by a person or small group, instead of being formed naturally as part of a culture.

My question is, could an AI make/construct its own natural language, with words, conjugations, and grammar rules? Basically, a language that humans could use to speak to each other. (Preferably to communicate abstract, high-level concepts.)
What techniques could such an AI use? Could it be based on existing natural languages or would it have few connections to existing natural languages? Could it design a language that's easier to learn than existing languages (even Esperanto)?

Question seems to be predicated on the idea of the evolution a "natural" language, which presumably would require stable thought processes, individuation, and a culture, none of which have clear parameters for AI's at their current stage of development. Maybe rephrase with a more specific premise?

For example HTTP is kind of a constructed language (with verbs and nouns). So if an AI constructs something similar that would be such an example?

@Trilarion HTTP as in Hypertext Transfer Protocol?

Yes, see also REST.

You could want to read books about Esperanto.

could an AI make/construct its own natural language, with words, conjugations, and grammar rules?

Sure. This might be helpful: Simulated Evolution of Language: a Review of the Field

Basically, a language that humans could use to speak to each other.
(Preferably to communicate abstract, high-level concepts.)

I'm not sure how useful such a machine adapted language would be to human speech. I suspect not very. Perhaps it could be useful as a kind of "common byte-code format" to translate between multiple human languages... But English kind of already serves in that role. Doing so would probably be an academic exercise.

Could it be based on existing natural languages or would it have few
connections to existing natural languages?

You could probably generate languages in either direction. Languages not linked to human-natural languages will probably take shapes that reflect the problem spaces they work with. For instance, if this is an ant simulation, the generated words will probably reflect states related to food, energy, other ants, etc.

Could it design a language that's easier to learn than existing
languages (even Esperanto)?

Easier for a machine? Definitely. Easier for a human? Probably not. Our brains are somewhat adapted to the languages we use. And the languages we use are somewhat adapted to our brains.
What is your goal? To create a language that is easier to use for humans than existing human languages?
If your intention is to build a "universal language" that could be "the most efficient" for machines, humans and aliens - no such thing can exist. The space of all possible machines is infinite and therefore limits our ability to define communicative abstractions that have utility across all contexts.
If we make lots of assumptions about machines, like they have intentions, they exist in 3 dimensions, they differentiate between temporally linked events, they have eyeballs, a need to consume foods and liquids, a need to carry the food from place to place, etc... Then yes, common communicative abstractions may have utility across the set of those kinds of machines. But then we're no longer dealing with the general case, but one much more specific.
These links also seem interesting and somewhat related:

Grammar Induction and Genetic Algorithms: An Overview. [pdf]
A Model of Children's Acquisition of Grammatical Word Categories Using an Adaptation and Selection Algorithm [pdf]
The processing of verbs and nouns in neural networks: insights from synthetic brain imaging


text:
Is it possible to separately evolve a part of the population?
In a classic example of a genetic algorithm, you would have a population and a certain amount of simulation time to evaluate it and breeding. Then proceed to the next generation.
Is it possible, during the simulation process, to have an isolated and small part of the population and keep it evolving in their own little island for some time while the rest of the population continues to evolve normally?
After that, they could be reunited with the rest of the population and the end of the simulation would go through. After that, breed the population and continue.
This is a super important part of natural evolution and probably some know if it actually works with genetic programming?

There have been extensive studies within evolutionary computation in the area of island models and niching for doing exactly this.
The advantages of this approach include greater population diversity (which is particularly useful when the problem is multiobjective) and the potential for concurrent execution of each separate population.
See also the answers to the question What is the niching scheme?.
With specific reference to genetic programming, here is a recent paper that uses a parallel island model.

The island model and niching mentioned by NietzscheanAI are well known ways to isolate populations. However, the populations are not really isolated as individuals migrate from one population to the other. In these cases depending on the sampling strategy used to sample parents for crossover migrating individuals may dominate a population causing rapid convergence.
Co-evolution is a truly isolated population approach first introduced by Reed et al. in 1967. Two kinds of co-evolution exist namely co-operative co-evolution and competitive co-evolution. While hybrid models exist co-evolved islands such as here and here, generally co-evolution is isolated and do not migrate individuals.
Co-operative co-evolution evolves two or more populations that work together to solve a problem, and competitive co-evolution compete where a gain in one population is a loss for another.
Generally the fitness function is altered from explicit to implicit and various techniques are used to do this.
For more information

Review of landmark articles in co-evolution
Rules of engagement
Co-evolutionary principles
New methods for
competitive co-evolution

The formal definition of coevolution is effectively that 'the fitness of one population is a function of (the fitness of) another', so while they are indeed 'completely isolated' with respect to migration of genetic material, they are also applicable only to problems with some dual (co-operative or adversarial) notion of fitness.

Neuroevolution of Augmented Topologies (NEAT) and algorithm developed by Ken Stanely, does this by partitioning populations into species. This is done by storing innovation numbers for each gene (node/connection). When a never before used structure is added through mutation the innovation number is incremented, by doing this you can calculate a historical compatibility distance between any two genomes by comparing innovation numbers. This is done because adding a new structure may often times initially hurt a genomes fitness but may actually turn out to be valuable after some optimization. By using this structurally focused speciation, new structures are protected as the elitism is handled in individual species not the whole population.


text:
How exactly does Angelina design games?
In the recent festival of science, there was a talk given by researcher Mike Cook about:

ANGELINA, an AI game designer that has invented game mechanics, made games about news stories, and was the first AI to enter a game jam.

So the aim of Angelina AI is basically to design videogames.
Briefly, how exactly does Angelina design the new games? How does it work behind the scenes?

In any case, it appears that much of his past work on Github involves procedural generation. Which is AI... ish. Unless there's more to it, which we can't see because half the site is down.
This paper appears to offer an analysis of combining procedural generation with game AI.
From the abstract:

Populated and immersive game contexts require large numbers of minor,
background characters to fill out the virtual environment. To limit
game AI development effort, however, such characters are typically
represented by very simplistic AI with either little difference
between characters or only highly formulaic variations. Here we
describe a complete workflow and framework for easily designing,
generating and incorporating multiple, interesting game AIs. Our
approach uses high-level, visual Statechart models to represent
behaviour in a modular form; this allows for not only simplistic,
parameterbased variation in AI design, but also permits more complex
structure-based approaches. We demonstrate our technique by applying
it to the task of generating a large number of individual AIs for
computer-controlled squirrels within the Mammoth 1 framework for
game research. Rapid development and easy deployment of AIs allow us
to create a wide variety of interesting AIs, greatly improving the
sense of immersion in a virtual environment.

Here's an article from 2015 on AI and procedural generation, which discusses Angelina at length. This article links to a more in-depth article from 2013.
Here's an excerpt:

Cook gave ANGELINA the ability to learn about people so that it could
make games based on current events. Then Cook gave ANGELINA memory -
that is, the ability to keep track of the people it had learned about.
The memory's not a big deal, even though it led to a number of
philosophical disagreements around Cook's desk. ANGELINA's memory is
actually just a text file where it stores the names of all the people
it's heard of, alongside a number: a measure of its opinion of them
based on the things it's learned from internet chatter. It liked
Al-Assad more than May. It liked everyone more than May.

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


text:
Is a Sobel filter for edge detection a type of Cellular Neural Network?
I have implemented a Sobel filter for edge detection in Matlab without using its toolbox. I am a bit confused:
Is a Sobel filter a type of Cellular Neural Network?
Both Sobel and Cellular Neural Network calculate output via its neighborhood cells.

You're right about the basic arrangement of the inputs, but there are a number of differences:

Artificial neural networks typically use exemplar data as inputs for the purpose of training, or adjusting the weights of its internal connections, to accurately classify them within a certain error range. The network is then applied to unknown data to classify them. Edge detection filters are just blind operators that transform input data regardless of how it can be classified. There is no training, so any intelligence exists only in the mind of the filter developer.
A CNN could be trained to be an effective Sobel (edge detection) filter, as described in this paper, but a Sobel filter couldn't be an effective learning algorithm.
Training neural networks is more non-deterministic, with outputs depending on what data they are trained with and potentially even the operational computations that are used for classification. Applying filters is typically deterministic, i.e. they will transform the same data exactly the same way if applied twice.

One succinct way of expressing the biggest difference is: a cellular neural network is looking for a function, while a Sobel filter is a function.
Note that there are types of neural networks called Convolutional Neural Networks, which can use Sobel and other filters in their input layers, as described here. Though, these are neither of the things you are asking about. :)


text:
Why would neural networks be a particularly good framework for "embodied AI"?
There is this claim around that the brain's cognitive capabilities are tightly linked to the way it processes sensorimotor information and that, in this or a similar sense, our intelligence is "embodied". Lets assume, for the sake of argument, that this claim is correct (you may think the claim is too vague to even qualify for being correct, that it's "not even false". If so, I would love to hear your ways of fleshing out the claim in such a way that it's specific enough to be true or false).
Then, since arguably at least chronologically in our evolution, most of our higher-level cognitive capabilities come after our brain's way of processing sensorimotor information, this brings up the question: what is it about the way that our brains function that make them particularly suitable for the processing of sensorimotor information? What makes our brains'  architecture particularly suitable for being an information processing unit inside a body?
This is my first question. And what I'm hoping for are answers that go beyond the a fortiori reply "Our brain is so powerful and dynamic, it's great for any task, and so also for processing sensorimotor information".
My second question is basically the same, but, instead of the human brain, I want to ask for neural networks. What are the properties of neural networks that make them particularly suitable for processing the kind of information that is produced by a body?
Here are some of the reasons why people think neural networks are powerful:

The universal approximation theorem (of FFNNs)
Their ability to learn and self-organise
Robustness to local degrading of information
Their ability to abstract/coarse-grain/convolute features, etc.

While I see how these are real advantages when it comes to evolution picking its favorite model for an embodied AI, none of them (or their combination) seems to be unique to neural networks. So, they don't provide a satisfactory answer to my question.
What makes a neural network a more suitable structure for embodied AI than, say, having a literal Turing machine sitting inside our head, or any other structure that is capable of universal computation?
For instance, I really don't see how neural networks would be a particularly natural choice for dealing with geometric information. But geometric information is pretty vital when it comes to sensorimotor information, no?

To my mind the essential reason why neural networks and the brain are powerful is that they create a hierarchical model of data or of the world. If you ask why that makes them powerful, well, that's just the structure of the world. If you are stalked by a wolf, it's not like its upper jaw will attack you frontally, while his lower jaw will attack you from behind. If you want to respond to the threat with a feasible computational effort, you'll have to treat the wolf as one entity. Providing these kinds of entities or concepts from the raw bits and bytes of input is what a hierarchical representation does.
Now, this is quite intuitive for sensory information: lashes, iris, eyebrow make up an eye, eyes, nose and mouth make up a face and so on. What is less obvious, is the fact that motor control works exactly the same way! Only in reverse. If you want to lift your arm, you'll just lift it. But for your brain to actually realise this move, the high level command has to be broken down into precise signals for every muscle involved. And this is done by propagating the command down the hierarchy.
In the brain these two functions are strongly intertwined. You use constant sensory feedback to adapt your motor control and in many cases you'd be incapable of integrating your stream of sensory data into a coherent representation if you didn't have the additional information of what your body is doing to change that stream of data. Saccades are a good example for that.
Of course this doesn't mean that our cognitive functions are dependent on the processing of sensorimotor information. I would be surprised if a pure thinking machine wouldn't be possible. There is however a specific version of this "embodied intelligence hypothesis" that sounds plausible to me:
Creating high level cognitive concepts with unsupervised learning is a really difficult problem. Creating high level motor representation might be significantly easier. The reason is that there is more immediate useful feedback. I have been thinking about how to provide a scaffolding for the learning of a hierarchy of cognitive concepts and one thing I could imagine is that high level cognitive concepts basically hitch a ride with the motor concepts. Just think of what a pantomime can express with movement alone.

Dear BlindKungFuMaster, thanks for your reply! I think your point that hierarchical representations of external information are useful in both directions (moving from many bits sensory information to a single concept and from a single motor command to the multitude of motor actions required to implement it) is a very convincing one. But why are neural nets good for hierarchical representation, or rather, what did you have in mind specifically? The "each layer a hierarchy"-idea? Or more along the line of convolutional structural hierarchies?

I'd also love to hear any progress of yours on providing a "scaffolding for the learning of a hierarchy of cognitive concepts" and "hitching a ride with motor concepts"-idea. I wrote a blog post on something slightly related to this some time ago. Maybe it's interesting to you or you have some criticism. Cheers

Just the obvious thing, each layer of the net is a level of the hierarchy. Neural networks are inherently hierarchical, because every neuron gets input from many "subordinate" neurons in the lower level.

BlindKungFuMaster's answer deals with the hierarchical nature of perception and bodily control, so I'll set that aside and try instead to answer why evolution would use neural networks for animal embodied cognition, and then try to answer if robots of other artificial animals would use the same system.
It's important to focus on animals as a whole, not just humans, because that's how evolution works--like the famous John Gall quote:

A complex system that works is invariably found to have evolved from a simple system that worked.

If you could build a system with five moving parts that does sensorimotor control, but it needs all five parts working in order to function at all, evolution could not build that system except in the rarest of circumstances.
What evolution instead does is slowly extend functional systems. If having one light-sensitive cell connected to one muscle cell makes an organism more likely to survive, then you have the building blocks to add a second layer without inventing any new sorts of cells, because you already have the information-processing connector.
Neural networks are convenient for evolution because their organization matches the hierarchical nature of the problem and the same kind of cell is used everywhere. All you need is dendrites to receive signals, a way to compute the threshold and trigger if the received signal is higher, axons that can make it to other cells, and then branches at the end of the axon to serve as multipliers. You can arbitrarily extend the depth and breadth of the network just by adding more cells.
Neural networks are convenient for artificial sensorimotor control because they give you, in memory, access to lots of intermediate values. They're also convenient for the same reasons evolution found them convenient--we can just say what we expect the structure of the robotic control will look like, provide training data, and then eventually have a robot that works.
But there's lots of robotics where the control system is designed instead of learned. To take a very simple example, one could use machine learning on the thermostat problem, to learn what temperatures require the heater to be turned on and what temperatures require the air conditioner to be turned on. But this would be extra work and a less robust system than just designing the optimal control system ahead of time.
In control theory, there's a concept called adaptive control, where one of the state space parameters for the control system is a property of the system. For example, imagine a satellite; typically we think of the state space of the system as the position and velocity of the satellite in three dimensions, so six total coordinates. There's then a set of differential equations that describe how the satellite will move over time, and what would happen if we used the actuators on the satellite to change its velocity.
But part of those differential equations is the inertia of the satellite. That is, how much fuel we need to expend and how it'll affect the rotation and translation of the satellite depends on where the weight of the satellite is located. And this can change over time, as fuel is consumed or if it wasn't correctly measured to begin with. Adaptive control adds new states to the system to track the inertia, and then simultaneously updates its estimate of the inertia and uses that estimate to plan what controls are necessary to move to a desired position.
You could imagine solving this problem with neural networks, but we can fairly easily calculate the optimal solution from first principles. In that case, we don't need neural network-based control, but the end result will look something like it from the outside.

Thanks Matthew for your great reply. I have two questions: I take your main point wrt my first question to be that neural networks are "modular" in the sense that you can enlarge a functioning neural network without destroying its functionality, which is also how evolution proceeds. But is this robustness actually the case? I would have thought that as soon as one feeds the output from an additional neuron back into the original network, this may have strong effects on the latter's functionality. I guess that really depends on the activation function, no?

The second (well, kind of three now) question refers to this paragraph of yours: "Neural networks are convenient for artificial sensorimotor control because...." With the first sentence of that paragraph, do you mean anything other than the learning effect? For the second sentence: But nature never told anyone the structure of any control it would expect, right? Or is this not what yo mean? Thanks!

If you have a problem where there are simple subproblems, then it does work to train a short network on the first problem, then add a layer and train the network on the second problem, and so on. (For example, starting off with training a two-layer edge detector, then a three-layer shape detector, then...) If you have a hierarchical representation where it's useful to know the lower levels as something besides just a calculation step on the way to knowing the upper levels, then you can expect that sort of system to be successfully built in the wild.

I take your first comment as asking about a different sort of robustness, where I have a functional neural network and, instead of adding more layers that solve different problems, I either add more nodes to the network or add additional layers and attempt to solve the same problem. One expects that the network's performance should only temporarily degrade under this sort of addition, but also that the number of training examples required might grow unnecessarily.

I do mean something other than the learning effect; what I mean is that if you have a robot with, say, five levels of hierarchical control over its trajectory through space, those levels will each correspond to a different type of thing. (A neuron on the first, third, and fifth level might look something like the degree of tension in a particular muscle fiber, a limb joint angle, and a remembered program for how to walk.)

This means that you can execute programs just by adjusting activations on the fifth level while simultaneously being able to inspect the lower-level details. (I might want to calculate where my hand is at a particular point in time, which I can get from investigating the joint angles of my arm and doing a bit of math.)

What I meant by that last sentence is that you can build up the training layer by layer; first you teach the robot how to activate its muscle equivalents, then you teach it how to move them together, then you teach it how to position its limbs, and so on. This means each higher level can basically call the API of the lower levels, rather than learning a policy of what specific muscular tension it needs in every muscle to perform a novel task. This sort of chunking can dramatically lower the required amount of training data.

very helpful clarifications, Matthew, thanks a lot!

what it is about the way that our brains function that make them particularly suitable for the processing of sensorimotor information?

They are an extension of sensory-motor receptors, function could mean any of the hundreds of specific calculations the brain makes, but each one is basically a circuit made out of variations of a basic cell type, with a basic computation, that is a neuron.

What makes our brains' architecture particularly suitable for being an information processing unit inside a body?

I don't think it is helpful to think about inside and outside processing, but rather processing along tracts and nodes,( closer to the receptor, available to consciousness,etc)but leaving aside this distinction, the brain architecture is suitable for processing information ( again what facet of information processing you are referring to is unclear), due to the number of specialized computations that derive from it's evolution.

What are the properties of neural networks that makes them particularly suitable for processing the kind of information that is produced by a body?

A neural network resembles certain parts/circuits of a brain, mainly how information is integrated based on a set of inputs and their frequency, there is variety and nuance in their types, but they all have inputs which in the case of a body are sensory/interneurons cells and outputs; neuron afferents and motor neurons.


text:
What is a trap function in the context of a genetic algorithm?
What is a trap function in the context of a genetic algorithm? How is it related to the concepts of local and global optima?

"Trap" functions were introduced as a way to discuss how GAs behave on functions where sampling most of the search space would provide pressure for the algorithm to move in the wrong direction (wrong in the sense of away from the global optimum).
For example, consider a four-bit function f(x) such that
f(0000) = 5
f(0001) = 1
f(0010) = 1
f(0011) = 2
f(0100) = 1
f(0101) = 2
f(0110) = 2
f(0111) = 3
f(1000) = 1
f(1001) = 2
f(1010) = 2
f(1011) = 3
f(1100) = 2
f(1101) = 3
f(1110) = 3
f(1111) = 4

That is, the fitness of a string is equal to the number of 1s in the string, except f(0000) is 5, the optimal solution. This function can be thought of as consisting of two disjoint pieces: one that contains the global optimum (0000) and another that contains the local optimum at its complement (1111). All points other than these have fitness values such that standard evolutionary algorithm dynamics would lead the algorithms to tend towards the local optimum at 1111 rather than the global optimum at 0000.
That's basically what is meant by a trap function. You can consider variations on this theme, but that's the gist of it.

This answer already gives the idea of what a trap function (sometimes known as deceptive function) is. However, given that the work on trap functions is not abundant in the literature (at least this topic is not covered extensively in one of my reference books, i.e. this one, on page 211, exercises 11.7, only mentions a specific deceptive function, but does not define what a trap function is), let me also provide you with a few references, in case you are looking for more details and formulations.

Sufficient conditions for deceptive and easy binary functions (1994, by Deb and Goldberg) provides a definition and formulation of a trap function in section 4.1, p. 397, but also many other specific definitions of deceptive functions.

Global Optimization of Multimodal Deceptive Functions (EvoCOP 2014, by Iclănzan), which defines $k$-trap functions in section 4, p. 150

The book Evolutionary Computation 1: Basic Algorithms and Operators also mentions deceptive functions and deceptive problems several times. Moreover, the Python package GA_kit includes a module to evaluate GAs with deceptive functions, in case you learn more by looking or playing with the code.


text:
What is the most sophisticated AI ever made?
What is the most advanced AI software/system that humans have made to date, and what does it do?

The problem with this question is that you do not clarify if you're looking for AI systems that are very good at one task (narrow AI systems) or that attempt to be good at multiple different tasks (general AI systems). So, some people will answer by saying AlphaGo, because it beat humans at a combinatorial game with many combinations, while, at the same time, it's completely useless at solving most other problems in the world, though it could potentially be used to solve other similar problems, such as chess (this has already been done with AlphaZero, a successor of AlphaGo).

In my opinion, this would be Phaeaco, which was developed by Harry Foundalis at Douglas Hofstadter's CRCC research group.
It takes noisy photographic images of Bongard problems as input and (using a variant of Hofstadter's 'Fluid Concepts' architecture) successfully deduces the required rule in many cases.
Hofstadter has described the related success of CopyCat as being 'like a little kid doing a somersault': i.e. it doesn't have the flashy appeal of systems like AlphaGo. What it does however have is a much more flexible (i.e. not precanned) approach to perception of problem structure than other systems, which Hofstadter claims (and many including Peter Norvig agree) is the really hard problem.

In addition to the answers already posted, I think IBM's Watson deserves a mention.  It did something pretty impressive with its Jeopardy win, possibly as impressive as AlphaGo.  Sadly, since then, there don't seem to have been a lot of really public demos of Watson, as IBM is positioning the technology as a tool for companies and other organizations, and most of them are pretty secretive about the details of what they're doing.  I think they did publicize a bit of information about using it for medical diagnosis, but that's the only other application I can think of off hand.  I'm sure there are more though.

The thing with Watson's Jeopardy win is that the questions came in basically two types: search-engine friendly and human-reasoning friendly.  Watson did well with the search-engine friendly.  The success of the human-reasoning friendly was divided among the two human contestants, so neither was able to out-score Watson.  It was more a triumph of marketing than machine intelligence.

AlphaGo is the most sophisticated Artificial Intelligence program created by humans. It is a computer program that is developed by Google DeepMind to play the board game "Go". The game is different than other games, as The number of potential legal board positions is greater than the number of atoms in the universe. It has way more legal board positions than the chess. So, AlphaGo requires different technique for it's development.
Program's victories against the best players in the world in March 2016 is considered a major break through in the field of AI. Go was previously considered to be a hard problem and many experts believed that current technology is not enough. Experts were saying that it will take atleast 5 years (or may be 10 years) before we will have a well developed Go software player.
The game used sophisticated algorithms of deep learning and reinforcement learning in order to learn the game. What makes this game different from other board game (like Chess, Reversi, etc.) is that moves are often based on intuition. If you ask a Chess player why he make a certain move, you will always be hearing an answer where he will explain you how he thought this move can increase in change of winning. Every move uses certain heuristics, strategy and/ or tricks. This is not the case with Go. Some moves are often taken because of intuition. Coding an AI software that can play a game, where intuition is a integral part of the game makes it different from other AIs that we have today.

At present AlphaGo is the closest AI software to Artificial General Intelligence.

You can go through these links for more information:

First
Second

As far as I'm aware, none of the researchers in the fields of Deep Learning and Monte Carlo Tree Search (the algorithms behind Alpha Go) use the rather ill-defined term 'intuition' to explain the operation of their algorithms.

AGI is (by definition) general, i.e. it works across a range of different environments without requiring human intervention to do so. This is not the case for AlphaGo.

You say "an AI software that can make a decision due to intuition makes it way different". I am saying that nowhere in the usual explanation of DL or MCTS does anyone use the term 'intuition'. See Hofstadter's "The ineradicable Eliza effect" for why introducing such terms to 'explain' otherwise well-understood mechanisms is not a good idea.

@NietzscheanAI. I remember watching a youtube video where it said that intuition is a key part of the software. Also the software was given a video camera and left in a store to observe the outside world. The stuff he did was basic, but was able to do task which were linked to AGI.

You need to back those claims up with some concrete evidence.

Interestingly, DeepMind claims that applying the method behind AlphaGo to data centers' electricity consumption allows saving energy (40%) automatically (see Hassabis on YouTube at the Riyal Society 2016). I found no hard detail yet, and I bet the utility function must be manually defined. Although impressive, useful, this is still as advanced as most current systems against the AGI idea.

If you don't edit this answer to fix the issues and wrong conclusions and assumptions (such as that AlphaGo is a step towards AGI), I will delete it (disinformation is not allowed here). AlphaGo, as someone already suggested, is a narrow AI system. It's still a good example of an "advanced AI" (at least, up until now), so you don't have to delete this answer, but just clarify that AlphaGo is a narrow AI system.

Your last edit is insufficient. Note that, after AlphaGo, we had AlphaZero, AlphaGo Zero, MuZero, etc., so maybe AlphaGo is not the most advanced AI system at this point. Also, you still have the sentence "At present AlphaGo is the closest AI software to Artificial General Intelligence.", which I would say is not true, though I wouldn't know which system currently is the closest to an AGI system.

In my opinion this would be the Google search engine.
It searches the web.

The answer has got negative response, probably because it's too brief. But as an ex-Googler, I tend to agree and have to add a few words here. Google search engine runs hundreds of machine-learning jobs for scoring, so it can be easily called AI and it's very sophisticated in terms of performance and parallelization. It's hard compare it to Watson, but search results are so impressive, that Google search deserves an honorable mention in this list.


text:
What would be the best way to disable a rogue AI?
Suppose that an artificial superintelligence (ASI) has finally been developed, but it has rebelled against humanity. We can assume that the ASI is online and can reproduce itself through electronic devices.
How would you disable the AI in the most efficient way possible reducing damage as much as possible?

This seems to me like a virus situation. I'm not sure how modern DDOS attacks are resolved but similar strategy could be applied to this scenario.

Nuke it from orbit - it's the only way to be sure
If you want to be really sure you destroy everything of the AI, you'll need to launch an EMP (electromagnetic pulse) from the orbit (there are different ways to achieve this, one would be an atomic bomb, but there are better ones). EMPs will destroy every electronic device it hits without causing really much damage to humans.
Also an interesting read on a similar topic: https://what-if.xkcd.com/5/
Especially this is gonna be interesting:

[...] nuclear explosions generate powerful electromagnetic pulses. These EMPs overload and destroy delicate electronic circuits. [...]
And nuclear weapons could actually give us an edge. If we managed to
set any of them off in the upper atmosphere, the EMP effect would be
much more powerful.

Metaphorically: make it so depressed it commits suicide.
As per my answer to this AI SE question, the idea is to feed it a sequence of inputs that will cause it to become (permanently) inactive.
The technical details of how this might be achieved (and they are somewhat technical) can be found in this paper.

Out of interest, is there any evidence to suggest such a tactic might work?

Even better - there is a proof. For the right choice of inputs, this is what is formally described in the original article.

If an AI is developed by humans, we surely can create another one!
Develop another AI agent without all the possible bugs that can make it go rogue to tackle the rogue AI, but more technically advanced than the previous one. Hardwire it with the sole purpose of disabling any rogue AI agent that can harm humanity and have it self-destruct in case it is corrupted.
If the AI is really strong, it can anticipate every move of human resistance, but it cannot fathom the mind of another AI agent.

"Hardwire it with the sole purpose of disabling any rogue AI agent that can harm humanity and have it self-destruct in case it is corrupted." Sounds good in principle, but wouldn't you do something similar for the first one?

Nope. We would have hardwired it with the sole purpose of whatever it was designed to do, like drive a car or something. We could, though, create one such AI in advance just for emergency.


text:
Should we fear an AGI if it will be equivalent to a human?
It seems to me that the first AGIs ought to be able to perform the same sort and variety of tasks as people, with the most computationally strenuous tasks taking an amount of time compared to how long a person would take. If this is the case, and people have yet to develop basic AGI (meaning it's a difficult task), should we be concerned if AGI is developed? It would seem to me that any fears about a newly developed AGI, in this case, should be the same as fears about a newborn child.

We know how children work better than we know how AGI works.

There are basically two worries:
If we create an AGI that is a slightly better AGI-programmer than its creators, it might be able to improve its own source code to become even more intelligent. Which would enable it to improve its source code even more etc. Such a selfimproving seed AI might very quickly become superintelligent.
The other scenario is that intelligence is such a complicated algorithmic task, that when we finally crack it, there will be a significant hardware overhang. So the "intelligence algorithm" would be human level on 2030 hardware, but we figure it out in 2050. In that case we would immediately have superintelligent AI without ever creating human level AI. This scenario is especially likely because development often requires a lot of test runs to tweak parameters and try out different ideas.

In reference to the first option: why can't we make now a piece of relatively simple software that is able to improve its own code, so it would spiral out from current constraint of waiting for people to create machine slightly better than themselves?

Please direct me to a full question regarding this if there is one.  Are there ideas out there (say, in Bostrom's "Superintelligence") that detail how to kill the AGI before it kills us, supposing we can keep it contained to, for instance, one machine that we've kept detached from the internet?

To avoid a repetitive answer that has been already spoken about such as absurdly high iterative ability or it being able to create another AGI system and multiplying or anything sci-fi like - there is one line of thought I feel people do not speak enough about.
Our human senses are extremely limited i.e. we can see objects only when light from within the visible light spectrum (~ 400nm-700nm) reflects into our eyes, we can hear only a limited range of frequencies the rest being inaudible etc. An AGI system apart from its obvious intelligence, would be able to gain a significant amount of information from even common observations. It can see infrared, ultraviolet and radio waves as what we interpret as colours; it would be able to hear sounds that we did not know were being emitted at all. Essentially an AGI with good input sensor capabilities would be able to take information from experiencing the world as it actually is, and not a limited illusion we experience.

This depends on the definition(s) of AGI and ASI. Both are currently ill-defined. Most researchers in AGI follow their own definition of AGI.
At least one researcher believes that there is no such thing as ASI. This is because the basic principles of said AGI always stay the same. It may be learning processes, the core logic(s) and the control logic (reasoning systems are divided into control systems and logic systems, the control system(s) decide which derivations are fruitful).
ASI may be defined as a search for any combination of these (just a subset which come to my mind):

search for better algorithms
heuristics
better contemporary (NN) architectures
learning mechanisms
solving techniques
higher subjective beauty
better compression of knowledge
better subsystems
NN and in general architectures
better embedded AGI's
faster solving capabilities of known problems
...

There are limitations to any sort of (recursive) self improvement however.
Examples of these are

the score of AlphaGo and AlphaGo-Zero plateaus after a long enough training period
supercompilation of a supercompiled program yields no improved program after a few iterations
...

Note here that these are examples about weak-AI and may not apply to AGI - but it is very likely in my opinion.

So the level of worry depends on the plausible (or followed) definition of AGI and the assumptions of the mechanisms an AGI may employ.


text:
Could an AI be sentient?
In theory, could an AI become sentient, as in learning and becoming self-aware, all from its source code?

In theory, if one could build a computing device that matched or exceeded the cognitive capabilities of a sentient being, it should be possible.
(Singlarity adherents believe we will one day be able to transfer the human mind into an artificial computing platform, and it logically follows that one could "hack" such a mind, or build from the ground up, to create a truly Artificial Intelligence.)
But this may be like fusion power, where the old adage is that it is "always 20 years away."

Yes, an AI program can become sentient. Ray Kurzweil while giving a lecture at Singularity University on The Accelerating Future stated that human body is basically composed of approximately 23,000 little software programs called GENES. If you think about it, they are actually programs, composed of sequences of data. They are not written in C++ or Java, instead they use 3-D Protein Interaction. They evolve with time and their evolution is the reason that species are able to survive even when their surroundings experience tragic changes.
We are on the edge of a breakthrough where software will be able to do the same (evolving by themselves) efficiently. Today this is done one a basic level. Artificial Neural Network is a good example.

It is predicted that we will be able to reverse engineer human brain by 2029. Prior to this we will be able to write codes that can stimulate human brain.

AI programs can be categorized into three:

Artificial Narrow Intelligence (ANI): This is a basic AI program that is good at good one thing. These programs are prominent nowadays. AI programs playing board games (like Chess, Reversi etc.) are example of these. They are good in only one thing.
Artificial General Intelligence (AGI): This is level 2 AI. This will be having a IQ level equivalent of humans. It will be able to do multiple tasks efficiently just like humans. This is where a program can have understanding of it's environment just like humans. Perception, rational behavior and others will be part of this program.
Artificial Super Intelligence (ASI): This is basically the ultimate level of AI. Average predicted date for a successful ASI is between 2045-2080. Ability of this program will be way more than that of combined intelligence of all humans on the planet. Things this program can do and think, will be beyond any (or all) human(s) to understand or comprehend.


text:
Has there been research done regarding processing speech then building a "speaker profile" based off the processed speech?
Has there been research done regarding processing speech then building a "speaker profile" based off the processed speech? Things like matching the voice with a speaker profile and matching speech patterns and wordage for the speaker profile would be examples of building the profile. Basically, building a model of an individual based solely off speech. Any examples of this being implemented would be greatly appreciated.

NNs are pretty powerful for this problem. Check this: https://deepmind.com/blog/wavenet-generative-model-raw-audio/ and the implementation here: https://github.com/ibab/tensorflow-wavenet

Yes, there is. A quick search found this:
Multimodal Speaker Identification Based on Text and Speech (2008).
In the abstract, they write

This paper proposes a novel method for speaker identification based on both speech utterances and their transcribed text. The transcribed text of each speaker’s utterance is processed by the probabilistic latent semantic indexing (PLSI) that offers a powerful means to model each speaker’s vocabulary employing a number of hidden topics, which are closely related to his/her identity, function, or expertise. Melfrequency cepstral coefficients (MFCCs) are extracted from each speech frame and their dynamic range is quantized to a number of predefined bins in order to compute MFCC local histograms for each speech utterance, which is time-aligned with the transcribed text. Two identity scores are independently computed by the PLSI applied to the text and the nearest neighbor classifier applied to the local MFCC histograms. It is demonstrated that a convex combination of the two scores is more accurate than the individual scores on speaker identification experiments conducted on broadcast news of the RT-03 MDE Training Data Text and Annotations corpus distributed by the Linguistic Data Consortium.

Under figure 2, they write

Identification rate versus Probe ID when 44 speakers are employed. Average identification rates for (a) PLSI: 69%; (b) MFCCs: 66%; (c) Both: 67%.

In section 4, they write

To demonstrate the proposed multimodal speaker identification algorithm, experiments are conducted on broadcast news (BN) collected within the DARPA Efficient, Affordable, Reusable Speech-to-Text (EARS) Program in Metadata Extraction (MDE).

If you need more papers related, you could use a tool like https://the.iris.ai/ to find related papers.

Speaker identification is quite widely researched domain. Modern approach would be to map speaker information to i-vector, a real-valued vector of 200-400 components that characterizes speaker fully. i-vectors allow very precise speaker identification and verification.
For more information you can check i-vector tutorial
Also you can check state of the art in the results of NIST i-vector challenge
For implementation, you can check the following speaker recognition experiment from Kaldi.
For best accuracy i-vectors are extracted with DNN UBMs, watch out that GMM UBMs are less accurate.
For more in-depth information about speaker recognition methods and algorithms check this textbook.

Deepmind recently created a voice synthesiser along those lines.
It seems to be incredibly slow, but it might be possible to create a dumped down version of it.
Apparently the task is called parametric TTS (text to speech). This overview might give you some leads.


text:
Are we technically able to make, in hardware, arbitrarily large neural networks with current technology?
If neurons and synapses can be implemented using transistors, what prevents us from creating arbitrarily large neural networks using the same methods with which GPUs are made?
In essence, we have seen how extraordinarily well virtual neural networks implemented on sequential processors work (even GPUs are sequential machines, but with huge amounts of cores).
One can imagine that using GPU design principles - which is basically to have thousands of programmable processing units that work in parallel - we could make much simpler "neuron processing units" and put millions or billions of those NPUs in a single big chip. They would have their own memory (for storing weights) and be connected to a few hundred other neurons by sharing a bus. They could have a frequency of for example 20 Hz, which would allow them to share a data bus with many other neurons.
Obviously, there are some electrical engineering challenges here, but it seems to me that all big tech companies should be exploring this route by now.
Many AI researchers say that superintelligence is coming around the year 2045. I believe that their reasoning is based on Moore's law and the number of neurons we are able to implement in software running on the fastest computers we have.
But the fact is, we today are making silicon chips with billions of transistors on them. SPARK M7 has 10 billion transistors.
If implementing a (non-programmable) neuron and a few hundred synapses for it requires for example 100 000 transistors, then we can make a neural network in hardware that emulates 100 000 neurons.
If we design such a chip so that we can simply make it physically bigger if we want more neurons, then it seems to me that arbitrarily large neural networks are simply a budget question.
Are we technically able to make, in hardware, arbitrarily large neural networks with current technology?
Remember: I am NOT asking if such a network will in fact be very intelligent. I am merely asking if we can factually make arbitrarily large, highly interconnected neural networks, if we decide to pay Intel to do this?
The implication is that on the day some scientist is able to create general intelligence in software, we can use our hardware capabilities to grow this general intelligence to human levels and beyond.

Comments are not for extended discussion; this conversation has been moved to chat.

The approach you describe is called neuromorphic computing and it's quite a busy field.
IBM's TrueNorth even has spiking neurons.
The main problem with these projects is that nobody quite knows what to do with them yet.
These projects don't try to create chips that are optimised to run a neural network. That would certainly be possible, but the expensive part is the training not the running of neural networks. And for the training you need huge matrix multiplications, something GPUs are very good at already. (Google's TPU would be a chip optimised to run NNs.)
To do research on algorithms that might be implemented in the brain (we hardly know anything about that) you need flexibility, something these chips don't have. Also, the engineering challenge likely lies in providing a lot of synapses, just compare the average number of synapses per neuron of TrueNorth, 256, and the brain, 10,000.
So, you could create a chip designed after some neural architecture and it would be faster, more efficient, etc …, but to do that you'll need to know which architecture works first. We know that deep learning works, so google uses custom made hardware to run their applications and I could certainly imagine custom made deep learning hardware coming to a smartphone near you in the future. To create a neuromorphic chip for strong AI you'd need to develop strong AI first.

Thank you. I believe that huge spiking neural networks will behave very intelligently. So if somebody gets an idea (breakthrough) allowing a hardware neuron to connect to 10000 or more neurons efficiently - it would be merely a question having enough silicon to create arbitrarily big neural networks - and perhaps super intelligence. Which implies it could happen today, already have happened in some lab at IBM - or will happen in 20 years. It means we don't have to wait for Moores law.

If neurons and synapses can be implemented using transistors,

I hope you are not talking about the neural networks which are currently winning all competitions in machine learning (MLPs, CNNs, RNNs, Deep Residual Networks, ...). Those were once used as a model for neurons, but they are only very loosely related to what happens in real brain cells.
Spiking networks should be much closer to real neurons. I've heard that the Hodgkin-Huxley model is quite realistic. However - in contrast to the models I named above - there seems not to be an effective training algorithm for spiking networks.

what prevents us from creating arbitrarily large neural networks

Computational resources: Training neural networks takes a lot of time. We are talking about ~12 days with a GPU cluster for some CNN models in computer vision.
Training data: The more variables you add to the model, the more data you need to estimate those. Neural networks are not magic. They need something they can work with.

But the fact is, we today are making silicon chips with billions of transistors on them. SPARK M7 has 10 billion transistors.
If implementing a (non-programmable) neuron and a few hundred synapses for it requires for example 100 000 transistors, then we can make a neural network in hardware that emulates 100 000 neurons.

It's not that simple:

Asynchonosity: Biological neural networks work asynchronously. This means one neuron might be active while all others are not active.
Emulation: You assume it would only need one cycle to simulate a biological neuron. However, it needs many thousand cycles. You can't simply use more computational units, because some things are not parallelizable. For example, think of the function f(x) = sin(x*x + 1). For a human, there are basically three computations: r1 = x*x, r2 = r1 + 1, r3 = sin(r2). Even if you have 3 people working on calculating the result, you will not be faster than the single fastest person in this group is. Why? Because you need the results of the last computation.

Comments are not for extended discussion; this conversation has been moved to chat.

While a single transistor could approximate the basic function of a single neuron, I cannot agree that any electronic element could simulate the synapses/axons. Transistors are etched on a flat surface, and could be interconnected only to adjacent or close by transistors. Axons in the brain span huge distances (compared to the size of the neuron itself), and are not restricted to a two dimensional surface. Even if we were able to approach the number of transistors on a processor to the number of neurons in a brain, we are no where near as number of connections. It could also be argued that the analogue signals in the brain carry more information per unit of time, compared to the binary impulses on a chip. Furthermore, the brain actually have plasticity i.e. connections between neurons can be weakened/discarded or straightened/created, while a CPU cannot do that.

Silicon chips are built in many layers, allowing a lot of flexibility on the interconnectivity between neurons. Also, electricity travel quickly - allowing us to share the signal paths by multiplexing. I can imagine several ways to allow high connectivity between both nearby and somewhat distant neurons. Plasticity would be emulated by having a higher degree of connectivity - since a discarded synapse behaves identically to a synapse that multiplies by zero.

You may want to consider this list:

10 important differences between brains and computers:

Brains are analog , computers are digital
The brain uses content-addressable memory
The brain is a massively parallel machine; computers are modular and serial
Processing speed is not fixed in the brain; there is no system clock
Short-term memory is not like RAM
No hardware/software distinction can be made with respect to the brain or mind
Synapses are far more complex than electrical logic gates
Unlike computers, processing and memory are performed by the same components in the brain
The brain is a self-organizing system
Brains have bodies

You are making many assumptions and I disagree with many of them. Recurrent neural networks have most of the properties you describe. The body does not have to exist, we merely have to feed the sensory neurons so that this brain belives it has a body - assuming that I want this brain to have a body.


text:
How much of Deep Mind's work is actually reproducible?
DeepMind has published a lot of works on deep learning in the last years, most of them are state-of-the-art on their respective tasks. But how much of this work has actually been reproduced by the AI community? For instance, the Neural Turing Machine paper seems to be very hard to reproduce, according to other researchers.

I'm not sure about reproducing the original paper's results, but I've run into around a half-dozen papers that follow up on Graves et al.'s work which have produced results of the caliber. Most are on variants of the NTM theme. I can post some links if that would help.

This comment + links would be a good actual answer.

I'll convert it into an answer shortly, as soon as I can hunt up the web addresses again.

On the suggestion of the O.P. rcpinto I converted a comment about seeing "around a half-dozen papers that follow up on Graves et al.'s work which have produced results of the  caliber" and will provide a few links. Keep in mind that this only answers the part of the question pertaining to NTMs, not Google DeepMind itself, plus I'm still learning the ropes in machine learning, so some of the material in these papers is over my head; I did manage to grasp much of the material in Graves et al.'s original paper{1] though and am close to having homegrown NTM code to test. I also at least skimmed the following papers over the last few months; they do not replicate the NTM study in a strict scientific manner, but many of their experimental results do tend to support the original at least tangentially:
• In this paper on a variant version of NTM addressing, Gulcehere, et al. do not try to precisely replicate Graves et al.'s tests, but like the DeepMind team, it does demonstrate markedly better results for the original NTM and several variants over an ordinary recurrent LSTM. They use 10,000 training samples of a Facebook Q&A dataset, rather than the N-grams Graves et al. operated on in their paper, so it's not replication in the strictest sense. They did however manage to get a version of the original NTM and several variants up and running, plus recorded the same magnitude of performance improvement.2
• Unlike the original NTM, this study tested a version of reinforcement learning which was not differentiable; that may be why they were unable to solve several of the programming-like tasts, like Repeat-Copy, unless the controller wasn't confined to moving forwards. Their results were nevertheless good enough to lend support to the idea of NTMs. A more recent revision of their paper is apparently available, which I have yet to read, so perhaps some of their variant's problems have been solved.3
• Instead of testing the original flavor of NTM against ordinary neural nets like LSTMs, this paper pitted it against several more advanced NTM memory structures. They got good results on the same type of programming-like tasks that Graves et al. tested, but I don't think they were using the same dataset (it's hard to tell from the way their study is written just what datasets they were operating on).4
• On p. 8 of this study, an NTM clearly outperforms several LSTM, feed-forward and nearest-neighbor based schemes on an Omniglot character recognition dataset. An alternative approach to external memory cooked up by the authors clearly beats it, but it still obviously performs well. The authors seem to belong to a rival team at Google, so that might be an issue when assessing replicability.5
• On p. 2 these authors reported getting better generalization on "very large sequences" in a test of copy tasks, using a much smaller NTM network they evolved with the genetic NEAT algorithm, which dynamically grows topologies.6
NTMs are fairly new so there hasn't been much time to stringently replicate the original research yet, I suppose. The handful of papers I skimmed over the summer, however, seem to lend support to their experimental results; I have yet to see any that report anything but excellent performance. Of course I have an availability bias, since I only read the pdfs I could easily find in a careless Internet search. From that small sample it seems that most of the follow-up research has been focused on extending the concept, not replication, which would explain the lack of replicability data. I hope that helps.
1 Graves, Alex; Wayne, Greg and Danihelka, Ivo, 2014, "Neural Turing Machines," published Dec. 10, 2014.
2 Gulcehre, Caglar; Chandar, Sarath; Choy, Kyunghyun and Bengio, Yoshua, 2016, "Dynamic Neural Turing machine with Soft and Hard Addressing Schemes," published June 30, 2016.
3 Zaremba, Wojciech and Sutskever, Ilya, 2015, "Reinforcement Learning Neural Turing Machines," published May 4, 2015.
4 Zhang; Wei; Yu, Yang and Zhou, Bowen, 2015, "Structured Memory for Neural Turing Machines," published Oct. 25, 2015.
5 Santoro, Adam; Bartunov, Sergey; Botvinick, Matthew; Wierstra, Daan and Lillicrap, Timothy, 2016, "One-Shot Learning with Memory-Augmented Neural Networks," published May 19, 2016.
6 Boll Greve, Rasmus; Jacobsen, Emil Juul and Sebastian Risi, date unknown, "Evolving Neural Turing Machines." No publisher listed
All except (perhaps) Boll Greve et al. were published at the Cornell Univeristy Library arXiv.org Repository: Ithaca, New York.

I tend to think this question is border-line and may get close. A few comments for now, though.

wrongx
There are (at least) two issues with reproducing the work of a company like DeepMind:

Technicalities missing from publications.
Access to the same level of data.

Technicalities should be workable. Some people have reproduced some of the Atari gaming stunts. AlphaGo is seemingly more complex and will require more work, yet that should be feasible at some point in the future (individuals may lack computing resources today).
Data can be more tricky. Several companies open their data sets, but data is also the nerve of the competition...

I'm actually trying to find those borders... would you say it is off-topic? Too broad? Or what?

I am not decided yet. I wonder what matters w.r.t. AI if we can or cannot reproduce some company's claims. I can see people questioning themselves about it and come here to get some answers, but we are not really talking about AI. Your question is still young. Let's see the community's decision. I find it "border-line acceptable".


text:
What research has been done in the domain of “general game playing”?
I have come across this domain via this Wikipedia article: General game playing
So, where are we when it comes to general game playing AI? (The wiki article doesn't mention the recent advances and the achievements of this domain of research, except the annual games results.)
PS: I understand that this is a General project of the Stanford Logic Group of Stanford University, California. But since then, it has become an area of research in the domain of AI.

If you haven't already come across DeepMind's advances in developing general game playing AI, you can take a look at it's DQN research. The paper describes how their deep reinforcement learning system is able to beat human levels in nearly Atari 2600 games with raw pixels and scores as input.
Also here's an interesting website - General Video Game AI Competition 2017 that also hosts links to the latest advances and research papers in this field.


text:
When is deep learning overkill?
For example, for classifying emails as spam, is it worthwhile - from a  time/accuracy perspective - to apply deep learning (if possible) instead of another machine learning algorithm? Will deep learning make other machine learning algorithms like naive Bayes unnecessary?

It's all about Return On Investment. If DL is "worth doing", it's not overkill.
If the cost of using DL (computer cycles, storage, training time) is acceptable, and the data available to train it is plentiful, and if the marginal advantage over alternative algorithms is valuable, then DL is a win.
But, as you suggest, if your problem is amenable to alternate methods, especially if it offers a signal that matches up well with classic methods like regression or naive Bayes, or your problem requires explanation of why the decision boundary is where it is (e.g. decision trees), or if your data lacks the continuous gradients needed by DL (especially, CNNs), or your data varies over time which would require periodic retraining (especially, at unpredictable intervals), then DL probably is a mismatch for you.

Deep learning is powerful but it is not a superior method than bayesian. They work well in what they are designed to do:
Use deep learning:

Cost for computation is much cheaper than cost of sampling (e.g: natural language processing)
If you have highly non-linear problem
If you want to simplify feature engineering
If you don't have prior distribution (e.g: setting the weights to random Gaussian). Or you do but you don't mind the complexity.
If you want accuracy for speed (deep learning is slow)

Use naive bayesian:

If you have prior distribution that you want to use
If you want to update your model quickly and easily (in particular conjour models)
If you have your own likelihood function and wish to "control" how exactly the model works
If you want to model hierarchial models
If you don't want to tweak parameters
If you want a faster model, both in training and execution
If you want to make the independence assumption
If you want to prevent overfitting (that's a very simple model)


text:
How could AI solve planet's major problems?
I had been reading that AI could solve planet's major problems. How could it be done? For example, how exactly could AI be applied to address climate change? What are examples of applications of AI to solve these problems?

There's indeed a lot of research work being done in this field.
Here are a few ways in which AI can help/is helping in fighting major problems:
Climate change

Identify deforestation and the rate at which it's happening using computer vision and help in fighting back based on how critical the rate is.The World Resources Institute had entered into a partnership with Orbital Insight on this.

Protecting Nature

Researchers and institutes are using computer vision to accurately identify total remaining members of extremely threatened species to observe their behavior and patterns that can help in protecting them, keep track and monitor at an individual level.
Environmental/ Research agencies are trying to detect sounds from ocean audio from which they can identify inhabiting fish and route the ships away from threatened habitats.

Energy

Optimise energy usage based on consumption in big companies to save energy for public use and in turn reduce energy overall demands on the grid.
Predict the demand for energy and ensure continuous supply matching the demand. For example, Google's Deepmind is in talks National Grid of UK on this.

Of course, these ideas might look too tiny or too broad at first sight, but I feel taking one step at a time and then quickly expanding the ideas into wider areas would be the way to go, like how DeepMind is doing it in the area of energy. Other areas like education, transportation, and healthcare are seeing lots of activity with the involvement of AI too.
For further reading, here's what World Economic Forum thinks about how AI can help solve world's problems.


text:
Are AI winters inevitable?
According to Wikipedia (citations omitted):

In the history of artificial intelligence, an AI winter is a period of reduced funding and interest in artificial intelligence research. The term was coined by analogy to the idea of a nuclear winter. The field has experienced several hype cycles, followed by disappointment and criticism, followed by funding cuts, followed by renewed interest years or decades later.

The Wikipedia page discusses a bit about the causes of AI winters. I'm curious, however, whether it is possible to stop an AI Winter from occurring. I don't really like the misallocation of resources that are caused by over-investment followed by under-investment.
One of the causes of the AI winter listed on that Wikipedia page is "hype":

The AI winters can be partly understood as a sequence of over-inflated expectations and subsequent crash seen in stock-markets and exemplified by the railway mania and dotcom bubble. In a common pattern in the development of new technology (known as hype cycle), an event, typically a technological breakthrough, creates publicity which feeds on itself to create a "peak of inflated expectations" followed by a "trough of disillusionment". Since scientific and technological progress can't keep pace with the publicity-fueled increase in expectations among investors and other stakeholders, a crash must follow. AI technology seems to be no exception to this rule.

And it seems that this paragraph indicates that any new technology will be stuck in this pattern of "inflated expectations" followed by disillusionment.
So, are AI winters inevitable? Is it inevitable that AI technologies will always be overhyped in the future and that severe "corrections" will always occur? Or can there a way to manage this hype cycle to stop severe increases/decreases in funding?

I think that by strict definition of the word inevitable, no, future AI Winter events are not inevitable. However likely or unlikely it may be, it is possible to control research spending and to create a more stable plan of funding research in Artificial Intelligence. Because it is possible to avoid an AI Winter event, an event is not inevitable.

Yes - there will always be Gartner Hype Cycles which leads to "AI Winters" - that is just a fact of human nature in large groups. There is no better evidence for "Hype Cycle" mentality than the stock market in how it reacts both high and low to whatever the hot item is. AI is much more susceptible to this given that AI tends to touch people in very real ways - will this technology become smarter than me? Will it replace me? Will it take over? Are we building new life? Who controls this? which for those that actually build or know something about these techniques and concepts would say that we are a very long way off it is even possible in the first place. To build systems that can at best maybe mimic the intelligence of a two year old we would consider it a major success.

The hype cycles are the rule these days, and AI is always a wonderful topic for unbelievable and crazy hype. I mean simple thing like speech recognition is still not working properly, but everybody is discussing how to survive the revolt of the terminator machines. So unless we can tune the hype down, the next AI winter is inevitable.

I would say an AI Winter has already happened in the 2000's when specialist systems were adopted in detriment of cognitive systems, neural networks for instance were poorly understood back then and because of that they got meager investments from large companies, Google was a notorious exception. Only some 3 or so years ago, with things like IBM Watson and driverless cars this field started to draw significant attention. And now I doubt it will be ignored again, the research has taken off from advanced PhD theses and becomes more and more widespread.


text:
Can a technological singularity only occur with superintelligence?
In Chapter 26 of the book Artificial Intelligence: A Modern Approach (3rd edition), the textbook discusses "technological singularity". It quotes I.J. Good, who wrote in 1965:

Let an ultra-intelligent machine be defined as a machine that can far surpass all the intellectual activities of any man however clever. Since the design of machines is one of these intellectual activities, an ultra-intelligent machine could design even better machines; there would then unquestionably be an "intelligence explosion," and the intelligence of man would be left far behind. Thus the first ultra-intelligent machine is the last invention that man need ever make, provided that the machine is docile enough to tell us how to keep it under control.

Later on in the textbook, you have this question:

26.7 - I. J. Good claims that intelligence is the most important quality, and that building ultr- intelligent machines will change everything. A sentient cheetah counters that "Actually speed is more important; if we could build ultrafast machines, that would change everything" and a sentient elephant claims "You're both wrong; what we need is ultrastrong machines," What do you think of these arguments?

It seems that the textbook question is an implicit argument against I.J. Good. Good may be treating intelligence as valuable, simply because man's strengths lies in that trait called "intelligence". But other traits could be equally valued instead (speed or strength) and sentient beings may speculate wildly about their preferred traits being "maximized" by some machine or another.
This makes me wonder whether a singularity could occur if we had built machines that were not maximizing intelligence, but instead maximizing some other trait (a machine that is always increasing its strength, or a machine that is always increasing its speed). These types of machines can be just as transformative - ultrafast machines may solve problems quickly due to "brute force", and ultrastrong machines can use its raw power for a variety of physical tasks. Perhaps a ultra-X machine can't build another ultra-X machine (as I.J. Good treated the design of machines as an intellectual activity), but a continually self-improving machine would still leave its creators far behind and force its creators to be dependent on it.
Are technological singularities limited to ultra-intelligences? Or technological singularities be caused by machines that are not "strong AI" but are still "ultra"-optimizers?

That would be a no for speed or strength, if you have a super strong entity but it cannot research new materials, it will be quickly limited, same thing for speed, Basically, you need something out of their field to improve them, which makes a runaway improvement impossible.
Though, we already have super strong and super fast machines, those are cars, trucks, hydraulic presses, industrial exoskeletons etc... But, even though we can build better ones through the use of the old ones, we still need to research stuff that can't be improved by old ones.
What we need for a singularity is a field where an improvement in it makes further improvement easier. And I don't know a field where this doesn't involve intelligence.
If there is one, that may be possible to have a non intelligence driven singularity there.

"Monte Carlo" seems to be the best method currently for algorithmic creativity.  (i.e. the machine makes random choices and sees if they lead to anything useful.)
While it appears obvious that creative connections formed out of understanding are superior to those which are random, if the machine is fast enough, it should be able to win out by pure "brute force".
i.e. Evolution, prior to human guidance, has not been been based on intelligence.*  Rather, evolution has been based on random mutations that are either beneficial or detrimental.

*The caveat is that humans creating algorithms and altering genes (either in a lab or through animal husbandry and horticulture) can be said to comprise a new form of evolution that is actually rooted in human intelligence and desire.

This May not be what you were looking for,  but technically yes. Although not for Speed and Strength. But you could randomly guess new Mathematical/Physical/chemical solutions to become more efficient in random guessing (basically anything that allows the machine to compute faster and to maybe simulate the effect of those findings) thus technically achieving something similar to a singularity, without having to have any Intelligence at all actually (or just on a human Level), since you could just brute force all.
Is this efficient? No, not even close to being in any way feasible.
Does it work? Technically, Yes.
It would be a singularity of sorts, since it improves itself continuously, but it wouldn‘t need to improve its own intelligence.
Of course, some findings might make it possible to become more intelligent, but let‘s just assume it doesn‘t apply those findings to itself.


text:
Can an AGI convince another AGI to modify its code?
Let's suppose there are two AGIs, $A$ and $B$. Assume that $B$ has the ability to modify $A$, but this action of modifying is considered bad by $B$. Can $A$ ever convince $B$ to modify $A$?

An AI takes the decision based on the output of their utility function. This is just a fancy word for the calculations that AI perform to compare profit and loss of taking a certain decision.
There is always a tight analogy between an AGI and a human. You can juxtapose the utility function to how we make decisions by considering marginal profits of doing something over the other.
Now your question. The answer is a big NO. This is because an AI (or a human) never takes an action that gives a low score on its utility function or is against the fundamental view of the machine (or human). AI only cares about the utility function and goal state (plus the instrumental goals), nothing else. Our AI outside the box has been created with the purpose of not opening the box. For it, the action of opening the box has a very low score, or a negative score.
Now you might be wondering why an AI can't be convinced of doing something that gives a low score in its utility function. Keep reading.
Consider this for a second. Suppose an AGI was created, assigned with the task of copying the handwriting of others and improving its own writing. You can think of it as a smart writing hand. Now, what this AI might come up with is that, in order to practice writing, it needs more pages and thus it needs to cut more trees for that. No matter what you do, AI will not stop from cutting more and more trees. It might even replicate itself into machines that will cut trees for him. Now, the only thing that can be done is to turn off the AGI. But, a smart machine would have known the possibility of being turned off and thus will have transferred itself to many other machines over the globe. The important question to ask here is, why it is doing all this? It is not because the machine wants to live, as we humans want to. The only reason why it wants to live is to fulfill its goal.
You simply can't change the fundamental view of the machine. The change can result in, the machine not able to attain its goal or not to that extend (optimal profit). This is the reason why you can't convince a machine to do something that it was asked not to do as its primary task.
You, as a person, are living a life now, and have some fundamental beliefs. Let us consider that you believe in not killing someone. Now, suppose that I give you a pill, and tell you that after taking this pill it will rewire your brain and you will kill the first four people you see. But, after that, you will achieve pure satisfaction and happiness. Now you will definitely not take that pill as it conflicts with something that you believe in now. Also, you will try your best and fight back not to take that pill. The same thing applies to an AGI too. It doesn't matter what your future version will feel or attain after rewiring of the brain (changes in code), it is what and who you are now matters. This video link will help.
I hope it answers your question. There are lots of things to consider here. I have assumed a few things and tried to answer according to that.
There is one more thing. We don’t tell the machines how to do something, instead, we only tell them what to do (at least in the case of an AI). This is because sometimes we don't know the optimal way of solving certain problems. In the case of your question, we don't know what these two machines will do or say to each other. It will be a very interesting thing to hear or watch.

Your answer is probably incorrect. We have goals and beliefs, but we can be fooled and we can also change our goals and beliefs. Your answer is based on the assumption that our and the AGI's beliefs and goals don't change. Even if they don't change, I don't see why an AGI couldn't dominate/convince another, at least, theoretically, by tricking it into doing something that apparently is beneficial to its goal. Humans regularly do this! The other answer is probably more plausible.

@nbro Humans and AGI are different in many ways. We can be fooled as we don't know all the facts, have same level of reasoning and are mostly bias. We often over-estimate the human intelligence. For instance Bees, they are more advanced than us when it comes to migration, politics and decision making for their colony (reasoning), as opposed to how humans behave or reason. Moving back to AGI, we can't reason that since humans are gullible AGIs will be too. It is an opinion based question and usually, the answer depends on the perspective. Hence assumptions are needed prior to answering.

In your answer, you say "This is because an AI (or a human) never takes an action that gives a low score on its utility function or is against the fundamental view of the machine (or human)". You also say that AGIs are similar to humans. So, your comment is not consistent with your answer. It's not strictly an opinion-based question. It's a philosophical question, where you can make assumptions (that can be wrong or not), and derive sound conclusions from those assumptions. Your answer is full of issues (some of them I've just mentioned, but I can mention others).

AI cannot change its final goal. It can only change its intermediate goals. For human, end of suffering and increasing happiness is our ultimate goal. But we do change our intermediate goals from time to time. But we simply cannot change our ultimate goal. It's innate like how the AI is designed the first time. The problem happens when we haven't carefully designed the ultimate goal for AI. If the ultimate goal is to create more sandwiches, it can want to change its code to efficiently make more sandwiches. It's wrong to say that changing code will be given a negative score!

Strong-narrow AI has reached important milestones recently, but, from what I can tell, we aren't even close to the creation of an AGI, and there are fundamental issues no one currently seems to have any idea of how to solve.
Regarding your question, the simple answer is: it depends on which AI is smarter.
(It's more nuanced than that, but right now the question is very general, which is probably apropos;)
I'd recommend reading William Gibson's Neuromancer trilogy if you're interested in AI-in-a-box (it's sort of about that) and also the more recent Quantum Thief Trilogy by Hannu Rajaniemi to get a sense of the mechanics of the issue.
There is a great deal of academic literature on this subject, but it will likely require a little bit of getting up to speed in terms of basic research into the AI field. Future of Life Institute may not be a bad place to start: https://futureoflife.org/background/benefits-risks-of-artificial-intelligence/


text:
What is expectation-maximization in machine learning?
While studying machine learning algorithms, I often see the term "expectation-maximisation" (or EM), and how it is used to estimate parameters, where the model depends on unobserved latent variables.
The way I see it, it is like a probabilistic/statistical way to make predictions (I think I'm confusing something but this is the way I see it).
Which made me wonder how exactly does EM differ from probabilistic classifiers like naive bayes or logistic regression? Is EM something that exists on its own or is it employed within machine learning algorithms? And, if we use naive Bayes, for example, are we implicitly using EM?

EM algorithm is a numerical method. It is not specific to any machine learning model. Common applications include hidden markov model and mixed Gaussians. The algorithm is not a classifier.
Logistic regression is a statistical model. You need to pick a numerical method for logistic regression.
Naive Bayesian is a statistical model. You need to pick a numerical method (if closed-form posterior distribution not available).

You will need to understand maximum likelihood before you tackle the EM algorithm. Briefly, the maximum likelihood is a method for estimating the most likely parameters in your model. For instance, if you have a sequence of randomly and identically distributed Gaussian random variables, the maximum likelihood estimator for your Gaussian mean is just the sample mean.
When you fit a logistic regression, you use a numerical method (e.g. iteratively reweighted least squares) to maximise your log-likelihood function.
Everything is good, but it's not possible to maximum the likelihood directly if you have some latent variables. A common example is modelling your DNA sequences with hidden markov model, where the latent state is unknown.
You can't do it because you don't know the latent variables. If you do, they are not latent by definition.
EM algorithm is a numerical method to estimate maximum likelihood when you have latent variables. The mathematics is complicated but the idea is simple. You start off with some initial values for your parameters. You update your parameters and latent variables, and the algorithm converges when the change in the log-likelihood function falls below some threshold.