본문 바로가기

AI 공부53

pytorch 오류 RuntimeError: result type Float can't be cast to the desired output type Long y의 텐서가 float의 형태가 아니라 생기는 오류였다.... dtype=torch.float32 추가하면 float형태로 반환된다! 2022. 12. 23.
MLflow 기록해두어야할 정보 Model 소스 코드 Evaluation Metric 결과 사용한 hyperparameters Model 파일 학습에 사용한 data 데이터 전처리용 코드 전처리 된 data 활용한 라이브러리와 버전 개발 환경(OS, 도커) 배포환경(linux, 도커) 기존 머신러닝의 패턴을 찾아서 만든 것이 MLflow이다. 그리고 Model 학습용 코드를 구현하는 사람과 Serving용 코드를 구현하는 사람이 분리되어있어 이를 합쳐주는 역할이라고 볼 수 있다. MLflow은 저장방식이 제각각 다른 것들을 통합하는 툴이라고 볼 수 있다. Experiment Management and Tracking(실험 관리와 트래킹) 머신러닝의 metric, loss 등의 실험 내용들을 추적하여 각 실험들의 내용.. 2022. 12. 19.
TabNet 정리 TabNet이란? TabNet은 정형데이터를 위한 딥러닝으로 DT-based 모델과 DNN의 장점을 계승시킨 모델이다. 특징 1. 전처리가 필요없고, 경사하강법을 사용하여 end-to-end 학습에 유연하게 적용이 가능하다. 2. Sequential attention을 사용하여 feature 선택의 이유를 추적할 수 있게하여 interpretability를 확보했다. 3. 다른 도메인의 회귀와 분류 데이터셋에서 매우 높은 성능을 보인다. 4. 정형 데이터셋에서 비정형 사전학습이 성능을 크게 향상시킬 수 있다. 사용방법 TabNetClassifier나 TabNetRegressor from pytorch_tabnet.tab_model import TabNetClassifier, TabNetRegressor .. 2022. 12. 12.
결측치 채우는 방법 결측치의 종류 1. MCAR(Missing Completely At Random) : 완전무작위 결측 결측치가 다른 변수들과 아무런 상관이 없는 경우를 말한다. 보통 대부분의 결측치 처리 패키지가 MCAR을 가정하고 있다. 결측치가 존재할 때 결측치가 존재하는 데이터를 삭제하거나 결측치가 속해있는 원본 대규모 데이터셋에서 단순무작위표본추출로 대체한다. 예를 들면, 데이터를 입력하는 사람이 깜빡하고 특정 항목의 데이터를 입력하지 않았다거나 전산 오류로 인한 누락 등이 대표적인 경우에 해당한다. 2. MAR(Missing At Random) : 무작위 결측 누락된 자료가 특정 변수와 연관되어 발생하지만 변수의 결과와는 관계가 없는 경우를 말한다. 결측치가 전체 정보를 갖고 있는 변수에 의해 설명이 가능하다... 2022. 11. 24.
평가 지표 1. Accuracy(정확도) Accuracy는 전체 예측 건수에서 정답을 맞힌 건수의 비율 Accuracy의 특징 가장 직관적으로 모델의 성능을 나타낼 수 있는 평가지표이다. domain의 편중(bias)문제가 발생할 수 있다. 예를 들어, 더운 지역에 눈이오는 날 수를 예측한다고 할 때, 모두 '오지 않는다'라고만 분류기를 만들어도 분류기는 상당히 높은 정확성을 보일 것이다. 이처럼 data자체의 domain이 불균형할 경우 문제가 생길 수 있다. 2. Precision(정밀도) / Recall(재현율) Precision의 특징 Precision(정밀도)은 True라고 분류한 것들 중에서 실제로 True인 것의 비율 PPV(Positive Predictive Value) Positive 정답률이라 불.. 2022. 11. 7.
딥러닝 (RNN,LSTM,GRU) 순차적 데이터(sequential data) 순서를 가진 데이터 음성, 동영상, 주식가격 (순서가 중요하다.) 순환신경망(Recurrent Neural Networks) 이전 단계의 처리 결과가 다음 단계에 입력이 되는 형태의 신경망 순서가 있는 데이터를 flatten하면 순서의 의미가 사라지게 된다. 그래서 순환신경망을 사용한다. 순서의 의미도 학습하자 Vanilla RNN Vanilla RNN 문제점 사라지는 경사 (경사소실) 장기 의존 관계를 잘 학습할 수 없음 이전 단계에 입력이 다음 단계에 의미가 없을 수 있다. 동일한 가중치와 tanh로 인해 역전파 시 경사가 소실된다. (ReLu 사용불가 경사가 폭발) LSTM(Long Short Term Memory) 순환신경망의 사라지는 경사 문제를 해결.. 2022. 10. 3.
728x90