본문 바로가기

머신러닝32

[OpenCV] 머신러닝과 KNearest 클래스 References https://docs.opencv.org/ OpenCV 4로 배우는 컴퓨터 비전과 머신러닝 Contents OpenCV 머신러닝 클래스 k-최근접 이웃(k-NN) 알고리즘 OpenCV의 머신러닝 클래스 OpenCV는 다양한 머신 러닝 알고리즘을 클래스로 구현하여 제공합니다. 제공되는 클래스들은 주로 ml 모듈에 포함되어 있으며, cv::ml::StatModel 추상 클래스를 상속받아 만들어집니다. StatModel 클래스 이름은 statistical model(통계적 모델)을 의미하며, 이 클래스를 상속받아 만들어진 클래스들의 다이어그램은 위와 같습니다. StatModel 클래스는 머신러닝 알고리즘을 학습시키는 StatModel::train() 멤버 함수와 학습된 모델을 이용하여 테.. 2022. 5. 10.
[Machine Learning] Gradient Descent with Large Datasets 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. 이번 강의에서는 대규모의 머신러닝에 대해 알아보겠다. 알고리즘이지만, 빅데이터 관점에서 보는 것이다. 최근 5~10년 전 머신러닝을 되돌아보면, 최근 학습알고리즘이 훨씬 더 높은 성능을 보이는 이유 중의 하나는 훈련할 수 있는 엄청난 양의 데이터 때문이다. 이번에는 이러한 대규모의 데이터가 있을 때, 처리하는 알고리즘에 대해서 알아보자. - Learning With Large Datasets 우리는 이전에 이미 머신러닝의 성능을 높이는 방법 중의 하나가 더 많은 데이터를 학습하는 것(Low Bias일 경우)이라는 것을 배웠었다. 위와 같은 비교를 통해서 머신러닝에서 가장 좋은 알고리즘이 중요.. 2020. 9. 5.
[Machine Learning] Exam 8 (Week 9) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. Exam 8에서 구현해야 하는 과제는 다음과 같습니다. - estimateGaussian.m : 가우시안 분포를 갖는 모델의 평균과 분산을 반환하는 코드 - selectThreshold.m : Anomaly Detection에서의 최적의 Threshold를 찾는 코드 - cofiCostFunc.m : Collaborative filtering의 Cost Function 작성 [estimateGaussian.m] 가우시안 분포를 갖는 X 행렬의 평균과 분산을 구하면 됩니다. 평균과 분산을 구하는 공식은 아래와 같습니다. 전체 코드입니다. function [mu sigma2] = estimate.. 2020. 9. 4.
[Machine Learning] Recommender Systems 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Recommender System 이번 시간에는 현업에서 많이 주목받고 사용되는 추천시스템에 대해서 알아보자. 다음과 같은 영화 별점을 예측하는 예제를 살펴보자. 사용자들은 별점 0개에서 5개까지 사용해서 영화를 평가한다. 그리고 아래 4개의 parameter를 사용한다. - \(n_u\) = 유저의 수 - \(n_m\) = 영화의 개수 - \(r(i, j)\) = j 유저가 영화 i를 평가했는지에 대한 여부. 평가했으면 1, 안했으면 0이다. - \(y^{(i, j)}\) = j 유저가 영화 i에 평가한 별점이다. 0 ~ 5까지의 값을 가지며, 이 값은 \(r(i, j)\) = 1 일 .. 2020. 9. 4.
[Machine Learning] Anomaly Detection 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다.이번에는 Anomaly Detection(이상탐지)에 대해서 이야기해볼 것이다.Anomaly Detection은 머신러닝에서 일반적이며, 합리적으로 사용된다. 그리고 이것은 주로 unsupervised problem의 한 방법이지만, superivsed learning problem의 측면도 가지고 있다. 아래 예시를 통해서 Anomaly Detection이 무엇인지 살펴보도록 하자.- Density Estimation 여기 항공기 엔진 제조업체가 있고, 항공기 엔진을 조립이 완료되었을 때, 품질을 테스트한다고 가정해보자.그 테스트 중에 우리는 항공기 엔진의 기능을 측정하는데, 예를 들어서 엔.. 2020. 9. 2.
[Machine Learning] Exam 7 (Week 8) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. 8주차 과제는 다음과 같습니다. - pca.m : PCA 알고리즘 구현 코드 - projectData.m : PCA 알고리즘으로 구한 \(U\) 행렬을 통해서 새로운 feature \(z\)를 구하는 함수 - recoverData.m : 새로운 feature \(z\)에서 다시 n차원의 \(x_{approx}\)를 구하는 함수 - findClosestCentroids.m : 각 training example \(x^{(i)}\)의 가장 가까운 centroid의 index를 반환하는 함수 - computeCentroids.m : 각 centroid에 속하는 example을 평균을 구해서 cen.. 2020. 8. 27.
[Machine Learning] Dimensionality Reduction(PCA) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. [Data Compression] 엄청 많은 feature가 있는 training set이 있다고 하자. 그리고 그 중에서 아래와 같이 cm와 inch의 feature만을 뽑아서 그래프로 나타내보았다. 이와 같이 cm와 inch는 길이에 대한 feature이며, 두 feature가 연관성이 높다고 볼 수 있다. 우리는 2차원의 data를 1차원으로 줄여서 합칠 수 있다. 이렇게 차원을 줄이면 data의 양이 감소해서 사용되는 메모리를 절약할 수 있으며 학습 알고리즘의 속도를 높여준다. 3차원에서 2차원으로 감소하는 것은 위와 같다. feature \(x_1, x_2, x_3\)을 2차원의 평.. 2020. 8. 27.
[ML] Support Vector Machine(SVM) - 참고 문헌 및 사이트 핸즈 온 머신러닝 2nd https://en.wikipedia.org/wiki/Support_vector_machine https://ko.wikipedia.org/wiki/%EC%84%9C%ED%8F%AC%ED%8A%B8_%EB%B2%A1%ED%84%B0_%EB%A8%B8%EC%8B%A0 http://jaejunyoo.blogspot.com/2018/01/support-vector-machine-1.html Coursera의 Machine Learning에서 SVM에 대해서 강의를 들었지만, 조금 부족한 부분이 있어서 따로 더 공부를 해보았습니다. 강의에서 SVM을 설명할 때는 Logistic Regression에서 시작해서 Cost Function으로 hinge loss라는 .. 2020. 8. 26.
[Machine Learning] Unsupervised Learning 비지도 학습 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. [Clusterning] 이전까지는 supervised learning 지도학습에 대해서 이야기를 했었고, supervised learning은 아래처럼 주어진 training set과 이에 해당하는 label이 존재했다. 따라서 그래프를 봐도 명확하게 구분이 된다. 하지만, unsupervised learning 비지도 학습은 아래처럼 label이 없고 단지 Training set만 존재한다. 그렇기 때문에, 우리는 이 data를 가지고 어떠한 구조를 가지는지 찾아야하고, 이것을 Unsupervised Learning이라고 한다. 우리는 Training Set을 비슷한 특성을 가진 data.. 2020. 8. 25.
[Machine Learning] Exam 6 (Week 7) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. 7주차 과제는 아래와 같다. gaussianKernel.m - SVM을 위한 가우시안 커널 코드를 작성하면 된다. dataset3Params.m - SVM의 파라미터 \(C, \sigma\)를 구하는 코드를 작성하면 된다. processEmail.m - Email의 단어들을 순회하면서 해당하는 Voca List의 index번호를 찾아서 반환하는 코드를 작성한다. emailFeatures.m - email로부터 feature를 추출해야 한다. 주어지는 함수들은 다음과 같다. 전체 코드는 아래 Github에서 확인할 수 있다. https://github.com/junstar92/Coursera/.. 2020. 8. 25.