본문 바로가기

Deep Learning71

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.
손실 함수 데이터를 통한 학습 기계학습 방식과 신경망 방식 * 기계학습은 데이터에서 특징을 추출해 특징의 패턴을 학습하는 방식으로 이뤄진다. * 이 때 두가지 방법이 있다. 1) 사람이 직접 알고리즘 구성 2) 사람은 특징 추출에만 개입하고, 기계가 특징에서 패턴을 찾아 학습하기 - ex) 컴퓨터비전 분야에서 SIFT, HOG 등의 방식을 통해 이미지의 특징을 인간이 추출하면 기계는 SVM, KNN등을 통해 특징에서 패턴을 찾는다. * 신경망 방식은 기계학습의 두 가지 방식과는 달리, 모든 과정을 기계가 자동으로 진행한다. 특징을 추출하는 것과 특징에서 패턴을 찾아 학습하는 것 모두 스스로 학습하는 것이다. Training data와 Test data * 기계학습의 데이터셋은 두가지 혹은 세가지로 분리되어야 한다... 2022. 1. 25.