ann
神经网络 ANN
代码定义
首先我们继承自 torch.nn.Module
我们定义每一层 Hide 都会用到 self.layer = nn.Linear(input_dim,output_dim)
正向传播 Forward Propagation
需要传入一个 torch.tensor 变量 x,然后使用 x = torch.sigmoid(self.layer1(x))
当然可以使用其它激活函数代替 sigmoid()
损失函数 Loss Function
常见的有 nn.MSELoss() 等
优化函数 Optim
采用 torch.optim 库的 SGD(随机梯度下降)
SGD 参数是学习参数 model.parameters(), 和学习率 learning_rate=0.1
前者需要定义好 model 的层数
反向传播 Backward Propagation
总共分三步:清零梯度,计算本层梯度,执行
optimizer.zero_grad() -> loss.backward() -> optimizer.step() ...
activation_function
激活函数 Activation Function
定义
在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数
为什么要AF?
如果没有非线性AF,我们的输出结果和输入结果就会保持线性关系
Sigmoid 函数
σ(x)=11+e−x\sigma(x) = \frac{1}{1+e^{-x}}σ(x)=1+e−x1
图形如下
适用情形:
输出值限定在 0 到1
导数范围 (0,0.25](0,0.25](0,0.25], 也就是说在多层神经网络的情况下通过链式法则反向传播向前求导,最前面几层对最终结果会乘上层数个 不大于 0.250.250.25 的数,也就是说没啥影响了,因此层数不能过大
指数函数算力消耗较大
SoftMax 函数
S(x)=eziΣcezcS(x) = \frac{e^{z_i}}{\Sigma_c e^{z_c }}S(x)=Σcezcezi
可以将一个多分类的问题转换成各类别的概率分布问题
但是由于是指数,可能会出现数值爆炸的问题太大了效果不明显(最大的接近于 ...
square_integrable_function_space
8. 平方可积函数空间 Space of Square Integrable Function
函数线性空间定义
如何定义一个函数?
最好的答案是用一个级数去收敛,对于一个任意有界函数, v=limN→∞Σn=0Nλnunv = \lim _{N\to \infty}\Sigma_{n=0}^N\lambda_n u_nv=limN→∞Σn=0Nλnun
定义收敛,那么就要定义 norm
也就是我们要有 ∣∣v−Σn=0∞λnun∣∣→0||v -\Sigma_{n=0}^\infty \lambda_n u_n || \to 0∣∣v−Σn=0∞λnun∣∣→0
函数的 norm 通过内积定义 ⟨f,f⟩=∣∣f∣∣\langle f,f\rangle = ||f||⟨f,f⟩=∣∣f∣∣
现在的证明问题已经变成了 ⟨f,f⟩=0\lang f,f\rang=0⟨f,f⟩=0 如何推导出 f=0f=0f=0 呢
但是内积的定义 ⟨f,g⟩=∫abfˉgdx,f,g∈C([a,b])\lang f,g\rang = \int_a^b \b ...
separatable_pde
11. 可分离的偏微分方程 PDE
受张力的绳 suspended chain
首先位移函数是一个双变量函数 u(x,t)u(x,t)u(x,t)
考虑二维平面,具有时间属性
我们假定 utu_tut 表示对 ttt 求导结果,同理 uttu_{tt}utt 表示对时间求二阶导的结果
微分方程等式 utt=c2⋅uxxu_{tt} = c^2\cdot u_{xx}utt=c2⋅uxx, c2=Ftenρc^2 = \frac{F_{ten}}{\rho}c2=ρFten
FtenF_{ten}Ften 表示的是绳子内部的张力,假设绳子静止 (time-independent)且绳子重力效果不大
ρ\rhoρ 表示绳子密度
为了细化公式,定义 Fgen=ρgxF_{gen} = \rho gxFgen=ρgx
由于绳子的两端固定,这就是经典的 BVP 边界问题
分离思路
u(x,t)=X(x)⋅T(t)u(x,t) = X(x)\cdot T(t)u(x,t)=X(x)⋅T(t) 来获得两个单变量方程的积
我们要证明这个分离是 ...
power_series_sln2ode
7. 级数法求解微分方程 Power Series Solutions
二阶变系数齐次 ODE 的通式 Px′′+Qx′+Rx=0Px''+Qx'+Rx = 0Px′′+Qx′+Rx=0
首先通过令P≠0P \not = 0P=0 同时除以 PPP 得到 x′′+px′+qx=0x'' + px' +qx = 0x′′+px′+qx=0
级数收敛定理
对于函数 p,q 通过级数展开,拥有收敛半径 ρ1,ρ2\rho _1, \rho_2ρ1,ρ2,则解集 xxx 也拥有大于等于 min(ρ1,ρ2)\min(\rho_1,\rho_2)min(ρ1,ρ2) 的级数展开
也就是说,取两个收敛的min以内的部分的 t 一定满足收敛,即可以展开
或者说,通过级数收敛得到的答案大概在 (−ρmin,+ρmin)(-\rho_{min}, +\rho_{min})(−ρmin,+ρmin) 区间上是可以展开的,外部就会 →∞\to \infty→∞
这里说的是至少,也就是说并不是在 ρmin ...
ode_boundary_case
10. ODE 的边界问题
Sturm-Liouville 问题
L:=−1r(x)(ddx(p(x)ddx)+q(x))L:=-\frac{1}{r(x)}(\frac{d}{dx}(p(x)\frac{d}{dx})+q(x))L:=−r(x)1(dxd(p(x)dxd)+q(x))
在平方可积函数空间里面,可以使用线性算符进行特征值计算 Lu=λuLu =\lambda uLu=λu
常用形式 L=a2d2dx2+a1ddx+a0L =a_2 \frac{d^2}{dx^2} + a_1 \frac{d}{dx} + a_0L=a2dx2d2+a1dxd+a0
结论 p=e∫a1a2p = e^{\int\frac{a_1}{a_2}}p=e∫a2a1, r=−pa2r = -\frac{p}{a_2}r=−a2p, q=−a0rq = -a_0rq=−a0r
也就是说 SL 方程适合用来解决二阶线性方程
regular 的条件
III 是一个有限区间
p,p′,q,rp,p',q,rp,p′,q,r 连续
...
laplace_transform
4. 拉普拉斯变换 Laplace Transform
Heaviside 算符
假设我们存在一个求导算符 DDD 使得 f′=Dff' = Dff′=Df, 那么很多求导情况就可以通过这个 heaviside 算符做线性运算解决
但是我们首先得确定这个算符的可行性
由于是线性运算,我们可以定义矩阵和变基来将一个映射 fff 变为可以加 DDD 的情况
f→{f}f \to \{f\}f→{f} , D{f}={f′}D\{f\} = \{f'\}D{f}={f′}
要求{f}\{f\}{f} 是线性: ${\alpha f +\beta g}§ = \alpha {f}§ + \beta {f} § $ 对 ∀p\forall p∀p 成立
要求 D{f}(p)={f′}(p)+f(0)D\{f\}(p) = \{f'\}(p)+f(0)D{f}(p)={f′}(p)+f(0) 对 ∀p\forall p∀p 成立
代入 D{1}(p)={0}(p)+1=1D\{1\}(p) = \{0\}(p) + 1 = 1D{1}(p ...
holomorphism
2. 全纯函数的性质 properties of holomorphic functions
古尔萨定理 Goursat’s Theorem
对于开区间上全纯函数 fff 存在开区间内部的一个三角形 TTT 使得 ∮Tf(z)dz=0\operatorname{\oint_T f(z)dz = 0}∮Tf(z)dz=0
注意我们朴素的理解全纯函数,就认为可导就好了
没理解!
推论:矩形 RRR 积分为 0
圆盘积分定理
全纯函数在一个开圆盘中有原函数
柯西积分定理 Cauchy’s Theorem
函数 fff 是一个圆盘内的全纯函数,则有 ∮Cf(z)dz=0\oint_\mathcal{C} f(z)dz = 0∮Cf(z)dz=0 对任意圆盘内闭合曲线都成立
推论:对开集内包含的一个圆 CCC 且分析其内部,则有 ∮Cf(z)dz=0\oint_C f(z)dz = 0∮Cf(z)dz=0
这个区别在于我们要找到一个 closed 圆盘 被包含在中间,所以我们要用数学语言表述在一个开区间内部包含了一个closed圆
这一切的 ...
fourier_transformation
6. 傅里叶变换 Fourier Transform
傅里叶变换 Fourier Transform
公式: f^(ξ)=12π∫−∞∞f(x)e−iξxdx\hat f(\xi) = \frac 1 {\sqrt{2\pi}}\int_{-\infty}^{\infty} f(x) e^{-i\xi x}dxf^(ξ)=2π1∫−∞∞f(x)e−iξxdx
前提:∫−∞∞∣f(x)∣dx<∞\int_{-\infty}^{\infty}| f(x)|dx <\infty∫−∞∞∣f(x)∣dx<∞
和拉氏变换的区别:
是 (−∞,+∞)(-\infty,+\infty)(−∞,+∞) 的积分
e 的指数部分包含 i, 是复数的振动,而不是 decay 问题
求导 (f′)^(ξ)=12π∫−∞∞f′(x)e−iξxdx\hat{(f')}(\xi) = \frac 1 {\sqrt{2\pi}} \int_{-\infty}^{\infty} f'(x) e^{-i\xi x}dx(f′)^(ξ)=2π1 ...
fourier_series
9. 傅里叶级数 Fourier Series
傅里叶基
Bf={12π,1πcos(nx),1πsin(nx)}n=1∞B_f = \{\frac 1 {\sqrt{2\pi}},\frac 1{\sqrt{\pi}}\cos(nx),\frac 1{\sqrt\pi}\sin(nx)\}_{n=1}^\inftyBf={2π1,π1cos(nx),π1sin(nx)}n=1∞ 是平方可积空间 L2([−π,π])L^2([-\pi,\pi])L2([−π,π]) 的一组函数的基,对于空间中的任意函数,我们都有 f=limSNf = \lim S_Nf=limSN
拟合公式 SN(x)=⟨f,1⟩2π+Σn=1N⟨cos(nx),f⟩πcos(nx)+Σn=1N⟨sin(nx),f⟩πsin(nx)S_N (x) = \frac{\langle f,1\rangle}{2\pi}+\Sigma_{n=1}^N \frac{\langle \cos(nx),f\rangle}{\pi}\cos(nx)+\Sigma_{n=1}^N\frac{ ...
