일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- table not found
- addhooks
- 자원부족
- taint
- 깡돼후
- PytestPluginManager
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 개성국밥
- 달인막창
- python
- VARCHAR (1)
- JanusWebRTC
- Value too long for column
- 코루틴 컨텍스트
- PersistenceContext
- mp4fpsmod
- kotlin
- 티스토리챌린지
- JanusWebRTCGateway
- 오블완
- 코루틴 빌더
- terminal
- JanusWebRTCServer
- JanusGateway
- pytest
- Spring Batch
- 겨울 부산
- vfr video
- preemption #
- tolerated
너와 나의 스토리
Andrew Ng - machine learning 정리 [Lecture 2] 본문
Andrew Ng - machine learning 정리 [Lecture 2]
노는게제일좋아! 2019. 7. 3. 20:20강의: www.coursera.org
Lecture 2.1 Model Representation
●기호 표기
- x^i, y^i [x(i), y(i)] 이런 식으로 쓰이는데, 여기서 i는 제곱이 아니라 인덱스이다. x^3이면 x 자료에서 3번째 값을 의미하는 것이다.
●지도 알고리즘
Lecture 2.2 Cost Function
ㄴ 선형회귀(Linear Regression)에 대한 전반적인 목적 함수(objective function)이다.
* objective function = cost function = 오차함수의 제곱
-
최소 training set에서, x값이 주어진다면 우리는 y값을 예측할 수 있다.
-
h(x)와 y간의 차이를 작게 만들고 싶을 때
-
Θ0, Θ1: 최소값
-
x(i): 예측된 집 가격
-
y(i): 팔고자 하는 집의 실제 가격 (실제 팔리는 가격)
-
1/2m: 평균값
- cost function이 하는 일?
- cost function을 왜 사용해야 하는지에 대한 직감(intuition)
우리가 배우는 learning algorithm의 최선의 목표는 j(Θ1)을 최소화 하는 것이다.
오른쪽 곡선을 보면 j(Θ1)의 최소값은 Θ1이 1일 때이다.
-
Θ0가 추가된다면 J(Θ0, Θ1) 그래프는 다음과 같이 된다.
Lecture 2.3 Gradient Descent
기울기 하강(Gradient Descent)는 자주 사용되는 알고리즘으로 선형 회귀(Linear regression)에서만 사용되는 알고리즘이 아님 -> 함수들의 최소값을 구하기 위해 사용
cost function이 위와 같은 형태이면 시작점에 따라 minimize하는 부분이 달라짐.
-> 알고리즘 제대로 작동하지 않음
- cost함수 그래프를 그리면 위와 같은 2차 포물선이 그려짐
ㄴ 이걸 최소화 할 것
- 어떤 점에서 시작해서 Θ0, Θ1를 조금씩 바꿔가면서 j(Θ0, Θ1)를 줄임
(보통은 0,0으로 초기화 함)
[ 미분한 결과]
-
알파는 learning rate (상수)
ㄴ 얼마나 많은 값이 변하는가 에 대한 변수로, 파라미터 j 값에 영향을 받는다
-
알파에 cost 함수를 미분한 것(기울기)를 곱함
-
기울기가 양의 값이면 w를 감소시키고 기울기가 음의 값이면 w를 증가시키는 결과를 가져옴
Gradient descent algorithm:
에 수렴할 때까지 반복
미분계수(intuition)
-파라미터가 Θ1 하나일 때를 가정하자.
cost function의 최소값으로의 방향인 (d/dΘ1)J(Θ1)의 부호에 관계없이 Θ1은 결국 cost function의 최소값으로 수렴하게된다.
미분값이 음수라면 Θ1은 증가하고, 반대로 미분값이 양수라면 Θ1은 감소한다.
gradient descent의 수렴 과정에서 learning rate(알파)가 너무 낮다면 최소값까지 수렴하는데 필요한 반복 과정이 지나치게 많아질 수 있다. -> 조금씩 조금씩 이동함
반대로 learning rate이 너무 높다면 함수는 수렴하지 못하거나 발산할 수도 있다.
만약 파란색 화살표가 가리키는 곳에서 시작한다면 Θ1은 변하지 않는다.
-만약 learning rate가 고정되어 있다면
gradient descent는 최소값에 영향을 미치지 못한다.
핑크보다 초록색이, 초록색보다 빨간색 지점이 기울기가 덜 가파르다.
최소값에 가까워지고 있고, 미분계수는 0에 가까워지고 있기 때문이다.
즉, gradient descent는 지역 최소값에 가까워질수록, 더 작은 거리를 이동하게된다.
(최소값에 가까워진다는 것은=)지역 최소값의 정의는, 미분계수가 0이 되는 것이기 때문이다.
지역 최소값에 가까워질수록, 미분계수값은 작아지게 되고, 하강 기울기는 더 조금씩 이동하게되기 때문에 알파(learning rate)를 감소할 필요가 없다.
Gradient Descent For Linear Regression
cost function과 gradient descent를 함께 사용해서 Linear regression을 위한 알고리즘을 구하거나 일차함수를 구해보자
gradient descent를 사용해서 cost function 차의 제곱을 최소화하자
↓
gradient descent은 지역 최적값에 민감하다
어디서 시작하는 지에 따라 지역 최적값이 다르다 (언덕 같은 그래프 참조)
linear regression의 cost function은 항상 이런 활 모양의 함수가 된다.
기술적인 용어로는 볼록 함수라고 부른다.
이는 전역적 최적값(global optimal)만 가지고 지역 최적값(local optimal)은 가지지 않는다.
“Batch” Gradient Descent
“Batch”: gradient descent의 각 단계마다 모든 training examples을 사용하는 것
'Data Analysis > Machine learning' 카테고리의 다른 글
ARIMA(autoregressive integrated moving average)란? (0) | 2019.07.11 |
---|---|
Forecasting at Uber (0) | 2019.07.11 |
jupyter notebook [anaconda, tensorflow] (0) | 2019.07.05 |
Andrew Ng - machine learning 정리 [Lecture 4] (0) | 2019.07.03 |
Andrew Ng - machine learning 정리 [Lecture 1] (0) | 2019.07.03 |