안녕하세요 파이썬 머신러닝 완벽가이드를 통해 잘 공부하고 있는 학생입니다. 다름이 아니고 경사하강법 파트를 공부하다 질문 사항이 생겨 글 남깁니다. 경사하강법의 원리를 배우며, 손실함수의 최저점을 찾기 위해 (손실함수 값이 낮아지는 방향성을 찾기 위해) R(w0,w1)에 대해 편미분을 하는 것은 이해했으나, w1(new) = w1(old) + n(보정계수)*(편미분값) w0(new) = w1(old) + n(보정계수)*(편미분값) w1,w0을 업데이트 하는 과정에서 왜 원래의 값에서 보정계수*편미분값을 빼게 되는 것인지 그 원리가 잘 이해되지 않습니다 ㅠㅠ 편미분은 대략 기울기, 변화량 정도를 의미하는데 .. 그 값에 보정계수를 곱하고, 원래 값에서 빼게 된 값이 그 기울기만큼 감소한 지점의 f(w) 함숫값(?)이 되는건지..? 그렇다면 왜 그렇게 되는 건지 궁금합니다 ㅠㅠ 제가 질문을 제대로 설명한 건지 모르겠네요. 강의 항상 잘듣고 있습니다. 감사합니다.
안녕하세요. 경사하강법을 이용하여 선형회귀 구현하기 - 01 강의를 수강하던 중 궁금한 점이 생겨 질문드립니다. get_update_weights_values 메소드를 작성하실 때, bias_update 값을 구하는 식을 w1_update & w2_update와 유사하게 가져가신다면서 np.ones 를 사용하셔서 np.dot을 해주셨습니다. 하지만 np.dot(np.ones.T, diff)나 np.sum(diff)나 결과는 동일한데 np.dot을 사용하시는 이유가 있으신가요 ? numpy 내부적으로 sum 보다 dot 연산 속도가 빠르다던가 등등 이요. 궁금합니다!
안녕하세요. 5장의 경사 하강법 파트를 진행하고 있는 수강생 입니다. 다름이 아니오라 경사 하강법과 역전파의 명확한 차이점을 알고 싶어서 질문드립니다. 제가 직관적으로 이해하기에 경사 하강법과 역전파의 큰 틀은 동일하다고 생각됩니다. 경사 하강법의 경우, 머신러닝 선형 회귀 경우에 RSS 편미분 값을 가지고 반복적인 계산을 통해 회귀 계수 w 파라미터 값을 업데이트하면서 cost 값이 최소가 되는 w 파라미터를 구하는 방식입니다. 역전파의 경우도 딥러닝 신경망에서 loss의 편미분 값을 역전파하면서 weight & bias 값을 지속적으로 업데이트하고 loss 값이 최소가 되는 weight & bias 파라미터 값을 찾는 걸로 알고있습니다. 결국, 오차 편미분 값을 사용하여 파라미터 값을 지속적으로 업데이트하면서 오차값이 최소가 되는 파라미터를 찾는 목적은 동일합니다. 그러면 두 방식의 큰 차이점은 적용 대상이 다르다는 점 일까요 ? 경사 하강법은 주로 머신 러닝의 알고리즘에 반면 역전파는 딥러닝의 신경망 한정해서 강의 내용과 크게 연관성이 없어보이지만 문득 든 생각에 궁금증을 해소할 길이 없어 이렇게 질문 남깁니다. 감사합니다.