Deep learning basic: 모델 평가지표, 모델종류, loss function, score, margin, 유사도, 이진분류/선형회귀, 비선형회귀

2021. 8. 16. 13:03AI/Deep learning

    목차
반응형

loss function

https://autumnrain.tistory.com/9

 

모델 평가 지표

평가지표와 목적함수 목적함수 모델 학습 시 최적화되는 함수 목적함수로 사용한 오차가 최소가 되도록 결정 트리의 분기나 선형 모델의 회귀계수 추가 및 갱신을 수행 목적함수는 ‘미분’을

autumnrain.tistory.com

회귀 평가인지, 이진평가인지(분류평가), 추천 평가인지에 따라 모델을 학습할때 사용하는 '목적함수' 즉, cost/loss function을 적절히 선택해야 한다. 

 

  • 회귀 평가지표
    • RMSE
    • RMSLE
    • MAE
    • 결정계수
  • 이진분류 평가지표
    • 혼동행렬
      • 정확도/오류율: 나의 예측의 정확도
      • 정밀도/재현율: 양성 예측의 정확도
      • F1-score: 정밀도와 재현율의 조화평균
      • Fβ score: F1에 β의 가중치를 추가
      • MCC (매튜상관계수)
      • log loss (= cross entropy)
      • AUC (Area Under the ROC curve)
  • 다중 class 분류 평가지표
    • multi-class accuracy: 올바른 예측 비율
    • multi-class logloss
    • mean-F1, macro-F1, micro-F1
    • SQK
  • 추천 평가 지표
    • MAP@K
      • Mean Average Precision at(@) K
      • 포함될 가능성이 높을 것으로 예측한 순서대로 K개의 class를 예측값으로 삼음
      • 1/N Σ (1/min(mi, k) Σ pi(k)) -> k 개의 평균 확률 (을 높이는 방향으로 학습)

 

Model compression

learning param 10만개 -> 99%

1만개로 줄여서 99%로 만든 것

 

성능을 유지하면서 model의 크기를 줄이는 것

 

 

예측성능이 미흡한 경우

모델 성능, 혹은 학습 데이터의 잘못됨(부족, 혹은 편향)에 의한 성능 저하인지 판단이 필요함

* 모델성능: 레이어 수, parameter 개수 등의 hyper parameters

* 학습방식: learning parameter 및 learning 방식

* 학습 데이터: 데이터의 수

    overfitting: 기억능력을 지나치게 높여서 추론 능력을 떨어뜨리는 것

 

 

Deep learning의 특징

  • 목적에 맞는 feature를 직접 만들면서 판단
    • 얼마나 많은 
  • 귀납적 사고
    • '추론'(inferencing) 하는 사고
    • 데이터를 많이 보고 이와 유사한 것으로 추론
    • 사람은 연역적인 사고
  • 응용 system
    • GPT-3: 현존하는 가장 큰 언어모델
    • sentiment analysis
    • Virtual Assistants
    • dialog system

 

인공지능 문제의 특징

l  두가지 어려움

1)     computational complexity

Go - 361^200 trajectories

361^200 우주에 존재하는 원자의 갯수보다 많은 수

 

NP-complete

NP 집합 중 가장 어려운 문제들

문제가 다항 시간 내에 NP-complete 문제로 환산 될 수 있음

 

P problem

다항 시간 내 풀 수 있는 문제

 

NP-hard

최적의 해를 구할 수 없기에, 근사해를 구함 (approximational)

통밥 (Heuristic)으로 근사해를 구함

 

2)     information complexity

학습 없이는 무엇도 할 수 없음

data가 없으면 현재의 인공지능도 없음

 

 

Model

모델: learning parameter가 들어있는 program

함수로 표현한 것은 함수형 모델

deep learning은 함수형 모델

 

decision tree 모델

등등 여러 다른 모델들의 표현 방법은 다름

 

weight들을 변수로 둠(이는 학습을 통해 찾음)

 

 

Model types

선형모델

L = list of web pages

f(x) = 10*QueryMatch(x) + 3*PageRank(x)

 

features

QueryMatch <- frequency

PageRank   <- page의 중요성, in-coming(link)의 수

 

10 3은 가중치

가중치는 data를 통해서 최적의 값으로 학습하여 계산

 

f(x) = sign(w1*𝜙1(x) + w2* 𝜙2(x) + ...)    <- 𝜙 feature vector

f(x) = 𝜎(w 𝜙(X))                        𝜙1 x ‘cliches’, 𝜙2 x ‘promise’, 𝜎 = activation function

 

, weight

learning parameter

 

how about “not bad”?

not bad가 같이 나온다면, 이는 비선형적

선형으로 표현이 안되니, 3가지 비선형적인 관계를 Neural Network로 표현

layer를 무한대로 늘리면 approximation 할 수 없는건 없다는 논문도 있음

 

비선형모델

선형과 선형을 연결

선형 함수의 결과를 다른 선형 함수의 입력으로 사용 (반복)

, deep learning의 형태

 

이런 형태는 원래 많이 사용하던 형태이며,

deep learning에서 이를 사용하면 weight들을 학습 시킬 수 있다는 것

 

 

시험 점수 예측 모델

feature

IQ, 선행 학습, 몇 시간 학습 등

'몇 시간'공부만 feature로 사용해보자

 

y = w*f

 

Dtrain: set of pairs {(x1, y1), ...(xn, yn)}

loss function 정의 (회귀이니 RMSE로)

    F(W) = ∑i=1~n (xi*w - yi)^2

 

 

예측 테스크의 종류

    • binary classification
      • 분류의 결과는 분류 category
    • Regression
      • 회귀는 결과가 실수 ()
    • multiclass classification
      • 여러 개 간의 분류

 

Spam classification

feature

URGENT mail 자체가 거의 없음

email account가 이상함

내용이 이상함 (내 친구가 10만 달러를 내게 남겼다)

 

output: y {sapm, not_spam}

정상과 비정상의 분포가 섞이지 않아야 분류가 잘 됨

 

이진 분류이므로, cross entropy 즉, log loss를 목적함수로 사용

logloss 

b와 λ를 구하면 𝜙(x) , feature vector를 예측 가능

log loss는 sigmoid와 유사

 

email 정상 여부

길이가 10 이상인지 여부

alphabet의 비율

@ 포함 여부

.com으로 끝나는지 여부

.org으로 끝나는지 여부

 

각각이 지니는 값으로 vector를 만ㄷ름

[0, 0.75, 1, 1, 0]

 

    𝜙(x) = [𝜙1(x), 𝜙2(x), ...., 𝜙d(x)]

    𝜙(x) ℝ^d:  d-dimensional space에서 𝜙(x)는 하나의 point

 

각각의 feature 별 weight를 지정

weigth vectorbold w로 표시를 많이 함 ^d 에 포함되는 data

[-1.2, 0.5, 2, 1.2, 1.3]

 

feature j real number wj를 가짐

wj는 feature가 prediction에 기여하는 정도

 

train loss function을 통해 (역전파 하면서) 찾는 값

0에 근접할 수록 덜 중요

 

 

logistic regression

 

P(남자|165cm) = ?

166 정도가 sigmoid의 중간 값이기에 0.5 , 50% 정도로 남 혹은 여

분포에 따른 확률 변화가 sigmoid 함수 형태로 나타남

 

, logistic regression은 다음의 경우에 사용됨

  • two pattern problem
  • feature의 분포가 Gaussian 분포
    • 같은 분포라고 가정
  • feature가 주어질 시 패턴 C의 확률은 S 곡선 모양 P(C|feature)

, logistic regression

 > 확률을 구하는 것임

 > 무한 range를 유한 range화 시킴

 

sigmoidlogistic regression의 관계?

확률로 표현 하게 되는 것 임

 

선형회귀, 로지스틱 회귀

linear regression

linear regression은 실수 값을 예측 하는 것 임

예측한 y 값이 실수인 것이 regression

숫자간 관계

 

𝜙(x) <- feature vector , 입력 x vector화를 리턴

score: weighted combination of features (내적으로 표현)

Example: 1.2(0) + 0.6(0.85) + 3(1) + 2.2(1) + 1.4(0) = 5.71

 

(binary) linear classifier

sign activation function: 내적의 값이 양수면 +1, 음수면 -1 두 가지로만 분류

 

Neural network 비선형으로 만드는 것은

activation function이 비선형 함수인 경우임

 

𝜎(w 𝜙(x) + b) + 𝜎(w 𝜙(x) + b) ....

에서 activation function𝜎가 비선형 함수여야 비선형 network가 됨

 

binary classifiser fw‘normal vector w를 가지고 hyperplane(4차원 이상의 공간)을 정의

 

ex.

w = [2, -1]

𝜙(x) {[2, 0], [0, 2], [2, 4]}

 

90도 이내의 내각 (acute angle), 둔각 (obtuse angle)으로 구분

내각에 들어온 것은 positive prediction +

둔각에 들어온 것은 - prediction

 

현재 주어진 weight vector로 입력들을 각각 linear prediction 하면(내적),

    [2,0] -> 내적하면 +

    [0,2] -> 둔각에 있어서 -

    [2,4] -> 예각과 둔각의 boundary(, 90)에 걸쳐 있음 0

 

linear function boundary는 즉, [2,4] case

서로 orthogonal하기에 0 , 영향도 없음

부정도, 긍정도 없음

 

        ^2 -> line (, vector로 표현)

        ^3 -> plane (, matrix로 표현)

        ^4 -> hyperplane (tensor로 표현)

 

cosine similarity

            u(x,i) = cos(x,i) = x ⋅ i
                            ---------
                            ||X|| ||i||

            x i <- 유사도

                유사성이 높을 수록 큰 값

            ||X|| ||i|| <- normalize (0 ~ 1 사이 값)

 

    ex.

        1.2(0) + 0.6(0.85) + 3(1) + 2.2(1) + 1.4(0) = 5.71

 

W라는 vector V라는 vector 방향에 대해 얼만큼의 힘을 주는가

각이 다른 경우 본연히 자기의 힘이 모두 다른 벡터에 반영되지 않음

W 벡터를 V 벡터 방향으로 사상(projection) 하여 두 벡터의 크기(norm)를 곱

 

logistic regression

logistic regression은 확률을 구하는 것 임

이는 확률 !

 

regression이란 단어를 사용하나?

이를 만든 Francis Galton,

아버지와 아들의 키 분포를 fitting하는 직선을 구하고자 했음

fitting , 세대를 지날수록 중앙의 선에 가까워짐

중앙 직선으로 회귀한다고 하여 회귀라는 단어를 사용

logisticS자형 곡선을 의미

 

 

Loss minimization

loss function

loss(x, y, w)

        ex.

            ∑(w x - y)^2

 

이 값을 minimize 하는 방향으로 w 값을 조절

, w(변수별로) 미분하여 기울기가 최소가 되는 곳을 찾으면 됨

 

score and margin

correct label: y

predicted label: y' = fw(x) = sign(w 𝜙(x))

ex.

        w = [2,-1]

        𝜙(x) = [2,0]

        y = -1

 

score 정의: 예측의 confidence를 의미

w 𝜙(x)

        +1을 예측하는 confidence

            예측의 True/False가 아닌 confidence

            y가 없기에 True/False를 알 수 없음

 

margin 정의: 예측의 correct를 의미

        (w 𝜙(x))*y

        (w 𝜙(x))*y > 0 -> correct

        (w 𝜙(x))*y < 0 -> incorrect  (margin less than 0)

            즉, w ⋅ 𝜙(x)와 y가 같은 부호 인 경우만 correct

 

    SVM

        SVM에서는 margin geometric한 의미를 지님

 

Binary classification

ex. w = [2, -1], 𝜙(x) = [2, 0], y = -1

binary classifier: fw(x) = sign(w ⋅ 𝜙(x))

 

 

 

indicator function: zero-one loss

margin <= 0 --> 1

          >  0 --> 0

 

boolean logic을 지닌 function

True 1 리턴 아니면 0 리턴

 

fx(w) = w 𝜙(x)

residual = 예측값 실제값 = (w ⋅ 𝜙(x)) - y

 

 

Squared loss

Loss_squared(x,y,w) = (fw(x) - y)^2

    fx(w) = w 𝜙(x)

    fw(x) - y <- residual

 

        ex.

            [2,-1]

            𝜙(x) = [2, 0]

               y = -1

             Loss squared(x, y, w) = 25

 

Regression loss function

 

Loss_squared의 loss 값은 residual 값이 커질 수록 quardratic하게 증가

Loss_abs는 절대적인 값의 차이기에 선형적으로 증가

 

L2 loss (loss squared)

        (w 𝜙(x) - y)^2

 

L1 loss (loss abs)

        |w 𝜙(x) - y|

 

L2는 더 큰 에러를 더 크게

residual 1보다 작고 크면 신경을 더 씀

, more affected by 'outlier'

L1은 골고루 신경을 씀

 

 

 

 

 

 

 

 

 

 

 

반응형

'AI > Deep learning' 카테고리의 다른 글

data partitioning, hyper-parameter tuning  (0) 2021.08.16
Back-propagation (역전파)  (0) 2021.08.16
딥러닝 성능 향상  (0) 2021.08.16
Activation functions  (0) 2021.08.16
SGD (Stochastic Gradient Descent)  (0) 2021.08.16