어차피 설명의 편의를 위해서 하는 소리긴 하지만. 대 AI 시대니까 시그모이드 함수 정도는 이제 문학적인 글쓰기에 덧붙인다고 해도 괜찮지 않을까? 갸아악! 또 수학이야! 라고 하기엔 그대, GPT의 힘을 빌리지 않고 미래를 살 수 있겠는가 이 말이다. 그냥 납득 하자. 내가 수식부터 들이대지 않고 찬찬히 시작 할께. 어쩌겠는가? 이 시대에 태어난 자신을 원망해야지
시그모이드 함수다. 인공지능이 복잡한 데이터를 요약 연산하는 계산 과정에 쓰인다. 퍼셉트론이라 불리는 여러 변수를 받아 단일 값을 출력하게 만들어 주는 연산 기본단위의 가장 뒤쪽. 앞에서 받은 데이터를 어떻게 출력 데이터로 바꿀 것인 가를 결정하는 활성함수(Activation function)에 쓰인다. 수 많은 진화를 거친 활성 함수 중 조상격에 해당하는 녀석으로 기억해두면 된다. 그리고 겁먹지 말자. 내용을 정확히 설명하기 위한 용어 확장은 이제 끝났다.
시그모이드 함수의 완만 하다가 급격히 증가하고 다시 완만해 지는 모양. 그 모양만 느끼면 된다. 그럼 엑스(투입 변수)가 작을 때는 0. 클 때는 1. 이 두 가지가 손쉽게 구분되는 형태의 함수라는 것을 알 수 있다. 즉 이 함수는 데이터의 미세한 값 차이를 극대화해 해석하는 함수다. 사소한 차이를 "고양이"인가 아닌가를 결정짓는 결과로 바꾸어 놓는다. 이제 똑똑한 여러분들은 이렇게 물어볼 것이다. 그럼 그냥 계단처럼 만들어서 0과 1을 구분하게 하면 되는 것 아니요? 지음 양반. 보기도 편하고 풀기도 편할 텐데... 맞다! 실제로 그런 함수를 공학에선 자주 사용한다. 일명 step function(계단 함수)라 부르기도 하고. 그런데 이 함수는 함수가 아니라는 치명적인 단점이 있다.[1] 그리고 이 녀석을 미분 하는 문제는 너무 어려워(?) 이과도 대학 1학년 때는 배우질 않는다.
자 이제 시그모이드 함수가 나타난 궁극의 이유 까지 등장했다. 모든 두 개를 구분 할 수 있는 함수들 중에서 시그모이드 함수가 가장 먼저 선택 받은 것은 바로 미분의 편의성 때문이다. 연산 구조상 인공지능은 변화율을 계산하여 데이터를 판단하는 구조를 가지고 있는데 그 반복되는 계산을 쉽게 할 수 있는 것은 인공지능의 연산 속도를 판가름 짓는 중요한 요소였다. (여기서 미분까지 설명하는 것은 너무 어려우니 혹 미분에 대해 좀 더 이해 하고 싶으신 분들은 지음의 수학 없는(?) 물리를 참고 하시길 바란다. 절찬 집필중. )
미분을 좀 해본 분들은 알겠지만, 미분 할 때의 천사. 함수 중의 함수는 자연수(e)의 지수 함수다.
로 표기되는 이 함수는 미분 하면 자기 자신이 된다.!!
시그모이드 함수를 수식적으로 나타내 보면
로 나타 나는데, 이 함수 또한 자연 지수 함수의 자식(?) 답게 몹시 독특한 성질을 가지고 있다.
로 간단하게 미분 값을 계산 할 수 있다는 것이다. 미분 값을 계산할 때, 미분을 할 필요도 없이 자기 자신에 함수 값을 넣은 것을 이용한 계산 만으로 간단히 값을 얻어 낼 수 있다. 연산속도에 관해서 이건 코페르니쿠스적이다. 복잡한 미분 연산을 대입 1번 뺄셈 1번과 곱셈 1번으로 할 수 있다니. 당시 인공지능 연구자들의 기쁨의 탄성이 들리는가? (여기서 수학에 자신 있는 여러분, 이과 고3 수준에 준하는 수학 실력을 가진 여러분은 꼭 한 번 직접 계산 해보길 추천한다. 기쁨이 상당하다.)
자! 이제 여름의 끝을 잡으러 가볼까. 인공지능에선 섬세한 변화를 관측하기 위해 시그모이드를 날카롭게 유지 했지만 우린 특별한 목표를 위해 그 변화를 완만하게 만들어 보자. 여기에서 가파름을 만드는 요소는 분모에 있는 (e^x) 이므로 좀 더 변화가 천천히 나타나길 바란다면 x 가 천천히 증가하게 만들어 주면 된다. 적당히 1보다 작은 분수를 곱해주자. 그럼 함수는 이렇게 변한다.
차이가 느껴지는가? 이제 함수는 좀더 완만한 궤적을 그린다!
그러니까, 8월의 중순부터 나는 여름이 천천히 가을로 진입해 들어가는 경계를 걸어 다니고 있었다. 새벽 5시, 매미 소리가 시끄러워서 어쩔 수 없이 일어나 아침을 시작 하는 것에서 부터 시작하여 점점 그 소리가 잔잔히 잦아드는. 미약하게 들리던 귀뚜라미와 풀벌레 소리가 점점 강하게 차오르는 사이를 말이다. 그래프로 표현하면 다음과 같다.
짠! 아주 깔끔하게 내가 몇 편의 글로 나누어 썼던 감정이 그래프 하나로 요약됐다. 여기까지 였다면 나도 굳이 그래프를 그릴 생각 까지는 안 했을테다.
매미가 태양과 여름의 권속이듯, 귀뚜라미는 가을과 달의 사도이다. 눈을 부시게 하는 가로등이 마구 서있어 이제 도시는 밤과 낮의 구분이 줄어 들었지만 그래도 매미는 낮의 편. 온 사방이 밝게 빛나는 태양 아래서 더 크게, 더 많이 운다. 밤엔 주로 가로등이 밝은 주변에서 노래하고. 귀뚜리도 마찬가지. 한 낮엔 잠잠하지만 가을이 가까울 수록 해가 내리쬐는 풀 숲에서도 노래 하는 녀석들의 소리가 점점 커진다. 크레센도!
이는 한 쪽 방향으로 그 변화가 귀결되는 아까의 그래프로만은 설명 되지 않는 흐름을 보였다. 단순히 왼쪽에서 오른쪽으로 쓸고 나가는 느낌으로 진행되는 것이 아니라 낮과 밤이 바뀔 때마다 살짝 앞으로 뒤로 진동하는 느낌. 전반 적으로는 오른쪽으로 나아가지만!! 이를 시간축이 움직이는걸 기준으로 설명하면 위와 같고. 그래프로 시간의 흐름대로 따라 그리면 다음과 같이 나타날 것이다.!!
자 이 시간을 반영해서 낮,밤에 따른 벌레 소리의 변화까지를 담아 그래프를 그리면 다음과 같이 나타난다.! 이제 여러분에게 내가 느낀 그대로의 감각과 통계를 전달 한 것 만 같다! 만족했어!! ㅎㅎ
물론, 글로 감각을 정리해 나가는 걸 너무 사랑 하지만. 이 파도치는 감각을 아무리 글로 적어도 정확한 감각이 전달 안되는 경우가 있다는걸 알고는!(아! 왜 단어는 필연적으로 읽는 사람의 고유한 해석 가능성을 남겨둔체 진행될 수 밖에 없을까.) 이와 같이 복잡한 주석을 이 계절에 달아 둔다. 매미 소리가 이젠 한 낮에나 드물게 들리는 오늘. 여름의 끝에서.
[1]: 너무 똑똑한 그대들은 다 알고 있을 텐데 노파심에 적는다. 함수는 한 개의 x에 1개의 y가 대응 되는 것이다. 우린 이걸 고등학교 수학에서 배웠다!