Night time where the lighting is darker and images are more grayscale
Text models can mimic text well, but don’t seem to understand what they are mimicing. Text models are not good at generating correct responses
Biases can be built into these models. These text models could be used for online trolling or spreading misinfromation on social media
Add a human into the process to check the model’s predictions
Text, eg titles, reviews, comments
Deep learning models are predictors, not recommenders. So, the models look at your history, and find similar items. Rather than try to push your boundaries a little to see if you might like something new
1) Define objective 2) Figure out the levers 3) Get data 4) Use the data to model how the objective changes using the available levers
How do the steps of the Drivetrain approach map to a recommendation system? The Drivetrain approach is a methodology to create actionable outcomes from data, and not just predictions. 1) Want more sales through recommendations 2) Rank the recommendations 3) Run experiments to see if new recommendations cause new sales 4) Compare new model with existing/baseline model to see if changes caused more sales from recommendations
Done
DataLoaders
?
A dataloaders is a collection of dataloader objects from the FASTAI library A dataloader object contains information on how to retrieve the data (paths, names, labels, splits)
What four things do we need to tell fastai to create DataLoaders
?
1) What kind of data we are working with
2) How to get the list of items
3) How to label these images
4) How to create a validation set
splitter
parameter to DataBlock
do?
Splitter tells the dataloaders function how to split the data into training and validation sets
Pass a seed=### argument into the RandomSplitter. Use the same seed number each time
Independent = x Dependent = y
Crop takes a centered crop of the image Pad adds 0’s to the perimeter of images if the images are too small (black borders) Squish squeezes an image into the specified size. Distorts image If the images are always centered, crop is ok. If you want the whole image without any changes, and have different sizes, then padding works. Use squish if you need faster compute, and the application actually has similar distortions.
Data augmentation is when you add transforms (change contrast, brightness, rotate, skew, flip, etc.) to images. Data augmentation is used when the training data is small, which seems to be the case for all image data sets.
item_tfms
and batch_tfms
?
Item_tfms does transformations on a per item basis, and is usually just used for resizing images. Item_tfms works before batch_tfms Batch_tfms applies transforms on a batch at a time. As a result, it assumes the inputs are all the same shape item_tfms and batch_tfms are arguments for the DataLoader class
A confusion matrix is a table showing correct/wrong predictions, as well as false positives and false negatives. On the table, the y>axis are the actual labels. On the x>axis are the model predictions. Given a table x,y point, that point represents the number of times the actual label, and predicted label happened together. The diagonal of the table represents when the actual label and predicted label were the same.
export
save?
Export saves a ‘.pkl’ file. This file contains the model architecture, parameters, and also the definition of how to create the dataloaders
Inference
Software that allows you to use JavaScript and Python in a web browser
Use CPU for deployment when the user experience is adequate. CPU is generally cheaper. May want a GPU if you get enough traffic, and are able to batch together jobs
Deploying to your server means you have to maintain the hardware, and also the scaling burden is on you. On a phone, it is horizontal scaling and the client “takes” the scaling cost
1) Out of domain data, 2) Domain shift Examples of “out of domain data” are low resolution photos, night time photos, latency between prediction and response to user
Input data that has a distribution a lot different than the training data distribution
Domain shift is when your input data distribution changes, and moves away from the original training data distribution
What are the 3 steps in the deployment process? 1) Manual process, run models in parallel and check outputs by hand 2) Limited scope deployment, try the model in the wild for a limited time/area and supervise the performance 3) Gradual expansion, expand the scope. This will require a good reporting system in order to get debugging information if things go wrong. For example, out of domain data or domain shift.
Done
Done. Thinking about an invasive flower classifier.
Furthur research
I think the approach let’s you understand how different parts interact
When the data augmentation transforms images to look like another image label. For example, on MNIST, you do not want to do a horizontal flip because a b and d could look the same. Another example are numbers where you do not want to flip vertically because a 6 and a 9 could look the same