기술(Tech, IT)/머신 러닝(Machine Learning) 43

[ML] Disentangled Representation Learning(DRL)

Cornell Univesity(코넬 대학교)의 한 Computer Science 수업 자료에 설명된 Disentalged Representation Learning에 대한 설명이다. : Disentagled Representation Learning은 관찰 가능한 데이터에 숨어있는 기저 요인을 식별하고 얽힘을 풀 수 있는(disentangling) 모델을 표현 형태로 학습하는 것을 목표로 한다. 기저 요인의 변형을 의미를 갖는 변수로 분리하는 것은 설명 가능한 데이터 표현을 학습하는 데 도움이 되며, 이는 인간이 사물이나 관계를 관찰할 때 의미 있는 이해하는 과정을 모방한 것이다. 일반적인 학습 전략으로서, DRL은 컴퓨터 비전, 자연어 처리, 데이터 마이닝과 같은 광범위한 시나리오에서 모델의 설명 가..

[ML] K-Nearest Neighbors Algorithms(KNN, K-최근접 이웃 알고리즘)

: KNN은 비모수적(모수에 의하지 않는 검정) 지도 학습 분류로, 근접성을 사용해 개별 데이터를 그룹화하는 분류 또는 예측에 사용된다. Regression(회귀)나 Classifciation(분류) 문제 모두에 사용될 수 있지만, 일반적으로 유사한 점들이 서로 가까이에 있다는 가정 하에 분류 알고리즘으로 사용된다. 분류 문제의 경우, 클래스 레이블은 다수결에 의해 할당된다. 즉, 레이블은 주어진 데이터 포인트 주변에서 가장 빈번하게 나타나는 레이블이 사용된다. 이는 기술적으로 "plurality voting(다수결 투표)"라 간주되지만, 문헌에선 "majority vote(다수결 투표)"라는 용어가 좀 더 보편적이다. 두 용어의 차이점은 "majority voting"은 기술적으로 주로 두 가지의 카테..

[ML] Deep Convolutional Neural Networks(DCNN)

이스라엘 소프트웨어 회사인 Run:AI에 따르면 Deep Convolutional Neural Networks(CNN)은 아래와 같다. 1. Deep Convolutional Neural Networks란 무엇인가? : Deep Learning(딥러닝)은 AI 시스템을 구축하는 Machine Learning 기법 중에 하나다. Deep CNN은 Artificial Neural Networks(ANN)을 기반으로 한, 여러 계층의 신경망(Neuraon)을 통해 방대한 양의 데이터를 복합적인 분석을 할 수 있도록 설계 됐다. 다양한 Deep Neural Networks(DNN)이 존재하는데. 이미지와 비디오의 패턴 식별에 가장 많이 사용되는 것은 Deep CNN(CNN 혹은 DCNN)이다. DCNN은 전통적..

[ML] K-means clustering algorithms(k-평균 알고리즘)

오라클은 K-means clustering algorithms 다음과 같이 소개하고 있다. : K-means clustering은 unsupervised learning(자율 학습)의 하나로, 레이블 되지 않은 데이터를 갖고 있을 때 사용한다(예를 들어, 카테고리나 그룹이 정의되지 않은 데이터). 이 알고리즘의 목적은 데이터를 K개의 그룹으로 나누는 것이다. 이 알고리즘은 각 데이터를 데이터의 특징(features)에 따라 반복적으로 K개의 그룹 중 하나에 할당하는 것이다. 데이터는 특징의 유사성에 따라 무리지어진다(clustered). K-means clustering algorithm의 결과물은 아래와 같다: 1. 새로운 데이터를 레이블 할 수 있는 각 K개의 clusters의 중심들(centroid..

[ML] Normalization Technique(정규화 기법)

Normalization(정규화)란? : In data processing, normalization is the process of transforming and scaling numerical data to bring it to a common range or scale, without distorting the differences in the ranges of the individual values. The main goal of normalization is to reduce or eliminate the effects of different measurement scales, so that different variables can be compared on an equal footing. :..

[ML] Huber Loss(후버 손실)

앞서 살펴봤던 MSE와 MAE의 장점을 결합한 Huber Loss에 대해 살펴보겠다. MSE는 outlier에 제곱을 통해 많은 비중을 주게 되는 반면, MAE는 같은 비중을 두게 된다. 또한 MSE의 경우 outlier가 아닌 데이터에선 훌륭한 모델을 만들 수 있기에 이 둘을 절충해 아래와 같이 나타낸다. 에러(예측값과 실제값의 차)가 Delta(델타) 사이일 경우 MSE를 적용하고 그 외에 범위에 있을 경우 MAE를 적용하는 것이다. 참고로 1/2을 곱한 것은 아래 두 함수의 접점(Junction)에서 같은 결과값과 같은 편미분 값을 같기 위한 것이다. import matplotlib.pyplot as plt import numpy as np # Huber loss function def huber_..

[ML] MAE(Mean Absolute Error, 평균 절대 오차)

MAE는 이전 포스팅의 MSE를 구하는 방법과 매우 유사하지만 가져오는 결과는 매우 다르다. MAE 역시 모델을 통한 예측값과 실제값의 차이를 바탕으로 평균을 구하지만, MSE와 다른 점은 제곱을 하지 않는 것이다. 따라서 MAE는 이상점(outlier)의 비중이 MSE에 비해 현저히 적다. 하지만 절대값을 다루기에 MSE와 마찬가지로 양수를 다루기에 예측값이 실제값보다 큰 값인지 작은 값인지에 대한 판단이 불가하다. import numpy as np import matplotlib.pyplot as plt # MAE loss function def mae_loss(y_pred, y_true): abs_error = np.abs(y_pred - y_true) sum_abs_error = np.sum(ab..

[ML] MSE(Mean Squared Error, 평균 제곱 오차)

Machine Learning 강의 수강 시 가장 먼저 접하게 되는 Loss(Cost) Function 중에 하나다. MSE를 계산하는 방법은 간단하다. 모델이 예측한 값(모델의 output)과 실제값의 차이를 제곱하고 이를 전체 데이터로 나누어준 평균값이다. MSE는 굉장히 큰 에러(예측값과 실제값의 차)를 갖는 이상점이 없는 모델에선 훌륭하지만, 그렇지 않을 경우 예측값과 실제값의 차이를 제곱하기에 이상점에 상대적으로 큰 비중이 실릴 수 있어 바람직하지 못한 결과를 낳는다. 아래는 MSE를 식으로 나타낸 것으로 N은 전제 데이터의 개수다. 아래는 MSE에 대한 샘플 파이썬 코드다. import numpy as np import matplotlib.pyplot as plt # MSE loss funct..

[ML] Gradient Descent(경사하강법)

IBM에서 이런 내용도 게재하는지 몰랐는데 Gradient Descent(경사하강법)에 대해 아래와 같이 설명하고 있다. 한국어론 경사하강법이라고 하지만 Gradient Descent라는 용어로 인지를 하고 있는 것이 여러 자료를 접할 때 더 편할 것으로 생각돼 영어와 한국어 모두 기억하는 것을 추천한다. 뿐만 아니라 Cost Function 혹은 대부분의 용어들은 영어로 함께 기억하는 것이 나을 것으로 생각한다. : Gradient descent is an optimization algorithm which is commonly-used to train machine learning models and neural networks. Training data helps these models learn ..

[ML] CS229: Machine Learning

Coursera에서 유명한 Andrew Ng 교수님의 Machine Learning 강의 자료는 접근이 가능하고 그 주소는 아래와 같다. Stanford CS229: Machine Learning : Instructors: Andrew Ng, Moses Charikar, Carlos Guestrin https://cs229.stanford.edu/ Syllabus and Course Materials : https://docs.google.com/spreadsheets/d/18pHRegyB0XawIdbZbvkr8-jMfi_2ltHVYPjBEOim-6w/edit#gid=0 Lecture Notes : https://cs229.stanford.edu/notes2022fall/main_notes.pdf