自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 感到幸福的几个条件

1.  为首的是家人的身心健康,家人健康是幸福的前提2.  有一个爱自己的妻子和懂事的孩子3.  自己能够挣钱养活自己、家人并且孝顺父母4.  在自己工作的地方有一个能够住得下的房子5.  还有其他的条件,但是我觉得这几个是比较关键的,如果满足这几个条件基本就可以称为我认为的幸福之人,或许由于我的知识浅薄说的或许错了,还请各位指正,欢迎留言哦!!!...

2018-06-06 10:51:53 1519 11

原创 浅谈科研经验

科研经验之浅谈      本人是科研界的菜鸟,刚入科研界不久,下面是对自己科研一段时间的一个总结与归纳,也是一些经验和感悟,如果有错误或者夸大之处还请各位批评指正,谢谢!预热篇兴趣培养(阅读顺序)     开始阅读不要从最基础的书籍开始,因为最基础的书籍很多是理论说明,非常多的数学公式的推导以及数学方面的描述和证明(也就是非常多的高深的理论知识点),如果一开始就接触会非常的枯燥,容易失去兴趣。建议...

2018-05-28 08:59:08 4950 5

原创 codeblocks无法调试

codeblocks如果无法调试:有些下载的codeblocks没有自带MinGW,没法编译,当你自己下载一个MinGW,你安装好了,可能不会带有gdb.exe文件。1.点击Settings,选择Debugger选项2.点击Default,选择Executable path,选择一个gdb.exe的文件,这个文件就在安装MinGW的文件夹的bin里面3.如果没有这个gdb.exe文

2017-12-27 17:05:40 20270 11

原创 机器学习中训练集、验证集(开发集)、测试集如何划分

1.传统的机器学习领域中,由于收集到的数据量往往不多,比较小,所以需要将收集到的数据分为三类:训练集、验证集、测试集。也有人分为两类,就是不需要测试集。比例根据经验不同而不同,这里给出一个例子,如果是三类,可能是训练集:验证集:测试集=6:2:2;如果是两类,可能是训练集:验证集=7:3。因为数据量不多,所以验证集和测试集需要占的数据比例比较多。2.在大数据时代的机器学习或者深度学习领域中

2017-08-31 14:17:58 17913

原创 参数(parameters)和超参数(hyperparameters)

在机器学习或者深度学习领域,参数和超参数是一个常见的问题,个人根据经验给出了一个很狭隘的区分这两种参数的方法。参数:就是模型可以根据数据可以自动学习出的变量,应该就是参数。比如,深度学习的权重,偏差等超参数:就是用来确定模型的一些参数,超参数不同,模型是不同的(这个模型不同的意思就是有微小的区别,比如假设都是CNN模型,如果层数不同,模型不一样,虽然都是CNN模型哈。),超参数一般就是根据

2017-08-20 14:36:58 58476 2

原创 损失函数(Loss function)和代价函数(成本函数)(Cost function)的区别与联系

1.损失函数(Loss function)是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的哦,用L表示2.代价函数(Cost function)是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。注意:定义的方式不同哦,两者是相辅相成

2017-08-18 21:26:37 26168

转载 Batch Normalization

转自:http://blog.csdn.net/shuzfan/article/details/507238771.BN的动力作者认为:网络训练过程中参数不断改变导致后续每一层输入的分布也发生变化,而学习的过程又要使每一层适应输入的分布,因此我们不得不降低学习率、小心地初始化。作者将分布发生变化称之为 internal covariate shift。大家应该都知道,我们一

2017-08-18 10:27:14 1107 2

原创 tf.matrix_diag和tf.matrix_inverse的用法(tensorflow如何生成对角矩阵和求逆矩阵)

1.tf.matrix_diag(dia):输入参数是dia,如果输入时一个向量,那就生成二维的对角矩阵,以此类推2.tf.matrix_inverse(A):输入如果是一个矩阵,就是得到逆矩阵,依次类推,只是输入的A中的元素需要是浮点数,比如tf.float32等格式,如果是整形,就会出错哈。例如:矩阵(二维张量)import tensorflow as tf;A = [1,

2017-08-15 15:35:58 12176

原创 tf.linspace和np.linspace的对比分析

解释:tf.linspace(start, end, num):这个函数主要的参数就这三个,start代表起始的值,end表示结束的值,num表示在这个区间里生成数字的个数,生成的数组是等间隔生成的。start和end这两个数字必须是浮点数,不能是整数,如果是整数会出错的,请注意!np.linspace(start, end, num):主要的参数也是这三个,我们平时用的时候绝大多数时候就

2017-07-25 09:26:35 8083 2

原创 机器学习中常见的几种归一化方法以及原因

在机器学习中,数据归一化是非常重要,它可能会导致模型坏掉或者训练出一个很奇怪的模型,为了让机器学习的模型更加适合实际情况,需要对数据进行归一化处理。1.机器学习中常用的归一化方法:2. 不同归一化方法分析:线性变换和极差法(线性归一化)将原始数据线性化的方法转换到[0 1]的范围,该方法实现对原始数据的等比例缩放。通过利用变量取值的最大值和最小值(或者最大值)将原始数据转换

2017-07-22 20:19:39 40083 5

原创 F-散度(F-divergence)

在概率统计中,f散度是一个函数,这个函数用来衡量两个概率密度p和q的区别,也就是衡量这两个分布多么的相同。1.f散度的定义p和q是同一个空间中的两个概率密度函数,它们之间的f散度可以用如下方程表示:f函数满足两个条件:f函数是一个凸函数,并且f(1)=0。2.f散度的特例如果f(x)=xlogx,那就是KL散度。如果是f(x)=-logx,那就表示reverse KL散

2017-07-16 18:25:31 14860

原创 机器学习中几种损失函数的分析

在机器学习中,损失函数是非常重要的,用于衡量目标结果的好坏,用于训练模型,损失函数就是目标函数了。常见的损失函数有以下几种:1.‘0/1损失函数’f(z)=1, 如果z是小于零的,其他就等于0.性质:不是凸函数,不是连续的函数,数学性质不是非常好,一般用于感知机算法,感知机算法的损失函数就是这个。为了克服这个函数不连续,不是凸函数的问题,出现了其他几种可以替代的函数2.hinge损

2017-07-14 09:04:14 5581 2

原创 KL散度(Kullback-Leibler Divergence)

今天开始来讲相对熵,我们知道信息熵反应了一个系统的有序化程度,一个系统越是有序,那么它的信息熵就越低,反之就越高。下面是熵的定义 如果一个随机变量的可能取值为,对应的概率为,则随机变量的熵定义为              有了信息熵的定义,接下来开始学习相对熵。熵是随机变量不确定性的度量,不确定性越大,熵就越大,如果是常量,就是零。不

2017-07-10 15:04:48 9999 1

原创 三种梯度下降的方式:批量梯度下降、小批量梯度下降、随机梯度下降

在机器学习领域中,梯度下降的方式有三种,分别是:批量梯度下降法BGD、随机梯度下降法SGD、小批量梯度下降法MBGD,并且都有不同的优缺点。下面我们以线性回归算法为例子来对三种梯度下降法进行比较。1. 线性回归假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的

2017-07-10 11:11:41 37629 10

原创 BP神经网络

反向传播算法又称BP算法(Back Propagation)      使用sigmoid函数(这是一个激励函数,对于不同的情况可以使用不同的激励函数,为了讲解方便,这里就采用这个激励函数来说明问题,其他的激励函数可以参考:http://blog.csdn.net/uestc_c2_403/article/details/73431428)的感知器来搭建一个多层神经网络,为简单起见,此处我

2017-07-10 09:25:50 14081 3

转载 EM算法

(EM算法)The EM Algorithm      EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法。在之后的MT中的词对齐中也用到了。在Mitchell的书中也提到EM可以用于贝叶斯网络中。下面主要介绍EM的整个推导过程。1. Jensen不等式      回顾优化理论中的一些概念。设f是定义域为实

2017-07-07 20:23:14 1035

原创 KNN算法理解

最近在看《机器学习实战》这本书,因为自己本身很想深入的了解机器学习算法,加之想学python,就在朋友的推荐之下选择了这本书进行学习。 一 . K-近邻算法(KNN)概述     最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个

2017-07-07 14:32:41 3959

原创 选择排序和快速排序算法原理和Python实现

选择排序:这种排序算法思路比较简单,每一次都选出整个列表中的最小值或者最大值,下面以最大值为例子。如果给你一个列表[1,5,6,2]。第一步:通过比较选出最大值6,需要检查4个元素第二步:通过比较选出剩余元素列表的zui'd

2017-07-06 10:23:37 1537

原创 tensorflow中的TFRecord格式文件的写入和读取

在tensorflow中,TFRecord格式的文件是可以将样本和标签放在一起,是在模型之前的一个预处理步骤,这种方式可以很大的提高效率和节约运行的内存,这种格式对数据是不进行压缩的。1.写入import tensorflow as tf; image_raw_data = tf.gfile.FastGFile('/home/penglu/Desktop/11.jpg').read(

2017-07-05 15:11:15 5764

原创 tensorflow读取图片的方法

下面讲解tensorflow如何读取jpg格式的图片,png格式的图片是一样的。有两种情况:第一种就是把图片看做是一个图片直接读进来,获取图片的原始数据,再进行解码,主要用到的函数就是tf.gfile.FastGFile,tf.image.decode_jpeg例如:

2017-07-05 14:38:18 17633 6

原创 tensorflow中tf.maximum,tf.minimum,tf.argmax,tf.argmain的对比

tf.maximum:用法tf.maximum(a,b),返回的是a,b之间的最大值,tf.miniimum:用法tf.miiinimum(a,b),返回的是a,b之间的最小值,tf.argmax:用法tf.argmax(a,dimension),返回的是a中的某个维度最大值的索引,tf.argmain:用法tf.argmin(a,dimension),返回的是a中的某个维度最小值的索

2017-07-05 09:10:04 22129

原创 tensorflow中get_shape函数的应用

get_shape函数主要用于获取一个张量的维度,并且输出张量 每个维度上面的值,如果是二维矩阵,也就是输出行和列的值,使用非常方便。例如:import tensorflow as tf; with tf.Session() as sess: A = tf.random_normal(shape=[3,4]) print A.get_shape() print A.get_sha

2017-07-03 08:59:30 6476

原创 tensorflow让彩色图变成灰度图

tensorflow里面把彩图灰度转换的函数是tf.image.rgb_to_grayscale,这个函数关键的参数就一个,那就是输入图像。例如:import matplotlib.pyplot as plt; import tensorflow as tf; import numpy as np;with tf.Session() as sess: image_raw_da

2017-07-02 19:53:00 11626 3

原创 tensorboard在linux下的启动问题

tensorboard在linux会遇到这个情况。如果你的输入是tensorboard --logdir='my_graph'会出现以下错误,tensorboard: command not found。意思就是说没有发现这个东西。所以在启动的是时候需要换一种方式:python /home/PL/.local/lib/python2.7/site-packages/tensorflow/t

2017-06-19 10:22:20 12529

原创 深度学习的激励函数

1.sigmoid函数:导数为:。这个数值不会超过0.25.。通过sigmoid函数计算的函数值在0~1之间,如果神经网络的层数很多,如果每一层的激励函数采用sigmoid函数,就会产生梯度弥散的问题。因为利用BP函数更新参数的时候,会乘以它的导数,所以会一直减小。并且在比较大或者比较小的时候,会产生饱和效应,导致神经元类似与死亡。2.tanh函数导数:。tanh函

2017-06-18 15:43:08 8834 3

原创 tensorflow中tf.nn.conv2d_transpose的应用

tf.nn.conv2d_transpose(x, w, output_shape, strides, padding='SAME'):推荐使用x的数据格式为默认格式[batch, height, width, in_channels]。w是滤波器,输入分格式为[height, width, output_channels, in_channels]。output_shape就是输出数据的格式[b

2017-06-17 21:55:38 4601 2

转载 dropout的解释

转载于以下链接:http://blog.csdn.net/stdcoutzyx/article/details/49022443理解dropout开篇明义,dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。dropou

2017-06-17 15:57:49 1351

转载 RNN和LSTM网络

转载:http://www.jianshu.com/p/9dc9f41f0b29Recurrent Neural Networks人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西都全部丢弃,然后用空白的大脑进行思考。我们的思想拥有持久性。传统的神经网络并不能做到这点,

2017-06-17 10:37:12 1724

原创 tf.nn.rnn_cell.DrououtWrapper函数的用法

tf.nn.rnn_cell.DrououtWrapper(cell, input_keep_prob=1.0, output_keep_prob=1.0)主要的参数就是三个,第一个就是输入的循环神经网络的cell,可以设定为BasicLSTMCell等等。第二个参数就是输入数据使用dropout,后面的概率,如果是一,就不会执行dropout。第三个参数是一样的意思。一般这里的dropout是在

2017-06-17 10:06:32 8398 2

原创 tf.nn.rnn_cell.MultiRNNCell函数用法

tf.nn.rnn_cell.MultiRNNCell([list RNNcell], state_is_tuple=True).这个函数里面主要这两个参数,第一个参数就是输入的RNN实例形成的列表,第二个参数就是让状态是一个元祖,官方推荐就是用True。例如:import tensorflow as tf;import numpy as np;X = tf.random_norma

2017-06-17 09:55:32 23252 13

原创 tf.nn.rnn_cell.GRUCell函数的使用

tf.nn.rnn_cell.GRUCell(num_units, input_size=None, activation=).num_units就是隐层神经元的个数,默认的activation就是tanh,你也可以自己定义,但是一般都不会去修改。这个函数的主要的参数就是num_units。例如:import tensorflow as tf;import numpy as np;X

2017-06-17 09:04:46 14574 1

原创 tf.nn.rnn_cell.BasicRNNCell函数的用法

tf.nn.rnn_cell.BasicRNNCell(n_hidden)这个参数就是隐藏神经元的个数。例如:import tensorflow as tfbatch_size = 4 input = tf.random_normal(shape=[3, batch_size, 6], dtype=tf.float32)cell = tf.nn.rnn_cell.BasicRNNC

2017-06-16 23:07:38 4555

原创 tf.nn.rnn_cell.BasicLSTMCell函数用法

tf.nn.rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0, state_is_tuple=True): n_hidden表示神经元的个数,forget_bias就是LSTM们的忘记系数,如果等于1,就是不会忘记任何信息。如果等于0,就都忘记。state_is_tuple默认就是True,官方建议用True,就是表示返回的状态用一个元祖表示。这个里

2017-06-16 22:27:12 27007 7

原创 tf.transpose函数的用法

tf.transpose(input, [dimension_1, dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同维度用的,如果输入张量是二维,就相当是转置。dimension_n是整数,如果张量是三维,就是用0,1,2来表示。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。例如:import t

2017-06-16 19:13:29 50058 8

原创 tf.split函数的用法

tf.split(dimension, num_split, input):dimension的意思就是输入张量的哪一个维度,如果是0就表示对第0维度进行切割。num_split就是切割的数量,如果是2就表示输入张量被切成2份,每一份是一个列表。例如:import tensorflow as tf;import numpy as np;A = [[1,2,3],[4,5,6]]x

2017-06-16 19:01:59 43772 7

转载 深度学习的Batch Normalization

转载:http://blog.csdn.net/shuzfan/article/details/507238771-Motivation作者认为:网络训练过程中参数不断改变导致后续每一层输入的分布也发生变化,而学习的过程又要使每一层适应输入的分布,因此我们不得不降低学习率、小心地初始化。作者将分布发生变化称之为 internal covariate shift。大家应该都知

2017-06-15 10:16:16 835

转载 tensorflow中的基本函数和意思

2、tf函数TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU。一般你不需要显式指定使用 CPU 还是 GPU, TensorFlow 能自动检测。如果检测到 GPU, TensorFlow 会尽可能地利用找到的第一个 GPU 来执行操作.并行计算能让代价大的算法计算加速执行,TensorFlow也在实现上对复杂操作进行了有效的改进。大

2017-06-14 14:39:56 2998

原创 tf.nn.in_top_k的用法

tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等,返回一个bool类型的张量,tf.nn.in_top_k(prediction, target, K):prediction就是表示你预测的结果,大小就是预测样本的数量乘以输出的维度,类型是tf.float32等。target就是实际样本类别的标签,大小就是样本数量的个数。K表示每个样本的预测结果的前K个最大的数里面是否含有

2017-06-13 16:31:30 20821 3

原创 机器学习中的特征变换(核函数)

在机器学习中,我们提供的数据不一定都是完全线性可分的,很多情况下会存在线性不可分,可是我们需要处理成线性可分,所以我们可以采用特征变换或者核函数的形式,把数据投影到别的空间。数据在A空间不可分,投影到B空间就可能会线性可分,B空间的维度一般会高于A空间的维度。1.一般情况下,我们考虑将数据投影到别的空间,比如采用多项式。假设x的维度d,如果投影到别的空间,维度会急剧增大,造成维度灾难。维度比较

2017-06-08 09:43:21 6214

原创 如何让机器学习的模型表现的更好

1. 对训练数据不做过多解释,模型简单比较好,模型简单对数据的解释就比较简单,解释的会更好。用简单的模型解释资料可以解释的话,可以说明数据的规律,如果模型复杂,就不知道数据的规律。所以做机器学习的时候先从简单的模型开始做起。模型简单:参数比较少或者模型假设比较少,这两者其实是有关系的。2. 抽样偏差(sampling bias)。也就是你的训练数据来自的分布与实际的分布不相符合,就

2017-06-07 15:18:41 916

空空如也

空空如也

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

TA关注的人

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