0%

Volume2D Pro


I. Preface

​ 觉得之前的算法太菜了,只能处理方形障碍物(虽然如果要给我的游戏用也够了),所以想着升级一下算法。近期实习刚好也做了一些类似的事情,但实习期间设计的算法很难debug(bug制造机就是我),在实习末期重新设计了一下,见Github Repo:[Enigmatisms/Volume]

Video 1. 不规则障碍物体积光算法效果

​ 不得不说,叠buff式编程真的很恶心,从实习开始到现在我都处于叠buff式编程中。

什么叫叠buff式编程

叠buff式编程指的是编写的代码不能一次性通过所有测试用例,需要一点一点测试之前没有考虑到的方面(定义来自 HQY)

Read more »

SCAE


I. Intros

​ 在复现完CapsNet第一版之后,想复现这篇论文(第三版CapsNet:Stacked Capsule Autoencoders, Adam R. Kosiorek, et al.)。复现的基础是看懂,理解其意义。本篇博客为我读这篇论文时的一些思考,其中当然还有些(很多)不够透彻的地方。要是完全透彻了我估计就可以直接动手复现了。

Figure 1.Stacked Capsule Autoencoders网络结构图
Read more »

Capsules Network


​ 上一次看这篇论文:Dynamic Routing Between Capsules 的时候,Pytorch技术还很菜,不是特别熟练,被矩阵计算的维数问题搞傻了,写得很痛苦,loss没写完就放弃了。这次在重新读完论文之后,重新试着复现了一波,最后差点败在一个softmax的执行维度上(可以说很奇异了)。第一版caps net网络结构非常简单,对应的evaluation / experiments也很简单。实现见[Github🔗Enigmatisms/CapsNet]

G_1101 G_1151
根据digital capsule重建(MNIST 7 epochs) 根据digital capsule重建(MNIST 7 epochs)
Read more »

为什么我不能乱链接

I. 缘从何起?

​ 机队的小伙伴问了我一个问题,说是在一个.hpp文件中,定义了一个namespace,.hpp也有头文件保护,在namespace下也定义(声明 / 定义都在这个文件里)了几个函数(非类函数),.hpp文件中同时还有一个类的定义。那么自然这个文件会被至少两个.cc文件给include:

  • 类定义文件 / main函数所在的可执行文件

​ 结果编译的时候报了redefined的错误,说是namespace下面的函数重复定义了。小伙伴很疑惑。我也很疑惑,开始我觉得是不应该把定义写在.hpp中,但想到类函数好像可以这么做啊?作为一个没有学过编译原理的自动化学生(请问自动化学生都在学些啥啊?),感到疑惑,于是查了点资料。

Read more »

Filtering & Kalman


I. 引入

​ 2021赛季充分认识到滤波的美妙之处。虽然只前学了DSP,但是在进行实际系统控制的时候,很少有意识地进行滤波或者平滑。2020赛季中设置过一个静止目标滑动平均,在此前没有做过非常大量的滤波。

Figure 1. 单方向ARKF滤波预测

​ 本文是对近段时间使用的滤波方法进行的一个比较肤浅的总结,包括:

  • ARKF(自适应抗差KF)
  • MEE & CMEE(约束最小误差熵KF)
  • ESKF(Error State KF)
Read more »

# NeuralStyle

My own implementation of CVPR 2016 paper: Image Style Transfer Using Convolutional Neural Networks. This work is, I think, simple but elegant (I mean the paper, not my implementation) with good interpretability.

2021.11.15 complement: I have no intention to analyze and explain this paper, because I think it's simple, and I have a deep impression of this, therefore there is no point recording anything on the blog. Original Github Repo: Github🔗: Enigmatisms/NeuralStyle. This post is exactly the README.md of the repo.

Read more »

矩阵分析 & 优化

​ 最近接触了一些有趣的 机器学习 / 控制算法,其中的数学原理非常有意思,大多数都涉及到了矩阵分解以及线性代数解析解的求取。推导这些理论可以帮助深入理解矩阵分解(以及分解后子矩阵的数学意义)以及 矩阵分析和优化理论的数学联系,这些理论都非常优雅而且美妙。

Figure 1. 矩阵分解的真谛:图为 上三角分解

​ 本文将包括以下四个部分:

  • 卡尔曼滤波的最小二乘解释
  • 最小二乘的几何解释
  • 谱聚类的矩阵分析
  • PCA的矩阵分析
Read more »

Eigens & Covs


​ 线性代数确实很有趣,但是展开成\(\sum\)的形式就没有趣了。本文意在分析矩阵特征值在某些场合下的应用以及一些线性代数结论(特别是矩阵/向量求导)(烦人的分子分母布局)。

Figure 1. 2D-2D单应匹配
Read more »

Bayesian


贝叶斯分类器

​ 个人很喜欢贝叶斯学派的理论,感觉贝叶斯理论非常具有美感。

​ 贝叶斯分类器是典型的生成式模型。对于分类问题的概率形式,有\(P(c|x)\)是给定特征情况下,分类结果为c的概率,显然这是我们想知道的(而反过来\(P(x|c)\)可能是Encoder模型所讨论的)。判别式模型直接对\(P(c|x)\)进行建模,举个例子,决策树吧。决策树根据x的不同分量进行划分,每层选取信息增益或者基尼指数最大的属性进行分支。那么决策树这个判别式模型,具体是如何对\(P(c|x)\)进行建模的?

Read more »

纯理论分析


Preface

​ 周志华老师的《机器学习》看到了第五章,可总感觉看得太快了(可惜起步太晚了,大三下才系统地学ML)。个人认为走马观花地看完全没有用处,最好是能自己将所有碰到的轮子都写一遍(理想情况),但人的精力毕竟有限,开学了时间也比较紧张,实现这一步就先跳过吧,而细致的理论分析与理解是完全必要的。LDA之前实现过Github Algorithm-Plus🔗,决策树倒是连理论都没怎么细看,只调过库。为了不当调库侠,有写轮子的能力,个人将对这两章进行一下梳理,写一下自己的理解。

Figure 1. 西瓜

​ LDA(消歧义:Linear Discriminant Analysis,不是Latent Dirichlet Allocation)和决策树都是两个非常简单但是又很优雅的分类器。

Read more »