<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Anirudh&#39;s Blog on Anirudh Vemula</title>
    <link>https://vvanirudh.github.io/</link>
    <description>Recent content in Anirudh&#39;s Blog on Anirudh Vemula</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 02 Dec 2025 11:03:39 -0400</lastBuildDate>
    <atom:link href="https://vvanirudh.github.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Revisiting Racket: Advent of Code 2025 Day 2</title>
      <link>https://vvanirudh.github.io/blog/advent_of_code_2025_day_2/</link>
      <pubDate>Tue, 02 Dec 2025 11:03:39 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/advent_of_code_2025_day_2/</guid>
      <description>&lt;p&gt;Day 2 of doing &lt;a href=&#34;https://adventofcode.com/&#34;&gt;advent of code&lt;/a&gt; using &lt;a href=&#34;https://docs.racket-lang.org/guide/index.html&#34;&gt;Racket&lt;/a&gt;. Let&amp;rsquo;s go!&lt;/p&gt;&#xA;&lt;p&gt;Before we discuss my solution, read the problem statement &lt;a href=&#34;https://adventofcode.com/2025/day/2&#34;&gt;here&lt;/a&gt;. Now, for the first puzzle.&lt;/p&gt;&#xA;&lt;h1 id=&#34;puzzle-1&#34;&gt;Puzzle 1&lt;/h1&gt;&#xA;&lt;h2 id=&#34;parsing&#34;&gt;Parsing&lt;/h2&gt;&#xA;&lt;p&gt;As usual, we need to first start with parsing the input. The input is given as a single line with comma-separated &lt;em&gt;ranges&lt;/em&gt;, where each range is of the form &lt;code&gt;&amp;quot;start-end&amp;quot;&lt;/code&gt; where both &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; are numbers.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-racket&#34; data-lang=&#34;racket&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;define&lt;/span&gt; (strip string)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (string-replace string &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;define&lt;/span&gt; (parse-range string-range)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;let&lt;/span&gt;([range (string-split string-range &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;-&amp;#34;&lt;/span&gt;)])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (map string-&amp;gt;number range)))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;define&lt;/span&gt; input (map (compose1 parse-range strip) (string-split (file-&amp;gt;string &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;input.txt&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;,&amp;#34;&lt;/span&gt;)))&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;Few things to note here:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Revisiting Racket: Advent of Code 2025 Day 1</title>
      <link>https://vvanirudh.github.io/blog/advent_of_code_2025_day_1/</link>
      <pubDate>Mon, 01 Dec 2025 11:53:39 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/advent_of_code_2025_day_1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been meaning to revisit &lt;a href=&#34;https://docs.racket-lang.org/guide/index.html&#34;&gt;Racket&lt;/a&gt; for a very long time. It was the functional programming language that was taught in IIT Bombay &lt;em&gt;Programming Paradigms&lt;/em&gt; course, which was my favorite computer science course of all time.&lt;/p&gt;&#xA;&lt;p&gt;When I heard that &lt;a href=&#34;https://adventofcode.com/&#34;&gt;Advent of Code&lt;/a&gt; was starting soon, I thought this was the best time to revisit Racket, and re-learn the language while solving all the puzzles.&lt;/p&gt;&#xA;&lt;p&gt;Day 1 puzzles (two of them) were straightforward and can be found &lt;a href=&#34;https://adventofcode.com/2025/day/1&#34;&gt;here&lt;/a&gt;. Read the problem statement before proceeding further as I discuss my solution in Racket below.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Gentle Primer for Nonparametric Density Estimation: Kernel Density Estimation</title>
      <link>https://vvanirudh.github.io/blog/kde/</link>
      <pubDate>Sat, 13 Apr 2024 16:53:39 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/kde/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;./blog/nonparametric_density_estimation&#34;&gt;previous post&lt;/a&gt;, we discussed a neat intuition for&#xA;nonparametric density estimation and introduced a nonparametric method, histograms. This post&#xA;describes another (very popular) density estimation method called Kernel Density Estimation (KDE).&lt;/p&gt;&#xA;&lt;h3 id=&#34;revisit-intuition&#34;&gt;Revisit Intuition&lt;/h3&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s revisit the intuition that we developed for nonparametric density estimation. Given a region&#xA;$R \subset \mathbb{R}^D$ of volume $V$, and that contains $K$ points from a sampled dataset of size $N$,&#xA;we can estimate $p(x)$ for any point $x \in R$ as&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Gentle Primer for Nonparametric Density Estimation: Histograms</title>
      <link>https://vvanirudh.github.io/blog/nonparametric_density_estimation/</link>
      <pubDate>Sun, 07 Apr 2024 17:33:51 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/nonparametric_density_estimation/</guid>
      <description>&lt;p&gt;Parametric density estimation, a.k.a fitting probability distribution to observed&#xA;data by tweaking the parameters of the distribution&amp;rsquo;s functional form, is all the&#xA;rage now with generative modeling and LLMs. I think nonparametric methods deserve&#xA;some love too and I hope to give a very small primer on these methods in a series of&#xA;posts.&lt;/p&gt;&#xA;&lt;h3 id=&#34;what-are-nonparametric-methods&#34;&gt;What are Nonparametric methods?&lt;/h3&gt;&#xA;&lt;p&gt;Looking at the name, you might have guessed that these are methods where you fit&#xA;a probability distribution to data without any underlying parameters that are&#xA;computed from the data itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lessons from AlphaZero: Part 3</title>
      <link>https://vvanirudh.github.io/blog/lessons_of_alphazero_3/</link>
      <pubDate>Wed, 13 Dec 2023 23:47:09 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/lessons_of_alphazero_3/</guid>
      <description>&lt;p&gt;We will continue with part 3 (and the final part) of the blog post series on this &lt;a href=&#34;https://web.mit.edu/dimitrib/www/LessonsfromAlphazero.pdf&#34;&gt;book&lt;/a&gt; by Bertsekas. As always, I would highly recommend the readers to start with part 1 and part 2 before continuing in part 3, as all of the notation used in this post is introduced in the previous parts.&lt;/p&gt;&#xA;&lt;p&gt;As a recap, here&amp;rsquo;s the breakdown for the 3-part blog series:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_1&#34;&gt;Part 1&lt;/a&gt;: Notation, Bellman Operators, and geometric interpretation of value iteration.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_2&#34;&gt;Part 2&lt;/a&gt;: Approximation in Value Space, one-step and multi-step lookahead, and certainty equivalent approximations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_3&#34;&gt;Part 3&lt;/a&gt; (this post): Geometric interpretation of policy iteration, truncated rollout, and final remarks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s begin!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lessons from AlphaZero: Part 2</title>
      <link>https://vvanirudh.github.io/blog/lessons_of_alphazero_2/</link>
      <pubDate>Sat, 02 Dec 2023 23:47:09 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/lessons_of_alphazero_2/</guid>
      <description>&lt;p&gt;This is part 2 of the blog post series on this &lt;a href=&#34;https://web.mit.edu/dimitrib/www/LessonsfromAlphazero.pdf&#34;&gt;book&lt;/a&gt; from Bertsekas, and its key takeaways.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s pick it up from where we left off in &lt;a href=&#34;./blog/lessons_of_alphazero_1&#34;&gt;part 1&lt;/a&gt;. Will highly recommend readers to check out part 1 before continuing in part 2, as some important notation and ideas were described there, which will be relevant in this part.&lt;/p&gt;&#xA;&lt;p&gt;As a recap, here&amp;rsquo;s the breakdown for the 3-part blog series:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_1&#34;&gt;Part 1&lt;/a&gt;: Notation, Bellman Operators, and geometric interpretation of value iteration.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_2&#34;&gt;Part 2&lt;/a&gt; (this post): Approximation in Value Space, one-step and multi-step lookahead, and certainty equivalent approximations.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;./blog/lessons_of_alphazero_3&#34;&gt;Part 3&lt;/a&gt;: Geometric interpretation of policy iteration, truncated rollout, and final remarks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;With that, let&amp;rsquo;s kick-off part 2.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lessons from AlphaZero: Part 1</title>
      <link>https://vvanirudh.github.io/blog/lessons_of_alphazero_1/</link>
      <pubDate>Fri, 24 Nov 2023 23:47:09 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/lessons_of_alphazero_1/</guid>
      <description>&lt;p&gt;I recently came across this &lt;a href=&#34;https://web.mit.edu/dimitrib/www/LessonsfromAlphazero.pdf&#34;&gt;book&lt;/a&gt; from Bertsekas that looked very interesting. It promises to provide a novel (geometric) interpretation of the methods that underlie the success of AlphaZero, AlphaGo, and TD-Gammon. I thought it would be interesting to take this as an opportunity to read the book, and have a blog post series on the key takeaways.&lt;/p&gt;&#xA;&lt;p&gt;I think this will be a 3-part blog series with the following contents:&lt;/p&gt;</description>
    </item>
    <item>
      <title>AdaGrad</title>
      <link>https://vvanirudh.github.io/blog/adagrad/</link>
      <pubDate>Wed, 18 Nov 2020 23:47:09 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/adagrad/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://arxiv.org/abs/1912.13213&#34;&gt;Francesco Orabona&amp;rsquo;s monograph&lt;/a&gt; on online learning has a very neat and intuitive way of looking at AdaGrad. I found it to be really useful.&lt;/p&gt;&#xA;&lt;h3 id=&#34;looking-back-at-ogd&#34;&gt;Looking back at OGD&lt;/h3&gt;&#xA;&lt;p&gt;From our &lt;a href=&#34;./notes/ogd&#34;&gt;note&lt;/a&gt; on online (sub)gradient descent, we had the following regret bound&lt;/p&gt;&#xA;&lt;p&gt;$$R_T(u) \leq \frac{D^2}{2\eta_T} + \sum_{t=1}^T \frac{\eta_t}{2} ||g_t||_2^2 $$&lt;/p&gt;&#xA;&lt;p&gt;where $D$ is the diameter of the closed, convex set $V$. If we assume a fixed learning rate for all time steps and optimizing we get the optimal learning rate as&lt;/p&gt;</description>
    </item>
    <item>
      <title>CMAX&#43;&#43;: Leveraging Experience for Planning and Execution with Inaccurate Models</title>
      <link>https://vvanirudh.github.io/blog/cmaxpp/</link>
      <pubDate>Tue, 13 Oct 2020 14:39:32 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/cmaxpp/</guid>
      <description>&lt;p&gt;In this blog post, I will summarize the key contributions of my recent &lt;a href=&#34;https://arxiv.org/abs/2009.09942&#34;&gt;submission&lt;/a&gt; on CMAX++. This work mainly improves upon my previous work, CMAX (highly recommended to read a summary of CMAX in &lt;a href=&#34;./blog/cmax&#34;&gt;this blog post&lt;/a&gt;.)&lt;/p&gt;&#xA;&lt;p&gt;The broad theme of both these approaches is to use &lt;em&gt;simplified and inaccurate&lt;/em&gt; dynamical models to significantly reduce the amount of real world experience needed by the robot to complete a task. The setting we consider is a goal-oriented task setting where the robot needs to reach the goal online, without any resets. This setting is classically considered using the planning and execution framework where the robot constantly replans after each execution to intelligently use any experience obtained in the  past executions. It goes without saying that this setting is extremely challenging as the initial model used for planning cannot capture the real world dynamics accurately and the robot does not have access to any resets to &amp;ldquo;undo&amp;rdquo; any past mistakes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Regret Analysis of Stochastic Bandit Problems</title>
      <link>https://vvanirudh.github.io/blog/stochastic_bandits/</link>
      <pubDate>Thu, 23 Jul 2020 19:09:28 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/stochastic_bandits/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;$K$ arms, $T$ rounds (assume known $K$ and $T$)&lt;/li&gt;&#xA;&lt;li&gt;Goal is to maximize total reward over $T$ rounds&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;assumptions&#34;&gt;Assumptions&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Bandit Feedback: only observe reward for the arm played&lt;/li&gt;&#xA;&lt;li&gt;IID rewards: For each arm $a$, $\exists$ a reward distribution $D_a$ which is unknown&lt;/li&gt;&#xA;&lt;li&gt;Per-round rewards are bounded, i.e. $r_t \in [0, 1]$ for $t \in [T]$&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We are primarily interested in mean vector $\mu \in [0, 1]^K$ where $\mu(a) = \mathbb{E}[D_a]$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;notation&#34;&gt;Notation&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set of arms $\mathcal{A}$&lt;/li&gt;&#xA;&lt;li&gt;Best mean reward $\mu^* = \max_{a \in \mathcal{A}} \mu(a)$&lt;/li&gt;&#xA;&lt;li&gt;Gap of arm $a$: $\Delta(a) = \mu^* - \mu(a)$&lt;/li&gt;&#xA;&lt;li&gt;Optimal arm $a^* $, i.e. $\mu(a^*) = \mu^*$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;regret&#34;&gt;Regret&lt;/h3&gt;&#xA;&lt;p&gt;$$ R(T) = \mu^*T - \sum_{t=1}^T \mu(a_t) $$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Online Learning for Adversaries with Past Memory</title>
      <link>https://vvanirudh.github.io/blog/ol_memory/</link>
      <pubDate>Thu, 09 Jul 2020 22:33:34 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/ol_memory/</guid>
      <description>&lt;p&gt;The framework of OCO with memory is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At each round $t$, player chooses $x_t \in K \subset \mathbb{R}^n$&lt;/li&gt;&#xA;&lt;li&gt;Then, a loss $f_t: K^{m+1} \rightarrow \mathbb{R}$ is revealed and player suffers loss of $f_t(x_{t-m}, \cdots, x_t)$&lt;/li&gt;&#xA;&lt;li&gt;Assume $0 \in K$, and $f_t(x_0, \cdots, x_m) \in [0,1]$ for any $x_0, \cdots, x_m \in K$&lt;/li&gt;&#xA;&lt;li&gt;Assume that after $f_t$ is revealed, the player is aware of the loss she would suffer had she played any sequence of decisions $x_{t-m}, \cdots, x_t$ (counterfactual feedback model)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Minimize policy regret&#xA;$$R_{T, m} = \sum_{t=m}^T f_t(x_{t-m}, \cdots, x_t) - \min_{x \in K} \sum_{t=m}^T f_t(x, \cdots, x) $$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Online Newton Step</title>
      <link>https://vvanirudh.github.io/blog/ons/</link>
      <pubDate>Sat, 04 Jul 2020 11:12:37 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/ons/</guid>
      <description>&lt;h3 id=&#34;exp-concave-functions&#34;&gt;Exp-concave Functions&lt;/h3&gt;&#xA;&lt;p&gt;OGD achieves logarithmic regret for strongly convex and lipschitz functions (see this &lt;a href=&#34;./notes/strong_convexity.md&#34;&gt;note&lt;/a&gt;), but this is a rather strong condition.&lt;/p&gt;&#xA;&lt;p&gt;For twice-differentiable strongly convex functions, we require that the hessian is positive definite and has full rank!&lt;/p&gt;&#xA;&lt;p&gt;However, sometimes the hessian might not be full rank (sometimes, even rank one) but is large in the direction of the gradient. This is a property of exp-concave functions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Exp-concave Definition&lt;/strong&gt;: A convex function $f:\mathbb{R}^n \rightarrow \mathbb{R}$ is $\alpha$-exp-concave over $K \subseteq \mathbb{R}^n$ if the function $g$ is concave, where $g:K \rightarrow \mathbb{R}$ is&#xA;$$ g(x) = \exp(-\alpha f(x)) $$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Online Gradient Descent with Strongly Convex Functions</title>
      <link>https://vvanirudh.github.io/blog/strong_convexity/</link>
      <pubDate>Fri, 03 Jul 2020 16:52:01 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/strong_convexity/</guid>
      <description>&lt;p&gt;Turns out we can do better $\sqrt{T}$ regret we saw for OGD analysis for convex lipschitz losses if they possess some &lt;em&gt;curvature&lt;/em&gt; that can be exploited.&lt;/p&gt;&#xA;&lt;h3 id=&#34;strong-convexity&#34;&gt;Strong Convexity&lt;/h3&gt;&#xA;&lt;p&gt;$f$ is $\mu$-strongly convex over convex set $V$ w.r.t norm $||\cdot||$ if $\forall x, y \in V$ and $g \in \partial f(x)$&#xA;$$ f(y) \geq f(x) + \langle g, y - x\rangle +\frac{\mu}{2}||x - y||^2$$&lt;/p&gt;&#xA;&lt;p&gt;In other words, &lt;em&gt;a strongly convex function is lower bounded by a quadratic (instead of linear like convex functions)&lt;/em&gt;. Hence, we have a tighter lower bound. Actually, several possible quadratic lower bounds since there can be more than one subgradient.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Online Gradient Descent</title>
      <link>https://vvanirudh.github.io/blog/ogd/</link>
      <pubDate>Wed, 01 Jul 2020 12:57:48 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/ogd/</guid>
      <description>&lt;p&gt;Similar to SGD but different: loss functions are different at each time step&lt;/p&gt;&#xA;&lt;h3 id=&#34;algorithm&#34;&gt;Algorithm&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;Projected Online Gradient Descent&lt;/strong&gt;: $x_1 \in V \subseteq \mathbb{R}^d$ where $V$ is a closed, convex set and $\eta_1, \cdots, \eta_T &amp;gt; 0$&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;for $t = 1, \cdots, T$&lt;/li&gt;&#xA;&lt;li&gt;Play $x_t$&lt;/li&gt;&#xA;&lt;li&gt;Receive $\ell_t: \mathbb{R}^d \rightarrow (-\infty, \infty]$ and pay $\ell_t(x_t)$&lt;/li&gt;&#xA;&lt;li&gt;Set $g_t = \nabla \ell_t(x_t)$&lt;/li&gt;&#xA;&lt;li&gt;$x_{t+1} = \Pi_V(x_t - \eta_t g_t) = \arg\min_{y \in V}||x_t - \eta_tg_t - y||_2$&lt;/li&gt;&#xA;&lt;li&gt;end&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;regret-analysis&#34;&gt;Regret Analysis&lt;/h3&gt;&#xA;&lt;p&gt;Crucial to the analysis is the following simple lemma:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Frank-Wolfe a.k.a Conditional Gradient Descent</title>
      <link>https://vvanirudh.github.io/blog/frank_wolfe/</link>
      <pubDate>Sat, 27 Jun 2020 22:15:13 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/frank_wolfe/</guid>
      <description>&lt;p&gt;An alternative approach to projected gradient descent for minimizing a smooth convex function $f$ over a compact, convex set $K$.&lt;/p&gt;&#xA;&lt;p&gt;At the $t$-th step, it considers the first-order taylor approximation $\hat{f}$ of $f$ around $x_t$, and minimizes $\hat{f}$ over $K$, obtaining a minimizer $y_t$.&#xA;$$ \hat{f}(y) = f(x_t) + \langle \nabla f(x_t), y - x_t \rangle $$&#xA;$$ y_t = \arg\min_{y \in K} \hat{f}(y) = \arg\min_{y \in K} \langle \nabla f(x_t), y \rangle $$&lt;/p&gt;</description>
    </item>
    <item>
      <title>Forward and Reverse KL Divergence</title>
      <link>https://vvanirudh.github.io/blog/kl/</link>
      <pubDate>Fri, 26 Jun 2020 23:47:09 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/kl/</guid>
      <description>&lt;p&gt;KL-divergence is given by:&#xA;$$ D_{KL}(P||Q) = \mathbb{E}_{x \sim P}\left[\log \frac{P(X)}{Q(X)}\right] $$&lt;/p&gt;&#xA;&lt;p&gt;It is not necessarily symmetric, so $D_{KL}(P||Q) \neq D_{KL}(Q||P)$, thus it cannot be used as a distance metric.&lt;/p&gt;&#xA;&lt;p&gt;It is always positive, i.e. $D_{KL} \geq 0$. Also, if there is a point $x$ where $Q(X) = 0$ but $P(X) \neq 0$, then $D_{KL}(P||Q) = \infty$. Thus, we need the support of $P$ to lie completely in $Q$ for a finite KL-divergence.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hunter Thompson&#39;s letter on finding purpose</title>
      <link>https://vvanirudh.github.io/blog/letter/</link>
      <pubDate>Wed, 17 Jun 2020 14:39:32 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/letter/</guid>
      <description>&lt;p&gt;Several years ago, I came across this letter written by &lt;a href=&#34;https://en.wikipedia.org/wiki/Hunter_S._Thompson&#34;&gt;Hunter S. Thompson&lt;/a&gt; to his friend Hume Logan on finding purpose and meaning in one&amp;rsquo;s life. It had a profound impact on me back then, and very recently I read the letter again only to interpret it differently. The advice in the letter is timeless and I like to think that reading it again in a few years will reveal other hidden gems in this letter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CMAX: Planning and Execution with Inaccurate Models</title>
      <link>https://vvanirudh.github.io/blog/cmax/</link>
      <pubDate>Wed, 06 May 2020 14:39:32 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/cmax/</guid>
      <description>&lt;p&gt;Very recently, I submitted a &lt;a href=&#34;https://arxiv.org/abs/2003.04394&#34;&gt;paper&lt;/a&gt; to &lt;a href=&#34;https://roboticsconference.org/&#34;&gt;RSS&lt;/a&gt; (update: accepted!) on how to use inaccurate models for planning in robotic tasks. For many robotic tasks, we usually have access to a (inaccurate)  model of the robot and the environment. For example, simulators that employ sophisticated physics engines such as &lt;a href=&#34;http://www.mujoco.org/&#34;&gt;MuJoCo&lt;/a&gt; or &lt;a href=&#34;https://pybullet.org/wordpress/&#34;&gt;Bullet&lt;/a&gt; can be used as forward dynamical models for planning. These models capture some complexities of the real world well, while they fail to capture other subtleties. However, they are still very useful sources of information on real-world dynamics that can be exploited to plan a good policy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AISTATS 2019</title>
      <link>https://vvanirudh.github.io/blog/aistats19/</link>
      <pubDate>Fri, 19 Apr 2019 15:59:13 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/aistats19/</guid>
      <description>&lt;h1 id=&#34;thoughts-on-the-conference&#34;&gt;Thoughts on the conference&lt;/h1&gt;&#xA;&lt;p&gt;My overall impression of AISTATS was that its a really good conference if statistical ML is what you are interested/working in. I learnt a fair bit about the basics of unknown topics and made a few friends who work in widely different areas. Its a single track conference so there&amp;rsquo;s more interaction among people and more exposure to the oral sessions. There&amp;rsquo;s barely any presence of industry (either in sponsors or papers) except for Google Research/Brain/Deepmind papers. And thankfully, AISTATS community seems to not be onboard the hype train (yet) and there&amp;rsquo;s ample time to ask questions in the poster session.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New York City in 35mm</title>
      <link>https://vvanirudh.github.io/blog/newyork_pics/</link>
      <pubDate>Mon, 02 Oct 2017 15:59:13 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/newyork_pics/</guid>
      <description>&lt;p&gt;Some of these photos were taken in New York city when I visited it in October for an AI forum. I wanted to take pictures in NYC for so long and felt this was as good a time as any. So, carried my old-ass camera around uptown and midtown manhattan, and took most of the photos.&lt;/p&gt;&#xA;&lt;img src=&#34;./g3.jpg&#34; style=&#34;width:500px;&#34; vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g4.jpg&#34; style=&#34;width:500px;&#34; vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g5.jpg&#34; style=&#34;width:500px;&#34; vspace=&#34;10&#34;&gt;</description>
    </item>
    <item>
      <title>Graffiti in Pittsburgh through 35mm</title>
      <link>https://vvanirudh.github.io/blog/pittsburgh_graffiti/</link>
      <pubDate>Fri, 22 Sep 2017 15:59:13 -0400</pubDate>
      <guid>https://vvanirudh.github.io/blog/pittsburgh_graffiti/</guid>
      <description>&lt;p&gt;Early fall 2017, I went on a search for graffiti in Pittsburgh and found a lot! Took a bunch of snaps and developed them on Ilford HP5 35mm. To get most of these I had to bike around Pittsburgh (mostly in Lawrenceville and Oakland). Never knew Pittsburgh had so much street art.&lt;/p&gt;&#xA;&lt;center&gt;&#xA;&lt;img src=&#34;./g1.jpg&#34; vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g2.jpg&#34;  vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g6.jpg&#34;  vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g7.jpg&#34;  vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g8.jpg&#34;  vspace=&#34;10&#34;&gt;&#xA;&lt;img src=&#34;./g9.jpg&#34;  vspace=&#34;10&#34;&gt;&#xA;&lt;/center&gt;</description>
    </item>
  </channel>
</rss>
