Deep Neural Networks 기초
Deep Neural Networks
- DNN이란 아래 그림처럼 결국 linear regression의 모음이라 볼 수 있음
- 좀 더 복잡한(?) 모델이 되기 위해 중간 layer에서 non-linear한 변형 layer를 추가해야함(activation function)
- tensorboard에 weight를 모니터링 할 수 있는 방법이 있고, relu의 경우에는 0이하 값은 모두 제로, 즉 layer에 연산된 결과가 모두 음수이면 0을 아웃풋으로 뽑아내는 케이스가 있기 때문에 이때, 다른 활성화 함수를 고려할 필요 있음
- hyper parameter를 튜닝하는 일반적인 방법
> hidden layer를 늘리면서, overfitting이 일어나면
> dropout 비율을 추가하며 바꿔줌
> layer를 늘리는 것은 모델을 복잡하게 만든다고 생각하고, node수를 늘리는 것은 메모리(?)를 늘린다는 스케일을 늘린다고 생각하면 됨
Training on Large Datasets
- csv 파일을 가져와 tensorflow estimator에 맞게 dataset을 구성해야함
- decode_csv에서 한줄씩 읽어오고, cols는 list형태로 한줄씩 가져오게 됨
> record를 불러올때 만약 빈 데이터가 있다면 어떤 형태로 넣을지에 대해 defaults 값을 줄수 있음( 컬럼순서대로 적어줌) → 만약 dataset에 house type이 Nan이면 default값인 ‘house’가 들어가게 됨
- 여러 sharding된 데이터를 넣어줄때
> list로 된 파일들을 flat하게 한파일로 만들어 붙여주고 parse_row함수로 한줄씩 보냄