[나쁜 데이터의 사례]
1. 충분하지 않은 양의 훈련 데이터
- 2001 microsoft Michele Banko, Eric Brill: 머신러닝 알고리즘들에 충분한 데이터가 주어지면 복잡한 자연어 중의성 해소 문제를 거의 비슷하게 잘 처리한다는 것을 보임. '시간과 돈을 알고리즘 개발에 쓰는 것과 말뭉치(corpus) 개발에 쓰는 것 사이의 트레이드오프에 대해서 다시 생각해봐야 함'
- 2009 Peter Norvig 'The Unreasonable Effectiveness of Data': 복잡한 문제에서 알고리즘보다 데이터가 더 중요함. but 작거나 중간 규모의 데이터셋이 여전히 매우 흔하고 훈련 데이터를 추가로 모으는 것이 쉽지 않으므로 알고리즘을 무시하지는 말아야 함.
2. 대표성 없는 훈련 데이터
-일반화가 잘 되려면 일반화하기 원하는 새로운 사례를 훈련 데이터가 잘 대표하는 것이 중요함. (사례 기반 학습이나 모델 기반 학습 모두)
일반화하려는 사례들을 대표하는 훈련 세트를 사용하는 것은 매우 중요하지만, 생각보다 어려운 경우가 많다.
-샘플이 작을 경우 샘플링 잡음(sampling noise, 우연에 의한 대표성 없는 데이터)이 생김. 매우 큰 샘플도 표본 추출 방법이 잘모되면 대표성을 띄지 못할 수 있음(샘플링 편향, sampling bias)
3. 낮은 품질의 데이터
- 훈련 데이터가 에러, 이상치(outlier), 잡음에 의해 변질되어 머신러닝 시스템이 내재된 패턴을 찾기 어려울 수 있다.
이를 방지하기 위해 훈련 데이터 정제는 중요함.
ex) 일부 샘플이 이상치인것이 명확하면 그것들을 무시하거나, 수동으로 잘못된 것을 고치는 것이 좋음
일부 샘플에 특성 몇 개가 누락되었다면, 이 특성을 모두 무시할지, 샘플 자체를 무시할지, 빠진 값을 채울지, 특성을 넣은 모델과 제외한 모델을 따로 훈련시킬 것인지 등을 정해야 함.
4. 관련 없는 특성
- 성공적인 머신러닝 프로젝트의 핵심 요소는 훈련에 사용할 좋은 특성들을 찾는 것. 그 과정을 특성 공학(feature engineering) 이라고 하며 다음 과정을 포함.
- 특성 선택(feature selection): 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택
- 특성 추출(feature extraction): 특성을 결합하여 더 유용한 특성을 만듦 (예시로 차원 축소 알고리즘을 사용 가능)
- 새로운 데이터를 수집해 새 특성을 만듦
[나쁜 알고리즘의 사례]
1. 훈련 데이터 과대적합
- 과대적합(overfitting): 훈련 데이터에는 잘 맞지만, 일반성이 떨어짐 (과도한 일반화)
심층 신경망 같이 복잡한 모델은 데이터에서 미묘한 패턴을 감지할 수 있지만, 훈련 세트에 잡음이 많거나 데이터셋이 너무 작으면 잡음이 섞인 패턴을 감지하게 됨 -> 새로운 샘플에 일반화 불가
-훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 발생함. 해결방법으로
1) 파라미터 수가 적은 모델을 선택, 훈련데이터에 있는 특성 수를 감소, 모델에 제약을 가해 단순화
2) 훈련 데이터를 더 많이 수집
3) 훈련 데이터의 잡음을 줄임(오류데이터 수정, 이상치 제거 등)
규제: 모델을 단순하게 하고 과대적합의 위험을 감소시키기 위해 모델에 제약을 가하는 것(ex: 선형모델에서 자유도 b의 가능한 값의 범위를 조절하는 것)
학습하는 동안 적용할 규제의 양은 학습 알고리즘의 하이퍼파라미터(hyperparameter)가 결정. (훈련전에 상수값으로 미리 지정됨)
2. 훈련 데이터 과소적합
- 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 발생
해결방안
1) 모델 파라미터가 더 많은 강력한 모델을 선택
2) 학습 알고리즘에 더 좋은 특성을 제공(특성공학)
3) 모델의 제약을 줄임(예를들어 규제 하이퍼파라미터 감소)
'Artificial Intelligence > Machine Learning' 카테고리의 다른 글
핸즈온 머신러닝(3) - 머신러닝 프로젝트 4 (0) | 2020.01.21 |
---|---|
핸즈온 머신러닝(3) - 머신러닝 프로젝트 3 (0) | 2020.01.20 |
핸즈온 머신러닝(3) - 머신러닝 프로젝트 2 (0) | 2020.01.20 |
핸즈온 머신러닝(3) - 머신러닝 프로젝트 1 (0) | 2020.01.20 |
핸즈온 머신러닝(1) - 머신러닝 시스템의 종류 (0) | 2020.01.20 |
댓글