Wikipedia 는 다음과 같이 말합니다.
VC 차원은 알고리즘이 산산조각 낼 수있는 가장 큰 점 집합의 카디널리티입니다.
예를 들어 선형 분류기는 카디널리티 n + 1을 갖습니다. 내 질문은 왜 우리가 관심을 갖는가? 선형 분류를 수행하는 대부분의 데이터 세트는 매우 큰 경향이 있으며 많은 점이 포함됩니다.
답변
VC 치수는 무엇입니까
@CPerkins가 언급했듯이 VC 차원은 모델의 복잡성을 측정 한 것입니다. 또한 위키 백과와 같이 데이터 포인트를 산산조각내는 능력과 관련하여 정의 할 수도 있습니다.
기본적인 문제
- 보이지 않는 데이터를 잘 일반화하는 모델 (예 : 분류 자)이 필요 합니다.
- 특정 양의 샘플 데이터로 제한됩니다.
다음 이미지 ( 여기 에서 가져온 )는 일부 모델 (
까지
)가 다른 복잡성 (VC 치수)으로 표시되며 여기에서 x 축에 표시되고
.
이미지는 VC 차원이 높을수록 경험적 위험 (모델이 표본 데이터에서 발생하는 오류)을 낮출 수 있지만 신뢰 구간이 더 높아짐을 보여줍니다. 이 구간은 모델의 일반화 능력에 대한 신뢰로 볼 수 있습니다.
낮은 VC 치수 (높은 바이어스)
복잡도가 낮은 모델을 사용하는 경우 선형 분류자를 사용할 때 데이터를 선형 모델로 설명 할 수 있다고 가정 할 때 데이터 세트와 관련하여 일종의 가정 (바이어스)을 도입합니다. 그렇지 않은 경우 문제가 비선형이기 때문에 선형 모델로 주어진 문제를 해결할 수 없습니다. 데이터 구조를 배울 수없는 성능이 나쁜 모델로 끝납니다. 그러므로 우리는 강한 편견을 피하려고 노력해야합니다.
높은 VC 차원 (더 큰 신뢰 구간)
x 축의 다른면에서 우리는 데이터의 일반적인 기본 구조, 즉 모델 오버 피트를 학습하는 대신 데이터를 암기 할 수있는 큰 용량의 복잡한 모델을 볼 수 있습니다. 이 문제를 깨닫고 나면 복잡한 모델을 피해야합니다.
우리가 바이어스를 도입하지 않기 때문에 논란의 여지가있을 수 있습니다. 즉, VC 치수는 낮지 만 VC 치수는 높지 않아야합니다. 이 문제는 통계 학습 이론에 뿌리를두고 있으며 편차-분산-거래 로 알려져 있습니다. 이 상황에서해야 할 일은 가능한 한 복잡하고 가능한 한 복잡해야하므로 동일한 경험적 오류로 끝나는 두 모델을 비교할 때는 덜 복잡한 모델을 사용해야합니다.
VC 차원의 아이디어 뒤에 더 많은 것이 있음을 보여줄 수 있기를 바랍니다.
답변
VC 차원은 일련의 집합 중 특정 객체 (함수)를 찾기 위해 필요한 정보 (샘플) 비트 수입니다.
객체 (기능) .
차원은 정보 이론에서 유사한 개념에서 비롯됩니다. 정보 이론은 Shannon의 다음 관찰에서 시작되었습니다.
당신이 가지고 있다면
객체와 이들 중
특정 개체를 찾고 있습니다. 이 객체를 찾으려면 몇 비트의 정보가 필요 합니까? 객체 세트를 두 개의 절반 으로 나누고 “찾고있는 객체의 절반이 어디에 있습니까?”라고 물을 수 있습니다. . 상반기에 있으면 “yes”를, 하반기에 있으면 “no”를받습니다. 다시 말해, 1 비트의 정보 를받습니다 . 그 후, 같은 질문을하고 마침내 원하는 물체를 찾을 때까지 세트를 반복해서 나눕니다. 몇 비트의 정보가 필요합니까 ( 예 / 아니오 )? 분명히
비트 정보-정렬 된 배열의 이진 검색 문제와 유사합니다.
Vapnik과 Chernovenkis는 패턴 인식 문제에서 비슷한 질문을했습니다. 당신이 세트를 가지고 있다고 가정
주어진 st 함수
각 함수는 yes 또는 no (감독 된 이진 분류 문제)를 출력 합니다.
특정 함수를 찾고있는 함수, 주어진 데이터 세트에 대해 올바른 결과 예 / 아니오 를 제공하는 함수
. 다음과 같은 질문을 할 수 있습니다. “어떤 함수가 no를 반환 하고 어떤 함수가 특정 함수에 대해 yes 를 반환합니까?
데이터 세트에서. 당신이 가지고있는 훈련 데이터에서 실제 답변이 무엇인지 알고 있기 때문에 일부에 대한 잘못된 답변을 제공하는 모든 기능을 버릴 수 있습니다
. 몇 비트의 정보가 필요합니까? 다시 말하면, 잘못된 기능을 모두 제거하려면 몇 가지 훈련 예제가 필요합니까? . 이것은 정보 이론에서 Shannon의 관찰과는 약간의 차이입니다. 함수 세트를 정확히 반으로 나누지 않고 있습니다 (아마도 하나의 함수 중 하나 일 수 있습니다)
일부에게는 잘못된 답변을 제공합니다
), 아마도 함수 집합이 매우 커서 다음과 같은 함수를 찾기에 충분합니다.
-원하는 기능에 가깝고이 기능이
-확률로 마감
(
– PAC의 프레임 워크) 샘플, 정보의 비트 수 (수) 당신이 될 것입니다 필요
.
이제 집합 중
함수 오류를 저 지르지 않는 함수가 없습니다. 이전과 마찬가지로 다음과 같은 기능을 찾기에 충분합니다.
-확률로 마감
. 필요한 샘플 수는
.
두 경우 모두 결과는 다음에 비례합니다.
-이진 검색 문제와 유사합니다.
이제 무한한 함수 집합을 가지고 있고 그 함수들 중에서
-확률이 가장 좋은 기능에 가깝습니다.
. 함수가 연속적인 (SVM) 아프고 연속적인 함수를 찾았다 고 가정합니다 (설명을 단순화하기 위해).
-최고의 기능에 가깝습니다. 함수를 조금만 이동하면 분류 결과가 변경되지 않으므로 첫 번째와 동일한 결과로 분류되는 다른 함수가 있습니다. 동일한 분류 결과 (분류 오류)를 제공하는 이러한 모든 기능을 사용하여 데이터를 정확히 동일한 손실 (그림의 한 줄)로 분류하므로 단일 기능으로 계산할 수 있습니다.
___________________ 두 라인 (기능)이 동일한 성공으로 포인트를 분류합니다.
그러한 함수 세트 에서 특정 함수를 찾으려면 몇 개의 샘플이 필요합니까 (각 함수가 주어진 포인트 세트에 대해 동일한 분류 결과를 제공하는 함수 세트로 함수를 고안했음을 기억하십시오)? 이것은 무엇입니까
차원은 말한다-
에 의해 대체
특정 포인트에 대해 동일한 분류 오류가있는 일련의 함수로 나뉘어 진 무한 연속 함수가 있기 때문입니다. 필요한 샘플 수는
완벽하게 인식하는 기능이 있다면
원래 기능 세트에 완벽한 기능이없는 경우
그건,
차원은 달성하기 위해 필요한 많은 샘플에 대한 상한을 제공합니다 (btw는 개선 할 수 없음).
확률 오류
.
답변
VC 차원은 모델의 복잡성을 측정 한 것입니다. 예를 들어, VC 차원 Dvc를 고려할 때 모델의 복잡성을 고려할 때 n = 10xDvc 데이터 포인트가 있어야한다는 것이 좋습니다.
이를 사용하여 테스트 오류에 대한 상한을 만들 수도 있습니다.