무슨 생각을 해 그냥 하는거지

[학습정리] 2021-08-04 본문

Naver AI Tech 2기/Today I Learned

[학습정리] 2021-08-04

빛나는콩 2021. 8. 4. 16:35

※ 정보전달이 목적인 포스트가 아니라 개인 학습 기록 및 정리가 목적인 포스트입니다 ※

해당 포스트는 네이버 커넥트 재단의 부스트캠프 마스터님이신 유니스트 임성빈 교수님의 강의를 바탕으로 작성되었습니다.

1. 강의 복습 내용

[통계학 기초]

모수적 방법론과 비모수적 방법론의 차이

모수적 방법론은 데이터가 특정 확률분포를 따른다고 먼저 가정.

비모수적 방법론은 데이터가 특정 확률분포를 따른다고 가정하지 않음!

비모수적 방법론이 '모수를 사용하지 않는다'라고 생각하지 않도록 주의하자.

 

확률분포의 종류

이산: 베르누이분포(데이터가 binary(0 또는 1만)), 카테고리분포(이산적인 값이 n개) 등

연속: 베타분포, 감마분포, 정규분포, 라플라스분포 등

→ 히스토그램의 모양을 보고 확률분포를 가정할 수 있다.

→ 하지만 항상 모수를 추정하고 검정을 해야 함 (분포마다 검정하는 방법이 다름)

 

표본 데이터를 이용한 모수 추정

표본평균의 경우 일반적으로 알고 있는 것처럼 모든 값을 더하고 표본의 개수로 나누면 됨.

표본분산의 경우 편차(표본-표본평균)의 제곱의 합을 N이 아니라 N-1로 나눠야 한다는 것에 주의!

→ Why? 불편 추정량을 구하기 위해서.

→ 불편 추정량에 대해 좀 더 찾아봤는데, (도움을 받은 블로그 링크) 편의(bias)가 없는 추정량이라는 의미이다.

 편의는 추정량(모수를 추정하는 값들, 표본평균과 표본분산이 이에 해당)의 기댓값과 실제 모수와의 차이를 의미함.

 따라서 불편 추정량은 그 기댓값이  

 표본평균은 모집단의 평균과 같기 때문에 불편 추정량이다. 표본분산도 불편 추정량으로 만들기 위해 N-1로 나누는 것이라고 한다.

 

표집분포(sampling distribution)는 통계량의 확률분포를 의미하며, 표본분포(sample distribution)과 다름에 유의하자.

표본의 크기가 커질수록 정규분포를 따른다는 중심극한정리는 표본평균의 표집분포에 적용되는 정리이다!

 

최대가능도 추정법(Maximum Likelihood Estimation, MLE)

이름 그대로 가장 가능성이 높은 모수를 추정하는 방법.

주어진 표본에 대해 가능도를 가장 크게 하는 모수 theta를 찾는 방법.

아래 식에서 좌변의 기호는 최대가능도 추정법을 이용해 찾은 모수를 의미한다.

가능도 함수는 확률로 생각하면 안되고, 대소비교를 할 수 있는 함수라고 생각해야 한다.

효율성을 위해 로그가능도를 사용한다. (로그는 곱셈을 덧셈으로 만드니까)

 

딥러닝(classification task)에서는 아래처럼 최대가능도 추정법을 사용한다.

여기서 theta는 모델의 가중치를 의미하고, y는 one-hot 벡터로 표현된 정답 레이블(관찰데이터)을 의미한다.

 

확률분포 사이의 거리를 구하는 방법

총변동 거리(Total Variation Distance)

쿨백-라이블러 발산(KL-Divergence) - 분류 문제에서 최대가능도 추정법은 KL-Divergence를 최소화하는 것과 같음

바슈타인 거리(Wasserstein Distance) (이때까지 와썰스테인이라고 읽었는데...^^ 바슈테인이었다..)

(위 방법들에 대한 내용은 혼자서 좀 더 공부해봐야겠다!)

 

 

[베이즈 통계학 기초]

베이즈 정리

P(theta|D) = P(theta)(P(D|theta)/P(D))

P(theta|D): 사후(posterior) 확률. 데이터가 주어졌으므로 사후라는 이름이 붙었다.

P(theta): 사전(prior) 확률. 데이터를 보기 전에 사전지식으로부터 만들어지는 확률

P(D|theta): 가능도

P(D): Evidence. 데이터 자체의 분포

 

새로운 데이터가 들어왔을 때, 베이즈 정리를 통한 정보의 갱신이 가능하다.

사후확률이 다음의 사전확률이 되어 다음의 사후확률을 계산할 수 있다. (베이즈정리를 이렇게 와닿게 배운 적이 없어서 신기했다.)

 

 

[CNN 기초]

Convolution

학부 신호처리 강의에서 배운 적이 있어서 해당 내용은 다른 포스트에 정리할 예정이다.

강의자료에서 convolution 연산 후 output의 크기를 구하는 공식이 적혀 있는데, stride와 zero padding을 고려하지 않은 것 같다. stride와 zero padding을 모두 고려한 ouput의 크기는 아래와 같다.

((입력크기-커널크기+2*zero_padding)/stride)+1

 

Convolution 연산의 back-propagation

왜 그동안엔 convolution 연산의 back-prop을 생각해보지 않았을까? 학부 수업에서도 딱히 다루지 않았었는데 이번 기회에 생각해보는 시간을 가질 수 있어서 좋았다.

강의만 보고는 이해가 잘 가지 않아서 블로그를 찾아봤다. 굉장히 정리를 잘해주셨다.


2. 과제 수행 과정 / 결과물 정리

Python 필수 과제를 모두 수행해서 오늘은 관련 내용을 적지 않겠습니다! (선택과제는 내일 ..)


3. 피어세션 정리

  • Python 필수 과제 4, 5에 대해 코드 리뷰를 진행했다.
  • 문자열이나 리스트에서 중복이 있는지 확인하기 위해 set함수를 쓰는 게 굉장히 좋아보였다.
  • 저번 과제와 마찬가지로 정규표현식을 써서 코드를 간결하게 쓰신 분들이 많았다. 나도 공부해야지..

4. 학습 회고

  • 다른 사람에게 코드를 보여줄 일이 잘 없어서 설명에 어려움을 겪었다. 다음 세션에서는 어떤 식으로 말씀드릴지 미리 생각을 좀 해봐야겠다는 생각이 들었다.
  • 같은 문제에 대해 여러 해결 방법을 볼 수 있어서 좋았다. 코드를 좀 더 간결하게 짜볼 수 있도록 노력해야겠다.

'Naver AI Tech 2기 > Today I Learned' 카테고리의 다른 글

[학습정리] 2021-08-17  (0) 2021.08.17
[학습정리] 2021-08-13  (0) 2021.08.13
[학습정리] 2021-08-10  (0) 2021.08.12
[학습정리] 2021-08-09  (0) 2021.08.09
[학습정리] 2021-08-06  (0) 2021.08.06