Why should computers learn?
humans might not have experience (navigating on Mars)
humans might be unable to explain their expertise (speech/image recoginition)
solution changes in time
Learning by feedback
Supervised learning
learning from input-output pairs
reinforcement learning
learning from reward of sequence of actions
unsupervised learning
find patterns in input without feedback
Given: Input-Output-Values (=training data) of Function f
Wanted: Function h that approximates f
h is called hypothesis
accuracy of h is measured using test data
Features
prediciton of future
knowledge extraction (encoded as h)
compression (h < data set)
Supervised learning:
Classification
Output of function is finite set (e.g. red, blue or green) -> input is classified
Example:
Supervisesd Learning
Evaluating function h
h was trained using training set
to test h, we query it with the test set
goal: high prediction accuracy
Decision Trees
data set described by attributes values
try to classify each row
can be realized by decision trees
challenge: find a small decision tree for complex data sets
Classification - Underfitting
low performance on training data
low performance on testing data
reason:
model is too simple
lacks the capacity to capture the complexity of the data
e.g. linear regression for non linear data
e.g. decision tree not considering crucial attributes
Classification - Overfitting
high performance on training data
model is too complex and
captures noise and random variations in the training data
e.g. decision tree is too deep and/or considers attributes which are not relevant for the output
Regression
Output of function is a number
Reinforcement Learning
Agent interacts with environment:
performs actions
receives feedback (penalties or rewards)
learns to optimize actions (maximizing reward over time)
For example:
Elevator scheduling
Chess
Robot control
Unsupervised Learning
no ouput data available
try to find patterns in input without any feedback
Neural Networks
might be used for supervised learning
a network of small computing units
a unit takes a vector as input
computes an output value
Units
input: vector x
output: x*w + b
w is weight vector
x*w is weighted sum of input
b is bias term
Trianing of NN
improve vector w and bias b to improve performance of estimate h
Sequence modeling
idea: generate next stepts given previous steps
e.g. text, video, audio
Recurrent Neural Networks (RNN)
Long Short-term memory (LSTM)
Transformers
cyclic network -> value of unit depends on earlier output
Last changed2 years ago