ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : Deep Learning (1/2)
    Computer Science/ML, DL 2021. 4. 6. 11:26
    728x90

    ** 순서는 무의미합니다.

     

    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

     

    Knowledge : Deep Learning (2/2)

    ** 순서는 무의미합니다. deep-learning 머신 러닝의 한 분야 이름에서 알 수 있듯, 딥, 즉 여러 개의 층(layer)에서 점진적으로 학습하는 것 overfitting 1. 학습 데이터에 너무 최적화를 해서,

    kxmjhwn.tistory.com

     

    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

    댓글

kxmjhwn@gmail.com