Alejandro Piad Morffis Profile picture
Sep 21, 2020 β€’ 12 tweets β€’ 4 min read β€’ Read on X
Hey, today is #MindblowingMonday 🀯!

A day to share with you amazing things from every corner of Computer Science.

Today I want to talk about Generative Adversarial Networks πŸ‘‡
🍬 But let's begin with some eye candy.

Take a look at this mind-blowing 2-minute video and, if you like it, then read on, I'll tell you a couple of things about it...

Generative Adversarial Networks (GAN) have taken by surprise the machine learning world with their uncanny ability to generate hyper-realistic examples of human faces, cars, landscapes, and a lot of other stuff, as you just saw.

Want to know how they work? πŸ‘‡
There are many variants, but the core idea is to have 2️⃣ neural networks:

- βš™οΈ a generator network
- βš–οΈ a discriminator network

Both networks are connected in a sort of adversarial game, where each is trying to outperform the other.
βš–οΈ The discriminator is a regular neural network whose job is to determine if a specific sample (say, an image of a face) is real or generated.

This network's architecture depends on the classification task, as usual, e.g., lots of convolutions and pooling for images.
βš™οΈ The generator network is a decoder network, whose job is to transform an input of random values to whatever you want to generate.

In images, for example, you'll have deconvolution layers and upsampling, i.e., the "reverse" of an image classification network.
🎩 All the magic happens in the training.

You train the discriminator by alternatively showing it real and generated images, and minimizing some classification loss (e.g., binary cross-entropy).
The generator is trained to try and "fool" the discriminator. But this is not easy, so the trick involves letting it "see" the discriminator loss function.

πŸ’‘ It's like showing you my brain while you perform a magic trick, so you can understand how I can be fooled best.
This is the basic idea, but the devil is in the details. Two common problems with GANs are:

1️⃣ The discriminator learns much faster, so the generator never gets a chance to catch up.

2️⃣ The generator gets complacent and just produces the same good examples over and over.
πŸ€” Finally, beyond the technical challenges, the possibility of suddenly creating very realistic content opens a can of worms of ethical issues such as disinformation.

But technology itself is neither good nor bad, it is just a tool. It's on ourselves what we do with it.
As usual, if you like this topic, have any questions, or just want to discuss, reply in this thread or @ me any time. I'll be listening.

This thread is available in plain format here, forever:
apiad.net/tweetstorms/mi…

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Alejandro Piad Morffis

Alejandro Piad Morffis Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @alepiad

Jul 26, 2023
What is Machine Learning?

Here's a 3 min intuitive introduction explaining why this is the most powerful paradigm shift for conventional software development.

No math, no code, just intuitions. Let's dive in.
Conventional software is about automating stuff.

A client comes up with a problem, and to solve it, as a software developer, you must understand very precisely how a human would do it.

Then you can proceed to automate that process.
This is great. Computers are so much faster than humans for so many trivial tasks.

By leveraging that, we can turn a quantitative improvement into a qualitative one, solving in seconds problems that would take humans years.

But there's a catch...
Read 14 tweets
Jul 22, 2022
Clustering is a process for discovering relationships between objects, by placing them in different groups according to how similar they are with each other.

❓Given a set of objects, is there a natural, unbiased way to cluster them?

Meet the ugly duckling theorem.

🧡 1 of 20
Say we have three objects, two swans 🦒🦒 and an ugly duckling πŸ¦†.

Obviously, the natural way to cluster them is by placing the two swans together and the duckling in a different group, right?

Well, it depends on which features you choose to look into.

2 of 20
If we cluster them by colour, sure, but if we cluster them by size, maybe not.

So how about we consider *all the possible* features? Wouldn't that give us the most "natural" clustering?

As a start, let's say there are N boolean predicates that we can evaluate...

3 of 20
Read 20 tweets
Jun 29, 2022
I've spent the last couple of years disrupting traditional software companies with machine learning and data science ideas directly out of my group's core research.

I've found that most issues arise from three critical areas.

Here's what I've learned...

🧡 1/24
Most of the obstacles I've seen can be grouped in one of the following three categories:

1️⃣ the language
2️⃣ the development process
3️⃣ the expected results

Let's tackle them one by one.

2/24
1️⃣ The majority of clashes between academia and industry are due to a language barrier.

We talk about experiments, models, and hypotheses. They talk about functionality, business rules, and user experience.

3/24
Read 24 tweets
Apr 12, 2022
AutoML is a growing subfield of machine learning, that aims to automate some of the most boring and time-consuming parts of designing, training, and deploying a machine learning pipeline.

Here are 10 open source AutoML tools you can start using today:πŸ‘‡
βš™οΈauto-sklearn

Probably the most popular AutoML system, it sits on top of everyone's favourite ML framework, scikit-learn, and gives you a black-box AutoML wrapper that abstracts away most of scikit-learn's estimators.

πŸ”—github.com/automl/auto-sk…
βš™οΈAuto-WEKA

Another well-known AutoML framework based on another popular and well-loved machine learning framework, WEKA. Although the project is not in active development anymore, it is still used by the community.

πŸ”—github.com/automl/autoweka
Read 12 tweets
Oct 21, 2021
Have you heard about P vs NP?

It's probably the most important theoretical question in computer science, and it sounds weirdly abstract.
But deep down, it has a very intuitive explanation.

If you have heard of this and want to learn a bit more, read on...

πŸ§΅πŸ‘‡
Computer Science is all about finding clever ways to solve difficult problems.

We have found clever algorithms for a bunch of them: sorting stuff, finding shortest paths, solving equations, simulating physics...

But some problems seem to be way too hard πŸ‘‡
One example is the Travelling Salesman problem.

❓ Find a cycle starting in your city to visit all major cities in your country and return home with the least fuel cost.

This is the kind of problem we expect computers to solve easily, right? That's what computers are for!
Read 17 tweets
Oct 19, 2021
If you're looking for an easy way to introduce more machine into your products and services, AutoML is a good bet.

✨ Here's a short (and incomplete) list of open source and commercial AutoML systems you can start using today:

autogoal.github.io/survey/systems
1- AutoSklearn (automl.github.io/auto-sklearn/m…)

A drop-in replacement for scikit-learn that can train classifiers or regressors automatically. Based on Bayesian Optimization, and production-ready.
2- AutoKeras (autokeras.com)

An AutoML framework for Keras, with pre-designed meta-architectures for different domains like images, text, and tabular data. Also based on Bayesian Optimization, with clever memory and CPU/GPU management.
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(