why_n-1_gradient_explanation
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| why_n-1_gradient_explanation [2025/09/05 19:21] – [리소스를 많이 사용하지 않고 msr값이 최소가 되는 v값을 찾는 방법] hkimscil | why_n-1_gradient_explanation [2025/09/05 19:51] (current) – [리소스를 많이 사용하지 않고 msr값이 최소가 되는 v값을 찾는 방법] hkimscil | ||
|---|---|---|---|
| Line 122: | Line 122: | ||
| return(dx) | return(dx) | ||
| } # function returns ds value | } # function returns ds value | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | > | ||
| </ | </ | ||
| </ | </ | ||
| Line 136: | Line 150: | ||
| </ | </ | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| < | < | ||
| residuals <- function(x, v) { | residuals <- function(x, v) { | ||
| Line 151: | Line 168: | ||
| # return(mean(residuals^2)) | # return(mean(residuals^2)) | ||
| } | } | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | msr값을 구하기 위한 function | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | < | ||
| + | zx <- (x-mean(x))/ | ||
| # pick one random v in (x-v) | # pick one random v in (x-v) | ||
| v <- rnorm(1) | v <- rnorm(1) | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | > | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | comment | ||
| + | * 랜덤하게 v값을 찾음 '' | ||
| + | * 원래는 mean(x)값 근처의 값을 랜덤하게 골라야 하므로 | ||
| + | * '' | ||
| + | * 그렇게 하질 않고 x 집합의 원소들을 표준점수화 한 후 '' | ||
| + | * (이렇게 표준점수화 하면 x 변인의 평균이 0, 표준편차가 1 이 되는 집합으로 변한다) | ||
| + | * '' | ||
| + | * 이렇게 하는 이유는 혹시 나중에 다른 x집합에 똑같은 작업을 하더라도 그 집합의 평균과 표준편차를 사용하지 않고 | ||
| + | * 단순히 '' | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | < | ||
| # Train the model with scaled features | # Train the model with scaled features | ||
| learning.rate = 1e-1 | learning.rate = 1e-1 | ||
| + | </ | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | comment | ||
| + | * 이 0.1은 gradient function으로 구한 해단 v값에 대한 y 기울기 값을 (미분값) | ||
| + | * 구한 후, 여기에 곱하기 위해서 지정한다. | ||
| + | </ | ||
| + | </ | ||
| - | grads <- c() | + | <WRAP group> | 
| - | ssrs <- c() | + | <WRAP half column> | 
| + | |||
| + | < | ||
| msrs <- c() | msrs <- c() | ||
| - | mres <- c() | ||
| vs <- c() | vs <- c() | ||
| - | steps <- c() | ||
| - | # Record Loss for each epoch: | ||
| - | zx <- (x-mean(x))/ | ||
| nlen <- 75 | nlen <- 75 | ||
| for (epoch in 1:nlen) { | for (epoch in 1:nlen) { | ||
| residual <- residuals(zx, | residual <- residuals(zx, | ||
| - | ssr.x <- ssr(zx, v) | ||
| msr.x <- msr(zx, v) | msr.x <- msr(zx, v) | ||
| - | ssrs <- append(ssrs, | ||
| - | msrs <- append(msrs, | ||
|  |  | ||
| grad <- gradient(zx, | grad <- gradient(zx, | ||
| - |  | + | step.v <- grad * learning.rate | 
| - |  | + | v <- v - step.v | 
| - | steps <- append(steps, | + | vs <- append(vs, v) # v값 저장 | 
| - | v <- v - step.v | + | |
| - | vs <- append(vs, v) | + | |
| } | } | ||
| - | tail(grads) | ||
| tail(msrs) | tail(msrs) | ||
| - | tail(ssrs) | ||
| tail(vs) | tail(vs) | ||
| plot(msrs) | plot(msrs) | ||
| - | plot(ssrs) | ||
| plot(vs) | plot(vs) | ||
| - | plot(grads) | + | </code> | 
| - | # scaled | + | </WRAP> | 
| - | v | + | <WRAP half column> | 
| - | # zx <- (x-mean(x))/sd(x) | + | comment | 
| - | # v.표준화 | + | </ | 
| - | v.orig | + | </ | 
| - | v.orig | + | |
| - | + | ||
| - | steps | + | |
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | < | ||
| + | # scaled | ||
| + | vs # 변화하는 v 값들의 집합 | ||
| vs.orig <- (vs*sd(x))+mean(x) | vs.orig <- (vs*sd(x))+mean(x) | ||
| vs.orig | vs.orig | ||
| - | grads | ||
| - | |||
| + | # 마지막 v값이 최소값에 근접한 값 | ||
| + | v | ||
| + | v.orig <- (v*sd(x))+mean(x) | ||
| + | v.orig | ||
| </ | </ | ||
| + | </ | ||
| + | <WRAP half column> | ||
| + | comment | ||
| + | </ | ||
| + | </ | ||
why_n-1_gradient_explanation.1757067709.txt.gz · Last modified:  by hkimscil
                
                