DNN, CNN, RNN을 활용한 파이썬 딥러닝 실무 강좌의 맛보기 강의입니다.
딥러닝 모델을 이용해서 회귀를 실습해 볼 건데요. 이번에 데이터는 저희가 보스턴 주택가격의 데이터가 있는데 이 데이터를 가지고 해볼 거고요. 보스턴 주택가격은 1978년에 집값에 가장 영향을 미치는 깨끗한 공기라는 연구 결과가 하버드대학의 도시개발학과에서 발표가 됐고, 자신의 주장을 뒷받침하기 위해서 데이터를 수집해서 만든 데이터를 가지고 저희가 선형회귀를 할 때 가장 많이 테스트하는 가장 유명한 데이터셋이기도 해요. 보스턴의 주택가격 예측하는 데이터셋을 불러다 할 거고요. 저희가 이제 써야 되는 게 회귀죠. 딥러닝으로 회귀를 진행해 보는 건데 집값에 영향을 미치는 요소가 많죠. 많기 때문에 저희가 이 데이터는 선형회귀 중에 단순 선형회귀를 쓰진 않죠. 단순 선형회귀는 여기 보시면 X가 하나죠 하나 예를 들면 평수 하나가 집값을 결정한다나 뭐 그렇게 된다면 X가 하나인 상태로 하는 게 단순 선형회귀고요 그런데 여기 데이터는 굉장히 많은 X들이 있어요 다시 말하면 요인들이 많다는 거죠 속성들이 많고 그래서 이 속성들이 여러 개 있는 걸 저희가 다중선형회귀라고 합니다 다중선형회귀 그래서 여기는 다중선형회귀 모양으로 저희가 딥러닝 모델을 구현해야 된다라고 보시면 좋을 것 같습니다 주어진 보스턴 데이터셋을 저희가 불러올 건데 불러오고 나면 데이터 전처리 부분이 좀 필요할 거예요 그래서 데이터 전처리에 대해서 조금 더 설명을 하면 저희가 피처 스케일링을 좀 할 건데요 피처 스케일링은 서로 다른 변수, 속성이죠 속성의 각 범위가 서로 많이 다른 거예요 예를 들면 저희가 속성 중에 키하고 몸무게가 예를 들면 좀 쉬운 예제로 속성이 있다 그러면 키의 단위가 180이고 몸무게가 70이면 키에 대한 데이터, 몸무게에 대한 데이터가 있을 텐데 스케일이 다르죠 키는 적어도 150에서 200 사이 보통 키라고 생각하면 200 사이에 있는 이 값일 텐데 몸무게가 150에서 200 사이는 엄청난 거잖아요 이거 사이가 되면 안 되기 때문에 두 개가 각각의 스케일 차이가 엄청나는 거예요. 그렇게 되면 마치 Y에 X1, X2들이 영향을 미치는 걸 결국 우리가 연구하는 게 딥러닝 모델인데 결국은 그러면 X1이 값이 크면 크잖아요. X2에 비해서는 그래서 Y에 영향을 많이 미치는 거로 오해가 된단 말이죠. 그래서 각각의 속성값들을 표준화시킬 필요가 있어요. 다시 말하면 이 자체를 0하고 1 사이로 가둬버리는 거죠. 얘도 0하고 1 사이로 가둬버리면 Y 입장에서는 다 그냥 커봤자 1이고 작아봤자 0인 거거든요 그렇지만 이 내부에서는 상대적으로 크다 작다가 표현이 되는 거기 때문에 이런 식으로 스케일을 좀 맞추는 작업들을 바로 이제 저희가 피처 스케일링 한다라고 얘기를 해요 그래서 속성을 일정한 범위 수준으로 맞추는 작업을 하는 거고요 표준화하고 정규화하는 방법이 있기에 둘 중에 하나를 선택해서 하시면 됩니다 그래서 저희는 여기서는 이제 표준화 방법을 한번 써볼 거예요 표준화는 저희가 가우시안 정규분포를 이용하는 거고요 식은 이렇습니다 그래서 실제 자기값, 아까 키라면 키, 본인의 키 175다 이렇게 얘기한다면 실제 평균은 176이었다라고 한다면 차이가 1이 나오죠 이게 평균이에요 평균 나누기 이들의 분산이 있었을 거예요 분산 중에 표준편차, 표준편차로 나누는 거예요 그래서 그 값을 변경을 시키는 거죠 그래서 이렇게 되면 저희가 전체적으로 이게 정규분포, 가우시안 이렇게 종 모양이 있죠 이 분포형 모양으로 바뀌게 돼요 그래서 이거를 저희가 하는 방법을 표준화라는 방법인 거고요 평균이 0이고 데이터가 분산이 1인 가우시안 정규분포 모양으로 데이터 값들이 다 변해요 그렇게 되다 보면 Y에 영향을 미치는 것들이 공평해지는 거죠 공평해지게 스케일이 크다 그래서 많이 영향을 미치는 건 좀 오해가 되지는 않은 거니까요 데이터를 표준화 시키는 방법 중에서 여기서는 저희가 뭘 해본다? 표준화하는 방법을 통해서 X를 표준화 시켜 나갈 거다라는 얘기를 하고 있는 거고요. 또 하나 참고적으로 알고 계셔야 되는 게 하나 더 있는데 저희가 이제 과적합의 문제가 딥러닝이나 머신러닝 문제가 좀 심각하다고 말씀드렸잖아요. 과적합이라는 것은 훈련 데이터에 너무 맞춰서 공부를 시키는 거고 그러다 보니까 실제 예측하는 데이터나 테스트 데이터에서 성능이 떨어지는 거예요. 그래서 그렇게 되면 문제가 좀 많기 때문에 이거를 이제 여러 번 학습을 시키는 거죠. 한 번 학습을 시키지 않고 더군다나 학습 데이터 세트하고 테스트 데이터를 나누어서 한 번만 공부시키는 게 아니고 여러 번 공부시키는 방법을 바로 우리의 크로스 밸리데이션 교차 검증이라고 얘기를 했습니다. 그래서 만약에 5폴드를 했다 그러면 이 전체 데이터를 하나, 둘, 셋, 넷, 다섯 쪽으로 쪼개고 첫 번째 네 개는 처음에는 결과 1을 낼 때는 모델이 평가를 할 때는 다중선형회귀의 개념과 데이터 표준화 다중선형회귀의 개념과 데이터 표준화 다중선형회귀의 개념과 데이터 표준화 교차 검증의 방법이고 교차 검증은 어떨 때 쓰냐면 우리가 어떤 목적으로 쓰냐면 과적합을 방지하는 목적으로 쓰기 때문에 이것도 역시 좀 저희가 뒷부분에 딥러닝 모델을 하면서 교차 검증 방법까지 같이 써보도록 하겠습니다
