From a9f8f9f895153031b2102971ef5bb87bf7c84ce2 Mon Sep 17 00:00:00 2001 From: Houjun Liu Date: Thu, 4 Apr 2024 13:28:25 -0700 Subject: [PATCH] kb autocommit --- content/posts/KBhautomatic_differentiation.md | 69 +++++++ ...Bhderivatives_descent_and_approximation.md | 20 ++ content/posts/KBhoptimization_index.md | 26 ++- .../posts/KBhsingle_objective_optimization.md | 5 + content/posts/KBhsu_cs361_apr042024.md | 176 ++++++++++++++++++ .../2024-04-04_09-40-27_screenshot.png | Bin 0 -> 41165 bytes 6 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 content/posts/KBhautomatic_differentiation.md create mode 100644 content/posts/KBhderivatives_descent_and_approximation.md create mode 100644 content/posts/KBhsingle_objective_optimization.md create mode 100644 content/posts/KBhsu_cs361_apr042024.md create mode 100644 static/ox-hugo/2024-04-04_09-40-27_screenshot.png diff --git a/content/posts/KBhautomatic_differentiation.md b/content/posts/KBhautomatic_differentiation.md new file mode 100644 index 000000000..8b1469e5a --- /dev/null +++ b/content/posts/KBhautomatic_differentiation.md @@ -0,0 +1,69 @@ ++++ +title = "Automatic Differentiation" +author = ["Houjun Liu"] +draft = false ++++ + +## Forward Accumulation {#forward-accumulation} + +First, make a computation graph. + +Consider \\(\ln (ab + \max (a,2))\\) + +{{< figure src="/ox-hugo/2024-04-04_09-40-27_screenshot.png" >}} + +Say we want \\(\pdv{f}{a}(3,2)\\). + +Let's begin by tracking, left to right, both the **value** of each node and its **derivative**. + +Layer 1: + +- \\(b = 2, \pdv{b}{a} = 0\\) +- \\(a = 3, \pdv{a}{a} = 1\\) + +Layer 2: + +- \\(c\_1 = a\times b = 6, \pdv{c\_1}{a} = b\pdv{a}{a} + a \pdv{a}{b} = 2\\) + +and so on; until we get to \\(c\_4\\) + + +## Dual Number Method {#dual-number-method} + + +### Dual Number {#dual-number} + +Consider: + +\begin{equation} +a+b \epsilon +\end{equation} + +Let's declare: + +\begin{equation} +\epsilon^{2} = 0 +\end{equation} + +The standard field operations still apply: + +\begin{equation} +(a+b\epsilon) + (c+d\epsilon) = (a+c) + (b+d) \epsilon +\end{equation} + + +### The Method {#the-method} + +We can write down a usual Taylor expansion: + +\begin{equation} +f(a+b\epsilon) = \sum\_{k=0}^{\infty} \frac{f^{(k)}}{k!} (a+b \epsilon - a)^{k} +\end{equation} + +IMPORTANTLY: + +\begin{equation} +f(a+1\epsilon) = f(a) + f'(a) \epsilon +\end{equation} + +This means that we can use [Dual Number](#dual-number)s to directly compute derivatives. diff --git a/content/posts/KBhderivatives_descent_and_approximation.md b/content/posts/KBhderivatives_descent_and_approximation.md new file mode 100644 index 000000000..9c2f91bc7 --- /dev/null +++ b/content/posts/KBhderivatives_descent_and_approximation.md @@ -0,0 +1,20 @@ ++++ +title = "Derivatives, Bracketing, Descent, and Approximation" +author = ["Houjun Liu"] +draft = false ++++ + +- [Formal Formulation of Optimization]({{< relref "KBhsu_cs361_apr022024.md#formal-formulation-of-optimization" >}}) +- [constraint]({{< relref "KBhsu_cs361_apr022024.md#constraint" >}}) +- types of conditions + - [FONC]({{< relref "KBhsu_cs361_apr042024.md#first-order-necessary-condition" >}}) and [SONC]({{< relref "KBhsu_cs361_apr042024.md#second-order-necessary-condition" >}}) +- [Derivatives]({{< relref "KBhsu_cs361_apr042024.md#derivative" >}}) + - [Directional Derivatives]({{< relref "KBhsu_cs361_apr042024.md#directional-derivative" >}}) + - numerical methods + - [Finite-Difference Method]({{< relref "KBhsu_cs361_apr042024.md#finite-difference-method" >}}) + - [Complex-Difference Method]({{< relref "KBhsu_cs361_apr042024.md#complex-difference-method" >}}) + - exact methods: autodiff + - [Forward Accumulation]({{< relref "KBhautomatic_differentiation.md#forward-accumulation" >}}) + - cooool: [Dual Number Method]({{< relref "KBhautomatic_differentiation.md#dual-number-method" >}}) +- [Bracketing]({{< relref "KBhsu_cs361_apr042024.md#bracketing" >}}) + - [Fibonacci Search]({{< relref "KBhsu_cs361_apr042024.md#fibonacci-search" >}}) diff --git a/content/posts/KBhoptimization_index.md b/content/posts/KBhoptimization_index.md index 8a613faeb..f931422e7 100644 --- a/content/posts/KBhoptimization_index.md +++ b/content/posts/KBhoptimization_index.md @@ -55,6 +55,30 @@ aa222.stanford.edu ## Lectures {#lectures} -## Basic, Single-Objective Optimization {#basic-single-objective-optimization} +## Derivatives, Bracketing, Descent, and Approximations {#derivatives-bracketing-descent-and-approximations} + +Topics: [Derivatives, Bracking, Descent, and Approximation]({{< relref "KBhderivatives_descent_and_approximation.md" >}}) + + +### Lectures {#lectures} - [SU-CS361 APR022024]({{< relref "KBhsu_cs361_apr022024.md" >}}) +- [SU-CS361 APR042024]({{< relref "KBhsu_cs361_apr042024.md" >}}) + + +## Direct Optimization {#direct-optimization} + + +## Stochastic, Population, and Expressions {#stochastic-population-and-expressions} + + +## Constraints {#constraints} + + +## Sampling and Surrogates {#sampling-and-surrogates} + + +## Optimization Under Uncertainty {#optimization-under-uncertainty} + + +## What's Next {#what-s-next} diff --git a/content/posts/KBhsingle_objective_optimization.md b/content/posts/KBhsingle_objective_optimization.md new file mode 100644 index 000000000..0eeec023c --- /dev/null +++ b/content/posts/KBhsingle_objective_optimization.md @@ -0,0 +1,5 @@ ++++ +title = "Single-Objective Optimization" +author = ["Houjun Liu"] +draft = false ++++ diff --git a/content/posts/KBhsu_cs361_apr042024.md b/content/posts/KBhsu_cs361_apr042024.md new file mode 100644 index 000000000..950b08a6b --- /dev/null +++ b/content/posts/KBhsu_cs361_apr042024.md @@ -0,0 +1,176 @@ ++++ +title = "SU-CS361 APR042024" +author = ["Houjun Liu"] +draft = false ++++ + +## optimization inequalities cannot be strict {#optimization-inequalities-cannot-be-strict} + +Consider: + +\begin{align} +\min\_{x}&\ x \\\\ +s.t.\ & x > 1 +\end{align} + +this has **NO SOLUTION**. (1,1) wouldn't actually be in [feasible set]({{< relref "KBhsu_cs361_apr022024.md#formal-formulation-of-optimization" >}}). So, we usually specify optimization without a strict inequality. + +So, instead, we write: + +\begin{align} +\min\_{x}&\ x \\\\ +s.t.\ & x \geq 1 +\end{align} + + +## Univariate Conditions {#univariate-conditions} + + +### First order Necessary Condition {#first-order-necessary-condition} + +\begin{equation} +\nabla f(x^{\*}) = 0 +\end{equation} + + +### Second order necessary condition {#second-order-necessary-condition} + +\begin{equation} +\nabla^{2}f(x^{\*}) \geq 0 +\end{equation} + + +## Derivative {#derivative} + +\begin{equation} +f'(x) = \frac{\Delta f(x)}{\Delta x} +\end{equation} + +Or gradient; our convention is that gradients are a **COLUMN** vector--- + +\begin{equation} +\nabla f(x) = \mqty(\pdv{f(x)}{x\_1} \\\ \pdv{f(x)}{x\_2} \\\ \dots \\\ \pdv{f(x)}{x\_{n}}) +\end{equation} + +Hessian matrix (2nd order partial); its just this, where columns are the second index and rows are the first index. + + +## Directional Derivative {#directional-derivative} + +\begin{align} +\nabla\_{s} f(x) &= \lim\_{h \to 0} \frac{f(x+hs) - f(x)}{h} \\\\ +&= \lim\_{h \to 0} \frac{f(x+\frac{hs}{2}) - f(x- \frac{hs}{2})}{h} +\end{align} + +i.e. this is "derivative along a direction" + + +## Numerical Method {#numerical-method} + + +### Finite-Difference Method {#finite-difference-method} + +Recall the Taylor Series about \\(f(x+h)\\): + +\begin{equation} +f(x+h) = f(x) + \frac{f'(x)}{1} h + \frac{f''(x)}{2!} h^{2} + \dots +\end{equation} + +Moving it around to get \\(f'(x)\\) by itself: + +\begin{equation} +f'(x)h = f(x+h) - f(x) - \frac{f''(x)}{2!} h^{2} + \dots +\end{equation} + +So: + +\begin{equation} +f'(x) \approx \frac{f(x+h)-f(x)}{h} + \dots +\end{equation} + +where $...$ errors at \\(O(h)\\). + + +#### Two Sources of Error {#two-sources-of-error} + +- \\(f(x+h) - f(x)\\) cancels out at small values of \\(x\\) and \\(h\\), because of **floating point errors** +- The \\(O(h)\\) term which is not accounted for in the end + + +### Complex-Difference Method {#complex-difference-method} + +Consider a Taylor approximation of complex difference: + +\begin{equation} +f(x + ih) = f(x) + ih f'(x) - h^{2} \frac{f''(x)}{2!} - ih^{3} \frac{f'''(x)}{3!} + \dots +\end{equation} + +Let's again try to get \\(f'(x)\\) by itself; rearranging and thinking for a bit, we will get every other term on the expression above: + +\begin{equation} +f'(x) = \frac{\Im (f(x+ih))}{h} + \dots +\end{equation} + +Where the $...$ errors is at \\(O(h^{2})\\) + +**NOTICE**: we no longer have the cancellation error because we no longer have subtraction. + + +## [Automatic Differentiation]({{< relref "KBhautomatic_differentiation.md" >}}) {#automatic-differentiation--kbhautomatic-differentiation-dot-md} + +See [Automatic Differentiation]({{< relref "KBhautomatic_differentiation.md" >}}) + + +## Bracketing {#bracketing} + +Given a unimodal function, the global minimum is guaranteed to be within \\([a,c]\\) with \\(b \in [a,c]\\) if we have that \\(f(a) > f(b) < f( c)\\). + +So let's find this bracket. + + +### Unimodality {#unimodality} + +A function \\(f\\) is unimodal if: + +\\(\exists\\) unique \\(x^{\*}\\) such that \\(f\\) is monotonically decreasing for \\(x \leq x^{\*}\\) and monotonically increasing for \\(x \geq x^{\*}\\) + + +### Bracketing Procedure {#bracketing-procedure} + +If we don't know anything, we might as well start with \\(a=-1, b=0, c=1\\). + +One of three things: + +- we already satisfy \\(f(a) > f(b) < f( c)\\), well, we are done +- if our left side \\(f(a)\\) is too low, we will move \\(a\\) to the left without moving $c$---doubling the step size every time until it works +- if our right side is too low to the other thing, move it too, ... + + +#### Fibonacci Search {#fibonacci-search} + +Say you wanted to evaluate your sequence a finite number of times to maximally lower the interval. + + + +- Two Evaluations + + At two evaluations, you should pick two points right down the middle very close together; this will cut your interval in half. + + + +- \\(n\\) evaluations + + Evaluate intervals with lengths + + \begin{equation} + F\_{n} = + \begin{cases} + 1, n\leq 2 \\\\ + F\_{n-1} + F\_{n-2} + \end{cases} + \end{equation} + + +#### Golden Section Search {#golden-section-search} + +Shrink instead by golden ratio, which is constast. diff --git a/static/ox-hugo/2024-04-04_09-40-27_screenshot.png b/static/ox-hugo/2024-04-04_09-40-27_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..ee52a5d97e29c81980f21debcb1844430a875621 GIT binary patch literal 41165 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 literal 0 HcmV?d00001