1. 만약 가격을 결정하는 변수들이 많다면 어떻게 될까?
2. 피쳐의 수는 n을 쓰며, 데이터의 수는 m을 사용한다.
3. 분홍색, x2는 하나의 관측치 4개의 피쳐 모두를 말한다. 즉 n차원의 벡터를 말한다. j는 feature의 number를 말한다.
1. feature의 수가 많아졌기 때문에, 가격을 추론하는 식 또한 달라진다. 그것이 첫 번째 식이고, 그 중 하나의 구체적인 에시가 아래이다.
1. X0를 1로 놓은 것은, 새로운 피쳐 하나가 추가된 것으로 볼 수 있다. 모든 관측치에 대해 1의 값을 가지는.
2. Xi의 피처의수는 n차원의 벡터로 표현할 수 있고, 세타 역시 n차원의 벡터로 표현할 수 있다.
3. 그리고 가설 h는 세타의 전치행렬(1*n)에 피처의 행렬인 n*1 행렬을 곱하는 것으로 나타낼 수 있다.
4. 이러한 공식을 Multivariate linear regression, 다변량 회귀라고 부른다.
1. 어떻게 다변량 회귀에 경사하강법을 적용하는지 알아보자.
2. 우리가 구하려고 하는 것은 비용함수가 최소가 되는 지점이다. 경사 하강법에 의해서, 초기 세타값이 주어진 뒤, 비용함수르 계산하고, 그 비용함수의 미분을 통하여 세타 값을 찾아나간다.
1. n이 1일 때는 왼쪽과 같은 방식으로 세타를 갱신하지만, n이 1보다 틀 때는 오른쪽과 같은 일반화된 공식을 볼 수 있다.
2. 즉 세타 j는 비용함수의 부분미분을 한 것으로 볼 수 있다.
1. 만약 피쳐의 범위가 서로 다르다면, 경사하강법은 최적을 찾는데 시간이 오래 걸린다. 그렇기 때문에 각 feature들의 규모를 비슷하게 만들어줌으로써, 최적값을 찾는 시간을 줄일 수 있다.
2. 만약 차이가 위와 같이 차이가 난다면, 비용함수의 등고선은 위로 뾰족한 타원형이 되어 버린다. 왜냐하면 세타1이 변화함에 따를 비용함수 j의 변화량보다, 세타 2가 변함으로써 생기는 변화량이 더 작기 때문이다.
3. 세타1이 조금 증가하더라도 J의 값은 큰 폭으로 변하지만, 세타2는 많이 변하더라도 그 효가가 덜하다.
4. 일반적으로, 각 피쳐의 최대 값으로 나누어 주면 0<x <1사이의 값으로 스케일링을 할 수 있다.
5. 그렇게 되면 경사하강법은 좀더 직선적으로 전역 최소 값에 접근하게 된다.
1. 스케일리시에 값이 1 근처의 값인 것은 괜찮으나, 100이나 0.0001처럼 너무 크거나 작아도, 빠르게 찾는데에 장애가 된다.
2. 사람마다 스케일링의 규칙은 다르나, 교수님은 -3 새 3, -1/3 to 1/3을 쓴다고 한다. 0근처의 범위면 ok.
1. 또 다른 방법으로는 Mean normalization이 있다. 평균 정규화는 평균 값을 뺀 뒤에 전체 데이터 수로 나누어 주는 것이다.
2. 이를 변형하여, 일반정규분포를 표준정규분포화 시킬 때 쓰이는, 평균값을 빼고, 표준편차로 나누어 주는 방법도 있다. 이 방법을 쓰면 데이터의 평균은 0이 되고, 표준편차는 s인 표준정규분포를 만들 수 있게 된다.
1. 어떻게 경사하강법이 바르게 작동하도록 할까?
2. 그리고 어덯게 학습률을 선택해야 할까?
1. x축의 반복 횟수이고, 세로축이 비용함수인 그래프를 그려보면, 반복의 수가 많아질수록, 비용함수 j의 최솟값은 완만하게 작아진다.
2. 결론은 경사 하강이 수렴하는데 얼마나 반복해야 하는지 알 수 없다는 것이다.
3. 수렴한다고 판단하는 기준은 10의 마이너스 3승으로 변화하기 시작할 때를 기준으로 한다.
1. 만약 그래프가 왼쪽 상단처럼 증가한다고 하면, 이는 제대로 작동하고 있지 않은 것인데, 이는 오른쪽 중단의 그래프처럼, 오버슈팅(과한 학습을 보임)을 하는 것이다.(알파값이 너무 크다)
2. 내려가고 올라감을 반복하는 경우에도 알파값을 작게 해야 한다.
3. 알파가 적절이 작을 때, 비용함수는 감소한다고 한다.물론 너무 작아서 천천히 수렴하는 경우도 피해야 한다.
1. 학습률이 너무 작다면, 느리게 수렴하며, 너무 크다면, 수렴하지 못할 수도 있다.
2. 이 떄는 그래프를 그리는 것이 도움이 된다
3. 교수님은 0.001, 0.003, 0.01,0.03 0.1, 0.3,1을 돌려보면서, 빠르게 감소하는 알파를 선택한다.
1. 너비와 높이라는 두 가지의 피쳐를 넓이라는 하나의 피쳐로 바꿔 줄 수 있다. 그렇다면 두 결과는 완전히 다를까? 의미적인 차원에서 달라졌지만 어쨌든 frontage와depth라는 데이터가 나라갔으니... 축약이 있는 것이고..오히려 더 모호해지지 않을까? 또 그렇게 생각해보면, 인간의 사고가 모호하다는 측면과 맞기도 하고.
1. 또 다른 모데링 방법으로 다항회귀가 있다. 하지만 2차식 다항 회귀는 값이 일정이상 커지면 감소하기 때문에 적절하지 않다. 그래서 3차 다항 회귀를 사용하는 것이 더 옳다.
2. 삼차 다항식으로 사이즈에 관한 가설을 그려보았을 때, 각 관측치는 사이즈, 사이즈의 제곱 세제곱이 된다.
3. 이런 다항식을 사용할 수록, 즉 의미가 강해질수록, feature의 scaling은 중요해진다. 왜냐하면 결국 같은 정도를 나타내는 사이즈가 하나의 값을 결정하기 위해 규모만 달라지는 것이기 때문에, 이 규모에 대한 조절이 필요한 것이다.
1. 2차항 공식이 사이즈가 커짐에 따라 감소를 보이기 때문에, 3차식이나, 루트를 씌운 식을 다항식을 이용할 수도 있다.
'2019년 혁신성장 청년인재 집중양성(빅데이터) > [COURSERA] Machine Learning Stanford Uni' 카테고리의 다른 글
[week2] vectorization (0) | 2019.09.14 |
---|---|
[week2] Computing Parameters Analytically (0) | 2019.09.13 |
[week1] Linear Algebra Review, Matrices and Vectors (0) | 2019.09.12 |
[week 1] Model and Cost Function (0) | 2019.09.10 |
[week1] introduction (0) | 2019.09.09 |