DL&ML/concept 19

ML General 잡질문/답변 (기술면접)

기존 글에도 정리를 해왔지만, 기술 면접 준비하면서 정리 했던 것들 몇 가지 보충해서 정리해봤다. 틀린 내용이 있을 수 있으니 의심하면서 보길... Backpropagation 계산법 (이상한 곳에서는 간단한 계산 시킬 수도...) 로컬 그래디언트에 업스트림 그래디언트를 곱해줌으로써 구하는 것을 기본 원칙으로 계산 하면 된다 Regression vs. Classification 확률적인 관점에서 설명할 줄 알면 든든... 가정하는 분포가 뭔지 (이산? 연속? / 베르누이? 가우시안?) 가정 분포에 따라 Loss는 어떻게 달라지는지... Sigmoid 쓰는 이유? In order to map predicted value to probability a는 sigmoid의 기울기를 결정, b는 중심 위치를 결정..

DL&ML/concept 2021.05.14

ArcFace Loss

유사 이미지, 유사 텍스트를 찾는 태스크를 건들여보고 있는데, 이 때 입력을 잘 표현하는 임베딩을 학습하는 방법이 필요했다. (클러스터링에 활용할...) arcface에 대해선 이전에 들어보기는 했지만, 실제로 어떻게 동작하는지도 잘 모르겠고 뭐, 대충 메트릭 러닝이라곤 들었는데, 메트릭 러닝이라고 하면 유일하게 들어 본 것이 triplet loss 정도...? 였다. 아는게 triplet loss이다 보니, arcface도 비슷하게 동작/구현 되지 않을까? 라는 편견에 사로 잡혀 코드를 이해하는데 한참 걸렸다. 아래 코드를 보면 알겠지만, triplet loss처럼 입력으로 여러 비교 대상(anchor, positive, negative)이 들어오지 않고 단일 입력(+정답 라벨)을 기대하기 때문이다. ..

DL&ML/concept 2021.04.25

Seq2Seq & Beam Search

앞서 Seq2Seq의 구조와 학습 방법에 대해서 알아봤었다. Seq2Seq, Auto Regressive, Attention, Teacher Forcing, Input Feeding 최근에 번역 모델을 직접 구현해보면서 공부하게 된 구조 seq2seq. 개념만 알고 직접 구현해본 적은 없어서 굳이 호기심을 가지고 해본 것인데, 새롭게 배운 것이 꽤 있다. 이해하기 위해선 RNN이나 aimaster.tistory.com 그러면, 추론은 어떻게 할까? seq2seq을 기준으로 입력 문장(영어)을 컨텍스트 벡터로 인코딩 한 뒤 타겟 문장(한글)으로 디코딩하는 방법에 대해 정리해 본다. 입력/출력 문장을 구성하는 단어 사전의 크기는 3만개라고 가정하자. 디코딩 과정은 곧 매 타임스텝마다 3만 개 단어중 하나를 ..

DL&ML/concept 2021.04.14

Classification에서 CrossEntropy를 Loss 함수로 쓰는 이유?

아래 포스트에서 리그레션에서 왜 MSE를 쓰는지 MLE 관점에서 살펴보았다. Regression에서 MSE를 Loss 함수로 쓰는 이유? 이전에 아래 글에서 Likelihood & MLE에 대한 정리를 했었는데, 분류 문제에 대한 설명은 되지만, 리그레션 문제에 대한 설명을 하려 할 때 감이 잘 오지 않는다. Likelihood & MLE(최대 우도 추정) 1 Likeliho aimaster.tistory.com 그렇다면 분류 문제는 왜 CrossEntropy를 쓸까? 물론 정보이론 관점에선 CrossEntropy가 분포 P를 기준으로 분포 Q의 정보량의 평균을 측정하는 수단이기 때문에 이를 이용해서 두 확률 분포(뉴럴넷 출력)를 일치시키는 방향으로 학습하기 위함이라고 해석할 수 있지만, 여기선 확률적인..

DL&ML/concept 2021.04.13

Posterior, Likelihood, Prior

베이즈 정리를 구성하는 Posterior, Likelihood, Prior가 헷갈리는 이유는 각각을 구분하는 기준을 아직 모르기 때문이다. 우선 셋을 구분하기 위해선 문제 해결을 위해 구하고자 하는 대상, 주어진 대상(관측 값)이 뭔지 알아야 한다. 즉, 구하는 대상, 주어진 대상이 바뀌면 저 셋도 바뀌게 된다. Posterior 관측 값이 주어졌을 때, 구하고자 하는 대상이 나올 확률 Likelihood 구하고자 하는 대상이 정해졌다고 가정할 때, 주어진 대상이 나올 확률 Prior 구하고자 하는 대상 자체에 대한 확률 예를 들어, 주어진 대상 = 학습 데이터이고 구하는 대상 = 모델 파라미터면 Posterior = P(w|D) Likelihood = P(D|w) Prior = P(w) 인 것이다. M..

DL&ML/concept 2021.04.12

Regression에서 MSE를 Loss 함수로 쓰는 이유?

이전에 아래 글에서 Likelihood & MLE에 대한 정리를 했었는데, 분류 문제에 대한 설명은 되지만, 리그레션 문제에 대한 설명을 하려 할 때 감이 잘 오지 않는다. Likelihood & MLE(최대 우도 추정) 1 Likelihood & Maximum Likelihood Estimation(MLE) Likelihood(우도; 가능도)란? 어떤 모델(파라미터;확률분포)과 데이터가 주어졌을 때, 이 모델이 데이터를 얼마나 잘 설명하는지? 수치화 할 수 있는 척도이다... aimaster.tistory.com 이번엔 Regression에서 MSE를 Loss 함수로 쓰는 이유를 정리하려 한다. (결론 부터 말하면, 리그레션 모델의 출력을 가우시안 분포의 평균 값으로 가정하고 MLE를 했을 때, Lik..

DL&ML/concept 2021.04.11

Optimizers (momentum, RMSProp, Adam, AdamW)

기본적인 옵티마이저들에 대해서 정리해 놓자. 아래와 같은 흐름으로 옵티마이저의 발전 흐름을 정리할 수 있다. SGD SGD는 미니배치에 대해 그래디언트를 구함으로써 학습이 빠르다는 장점이 있다. 배치를 다 보면 아무래도 메모리가 부족하고, 계산에 시간이 오래 걸리니... 그렇다고해서 수렴이 빠르다고 할 수는 없다. SGD의 문제점 로컬 미니마를 벗어나기 힘들고 갖힐 경우 수렴이 느림 스텝사이즈가 모든 파라미터에 대해 똑같음 (상수 러닝레잇을 곱해줌) 어떤 weight은 많이 업데이트 되었고, 어떤 weight에 대해선 그렇지 않다면 각 weight 별로 스텝이 달라져야하지 않을까? 크게 두 가지 문제점을 해결하는 방향으로 옵티마이저가 발전해왔다. Momentum 기울기의 움직임에 대해 관성을 부여해서 로..

DL&ML/concept 2021.04.11