우선 아무 의미 없는 초깃값을 설정한다. 물론 특정 분포를 따르는 등 초깃값 설정에도 테크닉이 있지만 기본적으로는 아무 의미가 없다.
이렇게 아무 의미 없는 초깃값으로 이루어진 모델에게 질문한다. 이 문제의 답이 뭐니? 그러면 얼토당토않은 답을 내놓을 것이다. 이 얼토당토않은 답과 실제 정답을 비교하고, 둘이 비슷해질 수 있도록 초깃값을 조금씩 조정한다. 여러 문제와 답 쌍을 통해 이를 반복한다. 이 과정이 '학습'이다.
이렇게 학습하고 나면 이 모델은 별걸 다 할 수 있다. 말하는 대로 그림을 그려주기도 하고, 사람 대신 전화 예약을 해주고, 시를 쓰기도 한다.
그러니까 이 모델은 애초에 아무 의미 없는 초깃값으로부터 시작한다. 하지만 어느 순간 나보다 똑똑해진다.
살다 보면 아무것도 모르겠고 정말 막막한 순간들이 온다. 아니면 이루고 싶은 꿈이 있는데 너무 아득해서 뭘 어떻게 해야 할지 모르겠는 순간도 온다.
딥러닝 모델의 학습 과정이 준 교훈은 아무리 모르겠어도 일단 시작하고 봐야 한다는 것이다.
딥러닝 모델도 처음엔 아무것도 모르는 바보다. 바보한테 일단 물어보기라도 한다. 이때 이상한 결과가 나와도 좌절하지 않고 더 그럴듯한 결과가 나오도록 수정한다. 그렇게 조금씩 수정해가면 언젠가 생각했던 결과보다 더 멋진 결과가 나올지도 모른다.
처음부터 멋들어진 결과를 기대하면 시작하기조차 어렵다. 틀리는 게 두려워 학습하길 주저하면 영원히 나아질 수 없다.
나의 초깃값이 아무리 한심해 보여도 일단 학습 코드를 돌리면 나아진다. 다른 잘난 초깃값보다 덜 똑똑할 순 있어도, 적어도 내 초깃값의 결과보다는 훨씬 나아져있을 것이다.
지금 이 글도 약간 부끄러운 나의 초깃값이다. 하지만 발행 버튼을 눌러 '학습'을 시작하려고 한다.