codingeverybody / codingyahac

https://coding.yah.ac
292 stars 50 forks source link

두번째 딥러닝 - 보스턴 집값 예측 관련 질문입니다 #1069

Open euijin0528 opened 3 years ago

euijin0528 commented 3 years ago

보스턴 집값 예측 모델의 수학적 접근

안녕하세요! 서울대 기계공학과 복학 예정인 휴학생 권의진이라고 합니다. 우선 질 좋은 강의 굉장히 잘 듣고 있고 감사하게 생각하고 있습니다! 전역을 하고 복학까지 데이터 과학을 공부 해보자는 생각에 강의를 듣게 되었는데, 굉장히 재미있고 흥미로운 것 같습니다.

텐서플로우(파이썬) 두번째 딥러닝 - 보스턴 집값 예측을 공부하던 중에, 해당 집값 예측 모델이 "종속변수 = 독립변수들의 선형결합" 이라고 가정하고 모델을 세웠음을 알았습니다. 그리고 이후 일차 선형결합에 해당하는 텐서플로우 라이브러리를 가져와서 회귀분석을 했다고 저는 이해했습니다.

여기서 저는 독립변수들이 어떤 수학적 형태를 이루는지를 예측하는 방법이 중요하다고 생각되었습니다. 보스턴 집값 모델을 선형결합이라 가정했지만 그 모델보다 loss값을 더 줄일 수 있는 모델이 있을 가능성이 충분하다고 생각되었기 때문입니다. 예를 들어 현재 보스턴 집값 모델이 y(종속변수) = a1 x1 + ... + a13 x13 인데, y(종속변수) = a1 (x1^b1) + ... + a13 (x13^b13)로 설정하면 더 정확한 모델을 얻을 수 있을 것이라고 생각 되어집니다. 물론 이런 식으로 생각하면 가능한 모델은 무수히 많고 모델별로 각기 다른 코딩이 필요하며, 각 모델들에 대해서 fit을 한 후 loss값들을 비교해야하므로 컴퓨터가 진행해야할 계산이 기하급수적으로 많아져 시간과 비용적 손해가 매우 크다고 생각됩니다.

따라서 해당 문제의 데이터만을 가지고 "모델의 수학적 구조를 추천" 해줄 수 있는 지도학습이나 수학 이론이 있는지, 있다면 대표적인 예시가 궁금하며 이런 방법들을 공부할 수 있는 체계적인 시스템이나 추천해주실만한 공부 방법이 있는지가 궁금합니다.

길고 두서 없는 질문 읽어주셔서 감사합니다!

JeongsangBaek commented 3 years ago

안녕하세요,

좋은 질문입니다. 말씀하신대로 실제 수업에서 세운 가설과 본인이 생각한 좀 더 효율적인 가설이 다를 경우 그것을 서로 다른 모델로 만든 뒤 학습/트레이닝 하여 evaluation metric을 비교하는 것이 일반적인 머신러닝 모델의 성능 향상 기법입니다.

보내주신 가설을 보면 y = sigma(1 to 13) an * (xn ^bn) 으로 볼 수 있을 것 같습니다. 해당 가설을 hypothesis로 설정하고 같은 데이터 및 하이퍼 패러미터로 훈련 및 예측하여 나온 evaluation metric을 비교해보시면 실제 성능이 올라갔는지 아닌지 알 수 있게됩니다. evaluation metric을 비교하는 방법에는 여러가지가 있으며 이러한 내용은 일반적인 딥러닝 서적을 보면 나옵니다.

데이터만 보고 모델의 수학적 구조를 추천하는 방법은 저도 모르겠지만, 모델을 추천해주는 지도학습 방법론은 NAS(Neural Architecture Search)라는 개념이 있습니다. 강화 학습을 활용하여 내부 model zoo에 등록된 각 모델들에게 데이터를 훈련시켜보고 가장 evaluation metric이 좋은 모델을 선별하는 형태의 지도학습 방법입니다.

컴퓨터가 진행해야 할 계산이 일반적으로 가설때문에 많아지진 않습니다. 요즘 컴퓨터 성능이 엄청 좋거든요. 다만 딥러닝의 히든 레이어 구성, 모델간의 앙상블, 모델 특징들에 따라서 진행해야 할 계산이 기하급수적으로 늘어날 것입니다.

가지고 계신 기본지식을 봤을 때 딥러닝에 대한 체계적인 공부를 시작하시는 것이 좋을 것 같습니다. 감사하게도 김태영님이 블록으로 배우는 케라스 라는 책을 인터넷에 공개해 주셨는데요 이 책 일독을 권합니다. 그리고 특정 모델의 수학적 구조를 알고 싶으시면 Wikipedia 혹은 model zoo, arxiv를 통해 관련 논문을 검색하세요 ㅎㅎ

euijin0528 commented 3 years ago

답변 감사드립니다!

RayleighKim commented 3 years ago

음... 공학수학의 범위를 잘 기억하지 못하고 있습니다. 지금까지 배우신 수학에서, 테일러 시리즈를 비롯한 함수 근사 기법들은 전부 말씀하신 것에 관련된 이론입니다. 다시 보시면 새롭게 느껴지실거에요.

차이가 있다면, 어떤 함수가 명확히 주어져있는 경우가 아니라 머신러닝의 많은 문제는 데이터만 달랑 있고 그 수학적인 구조가 알려져있지 않다는 점입니다.

사실 그래서, 선형 회귀모델링 후에 잔차분석등을 통해 차근차근 필요한 차원을 추가하기도 합니다.(구조를 보완한다고 생각하면 되겠네요!) 선형모델은 성능보다도 다른 가치를 지니기 때문에 훌륭한 베이스라인이 되구요. 그 수학적인 구조의 간결함 때문에 의사소통 cost가 매우 낮습니다.

딥러닝에만 한정하여 말씀을 드리면 universal approximation theorem을 찾아서 간단히 봐보시는 것도 좋겠습니다.