AI (7) 썸네일형 리스트형 [NLP] NLP 최신 모델 비교 분석 Model 비교 GPT Generative Pre-trained Transformer Transformer base의 최초 논문 이전 단어를 바탕으로 다음 단어를 예측하는 방법으로 훈련된다. 문맥파악에 약점이 있다. BERT Bidirectional Encoder Representations from Transformers Masked 된 단어를 예측하는 양방향 (문맥) 바탕 예측으로 훈련된다. NSP를 도입하여 문장간의 관계도 학습할 수 있다. : Nest Sentence prediction을 바탕으로 자연스럽게 문맥을 파악할 수 있다. Bert 기반 모델 RoBERTa(19년) - FaceBook A Robustly Optimized BERT Pretraining Approach Bert의 고정된 M.. [AI 개발 환경 세팅] Anaconda (Linux 개발환경 세팅) Anaconda는 python 라이브러리 관리를 위한 도구입니다. 주로 AI를 처음 공부하기 시작한 분들에게는 불필요하다고 생각할 수도 있지만, 로컬에 pip install 을 통한 python package 설치는 의존성이 자주 불안한 경우가 많습니다. 특히 다양한 논문들을 읽으며 직접 구현해볼때 특히 python 패키지가 문제가 되는 경우가 종종 있는데요. 이를 체계적이고 간편하게 관리하기 위해 필요한 것이 "Anaconda"입니다. 리눅스 환경에서 아래 wget 명령을 통해 쉽게 설치할 수 있습니다. wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh chmod +x Anaconda3-2019.10-Linux-x86_64.. [AI basis] Gradient Clipping 이란? Gradient Clipping의 단어를 먼저 분석해보자. 처음 이 단어를 접했을 때 cliff(절벽)의 의미로 clipping을 잘못 착각했는데 clip이라는 단어가 우리에게 익숙하기도 하면서 한국에서 자주 쓰이지 않는 의미를 의외로 가지고 있기 때문이라고 생각한다. clip 1. (클립으로) 고정하다. 2. (가위같은 것으로) 깎아내다. 이 단어를 처음 제시한 사람이 어떤 생각으로 제시했는지는 모르지만 두가지 뜻 모두 해석될 수 있는 여지가 있다고 생각한다. 첫번째 뜻으로 해석하면 "분포한 Gradient를 클립으로 찝어주는 것이다" 두번째 뜻으로 해석하면 "분포한 Gradient에서 (범위가 벗어난 gradient를) 깍아 내는 것(크기를 줄이는 것)이다. 굳이 한가지 뜻을 고르자면 첫번째 뜻이 가.. [AI basis] Norm 에 대해 알아보자 선형대수에서 "Norm"은 벡터의 길이, 크기(magnitude)를 측정하는 함수를 의미한다. Norm의 입력은 "vector" 출력은 "단일 값"이다. 이는 시각적으로 표현하면 원점에서 벡터까지 다양한 방법으로 측정할 수 있는 거리를 의미한다. $$ L_p = (\sum_i^n |x_i|^p)^{1/p}$$ 이때 n은 벡터의 요소 수(차원)을 의미하고 p는 Norm의 차수를 의미한다. Norm은 Norm의 차수 p에 따라 여러가지 이름으로 불리는데 대표적인 3가지를 소개하려고 한다. 바로 L2 Norm, L2 Norm, Maximum Norm이다. 1. L1 Norm (Manhatton Norm) L1 Norm은 Norm의 차수가 1인 함수를 의미한다. $$ L_1 = \sum_i^n |x_i| $$ .. [AI basis] MLP(Multi layer perceptron)란? 먼저 Perceptron이란 "두뇌의 인지 능력을 모방하도록 만든 인위적인 네트워크"를 의미한다. (Single) Perceptron은 순입력 함수(net input)와 활성 함수(activation function)으로 이루어져 있다. 활성함수는 개념적으로 임계값을 넘어가면 출력하는 함수를 의미한다. Single Perceptron에서는 활성 함수로 항상 step function을 사용한다. MLP의 구조는 한개 이상의 (single) perceptron으로 구성된 Layer로 구성된다. 하지만 이 Layer 자체에 activation function을 추가하면 하나의 Layer도 하나의 perceptron처럼 동작하는 것을 알 수 있다. 그래서 MLP에서는 이런 Layer를 하나의 perceptron.. [AI basis] Low-rank approximation Factorization은 무슨 결과를 낼 수 있을까? Matrix decomposition은 하나의 큰 matrix를 factorization한다고 할 수 있다. 예를 들어 3 X 3 행렬을 3 X 1, 1 X 1 행렬의 곱으로 표현할 수 있다면 우리는 효율적으로 matrix를 저장할 수 있다. 이를 위한 대표적인 2가지 decomposition 방법에 대해 알아보고자 한다. 1. Eigenvalue Decomposition(고유값 분해) 임의의 정사각행렬 A에 대해 $$ Ax = \lambda x$$ 를 만족하는 $\lambda$를 고유값(eigen value)이라고 하고 $x$를 고유 벡터(eigen vector)라고 한다. 이때 eigen value와 eigen vector의 쌍은 유일하지 않기 .. [AI basis] Stochastic Gradient Descent( 확률적 경사 하강법) 먼저 xi (input data, 총 N개) 에 대해서 Loss function을 다음과 같이 가장 간단하게 정의할 수 있습니다. $$L(W) = \sum_{i=1}^{N} L_i(f(x_i, W), y_i)$$ 우리는 Weight를 Loss 값이 감소하는 방향으로 업데이트를 해야한다. 따라서 우리는 Weight에 대한 Loss function의 gradient값의 "반대 방향"으로 $$W * Step size(= Learning rate )$$만큼 업데이트 하는 방법을 논리적으로 생각할 수 있다. 이런 방법을 "(Batch) Gradient Descent"라고 한다. 이때 Batch는 일괄적으로 처리되는 집단을 의미하며 여기서는 전체 Input data 집단을 의미한다. 하지만 Gradient를 계산할.. 이전 1 다음