Creating Human interfaces with AI

A presentation at Azure Saturday Munich 2019 in May 2019 in Munich, Germany by Chris Heilmann

Slide 1

Slide 1

Welcome to Azure Saturday 2019 Munich #AzureSaturday 18.05.2019 – Microsoft Munich – azuresaturday.de — @azuresaturday

Slide 2

Slide 2

#AzureSaturday 18.05.2019 – Microsoft Munich – azuresaturday.de – @azuresaturday Building human interfaces powered by AI Speaker: Chris Heilmann

Slide 3

Slide 3

Building human interfaces powered by AI Chris Heilmann (@codepo8) November 2018

Slide 4

Slide 4

All resources: aka.ms/human-ai @codepo8

Slide 5

Slide 5

Let’s talk about “Artificial Intelligence” @codepo8

Slide 6

Slide 6

What is the difference between Machine Learning and Artificial Intelligence? @codepo8

Slide 7

Slide 7

Machine Learning is written in Python, JavaScript… Artificial Intelligence is written in PowerPoint. @codepo8

Slide 8

Slide 8

Artificial Intelligence @codepo8 ▪ Is nothing new – the concepts go back to the 50ies ▪ Is quite the hype and very often misattributed ▪ Is an umbrella term for a lot of math and science around repetition, pattern recognition and machine learning ▪ Got a huge boost because of availability of hardware ▪ Became much more feasible because of the availability of lots of data

Slide 9

Slide 9

Reminders of “genie in the bottle” @codepo8 ▪ Fulfills our wishes seemingly with invisible magic ▪ Useful, and feels too good to be true ▪ Once released, may have a dark, sinister edge to it ▪ Hard to put back into the bottle.

Slide 10

Slide 10

Let’s start with some predictions. @codepo8 ▪ AI is the number one growth market in IT – the others are cloud and security ▪ Machine Learning is already replacing thousands of jobs – boring, terrible jobs humans should not do ▪ This is also happening in IT – we are not invincible because we know hot to exit Vim

Slide 11

Slide 11

Let’s start with some predictions. @codepo8 ▪ There is no stopping this – it is just too convenient ▪ The amount of data we create (actively or by triggering sensors) demands machines to whittle it down for us to make it consumable by humans ▪ If we as developers and decision makers in IT don’t take ownership and lead with good, ethical examples, we’ll throw away decades of work democratising computing

Slide 12

Slide 12

The machines are watching… Florian Ziegler flickr.com/photos/damndirty/41263240134

Slide 13

Slide 13

Social Credit System @codepo8 https://futurism.com/china-social-credit-system-rate-human-value/

Slide 14

Slide 14

Big brother is redundant… @codepo8 ▪ Everything we do online is monitored and recorded ▪ We often don’t realise that our data is how we pay for “free” services ▪ We’re happy to use systems that record all the time in exchange for convenience ▪ Often people don’t realise just how dangerous this can be in the wrong hands.

Slide 15

Slide 15

Everything counts in large amounts @codepo8 ▪ We create a massive amount of information – actively and without our knowledge. ▪ It is tough to make that amount of information consumable again. ▪ That’s why we have computers ▪ With cloud computing, on demand processing and advances in hardware we’re faster than ever.

Slide 16

Slide 16

Leaving invisible marks… @codepo8 ▪ By using other people’s machines and infrastructure, we leave traces ▪ This allows companies to recognise us, and accumulates a usage history ▪ This leads to better results, but can leak data ▪ We should have more transparency about what digital legacy we left behind.

Slide 17

Slide 17

Are machines friend or foe? Florian Ziegler flickr.com/photos/damndirty/40153024740/

Slide 18

Slide 18

Artificial Intelligence Myths @codepo8 ▪ AI can’t replace a thinking, creative human ▪ AI can not magically fill gaps with perfect information – it can only compare and assume ▪ AI doesn’t learn in a creative fashion. It makes no assumptions ▪ AI has no morals and ethics, but – used wrongly – it can amplify our biases

Slide 19

Slide 19

Machines can be great tools or weapons… @codepo8 ▪ Machine Learning is all about returning assumptions ▪ We don’t get any definitive truth from algorithms, we get answers to our questions ▪ AI can answer questions, but it is up to you to ask good questions – generic questions yield assumed results.

Slide 20

Slide 20

Unguided or supervised AI… @codepo8 http://inspirobot.me

Slide 21

Slide 21

It can be demanding @codepo8 http://inspirobot.me

Slide 22

Slide 22

It can mix up needs… @codepo8 http://inspirobot.me

Slide 23

Slide 23

It can be overly excited… @codepo8 http://inspirobot.me

Slide 24

Slide 24

It can be a good warning… @codepo8 http://inspirobot.me

Slide 25

Slide 25

It can be painfully humbling… @codepo8 http://inspirobot.me

Slide 26

Slide 26

Prophetic, even? @codepo8 http://inspirobot.me

Slide 27

Slide 27

Passive aggressive towards humans… @codepo8

Slide 28

Slide 28

It can be adoringly cute… @codepo8 https://twitter.com/eron_gj/status/967672260147470336

Slide 29

Slide 29

Whilst being actually kick-ass @codepo8 https://www.youtube.com/watch?v=gn4nRCC9TwQ

Slide 30

Slide 30

Machines can be great tools or weapons… @codepo8 ▪ Untrained and limited data leads to terrible and biased AI results ▪ It is very easy to get either wrong deductions or false positives ▪ AI is as intelligent and good as the people who apply it

Slide 31

Slide 31

Machine learning helps us in a few ways… @codepo8 ▪ Recommendation ▪ Prediction ▪ Classification ▪ Clustering ▪ Generation

Slide 32

Slide 32

Machines ploughing through lots of data for you. Recommendation @codepo8 ▪ “I feel lucky” moments ▪ Slack finding people in your organization ▪ Intelligent inboxes ▪ Automated photo optimization ▪ Automated tagging and alternative text: “Image may contain”

Slide 33

Slide 33

You’re doing this – you probably want this as the next thing Prediction @codepo8 ▪ Text autocompletion ▪ Task offerings ▪ Image tooling – adding photos to a collage ▪ Creating albums ▪ Offering similar music and videos ▪ Offering products that match

Slide 34

Slide 34

Sort things by what humans told you what they are and scale it up Classification @codepo8 ▪ Google surveys offering the right form elements for a question ▪ Detecting faces and asking for more information ▪ Finding anomalies in health scans and doing the same for all the ones in the system

Slide 35

Slide 35

Find own patterns and collate them Clustering @codepo8 ▪ Photo tagging and ordering ▪ Document analysis ▪ Comment filtering and triaging ▪ Video optimisation dependent on content.

Slide 36

Slide 36

Allow the machine to create things Generation @codepo8 ▪ Art style matching ▪ Generated articles from fact collection ▪ Synthesised music ▪ Filling content with tagged information (grass, houses, brick, etc…) ▪ React to human input

Slide 37

Slide 37

We need to find our place on the scale @codepo8

Slide 38

Slide 38

About face… @codepo8 aka.ms/face-api

Slide 39

Slide 39

About face… @codepo8 ▪ Face rectangle / Landmarks ▪ Pose (pitch/roll/yaw) ▪ Smile ▪ Gender/Age ▪ Type of glasses ▪ Makeup (lips/eye) ▪ Emotion (anger, contempt, disgust, fear, happiness, neutral, sadness, surprise) ▪ Occlusion (forehead/eye/mouth) ▪ Facial hair (moustache/beard/sideburns) ▪ Attributes: Hair (invisible, bald, colour) aka.ms/face-api

Slide 40

Slide 40

Is this you? Are those also you? @codepo8 aka.ms/face-api

Slide 41

Slide 41

Is this your driver? @codepo8 youtube.com/watch?v=aEBi4OpXU4Q

Slide 42

Slide 42

Taking it too far? @codepo8 ntechlab.com

Slide 43

Slide 43

Detecting even more… @codepo8 https://apnews.com/bf75dd1c26c947b7826d270a16e2658a

Slide 44

Slide 44

Those trustworthy avatars… @codepo8 https://blog.insightdatascience.com/ generating-custom-photo-realistic-faces-using-ai-d170b1b59255

Slide 45

Slide 45

Those trustworthy avatars… @codepo8 https://blog.insightdatascience.com/ generating-custom-photo-realistic-faces-using-ai-d170b1b59255

Slide 46

Slide 46

Automated face mapping… @codepo8 https://github.com/SpiderLabs/social_mapper

Slide 47

Slide 47

Once you are known… @codepo8 https://github.com/SpiderLabs/social_mapper

Slide 48

Slide 48

Photo by Florian Ziegler flickr.com/photos/damndirty/40153024740/ AI for humans Andreas Dantz flickr.com/photos/szene/40193567250

Slide 49

Slide 49

I want people to appreciate AI, without giving up their data unwillingly… @codepo8

Slide 50

Slide 50

The best way to do this, is to stop selling it as magic, but as a tool… @codepo8

Slide 51

Slide 51

How AI can help humans… @codepo8 aka.ms/ai-for-good

Slide 52

Slide 52

Humans ▪ Messy and prone to mistakes ▪ Forget things and filter them by their biases Bots and computers… ▪ Make no mistakes, other than physical fatigue ▪ Never forget, don’t judge ▪ Bored when doing repetitive tasks ▪ Great at tedious, boring tasks ▪ When bored create more errors ▪ Repeat things with minor changes on iterations till a result is met ▪ Non-optimised communication, lots of nuances and misunderstanding @codepo8 ▪ Highly optimised, non-nuanced communication.

Slide 53

Slide 53

Humans ▪ Messy and prone to mistakes ▪ Forget things and filter them by their biases Bots and computers… ▪ Make no mistakes, other than physical fatigue ▪ Never forget, don’t judge ▪ Bored when doing repetitive tasks ▪ Great at tedious, boring tasks ▪ When bored create more errors ▪ Repeat things with minor changes on iterations till a result is met ▪ Non-optimised communication, lots of nuances and misunderstanding @codepo8 ▪ Highly optimised, non-nuanced communication.

Slide 54

Slide 54

We need data, so let’s make it joyful for humans to give us some @codepo8

Slide 55

Slide 55

Humans and Bots/Computers @codepo8 autodraw.com

Slide 56

Slide 56

Humans and Bots/Computers @codepo8 autodraw.com

Slide 57

Slide 57

Humans and Bots/Computers @codepo8 quickdraw.withgoogle.com

Slide 58

Slide 58

Humans and Bots/Computers @codepo8 google.com/recaptcha/intro

Slide 59

Slide 59

“Learning” from lots of images @codepo8 https://github.com/jantic/DeOldify

Slide 60

Slide 60

Humans and Bots/Computers aka.ms/nvidia-fix-image

Slide 61

Slide 61

Humans and Bots/Computers aka.ms/nvidia-fix-image

Slide 62

Slide 62

Humans and Bots/Computers aka.ms/nvidia-fix-image

Slide 63

Slide 63

Humans and Bots/Computers gandissect.csail.mit.edu/

Slide 64

Slide 64

Our toolkit for more human interfaces Natural language processing @codepo8 Computer Vision Sentiment analysis Speech conversion and analysis Moderation

Slide 65

Slide 65

Language and Writing @codepo8 ▪ Probably the oldest task on the web was translation ▪ This moved deeper into Natural Language Processing and Language Detection ▪ Using these, we can allow for human commands and finding out tasks by analyzing texts. “How far am I from the capital of Denmark?” “Where do I find a good restaurant around here?” “Show me documents I wrote five days ago with more than 600 words”

Slide 66

Slide 66

Computer Vision @codepo8 ▪ When text wasn’t cool enough, we added images to our web media ▪ Often we forget that not everyone can see them, and we leave them without alternative text ▪ This is where machine learning steps in to help turning an image into a dataset we can work with.

Slide 67

Slide 67

Vision and image analysis… instagram: @larryandanke @codepo8

Slide 68

Slide 68

Vision and image analysis… @codepo8

Slide 69

Slide 69

Vision and image analysis… @codepo8

Slide 70

Slide 70

Vision and image analysis… @codepo8 twitter.com/mixedhunty/status/980551155297157126

Slide 71

Slide 71

Vision and image analysis… @codepo8 #vision_api

Slide 72

Slide 72

Vision and image analysis… @codepo8 aka.ms/vision-api

Slide 73

Slide 73

Vision and image analysis… @codepo8 aka.ms/vision-api

Slide 74

Slide 74

Vision and image analysis… @codepo8 aka.ms/vision-api

Slide 75

Slide 75

Vision and image analysis… @codepo8 aka.ms/vision-api

Slide 76

Slide 76

Vision and image analysis… @codepo8 aka.ms/vision-api

Slide 77

Slide 77

Sentiment analysis @codepo8 ▪ Finding out the sentiment of a text, image or video can help with a lot of things ▪ You can navigate videos by only showing the happy parts ▪ You can detect which comment should be answered first by a help desk ▪ You can predict when drivers of cars get tired

Slide 78

Slide 78

▪ Audio interfaces are all the rage. ▪ You can allow hands-free control of devices ▪ You can have an “always on” system to help you out without having to interface with it ▪ It feels natural and has a massive Sci-Fi feeling – when it works. Speech @codepo8

Slide 79

Slide 79

Speech recognition @codepo8 aka.ms/text-to-speech

Slide 80

Slide 80

Turning sentences into commands @codepo8 luis.ai aka.ms/luis-api

Slide 81

Slide 81

Text to speech @codepo8 aka.ms/text-to-speech

Slide 82

Slide 82

Conversation as an interface @codepo8 aka.ms/conversation-ui

Slide 83

Slide 83

Speaker recognition @codepo8 aka.ms/speaker-recognition

Slide 84

Slide 84

Speaker recognition @codepo8 aka.ms/speaker-recognition

Slide 85

Slide 85

Moderation @codepo8 ▪ Some things are not meant to be consumed by people ▪ Computers don’t need counselling once they saw them – people should ▪ Known illegal and terrible content can be automatically removed

Slide 86

Slide 86

With great power comes great responsibility… @codepo8

Slide 87

Slide 87

Our responsibilities.. @codepo8 ▪ AI can be an amazing help for humans ▪ It does need transparency – if you use people as data sources, they need to know what and where it goes ▪ When people get information filtered by an algorithm, it should be an opt-in ▪ People need to have a chance to dispute when an algorithm tagged or disallowed them access.

Slide 88

Slide 88

Want to go deep? ▪ The Math behind ML ▪ The ethics of AI ▪ Working with Data using Python ▪ Machine Learning Models ▪ Deep Learning Models ▪ Reinforcement Learning Models ▪ Microsoft Professional Program Certificate in Artificial Intelligence aka.ms/learn-ai 10 courses, (8-16 hours each), 10 skills @codepo8

Slide 89

Slide 89

Want to go deep? skl.sh/christian Free with trial sign-up @codepo8

Slide 90

Slide 90

Who controls our data? Who benefits? @codepo8 ▪ With all this we need to make clear who has your data and where it goes. ▪ Wouldn’t it be great if we could do more on our devices? ▪ Much lower latency, better security, increased privacy ▪ Right now, this is only possible in native environments ▪ I want to change that – a W3C proposal to bring accelerated Machine Learning to the web in JavaScript

Slide 91

Slide 91

Who controls our data? Who benefits? w3.org/community/webmachinelearning @codepo8

Slide 92

Slide 92

Don’t forget to have fun! @codepo8

Slide 93

Slide 93

Suz Hinton @codepo8 github.com/noopkat/face-api-emoji-face

Slide 94

Slide 94

Categorising images by gesture @codepo8 http://pointerpointer.com

Slide 95

Slide 95

Find your moves @codepo8 https://experiments.withgoogle.com/move-mirror

Slide 96

Slide 96

Stay silly… @codepo8 Cassie Evans https://codepen.io/cassie-codes/pen/jKaVqo/

Slide 97

Slide 97

Help the human @codepo8 https://charliegerard.github.io/teachable-keyboard/

Slide 98

Slide 98

Artificial Intelligence @codepo8 https://charliegerard.github.io/teachable-keyboard/

Slide 99

Slide 99

Collaborate and share… @codepo8 Linda Liukas https://helloruby.com

Slide 100

Slide 100

Preparing the next generation @codepo8 Linda Liukas https://helloruby.com

Slide 101

Slide 101

Thanks! Chris Heilmann Christianheilmann.com Developer-evangelism.com @codepo8 http://inspirobot.me/