분류 전체보기 61

비전공자 학사 출신의 AI 연구원 도전기 (2)

안녕하세요. 지난 글에 이어서 이번에는 실력을 쌓기 위해 어떤 것들을 했는지 구체적으로 풀어보겠습니다. 많은 도움이 되시길 바랍니다. 기초를 탄탄히?! AI 공부는 프로그래밍, 영어, 수학, 통계학 실력을 필요로 합니다. 참고로 저는 처음 공부를 시작했을 때 프로그래밍을 잘 알지 못했습니다. 영어 공부도 수능 이후로 해본 적이 없었고 수학은 그나마 학과 공부로 조금 한 정도였습니다. (상중하로 표현하자면 프로그래밍 하, 영어 중, 수학 중 정도 실력이었습니다.) 그러면 '이것들을 기초부터 탄탄히 쌓아야 할까?'라는 고민을 자연스레 하게 됩니다. 하지만 저는 졸업과 동시에 취업이 목표였기 때문에 시간이 1년 반 정도밖에 남지 않은 상황이었습니다. 그래서 'AI 공부를 바로 시작하되 모르는 게 나올 때마다 ..

Story 2021.11.20

비전공자 학사 출신의 AI 연구원 도전기 (1)

안녕하세요. 오늘은 AI 공부를 시작하고 취업을 하기까지의 얘기를 해보려고 합니다. 제가 했던 고민들을 다른 분들도 많이 하고 계실 거라 생각하여 도움을 드리고자 글을 쓰게 되었습니다. 비전공자 학사로는 AI 취업하기 힘들어! 저는 서울 중위권 대학교를 다니며 3학년 2학기부터 프로그래밍과 AI에 관심이 생겨 공부하기 시작했습니다. 학과는 AI나 프로그래밍과는 관련이 없는 비전공자 였습니다. 그래서 그전까진 프로그래밍이나 통계학을 전혀 몰랐습니다. 졸업이 1년 반밖에 남지 않은 시점에서 공부를 시작했기 때문에 이걸로 취업을 할 수 있을까 걱정을 많이 했습니다. 주변에 얘기를 해보거나 인터넷에 검색을 해보면 아래와 같은 부정적인 말들만 한가득 돌아왔습니다. '석사 이상이 아니면 AI 연구원으로 취업하기는 ..

Story 2021.11.07

Python multiprocessing 으로 병렬처리

CPU를 사용해서 python을 처리하려다 보면 병렬 처리가 간절한 경우들이 생긴다. 이때 사용할 수 있는 간단한 방법이 python에 내장된 multiprocessing 라이브러리다. 사용법도 간단하고 직관적이라 바로 적용하기 간편하다는 장점이 있다. multiprocessing 관련 가이드를 보면 오히려 글이 너무 길고 사용 방법이 복잡해 보여서 거부감이 들기 쉽다. 이 글에서는 가장 간단하게 적용할 수 있는 방법을 코드와 함께 남겨 놓는다. 우선 코드를 먼저 보면 다음과 같다. from multiprocessing import Pool, cpu_count import psutil def _check_usage_of_cpu_and_memory(): memory_usage = psutil.virtual..

python 2021.10.31

논문 리뷰: BatchEnsemble: An Alternative Approach to Efficient Ensemble and Lifelong Learning

"BatchEnsemble: An Alternative Approach to Efficient Ensemble and Lifelong Learning" (ICLR 2020) - Wen et al. 여러 모델을 사용하여 Ensemble을 하면 보통 single model을 사용하는 것보다 좋은 성능을 가져온다. 하지만 모델을 여러 개 training 해야 하므로 모델 개수만큼 computational cost가 발생하게 된다. 이번 논문은 이런 단점을 극복하기 위해 나온 논문이다. Introduction 여러 사람이 함께 문제를 풀면 더 좋은 결과를 가져오는 경우가 많다. 이런 직관적 이유에서인지 Ensemble 방법은 오래전부터 사용해왔다. 실제 performance가 좋았고 많은 연구가 되어왔다. 단점..

논문 리뷰: Bayesian Meta-Learning for the Few-Shot Setting via Deep Kernels

"Bayesian Meta-Learning for the Few-Shot Setting via Deep Kernels" (NIPS 2020) - M Patacchiola et al. Meta-learning 은 new task의 적은 데이터를 빠르게 학습시켜 test 데이터를 잘 맞추고 싶을 때 사용하는 알고리즘이다. 대표적인 방법으로 gradient based meta learning의 MAML이 있다. 이번 논문은 gaussian process를 사용한 model-based meta learning 방법이다. neural process는 gaussian process를 흉내 낸 방법인 반면 이 논문은 직접 사용한다는 차이점이 있다. Introduction MAML과 같은 gradient-based m..

Multi-task learning & Meta-learning

이번 글은 Multi-task learning과 Meta-learning 알고리즘 비교와 특징을 비교하여 설명한다. Multi-task learning은 처음 딥러닝을 공부할 때부터 많이 들어온 알고리즘이다. 알고리즘의 목적은 여러 task를 함께 풀어내어 좋은 성능을 내는 것이다. 여러 task를 함께 학습하여 general 한 feature를 뽑게 하여 학습에 도움을 주며 한 번에 여러 개를 풀 수 있으므로 efficient 한 장점이 있다. Meta-learning은 익숙하지 않은 경우가 많을 것 같다. 논문은 많이 나왔지만 실제 사용하여 문제를 푸는 경우는 거의 못봤기 때문인 것 같다. 알고리즘의 목적은 unseen task에 대해 few 개의 데이터를 주었을 때 그것을 빠르게 학습하도록 만드는 ..

논문 리뷰: multi-task learning using uncertainty to weigh losses for scene geometry and semantics

"multi-task learning using uncertainty to weigh losses for scene geometry and semantics" (CVPR 2018) - Gal et al. multi-task learning 시 loss는 여러 task에 대한 sum으로 주게 된다. 이때 loss를 주는 비율이 중요한데 보통은 hyper-parameter로 주어진다. 그런데 이 논문은 Uncertainty를 사용하여 weight를 learning 하게 해 줄 수 있는 방법을 제시한다. Introduction Multi-task learning은 여러 task를 한 번에 풀어내는 neural network를 만들어내므로 efficient 한 장점이 있으며 shared representatio..

Likelihood, Maximum likelihood estimation 이란?

딥러닝 공부를 하다 보면 likelihood가 자주 등장한다. 기본적인 내용들을 다시 한번 remind 하기 위해 정리해둔다. Likelihood를 식으로 표현하면 다음과 같다. $$ L(\theta|D) $$ $\theta$는 parameter이고 D는 data를 의미한다. 식을 그대로 해석해보면, 가능도는 관측값(D)이 주어졌을 때(given) 관측값이 $\theta$에 대한 확률분포 $P(\theta)$에서 나왔을 확률이다. likelihood가 익숙하면서 안 익숙한(?) 이상한 느낌이 드는 이유는 likelihood와 비슷하게 생긴 $Pr(D|\theta)$라는 식을 자주 보았기 때문이다. 이 식은 '확률'을 나타내는데 중, 고등학교 과정에서 자주 봤었다. 확률은 가능도와 다르게 확률분포 $P(\..

Gaussian Process Regression

지난 gaussian process regression 글은 weight space view로 설명하여 어려운 느낌이 든다. 이번에는 좀 더 쉽게 정리해 보려고 한다. Purpose gpr의 목적은 데이터(x, y)를 몇 개 가지고 있고 새로운 x가 있을 때 y를 구하고 싶은 것이 목적이다. 사실 이런 목적은 gpr 뿐 아니라 다른 방법으로도 달성할 수는 있다. linear regression 같은 것이 대표적이다. 하지만 gpr의 장점은 좀 더 복잡한 분포를 잡아낼 수 있다는 것이다. How 가지고 있는 데이터(x,y)를 가지고 새로운 x에 대해 y를 추론하는 게 목적이라면 기존 데이터를 어떻게 사용할 것인지 정해야 한다. gpr의 핵심은 기존 데이터들의 관계를 gaussian과 kernel을 이용하여..

논문 리뷰: Learning towards Minimum Hyperspherical Energy

"Learning towards Minimum Hyperspherical Energy" (2018, NIPS) - Liu et al. 이 논문은 효율적인 neural network 학습을 위해 서로 다른 neuron이 나타내는 feature 사이의 distance가 증가하게 하고 그로 하여금 generalization 성능을 이끌어 내려고 한다. Introduction 최근 Neural Network 관련 paper들을 보면 크면 클수록(over parameterization) 잘 된다라고 한다. 그런데 한편으로는 클수록 correlation이 높은 neurons가 많아서 redundant 하다고도 한다. 그래서 큰 모델을 학습시키고 Pruning을 시켜 compression 하는 방법이나 efficie..