|
772 | 772 | " grad2 = sigma3.dot(a2.T)\n",
|
773 | 773 | "\n",
|
774 | 774 | " # regularize\n",
|
775 |
| - " grad1[:, 1:] += (w1[:, 1:] * (self.l1 + self.l2))\n", |
776 |
| - " grad2[:, 1:] += (w2[:, 1:] * (self.l1 + self.l2))\n", |
| 775 | + " grad1[:, 1:] += self.l2 * w1[:, 1:]\n", |
| 776 | + " grad1[:, 1:] += self.l1 * np.sign(w1[:, 1:])\n", |
| 777 | + " grad2[:, 1:] += self.l2 * w2[:, 1:]\n", |
| 778 | + " grad2[:, 1:] += self.l1 * np.sign(w2[:, 1:])\n", |
777 | 779 | "\n",
|
778 | 780 | " return grad1, grad2\n",
|
779 | 781 | "\n",
|
|
1566 | 1568 | " grad2 = sigma3.dot(a2.T)\n",
|
1567 | 1569 | "\n",
|
1568 | 1570 | " # regularize\n",
|
1569 |
| - " grad1[:, 1:] += (w1[:, 1:] * (self.l1 + self.l2))\n", |
1570 |
| - " grad2[:, 1:] += (w2[:, 1:] * (self.l1 + self.l2))\n", |
| 1571 | + " grad1[:, 1:] += self.l2 * w1[:, 1:]\n", |
| 1572 | + " grad1[:, 1:] += self.l1 * np.sign(w1[:, 1:])\n", |
| 1573 | + " grad2[:, 1:] += self.l2 * w2[:, 1:]\n", |
| 1574 | + " grad2[:, 1:] += self.l1 * np.sign(w2[:, 1:])\n", |
1571 | 1575 | "\n",
|
1572 | 1576 | " return grad1, grad2\n",
|
1573 | 1577 | "\n",
|
|
0 commit comments