алгоритм градиентного спуска в машинном обучении - PullRequest
0 голосов
/ 10 января 2019

Я новичок в машинном обучении. У меня проблема с алгоритмом градиентного спуска. В коде, указанном ниже, мои сомнения во время

значение первой итерации x будет 1

значение второй итерации x будет 2

третье значение итерации x будет 3

значение четвертой итерации x будет 4

пятое значение итерации x будет 5

тогда каково будет значение x для итераций 6-9999 ???

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

def gradient_descent(x,y):

    m_curr = b_curr = 0
    rate = 0.01
    n = len(x)
    plt.scatter(x,y,color='red',marker='+',linewidth='5')
    for i in range(10000):
        y_predicted = m_curr * x + b_curr
        plt.plot(x,y_predicted,color='green')
        md = -(2/n)*sum(x*(y-y_predicted))
        yd = -(2/n)*sum(y-y_predicted)
        m_curr = m_curr - rate * md
        b_curr = b_curr - rate * yd

x = np.array([1,2,3,4,5])

y = np.array([5,7,9,11,13])

gradient_descent(x,y)

1 Ответ

0 голосов
/ 10 января 2019

Три варианта расчета градиента партии

  1. Пакетная
  2. Стохастический
  3. Мини-серия

Я полагаю, вы пытаетесь реализовать пакетный вариант. Если это так, вам нужно сделать следующее

  1. изменить цикл for, чтобы он работал до размера x или y. т.е. len(x)
  2. вызовите градиент_десцент (х, у) в другом цикле for с 10000 (или сколько итераций вы хотите выполнить). Вы, вероятно, должны использовать функцию ошибки, чтобы определить это
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...