반응형

컴퓨터공학/Machine Learning 8

Batch Size와 학습 시간, 메모리 사용량의 관계

배치 크기가 커지면 학습 시간 및 GPU 메모리 사용량은 어떻게 될까요? 배치 크기가 커지면 학습 시간은 계속 줄어들까요? GPU 메모리 사용량과는 어떤 관계가 있을까요? 우선, 제가 가진 학습 코드를 통해 간단하게 실험해본 결과는 다음과 같습니다. Batch Size = 1 데이터가 약 89000개 정도이므로, 1 epoch 당 89000 스텝이 진행되고, 예상 학습 시간은 1시간 45분 정도였습니다. 모델 파라미터 + 데이터 1개 텐서 = 2207MB 정도의 메모리가 사용되는 것을 보았습니다. Batch Size = 2 89000개의 절반인 약 45000 스텝 정도가 1 epch에 진행됩니다. 학습 예상 시간은 1시간 24분 정도로 약간 줄었으나, Batch Size = 1인 경우에 비하여 절반으로 ..

머신러닝 분류 알고리즘 종류별 장단점 정리

머신러닝에서 대표적으로 사용되는 분류(Classification) 알고리즘들에 대하여 종류별로 장단점을 간략하게 정리해보도록 하겠습니다. 1. 의사결정나무(Decision Tree) 장점 1. 결과가 나온 과정을 쉽게 추적할 수 있어 설명 가능성이 높다. 2. 정규화 과정이 필요 없고, 데이터의 분포에 상관 없이 적용 가능하다. 3. 범주형, 연속형, 이산형 변수 모두를 다룰 수 있다. 단점 1. 과적합에 매우 취약하여 가지치기가 중요하다. 2. 시계열 데이터나 고차원 데이터에는 적용하기 어렵다. 3. 경계값 근처에서 오류가 발생하기 쉽다. 2. 랜덤포레스트(Random Forest) 장점 1. 의사결정나무의 2, 3번 장점을 그대로 가져갈 수 있다. 2. 의사결정나무의 과적합 문제를 보완할 수 있다. ..

Batch Normalization vs Layer Normalization 정의, 장단점 비교

이번 글에서는 딥러닝에서 많이 활용되는 대표적인 성능 개선 기법인 배치 정규화와 레이어 정규화에 대해서 정의와 장단점을 비교해보도록 하겠습니다. 먼저, batch size = 3인 빨강, 파랑, 초록 데이터가 아래와 같이 A, B, C, D라는 4개의 feature의 값들로 구성되어 있는 상황을 가정해보도록 하겠습니다. Batch Normalization 정의 배치 정규화는 각 feature에 대하여 mini-batch 내의 평균, 분산을 구해서 정규화를 진행해주는 방법입니다. 위 그림의 데이터에 적용한 예시는 다음과 같습니다. 각 feature에 대한 평균과 분산 값들을 이용하여 기존 값 x를 새로운 값 y로 정규화를 해줍니다. (각 layer를 통과한 값마다 적용이 가능합니다.) (ε은 분산이 0이라..

파이썬 EM 알고리즘 구현 예제(Gaussian Mixture Model)

Python 가우시안 혼합 모형(GMM) 구현(EM 알고리즘 예시) 파이썬에서 EM 알고리즘을 직접 구현한 예시를 대표적인 케이스인 가우시안 혼합 모형(GMM)의 경우를 통하여 살펴보도록 하겠습니다. Step 1. 데이터 가정 두 개의 독립적인 정규분포에서 샘플을 10개씩 추출되어 총 20개의 데이터가 혼재하는 상황을 가정해보도록 하겠습니다. 여기서는 단순한 1차원 정규분포의 상황으로 예시를 살펴보겠습니다. 실제 데이터가 추출된 두 가우시안 분포는 다음과 같습니다. 분포 1 : 평균 = 0, 표준편차 = 2 분포 2 : 평균 = 4, 표준편차 = 1 Numpy 모듈을 통하여 위에서 가정한 분포를 따라 데이터들을 추출한 코드는 아래와 같습니다. import numpy as np data1 = np.rand..

Teacher Forcing이란? / Exposure Bias란?

Teacher Forcing과 Exposure Bias에 대하여 자연어처리 등 sequence를 생성하는 과정에서 자주 등장하는 용어들인 teacher forcing과 eacposure bias에 대하여 정의와 예시를 말씀드려보도록 하겠습니다. Teacher Forcing(교사 강요) 정의, 예시 교사 강요라고도 번역되는 teacher forcing은 sequence 생성 과정에서 바로 앞까지의 sequence 정보를 계속해서 input으로 넣어주는 것을 의미합니다. 예를 들어, A B C D E 라는 단어들로 이루어진 문장을 생성하도록 언어 모델을 학습시킨다고 해보겠습니다. A 단어만 input으로 주어졌을 때, 해당 모델이 다음 단어인 B를 정확하게 맞출 수도 있지만, F라는 생소한 단어를 생성할 가..

[딥러닝 용어] Epoch, Batch Size, Step 정의 비교

Epoch vs Batch Size vs Step(Iteration) 이번 글에서는 딥러닝 분야에서 자주 사용되는 용어들인 Epoch, Batch Size, Step(또는 Iteration)에 대하여 각 단어의 정의를 알아보고 이들 간의 관계 및 차이에 대해서 살펴보도록 하겠습니다. 이해를 돕기 위하여, 1000개 이미지의 종류를 분류하는 딥러닝 모델을 학습하는 상황을 가정해보도록 하겠습니다. Epoch란? epoch는 1~1000번의 각 데이터를 모델에서 몇 번씩 복습할 것인지에 대한 횟수를 의미합니다. 가령, 5 epochs라고 하면, 위 그림처럼 1, 2, 3, ..., 1000번 이미지를 순서대로 모델에서 input으로 받는 과정을 5번 연속 수행하며 순전파 및 역전파 과정을 반복하여 거친다는 것..

Self-Supervised vs Semi-Supervised Learning 특징 차이 비교

자기 지도 학습과 준지도 학습 차이 비교 안녕하세요. 이번 글에서는 머신러닝 기법 논문에서 자주 등장하지만 혼동하기 쉬운 개념인 Self-Supervised Learning(자기 지도 학습)과 Semi-Supervised Learning(준지도 학습)의 특징 차이를 비교해보도록 하겠습니다. Self-Supervised Learning 정의, 예시 먼저, 자기 지도 학습이라고 불리는 Self-Supervised Learning에 대해서 정의와 예시를 정리해보도록 하겠습니다. 자기 지도 학습이란 기존 데이터의 가공을 통하여 학습이 가능한 새로운 형태로 만들어 지도 학습을 진행하는 것을 의미합니다. 예를 들어, NLP에서 원래 문장의 일부 단어를 masking하고 해당 단어를 예측하는 과정은 원래 문장을 특별..

Language Model (언어 모델) 요약, N-gram, RNN 개념 소개

시작하기전에 이 포스팅은 cs224n lecture 6의 내용을 바탕으로 작성되었음을 알린다. Language Model (언어 모델) 이란? 카카오톡 메시지, DM, 문자메시지 등을 보내다보면 문장 자동 완성 기능을 본 적이 있을 것이다. Language Model 이란 어렵게 생각할 필요 없이 현재까지의 텍스트를 바탕으로 다음 단어를 예측 하는 모델을 일컫는다고 생각하면 된다. 예를 들어, 내가 좋아하는 음식은 --- 이다. 같은 문장이 있다 할 때, ---에 치킨, 피자, 초밥, 삼겹살 같은 단어는 들어가기 적절하지만, ---에 컴퓨터, 지갑, 휴대폰, 책상 등의 단어는 들어가기 매우 어색할 것이다. 즉, 앞에 '내가 좋아하는 음식은' 이라는 맥락 뒤에 나올 단어들의 확률 값은 다를 것이고, 단어 ..

반응형