﻿NMFNonsmoothUpdate Class
Class NMFNonsmoothUpdate encapulates an NMF update algorithm which minimizes a cost functional designed to explicitly represent sparseness, in the form on nonsmoothness, which is controlled by a single parameter.

Namespace: CenterSpace.NMath.Stats

# Syntax

C#
```[SerializableAttribute]
public class NMFNonsmoothUpdate : INMFUpdateAlgorithm,
ICloneable```
Visual Basic
```<SerializableAttribute> _
Public Class NMFNonsmoothUpdate _
Implements INMFUpdateAlgorithm, ICloneable```
Visual C++
```[SerializableAttribute]
public ref class NMFNonsmoothUpdate : INMFUpdateAlgorithm,
ICloneable```

# Remarks

The Nonsmooth Nonnegative Matrix Factorization is defined as
`V = WSH`
where V, W, and H are the same as in the original NMF model. The positive symmetric matrix S is a "smoothing" matrix defined as:
```            S = (1 - theta)I + (theta/q)11'
```
where I is the identity matrix, 1 is a vector of ones and the parameter theta is between 0 and 1, inclusive. The interpretation of theta as a smoothing parameter is as follows: If x is a positive, nonzero, vector and y = Sx, then y = x when theta = 0 and there is no smoothing. As theta -> 1, the vector y tends to the constant vector with all elements equal to the average of the elements of x. This is the smoothest possible vector in the sense of nonsparseness because all the entries are equal to the same nonzero value, instead of having values close to zero and others clearly not zero. See the paper Nonsmooth Nonnegative Matrix Factorization (nsNMF) Alberto Pascual-Montano, J.M Carazo, Kieko Kochi, Dietrich Lehmann, and Roberto D. Pascual-Marui IEEE Transactions on Pattern Analysis and Machine Intelligence Vol. 28, No. 3, March 2006.

# Inheritance Hierarchy

System..::..Object
CenterSpace.NMath.Stats..::..NMFNonsmoothUpdate