본문 바로가기

분류 전체보기

(124)
[논문 리뷰] Sharpness-Aware Minimization for Efficiently Improving Generalization Sharpness-Aware Minimization for Efficiently Improving Generalization Google Research에 계시는 분들이 ICLR 2021에 게재한 논문이다. 1. Introduction 현대의 ML, DL은 성능을 끌어올리기 위해 overparameterization이 되어있다. 그렇지만 이는 overfitting에 취약하고 train 데이터를 단순히 memorization하는 문제점이 있다. 이런 경우에는 모델이 train 데이터를 떠나서 population distribution에 대해 일반화가 잘 된 모델인지 생각해 볼 필요가 있다. 일반적으로 모델을 훈련시키기 위해서는 mse나 cross entropy처럼 단순한 손실 함수를 사용하는데, 이는 no..
[논문 리뷰] Self-training with Noisy Student improves ImageNet classification Self-training with Noisy Student improves ImageNet classification 1. Introduction 저자들은 unlabeled images를 사용해 ImageNet 정확도를 SOTA로 향상시켰다. 이 이미지의 대부분은 ImageNet의 어떤 카테고리에도 속하지 않는다. 그리고 이 논문의 핵심으로 semi-supervised learning인 Noisy Student Traning 기법을 사용하여 모델을 훈련시켰다. 이 기법은 간단하게 3단계로 구성된다. label images로 teacher model을 훈련시킨다. 학습된 teacher model을 사용해 unlabeled images에 pseudo label을 생성한다. labeled images와 pseu..
[논문 리뷰] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 1. Introduction ResNet-18을 ResNet-200으로 확장하는 것처럼 ConvNets을 확장하여 더 나은 정확도를 달성하는 것이 일반적이다. 이 경우에는 깊이를 확장한 것인데, 너비와 이미지 해상도를 확장할 수도 있다. 그러나 문제점은 이러한 세 가지 차원을 임의로 확장할 수는 있지만, 임의로 확장하는 것은 수동 조정이 필요하며 최적의 정확도로 효율성을 얻지 못할 수 있다. 위와 같이 어떤 차원에 대해 확장하는 것은 scaling up이라고 부르는데, 저자들은 전통적인 방식과 달리 compound scaling method를 제안한다. 이는 네트워크 너비, ..
Dimensionality Reduction - Supervised Variable Selection Exhaustive Search 전역 탐색 가능한 경우를 모두 탐색하는 것이다. 변수가 $n$개가 있다면 변수의 조합 개수는 $2^n - 1$이다. 당연히 변수의 개수가 많을 수록 사용할 수 없는 방법론이다. 위 그래프를 보면 1초에 10000개의 모델을 평가할 수 있는 계산 속도를 가지고 있어도 변수의 개수가 40개만 되더라도 1년이 걸린다. 변수를 평가할 때는 Akaike Information Criteria(AIC), Bayesian Information Criteria(BIC), Adjusted R-squared 등을 사용한다. Adjusted R-squared의 수식은 다음과 같다. $1 - {{(1-R^2)\cdot(n-1)} \over {n-k-1}}$ $R^2$: 일반적인 R-squared..
Dimensionality Reduction - Overview 자료 출처 차원 축소는 전처리 방법 중 하나이다. Variable이 $x_1 ... x_d$로 $d$차원의 데이터셋 $X$가 있을 때, 이를 $x_1 ... x_{d'}$인 $d'$차원으로 데이터셋을 diet시키는 것이다. 차원 축소의 목적은 일반적으로 학습 데이터셋의 차원을 축소시켜 모델 학습의 효율성은 올리면서 성능은 유지 혹은 증가시키는 것이다. 차원의 저주 Variable 개수가 증가할 때 똑같은 설명력을 유지하기 위해서 혹은 정보량을 유지하기 위해서 필요한 객체의 수는 기하급수적으로 증가한다. 위 그림 처럼 두 객체 사이의 거리가 1이라는 정보를 표현하기 위해서는 1차원일 때는 객체가 2개가 필요하지만, 차원이 증가할 수록 필요한 객체의 수는 기하급수적으로 증가한다. 또한 항상 그런 것은 아니지..
[데이콘] 코드 유사성 판단 시즌2 AI 경진대회 코드 유사성 판단 시즌2 AI 경진대회 기간: 2024.03.04 ~ 2024.04.01 개인 순위: 24th 소스 코드는 Github에서 확인할 수 있습니다. 참가 목표 취업 준비로 인해 기간이 일주일 가량 남았을 때 시작했었다. 그럼에도 불구하고 NLP 중 Program Language를 다룰 수 있고 LLM Fine-tuning 수행 경험을 해볼 수 있어 참가하였다. 데이터셋 제공된 데이터는 500개의 문제에 대해 해당 문제를 해결하는 서로 다른 코드 500개로 총 250000(=500x500)개의 C++로 작성된 스크립트 파일이다. Siamese network로 학습시키기 위해 모든 코드가 데이터셋에 1번 씩만 포함되면 gold similarity(0 or 1)의 비율이 1:1이 되도록 구축하였다..
[논문 리뷰] Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks 2019년 8월에 발행된 논문으로 코드 유사성 판단 경진대회 문제를 해결하기 위해 읽게 됐다. 해당 대회의 데이터는 C++로 작성된 두 쌍의 코드가 있고, 유사성을 1과 0으로 나타내는 label이 있다. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks 0. background Siamese Network Siamese network는 가중치를 공유하는 2개의 네트워크가 있고 각각의 네트워크에 input1, input2를 입력받은 뒤 embedding1, embedding2를 출력한다. 그런 다음 두 임베딩 벡터의 유사도를 측정하는 목적 함수(코사인 유사도, L1, L2, 맨해튼, 유클리디안 등)를 거쳐 목적에 맞는 작업을 수행한다. Tri..
정렬 정렬(Sorting)은 데이터를 특정한 기준에 따라서 순서대로 나열하는 것을 말한다. 여러 정렬 알고리즘이 있지만 선택 정렬, 삽입 정렬, 퀵 정렬, 그리고 계수 정렬 4가지를 알아보자. 1. 선택 정렬 배열의 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하는것이다. 선택 정렬은 이중 반복문으로 구성되어 있어 시간 복잡도가 $O(N^2)$이다. 선택 정렬은 다음과 같이 구현할 수 있다. import random import time random.seed(42) N = 10000 array = list(range(N)) random.shuffle(array) start = time.time() for i in range(..