cs231n 17

cs231n Assignment 3: Q4-2 (SimCLR 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com SimCLR: https://arxiv.org/pdf/2002.05709.pdf 이번에는 저번 포스팅에서 설명한 SimCLR 구현 과제에 대한 풀이를 하겠다. 다시 간략하게 과정을 설명하면 기존의 사진 데이터 x에서 여러가지 방법을 사용해 data augmentation 된 x~i, ..

cs231n 2023.03.14

cs231n Assignment 3: Q4-1 (Self-supervised Learning, SimCLR 설명)

이번 과제에서 구현할 것은 SimCLR (A Simple Framework for Contrastive Learning of Visual Representations (arxiv.org))이다. 과제를 시작하기에 앞서 이번 포스팅에서는 SimCLR에 대한 이해를 한 후, 다음 포스팅에서 과제를 시작해 보겠다. 우리가 Assignment 1, 2에서 사용한 딥러닝 방식은 train data에 target label이 붙어 있는 supervised learning 방법을 사용했었다. 그러나 supervised learning의 단점은 위와 같이 모든 train data에 target label을 붙여주어야 하는데, 이는 보통 사람이 하게 된다. 예시로 CIFAR-10데이터에서 사진을 보고 (개, 고양이, 자..

cs231n 2023.03.09

cs231n Assignment 3: Q3 (GAN 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 GAN 신경망 Genarative Adversarial Network 를 구현하는 것이다. GAN이란 지금 까지 우리가 다룬 classifier의 역할을 하는 모델이 아닌 새로운 데이터를 만드는 Generator를 만드는 네트워크를 만드는 것이다. 논문 [1406.2661..

cs231n 2023.02.27

cs231n Assignment 3: Q2-2 (Multi-head Transformer 구현)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 Transformer을 사용한 Captioning 구현이다. Transformer는 지난번에 배운 self attention에서 데이터를 나누어서 attention layer를 적용시키는 multihead self attention을 사용한다. [1706.03762] A..

cs231n 2023.02.26

cs231n Assignment 3: Q2-1 (Attention 설명)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 Transformer Captioning 에 대한 과제이다. 이 Transformer 라는 모델 architecture와 Attention에 대한 상세한 개념이 2017년에 나와서 유튜브에 있는 cs231n 강의에서는 전혀 다루고 있지 않았다. 그래서 2022년 cs23..

cs231n 2023.02.26

cs231n Assignment 3: Q1 (Vanilla RNN 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 vanilla RNN 신경망을 사용해서 이미지와 이미지에 대한 설명이 저장된 COCO dataset을 통해 어떤 이미지를 입력받으면 이미지에 대한 설명을 적어주는 신경망 모델을 만드는 것이다. vanilla RNN 신경망은 X가 연속적인 데이터일때 주로 사용한다. X의 데..

cs231n 2023.02.25

cs231n Assignment 2: Q6 (Saliency map, Fooling images, Class visualization 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 다음은 Network Visualization 에 대한 과제이다. 유튜브에 있는 cs231n강의는 Network visualization을 RNN 강의 뒤에서 다루지만, 과제에서는 왠지 모르게 Assignment 2에 있다. 유튜브의 강의가 2017년 버전이고 Assignment는 2..

cs231n 2023.02.21

cs231n Assignment 2: Q5 (Pytorch 사용해보기)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git 이번 과제는 본격적으로 framwork 를 사용해서 신경망을 구현해 볼 차례이다. 우리가 framework를 사용하는 이유는 먼저 framework의 미리 구현된 함수가 간편한 것도 있지만, framework를 사용하면 GPU를 사용해 계산을 처리하는 것이 쉽게 가능하기 때문이다. 우리가 일반적으로 파이썬 코드를 실행하면 보통 CPU에서 계산을 처리하는데, CPU는 10~20개의 코어, 쓰레드를 사용해 직렬로 계산하여 코어가 적은 대신 복잡하거나 긴 수식을 빠르게 계산할 수 있는 반면, GPU는 1000개 이상 단위의 코어를 사용해 병렬적으로 계산해 여러개의 간단한 계산을 매우 빠른 속도로 처리할 수 있다. 우..

cs231n 2023.02.20

cs231n Assignment 2: Q4 (CNN, Group Normalization 구현)

내 풀이 링크:https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번에는 Convolutional layer를 구현하는 문제이다. 지금까지 이미지 분류를 할 때에는 각 픽셀을 일자로 늘어뜨려서 픽셀의 각 값에 대한 weight를 곱한 고 bias를 더한 output을 배출하는 layer를 여러개 이어붙여 신경망을 만들었다. 그러나 이 방식은 사진 ..

cs231n 2023.02.18

cs231n Assignment 2: Q3 (Dropout 구현)

내 풀이 링크: https://github.com/lionkingchuchu/cs231n.git GitHub - lionkingchuchu/cs231n: cs231n Spring 2022 Assignment cs231n Spring 2022 Assignment. Contribute to lionkingchuchu/cs231n development by creating an account on GitHub. github.com 이번 과제는 dropout layer에 관한 것이다 dropout은 한 layer를 지나고 각 뉴런마다의 output값이 있을 때, 일정 비율만큼의 랜덤한 뉴런들을 골라 그 output을 0으로 없애는 것이다. 예시로 dropout ratio가 0.5라면 전체 뉴런의 output값 ..

cs231n 2023.02.15