728x90
반응형

AI Development 22

하이퍼파라미터 튜닝 후 모델 성능 저하 원인

과적합(Overfitting): 하이퍼파라미터를 너무 세밀하게 조정한 경우, 모델이 학습 데이터에 지나치게 맞추어져서 일반화 능력이 떨어질 수 있다. 이로 인해 새로운 데이터에 대한 성능이 저하될 수 있다.탐색 공간의 오류(Search Space Issue): 하이퍼파라미터 튜닝 시 잘못된 하이퍼파라미터 범위나 값들을 탐색할 수 있다. 예를 들어, 학습률이 너무 낮거나 높게 설정되면 최적화 과정에서 문제가 발생할 수 있다.데이터의 불균형(Data Imbalance): 하이퍼파라미터 튜닝 과정에서 특정 클래스나 패턴에 대한 가중치가 과도하게 조정되어, 모델이 데이터의 일부에만 적응할 수 있다. 이로 인해 전체적인 성능이 저하될 수 있다.과도한 복잡성(Too Much Complexity): 하이퍼파라미터를 ..

AI Development 2024.09.03

하이퍼파라미터 튜닝 외 모델 성능 향상시키는 방법

1. 데이터 전처리(Data Preprocessing)설명: 모델의 성능은 입력 데이터의 품질에 크게 좌우된다. 데이터의 전처리는 모델이 데이터를 더 잘 이해하고 학습할 수 있도록 도와준다.방법:데이터 정규화/표준화: 입력 데이터의 스케일을 맞춰 모델이 특정 특징에 과도하게 의존하지 않도록 한다.결측치 처리: 결측값을 적절히 처리하거나 제거하여 모델의 예측 성능을 저하시키지 않도록 한다.특징 엔지니어링(Feature Engineering): 중요한 특징을 새롭게 만들거나, 불필요한 특징을 제거하여 데이터의 품질을 높인다.효과: 데이터의 품질이 개선되면 모델이 더 잘 학습할 수 있고, 오버피팅(overfitting)이나 언더피팅(underfitting)을 줄일 수 있다.2. 특징 선택(Feature Sel..

하이퍼파라미터 튜닝방법

GridSearchCV, RandomizedSearchCV, 그리고 Bayesian Optimizer는 머신러닝 모델의 하이퍼파라미터 튜닝을 위한 방법들이다. 각 방법은 특정 상황에서 유리하거나 불리할 수 있으며, 이러한 방법들을 비유를 통해 이해하면 더 쉽게 그 차이점을 파악할 수 있다.1. GridSearchCV개념: GridSearchCV는 설정된 하이퍼파라미터의 모든 조합을 일일이 테스트하여 최적의 조합을 찾는 방법이다. 예를 들어, 두 개의 하이퍼파라미터가 있고 각각 3개의 값을 가진다면, 총 3x3=9개의 조합을 모두 시도해 보는 것이다.비유: 축구장에서 골을 넣기 위해 여러 위치에서 슛을 해보는 것과 같다. 모든 위치에서 슛을 해본다면, 가장 정확한 위치를 찾을 수 있다. 그러나 모든 위치에..

SMOTE를 사용할 때, 발생하는 오류

ValueError: Expected n_neighbors  원인 : SMOTE를 사용할 때, 특정 클래스의 샘플 수가 k_neighbors 값보다 적을 때 발생하는 오류k_neighbors는 새로운 샘플을 생성하기 위해 사용하는 이웃의 수를 나타내며, 클래스 샘플 수보다 클 수 없다. 해결방법 : k_neighbors 값을 해당 클래스 샘플 수 보다 작게 설정하거나, 최소 1로 설정하여 문제를 해결smote = SMOTE(random_state=42, k_neighbors=min(5, min_class_samples-1))TypeError: numpy boolean subtract, the '-' operator, is not supported 원인 : 'numpy' 배열에서 부울형 데이터 처리할 때 ..

XGBoost

XGBoost는 "Extreme Gradient Boosting"의 약자로, 머신러닝에서 주로 사용되는 매우 강력하고 효율적인 알고리즘이다. XGBoost는 회귀와 분류 문제 모두에 사용할 수 있으며, 특히 대규모 데이터 세트에서 뛰어난 성능을 보이는 것으로 유명하다. 개념XGBoost는 여러 개의 약한 학습기(보통 결정 트리)를 결합하여 강력한 모델을 만드는 앙상블 학습 기법의 일종이다. 앙상블 학습은 여러 개의 모델을 결합해 더 좋은 성능을 얻는 방법을 의미한다. XGBoost는 특히 그래디언트 부스팅(Gradient Boosting)이라는 앙상블 방법을 사용하며, 이는 각 모델이 이전 모델의 오류를 줄이는 방향으로 학습하는 것을 의미한다.비유XGBoost를 비유하자면, 시험 준비 과정에서의 피드백을..

로짓함수 (Logit Function)

이 함수는 로지스틱 회귀에서 확률을 계산하는 데 사용되며, 주어진 입력 값이 특정 클래스 (예: 1 또는 0)에 속할 확률을 나타낸다.여기서 p는 특정 사건이 발생할 확률을 의미한다.이 수식은 p와 1-p의 비율 (오즈 비율)을 로그 변환한 값이다.로그 변환을 통해 함수의 결과는 실수 전체를 나타낼 수 있게 된다.  유도과정1. 확률의 정의우선, 어떤 사건이 발생할 확률 ppp가 주어졌다고 가정한다. 이 확률은 다음과 같이 표현된다:2. 오즈 비율(Odds Ratio)오즈 비율은 사건이 발생할 확률 p와 사건이 발생하지 않을 확률 1−p의 비율로 정의된다:오즈 비율은 사건이 발생할 가능성과 발생하지 않을 가능성의 비율을 나타내며, 이 값은 0부터 무한대까지의 값을 가질 수 있다.3. Logit 함수 정의..

로지스틱 회귀분석 (Logistic Regression)

1. 로지스틱 회귀의 기본 개념목적: 로지스틱 회귀는 입력 변수(독립 변수)를 사용하여 종속 변수(결과)가 특정 클래스(0 또는 1)에 속할 확률을 예측하는 것이다.출력: 로지스틱 회귀는 특정 사건이 발생할 확률, 즉 종속 변수가 1이 될 확률을 출력한다. 이 확률을 사용해 종속 변수를 0 또는 1로 분류한다.2. 로지스틱 회귀의 수학적 배경로지스틱 회귀의 핵심은 **시그모이드 함수(Sigmoid Function)**를 사용하는 것이다. 시그모이드 함수는 입력된 값이 어떤 범위에 있더라도 0과 1 사이의 값으로 변환해준다.시그모이드 함수:여기서 z는 선형 회귀식으로 표현된다:즉, 로지스틱 회귀에서 예측 확률은 다음과 같이 표현된다:3. 로지스틱 회귀의 해석계수 해석: 각 독립 변수의 계수 βi\beta_..

쟤리 데이터 전처리 할 때 자주쓰는 코드

열 삭제df = df.drop(columns=['B'])df = df.drop(columns=['B', 'C']) null 값 확인df.isnull().sum() 특정값을 가진 행 삭제df = df[df['A'] != 2] 특정범위 값 바꾸기 1# 값 변환 함수 정의def change_value(x): if 20 특정범위 값 바꾸기 2# [20-29] 범위의 값을 2로 변경df.loc[(df['Age'] >= 20) & (df['Age'] = 30) & (df['Age']  특정값 다른 값으로 바꾸기 1df['A'] = df['A'].replace(1, 10) 특정값 다른 값으로 바꾸기 2df['A'] = df['A'].replace({1: 10, 2: 20}) 특정값 포함하면 삭제 # '없음'을 ..

하이퍼파라미터 (Hyperparameter)

하이퍼파라미터는 모델이 학습을 할 때 사용되는 설정값들로, 모델 학습 과정 외부에서 설정되는 변수입니다.모델의 구조나 학습 방식에 영향을 미치는 값들을 의미하며, 이 값들은 학습 과정에서 변경되지 않습니다.예시:학습률(learning rate): 모델이 학습할 때, 가중치(weight)를 얼마나 크게 또는 작게 변경할지를 결정하는 값입니다.배치 크기(batch size): 한 번에 모델이 학습할 데이터의 양을 의미합니다. 예를 들어, 배치 크기가 32라면 한 번의 학습에서 32개의 데이터를 사용하게 됩니다.에포크 수(epoch): 전체 데이터셋을 몇 번 반복해서 학습할지를 결정하는 값입니다.하이퍼파라미터는 모델의 성능에 큰 영향을 미치기 때문에, 적절한 값을 찾기 위해 여러 번 실험을 통해 최적화를 시도..

파인튜닝의 유형

1. 완전 파인튜닝(Full Fine-Tuning)완전 파인튜닝(Full Fine-Tuning)은 사전 학습된 모델의 모든 층을 학습시키는 방법이다. 이 방법에서는 모델의 모든 가중치가 새로운 데이터에 맞게 조정된다. 예를 들어, 이미지 인식 모델에서 사전 학습된 모든 계층을 사용하여 새로운 데이터셋으로 학습을 진행하면, 모델은 기존에 학습한 지식을 활용하면서도 새로운 데이터에 최적화된 상태로 전환된다. 이 방법은 특히 모델이 새로운 도메인에 대해 완전히 적응해야 할 때 유용하다. 2. 부분 파인튜닝(Partial Fine-Tuning)부분 파인튜닝(Partial Fine-Tuning)은 모델의 일부 층만 학습시키고 나머지 층은 고정(freeze)된 상태로 유지하는 방법이다. 예를 들어, 사전 학습된 모..

파인튜닝 (fine-tunning)

파인튜닝(fine-tuning)은 인공지능(AI) 및 머신러닝(ML)에서 매우 중요한 개념으로, 사전 학습된 모델(pre-trained model)을 특정 작업이나 도메인에 맞춰 성능을 향상시키기 위해 추가 학습을 진행하는 과정을 의미합니다. 이 과정을 통해 모델은 일반적인 패턴을 이해하는 것에서 더 나아가 특정 문제를 해결하는 데 필요한 지식을 얻게 됩니다.파인튜닝의 세부 과정사전 학습 모델 선택:일반적으로 대규모 데이터셋으로 학습된 언어 모델(예: BERT, GPT)이나 이미지 처리 모델(예: VGG, ResNet)을 사용합니다. 이러한 모델들은 이미 다양한 일반적인 데이터를 통해 기초적인 언어 또는 이미지 인식을 학습한 상태입니다.예를 들어, BERT 모델은 다양한 텍스트를 학습하여 문법과 문맥을 ..

데이터 증강(data augmentation)

한국어 텍스트 데이터셋의 데이터 증강(data augmentation)은 자연어 처리(NLP)에서 모델의 성능을 개선하기 위해 사용되는 기법으로, 특히 데이터가 부족할 때 유용합니다. 데이터 증강 기법은 원래의 데이터를 변형하여 새로운 데이터를 생성함으로써 모델의 일반화 능력을 향상시킵니다. 아래는 한국어 텍스트 데이터 증강의 주요 방법과 종류입니다.1. 백 트랜슬레이션(Back Translation)설명: 원본 문장을 다른 언어로 번역한 후 다시 한국어로 번역하여 새로운 문장을 생성하는 방법입니다.장점: 문장의 의미를 유지하면서도 다양한 표현을 생성할 수 있습니다.2. 동의어 교체(Synonym Replacement)설명: 문장 내 특정 단어를 같은 의미를 가진 동의어로 교체하여 변형된 문장을 만드는 ..

감정을 분석하고 뽑아낼 수 있는 오픈소스 모델과 라이브러리

1. NLTK (Natural Language Toolkit)설명: NLTK는 파이썬에서 자연어 처리를 위한 강력한 라이브러리로, 기본적인 감정 분석을 지원합니다.특징: 토큰화, 품사 태깅, 네임드 엔티티 인식 등 다양한 NLP 기능을 포함하고 있습니다.사용법: NLTK의 VADER 모듈은 소셜 미디어 텍스트와 같이 간단한 감정 분석에 적합합니다.2. TextBlob설명: TextBlob은 파이썬용 라이브러리로, 감정 분석을 포함한 여러 NLP 작업을 쉽게 수행할 수 있도록 설계되었습니다.특징: 사용이 매우 간단하고, 긍정, 부정, 중립 감정 분석 결과를 쉽게 얻을 수 있습니다.from textblob import TextBlobtext = "I love this product!"blob = TextBl..

형태소 분석 (Morphological Analysis)

형태소 분석은 자연어 처리(NLP)에서 중요한 기술로, 문장을 구성하는 단어를 더 작은 의미 단위로 분해하는 과정입니다. 이 과정은 컴퓨터가 인간의 언어를 더 잘 이해하고 처리할 수 있도록 돕습니다. 이 글에서는 형태소 분석의 개념과 중요성, 다양한 방법, 그리고 실생활에서의 적용 사례를 살펴보겠습니다.형태소 분석의 개념형태소 분석은 단어를 형태소라는 최소 의미 단위로 나누는 과정입니다. 형태소는 의미를 가진 가장 작은 단위로, 예를 들어 '먹었습니다'라는 단어는 '먹(어간)', '-었(시제)', '-습니다(종결어미)'로 나눌 수 있습니다. 이러한 분석을 통해 컴퓨터는 문장의 구조와 의미를 더 잘 이해할 수 있습니다.형태소 분석의 중요성정확한 의미 파악: 단어를 구성하는 각 형태소의 의미를 이해함으로써 ..

토큰화 (Tokenization)

토큰화(Tokenization)는 자연어 처리(NLP)에서 가장 기본적이고 중요한 단계 중 하나입니다. 토큰화는 텍스트를 분석 가능한 단위인 '토큰(token)'으로 나누는 과정입니다. 이 글에서는 토큰화의 개념과 중요성, 다양한 방법, 그리고 실생활에서의 적용 사례를 살펴보겠습니다.토큰화의 개념토큰화는 문장이나 문단과 같은 큰 텍스트 단위를 단어, 구, 문자, 또는 의미 있는 다른 단위로 나누는 과정입니다. 예를 들어, "나는 학교에 간다"라는 문장은 "나는", "학교에", "간다"라는 세 개의 단어로 나눌 수 있습니다. 이렇게 나눈 단위를 토큰이라고 부릅니다. 토큰화는 컴퓨터가 인간의 언어를 이해하고 처리하는 데 필수적인 단계입니다.토큰화의 중요성언어 이해의 기초: 토큰화는 자연어 처리의 기본적인 단..

정규표현식 (Regular Expression)

정규표현식: 텍스트 데이터 처리의 강력한 도구정규표현식(Regular Expression, regex)은 텍스트 내 특정 패턴을 검색하고 조작하는 데 사용되는 강력한 도구입니다. 특히 데이터 분석, 웹 개발, 시스템 관리 등 다양한 분야에서 필수적으로 사용됩니다. 이 글에서는 정규표현식의 기본 개념과 실무에서의 활용 방법을 자세히 설명합니다.정규표현식의 기본 개념정규표현식은 문자열에서 패턴을 찾기 위한 일종의 '검색 언어'입니다. 복잡한 텍스트 검색을 쉽게 구현할 수 있게 도와줍니다. 정규표현식은 다양한 패턴 메타문자를 사용하여 강력한 텍스트 매칭을 가능하게 합니다. 다음은 자주 사용되는 메타문자와 그 의미입니다.. (점): 임의의 단일 문자와 일치합니다. 예: a.c는 'abc', 'a1c', 'a_c..

자연어처리 (NLP) 기초개념

정규표현식 (Regular Expression)정규표현식은 일종의 패턴입니다. 문장에서 특정한 단어나 문자를 찾기 위해 사용하는 도구라고 생각하면 됩니다. 예를 들어, 우리가 '사과'라는 단어를 찾고 싶다면, 정규표현식을 이용해 빠르고 정확하게 찾을 수 있습니다. 마치 '숨은 그림 찾기'에서 특정 모양을 찾는 것처럼 말이죠.용도: 텍스트에서 특정 패턴을 찾거나, 치환하거나, 삭제하는 작업에 사용됩니다.예시: 이메일 주소 찾기, 전화번호 형식 확인 등https://jerrycodezzz.tistory.com/8 정규표현식 (Regular Expression)정규표현식: 텍스트 데이터 처리의 강력한 도구정규표현식(Regular Expression, regex)은 텍스트 내 특정 패턴을 검색하고 조작하는 데 ..

Hugging Face

Hugging Face란?Hugging Face는 자연어 처리(NLP) 분야에서 주로 사용되는 오픈 소스 AI 플랫폼 및 커뮤니티로, 사용자들이 쉽게 머신러닝 모델을 활용하고 연구할 수 있도록 다양한 도구와 서비스를 제공합니다. Hugging Face는 특히 Transformers 라이브러리로 유명하며, 이 라이브러리는 다양한 사전 학습된 트랜스포머 기반 모델들을 포함하고 있습니다.Hugging Face의 주요 기능과 서비스Transformers 라이브러리:BERT, GPT, RoBERTa, T5 등 여러 사전 학습된 트랜스포머 모델들을 쉽게 사용할 수 있는 라이브러리입니다.이 라이브러리는 다양한 NLP 작업(예: 텍스트 생성, 번역, 감성 분석 등)에 사용할 수 있는 모델과 툴을 제공합니다.Datase..

BERT

BERT란?BERT는 Bidirectional Encoder Representations from Transformers의 약자로, Google에서 개발한 자연어 처리(NLP) 모델입니다. BERT는 문맥을 양방향으로 이해할 수 있는 사전 학습된 트랜스포머 모델로, NLP 분야에서 혁신적인 변화를 가져왔습니다.BERT의 특징양방향성:BERT는 문장의 왼쪽과 오른쪽 문맥을 동시에 고려하여 단어를 이해합니다. 이는 기존의 언어 모델들이 주로 한 방향으로만 문맥을 고려하는 것과 대비됩니다. 양방향성을 통해 문장의 맥락을 더 깊이 이해할 수 있습니다.사전 학습 및 미세 조정(Fine-tuning):BERT는 방대한 양의 텍스트 데이터로 사전 학습(pre-training)된 후, 특정 작업에 맞춰 미세 조정(fi..

728x90
반응형