게시물 목록

Saturday, March 12, 2022

경사하강법(stochastic gradient descent)의 일반화 성능이 높은 이유? stochasticity 없이도 달성해보기

참여중인 이론기계학습 연구모임에서 6개월마다 한 번 정도씩 내 발표순서가 돌아온다. 이번에 다룬 프리프린트 (J. Geiping et al., "Stochastic Training is Not Necessary for Generalization," https://arxiv.org/abs/2109.14119)에서는 제목 그대로 stochasticity 그 자체는 좋은 학습, 즉 오버피팅 없이 일반화를 잘하는 학습의 필수요건이 아니라고 주장한다. 즉 SGD라는 확률과정의 여러 특징들을 서로 잘 분리해 내어 보니, stochasticity라는 요인을 빼고 이외의 side effect만 취한 결정론적 최적화로도 똑같은 일반화 성능을 달성할 수 있다는 것이다.


초록도 본문도 상당히 도발적인 뉘앙스로 쓰인 논문인데, 후술하겠지만 실제 결과는 그 정도까지 surprising한 것은 아닌 듯하고, 그래도 유의미한 문제의식을 스텝바이스텝으로 재밌게 풀어가고 있다. 수학적 원리에 기초를 둔 응용연구, 혹은 딥러닝의 작동원리 자체에 대한 연구를 활발히 해온 Tom Goldstein 및 그 동료들의 연구이다.


딥러닝에서 mini-batch를 사용하는 SGD가 왜 좋은가? 일단 가장 흔히 알려져 있듯이, full batch보다 계산 시간 면에서 유리하다는 것이 있겠다. 그렇다면 SGD는 시간 단축을 위해 결과적인 성능을 희생하는 것인가? 딥러닝에선 그렇지가 않고 SGD가 '오히려 좋다'는 것이 꽤나 알려져 있다. 그 이유로는 크게 두가지가 있다.


첫번째는 최적화 관점이다. Full-batch gradient descent (FB GD)는 비용 함수 지형의 saddle point(안장점)에서 속도가 급격히 느려진다. 반면 SGD는 이러한 saddle point를 잘 벗어나서 minima를 잘 찾아간다 (이건 아마 stochasticity 그 자체가 중요할것같다). 그리고 N차원 비용함수 지형에서 기울기가 0이 되는 점들 중, 간단히 산술적으로만 생각해봐도 saddle은 매우 많지만 minima는 훨씬 적을것이다. 이계도함수의 부호가 모두 플러스여야 minimum인데, 몇개는 플러스고 나머지 몇개가 마이너스고 하면 saddle point이기 때문이다. 이런 상황에서 saddle 하나하나에서 느려지는 FB GD에 비해, minima를 잘 찾아가는 SGD는 당연히 훨씬 유리하다.


두번째는 일반화 관점이다. 만약에 기울기 하강을 통해 비용함수의 minima에 도달했더라도, 그 지점이 과적합(overfitting)을 일으키는 파라미터들이라면 딥러닝 관점에서는 별로 안좋을것이다. 학습데이터(트레이닝셋)에 존재하지 않았던 테스트셋 데이터를 넣어도 잘 작동해야 하고, 이를 일반화(generalization)을 잘한다고 한다. FB GD는 설령 minima에 무사히 도달하더라도 overfitting이 심한 곳일 가능성이 높고, 반면 SGD는 일반화를 잘하는 지점에 잘 도달하는 경향이 있다.


왜 그럴까? 일단 minima 부근의 비용함수 지형이 sharp할수록 오버피팅이 심하고 (좀만 벗어나도 많이 달라지니까), flat할수록 일반화를 잘한다는 것은 약간 애매하지만 직관적으로 받아들일 만하다. 물론 이론적, 실험적으로 입증한 논문들도 많으며 거의 정설이다. 그래서 이하에서는 일반화가 잘되는 minima를 flat minima라고 부르겠다.


그러면 SGD가 왜 flat minima를 선호하는가? 이에 대한 다양한 설명이 있다. 먼저 통계물리 관점이다. 무지성(?)이고 위치 및 방향에 대해 균질한 화이트노이즈와 다르게, SGD의 경우는 landscape의 모양에 따라 adaptive, intelligent하게 조절되는 비평형 노이즈기 때문에, sharp minima일수록 더 오래 못빠져나오는 화이트노이즈와는 정반대로 flat minima에서 더 오래 머무른다. 이걸 통계물리학자들은 fluctuation-dissipation relation의 breakdown이라고 한다.


아니면 수학적으로, SGD에 의한 implicit한 효과를 explicit하게 빼내어 주어서 설명하는 것도 있다. SGD는 full batch에 의한 진짜 비용함수 지형 대신에, 매 지점에서 약간씩 틀어져있는 '가짜 지형'을 effectively 겪는다고 할 수 있다. 그 가짜 지형을 계산해보면 실제 지형에, 비용함수의 기울기의 제곱에 비례하는 항이 추가된다. 이것을 최소화한다는 것은 기울기가 별로 안컸으면 좋겠다는 것이고 이는 전형적인 regularization term에 해당한다. 즉 SGD는 regularization 효과가 있고 이것때문에 오버피팅이 방지된다.


위 두 가지는 서로 대립되는게 아니라 서로 통해있는 얘기다. 첫번째 관점에서 말한 것처럼 adaptive하게 조절되는 구체적인 방식이, 바로 두번째 관점에서 말한 regularization term인 것이다. 아무튼 여기서는 후자에 초점을 맞추자. 이 논문의 문제의식은 다음과 같다. SGD를 실행하되 그 이론적 해석만 regularization이라고 하는 게 아니라, 아예 SGD 대신 FB GD를 해버리되 앞서말한 regularization을 직접 해주어 보자. 위의 설명대로면 FB GD로도 SGD의 일반화 성능을 달성할 수 있어야 한다.


저자들은 이를 확인하기 위해 ResNet 모델, CIFAR-10 데이터로 일반화 성능을 확인하는 실험을 돌린다. 이때 fair comparision을 위해, minibatch라는 게 없는 FB GD에서도, SGD에서와 같은 batch size에 해당하는 batch normalization은 계속 해준다.


일단 SGD에서는 validation score가 95.7%가 나온다. 반면 이를 full-batch로만 바꾼 naive FB GD에서는 75.42%가 나온다. 이 20%의 성능 갭을, (앞서 말한 explicit regularization을 포함하여) 어떻게든 non-stochastic한 방식으로만 메워보고 싶다.


첫번째로 스케쥴링을 개선해준다. 처음부터 learning rate를 크게 시작하지 말고, 상당히 느리고 긴 warm-up을 해준다. 이것만으로 87.36%로, 갭이 절반 이상 메워졌다 (근데 이걸 SGD에서도 똑같이 해준다면 그쪽도 성능이 더 좋아지는것 아닌가? 사실 이하에서도 이런 비슷한 의문이 계속 든다).


다음으로는 i) gradient clipping (FB GD에서는 landscape-dependent한 learning rate adaptation과 동등함), ii) regularization (위에서 말했듯 이게 논문의 핵심 문제의식이다), iii) smaller batch size에 해당하는 batch normalization 수행 등을 해준다. 이렇게 하면 95.67%의 성능으로 SGD의 성능에 거의 근접해진다.


그리고 마지막으로, 기본적으로 해주고 있던 random data augmentation도 꺼 주자. 그렇게 하면 SGD의 성능은 84.32%로 떨어지는데, FB GD 쪽의 성능은 89.17%가 되어 상대적으로 현격하게 잘하게 된다.


위에서 말했듯, 완전한 fair comparison이라기엔 FB GD 쪽에 너무 불공평한 추가적 성능 개선작업을 많이 해준 감은 있다. 위에 말했듯 '어떻게든 non-stochastic하게 해보겠다'는 것에 치중해서 흘러간 것이다.


그럼에도 불구하고, SGD의 여러 특징들을 잘 분리해내서 그 중에 실제 일반화 성능에의 주효한 요인을 identify하고, 무작위성이 없는 방식으로도 상당히 높은 성능을 달성할 수 있음을 보인것은 충분히 의미가 있다고 보인다.


다만 full-batch니까 당연히 시간은 더 오래걸렸을 것이다. 저자들 역시, 실제로 어떤 시간 단축과 성능 개선을 하기 위한 논문이라기보다는, (이미 잘 되고있는) 딥러닝의 작동원리에 대한 깊은 이해를 돋구기 위한 연구라는 식으로 말하고 있다.


다음으로는 SGD의 implicit bias ('가짜 지형'을 겪게끔 되는것) 효과를 explicit regularization처럼 보이게 빼내어주는 실제 이론적 계산을 따라가보고싶다. 그리고 flat minima일 때 overfitting이 덜 되는 이유를, 분포라는 관점에서 clear한 argument를 만들어보고 싶다. 발표하면서 작성한 노트를 하단에 이미지로 첨부한다.


Facebook에서 이 글 보기: 링크

Facebook 'Tensorflow KR' 그룹에서 이 글 보기: 링크


사진 설명이 없습니다.


사진 설명이 없습니다.


사진 설명이 없습니다.


사진 설명이 없습니다.

Saturday, March 5, 2022

양자역학과 통계역학의 구분: 디스커션의 레벨을 잘 분별하여 변증법적 이해를 도모하자

물리학에서의 확률 하면 흔히 양자역학을 생각하는데, 그러한 양자역학적 확률(불확정성 원리 등)과 통계역학적 확률(엔트로피 등)이 서로 다르다는건 독서 및 양질의 웹검색 등을 통한 개념 교통정리와, 기초적인 일반물리학 훈련을 통해서 감을 잡을수 있다.


그러나 원론적으로 알더라도 개별 문제로 들어가면 이 둘을 은근히 헷갈리는 경우가 있는 듯하다. 대표적인 게 영점 에너지, 양자 상전이(quantum phase transition) 같은 것들이다.


외부와 열적 접촉을 하고 있을때 온도가 잘 정의되고, 그렇지 않다면 양자통계역학적 시스템이 아니라 그냥 양자역학적 시스템인 것. 요컨대 각 state의 에너지레벨과 degeneracy를 구하는건 양자역학이지만, 실제로 계가 각 state를 어느 확률로 갖겠냐는 건 통계역학이다.

(여담으로 유한한 온도에서 수소원자 해밀토니안의 모든 state의 볼츠만팩터를 더한 분배함수가 발산한다는 문제가 있던데 직접 계산해보고 해결해 봐도 재밌을거같다)


보손, 페르미온의 통계역학이 서로 다르다는 걸 논의할 때도 여러 입자의 결합 파동함수를 바탕으로 정확하게 formulate할때도 있지만, 그냥 알려진 조합론적 성질(한 state에 무한히 들어간다 / 한개만 들어간다)만으로 '쉽게' 유도할때도 있다. 나는 대학원 통계역학 수강을 할때는 후자로 배웠지만, 조교 할 때에는 전자로 강의를 하셨다. 후자 같은 경우엔 사실 파동함수를 쓰는 양자스러운 계산이 직접 등장조차 안 한다.


그러면 열적 접촉 말고 빛과의 상호작용에 의한 들뜸 같은건 어떻게 하느냐... 이것도 계산방법이 있을 테고, 포톤가스를 통계역학적으로 다루기도 하는 것 같다.


아무튼 이런걸 심오해보이게 말고 딱 즉문즉답 식으로 클리어하게 구분하는 논증과 예시 같은걸 많이 갖고 기억해두고 있으면 좋을거같다.


(여담이지만 이런 거랑 비슷하면서 좀 다른 얘긴데, 계가 에너지 낮은 걸 선호한다는 거랑, (토탈)엔트로피 높은걸 선호한다는 것도 전제조건 같은 걸 정확히 써 두면 열역학의 언어로 쉽게 통합적으로 다룰수 있는건데... 기초 일반화학 쪽에서 주로 현상의 설명을 위해 정성적으로, 말로 다루다 보니 둘 사이에 많이들 헷갈리는 것 같음. 특히 화학반응의 선호 같은걸 생각할때.)


그러면 양자 상전이라는게 무엇인가? 요동의 크기와 커플링의 세기 사이에 경합이 존재할때 파라미터 변화에 따라 상전이가 일어날수 있는데, 그 요동의 정체가 열적인 것이 아니라 양자적인 경우인것.


양자요동은 quantum harmonic oscillator에서 영점에너지 얘기할 때 나오는 그것이고, 절대영도에서도 양자요동이 있기 때문에 구성요소 사이에 커플링이 적절히 돼있는 계라면 절대 영도에서도 양자상전이가 가능함.


물론 유한한 온도에서도 양자상전이가 가능하며 한 시스템 안에서 열요동과 양자요동을 통합적으로 다루는 픽쳐도 당연히 있다 (서로 통합된, 연결된 현상). 그리고 한편으로는, 임계점 근처에서는 어떤 차원에서 열적 요동에 의한 상전이와, 다른 차원에서 양자요동에 의한 상전이 사이에 대응도 존재한다(다른시스템에서 나타나는 서로 다른현상). 사실 이런 것 때문에 더 헷갈릴수도 있다.


흔히들 질문하는 '절대영도에 실제로 도달할수 없는 이유'는, 적어도 일단은 영점에너지 같은 양자역학적 개념이 아니라 열역학/통계역학의 질문인것같다. 설령 절대영도에 정확히 도달하더라도 양자요동이 있다는게 영점에너지니까.


다만 이 열역학적 질문도 더 빈틈없이 통제하고 더 깊게 들어가면 양자적인 질문이 될수도 있는 것 같고 (사실 잘모름), 이와 별개로 통계역학에서 가장 근본적이고 미묘한 질문인 비가역성의 근원 문제도 제기될수 있다. 결국 다 deterministic time evolution이지 않느냐. 이는 고전통계역학에서의 볼츠만의 H-theorem에 비견되는 양자통계역학의 근본 물음으로서, eigenstate thermalization hypothesis (ETH) 등의 키워드로 활발하게 연구되고 있다.


그러나 이렇게되면 개념이 섞여버리고 논의의 레벨을 헷갈리게 된다. 전공필수과목 수준에서 지금 상황이 양자역학적인 것인지 통계역학적인 것인지는 정확히 구분해볼 필요가 있다. 사골같은 예시로, 물이 도체냐 부도체냐가 초중고 넘어갈때마다 달라진다고 밈처럼 까이지만 그래도 지식을 급히 먹다 체하지 않으려면 그 스텝을 따르는게 좋은데, 이거랑 비슷하다고 생각한다.


Facebook에서 이 글 보기: 링크

Tuesday, March 1, 2022

머신러닝의 물리학: 개괄 및 문헌 소개

웹 검색을 하다가 올해 초에 나온듯한 아주 좋은 책을 찾았다. (Huang, Haiping. "Statistical Mechanics of Neural Networks." (2022). Springer 링크)


물리학, 특히 통계물리학으로 머신러닝의 작동원리를 모형화하고 설명화하려는 시도는 상당히 활발하게 이뤄지고 있다. 머신을 glassy한 스핀 시스템처럼 보고 원하는 분포를 만들어갈때 무슨일이 벌어지는지 보는 관점, 알갱이 계의 jamming에 대응시키는 관점(이건 아직 잘 이해하지 못했다), 신경망의 한 층에서 다른 층으로 정보가 전파되는 것을 되틀맞춤무리(renormalization group) 변환으로 보고 상전이를 identify하는 관점 등이 있다. 점점 많이 보이는 NNGP, infinitely wide neural network, neural tangent kernel 등도 한국인 물리학자 이재훈 박사님이 초기에 깊게 기여한 연구 흐름으로 알고있다.


이런 일련의 흐름은 재작년에 나온 종설논문(Bahri, Yasaman, et al. "Statistical mechanics of deep learning." Annual Review of Condensed Matter Physics 11 (2020): 501-528. 링크)에 어느정도 잘 정리되어 있다. 일부 possible misconception과 달리, 이들 대부분 그저 '느슨한 비유'를 넘어서 통계물리라는 제너럴한 프레임워크를 머신러닝 시스템에 '실제로 정확히' 적용하는 것에 가깝다고 나는 생각하고 있다.


나는 머신러닝을 직접 연구하지는 않고 보다 전통적인 물리학적 대상들을 공부하고 있지만, 이런 분야들에도 늘 관심 갖고 팔로업은 하는 중이다. 특히 이들 중 SGD를 비롯한 딥러닝의 최적화 과정을, 손실함수 지형 위에서의 Brownian motion 비슷한 걸로 보는 관점에 제일 흥미가 있다. SGD가 단순히 계산량을 tractable하게 하기 위해 아쉬운 대로 minibatch를 쓰는것이 아니라, 도달하는 minima 자체가 full batch GD에 비해 '오히려 좋아'서 오버피팅이 방지되고 잘 작동한다는 걸 여러 연구들이 시사하는데, 그 이유를 통계물리학의 랑주뱅 방정식 등을 도구 삼아서 분석하는 것이다.


내 메인 연구주제가 현상론과 반대를 지향한다고 할수 있는 원리적인(?) 열역학 인것과 달리, 머신러닝에서의 이러한 관심사는 다소 현상론적이라고 하겠다. 나는 2021년 노벨상을 받은 스핀글래스 등 응집물질들에 잘 적용되는 전통적(?) 통계물리보다는, 주로 90년대 이후에 발전된 stochastic thermodynamics를 도구 삼아서 연구하고 있다. 이런 방법론적 흥미 및 익숙함 때문에 머신러닝에서도 그러한 접근들에 관심이 가는 것일지도 모른다.


그런데 서두에 소개한 이 책은 그런 게 아니라 굉장히 근본적인 쪽, 즉 맨 앞쪽 문단에서 첫 번째로 말한 관점 쪽을 매우 잘 써두었다. 통계물리 방법론 중에서도 깊고 어려운 쪽에 속하다보니, 학습이란게 대체 무엇인지에 대한 시야도 열역학적 해석을 통해 상당히 깊게 가지고 가는 듯하다. 우리 연구실 박사수료생 선배 중에도 이런 걸 하시는 분이 있는데, 이만큼 잘 정리돼 있는 책이 전세계에 아예 없는것같고 목차를 읽는것만으로도 많은 공부가 된다고 하신다. 두고두고 읽을만한 텍스트북이라 하드커버 physical book을 사봐도 괜찮겠다 싶음. 다만 스핀글래스 중심이라 상당히 난이도가 높을것 같기는 하다.


여담이지만 늘 관심있게 팔로우업 하고있는 스탠포드/구글브레인 그룹 (S Ganguli, J Sohl-Dickstein(이분은 diffusion model의 시초가 된 2015년 논문의 저자이기도 하다), S S Schoenholz 등) 에서도 연구 내용들을 이렇게 책으로 정리해서 내주었으면 좋겠다는 바람도 든다. 내 직감이지만 디퓨전모델이 점점 유명해지는것과 겹쳐서 머신러닝 하는 분들이 (꼭 원리 그자체가 physics-inspired인 디퓨전모델이 아니더라도) 이런 통계물리적 접근에 점점 더 관심을 갖게 되고, 유능한 학생들이 계속 투입되는 만큼 무척 잘하게 되지 싶다. 그 웨이브를 타려면 미리 각종 세미나 및 스쿨 같은 데도 참가하고 블로그 같은데에도 써두고 실질적인 연구협업에도 ASAP involve되어 볼 필요가 있겠다.


Facebook에서 이 글 보기: 링크