본문 바로가기

데이터사이언스

(23)
[scikit-learn] RandomForestClassifier 알아보기 1. RandomForest란? Random Forest는 다수의 decision tree를 통해 데이터를 분류하는데 사용되는 앙상블 기법이다. 무작위성을 더해 분류기를 만들기 때문에 overfitting될 확률이 높은 decision tree의 단점이 개선되었다. 학습시킬때는 주어진 데이터 중 각각의 tree를 만들기 위한 데이터셋을 N개 만든다. N개의 데이터셋을 기반으로 N개의 decision tree를 훈련시킨다. 마지막으로 각 decision tree가 투표한 결과에 따라서 각 데이터를 분류한다. 2. scikt-learn에서의 RandomForestClassifier(텍스트 데이터) 텍스트 데이터의 Conclusion 열을 input으로 넣어 0과 1로 되어있는 label을 예측하도록 했다. ..
[강화학습] CartPole에서 Actor-Critic 구현하기 1. Actor-Critic Actor Critic은 Deep RL에서 정책함수와 가치함수를 모두 학습하는 방식이다. 이 방식은 확률적 정책을 취하기 때문에 결정론적 방식을 사용하는 가치기반 방식에 비해 변화하는 주변 상황에 적용하기 용이하다. 또한 액션 공간이 연속적인 경우에도 적용할 수 있다는 장점이 있다. 2. import 및 hyperparameter 정의 import gym import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torch.distributions import Categorical #Hyperparameters learning_rate = 0.0002 gam..
BERT와 pytorch를 사용한 binary classification colab 환경에서 BERT와 pytorch를 사용해서 text를 binary classification을 했다. 1. BERT의 기본 구성 https://ebbnflow.tistory.com/151 [BERT] BERT에 대해 쉽게 알아보기1 - BERT는 무엇인가, 동작 구조 ● 언어모델 BERT BERT : Pre-training of Deep Bidirectional Trnasformers for Language Understanding 구글에서 개발한 NLP(자연어처리) 사전 훈련 기술이며, 특정 분야에 국한된 기술이 아니라 모든 자연어.. ebbnflow.tistory.com BERT란 wikipedia와 BookCorpus의 데이터를 사전학습한 transformer 언어모델이다. BERT의 ..
마르코프 프로세스란? 1. 확률 과정(Stochastic Process) 확률 과정 \(S_{t}\)는 시간t의 흐름에 따라 변화하는 random variable의 집합이다. 특정 시간 t에 비가 오거나 오지 않는 상태 s를 예로 들 수 있다. 상태 s와 그 이후의 상태 s'가 주어진다면, s에서 s'으로 상태가 바뀔 가능성은 다음과 같이 나타낼 수 있다. $$ 𝑃𝑠𝑠 ′ = ℙ[𝑆𝑡+1 = 𝑠 ′ |𝑆𝑡 = 𝑠] $$ 상태 전환 행렬 P는 모든 상태 s에서 이후 상태 s'으로 바뀔 가능성을 정의한다. 행렬 P에서 행은 현재 상태, 열은 다음 상태를 나타내고 값은 해당 전환이 일어날 확률을 나타낸다. 행렬 모든 값의 합은 1이 된다. 2. 마르코프 성질 마르코프 성질은 미래는 과거 상태의 영향을 받지 않고, 현재에 의해서만 ..
RNN과 LSTM 이해하기 1. RNN의 정의 RNN(Recurrent Neural Networks, 순환신경망)은 음성, 문자 등 순차적 데이터 처리에 적합한 모델이다. 내부의 연결이 순환적이라는 특징을 가지고 있다. 2. RNN의 구조 RNN은 위 그림처럼 입력 벡터 $x$와 출력 벡터 $y$, 은닉층 cell로 구성되어 있다. 여기서 cell은 이전의 값을 기억하려고 하는 메모리 역할을 수행하므로 이를 메모리 셀이라고도 한다. 은닉층의 메모리 셀은 이전 시점 t-1에서 셀에서 나온 값을 현재 시점 t에서 자신의 입력으로 사용하는 재귀적 활동을 하고 있다. 여기서 메모리 셀이 출력층 $y$ 방향으로 보내는 값, 다음 시점의 자기 자신에게 보내는 값은 은닉 상태(hidden state)라고 한다. RNN을 표현할 때는 왼쪽처럼 ..
Gradient Boosting Algorithm 1. boosting이란? boosting는 머신러닝 앙상블 학습 방식의 한 가지 종류이다. 머신러닝에서 앙상블이란, 하나의 모델이 데이터에 과적합되는 것을 막기 위해 여러 모델을 써서 학습하는 방식이다. boosting 방식의 특징은 학습에 필요한 데이터를 순차적으로 구성해 나간다는 것이다. 아래 그림을 보면 그 방법을 알 수 있다. 데이터가 주어지면 첫번째 모델이 학습을 진행한다. 이 과정에서 잘못 분류한 데이터에 다음 모델 학습 때 가중치를 부여한다. 이 과정을 N번 반복하면서 만들어진 모델을 모두 합한 것이 최종 모델이다. 2. 예시 Gradient Boost은 Boosting 방법 중 최근에 많이 쓰이는 방법이다. 다음 데이터를 바탕으로 키, 좋아하는 색깔, 성별이라는 정보로 몸무게를 예측하는 ..
GAN이란? - GAN의 개념과 이해 1. 기본 개념 GAN(Generative Adversarial Networks, 생성적 적대 신경망)이란 비지도학습에 사용되는 머신러닝 프레임워크의 한 종류이다. GAN은 다른 알고리즘과는 달리 이전에는 없던 새로운 데이터를 생성할 수 있다. 이 알고리즘은 흔히 경찰과 위조지폐범 사이의 게임에 비유된다. 위조지폐범은 진짜 같은 화폐를 만들어 경찰을 속이기 위해 노력하고, 경찰은 위조지폐를 잘 감별하기 위해 노력한다. GAN에서도 생성모델(generator)은 최대한 진짜 같은 데이터를 만들기 위한 학습을 진행하고, 분류모델(discriminator)은 진짜와 가짜를 판별하기 위한 학습을 진행한다. GAN의 학습 과정에서는 분류모델을 먼저 학습시키고, 생성모델을 학습시킨다. 분류모델은 먼저 진짜 데이터를..