自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (3)
  • 收藏
  • 关注

原创 Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering论文解读( and code)

《Convolutional Neural Networks on Graphswith Fast Localized Spectral Filtering》 提供了已实现的GCN,并且针对 《Spectral Networks and Deep Locally Connected Networks on Graphs》存在的问题:1 计算复杂度高 2 filter并不局部 做出了相应的改...

2019-03-26 10:51:34 13892 52

原创 为何sigmoid激活函数要配合sigmoid_cross_entropy_with_logits损失函数使用?

先说答案:为何sigmoid激活函数要配合sigmoid_cross_entropy_with_logits损失函数使用?为了获得一个凸性的损失函数(就创造了这样一个性质良好的函数(PS:还可导哦))。鉴于公式画图啥的略微麻烦,我这里直接用糟糕的笔记来说明具体原因。资料来源于斯坦福机器学习教程。...

2019-02-28 20:26:46 1552 1

原创 Rodrigues旋转公式

物体在三维下的旋转可以用旋转角度来表示,一般情况下可分为两种,1 围绕x, y, z主坐标轴各自旋转yaw, pitch, roll角度而得。2 围绕空间中某一向量旋转一个角度而得,这个一般不是唯一的,我们称这种为旋转向量,向量的模表示绕该向量逆时针旋转的角度。那么正常来说,这两种表示可以互相转换,转换方式依据的Rodrigues旋转公式。PS: opencv-py cv2...

2019-02-28 19:53:05 8211

原创 快速了解ML中的正规方程

目录正规方程特点与用法Python code推导正规方程正规方程干嘛的? 用来直接求解线性模型的最优解的方法,即如果你的拟合函数为(线性模型)对应的损失函数:那么可以直接得到h关于θ的最优解(这就是正规方程)X为训练集特征矩阵,为X的转置,训练集结果(标签)为y。特点与用法无需迭代计算。只适用于线性模型,不适合逻辑回归模型...

2019-02-28 19:25:01 498

原创 什么是 Batch normalization

目录Batch_normalizationBN来源:BN原因:BN做法:BN优缺点:LRN为什么要有LRN 局部响应归一化?LRN公式 :Ref:归一化(normalization)将一批不太标准的数据统一到指定的格式.我们在数据处理时常用的是将一组范围差距较大或者单位不同的数据依据一定规则变化到指定的范围之内。Batch_normalizati...

2019-02-11 13:56:32 57128 4

原创 Embedding小结

目录何为嵌入(嵌套,Embedding)特点神经网络中的Embedding可能的应用Ref 何为嵌入(嵌套,Embedding)嵌入是从离散对象(例如字词)到实数向量的映射。嵌入是一种相对低维的空间,您可以将高维矢量映射到这种低维空间里。通过使用嵌入,可以让在大型输入(比如代表字词的稀疏矢量)上进行机器学习变得更加容易。试想,在N分类任务中,每个标签是由N长...

2019-02-11 13:52:17 1840

原创 PCA

Principal Component Analysis(PCA)算法。降维是对高维数据去除不重要特征与噪声,只保留重要特征的方法,会损失一定信息。目录优点:基本原理PCA推导基于最大化投影后方差基于最小投影距离PCA Code(python)Ref优点:减少变量数量,有利于发现规律。高维空间具有稀疏性,希望数据变得更加稠密,降低计算开销。某种程...

2019-02-11 13:40:22 411

原创 高斯消元法求解线性方程组(分数精确表示)

原理可以参考https://zh.wikipedia.org/wiki/%E9%AB%98%E6%96%AF%E6%B6%88%E5%8E%BB%E6%B3%95这里给出使用分数表示计算过程的高斯消元法写法github地址:https://github.com/YIWANFENG/Algorithm-github#!/usr/bin/env python3.5# -*-codi...

2019-01-01 13:20:21 2703 1

原创 AlexNet结构简析

本篇介绍下神经网络中的入门知识----AlexNet网络,并使用TensorFlow手写一个AlexNet结构。AlexNet出自论文《ImageNet Classification with Deep Convolutional Neural Networks》(论文及其译文于本文末尾Ref处可见)鉴于本篇主要是实现,所以不会做详细介绍论文。 AlexNet网络结构如下图...

2018-08-15 21:28:47 1643

原创 线性同余方程组-中国剩余定理or合并方程

线性同余方程组即若干个线性同余方程的组合。求解方式可以参考我们普通的方程组,先解式1,将式1的通解带入式2后化简,再解式2,如此重复即可得满足所有式子的解。例如 以上适合笔算,但是在程序中表述一般解法,就需要用到等式合并或者中国剩余定理线性方程组解法与推理方法一,合并线性同余方程以下为推导,红色圈出部分为编码时所用的结论。...

2018-07-16 13:44:35 5526

原创 线性同余方程-扩展欧几里得算法

线性同余方程定义对于线性同余方程这个式子的意思即 (ax)%n = b  如果 x0 是方程的一个解,那么所有的解可以表示为:其中d = gcd(a,n)性质此方程有解当且仅当 b 能够被 a 与 n 的最大公约数整除(记作 gcd(a,n) | b)用算法表示即 b%gcd(a,n) == 0  解法推理(扩展欧几里得算法求特解)由上面可知我们只要求出一个特解即可得通解。由裴蜀定理(对任何整数a...

2018-07-16 13:43:34 4624

原创 设计自己的软渲染器-附代码相关

本系列github代码库地址https://github.com/YIWANFENG/MiniRenderer本系列可运行项目下载地址http://download.csdn.net/download/hffhjh111/10210438一些的参考资料大牛Blog:https://www.davrous.com/2013/06/13/tutorial-serie

2018-01-17 17:13:38 693

原创 设计自己的软渲染器6-纹理映射与背面剔除

纹理映射纹理映射说白了就是将一幅图像贴在我们所要贴的物体的表面。为每个多边形顶点附一个纹理坐标,然后再纹理素材上取样贴在一个多边形上,然后达到所要的视觉效果。如下为一个正方体箱子每个面都贴上纹理。 将上图当作一个颜色矩阵,每个颜色有一个坐标(U,V),而三维的立方体每个点都有一个三维坐标(x,y,z),我们利用坐标映射((x,y,z)-(U,V))为空白的立方体着色。

2018-01-17 16:18:43 561 1

原创 设计自己的软渲染器5-光照

之前我们为每一个面随机赋予颜色,然而在渲染场景时,为了贴合现实世界,还需要在渲染中加入明暗的对比。在这我们不仅要实现黑白变化还有每个面受到光照的影响后产生的亮度变化。平面着色现在先介绍简单的平面着色。它会计算光照的角度,使每个面有更好的光照效果,但每个面都会被指定一个单一且没有变化的颜色。这种方法虽然会产生出不真实的效果,但相比于没有明暗变化已经进步了。 计算每一个面的法线向量,由

2018-01-17 13:15:16 753

原创 设计自己的软渲染器4-光栅化与Z-buffer

这一次我们将使用光栅化与Z-Buffer来填充我们之前所画的线框模型中的三角形面。 光栅化我们模型经过投影变换后的仍然只是几个顶点的位置信息而已,如果我们画三角形,想要的不仅仅是三个顶点,还想要确定填充三角形所需要的所有像素的信息(连续信息描述变换为离散信息描述),总结来说,光栅化就是确定一个几何图元所覆盖的所有像素及其信息。如下图所示:接下来我们将实现基于线扫描的光栅化三

2018-01-16 20:54:50 1928 1

原创 设计自己的软渲染器3-渲染线框模型

在这一部分,我们将实现线框模型的显示与渲染,实际上就是把点连接起来。画线算法很多,我在这里介绍经典的画线算法:Bresenham快速画直线算法直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线。给定两个点起点P1(x1, y1), P2(x2, y2),设line(p1,p2)的斜率为k,p1.x则,从p1开始,下一个点要么在他的右邻接点要么在

2018-01-16 20:38:28 958

原创 设计自己的软渲染器2-构建3D世界到2D屏幕显示的基本变换

说明在这一节中,我们将一步步的从基础构起,完成由3D物体坐标转换为到屏幕上所看到的图像的变换流程,最终反映在程序中便是我们输入的三位点依据我们设置的观察方式投影到了屏幕上。这部分内容可以参考《计算机图形学》第四版。首先明白几个概念。1.模型坐标系,在此坐标系下构建我们的3D物体(一般以物体几何中心为坐标中心)。2.世界坐标系,拥有所有3D物体的整个3D世界。...

2018-01-16 20:27:56 1432

原创 设计自己的软渲染器1-准备篇

软渲染器:简单说来就是借助软件将3D模型数据渲染成我们屏幕上的画面内容。相关知识:线性代数,基本图形学知识,基本操作系统知识。主要参考:《计算机图形学》第四版《3D游戏编程大师技巧》 Blog*N。《3D游戏编程大师技巧》是完成了一个3D游戏引擎,而这里所写的软渲染器只是其中一部分,本系列只是为了解流程,不考虑效率,没有做相关优化。系列代码:https://github

2018-01-16 16:25:47 1069

原创 求解用g(X)的线性表达式最佳近似f(Y)的一种方式

在复习概率论时突然发现这一条,想到以后自己应该会用上,所以在这里记录下。这里是利用g(X) 的线性表达式近似表达f(Y),或许以后更多的是用g(X)的非线性表达式表达f(Y)吧,那么有时间也写写泰勒表达式吧。 首先用e表示这种关系的近似程度,在概率论中我们可以使用方差来表示。e = E{ (Y – (a+bX))^2} =E(Y^2) + b^2*E(X^2) +a^2 -2b*E(X

2017-07-10 09:38:50 1698

原创 零和博弈-极大极小搜索&Alpha-Beta剪枝(井字游戏)

零和博弈概念二人利益对立完备信息博弈过程,在我们分析表达中就是对一个过程进行按规定双方交替操作,每次操作即搜索时选择对自己有利的情况(获益选最大,损失选最小),借助的数据结构自然是树。博弈树中每一层是某一方的走法选项。假设先手为MAX,后手为MIN。MAX可选的方案间为or关系(MAX自己掌握选项),MAX可选的方案对于可供 MIN选的方案为and关系(MAX无法决定,是MIN决定,也就是

2017-06-08 15:38:24 5886 5

原创 BMP图片格式解析并显示示例程序

格式原理参考http://blog.csdn.net/o_sun_o/article/details/8351037http://blog.csdn.net/lanbing510/article/details/8176231https://en.wikipedia.org/wiki/BMP_file_format关于解析以上几个网站,尤其wiki写的很好,我就

2017-05-27 15:51:45 2201 1

原创 Kmeans算法及其示例

Kmeans算法Kmeans是简单的聚类分析算法。其常用在数据分析与人工智能中。简单说,Kmeans算法就是把一个集合中的东西分为若干子集,这几个子集内的元素具有空间相近或者特点相近。做法:1.    随机选取K各中心点,生成对应的k个簇。2.    遍历所有的数据点,依据“距离’”将每一个数据点划分到最近的中心点所在的簇。3.    计算每个簇所有的数据点的平均值

2017-05-25 14:48:07 25007 2

原创 Adaboost算法与应用实例简析

Adaboost 算法wiki简介AdaBoost,是英文"AdaptiveBoosting"(自适应增强)的缩写,是一种机器学习方法,由YoavFreund和RobertSchapire提出。[1]AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法

2017-05-16 21:44:41 3538

原创 算法篇-14-A*算法解决八数码问题

问题描述八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。1238 04765 (a)初始状态

2017-04-21 11:50:18 3421

原创 算法篇-13-随机化-线性同余&主元素问题&N皇后问题&素数测试

本系列所有代码https://github.com/YIWANFENG/Algorithm-github线性同余产生伪随机数算法思路分析以及相关数学公式:X(n+1) = (a * X(n) + c) % m这样的公式,其中: 模m, m > 0系数a, 0 增量c, 0 原始值(种子) 0 其中参数c, m, a比较敏感,或者说直接影响了伪随机数产生的质量

2016-12-28 12:39:57 1304

原创 算法篇-12-分支限界-限定价格内最小重量机器设计&运动员最佳组队

本系列所有代码https://github.com/YIWANFENG/Algorithm-github限定价格内最小重量机器设计题目:一个机器,由n个部件组成,每个部件都可从m各不同的供应厂商处购得,设w[i][j]是从j处购得部件i的重量,c[i][j]是价格。给出总价格不超过d的最小重量机器设计。 算法分析与相关公式:既然要最小重量,我们就选中以当前购物方案E的总重量

2016-12-28 12:33:36 1994

原创 算法篇-11-分支限界-布线&装载&旅行售货员

分支限界回溯法以深度优先搜索解空间树,分支限界法以广度优先搜索。即在当前结点处生成其所有子节点,然后从当前活结点的列表中选择下一个扩展结点重复如此,当然不要忘记了判断是否存在可行解。由于采用树的广度优先遍历,所以我们一般用队列实现。队列可分为一般队列FIFO与优先队列(人工指定优先级)。在选择扩展结点时我们一般加限界条件加以取舍。关于剪枝与限界策略即判断扩展结点的子树是否可存在

2016-12-28 12:27:27 1104

原创 算法篇-8-回溯法-N皇后&最优装载&01背包

本系列所有代码https://github.com/YIWANFENG/Algorithm-github回溯法思想回溯法运行起来类似于遍历,只不过会在遍历过程中去除一部分不可能的无效遍历()。解决的问题的答案一般可以由一个向量表示,例如V= {x1,x2,x3....},其中x1,x2,x3...的取值便为最优解。解空间即该问题所有可能的解的集合,在表示上分为子集树与排列树。

2016-12-27 21:52:26 728 1

原创 算法篇-7-贪心算法-Huffman编码&Dijkstra单源最短路径&Kruskal最小生成树

本系列所有代码https://github.com/YIWANFENG/Algorithm-githubhuffman编码题目:依据给定字符以及相应频率构造该字符的哈夫曼编码。 算法思路分析与相关公式:Haffman即前缀码,用一棵二叉树即可标示,树叶表示给定的字符,每个字符的前缀码就是从树根到该字符所在的树叶的一条道路。二叉树的每一路分支的路径我们在向右时即为1 ,向

2016-12-27 21:51:44 916

原创 算法篇-6-贪心算法-活动安排&背包问题&多机调度

本系列所有代码https://github.com/YIWANFENG/Algorithm-github贪心算法思想贪心算法正如其名,只考虑某种意义上局部最优解法,而不从整体思考。其实基本是在目前这种情况下选择一个当前最优解,然后在选择这个最优解后,在问题中删除最优解(考虑最优解的影响),转化为同类子问题,不断递归求解。贪心求解需要具备两个性质:1.贪心选择性质:所求问题的整体

2016-12-27 21:51:10 1783

原创 算法篇-9-回溯法-罗密欧与朱丽叶&图的M着色&旅行售货员

本系列所有代码https://github.com/YIWANFENG/Algorithm-github罗密欧与朱丽叶走迷宫罗密欧与朱丽叶的迷宫。罗密欧与朱丽叶身处一个m×n的迷宫中.每一个方格表示迷宫中的一个房间。这m×n个房间中有一些房间是封闭的,不允许任何人进入。在迷宫中任何位置均可沿8   个方向进入未封闭的房间。罗密欧位于迷宫的(p,q)方格中,他必须找出一条通向朱丽叶所在的(r

2016-12-27 21:50:27 3528

原创 算法篇-10-回溯法-工作分配&世界名画监视

本系列所有代码https://github.com/YIWANFENG/Algorithm-github工作分配n个工作分给n个人,将i工作给j号人所需费用为c[i][j],设计一算法为每人分配一工作,并且耗费最小。算法思路分析与相关公式:这题也是一简单的排列树问题,方式类似于旅行售货员问题,不同之处在于这里不需要判断是否有回路,所以变得更简单了。 程序源代码:

2016-12-27 21:49:29 3332

原创 算法篇-5-动态规划-01背包&流水作业调度&&整数线性规划&树的最大连通分支

本系列所有代码https://github.com/YIWANFENG/Algorithm-github0-1背包给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大?且对于物品i只有装一次或者一次不装两种选择。 令m(i,j)表示后i到n (1m(n,j) = vn j>=wn;(2

2016-12-27 21:47:56 4233

原创 算法篇-4-动态规划-凸多边形最优三角剖分&图像压缩最优分段&电路布线

本系列所有代码https://github.com/YIWANFENG/Algorithm-github凸多边形最优三角剖分多边形有一系列首尾相连的直线段组成,多边形的三角剖分是指将多边形分割成互不相交的三角形的弦的集合。(若vi与vj是多边形上不相邻的两个顶点,则线段vivj称为多边形的一条弦。在有n个顶点的凸多边形的三角剖分中,恰有n-3条弦和n-2个三角形。)给定凸多边形P=

2016-12-27 21:46:34 1710

原创 算法篇-3-动态规划-矩阵连乘&最长公共子序列&最大字段和

本系列所有代码https://github.com/YIWANFENG/Algorithm-github动态规划其实动态规划和递归分治有异曲同工之妙。因为分治中将问题分为若干子问题,但是大部分情况下子问题互相独立,而如果动态规划中大多数子问题不独立(即重叠子问题性质),我们同分治一样,采取从上到下再到上分析,从下到上求解的方法,保留每一个子问题的解(动态规划问题要符合最优子结构),由子

2016-12-27 21:39:55 1269

原创 算法篇-2-分治思想-棋盘覆盖&归并排序&Strasssen矩阵乘法&循环赛安排

分治思想分治法基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些问题互相独立且与原问题相同。递归解决这些问子问题,然后各子问题结果合并得到原问题解。人们在大量实践中发现,再用分治法时,最好使子问题规模大致相同。即将一个问题分为大小相等的k个子问题的处理方法是比较有效的。(PS:以上为抄书) 根据以上可得一般分治算法设计模式Divide-and-conquer(P

2016-12-27 21:33:00 767

原创 算法篇-1-递归思想-整数划分&Fibonacci&Ackerman&Permutation&Hanoi

本系列所有代码https://github.com/YIWANFENG/Algorithm-github递归思想递归函数无非是自己调用自己而已,其必含2部分,第一结束条件,第二循环体,所以递归类似于一个循环,其实绝大部分递归都可以利用堆栈写成非递归方式。分治法的思想是将一个难以解决的大问题分隔为一些规模较小的相同问题,以便各个击破。其实分治思想所得方法大部分为递归实现,所以二者在一

2016-12-22 16:03:09 868

原创 C++多线程-第六篇-C++11与Boost

本例讲述C++11中实现的Boost线程部分Atomic、mutex、thread、condition_variable等基本一致,只不过名称空间在std中,使用时分别需要加上,,,。线程等待与分离大致相同。C++11 mutex含mutex mu;/recursive_mutex ;/timed_mutex t_mu;/recursive_timed_mutex;

2016-11-12 17:16:02 1847

原创 C++多线程-第五篇-同步机制

Call_once使用call_once包装的函数在多线程中只会被执行一次。Void call_once(once_flag&flag, Callable && func,Args &&.....args);其中once_flag 声明必须是线程安全的,可采用static.且不可使用临时变量给Call_once.  条件变量--同步机制需要和互斥量配合使用。Thre

2016-11-12 16:46:25 1814

原创 C++多线程-第四篇-Thread_group(线程池)

thread_group--线程池Thread_group用于管理一组线程,类似一个线程池,使用std::list来荣纳创建的thread对象 Thread_group类摘要Class thread_group //不可拷贝{Public: Thread * create_thread(F threadFunc); //创建新线程 Void add_thread(thre

2016-11-12 16:41:18 4317

C#连接SQL数据库示例程序

积分有什么用?免费! c#连接使用数据库的基本操作示例, 内含:1 问题要求 2 程序工程代码 3.数据库相关建库指令

2018-05-17

简单软渲染器 (简单模拟了解物体的渲染过程)

免费下载,登录再给积分什么的,真是太麻烦了。 配合http://blog.csdn.net/hffhjh111/article/details/79076042使用

2018-01-17

C++借助ADO连接Access数据库

积分有什么用?免费! C++借助ADO连接Access数据库 实例项目以及相应数据表

2017-06-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除