梯度下降的实现(java)

时间:2019-12-14 10:07:27

标签: neural-network regression gradient-descent backpropagation

我试图实现梯度下降反向传播算法来解决多元回归问题。我很确定它不会按预期工作。我只是不知道怎么了。

for (int k = 0; k < ITERATIONS; k++) {

  for (int i = 0; i < NUMBER_OF_FEATURES; i++) { //
    double sum = 0;

    for (int j = 0; j < NUMBER_OF_TESTCASES; j++) {
      sum += (sigmoid(dataset[j].h(weights)) - dataset[j].y) * dataset[j].normalized[i];
      //partial derivatives
    }

    //simultaneously update the weights array
    temp[i] = weights[i] - ((LearningRate / NUMBER_OF_TESTCASES) * sum); 

  }

  for (int i = 0; i < 82; i++) {
    weights[i] = temp[i];
  }

}

其中dataset [i]是一个类,其中包含要素实例和相应的数字y。

我是新手,所以我想首先以尽可能少的抽象来理解该过程。这就是使用Java的原因。

0 个答案:

没有答案