Upload
devevents
View
311
Download
0
Embed Size (px)
Citation preview
Building Cognitive Applicationswith Watson APIsCON 3054@sandhyakapoor9 @frankgreco
Background
Chairman NYJavaSIG (javasig.com) Largest Java UG in NA 8k+ members First Java UG ever! Sept 1995 mail: [email protected] twitter: @frankgreco yell: “Hey Frank!”
Developer Advocate – IBM Cloud Security Architect – WebSphere AS Mail: [email protected] twitter: @sandhyakapoor9
To understand cognitive and machine learning applications
Why are they important
How to enhance your apps with cognitive services
Review the Watson Java SDK, and discuss how to enhance your apps with cognitive servives
Goal
What Are We Going to Cover?
What Problems Are We Trying to Solve? Didn’t AI Try This Years Ago? Machine Learning Use Cases The Near Future Who are the Players What is Cognitive Computing? IBM Watson and Cognitive Computing Demos
What Problems Need to be Solved?
Many applications are not explicitly programmable…
Cursive writing
translationAutonomous Driving
Face recognition
http://vision.ics.uci.edu/images/fun/IMG_1183_augmented_reality_faces1.jpghttps://commons.wikimedia.org/wiki/File:Looped_cursive_sample.jpg
We are Used to Deterministic Solutions
Input Output
Same Input gives us the Same Output
Same Input gives us the Same Output
Same Input gives us the Same Output
…
Most of Us are Not Used to Non-Deterministic Solutions
Output1
InputInputInputInput
InputInputInputImput
InputInputInputInputt
Output2
Output3
Lots of Noisy Datasets Sensors, voice, images, video Many variables with noisy data
Probabilistic Outputs Uncertainty, noisy data, randomness, statistical, different contexts, etc.
ModelA ModelB
ModelC ModelD
Artificial Intelligence – But Didn’t We Try This Already?
AI had very Broad Scope
“Intelligent agents, first-order logic, knowledge ontologies, probabilistic reasoning, learning theory, NLP, robotics,…”
Wha’ Happened?
Funding was erratic due to lofty goals and missed milestones
And Unfortunate Marketing…
Hey I thought “;” was a Terminator?
I’m Sorry Dave… But I did Inform You I was a Beta
The Real Problem with AI
Much of historical AI was clever, but much of it was just conventional programming techniques.
Systems still had to be explicitly programmed…
Machine Learning - ML
“Machine Learning” (1959) – Computers that learn without being explicitly
programmed
AI and ML History
1956 – Dartmouth Research Project on AI 1961 – Arthur Samuel Checkers program beats
Champion 1970s – Minimal AI funding and progress 1980s – Expert Systems 1990s – Minimal AI funding and progress 1997 – IBM Deep Blue beats Chess Master Garry
Kasparov 2011 – IBM Watson beats 2 top Jeopardy
Champions 2014 – ML vision recognition surpasses humans
(Google,FB) 2016 – Google AlphaGo beats Go Champ 4 out of
5 games
We are now in accelerated growth era of ML and Cognitive Computing
Software vs. Humans
Jeopardy2011
Chess 1997
Go 2016
Already Being Used in Production
USPS Zip Code Scanning
Bank Checks Image
Submissions
Credit Card Anti Fraud
YouTube Recommendations
Spam filters Facebook Friend
Face Recognition
Apple Photos Image Recognition
Amazon Recommendations
Genome Discovery
Microsoft Skype Translation
Anti Terrorism Patterns
Autonomous Driving
Weather Prediction
Trading Systems
Natural Language Processing
Hacker Intrusion Detection
Why the Growth All of a Sudden?
We are in a Machine Learning “Spring”
No… not *that* Spring...
Huge advances over the past 10-15 years
Easy, cheap access to ML software via Services
Access to OSS frameworks and enginesWatson SDKs, etc.
What’s in the Near Future
More sophisticated computer vision and image detection
Widespread video/media/et-al recommendation subsystems Separate of multiple voices in a crowd Musical instrument detection Brain, MRI and other medical pattern analysis
Over next 3-5 years, ML techniques/skills will be in huge demand
Make existing apps more usable -> more usage
Who Are the Players?
Now… What is Cognitive Computing?
“Cognitive computing has been used to refer to new hardware and/or software that mimics the functioning of the human brain and helps to improve human decision-making”- Wikipedia
Cognitive Computing is Probabilistic
“Cognitive systems are probabilistic. They generate not just answers to numerical problems, but hypotheses, reasoned arguments and recommendations about more complex — and meaningful — bodies of data.” - Dr John E Kelly (IBM)
So… Are There Categories of Cognitive Computing?
Data Enrichment, Augmentation
Translation
Image Recognition
Understandingunstructured data
Interacting with Humans
Btw, written mostly in Java…
IBM Watson and Cognitive Computing
Cognitive apps are built with Watson APIsWatson APIs use NLP and various Machine Learning models/algorithms “under the
hood”
Cognitive apps are “mildly” cognitive or “highly” cognitive
IBM Watson and Cognitive Computing
Clever mimicry of the human brain using
conventional techniques
Apps that use deep learning ML algorithms
Cognitive Apps
mild
high
Watson Services
Java SDK for IBM Watson Services
The Moment You All Have Been Waiting For…
https://github.com/watson-developer-cloud/java-sdk
https://github.com/watson-developer-cloud/java-sdk
public class Frank {
public static void main(String[] args) {
ToneAnalyzer service = new ToneAnalyzer(ToneAnalyzer.VERSION_DATE_2016_05_19);
service.setUsernameAndPassword(USER, PSWD); service.setEndPoint( "https://gateway.watsonplatform.net/tone-analyzer/api");
// Call the service and get the tone ToneOptions options = new ToneOptions.Builder().addTone(Tone.EMOTION) .addTone(Tone.LANGUAGE) .addTone(Tone.SOCIAL) .build();
ToneAnalysis tone = service.getTone(getInput(), options).execute();
System.out.println(tone); }
% java FrankThe NullPointers are an awesome band and great musicians{ "document_tone": { "tone_categories": [ { "category_id": "emotion_tone", "category_name": "Emotion Tone", "tones": [ { "tone_id": "anger", "tone_name": "Anger", "score": 0.081246 },… { "tone_id": "joy", "tone_name": "Joy", "score": 0.811292 }, { "tone_id": "sadness", "tone_name": "Sadness", "score": 0.102273...
https://github.com/watson-developer-cloud/java-sdk
Cognitive Application : AskCognitiveCar.mybluemix.net
https://github.com/sandhya9/conversation-enhanced
• Clone - git clone https://github.com/sandhya9/conversation-enhanced.git
• Click on “Deploy to Bluemix” button• Provide appname• Provide login credentials• Click Deploy
Steps to Setup, Build, Deploy and Test Cognitive Application
On Successful Deployment:
On click Edit Code – Your project is setup for Edits & Git Plugin
Build and Deploy Pipeline
Cognitive App bound to Watson services
Conversing : Web Interface
Conversation flow handled by Watson Conversation Service
Flow in Conversation Tool
Conversation handled by Retrieve and Rank
Conversation Flow for answers retrieved from R&R Corpus
Q, A, Rel, A, Rel..Q, A, Rel, A, Rel..Q, A, Rel, A, Rel..Q, A, Rel, A, Rel..…
Retrieve
Rank
Q
A3 A
7A2
1. Load & Index content in Solr
2. Train a model based on ground truth
3. Query the service with Natural language
4. Return re-ranked results based on machine learning model
How does R&R work?
Resources
Working with intentshttps://www.youtube.com/watch?v=DmvN6ZJrZE4Working with entitieshttps://www.youtube.com/watch?v=oSNF-QCbuDc
Working with dialoghttps://www.youtube.com/watch?v=3HSaVfr3ty0
Building w/ Watson: Training Watson to Detect User Intenthttps://www.youtube.com/watch?v=uYw4Tv1Y5tcBuilding with Watson : New Tools for Dialog Scriptinghttps://www.youtube.com/watch?v=QuR54--vD5o
Ask Technical Questions to NAO Robot and Amazon Echo
See AskDevoxxWatson Cognitive application in action at IBM’s Keynote on Thursday 9 am – 10:45 am.
Thank You!
@sandhyakapoor9@frankgreco