본문 바로가기

Data Science/Machine Learning

(46)
[ML] GA(Genetic Algorithm) 이번 포스팅에서는 생물체가 환경에 적응하면서 진화해나가는 모습을 모방하여 최적의 해를 구하는 방법론인 GA라고 불리는 유전 알고리즘에 대해서 알아보려고 한다. GA의 이름에 알고리즘이라는 용어가 붙어 우리가 그동안 배웠던 머신러닝의 지도학습 또는 비지도학습의 종류 중 하나라고 오해할 수 있다. 하지만 GA는 모델의 종류가 아닌 파라미터의 최적화 문제를 풀기 위한 일종의 방법이다. 파라미터의 최적화 문제를 풀기 위한 다른 방법으로는 이전 포스팅에서 배웠던 EM(Expectation Maximization)알고리즘을 예로 들 수 있다. GA를 이해하기 위해서는 사전에 정의하고 넘어가야 할 몇 가지 개념들이 존재한다. 하나씩 정의해보자. 염색체(Chromosome) : 여러개의 유전자를 담고 있는 하나의 집합..
[ML] Hidden Markov Model(HMM) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 HMM(Hidden Markov Model)이라고 불리우는 히든 마르코프 모델에 대해 다루려고 한다. HMM은 기본적으로 Markov Property(마르코프 특성)를 가정한다. 따라서 '마르코프 특성'에 대한 개념부터 정립하고 넘어가야 한다. 이번 글에서 써내려갈 목차는 다음과 같다. 1. Markov Property란? 2. Markov Model의 종류 3. HMM(Hidden Markov Model) 4. HMM의 알고리즘 1. Markov Property란? 마르코프 특성의 정의에 대해 알아보기 전에 밑의 수식을 살펴보자. 위 그림의 맨 윗줄 쌍따옴..
[ML] EM Algorithm과 GMM(Gaussian Mixture Model) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 EM(Expectation Maximum)알고리즘과 이 EM 알고리즘을 이용한 모델 중 하나인 GMM(Gaussian Mixture Model)에 대해서 알아보려고 한다. 목차는 다음과 같다. 1. EM 알고리즘이란? 2. EM 알고리즘 프로세스 3. GMM이란? 4. GMM에서 적용되는 EM알고리즘 프로세스 1. EM 알고리즘이란? EM 알고리즘은 기본적으로 Unsupervised learning에 주로 사용되는 알고리즘이다. 그래서 Clustering에 사용되기도 한다. EM 알고리즘은 크게 E-step과 M-step 2가지 단계로 나누어질 수 있는데 결..
[ML] Topic Modeling(토픽 모델)인 LDA(Latent Dirichlet Allocation) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Clustering의 방법 중 하나이며 비지도학습이기도 한 토픽 모델에 대해 알아보려고 한다. 또 토픽 모델 중 가장 유명한 LDA(Latent Dirichlet Allocation:잠재 디리클레 할당)에 대해 공부해보자. 토픽 모델은 원래는 텍스트를 위한 대표적인 Clustering 방법이였지만 현재 이미지와 다른 분야에 널리 사용되고 있다. 토픽 모델이라는 아이디어는 "방대한 양의 텍스트가 존재할 때 누가 이걸 대신 읽고 주제를 파악해줄 수 있을까?" 라는 생각에서 기원했다고 한다. 그런데 토픽모델은 Parameter에 따라 같은 데이터셋을 갖고도 다른 ..
[ML] Missing value(결측치)를 처리하는 방법과 결측치의 종류 이번 포스팅에서는 데이터 전처리 과정에서 필연적으로 직면하게 되는 데이터셋의 결측치를 처리하는 방법과 결측치의 종류에 대해서 알아보려고 한다. 평소에 결측치를 처리한다고 생각하면 0값, 평균값, 중앙값 등.. 어떻게 보면 단순무식한 방법만을 생각해왔던 것 같다. 그런데 과연 세계에 수많은 똑똑한 사람들도 이러한 단순무식한 방법으로만 결측치를 처리할까? 그럴 리 없다고 생각해서 한 번 찾아보았다. 한 번 같이 살펴보자. 1. 행 또는 열 삭제 : 가장 단순한 방식이다. 결측치가 존재하는 행 또는 열(feature)을 삭제하는 방식이다. 2. 중앙값, 평균값으로 대체 : 빈 결측치에 해당하는 Feature의 평균값이나 중앙값으로 대체한다. 3. 최빈값으로 대체 : 하지만 이 방법은 주로 Nominal fea..
[ML] Clustering의 Distance Function의 종류 이번 포스팅에서는 저번 시간에 배웠던 Clustering 내용에 대한 추가적인 컨텐츠이다. 바로 Clustering을 실행할 때 데이터 간의 거리를 계산해야 하는데 '어떤 방법' 으로 계산을 할지에 대한 내용이다. 이번에는 하나의 주제에 대한 것이므로 별다른 목차 없이 바로 본론으로 들어가겠다. 앞으로 나올 내용들은 모두 거리는 계산하는 방법 중 하나인 Distance Function의 종류들이다. 1. Euclidian Distance 중, 고등학교 시절 문과, 이과를 불문하고 수학을 공부했던 사람들에겐 모두 친숙한 공식일 것이다. 바로 유클리디안 거리 공식이다. 이름만 듣고 잘 모르겠는가? 그렇다면 공식을 보면 "아~!" 라고 나올지도 모른다. 유클리디안 거리 공식을 살펴보자. 하지만 이 유클리디안 ..
[ML] Clustering(군집화) model ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Unsupervised learning의 종류로서 Clustering에 대해 소개하고 Clustering model의 종류에 대해서 알아보자. 목차는 다음과 같다. 1. Clustering model 이란? 2. K-means Clustering 3. KNN(K-Nearest Neighbors) 4. Hierarchical Clustering 1. Clustering model 이란? 기본적으로 클러스터링은 비지도 학습방법이므로 label(정답)이 존재하지 않는 상태에서 학습을 한다. 하지만 클러스터링 모델들도 최후의 단계에서는 이 클러스터링 모델이 정답을 ..
[ML] Ensemble(앙상블)과 Semi-supervised learning ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Ensemble(앙상블)의 개념과 종류에 대해서 알아보려고 한다. 그리고 마지막에는 '반지도학습'이라고 불리는 'Semi-supervised learning'에 대해 소개한다. 우선 앙상블의 사전적 의미는 무엇일까? 앙상블이란 '음악' 분야에서 '2인 이상에 의한 가창(歌唱)이나 연주' 를 의미한다. 우리는 앙상블의 사전적 의미에서 음악과 관련된 용어는 신경쓰지 말고 '2인 이상'이라는 단어에 집중하자. 즉, 머신러닝 분야에서의 앙상블은 2개 이상의 여러가지 모델을 결합시켜 하나의 결합모델을 만드는 것이다. 앙상블은 SVM보다 성능이 좋다고 알려져있으며 대표..
[ML] SVM(Support Vector Machine)서포트 벡터 머신 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 머신러닝 모델 중 Classification에 활용되며 Supervised Learning의 종류인 SVM(Support Vector Machine)에 대해 알아보려고 한다. 2019년 2학기에 DSC 활동을 하면서 SVM에 대해서 처음 알게되었고 그 때 당시에는 얕은 깊이의 공부를 했던 기억이 난다. 하지만 이번엔 SVM을 머신러닝 전공 수업에서 다루는 만큼 깊이 있게 공부하고 넘어가야 겠다. 목차는 다음과 같다. 1. SVM의 기원은 무엇일까? 2. Margin의 maximum을 구하는 방법 3. 비선형 분류를 하기 위한 Slack Variable 4. ..
[ML] Class imbalance(클래스 불균형)이란? 이번 포스팅에서는 머신러닝 분류 문제에 있어서 '클래스 불균형' 에 대한 간단한 주제에 다룰 예정이다. 머신러닝 모델을 평가하는 하나의 지표로서 F1 score이란 것을 고려한다. F1 score은 Precision과 Recall의 조화평균으로부터 나오는 지표이다. F1 score은 그럼 언제 사용할까? 주로 데이터 Class(Lable)이 불균형 구조일 때 모델 성능을 정확히 평가한다고 한다. 필자는 '데이터 클래스 불균형' 이라는 개념에 대해 생소했고 이를 알아보기 위해 갓구글링의 도움을 받아보았다. 먼저 데이터 불균형 구조에 대한 정의부터 알아보자. 데이터 불균형이란 어떤 데이터에서 각 클래스(주로 범주형 변수)가 갖고 있는 데이터의 양에 차이가 큰 경우를 말한다. 예를 들어, 병원에서 질병이 있는..
[ML] ANN(Artificial Neural Network) 인공신경망 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 저번 포스팅에서 다루었던 주제인 Perceptron(퍼셉트론)의 종류 중 다층 퍼셉트론(MLP=Multi-Layer Perceptron)이라고 할 수 있는 ANN(Artificial Neural Network)인 '인공신경망'에 대해 다룰 예정이다. 목차는 다음과 같다. 0. 왜 ANN과 딥러닝을 쓰는가? 1. ANN의 특성 2. ANN의 활성함수(Activation Function) 3. ANN의 학습 4. ANN의 Parameter Optimization(학습방법) 5. ANN 전처리(초기값 부여) 6. ANN의 Overfitting을 막기위한 방법 0...
[ML] Perceptron(퍼셉트론)의 이해와 종류 ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 인공신경망, 딥러닝의 근간이 되는 퍼셉트론의 개념에 대해 알아보고 퍼셉트론의 종류에는 무엇이 있는지에 대해 공부하려 한다. 목차는 다음과 같다. 1. 퍼셉트론(Perceptron)이란? 2. 퍼셉트론의 종류 3. 퍼셉트론의 학습 알고리즘 4. 퍼셉트론 정리 1. 퍼셉트론(Perceptron)이란? 우선 퍼셉트론은 인간의 뉴런으로부터 착안하여 생겨난 개념이다. 그렇다면 이러한 뉴런이라는 개념을 우리 실생활 문제를 해결하기 위해 어떻게 적용할 수 있을까? 밑의 그림을 보면서 퍼셉트론을 이해해보자. 간단하게 구성요소로 말하자면 '입력값 - 순입력함수 - 활성함수 ..
[ML] 데이터 학습방법으로서 MLE, MAP ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 간단한 주제를 다룰텐데, 바로 데이터들이 모델에서 학습하는 방법에 대한 내용이다. 학습방법으로서는 MLE(Maximum Likelihood Estimation)와 MAP(Maximum A Posteriori estimation)이 존재한다. 하나씩 알아보자. 1. MLE(Maximum Likelihood Estimation) 2. MAP(Maximum A Posteriori estimation) 1. MLE(Maximum Likelihood Estimation) 우선 MLE는 모델 파라미터를 Observation data(이미 관측된 데이터)에만 기반하여 추..
[ML] PCA(주성분분석), SVD, LDA by Fisher ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 선형대수의 벡터를 기반으로 하는 모델들에 대해서 알아보려고 한다. 앞으로 소개할 모델들을 이해하기 위해서는 벡터공간에서의 기저(Basis)에 대한 개념 이해가 중요하다. 필자도 이 모델에 대한 수업을 들으면서 선형대수의 기초 개념 공부의 필요성을 느꼈고 개인적으로 오픈 소스 강의를 통해 학습을 진행하고 있다. 앞으로 소개할 목차는 다음과 같다. 1. 기본적으로 알고가야 할 개념 2. Eigen Value(고유값) Decomposition 3. SVD(Singular Value Decomposition) 4. PCA(Principal Component Anal..
[ML] Linear Regression(선형회귀)& Logistic Regression ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 가장 전형적인 머신러닝 모델이라고 할 수 있으며 연속적인 값을 예측할 수 있는 Linear Regression(선형회귀) 모델에 대해 알아보려고 한다. 또한 Linear Classification 이라고도 하며 Linear(선형)으로 Class(Label)을 분류할 수 있는 Logistic Regression에 대해 알아본다. 목차는 다음과 같다. 1. Linear Regrssion 2. Linear Regression의 Ridge Regression 3. Linear Regression의 Lasso Regression 4. Linear Classificat..
[ML] Bayesian Networks(베이즈 네트워크) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서는 Bayes Rule에 기반으로 하는 머신러닝 모델인 Bayesian Networks에 대해 알아보려고 한다. 그 전에 먼저 Bayesian Networks는 Bayes Classifier의 일반화 버전이다. 어찌됬든 두 개가 다른 모델이지만 Bayes에 관련된 머신러닝 모델들 여러가지를 포함하는 용어가 Bayesian Networks이다. 본격적인 머신러닝 모델들을 배우기 전에 가장 기반이 되는 Bayes Rule(베이즈 정리)를 알아보고 가자. 앞으로 전개해나갈 내용에 대한 목차는 다음과 같다. 1. Bayes Rule(베이즈 정리) 개념 2. Bayes ..
[ML] Decision Tree(의사결정나무) ※해당 게시물에 사용된 일부 자료는 순천향대학교 빅데이터공학과 정영섭 교수님의 머신러닝 전공수업 자료에 기반하였음을 알려드립니다. 이번 포스팅에서 머신러닝 모델 종류 중 가장 쉽고 단순한 Decision Tree(의사결정나무) 모델에 대해서 알아보려고 한다. 앞으로 전개할 컨텐츠 순서는 다음과 같다. 1. Decision Tree의 전체적인 구조 2. 좋은 Tree 란? 3. Decision Tree 생성 알고리즘인 'ID3 알고리즘' 4. Tree 생성 순서 5. Decision Tree의 기타 특징 1. Decision Tree의 전체적인 구조 의사결정나무의 전체적인 구조는 우리가 지금껏 살아오면서 쉽게 접했을 수 있는 모형이다. 다음 그림을 보면서 Tree를 구성하고 있는 여러 부분들의 용어를 알아..
[ML] 머신러닝의 종류와 용어개념 이번 학기에 머신러닝이라는 전공수업을 듣게 됬다. 저번학기 부터 관심이 간 분야지만 사실 이전에는 공부하면서 등장하는 개념을 알긴 아는 것 같은데 남에게 확실히 뭐라고 설명할 수 있을 정도로 지식의 깊이가 깊지 않았다. 이번학기 수업을 기반으로 해서 시험공부 뿐만 아니라 머신러닝의 기초를 다잡기 위해서 블로그 포스팅을 이용해보려고 한다. 개인적인 공부습관이 시험공부를 하기 위해서는 따로 연습장에 나만의 필기를 무조건 하는 스타일이라서 중간 중간 애매모호한 개념을 직관적으로 이해하기 위해서 필기 그림을 이용하는 것은 이해해 주길... 요즘 코로나로 인해서 아쉽게도 사이버강의로 진행하지만 최대한 따라가기 위해서 갓 구글링의 도움을 빌려가며 같이 공부하고 있다. 오늘은 첫 포스팅으로 머신러닝의 종류와 용어개념..
[딥러닝] NN(Neural Network)의 등장과 개념 이번 포스팅에서는 딥러닝 즉, 뉴럴네트워크(NN)의 등장과 개념, 그리고 뉴럴네트워크의 한계를 Backpropagation(역전파)를 통해서 어떻게 해결했는지에 대해 알아보려고 한다. 1. 뉴럴네트워크의 등장 우리가 다루었던 선형회귀, 로지스틱 회귀, 소프트맥스 이러한 머신러닝 모델들은 linear로 여러가지 문제들을 해결할 수 있었다. 하지만 절대 해결할 수 없는 문제가 하나 있었으니.. 그것은 바로 XOR 문제이다. XOR이란 다음과 같다. X Y XOR 0 0 0 1 0 1 0 1 1 1 1 0 OR 과 AND 그리고 XOR 문제를 그래프로 나타내보면 다음과 같다. 그림에서 보다시피 OR 과 AND 는 기본적으로 Linear를 그려서 분류를 할 수 있다. 하지만 XOR은 어떤 방식으로라도 Linea..
[ML] 머신러닝 모델링 시 필요한 데이터 종류 그리고 Epoch란? 이번 포스팅에서는 간단한 개념정의를 하려고 한다. 그동안 배웠던 머신러닝 모델링에 관한 내용은 아니니 쉽게 접근하면 되겠다. 소개할 주제는 다음과 같다. 1. 머신러닝 모델시 Train / Test / Validation 데이터들의 각각의 개념 2. Online Learning이란? 3. Epoch와 Batch의 개념 머신러닝을 모델링 하고 성능을 검증할 때 위 그림과 같이 Raw Data에서 2가지 또는 3가지로 나누어 준다. 학습률(Learning rate)과 Regularization Strength 상수값을 튜닝하기 위해서는 가장 밑의 3가지(훈련/검증/테스팅) 종류로 나눈 방법을 사용한다. 이렇게 3가지 종류로 나누어서 검증하는 이유는 쉽게 예를들면 이렇다. 중,고등학교 시절 우리는 중간고사를 ..