ruk·si

Models

Updated at 2024-11-13 22:44

Machine learning model is what you use to get predictions. Model is the entity you train with past data to give answers about unseen future samples.

Machine learning model constantly changes with time. You should have higher abstraction level when reasoning about your models. This "logical model" is a collection of model templates and their versions that aim to solve a problem.

A model version is obtained by training a model template on a given dataset. All versions of model templates in the same logical model are usually be evaluated on similar of datasets.

Let's say that a model has two model templates and three versions:

  1. The first version is live in production, based on the original model template
  2. The second version is based on the original template, but trained on new data
  3. The third version uses another model template with additional features and is trained on the same data as the second version

Confidence should be calculated at prediction time if possible. Without some form of confidence, many predictions are useless.

Bad model prediction:
    Cat or Dog

Good model prediction:
    Cat (82%), Dog (5%)

Training dropout is good for dense features. Dropout works better for dense features (e.g. vision) than for sparse features ( e.g. topic-based). So, a lot of zeros means that don't use dropout and little zero feature values means to apply some dropout.

Convolution

A convolution maps a region of an image to a feature map. Also known as a local neural network feature detector.

For example a 5x5 array of pixels could be mapped to oriented edge features.

The convolution is repeated over-and-over at various pixel locations in what is sometimes called a "sliding window" or "sliding rectangle".

How much window slides is called step size or stride.

Windows can overlap. Overlapping is frequently even preferred.

Convolution creates low-level building blocks for higher-level features. The next level up in the network wants to detect higher-level features from the low-level building blocks.

detecting a corner from two intersecting edges

Pooling

Pooling layer is usually applied after convolution. Pooling is used to detect variations on the same structural theme.

For example, the outputs of adjacent vertical-edge detectors will be "max pooled" to a unit that says "there is a vertical edge in the vicinity of this location".

Model Store

Model store is a place where you store your models:

  • Allows you to compare new models against existing deployed ones
  • Allows you to compare new models against each other
  • Tracks model performance over time