본문 바로가기
머신러닝 야학 2기

[머신러닝 야학 2기] 3일차 - 학습의 실제

by rubyda 2021. 1. 6.
728x90

https://ml.yah.ac/

 

opentutorials.org/course/4570/28977

 

학습의 실제 - 생활코딩

수업소개 딥러닝 워크북에서 손으로 모델을 학습시켜 보며 딥러닝이 학습하는 원리를 배웁니다. 강의  "파일" > "사본 만들기"를 하시면 직접 해볼 수 있습니다.  "파일" > "사본 만들기"를 하시

opentutorials.org

학습의 실제


저번시간에 종속변수에 값에 가장 큰접한 가중치들을 찾아야 한다고 배웠습니다. 그렇다면 가중치를 어떻게 찾는걸까요??

 

직접 계산을 해보면서 그 의미를 알아보도록 하겠습니다!

 

워크북은 강의링크를 들어가면 확인할 수 있습니다.

 

1. 초기값 생성기를 통해 나오는 값을 복사하여 W와 B값을 넣어준다.

2. 결과인 W, B 그리고 자동으로 생성되는 Loss 값을 복사하여 history에 넣는다.

3. prevLoss 에 Loss 값을 복사하여 넣어준다.

4-1. W값을 0.0001을 더한 값으로 고쳐주고 dLoss / dt의 값 변화를 관찰한다.

4-2. 결과값 dLoss / dt를 dLoss / dW에 넣어준다.

4-3. W값을 원래대로 고친다.

5-1. B값을 0.0001을 더한 값으로 고쳐주고 dLoss / dt의 값을 관찰한다.

5-2. 결과값 dLoss / dt를 dLoss / dB에 넣어준다.

5-3. B값을 원래대로 고친다.

6. next W, next B의 값을 복사하여 W, B에 넣어주고 Loss를 확인한다.

7. 2번부터 다시 반복한다.

다음 순서대로 가중치 업데이트가 어떻게 진행되는지 확인하도록 하겠습니다.

 

이 상태에서 시작을 하게 됩니다.

1. 초기값 생성기를 통해 나오는 값을 복사하여 W와 B값을 넣어준다.

여기서 값을 붙일때 수식은 제외하고 값으로만 복사를 해줘야 합니다.

2. 결과인 WB 그리고 자동으로 생성되는 Loss 값을 복사하여 history에 넣는다.

3. prevLoss 에 Loss 값을 복사하여 넣어준다.

4-1. W값을 0.0001을 더한 값으로 고쳐주고 dLoss / dt의 값 변화를 관찰한다.

이제 그 다음 W와 b를 찾기 위한 과정입니다. 그 전에 Loss를 다시 생각해 봅시다. 지금 이 상태는 학습이 되기 전에 랜덤하게 찾아진 모델입니다. 이 모델에 의해서 독립변수에 값들을 W곱하고b를 넣어서 예측 결과가 h열입니다

.

이제 W, b를 학습 해보도록 하겠습니다. 이때 우리에게는 미분이 필요합니다.

 

W가 어떤 방향으로 가야 loss를 작게 할 수 있는지 그 방향을 찾아야 합니다. 이때 우리는 W를 아주 조금씩 키우면서 loss값을 확인하도록 하겠습니다. 

 

우리는 loss를 낮추는게 목표입니다. W를 키웟는데 loss가 작아지면  w를 키워야 하는 것입니다. 

loss가 줄어든 것을 확인하였습니다. 즉 W를 키웠을때 loss 값이 작아졌으므로 다음 단계에서는 W값이 커져야 합니다.

 

여기서 그냥 값을 키우는 것이 아닙니다. 3번째 행에 있는 dLoss / dt 는 미분값입니다.  W를 조금 키웠을때 loss가 변하는 미분값 그 값의 차이를 미분값으로 나눠준 값입니다.

4-2. 결과값 dLoss / dt를 dLoss / dW에 넣어준다.

4-3. W값을 원래대로 고친다.

5-1. B값을 0.0001을 더한 값으로 고쳐주고 dLoss / dt의 값을 관찰한다.

5-2. 결과값 dLoss / dt를 dLoss / dB에 넣어준다.

5-3.B값을 원래대로 고친다.

6.next W,next B의 값을 복사하여W,B에 넣어주고Loss를 확인한다.

7. 2번부터 다시 반복한다.

이 과정을 반복하다 보면 loss값이 점점 줄어드는 것을 알게됩니다. 이 과정을 이해하는 과정이 어렵지만 계속해서 반복해서 복습을 해야겠습니다!!