본문 바로가기

Mathematics/Calculus

[미분과 최적화] 메타코드 강의 후기_미분가능성

저번에 이어 미분가능성에 대해 살펴보자.

 

목차

1. OT
2. 미분 들어가며

(제가 저의 말로 다시 정리해서 쓴 글이기에 가벼운 말투가 많이 등장합니다. 양해 부탁드립니다.)

* 서포터즈 활동을 통해 강의 수강 비용을 지원받았음을 알립니다.

 


미분가능성

 

왼쪽은 y = |x|, 오른쪽은 y=x^(1/3) 함수.

왼쪽과 오른쪽 둘다 x_A = 0 지점에서 미분값은 정의되지 않음. 

또는, f(x)는 x = 0 에서 미분가능하지 않다고 함(non-differentiable).

당연!! 왜냐면 기울기 정의가 dy/dx 인데 dx = 0이다!! 

둘 다 같은 의미를 다르게 적은 것.

 

현대 대부분(사실상 모든) 모델들(sota 등)은 미분 연산이 포함돼 있음.

우리는 미분을 사용해 최적화를 할 건데, 우리 목적 함수가 미분이 안 되네?? -> 그럼 안되는거거든.

우리가 실무나 연구에서 목적 함수 customize를 자주 할 건데, 우리가 setting한 그 목적함수에 미분 불가능한 지점이 너무 많으면, 학습이 제대로 될 리가 없음 ㅎㅎ(미분을 활용한 최적화 알고리즘을 사용한다면).

그렇기에 이 개념을 잘 알구 있자!!

 

 

이제 미분가능성의 좀 더 엄밀한 정의를 알아보자.

 

<함수 f(x)가 x = x_A에서 미분가능하기 위한 조건 4가지>

1. 함수 f(x)는 x = x_A에서 정의되어야 함.

(함수값이 정의되어야 함.)

 

2. 함수 f(x)는 x = x_A에서 continuous 해야 함.

(다른 곳으로 가까워지면 안됨.)

 

3. 함수 f(x)는 x = x_A에서 뾰족점(Sharp point)를 가지면 안 됨.

(x = x_A에서의 좌 미분계수와 우 미분계수가 같아야 함.)

 

4. 함수 f(x)는 x = x_A에서의 접선이 수직(vertical tangent line)이면 안됨. 

(dy/dx의 dx = 0이라 정의 자체가 안됨.)

 

** 세부적인 예시는 강의 참고

위와 같이, 딥러닝 모델에서 layer중에 일부러 미분불가능한 부분을 넣기도 함. 

학습이 안된 부분을 다 0으로 보내서 학습 테크닉을 높이려는 것.

그래서 반드시 미분 가능성을 지켜야한다? 그건 아님. 그렇지 않은 예시들이 꽤 많음.

 

또, 꼭 continuous하지 않은 경우도 있음. discrete인 문제들도 있음. 

이럴 땐, 연속적이게 바꾸는 trick들을 적용해야 학습이 가능함.

 

결론) layer의 아주 핵심적인 부분이 미분이 불가능할 때는 연속적이게 되도록 trick을 써서 학습이 되게 해야 한다.

 

 


 

 

 

강의 수강을 위한 메타코드 주소는 다음과 같다.

https://www.metacodes.co.kr/

 

메타코드M

AI 강의 & 커뮤니티 플랫폼ㅣ300만 조회수 기록한 IT 현직자들의 교육과 함께 하세요

www.metacodes.co.kr