Telling people "you can write code on your phone" is disingenuous.
I get that you are trying to motivate others, but this is not practical, neither helps anyone.
We tell people that starting with Python is better than starting with C++ because it is much easier to start and we don’t want them to lose their motivation.
Most people who have to type a program in their phones will be demotivated in a week.
Of course, if you don’t have any other way to access a computer, do what you have to do to learn.
But if there’s a chance to use a computer, spend the energy there and you’ll be better off for it.
An interesting machine learning problem that's quite common 👇:
Let's say you need to identify the model of a phone based on a set of pictures of the device. That is, for every request, you'll get one or more images of a device, and you need to answer with each model.
🧵
[2] A plausible solution is to implement a deep learning model that, given an image, determines the correct model of the device (a regular classification model.)
You can run each image through that deep learning model, and this will give you a set of possible answers.
👇
[3] Now, looking at the set of possible answers, you need to determine how to select the correct answer.
Imagine you get the following 5 possible answers:
- Nokia 95
- iPhone 12
- iPhone X
- iPhone 12
- Samsung Galaxy 5
1. Define the problem 2. Assemble a dataset 3. Determine success metrics 4. Decide on evaluation method 5. Prepare the data 6. Establish a baseline 7. Develop a model that beats the baseline 8. Overfit model 9. Regularize model 10. Tune model
Where's model validation in this workflow?
Notice that steps 8, 9, and 10 presume the existence of a mechanism to evaluate the model. This means that model validation is implicitly part of this workflow.
"Assembling a dataset" focuses on determining what will be the sources of data that we will need to solve the problem.
Before understanding metrics of success, we need to have access to the data that we will be using.