요즈음 학부 초년생들은 딥러닝과 그것을 위한 수학 및 프로그래밍 등에 대해 어느 정도 선에서 관심을 갖고 받아들이고 있을지가 문득 궁금하다.
나는 2014년부터 학부를 다녔는데 15년쯤부터 딥러닝 얘기를 슬슬 조금씩 들었었다. 그러다가 16년에 CNN 가지고 style transfer 하는 논문 (사진 찍으면 고흐 등 여러 유명 화가들의 화풍으로 바꿔주는 것) 을 우연히 보고 처음 충격을 받았고, 비슷한 시기에 이세돌 vs 알파고 챌린지 매치로 딥러닝이 대중적으로도 확 뜨고 그랬던 것 같다 (쓰고 보니 이때 이미 초년생은 아니고 고학번이었네...).
아무튼 그 때는 내가 범접할 수 없는 최첨단 기술이라고만 생각했고, 기본적인 퍼셉트론 러닝, 즉 비선형 합성함수로 공간에 선 긋는 것부터 마치 물리 공부하듯이 수식으로만 차근차근 공부했던 기억이 있다. 미디어나 소셜 미디어에서 소개되었던 딥러닝으로 할 수 있는 수많은 마법같은 일들도, 그러한 기초적인 예제들로부터 차원만 크게 키우면 대체로 가능한 것으로서 근본적인 질적 차이가 미약하다는 것은 후술하듯이 나중에야 알았다.
그런데 어느날 동아리 방에서 회원분이 바로 그 style transfer를 코딩으로 직접 구현 및 실행하고 있는 걸 보게 되었다. 근데 그럼에도 불구하고 그 때는 그분이 정말 특출나다고만 생각했지 (실제로 엄청 뛰어난 분이긴 했다), 소스 코드가 있을 경우 그냥 다운받아 돌려보면 되는 것이라고는 생각을 잘 못했었다.
전기전자세미나 같은 세미나 수업에서 교수님들께서 multi-layer perceptron을 가지고 딥러닝 설명해 주실 때도, 우리를 위해 대단히 쉬운버전으로 이야기해 주시는 줄 알았는데, 핵심 알고리즘이 정말로 그게 전부일 거라고는 생각 못했던것 같다.
그러다가 딥러닝에 대해 좀 더 제대로 공부를 해 보게 된 것은 2018년 초에 14학번 동기인 형들이랑, 의예과 학생들 몇 명이랑 Goodfellow 책으로 스터디를 하면서다. 지금 봐도 이론적으로 불필요하게 깊게 들어가지는 않으면서, 딥러닝에 대해 다들 동의할 만한 주요 이슈들을 extensive하게 잘 다룬 책이다.
딥러닝이 오히려 일반적인 컴퓨터 알고리즘에 비해 아날로그적인 직관에 소구하는 부분이 훨씬 많고 (물론 그러한 직관이 misleading할 수는 있지만 적어도 진입장벽의 측면에서는) 저변이 무척 넓어질 수 있겠다는 것을 그때 확실히 느꼈다. 일단 어떤 종류의 과제에 대해 어떤 식으로 동작하는지 대략적인 이해를 하면, 학습이라는 행위에 대한 수학적 직관과 고차원 공간에 대한 수학적 직관을 바탕으로 결과를 나름대로 interpret하고 이런저런 개선을 해 보는 게 가능하니까 말이다.
암튼 딥 러닝은 지난 몇년간도 그랬지만 최근 1년간에는 정말로 엄청나게 빠르게 발전하고 있는 트렌드인데 (특히 생성모델 쪽으로), 요즘 이쪽 분야에 관심이 있는 학부생들의 경우 이러한 발전을 어느 정도 선에서 관심을 갖고 수용하고 있을지가 궁금하다.
즉 시간적으로만 보면 내가 학부때 기본적인 fully connected NN이랑 CNN 같은걸 접하고 최첨단 기술이라고 생각했던 거랑, 이들이 트랜스포머랑 디퓨전 모델 같은 새로운 아키텍쳐들 보면서 느끼는 거랑 비슷할 텐데, 지금은 저변이 훨씬 넓어지고 그 가능성이 차고 넘치게 증명되고 있는 상황이다 보니 받아들이는 게 훨씬 더 빠르진 않을까 이런 생각이다. 한편으로는 반대로, 최신의 모델들이 워낙 커다랗고 고도화되어 있다 보니 배경 지식이 많이 필요해서 오히려 거리가 멀게 느끼지는 않을까 생각도 든다.
아무튼 딥러닝 기초를 익히기 위해 최소한으로 필요한 수학적 배경은 다변수 미적분 (+선대) 과 함께 약간의 집합론적 사고(?) 인 듯하다. 후자는 어떻게 불러야 될지 몰라서 집합론적 사고라고 부르는 건데 정확한 표현은 아닌것 같고, 주어진 양이 수학적으로 어느 공간에 살고 있는 것인지, 그리고 주어진 함수가 어느 공간에서 어느 공간으로 가는 것인지 등을 따져볼 수 있는 능력을 말한다. 딥러닝 이론 공부에서 뭔가 헷갈릴 때엔 늘 이런 걸 생각해 보면 도움이 된다.
No comments:
Post a Comment