게시물 목록

Tuesday, March 28, 2023

물리, 그래픽스, AI 융합연구의 두 가지 방향

그래픽스나 컴퓨터비전 쪽을 physics-aware하게 하는 게 점점 중요해질 수 있어 보인다.


일단 이를 위한 첫번째 방법으로는, 오브젝트들을 생성하고 이동시켜주는 규칙을 최적화하기 위한 손실함수(loss function)를 잘 설계하고 이것으로 뉴럴 네트워크를 학습시켜서 '근사적으로' physics-aware하게 할 수도 있을테다. 즉 large scale 시스템을 일일이 시뮬레이션하지 않고 중요한 자유도만 살리면서도 올바른 윤곽을 흉내내게끔 하는것.

이런 건 이미 실제로 많이 하고 있다. 특히 계산량이 많은 것으로 유명한 유체 시뮬레이션 쪽이랑 빛 렌더링 쪽에서, 주요 feature를 뽑아주는 뉴럴넷의 파워를 빌려서 딥러닝 붐 초창기부터 이미 진전이 많이 있었다고 알고 있다.
(그래픽스랑은 다소 다른 맥락에서 등장한 terminology 같긴 하지만, physics-informed neural network도 이런 비슷한 접근법이며 현재는 그래픽스 쪽에서도 많이 적용이 된다고 알고 있다)
그런데 그렇게 하지 말고, 아예 블렌더 등의 그래픽스 프로그램에서 동작하는 스크립트 같은 걸 GPT-4 같은 Language model을 통해 만들되, 그렇게 생성된 스크립트가 물리법칙을 respect하는 물체의 경로를 지시하게끔 한다면, 물리 지식이 없는 사용자도 물리적으로 자연스러운 그래픽을 만들어낼 수 있을것이다. 그러면 그걸로 만들어진 스크립트는 뉴럴넷이라는 커다란 함수를 이용한 근사가 아니라 '정확히' 물리법칙을 존중하게 될테고.
수행하고 싶은 과업의 종류 및 계산량에 따라 이런 방향들 중 무엇이 더 적합할지가 갈릴텐데, 만약에 '시뮬레이션' 스러운 게 아니라 그냥 간단한 일상적 장면 표현 같은 데에 쓸 목적이라면 후자의 접근법도 꽤나 괜찮겠다는 생각이 든다.
물론 이미지 전체를 아예 한번에 주조해 버리는 GAN이나 디퓨전 기반의 text-to-video generation (요샌 3d도 되는 듯) 으로 비벼 버릴 수도 있겠으나... 그런 거 말고 오브젝트들의 개체성이 선명해야 한다거나, 정확히 원하는 물리적 동작이 있는 상황이라면 현재와 같은 패러다임의 text-to-video generation은 조금 부적합할수도 있으니까.
그러나 물리법칙을 존중하는 어떤 장면을 만든다고 할때 그 구성요소에 유체역학 혹은 기체의 확산 같은 게 포함되어 있어 버리면 결국은 전자와 같은 방향도 관여될 수밖에 없을 것 같긴 하다.
(개인적으로 과학적(?) 재미는 전자쪽에 좀더 있는것 같기도 하다. 인간이 잘 모르는 중요 feature를 뉴럴넷이 알아내서, 적은 비용만으로 전반적인 윤곽을 상당히 정확하게 흉내낸다면, 그런 뉴럴넷을 뜯어보면서 우리 입장에서도 현상의 전체적인 윤곽에 무엇이 중요한 거였구나 하고 배울수가 있으니까.)
이런 접근에서 당장 생각나는 문제점이 있다면 GPT같은 무척 커다란 모델도 물리적 규칙을 이해하는건 어려워한다는 것이다. 그런데 이건 자연어에 대한 통계적 이해로부터, 물리법칙을 존중하는 '자연어 생성' 및 '자연어 레벨의 추론' 능력이 emerge하지 않는다는 얘기일 뿐이고. 자연어가 아니라 물리법칙을 존중하는 '코드를 짜는 것'이라면 오히려 훨씬 더 쉬울수도 있을 것 같다.
사실은 사용자가 물리학 지식이 있어서 공식을 아예 manual하게 지시해주고, 옳게 했는지 검토도 가능한 경우에는 지금의 ChatGPT 정도로도 그냥 쉽게 될 것 같다. 그걸 넘어서 일일이 안 알려줘도 실수없이 정확하게 하도록 파인튜닝하는 게 중요하겠지.

암튼 정말 말 그대로 하루가 다르게 새로운 것들이 엄청나게 나오고 있으며, 기존 것들을 연결해서 새로운 서비스를 구현하는것도 너무 잘 되고 있으니.... 이런것들도 분명히 이미 있거나 조만간에 될 듯.
이런 여러가지 워크플로우들을, 기존에 잘 돼있는 것들을 직접 연결, 또 연결해서 만들어 낼 수만 있는 정도의 표층(?) 코딩 능력만 갖추더라도 지금 다가오고 있는 시대에 꽤 재밌게 잘 적응할 수 있지 않을까 한다. 가장 최근에는 심지어 그것조차 하지 않아도 GPT가 알아서 다 연결시켜 주는 게 나온 모양인데, 그것까진 아직 팔로업하지 못했다.

나는 차라리 내가 바닥부터 직접 코딩하는 시뮬레이션 같은 것은 비교적 잘 할수 있지만 위와 같이 이미 있는 것들을 기민하게 연결해서 작업하는 일은 여전히 익숙하지 못하다 보니, ChatGPT한테 물어봐 가면서 점차점차 익혀 보려고 한다. 프로그래밍 연습 해야된다 해야된다 하면서 계속 안하고 버텼는데 지금이야말로 무조건 해야 될 적기인 것 같음.

Facebook에서 이 글 보기: 링크

No comments:

Post a Comment