Machine Learning Study(6)
-
Linear Regression - Gradient Descent
1. Gradient Descent "깊은 골짜기를 찾고 싶을 때에는 가장 가파른 내리막 방향으로 산을 내려가라" 이러한 그레디언트의 특성을 이용하여 어떤 비용함수의 값을 최소화시키기 위한 파라미터 값을 구함. 미분 계수 = 0 이되는 구간이 올 때까지 연산 진행. 2. Learning Rate 학습률이 너무 작을 경우 — 알고리즘이 수렴하기 위해 반복을 많이 진행해야 하므로 학습 시간이 오래걸림 — 지역 최솟값(local minimum)에 수렴할 수 있음 학습률이 너무 클 경우 — 학습 시간이 적게 걸리나 — 스텝이 너무 커 전역 최솟값(global minimum)을 가로질러 반대편으로 건너뛰어 최솟값에서 멀어질 수 있음 3. Gradient Descent 과정 Step 1. 특정 파라미터 값으로 시작..
2020.04.23 -
Normal Equation - python 코드
1. normal_eq.py fit 메서드 조건 """ Linear regression 모델을 적합한다. Matrix X와 Vector Y가 입력 값으로 들어오면 Normal equation을 활용하여, weight값을 찾는다. 이 때, instance가 생성될 때, fit_intercept 설정에 따라 fit 실행이 달라진다. fit을 할 때는 입력되는 X의 값은 반드시 새로운 변수(self._new_X)에 저장 된 후 실행되어야 한다. fit_intercept가 True일 경우: - Matrix X의 0번째 Column에 값이 1인 column vector를추가한다. 적합이 종료된 후 각 변수의 계수(coefficient 또는 weight값을 의미)는 self._coef와 self._intercept..
2020.04.20 -
Linear Regression - Normal Equation
1. Normal Equtation weight 값, 정확히는 weight_hat 값을 구하는 방법 중 하나. 2. 설명 대문자 Bold : Matrix 소문자 Bold : Vector X의 transpose를 이용하여 weigth를 계산 3. 결론 X^T * X의 역행렬이 존재할 때 사용 Iteration 등 사용자 지정 parameter가 없음 Feature가 많으면 속도가 느림
2020.04.20 -
Linear Regression (선형회귀)
1. 선형회귀란? D차원 벡터 독립 변수 x와 이에 대응하는 스칼라 종속 변수 y간의 관계를 정량적으로 찾아내는 작업. w0, ⋯, wD를 함수 f(x)의 계수(coefficient)이자 이 선형 회귀모형의 모수(parameter)라고 한다. 2. Hypothesis (가설) h(x) 또는 H(x)로 표현. H(x) = Wx + b W = weight(가중치) b = bias 주어진 데이터로부터 y와 x의 관계를 가장 잘 나타내는 직선을 그리는 일. 어떤 직선인지 결정하는 것은 W와 b의 값이므로 선형 회귀에서 해야할 일은 결국 적절한 W와 b를 찾아내는 일. 3. Cost Function (비용함수) W와 b를 찾는 과정에서 발생하는 실제값과 예측값의 오차를 계산하고 그 오차를 최소화하기 위함. MSE..
2020.04.17 -
Linear Algebra (선형대수)
선형대수 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야. 현대 선형대수학은 그중에서도 벡터 공간이 주 연구 대상. 행렬(matrix) & 벡터(vector) 표기 단위 행렬 (identity matrix) 전치 행렬 (transpose of a matrix) Instance (Y값) W : Weight(가중치)
2020.04.16 -
Numpy Study
import numpy as np 1. ndarray 생성 함수목적 n의 제곱수로 2 dimentional array를 생성하는 ndarray. Args n: 생성하고자 하는 ndarray의 row와 column의 개수 dtype: 생성하려는 ndarray의 data type (np.int) Returns row와 column의 길이가 n인 two dimentional ndarray로 X[0,0]은 0으로 순차적으로 X[n-1,n-1]은 n^2-1이 할당됨 def n_size_ndarray_creation(n, dtype=np.int): X = None X = np.array(np.arange(n ** 2, dtype=dtype).reshape(-1, n)) print(X) return X 2. 지정된 ..
2020.04.16