ELBO는 틀렸다?
·
인공지능
(이 글에는 개인적인 해석이 포함되어 있습니다. 아닌것 같다 싶은 부분이 있으면 댓글로 알려주세요.)나는 이전에 VAE를 공부한 적이 있다.당시 ELBO를 유도하는 과정이 이해가 안되지는 않았지만, 수식을 따라가면서 납득이 되는 수준에 그쳤지, 이해를 했다고 보기는 어려웠다.아마 처음 ELBO를 접한 사람들은 다 나같이 느꼈을 것이다.최근 공부하다가 ELBO가 다시 나와서 위키피디아로 복습을 했는데, 처음 ELBO를 접했을때와는 달리 이해가 된 느낌(?)이 들어서 이에 대한 이야기를 해보려고 한다. 위키피디아 ELBO를 읽고 나서 아래를 보자.위키피디아를 통해서, 또는 인터넷 블로그를 통해서 ELBO를 유도하는 과정 자체는 따라가는데 어렵지 않았을 것이다.그런데 왜 우리는 ELBO를 objective f..
ML-Agents Crawler 환경을 stable-baselines3로 학습하기
·
인공지능
ML-Agents를 이용해서 환경을 만들고 이를 학습시키보던 중 신기한(?) 현상을 발견했다.모든 hyperparameter가 같음에도 불구하고 ML-Agents 알고리즘과 SB3(Stable-Baselines3) 알고리즘의 성능 차이가 너무 크게 났던 것이다. (ML-Agents PPO가 SB3 PPO보다 훨씬 우세했다.)ML-Agents와 SB3의 PPO 코드를 엄청 뜯어보고 고친 결과 SB3 PPO를 이용해 Crawler환경에서 ML-Agents PPO의 성능을 동일하게 재현할 수 있었다.따라서 이 글에서는 SB3 PPO로 ML-Agents PPO의 성능을 재현하는 방법을 써보려고 한다. ML-Agents Crawler 환경본론에 들어가기에 앞서, 테스트에 사용된 Crawler환경에 대해서 간략히 ..
Backpropagation Vectorization
·
인공지능
Background$W \in \mathbb{R}^{D_2 \times D_1}$, $X \in \mathbb{R}^{D_1 \times N}$ 에 대해 bias가 생략된 linear layer의 출력값 $Z=WX, Z \in \mathbb{R}^{D_2 \times N}$가 있다고 하자.또한 $L : \mathbb{R}^{D_2 \times N} \rightarrow \mathbb{R}$은 최적화 하려는 object function이라고 하자. Chain Rule 에 따라 gradient를 다음과 같이 구할수 있다.$$ \frac{\partial{L}}{\partial{W}} = \frac{\partial{L}}{\partial{Z}} \frac{\partial{Z}}{\partial{W}} $$하만 ..
Cross Entropy Derivation
·
인공지능
Binary Cross Entropy$y$를 ground truth값, $\hat{y}$를 estimation값, $p=P(y=1)$, $\hat{p}_\theta$는 $p$를 parameterized한 함수라고 하자.그다음 $y=0$일때와 $y=1$일때 각각의 likelihood 함수를 구해보자. 1) $y=0$일때는 $y=0$인 샘플들만 있을 것이고 likelihood 함수는 다음과 같다.$$L^{}_{\theta} = 1 - \hat{p}_\theta$$2) $y=1$일때 $L^{}_\theta$는 다음과 같다.$$L^{}_\theta = \hat{p}_\theta$$ $L^{}_\theta$과 $L^{}_\theta$를 합치고 log-likelihood를 구하면 다음과 같다.$$L_\theta =..
CS234 Notes - Lecture 2 번역본
·
인공지능
CS234 Notes - Lecture 2 를 번역해 보았다. Exercise나 쉬운 증명들은 다 생략했고, 중간에 어떤 증명(Theorem 3.4.)은 내방식대로 써놨다. 너무 힘들어서 다시는 안할듯.
RNN - Recurrent neural network
·
인공지능
What is RNN ?rnn은 이름에서도 알 수 있듯이 반복되는 구조의 신경망이다.즉, 한 rnn 유닛이 여러 time step를 가질 수 있어서, 임이의 길이의 정보를 처리할 수 있다.이때 한 rnn 유닛은 모든 time step에서 가중치를 공유한다.또 rnn은 이러한 구조 덕분에 시계열 데이터나 순차적인 데이터 처리를 잘한다. 주의해야될 점이 있는데 이는 rnn이 시간에 따라 측정된 데이터를 다 처리할 수 있다는 것은 아니다.rnn은 stationary한 데이터 즉, 시간에 따른 확률 분표의 변화가 (적거나)없는 데이터를 가장 잘 처리한다.rnn이 모든 time step에 대해 가중치를 공유하는 이유도 이러한 가정에 바탕을 둔 것으로 생각할 수 있다. 왜 굳이 mlp대신 rnn을 사용하는지 의문이..
머신러닝에 쓰이는 정보이론
·
인공지능
정보정보이론에서 정보란 예측 불가능한 정도를 나타내는 물리량이다.확률 $p$의 정보는 수식적으로 다음과 같이 정의된다.$$I(p) = -\log_2 (p)$$ 그래프로 나타내면 다음과 같다.즉, 확률이 1인 사건은 정보량이 0이고, 확률이 낮은 사건일수록 정보량이 크다. 이를 다음과 같이 생각해볼수도 있다.어떤 사건이 일어날 확률이 높다는 것은 그 사건을 예상하기 쉽다는 것이고, 예상과 일치한다는 것은 새로운 정보가 없다는것이니까 정보량도 낮다고 볼수 있다.  entropy어떤 확률변수 $X$에 대해 $X$의 엔트로피는 $X$의 정보량의 평균(기댓값)으로, 다음과 같이 정의된다.$$H(X=x) = - \sum p(x_i) \log_2 p(x_i)$$ 정보와 엔트로피의 단위는 $log$의 밑에 따라 다른데..
Optimizer 정리
·
인공지능
SGD (Stochastic gradient descent)$$w_{t+1} = w_{t} - \alpha \cdot \frac{\partial J(t)}{\partial w_{t}}$$ $\alpha$ : 학습률로 0.01, 0.001등의 작은 값을 사용한다. 가장 기본적인 형태의 optimizer로, (mini-)batch 단위로 경사하강법을 한다.기울기가 0이되면 업데이트가 일어나지 않는다는 문제점이 있다. Momentum$$m_{t+1} = \beta \cdot m_{t} + (1 - \beta) \cdot \frac{\partial J(w_{t})}{\partial w_{t}}$$$$w_{t+1} = w_{t} - \alpha \cdot m_{t+1}$$ $m$ : 기존의 기울기에 지수 가중 평..
Convolutional Neral Network
·
인공지능
IntroductionCNN은 이미지나 시계열 데이터를 처리하는데 특화된 신경망 구조이다. 한번 이미지 classification 문제를 일반적인 MLP로만 해결한다고 해보자.그러면 먼저 이미지의 각 픽셀들을 모두 펴서 하나의 벡터로 만들게 되고, 이를 FC(fully connected layer)에 넣서 계산한다. 이러한 방식은 픽셀간의 위치 관계(예를 들면 이미지에서 가까운 두 픽셀은 서로 멀리 떨어진 픽셀보다 더 관련이 많다)등을 무시하고, 파라미터 양도 매우 많아서 이미지를 학습하기에는 비효율적이다.반면, CNN은 이러한 픽셀들의 공간적 구조를 고려해 더 효율인 신경망이다. CNN에서 각 레이어의 역할은 다음과 같다. 1. Convolutional Layer (Conv)- 이 레이어 에서는 edg..
zanzun
'인공지능' 카테고리의 글 목록