


벡터 사영:
U로 V를 사영한 벡터:
projUV=V⋅U||U||2U
y=wTx
|w|=1, w의 방향은 x와 곱할 때 정해져 있어서 따로 붙히지 않고, y는 1차원 벡터(스칼라)
클레스가 2개일 때
클래스 i의 평균 벡터:
mi=1ni ∑x∈Di x
직선에 projection 시킨 클래스 i의 평균 벡터:
~mi=1ni ∑y∈Yi y=1ni ∑x∈Di wTx=wTmi
클레스 1, 2 사이의 거리(between-class scatter):
|~m1−~m2|=|wT(m1−m2)|
|~m1−~m2|2
={wT(m1−m2)}2
=wT(m1−m2)wT(m1−m2)
=wT(m1−m2){wT(m1−m2)}T
=wT(m1−m2)(m1−m2)Tw
=wTSBw
4번식의 경우, w^T는 1xd 행렬, m1-m2는 dx1 행렬이므로 결과가 스칼라이기 때문에 transpose하더라도 같은 값이라는 점을 이용한 것이다.
클래스 내 분산(within-class scatter):
~s12+~s22
= ∑y∈Y1(y−~m1)2+ ∑ y∈Y2(y−~m2)2
= 2∑ i=1 ∑ y∈Yi(y−~mi)2
= 2∑ i=1 ∑ y∈Yi(wTx−wTmi)2
= 2∑ i=1 ∑ y∈Yi(wTx−wTmi)(wTx−wTmi)
= 2∑ i=1 ∑ y∈YiwT(x−mi)wT(x−mi)
= 2∑ i=1 ∑ y∈YiwT(x−mi)(x−mi)Tw
=wTSWw
목적 함수:
J(w)=|~m1−~m2|2~s12+~s22 =wTSBwwTSWw
우리가 찾는 것은 목적 함수를 최대로 만드는 w를 찾는 것이다.
ddwJ(w)=ddwwTSBwwTSWw=0
=[ddwwTSBw][wTSWw]−[ddwwTSWw][wTSBw](wTSWw)2
=2SBw[wTSWw]−2SWw[wTSBw]wTSww
=2SBw−2SWwwTSBwwTSWw=0
SBw−SWwJ(w)=0
SBw−λSWw=0
9번 식에서 J(w)는 하나의 w에 대해 스칼라이므로 λ로 표현 가능하다. ?
8번식 과정
ddwwTSBw=wT(SB+STB)
=wT(SB+STB)[wTSWw]
=2wTSB[wTSWw]
S_B의 결과 자체가 스칼라라서 같다고 나오는듯?
ddXXTAX=XT(A+AT)
[행렬 X에 대해 미분]
고유 벡터 꼴
S−1WSBw−λw=0
S−1WSBw=λw
클레스가 여러 개일 때
multi class fisher LDA
J(w)=|~SB||~SW|
클래스 i의 분산의 합 = S_W
SW= c∑i=1 Si= c∑ i=1 ∑ x∈Di(x−mi)(x−mi)T
전체 데이터 집합에 대한 분산 = 클래스 간 분산 + 각 클래스 내 분산
ST=SB+SW
m=1nc∑i=1nimi
ST= ∑ x(x−m)(x−m)T
= c∑ i=1 ∑ x∈Di(x−mi+mi−m)(x−mi+mi−m)T
= c∑ i=1 ∑ x∈Di(x−mi)(x−mi)T + c∑ i=1 ∑ x∈Di(mi−m)(mi−m)T
=SW + c∑ i=1 ∑ x∈Di(mi−m)(mi−m)T
클래스 간 분산
SB= c∑ i=1 ∑ x∈Di(mi−m)(mi−m)T
10번 식에 각 값을 대입하면 된다.
목표 함수
J(w)=|~SB||~SW|=|WTSBW||WTSWW|
출처:
https://darkpgmr.tistory.com/141
'통계' 카테고리의 다른 글
RMSprop, Adam 알고리즘 해설 (0) | 2021.12.26 |
---|---|
다중공선성 (multicollinearity) (0) | 2021.12.18 |