- 博客(80)
- 收藏
- 关注
原创 多层感知机
神经网络能够拟合的函数形成了一个函数空间,那么如何表示函数的复杂度。我们认为函数输出总为0时最简单(参数全为0),由此任何一个函数的复杂度可以用其到这个最简单函数的距离来衡量,这个距离可以用范数来衡量。
2025-10-27 20:33:12
94
原创 组合数学 第四章 生成排列与组合
很自然的想到递归方法:但更好的我们希望能用一个排列生成下一个排列:用这种标注箭头的方式,就可以用简单的交换来完成排列的生成。
2025-10-19 21:37:42
294
原创 pytorch 线性回归
不是所有模型都能很方便的找到解析解,因此,在深度学习框架中一般使用的是随机梯度下降法。我们发现最大似然估计的优化依赖的正是之前定义的平方损失函数。注:线性回归的代码实现会放在李哥AI对应的章节。之前我们用平方损失定义了线性回归的损失函数。这里我们用范数来表示,然后将式子展开。这里的求导用到了微积分中给出的式子。张量可以直接相加,做向量计算。原理为向量计算,即SIMD。这时y也符合了某种正态分布。
2025-09-24 21:27:37
249
原创 Pytorch框架笔记
对于一个多元函数,我们将其输入简化为一个一个向量。对于所有A∈Rm×n,都有∇xAxA⊤Ax是一个向量,而对于向量的求导是一个矩阵(因为这里向量的每个维度上都是一个多元函数),经过简单计算可以知道正好为A⊤对于所有A∈Rn×n,都有∇xx⊤AxAA⊤x∇x∥x∥2∇xx⊤x2x在上面这个公式中将E带入A,即可得到这个这个式子。
2025-09-24 17:04:48
1306
5
原创 games101 作业2 Triangles and Z-buffering
代码首选要实现一个bounding box of current triangle,然后遍历这个box中的每个像素,判断像素是否在在三角形内。在上面那个draw函数的最后调用了rasterize_triangle(t);如果判定在三角形内就要获取这个像素点原来位置的深度插值(因为一开始只知道三角形的三个顶点)。目标是在作业1代码的基础上给三角形上色,并且在渲染多个三角形的同时实现三角形的遮挡关系。然后比较深度插值与Z-buffering,判断像素的遮挡关系。首先要写一个工具函数:判断点是否在三角形内。
2025-09-22 17:24:09
214
原创 第二章 排列与组合
简要说明:相当于将原问题转换为了r个*与k-1个 | 的排列问题,这给个问题又可以转换为再r + k - 1个位置中选r个位置的问题。放在同一箱子中的元素顺序是无所谓的,这时可以将他们看成同一种元素。因此,我们只需将样本空间(所有可能)都算出来,再算事件的可能数,最后得到的比例就可以视为概率。因为又13个级别,其中两个级别不能用了,因此剩下11个级别,共11 * 4 = 44张牌。,时因为选好5*5的棋盘后好选则5个车放置的位置。特别需要说明的是,当盒子没有标签时,盒子的排序也不所谓了,所以还要除k!
2025-09-19 11:32:19
292
原创 Geometry Images论文阅读笔记
作者提出了一种将三维网格模型压缩成图片的技术。他将网格的顶点压缩成一张图片(二维数组),二位数组的相邻值(例如ij[i][j]ij的相邻值i1j[i +1][j]i1j和ij1[i][j + 1]ij1)一定是三维模型中这个顶点的相邻点。这就不必用额外存储任何连接信息,作者称之为。作者用到的方法是沿三角形的边将三维图形剪成一个圆盘(拓扑概念),再转化为一个正方形。转化后的geometry image可以方便的用图像压缩算法压缩。将网格剪成拓扑中的圆盘。
2025-09-14 21:54:48
673
原创 Universal Photometric Stereo Network using Global Lighting Contexts(使用全局照明上下文的通用光度立体网络)
更新中。
2025-09-07 20:08:27
450
原创 pandas自学笔记16 pandas可视化
之前已经学习了Seaborn可视化,可以说Seaborn可以做到更多更好的可是话,因为Seaborn是在Pandas上实现的。这也是我们为什么要了解Pandas的原因。
2025-09-01 17:39:03
346
原创 python自学笔记14 NumPy 线性代数
在Numpy库中有专门的linalg 模块用来做线性代数相关的运算。本文中线性代数的一般概念不会解释。
2025-08-27 20:04:36
588
原创 python自学笔记12 NumPy 常见运算
就是常见的各种数学函数,包括高中学习的那些初等函数在numpy中均有对应函数,可直接调用。具体函数在绑定资源当中。当运算的两个数组形状不相同时能够通过对小的那个数组进行广播变成可以运算的两个数组。这里注意,只有在一维数组与行数相等时才能运算,与列数相等时不能的,除非是列向量。如图所示,得到的协方差矩阵是一个4*4的矩阵,这是因为函数是默认将行看成特征的。具体代码在绑定资源中,这里只说明部分运算。
2025-08-25 16:11:31
193
原创 Games101 作业1 旋转与投影
作业要求得到一个三角形不同角度的图像。作业给出了代码框架,框架包含一个画三形的函数和一个简单的光栅器。我们仅需要实现主函数的部分代码(关于旋转和透视投影这一部分)。
2025-08-24 23:08:04
232
原创 南科大C++ 第四章(数组,结构体,联合体,枚举)
C++中的数组不会进行边界检测,即可以使用类似-1这样的位置访问到超过数组管理范围的内存,这样容易引发错误。
2025-08-24 18:05:37
178
原创 Games 101 第四讲 Transformation Cont(视图变换和投影变换)
下面分别是放缩,旋转,平移在旋转当中,绕着y轴旋转矩阵的顺序不一样,因为绕着y轴转在右手坐标系中,z是第一轴,x是第二轴,而负号会加在第一轴上,因此负号在下面。
2025-08-23 23:38:48
859
原创 games101 作业0 环境搭建与熟悉线性代数库
本文并未直接使用games101提供的虚拟机环境(环境太老旧用起来不方便),而是在网上学习了在win中用子系统的方式运行Linux。:向量的点乘不能直接使用*,要使用函数dot()或转成矩阵相乘。上述矩阵定义方式定义的是浮点数方阵(行数为3)
2025-08-23 15:52:39
424
原创 python自学笔记9 Seaborn可视化
将每个点变成一个高斯核函数(就是高斯分布的那个函数形式),然后再叠加。较小的数据使用:seaborn.stripplot() 蜂群图。较大的数据使用:seaborn.swarmplot() 分散点图。使用高斯核函数可以估算联合分布,这样的联合分布可以用等高线图表示。通过散点图可以简要查看两个维度是否有何关系。二维散点图转化为直方图后效果并不清晰。这里仅放示范代码,其他代码查看附件。可以看成用核密度曲线优化的箱线图。可以用一元可视化方案展现多元特诊。首先将宽格式转化为长格式。
2025-08-15 22:23:04
304
原创 python自学笔记8 二维和三维可视化
方位角 (azimuth): azim 参数定义了观察者绕 z 轴旋转的角度。seaborn.load_dataset(“iris”) 和 plotly.express.data.iris() 导入的都是Pandas DataFrame类型,但在一些定义上略有不同。仰角 (elevation): elev 参数定义了观察者与 xy 平面之间的夹角,也就是观察者与 xy 平面之间的旋转角度。滚动角 (roll): roll 参数定义了绕观察者视线方向旋转的角度。这里设置的旋转角就是默认旋转角。
2025-08-14 22:38:16
472
原创 南科大C++第七章智能指针
共享型指针会在最后一个指针取消指向时自动释放内存。共享智能指针的使用方法如下图所示:上面三行代码分别是:初始化,拷贝,用初始化函数拷贝。
2025-08-09 00:22:53
214
原创 CAU数据挖掘 第五章 聚类问题
性质:应用:PAM是 k-medoids算法 的算法之一性能分析:CLARA方法-大数据集合-取样通过建树或者拆树的方法进行聚类由下而上的聚类如果要分出k个聚类,则每次从旧聚类(最开始的大聚类)中选出中心点进行聚类,选k - 1次提取每个点的聚类特征( Clustering Feature, CF)建立聚类特征树( Clustering Feature Tree, CF树),通过树划分的叶子节点簇进行聚类,从而提高性能。CF树:注意,叶子结点是CF簇如何建树:如何分裂
2025-07-15 17:19:51
467
原创 CAU数据挖掘第四章 分类问题
通过计算每个训练数据到待分类元组的距离, 取与待分类元组距离最近的k个训练数据, k个数据中哪个类别的训练数据占多数, 则待分类元组就属于哪个类别。可以通过一个单调递减函数, 将距离转换成相似性度量, 相似性度量的取值一般在区间[0, 1]之间贝叶斯后验的思想:假设一个医生统计自己看心脏病人的患病率是80%,那么当他看下一个心脏病人时自然认为这个病人患心脏病的概率是80%,这是先验概率。担当这个病人做完检查后成阳性,则患心脏病的概率提升为90%,这就是后验概率。朴素贝叶斯分类器。
2025-07-13 15:11:09
912
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅