이전 모델에는 복잡한 도형이 많이 포함되어 있습니다. 더 간단한 방법
어떻게 해야 할까요? 복잡한 모델을 인코더-디코더 아키텍처를
직선이라는 믿기지 않을 정도로 간단한 모델입니다.
새로운 데이터에 대해 단순한 모델이 복잡한 모델보다 더 잘 일반화합니다. 즉,
테스트 세트에 대해 복잡한 모델보다 단순한 모델이 더 나은 예측을 했습니다.
단순성은 오랫동안 복잡성을 극복해 왔습니다. 실제로
단순성에 대한 선호도는 고대 그리스로 거슬러 올라갑니다. 수백 년이 지난 후,
오컴의 윌리엄이라는 14세기 수도사는
오컴(Occam)의 원리로
razor를 사용합니다. 이 철학은
인간 편견과 같은 많은 과학의 필수적인 기본 원칙으로
머신러닝으로
나눌 수 있습니다
연습문제: 이해도 확인
물리 방정식을 개발하고 있습니다. 다음 중 어떤 공식이 있을까요?
오컴의 면도날과 더욱 밀접하게 관련이 있다고 생각하시나요?
변수가 3개 있는 수식
12개의 변수보다 3개의 변수가 Occam에 더 적합합니다.
12개의 변수가 포함된 수식
12개의 변수는 지나치게 복잡하지 않습니까?
역사상 가장 유명한 두 가지 물리학 공식 (F=ma와
E=mc2)는 각각 세 개의 변수만 포함합니다.
새로운 머신러닝 프로젝트를 진행 중이며
살펴보겠습니다 몇 개의 기능을 선택해야 할까요?
예측 성능이 강력한 것으로 보이는 특성 1~3개를 선택하세요.
데이터 수집 파이프라인은 하나 또는 여러 개의
살펴보겠습니다 이렇게 하면 ML 모델이 의도한 대로 작동하는지 확인하는 데 도움이 됩니다.
또한 몇 가지 특성에서 기준을 만들 때
진도를 나가고 있다는 기분이 들 거예요!
예측 성능이 강력한 것으로 보이는 특성 4~6개를 선택하세요.
결국 이렇게 많은 기능을 사용하게 될 수도 있지만,
시작할 수 있습니다. 기능이 적을수록 일반적으로 불필요한 요소가
있습니다.
가능한 한 많은 특성을 선택하여 어떤 특성이 발견되는지
예측 성능이 가장 강력합니다
더 작게 시작하세요. 새 특성마다 학습에 새로운 차원이 추가됩니다.
데이터 세트로 그룹화됩니다. 차원이 증가하면 공간의 크기가
증가하기 때문에 사용 가능한 학습 데이터가 희소해집니다. 이
데이터가 희소할수록 모델이 관계를 학습하기가 더 어려워집니다.
분류해야 합니다 이 현상은
'차원의 저주'라고 합니다
정규화
머신러닝 모델은 서로 상충되는 두 가지 목표를 동시에 충족해야 합니다.
데이터가 잘 맞는지 확인합니다.
최대한 단순하게 데이터를 조정합니다.
모델을 단순하게 유지하는 한 가지 접근 방식은 복잡한 모델에 페널티를 적용하는 것입니다. 즉,
학습 중에 모델이 단순해지도록 합니다. 페널티가 적용되는 컴플렉스
모델은 정규화의 한 형태입니다.
손실과 복잡도
지금까지 이 과정에서는 학습의 유일한 목표가
손실 최소화 다음과 같습니다.
$$\text{minimize(loss)}$$
살펴본 바와 같이 손실을 최소화하는 데만 중점을 두는 모델은 과적합되는 경향이 있습니다.
더 나은 학습 최적화 알고리즘은
손실과 복잡도:
$$\text{minimize(loss + complexity)}$$
안타깝게도 손실과 복잡성은 일반적으로 반비례 관계입니다. 따라서
복잡도는 증가하고 손실은 감소합니다. 복잡도가 감소하면 손실이 증가합니다.
모델이 좋은 중간점을 찾아야 합니다.
예측을 수행하는 방법을 보여줍니다.
즉, 모델은 적절한 절충안을 찾아
복잡도에 대해 살펴봤습니다
복잡도란 무엇일까요?
이미 손실을 정량화하는 몇 가지 다른 방법을 살펴보았습니다. 그렇다면
어떻게 해야 할까요? 다음 연습을 통해 탐색을 시작합니다.
연습문제: 직관력 확인하기
지금까지 복잡성이 실제로 무엇인지에 대해 모호하게 설명했습니다.
있습니다. 다음 중 합리적이라고 생각되는 아이디어는 무엇인가요?
어떻게 해야 할까요?