AI & Data 22

[머신러닝] 앙상블 (Ensemble)

앙상블이란?앙상블 기법이란 여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 더 좋은 최종 예측을 도출하는 기법을 말한다. 앙상블 학습의 목표는 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 예측 신뢰성을 높이는 것이다.  1. Voting앙상블 기법에는 여러 가지 알고리즘이 있는데, 우선 보팅(Voting) 알고리즘부터 살펴보자. 보팅이란 서로 다른 알고리즘을 가진 분류기가 동일한 데이터셋을 가지고 각자 예측을 수행하여 최종 결과를 결정하는 방식이다. 이때, 각 분류기가 예측한 결과를 가지고 '투표' 방식으로 최종 결과를 결정하기 때문에 Voting이라고 불린다. 이 투표 방식에는 두 가지 방식이 있는데, Hard Voting과 Soft Voting이 있다.1.1. Hard Votin..

[딥러닝] Gradient Descent (경사하강법)

1. ML as an Optimization Problem기계학습이 해야 할 일을 식으로 정의하면, 주어진 cost function $J(\theta)$에 대해, $J(\theta)$를 최소로 하는 $\hat{\theta}$를 찾는 것.$$ \hat{\theta} = argmin_{\theta}J(\theta)$$ 2. Iterative Optimization2.1 General PrinicplesTraining Dataset $D$Model & Predicted Output: $\hat{y} = h_{\theta}(x)$Cost Function : $J(\theta)$1) 파라미터 $\theta$ 초기화2) 모든 epoch에 대해출력값 $\hat{y}$ 예측, cost $J(\theta)$ 계산하기만약..

[머신러닝] 분류 (Classification)

1. 분류 (Classification) 분류분석이란? 지도학습 기법 중 하나로 독립변수(Feature)를 통해 정답(Label)이 어떤 특정 카테고리로 분류될 것을 예측하는 기법을 말한다. 이때, Target Data의 자료는 주로 범주형에 속하고, 독립변수들 간의 관계를 분석해 Target Data의 각각의 데이터가 어떤 범주에 속할 지 예측한다. 위 그림에서 말하는 클래스(Class)가 바로 범주이며, 데이터의 종류에 따라 다양한 클래스를 가질 수 있다. 성별 Class : {Male, Female} 생존 여부 Class: {'0' : 생존, '1' : 사망} 분류의 종류 이름 설명 나이브 베이즈 Naive Bayes 베이즈 통계와 생성모델에 기반한 분류 로지스틱 회귀 Logistic Regress..

[강화학습] 4. Bellman Equation

Value Functions (가치 함수) 가치 함수는 각 상태 $s$(또는 상태-행동 쌍$(s; a)$)의 퀄리티를 측정합니다. 이때, 정책 $\pi$에 대한 기대 보상은 $G_t$를 따른다. State-Value Function (상태-가치 함수) $v_{\pi}(s)$ 정책 $\pi$를 따랐을 때 특정 상태 $s에서 시작하는 기대 반환을 나타냄 $v_{\pi}(s) = \mathbb{E}_{\pi} \left[ G_t | S_t = s \right]$ Action-Value Function (행동-가치 함수) $q_{\pi}(s,a)$ 상태 $s$에서 행동 $a$를 취하고 이후 $\pi$를 따라갔을 때의 기대 반환을 나타냄 $q_{\pi}(s, a) = \mathbb{E}_{\pi} \left[ G..

[강화학습] 3. Reward and Policy

Reward (보상) Reward $R_t$는 $t$시점에서 에이전트가 얼마나 잘 하고 있는지를 피드백해주는 스칼라 값이다 에이전트의 목표는 누적 보상 값을 최대화하는 것이다 [Reward Hypothesis] 모든 목표는 보상 누적 합계의 기대치를 최대화하는 것으로 설명할 수 있다. 보상 함수는 다양한 형태로 존재한다. $R = R(s), R(s,a), R(s,a,s')$ 모든 Transition $(s,a,s',r)$에 대한 $p(s', r|s, a)$가 알려진 하에, 다음을 계산할 수 있다 $P(S_{t+1} = s' | S_t = s; A_t = a) = \sum_{r \in R} p(s', r | s, a)$ $R_a(s) = r(s, a) = \mathbb{E} \left[ R_{t+1} | ..

[코드 리뷰] RL4CO : PDP (Pickup and Delivery Problem)

이 글은 RL4CO 라이브러리 중 PDP(Pickup and Delivery Problem) 문제에 대한 알고리즘 코드를 구현하고 리뷰한 내용이다. 기본 소스 코드는 다음 Github 주소를 참고하였다. http://RL4CORL4CO" target="_blank" rel="noopener" data-mce-href="http://RL4CO">http://RL4CO GitHub - ai4co/rl4co: A PyTorch library for all things Reinforcement Learning (RL) for Combinatorial Optimization (CO) A PyTorch library for all things Reinforcement Learning (RL) for Combinat..

[머신러닝] 평가지표(Evaluation)

평가지표 머신러닝 모델을 통해 데이터를 예측한 후, 그 모델이 데이터를 얼마나 잘 예측하는 지 성능을 확인하는 것을 '평가'라고 한다. 그리고 평가를 위해 사용되는 지표들을 평가지표라고 한다. 머신러닝 모델은 크게 Classification 모델과 Regression 모델로 나눌 수 있는데 각각에 따라 사용되는 평가 지표들이 다르다. Evaluation Indicators Classification Accuracy, Precision, Recall, F1-score, ROC&AUC Regression MSE, RMSE, MAE, MAPE Classification Model 평가지표 1. 오차행렬 (Confusion Matrix) 오차행렬(Confusion Matrix)란 이진 분류의 예측 오류가 얼마인..

[머신러닝] 사이킷런(Scikit - Learn) 라이브러리 part 2 : 데이터 전처리, 교차검증

데이터 전처리(Preprocessing) 데이터 전처리란 데이터 분석을 위해 수집한 데이터를 분석이 적합한 형태가 되도록 가공하는 작업을 의미한다. 데이터 전처리를 통해 불필요한 데이터를 제거하고, 결측치나 이상치를 처리하는 작업을 진행하고, 여러 전처리 기법들을 통해 데이터를 가공하여 데이터의 질을 향상할 수 있다. 만약 데이터 전처리가 제대로 이루어지지 않는다면 부정확한 분석 결과가 나올 수 있기 때문에 데이터 전처리 과정은 데이터 분석을 하는 데에 빠져서는 안 되는 매우 중요한 과정이다. 데이터 전처리 기법 데이터 전처리 기법은 여러 가지가 존재하지만 그중 사이킷런에서 사용되는 가장 대표적인 몇 가지 방법을 소개하겠다. 기법인 크게 Encoding 방법과 Scaling 방법으로 나눌 수 있다. En..

[강화학습] 2. Markov Decision Process (MDP)

이전 글에서 강화학습의 정의와 요소들에 대해 다뤄보았다. 강화학습이란 주어진 Environment 내에서 Agent가 Reward를 최대화하기 위한 목적으로 현재 State에서 다음 State로의 Action을 취하는 학습 과정을 의미한다. 이 학습 과정에서 Agent는 특정한 확률로 이전에서 다음 State로의 Action을 취하는 의사결정을 하게 되는데, 오늘은 이러한 의사결정을 하는 데에 기반이 되는 수학적 모델인 Markov Decision Process(MDP)에 대해 알아볼 것이다. Grid World MDP에 대해 알아보기 전에 우선 Grid World가 무엇인지 살펴보자. Grid World란 강화학습이나 인공 지능 분야에서 사용되는 가상 시뮬레이션 환경이다. 이 환경은 격자(grid)로 ..

[머신러닝] 사이킷런(Scikit-Learn) 라이브러리 part1 : 프레임워크, train_test_split

사이킷런$($Scikit-Learn$)$ 라이브러리 사이킷런 라이브러리는 파이썬 기반 머신러닝 라이브러리 중 가장 많이 사용되는 라이브러리이다. 다양한 머신러닝 알고리즘과 API 등을 제공하기 때문에 비교적 쉽고 편리하게 사용할 수 있다는 장점 때문에 데이터 분석가들 사이에서 인기가 있다. 사이킷런 머신러닝 워크플로우 데이터 수집 : 필요한 데이터를 모으고 저장하는 단계 데이터 전처리 : 데이터를 분석에 적합한 형태로 가공하는 단계, $($이상치 제거, 결측치 제거, 정규화, 인코딩 등$)$ 모델 훈련 및 학습 : 전처리된 데이터를 활용해 알고리즘을 학습시키는 단계, 필요에 따라 하이퍼 파라미터 조정 모델 성능 평가 : 학습된 모델의 성능을 평가하는 단계, 정확도, 정밀도, 재현율, F1-score 등의..