본문 바로가기

분류 전체보기465

[Machine Learning] Logistic Regression 1 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Logistic Regression 로지스틱 회귀 이번 글과 다음 글은 classification(분류) 문제에서 주어진 data들을 discrete value(class)로 분류하기 위한 방법에 대해서 알아볼 것이다. 원하는 결과값 y는 분류된 class들 중에 하나에 속하게 된다. 분류(Classification)의 예시는 다음과 같다. - Email : Spam or Not Spam ? - Online Transactions : Fraudulent (Yes / No) ? - 온라인 거래 : 사기인지 아닌지 - Tumor : Malignant / Benign ? - 악성/양성 종양 위.. 2020. 8. 7.
[Machine Learning] Exam 1(Programming Assignment) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. ※ 아래에 문제 풀이가 있습니다. 원하지 않는다면 스크롤을 내리지 마세요. 2주차를 끝내고 Octave로 직접 코드 작성하여 제출하는 과제이다. 과제를 다운로드하여 압축을 풀면 다음과 같은 파일들이 있다. 우리가 작성해야되는 목록은 다음과 같다. 자세한 내용은 Ex1.pdf를 참조하면 된다. warmUpExercise.m - 5x5 단위행렬 A 반환하는 코드 작성(필수) plotData.m - 데이터의 분포를 볼 수 있는 figure를 만드는 코드 작성(필수) computeCost.m - univariate linear regression의 Cost Function J의 값을 반환하는 코드 .. 2020. 8. 7.
[Machine Learning] Octave 설치 / Vectorization(벡터화에대해서) 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. Octave는 수치해석용 프로그램으로 Matlab의 대체재로 많이 쓰이며, Matlab과 호환성이 높다. 특히, 오픈소스로 무료로 사용이 가능하다. [GNU Octave 설치] 다음 사이트에서 설치가 가능하다. https://www.gnu.org/software/octave/download.html Download GNU Octave is a programming language for scientific computing. www.gnu.org 설치 방법은 wiki를 참조하였다. (https://wiki.octave.org/Octave_for_Microsoft_Windows) 나는 Wind.. 2020. 8. 7.
[Machine Learning] Computing Parameters Analytically 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. [Normal Equation] : Method to solve for parameter analytically 이번 시간에는 Normal Equation에 대해서 배워볼 것이다. 이 방법은 특정 Linear Regression(선형회귀)에서 파라미터 의 구하는데 효과적인 방법이다. 지금까지의 Gradient Descent는 Cost Function의 값을 최소화하기 위한 것이었고, Gradient Descent를 여러 번 반복하고 나서야 최소값으로 수렴을 했었다. 하지만 Normal Equation은 Analytically(분석적으로) 단 한번의 연산으로 최소값을 구하는 방법이다. 예를 들.. 2020. 8. 4.
[Machine Learning] Multivariate Linear Regression 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Multivariate Linear Regression [Multiple features] 우리가 앞서 배운 Linear Regression 에서는 하나의 feature를 가진 x(집의 넓이)가 있었고, 그 x로 y(집의 가격)를 예측하는 것이었다. 하지만, 집의 가격을 결정하는 요소(feature)로 '침실의 개수' 또는 집이 지어진 지 얼마나 오래되었는 지도 알고 있다면 가격읠 결정하는 더 많은 요소(feature)를 갖게 된다. 이처럼 실제 상황에서는 하나의 변수만으로는 예측하기 어려운 경우가 많고, 이번 시간에 여러 개의 변수를 이용한 Multivariable Linear Regr.. 2020. 8. 4.
[Machine Learning] Gradient Descent 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Gradient Descent 경사 하강법 Gradient Descent Algorithm은 Cost Function의 최소값을 구하는 알고리즘이다(즉, 최소가 되도록 하는 을 구하는 알고리즘이다). 이 알고리즘은 Linear Regression 뿐만 아니라 대부분의 머신러닝에서 실제로 사용되는 알고리즘이다. Gradient Descent 알고리즘은 다음과 같은 방법으로 진행된다. 1. Start with some (say ) 2. Keep changeing to reduce until we hopefully end up at a minimum 즉, 임의의 초기값으로 시작하여, 최소의 C.. 2020. 8. 4.
[Machine Learning] Model and Cost Function 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Model Representation 위의 그래프는 집 크기에 따른 가격을 나타낸 것이고, 1250 feet^2의 집의 적합한 가격을 추측한다고 가정해보자. 이런 상황에서 우리는 데이터에 맞는 모델을 찾기 위해 직선을 하나 그어서 그에 대응하는 가격을 추측할 수 있다. 이러한 예시가 지난 강의에서 다루었던 Supervised Learning(지도학습) 중 Regression(회귀)의 예시 중의 하나이다. 이러한 모델을 통해서 우리는 1250 feet^2에 해당하는 적합한 가격이 220,000달러라고 말할 수 있다. 이것이 Supervised Learning이라고 불리는 이유는 데이터 예시.. 2020. 8. 4.
[Machine Learning] Supervised Learning/Unsupervised Learning 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Supervised Learning 지도 학습 Supervised Learning이란, 특정 input에 대한 output(올바른 답) 샘플(label)의 데이터 셋이 주어져서 이 정보로부터 input과 output의 관계를 유추하는 것이다. 즉, 기존 정보를 토대로 새로운 input에 대한 output을 추측하는 것이다. Supervised Learning은 크게 Regression(회귀)와 Classification(분류)로 나눌 수 있다. - Regression(회귀) 회귀란 연속적인 값을 예측하는 것이다. 위의 주택 가격 예측 그래프를 살펴보자. x축은 집의 크기이며, y축은 가격.. 2020. 8. 2.
[Machine Learning] Intro / 머신러닝이란 ? 해당 내용은 Andrew Ng 교수님의 Machine Learning 강의(Coursera)를 정리한 내용입니다. - Intro 머신러닝은 흥미로운 분야 중에 하나이다. Andrew Ng 교수님의 머신러닝 강의를 통해서 현재 사용되는 알고리즘을 알아보고 예제를 통해서 직접 사용해볼 것이다. 우리는 우리도 모르게 학습 알고리즘(learning algorithm)을 사용하고 있다. 구글을 통해 검색을 할 때, 웹 검색 엔진을 사용하는데 검색엔진들이 검색을 적절하게 잘 하기 위해서 학습 알고리즘을 사용한다(이 알고리즘을 통해 고글이나 마이크로소프트와 웹 페이지들을 최상위에 표시하게 된다). 페이스북이나 애플의 사진 어플리케이션을 사용할 때, 얼굴을 인식할 수 있는데 이것 또한 머신러닝을 통하여 가능하게 한다... 2020. 8. 2.
[Ruby/루비] 코드 블록과 yield 코드 블록은 이름이 없는 함수를 뜻하며, 코드 블록을 어떤 함수나 메서드에 매개변수로 전달할 수 있습니다. 아래를 살펴봅시다. 이전에 숫자 3은 Integer 객체라고 배웠고, times는 Integer에 정의된 메서드입니다. times 메서드는 다음에 오는 코드 블록을 넘겨 받아 주어진 내용은 숫자만큼 반복합니다. 코드 블록은 { } 중괄호를 사용하거나 아래와 같이 do/end를 사용해서 만들 수도 있습니다. times를 두 번 호출해보았는데, 메서드는 소괄호가 있어도 되고, 없어도 됩니다. 흔히 코드 블록이 한 줄로 표현이 되면 중괄호를 사용하고, 한 줄이 넘어가면 do/end를 사용합니다. 코드 블록은 하나 혹은 그 이상의 매개변수를 받아들일 수 있습니다. 위 코드는 루비에게 배열 안에 있는 모든 .. 2020. 7. 31.