본문 바로가기

데이터/딥러닝

CS231n_Lecture4:Introduction to Neural Networks

<gradient를 이용하여 어떻게 가중치를 업데이트 시킬 것인가(+backpropagation)>

 

 

  • 예시 (x+y)z, x=-2, y=5, z= -4

 

gradeint 찾아가는 과정

 

  • 이때 X가 f에 미치는 영향, y가 f에 미치는 영향, z가 f에 미치는 영향 
    • df/dx, df/dy, df/dz 각각을 미분으로 구할 수 있다
    • 바로 구할 수 없는 경우 chain rule을 적용하여 미분값 구할 수 있다

 

 

sigmoid게이트가 들어가기전 gradient는 시그모이드 값인 0.73을 기준으로 구할 수 있다.

 

  • 시그모이드를 구할 수도 있다 → 시그모이드 게이트가 들어가기전의 gradient는 시그모이드 값으로 구할 수 있다.

 

앞에서 온 gradient가 여러개면 다 더해주면 된다.

 

 

  • 하나의 값이 아니라 다변수라면 자코비안 행렬 사용(다변수 함수일때의 미분값)

 

  • 첫번째 차원은 출력의 해당 요소에만 영향을 주기에 자코비안 행렬=대각행렬이 되므로 모두 계산하지 않는다.

 

 

  • 더 복잡한 식에서도 변수에 대해 gradient 항상 체크해야한다. (shape같은지 확인 필수)

 

해당 예시의 결과