SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla...

48
SOFTWARE 2.0 David Parker Software Engineer - Microsoft

Transcript of SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla...

Page 1: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SOFTWARE 2.0David Parker

Software Engineer -Microsoft

Page 2: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SPRING 2019

• CSD 439 – Big Data Application Development

• Basically learn how solve cool problems at scale…

Page 3: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

ABOUT THE SPEAKER

Page 4: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SKYNET

Source: [19]

Page 5: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

AMAZON GO

Source: [21]

Page 6: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

Source: [13]Source: [12]

Source: [11]Source: [10]

CUURENT MAJOR ACHIEVEMENTS WITH AI AND MACHINE LEARNING

Page 7: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

WHAT IS SOFTWARE 2.0?

• Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software

• He calls this shift, “Software 2.0”

• Emerging trend in industry that is rapidly advancing our ability to solve problems

• “AI is the new electricity” (Andrew Ng)

Page 8: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

HOW WE BUILD SOFTWARE TODAY

• Decompose large problems into smaller, easier problems to solve

Source: [1]

Page 9: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

• This process of an explicit description of problem solving steps is what we will call Software 1.0

• Software 1.0 is the technology stack

we have become accustom to

SOFTWARE 1.0

Source: [2]

Page 10: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SOFTWARE 1.0

• Great for problems that are well defined, i.e.

• TCP/IP Stack: layered stack of protocols to facilitate reliable data transfer over the internet

• Computer Graphics: geometric shapes to 2D pixels on a screen

Page 11: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

• Some tasks are too hard for Software 1.0

• Consider the problem of image recognition

Sobel

Source: [4]

Page 12: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

DECOMPOSE?

Page 13: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

COMPUTER SEES PIXELS

Pixels:

[255, 0, 0]

[152, 52, 86]

[200, 100, 1]

[ 0, 50, 9]

Page 14: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

DIFFERENT PERSPECTIVES

Source: [7]

Page 15: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

DIFFERENT PERSPECTIVES

Source: [7]

Page 16: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

CONV NETS

• The problem of image recognition is easily solved using Convolutional Neural Networks (CNNs aka Conv Nets)

Source: [5]

Page 17: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

COMPUTER VISION CHART

Source: [3]

Page 18: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

WHAT IS A NEURAL NETWORK?

• A data structure that connects the outputs of nodes to inputs of new nodes in a layered fashion

• Inspired by biological neural networks, like the ones in our brains

y = activate(w1*x1 + w2*x2 + w3*x3)

Source: [5]

Page 19: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

WHAT IS A NEURAL NETWORK?

• Chain the outputs of the perceptrons to inputs of others

Source: [6]

Page 20: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Source: [8]

Page 21: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Page 22: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Page 23: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Page 24: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Page 25: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

Page 26: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

P

Page 27: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

CONCLUSION?

Source: [20]

Page 28: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

Q*BERT

Page 29: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

Q*BERT

Page 30: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

QUICK RECAP

• Software 1.0 was about explicitly engineering systems

• Software 2.0 is about finding programs through optimization i.e. directed search using training data as the guide

Page 31: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

NOT EXACTLY…

• Still many limitations that need to be overcome… more on that in a bit

Source: [9]

Page 32: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

PROGRAMS FROM DATA

• Learning programs from data means we need… more data

• “Accumulating a nice, varied, large, clean dataset for all the different tasks you want to do, and worrying about all the edge cases and massaging it is where most of the action is” (Andrej Karpathy, 2018).

Page 33: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SOFTWARE 2.0 TOOLCHAIN

• Does not yet exist..

• Companies are investing in it

• But what does it look like?

Page 34: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SOFTWARE 2.0 TOOLCHAIN

Source: [15]Source: [14]

?

Zoph, Barret; Le, Quoc V. (2016-11-04). "Neural Architecture Search with Reinforcement Learning". arXiv:1611.01578

Page 35: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

SOFTWARE 2.0 TOOLCHAIN

Source: [18]

Page 36: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS

• It’s not all rainbows and butterflies…

?

Source: [16]

Bus Noise

Page 37: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS

• It’s not all rainbows and butterflies…

Source: [16]

Bus Noise

Page 38: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS

• It’s not all rainbows and butterflies…

OstrichBus Noise

Source: [16]

Page 39: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS• What is the minimum pixels that

need to be changed in order to perform this adversarial attack?

Page 40: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS• What is the minimum pixels that

need to be changed in order to perform this adversarial attack?

• One.

Page 41: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

OPEN ISSUES AND CONCERNS• What is the minimum pixels that

need to be changed in order to perform this adversarial attack?

• One.

Source: [17]

Page 42: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

ECONOMIC OPPORTUNITIES • Blue River Technology

• Founded by a couple of Stanford students

• Uses object detection to identify weeds and selectively sprays herbicide

Page 43: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

ECONOMIC OPPORTUNITIES • Reduces the amount of herbicide

used by 90% = less cost to farmers and combats herbicide resistance

• Sold to John Deere for $300mil

Page 44: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

CLOSING REMARKS

• Software 2.0 doesn’t “replace” Software 1.0. It simply gives us a new tool for solving problems.

Page 45: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

CLOSING REMARKS

• Software 2.0 doesn’t “replace” Software 1.0. It simply gives us a new tool for solving problems.

• “Practice makes perfect for a pretty good local minimum”. – David Parker, just now.

Page 46: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

THANK YOU.

Page 47: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

Q & A

Page 48: SOFTWARE 2.0 David Parker€¦ · WHAT IS SOFTWARE 2.0? •Andrej Karpathy, Director of AI, Tesla Identified a fundamental paradigm shift in how we build software •He calls this

MEDIA SOURCES• [1] https://codehs.gitbooks.io/apjava/content/static/karel/movie_diagram.png

• [2] https://pixabay.com/en/source-code-code-programming-c-583537/

• [3] https://www.youtube.com/watch?v=zywIvINSlaI&t=305s

• [4] https://www.pexels.com/photo/adorable-animal-cat-cute-358464/

• [5] https://towardsdatascience.com/build-your-own-convolution-neural-network-in-5-mins-4217c2cf964f

• [6] https://chatbotslife.com/how-neural-networks-work-ff4c7ad371f7

• [7] https://www.petmd.com/cat/behavior/evr_ct_what-does-it-mean-when-a-cat-wags-tail

• [8] https://alykhantejani.github.io/images/gradient_descent_line_graph.gif

• [9] https://xkcd.com/1838/

• [10] https://www.shellypalmer.com/2016/03/alphago-vs-not-fair-fight/

• [11] https://www.inverse.com/article/35449-elon-musk-dota-2-openai-the-international-dendi-1v1

• [12] https://research.nvidia.com/sites/default/files/pubs/2017-10_Progressive-Growing-of/karras2018iclr-paper.pdf

• [13] https://www.engadget.com/2016/01/25/tesla-autopilot-promo-shows-what-it-can-do-for-your-commute/

• [14] https://danielmiessler.com/blog/the-difference-between-decompilers-disassemblers-debuggers-and-hex-editors/

• [15] https://www.rsipvision.com/wp-content/uploads/2015/04/Slide5.png

• [16] https://arxiv.org/pdf/1312.6199.pdf

• [17] https://arxiv.org/pdf/1710.08864.pdf

• [18] https://poloclub.github.io/ganlab/

• [19] https://www.marketwatch.com/story/this-is-what-happens-when-skynet-from-terminator-takes-over-the-stock-market-2018-02-14

• [20] https://medium.com/@karpathy/software-2-0-a64152b37c35

• [21] https://www.amazon.com/b?ie=UTF8&node=16008589011