自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白水的博客

欢迎你的光临,随便看看就好

  • 博客(333)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 matlab 线性规划 单纯形法

先来介绍一下单纯形法,下面解释是从国科大算法最优化课程林姝老师的课件中截取的。接下来写代码,单纯形法函数:%% SimplexMax.mfunction [x, c, z, pt, ind_B, ind_N] = SimplexMax(c, A, b, ind_B, iter_tag)% 单纯形法求解标准形线性规划问题: max cx s.t. Ax=b x>=0% 输入参数: c为目标函数系数, A为等式约束方程组系数矩阵, b为等式约束方程组常数项, ind_B为松弛变量索引% 输出

2021-12-09 19:44:42 4497

原创 matlab 判断矩阵是正定、半正定还是负定

% 判断矩阵m是正定、半正定还是负定m = [2 -1; -1 2]; if issymmetric(m) % 检查矩阵是否对称 % disp('矩阵对称'); d = eig(m); % 计算矩阵特征值 if all(d > 0) disp('矩阵正定'); elseif all(d >= 0) disp('矩阵半正定'); else disp('矩阵负定'); endelse di

2021-12-09 19:13:40 11434 7

原创 Soft Actor Critic算法论文公式详解

SAC强化学习算法是伯克利大学团队2018年在ICML(International Conference on Machine Learning)上发表的论文,本篇博客来总结一下论文里的公式及其涵义。1. 优化目标J(π)=∑t=0TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))]J(\pi)=\sum_{t=0}^{T}\mathbb{E}_{(s_t,a_t)\sim\rho_\pi}[r(s_t,a_t)+\alpha\mathcal{H}(\pi(·|s_t))]J(π)=t=

2021-11-29 13:22:46 5683 8

原创 数学建模竞赛中的两个技巧

文章目录1. 数据拟合与最优化方法1.1. 数据拟合1.1.1. 线性回归 fitlm1.1.2. 多项式线性回归 regress1.1.3. 多项式非线性回归 polyfit1.1.4. 自定义非线性回归 fit1.1.5. 自定义非线性最小二乘法回归 lsqcurvefit1.1.6. 自定义非线性牛顿法回归 nlinfit1.1.7. 拟合工具箱 Curve Fitting1.2. 最优化方法1.2.1. 无约束优化问题1.2.2. 约束优化问题2. 神经网络与特征选择2.1. 神经网络2.1.1.

2021-11-28 14:51:18 1826 1

原创 python 在x=0,y=0处画线形成十字

代码很简单,用axhline画横线,用axvline画竖线:plt.figure()plt.axhline(0, color='black', linestyle='--')plt.axvline(0, color='black', linestyle='--')plt.show()与自己的图像画在一起,效果如下:

2021-11-02 14:30:10 3847

原创 分布式系统的特征

文章目录1. 分布式系统的时间1.1. 计算机时钟1.2. 时间同步1.3. 分布式系统的时间分类2. 同步系统的时间同步2.1. Cristian外部同步方法2.2. Berkeley内部同步方法3. 网络时间协议 NTP3.1. NTP的设计目标3.2. NTP的体系结构3.3. NTP的同步方式4. 时钟算法4.1. 事件排序4.2. Lamport逻辑时钟4.3. 向量时钟5. 观察全局状态5.1. 全局状态定义5.2. 观察分布式系统的全局状态的必要性5.3. 观察系统全局状态的困难性5.4. 割

2021-10-30 13:00:11 311

原创 分布式系统的进程交互

文章目录1. 进程交互2. 覆盖网络1. 进程交互目前已有的交互机制操作系统提供的单机内部进程间通信机制命名管道(Named Pipe)、信号量(Semaphore)、信号(Signal)、共享内存(Shared Memory)网络层提供的多机间的进程间通信机制基于套接字(Socket)的IPC机制当上述方法在分布式系统中不适用,在分布式系统中,数据传递是基于覆盖网络(overlay network,也称应用层网络)的,拥有点对点、多播/组播、广播三种数据传递方式。2. 覆盖网络覆盖网

2021-10-28 23:20:54 370

原创 DRN :A Deep Reinforcement Learning Framework for News Recommendation论文解读

文章目录1. 论文贡献2. 模型架构2.1. 特征构造2.2. 深度强化学习模型2.3. 用户的主动反馈2.4. 探索策略1. 论文贡献该论文提出了一个基于DQN的推荐框架,用于解决以下3个问题:当前的推荐系统很难动态地推荐新闻新闻的动态性表现在两个方面:(1)新闻的时效性强,新闻内容很容易过时;(2)用户对不同新闻的兴趣会随着时间的推移而不断变化。当前的强化方法利用的用户反馈信息不足大多数方法只将新闻是否被点击,或者用户对新闻的评分作为用户反馈,这是不够的。当前的推荐系统总是向用户推荐类似

2021-10-28 08:36:23 545

原创 分布式系统的进程组织

文章目录1. 进程和线程2. 非分布式系统中的线程2.1. 最佳线程池大小3. 分布式系统中的线程1. 进程和线程进程在分布式系统中形成一个构建块,由操作系统维护,对用户来说,它是不可见的(透明)。一个进程中允许有多个控制线程:进程上下文线程上下文地址空间列表优先级和执行状态通信接口处理器寄存器信号量,以及其他同步对象软件中断处理信息线程标识符列表执行环境标识符进程的缺点:在单线程进程中,每当阻塞I/O 系统调用被执行时,整个进程都会被阻塞;

2021-10-24 14:35:06 356

原创 无约束优化问题中牛顿法与拟牛顿法四种迭代方法的matlab实现

文章目录1. 无约束优化问题的解法2. Matlab实现2.1. Newton’s method(牛顿法)2.2. Levenberg-Marquardt’s method(LM)2.3. Broyden-Fletcher-Goldfarb-Shanno’s method(BFGS)2.4. Davidon-Fletcher-Powell’s method(DFP)1. 无约束优化问题的解法在无约束优化问题中,有四种经典的迭代优化方法:Newton’s method(牛顿法)、Levenberg-Mar

2021-10-17 15:45:19 4073 1

原创 matlab 用改进的单纯形法(Modified Simplex Method)求解二次规划问题

文章目录1. Wolf方法2. 应用示例:1. Wolf方法这是一个不常用的方法,由wolf实现了matlab代码:Quadratic programming by Wolf’s method在使用时,应当保证该function与自己计算二次规划问题的文件在同一目录下,并且matlab的“Current Folder”加载在该目录。在注释中有一个使用样例,需要注意的是样例中的优化问题求解的是最大优化。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2021-10-10 10:45:23 1519

原创 Linux上C++与CUDA混合编程

为了更好地说明如何在Linux实现C++与CUDA的混合编程,我接下来将以实现对一个矩阵的每一个元素的取模运算。1. 头文件和文件形式要在C++中编写CUDA代码,需要引入头文件:#include "cuda_runtime.h"#include "cublas_v2.h"#include "device_launch_parameters.h"然后将文件后缀由.cpp改为.cu2. 搭建程序框架一个CUDA程序的框架类似于普通C++程序,下面我们来展示其中一种简单的形式:// mod_

2021-10-09 18:35:38 4129 1

原创 python将矩阵存为lmdb文件

由于工作需要,将C++生成的矩阵存入LMDB再用caffe进行处理,输出的矩阵失去了它原本的shape,因此只能记录下来:矩阵X(n*ell):-3723024071319544887-223830618-184109131-328009648-182855917…749988319-1387505086-1967883425102294930916806381161541327498矩阵Y(r*n):100011-34-280109151-205-

2021-09-26 18:12:21 622

原创 caffe cmake错误 Could NOT find Atlas (missing: Atlas_LAPACK_LIBRARY)

CMake Error at /usr/local/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find Atlas (missing: Atlas_LAPACK_LIBRARY)Call Stack (most recent call first): /usr/local/share/cmake-3.20/Modules/FindPackageHandleStandar

2021-09-25 23:33:29 1727

原创 现代信息检索——索引构建

1. 索引建立倒排索引的过程称为索引构建,负责构建索引的算法称为索引器。操作系统往往以数据块为单位对数据进行读写,因此从磁盘读取一个字节和读一个数据块所耗费的时间可能一样多。采用一种高效的解压缩算法对数据进行压缩,然后读取磁盘上的压缩数据,再进行解压,这个过程所花的时间往往会比直接读取原始数据的时间少。下文涉及到是3个名称:倒排表、词典、索引均是指倒排表的不同形式。1. BSBI算法BSBI(Blocked sort-based Indexing,基于块的排序索引方法)的基本思想是:收集每一个数据块

2021-09-20 12:58:14 1644

原创 Soft Actor-Critic 论文解读

1. 最大熵强化学习框架1.1. 符号1、最大熵马尔科夫决策过程最大熵马尔科夫决策过程定义为:(S,A,p,r)(S,A,p,r)(S,A,p,r)其中,SSS是连续的状态空间;AAA是连续的动作空间;ppp是状态转移概率,表示给定st∈Ss_t\in Sst​∈S、at∈Aa_t\in Aat​∈A时st+1∈Ss_{t+1}\in Sst+1​∈S的概率密度;rrr是状态转移过程中的奖励。2、轨迹分布用ρπ(st)\rho_\pi(s_t)ρπ​(st​)和ρπ(st,at)\rho_\pi(

2021-09-18 13:31:16 650

原创 Centos 安装Caffe

1. CUDA和CUDNNcuda下载地址:https://developer.nvidia.com/cuda-toolkit-archivecudnn下载地址:https://developer.nvidia.com/rdp/cudnn-archive注意当前版本caffe只支持 cuda8.0-10.2 和 cudnn v7 版本,对照自己的cuda版本下载对应的cudnncuda的安装过程网上都有我就不详述了,讲一下cudnn如何安装,下载好cudnn后,解压出来:tar -xzvf cud

2021-09-15 08:52:45 411

原创 现代信息检索——布尔检索

文章目录1. 布尔检索概述2. 布尔索引方法2.1. 关联矩阵索引2.2. 倒排索引2.2.1. 倒排索引概述2.2.2. 倒排索引建立3. 布尔查询的处理3.1. 布尔查询在倒排表上的操作3.2. AND查询的处理3.3. 布尔查询在倒排表上的优化4. 布尔检索的优缺点1. 布尔检索概述针对布尔查询的检索,布尔查询是指利用 AND, OR 或者 NOT操作符将词项连接起来的查询。例如检索需求:哪些文档包含了Brutus及Caesar二词但不包含Calpurnia一词?布尔表达式:Brutus AN

2021-09-11 22:05:23 8492 1

原创 现代信息检索——基本概念

文章目录1. 什么是信息检索1.2. 信息检索与其他学科领域的关系1.3. 信息检索技术的应用1.4. 信息检索的分类2. 信息检索的现实需求3. 信息检索的工具4. 重要检索工具平台1. 什么是信息检索所谓信息检索,就是给定信息需求,然后从信息库中找出与需求最匹配的信息。详细地说,信息检索通常涉及信息的获取、存储、组织和访问。是一个从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程。从信息的数据形式上看,数据一般分为“非结构数据”和“结构化

2021-09-11 19:20:10 2257

原创 C++使用cuBLAS加速矩阵乘法运算

本博客主要参考 cuBLAS 库 词条实现,与原文不同的是,本博客:将cuBLAS库的乘法运算进行了封装,方便了算法调用;将原文的结果转置实现为了不转置,这样可以直接使用计算结果;测试并更改了乘法参数,解决了原文中更改矩阵大小时报错的问题。总的来说,本博客的代码利用cuBLAS库实现了两个矩阵相乘,提高了矩阵乘法的计算速度。test.cpp#include "cuda_runtime.h"#include "cublas_v2.h"#include <time.h>#inc

2021-09-05 19:14:08 1239

转载 cuBLAS产生Segmentation fault错误的解决方案

在语句cublasCreate()之后添加以下代码,就可以解决“Segmentation fault”的问题:cublasSetPointerMode(handle, CUBLAS_POINTER_MODE_DEVICE);

2021-09-03 16:50:56 296

原创 CentOS 下安装Eigen库

1. 下载并按照Eigen库首先打开Eigen官网(https://eigen.tuxfamily.org/index.php)。找到合适的Eigen版本,右键点击tar.gz压缩包,点击复制链接。如下例图之后在CentOS终端粘贴,下载Eigen文件:wget https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.gz下载完成后解压:tar -zxvf eigen-3.3.9.tar.gz然后打开解压的目录:

2021-09-02 21:33:01 4075 5

原创 windows10 升级JDK和JRE

1. 下载最新版JDK和JRE在 Oracle JDK版本 (www.oracle.com/java/technologies/javase-downloads.html)页面下载适合自己机器的最新版本的JDK。在Oracle JRE 下载 (https://www.oracle.com/java/technologies/javase-jre8-downloads.html)中下载适合自己机器的最新版本的JRE 8(截止目前最新)。2. 升级JDK安装刚刚下载的JDK,等待其安装完成后,打开“控制

2021-08-28 09:50:49 4311

原创 使用paddlepaddle做OCR识别

1. 环境配置Python: 使用paddlepaddle需要3.6以上的Python版本依赖库:pandas,pip install pandas;cv2,pip install opencv-python;paddlepaddleCPU 版本:pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple;GPU 版本,支持CUDA 10.1:python -m pip install paddlepaddle-gpu==

2021-08-25 11:06:11 10393 6

原创 推荐算法的Python实现——MF(矩阵分解)

1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练ItemCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想改ratings.dat文

2021-08-20 00:22:12 3794 15

原创 推荐算法的Python实现——ItemCF(基于物品的协同过滤)

1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型。第一列是用户id(user_id)、第二列是物品id(item_id)、第三列是用户对物品的评分(score)、第四列是时间戳(timestamp)。在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换

2021-08-19 08:16:59 4630 4

原创 推荐算法的Python实现——UserCF(基于用户的协同过滤)

1. 数据集本博客用Movielens-1m数据集的ratings.dat作为推荐数据来训练UserCF推荐模型在Movielens-1m的元素数据集中,ratings.dat是用::作为分隔符的。在本次的python实现中,提前将分隔符::替换为了,,文件名ratings.dat改为了ratings.csv。如果嫌麻烦不想该,改代码也可以,主要替换以下两行:userid, itemid, record, _ = line.split(",")# 替换为userid, itemid, reco

2021-08-18 22:29:18 5863 2

原创 推荐系统测评指标——计算DCG、IDCG以及nDCG的python代码

1. 公式DCG:DCG@K=∑i=1K2ri−1log2(i+1)DCG@K=\sum_{i=1}^{K}\frac{2^{r_i}-1}{log_2(i+1)}DCG@K=i=1∑K​log2​(i+1)2ri​−1​其中,KKK是推荐列表的大小;iii 是指推荐列表中的第iii个推荐项;rir_iri​是指推荐项 iii 是否被用户点击,若点击则为111,否则为000,在实际测试中,我们通常吧推荐列表中在测试集的推荐项视为被用户点击的推荐项,不在测试集中的推荐项视为未被用户点击的推荐项;IDC

2021-08-17 17:46:31 7756 2

原创 LIRD(Deep Reinforcement Learning for List-wise Recommendations)论文算法解读

Deep Reinforcement Learning for List-wise Recommendations 1. 构建了一个在线的用户-Agent交互环境模拟器,该模拟器适用于模拟在线推荐系统,以在离线的情况下对参数进行预训练和评估; 2. 提出了一个基于深度强化学习推荐框架:LIRD(LIst-wise Recommendation framework based onDeep reinforcement learning),该框架适用于具有大型动态项空间的推荐场景,并可显著地降低计算量;

2021-07-24 02:22:38 2401 6

原创 TensorFlow的历史版本与对应Python版本

版本Python 版本最后版本发布时间tensorflow-2.4.03.6-3.82020年12月tensorflow-2.3.03.5-3.82020年7月tensorflow-2.2.03.5-3.82020年5月tensorflow-2.1.03.5-3.72020年1月tensorflow-2.0.03.5-3.72019年10月tensorflow-1.15.03.5-3.72019年10月tensorflow-1...

2021-07-21 22:18:31 44345 6

原创 最优化理论与设计——最优化设计的基本概念

文章目录1. 最优化设计概述2. 最优化设计的数学模型2.1. 两个引例2.2. 最优化数学模型2.2.1. 设计变量2.2.2. 目标函数2.2.2.1. 极大化目标与极小化目标2.2.2.2. 单目标与多目标2.2.2.3. 等值线、等值面、等值超曲面2.2.3. 约束条件3. 最优化问题的几何解释1. 最优化设计概述它的基本涵义是在设计或管理工程系统时,如果存在不止一种可行方案,则总希望从一切可行方案中选取一个最佳方案,这一选择过程称为最优化设计或最优化。优化设计是在20世纪六十年代随计算机技术

2021-07-21 13:53:51 6204

原创 Slate-based Recommender Systems 论文解读

Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology本博客对SlateQ论文进行了解读,如有错误请评论指正。文章目录1. 论文算法介绍(第四、五章)1.1. SlateQ: 基于强化学习的推荐列表分解技术Sl1.2. 用Q值对推荐列表进行优化1.3. 三种优化方法的比较2. 论文算法的在线实现(第九章)2.1. 两个重要组件2.2..

2021-07-16 17:57:18 2046 2

原创 自定义CNN实现图像分类

我想针对一个医学影像数据集训练一个CNN模型,网络结构如下:层描述Conv-1Kernel:5*5, stride 1, output channels:6 , padding=SAME, Activation=ReLU(输入图片大小和输入通道数见所采用的数据集)MaxpoolPoolsize: 2*2,stride: 2Conv-2Kernel:5*5, stride:1, input channels: 6, output channels: 16, paddi

2021-07-03 13:31:29 1593 2

原创 CentOS中将安装的软件添加到应用程序菜单中

以VS Code为例,安装好VS Code后,打开applications目录cd /usr/share/applications/找到VS Code对应的.desktop文件,如果不好找也可以打开文件系统根据图标辅助查找sudo vim code.desktop随后在.desktop文件中将StartupNotify=false改为StartupNotify=true即可...

2021-06-26 11:06:28 2002

原创 启发式算法 Heuristic Algorithm

在数学优化和计算机科学中,启发式算法用于在经典方法效果不佳时更快地解决问题或找到近似解。这是通过牺牲最优性、完整性、准确性或精度换取速度来实现的。它是一个与最优化算法相对的概念。在某种程度上,它可以被认为是一条捷径。因此启发式算法给出的答案是具有偶然性的,或者说时好时坏,因为启发式方法仅仅告诉我们该如何去找答案,而不直接告诉我们答案是什么。某些启发式算法具有强大的基础理论,它们要么是从理论中以自上而下的方式推导出来的,要么是基于实验或现实世界的数据得出的。其他的只是基于现实世界观察或经验的经验法则,甚至

2021-06-16 01:25:53 540

原创 Windows使用XFTP连接CentOS 7

首先准备一台搭载了CentOS 7系统的服务器,和装有XFTP的Windows电脑查看CentOS的公网IP,以及打开22端口ip addr找到ens,这是系统以太网的信息,下面的10.17.2.101就是公网IP了2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:50:56:88:2c:a2 brd ff:ff:ff:ff:ff:ff

2021-06-09 02:16:04 3181 2

原创 DQN算法的时间复杂度分析

DQN算法的算法流程如下:时间复杂度:设:Initialize replay memory D\mathcal{D}D to capacity NNN (运行消耗t0t_0t0​时间)Initialize action-value function QQQ with random weights (运行消耗t1t_1t1​时间)for episode=1,Mepisode=1,Mepisode=1,M do (运行一次平均消耗t2t_{2}t2​时间,重复运行MMM次)\qquad Initi

2021-05-21 08:17:19 5190 3

原创 RL真的很简单 手把手带你入门强化学习

文章目录1. 强化学习的应用场景1.1. 四个成熟场景1.2. 几个强化学习仿真环境1.2.1. Gridworld1.2.2. Neural MMOs1.2.3. Lab2. 强化学习的基础知识和常用术语2.1. 强化学习的目的2.2. 强化学习的过程2.3. 两个基本模型2.3.1. 多臂赌博机2.3.2. 马尔科夫决策过程2.4. 常用术语表3. 经典强化学习算法和深度强化学习4. 强化学习的学习资料1. 强化学习的应用场景1.1. 四个成熟场景在入门强化学习之前,我们先来具体的看看,目前强化学

2021-04-09 21:46:13 8401 10

原创 Anaconda找回默认源

Anaconda的默认源:https://repo.anaconda.com/pkgs/mainhttps://repo.anaconda.com/pkgs/rhttps://repo.anaconda.com/pkgs/msys2用法:conda config --add channels https://repo.anaconda.com/pkgs/mainconda config --add channels https://repo.anaconda.com/pkgs/rconda

2021-03-29 19:39:53 10013 27

原创 强化学习算法分类汇总

文章目录1. Model-Free 与 Model-Based RL2. Policy-Based 与 Value-Based RL3. Monte-Carlo Update 与 Temporal-Difference Update RL4. On-Policy 与 Off-Policy RL1. Model-Free 与 Model-Based RL根据Agent是否理解其所处的环境,可以将强化学习方法分为:无模型的强化学习(Model-Free RL)和基于模型的强化学习(Model-Based R

2021-02-24 22:57:24 5095 1

2020-2021顶会关于推荐系统中的解决偏差(bias)问题的文献汇总.zip

博客:https://baishui.blog.csdn.net/article/details/123065482

2022-02-22

软考系统架构设计师历年真题及答案、题型归类

软件资格考试2009-2018年的真题及答案,以及综合知识题型归类,案例分析与论文部分必备知识点等,需要的小伙伴自行下载

2020-11-16

AgentTable.csv

内含9000余条国外浏览器user-agent信息,csv文件,可直接导入数据库

2019-07-29

进制转换工具

转换二进制、八进制、十进制和十六进制数,只需要输入数字后按回车即可(或者移开光标)

2018-03-10

DirectX修复工具V3.3

DirectX修复工具(DirectX Repair)是一款系统级工具软件,下载后无需安装,可直接运行。

2018-03-06

微信小游戏跳一跳辅助脚本Python源码

来自GitHub:wangshub/wechat_jump_game 开发的微信小游戏Python脚本

2018-01-01

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

TA关注的人

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