본문 바로가기

Deep Learning/밑바닥부터 시작하는 딥러닝15

Optimizer 매개변수 갱신 * 손실함수의 값을 최소로 하는 매개변수 값을 찾는 것을 최적화(optimize) 라고 한다. 최적화된 매개변수는 해석적으로 수식의 풀이를 통해 한 번에 찾을 수 없고, 컴퓨터를 이용한 반복적인 계산을 통해서만 찾는 것이 가능하다. 확률적 경사 하강법(Stochastic Gradient Descent) $W \rightarrow W - \eta {\partial L \over \partial W}$ class SGD: def __init__(self, lr=0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr * grads[key] * update 메소드의 매개변.. 2022. 1. 27.
Backpropagation * 이번 포스팅에서는 Backpropagation을 계산 그래프를 위주로 알아보고자 합니다. * 오차 역전파법에 대해 수식을 통해 설명해 놓은 이전 포스팅이 있으니 궁금하신 분들은 참고하시길 바랍니다. https://soki.tistory.com/7?category=1050549 Backpropagation 본 포스팅은 유튜버 혁펜하인님의 Backpropagation 강의를 정리한 포스팅입니다. 더 정확한 설명을 들으실 분들은 아래 동영상을 참고해주세요. 먼저 위 그림과 같은 hidden layer가 2개인 DNN model이 있 soki.tistory.com 계산그래프 문제 : 슈퍼에서 사과 2개, 귤 3개를 구매했고, 사과는 개당 100원, 귤은 개당 150원일 때 소비세가 10%일 때의 지불 금액을.. 2022. 1. 27.
경사하강법(Gradient Descent method) 경사하강법(Gradient Descent method) * 경사하강법은 최적의 가중치와 편향을 찾기 위한 알고리즘이다. 여기서 최적이란 손실함수의 값을 최소화 하는, 즉 다시 말해 예측값과 정답 레이블의 차이를 최소화 하는 것을 뜻한다. 경사하강법은 방대한 크기의 공간에서 최적의 값을 찾기 위해 '기울기'를 이용한다. $x_0 = x_0 - \eta {\partial f \over \partial x_0}$ $x_1 = x_1 - \eta {\partial f \over \partial x_1}$ * 가중치의 갱신은 위와 같이 이뤄진다. 위 식은 가중치 1회 갱신에 대해 나타내고 있다. * 여기서 $\eta$는 learning rate이라고 한다. learning rate은 가중치 update에 기울기를.. 2022. 1. 25.
수치 미분 수치 미분 * 미분은 순간 변화량을 구하는 것과 같다. h를 0에 한없이 가깝게 할 때의 y값의 변화량을 뜻한다. * 만약 위 수식을 쓰여있는 대로 구현하면 아래와 같을 것이다. # 나쁜 구현의 예 def numerical_diff(f, x): h = 10e-50 return (f(x + h) - f(x)) / h * 위 코드는 2 가지 면에서 문제가 있다. 1) 컴퓨터는 부동소수점 표현을 정확히 하지 못한다. 이는 부동소수점을 그 값 그대로 계산하지 않고 근사값을 통해 계산하기 때문인데 나중에 기회가 된다면 CS 정리에 올려보도록 하겠다. python에서도 위와 같이 너무 작은 소수가 들어오면 0으로 반올림해버리는 문제가 있다. 때문에 위의 코드에서 h를 $10^{-4}$ 정도로 설정해줘야 한다. 2).. 2022. 1. 25.