Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Por que nesse artigo para fazer a Descida de Gradiente ele aparentemente não utiliza subtração do valor estimado pelo valor desejado para calcular o erro?

Por que nesse artigo para fazer a Descida de Gradiente ele aparentemente não utiliza subtração do valor estimado pelo valor desejado para calcular o erro?

Artigo: https://towardsdatascience.com/gradient-descent-algorithm-a-deep-dive-cf04e8115f21, usei o tradutor para portugues.

Código extraido do artigo towardsdatascience citado acima:

def func1(x:float):
    return x**2-4*x+1

def gradient_func1(x:float):
    return 2*x - 4

def gradient_descent(start: float, gradient: Callable[[float], float],
                     learn_rate: float, max_iter: int, tol: float = 0.01):
    x = start
    steps = [start]  # history tracking

    for _ in range(max_iter):
        diff = learn_rate*gradient(x)
        if np.abs(diff) < tol:
            break
        x = x - diff
        steps.append(x)  # history tracing
  
    return steps, x

Tenho algumas duvidas:

(1) - Por que nesse artigo da towardsdatascience ele não usa subtração do valor desejado com o valor estimado?

(2) - Por que nesse artigo da towardsdatascience ao invéz de usar subtração para calcular o erro, ele usa uma variavel chamada diff que é apenas a derivada da função de ativação usada?

(3) - Outra duvida: eu posso fazer uma Descida de Gradiente sem precisar fazer dessa forma? eu posso fazer uma Descida de Gradiente que não usa derivada da função ? ou seja uma que use apenas o erro(subtração do valor real pelo valor de saida) ?

Vou citar a formula de calculo do gradiente que vi aqui num curso aqui da alura, pra ajudar a expressar minha duvida: Exemplo de formula que vi aqui num curso

Por exemplo, nessa imagem da formula do curso de regressão linear aqui da alura ele não usa derivada da função de ativação usada. Então por isso fico na duvida: Por que no artigo que citei da towardsdatascience ele usou derivada e não usou subtração do erro? E minha maior duvida sobre isso: Eu posso fazer a Descida de Gradiente dessa forma como foi citado nessa ultima imagem da formula em python de um curso aqui da alura? sem usar a derivada? apenas usando a subtração do erro?

(4) - qual a diferença das duas formas(da do artigo que usa derivada e a dessa imagem que citei que não usa derivada)? ambas são validas

2 respostas
solução!

Olá, William, tudo bem?

Uau! Você está bem empenhado neste conteúdo!

A Descida de Gradiente é uma técnica fundamental de otimização, utilizada para encontrar o mínimo de uma função de custo. Embora seja comum usar a derivada da função de custo para orientar a atualização dos parâmetros, existem outras abordagens possíveis para a Descida de Gradiente, algumas das quais podem não requerer diretamente o cálculo da derivada. A escolha da abordagem adequada depende das características específicas do problema e das necessidades computacionais.

Além disso, recomendo aproveitar recursos como a inteligência artificial para aprofundar nesses temas. Você pode colar o texto do artigo e pedir para ela "estudar", permitindo que você faça perguntas específicas sobre o conteúdo em questão. Abaixo deixo algumas sugestões:

Algumas, como o Bing, até compartilha links de vídeos e artigos.

Espero ter ajudado.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Boa tarde Monalisa. Obrigado por explicar!.