gradient_descent
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| gradient_descent [2026/05/12 21:50] – [ro01] hkimscil | gradient_descent [2026/05/12 22:02] (current) – [ro01] hkimscil | ||
|---|---|---|---|
| Line 755: | Line 755: | ||
| } | } | ||
| - | mses | ||
| - | as | ||
| - | bs | ||
| - | |||
| - | ep | ||
| - | das | ||
| - | dbs | ||
| tmp <- data.frame(ep, | tmp <- data.frame(ep, | ||
| tmp | tmp | ||
| + | # 위의 루프를 이해했는지 체크하기 | ||
| a.init | a.init | ||
| b.init | b.init | ||
| Line 773: | Line 767: | ||
| tmp.g | tmp.g | ||
| + | # 이 값에 learning rate 값을 곱한 후에 | ||
| a.step <- tmp.g$a*learning.rate | a.step <- tmp.g$a*learning.rate | ||
| b.step <- tmp.g$b*learning.rate | b.step <- tmp.g$b*learning.rate | ||
| + | # 이를 원래 a값에서 빼준 값을 다음 순서의 | ||
| a.init <- a.init-a.step | a.init <- a.init-a.step | ||
| b.init <- b.init-b.step | b.init <- b.init-b.step | ||
| + | # a, b값으로 쓰고, 이 때의 미분 값을 구한 후에 | ||
| + | # (루프 안에서), 미분 결과를 다시 learning rate | ||
| + | # 로 곱해 준 값을 (두번째 단계의) a, b 값에서 | ||
| + | # 빼 준 값을 다음 단계의 a, b값으로 쓰고, 다시 | ||
| + | # . . . . . . 위의 loop문은 이것을 75번 반복한 것 | ||
| # scaled | # scaled | ||
| + | # 이렇게 해서 구한 제일 마지막 a, b 값은 x 변인 대신에 | ||
| + | # 표준화한 zx 변인을 사용해서 구한 값이므로 이 값을 | ||
| + | # 다시 x 를 사용했을 때의 값으로 환원을 해야 한다 (unscale). | ||
| data.frame(a, | data.frame(a, | ||
| Line 786: | Line 790: | ||
| # and | # and | ||
| # http:// | # http:// | ||
| - | # | ||
| a = a - (mean(x) / sd(x)) * b | a = a - (mean(x) / sd(x)) * b | ||
| b = b / sd(x) | b = b / sd(x) | ||
| cat(" unscaled a:", a, "\n unscaled b:", b, " | cat(" unscaled a:", a, "\n unscaled b:", b, " | ||
| + | # 아래 lm 결과와 확인 | ||
| summary(mo) | summary(mo) | ||
| - | # changes of estimators | + | # 아래는 a와 b를 구하는 과정에서 저장했던 temporary |
| + | # a, b 값들은 (as, bs 변인 내의) 모두 unscale한 것 | ||
| as <- as - (mean(x) /sd(x)) * bs | as <- as - (mean(x) /sd(x)) * bs | ||
| bs <- bs / sd(x) | bs <- bs / sd(x) | ||
| Line 799: | Line 804: | ||
| bs | bs | ||
| + | # 이것을 그래프로 나타내기 위해서 parameters 라는 | ||
| + | # 변인으로 저장 | ||
| + | # 이하 if 문들은 그래프에 처음 a, b값과 루프 문에서의 | ||
| + | # 그 값들이 변화하는 것을 모두 나타내기 위해서 사용한 | ||
| + | # 것으로 결과와 상관없다. | ||
| parameters <- data.frame(as, | parameters <- data.frame(as, | ||
| Line 862: | Line 872: | ||
| <tabbox ro01> | <tabbox ro01> | ||
| < | < | ||
| - | > | ||
| > # 아래는 a 와 b 를 랜덤하게 정한 후 (rnorm) | > # 아래는 a 와 b 를 랜덤하게 정한 후 (rnorm) | ||
| > # 두 가지 일을 하게 된다. 첫 째는 | > # 두 가지 일을 하게 된다. 첫 째는 | ||
| Line 932: | Line 941: | ||
| + } | + } | ||
| > | > | ||
| - | > mses | ||
| - | [1] 18.5823236 11.9374649 | ||
| - | [10] 0.4438601 | ||
| - | [19] 0.1157683 | ||
| - | [28] 0.1098327 | ||
| - | [37] 0.1097253 | ||
| - | [46] 0.1097234 | ||
| - | [55] 0.1097233 | ||
| - | [64] 0.1097233 | ||
| - | [73] 0.1097233 | ||
| - | > as | ||
| - | [1] -0.1210308 | ||
| - | [10] 2.7200426 | ||
| - | [19] 3.1013651 | ||
| - | [28] 3.1525453 | ||
| - | [37] 3.1594146 | ||
| - | [46] 3.1603366 | ||
| - | [55] 3.1604603 | ||
| - | [64] 3.1604769 | ||
| - | [73] 3.1604792 | ||
| - | > bs | ||
| - | [1] -0.882887399 -0.678061874 -0.513791804 -0.382047207 -0.276388041 -0.191649390 -0.123688991 | ||
| - | [8] -0.069184752 -0.025472351 | ||
| - | [15] 0.104469854 | ||
| - | [22] 0.141529980 | ||
| - | [29] 0.149439087 | ||
| - | [36] 0.151126992 | ||
| - | [43] 0.151487213 | ||
| - | [50] 0.151564088 | ||
| - | [57] 0.151580495 | ||
| - | [64] 0.151583996 | ||
| - | [71] 0.151584743 | ||
| - | > | ||
| - | > ep | ||
| - | | ||
| - | [34] 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | ||
| - | [67] 67 68 69 70 71 72 73 74 75 | ||
| - | > das | ||
| - | [1] -8.203776e+00 -6.563021e+00 -5.250416e+00 -4.200333e+00 -3.360267e+00 -2.688213e+00 -2.150571e+00 | ||
| - | [8] -1.720456e+00 -1.376365e+00 -1.101092e+00 -8.808737e-01 -7.046990e-01 -5.637592e-01 -4.510073e-01 | ||
| - | [15] -3.608059e-01 -2.886447e-01 -2.309158e-01 -1.847326e-01 -1.477861e-01 -1.182289e-01 -9.458309e-02 | ||
| - | [22] -7.566648e-02 -6.053318e-02 -4.842654e-02 -3.874124e-02 -3.099299e-02 -2.479439e-02 -1.983551e-02 | ||
| - | [29] -1.586841e-02 -1.269473e-02 -1.015578e-02 -8.124626e-03 -6.499701e-03 -5.199761e-03 -4.159809e-03 | ||
| - | [36] -3.327847e-03 -2.662277e-03 -2.129822e-03 -1.703858e-03 -1.363086e-03 -1.090469e-03 -8.723751e-04 | ||
| - | [43] -6.979001e-04 -5.583200e-04 -4.466560e-04 -3.573248e-04 -2.858599e-04 -2.286879e-04 -1.829503e-04 | ||
| - | [50] -1.463603e-04 -1.170882e-04 -9.367056e-05 -7.493645e-05 -5.994916e-05 -4.795933e-05 -3.836746e-05 | ||
| - | [57] -3.069397e-05 -2.455518e-05 -1.964414e-05 -1.571531e-05 -1.257225e-05 -1.005780e-05 -8.046240e-06 | ||
| - | [64] -6.436992e-06 -5.149594e-06 -4.119675e-06 -3.295740e-06 -2.636592e-06 -2.109273e-06 -1.687419e-06 | ||
| - | [71] -1.349935e-06 -1.079948e-06 -8.639584e-07 -6.911667e-07 -5.529334e-07 | ||
| - | > dbs | ||
| - | [1] -2.553934e+00 -2.048255e+00 -1.642701e+00 -1.317446e+00 -1.056592e+00 -8.473865e-01 -6.796040e-01 | ||
| - | [8] -5.450424e-01 -4.371240e-01 -3.505734e-01 -2.811599e-01 -2.254902e-01 -1.808432e-01 -1.450362e-01 | ||
| - | [15] -1.163191e-01 -9.328788e-02 -7.481688e-02 -6.000314e-02 -4.812252e-02 -3.859426e-02 -3.095260e-02 | ||
| - | [22] -2.482398e-02 -1.990883e-02 -1.596688e-02 -1.280544e-02 -1.026996e-02 -8.236511e-03 -6.605682e-03 | ||
| - | [29] -5.297757e-03 -4.248801e-03 -3.407538e-03 -2.732846e-03 -2.191742e-03 -1.757777e-03 -1.409737e-03 | ||
| - | [36] -1.130609e-03 -9.067487e-04 -7.272125e-04 -5.832244e-04 -4.677460e-04 -3.751323e-04 -3.008561e-04 | ||
| - | [43] -2.412866e-04 -1.935118e-04 -1.551965e-04 -1.244676e-04 -9.982301e-05 -8.005805e-05 -6.420656e-05 | ||
| - | [50] -5.149366e-05 -4.129791e-05 -3.312093e-05 -2.656298e-05 -2.130351e-05 -1.708542e-05 -1.370250e-05 | ||
| - | [57] -1.098941e-05 -8.813506e-06 -7.068432e-06 -5.668882e-06 -4.546444e-06 -3.646248e-06 -2.924291e-06 | ||
| - | [64] -2.345281e-06 -1.880915e-06 -1.508494e-06 -1.209812e-06 -9.702695e-07 -7.781561e-07 -6.240812e-07 | ||
| - | [71] -5.005131e-07 -4.014115e-07 -3.219321e-07 -2.581895e-07 -2.070680e-07 | ||
| > tmp <- data.frame(ep, | > tmp <- data.frame(ep, | ||
| > tmp | > tmp | ||
| - | | + | |
| - | 1 1 -8.203776e+00 -0.1210308 -2.553934e+00 | + | 1 1 -8.349964e+00 -0.1795060 6.595337e-01 0.4187294 |
| - | 2 2 -6.563021e+00 0.5352713 -2.048255e+00 | + | 2 2 -6.679971e+00 0.4884911 5.289460e-01 0.3658348 |
| - | 3 3 -5.250416e+00 1.0603129 -1.642701e+00 | + | 3 3 -5.343977e+00 1.0228888 4.242147e-01 0.3234133 |
| - | 4 4 -4.200333e+00 1.4803462 -1.317446e+00 | + | 4 4 -4.275181e+00 1.4504069 3.402202e-01 0.2893913 |
| - | 5 5 -3.360267e+00 1.8163729 -1.056592e+00 | + | 5 5 -3.420145e+00 1.7924215 2.728566e-01 0.2621057 |
| - | 6 6 -2.688213e+00 2.0851942 -8.473865e-01 -0.191649390 | + | 6 6 -2.736116e+00 2.0660331 2.188310e-01 0.2402226 |
| - | 7 7 -2.150571e+00 2.3002513 -6.796040e-01 -0.123688991 | + | 7 7 -2.188893e+00 2.2849224 1.755025e-01 0.2226723 |
| - | 8 8 -1.720456e+00 2.4722969 -5.450424e-01 -0.069184752 | + | 8 8 -1.751114e+00 2.4600338 1.407530e-01 0.2085970 |
| - | 9 9 -1.376365e+00 2.6099334 -4.371240e-01 -0.025472351 | + | 9 9 -1.400891e+00 2.6001229 1.128839e-01 0.1973086 |
| - | 10 10 -1.101092e+00 2.7200426 -3.505734e-01 | + | 10 10 -1.120713e+00 2.7121942 9.053288e-02 0.1882553 |
| - | 11 11 -8.808737e-01 2.8081300 -2.811599e-01 | + | 11 11 -8.965705e-01 2.8018513 7.260737e-02 0.1809946 |
| - | 12 12 -7.046990e-01 2.8785999 -2.254902e-01 | + | 12 12 -7.172564e-01 2.8735769 5.823111e-02 0.1751715 |
| - | 13 13 -5.637592e-01 2.9349758 -1.808432e-01 | + | 13 13 -5.738051e-01 2.9309574 4.670135e-02 0.1705014 |
| - | 14 14 -4.510073e-01 2.9800766 -1.450362e-01 | + | 14 14 -4.590441e-01 2.9768619 3.745448e-02 0.1667559 |
| - | 15 15 -3.608059e-01 3.0161571 -1.163191e-01 | + | 15 15 -3.672353e-01 3.0135854 3.003849e-02 0.1637521 |
| - | 16 16 -2.886447e-01 3.0450216 -9.328788e-02 0.113798642 | + | 16 16 -2.937882e-01 3.0429642 2.409087e-02 0.1613430 |
| - | 17 17 -2.309158e-01 3.0681132 -7.481688e-02 0.121280331 | + | 17 17 -2.350306e-01 3.0664673 1.932088e-02 0.1594109 |
| - | 18 18 -1.847326e-01 3.0865865 -6.000314e-02 0.127280644 | + | 18 18 -1.880245e-01 3.0852697 1.549535e-02 0.1578613 |
| - | 19 19 -1.477861e-01 3.1013651 -4.812252e-02 0.132092896 | + | 19 19 -1.504196e-01 3.1003117 1.242727e-02 0.1566186 |
| - | 20 20 -1.182289e-01 3.1131880 -3.859426e-02 | + | 20 20 -1.203357e-01 3.1123452 9.966668e-03 0.1556220 |
| - | 21 21 -9.458309e-02 3.1226463 -3.095260e-02 | + | 21 21 -9.626853e-02 3.1219721 7.993268e-03 0.1548226 |
| - | 22 22 -7.566648e-02 3.1302129 -2.482398e-02 | + | 22 22 -7.701482e-02 3.1296736 6.410601e-03 0.1541816 |
| - | 23 23 -6.053318e-02 3.1362662 -1.990883e-02 | + | 23 23 -6.161186e-02 3.1358348 5.141302e-03 0.1536674 |
| - | 24 24 -4.842654e-02 3.1411089 -1.596688e-02 | + | 24 24 -4.928949e-02 3.1407637 4.123324e-03 0.1532551 |
| - | 25 25 -3.874124e-02 3.1449830 -1.280544e-02 | + | 25 25 -3.943159e-02 3.1447069 3.306906e-03 0.1529244 |
| - | 26 26 -3.099299e-02 3.1480823 -1.026996e-02 | + | 26 26 -3.154527e-02 3.1478614 2.652139e-03 0.1526592 |
| - | 27 27 -2.479439e-02 3.1505617 -8.236511e-03 0.148248743 | + | 27 27 -2.523622e-02 3.1503850 2.127015e-03 0.1524465 |
| - | 28 28 -1.983551e-02 3.1525453 -6.605682e-03 0.148909311 | + | 28 28 -2.018897e-02 3.1524039 1.705866e-03 0.1522759 |
| - | 29 29 -1.586841e-02 3.1541321 -5.297757e-03 0.149439087 | + | 29 29 -1.615118e-02 3.1540190 1.368105e-03 0.1521391 |
| - | 30 30 -1.269473e-02 3.1554016 -4.248801e-03 0.149863967 | + | 30 30 -1.292094e-02 3.1553111 1.097220e-03 0.1520294 |
| - | 31 31 -1.015578e-02 3.1564172 -3.407538e-03 | + | 31 31 -1.033675e-02 3.1563448 8.799704e-04 0.1519414 |
| - | 32 32 -8.124626e-03 3.1572296 -2.732846e-03 | + | 32 32 -8.269403e-03 3.1571717 7.057362e-04 0.1518708 |
| - | 33 33 -6.499701e-03 3.1578796 -2.191742e-03 | + | 33 33 -6.615523e-03 3.1578333 5.660005e-04 0.1518142 |
| - | 34 34 -5.199761e-03 3.1583996 -1.757777e-03 | + | 34 34 -5.292418e-03 3.1583625 4.539324e-04 0.1517688 |
| - | 35 35 -4.159809e-03 3.1588156 -1.409737e-03 | + | 35 35 -4.233935e-03 3.1587859 3.640538e-04 0.1517324 |
| - | 36 36 -3.327847e-03 3.1591484 -1.130609e-03 | + | 36 36 -3.387148e-03 3.1591246 2.919711e-04 0.1517032 |
| - | 37 37 -2.662277e-03 3.1594146 -9.067487e-04 0.151217667 | + | 37 37 -2.709718e-03 3.1593956 2.341608e-04 0.1516798 |
| - | 38 38 -2.129822e-03 3.1596276 -7.272125e-04 0.151290388 | + | 38 38 -2.167774e-03 3.1596124 1.877970e-04 0.1516610 |
| - | 39 39 -1.703858e-03 3.1597980 -5.832244e-04 0.151348711 | + | 39 39 -1.734220e-03 3.1597858 1.506132e-04 0.1516460 |
| - | 40 40 -1.363086e-03 3.1599343 -4.677460e-04 0.151395485 | + | 40 40 -1.387376e-03 3.1599245 1.207918e-04 0.1516339 |
| - | 41 41 -1.090469e-03 3.1600433 -3.751323e-04 | + | 41 41 -1.109901e-03 3.1600355 9.687500e-05 0.1516242 |
| - | 42 42 -8.723751e-04 3.1601305 -3.008561e-04 | + | 42 42 -8.879204e-04 3.1601243 7.769375e-05 0.1516164 |
| - | 43 43 -6.979001e-04 3.1602003 -2.412866e-04 | + | 43 43 -7.103363e-04 3.1601954 6.231039e-05 0.1516102 |
| - | 44 44 -5.583200e-04 3.1602562 -1.935118e-04 | + | 44 44 -5.682691e-04 3.1602522 4.997293e-05 0.1516052 |
| - | 45 45 -4.466560e-04 3.1603008 -1.551965e-04 | + | 45 45 -4.546153e-04 3.1602977 4.007829e-05 0.1516012 |
| - | 46 46 -3.573248e-04 3.1603366 -1.244676e-04 | + | 46 46 -3.636922e-04 3.1603340 3.214279e-05 0.1515980 |
| - | 47 47 -2.858599e-04 3.1603652 -9.982301e-05 0.151544513 | + | 47 47 -2.909538e-04 3.1603631 2.577852e-05 0.1515954 |
| - | 48 48 -2.286879e-04 3.1603880 -8.005805e-05 0.151552518 | + | 48 48 -2.327630e-04 3.1603864 2.067437e-05 0.1515933 |
| - | 49 49 -1.829503e-04 3.1604063 -6.420656e-05 0.151558939 | + | 49 49 -1.862104e-04 3.1604050 1.658085e-05 0.1515917 |
| - | 50 50 -1.463603e-04 3.1604210 -5.149366e-05 0.151564088 | + | 50 50 -1.489683e-04 3.1604199 1.329784e-05 0.1515903 |
| - | 51 51 -1.170882e-04 3.1604327 -4.129791e-05 0.151568218 | + | 51 51 -1.191747e-04 3.1604318 1.066487e-05 0.1515893 |
| - | 52 52 -9.367056e-05 3.1604420 -3.312093e-05 | + | 52 52 -9.533973e-05 3.1604414 8.553223e-06 0.1515884 |
| - | 53 53 -7.493645e-05 3.1604495 -2.656298e-05 | + | 53 53 -7.627178e-05 3.1604490 6.859685e-06 0.1515877 |
| - | 54 54 -5.994916e-05 3.1604555 -2.130351e-05 | + | 54 54 -6.101743e-05 3.1604551 5.501467e-06 0.1515872 |
| - | 55 55 -4.795933e-05 3.1604603 -1.708542e-05 | + | 55 55 -4.881394e-05 3.1604600 4.412177e-06 0.1515867 |
| - | 56 56 -3.836746e-05 3.1604642 -1.370250e-05 | + | 56 56 -3.905115e-05 3.1604639 3.538566e-06 0.1515864 |
| - | 57 57 -3.069397e-05 3.1604672 -1.098941e-05 | + | 57 57 -3.124092e-05 3.1604670 2.837930e-06 0.1515861 |
| - | 58 58 -2.455518e-05 3.1604697 -8.813506e-06 0.151581376 | + | 58 58 -2.499274e-05 3.1604695 2.276020e-06 0.1515859 |
| - | 59 59 -1.964414e-05 3.1604716 -7.068432e-06 0.151582083 | + | 59 59 -1.999419e-05 3.1604715 1.825368e-06 0.1515857 |
| - | 60 60 -1.571531e-05 3.1604732 -5.668882e-06 0.151582650 | + | 60 60 -1.599535e-05 3.1604731 1.463945e-06 0.1515855 |
| - | 61 61 -1.257225e-05 3.1604745 -4.546444e-06 0.151583104 | + | 61 61 -1.279628e-05 3.1604744 1.174084e-06 0.1515854 |
| - | 62 62 -1.005780e-05 3.1604755 -3.646248e-06 | + | 62 62 -1.023703e-05 3.1604754 9.416152e-07 0.1515853 |
| - | 63 63 -8.046240e-06 3.1604763 -2.924291e-06 | + | 63 63 -8.189621e-06 3.1604762 7.551754e-07 0.1515853 |
| - | 64 64 -6.436992e-06 3.1604769 | + | 64 64 -6.551696e-06 3.1604769 |
| - | 65 65 -5.149594e-06 3.1604774 | + | 65 65 -5.241357e-06 3.1604774 |
| - | 66 66 -4.119675e-06 3.1604779 -1.508494e-06 | + | 66 66 -4.193086e-06 3.1604778 3.895569e-07 0.1515851 |
| - | 67 67 -3.295740e-06 3.1604782 | + | 67 67 -3.354469e-06 3.1604782 |
| - | 68 68 -2.636592e-06 3.1604784 | + | 68 68 -2.683575e-06 3.1604784 |
| - | 69 69 -2.109273e-06 3.1604787 -7.781561e-07 0.151584631 | + | 69 69 -2.146860e-06 3.1604786 2.009528e-07 0.1515850 |
| - | 70 70 -1.687419e-06 3.1604788 | + | 70 70 -1.717488e-06 3.1604788 |
| - | 71 71 -1.349935e-06 3.1604790 -5.005131e-07 0.151584743 | + | 71 71 -1.373990e-06 3.1604789 1.292536e-07 0.1515850 |
| - | 72 72 -1.079948e-06 3.1604791 | + | 72 72 -1.099192e-06 3.1604791 |
| - | 73 73 -8.639584e-07 3.1604792 -3.219321e-07 | + | 73 73 -8.793538e-07 3.1604791 8.313646e-08 0.1515850 |
| - | 74 74 -6.911667e-07 3.1604792 | + | 74 74 -7.034830e-07 3.1604792 |
| - | 75 75 -5.529334e-07 3.1604793 | + | 75 75 -5.627864e-07 3.1604793 |
| > | > | ||
| + | > # 위의 루프를 이해했는지 체크하기 | ||
| > a.init | > a.init | ||
| - | [1] -0.9414084 | + | [1] -1.014502 |
| > b.init | > b.init | ||
| - | [1] -1.138281 | + | [1] 0.4846828 |
| > tmp.p <- predict(zx, a.init, b.init) | > tmp.p <- predict(zx, a.init, b.init) | ||
| > # a.init b.init 일 때의 미분 결과 | > # a.init b.init 일 때의 미분 결과 | ||
| Line 1082: | Line 1031: | ||
| > tmp.g | > tmp.g | ||
| $b | $b | ||
| - | [1] -2.553934 | + | [1] 0.6595337 |
| $a | $a | ||
| - | [1] -8.203776 | + | [1] -8.349964 |
| > | > | ||
| + | > # 이 값에 learning rate 값을 곱한 후에 | ||
| > a.step <- tmp.g$a*learning.rate | > a.step <- tmp.g$a*learning.rate | ||
| > b.step <- tmp.g$b*learning.rate | > b.step <- tmp.g$b*learning.rate | ||
| > | > | ||
| + | > # 이를 원래 a값에서 빼준 값을 다음 순서의 | ||
| > a.init <- a.init-a.step | > a.init <- a.init-a.step | ||
| > b.init <- b.init-b.step | > b.init <- b.init-b.step | ||
| + | > # a, b값으로 쓰고, 이 때의 미분 값을 구한 후에 | ||
| + | > # (루프 안에서), 미분 결과를 다시 learning rate | ||
| + | > # 로 곱해 준 값을 (두번째 단계의) a, b 값에서 | ||
| + | > # 빼 준 값을 다음 단계의 a, b값으로 쓰고, 다시 | ||
| + | > # . . . . . . 위의 loop문은 이것을 75번 반복한 것 | ||
| > | > | ||
| > # scaled | > # scaled | ||
| + | > # 이렇게 해서 구한 제일 마지막 a, b 값은 x 변인 대신에 | ||
| + | > # 표준화한 zx 변인을 사용해서 구한 값이므로 이 값을 | ||
| + | > # 다시 x 를 사용했을 때의 값으로 환원을 해야 한다 (unscale). | ||
| > data.frame(a, | > data.frame(a, | ||
| - | | + | |
| - | 1 3.160479 0.1515849 | + | 1 3.160479 0.151585 |
| > | > | ||
| > # unscale coefficients to make them comprehensible | > # unscale coefficients to make them comprehensible | ||
| Line 1103: | Line 1062: | ||
| > # and | > # and | ||
| > # http:// | > # http:// | ||
| - | > # | ||
| > a = a - (mean(x) / sd(x)) * b | > a = a - (mean(x) / sd(x)) * b | ||
| > b = b / sd(x) | > b = b / sd(x) | ||
| > cat(" unscaled a:", a, "\n unscaled b:", b, " | > cat(" unscaled a:", a, "\n unscaled b:", b, " | ||
| - | | + | |
| - | | + | |
| + | > # 아래 lm 결과와 확인 | ||
| > summary(mo) | > summary(mo) | ||
| Line 1130: | Line 1089: | ||
| > | > | ||
| - | > # changes of estimators | + | > # 아래는 a와 b를 구하는 과정에서 저장했던 temporary |
| + | > # a, b 값들은 (as, bs 변인 내의) 모두 unscale한 것 | ||
| > as <- as - (mean(x) /sd(x)) * bs | > as <- as - (mean(x) /sd(x)) * bs | ||
| > bs <- bs / sd(x) | > bs <- bs / sd(x) | ||
| > | > | ||
| > as | > as | ||
| - | | + | |
| - | [12] 2.264096 2.136025 2.033200 | + | [9] 0.58772512 |
| - | [23] 1.672463 | + | [17] |
| - | [34] 1.619610 | + | [25] |
| - | [45] 1.614891 | + | [33] |
| - | [56] 1.614470 | + | [41] 1.61358422 |
| - | [67] 1.614432 | + | [49] |
| + | [57] | ||
| + | [65] 1.61442429 | ||
| + | [73] | ||
| > bs | > bs | ||
| - | | + | [1] 0.03998814 |
| - | [8] -0.0066070587 -0.0024325783 | + | [10] 0.01797815 |
| - | [15] | + | [19] 0.01495689 |
| - | [22] | + | [28] 0.01454216 |
| - | [29] | + | [37] 0.01448523 |
| - | [36] 0.0144324420 | + | [46] 0.01447742 |
| - | [43] | + | [55] 0.01447635 |
| - | [50] | + | [64] 0.01447620 |
| - | [57] 0.0144757509 | + | [73] 0.01447618 |
| - | [64] 0.0144760853 | + | |
| - | [71] | + | |
| > | > | ||
| + | > # 이것을 그래프로 나타내기 위해서 parameters 라는 | ||
| + | > # 변인으로 저장 | ||
| + | > # 이하 if 문들은 그래프에 처음 a, b값과 루프 문에서의 | ||
| + | > # 그 값들이 변화하는 것을 모두 나타내기 위해서 사용한 | ||
| + | > # 것으로 결과와 상관없다. | ||
| > parameters <- data.frame(as, | > parameters <- data.frame(as, | ||
| > | > | ||
| > cat(paste0(" | > cat(paste0(" | ||
| - | Intercept: 1.61442902414182 | + | Intercept: 1.61442794384896 |
| - | Slope: 0.0144761679939984 | + | Slope: 0.0144761780722265 |
| > summary(lm(y~x, | > summary(lm(y~x, | ||
| Estimate | Estimate | ||
| Line 1187: | Line 1153: | ||
| [1] 2.092215 | [1] 2.092215 | ||
| > y.max | > y.max | ||
| - | [1] 8.883749 | + | [1] 3.878048 |
| > y.min | > y.min | ||
| - | [1] 1.614429 | + | [1] -4.450227 |
| > | > | ||
| > ggplot(sam, aes(x = x, y = y)) + | > ggplot(sam, aes(x = x, y = y)) + | ||
| Line 1230: | Line 1196: | ||
| > | > | ||
| > data.frame(head(as), | > data.frame(head(as), | ||
| - | | + | |
| - | 1 8.883749 | + | 1 -4.4502274 |
| - | 2 7.450986 | + | 2 -3.2427456 |
| - | 3 6.300598 | + | 3 -2.2756811 |
| - | 4 5.376937 | + | 4 -1.5011643 |
| - | 5 4.635321 | + | 5 -0.8808568 0.02503077 |
| - | 6 4.039872 | + | 6 -0.3840542 0.02294096 |
| > data.frame(tail(as), | > data.frame(tail(as), | ||
| tail.as. | tail.as. | ||
| - | 1 1.614430 | + | 1 1.614427 |
| - | 2 1.614430 | + | 2 1.614427 |
| - | 3 1.614430 | + | 3 1.614428 |
| - | 4 1.614429 | + | 4 1.614428 |
| - | 5 1.614429 | + | 5 1.614428 |
| - | 6 1.614429 | + | 6 1.614428 |
| > a | > a | ||
| - | [1] 1.614429 | + | [1] 1.614428 |
| > b | > b | ||
| - | [1] 0.01447617 | + | [1] 0.01447618 |
| > | > | ||
| > ggplot(sam, aes(x = x, y = y)) + | > ggplot(sam, aes(x = x, y = y)) + | ||
| Line 1259: | Line 1225: | ||
| + | + | ||
| + | + | ||
| - | > | + | > |
| </ | </ | ||
| </ | </ | ||
| - | {{pasted:20260506-041735.png?500}} | + | {{pasted:20260512-215110.png? |
| + | {{pasted: | ||
gradient_descent.1778622644.txt.gz · Last modified: by hkimscil
