2021. 8. 16. 13:03ㆍAI/Deep learning
- 목차
loss function
https://autumnrain.tistory.com/9
회귀 평가인지, 이진평가인지(분류평가), 추천 평가인지에 따라 모델을 학습할때 사용하는 '목적함수' 즉, 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 개의 평균 확률 (을 높이는 방향으로 학습)
- MAP@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를 목적함수로 사용
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 vector는 bold 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화 시킴
sigmoid와 logistic 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 시, 세대를 지날수록 중앙의 선에 가까워짐
중앙 직선으로 회귀한다고 하여 ‘회귀’라는 단어를 사용
logistic은 S자형 곡선을 의미
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는 절대적인 값의 차이기에 선형적으로 증가
(w ⋅ 𝜙(x) - y)^2
|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 |