import sympy as sym
x = sym.symbols("x")
sym.diff(sym.poly(x**2 + 2*x + 3), x)
var = init # init 시작점
grad = gradient(var) # gradient 미분 계산 함수
while(abs(grad) > eps): # eps 알고리즘 종료조건
var = var - lr * grad # lr 학습률, 미분을 통해 업데이트하는 속도 조절
grad = gradient(var)
# 컴퓨터로 계산할 때 미분이 정확히 0이 되지 않으므로 종료조건 필요
var = init
grad = gradient(var) # gradient 그레이던트 벡터를 계산하는 함수
while(norm(grad) > eps):
var = var - lr * grad
grad = gradient(var)
for t in range(T): # T 학습횟수
error = y - X @ beta
grad = - transpose(X) @ error
beta = beta - lr * grad # lr 학습률
비선형회귀의 경우 수렴이 항상 보장되지 않음
Stochastic Gradient Descent
📌 데이터의 일부를 활용하여 업데이트
→ 경사하강법보다 머신러닝 학습에 더 효율적(속도, 메모리 효율, 병렬 연산)
https://wikidocs.net/152765
[부스트캠프 AI Tech] Week 1 - Day 4