본문 바로가기

데이터사이언스

(23)
pycaret을 활용한 간편한 모델 Optimization python에서 가장 많이 사용되는 AutoML 라이브러리 중 하나인 pycaret은 간편하게 여러 모델을 비교하고, 성능을 최적화할 수 있다는 장점을 가지고 있다. 1. tune_model 모델의 하이퍼파라미터를 조정하는 가장 기본적 함수로, K-Fold를 사용한다. 각 Fold가 Validation set으로 사용되었을 때, 와 모든 경우에 평균 Metrics를 출력한다. 최적화 매개변수에 정의된 Metric에 따라 가장 적합한 모델이 선택된다. get_metrics 함수를 사용하여 교차 검증 중에 평가된 Metrics에 접근할 수 있다. 사용자 지정 Metrics는 add_metric 및 remove_metric 함수를 사용하여 추가하거나 제거할 수 있다. from pycaret.regression..
Muzero: 규칙 없이 바둑, 아타리 게임 마스터하기 https://www.deepmind.com/blog/muzero-mastering-go-chess-shogi-and-atari-without-rules MuZero: Mastering Go, chess, shogi and Atari without rules In 2016, we introduced AlphaGo, the first artificial intelligence (AI) program to defeat humans at the ancient game of Go. Two years later, its successor - AlphaZero - learned from scratch to master Go, chess and shogi. Now, in a paper in the journal Na..
Cross-validation 개념과 scikit-learn 예제 https://scikit-learn.org/stable/modules/cross_validation.html 3.1. Cross-validation: evaluating estimator performance Learning the parameters of a prediction function and testing it on the same data is a methodological mistake: a model that would just repeat the labels of the samples that it has just seen would ha... scikit-learn.org scikit-learn 공식 문서의 Cross-validation: evaluating estimator per..
DGL 튜토리얼 - 그래프 만들기와 메세지 전달하기 Deep Graph Library(DGL)은 Pytorch, Tensorflow 등 Deep Learning 프레임워크를 기반으로 만들어진 python 패키지이다. 1. 그래프 만들기 DGL에서 각 노드와 엣지는 그래프에 추가된 순서에 따라 unique한 ID를 가진다. DGLGraph를 만드는 가장 기본적인 방법은 dgl.graph() 메소드를 사용하는 것이다. 이 메소드는 엣지 집합을 입력으로 갖는다. 다음 코드는 아래와 같은 구조를 가지는 그래프를 만드는 예제이다. import dgl import torch as th u = th.tensor([0, 0, 0, 1]) # 출발 노드 v = th.tensor([1, 2, 3, 3]) # 도착 노드 g = dgl.graph((u, v)) print(g)..
Expactation Maximization Expactation Maximization(EM)이란 latent variable(관측되지 않는 변수)가 존재하는 경우, 확률변수의 모수를 측정하는 방법이다. latent variable로 인해 Maximum likelihood estimation(MLE)을 사용하기 어려운 경우에 주로 쓰인다. 먼저 모수를 측정하는 기본적인 방법인 MLE에 대해서 알아보자. 1. Maximum likelihood estimation(MLE) 동전 던지기의 예를 들어보자. 우리의 목표는 동전 A, B에서 각각 앞면이 나올 확률 $\theta_{A}, \theta_{B}$ 를 예측하는 것이다. 동전 던지기는 5개의 sequence로 이루어져 있고, 각 sequence에서는 동전을 10번씩 던진다. i번째 sequence에..
NAS(network architecture search) 개념과 주요 논문 소개 1. NAS란? 딥러닝은 layer나 parameter의 개수를 비롯한 모델 구조에 따라 모델의 성능이 달라진다. task와 data 마다 최적의 구조가 다르기 때문에 주어진 상황에서 어떤 모델을 사용할지 결정하는 것은 어려운 문제다. 이런 문제를 해결하기 위해 주어진 상황에서 최적 모델 구조를 찾는 방법이 Network Architecture Search이다. NAS는 위 그림처럼 3가지 요소로 구성되어 있다. 1) Search Space 알고리즘이 탐색을 수행하는 space이다. layer 수, 각 layer가 수행하는 operation(convolution, fully-connected 등), 각 opration의 hyperparameter(filter 수, kernel size), operatio..
[논문 리뷰] To Federate or Not To Federate: Incentivizing Client Participation in Federated Learning https://baechu-story.tistory.com/61 [논문 리뷰] Mechanisms that Incentivize Data Sharing in Federated Learning 1. 요약 이 논문은 2022 NeuralPS 연합학습 Workshop에서 발표되었다. 논문에서는 연합학습 환경에서 합리적인 행동을 하는 agent(client)를 가정하고, 데이터의 공유를 막는 free-riding 문제를 제시한다. 그 baechu-story.tistory.com 지난 글에 이어 두 번째로 연합학습에서 인센티브 메커니즘을 다룬 논문이다. 1. 요약 클라이언트가 local 모델보다 높은 정확도를 갖는 global 모델을 얻는 것을 incentive로 정의한다. 또한 Incentivce 효과를 측정할..
[논문 리뷰] Mechanisms that Incentivize Data Sharing in Federated Learning 1. 요약 이 논문은 2022 NeuralPS 연합학습 Workshop에서 발표되었다. 논문에서는 연합학습 환경에서 합리적인 행동을 하는 agent(client)를 가정하고, 데이터의 공유를 막는 free-riding 문제를 제시한다. 그리고 계약 이론에서 아이디어를 얻어 free-riding 문제를 막고, 데이터 공유를 최대화하는 accuracy shaping 기반 메커니즘을 제안한다. 2. single agent 문제를 단순화하기 위해 모든 데이터의 가치가 같다고 가정한다. 각 agent는 size가 m인 데이터셋에서 만들어지는 가치함수 v(m) -> [0,1]을 최대화하기를 원한다. 여기서 가치함수 v의 값은 모델의 정확도이다. agent i는 데이터 하나를 생성하는데 $c_{i}$의 비용이 필요하..