ㆍ 본 글에서 작성하는 내용은 LG Aimers의 내용임을 밝힙니다.

ㆍ 동시에 이곳에 첨부한 모든 이미지와 링크는 동영상 내의 화면이 아닌 개인이 직접 탐색한 자료임을 밝힙니다.

 

ㆍ 구분) 검은색으로 작성한 글씨는 LG Aimers의 강의 내용

ㆍ 구분) 초록색으로 작성한 글씨는 본인의 생각과 의견을 작성한 내용

ㆍ 구분) 파란색으로 작성한 글씨는 참조 혹은 외부 연결 링크


0. 용어 정리

영어 용어 한국 용어 설명
     
     
     
     
     
     
     
     
     
     
     
     
     

 

1. Problem Setting

(x1, x2)라는 좌표로 데이터가 주어질 때, x2는 거의 대부분 0에 가까워 의미가 없는 데이터임을 알 수 있다.

데이터의 dimension이 큰 경우를 High-dimensional data라고 부름

Dimension이 커질수록 ML에 넣을 때나 시각화 할 때, 분석을 할 때 상당히 힘들다.

특히 위 예시에서 x2는 redundant하고 중요하지 않은 데이터가 된다. 이걸 어떻게 줄일 수 있을까?

이런 dimension을 줄이는 대표적인 방법이 PCA

 

집 살 때 고려하는 변수라고 가정

다섯 가지를 두 가지로 줄여주는 방법론이 있다고 가정하면, 결정하기 더 쉬울 것

이걸 PCA가 해줌

 

PCA 알고리즘 과정

S1 각 데이터 값에서 평균을 빼줌, 원점을 중심으로 정렬하는 과정 

S2 각 데이터마다 분산을 구한뒤 나눔, 이렇게 Normalization하면 각 차원마다 분산이 1이 된다.

S1, S2 > 평균이 0이고, 분산이 1인 선형 변환의 과정

S3 Data covariance matrix의 eigenvalue와 eigenvector를 구한다.

이때 가장 큰 M개의 eigenvalue를 구하고 해당 eigenvalue의 eigenvector를 구한다.

이때 M은 축소하고자 하는 target dimension 크기

S4 데이터 포인터들을 S3에서 고른 eigenvector 공간으로 projection(정사영)한다.

S5 S1와 S2의 역연산을 한다.

 

시각화, Projection 부연 설명

해당 평면(eigenvector의 평면)으로 가장 가까운 point를 찾아서 data를 squeezing한다?

 

N은 샘플의 개수, D는 차원(D차원의 어떤 vector)

Data matrix는 순수하게 data들을 모아놓은 matrix를 일컫는다.

Data covariance(공분산) matirx는 1/N XX^T를 부름.

이 친구는 항상 positive definite이 됨

또한 eigenvalue도 존재하고, symmetric하기 때문에, 좋은 성질이 많다.

 

PCA의 목적은 고차원의 데이터를 계산과 분석을 쉽게 하기 위해서 차원을 낮추는 것.

low-dimensional representation을 Zn이라고 한다.

결국 PCA는 projection하고 subtraction하고 divison한 거기 때문에 모든 과정이 linear하다.

어떤 B 행렬을 곱해야 잘 줄일 수 있을까? > PCA가 근본적으로 하는 것

 └ 이때 B는 orthonormal하다. B행렬의 vector들이 서로 수직하다.

 

D보다 작은 U 차원(subspace)을 찾아야 한다.

기존 Xn에서 reconstruction한 data를 ~Xn이라고 명명

 

PCA는 결국 선형 인코딩, 디코딩을 하는 과정

 

2. Maximum Variance Perspective

Dimensionality reduction(low space mapping)

과연 어떤 공간이 mapping하기 위해 좋은 공간일까?

X와 Y가 있을 때 X의 분포가 더 넓기 때문에 더 중요하다고 생각하고 X를 고를 수 있다.

하지만 X와 Y가 아니라 어떤 direction에 대해 데이터들을 projection했다고 해보자.

그리고 그때 데이터 특징이 가장 maximum하다고 해보자.

그럼 그 direction이 가장 의미있는 것 아닌가?

 

데이터의 subspace를 찾아서, projection했을 때, 그것의 variance를 최대화하는 low-dimensional space를 찾는 것 

이것이 결국은 PCA다. 이에 대한 수학적 증명은 밑에서.

 

기본으로 알아야 하는 notation(표기법)

X는 언제나 original data point, D-dimensional vector

B는 data point를 low-dimensional space로 mapping하는 matrix

D는 mapping된 matrix

Z는 새로운 coordinate, M-dimensional vector

 

B-space로 data를 projection할 때 z에 대한 분산이 가장 커질 것인가

결과는 가장 큰 eigenvalue에 해당하는 eigenvector가 될 것이다

 

S = data covariance matrix

Variance(분산)을 최대화하는 B를 구하는데, B의 크기에 따라 바뀐다. 따라서 |b|^2 = 1이라는 조건을 둠

variance optimization을 푸는 문제 

 

object function : max ~~

constraint : |b| 부분

KKT를 사용하면 Sb1 = λb를 얻을 수 있음

b^Tb = 1은 constraint에서 옴

 

solution이 k번째 큰 eigenvalue에 해당하는 eigenvector다??...를 보이려고 한다. 

b1 ~ bk는 data covariance matirx의 orthonormal한 eigenvector라고 가정

이에 해당하는 eigenvalue들을 λ라고 표현

constraint optimization의 lagrangian function을 사용하면 최하단의 식이 나온다

 

위에서 얻은lagrangian function에서 KKT condition을 적용한다.

KKT에서는 gradient가 0이 되어야 solution이 나오는 조건이 있기 때문에, (*)의 조건을 만족해야 함을 알 수 있다.

(*) 식에서 양변에 bj를 곱한다.

수직하다고 가정했기 때문에, -2bjbk 부분은 0으로 수렴하고, Σ 부분은 i=j부분만 살아남는다.

 bj는 eigenvector임을 알기 때문에, λbj가 된다?

해서 뭐 유도하는데 대부분 건너뛰어서 식 전개 및 유도는 해봐야 할 듯 

 

 

 

3. Eigenvector Computation and Low-Rank Approximations

PCA를 하려면 결국 data covariance의 decomposition을 구해야 한다?

그래서 실제로 계산을 하기 위해서는 data covariance S를 구한 다음에,

eigen-docomposition이나 eigenvalue, eigenvector를 구해도 된다.

아니면 X에 대해서 SVD에 대해서 식을 전개하면 된다.

ΣΣ^T가 eigenvalue에 해당하는 부분, UU^T가 eigenvector에 해당하는 부분

 

PCA에 대한 아주 좋은 성질이 있답니다 또 하하

origin data X가 있을 때, L2 norm? 관점에서, 가장 근접한 matrix A를 찾길 원한다.

이때 matrix A의 rank?는 M이다.

Eckart-Young theorem이 의미하는 것, 결국 ~Xm이 PCA이고 SVD다.

또 설명 어물 넘어감... 추가 자료 확인 필요...

 

4. PCA in High Dimensions

가끔 PCA를 하다보면 data의 크기(개수)보다는 dimension이 높은 경우가 있다.

만약 dimension이 상당히 크다면(근데 데이터의 개수가 엄청 적다면), 효율적으로 계산하는 방법이 있다.

(람다는 e-value, bm은 e-vector)

양변에 X^T를 곱한다. X^Tbm을 Cm으로 대체, 

Cm은 결국 X^TX의 eigenvector가 되고, 람다m은 eigenvalue가 된다?

XX^T는 D*D 크기의 행렬인데, X^TX는 N*N 크기의 행렬이 된다.

만약 D가 N보다 크다면, 순서를 바꾸어 eigenvalue와 eigenvector를 구하는 게 훨씬 쉽다.

eigenstuff는 뭐지

Cm과 람다m을 계산해놓고, 역연산을 하기 위해서는 X만을 곱하면 된다?

계산량을 훨씬 줄일 수 있다.

 

 

(흐름 파악 중)

ㆍ 본 글에서 작성하는 내용은 LG Aimers의 내용임을 밝힙니다.

ㆍ 동시에 이곳에 첨부한 모든 이미지와 링크는 동영상 내의 화면이 아닌 개인이 직접 탐색한 자료임을 밝힙니다.

 

ㆍ 구분) 검은색으로 작성한 글씨는 LG Aimers의 강의 내용

ㆍ 구분) 초록색으로 작성한 글씨는 본인의 생각과 의견을 작성한 내용

ㆍ 구분) 파란색으로 작성한 글씨는 참조 혹은 외부 연결 링크


0. 용어 정리

영어 용어 한국 용어 설명
Optimization 최적화 특정한 집합에서 정의된 실수, 함수 등에 의해, 값이 최대나 최소가 되는 상태
Gradient Descent 경사 하강법 함수의 기울기를 구한 뒤, 반대 방향으로 계속 이동해 극값에 다다르게 하는 방법
Constraint 제약 조건 Optimization(최적화)하기 위해 만족해야 하는 조건
Objective Function    
Convex 볼록한  
Loss Function    
Stochastic    
Noisy Approximaion    
Overshooting    
Lower Bound    
Feasible    
Concave 오목한  
Weak Duality 약 이중성(쌍대성)  
Hassian Matrix    
Non-decreasing    
Non-increasing    
Supremum 최소상계  
Infimum 최대하계  
Strong Duality 강 이중성(쌍대성)  
Quadratic    

 

1. Optimization Using Gradient Descent

Machine Learning(이하 ML) 모델을 학습한다고 하면, 보통 Optimization을 말한다.

즉, 모델의 좋은 parameter를 찾는 과정을 말한다.

Optimization에도 종류가 있다.

Unconstrained Optimization = Constraint가 없는 최적화

 └ 최적화할 변수들에 대한 제약 조건이 없다. 변수들은 범위나 조건 없이 모든 값을 가질 수 있다.

 └ 목적 함수(Objective Function)를 최대화하거나 최소화하는 값들을 찾는 것이 주된 목표

Constrained Optimization = Constraint가 있는 최적화

 └ 변수들이 특정한 제약 조건을 만족해야 한다. 변수들이 특정 값 이하로 제한되거나, 특정 범위 내에 속하는 

 

함수를 최적화하는 point를 찾는 것은 gradient 정보와 매우 밀접한 연관

어떤 미분 값이 0이 되는 point가 이 함수의 minimum이 되는 경우가 다수

다시 말해서 gradient 정보가 함수를 최적화함에 있어서 매우 중요하다

 

 

일반적으로 unconstrained optimization이라고 하면 goal에 있는 식을 생각

어떤 함수 f는 R차원 vector를 어떤 singualr R로 mapping하는 함수

이떄 함수 f를 최소화하는데 관심이 있다고 가정

f(x)를 minimize하기 위해서는 gradient-type algorithm이라는 iterative algorithm 형태의 algorithm이 있다.

이 알고리즘은 X0값이 random하게 정하고, Xk를 이용하여 Xk+1을 정한다.

이떄 감마k와 dk 값이 중요한데, 감마k는 stepsize라고 부르는 Scaler 값이고, dk는 방향성을 나타낸다.

 

Lemma에서 보듯,

찾고자 하는 방향 d가 어떤 gradient(▽f(x))와 내적이 0 이하라면

어떤 d에 대해서도 stepsize를 잘 정의할 수 있다면, 현재 값보다 낮아지는 α가 존재한다.

결국 Lemma에서 말하고자 하는 건, 결국 gradient와 반대되는 d와, stepsize를 잘 조절하면

어떤 함수 f(x)를 최소화하는 업데이트 값을 구할 수 있다는 말이다.

이중 gradient와 정확히 반대의 d인 경우, 'Steepest gradient descent'라고 한다.

일반적으로 gradient descnet라고 하면 위의 steepest를 가리킨다.

 

위 사진은 예시

 

L(θ)일 때 L은 모델의 손실 함수, θ는 모델의 파라미터

최소화하려는 손실 함수 L을, 얼만큼의 data로 정의하느냐에 따라서, 종류가 나뉨

ㆍ Batch gradient descent : 전체 n에 대한 손실 함수 L

ㆍ Min-batch gradient descent : n보다 작은 어떤 k만큼에 대한 손실 함수 L

ㆍ Stochastic gradient descent : 특정 확률에 의해 편향되지 않은 데이터에 대한 손실 함수 L

 

gradient 방향에 대해서 고민하는 standard한 gradient descent 외에

방향도 새롭게 정의하는 다양한 방법들이 존재, Momentum, NAG, Adagrad, RMSprop, Adam, etc.

 

전부 다 = 배치, 일정 subset = 미니배치, 미니배치 중 일부가 스토캐스틱

Stochastic gradient는 Original full batch gradient의 noisy approximation이다.

전체를 다 계산하기 힘든 상황 = N이 상당히 큰 경우에 한다 = 비용 절감

 

감마(stepsize)가 너무 작으면, 업데이트가 느리고, 너무 크면 overshooting(수렴값을 넘어감) 해버린다.

Momentum 주 아이디어 = 이전의 업데이트 방향을 조금 반영하자

이를 적용하면 이론상 수렴 속도가 빨라진다.

Gradient Descent는 기본적으로 Unconstrained Optimization일 때 적용 가능한 알고리즘이다.

 

2. Constrained Optimization and Lagrange Multipliers

x는 optimization해야 하는 변수, p*은 optimal value, p*를 만족한 x를 x*이라고 표현

 └ 이부분은 진짜 설명 뭣같다...

 └ 쉽게 말해서 x는 입력 변수, p는 출력 변수다.

 └ p*는 다양한 출력 값들 중 함수의 최적의 결괏값이고, x*는 p*라는 출력을 내기 위한 입력값이다. p* = f(x*)

이런 Constrained Optimization을 Gradient Descent처럼 쉽게 풀 수 없을까?해서 나온 게 라그랑주

 

여기서 λ, v는 Lagrangian Multiplier(또는 Dual Variable)라고 부름 # https://richek.tistory.com/25

L이 라그랑주 함수(Lagrangian Function)

x에 대해서 infimum(최솟값)을 가질 때의 함수는 Dual function

 

lower bound와 minimum은 다르다. lower bound는 구간이고, minimum은 최솟값이다.

둘의 차이점은 minimum이 0이라면 반드시 0을 최소로 가져야만 하지만,

lower bound가 [0, 5)라면 0에서 5사이 값 어떤 값을 최소로 갖든 상관이 없다.

Stochastic이라는 말자체가 확률을 내포하기 때문에 저런 구간을 내포하는 용어를 사용하는 듯하다.

 

g(x)가 0보다 작고, h(x)가 0인 x를 feasible(구현 가능한, 조건을 만족하는)라고 부르자.

그럼 Σg(x)는 당연히 0보다 작거나 같고(음수), Σh(x)는 0이 된다.

따라서 f(x) + (0보다 작거나 같은 수) ≤ f(x)인 것은 자명하다.

 

Dual functoin은 f(x)가 infimum(최솟값)인 라그랑주 함수이기 때문에

당연하게도 D(λ, v) ≤ L(x, λ, v) ≤  f(x)를 만족한다.

 

lagrangian dual problem은 lower bound에서 최적(best)값을 찾아내는 문제다.

그리고 이는 곧 lower bound를 최대화하는 것이 곧 best 케이스이다.?? > 왜?

Original optimization : x에 대한 최적화

Dual optimization : λ와 v에 대한 최적화

 

Dual problem(dual optimization을 최적화하는 것)을 풀면 항상 Original optimization이 항상 lower bound가 된다.

그리고 Dual problem의 결과는 항상 Convex Optimization이 된다.

언제나 최적화(optimization)가 가능한 것은 아니지만, Convex Optimization을 이용하면 언제나 최적화가 가능하다.

왜냐하면 D(λ, v)는 항상 λ, v에 대해서 concave하기 때문이다.

 └ f가 아니라 -f가 convex한 경우를 concave라고 표현

 

Weak Duality란, d* ≤ p*라는 관계를 말한다.

(p*는 풀 수 없는 경우가 있어도, d*는 항상 풀 수 있다?)

그래서 p*를 구하지 못하더라도 대충 d*를 통해서 예측이 가능하다.

p* - d* 값을 Optimal duality gap이라고 부른다.

Convex optimization에서는 p*와 d*가 언제나 같다.

 

3. Convex Sets and Functions

1.에서 설명한 Unconstrained Optimization의 경우 중에서

f(x)가 Convex function이고, X가 Convex set일 때를, Convex optimizatoin이라고 부른다.

이말은즉, 최적화를 할 수 있냐 없냐는, 이 식의 Convex하냐 아니냐와 거의 유사하다고 본다.

 

수학적으로 convex set이라는 말은, 어떤 집합에서 두 점을 잡았다고 할 때,

두 점을 잇는 선분이 항상 집합(set)에 포함된다면 이를 convex set이라고 부른다.

3번도 convex set이 아니다. 변이 열린 구간이 있기 때문

 

어떤 함수가 convex하다는 것은 0에서 1사이의 어떤 θ에 대해서 위 식을 성립한다는 것이다.

(예를 들어서 θ가 1/2일 때, f(x+y/2) ≤ 1/2f(x) + 1/2f(y)가 성립함) > 그림으로 이해하기 쉬움

 

strictly convex는 등호가 없는 경우

f가 아니라 -f가 convex한 경우를 concave라고 표현

Affine function들은 언제나 convex하면서 동시에 concave하다.

 └ 선형 함수들 중에서 가중치(y절편)가 붙어서 ax + b 형태로 원점을 지나지 않는 직선 함수(linear function)를 말함

 

유명한 부등식(inequality)로는 Jensen's inequality가 있다.

무작위 X에 대해서 f(E[X]) ≤ E[f(x)]가 항상 성립

 

Convex function인지 아닌지 확인할 수 있는 조건이 여러 개 존재 

ㆍ First-order condition : gradient 정보를 사용한 조건

만약 함수가 미분 가능하다면, f(y) - f(x) ≥ ▽f(x)^T(y-x)가 성립한다.

쉽게 말하면 어떤 점의 접선보다 함수가 항상 위에 있다는 말과 동일(f(x) = x^2)

이때 ▽f(x)가 0이라면, ∀y에 대해서 f(y) ≥ f(x)라는 뜻이고, 함수 f의 x는 global minimizer다.

Convex functoin의 성질 중 하나는,  함수를 minimizer하는 점과 gradient가 0이 되는 값이 동치다.

기울기 정보는 어찌보면 local 정보인데, minimizer라는 global 정보와 일치하는 것이 중요한 특징

 

Convex function을 정의하는 또 다른 방법

두 번 미분한 Hassian Matrix가 Positive Semidefinite Matrix인 경우, convex하다고 표현

즉 ▽^2f(x) ≥ 0의 Hassian Matrix의 Eigenvalue가 0보다 크거나 같다면, Convex하다.

위의 정의(first-order condition)와 동치 관계다.

 

Convex function의 다양한 예제들

대표 예제) log 함수는 concave하다. 

 

Convex 함수의 특징

ㆍ Convex 함수들을 선형 결합하면, 그 함수 역시 convex하다.

ㆍ f가 convex하다면, 선형 transfomr(Ax+b)해도 여전히 convex하다.

ㆍ f1과 f2가 convex하다면, max를 취해도 여전히 convex하다.

ㆍ g가 convex하고, h가 convex하면서 nonodecreasing하다면, h와 g의 composition도 convex하다.

     └ Convex-preserving 조건

 

x에 대해서 모든 y가 convex하다면, y의 최소상계(supremum)도 convex하다.

x에 대해서 모든 y가 concave하다면, y의 최대하계(infimum)도 concave하다.

 

Dual function이 concave한 이유: 라그랑주 함수에 inf x를 취했기 때문

(concave 함수를 최대화하는 문제는 convex optimization이다.

따라서 convex optimization은 풀 수 있는 방법이 다양하다. )

 

4. Convex Optimization

Convex optimization은 Convex set을 Constraint하고 Opimization하는 방법

f는 convex 함수, g는 convex set

 

Convex optimization의 좋은 성질 중 하나: strong duality

> dual problem의 optimum과 primal problem의 optimum이 동치

따라서 convex optimization은 풀기 쉽다

 

strong duality로부터 얻을 수 있는 성질 중 하나: KKT condition

> X*가 primal optimization solution이고, λ*, v*가 dual optimization solution 일 때,

만약 x*와 λ*가 위와 같은 조건을 만족한다면, KKT condition을 만족했다고 표현

 

strong duality에 기반한 어떤 optimization 문제든, KKT condition은 primal dual optimality의 필요조건이다.

convex optimization는 KKT가 primal dual optimality의 sufficient(if and only if)가 된다.

쉽게 말하면 위의 식을 만족하는 x*와 λ*를 찾을 수 있다면, 결국 primal과 dual의 optimum이 된다.

 

linear programming에 대한 예제.

결국 linear도 convex이기 때문에, primal과 dual이 동치

 

2차(quadratic) 함수에 대한 예제

(강사도 잘 모르는 듯한 설명인데...?)

ㆍ 본 글에서 작성하는 내용은 LG Aimers의 내용임을 밝힙니다.

ㆍ 동시에 이곳에 첨부한 모든 이미지와 링크는 동영상 내의 화면이 아닌 개인이 직접 탐색한 자료임을 밝힙니다.

 

ㆍ 구분) 검은색으로 작성한 글씨는 LG Aimers의 강의 내용

ㆍ 구분) 초록색으로 작성한 글씨는 본인의 생각과 의견을 작성한 내용

ㆍ 구분) 파란색으로 작성한 글씨는 참조 혹은 외부 연결 링크


0. 용어 정리

영어 용어 한국 용어 정의 혹은 설명
Matrix 행렬 수 혹은 다항식을 직사각형 모양으로 배열한 것
Determinant 행렬식 정사각 행렬에 스칼라를 대응시키는 함수의 하나
Invertible 뒤집을 수 있는 어떤 행렬을 뒤집을 수 있다 = 역행렬이 존재한다
Triangular Matrix 삼각 행렬 주대각선을 기준으로 대각항의 위쪽이나 아래쪽 항들의 값이 모두 0인 경우
Diagonal Entry 주대각선(대각 성분) 어떤 행렬에서 i = j인 Mij의 원소들
Trace 대각합 정사각행렬의 주대각선 성분들의 합
Eigenvalue 고윳값 고유벡터의 길이가 변하는 배수(스칼라)
Eigenvector 고유벡터 선형 변환이 일어난 후에도 방향이 변하지 않는 0이 아닌 벡터
Span 생성 벡터 벡터들의 선형 조합으로 이루어진 집합
Identity Matrix 단위 행렬 주대각선의 원소가 모두 1이며, 나머지 원소는 모두 0인 정사각 행렬
Decompostion 행렬 분해 어떤 행렬을 특정한 구조를 지닌 다른 행렬의 곱으로 나타내는 것 
Symmetric 대칭 행렬 전치 행렬이 스스로와 같은 행렬
Positive definite 양의 정부호 정사각 행렬 A에 대해 영이 아닌 모든 벡터 x에 대해 x^T Ax > 0을 만족하는 행렬
Lower-Triangular
Matrix
하삼각 행렬 주대각선 아래 원소를 제외한 모든 원소가 0인 행렬
Diagonal Matrix 대각 행렬 주대각선을 제외한 모든 원소가 0인 행렬
Diagonalizable 대각화 가능한 diagonal matrix 형태의 다른 행렬곱으로 표현 가능한 경우
Orthogonal 직교 두 벡터가 서로 직각인 경우, 혹은 행렬과 전치 행렬의 곱이 단위 행렬인 경우
Positive Semidefinite 양의 준정부호 정사각 행렬 A에 대해 영이 아닌 모든 벡터 x에 대해 x^T Ax ≥ 0을 만족하는 행렬

 

1. Determinant and Trace

$$A = \begin{pmatrix}   a_{11} & a_{12} \\   a_{21} & a_{22}\end{pmatrix},  A^{-1} = \dfrac{1}{a_{11}a_{22}-a_{12}a_{21}}\begin{pmatrix}   a_{22} & -a_{12} \\   -a_{21} & a_{11}\end{pmatrix}$$

 

위처럼 어떤 A라는 행렬이 존재할 때, A의 역행렬은 오른쪽처럼 표현할 수 있다.

이말은즉, A가 invertible하다면 a11a22-a12a21이 0이 아니라는 말과 같다.

 └ 어떤 수를 0으로 나눌 수 없기 때문에, 분모가 0이 될 수 없다.

이때의 해당 분모를 Determinant라고 부르고, 식에서는 det()로 작성한다.

 └ det(A)는 A라는 행렬의 determinant를 일컫고, 식으로는 a11a22-a12a21를 말한다.

 

$$\begin{vmatrix}   a_{11} & a_{12} & a_{13}\\   a_{21} & a_{22} & a_{23}\\   a_{31} & a_{32} & a_{33}\end{vmatrix} = a_{12}a_{22}a_{33} + a_{21}a_{32}a_{13} + a_{31}a_{12}a_{23} - a_{31}a_{22}a_{13} - a_{11}a_{32}a_{23} - a_{21}a_{12}a_{33}$$

 

2 x 2 크기의 행렬에서는 determinant와 역행렬은 반드시 저 순서를 따른다.

그렇다면 3 x 3 혹은 4 x 4 그 이상의 행렬에서의 determinant와 역행렬은 어떻게 될까?

Gaussian elimination 같은 방법을 사용하면 우변처럼 determinant를 구할 수 있다.

 └ 간단하게 설명하면, 우하향 대각선은 더하고, 좌하향(혹은 우상향) 대각선은 빼면 된다.

 └ n x n 행렬에서 n개의 요소를 갖는 n개의 대각선(좌우 각각 n개씩)이 나올 것이다.

 └ 이때 행렬이 위아래로 이어진 하나의 순환 큐라고 생각하고, 대각선 축을 한 칸씩 내리든 올리든 하면 된다.

 

$$\begin{array}{c}a_{12}a_{22}a_{33} + a_{21}a_{32}a_{13} + a_{31}a_{12}a_{23} - a_{31}a_{22}a_{13} - a_{11}a_{32}a_{23} - a_{21}a_{12}a_{33}\\\\= a_{11}(-1)^{1+1}\cdot det(A_{1, 1}) + a_{12}(-1)^{1+2}\cdot det(A_{1, 2}) + a_{13}(-1)^{1+3}\cdot det(A_{1, 3})\\\\= a_{21}(-1)^{2+1}\cdot det(A_{2, 1}) + a_{22}(-1)^{2+2}\cdot det(A_{2, 2}) + a_{23}(-1)^{2+3}\cdot det(A_{2, 3})\\\\= a_{31}(-1)^{3+1}\cdot det(A_{3, 1}) + a_{32}(-1)^{3+2}\cdot det(A_{3, 2}) + a_{33}(-1)^{3+3}\cdot det(A_{3, 3})\end{array}$$

 

3 x 3의 determinant는 2 x 2 determinant의 recursive formular로 정의된다는 사실을 발견했다.

 └ 쉽게 풀어서 말하면 여러 개의 2 x 2 행렬로 쪼갤 수 있다는 말이다.

이때 det(A11)은 1번째 row와 1번째 column을 제외한 나머지 matrix를 말한다.

그럼 det(A11)은 2, 3번째 row와 column이라는 2 x 2 행렬의 determinant가 된다.

하나의 행의 각 원소에 대해서, 행과 열을 제외한 나머지 matrix 연산을 수행해준다.

 └ 하나의 행(혹은 열)을 골라서, 그 원소의 행과 열을 제외한 나머지 matrix의 determinant만을 확인하면 된다.

 └ 어차피 곱셈 연산이기에, 위에 적힌 4개의 각 식의 결괏값이 전부 같은 값을 가진다.

 └ 4 x 4 행렬의 경우 하나의 행(혹은 열)에 대해 연산을 수행하면 3 x 3이 나오는데, 이 행렬에서 다시 한 번 제외하면 된다.

 └ 이렇게 반복적으로 쪼개다보면 결국 2 x 2 행렬이 나오는데, 이래서 recursive formular이다.

이때 각 항에 대해서 -1 값을 row+col 제곱만큼 해주어 부호로 둔다.

 

\begin{split}det(A) &= a_{11}(-1)^{1+1}\cdot det(A_{1, 1}) + a_{12}(-1)^{1+2}\cdot det(A_{1, 2}) + a_{13}(-1)^{1+3}\cdot det(A_{1, 3})\\\\& = a_{11}\cdot det(A_{1, 1}) - a_{12}\cdot det(A_{1, 2}) + a_{13}\cdot det(A_{1, 3})\\\\& = a_{11}\cdot det\begin{pmatrix}   a_{22} & a_{23} \\   a_{32} & a_{33}\end{pmatrix} - a_{12}\cdot det\begin{pmatrix}   a_{21} & a_{23} \\   a_{31} & a_{33}\end{pmatrix} + a_{13}\cdot det\begin{pmatrix}   a_{21} & a_{22} \\   a_{31} & a_{32}\end{pmatrix}\\\\&= a_{11}\cdot (a_{22}a_{33}-a_{23}a_{32}) - a_{12}\cdot (a_{21}a_{33}-a_{23}a_{31}) + a_{13}\cdot (a_{21}a_{32}-a_{22}a_{31})\\\\&= a_{11}a_{22}a_{33}-a_{11}a_{23}a_{32} - a_{12}a_{21}a_{33}-a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31}\end{split}

 

예시로 하나의 식을 들고와서 전개해보았다. 이와 같은 전개를 거쳐 동치임을 확인할 수 있다.

이러한 발견으로 3 x 3 행렬의 determinant를 2 x 2 행렬의 determinant로 재정의할 수 있게 되었다.

이런 전개(expansion) 과정을 Laplace expansion이라고 부른다.

 

$$\textbf{Determinant}\\\boxed{\begin{array}{c}\text{For a matrix }A \in \mathbb{R},\text{ for all }j = 1, \ldots, n,\\\begin{split}\text{1. Expansion along row j: }\enspace det(A) &= \sum_{k=1}^{n} (-1)^{k+j} \cdot a_{kj} \cdot  \text{det}(A_{k,\; j})\\\text{2. Expansion along column j: }\enspace det(A) &= \sum_{k=1}^{n} (-1)^{k+j} \cdot a_{jk} \cdot  \text{det}(A_{j,\; k})\end{split}\end{array}}$$

 

수학자들이 laplace expansion을 일반화해서 determinant를 위처럼 정의했다.  

위의 두 조건은 결국 행을 기준으로 하냐 열을 기준으로 하냐 차이일 뿐 두 결과는 같다.

또한, determinant가 0이 아니라면 A가 역행렬이 존재한다는 특성을 알 수 있다.

 

$$\boxed{\begin{align*}
(1) \enspace & \det(AB) = \det(A)\det(B) \\
(2) \enspace & \det(A) = \det(A^T) \\
(3) \enspace & \text{For a regular } A, \det(A^{-1}) = \frac{1}{\det(A)} \\
(4) \enspace & \text{For two similar matrices } A, A', \text{ (i.e., } A' = S^{-1}AS \text{ for some } S), \det(A) = \det(A') \\
(5) \enspace & \text{For a triangular matrix } T, \det(T) = \prod_{i=1}^n T_{ii} \\
(6) \enspace & \text{Adding a multiple of a column/row to another one does not change } \det(A) \\
(7) \enspace & \text{Multiplication of a column/row with } \lambda \text{ scales } \det(A): \det(\lambda A) = \lambda^n A \\
(8) \enspace & \text{Swapping two rows/columns changes the sign of } \det(A) \\\\
\enspace & \text{Using (5)-(8), Gaussian elimination (reaching a triangular matrix) enables to compute the determinant.}
\end{align*}}$$

 

Determinant에 대해서는 위와 같은 8개의 성질을 만족한다.

그중 1번(곱연산 분리), 2번(전치 행렬의 determinant 동치), 3번(역행렬과 역수 관계)가 특히 유용하다.

또한, 5번의 triangular matrix의 determinant는 대각선에 있는 성분들의 곱과 같다는 특징도 눈여겨 볼 만하다.

 

 

Determinant의 5번 특징은 대각선 성분들의 곱이었다.

이때 대각선 성분들을 곱하는 것이 아닌 전부 더한다면 이를 Trace라고 부른다.

이처럼 trace는 어떤 matrix가 있으면 그 matrix의 어떤 diagonal entry(대각 성분)를 다 더한 형태를 말한다.

Trace는 determinant와 다르게 덧셈에 대해서 분해가 되는 특징이 있다.  

 

2. Eigenvalues and Eigenvectors

위와 같은 Ax = λx 등식이 성립할 때, λ(scalar 값)를 Eigenvalue, x를 Eigenvector라고 부른다.

Eigenvalue와 eigenvector의 또 다른 정의로, det(A - λIn) = 0도 성립한다.

 └ In(Identity Matrix) : 주대각선의 원소가 모두 1이며, 나머지 원소는 모두 0인 정사각 행렬

 

det(A - λIn) = 0이라는 식을 이용하여 eigenvalue와 eigenvector를 유도하면 위와 같다.

이때 span은 뒤에 있는 벡터에 어떤 c(constant)를 곱하든 간에 다 eigenvector가 된다는 말이다.

 └ span[(2 1)]은 <(2 1)>로도 작성한다.

어떤 c를 곱해도 eigenvector가 된다는 말은, eigenvector가 unique(유일)하지 않다는 말과 같다.

 

Eigenvalue를 구할 수 있다면, determinant와 trace를 상당히 쉽게 구할 수 있다.

Determinant는 모든 eigenvalue의 곱, trace는 모든 eigenvalue의 합과  같다.

 

(증명 과정 유도하기)

 

3. Cholesky Decomposition

Matrix Decomposition(행렬 분해)는 어떤 행렬을 다른 행렬들의 곱으로 나타내는 것이다.

데이터 분석이나 인공지능 분야에서 입력이 행렬로 주어지는 경우가 많다.

그러다보니 주어진 행렬을 계산하기 편한 행렬로 바꾸려는 수학자들의 고민의 결과가 decomposition이다.

그중 Cholesky라는 사람이 고안한 decomposition이 Cholesky Decomposition이다.

 

Cholesky Decomposition의 유명한 theorem(정리) 중 하나가

행렬 A가 symmetric하면서 positive definite(모든 eigenvalue가 0보다 큰 상태)이라면

행렬 A는 어떤 행렬 L에 대해서 LL^T로 표현이 가능하다.

이때 L은 diagonal entry는 전부 양수인 lower-triangular 행렬이다.

이러한 L은 유일(unique)하면서, A의 Cholesky factor라고 부른다.

 

그럼 Cholesky decomposition을 하는 이유는 무엇일까?

복잡하게 계산해야 하는 determinant 계산이 굉장히 쉬워지기 때문이다. (c)를 보면 바로 알 수 있다.

determinant 성질로 A = LL^T는 det(A) = det(LL^T) = det(L)det(L^T)이 된다.

위에서 언급한 determinant의 8가지 성질 중 2번째 성질 때문에 det(L) = det(L^T)가 성립한다.

 

정리하면 det(A) = det(L)^2가 된다.

L은 lower-triangular 행렬이기에 det(L)이 diagonal entry의 곱과 같다. (5번째 성질)

결국 det(A)는 행렬 L의 diagonal entry 곱의 제곱으로 간단하게 표현할 수 있다.

여기에 멈추지 않고 수학자들은 이 이상으로 determinant 연산과 여러 행렬 연산을 간략하게 하길 원했다.

이와 관련하여 연구를 정말 많이 진행하였고, 그렇게 나온 것이 바로 Eigen-decomposition이다. 

 

4. Eigendecomposition and Diagonalization

Diagonal matrix는 diagonal entry를 제외한 모든 값이 0인 행렬을 말한다.

Diagonal matrix는 거듭제곱, 역행렬, determinant 등의 다양한 연산이 곱셈만 하면 성립하는 좋은 성질이 있다.

여기서 수학자들이 생각했다. 일반적인 행렬 A를 diagonal matrix와 유사한 형태로 표현할 수 없을까?

 

Diagonalizable과 Orthogonally Diagonalizable이라는 두 가지 정의를 먼저 짚고 넘어가야 한다.

어떤 행렬 A를  D = P^-1AP로 표현할 수 있다면, diagonalizable하다고 표현한다. 

(D는 diagonal matrix, P는 일반적인 행렬(invertible한 행렬)이다.)

이때 P가 orthogonal한 경우(PP^T가 identity matrix인 경우, 즉 P^-1과 P^T가 동치),

Orthogonally diagonalizable하다고 표현한다.

 

$$\begin{array}{c}\begin{align*}D &= P^{-1}AP\\D^2 &= (P^{-1}AP)^2 = P^{-1}APP^{-1}AP = P^{-1}A^2P\\A^2 &= PD^2P^{-1}\\\\\to A^k&=PD^kP^{-1} \text{\enspace(if A is diagonalizable)}\\\to A^k&=PD^kP^T\text{\enspace(if A is orthogonally diagonalizable)}\\\\det(A) &= det(P)\cdot det(D)\cdot det(P^{-1})\\&=det(P)\cdot det(D)\cdot {1 \over det(P)}\\&=det(D)\\&= \prod_{i=1}^n d_{ii}\\\end{align*}\end{array}$$

 

만약 어떤 행렬 A가 diagonalizable하다면, 위와 같은 전개를 갖는다.

A^k에 대해서 PD^kP^-1이 된다면, 일반 행렬 제곱을 쉽게 계산할 수 있다.

왜냐하면 D는 diagonal matrix이기 때문에 제곱 연산이 매우 쉽기 때문이다.

더욱이 orthogonally diagonalizable한 경우 역행렬 연산도 쉬워진다.

det 3번째 특징에 의해서 det(A)는 det(D)가 된다.

D는 diagonal matirx니까 det(D)는 diagonal entry의 곱이 된다.

 

이외에 다양한 것들이 가능해진다. A가 diagonalizable하기만 하다면.

그럼 대체 어떤 matrix가 diagonalizable한 걸까?

그리고 어떻게 P와 D를 찾을 수 있을까?

 

결론적으로 말하면 A가 symmetric한 경우에는 항상 orthogonally diagonalizable하다.

이때 P는 Eigenvector를 모아놓은 Matrix이고, D는 Eigenvalue를 모아놓은 diagonal matrix라고 가정하면 성립한다.

만약 A가 symmetric하면, (Spectral theorem에 의해서) 모든 Eigenvalue가 실수로 나온다.

그리고 Eigenvector들이 서로 수직한다.

 

그래서 만약 P가 Eigenvector를 모아놓은 matrix라고 하면, PP^T가 I가 된다.

결국 Eigenvalue와 Eigenvector의 정의를 활용하면, AP = PD가 된다.

그리고 Eigenvector가 orthogonal이라면 P^T = P^-1이다. 

 

5. Singular Value Decomposition

행렬 A가 symmetric이 아닌 경우, 심지어는, square matrix가 아닌 경우도 있을 것이다.

그럴 때는 decomposition이 될까? 아니 A = P^-1DP를 만족하는 P나 D를 찾을 수 있을까?

이때 사용하는 것이 바로 SVD다.

 

A가 m*n이라고 하면, S = A^TA는 언제나 symmetric하고, positive semidefinite하다.

(positive semidefinite하다는 것은 모든 eigenvalue가 0보다 크거나 같다는 것)

S가 symmetric하면, eigen-decomposition이 가능하기에, 이를 이용해서 A를 decomposition하는 것이 SVD의 원리다.

 

아무 행렬 A를 UΣV^T로 나타내는 것을 SVD(Singualr Value Decomposition)다.

U, V는 각각 항상 orthogornal matrix고, Σ는 diagonal matrix가 된다.

(U와 V에 대해서 각각 UU^T = I(단위 행렬), VV^T = I(단위 행렬)를 만족한다는 말이다.)

이떄 Σ의 diagonal entry를 singular value라고 부른다.

그리고 U는 left singular vector, V를 right singular vector라고 부른다.

 

그럼 왜? SVD를 항상 UΣV^T로 표현할 수 있을까?

이것은 eigendecomposition으로 유도할 수 있다.

A가 sqaure matrix라면 A^TA는 언제나 symmetric하고 positive definite하다.

따라서 A^TA는 orthogonal diagonalization이 가능하기에 eigendecomposition이 가능하다.

즉 A^TA를 VDV^T로 표현할 수 있다는 말이다.

이때 V는 A^TA의 Eigenvector들, D는 Eigenvalue를 모아놓은 diagonal matrix다.

나머지 과정을 따라가면 SVD = UΣV^T가 나온다.

 

어떤 행렬에 대해서 SVD는 항상 존재하지만, EVD는 특정 행렬에 대해서만 존재한다.

하지만 둘 다 Eigen-decomposition에서 시작했다. 따라서 A가 Symmetric이라면 SVD = EVD이다.

 

(문맥 및 용어, 공식은 추후 수정)

(우선 흐름만 적어둠)

ㆍ 본 글에서 작성하는 내용은 LG Aimers의 내용임을 밝힙니다.

ㆍ 동시에 이곳에 첨부한 모든 이미지와 링크는 동영상 내의 화면이 아닌 개인이 직접 탐색한 자료임을 밝힙니다.

 

ㆍ 구분) 검은색으로 작성한 글씨는 LG Aimers의 강의 내용

ㆍ 구분) 초록색으로 작성한 글씨는 본인의 생각과 의견을 작성한 내용

ㆍ 구분) 파란색으로 작성한 글씨는 참조 혹은 외부 연결 링크


1. 데이터 처리 및 수집에서 윤리 이슈

1. 데이터를 잘 해석하고 있는가.

http://www.w-uh.com/posts/100315-OMG_born.html (왼쪽), https://br.ifunny.co/tags/datastorage (오른쪽)

이제는 세상의 모든 것을 기록하는 시대가 왔다.

누군가 태어나서 죽기까지의 모든 순간과 사건, 그리고 경험의 데이터가 만들어지고 기록된다.

그렇게 방대한 데이터를 적절하게 해석하는 것이 중요해졌다.

 

https://www.biostat.jhsph.edu/courses/bio621/misc/Chocolate%20consumption%20cognitive%20function%20and%20nobel%20laurates%20(NEJM).pdf

위의 도표는 "Chocolate Consumption, Cognitive Function, and Nobel Laureates"에 있는 내용이다.

"초콧릿을 많이 먹는 나라에서는 아마도 인지 기능이 향생해서 노벨상 수상자가 더 나오지 않을까?"

라고 하는 아이디어를 기반으로 하는 저널이다.

후속 연구에서는 일반 초콜릿보다 다크 초콜릿이 특히 연관성이 더 높았다고 한다.

 └ 탐색 능력 부족인지는 몰라도, 다크 초콜릿 연관성의 후속 연구는 보이지 않았다. 커피와 알코올, 담배는 있었어도.

 

이런 그래프는 '상관관계'이지, '인과관계'가 아니라는 것을 알아야 한다.

하지만 실제로 많은 뉴스와 보고서에서는 상관관계와 인과관계를 혼용한다.

해서는 안 될 실수 중 하나이다.

 └ 다행히 '단어'를 잘못 쓰는 것을 몹시 싫어한다. 예를 들면 다르다와 틀리다라든가. 비트마스크와 비트마스킹이라든가.

 

2. 데이터 전처리와 분석 방법은 적절한가.

https://en.wikipedia.org/wiki/Confidence_interval?uselang=ko

본 강의의 교수가 근무했던, 페이스북 데이터 사이언스팀에서는 Error bar 없는 그래프를 내놓을 수도 없었다고 한다.

이유는 사람들이 믿지 않기 때문이라고 한다.

A와 B의 평균 수치는 다르고, C와 D의 평균은 다르지만 오차 범위가 겹치기에 통계적으로 유의미하다고 보기 어렵다.

Error bar는 시각적인 가이드를 줄 뿐, 실제 해석에서는 적절한 통계 테스트를 사용해야 한다.

 └ Error bar가 없으면 사람들이 믿지 않는다는 말을 하고 나서, 있으면 믿는 건지에 대한 부연 설명이 강의에 없다.

 └ 또한 평균 수치가 다를 때, Error bar가 어떤 영향이 있는지에 대한 설명이 전무하다. 저게 진짜 설명 전부이다.

 └ 소개 영상이기에 빠르게 넘어간 건지, 이정도는 당연한 건지는 모르겠지만, 설명 부족이 많이 아쉽다.

또한 데이터에 대한 전처리, 특히 아웃라이어(Outlier; 이상치)에 대한 제거를 해야 한다.

데이터를 표준화하는 것과 깊이 분석하는 EDA(Exploratory Data Analysis)도 중요하다.

 

데이터를 많이 들여다보고 정제하고, 잘못된 값은 쳐내 깨끗한 데이터를 만들어야 한다.

그제야 비로소 학습도 깨끗하고 좋은 결과가 나올 수 있게 된다.

 

3. 학습에 쓰는 데이터가 충분한가.

https://www.researchgate.net/figure/Under-fitting-and-overfitting-cases-in-ML_fig1_343034965

보통 인공지능 알고리즘이라고 하면, 밀리언(million) 스케일의 100만 데이터 건을 필요로 한다.

그래야 많은 수의 파라미터를 학습할 수 있다고 얘기한다.

 

하지만 모델이 너무 단순하다면, 충분히 학습되지 않는 경우가 생기는데 이를 언더피팅(underfitting)이라고 한다.

위의 사진에서 OX를 잘 구분하지 못하는 왼쪽의 경우에 해당한다.

 └ 모델이 너무 단순한 게 아니라, 데이터의 종류가 너무 단순하거나 적어서 underfitting이 생기는 것이 아닌가?

 └ 그게 아니라 모델이 단순해도 underfitting이 생기는지는 조사해야 겠다.

반면 너무 과하게 학습하면, 데이터에 특화된 알고리즘이 나오기 때무

이러면 데이터에 특화된 알고리즘이 나오기 때문에, 데이터가 조금만 달라져도 쓸 수 없는 알고리즘이 된다.

 

찾는 모델은 underfitting도 아닌, overfitting도 아닌, 중간에 적절하게 잘 학습한 모델이다.

데이터가 약간 변하거나 시간에 오차가 있더라도, 여전이 유연하게 대처가 가능하다.

이때 학습에 쓰는 데이터와 테스트할 때 쓰는 데이터는 달라야 한다.

 

4. Black box algorithm

https://en.wikipedia.org/wiki/Black_box

AI 모델은 그 속을 들여다 볼 수가 없다.

AlphaGo만 해도 바둑을 정말 잘 두지만, 어떻게 이런 수를 두게 했냐고 묻는다면, 대답하기 어렵다.

사람이 생각할 때는 기존 Decision Tree(의사결정트리)처럼 '어떻게~~~' 했습니다라는 알고리즘이 있다.

하지만 AI 모델은 수 없이 많은 파라미터 값에 따라 결정하기 때문에, 해석이 쉽지가 않다.

그래서 이런 모델을 블랙박스(Black box)라고 부른다.

 └ 정보처리기사를 공부했다면, Application test의 Black box test를 생각하면 편할 듯하다.

 

탈세범을 잡는 알고리즘을 만든다고 생각해보자.

본래는 세관원의 머릿속 생각(decision tree)에 기반했다면, 이제는 Deep Learning(이하 DL)의 알고리즘을 활용한다.

그덕에 소수의 물품만 검수하면 된다고 알려주는 형태로 바뀌었다.

하지만 DL 알고리은 black box 형태기에, 왜 이런 결정을 따라야 하는지 의문을 갖기 마련이다.

이에 성능은 조금 떨어지지만, 설명력을 높여주는 알고리즘을 제시한다면, 그제서야 비로소 쓸 수 있다. 

 

https://glassboxmedicine.com/2020/05/29/grad-cam-visual-explanations-from-deep-networks/

이렇게 실제 사례에서는 성능만 중요한 것이 아니라, '설명력'도 중요하다.

위의 예시는 개와 고양이를 구분하는 컴퓨터 비전(Computer Vision)이다.

왜 고양이라고 했는지를 알려달라고 하면, 고양이에 관련된 영역이 하이라이트 되는 것을 볼 수 있다.

반면 왜 개라고 했는지, 개에 대한 영역을 하이라이트에서 보여준다.

 └ 왜 고양이라고 했는지에 대한 근거가, 고양이를 하이라이트한 것이다...?

 └ 고양이라고 판단한 근거는 파라미터 계산이지 않나? 고양이를 하이라이트한 것은 결과이고?

 └ 개와 고양이를 구분할 때, 단순 하이라이트로만 개인지 고양이인지 판단할 수는 없다...

 └ 그럼 만약에 개를 하이라이트 한 다음 고양이라고 하면, 그것은 고양이가 되는 건가?

 └ 하이라이트한 부분에서 붉은 쪽의 특징 때문에, 개 혹은 고양이라고 판단했다고 말해야 하지 않나 싶다.

 └ 자꾸만 설명에서 아쉽다는 느낌을 받는다.

알고리즘의 내면을 가시화해서 보여주는 것을 '사후 설명력(Post-hoc Explainability)'이라고 한다.

어렵지만, 사후가 아닌 '처음부터 해석 가능한 모델(Interpretable Model)'을 만들 수도 있다.

 

https://hackaday.com/2018/04/15/one-pixel-attack-fools-neural-networks/

사후 모델들을 검증하다 보니, 신뢰성이 없는 경우가 보였다.

그것이 위의 사진으로 One Pixel Attack으로 부르는 위험이다.

사진에서 단 하나의 pixel만 바뀌었는데 배가 자동차고, 사슴이 비행기로 바뀌는 것을 볼 수 있다.

사람과 달리 알고리즘이 얼마나 노이즈에 민감한지 관심을 가져야 하는 부분이다.

 

5. Handling the Web data

https://www.communicationtheory.org/the-spiral-of-silence-theory/

웹 데이터는 특히나 정보의 대표성을 주의해야 한다.

웹에서 수집하는 데이터를 과연 대중의 의견이라고 할 수 있을까?

많이 언급하는 주제가 반드시 중요한 주제는 아니다.

이에 Spiral of Silence라는 이론이 설명을 뒷받침한다.

목소리 큰 누군가 강한 의견을 내면, 그 의견과 다른 사람은 소수라고 착각한다.

그렇게 반대 의견이 침묵하면서 강한 의견이 점점 부각되어 가는데,

그럴수록 더욱 한 가지 의견만 대표성을 가지는 보이는 편향 현상을 일으킨다는 것이다.

SNS의 경우 편향 현상이 빠르게 전파하기 때문에 특히 유의해야 한다.

 

https://news.kaist.ac.kr/news/html/news/?mode=V&mng_no=1472&skey=mayorlab&sval=Data+Science+Lab&list_s_date=&list_e_date=&GotoPage=1

(a)는 하나의 오정보가 (b)는 하나의 사실 정보가 퍼져나가는 모습이다.

각 동그라미는 소셜 사용자로, 서로 관계가 형성되면 링크로 연결이 된다.

오정보는 점조직처럼 산발적으로 퍼지는 데 비해, 사실 정보는 모두 연결되어 퍼져나간다.

이렇게 오정보는 빠르게 퍼져나갈 수 있고, 인포데믹을 일으킬 수도 있다.

 └ 인포데믹(infodemic) : 사실과 오정보의 양이 늘어, 구분이 어려워지는 정보 과부하 현상

그렇기에 인터넷 정보를 분석할 때, 대표성과 진실성에 대해 주의해야 한다.

 

https://news.mt.co.kr/mtview.php?no=2015051207131890284

인터넷 데이터를 다룬다면, 사용자의 불편에 대해서도 고려해야 한다.

위 인터넷 이용 실태조사를 보면 원치 않는 경험과 피해에 대한 조사가 대다수이다.

데이터 분석가나 데이터 사이언티스트들이 만드는 서비스가, 오히려 불편을 끼치는 것은 아닌지,

꼭 필요한 정보만을 요청하고 있는지, 데이터는 안전하게 보관하고 있는지 등의 고려가 반드시 필요하다.

 └ 다만 해당 자료가 2014년 자료이고, 보도 자료는 2015년이라는 사실이 조금 아쉽다.

 

https://www.pewresearch.org/short-reads/2020/01/27/most-americans-support-right-to-have-some-personal-info-removed-from-online-searches/

개인정보 보호 측면에서 '잊혀질 권리'도 중요하다.

PEW RESEARCH에 의하면, 87%가 과거의 자신이 올린 부끄러운 사진이나 영상을 삭제할 권리가 있어야 한다고 말한다.

다루는 데이터를 어떻게 보관하고, 개인정보를 침해하지 않는지 신경써야 한다.

 

6. 윤리에 대한 법적 제도

https://www.logicgate.com/blog/gdpr-basics-what-you-need-to-know-to-ensure-compliance/

GDPR은 개인정보를 보호하고, 과다 광고와 혐오 표현의 노출을 규체하는 플랫폼 단속 법규이다. 

 └ GDPR : General Data Protection Regulation

비록 EU에 있는 제도이지만, 인터넷은 모두 연결되어 있기에 우리나라에서도 GDPR을 살펴볼 필요가 있다.

 

https://digital-strategy.ec.europa.eu/en/policies/digital-services-act-package

또한 EU에서는 Digital Services Act에 대해서도 정의하고 있다.

ㆍ EU 중심으로 빅테크 기업 대상 플랫폼 유해 콘텐츠 단속 의무 강화

ㆍ 네티즌의 성별, 인종, 종교 등에 기반한 알고리즘으로 개인화 추천 광고를 노출하지 않음

ㆍ 어린이 대상 개인화 추천 광고는 전면 금지

ㆍ 디지털 서비스 사업자는 혐오 발언, 아동 학대, 테러 선동 등 불법 콘텐츠 유통을 막아야 함

 └ 이에 대한 추가적인 법률 신문을 참고해도 좋아보인다.

데이터를 다룬다면 응당 우리 사회가 가지는 윤리적인 가치에 대해 민감하게 알고 변화에 따라가야 한다.

 

7. AI and Ethical Decisions

https://link.springer.com/article/10.1007/s00146-022-01441-y

법 분야에는 COMPAS라는 제도가 존재한다.

 └ COMPAS : Correctional Offender Management Profiling for Alternative Sanctions

ㆍ Northpointe, Inc가 개발한 Software tool로 피고의 미래 범죄 위험을 점수로 예측한다.

ㆍ 미 법원의 형사 재판에서 판사들의 의사 결정을 지원하기 위해 사용하고 있다.

ㆍ 현재 캘리포니아, 뉴욕, 위스콘신, 플로리다, 워싱턴 등 12개 기타 관할권 법원에서 사용 중이다.

이에 따라서만 판결을 내리는 것은 아니지만, 판사가 결정을 내릴 때 참고하는 점수이기는 하다.

 

https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing

이런 COMPAS에 대서 인종 차별에 대한 보고서가 나왔다.

한 백인 남성은 무단 강도로 두 건의 전과가 있었고, 물건을 훔치다 걸렸다.

다른 흑인 여성은 어린 시절 네 건의 경범죄가 있었고, 자전거를 훔치다 걸렸다.

이에 COMPAS는 백인 남성에게 Risk 3를, 흑인 여성에게는 Risk 8을 부과했다.

비슷한 시기에 체포된 두 사람은, 2년 뒤, 백인 남성은 재범으로 8년의 징역을 받았지만, 흑인 여성은 재범이 없었다.

 └ 본 강의에서는 위의 그래프가 아닌, 실제 범죄자 단 2명의 사진만을 가져와서 설명을 진행했다. 

 └ 해당 링크에서는 첫 번째로 나오는 "Two Petty Theft Arrests" 부분의 두 인물이다.

 └ 강의에서 인공지능의 편향 가능성과 유의점에 대해 설명하고 있다는 것은 안다.

 └ 하지만 단 두 건의 데이터만 발췌한 뒤, 백인은 점수가 낮고, 흑인은 점수가 높다고 설명했다. 이해가 안 갔다.

 └ 단 두 건만으로 어떻게 이것이 인종 차별이라고 말할 수 있는 것인가?

 └ 위에서도 Black box라고 해석이 어렵다고 말하지 않았는가? 

 └ 범죄를 저지른 건수, 나이대, 범죄 수준, 재범을 하기까지의 기간 등등을 전부 고려한 결과일 수도 있지 않은가?

 └ 두 건의 데이터로 이렇게 말하는 강의가 오히려 인종 차별을 조장하고 있는 것은 아닐까?

 └ 이에 의구심을 갖고 해당 링크에 들어가니 위와 같은 훌륭한 데이터 시각화 그래프가 있었다.

 └ 강의에서 이 그래프를 사용했어야 한다고 확신한다.

 └ 그게 아니더라도 수많은 데이터 중 일부라고 언질하든, 하단의 링크를 참고하라고 말을 해줬어야 한다고 생각한다.

 └ 데이터의 대표성이 중요하다고 이야기하고선, 정작 대표성을 지키지 못한 사례가 되어버렸다.

 └ 정말정말 아쉬운 부분이다.

이에 알고리즘이 사회 편향을 조장하고 있는 건 아닌지 유의해야 한다.

 

https://www.theguardian.com/technology/2018/oct/10/amazon-hiring-ai-gender-bias-recruiting-engine

또한 아마존의 채용 알고리즘에서도 부작용이 존재했다.

아마존의 기존 직원 대다수가 남성이었기에, 여성 지원자에게는 상대적으로 낮은 점수를 부여했다.

2014년부터 진행한 해당 AI 프로젝트는 2018년 폐기했다.

하버드 Latanya Sweeney 교수도 Algorithmic Bias에 대한 유사한 이슈를 제기하여 감사(audit) 시스템을 제안했다.

 └ 이에 관한 기사bias에 대한 글을 찾았다.

 

https://www.adweek.com/performance-marketing/microsofts-chatbot-tay-just-went-racist-misogynistic-anti-semitic-tirade-170400/

MicroSoft의 챗봇 서비스 Tay도 유명하기에 빼놓을 수 없다.

백인 우월주의, 종교 혐오자들이 커뮤니티에서 만나, Tay에게 차별이 있는 데이터를 학습시켰다.

그 결과 16시간만에 Tay는 서비스를 종료할 수밖에 없었다.

이후에 MS는 민감한 주제는 대답을 회피하는 Zo라는 새로운 챗봇을 내놓았다.

하지만 오히려 콘텐츠 검열을 한다는 지적을 받았다.

 

정리하면서.

1. 데이터의 확보, 전처리, 분석, 해석의 전 과정이 중요하다.

2. 알고리즘의 설명력, 편향, 신뢰 문제에 주의해야 한다.

'사이드 프로젝트 > LG Aimers' 카테고리의 다른 글

Module 2 - Part 3. PCA  (2) 2024.01.05
Module 2 - Part 2. Convex Optimization  (0) 2024.01.05
Module 2 - Part 1. Matrix Decomposition  (0) 2024.01.04
LG Aimers  (0) 2024.01.03

LG Aimers라고 23.01.02부터 진행하는 부트 캠프 성격의 교육 프로그램이 있다.

부트 캠프같은 경우 보통 6개월이거나 1년짜리이기 때문에, 크게 관심이 없었다.

더욱이 나는 4년동안 네트워크, 운영체제, 자료구조, 알고리즘 같은 CS 지식을 배운 공학도다.

그런데 부트 캠프는 비전공자나 초심자를 위한 프로그램이 대부분이다.

프로그램의 절반 이상은 내게 필요없는 교육이라는 거다.

지금 나에게 필요한 것은 약간의 인공지능 지식과 사회 경험(실전)이다.

 

그러다보니 더더욱이 나에게 맞는 교육을 찾기는 어려웠다.

애초에 독학하는 게 몸에 배어있는지라, 강의는 잘 듣지를 않으니 그럴 수밖에 없기도 했다.

그렇게 또 홀로 몇 번의 분석을 진행하다보니 기존에 고민에서 방향이 조금 바뀌었다.

기존은 '어떤 식으로 기준을 잡아야 하지?, '이게 객관적으로 믿을 수 있을까?'하는 식의 분석 자체에 대한 고민이었다면,

지금은 '내가 하는 분석 방법이 맞는가?', '이런 식으로 분석을 해도 될까?'라는 방법에 대한 고민이다.

내가 하는 분석은 수학에 다양하고 많은 데이터를 접목하여, 특이점과 특징을 찾아내는 방법에 가까웠다.

하지만... 대부분의 강의에서는 AI 기반으로 분석을 진행한다.

이게 맞는지 의구심이 들기 시작했다. 내 방법이든, 강의 방법이든.

 

필요에 따라, 맞는 방법을 사용해야 한다.

 

이게 내가 생각하는 옳은 도구 사용 방법이다. 하지만 AI붐 때문에 무조건 AI를 들이밀고 보는 느낌이 강했다.

그렇다고 AI를 아예 사용하지 말자는 것은 아니다. 어디까지나 AI가 여기서 굳이 필요한가?라는 의문일 뿐.

아이러니하게도 내가 AI를 잘 다루는 건 또 아니다.

필요에 의해 사용하려면, AI를 우선 다룰 줄 알아야 선택권이 생긴다는 생각이 들었다.

이런 고민을 하던 중 우연히 LG Aimers를 발견했다.

 

2개월이라는 부담 없는 기간, 온라인이라는 환경의 여유.

잡다한 개념 없이 바로 인공지능 설명으로 들어가는 본론, 그리고 1개월의 실습.

어쩌다보니 나에게 필요한 강의를 발견하여 듣게 되었다.

이 강의가 발전할 수 있는 밑거름이 되길 바란다.

+ Recent posts