Machine Learning Lecture 3.

김찬진·2023년 10월 5일
0

MLstudy

목록 보기
3/8

학습 목적 : 선형 회귀를 더욱 효과 좋고 빠르게 하기 위함.

Multiple Features

**변수**

Untitled

  • 하나의 Feature 존재.

Untitled

  • 여러 개의 Feature 존재.
    • x 아랫첨자 : 몇 번째의 특징.
    • n : Feature들의 개수.
    • x벡터 윗첨자 : i번째 훈련 자료. (가로)
    • x 아랫첨자 j 윗첨자 i : j번째 특징에서 i행 Example. Untitled Model calculus

Untitled

  • 다중 Feature 모델 식에 있어 간략한 표기 진행.
  • b : 숫자
  • w→ : 행 Vector [w1 w2 w3 w4 …]
  • w→와 b는 Parameters of the model.

Benefit of Vectorization

기존의 모델링 과정

Untitled

  • 선형 대수 → 인덱스를 1부터 count.
  • Python code → 인덱스를 0부터 count.
  • 연산량이 많아질수록 연산하는 데에 있어 시간과 Resource가 낭비될 수 있음.

Vectorization for dot (내적)

Untitled

  1. 코드의 단순화 Benefit
  2. 실행 속도 Fast.
  3. 병렬 연산을 통해 확장성이 좋음.(효율성 증대)

Vectorization for Gradient descent

  • 인덱스가 16개라고 가정했을 때.
    1. Without Vectorization
      1. 16번의 연산 수행.
    2. With vectorization
      1. Array로 하나의 줄에 연산.

Gradient Descent for Multiple Regression

기존의 표기와 Vector 형태의 표기

Untitled

  • 간략한 표기 가능.

Untitled

벡터에 대한 함수로 계산을 Update.

Gradient Descent for multiple linear regression

Untitled

Case 1. 단일 Feature일 때

w 값이 자체적으로 모두 Update(w가 하나이기 때문)

b 값도 마찬가지겠지만 무엇보다 w,b 값이 동시에 update되어야 함.

Case 2. 여러 개의 Feature일 때

w와 x 값 전체가 아닌 w1 / x1부터 차례로 Gradient가 Update

(w1 ~ wj, x1 ~ xi)

동시에 wj, b값이 Update.

An alternative to gradient descent

Normal Equation(정규 방정식)

  • Linear Regression(선형 회귀)에만 해당.
  • w,b를 iteration(반복 연산) 없이 Solve할 수 있음.
  • 다른 알고리즘의 경우에는 정형화되어있지 않음(Doesn’t generalize)
  • Feature의 개수가 10,000개가 넘어갈 시점부터는 연산 속도가 느리다는 한계 존재.

→ 라이브러리를 활용하여 코드에서 구현은 가능하지만 Gradient Descent를 더 추천하는 바.

Feature Scaling Part 1

Untitled

Untitled

Untitled

  • 변수 간 range 차이가 너무 큼. → Reasonable 차이

⇒ feature 간 range의 간격이 어느 정도로 설정하느냐에 따라 예측 성능이 상당히 달라짐.

Untitled

값의 변화 폭에 따라 파라미터 값을 적절히 조정해주어야 함.

  • scatter plot 형태는 범위가 크지만 Contour plot는 범위가 적음.
  • contour plot은 반복 횟수가 더 많음.

Untitled

  • 특징 크기가 얼추 맞게 rescale해주어야 빠르게 Gradient Descent 작업이 수행될 수 있음.

Detail of Feature Scaling

Untitled

max 수치로 나눔 → scale의 범위를 Update해준다.

Mean normalization (평균 정규화)

Untitled

분모 : max range - min range

분자 : x1 - average x(u1)

-1~1 사이의 값으로.

Z-score normalization(Z점수 정규화)

Untitled

시그마 → 표준 편차.

Standard of Feature Scaling

Untitled

Checking gradient descent for covergence

Untitled

Alpha value → Learning Rate

Make sure gradient descent is working

Untitled

iteration 수가 많아질 수록 비용 함수 J의 값이 작아져야 함.

400번의 iteration을 수행했을 떄 converged된 것을 확인(수렴한 것을 확인.)

[Automatic convergence test]

엡실론 값(0.001, 10의 -3승)보다 비용함수의 감소가 반복 연산 시에 더욱 낮았을 경우, 수렴했다고 선언한다.

(전역 최솟값에 거의 근접했다.)

Choosing the Learning Rate

Untitled

→ 비용 함수의 미분값 부호가 바뀌는 시점 발생 → 버그가 있거나 학습률이 너무 크게 설정되어 있다는 것임.

Untitled

학습률의 조정이 매우 중요.반대로 학습률이 너무 적어지면 수행 시간이 너무 오래 걸리는 경향 있음.

Feature Engineering

Untitled

변수끼리 곱한다.

Untitled

“이 점 참고”

Polynomial Regression(다항 회귀)

함숫값의 변수가 여러 개이거나 곡선 형태에 있을 때 사용.

Untitled

함수 곡선 형태에 따라 함수를 고려해야 함.

Feature Scaling을 따졌을 때 3차 함수의 방향보다는 루트나 로그 함수를 추천하는 바.
Untitled

profile
본업은 개발하고 취미로 밴드하는 태양인입니다 :)

0개의 댓글