CS205A Lecture 15 Numerical integration and differentiation
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十五讲,这一讲介绍了数值积分和微分。
Chapter 12 数值积分和微分积分首先讨论一元函数求积分的问题,即
f:\mathbb R\to \mathbb R我们的目标是求
I(f)=\int_a^b f(x)dx这里有两个假设:
$a,b$固定。
可以计算$f(x)$任意一点的值。
插值求积因为定积分是由黎曼和定义的,即
\int_{a}^{b} f(x) dx=\lim _{\Delta x_{k} \rightarrow 0} \sum_{k} f\left(\tilde{x}_{k}\right)\left(x_{k+1}-x_{k}\right)其中
\begin{aligned}
&1.a=x_{1}
CS205A Lecture 14 Interpolation
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十三讲,这一讲介绍了插值。
Chapter 11 插值之前讨论了函数求根以及极值的问题,但是在实际中函数常常未知,所以就要根据已有的值估计未知的值,这就是这一讲插值所需要解决的问题。
单变量插值首先讨论单变量的插值问题,首先给出问题的形式:
f:\mathbb R\to \mathbb R 是单变量函数,已知(x_i,y_i),i=1,\ldots ,k,y_i =f(x_i)\\
计算f(x), x\neq x_i ,i=1,\ldots ,k这里假设
x_1
CS205A Lecture 13 Conjugate gradients II; Formulation; preconditioning; and variants
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十三讲,这一讲完整介绍了共轭梯度法。
首先回顾梯度下降的残差:
\vec{r}_{k} = \vec{b}-A \vec{x}_{k}下面讨论$\vec r_{k+1}$和$\vec r_k$的关系。我们知道更新公式为
\vec{x}_{k+1}=\vec{x}_{k}+\alpha_{k+1} \vec{v}_{k+1}其中
\alpha_{k+1}=\frac{\vec{v}_{k+1}^{\top} \vec{r}_{k} }{\vec{v}_{k+1}^{\top} A \vec{v}_{k+1} }那么$\vec r_{k+1}$计算方式如下:
\begin{aligned}
\vec{r}_{k+1} &=\vec{b}-A \vec{x}_{k+1} \\
&=\vec{b}-A\left(\vec{x}_{k}+\alpha_{k+1} \vec{v}_{k+1}\right) \\
&=\left( ...
From Nand to Tetris week 2
这次回顾第二章的内容,这部分主要介绍了布尔运算,讲解了如何实现二进制加法,负数的表示以及算数逻辑单元(ALU)。
课程官网:
https://www.nand2tetris.org/
视频地址:
https://www.coursera.org/learn/build-a-computer
Chapter 2 布尔运算Part 1:课程回顾这部分回顾一些重点内容。
二进制加法来看一个二进制加法的例子:
从上述例子不难看出,最后一位只要考虑两个数相加的问题,处理这部分使用HalfAdder,接口如下:
除最后一位以外,其余每一位还要考虑前一位的进位问题,所以要处理三个数相加的问题,处理这部分使用FullAdder,接口如下:
最后要注意计算机存储数字的位数是固定的,如果超过这个范围,就会产生溢出:
处理方法是直接不考虑溢出位。假设计算机存储的位数为$n$,那么$x+y$的结果为
(x+y)\mod 2^n负数一个比较关键的问题是如何在计算机中表示负数,一个直接的想法是用第一位表示符号,$0$表示正数,$1$表示负数,但是这样$0$会有两个表示:
0000,1000并且
x ...
From Nand to Tetris week 1
这周开始学习From Nand to Tetris,中文名为“依据基本原理构建现代计算机:从与非门到俄罗斯方块”,课程介绍了计算机的工作原理,每周有一个项目,完成课程之后,可以真正构建出一个可以运行的计算机,课程也没有太多的先修课程,只要学过任何一门编程语言即可。
课程官网:
https://www.nand2tetris.org/
视频地址:
https://www.coursera.org/learn/build-a-computer
Chapter 1 布尔逻辑Part 1:课程回顾第一讲的内容比较基础,下面回顾几个重点部分:
Bool逻辑与Bool函数课程首先介绍Bool逻辑的常用性质,这里假设我们只使用$\text{And,Not,Or}$操作。比较关键的一点是Bool表达式对应了真值表,例如
f(x, y, z) = (x\text{ And }y)\text{ Or }(\text{Not}(x)\text{ And }z)对应了
$x$
$y$
$z$
$f$
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0 ...
CS205A HW5
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾作业5。
Problem 1(a)
\begin{aligned}
\nabla_{\vec x} f(\vec x)
&= A\vec x -\vec b\\
\nabla_{\vec x}^2 f(\vec x)
&=\nabla(A\vec x -\vec b)\\
&= A^T\\
&=A
\end{aligned}令第一个式子为$\vec 0$可得
\vec x' =A^{-1} \vec b因为$A$正定,所以$\vec x’ $是极小值点。
(b)首先考虑如何将两个向量变成$A-$共轭,假设两个向量为$\vec v_1, \vec v_2$,取$\vec w_1=\vec v_1$,设
\vec w_2 =\vec v_2 -\alpha \vec w_1要使得$\vec w_1, \vec w_2$为$A-$共轭,那么
\begin{aligned}
\langle \vec w_2, \vec w_1 ...
CS205A Lecture 12 Conjugate gradients I; Gradient descent, setup
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十二讲,这一讲介绍了迭代法求解线性系统的思路,引出了共轭梯度法的思想。
优化算法序列二次规划回顾之前介绍的优化问题:
\begin{aligned} \text { minimize }& f(\vec{x}) & \\
\text { such that } & g(\vec{x})=\vec{0} \\
&h(\vec{x}) \geq \vec{0} \end{aligned}现在讨论如何使用迭代算法求解,首先对目标函数和条件使用泰勒展开:
\begin{aligned}
f(\vec x_{k+1})&\approx f(\vec x_k)+\frac{1}{2} \vec{d}^T H_{f}\left(\vec{x}_{k}\right) \vec{d}+\nabla f\left(\vec{x}_{k}\right) \cdot \vec{d}+f\left(\vec{x}_{k}\right) \\
g_{i ...
CS205A Lecture 11 Optimization; Multiple variables, constraints
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十一讲,这一讲介绍了BFGS和KKT条件。
黄金分割搜索定义8.5 (Unimodular)
函数f:[a,b]\to \mathbb R是\text{unimodular},如果存在x' \in [a,b]使得f在[a,x']递增,在x\in [x',b]递减下面讨论如何求满足unimodular性质的函数$f$的最小值$x’$,首先不难想象这种函数的图像是U字型的,所以可以使用类似二分法的思路求解。
假设我们有两个点$a<x_0<x_1<b$,接下来分两种情形讨论:
如果$f(x_0 )\ge f(x_1)$,那么对$x\in [a, x_0]$,我们有$f(x)\ge f(x_1)$,最小值点$x’ \in [x_0, b]$,所以删除区间$[a, x_0]$
如果$f(x_1 )\ge f(x_0)$,那么对$x\in [x_1, b]$,我们有$f(x)\ge f(x_0)$,最小值点$x’\in ...
CS205A HW4
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾作业4。
Problem 1(a)假设
\begin{aligned}
\Delta J&= J_k -J_{k-1}\\
\Delta \vec x&= \vec x_k -\vec x_{k-1}\\
\vec d &= f(\vec x_k) -f(\vec x_{k-1})
-J_{k-1}\Delta \vec x
\end{aligned}那么原问题可以化为如下形式:
\begin{aligned}
\min_{\Delta J}&\ \Arrowvert \Delta J\Arrowvert^2_{\text{Fro}}\\
\text{such that}&\ \Delta J.\Delta \vec x =\vec d
\end{aligned}构造拉格朗日乘子:
\Lambda =\Arrowvert \Delta J\Arrowvert^2_{\text{Fro}} +
\vec \lambda^T(\D ...
CS205A Lecture 10 Systems of equations; optimization in one variable
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第十讲,这一讲介绍了多变量的非线性系统以及无条件优化问题。
多变量问题这里将讨论多变量函数的求根问题,即
\begin{aligned}
给定:&f:\mathbb R^n \to \mathbb R^m\\
找到:&\vec x' 使得f(\vec x' )=\vec 0
\end{aligned}一般来说,我们假设$n\ge m$。
对于该问题,一个简单的想法是将单变量的情形推广,显然二分法很难推广(因为要对$n$个维度使用二分法),而牛顿法则可以推广:
牛顿法首先定义雅克比矩阵:
Df \in \mathbb R^{m\times n},
(Df)_{ij}=\frac{\partial f_i}{\partial x_j}由泰勒展开,我们可以得到如下近似:
f(\vec x )\approx f(\vec x_k)+Df(\vec x_k).
(\vec x-\vec x_k)令$f(\vec x)=\vec 0$,我 ...
CS205A Lecture 9 Nonlinear equations and convergence analysis
课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html
这次回顾第九讲,这一讲开始介绍非线性系统,首先介绍了单变量函数求根的问题。
Chapter 7 非线性系统这一部分主要介绍求根的问题,即
\begin{aligned}
给定:&f:\mathbb R^n \to \mathbb R^m\\
找到:&\vec x' 使得f(\vec x' )=\vec 0
\end{aligned}这一部分首先介绍定义域和值域都是一维的情形,即$n=m=1$。
单变量问题在讨论之前,考虑以下两个例子:
f(x)=\begin{cases}
-1 & x\le 0\\
0 & x >0
\end{cases}\\
f(x)=\begin{cases}
-1 & x\in \mathbb Q\\
0 & 其他
\end{cases}上述函数的求根问题不好处理,这说明在求解问题之前,我们需要对函数$f$做一些假设,下面给出一些假设,按照假设强弱的顺序排列:
连续性:当$x\to y$时,$f(x)\to f ...
CS231 作业3
课程视频地址:https://study.163.com/courses-search?keyword=CS231
课程主页:http://cs231n.stanford.edu/2017/
参考资料:
https://github.com/Halfish/cs231n/tree/master/assignment2/cs231n
https://github.com/wjbKimberly/cs231n_spring_2017_assignment/blob/master/assignment2/TensorFlow.ipynb
我的代码地址:https://github.com/Doraemonzzz/CS231n
这一部分回顾作业3的重点。
准备工作Look at the data部分如果报如下错误:
另一个程序正在使用此文件,进程无法访问
那么注释image_utils.py文件中函数image_from_url的如下内容即可:
#os.remove(fname)
1.使用普通RNN进行图像标注Vanilla RNN: step forward对需要使用的量作出如下假设:
...