0. 前言
从这学期期末考完开始,我们的大创项目算是正式开场了,距离中期答辩过去近一个月。
这篇文章大概是用来记录一下在这几天初期学到的各种东西,毕竟一个全新的领域,太多概念与术语。
章节之间并非并列关系,从所需的基础数学知识,到各种优化方法,到机器学习领域,到卷积神经网络,到目标检测算法以及评价指标,其实是更像递进关系。
因为还在学习过程中,尽管许多知识还是比较轻描淡写地带过了,但中间还是可能有各种疏漏,还待慢慢补充与修改。
1. 卷积
1.1. 点积
对于两个向量 u = [u1, u2, ..., un], v = [v1, v2, ... vn],其点积为:
u · v = u1 * v1 + u2 * v2 + ... + un * vn
1.2. 卷积
对于两个离散信号 f, g,其卷积结果为一个信号倒序后在不同位置和另一个信号中一段相同长度的部分求点积的集合。
假设前者信号为 f,后者为 g,则 f 又被称为卷积核(Kernel)。f 和 g 可以交换,结果不会变化。
下面为一个一维信号求卷积的例子。
其中卷积核信号 f 为 [1, 2, 1],倒置后仍为 [1, 2, 1],信号 g 为 [1, 2, 3, 0, 1, 0]。
比如第一次卷积运算过程为:
1 * 0 + 2 * 0 + 1 * 1 = 1,即结果为 1。
注意到在待卷积信号 g 前后分别加上了 2 个 0,它们被称为零填充(Zero Padding),作用在下面会提到。
卷积核每次移动的距离叫做步长(Stride),本例步长为 1。
卷积有三种类型,设卷积核信号 f 长度为 n,待卷积信号 g 长度为 m,有:
① Valid
不对信号 g 进行零填充而求卷积,即卷积核起初与待卷积信号由左对齐至右对齐,卷积长度为 m - n + 1;
② Same
对信号 g 的边缘共添加 n - 1 个 0,使得卷积结果与信号 g 长度一致,即 m;
③ Full
对信号 g 的边缘再添加 n - 1 个 0,使得卷积核能够划过的位置最大,即由卷积核右边缘与待卷积信号左边缘对齐至卷积核左边缘与待卷积信号右边缘对齐,卷积长度为 m + n - 1。
二维卷积同理。
计算方法
2. 数学优化基础
2.1. 梯度下降算法
重复 ① 与 ②:
直到
用于寻找最小值