dynamic_euler
2. 动力学欧拉方法
欧拉第一定律
欧拉第一定律是牛顿第二定律的离散粒子集合情况的表达
公式 ΣiFi=Σmiai\Sigma_i F_i = \Sigma m_i a_iΣiFi=Σmiai
如果是连续的物体我们可以写作 ΣF=∫a dm\Sigma F = \int a\ dmΣF=∫a dm
离散情况代表空气等流体也符合欧拉的描述,当然一般刚体也满足欧拉方法
这种情况下 FFF 只考虑外力,内力由于矢量相互作用等大反向可以抵消
质心
r⃗OC=ΣmiRim\vec r_{OC} = \frac{\Sigma m_i R_i}{m}rOC=mΣmiRi , m=Σmim = \Sigma m_im=Σmi
这下我们可以用位移的二阶导表达 加速度:ΣF=md2r⃗OCdt2=ma⃗C\Sigma F = m \frac{d^2\vec r_{OC}}{dt^2} = m \vec a_CΣF=mdt2d2rOC=maC
也就是说,加速度可以只考虑质心点处的加速度
欧拉第二定律
背景也是散点情况
动量公式 $\ve ...
unet
Unet
目标:解决生物医学图像方面的问题
用于图像分割任务的深度学习架构
结构
编码器(下采样部分):
包含一系列卷积层和池化层,用于降低输入图像的分辨率。
每个下采样阶段都会减小特征图的大小,同时增加特征通道的数量,以提取图像的抽象特征。
中间连接:
编码器和解码器之间存在一条直通的连接,将编码器的高级特征映射与解码器的特征图相结合。这有助于保留细节信息。
解码器(上采样部分):
包含一系列反卷积(或转置卷积)层和跳跃连接,用于逐步增加分辨率。
每个上采样阶段都会增加特征图的大小,减少通道数,并恢复原始图像的细节。
跳跃连接:
将编码器的特征图与解码器的对应特征图相连接,以传递更丰富的上下文信息。
跳跃连接有助于减轻梯度消失问题,同时提高模型对局部细节的感知能力。
最后的卷积层:
在解码器的最后一层,使用一个卷积层将特征图映射到最终的分割结果。
输出通道数量通常等于任务中的目标类别数。
transformer
自注意力模型 Transformer
开山鼻祖:Attention is All You Need
应用领域
NLP 语言模型
CV 界新秀
解决问题
输入是一个序列,我们需要调用多个 encoder 来进行编码,同时需要多个 decoder 进行解码
encoder 之间结构相同;decoder 之间结构相同;参数各不相同;encoder 与 decoder 结构不同
利用 self attention layer 同时计算出输出结果 (RNN 是分步骤算出来的)
输入序列为 x1,x2,x3,x4x^1, x^2, x^3,x^4x1,x2,x3,x4 具有一定的联系
将输入子向量分为 q,k,vq,k,vq,k,v 三个部分向量
qqq: query 查找,来找到 xxx 和相邻几个向量的关系
qi=Wqaiq^i = W^q a^iqi=Wqai
kkk: key 向量,作为被查向量提供核心信息
ki=Wkaik^i = W^k a^iki=Wkai
vvv: 抽取出来的数据
vi=Wvaiv^i = W^va^i ...
resnet
残差网络 Resnet
产生背景
在深度神经网络建模的时候,我们经常会发现50层深度的网络训练效果不如20层的效果,这可能是因为过拟合,也有可能是反向传播中的梯度逐渐变小或变大导致的梯度爆炸问题
由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出
我们至少要保证,随着层数的叠加,我们的训练效果至少不能下降
模型 Model
为了让训练效果不下降,我们需要将未来的内容加上当前的内容即 x+F(x)x + F(x)x+F(x)
向前传播 forward
首先我们要确定当前的效果只能作用于下一个层,不多不少
这样可以类似于马尔科夫链的效果逐层递推
递推尝试:
F(xl+1)=F(xl)+xlF(x_{l+1}) = F(x_l)+x_lF(xl+1)=F(xl)+xl
F(xl+2)=F(xl+1)+xl+1=F(xl+1)+F(xl)+xlF(x_{l+2}) = F(x_{l+1}) + x_{l+1} = F(x_{l+1})+F(x_l)+x_lF(xl+2)=F(xl+1)+xl+1=F(xl+1)+F(xl)+xl
总递推 ...
gan
生成对抗网络 GAN
定义与原理
目标:GAN 可以通过自动生成数据之后进行监督学习,以自动生成虚假数据
我们需要一个 判别网络 来判断图片是否是真的
判别网络越强,最后 ai 生成的图片越来越能以假乱真,也就是说效果越好
顺序及数学表达
首先通过 ai 自动生成一张图片,其必然具有噪声 noice,获取的数据集是 G(x)G(x)G(x)
事实上的数据集是 xxx
检测函数满足 D(x)→1D(x)\to 1D(x)→1 也就是说要让标准的判断结果接近全对
同时要满足相对于 GGG 而言 D(G(x))→1D(G(x))\to 1D(G(x))→1; 相对于 DDD 而言 D(G(x))→0D(G(x))\to 0D(G(x))→0
注意两者目标不同,职能接近相反
举例: 对于一个理想的生成网络,我们需要满足 D(x)=pdata(x)pdata(x)+pmodel(x)D(x) = \frac{p_{data}(x)}{p_{data}(x) + p_{model}(x)}D(x)=pdata(x)+pmodel(x)pdata(x) ...
rnn
循环神经网络 RNN
序列建模
传统思维:给定一组相关属性,来推断最终的结果,但是不会考虑时间的属性,比如给你小名的成绩单,你只考虑他的几次考试的成绩,但是不考虑考试时间,那么期末成绩预测就不一定准确
包含时间变量:类似于输入一句话,每个单词都有其顺序,所以顺序不同的话其对应的重要性应该也不能相同。输出也可以按照时间序列展开输出,例如chat回答问题不是一下子一整段话
公式 $S_t = f(W_i X + W_S S_{t-1} + b) $
常见示意图:
这里我们理解为通过一个 WhhW_{hh}Whh 矩阵不断更新隐藏层的状态,使得其带有上一帧的属性,具有一定的记忆力
反向传播
基于时间关系的逆向传播 Backpropagation Through Time
梯度爆炸问题:由于链式法则一路上乘了很多很大的矩阵,结果数据很大,很难看出要求的梯度
通过梯度裁剪方法,缩放大梯度
梯度消失问题:链式法则乘了很多很小的矩阵结果数据很小也难看出梯度
选择合适的激活函数
例如 ReLUReLUReLU 函数的导数为 1 可以让导数不要衰减 ...
opencv-python
OpenCV-Python 框架
特别鸣谢:CodecWang 提供的cv教程 https://github.com/CodecWang/opencv-python-tutorial
读图
imread() 是基本读图函数,其有两个参数
filename:给出图片的绝对路径或者相对路径
flags:指定读取图像的方式,可以为 cv2.IMREAD_COLOR 彩色图 (1), cv2.IMREAD_GRAYSCALE 灰度图 (0), cv2.IMREAD_UNCHANGED 包含透明通道的彩色图 (-1)
imshow() 是显示读入图片,有两个参数
window_name:窗口的名称
img:上文读入图片的变量
窗口尺寸是自动给定的
waitKey() 是让窗口等待响应,0 是无限长等待,非零是等待该长度的 ms
imwrite() 两个参数
第一个是输出路径,包括对象名及其后缀
第二个是图片变量
cvtColor() 两个参数
frame:图片对象变量
tar_color:目标颜色,常见的有 灰度图 cv.COLOR_BGR2GRAY
...
loss_function
损失函数 Loss Function
L1 损失
就是火色特说的 ∣∣⋅∣∣1||\cdot||_1∣∣⋅∣∣1 损失,或者说是绝对值损失函数
L2 损失
就是色特说的 ∣∣⋅∣∣2||\cdot||_2∣∣⋅∣∣2 损失,或者说是平方损失函数
Hubert Loss:修正主义,将L1和L2进行结合
公式 HuberLoss={12(Yi−Yi′)2,∣Yi−Yi′∣≤αα(∣Yi−Yi′∣−12α),∣Yi−Yi′∣>αHuber Loss = \begin{cases}\frac 1 2(Y_i - Y'_i)^2,& |Y_i-Y_i'|\le\alpha\\\alpha(|Y_i - Y_i'|-\frac 1 2\alpha), &|Y_i - Y_i'|>\alpha\end{cases}HuberLoss={21(Yi−Yi′)2,α(∣Yi−Yi′∣−21α),∣Yi−Yi′∣≤α∣Yi−Yi′∣>α 曲线介于两者之间,在差小的时候损失较小,差大的 ...
dqn
强化学习网络 DQN
目的:让机器学会打游戏
在每一个对局中,情景各不相同,所以我们需要让机器当场学习
应用:Alpha Go; 王者荣耀 ai
特点
没有监督数据,只有奖励 (reward) 信号
例如围棋,可能性太多,一般不会通过已知情况进行计算
奖励信号不一定是实时的,可能存在延迟
不同于贪心算法,我们可能要放弃局部胜利而获得最终胜利
时间是一个重要因素
意思是样本之间存在时间维系的强关系
智能体 (Agent) 但前的动作 (Action) 影响后续接收到的数据
要素
奖励: RtR_tRt 是一个反馈信号,是一个标量
工作目标是:最大化累积奖励
基于奖励假设:所有问题的目标都可以被描述为最大化期望的累积奖励
期望表示平均水平高,用于避免“赌博”的训练结果,也就是要求在稳定高水平下找更好的
序列决策 Sequential Decision Making
目标:选择一定的动作序列以最大化未来的总体奖励(是一系列)
因此奖励反馈是延迟的
智能体 Agent
输入: 观 ...
cnn
卷积神经网络 CNN
应用:图像识别
处理一张图片的时候我们首先要看这张图片具有哪些特征点,如果图片是人,那么特征可能就是眼睛鼻子
特征 (feature) 应该是本类具有的,其他类不具有的;其次,我们也要和本类中其他特别的样本进行比较
过滤器 Filter/ 补丁 Patch / 卷积核 Convolution Kernel
找到图像的某些特征之后,我们找其周围的一块像素点出来,将此设置为一个 filter 或者 patch
从原图之中取出来进行卷积运算
卷积运算思路
在原图 m×mm\times mm×m 的像素矩阵中,我们有过滤器 n×nn\times nn×n,则卷积就是从原矩阵中抽出 n×nn\times nn×n 的尺寸的矩阵和过滤器做对应相乘相加求和就是结果了
平移过滤器使其遍历原图即可获得特征谱 (feature map)
由此我们也可以看出不同的 filter 矩阵对应的功能也不同
事实上我们只需要指定卷积核的个数和尺寸就可以了,不需要具体指定卷积核的特征
卷积神经网络
维度变化
![[convolution_concept.png]]
如图,在相邻的 ...
