Could you give me some clarification about data mining and artificial intelligence algorithms? What mathematics base they used for? Could you give me starting point, in mathematics, to understand these types of algorithms?
closed as off topic by hardmath, Jennifer Dylan, Chris Eagle, Eric Naslund Aug 17 '12 at 18:29
Questions on Mathematics Stack Exchange are expected to relate to math within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.
As Paxinum mentioned, AI algorithms are sort of solving optimization problems. You would need to solve maximum and minimum problems. You may use neural network or classical programming methods or both of them in the same program.
It depends on which problem you struggle. If Image processing or voice recognition includes in your program then neural network would be the best choice because the classical programs would have many steps to solve the problem and it may produce unacceptable delays for some inputs because many comparing steps will be required in it for all possibilities but the neural networks would act at the same speed (approximately) for all kind of inputs.One of the big disadvantage of neural networks is required many self learning steps to know how it must react for an input. Many input and output examples can be needed to get the best AI's network. If we do not teach enough with many examples, some results may be very absurd . That can be big risk for critical AI applications such as airplane control system. Some problems can be needed graph approach because teaching process can be very long and neural network can be enormous. For example, If you want to do a chess program, you may give values of chess pieces.Thus, The computer can decide which step is more valuable.
while doing my chess program, I used the following values for chess pieces.This will help to give metrics on branch of the graph.
The king : uncountable (Theoretically infinity because you cannot lose it.)
The queen :8
The rook :5
The pawn :1
After that you would need to play for each pieces for yourself and to see which pieces of opponent can be gotten. You need to add positive value of the piece that you got. And then you need to play for the opponent but you will assign negative value of the piece that you lost . You can apply more and more deepness to enlarge the graph to see benefits and loses. I have added 2 deepness (Play for me-Play for opponent-Play for me-Play for opponent, It lasts about few second to move) You will get a final value for each first step. Now you need data mining to find max benefit and minimum lose.
I found max value after playing each steps and then If there are more than one the same value, I also focused on maximum possible step for my side and minimum possible step for the opponent side. Thus, I would have maximum playing area but the opponent can have minimum area.There can be created many different strategy for better play. I just wanted give an example. There can be found many different strategies. I do not claim it is the best strategy for chess game. The chess game is very complex game and you may need to add the best known starting strategies and some database moves that are already known as the best moves. Mostly during final of the game, you will be alone with your AI software if you cannot add all possible known best moves. I think such database will be enormous if you want add many best known moves and it is not practical games applications because a huge database will be needed.
Finally, AI is very deep subject in math world , we are on the shore of that huge ocean yet.
You need combinatorics, mostly graph-theory. If you want to mess around with neural networks, it is probably a nice idea to throw in some analysis as well. All AI algorithms are sort of solving optimization problems, so linear algebra (with the least square method) is essential. Now, singular value decomposition and data mining goes hand in hand, so more linear algebra is needed.
Fundamentals in logic is needed to understand some concepts in other areas in AI, such as constraint programming. This can be used for solving minesweeper or Sudoku.
Artificial intelligence is a really vast field, and there are a lot of misconceptions about it. One of the most spread is that neural networks are great :) Actually, they are slow, and not very accurate. But they have a very popular name indeed.
As one that works in the field, using and writing algorithms, I hope to offer a correct insight on what is all about.
The main mathematics used here is statistics. Most of the algorithms relate to big data manipulation - and the natural steps towards it go though statistics. Most of the algorithms in AI, like neural networks, flann, decision trees, etc, are ways to automatically classify and sort data, by means of statistical models.
Their ability is that they can learn and use those statistics in a way that's easy for someone without a math or computer science background. By example, if you have a database with medical records and conditions, you can feed it into an "intelligent" system and it will make probabilities out of them - when someone enters a hospital, he/she can be quickly classified by a system, based on the prior experience learned by the algorithm.
Another area of AI, as stated by the other posters, is optimization. Many optimization tasks cannot be performed in a timely manner. So, many algorithms try to find an approximate value by searching randomly a highly dimensional space: genetic algorithms, random forests, etc.
By example, a face detection algorithm will have to search a space of about 10.000 dimensions to find out what a face looks like, to be able to recognize it in other photos. Different mathematical methods for search space reduction can be employed, like SVD. But a great success was found with random algorithms - randomly pick a few dimensions, find the most useful, store it, and repeat the process until you have a good enough search space.
My advice is to focus on a specific field and learn gradually. Data mining is one of them. Computer vision can be another way, and sound/audio language processing as a similar alternative. Text processing (at a language level) is a very interesting direction - think about Siri.
Finally, a link to one of the most impressive pieces of AI I have seen lately. It's pure math. Optimizations, more exactly. Dancing drones
The base for what you ask about is really statistics! So the basic math you need coincides with the math you need for statistics: calculus & real analysis, probability, linear algebra (from a practical standpoint, this may be the most used by you, since it is really used EVERYWHERE, learn it by heart, not only concepts but also manipulative skill). This are the three most important, then some others: combinatorics, optimization, and, for what it is worth, I have found that abstract algebra, especially group theory, is also very useful, but a lot of people is doing very well without it ....