200 likes | 406 Views
Intro to Artificial Intelligence & Google Prediction API. Pawan Gupta. First definition of AI. "AI is the study of making computers do things, at which, at the moment, people are better" -- Elaine Rich (author of Artificial Intelligence book)
E N D
Intro to Artificial Intelligence & Google Prediction API Pawan Gupta
First definition of AI "AI is the study of making computers do things, at which, at the moment, people are better" -- Elaine Rich (author of Artificial Intelligence book) There are still many domains where its better to rely on human to solve problems than computers. For example : teaching programing course to novice
Computers advantage Computers are better than human beings in: • Numeric Computation • Information Storage • Repetitive Operation • Example • Land aircraft safely • Ability to beat virtually any human being in the chess.
Human advantages Human beings are better than computers in: • Common Sense/Judgement • Crossing a road • Driving in busy city like New York and Boston • Language, speech, understanding scene, emotions, and expression situation • Player emotions vs Video game
Algorithm Vs Non-Algorithm Algorithm is a systemic method in which a sequence of steps/instructions are mentions, and each step/instruction can takes finite amount of time. Non-algorithm method, we may not have definite sequence of steps to follow. Example crossing road.
"Measure three times before you cut once" - Proverbs • Computers takes instructions from human and then do the task. without thinking if instructions user gave is right or not. • Garbage in and Garbage out • Human can take garbage as an input, but may think it twice before its provide output.
Google Prediction API • Making prediction based on data provided • Machine learning as a Web Service • It is a RESTfull HTTP service • Only HTTPS protocol is supported • Development Warning: • "Not a crystal ball" • Not fully ready yet, a lot more work to be done.
Process Steps to use Prediction API • Prediction API Account access • Build a data model • Upload training data to Google cloud • Train the system with the data • Send a query
Commands • $ ./oauth-train.sh • $ ./oauth-check-training.sh • $ ./oauth-predict.sh
Authentication Types • clientLogin • login credentials is validated only once per session • clientLogin is designed for desktop application • oAuth • Better user interface • oAuth designed for web applications • Secure user credential • Required Account access: Google storage for dev & Prediction API account
Build a data Model • Data format: comma separated value format(CSV) • Two values –Answer and data column • Cannot mix numbers and categorical data • One data file per model • One example per line • Text is case-sensitive • Data can be numeric or unstructured text • Data cannot be more than 100M
Numeric vs. Categorical model • Numeric • Return numeric value (Google example) • Temperature City Day_of_year Weather • 52, "Seattle“, 283, "cloudy" • 64, "Seattle“, 295, "sunny" • 60, "Seattle“, 287, "partly_cloudy" • query "Seattle,288,sunny", return 63 • Bad query “288, sunny, Seattle” • Categorical • Return string value • Description Subject line • "spam" , "Get her to love you" • "spam" , "Lose weight fast!" • query "You can lose weight now!" return “spam”
Data Example • "english" = "The patriots are the best team in the league" • "Hindi" = "आज बहुत अच्छा दिन है“ • "French", "Je ne vous parle pas, monsieur." • "Spanish", "Soneto" • "English", " * * * * * * *" (Bad data) • "Spanish", "YO, EL REY." • "French", "-- Ah! fit d'Artagnan." • " Latin", " Non bene pro toto libertas venditur auro."
Upload data • Create a bucket • gsutil mb gs://classexample (follow Google guidelines) • Copy data to bucket • $ gsutil cp ./language_id gs://classexample/language_id
Train system • To Train • $ ./oauth-train.sh classexample/language_id • To check • $ ./oauth-check-training.sh classexample/language_id • Return : • {"data":{"data":"classexample/language_id","modelinfo":"Training has not completed."}} • Try again • $ ./oauth-check-training.sh classexample/language_id • Return : • {"data":{"data":"classexample/language_id","modelinfo":"estimated accuracy: 0.95"}}
Send Queries • Send queries • $ ./oauth-predict.sh classexample/language_id "Today is Monday. The New york City" • return {data: {"input" : { "mixture" : [ " Today is Monday. The New york City " ]}}}{"data":{"kind":"prediction#output", "outputLabel":"english",}} • outputLabel value shows best guess
Languages • Prediction API libraries available in following programming languages: • .Net • BASH • JavaScript • PHP • R (Google Prediction Client Library for R) • Ruby
Google Recommendation • Think carefully when uploading train data • More examples (in millions), predict better results • Query must match same number of arguments as features • “english” , “Today is good day” • Good query : “How is your car running” • Bad query : “ How is your car running”, “What day is today”
Summary • When not following steps and using judgment to solve problem, then its a field of AI. • If series of steps can be follow to solve problem, its better to use Algorithm. Its faster and cheaper way. • Prediction API is just a proof of concept yet • REMEMBER: Data model learn from the file you upload, NOT from queries. • Other examples that are equaling to Prediction API • Email Rules or Filters • Amazon recommendation • Automation
References • http://code.google.com/apis/predict/ • http://en.wikipedia.org/wiki/Artificial_intelligence