基础知识
Transformer
两种注意力评分: 加性注意力和缩放点积注意力
向量化:
Q 为 \(n \times d\)维,K为 \(m \times d\) 维,V为 \(m \times v\) 维,n,m为query个数和键值对的个数。d,v为值的维数。
nnConv2d卷积操作的特征图的尺寸计算
经过卷积后的特征图尺寸等于卷积核滑动的次数 + 1,现在假设卷积前的特征图宽度为N,卷积后输出的特征图宽度为M ,padding之后的矩阵宽度等于N+2*padding 。卷积核的滑动次数等于 M-1
\[ N+2{\times}padding = (M-1){\times}strides +kernel\_size \] 输出矩阵的宽度
\[M = (N + 2* padding - kernel\_size)/stride + 1 \]
相关资源
Relative Position Encoding
- 先计算出每个位置的相对索引,然后给行、列标加上 \(M-1\),\(M\)为窗口的大小,然后行标乘以 \(2M-1\),然后行、列标相加,得到 relative position index,然后根据 \(2M-1 \times 2M-1\)的 relative position bias table,利用relative position index进行索引,得到对应的relative position bias。
参考链接:
https://www.bilibili.com/video/BV1pL4y1v7jC/?spm_id_from=333.788&vd_source=14b6fe8ee5c754517b8d9ea208b65098
https://www.cnblogs.com/shiyublog/p/11185625.html
https://www.cnblogs.com/shiyublog/p/11236212.html
各种卷积
卷积的公式: \[(f*g)(t)=\int_{-\infty}^{\infty}f(\tau)g(t-\tau)d\tau \]
卷积的特点:权重共享(weights sharing)、平移不变性(translation invariance)
转置卷积:
- 对于卷积核尺寸为k,步长stride=1, 填充padding=0的标准卷积,等价的转置卷积在尺寸为i'的输入矩阵上进行运算,输出的特征图的尺寸o'为: \[o' = i' + (k - 1)\]
同时转置卷积的输入矩阵需要进行 $ padding'= k-1 $ 的填充
- 对于stride>1,卷积核的尺寸为k,填充padding=0的标准卷积,等价的专职卷积在尺寸为i'的输入矩阵上进行运算,输出的特征图的尺寸o'为: \[o' = s(i'- 1) + k \]
同时转置卷积的输入矩阵需要进行 \(padding'=k-1\) 的填充,相邻元素间的空洞大小为 \(s-1\)。
深度可分离卷积:就是将一般的卷积的对各个通道运算完,求和的那一步,拆分开,让一个 \(1 \times 1\)的卷积去做这个求和,前面各个通道的卷积核对应执行卷积操作。
空间可分离卷积:就是将 \(H \times W\)的卷积核,拆分成 \(H \times 1\) 和 \(1 \times W\) 的卷积核。能够减少运算的次数
Sleap_and_DeepLabCut
闲聊几句
还是得有个博客记录啊,之前用的工具Sleap好久没用,没想到现在又要用了,流程什么的好些都忘了,又要重新捡回来,有个博客的好处就是能够方便地记录下来,日后万一哪天需要的时候,就很方便。
Sleap
论文:Sleap: A deep learning system for multi-animal pose tracking[1]
作者是来自普林斯顿、NYU等机构的学者,名字比较多,就不一一列举了。论文引用[1]:Pereira, T.D., Tabris, N., Matsliah, A. et al. SLEAP: A deep learning system for multi-animal pose tracking. Nat Methods 19, 486–495 (2022). https://doi.org/10.1038/s41592-022-01426-1
Time
- 2022.Apr
总结
- 理解大脑如何产生和促使行为的愿望驱使了量化自然动物行为工具的方法的创新。
- 特点有:
- GUI
- 超过30个model architecture:有很多预训练的模型。
- 2种part grouping的方式、2种identity tracking的方式
- 多种workflows for data labeling, model training, inference on previously unseen data.
- 能够端到端的tracking of high-resolution multi-animal data at low latencies.
- 是一个对于多动物姿态追踪的完整的framework。
Train
- 可以导入已经标好了的COCO格式的数据,Import data
sleap-train path/to/your/training_profile.json another/path/to/labels.pkg.slp
这里需要注意的是:在training_profile.json里,training_label和validation_label的路径可以补上,这是比较简单的方式了,如果是在服务器上跑,那就把train文件run training,然后export为train.pkg.slp格式,这样不会报图片不存在的错误;如果实在本地跑,可以将train label 直接save as 为train.slp,给到training label的路径。
SVD
参考链接:
https://web.mit.edu/be.400/www/SVD/Singular_Value_Decomposition.htm 这个里面有几处错误,A的转置矩阵不对。
https://my.oschina.net/findbill/blog/535044
https://zhuanlan.zhihu.com/p/77151308
矩阵的计算复杂度
- 给定一个矩阵A(\(n\times m\)),
矩阵B(\(m\times
n\)),两个矩阵相乘的复杂度是 \(O(n^2
\times m)\)。解释如下:
- \(A \times B\)得到的矩阵 \(C\)有 \(n \times n\) 个元素,每个元素需要进行 \(m\) 次乘法和 \(m-1\) 次加法,所以复杂度是 \(O(n^2 \times m)\).
Build Hexo
最近一直有个想法,想去弄个博客,之前有在cnblogs上弄过,但是感觉还是想通过Hexo和Github来弄,主要目的是记录一下自己学习的一些东西,包括各种软件算法的配置、使用、以及踩过的坑等等。有个记录,方便自己需要的时候可以看看,同时,如果有朋友遇到了类似的问题,可以相互交流借鉴。