본문 바로가기
반응형

Bigdata47

선형 회귀, 다항 회귀(Linear regression, Polynomial Regression) 알고리즘 특징과 코드 선형 회귀와 다항 회귀는 머신러닝에서 K-최근접 이웃점 회귀과 함께 기본적으로 배우게 되는 머신러닝 모델이자, 성능이 좋은 모델이라고 할 수 있다. 특히 K-최근접 이웃점 회귀과 다르게 미래를 예측할 수 기능을 가지고 있다. K-최근접 이웃점 회귀 는 미래의 데이터를 예측하는데에는 사용하기 어렵다. 이유는 학습 데이터의 평균으로 예측을 하기 때문에, 만약 측정되지 않은 값이 들어온다면, 예측이 되지 힘들어진다. K-최근접 이웃 회귀(KNN Regression) 알고리즘 특징과 코드 (asecurity.dev) K-최근접 이웃 회귀(KNN Regression) 알고리즘 특징과 코드 k-최근접 이웃 회귀(KNN Regression)은 새로운 데이터의 출력 값을 예측하기 위해 훈련 데이터의 출력 값과 가장 가.. 2023. 9. 19.
머신러닝 - 결정계수와 과대/과소적합 결정계수(R) 머신러닝에서 결정계수는 대표적인 회귀 문제의 성능 측정 으로 사용된다. 결정계수를 사용하는 이유는, 회귀의 테스트를 진행할 때 정확 한 숫자를 맞추기는 어렵기 때문에, 예측값과 목표값의 평균을 통해 예측값이 목표값에 얼마나 가까운지를 확인하여 평가하게 된다. 공식은 복잡해 보이지만, 예측값과 실제 값의 차이를 1과 0 사이의 값으로 표현한 것이라고 이해하면 좋을 듯 하다. 1에 가까울 수록 좋고, 0에 가까울 수록 성능이 나쁜 모델이라고 할 수 있다. 과대/과소적합 과대적합과 과소적합은, 훈련 세트와 테스트 세트간 문제점을 얘기할 때 많이 사용되는 용어이다. 과대적합은 학습 데이터가 복잡해지면 발생할 수 있는데, 이유는 학습 데이터의 모든 세부 사항을 학습하게 되는데, 이렇게 되면 학습 데.. 2023. 9. 4.
K-최근접 이웃 회귀(KNN Regression) 알고리즘 특징과 코드 k-최근접 이웃 회귀(KNN Regression)은 새로운 데이터의 출력 값을 예측하기 위해 훈련 데이터의 출력 값과 가장 가까운 k개의 데이터를 사용합니다. k는 사용자 설정 매개변수이며, 값이 작을수록 더 많은 데이터를 고려하게 되고, 값이 클수록 더 적은 데이터를 고려하게 됩니다. k-최근접 이웃 회귀 알고리즘은 훈련 데이터에서 새로운 데이터와 가장 가까운 k개의 데이터를 찾아서, 해당 k개의 데이터의 출력 값을 평균하여 새로운 데이터의 출력 값을 예측하는 방식이다. k는 예측에 사용된 최근접 이웃 갯수로 만약 3개으로 하였다면, 3개의 최근접 이웃의 데이터를 통해 값을 예측한다. y(x) = \frac{\sum_{i=1}^k y_i^k}{k} - y(x)는 새로운 데이터 x의 출력 값을 예측한 값.. 2023. 9. 3.
RNN 단점 - 기울기 소실(vanishing gradient)과 장기 의존성 문제(long-term dependency problem) RNN의 단점으로 지적되는 기울기 소실, 장기 의존성 문제은 Sigmold Activation Function과 관계가 있고 RNN에서 닥 시계열 데이터를 입력할 때 기울기를 위해 Sigmoid Activation을 진행하는데, 아래 그림과 같이 올라가거나 내려갈수록 점점 1혹은 0과 큰 차이가 없어진다는 것이다. 기울기 소실(vanishing gradient): RNN은 입력과 출력 사이의 연결이 순환 구조로 되어 있기 때문에, 역전파를 통해 가중치를 업데이트할 때 기울기가 점차 소실되었어. 기울기가 소실되면, 가중치가 제대로 업데이트되지 않아 학습이 어려워 진다 장기 의존성 문제(long-term dependency problem): RNN은 과거의 정보를 기억하고 이를 바탕으로 현재의 정보를 처리하.. 2023. 9. 1.
딥러닝 - 텐서(Tensor)란? 텐서(Tensor)는 기본적으로 가장 임베딩전 특정 인덱스(Index)로 만들어진 다차원의 배열(array)로 이루어진 데이터 형태를 말한다. 여기에서 인덱스란 데이터를 컴퓨터가 이해할 수 있도록 변환된 값과 매칭되는 키라고 할 수 있다. 텐서는 배열을 표현하는 방식을 수학적으로 접근하여 얘기하는 것이고, 이를 프로그램 입장에서는 다차원(여러 차원)을 가진 배열이라고 할 수 있다. 그리고 텐서는 배열의 형태에 따라 다음과 같이 불리울 수 있다.RankType(타입)예0scalar(스칼라)[1]1vector(벡터)[1,1]2matrix(메트릭스)[[1,1],[1,1]]33 tensor[[[1,1],[1,1]],[[1,1],[1,1]]]nN tensor 위에 우리가 알고 있는 스칼라, 벡터들이 이 배열을 타.. 2023. 8. 30.
Σ σ, ς / 시그마(sigma) - 뜻과 읽는법 ∑(시그마)란 그리스 문자 중 S를 나타내는 대문자로, 합을 표현하기 위해 만들어진 수학적 기호이다. 수열의 합을 전에는 Sum의 약자인 S(n) 이런 식으로 사용했는데, 수열의 Sn은 수열의 제1항부터 제n항까지의 합을 의미한다. Sum은 2항부터 n항이라던지, 변수 n에 대하여 3항부터 k항까지의 합을 표현하기가 어려운 문제가 있다. 그래서 ∑(시그마)가 만들어 졌다. 시그마의 아래에는 ❶에서 항의 시작하고 시그마의 위에는 ❷ 항의 끝을 표시한다. 그리고 시그마의 오른쪽에 ❸ 항을 더할 대상(또는 일반항)을 표시하면 원하는 합을 표시할 수 있습니다. 그림으로 표현하면 아래와 같다. 위 시그마의 의미는 k=1부터 시작해서 k=n까지 F(k)에 대입하여 더하라는 의미이다. 즉 계식으로 표현하면, F(1).. 2023. 8. 29.
PEFT(Parameter Efficient Fine-Tuning) - LoRA, QLoRA LoRA는 GPT와 같은 Large Language Models(LLM)을 특정 task에 fine-tuning(미세조정)하는 데 있어서 time, resource cost가 너무 크다는 단점을 해결하기 위해 제안된 방법으로 기존 모델의 Pre-trained weights는 그대로 두고 Dense layer의 Weight을 Low rank로 Decomposition한 Matrices만을 Optimization하는 것이라고 할 수 있다. 이를 통해 학습 시간과 하드웨어의 비용을 크게 절약할 수 있다. 성능을 유지하면서 최소한의 인프라로 모델을 미세 조정할 수 있는 PEFT(Parameter Efficient Fine-Tuning)라는 효율적인 기술에 최근 관심이 깊어지고 있다. 특히 기존에는 기업에서만 L.. 2023. 8. 25.
LLM - Full fine-tuning GPT 계열 공식 이해 LLM의 경우 확률 모델로 보통 GPT 계열인 경우 다음 단어를 맞추는 Autoregressive 한 모델이라고 할 수 있다. (순차적으로 계속적으로 다음 단어의 확률을 맞추기 때문에 점진적으로 연결되는 자동 회귀 같다고 하여 Autoregressive라고 한다.) 그리고 아래 공식은 LLM의 Full fine-tuning 을 일반화한 공식이다. x,y 는 전체 데이터를 의미하며, t는 타임으로 단어 전, 후와 같은 순서를 의미한다. 2023. 8. 25.
Gaussian Error Linear Unit (GELU) 수식 - Python 코드 Gaussian Error Linear Unit (GELU)의 activation 수식 Gaussian Distribution을 다음 수식으로 위 수식의 복잡도를 낮추어 아래와 같이 근사(Approximation) 수식을 활용한게 된다. 근사(Approximation) 수식을 코드로 구현하면 다음과 같다. import math import tensorflow as tf cdf = 0.5 * (1.0 + tf.tanh( (math.sqrt (2 / math.pi) * (x + 0.044715 * tf.pow(x, 3))))) 2023. 8. 21.
반응형