시그모이드는 왜 애용할까?(나만의 정의)
대학 수학을 독학한지 9개월중 4개월 정도 되었다. 그중에서 확률이란 그냥 간단한 녀석이라고 생각을 했었다.
확률의 개념 자체는 간단한게 맞다, 다만 응용 분야가 너무나도 다양해서 순간 이게 확률문제인지 뭔지 모르는 경우가 많았다.
딥러닝에서 시그모이드는 정말로 많이 쓰이는 활성화 합수이다. 이는 0과 1사이의 값을 내뱉으므로 확률적인 의미로도 많이 사용되늗데, 여기서 항상 의문이 들었다.
시그모이드가 단순히 0과 1사이의 값을 내뱉는다고 왜 확률적 의미가 되는 것일까? 만약에 3 혹은 4가 연달아서 나오면 둘다 확률이 90%가 넘는 값이 나온다는 것인데 이게 왜 확률을 나타내는 것인가? 라는 의문도 많이 들었다. (분명히 확률은 모든 경우의 수를 합하면 1이 되어야 하는데 말이다)
여기서 우리가 알아야 하는 것은 값을 0과 1사이로 변환 해준다는 것은 딥러닝에 있는 모델에게 선택지의 자유도를 많이 준다는 것으로 해석을 할 수 있게 되었다. 합이 1이 되는것과 별개로 우선 컴퓨터가 "어차피 무슨 숫자를 줘도 0과 1사이로 바꾸는데, 가감하게 숫자를 늘려보자"라는 것을 가능하게 해주는 역할을 하지 않을까?라는 생각이 드는 것이다.
딥러닝은 수학이 메인 기반이 맞지만 결국 연산은 컴퓨터가 하기 때문에 컴퓨터의 특성도 피하기 힘들다, 컴퓨터는 태생적 한계가 있어서 생각 이상으로 거대한 숫자가 들어가면 inf 라면서 수치로 표현할 수 없는 거대한 수라고 값을 내뱉는 경우가 있다, 딥러닝에서 랜덤으로 숫자를 뽑는 경우 이런 경우가 허다하다.
그래서 랜덤한 넘버가 항상 0과 가까이 있는 숫자를 내뱉는 것이 일반적인것 같다고 생각했다(아닐 수 도 있다, 하지만 받아들이기 나름이라고 생각한다)
딥러닝은 예측하는 일종의 함수다 라는 말을 들은 이후 예측이란 무엇일까?라는 고민을 많이 했다. 수학적 이론도 정말로 좋은 공부지만, 우선 AI는 사람을 흉내내는 것이기 때문에, 사람의 관점에서 출발하는 것도 나쁘지 않은 접근방식이다(오히려 복잡한 수식보다 이러한 접근 방식이 더 쉽게 지식을 받아들일 수 있을 때도 있다)
실제로는 시그모이드 자체가 확률을 나타내는 그러한 것은 아닌것 같다. 정확히는 오차함수 loss function이 시그모이드를 확률값으로 내뱉게 조종한다고 생각하게 된 것이다. 딥러닝 이론을 보다보면, 실제로 로그를 쓰지 않았는데 로그라이제이션을 한다면서 로그 형식으로 "유도"핟다는 말처럼 무언가로 "유도"한다는 말을 적지 않게 접한다.
수학을 공부하다보면 증명식이 길어지면 길어질수록 "어라 그냥 저 사람의 방식대로 따라가다보니 결론을 얻었네?"하면서 답은 구했지만, 왜 그렇게 해서 답을 구할 수 있었던 것인지 모르는 경우가 많다. 딥러닝도 그렇다고 생각을 한 것이다. 이론은 좀 나중에 이해해도 된다, 우선은 개념을 받아들이는게 더 중요했다(하지만 이론은 어느정도 알고 나야 개념을 받아들일 숭 있다는 함정이 숨어있다).