Main Content

mse

Half mean squared error

Description

The half mean squared error operation computes the half mean squared error loss between network predictions and target values for regression tasks.

The loss is calculated using the following formula

loss=12Ni=1M(XiTi)2

where Xi is the network prediction, Ti is the target value, M is the total number of responses in X (across all observations), and N is the total number of observations in X.

Note

l2loss is recommended over mse because it provides control for weights, masking, and normalization.

To train a network using the trainnet function with mean square error loss, set the loss function to "mse".

loss = mse(Y,targets) computes the half mean squared error loss between the predictions Y and the target values targets for regression problems. The input Y must be a formatted dlarray. The output loss is an unformatted dlarray scalar.

example

loss = mse(Y,targets,'DataFormat',FMT) also specifies the dimension format FMT when Y is not a formatted dlarray.

Examples

collapse all

The half mean squared error evaluates how well the network predictions correspond to the target values.

Create the input predictions as a single observation of random values with a height and width of six and a single channel.

height = 6;
width = 6;
channels = 1;
observations = 1;

Y = rand(height,width,channels,observations);
Y = dlarray(Y,'SSCB')

Create the target values as a numeric array with the same dimension order as the input data Y.

targets = ones(height,width,channels,observations);

Compute the half mean squared error between the predictions and the targets.

loss = mse(Y,targets)
loss =

  1x1 dlarray

    5.2061

Input Arguments

collapse all

Predictions, specified as a formatted or unformatted dlarray object, or a numeric array. When Y is not a formatted dlarray, you must specify the dimension format using the DataFormat argument.

If Y is a numeric array, targets must be a dlarray object.

Target responses, specified as a formatted or unformatted dlarray or a numeric array.

The size of each dimension of targets must match the size of the corresponding dimension of Y.

If targets is a formatted dlarray, then its format must be the same as the format of Y, or the same as DataFormat if Y is unformatted.

If targets is an unformatted dlarray or a numeric array, then the function applies the format of Y or the value of DataFormat to targets.

Tip

Formatted dlarray objects automatically permute the dimensions of the underlying data to have the order "S" (spatial), "C" (channel), "B" (batch), "T" (time), then "U" (unspecified). To ensure that the dimensions of Y and targets are consistent, when Y is a formatted dlarray, also specify targets as a formatted dlarray.

Description of the data dimensions, specified as a character vector or string scalar.

A data format is a string of characters, where each character describes the type of the corresponding data dimension.

The characters are:

  • "S" — Spatial

  • "C" — Channel

  • "B" — Batch

  • "T" — Time

  • "U" — Unspecified

For example, consider an array containing a batch of sequences where the first, second, and third dimensions correspond to channels, observations, and time steps, respectively. You can specify that this array has the format "CBT" (channel, batch, time).

You can specify multiple dimensions labeled "S" or "U". You can use the labels "C", "B", and "T" once each, at most. The software ignores singleton trailing "U" dimensions after the second dimension.

If the input data is not a formatted dlarray object, then you must specify the FMT option.

For more information, see Deep Learning Data Formats.

Data Types: char | string

Output Arguments

collapse all

Half mean squared error loss, returned as an unformatted dlarray scalar. The output loss has the same underlying data type as the input Y.

Algorithms

collapse all

Half Mean Squared Error Loss

The mse function computes the half-mean-squared-error loss for regression problems. For more information, see the definition of Regression Output Layer on the RegressionOutputLayer reference page.

Deep Learning Array Formats

Most deep learning networks and functions operate on different dimensions of the input data in different ways.

For example, an LSTM operation iterates over the time dimension of the input data, and a batch normalization operation normalizes over the batch dimension of the input data.

To provide input data with labeled dimensions or input data with additional layout information, you can use data formats.

A data format is a string of characters, where each character describes the type of the corresponding data dimension.

The characters are:

  • "S" — Spatial

  • "C" — Channel

  • "B" — Batch

  • "T" — Time

  • "U" — Unspecified

For example, consider an array containing a batch of sequences where the first, second, and third dimensions correspond to channels, observations, and time steps, respectively. You can specify that this array has the format "CBT" (channel, batch, time).

To create formatted input data, create a dlarray object and specify the format using the second argument.

To provide additional layout information with unformatted data, specify the format using the FMT argument.

For more information, see Deep Learning Data Formats.

Extended Capabilities

Version History

Introduced in R2019b