Artificial Intelligence Overview

in #science7 years ago

TL;DR
AI is something that shouldn't be feared. This post gives 3 examples of AI categories and examples of AI in those categories in order to show the difficulty behind making an AI do simple tasks, let alone complex ones. Then I go on a writing rant thing that was way too long, but what can I say! Anyways you can skip down now, thanks for reading!

Artificial Intelligence, this taboo subject that almost everyone has an opinion of yet few actually know much about it. I am not posting this as an expert in the field but I would like to think that I know a thing or two about it. So for this I am going to talk about three big AI topics and or types. The three categories will be, as I call them, probabilistic intelligence (minimax), Conditional Intelligence (if-else ladder), and Artificial Neural Networks. The reason why I pick these categories is firstly they can all work together but secondly, and more importantly for most people, I can easily relate these algorithms to video games. The outline of this will be to go through what each of these are and then provide strengths and weaknesses to each algorithm and finish by explaining why many peoples fears of AI are a product of fear mongering from public figures such as Stephen Hawking, Elon Musk, and common media like The Terminator.


What is Artificial Intelligence (AI)

      In Computer Science, the research of AI is defined, by Stuart J. Russel and Peter Novig, as "study of 'intelligent agents': any device that perceives its environment and takes actions that maximize its chance of success at some goal."[1] or [2]
       Now what this means is that any program that attempts to complete some goal and maximizes its potential to do so is an AI,or in other words, almost all programs are an AI to some extent. Now to explain this in a much simpler way, imagine a game of tic-tac-toe (nulls and crosses), if you go first what move do you make? Generally most people go with the middle spot as it gives you the most opportunity to win while decreasing your opponents opportunity to win, therefore a program that calculates the odds of winning based upon any given move it makes in tic-tac-toe is also an artificial intelligence.

Enter Probabilistic AI

      Probabilistic AI is any program that sits there crunching the probability of getting a specific outcome based on a number of factors, the best example of this is called a minimax algorithm, you can play connect 4 with minimax here. Minimax works by looking at every move that it can make, then looking at every move they can make, then everymove it can make over and over compounding all of it into a giant tree and then finding the path that is most likely to lead to an optimal outcome. A better version of this uses alpha-beta pruning by eliminating branches making the search time much much faster. Games that use this form of AI are games like chess, tic-tac-toe, connect four, checkers, and some versions of go. The strength of probabilistic algorithms comes in the simplicity of the game, computationally simplistic that it. For instance chess, a complicated game, is rather simple computationally because it has a set of rules and as long as you program those rules correctly then the game itself is easy. for instance you can move a pawn 2 squares right off the start but everywhere else you can only move a pawn 1 square. Another probabilistic AI is the very simple AI that runs the game of NIM, while this doesn't need to actively calculate the probability of winning after each move, it can instead use simple math to determine exactly how to behave and will have a 100% chance of winning. That being said about NIM, some might state that its AI works less with probability and more with pure logic but since you can have the NIM AI algorithm work without a single if statement I will put it in the probabilistic.


Conditional Intelligence

I am not an expert on AI and that will show right here, I am certain there is an actual name for this but I simply do not know what it is (so if you do, please tell me and I will correct it). Anyways conditional intelligence is basically my name for hard coded, extensive, if else ladders, essentially. Although these programs do not have to contain purely hardcoded if-else ladders its more the point that they cork through certain conditions and react in a predictable manner. Examples of an AI that works like this would be the AI from Call of Duty (or pretty much most complex video games where the AI needs to make "decisions") but for a simple one that you can play with check out ELIZA which is the same program that runs Sophia, the robot that is a Saudi citizen. It will not take you long to realize that the program is not very intelligent, however by adding more conditional statements you can make the AI behavior seem smarter by being able to react in a multitude of ways to situations, even situations that may be similar. Of the different types of AI on the market, I feel that this arbitrary category may be one of the most familiar for consumers however, much like the first category I talked about, this type of intelligence does not "learn" with exceptions of what is hard coded into it, so to speak.

Neural Networks

So by this point it is no secret that neural networks exist, and they aren't really anything new, in fact I believe the first computational model was produced in the 1950's **EDIT** 1943 [3]. I will add a correction and strike-through after I research it. Anyways, a neural network is, to simplify it, a convoluted complex mathematica formula that, when simplified, takes in some input and applies a mathematical transformation to it and provides the output. Now most neural network's, that I have actually worked with, use the sigmoid function for their transformations (activation function) and using the diagram shown I will attempt to synthetically show you how a neural network works.

First we will have a neural network with 2 input nodes (neurons) and 1 output node (neuron) as the picture shows, now our function takes in 2 inputs and 1 output. Our inputs will be either 0 or 1 and our output will be between 0 and 1. Now we are going to set all of our weights to 0.5 (usually you do it randomly, not arbitrarily) and our expected output will be an or operation of the two inputs (meaning if either of them are equal to 1, we would want the output as 1).

Table of Expected Outputs from Inputs
Input 1Input 2Output
111
101
011
000

So first lets try sending in [1,1] here are our results with current weights:

Well I do not know about you but 0.650777678215 (the answer output) is definitely not what I had in mind but it does at least round to our expected answer. Now if you want to play with this neural network, I have created a desmos graphing calculator project that you can play around with which is literally this exact thing. Anyways link is here. Now almost all of us know that neural networks need to be trained and ours happens to be trainable through a method called back propagation which is where we modify the weights of the neurons based upon the error value received as an output. What this means is that this type of AI can create the appearance of learning by changing the weights and watching their effects on the outcome. Now I did this in such a way so that it is actually easy to see the effect that each weight has on the output, but unfortunately regular neural networks are not as simplistic. In fact this neural network is sub par for the task that it is attempting to do. For those that do want to check out the desmos graph I made, the output is the output of the Neural Network, it has a slope of 0 though. Anyways here is a screenshot:

LetterMeaning
aOutput from the 2 input neurons
bInput to one of the input neurons
cInput to the other input neuron
mweight of the output neuron
nweight of one of the input neurons
oweight of the other input neuron

So while I did not truly explain neural networks very well (they are confusing) I figured this at least shows you how complex they are for just a simple task, let alone complex tasks.


Takeaway

        In the real world, AI's, especially in video games, will use a multitude of these techniques (well maybe not neural networks for most games) and the reason why I say that is it makes the games more entertaining. I mean playing a game of connect-4 using a pure minimax algorithm that looked down all 41 layers would be boring because the AI would always win unless you knew exactly how to play a perfect game and went first. In reality though, even our most technically advanced AI's have difficulty doing different tasks. Take our neural network we discussed here, it has a maximum accuracy of around 81% meaning that the closest it can get to an expected output is 0.19 away (0.19 or 0.81 depending on expected) but lets assume that we had it work out to being pretty efficient at our task (around 68% efficient) and attempted to have it do a different task of XOR the inputs instead, we would have to go through the training all over again and it may not even work with how small that network is. Simply put, without a hidden layer our network is really bad. Anyways the point is that AI is only good at what it is trained to do, meaning that with current technologies, the idea that it will become self aware is... its ridiculous. Yes someone could program a robot to harm people, but something this should point out is that making an AI is difficult so making one that can pick out a person and harm them and do everything else required... it would be so resource intensive that it would be useless. Some people talk about programming Asimov's Laws but that would be even more difficult to do. I mean if you need reasons watch this:

From computerphile

And if you do not know what the laws are then here:
1: A robot may not injure a human being or, through inaction, allow a human being to come to harm.
2: A robot must obey orders given it by human beings except where such orders would conflict with the First Law.
3: A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
Source here which is a short story by Isaac Asimov. The point that I am trying to make, ultimately, is that AI is not something to fear. It is a tool that we can, and should, use as it can make the world a better place. Thank you for reading.

One more thing before I finish, there is another type of algorithm that is called a genetic algorithm, I am not going to go into those too much but if you search up smart rockets (or look in the references) you will find a perfect example of this. A genetic algorithm that decides the structure of a neural network is one of my favorite AI generational things because it, over a really long time, can produce a neural network with the optimal amount of neurons for a job without presupposing the structure of the network like we did here. I highly recommend that if you are interested in AI development that you take a look at these things, they are super cool. Anyways thank you for reading.

References

[1] aima.cs.berkeley.edu

[2] en.wikipedia.org/wiki/Artificial_intelligence

[3] link.springer.com/article/10.1007%2FBF02478259

Wiki Pages

en.wikipedia.org/wiki/Isaac_Asimov

en.wikipedia.org/wiki/Three_Laws_of_Robotics

en.wikipedia.org/wiki/Artificial_neural_network

en.wikipedia.org/wiki/Minimax

en.wikipedia.org/wiki/Alpha–beta_pruning

en.wikipedia.org/wiki/ELIZA

en.wikipedia.org/wiki/AlphaGo

en.wikipedia.org/wiki/Artificial_intelligence

Further Reading or Playing

connect4.gamesolver.org/?pos=

chazomaticus.github.io/netttt/

www.blprnt.com/smartrockets/

en.wikipedia.org/wiki/Genetic_algorithm

www.eng.famu.fsu.edu/~haik/met.dir/hcpp.dir/notes.dir/cppnotes/node41.html


Kryzsec's Steemit Board


Do you enjoy reading or writing topics related to STEM (Science, Technology, Engineering, and Mathematics) then I would suggest checking out @steemstem! They do wonderful work curating the best STEM related posts on Steemit. For more information check out the SteemStem chat room on steemit.chat or check out their Guidlines and start writing.

Sort:  

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by opticcncfan from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews/crimsonclad, and netuoso. The goal is to help Steemit grow by supporting Minnows and creating a social network. Please find us in the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP. Be sure to leave at least 50SP undelegated on your account.

This post was promoted with @monitorcap traffic bot & STEEM promotion service.

Send MIN. $1 SBD to @monitorcap bot with your link in MEMO field
and recieve upvotes & resteems for your posts. @monitorcap - where 'seen' matters !

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 68051.59
ETH 2632.70
USDT 1.00
SBD 2.67