machine learning - amazon s3...ml (machine learning) - is a type of artificial intelligence (ai)...

94
Machine Learning Boris Nadion [email protected] @borisnadion

Upload: others

Post on 13-Apr-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

Machine Learning

Boris Nadion [email protected]

@borisnadion

Page 3: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

astrailshttp://astrails.com

Page 4: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

awesome web and mobile appssince 2005

Page 5: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 6: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 7: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 8: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 9: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 10: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 11: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

terms

Page 12: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

AI (artificial intelligence)

- the theory and development of computer systems able to perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages

Page 13: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

ML (machine learning)

- is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. Machine learning focuses on the development of computer programs that can teach themselves to grow and change when exposed to new data.

Page 14: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

without being explicitly programmed

Page 15: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

FF NN cost function

Page 16: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

FF NN Cost Function

I’m kidding

Page 17: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

cost function with regularization

Page 18: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

2 types of MLsupervised learning

unsupervised learning

Page 19: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

supervisedthe training data is labeled,

eg. we know the correct answer

Page 20: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

unsupervisedthe training data is not labeled,

eg. we would figure out hidden correlations by ourselves

Page 21: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

linear regressionsupervised learning

Page 22: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

(x(1), y(1)), (x(2), y(2))…(x(m), y(m)) m training examples of (x(i), y(i)) x(i) - feature y(i) - label

x(i)

y(i)

Page 23: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

training set

learning algorithm

hθ(x)x(new data) y(prediction)

Page 24: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

training set

learning algorithm

hθ(x)x(new data) y(prediction)

Page 25: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

hθ(x) = hypothesis

Page 26: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

(x, y)

y = hθ(x) = θ0 + θ1x

find θ0 and θ1

Page 27: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

hθ(x) = θ0 + θ1x1 + θ2x2 + …+ θnxn

many features, n - number of features

Page 28: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

size, sq.m x1

# rooms x2

age x3

price y

80 3 22 2.9M

90 4 24 3.1M

75 3 28 2.5M

110 5 20 3.3M

Page 29: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

1 USD = 3.85 NIS

Page 30: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

hθ(x) = θ0 + θ1x1

summate the prediction error on training set

Page 31: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

Linear Regression Cost Function

Page 32: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

minimize J(θ)funding a minimum of cost function = “learning”

Page 33: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

gradient descentbatch, stochastic, etc, or advanced optimization algorithms

to find a global (sometimes local) minimum of cost function J 𝞪 - learning rate, a parameter of gradient descent

Page 34: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

(x(1), y(1)), (x(2), y(2))…(x(m), y(m))

gradient descent

θ0, θ1, θ2, …, θn

magic inside

Page 35: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

hθ(x) = θ0 + θ1x1 + θ2x2 + …+ θnxn

we’re ready to predict

Page 36: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

features scaling0 ≤ x ≤ 1

Page 37: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

size, sq.m size, sq.m / 110 x1

80 0.72

90 0.81

75 0.68

110 1

Page 38: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

mean normalizationaverage value of the feature is ~0

-0.5 ≤ x ≤ 0.5

Page 39: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

size, sq.m (size, sq.m / 110) - 0.8025 x1

80 -0.0825

90 0.075

75 -0.1226

110 0.1975

Page 40: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

matrix manipulationsX = n x 1 vector, ϴ = n x 1 vector

hθ(x) = θ0 + θ1x1 + θ2x2 + …+ θnxn hθ(x) = ϴTX

Page 41: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

GPU

Page 42: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 43: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

logistic regressionsupervised learning

Page 44: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

classifier

Page 45: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

y = 1, true

y = 0, false

Page 46: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

hθ(x) = g(ϴTX)hθ(X) - estimated probability that y = 1 on input X

g(z) - logistic non-linear function

Page 47: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

logistic function g(z)

there is a few: sigmoid, tahn, ReLUs, etc

image source: Wikipedia

Page 48: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

(x(1), y(1)), (x(2), y(2))…(x(m), y(m))

minimize the cost function

vector θ

y = {0, 1}

Page 49: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

training set

learning algorithm

hθ(x)x(new data) y(prediction)

hθ(x) = g(ϴTX) y ≥ 0.5 - true y < 0.5 - false

Page 50: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

one-vs-allsupervised learning

Page 51: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 52: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

y = 1, true

y = 0, false

y = 0, false

Page 53: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

don’t implement it at homeuse libsvm, liblinear, and others

Page 54: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

neural networkssupervised learning

Page 55: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

neurona0

a1

a2

computation hθ(a)

Page 56: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

feed forward neural network

input layerhidden layer

output layer

Page 57: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

estimates

size, sq.m

# rooms

age

e0

e1

e2

e3

estimates

final estimate

Page 58: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

multiclass classifiers

Page 59: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

logistic unit

x0

x1

x2

θ1

θ2

θ3 hθ = g(x0θ0 + x1θ1 + x2θ2)

θ - weights g - activation function

Page 60: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

logistic function g(z)

there is a few: sigmoid, tahn, ReLUs, etc

image source: Wikipedia

Page 61: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

output: probabilities

0.4765 that y = 2

0.7123 that y = 1

Page 62: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

net with no hidden layersno hidden layers = one-vs-all logistic regression

Page 63: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

cost functionsometimes called loss function of NN, a representation of an error between

a real and a predicted value

Page 64: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

training set

learning algorithm

θx(new data) y(prediction)

Page 65: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

backpropbackward propagation of errors

Page 66: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

gradient descent + backprop“deep learning” - is training a neural net “deep” - because we have many layers

Page 67: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

convolutional neural netswidely used for image processing and object recognition

Page 68: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

recurrent neural netswidely used for natural language processing

Page 69: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

CPU/GPU expensive

Page 70: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

image source: https://xkcd.com/303/

Page 71: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

image source: http://www.falsepositives.com/index.php/2008/01/31/the-real-reason-for-no-increased-productivity-behind-scripting-languages-reveled/

2008

Page 72: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

2016

Page 73: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

destination suggestion

Page 74: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

tangledpath/ruby-fannRuby library for interfacing with FANN

(Fast Artificial Neural Network)

Page 75: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

require './neural_network'

LOCATIONS = [:home, :work, :tennis, :parents]

LOCATIONS_INDEXED = LOCATIONS.map.with_index { |x, i| [x, i] }.to_h

XX = [ # week 1 # 1st day of week, 8am [:work, 1, 8], [:tennis, 1, 17], [:home, 1, 20], [:work, 2, 8], [:home, 2, 18], [:work, 3, 8], [:tennis, 3, 17], [:home, 3, 20], [:work, 4, 8], [:home, 4, 18], [:work, 5, 8], [:home, 5, 18],

[:parents, 7, 13], [:home, 7, 18],

# week 2 [:work, 1, 8], [:home, 1, 18], [:work, 2, 8], [:home, 2, 18], [:work, 3, 8], [:tennis, 3, 17], [:home, 3, 20], [:work, 4, 8], [:home, 4, 18], [:work, 5, 8], [:home, 5, 18],

Page 76: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

XX.each do |destination, day, time| yy << LOCATIONS_INDEXED[destination] xx << [day.to_f/7, time.to_f/24]end

features scaling

Page 77: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

2 ➞ 25 ➞ 4one hidden layer with 25 units

Page 78: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

100% accuracyon training set

Page 79: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

[[1, 16.5], [1, 17], [1, 17.5], [1, 17.8],[2, 17], [2, 18.1],[4, 18],[6, 23],[7, 13],

].each do |day, time| res = nn.predict_with_probabilities([ [day.to_f/7, time.to_f/24] ]).first.

select {|v| v[0] > 0} # filter zero probabilities puts "#{day} #{time} \t #{res.map {|v| [LOCATIONS[v[1]], v[0]]}.inspect}"end

Page 80: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

1 16.5 [[:tennis , 0.97]] 1 17 [[:tennis , 0.86], [:home , 0.06]] 1 17.5 [[:home , 0.52], [:tennis, 0.49]] 1 17.8 [[:home , 0.82], [:tennis, 0.22]] 2 17 [[:tennis , 0.85], [:home , 0.06]] 2 18.1 [[:home , 0.95], [:tennis, 0.07]] 4 18 [[:home , 0.96], [:tennis, 0.08]] 6 23 [[:home , 1.00]]

[:work, 1, 8], [:tennis, 1, 17], [:home, 1, 20], [:work, 2, 8], [:home, 2, 18], [:work, 3, 8], [:tennis, 3, 17], [:home, 3, 20], [:work, 4, 8], [:home, 4, 18], [:work, 5, 8], [:home, 5, 18],

[:parents, 7, 13], [:home, 7, 18],

# week 2 [:work, 1, 8], [:home, 1, 18], [:work, 2, 8], [:home, 2, 18], [:work, 3, 8], [:tennis, 3, 17], [:home, 3, 20], [:work, 4, 8], [:home, 4, 18], [:work, 5, 8], [:home, 5, 18],

Page 81: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

borisnadion/suggested-destination-demoruby code of the demo

Page 82: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

tensorflowbut you will need to learn Python

Page 83: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

clusteringunsupervised learning

Page 84: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

{X(i)}no labels

Page 85: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 86: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

anomaly detectionunsupervised learning

Page 87: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed
Page 88: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

collaborative filteringunsupervised learning

Page 89: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

Jane Arthur John

Star Wars VII 5 5 1

Dr. Strange 5 5 ?

Arrival 5 ? 1

Page 90: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

automatic features and their weights detection

based on the user votes

Page 91: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

similarity between users and between items

Page 92: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

what to google

Page 93: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

http://astrails.com

Page 94: Machine Learning - Amazon S3...ML (machine learning) - is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed

thanks!

Boris Nadion http://astrails.com