Skip to content
This repository was archived by the owner on May 21, 2022. It is now read-only.
This repository was archived by the owner on May 21, 2022. It is now read-only.

Laundry List of Losses and Penalties #1

@ahwillia

Description

@ahwillia

In our other comically long conversation (JuliaML/META#8 (comment)), we came up with the following types:

abstract Cost
    abstract Loss <: Cost
        abstract SupervisedLoss <: Loss
        abstract UnsupervisedLoss <: Loss
    abstract Penalty <: Cost
    abstract DiscountedFutureRewards <: Cost
  • Cost is a function f(X, y, c) where c can be anything
  • Loss is a function f(X, y, g(X)), so c is some function of the data
  • SupervisedLoss doesn't need X, so its a function f(y, g(X))
  • UnsupervisedLoss doesn't need y, so its a function f(X, g(X))
  • Penalty doesn't need X or y, so its a function f(W) where W are some model params/weights
  • DiscountedFutureRewards... @tbreloff can you edit this and

IMPORTANT: everybody should edit this comment to check off Costs as they are done and also to add new Costs

This post a work-in-progress...

Supervised Losses: (implemented in Losses.jl)

  • L1 error, L1DistLoss
  • L2 error, L2DistLoss
  • LP error, LPDistLoss
  • Logit distance, LogitDistLoss , L(y, t) = -ln(4 * exp(y - t) / (1 + exp(y - t))²)
  • Logistic loss, L(y, t) = log(1+exp(-t*y))
  • Hinge loss
  • Multinomial logit, i.e. softmax
  • Poisson loss,
  • Huber loss
  • Cosine distance loss

Unsupervised Losses:

  • Density level detection loss?

Penalties: (implemented in ObjectiveFunctions perhaps?)

  • L2 penalty
  • L1 penalty
  • L0 penalty? (nonconvex)

Constrants: These are actually penalties. The penalty is "infinitely bad" when the constraint is violated.

  • Box constraint (lower[i] < x[i] < upper[i] for all i)
  • Non-negative constraint
  • Unit length constraint
  • Orthogonality constraint (e.g. in PCA)... Not sure about this one.

Combinations of Penalties: I would like an easy/automatic way of combining instead of defining by hand, but this may not be feasible.

  • Elastic Net
  • Non-negative constraint with L1 penalty (good for sparsity)

Discounted Future Rewards:

@tbreloff -- halp!

Some sources:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions