自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

William Zhao's notes

Stay hungry, stay foolish. Personal page: zhiyuanzhao.com

  • 博客(300)
  • 收藏
  • 关注

原创 轻量级网络汇总:Inception,Xception,SqueezeNet,MobileNet v123Next,ShuffleNet v12,SENet,MNASNet,GhostNet,FBNet

轻量级网络汇总:Inception,Xception,SqueezeNet,MobileNet v123Next,ShuffleNet v12,SENet,MNASNet,GhostNet,FBNetInception提出卷积的时候,通道卷积和空间卷积是没关系的,最好分开搞,不要一起搞(没有理论证明,只是实验发现)网络结构就是1x1, 1x1->3x3, avgPool->3x3, 1x1->3x3->3x3,这4路分开过然后concatXception, go.

2020-11-10 21:43:05 1344 1

原创 C++读写配置文件的类

共用版.h文件//----------------------------------------------------------------------------// 程序名称:ConfigFile.h// 程序说明:类 ConfigFile 的定义// 程序作者:// 程序版本:1.0// 开始日期:1999-01-10

2020-08-04 17:19:02 727

原创 linux下安装了软件却提示command not found

问题描述 : 安装了软件却提示没有原因:bash找不到,没有添加到系统路径中解决:1.将可执行文件的目录添加到系统路径中(使用自定义的安装路径常用)或者2.将可执行文件软连接到已经存在的系统路径中(使用默认的安装路径但是可执行文件不在默认的/usr/bin中常用)下面是找到可执行文件在哪里的方法:以 php-fpm 为

2020-08-04 17:18:57 1622

原创 BN在CNN和RNN中的应用

Batch Normalization的基本思路和价值在之前一篇文章“Batch Normalization导读”介绍了,此处不赘述,背景知识请参考上面文章。看到BN后,很明显能够看到这等于往传统的神经网络中增加了一个BN层,而且位置处于神经元非线性变换前,基本大多数网络结构都能很自然地融合进去,于是很自然的想法就是:如果用在CNN或者RNN效果会如何?是否也会增加收敛速度以及模型分类性能?CNN...

2020-08-04 17:18:53 1694

原创 LSTM图示和公式

LSTM网络long short term memory,即我们所称呼的LSTM,是为了解决长期以来问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。不...

2020-08-04 17:18:29 3960 2

原创 机器学习中的各种损失函数

1. 损失函数损失函数(Loss function)是用来估量你模型的预测值f(x)f(x)与真实值YY的不一致程度,它是一个非负实值函数,通常用L(Y,f(x))L(Y,f(x))来表示。损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的风险结构包括了风险项和正则项,通常如下所示:θ∗=argminθ1N∑i=1NL(...

2020-08-04 17:16:00 1972

转载 课程学习与自步学习Curriculum learning and self-paced learning:极简入门

Curriculum Learning在谈论self-paced learning之前,我们需要先了解一下课程学习(curriculum learning)。Bengio [1] 提出了课程学习的概念,其直觉来自于人类从易到难的学习过程:将数据看作模型所学习的内容的话,我们自然需要一个合理的课程(curriculum)来指导模型学习这些内容的方式。在课程学习中,数据被按照从易到难的顺序逐渐加入模型的训练集,在这个过程中训练集的熵也在不断提高(包含更多的信息)。A model is learned b

2020-08-04 17:08:29 2142 1

原创 MapReduce实现两表的Join--原理及python和java代码实现

用Hive一句话搞定的,但是有时必须要用mapreduce方法介绍1. 概述在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的。而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧。本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法。2. 常见

2020-05-25 12:10:14 17002

翻译 在电力智能测量数据应用中的分层时间序列预测正则化(Regularization in Hierarchical Time Series Forecasting with Application to)

论文链接 原文链接 Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI-17) 文中所有的公式都没有弄过来,太麻烦了,都用()代替了,需要对照原文看。Regularization in Hierarchical Time Series Forecasting with Appli

2020-05-25 12:08:37 731

原创 h5py pytorch dataset 报错:KeyError: 'Unable to open object (wrong B-tree signature)'

dataloader多线程加载数据时,读h5文件的code不能写在dataset class的init方法中,不然会导致多线程读这个文件可以写在getitem中,判断下,只第一次读这个文件,之后有了就不用读了

2020-05-09 18:16:08 3730 2

原创 通俗易懂的NCE Loss

NCE loss : Noise Contrastive Estimation他的直观想法:把多分类问题转化成二分类。之前计算softmax的时候class数量太大,NCE索性就把分类缩减为二分类问题。之前的问题是计算某个类的归一化概率是多少,二分类的问题是input和label正确匹配的概率是多少。问题:通常训练例如word2vec的时候,我们最后用full softmax预...

2020-05-04 18:09:12 24346

原创 深度学习各种优化算法(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)

標準梯度下降法:彙總所有樣本的總誤差,然後根據總誤差更新權值SGD隨機梯度下降:mini batch代替全部樣本曲面的某個方向更加陡峭的時候會被困住Xt+1=Xt-α Δf(x1)隨機抽取一個樣本誤差,然後更新權值 (每個樣本都更新一次權值,可能造成的誤差比較大)批量梯度下降法:相當於前兩種的折中方案,抽取一個批次的樣本計算總誤差,比如總樣本有10000個...

2019-04-18 21:04:29 2348 1

原创 基于远端新建分支/修改远端分支名/查看当前分支upstream

基于远端新建分支1. 切换到被copy的分支(master),并且从远端拉取最新版本$git checkout master$git pull2. 从当前分支拉copy开发分支$git checkout -b devSwitched to a new branch 'dev'3. 把新建的分支push到远端$git push origin dev4. 关联$git...

2018-12-05 17:03:52 2361

原创 git cherry-pick 的时候出现git cherry-pick xxx  fatal: bad object xxx

解决git cherry-pick xxx  fatal: bad object xxx        我的情况是在B分支的同步A分支的一个commit,出现了如标题的错误。我是直接在web上看到A分支新提交的这个commit,然后我直接在本地的B分支中进行git cherry-pick xxx。就出现了这个问题。经过尝试问题是出在了我没有切到B分支pull一下。总结过来就是git cherry...

2018-11-05 19:32:53 8430 1

原创 最长增长子序列(串),最大公共子序列(串),

300. Longest Increasing Subsequence子序列,不需要连续的。思路一:传统的dp,dp[i]表示前i个数且以第i个数字结尾的最长增长子序列,遍历数组,dp[i] = max(dp[i], dp[j] + 1)  if nums[i] > nums[j], j from 0 to i思路二:维护一个数组,vec[i]表示,当递增序列长度是i的时候最后一...

2018-09-22 00:01:08 432

原创 背包问题总结

前面是转载来的背包9讲,非常详细,后面有几个lintcode上的题目前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,名为《解动态规划题的基本思考方式》。现在你看到的是这个写作计划最先发布的一部分。背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少...

2018-09-12 02:27:25 19672

原创 GBDT详细分析 未完

GBDT是boosting策略和决策树的结合,GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法所谓的Gradient B...

2018-09-08 00:28:27 1226 1

原创 RF,GBDT,XGBOOST, LightGBM的对比和分析

1.概述RF、GBDT和都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。 xgboost和lightgbm是gbdt的优秀工程实现及优化改进。2.集成学习方法bootstrap, boosting, bagging, stacking集成算法原理介绍详细的bootstrap3.各种实例解析...

2018-08-29 23:05:21 4989

原创 DNN中的trick

1:优化器。机器学习训练的目的在于更新参数,优化目标函数,常见优化器有SGD,Adagrad,Adadelta,Adam,Adamax,Nadam。其中SGD和Adam优化器是最为常用的两种优化器,SGD根据每个batch的数据计算一次局部的估计,最小化代价函数。学习速率决定了每次步进的大小,因此我们需要选择一个合适的学习速率进行调优。学习速率太大会导致不收敛,速率太小收敛速度慢。因此SGD通常训...

2018-08-29 19:00:35 1310

原创 期望风险,经验风险和结构化风险,以及交叉验证

损失函数0-1损失函数平方损失函数绝对损失函数对数损失函数损失函数的期望(风险函数或期望损失)学习的目标是选择期望风险最小的模型。由于联合分布  是未知的,  不能直接计算。实际上,如果知道联合分布  ,可以直接从联合分布直接求出条件概率分布 ,也就不需要学习了。正因为不知道联合概率分布,所以才需要学习。一方面根据期望风险最小学习模型要用到联合分布,另一方面联...

2018-08-29 18:49:57 1291

原创 L1和L2正则化原理及分析

正则化是指在优化目标函数或代价函数是,在目标函数后面加上一个正则项。正则项通常有L1正则项和L2正则项。1. L1正则 L1正则是基于L1范数和项,即参数的绝对值和参数的积项,即: C=C0+λn∑w|w|C=C0+λn∑w|w|其中C0代表原始的代价函数,n是样本的个数,λ就是正则项系数,权衡正则项与C0项的比重。后面那一项即为L1正则项。 在计算梯度时,w的梯度变为: ...

2018-08-25 01:13:28 10227

原创 bootstrap, boosting, bagging, stacking原理

Bootstraping: 名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。其核心思想和基本步骤如下:  (1) 采用重抽样技术从原始样本中抽取一定数量(自己给定)的样本,此过程允许重复抽样。   (2) 根据抽出的样本计算给定的统...

2018-08-25 01:08:42 1994

原创 机器学习面试问题汇总(不断更新)

 算法leetcode 最优解,多版本解及简单思路分析各种基本算法c++实现(排序算法,树的遍历,链表操作)判断链表是否有环及相关扩展(待写)判断图是否有环二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)Best Time to Buy and Sell Stock I / II / III / IV / with cooldown / with Trans...

2018-08-25 00:39:20 841

原创 图的遍历中的树边,前向边,后向边,横叉边

树边,前向边,后向边,横叉边,应该说,不是一个图本身有的概念,应该是图进行DFS时才有的概念。图进行DFS会得到一棵DFS树(森林),在这个树上 才有了这些概念。对图进行DFS,可以从任意的顶点开始,遍历的方式也是多样的在图的遍历中,往往设置了一个标记数组vis的bool值来记录顶点是否被访问过。但有些时候需要改变vis值的意义。令vis具有3种值并表示3种不同含义vis = 0,表示该顶...

2018-08-16 01:37:17 3147

原创 判断图是否有环

总结一下判断图是否有环的所有方法,先只给出描述,后面有时间之后给出代码实现。一、无向图方法1、 我们知道对于环1-2-3-4-1,每个节点的度都是2,基于此我们有如下算法(这是类似于有向图的拓扑排序):求出图中所有顶点的度, 删除图中所有度<=1的顶点以及与该顶点相关的边,把与这些边相关的顶点的度减一 如果还有度<=1的顶点重复步骤2 最后如果还存在未被删除的顶点...

2018-08-16 01:03:33 12587

原创 git因commit的记录太大导致push失败解决方法

 发现好像这个方法不好使。。。。。。。~~!还是会失败  如果有人或者自己失误把不该同步的大文件如数据或日志或其他中间文件给commit了并且push了,然后你删掉了,但是其实他仍然在你的git记录中,你的整个项目仍然会非常大,主要是当时的那个删除你没有用git rm,但总之你想清理就很麻烦了现在,或者说,可能现在由于你commit的东西太大,导致了根本没法push上去,会出现类似...

2018-08-06 20:03:28 12880 3

原创 linux新建用户并增加sudo权限

1.新建用户一般两种方法一种是adduser,这个会自动创建主目录系统shell版本,提示设置密码,创建同名group。使用:adduser username,可以用--home指定主目录,当然还有其他选项。一种是useradd,如果不指定就是根目录作为主目录,啥都没有。所以一定要用-d指定主目录,用-m表示主目录不存在就创建,但是存在是不创建并且不能作为新创建用户主目录的,所以一般-d加了主目录...

2018-06-19 19:45:29 22164

原创 windows下使用Jupyter notebook远程访问服务器的两种方法

两种方法本质一样,第一种没有配置密码,第二种配置了密码,第二种也可以用端口映射在本地直接输入localhost地址即可,第一种也可以不用映射直接写服务器地址。 一1.登陆服务器,安装jupyter notebook, 用conda的话直接conda install jupyter2.服务器上开一个没有浏览器指定端口号的notebook. jupyter notebook --no-...

2018-06-13 15:35:11 12671 6

原创 网络表示学习(NRL: network representation learning)和网络嵌入研究领域(NE: network embedding)必读论文清单

近日,Cunchao Tu 和 Yuan Yao 两位研究者在 GitHub 上总结发表了一份关于网络表示学习(NRL: network representation learning)和网络嵌入研究领域(NE: network embedding)必读论文清单。这份清单共包含 5 篇综述论文和 64 篇会议期刊论文。同时两位研究者在 GitHub 上发布了 NE / NERL 的开源工具包 Op...

2018-05-27 23:10:37 13152 1

原创 10分钟了解pandas-速查手册

《10 Minutes to pandas》的一个简单的翻译,原文在这里。习惯上,我们会按下面格式引入所需要的包:一、            创建对象可以通过 Data Structure Intro Setion 来查看有关该节内容的详细信息。1、可以通过传递一个list对象来创建一个Series,pandas会默认创建整型索引:2、通过传递一个numpy array,时间索引以及列标签来创建一...

2018-05-23 15:10:51 1794

转载 深度学习中的Normalization, BN LN WN等

收藏两篇相关文章一、详解深度学习中的Normalization,不只是BN转自  https://zhuanlan.zhihu.com/p/33173246深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Batch Norm 大法自 2015 年由Google 提出之后,就成为深度学习必备之神器。自 BN 之后, Layer Norm ...

2018-05-15 14:56:14 5589

原创 Batch Normalization的概述和应用包括在CNN和RNN中的应用

Batch Normalization 学习笔记原文地址:http://blog.csdn.net/hjimce/article/details/50866313作者:hjimce一、背景意义本篇博文主要讲解2015年深度学习领域,非常值得学习的一篇文献:《Batch Normalization: Accelerating Deep Network Training by  Reducing In...

2018-05-09 23:28:17 3156

转载 RNN的调参经验们

https://www.zhihu.com/question/41631631https://blog.csdn.net/chenzhi1992/article/details/52905569https://www.cnblogs.com/bamtercelboo/p/7469005.htmlhttp://www.cnblogs.com/DjangoBlog/p/7281438.html

2018-04-28 17:10:41 3025

转载 RNN梯度消失和爆炸及LSTM解决原理的知乎回答

https://zhuanlan.zhihu.com/p/28687529

2018-04-28 16:34:35 9558

原创 欧拉图和哈密顿图

欧拉图及欧拉路径欧拉图 如果图G上有一条经过所有顶点、所有边的闭路径(边不重复,顶点可以重复)充分必要条件 无向图:G连通,所有顶点的度都是偶数有向图:G弱连通,每个顶点出度与入度相等欧拉路径 如果图G上有一条经过所有顶点、所有边的路径(边不重复,顶点可以重复)充分必要条件 无向图:G连通,恰有两个顶点的度是奇数有向图:G连通,恰有两个顶点的出度与入度不相等,其中一个出度比入度多

2018-04-19 14:34:33 3797

原创 NP问题

迄今为止,我们所研究的所有算法几乎都是多项式时间的算法:对于规模为n的输入,在最坏情况下的运行时间是O(n^k),其中k为某一确定的常数。如果一个判定问题的复杂度是该问题的一个实例的规模n的多项式函数,则这种可以在多项式时间内解决的判定性问题属于P类问题。P类问题就是所有复杂度为多项式时间的问题集合。通俗地称所有复杂度为多项式时间的问题为易解问题的问题类,否则为难解问题。关于多项式时间。什么是多项...

2018-04-19 14:03:49 12343 1

原创 一台电脑配置多个ssh key(不同的多个邮箱ssh key,多git账号,智能选择对应的ssh key)

同一个人在不同电脑上用不同的账户同步同一个git库代码完全没有问题多个人同一台电脑上有多个git库用不同git账号同一个ssh key同步一个或多个git库代码也没有问题如果多个人用同一台电脑,且需要不同的认证或同一个电脑连接两个不同的github账号(多个ssh key对应不同的git库且能智能选择)这里的git库可能是同一个服务的库(多个github库),可能是多个完全不同的库(github有...

2018-04-17 22:10:46 8680 3

原创 git切换ssh和http协议

切换协议:1. 查看当前remotegit remote -v2. 切换到http:git remote set-url https://github.com/username/repository.git3. 切换到ssh:git remote set-url [email protected]:username/repository.git也可以直接改当前git目录里面有个配置文件。...

2018-04-17 20:18:45 22623 6

原创 机器学习中过拟合原因和防止过拟合的方法

过拟合原因:由于训练数据包含抽样误差,训练时,复杂的模型将抽样误差也考虑在内,将抽样误差也进行了很好的拟合,如1、比如数据不够,2、训练太多拟合了数据中的噪声或没有代表性的特征也就是模型太复杂 所以防止过拟合的方法:1.获取更多的数据    1).从数据源获得更多的真实数据    2).数据增强    3).根据当前数据集生成数据2.使用合适的模型   ...

2018-04-03 14:16:31 2469

原创 linux下用pdb调试python

linux下调试python,对于轻量级的工程,直接print是最简单的方法,但是当变量变多,工程变大的时候,print就会力不从心,linux下也没有界面IDE,所以就用pdb来调试即是最佳选择,也很简单。也可以用更友好的ipdb,不过ipdb不是python的标准库,是需要安装的,用起来是完全一样的,就类似于python和ipython的区别。需要import pdb在需要插入断点的地方用pd...

2018-03-29 13:03:43 1912

空空如也

空空如也

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

TA关注的人

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