User Tools

Site Tools


why_n-1_gradient_explanation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
why_n-1_gradient_explanation [2025/09/05 19:34] – [리소스를 많이 사용하지 않고 msr값이 최소가 되는 v값을 찾는 방법] hkimscilwhy_n-1_gradient_explanation [2025/09/05 19:51] (current) – [리소스를 많이 사용하지 않고 msr값이 최소가 되는 v값을 찾는 방법] hkimscil
Line 182: Line 182:
 # pick one random v in (x-v) # pick one random v in (x-v)
 v <- rnorm(1) v <- rnorm(1)
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +>
 </code> </code>
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
 +comment
   * 랜덤하게 v값을 찾음 ''v <- rnorm(1)''    * 랜덤하게 v값을 찾음 ''v <- rnorm(1)'' 
   * 원래는 mean(x)값 근처의 값을 랜덤하게 골라야 하므로   * 원래는 mean(x)값 근처의 값을 랜덤하게 골라야 하므로
Line 196: Line 207:
 </WRAP> </WRAP>
 </WRAP> </WRAP>
- 
-<code> 
  
  
 +<WRAP group>
 +<WRAP half column>
 +<code>
 # Train the model with scaled features # Train the model with scaled features
 learning.rate = 1e-1 learning.rate = 1e-1
 +</code>
 +</WRAP>
 +<WRAP half column>
 +comment
 +  * 이 0.1은 gradient function으로 구한 해단 v값에 대한 y 기울기 값을 (미분값)
 +  * 구한 후, 여기에 곱하기 위해서 지정한다.
 +</WRAP>
 +</WRAP>
  
 +<WRAP group>
 +<WRAP half column>
  
- +<code>
-grads <- c() +
-ssrs <- c()+
 msrs <- c() msrs <- c()
-mres <- c() 
 vs <- c() vs <- c()
-steps <- c() 
-# Record Loss for each epoch: 
-zx <- (x-mean(x))/sd(x) 
  
 nlen <- 75 nlen <- 75
 for (epoch in 1:nlen) { for (epoch in 1:nlen) {
   residual <- residuals(zx, v)   residual <- residuals(zx, v)
-  ssr.x <- ssr(zx, v) 
   msr.x <- msr(zx, v)   msr.x <- msr(zx, v)
-  ssrs <- append(ssrs, ssr.x) 
-  msrs <- append(msrs, msr.x) 
      
   grad <- gradient(zx, v)   grad <- gradient(zx, v)
-  grads <- append(grads, grad) +  step.v <- grad * learning.rate  
-  step.v <- grad * learning.rate +  v <- v - step.v # 그 다음 v값 
-  steps <- append(steps, step.v) +  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> 
-+<WRAP half column> 
-# zx <- (x-mean(x))/sd(x) +comment 
-# v.표준화 <- (v.원래 - mean(x))/sd(x) +</WRAP> 
-v.orig <- (v*sd(x))+mean(x)  +</WRAP>
-v.orig +
- +
-steps+
  
 +<WRAP group>
 +<WRAP half column>
 +<code>
 +# scaled
 +vs # 변화하는 v 값들의 집합 
 vs.orig <- (vs*sd(x))+mean(x)  vs.orig <- (vs*sd(x))+mean(x) 
 vs.orig vs.orig
-grads 
- 
  
 +# 마지막 v값이 최소값에 근접한 값
 +
 +v.orig <- (v*sd(x))+mean(x) 
 +v.orig
 </code> </code>
 +</WRAP>
 +<WRAP half column>
 +comment
 +</WRAP>
 +</WRAP>
why_n-1_gradient_explanation.1757068490.txt.gz · Last modified: 2025/09/05 19:34 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki