text:
When the AI singularity takes over, what will there be left for us to do?
Since the first Industrial revolution machines have been taking the jobs of people and automation has been a part of human social evolution for the past 3 centuries, but all in all these machines have been replacing mechanical, high-risk and low-skill jobs such as a production line of an automobile factory.
But recently with the advent of computers and the improvement of AI, and the quest to find a Singularity (that is, a computer capable of thinking faster, better, more creative and cheaper then a human being, capable of self-improving), our future will lead to the replacement of not only low-skill workers, but high-skill as well. I'm talking about a future not too far when AI and machines will replace artists, designers, engineers, lawyers, CEO's, filmmakers, politicians, hell even programmers.
Some people get excited by this, but honestly, I get somewhat scared.
I'm not talking about the money issue here, although I'm not a fan of the idea, let's suppose the universal income has been implemented, and suppose it works fine. Also not talking about the "Terminator's world where machines will wage war against humans", let's suppose too they are completely friendly forever.
The issue here is the one of motivation for us humans. When the AI singularity takes over, what will there be left for us to do? Every day, all day long?
What are we going to do with our lives? Suppose I love to paint, how can I live my dream of becoming a painter if the computer makes better art then I will ever be able to do? How can I live knowing that no one will care about my paintings because they were made by a mere human? Or the real me for example (I, Danzmann), I love to code, learned my first programming language with 9 years old and been on it ever since then, it looks sad to me that in some years I may never touch on that again. And that goes for all the professions, everyone is passionate about something, and with the singularity, every single one of them would just have to cease to exist.
So, what are we going to do in this future? What am I going to do? Play golf all day, every single day for the rest of my life (A Hyperbole figure of speech, but you get my point)?
Also, what is going to be the motivation for my children? What am I going to tell them to go to school? When someone asks "what do you wanna be when you grow up?", and the inevitable answer is nothing.
If highly advanced AI takes control of all scientific research, then what is the reason for us to learn? What is the reason that us humans would need to dedicate decades of our lives to learn something if that knowledge is useless, because there are no more jobs and the scientific research is done solely by AI?

Independence Day - ??? to Aliien "What do you want us to do?" Alien : "Die !!!!!!!!!!!!!!!!!!!!!!"

Given all your assumptions about AI turn out to be true, we would have some kind of utopia, where no one has to work, and there is plenty of everything. Fair enough. Your other assumptions is about human nature, and that is where I'd challenge your conclusion: Just because there are computers better than humans at some task, that does not automatically take all enjoyment from doing it.
I have three arguments in favor of my stance.

There already are computers better than humans at checkers, chess, backgammon, starcraft, mastermind, go,.. and many more. Yet these games still get played, even if no human can hope to ever be as good as a computer.
There will be domains where the evaluation of quality is so vague or personal, that the notion of being "better" is useless in any objective sense. I am thinking mainly about art. Playing into argument one, photo cameras are already better "painters" of reality than humans can ever hope to be, yet people still paint. And their paintings gets appreciated, even the photo-realistic kind.
I'd say that the whole mindset of "if someone is better than me at x it is not worth doing x" will have outlived its lifetime very shortly. Society didn't always spin that way I feel, it is largely due to the influence of the North American way of life to always strive to be #1 and everything below that being trash. Globalization already puts this way of thinking at risk, with many young people being disillusioned or even depressed because, flippantly put, "whatever you do, there is always an Asian kid who does it 10 times better". We don't have to wait for AI to outshine us, the rest of the world already does. As a consequence, we need to adapt our way of approaching that fact, stop seeing it as diminishing to our worth, and move on.

As a closing note, I also see it as a problem to the general population that within a short time we essentially have to change a very substantial part of our world view, AI being better than us, us not having to work anymore etc. All the economical revolutions in the past, the neolithic, the industrial, and most recently, the digital, had a longer transitional period where people could grow accustomed to the new world. And even with that transition it was hard enough for many people. Yet, most dealt with it, and later generations can hardly imagine a world where the new change doesn't exist yet, and I personally don't see why the next revolution should be any different.

We are biological beings. We will continue to like whatever activates opioid receptors and we will continue to want whatever activates dopamine receptors in the nucleus accumbens. Food, drinks, sex, social dominance, altruistic acts, novelty, drugs of abuse, physical mastery, procreation, socializing, nice sunny weather, sleep when tired, etc, will continue to be rewarding and motivating as long as we have brains. A few links to review papers on the neurobiology:
See also this paper Pleasure Systems in the Brain or this one Dopamine in Motivational Control: Rewarding, Aversive, and Alerting for more details regarding this topic.
I personally enjoy playing basketball, even though I would not stand a chance against NBA players, and rock climbing even though using a ladder would be much more efficient. I do not get paid for either.

Also, what is going to be the motivation for my children? What am I going to tell them to go to school? When someone asks "what do you wanna be when you grow up?", and the inevitable answer is nothing.

I disagree. Schools will evolve. Children will still need to learn social skills and make friends. At the very least, they will need to learn how to use or interface with the computers that do everything. They will still need to learn to be better human beings by reading humanities. I don't think they will be told "The computer will now read Dostoevsky on your behalf, it is MUCH BETTER at reading, you know". There may be jobs where the job description contains "by a human", such as handcrafts, psychotherapy, etc. They can grow up to be whatever they want, human beings are not defined solely by their professions. I am sure you are not just a coder, nothing more.

Starting from Arne's point on photography:
I'd like to point out how photography changed painting. You can notice that classical painting that tried to be photorealistic stopped to be relevant when photography started, and that several modern movements started, like more abstract paintings, surrealism, or cubism.
One can see art as a medium to brag "i'm better than you". They could say "i'm better than you at perfecting realism technique" until photography appeared. Now, on this aspect, what do artists brag about?Sometimes by claiming how progressive they are when sculpting sex toys?
By claiming that their white sphere is "too deep for you"?
I'm not an art historian, though, this is how i feel it evolved to current modern "art" where skill has been replaced with provocation.
Photography might be a good starting point to think about how people react to a technology that dwarves them and they still want to be #1.
-- here's a point to note: people want to have a good identity
Paul Lafargue once wrote The right to be lazy, where he argued how mankind would intellectually evolve if people worked less as machines could work for us. One of his argument was that people se sees as intellectual models, Greek philosophers, didn't work, and had more time to think.
I think he misses a point: not everyone is able to enjoy philosophical time spending.
Not unlike how we were deeply wrong when we expected internet to open our minds towards a great age of knowledge.
Remember that people are not utopically intelligent, that you have stupid people, and humans basically follow their instinctive needs.
This is why 20 years after we started using internet, we have lolcats, trolls, gated communities, and more intellectual intolerance (think sjw, alt right movements).
-- point #2: not everyone is able to be included in a "everyone will be bright" utopia
The key is one's identity. I think that everyone wants and need to have a "positive identity", they look for one to compensate for their weaknesses.
This is, for me, why poorer people tend to show off, and successful people don't tend to brag.
So, how do you forge your positive identity when you don't have much for yourself?
I see a few things that happen around me:
- be a rebel: to distinguish yourself, you become an opponent; but in fact you just mirror the main trend, while bragging about how independant you are. I'm opposed, so i'm free. You can have a range from IA free stance (like people who didn't want to use the internet, some of the ones who use free software), to a more aggressive movement.
- be conservative, pious: maybe in reaction to a society that changes and becomes too progressive for some, i see people becoming conservative, this is still a rebellious trend, and i see the rise of conservative vote (nationalism) or religion (buddhism, christianism, islam) as a reaction. I follow traditions, so i'm independant from your novelties. Religion is always a solid value when society changes.
- be hyperprogressive: same reaction as previous point if you think that society is too conservative. It's a rebellious stance when you have conservative people in front of you. I'm a step ahead everyone, look at how avant-gardiste i am.
-- point #3: if you don't excel in a field, be a rebel. Or: if you can't follow, step aside, don't follow the stream.
So you have no work to do anymore, plenty of food grown by IA controlled drones, all material needs fulfilled, and no interest in thinking too much.
What do people do when they have too much time?
Simple: they fill their natural urges that are not related to material needs and food.
Some examples: eating, playing games, having sex, arguing online, getting wasted. Basically everything that has been labelled as a sin.
You'll also have forms of mental disorders you see in people who feel worthless. And many more will feel worthless.
This also means that you'll need more jobs to keep these people entertained, or taking care of the suffering ones.
-- point #4: if life gets too easy, people become sinners
By these few examples, here rises a question: if "mediocre" people tend to get their shiny identity by opposing the mainstream society, how will the mainstream society look like after the rise of AI?
So i see three reactions from people:
- be relevant after AI's rise, the ones who can follow
- become a rebel, the ones who can't follow but still want to appear relevant
- be neutral, the ones who fill their human urges
And in general, people will do a mix of the three.
Mankind, with the help of AI which can provide answers to basically anything, will provide new questions, new projects, new frontiers to explore. Many persons will still be a bit relevant.
AI will become mainstream, so everyone will be more or less opposing it, while enjoying its benefits (think about people who claim to be technology/money independant but have an iPhone).
People will still argue online and giggle at cute cats doing weird stuff. Maybe more, because they have more free time.
In conclusion, if AI becomes relevant, expect a world where more people have too much time on their hands.
I find this conclusion a bit deceiving, after all I thought and wrote. :O

What I find interesting is that hyperrealism emerged even with the advent of photography - and it still thrives. It also has scientific illustrations. In fact, a few days ago I read a text by a biologist who was a professor in a scientific illustration course who said that, even with today's imaging technologies, scientific illustration still has its advantages. Among others, that of "forcing" the researcher-illustrator to pay attention to minute details - which could be overlooked for the comfort of a photograph (she specifically referred to scientific illustrations of insects).

Personally, I have great admiration for scientific illustration and plan to take a course on it soon. I intend to do illustrations for my own hobby.

You're assuming the AI has motivation however that's not really the case, intelligent software will do whatever its been designed to do but that's all it does, it's not a trained animal, it doesn’t have instincts for survival, reproduction or self-determination because there's no reason to add those functions. So effectively AI is just another tool, one that reduces the mental load of doing a task, so rather than digging a trench with one machine you can order a fleet of machines to dig a canal system. Or more realistically you’ll spend hours in stakeholder meetings discussing the need for canals, justifying the cost, explaining the benefits, considering the risks, applying for permits, having more discussions with the council and their consultants, then special interest groups, until finally your order the machines to kill them all because GODDAMNIT THIS COULD HAVE BEEN DONE ALREADY!

Instead of posting a specific answer, I'm going to point you to Hannu Rajaniemi's meditation on this subject in the Quantum Thief Trilogy.  Here's why:

Artists can have profound insights.  This may be demonstrated by Philip Dick writing about Evolutionary Game Theory in Do Androids Dream of Electric Sheep about 5 years before the field was formalized. (For my money, this is still the most important book about AI.)
Many authors have written about the post-Singularity scenarios, but Rajaneimi is the only one I am aware of who is a Cambridge trained Mathematician with a PhD in Mathematical Physics, which I tend to believe makes him well qualified to grapple with the inherent complexity of the subject.

In today's society, money is a big key motivator, not only does it provide necessities of life it can buy luxury and indulgence. In a world where all needs (even complex ones) are met for free by the emergence of technology like the singularity, it is easy to say there will be no motivator.
But, instinctually, as children our motivations aren't to accumulate money, you don't see children bored with life. As a child, I was happy to learn. Others were happy to dance or swim, read or paint. In the end, people are social excitement seeking beings.
Today's socioeconomic conditions create boredom in some respects doing the same job for years is arguably worse.
I don't think motivation will be an issue.


text:
What is the difference between memetic algorithms and genetic algorithms?
What is the difference between memetic algorithms and genetic algorithms? Is an individual's lifetime a learning part of memetic algorithms?

A genetic algorithm is an algorithm, based on natural selection (the process that drives biological evolution), for solving both constrained and unconstrained optimization problems.
A memetic algorithm is an extension of the concept of a genetic algorithm that uses a local search technique to reduce the likelihood of premature convergence.
The paper A Comparison between Memetic algorithm and Genetic algorithm for the cryptanalysis of Simplified Data Encryption Standard algorithm compares both approaches.
To answer your last question, yes, an individual's lifetime still plays a part in memetic algorithms because the objective here is to avoid premature convergence.

source: Stack Exchange

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

sort: votes


text:
How do I solve the knapsack problem using the hill climbing algorithm?
I need to solve the knapsack problem using hill climbing algorithm (I need to write a program). But I'm clueless about how to do it.
My code should contain a method called knapsack, the method takes two parameters, the first is a 2xN array of integers that represents the items and their weight and value, and the second is an integer that represents the maximum weight of the knapsack. I can assume that the initial state is an empty knapsack, and the actions are either putting objects in the Knapsack or swapping objects from in and out of the knapsack.

I think there are at least three points that you need to think before implement Hill-Climbing (HC) algorithm:
First, the initial state. In HC, people usually use a "temporary solution" for the initial state. You can use an empty knapscak, but I prefer to randomly pick items and put it in the knapsack as the initial state. You can use a binary array to save the "pickup status" of each item such that if $a_i=1$ then you pick the $i$-th item and if $a_i=0$ then you don't pick the $i$-th item.
The next is the heuristic function. A function that evaluate your current state. Actually, you can define it freely (like the initial state) as long as the function can evaluate which state is better than the others. You can use a simple one:
$$
h =
    \begin{cases}
      -1, & \text{if}\ \sum (w_i \times a_i) > \text{MaxWeight} \\
      \sum (v_i \times a_i), & \text{otherwise}
    \end{cases}
$$
with $w_i$ and $v_i$ is the weight and the value of the $i$-th item respectively. One of the disadvantage of this function is if you have more than one invalid state (a state with the total weight is more than the limit), they have the same value, which is $-1$.
The last is the method to generate the neighbors of the current state. Once again, you are also free to define the method that you will use. I think your proposed actions are good enough:

reverse the status of an item (1 to 0 or 0 to 1). That means I add or reduce the item on the current state.
swap the status two items that have different value. Formally swap $a_i$ and $a_j$ with $ i \neq j$ and $ a_i \neq a_j$. That means I swap the item that I picked before with the item that I didn't pick before

Then, after you define everything you can run the algorithm as explained in Wikipedia:
currentNode = startNode;
loop do
    L = NEIGHBORS(currentNode);
    nextEval = -INF;
    nextNode = NULL;
    for all x in L
        if (EVAL(x) > nextEval)
            nextNode = x;
            nextEval = EVAL(x);
    if nextEval <= EVAL(currentNode)
        //Return current node since no better neighbors exist
        return currentNode;
    currentNode = nextNode;

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


text:
What does deep learning offer with respect to standard machine learning?
I've been reading a lot about DL. I can understand to an extent how it works, in theory at least, and how it's technically different from conventional ML. But what I'm looking for is more of a "conceptual" meaning.
Let's say you're designing a self-learning system, why would you choose DL? What are the main performance advantages that DL offers? Is it the accuracy, speed, power efficiency, a mix of all of them?

Deep learning allows you to solve complex problems without necessarily being able to specify the important "features" or key input variables for the model in advance.
To give an example, a problem that may be easily tackled without deep learning could be predicting the frequency and claim amounts of insurance vehicle claims,  given historical claim data that may include various attributes of the policy holder and their vehicle.  In this example, the "features" to be specified in the model are the known attributes of policy holder and vehicle.  The model will then attempt to utilise these features to make predictions.
On the other hand,  facial recognition is a problem more suited to deep learning algorithms.  This is because it is difficult to manually identify what combinations of pixels may be important features to include in a conventional machine learning model.  A multi-layered neural network however has the potential to identify/create the important features itself, which may include for example eyes, nose and mouth, and then utilise these features to recognise faces and other objects.

thanks a lot. So when we compare a specific DL algorithm to a non-DL algorithm, can we say it's better because it's more accurate? Or because it made solving the problem possible?
Also if we compare 2 DL algorithms, what parameters do we prioritize? Accuracy or speed? Or perhaps other factors, say like memory or power efficiency? Or perhaps even a mix of different parameters for the specific application?

Deep Learning these days mean a lot of things to a lot of people, its quickly becoming a buzz-word. But so far it still retains two very important conceptual properties:
Does away with most feature engineering work. This was mentioned in the answer above, but this is very important. It really saves a lot of work.
Allows you to make maximal use of unlabelled data. This is strictly speaking available to other approaches, not just Deep Learning, but its in DL that this really took off. And typically labelled data is very hard to get while unlabelled is all over the place. Things like denoising autoencoders and Restricted Boltzmann machines are just wonderful.

Deep learning allows you to not know the answer in order to ask the program a question.  Their main benefit is their finite ability and flexible nature.
The problem with procedural programing to solve problems is you have to know what the computer needs to do in order to solve the problem.
What deep learning does is remove the requirement of the programmer to know how to solve the problem by having them only need to know what the computer needs to know.
This is the entire premise of neural networks. The programmer writes the program for data points required to be known in order to solve a particular problem.
The computer is given an input it comes up with an answer.
If it's answer is wrong it needs to make the answer it gave less likely and the right answer more likely.
The goal is to get the computer to always get the right answer. If the computer always gets the wrong answer then the neural network it too small.
What deep learning is, is a neural network that is deep.
To answer this you need to know how a neural network is.
A neural network is based on a neuron:

Finite number of `boolean' inputs (More then one)
A weight is attached on each input to define how important
often though as a float between -1 and 1, but it's just a percentage of how likely each input changes the answer.
One boolean output

A neuron can be a class or function the implementation really doesn't matter. The weight of each input changes as more answers are asked and responses verified.
The depth of a neural network is has one layer  when there is one row of neurons between the input and output.
two layers when a few neurons make decisions on inputs and a final neuron or multiple neurons make decisions biased on those neurons.
A neural network is called deep when there are at least four layers of neurons? (do some research don't take my word for it ^_^)
The disadvantage of deep learning is that it's ability is finite.
There is no way a deep neural network by it's self to get smarter then it's programed to be.
It has a intelligence curve similar to root time if it isn't improved somehow.
This leads to the other problem in neural networks. While the programmer has no need to know how decisions are made by the computer they still need to know what questions or nodes need to be added.
The reason this is a problem is if the nodes responsible aren't there the program will be wrong in strange cases and have no way of correcting this on it's own. The larger the network the harder it is to solve these kinds of problems.
This will lead to an inevitable solution to have the computer self improve by some type of generative algorithm.
This has it's own breadth of problems as if not built properly could grow into something unintended which wastes time and money if it fails quickly, and could be potentially dangerous if it appears to work and doesn't.
The answer to AI will be a combination of deep neural networks some generative type programing and some new ideas and innovations.

Shallow layered networks are less capable of recursive or extended abstraction necessary for the kinds of generalization needed to handle complex tasks common in real world applications.
It is the same problem as was discovered nearly a century ago in the analog world.  One can try to reduce the components in the old tube radio design to lower its cost, but tuning and amplification had a minimal number of independent operations required.  After decades, the basic functions are integrated into one wafer of silicon, yet no single transistor can accomplish the entire task.  The more complex the externality controlled, the more sophisticated the control system, whether or not it is a learning system.
In the basic NN architecture most familiar to those in machine learning, in general, width is driven by degrees of freedom in the input and output regions.  Depth is driven by the need to approximate nonlinear control complexities.

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


text:
What roles knowledge bases play now and will play in the future?
Nowadays, artificial intelligence seems almost equal to machine learning, especially deep learning. Some have said that deep learning will replace human experts, traditionally very important for feature engineering, in this field. It is said that two breakthroughs underpinned the rise of deep learning: on one hand, neuroscience, and neuroplasticity in particular, tells us that like the human brain, which is highly plastic, artificial networks can be utilized to model almost all functions; on the other hand, the increase in computational power, in particular the introduction of GPU and FPGA, has boosted algorithmic intelligence in a magnificent way, and has been making the models created decades ago immensely powerful and versatile. I'll add that the big data (mostly labeled data) accumulated over the past years is also relevant.
Such developments bring computer vision (and voice recognition) into a new era, but in natural language processing and expert systems, the situation hasn't seemed to have changed very much.
Achieving common sense for the neural networks seems a tall order, but most sentences, conversations and short texts contain inferences that should be drawn from the background world knowledge. Thus knowledge graphing is of great importance to artificial intelligence. Neural networks can be harnessed in building knowledge bases but it seems that neural network models have difficulty utilizing these constructed knowledge bases.
My questions are:

Is a knowledge base (for instance, a "knowledge graph", as coined by Google) a promising branch in AI? If so, in what ways KB can empower machine learning? How can we incorporate discrete latent variables into NLU and NLG?
For survival in an age dominated by DL, where is the direction for the knowledge base (or the umbrella term symbolic approach)? Is Wolfram-like z dynamic knowledge base the new direction? Or any new directions?

Am I missing something fundamental, or some ideas that address these issues?

I worked for a major IT company that at one time marketed AI products. The problem with a neural network approach is that there isn't a knowledge base per sey. So without any sort of rules, it is impossible for a neural network to explain "why." Training a neural network, then formulating rules that duplicate the network would give you such answers. But there isn't any form of machine learning that is now capable of such behavior.

I learned from this podcast(Knowledge Base Construction, with Sebastian Riedel) that knowledge base is still not applicable for NLP models.

First of all, I would like to point out the main differences between knowledge base and (Deep) machine learning, specially when the main focus is on "AI" not "Data Science":

NNs are like a black box; Even if they learn a dataset and gain the power of generalization over the problem domain, you'd never know how they are working. if you scrutinize the details of the developed model, all you see are digits, weights, poor and strong connections and transform functions. the "feature extraction" step before the training phase literally tells you: "hey human, enough with your complicated world, let's start zeros and ones". In the case of DL, it is worse! we do not even see what the selected and effective features are. I'm not a DL expert but as much as I know, DL's black box is darker! But knowledge bases are written in a human-friendly language. after a knowledge accumulation phase, you could see all the connections between the entities, and more important, you could interpret those connections. if you cut a wire in a knowledge base, your model will lose just a bit of its power, and you know what exactly it will lose; for example disconnecting the "Pluto" node from the "solar system" node, will tell your model what deGrasse Tyson told us. but in a ML model, this might turn it into a pure useless one: what happens if you manipulate the connection between the neuron number 14 and 47 in a NN model used to predict which planets belong to the solar system?!
ML models are merely an inscription of the data. They do not have the power of inference, and they don't give you one. knowledge base is on the other hand capable of inference from the prior knowledge as you indicated in your question. It is shown that DL models that have been trained with say image classification data, could also be applied to voice detection problem. But this doesn't mean DL models could apply its prior knowledge in the domain of images to the domain of voices.
You need kilos of data for traditional ML algorithms and tons of data for DL ones. but a single instance of a dataset will create a meaningful knowledge base for you.

There are two main research topics in NLP: machine translation and question answering. Practically it has been shown that DL works significantly with machine translation problems but acts kind of stupid in question answering challenge, specially when the domain of topics covered in the human-machine conversation is broad. Knowledge bases are no good choice for machine translation but are probably the key to a noble question answering machine. Since what matters in machine translation is only the translated version of a text (and I don't care how on earth has the machine done that as far as it is true) but in question answering problem, I don't need a parrot who repeats the same information I gave it to him, but an intelligent creature who gives me "apple is eatable" after I tell him "apple is a fruit" and "all fruits are eatable". ML models are used to elicit underneath patterns from the dataset (translation) while knowledge bases are used to extend the domain of knowns. ML models nitpick, KBs explore!

All fruits are edible, so long as they are not metaphoric, such the fruits "of one's labor".  (Then again, we could use "devour" in a metaphoric sense, such as when one devours a "tasty" stack answer and digests its contents;)

Although asked over 3 years ago, the question is still interesting and while I agree with the original answer, a lot can be added to it.
First, I'd like to point out that the term "knowledge base" is very ambiguous and it means different things to different people. For example, there is no sharp distinction between knowledge base and neural network. By now NN can be so large that it essentially encodes knowledge as GPT does. So the distinction becomes a question of interface. And NN are no longer as opaque since many new techniques are available to probe the knowledge inside NN. Even more fundamental dustinction between symbolic and neural reasoning becoming less important when hybrid AI combines both in a intertwined fashion. So the historical divisions were largely about technologies and not the essence of AI.
Second, when it comes to NLP there is a fundamental distinction between language as surface form of information used for communication and knowledge as deep information which cannot be accessed directly even with traditional database technologies. That fundamental divide makes the historical differences even less relevant today. NLP is where that interplay between surface and deep forms was at the forefront of AI but the same is now happening with vision and planning. The question becomes - How do we architect the interface between deep knowledge (however it is represented) and surface communication? At the moment the natural language seems to be the only viable answer. So, for example there is effort to develop a natural language interface to replace plethora of query languages use by systems.
My personal prediction is that natural language will slowly evolve to include variety of technical languages and multimodal interactions. But it is not clear at all how this will happen.

It seems that Automated Knowledge Base Construction would be unfavorable.
As Matt Gardner noted in NLP Highlights in 2019 that:

Um, but I know that Google, for instance, canceled their knowledge base construction project because there wasn’t high enough precision to actually be useful in their product.

The canceled project Knowledge Vault is an Automated Knowledge Base Construction(AKBC) project launched in August 2014.
There are three methods to integrate knowledge into the neural networks: 1) pre-trained models like BERT, ELECTRA; 2) retrieval-augmented generative model; 3) flesh out the triples into natural text as that in KELM.
In a 2020 paper REALM: Integrating Retrieval into Language Representation Models, they utilized a retrieval rather than a knowledge base to enrich neural networks. And the best systems in the NeurIPS 2020 EfficientQA competition all relied on retrieval.
Knowledge bases that are actively being maintained receive a lot of annotation and curation, as stated in that podcast. If curation and annotation are not sufficient, the knowledge base maybe cannot apply in AI.


text:
Using AI to interpret the nature a specific input and use the correct model
How would one go about building an AI that is capable to look at any kind of input and then identify what is the nature of this data?
For example, an AI that is able to do image classification, NLP and react to some other sensors. Is it possible to build an AI that will be able to identify what kind of data it is seeing such that it can send the data to the correct model for it to be treated, similarly to how the human brain knows to send visual information to the visual cortex and auditory information elsewhere?
In a simple scenario, I think we can get very good performance by having a cascaded image classifier. For example 2 layers, the first layer identifies if the image contains a dog and a cat. The next layer, has two different CNNs, one trained to identify the breed of dog and the other one for cats. That way once we identify that we have a dog, the image can be sent to the correct CNN. A CNN that is trained specifically to detect the breed, thus being much more robust that a more generalized CNN. Kind of like a professional in the field. First, the human identifies that he is looking at a dog, then he consults a professional to ask him the breed.
I would like to extend this idea to be able to identify various kinds of data sources that do not resemble each other at all. Various input. Are there any models that can do this?

Because of all the inputs you could give are obviously a list of number. It will only require some CNNs and fully-conncted, that classify what kind of data is it and then pass the data to the right stack of layers. The only tiny problem is that all the the things you pass into the network must always be a matrix(to handle also images) with a certain size. So even if you  pass only a tiny chunk of data you must transform it into a  fixed-size matrix and fill all the empty places with 0s, and that could bring to an accuracy lack.
But to solve that you could also try to slide over your data a tiny CNN-RNN to handle different sizes .

Fully convolutionnal Network don't require a fixed input size either !


text:
Which machine learning algorithm can be used to identify patterns in a dataset of the cache performance of a CPU?
I need a machine learning algorithm to identify patterns in a dataset (saved in a CSV file) that contains details of the cache performance of a CPU. More specifically, the dataset contains columns like Readhits, Readmiss or Writehits.
The patterns the algorithm identifies should be helpful in the following ways.

help the user to increase the performance of the workload next time,
help to identify any problems based on the features, or
help the user to predict future data values or future events that may occur based on the patterns.

Which ML algorithms can I use?

I would personally go with k-means clustering. Its designed for problems like this.

You're basically looking for is unsupervised learning (UL).  There are a lot of UL techniques around, but I'm not sure you'll find one that does exactly what you want with no user input at all. Still, if you skim the literature on these approaches, you may well find something useful.
One option is DBSCAN, a very popular clustering algorithm that does not require the user to input an initial target number of clusters (something that most clustering algorithms do require).  But even then, you still have to give the algorithm values for epsilon (a distance used in calculating the clusters) and minPts (the minimum number of points required to constitute a "dense" region).
You might also look at self-organizing maps, an approach to unsupervised learning for neural networks.
Some other search terms that might lead you in a useful direction include "data mining" and "knowledge discovery in databases" (KDD).

Restricted Boltzmann Machines (RBMs) can identify patterns in a CSV file without the user specifying any conditions. They are well fitted for generating, "distributed and graded representations," of a, "complex set of features composing real high-dimensional data is crucial for achieving high performance in machine–learning tasks."1
Because the CSV format is specifically designed to represent instances in rows and a static set of attributes in columns, the set up of the training is straightforward. If the goal is to identify temporal patterns, a windowing strategy may be required.
K-RBMs are a merger of k-mean approaches with RBMs. The choice of approach has much to do with what kinds of patterns are sought. The term pattern can apply to simple trends in numbers over time, common patterns found in textual columns, or complex patterns inferred from multiple columns.
References
[1] Emergence of Compositional Representations in Restricted Boltzmann Machines, J. Tubiana, R. Monasson, 2017)
[2] Learning Multiple Non-Linear Sub-Spaces using K-RBMs, Siddhartha Chandra, Shailesh Kumar & C. V. Jawahar

First, you must classify each chunk of the CSV file and label it based on the current situation, like A) optimal situation B) critical.
Then you cluster your data with an unsupervised learning algorithm, like SOM or k-means, and then you simply classify the classes you will get.

I need a machine learning algorithm to identify any patterns in a CSV file

You want to do unsupervised learning. The Wikipedia definition of the same is:

Unsupervised machine learning is the machine learning task of inferring a function to describe hidden structure from "unlabeled" data (a classification or categorization is not included in the observations).

I shall recommend you to go through the list of unsupervised learning algorithms here and use the one which would fit your need.
If you're starting out, then I would recommend starting with learning the K-means clustering algorithm.


text:
Does artificial intelligence write its own code?
Does artificial intelligence write its own code and then execute it? If so, does it create separate functions for each purpose?

Does artificial intelligence write its own code and then execute it? If so, does it create separate functions for each purpose?

Artificial intelligence comprises more than one technique. Here you seem to be asking about machine learning, a subfield of AI which itself contains many subfields.
Self-modifying code is one of the (many) techniques used in some applications of artificial intelligence.  So, in that sense, the answer to your question is "yes".
In Neural Networks (NNs), for example, the NN isn't writing any code, it is just running through an optimization algorithm (and back-propagation) that incrementally changes some weights (or coefficients) such that when you enter a certain input, you get an output that's close to the desired output.
You also have genetic algorithms (GA) to evolve the weights of a neural network, as opposed to using back-propagation. GAs are closer to the idea of "an AI coding itself" (although not exactly).

Computers are able to write their own code without needing any intelligence -- see the Wikipedia entries for self-modifying code and metaprogramming. You do have to write the instructions for how the computer should program itself, and there's a stigma against doing this because (a) it makes it hard to reason about what your program is doing when it's changing its source code, and (b) the solution is usually slower than just hardcoding in what you want the program to do in the first place. But it is possible, and programmers have done it (usually for maintainability or aesthetic reasons).
Some AI researchers are interested in Genetic Programming though. Genetic Programming is a subset of evolutionary algorithms and Wikipedia provides a good summary of how they usually work:

Step One: Generate the initial population of individuals randomly. (First generation)
Step Two: Evaluate the fitness of each individual in that population
Step Three: Repeat the following regenerational steps until termination (time limit, sufficient fitness achieved, etc.):

Select the best-fit individuals for reproduction. (Parents)

Breed new individuals through crossover and mutation operations to give birth to offspring.

Evaluate the individual fitness of new individuals.

Replace least-fit population with new individuals.

The "individuals" in this case are randomly-generated computer programs, which are then tested against a fitness function.
The Wikipedia page for Genetic Programming claimed that these programs are usually represented by tree structures, though there has been some experiments in using non-tree structures as well.

I think the answer is most likely no, not in the most notable examples of AI programs (such as Machine Learning). There is a set of AI techniques which involve automatic programming, but in that scenario, we have a computer program which automatically codes another program (we can call it "target program"). But the target program is not the program which perfoms the coding; so technically speaking, no, it does not write its own code. This is an important difference; the programmer still has the task to write the code-generator.
If you are interested in automated coding, though, the most notable example is Genetic Programming, a technique which uses an evolutionary algorithm to breed computer programs. As you can see, we have an AI which produces as a result a computer program (which may be or not an AI program); it is not interacting with its own code.
As a final remark, note that automatic coding is a pretty vague term and not all techniques are AI-related (for instance, back then, the first compilers were seen as a form of automatic programming). The most relevant techinque to your question is probably Program Synthesis.


text:
Why can't I reproduce the experiments in the original paper that introduced the Firefly Algorithm?
I have been trying to reproduce the experiments done in the original: Firefly Algorithm for multimodal optimization (2010) by Xin-She Yang, but so far unsuccessfully. For the moment being, I'm okay if anyone points me in the right direction.
I wrote the algorithm as specified in the paper in C++ programming language (I also downloaded several other implementations from the internet for comparison purposes) and used the very same parameters as specified in the paper (a random steep of 0.2, an initial light intensity of 1.0 and a light decay coefficient of 1.0, a population size of 40). I used the two bright update equations given and for De Jung test function (as for example) a number of dimensions of 256 in a search domain in [-5.12, 5.12] as referred to in common optimization literature and in the paper.
In the paper, the algorithm converges very quickly, as can be expected, since this is a very simple test function. However, neither my implementation nor any code I have downloaded converges with that parameters.
My final questions are:

Am I doing something wrong with the experimental methodology or am I using the wrong parameter settings (may be something different than the original paper)?

Do anyone knows where can I find a code sample of the Firefly Algorithm that I can use to reproduce the experiments of the mentioned paper?

Please, notice that there may be a lot of variations of this algorithm that can produce better results, but right now I'm only interested in reproducing the experiments of the so-called paper.

I wrote some python code to reproduce this paper's purported results. My code very efficiently optimizes simple smooth functions like bowls, but does not come close to reproducing the paper's claimed results on more complex functions, including with the parameters the authors report. I think that, since both @Jairo and I were unable to reproduce the results from the information in the paper, independently, it is likely that something is wrong with the paper.
It may be possible to reproduce the paper's claimed behaviors using a library like py_swarm, however the paper is using a Firefly Algorithm (already a rarer form of a PSO), and is using a home-brew variant of that algorithm, so my guess is that rolling your own is required, as we both did.
Additionally, I find the paper's claims fairly unlikely. For example, in section 4.1, they claim to converge on the global minimum of a function with many local minima in just 10 iterations. It seems to me like most of the time the fireflies will quickly converge on the bottom of one of the gullies in this function, and get stuck there. This is also what I observe in my replications. I suspect the authors may have cherry-picked their results from the best runs without reporting this, or have omitted some key detail from the paper.
Here is my replication code, in case someone else wants to try to reproduce this:
from math import sin, pi, exp, sqrt
from random import random
from copy import deepcopy

def michalewiz_objective(x):
    result = 0
    for i, x_i in enumerate(x):
        result -= sin(x_i)*(sin(i*(x_i**2)/pi))**20
    return -result

def bowl_objective(x):
    return -sum([x_i**2 for x_i in x])

pop_size = 40
max_generations = 10
alpha = 0.2
gamma = 1
beta_0 = 1
d = 2
I = michalewiz_objective
#I = bowl_objective

def move(firefly, other_firefly):
    radius = sqrt(sum([(firefly[i] - other_firefly[i])**2 for i in range(0, len(firefly))]))
    for i, value in enumerate(firefly):
        firefly[i] += beta_0*exp(-gamma*radius**2)*(other_firefly[i] - firefly[i])
        firefly[i] += alpha * (random() - 0.5)

# Using 4*random() to match Figure 3's apparent spread.
fireflies = [[4*random() for i in range(0, d)] for j in range(0, pop_size)]

for generation in range(0, max_generations):
    new_fireflies = [deepcopy(firefly) for firefly in fireflies]
    for index, firefly in enumerate(fireflies):
        for other_firefly in fireflies:
            if I(other_firefly) > I(firefly):
                move(new_fireflies[index], other_firefly)
    fireflies = new_fireflies
    best = max([I(f) for f in fireflies])
    mean = [sum([f[0] for f in fireflies]), sum([f[1] for f in fireflies])]
    print(best)
    print(mean)


text:
When does backward propagation occur in n-step SARSA?
I am trying to understand the algorithm for n-step SARSA from Sutton and Barto (2nd Edition). As I understand it, this algorithm should update n state-action values, but I cannot see where it is propagated backward. Can someone explain to me how that works?

The important part, where you can see a single reward value is used for $n$ different updates, is the part where a sum of $R_i$ values with $i$ ranging from $\tau + 1$ to $\tau + n$ is assigned to $G$.
So yes, the outer loop of the algorithm always does at most one update per iteration, but for that update it uses multiple previously observed $R_i$ values. Each of those $R_i$ values is used for multiple updates (not multiple updates at the same time, but multiple updates spread out over different iterations).


text:
Which parsing algorithm can I use for NLP question answering system?
I am currently working on my last project before graduating. For this project, I have to develop a Natural Language Question Answering System. Now, I have read quite some research papers regarding this topic and have figured out everything except for the parsing algorithm.
The NL Q-A will be programmed in Python, and I will use the spaCy library to finish this project. However, I am stuck when it comes to parsing algorithms. I managed to reduce the parsing algorithms to 3:

Cocke-Kasami-Younger (CKY) algorithm
Earley algorithm
Chart Parsing algorithm

Note: I know that all three algorithms are chart parsing algorithms. I also know that the Earley algorithm is context-free, but has a low efficiency for a compiler.
What I don't know is: Which one should I pick? (Please, provide a non-subjective answer to this question!)
The system is for a specific domain. The answer to the natural question will be displayed in the form of the result of a calculation of some kind. Preferably in the tabular or graphical form.
I have done my research. However, I probably do not understand the algorithms properly, which makes it difficult to make a selection.The algorithm should be efficient and perhaps outperform others.

I have been reading and reading, and found answers to almost all my questions.
I am sticking to Earley algorithm, given that it offers a dynamic programming approach (CKY does the same). Both algorithms are chart parsing algorithms.
Earley is a context-free, top-down parsing algorithm, which makes it a goal-driven algorithm. From start symbol down. Furthermore, it is more efficient than the CKY algorithm.
Here are the slides that provide more info.

Use shift-reduce dependency parsing algorithm!

@kiner_shah thank you for your comment! I know SpaCy contains a shift-reduce dependency parsing algorithm. However,  why use shift-reduce depencency parsing algorithm over Earley? Couldn't find that answer. therefore had dropt it..

Dependency parsing will give you the dependencies between various words in addition to parsing and validating the sentence structure. Those dependencies can be used for relation extraction in the question, to understand what the question is. Earley or CYK parsing will just give you the parse tree. You won't be able to do much with that parse tree!


text:
How is Bayes' Theorem used in artificial intelligence and machine learning?
How is Bayes' Theorem used in artificial intelligence and machine learning?
As a high school student, I will be writing an essay about it, and I want to be able to explain Bayes' Theorem, its general use, and how it is used in AI or ML.

The blog post Bayes Theorem: A Real World Application describes an example of an application of Bayes' theorem.

Bayes theorem states the probability of some event B occurring provided the prior knowledge of another event(s) A, given that B is dependent on event A (even partially).
A real-world application example will be weather forecasting. Naive Bayes is a powerful algorithm for predictive modelling weather forecast. The temperature of a place is dependent on the pressure at that place, percentage of the humidity, speed and direction of the wind, previous records on temperature, turbulence on different atmospheric layers, and many other things. So when you have certain kind of data, you process them certain kind of algorithms to predict one particular result (or the future). The algorithms employed rely heavily on Bayesian network and the theorem.
The given paragraph is introduction to Bayesian networks, given in the book, Artificial Intelligence – A Modern Approach:

Bayesian network formalism was invented to allow efficient representation of, and rigorous reasoning with, uncertain knowledge. This approach largely overcomes many problems of the probabilistic reasoning systems to the 1960s and 70s; it now dominates AI research on uncertain reasoning and expert systems. The approach allows for learning from experience, and it combines the best of classical AI and neural nets.

There are many other applications, especially in medical science. Like predicting a particular disease based on the symptoms and physical condition of the patient. There are many algorithms currently in use that are based on this theorem, like binary and multi-class classifier, for example, email spam filters.
There are many things in this topic.I have added some links below that might help, and let me know if you need any kind of other help.
Helpful Links
 1. First
 2. Second

If you want to understand in one line how it's used in AI, I would say how you update your beliefs according to new data/information is calculated by Bayes' theorem.
Bayes' theorem says it will calculate the probability of something happening, given that some other thing has already happened. In this scenario, we already have some prior (prior belief or the probability of an event to occur without any new information). Now, we will simulate the event again and again and keep updating our probability of the event to occur with the information we collected.

Since you are a highschool student I will try to express it easier. It is a problem for a machine to make a decision if you haven't given that information to it before. You should think of every cases while programming. But sometimes there can be so many cases, here Data Mining, Neural Networks, Fuzzy Logic etc are used withing AI. It saves your time and system is learning itself with enough examples given at the beginning and deciding itself.
Here in this link you can find an article about Bayesian learning. Example on p.33 is what you need I guess.


text:
How do we decide which membership function to use?
In classical set theory, there are two options for an element. It is either a member of a set or not. But in fuzzy set theory, there are membership functions to define the "rate" of an element being a member of a set. In other words, classical logic says it is all black or white, but fuzzy logic offers that there is also grey which has shades between white and black.
Matlab Simulink Library is very easy to design and helpful in practice. And it has good examples on its own, like deciding about tips for a dinner looking at service and food quality. In the figure below, some various membership functions from Matlab's library are shown:

My question: How do we decide which membership function to use while designing a fuzzy controller system?
I mean, in general, not only in Matlab Simulink. I have seen Triangular and Gaussian functions are used mostly in practice, but how can we decide which function will give a better result for decision making? Do we need to train a neural network to decide which function is better depending on the problem and its rules? What are other solutions?

Do you have data to start with? I would select the member functions to approximately match the data you try to model. The function will depend on the problem you are trying to solve. The simplest way would be to plot your data and select the best match. However, this won't work with complex data space. How complex is your problem? What is the dimensionality of your problem space?

@zlobi.wan.kenobi Thank you for kind comment, and sorry for being late to reply. I dont have a data set to start with. My question was a general one. I was confused about how to choose membership functions according to different problems. For example, it can be "disease decision" from blood examination, building self resulting system looking at different values. There is pure fuzzyness in this problem, since examination values have a wide scale. I understood about rule making, I just wondered if there is another way while choosing most suitable membership funtion, beside using neural networks?

You can do some research on Adaptive Neuro-Fuzzy Inference System!

First I need to note that there is no prescribed/best way to choose the shape of membership function in fuzzy systems, that's the fuzziness in it. One could argue that the best way is to ask an expert in the field where you are going to apply your fuzzy solution but those are not always available.
With that said, fuzzy membership functions are used to describe the distribution of probabilities in real world for the variable you are trying to use in your fuzzy controller. That means you go out in the real world, you look at the system you are trying to control, you try your best to understand how it works and reacts to different outside changes and based on your findings you choose the shape that best fits. Or if you want you may call this process heuristic choice (something like that, I do not like theory very much).
On top of that you need to realize one important thing, the shape of membership function does not have big impact on the resulting controller behavior. The most influencing parts are the Fuzzy Rules and their inference methods you use in your controller, but that is a different topic. So no matter what you choose it will not make a big difference.
Gaussian functions are most commonly used because of the character of the world we are living in. Many people argue that everything in the world has Gaussian distribution (everyone is entitled to their opinion). And the triangular functions are used because they are the simplest alternative that is somewhat similar to Gaussian function.
But if you absolutely need to chose the best one for your particular problem. There always are Simulation tools that exists precisely for this purpose. One of them is Matlab Simulink as you mentioned, but there are others if you don't like the price of the Matlab.
My suggestion is, go with your gut, test it in safe environment and if it works then deploy it to the real world.


text:
Is artificial life really life or not?
I define Artificial Life as a "simulation" or "copy" of life. However, should it be considered a simulation or copy?
If one had motivation and money, someone could theoretically create evolving computers, with a program that allows mutation OR simply a "simulated" environment with "simulated" organisms.
The computer (or "simulated" organism) would have the ability to reproduce, grow, and take in energy. What if the life evolved to have intelligence? Currently, there are some relatively limited programs that simulate life, but most of them are heavily simplistic. Are they life?
When should something be called life?

Don't be fooled by simplicity.  I strongly urge you to research Conway's Game of Life, particularly the ramifications of its ability to calculate Pi, and by extension, any real number.  Out of simplicity comes great complexity--the universe is combinatorial in nature.

You may also find this brief article on Universal Constructors to be relevant: http://conwaylife.com/wiki/Universal_constructor

If you read Steven Levy's book, Artificial Life,you will find, as I did,

the distinction between biological and "artificial" life blurred. If you think about it, what exactly is "life", anyway? A set of complex systems with emergent behavior capable of evolution and adaptation.
A prototypical biologist may not define life that way. Indeed, he would, not being focused or concerned with the computational aspect, define it in a way that would narrow it down to biological life.
Marvin Minsky mention the concept of luggage words, and I myself came up with the notion of mirage concepts. For the former, that which we don't understand gets lump into the word. For the latter, when you take a "mysterious" concept apart, it vanishes like a mirage does as you get closer.
So what is life? If we look at a "living" organism, we'd all that "life". If we remove a single cell from that organism, we'd still call that "life". But what if we remove a single organelle like, say, a ribosome? Lysosome? Contractile vacuole? Endoplasmic reticulum? Is that still "life"? What if we remove a macromolecule from that? Is that still "life"?
As you see, all becomes very murky, and I do this on purpose to illustrate just how arbitrary the very concept of "life" is.
So I think my definition is a good one, broad enough to encompass both in-silico and the organic versions. It bespeaks to algorithms, robots, viruses -- yes both computer and organic... anything that has complexity and the ability to adapt and evolve.

"Life" is a definition humans use to classify objects according to the types of behavior humans perceive as unique to living creatures.
Scientists and philosophers tend to define something as "alive" if it manifests some specific properties found in living organisms, such as self-replication, adaptation to the environment, homeostasis and capability to exploit matter and energy for its own existence and functioning. With that being said, there is no one accepted definition of life, and it is doubtful that such a definition is possible.
As to artificial life (ALife), the book "Biological Computation" (2011) by E. Lamm and R. Unger states that

it is common among researchers to distinguish between two types of approaches to artificial life:

the strong ALife approach, which postulates that virtual "creatures" on a computer screen can be considered to be alive if they fulfill the definition of life used by the researchers; and

the weak ALife approach, whereby computerized creatures displaying characteristics of living systems are only models used in research and are not really alive

While this is not solving the problem of definition of life, it might give more context on the subject in relation to artificial life.

I like to take an "animist" approach.  (It has been suggested to me that part of the reason Japanese designs are so effective is because of the cultural affinity for the concept per the Shinto tradition.  For instance, the thing where people put little eyes on everything;)
I like to think of how my dog, who is terrified of the vacuum cleaner, would regard one of the recent Boston Dynamics creations.  My guess is the dog would't find much use in the distinction that the robot is an artifact as opposed to a biological entity.
I tend to take a deterministic, mechanical approach to reality. Sure things get fuzzy down at the quantum level, but even that may simply be a factor of inadequate measurement capability and the sheer complexity of quantum mechanics, which seems fundamentally beyond the grasp of even the greatest minds, when they're being honest about it.
I don't see much of a distinction between simple organisms and cellular automata, except that the former is part of a biological food chain.  There is a valid hypothesis that if you had a big enough computer, Conway's Game of Life could independently develop "intelligence".
Self-replication would certainly seem to be a requirement of biological life that can be extended to artificial life.  Possibly the true distinction of "artificial" is merely that it is creation of a functional system by an extra-species source, whether the creation be "biological" or "mechanical" in nature. (i.e. we can hack genes now, not just computer code.)

Wikipedia describes life as a characteristic of "physical entities having biological processes". The same source also describes a simulation as "the imitation of the operation of a real-world process or system over time." If a digital neural net was to listen to me prattle on for long enough it could learn to speak as if it were me. It would have my knowledge and limitations but its headaches would be quite different from mine. It would never have a toothache. But you could put it in a Searle Chinese Room, and you could speak to it and it would sound exactly as if it were me long after I am dead. It has my "character" which is what my friends would recognize about me.
According to the definition of life it is not alive because it does not have biological processes. It is a simulation because it emulates what I would have said. It cannot be a copy because a digital box is not biologic.
Now let's give this simulation a biological nose so that it can smell. And maybe two eyes and ears. We continue this process until most of the simulation is equipped with biological parts which function together. Whatever it is is now able to come out of the Chinese Room and talk to you. By golly, it looks and sounds exactly like me, but I died a long time ago. Have I been brought back?
My suggestion is that a perfect copy of me would not be possible simply through training due to the level of detail required, but that the close copy would be alive. A critical point would be that there would have to be a fatal link somewhere which would cause "death". You could always create a new close copy, but not an exact copy.

Some might posit self-awareness as a condition of artificial life, but there is no indication simple biological organisms have such awareness.  Excellent meditation on the philosophical and semantic nature of the question.

Conceptually, I'd disagree about a requirement of "exact copy". We change over time significantly, even our character. You wouldn't say that you weren't you 10 years ago. AI would just catch most stable characteristics of your character and put some limitations. However again, if you got some mental or physical disease that limits some (or most) of your functions, without destroying personality - it would still be you, right? Life itself can destroy more information than copying with AI.

Imho, it is life.
Example: consider the possibility that we synthesized from completethe DNA of a human being, with zero atoms from another human, and grew said human in a lab. Most (and myself) would agree that creature is alive.
Although there are many opinions that differ, my own is that there is no absolute line to draw between something that is alive, and something that is not alive. A human is alive. But is a single bacterial cell, or a single cell from your own body? They reproduce, they eat, etc. so yes they are alive. They are not like a dog or a cat however. In fact, a bacterial colony in a pool of water, giving off a yellow or brown color can be mistaken as a mineral or mud. It is only when you look closer that you see it is actually life. What about a biological virus? It is not made of cells. It does not have DNA. Most would agree it has life. But is does not really seem to be as alive as say, a shark or giraffe. Many people do not think a car is alive. Yet cars evolve. They move, they "eat."
Life is simply a way we define things around us. A much more useful and definitive way to categorize life I think, would be to utilize a continuum instead of an all or nothing approach. Rocks would go on the end of "nonliving." Intelligent, multicellular; self-aware entities could perhaps be on the other end as "fully alive."
Other entities can go in between. As for something such as AI, I would propose adding a z-axis, to make a 3 dimensional continuum, allowing for a self aware, intelligence entity not made of cells to fit comfortably with humans without causing an all-or-nothing.
PS: thought I came to this conclusion myself, I have a suspicion someone smarter than me has already written about such an idea. If anyone feels like educating me, I'd love to hear it.

It wouldn't be considered alive if it doesn't have vital functions, such as nutrition, relation with the environment, and reproduction. While the first is easy (use a battery) and the second is the one we are developing right now (basically, the intelligence part of an AI) giving programming skills to an AI, aka the ability to reproduce, isn't widely considered a good idea, as many science fiction writers can tell you.


text:
What programmable devices can be used to teach artificial intelligence?
Could you give examples of affordable programmable devices that could be used in university classes to teach students about A.I. and demonstrate it?
The devices are expected to do some form of self-learning, pattern recognition, or any other features of A.I., and to be programmable or customizable.

We're working on it at MClass Games/Fundamental Combinatronics.  (Still in the early stages, but our goal is to integrate an AI scripting interface, not just for for College level, but down through middle school, and to make it available to educational institutions for free.)

LEGO Mindstorms is widely used to demonstrate AI in schools and universities [1, 2]. With LEGO as basis, you are very flexible. You can build what you want very easily. The AI programs can be written in different languages from very easy graphical once to Lisp and C++. The newest version has an SD Card drive, USB interface and a powerful ARM processor. You can use four motors and four sensors directly. There exists touch, sound, sonar, gyro, infrared and color sensors. There is also a big community which provides you with a lot of ideas, hardware and programs [3].

To start you could use one of the devices mentioned before, and after to make some more powerful and complicated experiments (and also a little bit more expansive) you could move to Jetson TK1 which let you run heavier Neural Network (like CNN).

Why dont you try android Phones with Tensorflow TensorFlow Android Camera Demo
You can build a simple image or text classification neural network to demonstrate AI.


text:
Are neurons instantly feed forward when input arrives?
Let's say I have a neural network with 5 layers, including the input and output layer. Each layer has 5 nodes. Assume the layers are fully connected, but the 3rd node in the 2nd layer is connected to the 5th node in the 4th layer. All these numbers are chosen at random for the example.
When is the 5th node in the 4th layer fed forward?
Let's go through it step by step. The first layer is normally fed forward to the second. The second layer is normally fed forward to the third, but the 3rd node is also fed forward to the 5th node of the 4th layer.
At this point, is the 5th node in the 4th layer now fed forward, or is it fed forward when the 3rd layer is done being fed forward? The 1st method would mean that the node would get fed forward 2 times and my concern is, if the output is still valid.
Furthermore, it would also come to 2 asynchronous outputs and how would these be interpreted?
Because in the brain, I heard, the neurons are fired when an impulse arrives so this would equal the 1st method.

It is unclear what kind of network your are referring to, there is not a single neural-network model so conceivable both cases could exist and serve some purpose, yet if you are looking for one that emulates nature and real neurons, then you are missing at least 2 ingredients ( time and the mechanisms of resting potentials and refractory periods), which in turn introduce new computations to the neural network.
This is your network graph if I got it right:

The calculation in a neural network without refractory periods and resting potentials without time, would instantaneously modify the weight of your node4 layer 5 (n4-L5) if there is input in column 3:

Additional inputs on other columns would just add up unless you have some other explicit computation on any layer.
If you wanted to emulate a Neuron, each node would need to have a resting potential, that is: a level above which it will fire ( in the above example zero), and a refractory period:  a time before it would fire again, as well as a clock to keep it in sync, this would be a crude realtime fascimile:
http://codepen.io/k3no/pen/WRQbYV

A common alternative is to use sequential phases or steps.
Reference/source
Artificial Intelligence: A Modern Approach, by S. Russell and P. Norvig. Deals with a general step approach to A.I.
Gateway to Memory, by Mark A. Gluck and Catherine E. Myers Presents a great and readable introduction to modeling neural networks.
I published the little neural network model in a medium article : Memory and the machine, relevant sources are there.

Thanks. I can't see it clearly on your sketch: is the n4-l3 directly connected to n2-l5? Because it seems that it isn't directly connected.  Can you please clarify this to me.

It is not, if it was connected, there would be an arrow before the node( like there is in n2-L5, unfortunately the connection or edge crosses over n4-L3, so this is a common way of indicating that, along with the +1 on the right side of the node.


text:
How can I translate a natural language question to an MDX query?
I am researching Natural Language Processing (NLP) to develop an NL Question Answering system. The answering part is already done. So processing the question remains, along with the questions regarding the algorithms.
The final product should allow the user to ask a question in NL. The question then gets translated to an Multidimensional Expressions (MDX) query, which generates a script regarding the dimensions of the cube.
How can I translate a natural language question to an MDX query?
The outcome of the question is in the form of a calculation. For example

How many declarations were done by employee 1?

or

Give me the quantities for Sales.

You can use a component library which can help you to implement Natural language query builder in your application( the question part ) called Open Natural Language Processing Package
 ,  so you can definitely develop a module, by using existing modules of OpenNLP such as entity extraction, chunking and parsing.
According to wikipedia source   ; it points out that as of 2001, Q&A applications typically includes "a question classifier module which determines the type of question and the type of answer," so "a multiagent question and answering architecture has been proposed, where each domain [or variable] is represented by an agent which tries to answer questions, taking into account its specific knowledge."
But it still need some effort to build a NLgenerators inline with databases , for the answer query and also is the link to help you on how you can work with Compositional Semantic Parsing on Semi-Structured Tables
Hope this can give you some insight.

The original version of this answer was just copied and pasted from one or more answers from here. Copy-and-paste answers are not allowed on this site, unless you give proper attribution and make it clear what has been copied. I will leave this comment here until I or someone else can review that all the info in this answer has not been copied/plagiarised.

This is a hard problem to solve, and the best approach depends very much on the scope of your task. If you have a small database table with a limited number of columns, you might get away with some basic pattern matching techniques. If it is more complex than that, you might have to do a full-scale syntactic analysis of the question. This also depends on the variations of possible question types.
Assuming a limited set of variables and variants, you could set up something like:

How many X did Y produce/How many X were done by Y/What is the number of X for Y

where you have two variables to fill from the pattern, which you then use in your query:

select sum(X) where producer == Y

(Or whatever format your query has).
The advantage of this is that you don't need to be a linguistics expert to maintain/expand the system, and you can just add more patterns to it if necessary. You might have to map some terms onto synonyms to get the right column headings/labels out of it. But this approach is not very hard to implement, and you should have a basic system up and running fairly quickly. You then have to see/test what questions your users are asking, and expand the pattern inventory accordingly.
The disadvantage is that you might end up with a long list of patterns, and there could be some which are conflicting, ie the same pattern with different variables will ask for a different kind of result. If that turns out to be a problem, you might have to look for a more powerful approach.


text:
Has any schema-agnostic database engine been implemented?
Has any schema-agnostic database engine been implemented?

The same article you link points to SPARQL as a query language and https://query.wikidata.org/ and http://dbpedia.org/isparql/ as example implementations. Is that what you were looking for? If not, why not?

@Alpha The goal is to abstract users from the data representation. The user acessing this kind of database does not need to known all the available entities that could be queried hence a query like "SELECT * FROM customers" or "SELECT * FROM clients" must give the same result. The db engine will figure out that "clients" and "customers" is referencing the same entity.

For future reference. MarkLogic is not a Schema-agnostic database: http://www.marklogic.com/blog/schema-agnosticism-what-it-is-and-why-you-should-care/

A very large one, the world wide web with highly scaled and optimized indexing by Google.com is the most distributed and robust schema-agnostic database known today.  Without the schema-awareness Google brought to the table by applying more rigorous information science to the table, it was almost useless to those that did not know the URL of the target document in advance.
Schema agnosticism is another way of saying that the database cannot

Provide meta information to the services accessing it,
Normalize the structure using simple SQL query-insert combinations
Proactively optimize the keys automatically as is now possible with machine learning, or
Validate insertions

Without first detecting a schema from data patterns.  Moving away from structure is appealing because you can just jam data in like a librarian without a book shelf.   However, the data scientist will point out that adding entropy working alongside thermodynamic devolution into stochasm.
The purpose of storing data is to be able to retrieve it.  Feature extraction is an opportunity to improve structure automatically during the storing structure, rather than store documents chaotically, a trend that will not lead anywhere good for the world of IT.
Consider whether Google is successful because it organizes its data as it crawls or later as we enter key phrases.  Which is the efficient sequence?
One more point, Wikipedia is a blog, and they know this, which is why they want peer review for everything now (after much of the information was added without peer review).  It is a good place to find lists but not verified facts.  The existence of a Wikipedia page is definitely not an indication of the value of the concept on it.

I improved a bit the question. I asked about an Engine, not the data itself. The scenario is already chaotic, Google provides a search engine for the web and needs to organize the data, sure. What about the data in private silos? The amount of data is not huge like in the web but the chaos exists with or without a schema. Each time an enterprise deploys a new system it has to interface with legacy data and/or perhaps creates more data, more chaos to be queried. The agnosticism is much more about how to consume the data.

Another thing. Yes wikipedia alone is not proof of anything, but in this case I am one of the contributos of this article and have worked with several people from Academia and Industry to consolidate this concept. And someone needs wirte down the first lines anyway.

Summing up all your points. Yes, the question is how to have a smart system that can infer (with some level of error, of course) and perhaps return useful information for the end user in a way that the user will further improve the query and at the same time give feedback to the system, making the engine even better. The agnosticism lies mostly in the user query language interface. About Wikipedia you are right, I just pointed that perhaps this article, in particular, is a good one ;)

I have upvoted to balance the entropy ;)

You could be interested in orthogonally persistent systems. You could look at them as  schema-agnostic database systems whose data fits entirely in RAM (remember also 1980s Smalltalk or Lisp Machines or Prolog ones and 1994 GrassHopper OS) or at least in virtual memory. With that approach, even SBCL almost fits in your wish, since it has save-lisp-and-die. Look also into frame based systems and object databases. Read also a good operating systems textbook and see past discussions archived on tunes.org.
Shameful self promotion: My bismon system (work in progress in summer 2019) claims to be a GPLv3+ orthogonally persistent system applied for static source code analysis of IoT software. But you might reuse most of it for other kind of orthogonal persistence (of frame based data).


text:
How do I translate these English sentences into first-order logic without quantifiers?
I have to translate the following English sentences into First-Order Logic without using quantifiers:

Everyone on flight 815 has a story.
No one knows what is inside the hatch.
Someone on the island isn't on the flight manifest.

I have tried it, but can't translate without using ∀ and ∃:

$\forall x, \; \text{flight815}(x) \rightarrow \text{story}(x)$
$\forall x \neg(\text{knows}(x) \rightarrow \text{inside hatch}(x))$ // not sure about this OR $\neg \exists x, \; \text{knows}(x, \text{inside hatch})$
$\exists x, \; \text{island}(x) \land \neg(\text{flight manifest}(x))$

Is it possible to do it? If not, why?
Refer to chapter 8 of Artificial Intelligence: A Modern Approach (3rd edition). Stuart Russell and Peter Norvig, Prentice Hall (2010)

It's not possible to do it since the sentences which you gave are complex sentences. Words like "Everyone", "All", "Somebody", "At least", etc. are supported only by FOL and not by simple propositional logic!

@kiner_shah Thank so so much. Do you think I have translated it correctly to FOL. I am confused about the second sentence.

@New_Coder, I am not sure about the second FOL sentence. Try forming the sentence: "Everybody knows what's inside the hatch" (It could be something like "for all x, if knows(x) then there exists y such that y is inside the hatch") and then figuring out how to modify the FOL to fit your second sentence.

@kiner_shah Is this looks better for 2nd sentence: ∀x ⌐(knows(x) → ∃y inside hatch(y))
I have also changed the 1st sentence: ∀x fight815(x) → ∃y story(y)
What do you think now?
There's an example I found at:
http://www.uobabylon.edu.iq/eprints/publication_5_29514_1380.pdf
No student loves Bill: ¬ ∃ x ( Student(x) ∧ Loves(x, Bill) )

1. ∀x, onFlight815(x) -> hasStory(x) 2. ~(∃x,y knows(x,y) ^ insideHatch(y)) What about this?


text:
Why does the cost function contain a 2 at the denominator?
A cost function used in machine is often the following
$$C = \frac{1}{2} \| y - \hat{y} \| ^2$$
Why is there $\frac{1}{2}$ in front of the squared distance?

See also https://math.stackexchange.com/q/884887/168764 for more elaborate and precise answers.

To simplify the derivative, probably. Otherwise there will be constant 2 in it.

This is the correct answer. The constant factor does not affect the optimizer of the loss, so the only reason is convenience.

I think it would also useful if you explain in which way it exactly simplifies the derivative (i.e. show a step by step example).

@Harsh Yes, but I think these details should be elaborated a little more (i.e. explained more in detail), given that they might not obvious to everyone, so this question needs to be improved, IMHO.


text:
What are some information processing models besides MLPs?

Feedforward or multilayered neural networks, like the one in the image above, are usually characterized by the fact that all weighted connections can be represented as a continuous real number. Furthermore, each node in a layer is connected to every other node in the previous and successive layers.
Are there any other information processing models other than FFNNs or MLPs? For example, is there any system in which the topology of a neural network is variable? Or a system in which the connections between nodes are not real numbers?

Neural Network equivalents that is not (vanilla) feed forward Neural Nets:
Neural net structures such as Recurrent Neural Nets (RNNs) and Convolutional Neural Nets (CNNs), and different architectures within those are good examples.
Examples of different architectures within RNNs would would be: Long Short Term Memory (LSTM) or Gated Recurrent Unit (GRU). Both of these are well described in Colah's blog post on Understanding LSTMs
What are some alternative information processing system beside neural network
There are sooo many structures. From the top of my head: (Restricted) Boltzmann machine, auto encoders, monte carlo method and radial basis networks to name a few.
You can check out Goodfellow's Deep learning-book that is free online and get the gist of all the structures I mentioned here (most parts requires a bit of math knowledge, but he also writes about them quite intuitively).
For Recurrent Neural Nets I recommend Colah's blog post on Understanding LSTMs
Is there any system in which the topology of a neural network is variable?
Depends on what you mean with the topology of a neural network:
I think in the common meaning of topology when talking about Neural Networks is the way in which neurons are connected to form a network, varying in structure as it runs and learns. If this is what you men then the answer, in short, is yes. In multiple ways actually. On the other hand, if you mean in the mathematical sense, this answer would become a book that I wouldn't feel confortable writing. So I'll assume you mean the first.
We often do "regularization", both on vanilla NN and other structures. One of these regularization techniques are called dropout, which would randomly remove connections from the network as it is training (to prevent something called overfitting, which I'm not gonna go into in this post).
Another example for another way would be on the Recurrent Neural Network. They deal with time series, and are equipped for dealing with timeseries of different lengths (thus, "varying structure").
Does it exist neural net systems where complex numbers are used?
Yes, there are many papers on complex number machine learning structures. A quick google should give you loads of results. For example: DeepMind has a paper on
Associative Long Short-Term Memory which explores the use of complex values for an "associative memory".
Links:
Goodfellow's Deep Learning-book: deeplearningbook.org
Colah's blogpost on RNN's: colah.github.io
Paper on DeepMinds Associative LSTM: arxiv:1602.03032

To answer the title, there are many other machine learning models, but neural networks work particularly well for some difficult problems (image classification, speech recognition) which is one of the reasons they have gained popularity.
Two particularly simple models are the decision tree and the perceptron. These are rather simple models, but they both have redeemable qualities. A decision tree is useful as it provides a model that is easily understood, while a perceptron is fairly quick and works well for linearly separable data. Another, more advanced, model is the Support Vector Machine.

For example, is there any system in which the topology of a neural network is variable?

Yes, there are many such systems where the topology of the neural network is dynamic throughout training. An entire class of methods labeled TWEANNs are designed to evolve the topology of the networks, one such algorithm is NeuroEvolution of Augmenting Topologies, NEAT (and it's descendants rtNEAT, hyperNEAT, ...).

A very popular choice are Hidden Markov Models.


text:
Is a super-intelligence limited by the intelligence of its creator?
An argument against the possibility of super-intelligence is that the intelligence of a creation will be limited by the intelligence of its creator. How reasonable is this argument?

Of course the intelligence of a product is limited by the intelligence of its creator. Just not to the intelligence of its creator.
That would be about as reasonable as the idea that the speed of a car is limited to the speed of its creator.
Or the playing strength of a chess program to the Elo of its creator.
Or the ability of a neural network to differentiate between dozens of dog breeds to the dog expertise of its creator.
So, not very reasonable.

On the other hand, the argument is reasonable since it claims the existence of a super-intelligent machine is dependent on us knowing how to build it (so if we don't know how to build one and we don't accidentally build one, super-intelligent entities will not exist). Currently, humans are not smart enough to build a super-intelligent algorithm, and we have no idea how to build such an algorithm.

@TariqAli ,But what if it's happening right now.What would you say?

Excellent answer!  @TariqAli I think the real problem won't be if the machines are smarter than us, but if they're not smart enough and become antagonistic as opposed to cooperative, destructive instead of equilibrium seeking. The dumb machine threat is the "grey goo" model, but powerful, AI, limited by, and exploited for, selfish reasons by "un-evolved" humans is probably the most realistic "next threat".  Imagine a world where a single financial firm owns everything because they have the most powerful algorithms (as opposed to companies who care about the algorithms more than the money.)

@TariqAli - I watched a video where they were talking with the developers of the XBOX Kinect. All the developers did was create the neural net software for it. From there, the neural net figured out what to do based on the training data. The developers said they would never have been able to get it to work by programming it themselves. So I'd contend that this is an example of an AI that figured out how to build something that humans probably couldn't have done, at least in a reasonable time-frame.

AI is frequently used to discover things that would take laborious amounts of time for humans to do.  For example, AI can be used to find the optimal configuration for a mother-board layout, or identify best fit parameters for a financial model.  Frequently, the AI can do a better job at a task and do it more qucikly than a human.  Therefore, in many applications, the AI is already more intelligent than the creator at specific tasks.
Here are just a few things that AI can already do better than humans:

Playing Chess
Playing Jeopardy
Detecting Cancer

To argue against the possibility of a super-intelligent AI is somewhat of a moot point since it has already been proven.

could you plz elaborate on "Detecting Cancer"?

I think this needs to be qualified as "super-intelligent as related to specific tasks with definable parameters"

An important difference between a human intelligence and an artificial intelligence is that the artificial intelligence would "think" much faster, perhaps millions of times faster than our brains do. Our neurons are slower than transistors. It also wouldn't be limited by evolutionary biology and could presumably modify itself or create a replacement AI that operates more efficiently. Do this modification an arbitrary number of times and it becomes super intelligent.


text:
Is it possible to classify data using a genetic algorithm?
Is it possible to classify data using a genetic algorithm? For example, would it be possible to sort this database?
Any example in Matlab?

Yes. You may want to read this article: http://www.genetic-programming.com/jkpdf/tr1314.pdf and/or this book: http://dl.acm.org/citation.cfm?id=138936 .

It is possible, but is a pretty terrible idea.
There are a few options. One is to not use the GA as a direct classifier, but instead use a GA to learn the parameters of another classification model like a neural network. The basic idea of a GA is that it (very roughly speaking) forms a black-box method for searching an arbitrary space for solutions that minimize or maximize some function.
Here, you would be searching the space of possible neural network topologies and/or weights to find one that minimizes the misclassification rate.
Another approach is that taken by what are sometimes called Learning Classifier Systems (LCS) or Genetics Based Machine Learning (GBML). This approach is to use evolutionary mechanics to evolve rule sets of the form "if X condition is true, then do/classify Y". That's a more direct method of solving this sort of problem. You define some features on your dataset, and the algorithm tries to learn rules based on those features.
The problem with any of these approaches is just that there are so many better ways to solve the problem. Remember, a GA is basically a black-box that's supposed to work acceptably well for a huge range of unknown problems. But I'm not solving a huge range of unknown problems. I'm trying to separate ham from spam on one dataset. I can come up with methods that simply do that job better and more quickly than a GA has any real hope of doing.

You must understand that a genetic algorithm is an optimization algorithm. You can't feed it e-mails and make it classify spam. A genetic algorithm is used to train a model to classify spam. That something could be neural networks.
What you need is a genetic algorithm that optimizes neural networks neuroevolution, which might roughly work as follows

Start with a pool of neural networks
Feed them e-mails, let them classify, and calculate fitness on % correct
Select neural networks for crossover
Crossover
Mutate

However, there are better ways for classifying e-mails (e.g. an algorithm that looks for certain "spam words").
But it is definitely possible. I have a javascript library set up for neuroevolution, if you're interested.