I am trying, without much success so far, to derive the gradient of the following cost function in order to fit a logistic curve to some data:
$J(a, k, b, m) = \sum_i^n(y_i - a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2$
Most resources I find on fitting logistic functions are dedicated to classification problems, which doesn't fit my particular issue. I would like to use gradient descent to fit my function.
Here is my current situation and what I would like someone else to check (using $\frac{\partial J}{\partial a}$ as an example).
$\frac{\partial J}{\partial a} = \frac{\partial}{\partial a} \sum_i^n(y_i - a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2$
$= \sum_i^n \frac{\partial}{\partial a}(y_i - a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2$
$= \sum_i^n \frac{\partial}{\partial a}(y_i^2 - 2*y_i*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}) + (a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2 )$
$= \sum_i^n (\frac{\partial}{\partial a}y_i^2 - \frac{\partial}{\partial a} 2*y_i*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}) + \frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2 )$
$= \sum_i^n (\frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2 - \frac{\partial}{\partial a} 2*y_i*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}))$
$= \sum_i^n (\frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})^2 - 2*y_i* \frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}))$
$= \sum_i^n (\frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})*2 - 2*y_i* \frac{\partial}{\partial a}(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}))$
(based on this preexisting derivation of the generalized logistic function)
$= \sum_i^n ((1 -(1 + e^{-b*(x_i - m)})^{-1})*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})})*2 - 2*y_i*(1 -(1 + e^{-b*(x_i - m)})^{-1}))$
$= 2* \sum_i^n ((1 -(1 + e^{-b*(x_i - m)})^{-1})*(a + \frac{k - a}{(1 + e^{-b*(x_i - m)})}) - y_i*(1 -(1 + e^{-b*(x_i - m)})^{-1}))$
Does it look correct and if not where did I go wrong?