自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 强化学习笔记(2):Sarsa 与 Sarsa(lambda)

上篇文章中介绍了Q-Learning算法, 而Sarsa 和 Q-Learning是非常类似的。在决策环节,二者是一样的, 都是基于Q 表,挑选值较大的动作值施加在环境中来换取回报. 但是不同的地方在于 Sarsa 的更新方式是不一样的。 ...

2018-05-31 13:24:30 13320 5

原创 强化学习笔记(1):Q-Learning

考虑下面这个例子:假如我们想让一只老鼠学会走迷宫,往往会在迷宫的几个关键地点放上奶酪,老鼠每次走到关键点就会获得奖励,久而久之,老鼠就能学会快速找到迷宫出口,这就是强化学习的一个例子。 强化学习的关键要素包括:环境(environment),回报(reward),动作(action ),状态(state) 。在上述例子中,environment就是老鼠所处的迷宫,迷宫中的奶酪代表reward...

2018-05-30 19:01:24 4203

原创 遗传算法 (Genetic Algorithm)

1. 求最值问题常用方法爬山法:从搜索空间中随机产生邻近的点,从中选择对应解最优的个体,替换原来的个体,不断 重复上述过程。因为只对“邻近”的点作比较,所以目光比较“短浅”,常常只能收敛到离开初始位置比较近的局部最优解上面。对于存在很多局部最优点的问题,通过一个简单的迭代找出全局最优解的机会非常渺茫。(在爬山法中不能保证该山顶是一个非常 高的山峰。因为一路上它只顾上坡,没有下坡)模拟退火:...

2018-04-24 16:39:02 6745

原创 pandas基础教程

首先引入相关模块:import numpy as npimport pandas as pd1. DataFrame1.1 创建Seriesindex不指定则从0开始编号s = pd.Series([1, 2, 3, np.nan], index=['A', 'B', 'C', 'D'])print s 输出 A 1.0 B 2...

2018-04-15 23:33:47 4037

原创 Numpy基础教程

引入numpy 模块:import numpy as np1. 创建array1.1 列表转换为数组,查看属性:array = np.array([[1,2,3],[4,5,6]], dtype = np.float)print(array)print(array.dtype)print('number of dim:',array.ndim) print...

2018-04-02 23:57:42 1506

原创 【35-40】LeetCode:Python解题

41. First Missing Positive【Hard】Given an unsorted integer array, find the first missing positive integer.For example, Given [1,2,0] return 3, and [3,4,-1,1] return 2.Your algorithm should run ...

2018-03-19 17:47:09 1131

原创 【26-30】LeetCode:Python解题

26. Remove Duplicates from Sorted Array【Easy】Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra space for

2018-01-27 23:08:24 1902

原创 Tensorflow - Tutorial (9) : GAN生成图片

1. 介绍 本文利用Tensorflow实现生成式对抗网络GAN,关于GAN的详细介绍可参考:生成式对抗网络(Generative Adversarial Networks,GANs)。训练所使用的MNIST数据集包含了各种手写数字图片,图片的格式与数据预处理代码input_data.py的介绍详见:Tutorial (2)。本文在GAN中使用的生成模型GG和判别模型DD均为多层感知机。生成模

2018-01-08 16:35:29 4566 2

原创 生成式对抗网络(Generative Adversarial Networks,GANs)

1. 简介首先简要介绍一下生成模型(Generative model)与判别模型(Discriminative mode)的概念:生成模型:对联合概率进行建模,从统计的角度表示数据的分布情况,刻画数据是如何生成的,收敛速度快,例如朴素贝叶斯,GDA,HMM等。判别模型:对条件概率P(Y|X)P(Y|X)进行建模,不关心数据如何生成,主要是寻找不同类别之间的最优分类面,例如LR,SVM等

2018-01-04 15:40:00 55947 4

原创 【21-25】LeetCode:Python解题

21. Merge Two Sorted Lists【Easy】Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Solution 1:# Defini

2017-12-16 11:46:14 1845

原创 【16-20】LeetCode:Python解题

16. 3Sum Closest【Medium】Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each i

2017-12-09 12:00:01 1424

原创 【11-15】LeetCode:Python解题

11. Container With Most Water【Medium】Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i i

2017-12-09 11:52:57 1116

原创 【6-10】LeetCode:Python解题

6. ZigZag Conversion【Medium】The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P

2017-12-09 11:47:01 1109

原创 【1-5】LeetCode:Python解题

1. Two Sum【Easy】Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not

2017-12-09 11:42:04 3589

原创 判断有向图是否有环及环中元素

主要思路: dfs+栈。具体来说,遍历图中每个节点,若该节点还未被访问,则调用dfs。在访问节点n时,若该节点不在栈中,则将其入栈,否则说明存在环,并且环中元素为栈中从节点n到栈顶的所有点。# 输入:第一行为图中的边数,余下行为两个节点组成的边,以空格划分例:81 22 33 13 45 45 66 77 5代码:import sysdef dfs(no

2017-08-17 13:04:40 10211 8

原创 优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam

1. SGDBatch Gradient Descent在每一轮的训练过程中,Batch Gradient Descent算法用整个训练集的数据计算cost fuction的梯度,并用该梯度对模型参数进行更新:Θ=Θ−α⋅▽ΘJ(Θ)\Theta = \Theta -\alpha \cdot \triangledown_\Theta J(\Theta )优点:cost fuction若为凸函数,能

2017-08-06 10:55:40 114941 23

原创 分支限界法

分支限界法(branch and bound method)是求解纯整数规划或混合整数规划问题的经典方法,在上世纪六十年代由Land Doig和Dakin等人提出。这种方法灵活且便于用计算机求解,目前已经成功运用于求解生产进度问题、旅行推销员问题、工厂选址问题、背包问题及分配问题等。1. 基本思想:以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树分支限界法中,每一个活结点只有一次机

2017-07-04 16:57:55 15303

原创 Tensorflow - Tutorial (8) : Variables的保存与恢复

1. 主要方法我们在训练一个模型时,常希望保存训练过程中的variables,这些variables通常指的是模型的参数。通过保存这些参数以便下次可以继续进行训练或者基于已有的参数进行测试。Tensorflow针对这一需求提供了Saver类,通过Saver类提供的相关方法可以保存和恢复训练过程中的变量,该文件称为检查点文件(checkpoints)。检查点文件是一个二进制文件主要包含从变量名到ten

2017-06-06 19:30:00 5585

原创 隐马尔可夫模型(HMM)

1. 背景知识1.1随机过程随机过程是随机变量的集合,其在随机变量的基础上引入时间的概念(可简单理解为随机变量关于时间的函数)。例如,x1(t),x2(t),x3(t),x4(t)x_1(t),x_2(t),x_3(t),x_4(t) 都是时间的函数,我们将其称为样本函数,样本函数的集合便是一个随即过程。其定义如下:设:(Ω,F,P)(Ω, F , P )为一概率空间,集合TT 为一指标集合。如果对

2017-06-01 15:08:40 11918

原创 算法时间复杂度

1. 算法度量标准算法设计的标准包括以下四个方面正确性(correctness) 算法应满足用户的具体需求可读性(readability) 算法应好读,利于读者对算法的理解健壮性(robustness) 算法有好的容错能力,当输入异常或非法数据时,能够正确应对适当处理,不会产生莫名其妙的输出结果时间和空间效率(time and space efficiency) 时间效率指的是算法的

2017-05-09 19:56:21 2344

原创 python实现二叉查找树

1. 定义二叉查找树(Binary Search Tree),又称为二叉搜索树、二叉排序树。其或者是一棵空树;或者是具有以下性质的二叉树:若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值左、右子树也分别为二叉排序树 图 1 树中节点的定义如下:class Node: def __init__(se

2017-05-01 11:28:47 19871 6

转载 KMP算法:查找子字符串

原文地址 :字符串匹配的KMP算法 字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。

2017-04-18 11:14:48 4170

原创 数据预处理与特征选择

数据预处理和特征选择是数据挖掘与机器学习中关注的重要问题,坊间常说:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。特征工程就是将原始数据转化为有用的特征,更好的表示预测模型处理的实际问题,提升对于未知数据的预测准确性。下图给出了特征工程包含的内容: 本文数据预处理与特征选择的代码均采用sklearn所提供的方法,并使用sklearn中的IRIS(鸢尾花)数据集来对特征

2017-04-12 15:09:24 37018 2

原创 随机森林与GBDT

1. 随机森林1.1 决策树决策树分为两大类,分类树和回归树。分类树是我们比较熟悉的决策树,比如C4.5分类决策树。分类树用于分类标签值,如晴天/阴天、用户性别、网页是否是垃圾页面。而回归树用于预测实数值,如明天的温度、用户的年龄、网页的相关程度。也就是分类树的输出是定性的,而回归树的输出是定量的。分类树以C4.5算法为例,C4.5分类树在每次分枝时,是穷举每一个feature的

2017-04-06 22:03:46 19218 3

原创 混合高斯模型

1. 单高斯模型(SGM)多维高斯分布的概率密度函数如下式所示:N(x|μ,Σ)=12π|Σ|√e−12(x−μ)⊤Σ−1(x−μ)N(x|\mu,\Sigma )=\frac{1}{\sqrt{2\pi |\Sigma |}}e^{-\frac{1}{2}(x-\mu)^{\top }\Sigma^{-1} (x-\mu)}对于单高斯模型,由于可以明确训练样本是否属于该高斯模型,因此 μ\mu

2017-03-23 09:11:46 16832 6

原创 Tensorflow - Tutorial (7) : 利用 RNN/LSTM 进行手写数字识别

1. 常用类class tf.contrib.rnn.BasicLSTMCellBasicLSTMCell 是最简单的一个LSTM类,没有实现clipping,projection layer,peep-hole等一些LSTM的高级变种,仅作为一个基本的basicline结构存在,如果要使用这些高级变种,需用class tf.contrib.rnn.LSTMCell这个类。使用方式:lstm = r

2017-03-10 15:34:31 21502

原创 Torch 笔记:神经网络(Neural Networks)

forward为前向传播1. Sequential require ‘nn’;mlp = nn.Sequential()mlp:add(nn.Linear(10, 25)) -- Linear module (10 inputs, 25 hidden units)mlp:add(nn.Tanh()) -- apply hyperbolic tangent transfer

2017-03-08 16:34:16 2143

原创 Lua 安装及入门资料

Lua安装Linux 系统上安装 Lua 非常简单,只需要下载源码包并在终端解压编译即可,本文使用了5.3.4版本进行安装:curl -R -O http://www.lua.org/ftp/lua-5.3.4.tar.gztar zxf lua-5.3.4.tar.gzcd lua-5.3.4make linux testmake install遇到的问题原因:缺少libreadline-

2017-03-04 19:32:58 1386

原创 循环神经网络与LSTM

1. 循环神经网络①基本结构在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN(Recurrent Neuron Network)是一种对序列数据建模的神经网络,即一个序列当前的输出与前

2017-02-21 17:46:07 56638 12

原创 回溯法

1. 回溯法回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。基本思想:回溯法在问题的解空间树中进行深度优先搜索,从根结点出发当探索到某一结点时,要先判断该结点是否包含问题的解 如果包含,就从该结点出发继续按深度优先策略搜索否则逐层向其祖先结点回溯(退回一步重新选择)满足回溯条件

2016-12-29 10:13:49 3959

原创 贪心算法

1. 贪心算法基本思想:优化问题的算法往往包含一系列步骤,贪心算法在每一步选择中都采取在当前状态下最优的选择,目的是希望由此导出的果是最优的贪心算法在求解问题时并不着眼于整体最优,它所作出的选择仅仅是当前看来是最优的贪心算法得到的结果不能保证全局最优!贪心算法与动态规划的区别:动态规划算法:每一步的最优解是由上一步的局部最优解进行选择得到的,因此需要保存(之前求解的)所有子问题的最优解备查

2016-12-27 15:24:25 3287 2

原创 动态规划算法

1. 动态规划算法动态规划:通过把原问题分解为相对简单的子问题来求解复杂问题。动态规划常常适用于有重叠子问题和最优子结构性质的问题。 算法总体思想 动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题与分治法的区别在于:适用于动态规划算法求解的问题,经分解得到的子问题往往不是互相独立的;若用分治法求解,则分解得到的子问题数目太多,导致最终解决原问题需指数时间, 原因在于:虽

2016-12-26 20:49:05 2701

原创 分治法

1. 分治法分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同。递归的解这些子问题,然后将各子问题的解合并得到原问题的解。分治模式在每一层递归上都有三个步骤:分解(Divide);求解(Conquer);合并(Combine)Divide:将一个难以直接解决的大问题,分割成一些规模较小的子问题,这些子问题互相独立,且与原问题相同。Conquer:递

2016-12-22 20:58:04 4520

转载 EJB浅析

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么时候用EJB 什么时候不用。于是大家都产生一些联想,认为EJB"分布式运算"指得是"负载均衡"提高系统的运行效率

2016-11-22 20:13:55 1291

原创 eclipse下配置Tomcat部署目录

1. Tomcat目录配置使用eclipse时,默认情况下Tocmat把我们部署的项目放在了workspaces下面,而不是像Myeclipse默认的那样放在tomcat安装目录所在的 webapps下。通过以下方式可查看项目的部署目录:右键点击tomcat服务器,依次点击Open → open launch configuration → Arguments,在VM arguments里面可看到项

2016-11-22 08:28:31 21631 2

原创 决策树(ID3、C4.5、CART)

1. 基本概念所谓决策树,顾名思义,就是一种树,一种依托于策略抉择而建立起来的树。在机器学习中,决策树是一种预测模型,代表的是一种对象特征属性与对象目标值之间的一种映射关系。决策树仅有单一输出,如果有多个输出,可以分别建立独立的决策树以处理不同的输出。,下图给出了决策树的一个简单例子: 决策树分为分类树和回归树两种,分类树对离散变量做决策,输出是样本的预测类别;回归树对连续变量做决策,输

2016-11-20 15:41:19 23515 3

原创 Adaptive Boosting(AdaBoost)

1. Motivationbootstrap在训练集上通过有放回的采样构造出不同的训练数据,该过程可以看作在完整训练集上,为每一个样本赋予不同的权重。若该样本在本次抽样中没有被选中,则其权重为0。在采样得到的每一个数据集 u(t)nu_{n}^{(t)} 上训练得到模型 gtg_{t} 。为了增加不同 gtg_{t} 之间的差异性,可采用如下思路:经过训练得到的模型 gtg_{t} 在数据集 u

2016-11-09 15:19:11 3434

原创 Aggregation总结:Blending和Bootstrap

1. Aggregation 首先举一个买房的例子,假如你有10个朋友给出了买房的意见,你如何参考这10个人的意见做出决定呢?第一种办法是让大家投票,每人一票,最后选择得票数最多的那个选项第二种办法也是投票,与第一种不同的是每个人手里的票数不一样,懂行的人可能会分配更多的票数第三种办法是根据具体条件进行判断:这10个人中,有的人可能注重房源的地理位置,有的人可能更注重交通状况。根据不

2016-11-01 09:22:58 3741

原创 eclipse(indigo)安装maven插件失败

eclipse的indigo版本在安装maven插件的时候一直报错,最开始不管是用“Install New Software”、”eclipse market place“ 还是离线安装都没法安装成功 Cannot complete the install because one or more required items could not be found. Software b

2016-10-18 21:47:43 5231 2

原创 Tensorflow - Tutorial (6) : TensorBoard 可视化工具

1. TensorBoard为了更方便 TensorFlow 程序的理解、调试与优化,TensorFlow发布了一套叫做 TensorBoard 的可视化工具。可以用 TensorBoard 来展现 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据。TensorBoard可生成以下4类信息:Event: 展示训练过程中的统计数据(最值,均值等,误差)变化情况Image: 展示训练

2016-10-11 17:30:09 4444

空空如也

空空如也

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

TA关注的人

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