딥러닝
딥러닝
- CS231n Lecture 17 - Robot Learning reinforcement learning, model-based planning, imitation learning, vision-language-action models Robot learning은 action으로 환경을 바꾸며 장기적인 reward를 높이는 policy를 학습하는 sequential decision-making 문제이다. Supervised learning은 고정된 데이터셋의 입력 에서 label 를 예측한다. #LECTURE
- CS231n Lecture 16 - Vision and Language CLIP, multimodal language models, grounding, model chaining Vision-language foundation model은 이미지와 텍스트를 공통 representation으로 정렬하거나 visual token을 language model의 context로 주입해 여러 과제를 하나의 pretrained model로 풀며, grounding과 promptable output, tool chaining을 더해 텍스트 응답을 실제 픽셀과 전문 vision model의 동작으로 연결한다. 전통적인 computer vision pipeline은 과제마다 데이터셋과 모델을 따로 만든다. #LECTURE
- CS231n Lecture 15 - 3D Vision 3D representations, neural fields, NeRF, Gaussian splatting 3D vision은 geometry와 appearance를 point cloud, mesh, voxel, implicit function 등으로 표현하고, 2D·3D 관측에서 이를 학습해 장면 복원과 새로운 시점의 이미지 합성에 사용한다. 2D 이미지는 보통 일정한 grid 위의 pixel tensor로 표현한다. 반면 3D 물체는 geometry뿐 아니라 질감, 재질, 조명에 따른 appearance까지 포함하며, 이를 표현하는 표준적인 형식이 하나로 정해져 있지 않다. #LECTURE
- Assignment 3-3: Denoising Diffusion Probabilistic Models Forward Diffusion, Reverse Diffusion, U-Net 기반 Noise Prediction, Reverse Sampling, Classifier-Free Guidance 구현 및 평가 이번 과제에서는 Denoising Diffusion Probabilistic Model(DDPM)의 핵심 구성요소를 구현하고, noisy image를 점진적으로 denoise하여 이미지를 생성하는 과정을 배운다. DDPM은 데이터 분포에서 바로 샘플을 생성하는 대신, 먼저 실제 이미지에 Gaussian noise를 점진적으로 추가하는 Forward Diffusion을 정의하고, 반대로 노이즈에서 이미지를 복원하는 Reverse Diffusion을 학습한다. Forward process 자체는 고정된 noise schedule에 의해 결정되며, 실제로 학습되는 부분은 각 timestep에서 noisy image를 보고 노이즈 또는 원본 이미지를 예측하는 denoising model이다. 이 denoising model로 U-Net을 사용한다. #ASSIGNMENT
- CS231n Lecture 14 - Generative Models 2 Generative adversarial networks, rectified flow, latent diffusion GAN은 discriminator와 generator의 adversarial game으로 data distribution을 암묵적으로 맞추고, diffusion과 rectified flow는 노이즈와 데이터 사이의 경로를 학습해 반복적인 reverse process로 샘플을 생성한다. 명시적 밀도 모델(explicit density model)은 데이터 에 대한 확률밀도 를 명시적으로 정의한다. Autoregressive model은 이를 정확하게 계산하고, VAE는 로그우도의 하한인 ELBO를 계산한다. #LECTURE
- CS231n Lecture 13 - Generative Models 1 Maximum likelihood, autoregressive models, variational autoencoders Generative model은 data를 만든 probability distribution을 학습하는 모델이며, autoregressive model은 chain rule로 exact likelihood를 계산하고 VAE는 latent variable과 ELBO를 도입해 tractable한 lower bound로 학습한다. Supervised learning에서는 input과 target의 pair가 주어진다. #LECTURE
- 논문 리뷰: Self-Attentive Sequential Recommendation SASRec 리뷰 논문: Self-Attentive Sequential Recommendation 저자: Wang-Cheng Kang, Julian McAuley 학회: IEEE International Conference on Data Mining (ICDM) 연도: 2018 논문 링크: arXiv:1808.09781 --- #리뷰
- Assignment 3-2: Self-Supervised Learning for Image Classification SimCLR의 data augmentation, NT-Xent loss 구현과 self-supervised representation의 image classification 평가 이번 과제에서는 label 없이 image representation을 학습하는 self-supervised learning과 SimCLR의 contrastive learning을 구현하고, 학습된 representation이 downstream image classification에 얼마나 유용한지 평가한다. Supervised learning은 이미지와 사람이 붙인 class label의 관계를 학습한다. 반면 self-supervised learning은 data 자체에서 학습 신호를 만든다. SimCLR에서는 같은 이미지에 서로 다른 random augmentation을 적용해 두 view를 만들고, 이 둘을 positive pair로 취급한다. Model은 positive pair의 representation을 가깝게 만들고, batch 안의 다른 이미지에서 나온 view는 멀어지게 학습한다. #ASSIGNMENT
- [Google Recommendation Systems 06] Retrieval, Scoring, Re-ranking 추천 시스템의 retrieval, scoring, re-ranking 파이프라인과 freshness, diversity, fairness Google 공식 원문: Retrieval, Scoring, Re-ranking, Course summary 대규모 추천 시스템은 corpus 전체를 하나의 복잡한 모델로 정렬하지 않는다. 수백만 개 이상의 item을 요청마다 모두 평가하면 latency와 compute 비용을 감당하기 어렵기 때문이다. 대신 대상을 단계적으로 줄이는 funnel 구조를 사용한다. Retrieval 또는 candidate generation: 전체 corpus에서 관련 가능성이 있는 candidate 수백수천 개를 빠르게 가져온다. Scoring과 ranking: 더 많은 feature와 복잡한 모델로 candidate의 relevance를 평가하고 순서를 정한다. Re-ranking: freshness, diversity, fairness, 정책 같은 추가 기준과 제약을 반영해 최종 노출 목록을 만든다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 05] Softmax DNN과 Two-Tower Softmax DNN 추천 모델의 구조와 embedding 해석, negative sampling, two-tower 모델 Google 공식 원문: Deep neural network models, Softmax training 이전 글의 matrix factorization은 사용자와 item마다 하나의 embedding을 학습하고, 두 embedding의 내적으로 선호도를 예측했다. 단순하고 대규모 corpus에도 잘 확장되지만 다음과 같은 한계가 있다. user ID와 item ID 이외의 side feature를 모델에 넣기 어렵다. 학습 데이터에 없던 새로운 user나 item을 바로 처리하기 어렵다. dot product를 그대로 사용하면 norm이 큰 인기 item이 많은 사용자에게 반복해서 추천되기 쉽다. 사용자의 현재 문맥이나 구체적인 관심사를 세밀하게 반영하기 어렵다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 04] Collaborative filtering과 matrix factorization User-item interaction에서 latent embedding을 학습하는 collaborative filtering과 weighted matrix factorization 공식 원문: Collaborative filtering: Basics, Matrix factorization, Advantages & disadvantages Collaborative filtering은 여러 사용자의 user–item interaction을 함께 이용해 user와 item의 latent embedding을 자동으로 학습하며, matrix factorization은 feedback matrix 를 저차원 행렬 와 의 곱으로 근사해 관측되지 않은 선호를 예측하는 대표적인 collaborative filtering 방법이다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 03] Content-based filtering Item feature와 user profile의 유사도로 추천하는 content-based filtering의 원리와 장단점 공식 원문: Content-based filtering: Basics, Advantages & disadvantages Content-based filtering은 item과 사용자를 같은 feature space의 vector로 표현하고 두 vector의 similarity로 candidate의 relevance를 계산하는 방법이며, 다른 사용자의 행동 없이 개인의 취향을 세밀하게 반영할 수 있지만 추천 품질이 사람이 설계한 feature와 사용자의 기존 관심사에 크게 제한된다. #GOOGLE-RECOMMENDATION-SYSTEMS
- CS231n Lecture 12 - Self-Supervised Learning Pretext task, MAE, contrastive representation learning Self-supervised learning(자기지도학습)은 label이 없는 data 자체에서 학습 목표를 만들고, reconstruction이나 contrastive objective를 통해 다양한 downstream task에 재사용할 수 있는 representation을 학습하는 방법이다. Supervised learning은 input과 사람이 만든 label의 쌍을 사용한다. Image classification의 class label도 비용이 들지만, object detection의 bounding box나 semantic segmentation의 pixel label은 훨씬 더 많은 작업을 요구한다. 새로운 domain으로 옮길 때마다 같은 규모의 label을 다시 만드는 것도 어렵다. #LECTURE
- [Google Recommendation Systems 02] Candidate generation과 embedding 추천 후보를 생성하는 두 가지 접근과 embedding 공간의 의미, cosine/dot product/Euclidean distance의 차이와 선택 기준 Google 공식 원문: Candidate generation overview Candidate generation은 전체 corpus에서 현재 query와 관련 있을 가능성이 높은 item을 빠르게 추려내는 추천 시스템의 첫 단계이다. 대규모 서비스에서는 모든 item을 정교한 scoring model에 넣을 수 없으므로, 이 단계가 수백만∼수십억 개의 item을 수백∼수천 개 수준의 후보로 줄인다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 01] 추천 시스템 개요 대규모 추천 시스템이 필요한 이유와 item, query, embedding의 의미, candidate generation부터 re-ranking까지의 전체 구조 Google 공식 원문: Recommendation Systems 과정, Large-scale recommendation systems, Terminology, Recommendation systems overview 추천 시스템은 사용 가능한 전체 콘텐츠 가운데 현재 사용자에게 보여줄 만한 item을 골라 순서를 정하는 시스템이다. YouTube가 다음에 볼 영상을 제안하거나 Google Play가 홈 화면에 앱을 배열하는 과정이 대표적인 예이다. #GOOGLE-RECOMMENDATION-SYSTEMS
- CS231n Lecture 11 - Large-Scale Distributed Training GPU cluster의 memory, communication, parallelism Large-scale distributed training은 거대한 model과 batch를 여러 accelerator에 나누는 것만으로 끝나지 않으며, GPU와 cluster의 계층적인 memory bandwidth에 맞춰 computation과 communication을 겹치고 data, parameter, sequence, layer 축의 parallelism을 조합해 Model FLOPs Utilization을 높이는 문제이다. Computer가 수행하는 작업은 크게 computation과 communication으로 나눌 수 있다. Computation은 input bit로부터 새로운 output bit를 계산하는 작업이다. Communication은 data를 한 memory 또는 device에서 다른 곳으로 옮기는 작업이다. #LECTURE
- RMS 정규화 RMSNorm의 수식과 LayerNorm과의 차이, Transformer에서 자주 사용하는 이유 RMS 정규화(Root Mean Square Layer Normalization, RMSNorm)는 입력의 평균을 빼지 않고, 제곱 평균의 제곱근인 RMS를 이용해 입력의 크기만 조절하는 정규화 방법이다. 하나의 token에 대응하는 입력 vector를 라고 하자. 입력의 RMS는 다음과 같다. #학습원리
- CS231n Lecture 10 - Video Understanding Spatiotemporal representation과 action recognition Video understanding은 image에 time dimension을 더한 spatiotemporal data에서 appearance와 motion을 함께 표현하는 문제이며, frame pooling부터 3D CNN, optical flow 기반 two-stream network, recurrent model, space-time attention까지의 차이는 결국 temporal information을 언제 어떻게 결합하느냐에 있다. RGB image 한 장은 일반적으로 다음과 같이 표현한다. #LECTURE
- CS231n Lecture 9 - Object Detection, Image Segmentation, and Visualization Dense prediction과 모델 시각화 Image segmentation과 object detection은 image-level classification을 pixel, region, object 단위의 dense prediction으로 확장한 문제이며, saliency map과 CAM(Class Activation Mapping) 계열 기법은 예측 score를 다시 image 공간에 연결해 model이 어느 영역을 사용했는지 해석한다. 같은 image를 입력받더라도 무엇을 출력하느냐에 따라 task가 달라진다. #LECTURE
- Sinusoidal Positional Encoding의 원리 여러 주기의 sin과 cos를 이용해 token의 위치를 embedding과 같은 차원의 vector로 표현하는 원리 Transformer의 self-attention은 입력 vector 사이의 관계를 계산하지만, token이 원래 몇 번째 위치에 있었는지는 스스로 알 수 없다. 따라서 token embedding에 위치정보를 별도로 넣어주어야 한다. Sinusoidal positional encoding은 token의 위치 를 여러 주파수의 sin과 cos로 변환하여 차원 vector 하나로 표현하는 방법이다. #TRANSFORMER
- Assignment 3-1: Image Captioning with Transformers Attention 및 Transformer Block 구현, Image Captioning Transformer 의 Multi-Headed Attention 을 구현하고, Positional Encoding 의 원리와 구현, Transformer Block 을 만들고 COCO Dataset 으로 이미지 캡셔닝과 ViT를 구현한다. Multi-Headed Attention은 embedding을 여러 head로 나누어 각 head가 서로 다른 표현 공간에서 token 사이의 관계를 포착하도록 한다. #ASSIGNMENT
- CS231n Lecture 8 - Attention and Transformers Attention 연산과 Transformer 구조 Attention은 query와 key의 유사도로 value를 가중합하는 연산이며, Transformer는 self-attention으로 token 사이의 정보를 섞고 FFN으로 각 token을 독립적으로 변환하는 block을 반복해 sequence를 처리한다. Sequence-to-sequence model은 길이가 다른 두 sequence 사이의 mapping을 학습한다. 기계번역에서는 영어 문장을 입력받아 이탈리아어 문장을 출력할 수 있으며, 두 문장의 단어 수와 어순은 서로 다를 수 있다. #LECTURE
- Assignment 2-5: RNN Captioning COCO image feature와 RNN language model을 연결한 image captioning 구현 미리 추출한 image feature를 초기 hidden state로 투영하고, 한 timestep씩 어긋난 caption을 teacher forcing으로 학습하여 매 시점의 다음 token을 예측하는 RNN image captioning model을 구현한다. 이번 과제는 2014 COCO Dataset의 image-caption pair를 사용한다. Image는 ImageNet으로 사전 학습한 VGG-16의 fc7 feature를 사용하며, 4096차원 feature를 PCA로 줄인 512차원 입력을 model에 넣는다. Caption은 각 word를 integer ID로 바꾼 sequence로 처리한다. #ASSIGNMENT
- Assignment 2-3: Convolutional Networks Convolution, Max Pooling, Spatial Batch Normalization, Group Normalization 구현 이번 과제에서는 CNN을 구성하는 convolution과 max pooling layer의 forward, backward를 직접 구현한다. 이어서 CNN의 activation shape인 에 맞춰 Spatial Batch Normalization을 구현하고, 채널을 여러 group으로 나누어 정규화하는 Spatial Group Normalization까지 구현한다. #ASSIGNMENT
- CS231n Lecture 7 - Recurrent Neural Networks RNN 구조와 sequence modeling RNN은 이전 hidden state와 현재 입력을 같은 가중치로 반복 처리해 가변 길이 sequence를 모델링하며, BPTT로 시간축을 따라 학습하지만 순차 계산과 vanishing gradient라는 한계가 있어 LSTM과 현대적인 state space model로 발전했다. 일반적인 image classifier는 하나의 고정된 크기 입력을 받아 하나의 고정된 크기 출력을 만든다. Sequence modeling에서는 입력이나 출력이 가변 길이 sequence가 될 수 있다. #LECTURE
- Assignment 2-2: Dropout Dropout 개념 및 구현 드롭아웃의 개념과 효과, 순전파 및 역전파를 구현한다. 드롭아웃(Dropout)은 훈련 시 drop probability 만큼 뉴런의 출력을 무작위로 0으로 만드는 규제 기법이다. #ASSIGNMENT
- Assignment 2-1: Batch Normalization Batch Norm, Layer Norm 이번 과제에서는 Batch Normalization 의 개념과 BatchNorm 레이어의 forward, backward 를 구현한다. 또한 Batch Norm과 Weight Initialization 의 관계, Batch Norm과 Batch Size와의 관계를 Baseline 기반으로 비교한다. #ASSIGNMENT
- CS231n Lecture 6 - Training CNNs and CNN Architectures CNN 구성 요소와 아키텍처, 초기화, 데이터 증강, 전이 학습, 학습 방법 CNN을 안정적으로 학습하려면 합성곱만 쌓는 것이 아니라 정규화, Dropout, 활성화 함수를 목적에 맞게 배치하고, 잔차 연결과 Kaiming 초기화로 깊은 신경망의 최적화를 안정화하며, 데이터 증강과 전이 학습, 올바른 디버깅 절차까지 하나의 학습 과정으로 연결해야 한다. CNN을 다룰 때는 두 문제를 구분해야 한다. 어떤 계층을 어떤 순서와 형태로 연결해 아키텍처를 만들 것인가? 만들어진 아키텍처가 실제 데이터에서 안정적으로 학습되도록 어떻게 준비하고 검증할 것인가? #LECTURE
- Assignment 1-5: Training a fully connected network FullyConnectedNet 구현, Momentum, RMSProp, Adam 이번 과제에서는 임의의 개수의 hidden layer를 갖는 FullyConnectedNet을 구현하고, 여러 optimizer를 직접 구현해본다. 앞에서 만든 TwoLayerNet이 하나의 hidden layer만 갖는 구조였다면, 여기서는 hidden layer 개수를 리스트로 받아 더 깊은 fully-connected network를 구성한다. 기본 구조는 다음과 같다. #ASSIGNMENT
- CS231n Lecture 5 - Image Classification with CNNs CNN 이미지 분류 CNN은 작은 필터를 이미지 전체에 공유하며 적용해 공간 구조를 보존하고, 단순한 경계부터 복잡한 물체 특징까지 계층적으로 학습하는 신경망이다. 앞선 강의에서는 이미지 분류를 예제로 딥러닝 시스템을 구성하는 기본 요소를 배웠다. 전체 흐름은 다음과 같이 정리할 수 있다. 입력과 출력을 텐서로 표현한다. 입력으로부터 출력 점수를 계산하는 모델을 정의한다. 모델의 예측이 얼마나 나쁜지를 측정하는 손실 함수를 정의한다. 역전파로 손실에 대한 파라미터의 기울기를 계산한다. 경사하강법 기반 최적화 알고리즘으로 파라미터를 갱신한다. #LECTURE
- Assignment 1-4: Higher Level Representations: Image Features HOG, HSV feature 추출과 feature 기반 분류기 학습 이번 과제에서는 원본 픽셀을 그대로 사용하는 대신, 이미지에서 hand-crafted feature를 추출한 뒤 분류기를 학습한다. 사용한 feature는 Histogram of Oriented Gradients, HOG와 HSV color histogram이다. 전체 흐름은 다음과 같다. 각 이미지에서 HOG feature를 추출한다. 각 이미지에서 HSV hue channel 기반 color histogram을 추출한다. 두 feature vector를 이어 붙여 하나의 feature vector로 만든다. 추출된 feature 위에서 Softmax linear classifier를 학습한다. 같은 feature 위에서 TwoLayerNet을 학습한다. #ASSIGNMENT
- Assignment 1-3: Two-Layer Neural Network 완전연결계층 구현 Fully-Connected Neural Nets 과제에서는 neural network를 구성하는 기본 layer들을 모듈 단위로 구현한다. 이번 과제에서 직접 구현한 핵심은 affineforward, affinebackward, reluforward, relubackward, softmaxloss, 그리고 이들을 조합한 TwoLayerNet이다. 전체 구조는 다음과 같다. #ASSIGNMENT
- CS231n Lecture 4 - Neural Networks and Backpropagation Neural Networks, Backprop Neural network는 여러 linear transformation 사이에 nonlinearity를 넣어 복잡한 함수를 표현하고, backpropagation은 chain rule을 이용해 loss가 각 parameter에 미치는 영향을 효율적으로 계산하는 방법이다. Lecture 3에서는 loss function을 정의하고, regularization과 optimization으로 좋은 weight를 찾는 방법을 봤다. 하지만 지금까지의 모델은 여전히 linear classifier라서, 선 하나로 나눌 수 없는 데이터에는 한계가 있다. #LECTURE
- Assignment 1-2: Implement a Softmax classifier softmaxloss 구현, SGD 구현 softmaxloss 에 대해서 이해하고, svm loss와 softmaxloss의 차이를 확인하고, SGD를 적용해서 훈련을 수행하고, 검증 데이터로 하이퍼파라미터 결정하기 softmaxloss 는 모델이 정답 클래스에 얼마나 높은 확률을 부여했는지를 기준으로 손실을 계산하는 방법이다. score를 softmax로 변환하여 각 클래스의 확률을 계산 정답 클래스의 확률이 1에 가까울수록 loss가 작아짐 SVM loss와 달리 margin을 넘겨도 정답 확률을 더 키우는 방향으로 계속 학습 수식: logit(점수): #ASSIGNMENT
- CS231n Lecture 3 - Regularization and Optimization Regularization의 목적, L1/L2 정규화, gradient descent, SGD, momentum, RMSProp, Adam과 learning rate schedule Regularization은 모델이 training data에 너무 잘 맞는 것을 막아 test data에서 더 잘 동작하게 만드는 장치이고, optimization은 loss를 줄이는 방향으로 파라미터 를 찾는 과정이다. 이번 강의의 흐름은 loss function -> regularization -> gradient descent -> SGD -> momentum / RMSProp / Adam -> learning rate schedule로 이어진다. #LECTURE
- Assignment 1-1: k-Nearest Neighbor classifier kNN 구현, training, testing, cross-validation L1, L2 distance 에 대해 이해하고, k-Nearest Neighbors(kNN) 분류기를 직접 구현하고, 학습 데이터에 대해 성능을 측정하고, Cross-Validation (k-folds) 를 이용해 최적의 하이퍼파라미터 k를 찾기 k-Nearest Neighbors(kNN)는 테스트 샘플과 훈련 샘플 간의 거리를 계산하여 가장 가까운 k개의 이웃을 찾고, 다수결을 통해 클래스를 예측하는 분류 알고리즘이다. 학습 과정이 거의 없음 (Lazy Learning) 가장 가까운 k개의 데이터로 분류 거리 척도로 주로 Euclidean Distance(L2 distance) 사용 거리 계산: #ASSIGNMENT
- CS231n Lecture 2 - Image Classification with Linear Classifiers 이미지 분류 문제, 데이터 기반 접근, Nearest Neighbor와 K-NN, 선형 분류기의 입력 shape와 score 계산 정리 CS231n Lecture 2 내용을 개인 학습용으로 정리한 글이다. 이미지 분류는 이미지를 텐서 입력으로 받아, 미리 정해진 클래스 중 하나의 라벨을 예측하는 문제이다. #LECTURE
- CS231n Lecture 1 - Introduction 컴퓨터 비전의 문제 정의, 데이터 기반 접근, 이미지 분류와 딥러닝으로 이어지는 흐름 정리 CS231n Lecture 1 내용을 개인 학습용으로 정리한 글이다. 컴퓨터 비전은 픽셀 배열에서 의미를 뽑아내는 문제이며, 현대적 접근은 사람이 규칙을 만들기보다 데이터로 모델을 학습시키는 것이다. 우리 뇌에서 뉴런은 계층 구조를 지닌다. 강의에서는 Hubel과 Wiesel의 고양이 시각 피질 실험을 통해 단순한 선과 모서리에서 점차 복잡한 객체로 인식하는 계층적 구조가 밝혀졌다고 언급한다. 컴퓨터 비전은 이미지를 숫자 배열로 보고 의미를 예측하는 문제이다. 이미지 분류 모델은 픽셀의 표면적 차이를 넘어서 객체의 본질적인 패턴을 학습해야 한다. 데이터 기반 접근은 규칙을 직접 설계하지 않고, 대량의 데이터셋을 통해 모델이 분류 기준을 스스로 학습하게 하는 방식이다. 대표적인 예로 ImageNet이 있다. #LECTURE
- Transformer Self-Attention을 기반으로 한 Transformer 구조, Encoder, Decoder, Masked Self-Attention과 Cross-Attention 정리 한빛미디어의 를 요약 정리한 글이다. Transformer는 Attention is All You Need(2017)에서 제안된 구조이다. #밑바닥부터-시작하는-딥러닝-2
- Self-Attention 일반 Attention에서 Self-Attention으로 넘어가는 관점 전환과 Q, K, V의 역할을 정리한다. 한빛미디어의 를 요약 정리한 글이다. 일반 Attention은 다음 구조를 가진다. 기준: 현재 시점의 hidden state 참조: 전체 hidden states #밑바닥부터-시작하는-딥러닝-2
- Attention 직관 Decoder의 잠정 상태, attention score, attention weight, context vector 흐름 직관 한빛미디어의 를 요약 정리한 글이다. Attention은 Decoder가 현재 시점의 출력을 만들 때, Encoder의 전체 hidden states 중 어떤 정보를 얼마나 참고할지 학습하는 구조이다. #밑바닥부터-시작하는-딥러닝-2
- Attention seq2seq의 고정 길이 벡터 한계를 보완하는 Attention 구조와 WeightSum, AttentionWeight, TimeAttention 구현 정리 한빛미디어의 를 요약 정리한 글이다. Transformer의 출발점이 된 논문은 Attention is All You Need(2017)이다. #밑바닥부터-시작하는-딥러닝-2
- RNN 문장 생성 텐서 형상 RNN 문장 생성 과정에서 입력 임베딩, LSTM, 출력층, softmax까지의 텐서 형상을 정리한다. 한빛미디어의 를 요약 정리한 글이다. RNN 또는 LSTM 기반 언어 모델에서 문장을 생성할 때는 단어 ID 하나가 입력으로 들어가고, 모델은 다음 단어의 확률분포를 출력한다. #밑바닥부터-시작하는-딥러닝-2
- RNN을 사용한 문장 생성 RNN 언어 모델을 이용한 문장 생성, seq2seq, Encoder-Decoder 구조와 Peeky 개선 한빛미디어의 를 요약 정리한 글이다. 언어 모델은 지금까지 주어진 단어를 바탕으로 다음에 출현할 단어의 확률분포를 출력한다. #밑바닥부터-시작하는-딥러닝-2
- Gated RNN 기본 RNN의 장기 의존성 문제와 LSTM의 게이트 구조, TimeLSTM 구현, RNNLM 개선 방법 한빛미디어의 를 요약 정리한 글이다. 기본 RNN은 시퀀스 데이터를 순서대로 처리할 수 있지만, 긴 시계열 데이터에서 멀리 떨어진 정보 사이의 의존 관계를 학습하기 어렵다. #밑바닥부터-시작하는-딥러닝-2
- RNN 순환 신경망의 구조, BPTT와 Truncated BPTT, TimeRNN과 RNN 언어 모델 한빛미디어의 를 요약 정리한 글이다. RNN(Recurrent Neural Network)은 시퀀스 데이터의 시간적 순서를 고려하기 위해 이전 상태 정보를 현재 계산에 반영하는 신경망이다. #밑바닥부터-시작하는-딥러닝-2
- Embedding과 Negative Sampling CBOW에서 Embedding 계층과 Negative Sampling을 사용해 계산량을 줄이는 과정 한빛미디어의 를 요약 정리한 글이다. CBOW 모델을 큰 어휘 집합에 그대로 적용하면 계산량이 매우 커진다. #밑바닥부터-시작하는-딥러닝-2
- CBOW CBOW의 구조, 임베딩 벡터와 NLL 손실, skip-gram과의 차이, 통계 기반 기법과 추론 기반 기법의 차이 한빛미디어의 를 요약 정리한 글이다. CBOW(Continuous Bag-of-Words)는 문맥(context) 단어들로부터 중앙(target) 단어를 예측하는 신경망 기반 언어 모델이다. #밑바닥부터-시작하는-딥러닝-2
- PMI, SVD 단어 동시발생 빈도의 고빈도 편향 문제, PMI와 PPMI, PPMI 행렬에 SVD를 적용해 단어 벡터를 만드는 흐름 한빛미디어의 를 요약 정리한 글이다. PMI(Pointwise Mutual Information)는 두 단어가 기대보다 얼마나 자주 함께 등장하는지를 측정하는 지표이다. #밑바닥부터-시작하는-딥러닝-2
- 합성곱 신경망(CNN) CNN의 기본 구조, 합성곱 연산, 패딩, 스트라이드, 3차원 합성곱, 배치 처리와 풀링 계층 한빛미디어의 을 요약 정리한 글이다. 합성곱 신경망(CNN, Convolutional Neural Network)은 합성곱 계층과 풀링 계층이 추가된 신경망이다. #밑바닥부터-시작하는-딥러닝-1
딥러닝
딥러닝
- CS231n Lecture 17 - Robot Learning reinforcement learning, model-based planning, imitation learning, vision-language-action models Robot learning은 action으로 환경을 바꾸며 장기적인 reward를 높이는 policy를 학습하는 sequential decision-making 문제이다. Supervised learning은 고정된 데이터셋의 입력 에서 label 를 예측한다. #LECTURE
- CS231n Lecture 16 - Vision and Language CLIP, multimodal language models, grounding, model chaining Vision-language foundation model은 이미지와 텍스트를 공통 representation으로 정렬하거나 visual token을 language model의 context로 주입해 여러 과제를 하나의 pretrained model로 풀며, grounding과 promptable output, tool chaining을 더해 텍스트 응답을 실제 픽셀과 전문 vision model의 동작으로 연결한다. 전통적인 computer vision pipeline은 과제마다 데이터셋과 모델을 따로 만든다. #LECTURE
- CS231n Lecture 15 - 3D Vision 3D representations, neural fields, NeRF, Gaussian splatting 3D vision은 geometry와 appearance를 point cloud, mesh, voxel, implicit function 등으로 표현하고, 2D·3D 관측에서 이를 학습해 장면 복원과 새로운 시점의 이미지 합성에 사용한다. 2D 이미지는 보통 일정한 grid 위의 pixel tensor로 표현한다. 반면 3D 물체는 geometry뿐 아니라 질감, 재질, 조명에 따른 appearance까지 포함하며, 이를 표현하는 표준적인 형식이 하나로 정해져 있지 않다. #LECTURE
- Assignment 3-3: Denoising Diffusion Probabilistic Models Forward Diffusion, Reverse Diffusion, U-Net 기반 Noise Prediction, Reverse Sampling, Classifier-Free Guidance 구현 및 평가 이번 과제에서는 Denoising Diffusion Probabilistic Model(DDPM)의 핵심 구성요소를 구현하고, noisy image를 점진적으로 denoise하여 이미지를 생성하는 과정을 배운다. DDPM은 데이터 분포에서 바로 샘플을 생성하는 대신, 먼저 실제 이미지에 Gaussian noise를 점진적으로 추가하는 Forward Diffusion을 정의하고, 반대로 노이즈에서 이미지를 복원하는 Reverse Diffusion을 학습한다. Forward process 자체는 고정된 noise schedule에 의해 결정되며, 실제로 학습되는 부분은 각 timestep에서 noisy image를 보고 노이즈 또는 원본 이미지를 예측하는 denoising model이다. 이 denoising model로 U-Net을 사용한다. #ASSIGNMENT
- CS231n Lecture 14 - Generative Models 2 Generative adversarial networks, rectified flow, latent diffusion GAN은 discriminator와 generator의 adversarial game으로 data distribution을 암묵적으로 맞추고, diffusion과 rectified flow는 노이즈와 데이터 사이의 경로를 학습해 반복적인 reverse process로 샘플을 생성한다. 명시적 밀도 모델(explicit density model)은 데이터 에 대한 확률밀도 를 명시적으로 정의한다. Autoregressive model은 이를 정확하게 계산하고, VAE는 로그우도의 하한인 ELBO를 계산한다. #LECTURE
- CS231n Lecture 13 - Generative Models 1 Maximum likelihood, autoregressive models, variational autoencoders Generative model은 data를 만든 probability distribution을 학습하는 모델이며, autoregressive model은 chain rule로 exact likelihood를 계산하고 VAE는 latent variable과 ELBO를 도입해 tractable한 lower bound로 학습한다. Supervised learning에서는 input과 target의 pair가 주어진다. #LECTURE
- 논문 리뷰: Self-Attentive Sequential Recommendation SASRec 리뷰 논문: Self-Attentive Sequential Recommendation 저자: Wang-Cheng Kang, Julian McAuley 학회: IEEE International Conference on Data Mining (ICDM) 연도: 2018 논문 링크: arXiv:1808.09781 --- #리뷰
- Assignment 3-2: Self-Supervised Learning for Image Classification SimCLR의 data augmentation, NT-Xent loss 구현과 self-supervised representation의 image classification 평가 이번 과제에서는 label 없이 image representation을 학습하는 self-supervised learning과 SimCLR의 contrastive learning을 구현하고, 학습된 representation이 downstream image classification에 얼마나 유용한지 평가한다. Supervised learning은 이미지와 사람이 붙인 class label의 관계를 학습한다. 반면 self-supervised learning은 data 자체에서 학습 신호를 만든다. SimCLR에서는 같은 이미지에 서로 다른 random augmentation을 적용해 두 view를 만들고, 이 둘을 positive pair로 취급한다. Model은 positive pair의 representation을 가깝게 만들고, batch 안의 다른 이미지에서 나온 view는 멀어지게 학습한다. #ASSIGNMENT
- [Google Recommendation Systems 06] Retrieval, Scoring, Re-ranking 추천 시스템의 retrieval, scoring, re-ranking 파이프라인과 freshness, diversity, fairness Google 공식 원문: Retrieval, Scoring, Re-ranking, Course summary 대규모 추천 시스템은 corpus 전체를 하나의 복잡한 모델로 정렬하지 않는다. 수백만 개 이상의 item을 요청마다 모두 평가하면 latency와 compute 비용을 감당하기 어렵기 때문이다. 대신 대상을 단계적으로 줄이는 funnel 구조를 사용한다. Retrieval 또는 candidate generation: 전체 corpus에서 관련 가능성이 있는 candidate 수백수천 개를 빠르게 가져온다. Scoring과 ranking: 더 많은 feature와 복잡한 모델로 candidate의 relevance를 평가하고 순서를 정한다. Re-ranking: freshness, diversity, fairness, 정책 같은 추가 기준과 제약을 반영해 최종 노출 목록을 만든다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 05] Softmax DNN과 Two-Tower Softmax DNN 추천 모델의 구조와 embedding 해석, negative sampling, two-tower 모델 Google 공식 원문: Deep neural network models, Softmax training 이전 글의 matrix factorization은 사용자와 item마다 하나의 embedding을 학습하고, 두 embedding의 내적으로 선호도를 예측했다. 단순하고 대규모 corpus에도 잘 확장되지만 다음과 같은 한계가 있다. user ID와 item ID 이외의 side feature를 모델에 넣기 어렵다. 학습 데이터에 없던 새로운 user나 item을 바로 처리하기 어렵다. dot product를 그대로 사용하면 norm이 큰 인기 item이 많은 사용자에게 반복해서 추천되기 쉽다. 사용자의 현재 문맥이나 구체적인 관심사를 세밀하게 반영하기 어렵다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 04] Collaborative filtering과 matrix factorization User-item interaction에서 latent embedding을 학습하는 collaborative filtering과 weighted matrix factorization 공식 원문: Collaborative filtering: Basics, Matrix factorization, Advantages & disadvantages Collaborative filtering은 여러 사용자의 user–item interaction을 함께 이용해 user와 item의 latent embedding을 자동으로 학습하며, matrix factorization은 feedback matrix 를 저차원 행렬 와 의 곱으로 근사해 관측되지 않은 선호를 예측하는 대표적인 collaborative filtering 방법이다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 03] Content-based filtering Item feature와 user profile의 유사도로 추천하는 content-based filtering의 원리와 장단점 공식 원문: Content-based filtering: Basics, Advantages & disadvantages Content-based filtering은 item과 사용자를 같은 feature space의 vector로 표현하고 두 vector의 similarity로 candidate의 relevance를 계산하는 방법이며, 다른 사용자의 행동 없이 개인의 취향을 세밀하게 반영할 수 있지만 추천 품질이 사람이 설계한 feature와 사용자의 기존 관심사에 크게 제한된다. #GOOGLE-RECOMMENDATION-SYSTEMS
- 논문 리뷰: Attention Is All You Need Transformer 논문: Attention Is All You Need 저자: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin 학회: Neural Information Processing Systems (NIPS) 연도: 2017 논문 링크: arXiv:1706.03762 --- #리뷰
- CS231n Lecture 12 - Self-Supervised Learning Pretext task, MAE, contrastive representation learning Self-supervised learning(자기지도학습)은 label이 없는 data 자체에서 학습 목표를 만들고, reconstruction이나 contrastive objective를 통해 다양한 downstream task에 재사용할 수 있는 representation을 학습하는 방법이다. Supervised learning은 input과 사람이 만든 label의 쌍을 사용한다. Image classification의 class label도 비용이 들지만, object detection의 bounding box나 semantic segmentation의 pixel label은 훨씬 더 많은 작업을 요구한다. 새로운 domain으로 옮길 때마다 같은 규모의 label을 다시 만드는 것도 어렵다. #LECTURE
- [Google Recommendation Systems 02] Candidate generation과 embedding 추천 후보를 생성하는 두 가지 접근과 embedding 공간의 의미, cosine/dot product/Euclidean distance의 차이와 선택 기준 Google 공식 원문: Candidate generation overview Candidate generation은 전체 corpus에서 현재 query와 관련 있을 가능성이 높은 item을 빠르게 추려내는 추천 시스템의 첫 단계이다. 대규모 서비스에서는 모든 item을 정교한 scoring model에 넣을 수 없으므로, 이 단계가 수백만∼수십억 개의 item을 수백∼수천 개 수준의 후보로 줄인다. #GOOGLE-RECOMMENDATION-SYSTEMS
- [Google Recommendation Systems 01] 추천 시스템 개요 대규모 추천 시스템이 필요한 이유와 item, query, embedding의 의미, candidate generation부터 re-ranking까지의 전체 구조 Google 공식 원문: Recommendation Systems 과정, Large-scale recommendation systems, Terminology, Recommendation systems overview 추천 시스템은 사용 가능한 전체 콘텐츠 가운데 현재 사용자에게 보여줄 만한 item을 골라 순서를 정하는 시스템이다. YouTube가 다음에 볼 영상을 제안하거나 Google Play가 홈 화면에 앱을 배열하는 과정이 대표적인 예이다. #GOOGLE-RECOMMENDATION-SYSTEMS
- CS231n Lecture 11 - Large-Scale Distributed Training GPU cluster의 memory, communication, parallelism Large-scale distributed training은 거대한 model과 batch를 여러 accelerator에 나누는 것만으로 끝나지 않으며, GPU와 cluster의 계층적인 memory bandwidth에 맞춰 computation과 communication을 겹치고 data, parameter, sequence, layer 축의 parallelism을 조합해 Model FLOPs Utilization을 높이는 문제이다. Computer가 수행하는 작업은 크게 computation과 communication으로 나눌 수 있다. Computation은 input bit로부터 새로운 output bit를 계산하는 작업이다. Communication은 data를 한 memory 또는 device에서 다른 곳으로 옮기는 작업이다. #LECTURE
- RMS 정규화 RMSNorm의 수식과 LayerNorm과의 차이, Transformer에서 자주 사용하는 이유 RMS 정규화(Root Mean Square Layer Normalization, RMSNorm)는 입력의 평균을 빼지 않고, 제곱 평균의 제곱근인 RMS를 이용해 입력의 크기만 조절하는 정규화 방법이다. 하나의 token에 대응하는 입력 vector를 라고 하자. 입력의 RMS는 다음과 같다. #학습원리
- CS231n Lecture 10 - Video Understanding Spatiotemporal representation과 action recognition Video understanding은 image에 time dimension을 더한 spatiotemporal data에서 appearance와 motion을 함께 표현하는 문제이며, frame pooling부터 3D CNN, optical flow 기반 two-stream network, recurrent model, space-time attention까지의 차이는 결국 temporal information을 언제 어떻게 결합하느냐에 있다. RGB image 한 장은 일반적으로 다음과 같이 표현한다. #LECTURE
- CS231n Lecture 9 - Object Detection, Image Segmentation, and Visualization Dense prediction과 모델 시각화 Image segmentation과 object detection은 image-level classification을 pixel, region, object 단위의 dense prediction으로 확장한 문제이며, saliency map과 CAM(Class Activation Mapping) 계열 기법은 예측 score를 다시 image 공간에 연결해 model이 어느 영역을 사용했는지 해석한다. 같은 image를 입력받더라도 무엇을 출력하느냐에 따라 task가 달라진다. #LECTURE
- Sinusoidal Positional Encoding의 원리 여러 주기의 sin과 cos를 이용해 token의 위치를 embedding과 같은 차원의 vector로 표현하는 원리 Transformer의 self-attention은 입력 vector 사이의 관계를 계산하지만, token이 원래 몇 번째 위치에 있었는지는 스스로 알 수 없다. 따라서 token embedding에 위치정보를 별도로 넣어주어야 한다. Sinusoidal positional encoding은 token의 위치 를 여러 주파수의 sin과 cos로 변환하여 차원 vector 하나로 표현하는 방법이다. #TRANSFORMER
- Assignment 3-1: Image Captioning with Transformers Attention 및 Transformer Block 구현, Image Captioning Transformer 의 Multi-Headed Attention 을 구현하고, Positional Encoding 의 원리와 구현, Transformer Block 을 만들고 COCO Dataset 으로 이미지 캡셔닝과 ViT를 구현한다. Multi-Headed Attention은 embedding을 여러 head로 나누어 각 head가 서로 다른 표현 공간에서 token 사이의 관계를 포착하도록 한다. #ASSIGNMENT
- CS231n Lecture 18 - Human-Centered AI human-centered computer vision, fairness, privacy, healthcare, assistive robotics Human-centered AI는 단순히 인간과 같은 시각 능력을 만드는 데서 끝나지 않고, 인간이 놓치는 정보를 보완하면서도 편향과 개인정보 보호를 다루고, 최종적으로는 인간이 실제로 원하고 가치 있다고 판단한 일을 안전하게 돕도록 AI의 목표와 평가 기준을 설계하는 관점이다. Computer vision은 오랫동안 인간의 시각 능력을 재현하는 문제로 발전해 왔다. 그러나 모델의 성능이 높아질수록 단순히 무엇을 인식할 수 있는지만으로는 충분하지 않다. 무엇을 보게 할 것인지, 무엇을 보지 않아야 하는지, 그 결과가 누구에게 어떤 영향을 주는지까지 함께 고려해야 한다. #LECTURE
- CS231n Lecture 8 - Attention and Transformers Attention 연산과 Transformer 구조 Attention은 query와 key의 유사도로 value를 가중합하는 연산이며, Transformer는 self-attention으로 token 사이의 정보를 섞고 FFN으로 각 token을 독립적으로 변환하는 block을 반복해 sequence를 처리한다. Sequence-to-sequence model은 길이가 다른 두 sequence 사이의 mapping을 학습한다. 기계번역에서는 영어 문장을 입력받아 이탈리아어 문장을 출력할 수 있으며, 두 문장의 단어 수와 어순은 서로 다를 수 있다. #LECTURE
- Assignment 2-5: RNN Captioning COCO image feature와 RNN language model을 연결한 image captioning 구현 미리 추출한 image feature를 초기 hidden state로 투영하고, 한 timestep씩 어긋난 caption을 teacher forcing으로 학습하여 매 시점의 다음 token을 예측하는 RNN image captioning model을 구현한다. 이번 과제는 2014 COCO Dataset의 image-caption pair를 사용한다. Image는 ImageNet으로 사전 학습한 VGG-16의 fc7 feature를 사용하며, 4096차원 feature를 PCA로 줄인 512차원 입력을 model에 넣는다. Caption은 각 word를 integer ID로 바꾼 sequence로 처리한다. #ASSIGNMENT
- Assignment 2-3: Convolutional Networks Convolution, Max Pooling, Spatial Batch Normalization, Group Normalization 구현 이번 과제에서는 CNN을 구성하는 convolution과 max pooling layer의 forward, backward를 직접 구현한다. 이어서 CNN의 activation shape인 에 맞춰 Spatial Batch Normalization을 구현하고, 채널을 여러 group으로 나누어 정규화하는 Spatial Group Normalization까지 구현한다. #ASSIGNMENT
- CS231n Lecture 7 - Recurrent Neural Networks RNN 구조와 sequence modeling RNN은 이전 hidden state와 현재 입력을 같은 가중치로 반복 처리해 가변 길이 sequence를 모델링하며, BPTT로 시간축을 따라 학습하지만 순차 계산과 vanishing gradient라는 한계가 있어 LSTM과 현대적인 state space model로 발전했다. 일반적인 image classifier는 하나의 고정된 크기 입력을 받아 하나의 고정된 크기 출력을 만든다. Sequence modeling에서는 입력이나 출력이 가변 길이 sequence가 될 수 있다. #LECTURE
- Assignment 2-2: Dropout Dropout 개념 및 구현 드롭아웃의 개념과 효과, 순전파 및 역전파를 구현한다. 드롭아웃(Dropout)은 훈련 시 drop probability 만큼 뉴런의 출력을 무작위로 0으로 만드는 규제 기법이다. #ASSIGNMENT
- Assignment 2-1: Batch Normalization Batch Norm, Layer Norm 이번 과제에서는 Batch Normalization 의 개념과 BatchNorm 레이어의 forward, backward 를 구현한다. 또한 Batch Norm과 Weight Initialization 의 관계, Batch Norm과 Batch Size와의 관계를 Baseline 기반으로 비교한다. #ASSIGNMENT
- CS231n Lecture 6 - Training CNNs and CNN Architectures CNN 구성 요소와 아키텍처, 초기화, 데이터 증강, 전이 학습, 학습 방법 CNN을 안정적으로 학습하려면 합성곱만 쌓는 것이 아니라 정규화, Dropout, 활성화 함수를 목적에 맞게 배치하고, 잔차 연결과 Kaiming 초기화로 깊은 신경망의 최적화를 안정화하며, 데이터 증강과 전이 학습, 올바른 디버깅 절차까지 하나의 학습 과정으로 연결해야 한다. CNN을 다룰 때는 두 문제를 구분해야 한다. 어떤 계층을 어떤 순서와 형태로 연결해 아키텍처를 만들 것인가? 만들어진 아키텍처가 실제 데이터에서 안정적으로 학습되도록 어떻게 준비하고 검증할 것인가? #LECTURE
- Assignment 1-5: Training a fully connected network FullyConnectedNet 구현, Momentum, RMSProp, Adam 이번 과제에서는 임의의 개수의 hidden layer를 갖는 FullyConnectedNet을 구현하고, 여러 optimizer를 직접 구현해본다. 앞에서 만든 TwoLayerNet이 하나의 hidden layer만 갖는 구조였다면, 여기서는 hidden layer 개수를 리스트로 받아 더 깊은 fully-connected network를 구성한다. 기본 구조는 다음과 같다. #ASSIGNMENT
- CS231n Lecture 5 - Image Classification with CNNs CNN 이미지 분류 CNN은 작은 필터를 이미지 전체에 공유하며 적용해 공간 구조를 보존하고, 단순한 경계부터 복잡한 물체 특징까지 계층적으로 학습하는 신경망이다. 앞선 강의에서는 이미지 분류를 예제로 딥러닝 시스템을 구성하는 기본 요소를 배웠다. 전체 흐름은 다음과 같이 정리할 수 있다. 입력과 출력을 텐서로 표현한다. 입력으로부터 출력 점수를 계산하는 모델을 정의한다. 모델의 예측이 얼마나 나쁜지를 측정하는 손실 함수를 정의한다. 역전파로 손실에 대한 파라미터의 기울기를 계산한다. 경사하강법 기반 최적화 알고리즘으로 파라미터를 갱신한다. #LECTURE
- Assignment 1-4: Higher Level Representations: Image Features HOG, HSV feature 추출과 feature 기반 분류기 학습 이번 과제에서는 원본 픽셀을 그대로 사용하는 대신, 이미지에서 hand-crafted feature를 추출한 뒤 분류기를 학습한다. 사용한 feature는 Histogram of Oriented Gradients, HOG와 HSV color histogram이다. 전체 흐름은 다음과 같다. 각 이미지에서 HOG feature를 추출한다. 각 이미지에서 HSV hue channel 기반 color histogram을 추출한다. 두 feature vector를 이어 붙여 하나의 feature vector로 만든다. 추출된 feature 위에서 Softmax linear classifier를 학습한다. 같은 feature 위에서 TwoLayerNet을 학습한다. #ASSIGNMENT
- Assignment 1-3: Two-Layer Neural Network 완전연결계층 구현 Fully-Connected Neural Nets 과제에서는 neural network를 구성하는 기본 layer들을 모듈 단위로 구현한다. 이번 과제에서 직접 구현한 핵심은 affineforward, affinebackward, reluforward, relubackward, softmaxloss, 그리고 이들을 조합한 TwoLayerNet이다. 전체 구조는 다음과 같다. #ASSIGNMENT
- CS231n Lecture 4 - Neural Networks and Backpropagation Neural Networks, Backprop Neural network는 여러 linear transformation 사이에 nonlinearity를 넣어 복잡한 함수를 표현하고, backpropagation은 chain rule을 이용해 loss가 각 parameter에 미치는 영향을 효율적으로 계산하는 방법이다. Lecture 3에서는 loss function을 정의하고, regularization과 optimization으로 좋은 weight를 찾는 방법을 봤다. 하지만 지금까지의 모델은 여전히 linear classifier라서, 선 하나로 나눌 수 없는 데이터에는 한계가 있다. #LECTURE
- Assignment 1-2: Implement a Softmax classifier softmaxloss 구현, SGD 구현 softmaxloss 에 대해서 이해하고, svm loss와 softmaxloss의 차이를 확인하고, SGD를 적용해서 훈련을 수행하고, 검증 데이터로 하이퍼파라미터 결정하기 softmaxloss 는 모델이 정답 클래스에 얼마나 높은 확률을 부여했는지를 기준으로 손실을 계산하는 방법이다. score를 softmax로 변환하여 각 클래스의 확률을 계산 정답 클래스의 확률이 1에 가까울수록 loss가 작아짐 SVM loss와 달리 margin을 넘겨도 정답 확률을 더 키우는 방향으로 계속 학습 수식: logit(점수): #ASSIGNMENT
- CS231n Lecture 3 - Regularization and Optimization Regularization의 목적, L1/L2 정규화, gradient descent, SGD, momentum, RMSProp, Adam과 learning rate schedule Regularization은 모델이 training data에 너무 잘 맞는 것을 막아 test data에서 더 잘 동작하게 만드는 장치이고, optimization은 loss를 줄이는 방향으로 파라미터 를 찾는 과정이다. 이번 강의의 흐름은 loss function -> regularization -> gradient descent -> SGD -> momentum / RMSProp / Adam -> learning rate schedule로 이어진다. #LECTURE
- Assignment 1-1: k-Nearest Neighbor classifier kNN 구현, training, testing, cross-validation L1, L2 distance 에 대해 이해하고, k-Nearest Neighbors(kNN) 분류기를 직접 구현하고, 학습 데이터에 대해 성능을 측정하고, Cross-Validation (k-folds) 를 이용해 최적의 하이퍼파라미터 k를 찾기 k-Nearest Neighbors(kNN)는 테스트 샘플과 훈련 샘플 간의 거리를 계산하여 가장 가까운 k개의 이웃을 찾고, 다수결을 통해 클래스를 예측하는 분류 알고리즘이다. 학습 과정이 거의 없음 (Lazy Learning) 가장 가까운 k개의 데이터로 분류 거리 척도로 주로 Euclidean Distance(L2 distance) 사용 거리 계산: #ASSIGNMENT
- CS231n Lecture 2 - Image Classification with Linear Classifiers 이미지 분류 문제, 데이터 기반 접근, Nearest Neighbor와 K-NN, 선형 분류기의 입력 shape와 score 계산 정리 CS231n Lecture 2 내용을 개인 학습용으로 정리한 글이다. 이미지 분류는 이미지를 텐서 입력으로 받아, 미리 정해진 클래스 중 하나의 라벨을 예측하는 문제이다. #LECTURE
- CS231n Lecture 1 - Introduction 컴퓨터 비전의 문제 정의, 데이터 기반 접근, 이미지 분류와 딥러닝으로 이어지는 흐름 정리 CS231n Lecture 1 내용을 개인 학습용으로 정리한 글이다. 컴퓨터 비전은 픽셀 배열에서 의미를 뽑아내는 문제이며, 현대적 접근은 사람이 규칙을 만들기보다 데이터로 모델을 학습시키는 것이다. 우리 뇌에서 뉴런은 계층 구조를 지닌다. 강의에서는 Hubel과 Wiesel의 고양이 시각 피질 실험을 통해 단순한 선과 모서리에서 점차 복잡한 객체로 인식하는 계층적 구조가 밝혀졌다고 언급한다. 컴퓨터 비전은 이미지를 숫자 배열로 보고 의미를 예측하는 문제이다. 이미지 분류 모델은 픽셀의 표면적 차이를 넘어서 객체의 본질적인 패턴을 학습해야 한다. 데이터 기반 접근은 규칙을 직접 설계하지 않고, 대량의 데이터셋을 통해 모델이 분류 기준을 스스로 학습하게 하는 방식이다. 대표적인 예로 ImageNet이 있다. #LECTURE
- Transformer Self-Attention을 기반으로 한 Transformer 구조, Encoder, Decoder, Masked Self-Attention과 Cross-Attention 정리 한빛미디어의 를 요약 정리한 글이다. Transformer는 Attention is All You Need(2017)에서 제안된 구조이다. #밑바닥부터-시작하는-딥러닝-2
- Self-Attention 일반 Attention에서 Self-Attention으로 넘어가는 관점 전환과 Q, K, V의 역할을 정리한다. 한빛미디어의 를 요약 정리한 글이다. 일반 Attention은 다음 구조를 가진다. 기준: 현재 시점의 hidden state 참조: 전체 hidden states #밑바닥부터-시작하는-딥러닝-2
- Attention 직관 Decoder의 잠정 상태, attention score, attention weight, context vector 흐름 직관 한빛미디어의 를 요약 정리한 글이다. Attention은 Decoder가 현재 시점의 출력을 만들 때, Encoder의 전체 hidden states 중 어떤 정보를 얼마나 참고할지 학습하는 구조이다. #밑바닥부터-시작하는-딥러닝-2
- Attention seq2seq의 고정 길이 벡터 한계를 보완하는 Attention 구조와 WeightSum, AttentionWeight, TimeAttention 구현 정리 한빛미디어의 를 요약 정리한 글이다. Transformer의 출발점이 된 논문은 Attention is All You Need(2017)이다. #밑바닥부터-시작하는-딥러닝-2
- RNN 문장 생성 텐서 형상 RNN 문장 생성 과정에서 입력 임베딩, LSTM, 출력층, softmax까지의 텐서 형상을 정리한다. 한빛미디어의 를 요약 정리한 글이다. RNN 또는 LSTM 기반 언어 모델에서 문장을 생성할 때는 단어 ID 하나가 입력으로 들어가고, 모델은 다음 단어의 확률분포를 출력한다. #밑바닥부터-시작하는-딥러닝-2
- RNN을 사용한 문장 생성 RNN 언어 모델을 이용한 문장 생성, seq2seq, Encoder-Decoder 구조와 Peeky 개선 한빛미디어의 를 요약 정리한 글이다. 언어 모델은 지금까지 주어진 단어를 바탕으로 다음에 출현할 단어의 확률분포를 출력한다. #밑바닥부터-시작하는-딥러닝-2
- Gated RNN 기본 RNN의 장기 의존성 문제와 LSTM의 게이트 구조, TimeLSTM 구현, RNNLM 개선 방법 한빛미디어의 를 요약 정리한 글이다. 기본 RNN은 시퀀스 데이터를 순서대로 처리할 수 있지만, 긴 시계열 데이터에서 멀리 떨어진 정보 사이의 의존 관계를 학습하기 어렵다. #밑바닥부터-시작하는-딥러닝-2
- RNN 순환 신경망의 구조, BPTT와 Truncated BPTT, TimeRNN과 RNN 언어 모델 한빛미디어의 를 요약 정리한 글이다. RNN(Recurrent Neural Network)은 시퀀스 데이터의 시간적 순서를 고려하기 위해 이전 상태 정보를 현재 계산에 반영하는 신경망이다. #밑바닥부터-시작하는-딥러닝-2
- Embedding과 Negative Sampling CBOW에서 Embedding 계층과 Negative Sampling을 사용해 계산량을 줄이는 과정 한빛미디어의 를 요약 정리한 글이다. CBOW 모델을 큰 어휘 집합에 그대로 적용하면 계산량이 매우 커진다. #밑바닥부터-시작하는-딥러닝-2
- CBOW CBOW의 구조, 임베딩 벡터와 NLL 손실, skip-gram과의 차이, 통계 기반 기법과 추론 기반 기법의 차이 한빛미디어의 를 요약 정리한 글이다. CBOW(Continuous Bag-of-Words)는 문맥(context) 단어들로부터 중앙(target) 단어를 예측하는 신경망 기반 언어 모델이다. #밑바닥부터-시작하는-딥러닝-2
- PMI, SVD 단어 동시발생 빈도의 고빈도 편향 문제, PMI와 PPMI, PPMI 행렬에 SVD를 적용해 단어 벡터를 만드는 흐름 한빛미디어의 를 요약 정리한 글이다. PMI(Pointwise Mutual Information)는 두 단어가 기대보다 얼마나 자주 함께 등장하는지를 측정하는 지표이다. #밑바닥부터-시작하는-딥러닝-2
- 합성곱 신경망(CNN) CNN의 기본 구조, 합성곱 연산, 패딩, 스트라이드, 3차원 합성곱, 배치 처리와 풀링 계층 한빛미디어의 을 요약 정리한 글이다. 합성곱 신경망(CNN, Convolutional Neural Network)은 합성곱 계층과 풀링 계층이 추가된 신경망이다. #밑바닥부터-시작하는-딥러닝-1
- 배치 정규화 배치 정규화의 정의, 필요성, 순전파와 역전파 계산, 학습 안정화 효과 배치 정규화(Batch Normalization, BN)는 딥러닝에서 학습을 안정적이고 빠르게 하기 위해 각 층의 출력을 정규화하는 기법이다. 각 층의 활성화값이 적당히 분포되도록 조정한다. 즉, 활성화값을 적당히 퍼뜨리도록 강제하여 분산이 너무 커지거나 작아지지 않게 유지한다. #학습원리
- 과대적합(Overfit) 해결 과대적합의 정의와 발생 상황, 가중치 감소와 드롭아웃을 통한 해결 방법 과대적합(Overfitting)은 신경망이 훈련 데이터에만 지나치게 적응되어, 처음 보는 데이터에는 제대로 대응하지 못하는 현상이다. 훈련 데이터에서는 높은 정확도를 보이지만 테스트 데이터에서는 성능이 낮아진다면 과대적합을 의심할 수 있다. #학습원리
- 매개변수 갱신 SGD의 한계와 Momentum, AdaGrad를 통한 매개변수 갱신 방법 매개변수 갱신(Parameter Update)은 손실 함수의 값을 줄이기 위해 신경망의 가중치와 편향을 반복적으로 수정하는 과정이다. 신경망은 역전파를 통해 각 매개변수에 대한 기울기를 구하고, 이 기울기를 이용해 매개변수를 어느 방향으로 얼마나 이동시킬지 결정한다. #학습원리
- 가중치 초깃값 설정 신경망 학습에서 가중치 초깃값이 중요한 이유와 Xavier 초기화, He 초기화의 직관 모든 가중치의 값이 동일하면 각 노드가 받는 기울기도 동일해진다. 이 경우 여러 노드를 가진 레이어를 사용하더라도 단일 노드 가중치 레이어와 큰 차이가 없어지고, 각 노드가 서로 다른 특징을 학습하지 못한다. #학습원리
- 행렬 곱 역전파에서 전치행렬이 등장하는 이유 z = Wx 형태의 행렬 곱 노드에서 역전파 시 W의 전치행렬이 등장하는 과정 행렬 곱 노드의 순전파가 다음과 같다고 하자. 이때 역전파에서는 다음 식이 등장한다. #학습원리
- 곱셈 노드의 역전파 계산 그래프에서 곱셈 노드가 역전파 시 입력과 기울기를 어떻게 전달하는지 정리한다. 곱셈 노드(Multiplication Node)는 계산 그래프에서 두 값을 곱하는 노드이다. 역전파에서는 출력 쪽에서 전달된 기울기에 대해, 각 입력의 반대쪽 값을 곱해서 기울기를 전달한다. #학습원리