[BUG]: missing multiplication in `_modifiedHuberLoss` implementation in `ml/incr/binary-classification`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript
- Área
- machine-learning
Línea de trabajo
Lee lib/node_modules/@stdlib/ml/incr/binary-classification/lib/model.js, comenzando en Model.prototype._modifiedHuberLoss, y compara la rama else con el gradiente esperado y las implementaciones de referencia. La tarea está terminada cuando la implementación aplica de forma coherente el factor 2 propuesto con la derivada indicada y conserva el comportamiento existente de la otra rama.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
I was going through the wikipedia pages as well as other library implementations of loss functions to implement standalone loss functions and their gradients under ml/base/loss/float64/*.
I noticed a possible bug in _modifiedHuberLoss function implemented under ml/incr/binary-classification
Current implementation:
setReadOnly( Model.prototype, '_modifiedHuberLoss', function modifiedHuber( x, y ) {
var eta;
var d;
eta = this[ this._learningRateMethod ]();
this._regularize( eta );
d = y * this._dot( x.data, x.strides[ 0 ], x.offset );
if ( d < -1.0 ) {
this._add( x, 4.0*eta*y );
} else {
this._add( x, eta*( y-(d*y) ) );
}
return this;
});
I believe in the else branch, it should be this._add( x, eta*2*( y-(d*y) ) ) instead of this._add( x, eta*( y-(d*y) ) ). That is, it seems like it is missing a multiplication with 2 here.
cc: @Planeshifter
Related Issues
No response
Questions
No.
Demo
No response
Reproduction
- a
- b
- c
Expected Results
\frac{\partial \ell}{\partial p} =
\begin{cases}
-4y & \text{if } yp < -1 \\
-2y(1 - yp) & \text{if } -1 \le yp \le 1 \\
0 & \text{if } yp > 1
\end{cases}
Actual Results
Version
No response
Environments
N/A
Browser Version
No response
Node.js / npm Version
No response
Platform
No response
Checklist
- Read and understood the Code of Conduct.
- Searched for existing issues and pull requests.
- Lenguaje dominante
- JavaScript
- Estrellas
- 6k
- Forks
- 1.3k
- Merge medio
- 1 d 1 h
- PR fusionados (30 d)
- 559
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de stdlib-js/stdlib
-
Fix JavaScript lint errors AbiertoGood First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Fix JavaScript lint errors AbiertoGood First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
Fix JavaScript lint errors AbiertoGood First Issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Fix JavaScript lint errors AbiertoGood First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Todos los issues de stdlib-js/stdlib
Issues similares
-
curation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
amponce/archive-movie-browser#186 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
clerk/javascript#9852 ·
-
bug p1 tools
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
HarperFast/skills#96 ·
-
factory-active factory-automatic task-bug-reproduction-cannot-reproduce task-identify-harness-labels-done task-identify-issue-type-done
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100