From 549efa9d8526377d4d580f1075c5c9aa39d71488 Mon Sep 17 00:00:00 2001 From: Quarto GHA Workflow Runner Date: Tue, 19 Nov 2024 03:04:30 +0000 Subject: [PATCH] Built site for gh-pages --- .nojekyll | 2 +- schedule/slides/23-nnets-other.html | 35 ++++++- schedule/slides/gfx/hastie_double_descent.png | Bin 0 -> 39647 bytes search.json | 9 +- sitemap.xml | 96 +++++++++--------- 5 files changed, 91 insertions(+), 51 deletions(-) create mode 100644 schedule/slides/gfx/hastie_double_descent.png diff --git a/.nojekyll b/.nojekyll index dbd0596..57c0250 100644 --- a/.nojekyll +++ b/.nojekyll @@ -1 +1 @@ -396fd312 \ No newline at end of file +0cb2f234 \ No newline at end of file diff --git a/schedule/slides/23-nnets-other.html b/schedule/slides/23-nnets-other.html index 98e336d..e81e483 100644 --- a/schedule/slides/23-nnets-other.html +++ b/schedule/slides/23-nnets-other.html @@ -398,7 +398,7 @@

23 Neural nets - generalization

Stat 406

Geoff Pleiss, Trevor Campbell

-

Last modified – 13 November 2024

+

Last modified – 18 November 2024

\[ \DeclareMathOperator*{\argmin}{argmin} \DeclareMathOperator*{\argmax}{argmax} @@ -634,6 +634,39 @@

Understanding Double Descent (Hand-Wavy)

+
+

Understanding Double Descent (Less Hand-Wavy)

+
+
+

(From Hastie et al., 2020)

+
    +
  • \(\gamma = D / N\) (ratio of features / data)

  • +
  • \(\sigma^2 = \mathbb{E}[Y|X]\) (observational noise)

  • +
  • When basis features are uncorrelated, we have (asymptotically)

  • +
+

\[ +\begin{aligned} + \mathrm{Bias}^2 &= \begin{cases} + 0 & \gamma < 1 \text{ (underparam.)} \\ + 1 - \tfrac{1}{\gamma} & \gamma \geq 1 \text{ (overparam.)} + \end{cases} \\ + & \\ + \mathrm{Var} &= \begin{cases} + \sigma^2 \tfrac{\gamma}{1 - \gamma} & \gamma < 1 \text{ (underparam.)} \\ + \sigma^2 \tfrac{1}{\gamma - 1} & \gamma \geq 1 \text{ (overparam.)} + \end{cases} \\ +\end{aligned} +\]

+
+
+
+
+

+
+
+
+
+

Do we need to worry about variance?

Regularizing a neural network (adding a complexity penalty to the loss) is a common practice to prevent overfitting to the noise.

diff --git a/schedule/slides/gfx/hastie_double_descent.png b/schedule/slides/gfx/hastie_double_descent.png new file mode 100644 index 0000000000000000000000000000000000000000..2cec107b35fa0fba4fa8d29f4b85b6f4e462b5d4 GIT binary patch literal 39647 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 CD4|{e literal 0 HcmV?d00001 diff --git a/search.json b/search.json index 05f4331..b57ad9e 100644 --- a/search.json +++ b/search.json @@ -1390,7 +1390,7 @@ "href": "schedule/slides/23-nnets-other.html#section", "title": "UBC Stat406 2024W", "section": "23 Neural nets - generalization", - "text": "23 Neural nets - generalization\nStat 406\nGeoff Pleiss, Trevor Campbell\nLast modified – 13 November 2024\n\\[\n\\DeclareMathOperator*{\\argmin}{argmin}\n\\DeclareMathOperator*{\\argmax}{argmax}\n\\DeclareMathOperator*{\\minimize}{minimize}\n\\DeclareMathOperator*{\\maximize}{maximize}\n\\DeclareMathOperator*{\\find}{find}\n\\DeclareMathOperator{\\st}{subject\\,\\,to}\n\\newcommand{\\E}{E}\n\\newcommand{\\Expect}[1]{\\E\\left[ #1 \\right]}\n\\newcommand{\\Var}[1]{\\mathrm{Var}\\left[ #1 \\right]}\n\\newcommand{\\Cov}[2]{\\mathrm{Cov}\\left[#1,\\ #2\\right]}\n\\newcommand{\\given}{\\ \\vert\\ }\n\\newcommand{\\X}{\\mathbf{X}}\n\\newcommand{\\x}{\\mathbf{x}}\n\\newcommand{\\y}{\\mathbf{y}}\n\\newcommand{\\P}{\\mathcal{P}}\n\\newcommand{\\R}{\\mathbb{R}}\n\\newcommand{\\norm}[1]{\\left\\lVert #1 \\right\\rVert}\n\\newcommand{\\snorm}[1]{\\lVert #1 \\rVert}\n\\newcommand{\\tr}[1]{\\mbox{tr}(#1)}\n\\newcommand{\\brt}{\\widehat{\\beta}^R_{s}}\n\\newcommand{\\brl}{\\widehat{\\beta}^R_{\\lambda}}\n\\newcommand{\\bls}{\\widehat{\\beta}_{ols}}\n\\newcommand{\\blt}{\\widehat{\\beta}^L_{s}}\n\\newcommand{\\bll}{\\widehat{\\beta}^L_{\\lambda}}\n\\newcommand{\\U}{\\mathbf{U}}\n\\newcommand{\\D}{\\mathbf{D}}\n\\newcommand{\\V}{\\mathbf{V}}\n\\]" + "text": "23 Neural nets - generalization\nStat 406\nGeoff Pleiss, Trevor Campbell\nLast modified – 18 November 2024\n\\[\n\\DeclareMathOperator*{\\argmin}{argmin}\n\\DeclareMathOperator*{\\argmax}{argmax}\n\\DeclareMathOperator*{\\minimize}{minimize}\n\\DeclareMathOperator*{\\maximize}{maximize}\n\\DeclareMathOperator*{\\find}{find}\n\\DeclareMathOperator{\\st}{subject\\,\\,to}\n\\newcommand{\\E}{E}\n\\newcommand{\\Expect}[1]{\\E\\left[ #1 \\right]}\n\\newcommand{\\Var}[1]{\\mathrm{Var}\\left[ #1 \\right]}\n\\newcommand{\\Cov}[2]{\\mathrm{Cov}\\left[#1,\\ #2\\right]}\n\\newcommand{\\given}{\\ \\vert\\ }\n\\newcommand{\\X}{\\mathbf{X}}\n\\newcommand{\\x}{\\mathbf{x}}\n\\newcommand{\\y}{\\mathbf{y}}\n\\newcommand{\\P}{\\mathcal{P}}\n\\newcommand{\\R}{\\mathbb{R}}\n\\newcommand{\\norm}[1]{\\left\\lVert #1 \\right\\rVert}\n\\newcommand{\\snorm}[1]{\\lVert #1 \\rVert}\n\\newcommand{\\tr}[1]{\\mbox{tr}(#1)}\n\\newcommand{\\brt}{\\widehat{\\beta}^R_{s}}\n\\newcommand{\\brl}{\\widehat{\\beta}^R_{\\lambda}}\n\\newcommand{\\bls}{\\widehat{\\beta}_{ols}}\n\\newcommand{\\blt}{\\widehat{\\beta}^L_{s}}\n\\newcommand{\\bll}{\\widehat{\\beta}^L_{\\lambda}}\n\\newcommand{\\U}{\\mathbf{U}}\n\\newcommand{\\D}{\\mathbf{D}}\n\\newcommand{\\V}{\\mathbf{V}}\n\\]" }, { "objectID": "schedule/slides/23-nnets-other.html#this-lecture", @@ -1483,6 +1483,13 @@ "section": "Understanding Double Descent (Hand-Wavy)", "text": "Understanding Double Descent (Hand-Wavy)\nLet \\(\\boldsymbol Z \\in \\R^{n \\times d}\\) be the matrix of basis expansions for our \\(n\\) training points.\nBasis regression is just OLS with the basis expansion \\(\\boldsymbol Z\\): \\[ \\min_{\\boldsymbol \\beta} \\left\\Vert \\boldsymbol Z \\boldsymbol \\beta - \\boldsymbol y \\right\\Vert_2^2. \\]\n\nWhen \\(d < n\\), the regressor is underparameterized.\nI.e. there is no \\(\\boldsymbol \\beta\\) that perfectly explains our training responses given our basis-expanded training inputs.\nWhen \\(d = n\\), there is a value of \\(\\boldsymbol \\beta\\) that fits our training data perfectly.\nI.e. \\(\\Vert \\boldsymbol Z \\boldsymbol \\beta - \\boldsymbol y \\Vert = 0\\).\n\nWe are fitting both the noise and the signal (leading to a high variance predictor).\n\nWhen \\(d > n\\), we can also fit the data (noise + signal) perfectly.πŸ‘‹ However, more features implies that the the noise gets β€œspread out” over all of parameters. πŸ‘‹\n\nπŸ‘‹ Since each parameter only captures β€œsome” of the noise, we are less likely to make predictions based on it. πŸ‘‹\nThis explanation is overly simplified, and there is a lot more at play." }, + { + "objectID": "schedule/slides/23-nnets-other.html#understanding-double-descent-less-hand-wavy", + "href": "schedule/slides/23-nnets-other.html#understanding-double-descent-less-hand-wavy", + "title": "UBC Stat406 2024W", + "section": "Understanding Double Descent (Less Hand-Wavy)", + "text": "Understanding Double Descent (Less Hand-Wavy)\n\n\n(From Hastie et al., 2020)\n\n\\(\\gamma = D / N\\) (ratio of features / data)\n\\(\\sigma^2 = \\mathbb{E}[Y|X]\\) (observational noise)\nWhen basis features are uncorrelated, we have (asymptotically)\n\n\\[\n\\begin{aligned}\n \\mathrm{Bias}^2 &= \\begin{cases}\n 0 & \\gamma < 1 \\text{ (underparam.)} \\\\\n 1 - \\tfrac{1}{\\gamma} & \\gamma \\geq 1 \\text{ (overparam.)}\n \\end{cases} \\\\\n & \\\\\n \\mathrm{Var} &= \\begin{cases}\n \\sigma^2 \\tfrac{\\gamma}{1 - \\gamma} & \\gamma < 1 \\text{ (underparam.)} \\\\\n \\sigma^2 \\tfrac{1}{\\gamma - 1} & \\gamma \\geq 1 \\text{ (overparam.)}\n \\end{cases} \\\\\n\\end{aligned}\n\\]" + }, { "objectID": "schedule/slides/23-nnets-other.html#do-we-need-to-worry-about-variance", "href": "schedule/slides/23-nnets-other.html#do-we-need-to-worry-about-variance", diff --git a/sitemap.xml b/sitemap.xml index 59c69e5..bcbc5da 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,194 +2,194 @@ https://UBC-STAT.github.io/stat-406/schedule/slides/00-r-review.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/handouts/keras-nnet.html - 2024-11-14T06:01:46.002Z + 2024-11-19T03:03:30.566Z https://UBC-STAT.github.io/stat-406/schedule/slides/11-kernel-smoothers.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/02-lm-example.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/07-greedy-selection.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/10-basis-expansions.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/13-gams-trees.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/24-pca-intro.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/15-LDA-and-QDA.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/20-boosting.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-classification-losses.html - 2024-11-14T06:01:46.006Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/16-logistic-regression.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/23-nnets-other.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/19-bagging-and-rf.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-cv-for-many-models.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/01-lm-review.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/12-why-smooth.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/22-nnets-estimation.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-intro-to-class.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/handouts/lab00-git.html - 2024-11-14T06:01:46.002Z + 2024-11-19T03:03:30.566Z https://UBC-STAT.github.io/stat-406/course-setup.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/computing/windows.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/computing/mac_x86.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/computing/index.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/index.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/computing/mac_arm.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/computing/ubuntu.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/syllabus.html - 2024-11-14T06:01:46.050Z + 2024-11-19T03:03:30.618Z https://UBC-STAT.github.io/stat-406/schedule/index.html - 2024-11-14T06:01:46.006Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-course-review.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-version-control.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/faq.html - 2024-11-14T06:01:45.978Z + 2024-11-19T03:03:30.546Z https://UBC-STAT.github.io/stat-406/schedule/slides/21-nnets-intro.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/03-regression-function.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/06-information-criteria.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/04-bias-variance.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/14-classification-intro.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/27-kmeans.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/08-ridge-regression.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-quiz-0-wrap.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/26-pca-v-kpca.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/25-pca-issues.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/05-estimating-test-mse.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/28-hclust.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/09-l1-penalties.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z https://UBC-STAT.github.io/stat-406/schedule/slides/17-nonlinear-classifiers.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/18-the-bootstrap.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.578Z https://UBC-STAT.github.io/stat-406/schedule/slides/00-gradient-descent.html - 2024-11-14T06:01:46.010Z + 2024-11-19T03:03:30.574Z