-
CS : Deep Learning (1/2)Computer Science/ML, DL 2021. 4. 6. 11:26728x90
** 순서는 무의미합니다.
attention mask
학습 시간의 효율을 위해, 패딩된 부분을 attention 구조에 통과시키지 않도록 함
값이 있다면 1, 패딩 부분이라면 0
0 부분은 bert 모델에서 attention을 수행하지 않게 된다.
embedding
자연어 처리에서 특징을 추출하기 위해 수치화, 벡터화 해주는 과정
tokenizing
자연어 처리에서 텍스트의 전처리 과정에서 사용됨
일상 언어를 컴퓨터가 이해할 수 있도록 '의미 있는 가장 작은 단위(토큰)'로 나누는 과정
padding
텍스트에 대해 embedding 처리 후, 텍스트의 길이를 max_len으로 동일하게 변환
빈 공간에 대해 0으로 채우는 작업padding을 하지 않으면, 가장자리에 대한 정보가 유실될 수 있기 때문에, max_len으로 통일하여 작업한다.
pooling
mask의 크기를 줄이거나 특정 부분을 강조하는 것
tensor
1.
번역하자면 '다차원 배열'
- (a) list에 값을 순서대로 넣음 -> 1차원 배열 -> 1차원 텐서
- (b) a를 또 다른 list에 넣음 -> 2차원 배열 -> 2차원 텐서
- (c) b를 또 다른 list에 넣음 -> 3차원 배열 -> 3차원 텐서
2.
텐서를 다룰 때 사용되는 라이브러리가 pytorch, numby, tensorflow 등이다.
3.
그렇다면, python에서 다차원 배열을 다룰 때, list 타입이 아닌 tensor 타입을 쓰는 이유 ?
- python 특성 상, 기본 숫자 길이를 8바이트로 잡는다.
- 데이터 양이 많다면, 다른 언어에 비해 이러한 특징은 비효율적
- 또한, list 타입을 사용한다면 list 원소들이 따로따로 메모리에 저장되는데, 텐서는 인접한 메모리에 같이 저장됨
- 마지막으로, 텐서는 storage 개념을 사용하여 인덱싱한다.
parameter VS hyper parameter
가장 큰 차이 : parameter는 결정'되는' 값이고, hyper parameter는 사용자가 결정'하는' 값이다.
1. parameter
- 한국어로 '매개변수'
- 모델 내부에서 결정되는 변수
- parameter는 데이터로부터 결정되는 값이다.
- 예 : 한 학년의 학생 n명의 키에 대한 정규분포를 그리면, 평균과 표준편차 값이 계산된다. 이 때 평균과 표준편차는 '키'라는 데이터로부터 계산된 parameter이다.
2. hyper parameter
- 모델링 시, 사용자가 직접 세팅하는 값
- 종류
종류 설명 비고 학습률
(Learning Rate)gradient의 방향으로 얼마나 빠르게 이동할 것인지 결정하는 변수 – 너무 작으면 학습의 속도가 늦고,
너무 크면 학습 불가손실 함수
(Cost Function)입력에 따른 기대 값과 실제 값의 차이를 계산하는 함수 – 평균 제곱 오차
– 교차 엔트로피 오차정규화(일반화) 파라미터
(Regularization parameter)overfitting 문제 회피 위해 L1 또는 L2 정규화 방법 사용 – 사용하는 일반화 변수도
하이퍼 파라미터로 분류미니 배치 크기
(Mini-batch Size)배치셋 수행을 위해 전체 학습 데이터를 등분하는(나누는) 크기 – 가용 메모리 크기와
epoch 수행 성능을 고려훈련 반복 횟수
(Training Loop)학습의 조기 종료를 결정하는 변수 – 학습 효율이 떨어지는 시점을
적절히 판단은닉층의 뉴런 개수
(Hidden Unit)훈련 데이터에 대한 학습 최적화 결정 변수 – 첫 Hidden Layer의 뉴런 수가
Input Layer 보다 큰 것이 효과적가중치 초기화
(Weight Initialization)학습 성능에 대한 결정 변수 – 모든 초기값이 0일 경우
모든 뉴런이 동일한 결과batch size
한 번의 학습에 사용될 데이터의 크기
데이터 수 : 1000, batch size : 500 -> 총 2회의 학습에 걸쳐 전체 데이터를 학습함
epoch
학습 데이터를 모두 한 번씩 학습시킨 횟수
epoch=10이면, 학습 데이터를 총 10회 학습 시킨 것
optimization
학습 과정에서 실제로 변수를 갱신시키는 과정
학습 속도를 빠르고 안정적이게 해준다.
매개변수가 최적의 값을 찾아가는 방법이 여러가지인데, 이렇게 최적값을 빠르게 찾아가는 과정을 최적화(optimization)이라고 한다.
다음 글 : kxmjhwn.tistory.com/279?category=1196626
728x90'Computer Science > ML, DL' 카테고리의 다른 글
CS : Deep Learning (2/2) (0) 2021.04.10 CS : BERT (2/2) (0) 2021.04.09 CS : YOLO v5 (0) 2021.04.09 CS : BERT (1/2) (0) 2021.04.07