- 博客(79)
- 收藏
- 关注
原创 模糊C均值(FCM)算法更新公式推导
Jm∑i1n∑j1kuijm∥xi−cj∥2Jmi1∑nj1∑kuijm∥xi−cj∥2隶属度更新公式:uij1∑l1k∥xi−cj∥∥xi−cl∥2m−1uij∑l1k∥xi−cl∥∥xi−cj∥m−121簇中心更新公式:cj∑i1nuij。
2024-05-30 20:25:52
1113
1
原创 硬聚类,软聚类,及之间的关系
硬聚类和软聚类是在无监督学习中使用的两种方法,特别是在聚类分析中,将相似的数据点组合在一起。这两种方法都有各自的优势和劣势,它们在数据分析中的作用也不同。让我们来讨论一下这两种聚类技术之间的关系。
2023-03-30 17:37:16
3257
原创 CUDA报错:HEAP CORRUPTION DETECTED:after Normal block
问题先说现象,这个问题的表现现象主要是:在malloc(new(new[]))之后,内存使用正常,但是在free(delete(delete[]))时,就会出错了。结论:出现这个问题的主要原因是:分配的内存少于实际使用的内测。比如:char* data = malloc(sizeof(char)*3)data[4];解决点击重试然后debug会退出错误会停留在某个free(***)语句上检查free的这个变量内存分配和内存使用的情况...
2022-03-07 18:40:48
716
原创 CUDA实现inter-block间同步——基于锁的块间同步
#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#define BLOCK_NUM 5#define THREAD_NUM 32__device__ volatile int g_mutex;__global__ void gpu_sync(int goalVal){ int tid = blockIdx.x *blockDim.x + threadIdx.x;
2022-03-06 22:24:34
1078
原创 常用矩阵求导公式,逆矩阵求导
∂βx∂x=β\frac{\partial \beta \mathbf{x}}{\partial \mathbf{x}}=\beta∂x∂βx=β∂xTx∂x=2x\frac{\partial \mathbf{x}^T\mathbf{x}}{\partial \mathbf{x}}=2\mathbf{x}∂x∂xTx=2x∂xTAx∂x=(A+AT)x\frac{\partial \mathbf{x}^TA\mathbf{x}}{\partial \mathbf{x}}=(A+A^T)\mathbf
2022-02-24 12:23:18
2997
原创 C++ malloc和free
介绍free释放内存的和delete可以说是两套代码用new申请的就要用delete释放,用malloc申请的就要用free释放。但是 malloc 和 free 是函数,而new 和 delete 是运算符。除此之外,new 在申请内存的同时,还会调用对象的构造函数,而 malloc 只会申请内存;同样,delete 在释放内存之前,会调用对象的析构函数,而 free 只会释放内存。这里主要讲讲malloc和free内存申请和初始化需要注意的是,malloc函数分配得到的内存空间是未初始化的。因
2021-12-18 12:18:57
1883
原创 CUDA如何选取Blocks和Threads
Blocks早期的卡,最多支持65535个blocks, 后面的卡最多可以支持231−1=21474836472^{31}-1=2147483647231−1=2147483647可以理解为blocks可以随便造,主要是要把threads的大小选好Threads一般来讲每一个block不能超过512(Compute Capability 1.x)/ 1024(2.x和之后版本)个线程你电脑不旧的话,一般都是不超过1024每个块的线程数应该是warp size大小的整数倍,在所有
2021-11-11 22:46:41
1625
原创 几种概率分布(伯努利分布、二项分布、泊松分布、均匀分布、正态分布、指数分布、伽马分布)
伯努利分布(Bernoulli Distribution)又名两点分布或者0-1分布,是一个离散型概率分布,为纪念瑞士科学家雅各布·伯努利而命名。若伯努利试验成功,则伯努利随机变量取值为1。若伯努利试验失败,则伯努利随机变量取值为0。记其成功概率为p(0≤p≤1)p (0\le p \le 1)p(0≤p≤1),失败概率为q=1−pq=1-pq=1−p。均匀分布(Uniform Distribution)又分为离散型均匀分布和连续型均匀分布离散型均匀分布在统计学及概率理论中,离散型均匀分布是离散型
2021-11-06 14:51:07
17580
原创 latex让图片和表按顺序放
只用[h]是没有用的,一般使用 [ht], [htbp], [htb]这样的组合,这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
2021-11-03 22:39:56
7387
原创 Cuda生成随机数的一点浅薄的理解
一个函数内,相同种子的多次生成#include "cuda_runtime.h"#include "device_launch_parameters.h"#include "curand_kernel.h"#include <stdio.h>#define N 100#define BLOCKS 2#define THREAD_NUM 2__global__ void setup_kernel(curandState *state, unsigned long seed)
2021-11-02 20:27:58
430
原创 cuda随机数生成
前言host端当然可以用cstdlib中的rand()函数生成随机数,但设备端如何使用这些随机数?每调用一次rand(),就通过cudaMemcpy传递给显存吗?显然不是,这会消耗太多I/O时间;先调用n次,一次性传到device中吗?虽然可行,但并不是最优解。能否用一种方法,让主机仅仅传给设备一个信号,使得多个随机数在device端被生成,这样就能避免过多的I/O带来的耗时问题;或者调用一个设备端函数,使得设备端可以根据需要动态生成随机数。于是curand库和curand_kernel库进入了我们的视野
2021-11-01 20:36:03
3686
原创 VRP问题总结——直观理解
ACVRP: Asymmetric capacitated vehicle routing problemBWTSP: Black and white traveling salesman problemCCVRP: Cumulative capacitated vehicle routing problemCTSP: Colored traveling salesman problemCVRP: Capacitated vehicle routing problemCVRPTW: Capacit
2021-10-03 20:53:38
2529
原创 High Performance Computing (HPC) 使用指南(香港城市大学为例)
致谢:特别感谢王际潮的耐心指导配置环境变量vim ~/.bashrc i export PATH=/home/yupeng/anaconda3/bin:$PATH :wqsource ~/.bashrc配置环境空间conda create -n spacename python=3.8启动环境空间source activate bad装包pip install scipy1.代码要使用相对路径编写2.链接HPCssh hongzli2@burgundy.hpc.city.
2021-06-28 21:53:26
2832
11
原创 亲测有效的latex表格模板
\begin{table*} \centering \fontsize{9}{12}\selectfont \caption{This is a visual sample.} \label{tab:distortion_type} \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|} \hline \multirow{2}{*}{Components}& \multirow{2}{*}{Features}& \multicolumn{2}{c|
2021-04-19 22:39:31
7787
原创 C++ eigen,Matlab CPU,Matlab CPU多核,Matlab GPU谁更快?
本文测试了C++ eigen,Matlab CPU,Matlab CPU多核,Matlab GPU计算矩阵的效率,废话不多说,直接上测试代码。模拟了400维的problem,300个DHN网络,一共经行十次测试的的情况(本来选择的是4000维的problem,3000个DHN,计算100次的情况,因为C++ eigen算的实在是太慢了)C++的代码:#include <iostream> #include <Eigen/Dense> #include <wi
2021-04-01 21:09:42
1287
6
原创 Latex小写字母花体方法
在两种花体字母的Latex表达中,一般不可以用于小写字母:code符号\mathcal{ABC}ABC\mathcal{ABC}ABC\mathscr{ABC}ABC\mathscr{ABC}ABC要使用小写的\mathcal,\mathscr,需要使用包\usepackage{boondox-cal}或 \usepackage{boondox-calo}或 \usepackage{dutchcal}...
2021-02-06 12:49:49
16811
6
原创 拉普拉斯矩阵(Laplacian matrix)及其变体
拉普拉斯矩阵(Laplacian matrix) 也叫做导纳矩阵、基尔霍夫矩阵或离散拉普拉斯算子,是图论中用于表示图的一种重要矩阵。定义给定一个具有 n 个顶点的简单图 G=(V,E)G=( V , E )G=(V,E),V 为顶点集合,E 为边集合,其拉普拉斯矩阵可定义为:L=D−AL = D − AL=D−A其中 A∈RA \in RA∈R 为邻接矩阵(adjacency matrix),D∈Rn×nD \in \mathbb{R}^{n \times n}D∈Rn×n 为度矩阵(degree
2021-01-23 22:32:31
4863
原创 Matlab并行计算parpool使用方法+代码
parfor 是并行循环计算多重循环的嵌套,只能在其中一层循环使用parfor并行计算,因为parfor就是让几个worker同时干活,比如一个循环中,i=1:30,那么一个worker做i=1:5,一个做i=6:10····不同的循环变量之间完全独立,所以当然可以一起干活,在里面在嵌套parfor,相当于把里面的工作还要分给6个人,很容易混乱不清,出现问题,如果再继续嵌套就更没法独立地界限清晰地并行工作了。在命令行中输入ver查看是否有“并行计算工具包”,里面有Parallel Computin
2021-01-19 23:55:34
29915
3
原创 多项式时间 (Polynomial time)
什么是时间复杂度?时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当程序所处理的问题规模扩大后,程序需要的时间长度对应增长得有多快。也就是说,对于某一个程序,其处理某一个特定数据的效率不能衡量该程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。不管数据有多大,程序处理所花的时间始终是那么多的,我们就说这个程序很好,具有 O(1)O(1)O(1) 的时间复杂度,也称常数级复杂度;数据规模变得有多大,花的时间也跟着变得有多长,比如找
2020-12-05 22:58:15
16634
3
原创 李雅普诺夫第二方法
背景和思路**系统稳定:**系统储存的总能量持续地减小,直至耗尽,系统状态就会趋于平衡态**稳定性考察:**考察一个正值的能量函数 V(x)V(x)V(x) 和它的变化率 V˙(x)\dot{V}(x)V˙(x) 来判断。若 V˙(x)\dot{V}(x)V˙(x) 始终为负,则系统稳定。**困难:**对于一般的动态系统,并不是总能明确地定义一个能量函数**解决方案:**用一个正定的标量函数作为系统的广义能量函数...
2020-11-07 17:11:29
13916
1
原创 正定函数、半正定函数、负定函数和半负定函数
正定函数定义:若对域 Ω\OmegaΩ 中所有的非零向量 x\boldsymbol{x}x,恒有 V(x)>0V(\boldsymbol{x})>0V(x)>0,且在 x=0\boldsymbol{x}=0x=0 处有 V(0)=0V(0)=0V(0)=0,则称标量函数 V(x)V(\boldsymbol{x})V(x) 在域 Ω\OmegaΩ 内是正定的,V(x)V(\boldsymbol{x})V(x) 是正定的简记为 V(x)>0V(\boldsymbol{x})>0V
2020-11-06 16:50:54
17426
3
原创 否定、合取、析取、条件、双条件定义及LaTex公式
1 否定定义:设P为一命题,P的否定是一个新的命题,记作¬\neg¬P。若P为T,¬\neg¬P为F;若P为F,¬\neg¬P为T。P¬\neg¬PTFFTLaTex公式:$\neg$2 合取定义:两个命题P和Q的合取是一个复合命题,记作P∧\wedge∧Q,当且仅当P、Q同时为T时,P∧\wedge∧Q为T,在其他情况下,P∧\wedge∧Q的真值都是FPQP∧\wedge∧QTTTTFFFTFFFF
2020-10-28 12:02:23
20679
原创 严格证明Hopfield神经网络的稳定性
研究如下的Hopfield神经网络Cidxi(t)dt=−1Rxi(t)+∑j=1nTijgj(xj(t))+Ii, (i=1,2,⋯ ,n)(1)C_{i} \frac{\mathrm{d} x_{i}(t)}{\mathrm{d} t}=-\frac{1}{R} x_{i}(t)+\sum_{j=1}^{n} T_{i j} g_{j}\left(x_{j}(t)\right)+I_{i},\;(i=1,2, \cdots, n)\tag{1}Cidtdxi(t)=−R1xi(t)+
2020-10-14 18:04:56
1772
原创 连续型Hopfield神经网络(SHNN)结构和特点及其能量函数
1 连续型Hopfield神经网络连续型Hopfield网络结构如右图所示,它是单层反馈非线性网络,每一个节点的输出均反馈至节点的输入。Hopfield网络用模拟电路实现的神经元节点如下图。 图中电阻 Ri0R_{i0}Ri0 和电容 CiC_iCi 并联, 模拟生物神经元的延时特性, 电阻 Rij(j=1,2,...,n)R_{ij}(j=1, 2, ... , n)Rij(j=1,2,...,n) 模拟突触特征 ,偏置电流 IiI_iIi 相当于阈值, 运算放大器模拟神经元的非线性饱和特性
2020-10-13 15:59:42
8295
2
原创 迈向第三代人工智能——论文欣赏
人工智能(artificial intelligence, AI) 自1956 年诞生以来, 在60 多年的发展历史中, 一直存在两个相互竞争的范式, 即符号主义与连接主义(或称亚符号主义). 二者虽然同时起步, 但符号主义到20 世纪80 年代之前一直主导着AI 的发展, 而连接主义从20 世纪90 年代才逐步发展起来, 到21 世纪初进入高潮, 大有替代符号主义之势.1 第一代人工智能——符号主义2 第二代人工智能——连接主义感官信息(视觉、听觉和触觉等) 是如何存储在记忆中并影响人类行为的? 有
2020-10-12 22:17:54
1318
原创 马尔科夫决策过程(Markov decision process, MDP)和马尔科夫奖励过程(Markov Reward Process)
在强化学习中,马尔科夫决策过程(Markov decision process, MDP)是对完全可观测的环境进行描述的,也就是说观测到的状态内容完整地决定了决策的需要的特征。几乎所有的强化学习问题都可以转化为MDP。本讲是理解强化学习问题的理论基础。马尔科夫过程 Markov Process1 马尔科夫性(Markov Property)某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不再需要,当前状态就可以决定未来,则认为该状态具有马尔科夫性。可以用下面的状态转移概率公式
2020-10-12 15:51:02
2837
1
原创 优快云的Markdown中设置字体、颜色和字号
1 字体<font face="宋体">宋体</font><font face="仿宋">仿宋</font><font face="楷体">楷体</font><font face="隶书">隶书</font><font face="黑体">黑体字</font><font face="微软雅黑">微软雅黑</font><font face="STC
2020-10-11 10:48:32
772
原创 离散型Hopfield神经网络(DHNN)、直接训练法,Hebb规则及稳定性分析
1 Hopfield神经网络原理Hopfield网络相当于一个具有多个吸引子的系统。(对于吸引子的大致定义:落入吸引子附近的状态都会被吸引到该吸引子所在的状态。)我们把每个吸引子所在的状态作为一个记忆原型,被毁坏的输入假定在记忆原型的附近,通过Hopfield网络,最终能够通过毁坏的输入回忆起它所对应的完整原型。2 Hopfield网络结构一个具有三个神经元的Hopfield网络结构如下图所示。网络中的每个神经元 iii 与所有其他神经元 j≠ij \ne ij=i之间都存在连接,权值为 ωij\
2020-10-10 12:15:59
5949
原创 Two Projection Neural Networks With Reduced Model Complexity——论文欣赏
Consider the following NP:minf(x)s.t.c(x)≤0, Bx=b(1)\begin{aligned}&\min\quad f(x)\\&s.t.\quad c(x)\le 0,\;Bx=b\end{aligned}\tag{1}minf(x)s.t.c(x)≤0,Bx=b(1)where x∈ℜn,f:ℜn→ℜ,c(x)=[c1(x),...,cm(x)]Tx\in \Re^n,f:\Re^n\rightarrow \Re,c(x)=
2020-10-08 12:05:50
155
原创 Two-Timescale Multilayer Recurrent Neural Networks for Nonlinear Programming —— 论文欣赏
Consider the following nonlinear programming:minxf(x) s.t. g(x)≤0h(x)=0(1)\begin{array}{c}\min _{x} f(x) \\\text { s.t. } g(x) \leq 0 \\h(x)=0\end{array}\tag{1}minxf(x) s.t. g(x)≤0h(x)=0(1)Two-timescale model:ϵxdxdt=yϵydydt
2020-10-07 17:49:44
233
原创 开集(Open Set)、闭集(Closed Set)和紧集(Compact Set)
开集假设X是一个集合, 如果存在一系列X的子集合满足下面的条件,那么每个这样的子集就称为X的一个开集,X称为拓扑空间。空集和X为开集;有限多个开集之交为开集(无穷多个开集的交集未必是开集);任意多个开集之并为开集。...
2020-10-07 11:34:48
31940
2
原创 利普希茨连续(Lipschitz continuity)和利普希茨常数(Lipschitz constant)
定义给出两个 metric spaces (X,dX)(X,d_X)(X,dX) 和 (Y,dY)(Y,d_Y)(Y,dY),其中 dXd_XdX代表 XXX 的 metric,dYd_YdY 代表 YYY 的 metric,如果存在一个实数 K≥0K\ge0K≥0,对于 XXX 所有的 x1x_1x1 和 x2x_2x2dY(f(x1),f(x2))≤KdX(x1,x2)d_Y(f(x_1),f(x_2))\le Kd_X(x_1,x_2)dY(f(x1),f(x2))≤KdX
2020-10-06 11:25:51
12577
原创 仿射函数与线性变换的区别
为了方便起见,以下叙述均采用平面直角坐标系。一个矢量(1,2)可以表示为从原点指向该点的箭头。你可以对这个矢量进行缩放,比如放大两倍就变成了(2,4)这个操作可以表示为2 x(1,2)。也就是说放大k倍就是k(x,y)上面的例子写成矩阵的话就是,这里用到了矩阵乘法。(12)(2002)\begin{pmatrix}1&2\end{pmatrix}\begin{pmatrix}2&0\\0&2\end{pmatrix}(12)(2002)这个很简单。你也可以把矩阵中
2020-10-04 18:29:30
3385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人