-
35C3 preroll music
-
Herald Angel: Welcome to our introduction
to deep learning with Teubi. Deep
-
learning, also often called machine
learning is a hype word which we hear in
-
the media all the time. It's nearly as bad
as blockchain. It's a solution for
-
everything. Today we'll get a sneak peek
into the internals of this mystical black
-
box, they are talking about. And Teubi
will show us why people, who know what
-
machine learning really is about, have to
facepalm so often, when they read the
-
news. So please welcome Teubi
with a big round of applause!
-
Applause
Teubi: Alright! Good morning and welcome
-
to Introduction to Deep Learning. The
title will already tell you what this talk
-
is about. I want to give you an
introduction onto how deep learning works,
-
what happens inside this black box. But,
first of all, who am I? I'm Teubi. It's a
-
German nickname, it has nothing to do with
toys or bees. You might have heard my
-
voice before, because I host the
Nussschale podcast. There I explain
-
scientific topics in under 10 minutes.
I'll have to use a little more time today,
-
and you'll also have fancy animations
which hopefully will help. In my day job
-
I'm a research scientist at an institute
for computer vision. I analyze microscopy
-
images of bone marrow blood cells and try
to find ways to teach the computer to
-
understand what it sees. Namely, to
differentiate between certain cells or,
-
first of all, find cells in an image,
which is a task that is more complex than
-
it might sound like. Let me start with the
introduction to deep learning. We all know
-
how to code. We code in a very simple way.
We have some input for all computer
-
algorithm. Then we have an algorithm which
says: Do this, do that. If this, then
-
that. And in that way we generate some
output. This is not how machine learning
-
works. Machine learning assumes you have
some input, and you also have some output.
-
And what you also have is some statistical
model. This statistical model is flexible.
-
It has certain parameters, which it can
learn from the distribution of inputs and
-
outputs you give it for training. So you
basically learn the statistical model to
-
generate the desired output from the given
input. Let me give you a really simple
-
example of how this might work. Let's say
we have two animals. Well, we have two
-
kinds of animals: unicorns and rabbits.
And now we want to find an algorithm that
-
tells us whether this animal we have right
now as an input is a rabbit or a unicorn.
-
We can write a simple algorithm to do
that, but we can also do it with machine
-
learning. The first thing we need is some
input. I choose two features that are able
-
to tell me whether this animal is a rabbit
or a unicorn. Namely, speed and size. We
-
call these features, and they describe
something about what we want to classify.
-
And the class is in this case our animal.
First thing I need is some training data,
-
some input. The input here are just pairs
of speed and size. What I also need is
-
information about the desired output. The
desired output, of course, being the
-
class. So either unicorn or rabbit, here
denoted by yellow and red X's. So let's
-
try to find a statistical model which we
can use to separate this feature space
-
into two halves: One for the rabbits, one
for the unicorns. Looking at this, we can
-
actually find a really simple statistical
model, and our statistical model in this
-
case is just a straight line. And the
learning process is then to find where in
-
this feature space the line should be.
Ideally, for example, here. Right in the
-
middle between the two classes rabbit and
unicorn. Of course this is an overly
-
simplified example. Real-world
applications have feature distributions
-
which look much more like this. So, we
have a gradient, we don't have a perfect
-
separation between those two classes, and
those two classes are definitely not
-
separable by a line. If we look again at
some training samples — training samples
-
are the data points we use for the machine
learning process, so, to try to find the
-
parameters of our statistical model — if
we look at the line again, then this will
-
not be able to separate this training set.
Well, we will have a line that has some
-
errors, some unicorns which will be
classified as rabbits, some rabbits which
-
will be classified as unicorns. This is
what we call underfitting. Our model is
-
just not able to express what we want it
to learn. There is the opposite case. The
-
opposite case being: we just learn all the
training samples by heart. This is if we
-
have a very complex model and just a few
training samples to teach the model what
-
it should learn. In this case we have a
perfect separation of unicorns and
-
rabbits, at least for the few data points
we have. If we draw another example from
-
the real world,some other data points,
they will most likely be wrong. And this
-
is what we call overfitting. The perfect
scenario in this case would be something
-
like this: a classifier which is really
close to the distribution we have in the
-
real world and machine learning is tasked
with finding this perfect model and its
-
parameters. Let me show you a different
kind of model, something you probably all
-
have heard about: Neural networks. Neural
networks are inspired by the brain.
-
Or more precisely, by the neurons in our
brain. Neurons are tiny objects, tiny
-
cells in our brain that take some input
and generate some output. Sounds familiar,
-
right? We have inputs usually in the form
of electrical signals. And if they are
-
strong enough, this neuron will also send
out an electrical signal. And this is
-
something we can model in a computer-
engineering way. So, what we do is: We
-
take a neuron. The neuron is just a simple
mapping from input to output. Input here,
-
just three input nodes. We denote them by
i1, i2 and i3 and output denoted by o. And
-
now you will actually see some
mathematical equations. There are not many
-
of these in this foundation talk, don't
worry, and it's really simple. There's one
-
more thing we need first, though, if we
want to map input to output in the way a
-
neuron does. Namely, the weights. The
weights are just some arbitrary numbers
-
for now. Let's call them w1, w2 and w3.
So, we take those weights and we multiply
-
them with the input. Input1 times weight1,
input2 times weight2, and so on. And this,
-
this sum just will be our output. Well,
not quite. We make it a little bit more
-
complicated. We also use something called
an activation function. The activation
-
function is just a mapping from one scalar
value to another scalar value. In this
-
case from what we got as an output, the
sum, to something that more closely fits
-
what we need. This could for example be
something binary, where we have all the
-
negative numbers being mapped to zero and
all the positive numbers being mapped to
-
one. And then this zero and one can encode
something. For example: rabbit or unicorn.
-
So, let me give you an example of how we
can make the previous example with the
-
rabbits and unicorns work with such a
simple neuron. We just use speed, size,
-
and the arbitrarily chosen number 10 as
our inputs and the weights 1, 1, and -1.
-
If we look at the equations, then we get
for our negative numbers — so, speed plus
-
size being less than 10 — a 0, and a 1 for
all positive numbers — being speed plus
-
size larger than 10, greater than 10. This
way we again have a separating line
-
between unicorns and rabbits. But again we
have this really simplistic model. We want
-
to become more and more complicated in
order to express more complex tasks. So
-
what do we do? We take more neurons. We
take our three input values and put them
-
into one neuron, and into a second neuron,
and into a third neuron. And we take the
-
output of those three neurons as input for
another neuron. We also call this a
-
multilayer perceptron, perceptron just
being a different name for a neuron, what
-
we have there. And the whole thing is also
called a neural network. So now the
-
question: How do we train this? How do we
learn what this network should encode?
-
Well, we want a mapping from input to
output, and what we can change are the
-
weights. First, what we do is we take a
training sample, some input. Put it
-
through the network, get an output. But
this might not be the desired output which
-
we know. So, in the binary case there are
four possible cases: computed output,
-
expected output, each two values, 0 and 1.
The best case would be: we want a 0, get a
-
0, want a 1 and get a 1. But there is also
the opposite case. In these two cases we
-
can learn something about our model.
Namely, in which direction to change the
-
weights. It's a little bit simplified, but
in principle you just raise the weights if
-
you need a higher number as output and you
lower the weights if you need a lower
-
number as output. To tell you how much, we
have two terms. First term being the
-
error, so in this case just the difference
between desired and expected output – also
-
often called a loss function, especially
in deep learning and more complex
-
applications. You also have a second term
we call the act the learning rate, and the
-
learning rate is what tells us how quickly
we should change the weights, how quickly
-
we should adapt the weights. Okay, this is
how we learn a model. This is almost
-
everything you need to know. There are
mathematical equations that tell you how
-
much to change based on the error and the
learning function. And this is the entire
-
learning process. Let's get back to the
terminology. We have the input layer. We
-
have the output layer, which somehow
encodes our output either in one value or
-
in several values if we have a multiple,
if we have multiple classes. We also have
-
the hidden layers, which are actually what
makes our model deep. What we can change,
-
what we can learn, is the are the weights,
the parameters of this model. But what we
-
also need to keep in mind, is the number
of layers, the number of neurons per
-
layer, the learning rate, and the
activation function. These are called
-
hyper parameters, and they determine how
complex our model is, how well it is
-
suited to solve the task at hand. I quite
often spoke about solving tasks, so the
-
question is: What can we actually do with
neural networks? Mostly classification
-
tasks, for example: Tell me, is this
animal a rabbit or unicorn? Is this text
-
message spam or legitimate? Is this
patient healthy or ill? Is this image a
-
picture of a cat or a dog? We already saw
for the animal that we need something
-
called features, which somehow encodes
information about what we want to
-
classify, something we can use as input
for the neural network. Some kind of
-
number that is meaningful. So, for the
animal it could be speed, size, or
-
something like color. Color, of course,
being more complex again, because we have,
-
for example, RGB, so three values. And,
text message being a more complex case
-
again, because we somehow need to encode
the sender, and whether the sender is
-
legitimate. Same for the recipient, or the
number of hyperlinks, or where the
-
hyperlinks refer to, or the, whether there
are certain words present in the text. It
-
gets more and more complicated. Even more
so for a patient. How do we encode medical
-
history in a proper way for the network to
learn. I mean, temperature is simple. It's
-
a scalar value, we just have a number. But
how do we encode whether certain symptoms
-
are present. And the image, which is
actually what I work with everyday, is
-
again quite complex. We have values, we
have numbers, but only pixel values, which
-
make it difficult, which are difficult to
use as input for a neural network. Why?
-
I'll show you. I'll actually show you with
this picture, it's a very famous picture,
-
and everybody uses it in computer vision.
They will tell you, it's because there is
-
a multitude of different characteristics
in this image: shapes, edges, whatever you
-
desire. The truth is, it's a crop from the
centrefold of the Playboy, and in earlier
-
years, the computer vision engineers was a
mostly male audience. Anyway, let's take
-
five by five pixels. Let's assume, this is
a five by five pixels, a really small,
-
image. If we take those 25 pixels and use
them as input for a neural network you
-
already see that we have many connections
- many weights - which means a very
-
complex model. Complex model, of course,
prone to overfitting. But there are more
-
problems. First being, we have
disconnected the pixels from its neigh-, a
-
pixel from its neighbors. We can't encode
information about the neighborhood
-
anymore, and that really sucks. If we just
take the whole picture, and move it to the
-
left or to the right by just one pixel,
the network will see something completely
-
different, even though to us it is exactly
the same. But, we can solve that with some
-
very clever engineering, something we call
a convolutional layer. It is again a
-
hidden layer in a neural network, but it
does something special. It actually is a
-
very simple neuron again, just four input
values - one output value. But the four
-
input values look at two by two pixels,
and encode one output value. And then the
-
same network is shifted to the right, and
encodes another pixel, and another pixel,
-
and the next row of pixels. And in this
way creates another 2D image. We have
-
preserved information about the
neighborhood, and we just have a very low
-
number of weights, not the huge number of
parameters we saw earlier. We can use this
-
once, or twice, or several hundred times.
And this is actually where we go deep.
-
Deep means: We have several layers, and
having layers that don't need thousands or
-
millions of connections, but only a few.
This is what allows us to go really deep.
-
And in this fashion we can encode an
entire image in just a few meaningful
-
values. How these values look like, and
what they encode, this is learned through
-
the learning process. And we can then, for
example, use these few values as input for
-
a classification network.
The fully connected network we saw earlier.
-
Or we can do something more clever. We can
do the inverse operation and create an image
-
again, for example, the same image, which
is then called an auto encoder. Auto
-
encoders are tremendously useful, even
though they don't appear that way. For
-
example, imagine you want to check whether
something has a defect, or not, a picture
-
of a fabric, or of something. You just
train the network with normal pictures.
-
And then, if you have a defect picture,
the network is not able to produce this
-
defect. And so the difference of the
reproduced picture, and the real picture
-
will show you where errors are. If it
works properly, I'll have to admit that.
-
But we can go even further. Let's say, we
want to encode something entirely else.
-
Well, let's encode the image, the
information in the image, but in another
-
representation. For example, let's say we
have three classes again. The background
-
class in grey, a class called hat or
headwear in blue, and person in green. We
-
can also use this for other applications
than just for pictures of humans. For
-
example, we have a picture of a street and
want to encode: Where is the car, where's
-
the pedestrian? Tremendously useful. Or we
have an MRI scan of a brain: Where in the
-
brain is the tumor? Can we somehow learn
this? Yes we can do this, with methods
-
like these, if they are trained properly.
More about that later. Well we expect
-
something like this to come out but the
truth looks rather like this – especially
-
if it's not properly trained. We have not
the real shape we want to get but
-
something distorted. So here is again
where we need to do learning. First we
-
take a picture, put it through the
network, get our output representation.
-
And we have the information about how we
want it to look. We again compute some
-
kind of loss value. This time for example
being the overlap between the shape we get
-
out of the model and the shape we want to
have. And we use this error, this lost
-
function, to update the weights of our
network. Again – even though it's more
-
complicated here, even though we have more
layers, and even though the layers look
-
slightly different – it is the same
process all over again as with a binary
-
case. And we need lots of training data.
This is something that you'll hear often
-
in connection with deep learning: You need
lots of training data to make this work.
-
Images are complex things and in order to
meaningful extract knowledge from them,
-
the network needs to see a multitude of
different images. Well now I already
-
showed you some things we use in network
architecture, some support networks: The
-
fully convolutional encoder, which takes
an image and produces a few meaningful
-
values out of this image; its counterpart
the fully convolutional decoder – fully
-
convolutional meaning by the way that we
only have these convolutional layers with
-
a few parameters that somehow encode
spatial information and keep it for the
-
next layers. The decoder takes a few
meaningful numbers and reproduces an image
-
– either the same image or another
representation of the information encoded
-
in the image. We also already saw the
fully connected network. Fully connected
-
meaning every neuron is connected to every
neuron in the next layer. This of course
-
can be dangerous because this is where we
actually get most of our parameters. If we
-
have a fully connected network, this is
where the most parameters will be present
-
because connecting every node to every
node … this is just a high number of
-
connections. We can also do other things.
For example something called a pooling
-
layer. A pooling layer being basically the
same as one of those convolutional layers,
-
just that we don't have parameters we need
to learn. This works without parameters
-
because this neuron just chooses whichever
value is the highest and takes that value
-
as output. This is really great for
reducing the size of your image and also
-
getting rid of information that might not
be that important. We can also do some
-
clever techniques like adding a dropout
layer. A dropout layer just being a normal
-
layer in a neural network where we remove
some connections: In one training step
-
these connections, in the next training
step some other connections. This way we
-
teach the other connections to become more
resilient against errors. I would like to
-
start with something I call the "Model
Show" now, and show you some models and
-
how we train those models. And I will
start with a fully convolutional decoder
-
we saw earlier: This thing that takes a
number and creates a picture. I would like
-
to take this model, put in some number and
get out a picture – a picture of a horse
-
for example. If I put in a different
number I also want to get a picture of a
-
horse, but of a different horse. So what I
want to get is a mapping from some
-
numbers, some features that encode
something about the horse picture, and get
-
a horse picture out of it. You might see
already why this is problematic. It is
-
problematic because we don't have a
mapping from feature to horse or from
-
horse to features. So we don't have a
truth value we can use to learn how to
-
generate this mapping. Well computer
vision engineers – or deep learning
-
professionals – they're smart and have
clever ideas. Let's just assume we have
-
such a network and let's call it a
generator. Let's take some numbers put,
-
them into the generator and get some
horses. Well it doesn't work yet. We still
-
have to train it. So they're probably not
only horses but also some very special
-
unicorns among the horses; which might be
nice for other applications, but I wanted
-
pictures of horses right now. So I can't
train with this data directly. But what I
-
can do is I can create a second network.
This network is called a discriminator and
-
I can give it the input generated from the
generator as well as the real data I have:
-
the real horse pictures. And then I can
teach the discriminator to distinguish
-
between those. Tell me it is a real horse
or it's not a real horse. And there I know
-
what is the truth because I either take
real horse pictures or fake horse pictures
-
from the generator. So I have a truth
value for this discriminator. But in doing
-
this I also have a truth value for the
generator. Because I want the generator to
-
work against the discriminator. So I can
also use the information how well the
-
discriminator does to train the generator
to become better in fooling. This is
-
called a generative adversarial network.
And it can be used to generate pictures of
-
an arbitrary distribution. Let's do this
with numbers and I will actually show you
-
the training process. Before I start the
video, I'll tell you what I did. I took
-
some handwritten digits. There is a
database called "??? of handwritten
-
digits" so the numbers of 0 to 9. And I
took those and used them as training data.
-
I trained a generator in the way I showed
you on the previous slide, and then I just
-
took some random numbers. I put those
random numbers into the network and just
-
stored the image of what came out of the
network. And here in the video you'll see
-
how the network improved with ongoing
training. You will see that we start
-
basically with just noisy images … and
then after some – what we call apox(???)
-
so training iterations – the network is
able to almost perfectly generate
-
handwritten digits just from noise. Which
I find truly fascinating. Of course this
-
is an example where it works. It highly
depends on your data set and how you train
-
the model whether it is a success or not.
But if it works, you can use it to
-
generate fonts. You can generate
characters, 3D objects, pictures of
-
animals, whatever you want as long as you
have training data. Let's go more crazy.
-
Let's take two of those and let's say we
have pictures of horses and pictures of
-
zebras. I want to convert those pictures
of horses into pictures of zebras, and I
-
want to convert pictures of zebras into
pictures of horses. So I want to have the
-
same picture just with the other animal.
But I don't have training data of the same
-
situation just once with a horse and once
with a zebra. Doesn't matter. We can train
-
a network that does that for us. Again we
just have a network – we call it the
-
generator – and we have two of those: One
that converts horses to zebras and one
-
that converts zebras to horses. And then
we also have two discriminators that tell
-
us: real horse – fake horse – real zebra –
fake zebra. And then we again need to
-
perform some training. So we need to
somehow encode: Did it work what we wanted
-
to do? And a very simple way to do this is
we take a picture of a horse put it
-
through the generator that generates a
zebra. Take this fake picture of a zebra,
-
put it through the generator that
generates a picture of a horse. And if
-
this is the same picture as we put in,
then our model worked. And if it didn't,
-
we can use that information to update the
weights. I just took a random picture,
-
from a free library in the Internet, of a
horse and generated a zebra and it worked
-
remarkably well. I actually didn't even do
training. It also doesn't need to be a
-
picture. You can also convert text to
images: You describe something in words
-
and generate images. You can age your face
or age a cell; or make a patient healthy
-
or sick – or the image of a patient, not
the patient self, unfortunately. You can
-
do style transfer like take a picture of
Van Gogh and apply it to your own picture.
-
Stuff like that. Something else that we
can do with neural networks. Let's assume
-
we have a classification network, we have
a picture of a toothbrush and the network
-
tells us: Well, this is a toothbrush.
Great! But how resilient is this network?
-
Does it really work in every scenario.
There's a second network we can apply: We
-
call it an adversarial network. And that
network is trained to do one thing: Look
-
at the network, look at the picture, and
then find the one weak spot in the
-
picture: Just change one pixel slightly so
that the network will tell me this
-
toothbrush is an octopus. Works remarkably
well. Also works with just changing the
-
picture slightly, so changing all the
pixels, but just slight minute changes
-
that we don't perceive, but the network –
the classification network – is completely
-
thrown off. Well sounds bad. Is bad if you
don't consider it. But you can also for
-
example use this for training your network
and make your network resilient. So
-
there's always an upside and downside.
Something entirely else: Now I'd like to
-
show you something about text. A word-
language model. I want to generate
-
sentences for my podcast. I have a network
that gives me a word, and then if I want
-
to somehow get the next word in the
sentence, I also need to consider this
-
word. So another network architecture –
quite interestingly – just takes the
-
hidden states of the network and uses them
as the input for the same network so that
-
in the next iteration we still know what
we did in the previous step. I tried to
-
train a network that generates podcast
episodes for my podcasts. Didn't work.
-
What I learned is I don't have enough
training data. I really need to produce
-
more podcast episodes in order to train a
model to do my job for me. And this is
-
very important, a very crucial point:
Training data. We need shitloads of
-
training data. And actually the more
complicated our model and our training
-
process becomes, the more training data we
need. I started with a supervised case –
-
the really simple case where we, really
simple, the really simpler case where we
-
have a picture and a label that
corresponds to that picture; or a
-
representation of that picture showing
entirely what I wanted to learn. But we
-
also saw a more complex task, where I had
to pictures – horses and zebras – that are
-
from two different domains – but domains
with no direct mapping. What can also
-
happen – and actually happens quite a lot
– is weakly annotated data, so data that
-
is not precisely annotated; where we can't
rely on the information we get. Or even
-
more complicated: Something called
reinforcement learning where we perform a
-
sequence of actions and then in the end
are told "yeah that was great". Which is
-
often not enough information to really
perform proper training. But of course
-
there are also methods for that. As well
as there are methods for the unsupervised
-
case where we don't have annotations,
labeled data – no ground truth at all –
-
just the picture itself. Well I talked
about pictures. I told you that we can
-
learn features and create images from
them. And we can use them for
-
classification. And for this there exist
many databases. There are public data sets
-
we can use. Often they refer to for
example Flickr. They're just hyperlinks
-
which is also why I didn't show you many
pictures right here, because I am honestly
-
not sure about the copyright in those
cases. But there are also challenge
-
datasets where you can just sign up, get
some for example medical data sets, and
-
then compete against other researchers.
And of course there are those companies
-
that just have lots of data. And those
companies also have the means, the
-
capacity to perform intense computations.
And those are also often the companies you
-
hear from in terms of innovation for deep
learning. Well this was mostly to tell you
-
that you can process images quite well
with deep learning if you have enough
-
training data, if you have a proper
training process and also a little if you
-
know what you're doing. But you can also
process text, you can process audio and
-
time series like prices or a stack
exchange – stuff like that. You can
-
process almost everything if you make it
encodeable to your network. Sounds like a
-
dream come true. But – as I already told
you – you need data, a lot of it. I told
-
you about those companies that have lots
of data sets and the publicly available
-
data sets which you can actually use to
get started with your own experiments. But
-
that also makes it a little dangerous
because deep learning still is a black box
-
to us. I told you what happens inside the
black box on a level that teaches you how
-
we learn and how the network is
structured, but not really what the
-
network learned. It is for us computer
vision engineers really nice that we can
-
visualize the first layers of a neural
network and see what is actually encoded
-
in those first layers; what information
the network looks at. But you can't really
-
mathematically prove what happens in a
network. Which is one major downside. And
-
so if you want to use it, the numbers may
be really great but be sure to properly
-
evaluate them. In summary I call that
"easy to learn". Every one – every single
-
one of you – can just start with deep
learning right away. You don't need to do
-
much work. You don't need to do much
learning. The model learns for you. But
-
they're hard to master in a way that makes
them useful for production use cases for
-
example. So if you want to use deep
learning for something – if you really
-
want to seriously use it –, make sure that
it really does what you wanted to and
-
doesn't learn something else – which also
happens. Pretty sure you saw some talks
-
about deep learning fails – which is not
what this talk is about. They're quite
-
funny to look at. Just make sure that they
don't happen to you! If you do that
-
though, you'll achieve great things with
deep learning, I'm sure. And that was
-
introduction to deep learning. Thank you!
Applause
-
Herald Angel: So now it's question and
answer time. So if you have a question,
-
please line up at the mikes. We have in
total eight, so it shouldn't be far from
-
you. They are here in the corridors and on
these sides. Please line up! For
-
everybody: A question consists of one
sentence with the question mark in the end
-
– not three minutes of rambling. And also
if you go to the microphone, speak into
-
the microphone, so you really get close to
it. Okay. Where do we have … Number 7!
-
We start with mic number 7:
Question: Hello. My question is: How did
-
you compute the example for the fonts, the
numbers? I didn't really understand it,
-
you just said it was made from white
noise.
-
Teubi: I'll give you a really brief recap
of what I did. I showed you that we have a
-
model that maps image to some meaningful
values, that an image can be encoded in
-
just a few values. What happens here is
exactly the other way round. We have some
-
values, just some arbitrary values we
actually know nothing about. We can
-
generate pictures out of those. So I
trained this model to just take some
-
random values and show the pictures
generated from the model. The training
-
process was this "min max game", as its
called. We have two networks that try to
-
compete against each other. One network
trying to distinguish, whether a picture
-
it sees is real or one of those fake
pictures, and the network that actually
-
generates those pictures and in training
the network that is able to distinguish
-
between those, we can also get information
for the training of the network that
-
generates the pictures. So the videos you
saw were just animations of what happens
-
during this training process. At first if
we input noise we get noise. But as the
-
network is able to better and better
recreate those images from the dataset we
-
used as input, in this case pictures of
handwritten digits, the output also became
-
more lookalike to those numbers, these
handwritten digits. Hope that helped.
-
Herald Angel: Now we go to the
Internet. – Can we get sound for the signal
-
Angel, please? Teubi: Sounded so great,
"now we go to the Internet."
-
Herald Angel: Yeah, that sounds like
"yeeaah".
-
Signal Angel: And now we're finally ready
to go to the interwebs. "Schorsch" is
-
asking: Do you have any recommendations
for a beginner regarding the framework or
-
the software?
Teubi: I, of course, am very biased to
-
recommend what I use everyday. But I also
think that it is a great start. Basically,
-
use python and use pytorch. Many people
will disagree with me and tell you
-
"tensorflow is better." It might be, in my
opinion not for getting started, and there
-
are also some nice tutorials on the
pytorch website. What you can also do is
-
look at websites like OpenAI, where they
have a gym to get you started with some
-
training exercises, where you already have
datasets. Yeah, basically my
-
recommendation is get used to Python and
start with a pytorch tutorial, see where
-
to go from there. Often there also some
github repositories linked with many
-
examples for already established network
architectures like the cycle GAN or the
-
GAN itself or basically everything else.
There will be a repo you can use to get
-
started.
Herald Angel: OK, we stay with the
-
internet. There's some more questions, I
heard.
-
Signal Angel: Yes. Rubin8 is asking: Have
you have you ever come across an example
-
of a neural network that deals with audio
instead of images?
-
Teubi: Me personally, no. At least not
directly. I've heard about examples, like
-
where you can change the voice to sound
like another person, but there is not much
-
I can reliably tell about that. My
expertise really is in image processing,
-
I'm sorry.
Herald Angel: And I think we have time for
-
one more question. We have one at number
8. Microphone number 8.
-
Question: Is the current Face recognition
technologies in, for example iPhone X, is
-
it also a deep learning algorithm or is
it something more simple? Do you have any
-
idea about that?
Teubi: As far as I know, yes. That's all I
-
can reliably tell you about that, but it
is not only based on images but also uses
-
other information. I think distance
information encoded with some infrared
-
signals. I don't really know exactly how
it works, but at least iPhones already
-
have a neural network
processing engine built in, so a chip
-
dedicated to just doing those
computations. You saw that many of those
-
things can be parallelized, and this is
what those hardware architectures make use
-
of. So I'm pretty confident in saying,
yes, they also do it there.
-
How exactly, no clue.
-
Herald Angel: OK. I myself have a last
-
completely unrelated question: Did you
create the design of the slides yourself?
-
Teubi: I had some help. We have a really
great Congress design and I use that as an
-
inspiration to create those slides, yes.
-
Herald Angel: OK, yeah, because those are really amazing. I love them.
-
Teubi: Thank you!
-
Herald Angel: OK, thank you very much
Teubi.
-
35C5 outro music
-
subtitles created by c3subtitles.de
in the year 2019. Join, and help us!