机器学习
文章平均质量分 56
legend_hua
这个作者很懒,什么都没留下…
展开
-
python中csv文件的读写
*说明:在Linux下实现,Windows下可能会有所不同(文件内容会有区别,比如会出现莫名其妙的空行) 一、写文件with open("test.csv","w") as c: writer=csv.writer(c) writer.writerow(['name','address','city','state'])将字符串挨个输入文件中,结果如图 也可以将一个list写到文原创 2017-10-13 16:56:04 · 1182 阅读 · 2 评论 -
DNN的反向传播过程的推导
DNN网络(全连接的网络)在进行DNN反向传播算法前,我们需要选择一个损失函数,来度量训练样本计算出的输出和真实的训练样本输出之间的损失。输出计算公式:随机选择一系列W,b,用前向传播算法计算出来的。即通过一系列的计算:。计算得出最后的输出层L对应的便是前向输出的结果。损失函数的选择有很多,比如均方差、交叉熵。我们以交叉熵为例,介绍DNN的反向传播算法,计算公式如下:,其中y为真实的标...原创 2018-08-11 12:27:17 · 4944 阅读 · 1 评论 -
CNN的反向传播过程的推导(池化层、卷积层)
上一篇文章介绍了DNN的反向传播,对DNN不清楚的可以去看看,CNN在DNN的基础上进行解释。一、回顾DNN的反向传播上一篇DNN反向传播过程得出结论:1、计算每一层的W、b的梯度,需要计算出2、然后每一层的W的梯度和b的梯度 ...原创 2018-08-11 22:51:09 · 15721 阅读 · 4 评论 -
卷积神经网络的旋转不变性理解
卷积神经网络本身的设计对旋转不变性没有进行专门的考虑,只不过max-pooling可以稍微补偿一下这个功能,只是角度变化太大,可能会作用不大,但因为max-pooling并不是为此而设计的,所以总体上说CNN提取旋转不变的特征能力是比较弱的。论文Group Equivariant Convolutional Networks和spherical CNNs对网络结构的旋转不变性设计进行了理论分析...原创 2018-08-18 21:05:03 · 14380 阅读 · 0 评论 -
ResNet反向传播公式推导
ResNet残差网络结构在深层网络中训练效率会提高,为什么呢,我们下面用公式解释一下。我们先回顾全连接网络和卷积网络反向传播的过程,细节推导见我的博客一、DNN结构反向传播1、l层全连接层的反向传播的W的梯度公式 2、l层全连接层的反向传播的b的梯度公式 3、层与层之间的梯度传播依靠到的过渡 ...原创 2018-08-16 15:46:53 · 12133 阅读 · 0 评论 -
torch.nn与torch.nn.functional之间的区别和联系
原文地址:https://blog.csdn.net/GZHermit/article/details/78730856迷惑的地方是在于forward的函数的定义方法。为什么要把网络中的一部分层在__init__()函数里定义出来,而另一部分层则是在__forward()__函数里定义?并且一个用的是nn,另一个用的是nn.functional。同一种层的API定义有两种,这样看似冗余的设计是...转载 2018-12-10 15:01:45 · 6737 阅读 · 2 评论 -
nvidia-smi 命令解读
一、nvidia-smi命令nvidia-smi是用来查看GPU使用情况的。我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下。这是服务器上特斯拉K80的信息。 上面的表格中: 第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇...转载 2018-12-18 09:40:21 · 4072 阅读 · 0 评论 -
浅谈深度学习的瓶颈
转自网络 人工智能现在已经非常火了,各种新闻机构都在不断地放出猛料,有的说现在IBM的Waston人工智能已经能够彻底取代劳动者了;还有的说现在的算法在医疗领域已经能够打败医生了。每一天,都有新的人工智能初创公司出现,每一家都声称自己在利用机器学习,彻底颠覆你个人的生活,这些都是商业性质的活动。 还有一些大家平日里司空见惯的产品,比如榨汁机,无线路由器,一夜...转载 2018-06-29 15:17:52 · 3049 阅读 · 0 评论 -
mini-batch梯度下降
一、背景 传统的梯度下降,每次梯度下降都是对所有的训练数据进行计算平均梯度,这种梯度下降法叫做full-batch梯度下降法。考虑一种情况,当训练数据量在千万级别时,一次迭代需要等待多长时间,会极大的降低训练速度。每次训练的使用同一份数据,所以loss的损失函数会是一直下降的,收敛到的是全局最优解。二、mini-batch梯度下降如果选择介于1和最大训练数据量之间的一个bath...原创 2018-06-09 20:20:08 · 7384 阅读 · 0 评论 -
图像分割中dice指标的计算及程序编写
dice是医学图像中的常见指标,VgtVgt代表的是ground truth的分割结果,VpredVpred代表的是预测的分割结果。直观上理解,如下图,代表的是两个体相交的面积占总面积的比值,完美分割该值为1.。计算公式为DICE=2∗(Vseg and Vgt)Vseg+Vgt按图中区域表示计算为tensorflow中编写计算公式如下:def dice_coef_theoretical(y_pr...原创 2018-06-07 16:17:27 · 28088 阅读 · 17 评论 -
TensorFlow命名空间和TensorBoard图节点
TensorFlow命名空间和TensorBoard图节点 一,命名空间函数 tf.variable_scope tf.name_scope 先以下面的代码说明两者的区别 # 命名空间管理函数'''说明tf.variable_scope和tf.name_scope的区别'''def manage_namespace(): with tf.variable_scope("foo原创 2017-12-22 17:48:58 · 3782 阅读 · 0 评论 -
Dynamic Graph CNN for Learning on Point Clouds 解析
该文章是最新出的一篇针对Point Clouds数据分类、分割的网路,它是受点云数据处理的鼻祖论文PointNet、PointNet++的启发所进行的修改,PointNet只是独立处理每个点,来实现permutation invariance,但忽视了点之间的局部特征。所以这篇文章主要提出了一个EdgeConv层来实现获取局部特征,解决PointNet所没有的处理局部特征的问题。一、网络结构原创 2018-01-26 22:11:16 · 13640 阅读 · 5 评论 -
减少过拟合(高方差)的方法
转载自点击打开链接1、过拟合概述在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却工作不好。常用的解决过拟合的方法有:增加数据量、L1L2正则化、...转载 2018-03-29 17:40:30 · 5872 阅读 · 1 评论 -
信息熵的理解
信息熵即确定一件不确定的事情的信息量的大小。问题:比如世界杯比赛,总共32只球队,如果让你猜哪只球队夺冠需要猜多少次?解答:假设每支队伍夺冠概率相同,则可以根据二分查找,需要5次,其用信息熵计算便是下面的公式:-1/32 *(log(1/32))=5;假设概率不同,则必须按照下面的公式计算,数学系的应该可以证明一下,下面的结果总是小于5的。结论:夺冠概率一样,说明夺冠这件事不确定性很大,相应的信息...原创 2018-03-30 15:49:53 · 631 阅读 · 1 评论 -
TensorFlow中损失函数介绍
原作者写的很好,转载过来记录一下,原网址:https://blog.csdn.net/marsjhao/article/details/72630147 一、分类问题损失函数——交叉熵(crossentropy) 交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数。给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离:我们可以通过Softmax...转载 2018-04-14 19:50:33 · 2220 阅读 · 0 评论 -
梯度消失和梯度爆炸的解答
层数比较多的神经网络模型在训练时也是会出现一些问题的,其中就包括梯度消失问题(gradient vanishing problem)和梯度爆炸问题(gradient exploding problem)。梯度消失问题和梯度爆炸问题一般随着网络层数的增加会变得越来越明显。例如,对于下图所示的含有3个隐藏层的神经网络,梯度消失问题发生时,接近于输出层的hidden layer 3等的权值更新相对正...转载 2018-04-09 17:23:47 · 2847 阅读 · 0 评论 -
逻辑回归二分类理解
一、问题描述假设我们要分类一个问题,且只是是与不是的问题,比如是否是一只猫,只能是(1)或(0)。而且这个目标拥有n个特征,我们得到的是一个关于输入x的线性函数,我们可以得到:z= w1*x1+w2*x2+....+wn*xn+b上述的公式对于描述我们要得到0和1并不是一个很好的描述,因为结果可能有很多种结果,非常大的数或很小的负数。所以将上述的结果作为sigmoid函数自变量,公式及图形如下,当...原创 2018-03-27 17:26:14 · 14593 阅读 · 0 评论 -
ResNets和Inception的理解
翻译自吴恩达的deeplearning.ai课程,及时记录下来。原网址:点击打开链接 1、残差网络(Residual Networks (ResNets))非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题。这节课我们学习跳跃连接(Skip connection),它可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。我们可以利用跳跃连接构建...转载 2018-04-10 09:41:09 · 15796 阅读 · 5 评论 -
ubuntu安装theano(排除各种坑后的实锤)
按照miniconda方式的安装是一个明智的选择,如果按照pip安装,后面的一大堆包安装,你懂得,会有一堆坑等着你。1、安装miniconda官网下载文件,并且执行bash Miniconda3-latest-Linux-x86_64.sh然后回车按照默认的要求安装就好,安装完重启电脑。2、配置清华镜像(下面选择之一就好)conda config --add channels https://m...原创 2018-03-28 19:58:52 · 2944 阅读 · 0 评论 -
矩阵相乘效率比较
牛客网上的一道题深度学习是当前很热门的机器学习算法,在深度学习中,涉及到大量的矩阵相乘,现在需要计算三个稠密矩阵A,B,C的乘积ABC,假设三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是()A. ABC B. (AC)B C. A(BC) D. 所有效率都相同解答:...原创 2018-04-12 10:07:39 · 8745 阅读 · 2 评论 -
DenseNet网络详解(转载)
文章写得非常棒,转载慢慢学习。论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:https://github.com/liuzhuang13/DenseNet MXNet版本代码(有ImageNet预训练模型,如果觉得有帮助,记得给个星): https:...转载 2018-05-08 16:33:37 · 4571 阅读 · 0 评论 -
tensorflow+cuda+cudnn配置
一、tensorflow通过虚拟环境安装tensorflow,官网二、cuda官网下载 CUDA Toolkit Archive,选择 CUDA Toolkit 8.0 GA1 (Sept 2016),下载 runfile 文件 cuda_8.0.44_linux.run。runfile 安装sudo chmod a+x cuda_8.0.44_linux.runsudo ...原创 2019-01-07 11:21:01 · 579 阅读 · 0 评论