본문 바로가기

전체 글85

[DL][CNN] CNN(Convolution Neural Network) PyTorch 예제 앞선 글에서 CNN의 기본 개념에 대해 살펴보았습니다 [DL][CNN] Convolution Neural Network(CNN)Convolution Neural Network(CNN) Convolution Neural Network(CNN) 이란 인간의 시신경을 모바하여 만든 Deep Learning 구조이다특히, Convolution 연산을 이용하여 Image의 공간적인 정보를 유지하고, Fully Connected Neural Nself-objectification.tistory.com이번 글에서는 Fashion_MNIST 데이터 셋을 CNN을 통해 분류하는 예제 코드에 대해 공부해보도록 하겠습니다1. 라이브러리 Importimport numpy as npimport pandas as pdimport.. 2024. 8. 15.
[DL][CNN] Convolution Neural Network(CNN) Convolution Neural Network(CNN) Convolution Neural Network(CNN) 이란 인간의 시신경을 모방하여 만든 Deep Learning 구조이다.특히, Convolution 연산을 이용하여 Image의 공간적인 정보를 유지하고, Fully Connected Neural Network 대비 연산량을 획기적으로 줄였으며, Image Classification에서 좋은 성능을 보인다. Image Data우선 Image를 정형 데이터화 하는 방법을 생각해보자정형 데이터란 컴퓨터로 식별가능한 형태로 데이터를 변환하는 것을 의미한다.Image는 Pixel 단위로 구성되어 있고 각 Pixel은 RGB 값으로 구성되어있다.즉, 아주 작은 색이 담긴 네모 상자가 여러개가 모여 이미.. 2024. 8. 1.
[Recommendation System] Collaborative Filtering(협업 필터링) 개념 Collaborative Filtering(협업 필터링)Collaborative Filtering(협업 필터링)이란 많은 사용자로부터 수집한 구매 패턴이나 평점을 기반으로 하여 다른 사용자에게 추천을 하는 방법입니다기본 가정은 "많은 사용자로부터 얻은 취향 정보를 토대로 나와 비슷한 취향을 가진 사람들이 선호하는 콘텐츠를 나도 좋아할 가능성이 크다"라는 가정을 기반한 Recommendation System입니다 Memory - Based Algorithm(KNN 기반)User 간 또는 Item 간 Similarity 계산 결과를 기반으로 예측이 필요한 새로운 user와 유사한 취향을 가지고 있는 다른 user가 선호하는 Item을 추천하거나, 특정 Item의 평점을 예측해야 하는 경우 다른 유사한 Tag.. 2024. 7. 17.
[ML][Ensembel] LightGBM LightGBMXGBoost와 LightGBM은 Decision Tree 알고리즘 기반의 대표적인 Boosting 앙상블 기법입니다여기서 LightGBM은 시간적 한계를 보완한 알고리즘입니다 Node의 split을 균형 트리 분할(Level - wise Tree Growth) 방식이 아니라 최대 Loss를 가진 Node를 중심으로 계속 분할하는 Leaf 중심 트리 분할 (Leaf-wise Tree Growth)방식을 사용합니다이 방식을 통해 Tree가 깊어지기 위해 소요되는 시간과 메모리를 절약할 수 있습니다 Motivation & IdeaMotivation기존의 Boosting 알고리즘은 B번의 반복 학습 때마다 전체 데이터 셋을 scan하여 모든 Split Point에 대한 Information Ga.. 2024. 7. 11.
[ML][Ensemble]XGBoost(Extreme Gradient Boost) XGBoost(Extreme Gradient Boost)XGBoost는 기존 GBM 알고리즘의 성능과 속도를 향상시킨 알고리즘이다기존 GBM은 학습 데이터에 대한 Residual을 계속 줄이는 방향으로 학습하기 때문에 Overfitting이 되기 쉽다따라서 정규화 항을 Loss Function에 추가함으로써 Overfitting을 방지한다또한 Split Finding 알고리즘을 통해 연산의 효율성을 높혔다정규화$\Omega(f) = \gamma T + \frac{1}{2}\lambda ||c||^2$ (T : Terminal Node의 수, c : 각 노드의 가중치)여기서 $\gamma,\; \lambda$는 Hyper Parameter이다Split Finding기존에는 모든 Feature를 Split .. 2024. 7. 4.
[ML][Ensemble]Gradient Boosting Machine(GBM) Gradient Boosting Machine(GBM)Residual(잔차, $y_i - \hat{f}(x_i)$)($\approx$ Negative Gradient)를 이용하여 이전 모델의 약점을 보완하는 새로운 모형을 순차적으로 Fitting한 뒤 이들을 선형결합하여 얻어진 모델을 생성하는 지도학습 알고리즘 $$ \begin{aligned} y_1 &= F_{prev}(x_1) + h(x_1)\\ y_2 &= F_{prev}(x_2) + h(x_2)\\ &\qquad\qquad \vdots \\ y_n &= F_{prev}(x_n) + h(x_n)\\ \Rightarrow &F_{new}(x) = F_{prev}(x) + l \cdot h(x) \end{aligned} $$위의 식과 그림처럼 이전 모.. 2024. 7. 2.
[ML][Ensemble] AdaBoost(아다부스트, Adaptive Boosting) AdaBoost(아다부스트, Adaptive Boosting)Adaboost는 최초의 Boosting 알고리즘입니다이전 Decision Tree가 잘못 예측한 데이터에 큰 가중치를 부여해, 다음 Decision Tree가 더 집중할 수 있도록 순차적으로 학습하는 방법입니다Decision Tree로는 Stump 구조를 사용합니다(여기서 Stump 구조란 하나의 Split 만을 가진 가장 간단한 형태의 Decition Tree입니다) 세부적으로 설명하자면 B개의 Decision Tree 별로 계산된 모델 가중치 ($c_b$)를 합산하여 최종 모델을 생성합니다AdaBoost의 알고리즘 설명 전 AdaBoost의 Loss Function에서 사용되는 지수 손실에 대해서 간략히 설명하겠습니다※ 지수 손실 지수 손.. 2024. 6. 26.
[ML][Ensemble] Random Forest(랜덤 포레스트), OOB(Out Of Bag) Random Forest 모델이란?Random Forest를 공부하기 전 앞서 봤던 Bagging에 대해 더 알아보고 시작해야합니다Bagging은 Bootstrap을 통해 B개의 데이터셋을 만든다고 설명했었습니다여기서 원래 n개의 데이터가 존재하는 데이터 셋 $X$에서 j번째 데이터 $x_j$에 집중해서 보고자합니다1. $X$에서 임의의 데이터 추출 => 첫번째 Bootstrap 데이터 셋의 첫번째 Observation여기서 $x_j$가 뽑히지 않을 확률 : $1 - \frac{1}{n}$ 2. $X$에서 임의의 데이터 복원 추출 => 첫번째 Bootstrap 데이터 셋의 두 번째 Observation여기서 $x_j$가 뽑히지 않을 확률 : $1 - \frac{1}{n}$ 이 과정을 n번 반복하여 첫.. 2024. 6. 25.
[ML][Ensemble] Ensemble Learning(앙상블 학습), Bagging(배깅),Boosting(부스팅) Ensemble Learning(앙상블 학습)Ensemble Learning이란 여러 개의 모델을 학습시켜, 다양한 예측 결과를 이용하는 방법론입니다보통 Decision Tree에서 자주 사용되며, 크게 Bagging, Boosting이 있습니다Bagging(배깅, Bootstrap Aggregation)먼저 Bagging에 대해 알아보도록 하겠습니다Bagging은 분산이 $\sigma^2$인 독립적인 Observation($Z_1, Z_2, \cdots, Z_n$)이 있을 때, Observation의 평균 $\bar{Z}$의 분산은 $\frac{\sigma^2}{n}$이 되는 것을 이용하여, 여러 Observation을 평균을 내면 분산이 줄어드는 점을 이용한 방법입니다 즉, Bootstrap을 이용해.. 2024. 6. 25.