MLOps 프로젝트/도서 '케라스 창시자에게 배우는 딥러닝'

1부 4.3 데이터 전처리, 특성 공학, 특성 학습

youjin86 2021. 8. 31. 12:13

1부 딥러닝의 기초

4장 머신 러닝의 기본 요소


4.3 데이터 전처리, 특성 공학, 특성 학습

신경망을 위한 데이터 전처리

[목적]

주어진 원본 데이터를 신경망에 적용하기 쉽도록 만드는 것

 

[종류]

벡터화 / 정규화 / 누락된 값 다루기 / 특성 추출 등

 

벡터화

신경망에서 모든 입력과 타깃은 부동 소수 데이터로 이루어진 텐서여야 함.

사운드, 이미지, 텍스트 등 처리해야 할 것이 무엇이든지 먼저 텐서로 변환해야 함.

 

값 정규화

권장하는 정규화 방법

  • 각 특성별로 평균이 0이 되도록 정규화
  • 각 특성별로 표준 편차가 1이 되도록 정규화

일반적으로 비교적 큰 값이나 균일하지 않은 데이터를 신경망에 주입하는 것은 위험함.

이렇게 하면 업데이트할 그래디언트가 커져 네트워크가 수렴하는 것을 방해

네트워크를 쉽게 학습시키려면 데이터가 다음 특징을 따라야 함.

  • 작은 값을 취하기
    일반적으로 대부분의 값이 0~1 사이여야 함.
  • 균일한 데이터
    모든 특성이 대체로 비슷한 범위를 가져야 함.

 

누락된 값 다루기

누락된 데이터가 0을 의미한다고 정의하고 학습하면 네트워크가 이 값을 무시할 것임.

 

하지만, 네트워크에 누락 데이터가 없는데 테스트 데이터에 있으면 누락된 값이 있는 훈련 샘플을 고의적으로 만들어야 함.

훈련 샘플의 일부를 여러 벌 복사해서 테스트 데이터에서 빠질 것 같은 특성을 제거함.

 

특성 공학

데이터와 머신 러닝 알고리즘(신경망)에 관한 지식을 사용하는 단계

특성을 더 간단한 방식으로 표현하여 문제를 쉽게 만들어 줌.

모델에 데이터를 주입하기 전에 (학습이 아닌) 하드코딩된 변환을 적용하여 알고리즘이 더 잘 수행되도록 만들어 줌.

 

최근 딥러닝은 대부분 특성 공학이 필요하지 않음.

신경망이 자동으로 원본 데이터에서 유용한 특성을 추출할 수 있기 때문

 

그래도 심층 신경망을 사용할 때 신경을 쓰는 것이 좋음.

  • 좋은 특성은 적은 자원을 사용하여 문제를 더 멋지게 풀 수 있음.
  • 좋은 특성은 더 적은 데이터로 문제를 풀 수 있음.