
이 글은 과제를 하면서 내가 막혔던 부분을 다시 정리하면서 복습하려고 만들었다. 그렇기 때문에 모든 내용을 다루지는 않는다. 코드를 보면서 문제를 해결할 때 어떻게 생각해야 하는지에 대한 부분을 중심으로 다루겠다. one loop 함수에서 내가 막혔던 것은 놀랍게

cs231n 과제 1 Q2를 하면서 내가 헷갈렸거나 몰랐던 것들을 정리해보려고 한다. 생각보다 꽤 어렵지만 풀었을때 기분이 좋긴 한 것 같다. 일단 A1을 최대한 빨리 끝내는 것이 중요할 것 같다. 이 함수는 linear_svm.py에 있는 함수이다. 함수의

이번 글은 softmax classifier를 구현하면서 몰랐거나 중요한 부분들을 다뤄보려고 한다. 꽤 오래 걸려서 힘들었다. 먼저 softmax_loss_naive 함수부터 살펴보자. 이 부분을 해결하는데 꽤 오랜 시간을 썼다. softmax 미분이 헷갈린 것이
이번 글에서는 내가 cs231n A1 Q4를 해결하면서 생겼던 문제들이나 중요하다고 생각했던 부분들을 정리해보려고 한다. layers.py의 affine_backward 함수에서 dx,dw,db 계산하는 것에서 조금 시간이 걸렸다. local\*global gra
드디어 과제 1의 마지막 문제이다. 전에 구현했던 것들을 그대로 가져와서 적용하는 문제들이라 시간이 많이 걸리진 않았다. 이전 문제들과 다른 건 raw image pixel들 대신에 HOG(Histogram of Oriented Gradient)와 HSV 추출을 사

이번 글에서는 cs231n 과제2 Q1에 대해 다뤄보려고 한다. 이전의 과제1의 Two Layer Net의 확장 버전이라고 생각하면 된다. 코딩할게 유난히 많고, 내가 잘못 생각한 부분들이 많아서 시간이 되게 오래 걸렸다. 과제의 파일들을 보면 batch norm

이번 글에서는 cs231n 과제2 Q2에 대해서 다뤄보려고 한다. Q2는 Batch normalization를 구현하고, 이를 이전에 구현했던 fc_net.py에 반영하는 내용이다. 또, Batchnorm의 단점을 해결해줄 수 있는 LayerNorm에 대한 구현도
Q3는 dropout을 구현해보는 과제이다. 이미 구현해놓은 fc_net 파일에 dropout이 적용되도록 하는 거라, 그렇게 헷갈릴 것은 없다. 그러나 언제나와 같이 나는 헷갈렸다. 그것도 아주 오래. 별거 아닌걸로 일주일을 붙잡고 있었고, 심지어 참고로 읽어본

이번 과제에서는 CNN을 구현해보는 것을 목표로 한다. CNN이 어떻게 구성되고 계산되는지는 알고 있지만, 막상 이렇게 구현하려고 하니 어떻게 코드를 쓸지 막막했다. 그렇기 때문에 이번에는 그림을 그려가면서 내가 이해했던 과정들을 소개하려고 한다. 함수에 주어지는
과제 2의 마지막은 pytorch를 이용해 모델을 구현하는 것이다. colab이 제공하는 GPU를 이용한다. 지금까지는 numpy를 이용해서 모델을 구현했었다. 이제 기본적인 개념에 대해서 구현까지 해 가면서 이해했기 때문에, pytorch가 제공하는 함수들을 이용

이번 글에서는 cs231n 과제 3의 Q1을 구현하며 어려웠던 부분들을 정리해보려고 한다. 이전의 CNN을 했던 방식과 유사한데, 이제 각 time step에 대해서 구현해야 한다는 것이 차이점인 것 같다. 이 부분에서 헷갈렸던 것은 gradient 계산 방법이다

이번 글은 cs231n 과제3 Q2를 구현하며 헷갈리거나 몰랐던 부분들을 정리해보려고 한다. 트랜스포머 자체에 대한 이해도 전혀 없었기 때문에 논문을 읽고 정리하느라 꽤 힘들었다. Positional Encoding은 아래 수식과 같이 정의할 수 있다. Self-
이번 과제는 GAN을 구현해보는 과제이다. GAN은 generator와 discriminator의 2-player game 구조를 가진 재밌는 모델이다. Generator는 실제 사진과 비슷한 가짜 사진을 만들어 discriminator가 헷갈리게 하는 것이 목표이

이번 주제는 내가 들은 cs231n 2017 버전 강의로는 접해보지 못했던 주제이다. 강의에서 구현하는 SimCLR 논문이 2020년에 나왔으니 그럴만 하다. 논문을 다 읽어본 것은 아니지만, 논문에서 사용하는 컨셉이 굉장히 참신하다. 이번 글에서는 Self-Sup

이번 과제가 cs231n 과제의 마지막이다. 드디어 과제가 끝나서 기쁘다. 그래도 과제를 하며 코딩 실력이 늘긴 한 걱 같아 기쁘다. 특히 과제3은 내가 들은 2017 강의 버전이랑 다른게 꽤 있어서 해당 부분을 혼자 배워야 했다. 그래서 조금 더 어렵게 다가왔던