반응형

컴퓨터공학 12

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하고 해당 단어를 예측하는 과정은 원래 문장을 특별..

Locality-Sensitive Hashing : LSH란?

Min-Hashing 기반 LSH 기법 설명 안녕하세요. 이번 시간에는 지난 번에 다룬 MinHash를 기반으로 유사한 문서 쌍을 빠르게 근사하여 찾을 수 있는 알고리즘인 LSH(Locality-Sensitive Hashing)에 대해서 다루어보도록 하겠습니다. 참고로, 이 글은 MinHash의 원리를 알고있음을 가정하고 설명할 예정이므로 해당 알고리즘에 대한 설명이 필요하신 분들은 아래 링크의 이전 글을 참고해주세요. Min-Hashing이란? MinHash 알고리즘 설명 안녕하세요. 이번 시간에는 데이터 마이닝 분야에서 문서 등 자료형 간의 유사도를 빠른 시간 내에 쉽게 근사하여 비교할 수 있는 Min-Hashing 알고리즘에 대해서 이해해보도 jimmy-ai.tistory.com LSH 기본 가정 ..

Min-Hashing이란?

MinHash 알고리즘 설명 안녕하세요. 이번 시간에는 데이터 마이닝 분야에서 문서 등 자료형 간의 유사도를 빠른 시간 내에 쉽게 근사하여 비교할 수 있는 Min-Hashing 알고리즘에 대해서 이해해보도록 하겠습니다. 일반적으로 N개의 연속된 단어 집합인 N-gram을 토큰으로 사용하지만, 여기서는 쉬운 이해를 위하여 단어 단위를 토큰으로 가정해보겠습니다. 아래처럼 3개의 문서에서 각각 4개의 단어씩을 포함하고 있는 상황이라고 해보겠습니다. 아래처럼 문서 내 토큰(단어)의 포함 여부를 나타내는 TF 행렬을 생각해볼 수 있습니다. 이제, 이 예시를 기반으로 MinHash 알고리즘을 설명해보겠습니다. 유사도 예시 : Jaccard Similarity 문서 간의 유사도는 어떻게 측정할까요? 여러가지 방법이 ..

아스키(ASCII) 코드 표, 문자열 대소비교 원리

아스키코드 표 C언어 char 문자형 등에서 사용되는 아스키코드 표의 0 ~ 127번까지 해당되는 문자는 아래 표처럼 정리할 수 있습니다. 이중 높은 빈도로 사용되는 문자들은 색깔로 표시해두었는데요. 크게 순서를 정리하면 제어문자 < 숫자 < 영어대문자 < 영어소문자 순서로 위치하고 있는 것을 확인하실 수 있습니다. 이 외에 다른 문자들은 군데군데 사이에 껴있기는 하지만, 비교에서 높은 빈도로 사용되지는 않기에 유의미하게 기억해두실 필요는 없습니다. 0~32번까지는 제어문자라고 특수 기능을 하는 문자들이 매칭되어 있습니다. 물론, 이 문자들에서도 특수 문자를 따로 매칭해주어 출력이 가능하게 해주는 경우도 있다는 점을 참고해주세요. 문자열의 끝을 의미하는 NULL문자는 0번, 공백은 32번에 위치하고 있음..

반응형