전체 글 123

[LLM] LangGraph 개념

핵심 장점사이클 지원 : NetworkX 그림에서 볼 수 있듯 이전 노드로 복귀하는 방식이 가능*NetworkX는 그래프 시각화 라이브러리세밀한 제어 : Autogen CrewAI보다 Wrapping된 코드가 적다. 즉 더 자유로운 커스터마이징 가능특징휴먼 인 더 루프 : 그래프를 구성할 때 사람이 개입해야 하는 부분이 있으면 사람이 개입하는 노드를 만들기도 쉬움 크게 노드(Node), 엣지(Edge), 에이전트(Agent) 세 가지로 구성할 수 있음장표의 그래프 이미지는 LangGraph Studio가 내가 작성한 LangGraph를 시각화해주는 도구. 실제 런타임 환경에서 어떤 노드가 활성화 되고 있는지도 관찰할 수 있다고 함흐름__start__ 노드에서 시작 액션을 주면 agent 노드가 actio..

Data Science/LLM 2025.07.26

[Machine Learning] eXplainable AI - LIME

LIME의 정의Local : 특정 Y란 종속변수 Y가 가질 수 있는 특정 값. 예를 들어 Classification이라면 A,B,C 중 특정 값인 AModel-agnostic : 알고리즘이 아니라 Method이기 때문에 모든 모델에 적용 가능 LIME의 기본 개념1) ImageModel에서 알아내고 싶은 것 : 이미지에서 어떤 부분을 보고 frog라고 예측한 걸까?LIME ProcessOriginal Image를 Model에 넣었을 때 54% 확률로 frog라고 예측함Purturbed InstancesOriginal Image를 특정 부분만 남겨놓고 마스킹 같은 Noise를 준다Purturbed Instance를 모델에 넣어 예측 확률을 기록함Original Image 보다 높은 확률로 frog로 예측한..

[Machine Learning] eXplainable Method

OverviewDeep Learning, Ensemble 계열은 Model Complexity가 높은만큼 성능이 좋다.Linear Model, Decision Tree는 Model Complexity가 낮아 성능은 떨어지지만 설명력이 좋다.RF 등 Tree 앙상블 모델은 Feature Importance Score는 구할 수 있지만, Decision Tree처럼 Input에 대한 예측값이 나오는 규칙은 해석할 수 없다.Deep Explnation : Deep Learning Model의 신경망 네트워크 안에서 무엇이 일어나는지를 떼어서 생각할 수 있게끔 하는 설명가능 AI를 구축하는 방법Interpretable Models : 해석 가능한 모델들. Decision Tree 등Model Induction ..

[Machine Learning] Tree 계열 알고리즘 - XGBoost

1. XGBoost 기본 개념앙상블 알고리즘 발전의 역사Boosting에서는 Adaboost가 초기 모델이다XGBoostOptimized Gradient Boosting algorithm : Gradient Boosting(GBM)을 최적화한 것 (알고리즘적 차이 없음)through parallel processing : Sequential하게 학습하는 Boosting 모델이지만 병렬 처리가 가능! (학습속도 획기적 감소)handling missing value : missing value가 있어도 학습 가능XGBoost부터 현업에서 많이 사용하는 알고리즘Computing 적으로 병렬 학습이 지원되도록 구현함강사가 잘 모르고 설명하는듯XGBoost와 GBM 비교항목GBMXGBoost정규화 (Regular..

[Machine Learning] AdaBoost

PreviewAdaBoost = Adaptive + BoostingBoosting 기법의 초기 모델이며 Overfitting의 문제로 좋은 성능을 내지는 못함. 이후로 발전된 GBM(Gradient Boostring Machine) 패밀리 알고리즘(XGBoost, LightGBM 등)의 시초 역할을 함AdaBoost도 Feature Importance score가 나옴 Boosting은 Bias를 줄여주는 것Boosting : 잘못 맞춘 데이터(mis-classified records)에 집중하여 training data의 분배를 변경하는 것Sequential한 과정(그림)INITIAL DATASET, TREE : 최초 데이터로 학습NEW SET OF DATA, ANOTHER TREE : 학습된 트리로 ..

[Classification] Random Forest

1. Random Forest 원리1.1. 개념2001년도에 만들어진 Random Forest가 현재 우리가 학습하는 모델Two ways to increase the diversity of ensemble다양성을 높이기 위해 두 가지 방법을 사용함Randomly sample the training data D with replacement to produce DiBootstrap 기법을 의미함(복원 추출)Randomly select x% of the possible splitting features in N변수 N개 중 x% 개수 만큼 랜덤하게 추출함x = 하이퍼 파라미터Tree는 작은 Bias와 큰 Variance를 갖기 때문에작은 Bias = Decision Tree는 순도 100%를 만들 수 있기 ..

[LLM] RAG - Chunking

1. Chunking1.1. 개념청킹이 반드시 단어 단위로 떨어지는 건 아님입력 데이터의 크기에 대한 제한 : LLM 모델에서 질문을 할 때 토큰 제한(질문의 길이)을 말함처리 시간 단축 : 긴 문장보다 짧은 단어 위주가 처리 시간이 더 짧다고 함Splitting = Chunking : 문장을 쪼개는 과정1.2. chunk_size, chunk_overlapchunk_size한 chunk의 크기 (길이에 따라 단어가 될수도, 문장이 될수도)chunk_overlap전체 문장을 chunk로 나눴을 때 앞 chunk와 뒤 chunk의 겹치는 부분.chunk를 자르다보면 chunk_size 때문에 앞, 뒤 어느쪽에도 포함되지 않는 내용들이 발생할 수 있다. 이를 방지하는 것. 1.3. chunk_size, ch..

Data Science/LLM 2025.04.13

[Machine Learning] Ensemble 개념, 종류, Voting 방식

Ensemble(앙상블) 개요 연구 결과 앙상블은 거의 항상(almost always) 더 좋은 결과를 만들어낸다는 것이 수식적으로 증명됨계산 결과, E_ensemble은 E_avg보다 작거나 같음을 증명. 즉, 앙상블 모델의 Error가 단일 모델의 Error보다 항상 같거나 작음. 실험 결과, 앙상블 계열 알고리즘의 분류 성능이 높게 나타남 (SVM은 앙상블 아님) 양쪽 그래프 모두 같은 데이터를 다른 차트 형식으로 표현Y축은 Number of Defaulters Missed = 신용평가에서 실제로 연체(Default)할 사람인데, 모델이 정상(=연체하지 않을 것)이라고 잘못 예측한 사람 수 = False NegativeX축은 앙상블 모델의 수. 1은 단일 모델.해석 : 모델을 늘려갈수록 False..

Data Science 2025.04.10

[FastAPI] FastAPI 설치, Request

1. Fast API의 이해- Restful API를 구축하기 위한 파이썬 웹 프레임워크- Pydantic - Pydantic = 파이썬 타입 검증 + 자동 변환기 + 모델 생성기 - Pydantic은 Python에서 데이터 유효성 검사(Validation) 와 직렬화(Serialization) 를 쉽게 해주는 데이터 모델링 라이브러리야. - 특히 FastAPI와 함께 많이 쓰이고, 요즘 Python 프로젝트에서 표준처럼 자리잡고 있어.- Gunicorn (Green Unicorn) = Python WSGI 서버 - Python 웹 프레임워크를 운영 환경에서 실행하게 해주는 생산용 웹 서버 - 병렬 처리, 멀티 프로세스 지원 → 트래픽 처리가 가능해짐 - 비동기 처리는 불가능함- ASGI -..

Data Science/Python 2025.04.10

[Data Science] Classification Model 평가 및 지표 해석

Class Imbalance가 높을때 Accuracy는 믿을 수 있는 평가 지표가 못된다예) 900개 A, 100개 B가 있을 때 Model을 통해 1000개 전부를 A로 분류했다면, 900/1000 = 90% 확률의 정확도를 가졌다고 평가할 수 있다. 하지만 B는 단 한개도 못맞춘 모델이 된다.따라서, Class가 Imbalnce한지 살펴봐야 한다 False Negative가 False Positive보다 낫다 (의학 판정, 불량률) Accuracy는 Acc라고 많이 표현함. Class Balance가 좋으면 Accuracy로도 성능을 잘 나타낼 수 있다19페이지 장표의 Confusion Matrix와 다르게 가로축이 예측, 세로축이 실제임의학 판정, 불량률을 보는 공정에서 민감도(Sensitive)..