교차검증 - 분류기를 k-1개 부분집합으로 학습시키고, 나머지 1개 부분집합으로 분류기 성능 측정
붓스트랩 - 샘플의 중복 사용 허용. N개의 샘플 가진 집합 X에서 pN개의 샘플 임의로 뽑는다.
기계학습 원리에 대해선 이전에 적은 바 있어서 pass
Convolution 신경망 in 비전: 특징검출과 기계학습을 모두 수행
원래 영상 - 특징 추출( C1, S2, C3, S4, C5 ) - 분류( F6, O )
원래영상 32*32에서, 5*5 윈도우를 컨벌루션해서 특징맵 생성. 이 때 입력층과 C1을 연결하는 에지의 가중치가 마스크의 값. 컨벌루션에 bias를 더한 값을 특징맵에 기록. --> 28*28 특징맵 생성(윈도우를 벗어나는 화소는 제거하기에, 양옆에서 2개씩 제거).
C1층은 이런 특징맵을 6장 생성. 각자 서로 다른 에지가중치를(마스크, 즉 Weight) 가지며, 각 특징 맵 내에서는 동일한 마스크 적용. 즉, 각 특징맵은 서로의 Weight가 다르며, 하나의 특징맵 내 뉴런은 모두 같은 Weight를 갖미.
각 특징맵은 5*5+1 = 26개의 가중치를 지니기에, 입력층과 C1층은 총 26*6 = 156개 가중치를 지님. 이 가중치는 학습으로 바뀜
S2층은, 다운샘플링을 통해 해상도 줄임. 2*2 윈도우 내에 있는 화소값을 더해, 가중치를 곱하고, 여기에 활성함수(sigmoid 등)을 적용. 이를 특징맵에 기록. 이를 통해, 14*14 특징맵 생성.
C3은 S2의 여러 특징맵에서 값을 취함. 예를 들어 C3의 1번 맵은 S맵의 1, 2, 3번 맵에서 값을 취하거나, 16번째 맵은 S2맵의 여섯 개 전체 맵에서 값을 취하는 등...
이를 반복한다. 또한 알아내야 할 매개변수 하나가 있다. 이는 Θ를 구성하는데, 이 새로운 신경망은 은닉층이 하나인 2층 신경망에 비해 Θ의 크기가 크다. 이는 LeCun의 오류 역전파 알고리즘 통해 개선이 가능.
아무튼 이를 통해 특징을 추출한다.
MLP를 확장한 깊은 신경망은 컨볼루션을 담당하는 복잡한 은닉층을 두지 않고, 표준 구조에서 단순히 은닉층을 늘리는 것으로 더 낫게 했다. 이런 깊은 신경망은 Hinton2006, Bengio2006
Krizhevsky2012는 컨벌루션신경망 + 병렬프로그래밍의 기계학습
깊은학습은 Bengio2009, Beingio2013을 참조.
SVM

선형분리가 되지 않고 잘못 분류되는 데이터가 존재하는 경우, 이를 처리하기 위해 잘못 분류된 데이터로부터 해당 클래스의 결정 경계까지의 거리를 나타내는 슬랙변수를 도입.

이로 인해, 해당클래스에 속하는 모든 데이터는, 클래스에 속하는 데이터가 플러스(마이너스) 평면보다 슬랙만큼 아래(윗)부분에 존재하도록 허용시킨다. 즉, 슬랙이 클수록, 더 심한 오분류를 허용한다.
슬랙변수를 추가한 분류조건을 만족하고 마진을 최대화하는 parameter을 찾기위한 목적함수는 아래와 같다.

c가 있는 항은 슬랙의 값을 되도록 최소화해, 오분류의 허용도를 낮추기 위해 추가된 것으로, 사용자가 직접 설정.
이제 목적함수와 조건식이 주어졌기에, 라그랑주 승수를 이용해 표현시 아래와 같다.

이는 아래로 바꿀 수 있다.

다음으로, 부등식 제약 조건이 있는 라그랑주의 KKT조건을 유도하고, WOLFE 듀얼문제로 바꿔 풀기 쉬운 형태료 변형시

이차계획법으로 라그랑제 승수를 찾을 수 있으며, 나머지 파라미터의 추정도 가능.

https://gentlej90.tistory.com/44
SVM (Support Vector Machine) Part 2
3. 슬랙변수를 가진 SVM (혹은 Soft Margin SVM) 위 그림과 같이 학습데이터가 선형분리 가능한 경우에 대해 알아보자. 위 처럼 선형분리가 되지 않고 잘못 분류되는 데이터가 존재하는데 이를 처리하
gentlej90.tistory.com
비선형 역시 위 링크 참조.
SVM을 어떻게 인식할 것인가? 이는 식의 조건부 최적화 문제를 풀어, 라그랑주 승수 a_i, 1<=i<=N을 찾는 과정이다. 비선형 과정에서 학습으로 찾아낸 a_i중 0이 아닌 것이 서포트 벡터이다. 인식단계에 사용하기 위해, 서포트벡터의 a_i와 특징벡터 xi를 저장한다.
자세한 건 책 참조. 체계적인 방법은 Duan2003, Anguita2003, Hsu2014
분류기 앙상블 :
여러 개의 서로 다른 분류기가 협동, 가장 많이 득표한 분류가 최종적으로 선택
이 떄 k번째 분류기는 L_k = (l_k1, l_k2,... l_km)이라는 출력을 낸다 가정하자.
해당 분류기가, 주어진 특징벡터가 w3이라는 세번째 부류에 속한다 생각하면 L_k = (0, 0, 1, .... 0)의 결과를 낸다.
이 때 alpha_k는 k번쨰 분류기의 신뢰도로서 분류기에 가중치를 부여하며, 신뢰도 정보가 없는 경우에는 1을 부여한다.
해당 분류기는 배깅이라는 방법을 이용해 만드며, 붓트스트랩을 다중분류기로 만든느 기법으로 확장한 것이다.
입력: 학습집합 X={(x1, t1),(x2, t2),..(xn,tn)}, 샘플링비율 p(0<p<=1), 분류기개수 K
출력: 분류기 앙상블 C={ck, 1<=k<=K}
C = NULL
for k=1 to K :
X에서 임의로 pN개의 샘플을 뽑아 Xk라 한다. 이 때 대치를 허용
Xk로 분류기 ck를 학습시킴
C = C U ck
또 다른 방법은, 원래 특징 공간에서 서로 다른 여러 개의 부분공간을 선택하고, 각 부분 공간에서 분류기를 제작하는 것(Ho98). 특징공간 x=(x1, x2, ... xd)에서 임의의 두 개의 특징을 골라 (x2, x4)등의 부분공간을 구축한 다음, 각 부분공간에서 분류기를 하나씩 만들어 앙상블을 구축.
1) 에이더부스트 : k번째 분류기 ck와 그 다음의 c_k+1이 서로 연관성을 갖도록 만들어짐. X에 있는 샘플은 분류기 ck가 맞추는 것과 틀리는 것으로 나뉘며, 맞춘 샘플은 인식이 가능해졌으므로 샘플의 가중치를 낮추고, 그렇지 않은 샘플은 가중치를 높인다. (Freund96)
입력 : 학습집합 & 분류기개수 K
출력 : 분류기 앙상블 C = {(ck, alpha_k)} # 신뢰도 alpha_k를 갖는 분류기 c_k
C = null
for j-1 to N
wj = 1/N #처음엔 같은 가중치 부여
for k=1 to K:
w1~wN을 감안해 분류기 ck를 학습시킨다. 가중치가 큰 샘플을 더 중요시한다.
eps = 0
for j = 1 to N:
if ck(xj) != tj:
eps = eps + wj #오류(틀린 샘플의 가중치)합 계산
if e < 0.5 :
#분류기 ck를 취함
alpha_k = 1.2log((1-eps)/eps) #분류기 ck의 신뢰도
for j=1 to N:
if(xk(xj) != tj) wj=wj*e^alpha #틀린 샘플의 가중치 높임
else : wj = wj * e^-alpha #맞춘 샘플의 가중치 낮춤
w1~wN 합이 1 되도록 정규화
C = C U (ck, alpha_k)
else :
ck = Ni |
C = C U (Ck, 0)
기본적인 원칙은 큰 샘플을 더 잘맞추도록 하는 것
이를 위해, 틀린 샘플에 대해 오류의 합을 구하며, 가중치가 큰 샘플을 틀리면 더 큰 오류가 발생한 효과가 생김.
오류가 0.5보다 크면 분류기로서의 가치가 없으므로 버린다.
분류기 ck의 신뢰도를, 오류가 작을 수록 큰 신뢰도를 부여하는 방식으로 계삲나다.
alpha_k는 알고리즘의 출력으로서, 나중에 테스트 샘플 인식하는 데(투표하는데) 중요하다.
맞춘샘플의 가중치 낮추고 그렇지 않으면 높임으로써, 틀린 샘플이 다음 루프의 학습과정에서 더 중요하게 취급되도록 ㅎ나다.
학습과정은 어떠한가? 우선,
X에서 pN개의 샘플을 뽑아 X'라 칭하고, xj가 뽑힌 확률이 wj가 되도록 한다.
X'로 ck를 학습히킨다.
라는 방식이 있다.
다음으로, X전체를 쓰되 분류기 ck가 틀리는 샘플의 가중치합 eps을 비용함수로 간주하고, 이를 최소화하는 알고리즘을 쓸 수도 있다.
이렇게 각각의 신뢰도 alpha_k를 출력하여 투표를 하면 된다.
임의숲 : 분류기가 독립적. 오일석 2008, 6.1절 || Breiman2001
그냥 트리를 생각하면 됨. 재귀를 순차적으로 내려가는 과정을 구성.
T에서 최적의 특징과 이 분할점을 찾아 질문 Q를 생성 후 예/아니오 방식으로 내려감.
기계 학습을 이용한 얼굴 검출 : zhang2010(서베이 논문), Yang2002(서베이 논문), Garcia2004, Osadchy2005(컨볼루션신경망 이용)
인식 : 검출로 알아낸 부분 영상에서 특징 추출, 분류를 수행하여 누군지 알아낸 것
viola2001: 유사 하르특징을 이용
적분 영상: 2~4개의 블록 합(또는 차)로 구한다. 이를 통해, 빠른 시간 안에 특징의 추출이 가능.
얼굴 근방에서 여러 개의 윈도우가 얼굴로 판정될 때, 이를 결합해 하나의 얼굴 영역을 결정하는 것 : Viola2004
'버츄얼유튜버' 카테고리의 다른 글
비전 10 ) 모션 (2) | 2022.01.09 |
---|---|
비전 9 ) 인식 (0) | 2022.01.08 |
비전7 ) 매칭 (0) | 2021.12.29 |
비전 6) 특징기술 (0) | 2021.12.28 |
비전 5) 영상 분할 (0) | 2021.12.28 |