Explicit regularization techniques are those specifically and solely designed to constrain the effective capacity of a given model in order to reduce overfitting. Furthermore, explicit regularizers are not a structural or essential part of the network architecture, the data or the learning algorithm and can typically be added or removed easily.
weight decay
dropout
stochastic depth
Implicit regularization is the reduction of the generalization error or overfitting provided by characteristics of the network architecture, the training data or the learning algorithm, which are not specifically designed to constrain the effective capacity of the given model.
베이지안 최적화는 하이퍼파라미터를 찾아낼 수 있는 기법 중에 하나로 지금까지도 그 효능은 많은 인정을 받고 있는 기법이다. 베이지안 최적화는 기본적으로 베이지안 원리를 따르며 아래의 식을 만족하는 최적의 지점을 찾아내는 문제라고 볼 수 있다.
$$ x^{*} = argmax_{x \in \mathbf{X}} f(x) $$
베이지안 기법
일어나지 않은 일에 대한 확률을 불확실성(uncertainty)의 개념. 즉, 사건과 관련 있는 여러 확률을 이용해 새롭게 일어날 사건을 추정하는 것이 베이지안 확률이다.frequentist probability 와 약간 차이가 있는데 베이지안 기법은 우리가 이미 알고 있는 믿음을 바탕으로 어떤 데이터가 주어졌을때 사후확률을 수정하는 과정이라고 볼 수 있다. 말로 표현하는게 더 어려운 개념인데 수식을 보면 아래와 같다.
$$ P(A|B) = {P(B|A)P(A)\over{P(B)}} $$
왼쪽 항이 Posterior Probability(사후확률) / 오른쪽 항은 likelihood(우도확률)과 prior(사전확률) 이다. 사실 실생활에서 우리가 계산하고자 하는 것은 사후확률이다. 즉 사건이 모두 발생한 후 우리가 관측한 데이터를 바탕으로 모델의 확률을 계산하는 것이다. 하지만 실제로 사후확률을 계산하는 것이 어려운 경우가 많다. 하지만 우도함수, 사전확률 등은 비교적 접근이 쉽기 때문에 이를 사용해서 우회적으로 사후확률을 계산하는 것이다.
예시
Q. 3개의 생산라인을 갖고 있는 공장에서 1번 라인에서 전체 생산품의 30%, 2번 라인에서 50%, 3번 라인에서 20%가 만들어진다. 각 라인에서 나오는 불량품은 2%, 6%, 1%라고 한다. 이 회사제품 중 임의로 하나를 추출한 제품이 불량일 때, 이 제품이 2번 라인에서 생산되었을 확률은?
우리가 구하고자 하는 것은 P(2번 | 불량) 이라고 볼 수 있다. 베이지안 공식을 사용해서 이 확률을 계산하면
즉, 현재까지 얻은 모델 P(model)과 추가적인 데이터 P(data|model)을 사용해서 P(model | data)를 추정해나가는 방식대략적인 BO의 과정은 아래와 같다. 매 스텝마다 observation을 바탕으로 우리가 추정하고자 하는 f(x)의 예측 궤도를 그린다. 이때 사용하는 것이 surrogate function으로 많은 함수들이 있지만 대표적으로 gaussian process를 사용한다. surrogate function은 각 데이터 포인트마다 평균과 분산을 계산하며 검은색 실선이 평균, 파란색 영역이 분산(uncertainty)를 나타낸 것이다. 평균도 대부분의 경우 0을 사용한다. surrogate function이 예측을 끝냈다면 acquisition function 은 surrogate function의 성능을 높여주기 위한 다음 데이터 포인트를 찾아낸다. 이 함수도 여러 함수가 있지만 대부분 Expected Improvement라는 기법을 사용하며 surrogate function에서 평균, 분산이 모두 큰 지점을 찾아내는 것이 목표이다.
알고리즘
가우시안 프로세스를 사용한다는 가정하에 베이지안 최적화는 아래의 식으로 진행된다.
새로운 데이터 포인트를 추가했을때 $f^*$ 는 위처럼 업데이트된다. 처음에 수식을 봤을때는 어떻게 분산을 새롭게 계산하는지 이해를 못했다. (이렇게 할 경우 무조건 분산이 1 이 나와야하는 것 아닌가라고 생각했기 때문에..) 위 과정에 대한 설명은 없이 커널함수만 설명해놓은 포스트가 많았다. 그리고 검색을 더 해보다가 설명이 좋은 포스트를 찾아냈다.