LossGradient

Kayıp fonksiyonu gradyanlarının vektörünü veya matrisini hesaplar.

vector vector::LossGradient(
  const vector&       vect_true,     // doğru değerlerin vektörü
  ENUM_LOSS_FUNCTION  loss,          // kayıp fonksiyonu türü
   ...                               // ek parametre
   );
 
 
matrix matrix::LossGradient(
  const matrix&       matrix_true,   // doğru değerlerin matrisi
  ENUM_LOSS_FUNCTION  loss,          // kayıp fonksiyonu türü
   );
 
 
matrix matrix::LossGradient(
  const matrix&       matrix_true,   // doğru değerlerin matrisi
  ENUM_LOSS_FUNCTION  loss,          // kayıp fonksiyonu türü
  ENUM_MATRIX_AXIS    axis,          // eksen
   ...                               // ek parametre
   );

Parametreler

vect_true/matrix_true

 [in] Doğru değerlerin vektörü veya matrisi.

loss

[in] ENUM_LOSS_FUNCTION numaralandırmasından kayıp fonksiyonu türü.

axis

[in] ENUM_MATRIX_AXIS numaralandırmasından değer (AXIS_HORZ - yatay eksen, AXIS_VERT - dikey eksen).

...

[in]  Yalnızca 'delta' ek parametresi Hubert kayıp fonksiyonu (LOSS_HUBER) tarafından kullanılabilir.

Geri dönüş değeri

Kayıp fonksiyonu gradyan değerlerinin vektörü veya matrisi. Gradyan, belirli bir noktada kayıp fonksiyonunun dx'e (x öngörülen değerdir) göre kısmi türevidir.

Not

Gradyanlar, modeli eğitirken geri yayılım sırasında ağırlık matrisi ağırlıklarını ayarlamak için sinir ağlarında kullanılır.

Bir sinir ağı, öğrenmedeki hatayı en aza indiren bir algoritma bulmayı amaçlar; işte burada kayıp fonksiyonu kullanılır.

Probleme bağlı olarak farklı kayıp fonksiyonları kullanılır. Örneğin, regresyon problemleri için "hataların karelerinin ortalaması (Mean Squared Error, MSE)" ve ikili sınıflandırma için "ikili çapraz entropi (Binary Cross Entropy, BCE)" kullanılır.

Kayıp fonksiyonu gradyanlarını hesaplama örneği:

   matrixf y_true={{ 1234 },
                   { 5678 },
                   { 9,10,11,12 }};
   matrixf y_pred={{ 1234 },
                   {11,1098 },
                   { 567,12 }};
   matrixf loss_gradient =y_pred.LossGradient(y_true,LOSS_MAE);
   matrixf loss_gradienth=y_pred.LossGradient(y_true,LOSS_MAE,AXIS_HORZ);
   matrixf loss_gradientv=y_pred.LossGradient(y_true,LOSS_MAE,AXIS_VERT);
   Print("loss gradients\n",loss_gradient);
   Print("loss gradients on horizontal axis\n",loss_gradienth);
   Print("loss gradients on vertical axis\n",loss_gradientv);
 
/* Sonuç
   loss gradients
   [[0,0,0,0]
    [0.083333336,0.083333336,0.083333336,0]
    [-0.083333336,-0.083333336,-0.083333336,0]]
   loss gradients on horizontal axis
   [[0,0,0,0]
    [0.33333334,0.33333334,0.33333334,0]
    [-0.33333334,-0.33333334,-0.33333334,0]]
   loss gradients on vertical axis
   [[0,0,0,0]
    [0.25,0.25,0.25,0]
    [-0.25,-0.25,-0.25,0]]
*/