wikibook / tf2

《시작하세요! 텐서플로 2.0 프로그래밍》 예제 코드
https://wikibook.co.kr/tf2/
47 stars 46 forks source link

p.94 정규화 수행 #9

Closed devGichanLee closed 4 years ago

devGichanLee commented 4 years ago

데이터 정규화를 위해서 속성별로 각각 평균과 표준편차를 구한 후 정규화해야하는데 책에서 제시하는 코드 x_mean = train_X.mean() x_std = train_X.std() 는 ndarray에 포함된 모든 값을 더해 평균을 냅니다. ex)

x_mean 69.79277358530084

axis=0을 인자로 주어 열(속성) 별로 각각의 평균과 표준편차를 구해 속성별로 정규화하는 것이 맞지 않나요?

greentec commented 4 years ago

안녕하세요. 말씀주신대로 axis=0이 빠져있는 것은 오류가 맞습니다. 구글 코랩 코드와 깃허브에서 수정하도록 하겠습니다. 그리고 타겟인 Y를 정규화하는 이유는 학습을 원활하게 하기 위해서입니다. 사이킷 런 등에서 머신러닝으로 회귀분석을 할 때는 Y를 정규화하지 않지만 딥러닝에서는 네트워크에 너무 큰 값을 계산하도록 하면 그라디언트 폭발(gradient explosion)이 일어날 수 있기 때문에 Y를 정규화하도록 했습니다. 감사합니다.

greentec commented 4 years ago
devGichanLee commented 4 years ago

이미 close 되었지만 axis=0로 수행하면 그 뒤의 train/validation, pred/test plot 등이 전부 달라집니다. 참고하시길 바라겠습니다. 감사합니다.

greentec commented 4 years ago

꼼꼼하게 챙겨주셔서 감사드립니다. 2쇄에 들어가는 코드의 그림과 2쇄의 책에 들어갈 그림도 수정하도록 하겠습니다.

greentec commented 4 years ago