본문 바로가기

공부공간/Deep Learning

[activation function] 활성화 함수를 쓰는 이유

 

활성함수를 쓰는 것은 목적에 따라 sigmoid를 사용할 수도 있고 reLu를 사용할 수도 있다.(물론 tanh, gelu, ... 많다)

 

그렇다면 활성함수를 쓰는데 있어서 어떤 목적들이 있을까?

 

1) 어찌되었건 y_hat 값을 0~1사이의 값으로 반환해야 하는 경우. (binary classification 문제)

0~1 사이의 값으로 반환하기 위해서는 여러 layer를 거쳐서 마지막에 sigmoid 함수를 사용하면 된다.

 

2) 비선형성을 위해 활성함수를 사용한다.

비선형성은 왜 필요할까?

만약 w,b를 구하는 과정이 비선형이 아니고 모두 선형의 수식들만 거친다면 무슨 일이 일어날까? 아무리 몇백개의 layer를 거쳐도 y=wTx + b의 꼴이 나올것이다. 즉, 어떻게 해도 복잡한 구조의 식을 가지지 못한다는 것이다.

 

따라서 deep learning의 의미가 없어진다. deep learning으로는 사람이 일반적으로 생각하기 힘든 복잡한 수식을 컴퓨터로 찾아준다는 데에서 의미가 있는데 복잡한 수식을 유추해 낼 수 없는 모델이 되어버리는 것이다.

 

정리하자면 복잡한 수식을 표현하기 위해 비선형성이 필요하고 이를 위해 relu같은 activation function을 사용한다.

이 때, relu는 deep 해져도 sigmoid와 달리 기울기 소멸문제에서 강인하기 때문에 deep layer에서 많이 사용한다.