From c7b3238415b0c0042f0253d9fb0f199266b54cdc Mon Sep 17 00:00:00 2001 From: ajratner Date: Sat, 8 Sep 2018 07:52:40 -0700 Subject: [PATCH 1/2] Adding diagonal Tikhonov regularization for per-source L2 --- metal/label_model/label_model.py | 25 +++++++++++++++++++++---- metal/label_model/lm_defaults.py | 2 +- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/metal/label_model/label_model.py b/metal/label_model/label_model.py index 91c9446e..6a335d45 100644 --- a/metal/label_model/label_model.py +++ b/metal/label_model/label_model.py @@ -280,6 +280,25 @@ def get_Q(self): # (for better or worse). The unused *args make these compatible with the # Classifer._train() method which expect loss functions to accept an input. + def loss_l2(self, l2=0): + """L2 loss centered around mu_init, scaled optionally per-source. + + In other words, diagonal Tikhonov regularization, + ||D(\mu-\mu_{init})||_2^2 + where D is diagonal. + + Args: + - l2: A float or np.array representing the per-source regularization + strengths to use + """ + if isinstance(l2, (int, float)): + D = l2 * torch.eye(self.d) + else: + D = torch.diag(torch.from_numpy(l2)) + + # Note that mu is a matrix and this is the *Frobenius norm* + return torch.norm(D @ (self.mu - self.mu_init)) ** 2 + def loss_inv_Z(self, *args): return torch.norm((self.O_inv + self.Z @ self.Z.t())[self.mask]) ** 2 @@ -288,8 +307,7 @@ def loss_inv_mu(self, *args, l2=0): loss_2 = ( torch.norm(torch.sum(self.mu @ self.P, 1) - torch.diag(self.O)) ** 2 ) - loss_l2 = torch.norm(self.mu - self.mu_init) ** 2 - return loss_1 + loss_2 + l2 * loss_l2 + return loss_1 + loss_2 + self.loss_l2(l2=l2) def loss_mu(self, *args, l2=0): loss_1 = ( @@ -299,8 +317,7 @@ def loss_mu(self, *args, l2=0): loss_2 = ( torch.norm(torch.sum(self.mu @ self.P, 1) - torch.diag(self.O)) ** 2 ) - loss_l2 = torch.norm(self.mu - self.mu_init) ** 2 - return loss_1 + loss_2 + l2 * loss_l2 + return loss_1 + loss_2 + self.loss_l2(l2=l2) def _set_class_balance(self, class_balance, Y_dev): """Set a prior for the class balance diff --git a/metal/label_model/lm_defaults.py b/metal/label_model/lm_defaults.py index 6583b1fe..19f5df54 100644 --- a/metal/label_model/lm_defaults.py +++ b/metal/label_model/lm_defaults.py @@ -12,7 +12,7 @@ "class_balance_init": None, # (array) If None, assume uniform # Model params initialization / priors "mu_init": 0.5, - # Centered L2 regularization + # Centered L2 regularization strength (int, float, or np.array) "l2": 0.0, # Optimizer "optimizer_config": { From 0e24b07ca9eac9f081973824afd858c31ec63eee Mon Sep 17 00:00:00 2001 From: ajratner Date: Sat, 8 Sep 2018 09:38:08 -0700 Subject: [PATCH 2/2] Changed initialization to more interpretable precision of LFs --- metal/label_model/label_model.py | 29 +++++++++++-- metal/label_model/lm_defaults.py | 6 +-- tutorials/Basics.ipynb | 74 ++++++++++++++++---------------- 3 files changed, 64 insertions(+), 45 deletions(-) diff --git a/metal/label_model/label_model.py b/metal/label_model/label_model.py index 6a335d45..638360ef 100644 --- a/metal/label_model/label_model.py +++ b/metal/label_model/label_model.py @@ -183,15 +183,36 @@ def _init_params(self): - Z is the inverse form version of \mu. """ train_config = self.config["train_config"] + # Initialize mu so as to break basic reflective symmetry + # Note that we are given either a single or per-LF initial precision + # value, prec_i = P(Y=y|\lf=y), and use: + # mu_init = P(\lf=y|Y=y) = P(\lf=y) * prec_i / P(Y=y) + + # Handle single or per-LF values + if isinstance(train_config["prec_init"], (int, float)): + prec_init = train_config["prec_init"] * torch.ones(self.m) + else: + prec_init = torch.from_numpy(train_config["prec_init"]) + if prec_init.shape[0] != self.m: + raise ValueError(f"prec_init must have shape {self.m}.") + + # Get the per-value labeling propensities + # Note that self.O must have been computed already! + lps = torch.diag(self.O).numpy() + # TODO: Update for higher-order cliques! self.mu_init = torch.zeros(self.d, self.k) for i in range(self.m): for y in range(self.k): - self.mu_init[i * self.k + y, y] += ( - train_config["mu_init"] * np.random.random() - ) - self.mu = nn.Parameter(self.mu_init.clone()).float() + idx = i * self.k + y + mu_init = torch.clamp(lps[idx] * prec_init[i] / self.p[y], 0, 1) + self.mu_init[idx, y] += mu_init + + # Initialize randomly based on self.mu_init + self.mu = nn.Parameter( + self.mu_init.clone() * np.random.random() + ).float() if self.inv_form: self.Z = nn.Parameter(torch.randn(self.d, self.k)).float() diff --git a/metal/label_model/lm_defaults.py b/metal/label_model/lm_defaults.py index 19f5df54..213b4267 100644 --- a/metal/label_model/lm_defaults.py +++ b/metal/label_model/lm_defaults.py @@ -8,10 +8,8 @@ # Classifier # Class balance (if learn_class_balance=False, fix to class_balance) "learn_class_balance": False, - # Class balance initialization / prior - "class_balance_init": None, # (array) If None, assume uniform - # Model params initialization / priors - "mu_init": 0.5, + # LF precision initializations / priors (float or np.array) + "prec_init": 0.7, # Centered L2 regularization strength (int, float, or np.array) "l2": 0.0, # Optimizer diff --git a/tutorials/Basics.ipynb b/tutorials/Basics.ipynb index 4fedb1b1..6e8e82b6 100644 --- a/tutorials/Basics.ipynb +++ b/tutorials/Basics.ipynb @@ -424,20 +424,20 @@ "text": [ "Computing O...\n", "Estimating \\mu...\n", - "[E:0]\tTrain Loss: 8.513\n", - "[E:250]\tTrain Loss: 0.005\n", - "[E:500]\tTrain Loss: 0.005\n", - "[E:750]\tTrain Loss: 0.005\n", - "[E:999]\tTrain Loss: 0.005\n", + "[E:0]\tTrain Loss: 6.036\n", + "[E:250]\tTrain Loss: 0.029\n", + "[E:500]\tTrain Loss: 0.029\n", + "[E:750]\tTrain Loss: 0.029\n", + "[E:999]\tTrain Loss: 0.029\n", "Finished Training\n", - "CPU times: user 977 ms, sys: 24.5 ms, total: 1 s\n", - "Wall time: 427 ms\n" + "CPU times: user 995 ms, sys: 23.3 ms, total: 1.02 s\n", + "Wall time: 442 ms\n" ] } ], "source": [ "%%time\n", - "label_model.train(Ls[0], Y_dev=Ys[1], n_epochs=1000, print_every=250, lr=0.01, l2=1e-3)" + "label_model.train(Ls[0], Y_dev=Ys[1], n_epochs=1000, print_every=250, lr=0.01, l2=1e-1)" ] }, { @@ -456,7 +456,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Accuracy: 0.888\n" + "Accuracy: 0.879\n" ] } ], @@ -480,9 +480,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Precision: 0.832\n", - "Recall: 0.683\n", - "F1: 0.750\n" + "Precision: 0.771\n", + "Recall: 0.724\n", + "F1: 0.746\n" ] } ], @@ -494,7 +494,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can see that our trained `LabelModel` outperforms the baseline of taking the majority vote label by approximately 5 points in accuracy and 4 F1 points on the dev set." + "We can see that our trained `LabelModel` outperforms the baseline of taking the majority vote label by approximately 4 points in accuracy and 3 F1 points on the dev set." ] }, { @@ -552,13 +552,13 @@ { "data": { "text/plain": [ - "array([[0.258757 , 0.741243 ],\n", - " [0.00995563, 0.99004437],\n", - " [0.01509652, 0.98490348],\n", + "array([[0.32560527, 0.67439473],\n", + " [0.0128121 , 0.9871879 ],\n", + " [0.02633596, 0.97366404],\n", " ...,\n", - " [0.6187366 , 0.3812634 ],\n", - " [0.98204123, 0.01795877],\n", - " [0.26658923, 0.73341077]])" + " [0.7144198 , 0.2855802 ],\n", + " [0.99065254, 0.00934746],\n", + " [0.35757709, 0.64242291]])" ] }, "execution_count": 13, @@ -602,7 +602,7 @@ "outputs": [ { "data": { - "image/png": "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N3HOOec0ax/jx49n++2353vf+95m1bgpuQWEpJ0ojAr6UXjgyu3AiIyudQ+kyBotbPSwioiYCEwEqK6u9sMs7COrtb8UtyS/OakH79WsKtv+t9lmG+bPnw/AGWecwbXXXssFF1zwwfKIICLYaqvmHYQ56aSTOOmkkza5fNWqVfzqV79qdkDkJc9DTMcAL0dEbUS8B0wFPkXhgfN1wdSLD5+xW0N6tnBaviMZD4c3M2tLhx9+OIsXL2bJkiUMHDiQc845h8GDB7N06VJmzJjB0KFDGTx4MKNGjWLt2rUA3H///ey9994MGzaMqVOnfrCtG264gfPOOw+AN998k1NOOYUDDzyQAw88kEcffZRx48bx4osvMmjQIC688EIArrzySg455BAOOOAALrnkwyfuXn755QwYMIBjjjmGhQsX5vLZ8wyIV4EhkrZN5xKGA88BD/Hh83NHA9PS9PQ0T1o+M/y4OzMrow0bNnDfffex//77A7Bw4ULOOuss5s2bx3bbbcdll13Gn/70J+bOnUt1dTVXXXUV69ev52tf+xp33XUXf/7zn3njjTcyt33++edz5JFH8tRTTzF37lz23XdfrrjiCvbcc0/mz5/PlVdeyYwZM1i0aBFPPPEE8+fPZ86cOTz88MPMmTOHW265hXnz5jF16lSefPLJXD5/nucgHpd0BzAX2ADMo3Bo6B7gFkmXpbZJaZVJwO8kLaYwcjgtr9rMzBrz9ttvM2jQIKAwghgzZgzLli2jT58+DBlSeMT3Y489xnPPPcdhhx0GwLvvvsvQoUN5/vnn6devH/379wfgzDPPZOLEiRvtY+bMmUyZMgUonPPYcccdWblyZb0+M2bMYMaMGRx00EEArF27lkWLFrFmzRpOOeWUD86LNHbYqiVy/aFcRFwCXNKg+SXg0Iy+64FRedZjZlaK4nMQxbbbbrsPpiOCz3zmM9x88831+syfP7/VLtGNCC666CK+/vWv12v/2c9+1iaXAfteTGZmm2HIkCE88sgjLF68GIB169bxwgsvsPfee/Pyyy/z4osvAmwUIHWGDx/OhAkTAHj//fd566232GGHHVizZs0HfY499liuv/76D85tvPbaayxfvpwjjjiCO++8k7fffps1a9Zw11135fIZfasNM6t40887jAN6dS13GfVUVVVxww03cPrpp/POO+8AcNlll7HXXnsx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\n", + "image/png": "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tZlZZaupqWH33XenT58+bPpAWytVRLB8+XJqamro27dvs7aR61VMEXEpmz998yXgiIy+64GRedZjZtuG9evXOxxaSBJdu3alJRfz+E5qM6tIDoeWa+m/oQPCzMwy5X2jnJlZi/UZc89W3d4rVzX8au927dpx8MEHs2HDBgYMGMCECRPYZZddGlxnS2bMmMFPf/pT7r77bqZOncrzzz/PmDFjMvuuXLmSW265hfPOO69J+xg7diy77bYb3//+95tV45Y4IMwq1Nb+o7gt+e3w7rxXs7Js+995552ZO3cuAGeeeSbXX3893/3udz9YHhFEBDvs0LSDMMOHD2f48OFbXL5y5Up+/etfNzkg8uJDTGZmDTj66KOprq7mlVdeYcCAAZx33nkMGjSIRYsWMW3aNIYMGcKgQYMYOXIka9asAeD+++/ngAMOYOjQoUyePPmDbd14441ccMEFACxdupTTTjuNQw89lEMPPZRHH32UMWPG8OKLLzJw4EAuuugiAK6++moOP/xwDjnkEC69dOM1P1dccQX9+/fnhBNOYP78+bn87A4IM7Mt2LBhA/fddx8HH3wwAPPnz+fss89mzpw57Lrrrlx++eX89a9/Zfbs2VRVVXHNNdewfv16vva1r3HXXXfxt7/9jddffz1z2xdeeCHHHnssTz/9NLNnz+aggw7iqquuYv/992fu3LlcffXVTJs2jQULFvDkk08yd+5cZs2axcMPP8ysWbOYNGkSc+bMYfLkyTz11FO5/Pw+xGRmVs+6desYOHAgUBhBnHvuuSxevJjevXszeHDhFd+PP/44zz//PEcddRQA7777LkOGDOGFF16gb9++9OvXD4CzzjqL8ePHb7aP6dOnM3HiRKBwzmOPPfZgxYoVm/SZNm0a06ZN47DDDgNgzZo1LFiwgNWrV3Paaad9cF6kocNWLeGAMLO2Z/GcBhfv3HEn5t77h40NbzwHSxez607tPlg33qjmfw2t4tZfX7nJunOffQG99/bGfbz5EqxfVZhfsRDeri1M/2sDLJ4LO3XYuPLSxbBh/cZ9rF7KD79xJv/nS5/fZB8//+3NSLs284cvnQ8xmZk1w+CPH8Lfn3qa6pdfBWDtunX888WFHPCRPrz86mJefGURALf+z/2Z6w8begTjJv4JgPfff5+3Vq9h9113YfWatz/o8+njhvD726ay5u21ALy2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\n", "text/plain": [ "
" ] @@ -634,7 +634,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -669,8 +669,8 @@ "output_type": "stream", "text": [ " y=1 y=2 \n", - " l=1 168 78 \n", - " l=2 34 720 \n" + " l=1 178 68 \n", + " l=2 53 701 \n" ] } ], @@ -766,18 +766,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Saving model at iteration 0 with best score 0.984\n", - "[E:0]\tTrain Loss: 0.462\tDev score: 0.984\n", - "[E:1]\tTrain Loss: 0.420\tDev score: 0.912\n", - "[E:2]\tTrain Loss: 0.415\tDev score: 0.949\n", - "[E:3]\tTrain Loss: 0.413\tDev score: 0.941\n", - "[E:4]\tTrain Loss: 0.412\tDev score: 0.924\n", - "Restoring best model from iteration 0 with score 0.984\n", + "Saving model at iteration 0 with best score 0.992\n", + "[E:0]\tTrain Loss: 0.499\tDev score: 0.992\n", + "[E:1]\tTrain Loss: 0.461\tDev score: 0.947\n", + "[E:2]\tTrain Loss: 0.453\tDev score: 0.956\n", + "[E:3]\tTrain Loss: 0.451\tDev score: 0.974\n", + "[E:4]\tTrain Loss: 0.450\tDev score: 0.948\n", + "Restoring best model from iteration 0 with score 0.992\n", "Finished Training\n", "Confusion Matrix (Dev)\n", " y=1 y=2 \n", - " l=1 239 1 \n", - " l=2 7 753 \n" + " l=1 244 2 \n", + " l=2 2 752 \n" ] } ], @@ -812,14 +812,14 @@ "output_type": "stream", "text": [ "Label Model:\n", - "Precision: 0.817\n", - "Recall: 0.634\n", - "F1: 0.714\n", + "Precision: 0.757\n", + "Recall: 0.695\n", + "F1: 0.725\n", "\n", "End Model:\n", "Precision: 0.996\n", - "Recall: 0.967\n", - "F1: 0.981\n" + "Recall: 0.984\n", + "F1: 0.990\n" ] } ],