Presentation on theme: "AI Overview Reference: "Artificial Intelligence, a Modern Approach, 3 rd ed.""— Presentation transcript:
AI Overview Reference: "Artificial Intelligence, a Modern Approach, 3 rd ed."
What is AI? Top Image: http://howtosplitanatom.com/news/119/http://howtosplitanatom.com/news/119/ Second Image: http://john-likes-movies.blogspot.com/2010/05/ai-artificial-intelligence.htmlhttp://john-likes-movies.blogspot.com/2010/05/ai-artificial-intelligence.html Thrid Image: http://engineeringyourfuture.wordpress.com/http://engineeringyourfuture.wordpress.com/ Fourth Image: http://thefuturebuzz.com/2008/11/07/social-media-is-like-the-matrix/http://thefuturebuzz.com/2008/11/07/social-media-is-like-the-matrix/ Fifth Image: http://blog.solutionary.com/blog/bid/34219/Security-Event-Detection-Man-vs-Machinehttp://blog.solutionary.com/blog/bid/34219/Security-Event-Detection-Man-vs-Machine Sixth Image: http://en.wikipedia.org/wiki/Data_(Star_Trek)
4 Schools of thought ( in AI academia ) Thinking Humanly Thinking Rationally Acting Humanly Acting Rationally Top Row: Measure the success of an AI program by how well it "reasons" Bottom Row: Measure the success of an AI program by how convincing it is. Left Column: Measure the success of an AI program by how human-like it is. Right Column: Measure the success of an AI program by successful (rational) it is.
Acting Humanly Turing Test – Natural Language Processing – Knowledge Rep. – Automated Reasoning – Machine Learning total Turing Test – computer vision – robotics Not much research being done here… Alan Turing (1912-1954) Top Image: http://www.wired.com/thisdayintech/2010/06/0623alan-turing-born/http://www.wired.com/thisdayintech/2010/06/0623alan-turing-born/ Bottom Image: http://withfriendship.com/user/kethan123/turing-test.php
Thinking Humanly Mimic the way a human thinks – To mimic we have to understand it. For this branch, it's not enough to produce the correct input/output as a human. Cognitive Science: – Linguistics – Philosophy – Anthropology – CS – Neuroscience – Psychology – etc. An active area of research, but not the main approach in AI Image: http://medicalphysicsweb.org/cws/article/research/33586
Thinking Rationally Logic – e.g (a syllogism): Socrates is a man (a fact) All met are mortal (a rule) Therefore…Socrates is mortal (a new fact, deduced from the other two) We could theoretically solve any problem that could be expressed in this form – With more than a few hundred facts, it's SLOWW – Not easy to express some things in this fashion. Prolog (programming language) Image: http://en.wikipedia.org/wiki/Aristotle
Acting Rationally Behaving "correctly" in the context the system is meant to work in The most general of all 4. – We can (but don't have to) mimic human brain processes. – We can (but don't have to) use classical logic (thinking rationally) – We can (but don't have to) make this program act human. Or we can just mimic one part of acting humanly. This is the approach I'll use. – We're trying to implement programs with behavior that appears to be involving thought / intelligence.
AI foundations AI draws from a lot of different disciplines: – Philosophy (rules of logic, esp) – Mathematics (proofs, algorithm analysis, computability, etc) – Economics (utility -- what's the best action considering their cost and outcomes?) – Neuroscience / Biology / Psychology (many algorithms are based on these) – Computer Engineering (we have to run the programs somewhere…and there are limitations) – Linguistics (relationship between language and thought) –…–…
Outline of the Class Intro and pygame review – Cellular Automata (~1 week) Game-specific algorithms – Flocking (~1-2 weeks) – A* (~1-2 weeks) – Decision trees (~1 week) Biological-inspired algorithms – Genetic Algorithms (~1 week) – Ant Algorithm (~1 week) – Neural Networks (~2 weeks) Classical AI – Knowledge Representation (~2 weeks) – Alpha-Beta (~1 week) Pattern Recognition – OpenCV intro (~2-3 weeks) Probability-based algorithms – Hidden Markov Model??? (~1-2 weeks) Constraint-based approaches – Verlet Integration (~1-2 weeks) Bold == set-in-stone. We'll have to cut some of the others…
Labs + Software-Engineering As seniors, you should be competent developers. Part of being a good developer is being a good software engineer. Hallmarks of good Software Engineering: – Significant planning before coding starts – Good style/readability (commenting, naming, organization) – Ease of modification – Not starting the night before
Labs + Software-Engeering, cont. So…the labs this semester will: – not have a list of classes, variables, functions to create -- you should plan these yourself. – have some room for interpretation -- ask if you're not sure. – be graded approximately like this: ~70% on implementing the technique as described in class. ~30% on the style / efficiency / software-engineering of your implementation