自定义博客皮肤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)
  • 资源 (7)
  • 问答 (3)
  • 收藏
  • 关注

原创 linux下构建虚拟环境(virtualenv )安装tensorflow

首先要安装virtualenv $ sudo apt-get install python-pip python-dev python-virtualenv 创建虚拟环境(如果使用默认的python版本则无需-p命令,如果要用指定的python版本,则使用-p命令来指定;我们假定创建的虚拟环境为tensorflow,即targetDirectory为tensorflow)$ virtualen

2017-03-23 16:43:53 6829 4

原创 beam search算法

在看论文Sequence to Sequence Learning with neural networks时看到了beam search算法,特此记录一下该算法的基本思想在CS领域,beam search是一种启发式搜索,在优化领域,其属于一种最佳优先算法,最佳优先算法是一种图搜索算法,其会将所有可能的解依据启发式规则进行排序,该规则用来衡量得到的解与目标解到底有多接近。但是对于beam sear

2017-03-20 22:09:43 16086 1

原创 基于tensorflow的keras中GPU的使用

在基于tensorflow的keras中,其会自动检测运行的机器中是否有gpu,如果有的话,其会自动在gpu上执行运算。但是keras并没有提供像基于theano如下所示的接口来对要运行的gpu进行选择# the name 'gpu' might have to be changed depending on your device's identifier (e.g. gpu0, gpu1, et

2017-03-15 10:53:37 18896

原创 svm常用核函数

SVM核函数的选择对于其性能的表现有至关重要的作用,尤其是针对那些线性不可分的数据,因此核函数的选择在SVM算法中就显得至关重要。对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到一个高纬的特征空间内使得数据在特征空间内是可分的,我们定义这种映射为ϕ(x)\phi(x),那么我们就可以把求解约束最优化问题变为minαs.t.αi≥0,12∑i=1N∑j=1Nαiαjyiyj(ϕi

2016-08-29 19:34:27 80460 4

转载 C/C++中extern关键字详解(转)

源地址C/C++中extern关键字详解基本解释extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用:第一个,当它与”C”一起连用时,如: extern “C” void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的

2016-08-24 12:48:46 575

转载 C/C++中static关键字作用总结(转)

源地址C/C++中static关键字作用总结隐藏先来介绍它的第一条也是最重要的一条:隐藏(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid ms

2016-08-24 11:31:59 392

原创 LCS(Longest Common Sequence)最长公共子序列算法

LCS(Longest Common Sequence)最长公共子序列算法最长公共子序列就是在两个字符串中找出相同且最长的子序列,其中该子序列并不要求是连续的。假设我们拥有两个序列S1S_1和S2S_2,其中序列S1S_1的长度为m, S2S_2的长度为n,那么我们知道这两个序列的最长公共子序列长度可以分两种情况来探讨,当S1[m−1]==S2[n−1]S_1[m - 1] == S_2[n -

2016-08-22 10:14:57 1326

原创 排序性能总结

稳定性: 稳定的排序算法:插入排序、冒泡排序、归并排序、二叉树排序、计数排序、同排序不稳定的排序算法:选择排序、快速排序、堆排序、希尔排序、基数排序时间复杂度: 最坏时间复杂度为O(n2)O(n^2)的有:插入排序、选择排序最坏时间复杂度为O(nlogn)O(n\log n)的有:希尔排序、快速排序、三向快速排序、归并排序和堆排序空间复杂度: 空间复杂度为O(1)O(1)的有:选择排序

2016-08-09 11:06:07 601

转载 派生类和基类中的成员变量名相同(转)

源地址 当派生类中的成员变量和基类中同名,那么与函数同名一样,基类中的同名变量会被隐藏。也就是通过派生类对象无法访问基类的同名变量。例一:class base{public: int a; int b; base() { a=10; b=20; } virtual void fun() {

2016-08-02 15:13:42 4479

转载 C语言可变长参数函数与默认参数提升(转)

源地址 1、概述C标准中有一个默认参数提升(default argument promotions)规则。 默认参数提升有时会给我们带来疑惑。本文结合C语言的可变长参数函数来说明默认参数提升存在的陷阱。2、默认参数提升的定义标准中的定义如下:If the expression that denotes the called function has a type that

2016-08-02 11:50:06 3103

原创 集成学习学习笔记(2)

Bagging通过集成学习笔记1中对Boosting算法的描述我们知道对于Boosting算法,其各个基学习器之间是强相关的,即下一个学习器的学习偏好受之前学习器的影响很大,因为之前的基学习器的学习情况会通过权值来影响下一次训练样本的分布情况。这种强相关性决定了AdaBoost只能进行串行运算,而且通过AdaBoost算法的推导可以知道该算法只能用于二分类任务。 如何能够设计一种算法既可以执行并行

2016-08-01 00:44:12 7629

原创 集成学习学习笔记(1)

集成学习集成学习,顾名思义就是将多个学习器集成在一起来完成某个任务。其一般结构为:先产生一组个体学习器;然后再用某种策略将这些个体学习器结合起来。但是并不是说把任何的个体学习器结合起来都可以有效果的提升,其对于学习器的准确率和多样性是有一定要求的,如下例所示:我们可以看到,对于第二种学习器集成方式,由于其三个学习器对于测试集的预测结果都是一样的,虽然每个学习器的准确率比较高,但是集合在一起并没

2016-07-29 22:33:14 1270

原创 打印1到最大的n位数

题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3、…、999题目分析:对于该题目,打眼一看似乎很简单,但是详细观察后会发现在题目中并没有对输入的数字n有任何的限制,因此此时可能会遇到大数问题,即我们要输出的n位数远远超出了int或long甚至long long所能表示的范围,那么这时候我们该怎么办,下面介绍两种方法:利用字符串来表示一个数字,字符串中的每个

2016-07-27 00:44:15 793

转载 大数据处理算法一:Bitmap算法(转)

源地址Bitmap算法腾讯面试题:给20亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中并且所耗内存尽可能的少?解析:bitmap算法就好办多了所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用

2016-07-26 15:20:33 798

原创 线性判别分析(LDA)学习笔记

线性判别分析线性判别分析又称为Fisher判别分析,因为其最早是由Fisher提出来处理二分类问题。线性判别分析的思想非常的简单,其就是要确定一条直线,当所有样本点投影到该条直线上的时候,能够保证同类样本的投影点尽可能集中,而不同类的样本的投影点则相聚较远。当有一个新样本来的时候,可以将该样本投影到这条直线上并归类到最近的类别中心所在类。 假设我们现在样本点归属于两个类A和B,这两类样本的均值向量

2016-07-25 21:48:16 1805

原创 线性回归学习笔记

线性回归线性回归线性模型就是通过属性的线性组合来进行预测的函数:f(x)=ω1x1+ω2x2+...+ωdxd+bf(x) = \omega_1x_1+\omega_2x_2+...+\omega_dx_d+b用向量形式可以写成:f(x)=ωTx+bf(x) = \omega^Tx+b当我们学到参数ω,b\omega,b就可以确定模型。 因此对于线性回归方法,其目的就是要在一组带标记的数据中学得一

2016-07-25 11:31:46 2526 1

原创 牛顿法与拟牛顿法

牛顿法求函数的根牛顿法的最初提出是用来求解方程的根的。我们假设点x∗x^*为函数f(x)f(x)的根,那么有f(x∗)=0f(x^*) = 0。现在我们把函数f(x)f(x)在点xkx_k处一阶泰勒展开有:f(x)=f(xk)+f′(xk)(x−xk)f(x) = f(x_k) + f'(x_k)(x-x_k)那么假设点xk+1x_{k+1}为该方程的根,则有f(xk+1)=f(xk)+f′(xk)

2016-07-21 11:49:43 18017 2

原创 梯度下降法学习笔记

我们都知道梯度下降法是求解无约束最优化问题的最常用方法,可是为什么梯度下降可以用来求解最优化问题呢?梯度到底是什么?这里假设我们要解决一个最小值问题minf(x)minf(x),当我们所研究的对象并不是一个凸函数或者即使是一个凸函数,但是计算量会非常的大,此时我们就会想能否有一种迭代的方法,当我们随机的选取一个点,我们以该点位为起点,然后沿着某个方向能够以最快的速度走到最小值点呢?基于这样的思路,我

2016-07-20 23:11:15 1393

原创 机器学习中常用的导数公式和迹公式

常用导数公式:δωTxδω=x\frac{\delta \omega^Tx}{\delta \omega} = xδxωδω=xT\frac{\delta x\omega}{\delta \omega} = x^TδxTωδω=x\frac{\delta x^T\omega}{\delta \omega} = xδωTxTδω=xT\frac{\delta \omega^Tx^T}{\del

2016-07-20 15:38:41 1805

原创 贝叶斯学派与频率学派

频率学派对于频率学派,其认为我们所观察到的某些现象其背后的分布是确定的,是一直不变的,我们所需要的就是不断的去接近他。就好像西方人认为上帝是存在的,我们可以通过修行的方式来不断的接近上帝,看清上帝的真面目。因此对于频率学派来说,其通过大量的独立重复实验,观察某种事件出现的频率来预估其出现的概率。针对模型P(x;θ)P(x;\theta)来说,该学派认为模型的参数是存在且固定的,我们要做的就是求出让P

2016-07-19 17:47:07 2031

原创 贝叶斯分类器学习笔记

我们知道,对于人类来说学习通常是指通过经验获得知识从而导致可度量的行为变化。也就是说我们通过经验获得了知识,然后这些知识又对我们未来的行为产生了影响。而机器学习则是让机器来进行学习,因此我们也可以认为机器学习同样是让机器通过经验(在计算机中表现为数据)获得知识(知识即为我们的模型),然后基于这些知识(模型)来对我们未来的行为产生影响(即不同的模型在接收到未来的新数据可能会得到不同的label)。对于

2016-07-15 14:51:38 9074

转载 圈中最后剩下的数字(转)

源地址题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:本题就是有名的约瑟夫环问题。既然题目有一个数字圆圈,很自然的想法是我们用一个数据结构来模拟这个圆圈。在常用的数据结构中,我们很容易想到用环形列表。

2016-07-13 11:40:42 421

原创 偏差与方差学习笔记

偏差与方差我们都知道,泛化误差可以分解为噪声,偏差和方差,即泛化误差是由噪声,偏差和方差共同决定的,但是为什么是由他们三个决定的,这里做一个比较详细的说明。 首先,我们先做几个符号的说明: yD:y_D:测试样本xx在数据集中的标记; y:y:测试样本xx的真实标记; f(x;D):f(x;D):训练集D上学得模型ff在xx上的预测输出; 那么我们可以知道模型的期望预测值为f¯(x)=ED

2016-07-12 21:21:58 2764

原创 机器学习模型性能评估方法笔记

模型性能评估综述对于模型性能的评估,我们通常分为一下三步: 1. 对数据集进行划分,分为训练集和测试集两部分; 2. 对模型在测试集上面的泛化性能进行度量; 3. 基于测试集上面的泛化性能,依据假设检验来推广到全部数据集上面的泛化性能数据集的划分对于模型来说,其在训练集上面的误差我们称之为“训练误差”或者“经验误差”,而在测试集上的误差称之为“测试误差”。因为测试集是用来测试学习期对于新样本的

2016-07-12 17:27:02 26425 5

转载 C++常识之——C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区(转)

源地址C++常识之——C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区文章来自一个论坛里的回帖,哪个论坛记不得了!在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们

2016-06-15 21:22:52 493

原创 linux后台运行python程序

第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下:unhup python 文件名.py (> ***.log )&在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件。括号内容表示可以将平时输出到控制台中的内容重定向到*.log这个文件中,这个是可选的,如果没有这个,则会默认输出到nohup.out文件中。括号后面你的&表示后台运

2016-05-26 10:27:58 10209

转载 PYTHON的程序在LINUX后台运行(转)

源地址 1.nohup 命令 nohup   nohup 命令   用途:LINUX命令用法,不挂断地运行命令。   语法:nohup Command [ Arg … ] [ & ]   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohu

2016-05-26 09:37:13 1362

原创 神经网络学习笔记

神经网络sigmoid函数sigmoid函数是一种常见的挤压函数,其将较大范围的输入挤压到(0,1)(0,1)区间内,其函数的表达式与形状如下图所示:该函数常被用于分类模型,因为其具有很好的一个特性f′(x)=f(x)(1−f(x))f'(x) = f(x)(1-f(x))。这个函数也会被用于下面的神经网络模型中做激活函数。M-P神经元模型生物的神经网络系统中,最简单最基本的结构是神经元。每个神经元

2016-04-14 22:41:51 13925

原创 决策树算法学习笔记

决策树算法决策树的基本思想与人自身的决策机制很相似,都是基于树结构进行决策,即对于任何问题,我们都先抽出其中的几个主要特征,然后对这些特征一个一个的去考察,从而决定这个问题应该属于的类别。例如我们要去商场买电脑,我们一般要通过考察电脑的CPU,内存,硬盘,显存等这些特征来判断这台电脑是好电脑还是一般电脑,当我们做判断的时候,我们都是首先看这个电脑的CPU怎么样,是i3?i5?还是i7?如果是i7我们

2016-04-12 15:40:26 3611

原创 numpy库常用函数记录(不断更新)

numpy常用函数记录arange([start, ] stop[, setp,], dtype = None): 该函数返回的是一个ndarray类型数据,而不是list类型数据,该函数中start参数用于指定创建数组的起始位置,stop用于指定终止位置,step指定步长,创建的数组是[start, stop),即包含起始位置元素但不包括终止位置元素,该函数与range([start, ] s

2016-03-22 23:25:36 776

原创 LeetCode OJ --- Regular Expression Matching

题目描述Implement regular expression matching with support for ‘.’ and ‘*’.‘.’ Matches any single character. ‘*’ Matches zero or more of the preceding element.The matching should cover the entire input st

2016-03-22 12:10:46 374

原创 LeetCode OJ ---- Reverse Integer

Reverse Integer题目描述:Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321code(c++):法一:int reverse(int x) { int max = (numeric_limits<int>::max)();

2016-03-08 23:09:45 318

原创 python中一些常见的针对字符串的操作

python中一些常见的针对字符串的操作ascii操作ord(char ): 参数为一个字符,return该字符对应的ascii码chr(int ): 参数为一个整数,return该整数在ascii码中对应的字符索引字符串分片索引都是左闭右开,即s[i,j]为[i,j)s[i, j]为[i,j),从第i个元素开始(包括第i个元素)到第j个元素结束(不包括第j个元素)

2016-03-08 15:55:34 877

原创 LeetCode OJ ---- Longest Palindromic Substring

题目描述Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.code(c++)class Solution

2016-03-04 18:19:28 323

原创 矩阵求导

矩阵求导求导运算向量函数对实值求导定义向量函数y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥\mathbf y = \begin{bmatrix}y_1 \\y_2 \\\vdots\\y_m\end{bmatrix} 那么我们有向量函数y\mathbf y对实值xx求导得:δyδx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢δy1δxδy2δx⋮δymδx⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥\frac{\delta

2016-03-01 20:41:39 744

原创 ASCII表

ASCII表 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUL 32 space 64 @ 96 ` 1 SOH 33 ! 65 A 97 a 2 STX 34 “ 66 B 98 b 3 ETX 35

2016-03-01 17:30:50 592

原创 LeetCode OJ ---- Longest Substring Without Repeating Characters

题目描述Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. F

2016-03-01 17:06:00 329

转载 单数组哈希表unordered_map和unordered_set(转)

源博客地址单数组哈希表unordered_map和unordered_set以静态表为例,原理如下图,也就是多个单链表存储在同一个数组中。勉强算开地址哈希表吧,但跟一般开地址哈希表原理 不太一样。存储在同一个数组的目的是节省一个表头指针,有表头指针的哈希表见本主页”双数组哈希unordered_xxx”相 对于传统的拉链哈希表,这个哈希表的原理不太好理解(传统的好理解,但耗费内存多且速度慢~~)

2016-02-29 22:27:10 1187

原创 LeetCode OJ ----Add Two Numbers

题目描述You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a l

2016-02-25 14:36:26 590

原创 c++中map与unordered_map的区别

c++中map与unordered_map的区别头文件map: #include < map >unordered_map: #include < unordered_map >内部实现机理map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此,对于map进行的查找,删除,添加等一系列的操作都相当于

2016-02-24 00:29:01 71087 5

算法导论英文版

算法导论第三版相对于第二版加入了并行算法方面的东西,并且在动态规划方面改变了一些例子从而更加容易理解

2015-07-06

算法导论第三版

算法领域必读经典书籍,无论是今后工作还是做科研,这本书一定会带来非常大的帮助

2015-07-06

The Swift Programming Language

苹果新的开发语言Swift,官方版,值得学习的一门语言!苹果app开发必备书籍!

2014-06-06

设计模式之禅

设计模式之禅,对于想要学习设计模式的程序员有很大的帮助,非常值得一读!

2014-06-04

电脑学习宝典

对于解决电脑常出现的问题有极大的帮助,在这本书中,你可以找到许多你电脑曾经出现问题的答案,学会这本书,你就是电脑高手,大部分的问题都不会难倒你!

2014-03-04

《超级技巧6000招》看完这些你就是电脑高手

该文档教你学习如何更加方便的实用windows系统!

2014-03-04

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

TA关注的人

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