본문 바로가기

AI18

Shapley Value 실습 1 (에러 원인과 해결 방안) 현재 회사에서, 그리고 스터디에서 X-AI 를 적용하기 위해 기본 베이스 모델인 Shapley Value를 사용하고 있다.근데,, 계속 에러가 나는 것 아닌가..!! 실패는 성공의 어머니. 왜 에러가 났는 지 그 이유를 하나하나 파고들어보자. 우선 Shapley Value 를 사용하기 위해 pip install shap 을 해준 후, Shap Value를 통해 각 Feature가 모델에 끼치는 영향을 알아보고자 했는데 🤦‍♀️다음과 같은 에러들이 나타났다.1. cudnn RNN backward can only be called in training mode2. Input and hidden tensors are not at the same device, found input tensor at cpu a.. 2025. 5. 3.
Inductive vs Transductive ✅ 인덕티브 (Inductive)새로운 노드나 데이터가 들어와도 예측이 가능함!학습할 때 일반적인 패턴을 배움 (ex. 특정 유저/아이템이 아니라, 유저와 아이템의 특성이나 관계 패턴)그래서 학습에 없던 새로운 유저나 아이템에도 추천 가능함예: GraphSAGE, GAT, MLP, BERT 기반 모델 등🧠 예시 상황"처음 보는 유저가 앱에 가입했는데도, 프로필 기반으로 음식점 추천 가능!"✅ 트랜스덕티브 (Transductive)학습에 사용한 노드들만 예측 가능!새로운 노드에는 예측 불가 ❌학습할 때 특정 노드들 간 관계만 깊게 학습함학습 시 사용된 노드에 대해서는 성능 좋지만, 새로운 노드 추가 시 다시 학습해야 함예: GCN, Matrix Factorization (ex. ALS), Node2Vec.. 2025. 4. 17.
[핵심 머신러닝] Shapley Value (Explainable AI) ※ 고려대 김성범 교수님의  Shapley Value를 듣고 정리한 글출처 : https://youtu.be/f2XqxOny3NA?si=yENiJP4rlkaOqzaf   Explainable AI: 설명 가능한 인공지능- 보통 모델 구조 딥러닝 구조- 입력층 출력층 사이 굉장히 많은 Hidden Layer 가 존재- 예측력은 좋지만 왜 됐는지 설명이 안됨   SHAP (Shapley Additive exPlanations)https://arxiv.org/pdf/1705.07874 SHAP  개념- SHAP는 game theory에 근거하고 있음EX1)  A,B,C,D 중 가장 큰 기여를 한 알파벳은?A + B + C + D = 100A + B + C = 20A + B + D = 80A + C + D = .. 2025. 4. 13.
Clustering 평가 방법 보호되어 있는 글 입니다. 2024. 7. 9.
[Pytorch] Seq2Seq Transformer 실습 ※ 해당 실습 이론은 https://nusnxxy.tistory.com/71 에 포스팅 되어있습니다. 위키북스 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습 서포터즈가 되어 교재 7장 실습 포스팅을 진행하게 되었습니다. 이번 포스팅에선 교재에 나와있는 실습 중, 파이토치에서 제공하는 트랜스포머 모델을 활용해 영어-독일어 번역 모델 실습을 진행하도록 하겠습니다...! 코드가 길기 때문에 위키북스 Git으로 먼저 들어가서 코드를 참조하셔도 좋습니다. git link : https://github.com/wikibook/pytorchtrf 학습에 사용되는 데이터세트는 Multi30k 입니다. https://github.com/multi30k/dataset GitHub - multi30k/dat.. 2024. 2. 4.
[Pytorch] Transformer Transformer Model은 2017년 https://arxiv.org/abs/1706.03762 논문을 통해 소개된 모델입니다. Transformer Model의 주요 기능은 Sequential Processing, Recurrent Connections에 의존하지 않고 입력들 사이의 패턴을 찾아내 병렬로 sequence를 처리합니다. 때문에 Big Data를 처리하기에 매우 효율적인 모델이라 할 수 있습니다. Transformer 모델은 크게 인코더(Encoder)와 디코더(Decoder)로 이루어져 있습니다. 먼저 인코더(Encoder)는, input sequence를 Embedding하여 고차원의 벡터로 변환하는 과정을 거칩니다. 디코더(Decoder)는, 인코더의 출력을 입력으로 받아 출력.. 2024. 1. 28.
[Pytorch] 가중치 초기화(Weight Initialization) 💡 가중치 초기화 : 모델 초기 가중치 값을 설정 : 초기 가중치에 따라 모델을 최적화 하는 데 많은 어려움을 겪을 수 있음 💡 가중치 초기화 방법 1. 상수 초기화 - 가중치를 모두 같은 값으로 초기화 - 구현이 간단하고 계산 비용이 거의 들지 않음 - 대칭 파괴(Breaking Symmetry) 현상 발생 * 대칭 파괴 ** 예를들어 가중치 값을 모두 0으로 할당하면 역전파 과정에서 모든 가중치가 동일한 값으로 갱신 - 스칼라값을 입력으로 받는 매우 작은 모델이나 퍼셉트론에 적용 - 주로 0 or 0.01등의 형태로 초기화 2. 무작위 초기화 - random 값이나 특정 분포 형태로 초기화 * Random, Unifom Distribution, Normal Distribution, Truncated .. 2024. 1. 16.
[Pytorch] train(), eval(), torch.no_grad()의 차이점 model.train() * Dropout Layer 활성화 * Batch Normalization Layer 활성화 model.eval() * model.train(False)와 동일한 기능 * evaluation mode로 바꿔주어 Dropout Layer 비활성화, Batch Normalization Layer는 훈려중에 계산된 통계값(평균, 분산의 이동평균)을 사용하게 함 ** Batch Normalization : 각 batch 별로 평균, 분산을 이용하여 정규화 torch.no_grad() * Gradient 계산을 비활성화 -> 메모리 사용량을 줄이고 계산 속도를 빠르게 만들 수 있음 -> 최근엔 torch.inference_mode()를 주로 사용 즉, train()과 eval()은 Lay.. 2023. 8. 26.
[Django / Postgresql ] 이름의 릴레이션(relation)이 없습니다. Django의 db를 postgresql로 바꾸기 위해 settings.py 에서 Database의 설정을 바꿔주고, db.sqlite3을 지운 다음 각 앱에 있는 migrations들을 다 지워주었다. 이후 서버를 켰는데 다음과 같은 에러가 떴다. Django DB설정을 처음 했기에 왜 저런 문제가 발생한 건지 감도 안 잡혔고, 또 makemigrations를 해줘도 아무것도 변경된 게 없다 나오지만, migrate를 하니 다음과 같이 떴다. 또 snsapp은 앱 이름이고 freepost는 모델 클래스(테이블)인데..? snsapp_freepost 로 릴레이션이 형성되나? 하고 pgadmin을 켜보니 snsapp_freepost라는 테이블 이름은 없었다.. 열심히 구글링을 하긴 했는데... 사실 아직도.. 2022. 7. 27.