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
Which one is correct?
π
[4] There are multiple ways to approach this problem.
Common sense indicates that the score returned by the softmax layer of the model will play a big role in selecting the correct answer.
Simple heuristic: return the answer with the highest score.
π
[5] Another possible solution is to take into account whether there are multiple matching answers.
For example: "iPhone 12" appears twice.
Combining this with the scores in some creative way gives a better path to successfully select the correct answer.
π
[6] Problems with different characteristics will offer different options to come up with an answer.
Have you worked on a similar problem? How have you approached it?
β’ β’ β’
Missing some Tweet in this thread? You can try to
force a refresh
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.
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.