自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

往者不可谏,来者犹可追

答案在风中飘摇

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

转载 人类如何思考

一、人类有好奇心但不是天生的思考者大脑不是设计来思考的,而是设计为避免思考。多数时候,我们是根据经验、记忆来做解决问题或做决定。但这并不是说我们完全避免思考,我们也追求可以自行解决问题,因为这会让我们感到愉悦。前提是这个,问题不是那么难以解决,并且在我们决定要解决它之前,能稍微看到成功的曙光这也解释了为何我们要把一个项目/想法/问题细分成一系列的步骤,这样每一个步骤都不至于太难,都有成功解决的希望

2017-08-12 19:53:01 4541

原创 NP难问题与过拟合

NP问题一直都是信息学的巅峰。巅峰,意即很引人注目但难以解决。在信息学研究中,这是一个耗费了很多时间和精力也没有解决的终极问题,好比物理学中的大统一和数学中的歌德巴赫猜想等。以下引用于:什么是P问题、NP问题和NPC问题P类问题的概念:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。NP问题是指可以在多项式的时间里验证一个解的问题。很显然,Hamilton回路是N

2017-08-01 23:51:55 2363

转载 XGBoost 与 Boosted Tree 原理

这篇文章是XGBoost的作者——陈天奇大神对XGBoost原理的解析,文章脉络十分清晰,环环相扣,每个部分都列举了对应的例子,帮助我们更好的理解原文,看完收获良多。1、有监督学习算法的逻辑组成要讲boosted tree,要先从有监督学习讲起。在有监督学习里面有几个逻辑上的重要组成部件,初略地分可以分为:模型,参数 和 目标函数。i. 模型和参数 模型指给定输入xi如何去预测 输出 yi。我们比

2017-07-25 18:43:53 1519

原创 Alphago原理浅析

1、深度强化学习强化学习是受到生物能够有适应环境的启发,以试错的机制与环境进行交互,通过最大化累积奖赏的方式来学习最优策略。而深度强化学习将深度学习的感知能力和强化学习的决策能力相结合,可以直接根据输入的图像进行控制,是一种更接近人类思维方式的人工智能方法。 2、蒙卡罗特树蒙特卡罗树搜索大概可以被分成四步。选择(Selection),拓展(Expansion),模拟(Simul

2017-06-30 19:55:06 3523

转载 过拟合(原因、解决方案、原理)

1.定义标准定义:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h’小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据。2.出现过拟合的一些原因(1)建模样本抽取错误,包括(但不限于)样本数量太少,抽样方法错误,抽样时没有足够正确考虑业务场景或业务特点,等等导致抽出的样本数据不能有效足够代表

2017-09-27 18:32:41 757

转载 AUC计算方法总结

一、roc曲线1、roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。横轴:负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例;(1-Specificity)纵轴:真正类率(true postive rate TPR)灵敏度,Sensi

2017-09-24 16:44:30 1068

转载 Bagging和Boosting 概念及区别

Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。首先介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)。1、Bagging (bootstrap aggregating)Bagging即套袋法,其算法过程如

2017-09-22 21:42:44 514

转载 多分类问题中的交叉熵

熵的本质是香农信息量()的期望。现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=。如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=。因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i)。H(p,q)我们称之为“交叉熵”。比如含有4个字母(

2017-09-22 20:23:08 27831 3

转载 为什么L1正则项会产生稀疏解

Consider the vector x⃗ =(1,ε)∈R2 where ε>0 is small. The l1 and l2 norms of x⃗ , respectively, are given by||x⃗ ||1=1+ε,  ||x⃗ ||22=1+ε2Now say that, as part of some regularizati

2017-09-22 19:45:33 1506

转载 Java中的static关键字解析

一.static关键字的用途  在《Java编程思想》P86页有这样一段话:  “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”  这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键

2017-09-18 08:41:10 999

转载 Java多线程和线程池

1.为什么要使用线程池在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。如果在一个jvm里创建太多的线程,可能会使系统由于过度消耗内存或“切换过度”而导致系统资源不足。为了防止资源不足,服务

2017-09-15 11:55:14 339

转载 Java中hashCode的作用

以下是关于HashCode的官方文档定义:hashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。     hashCode 的常规协定是:   在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所

2017-09-15 11:07:28 285

转载 HashMap、HashTable异同

1、HashMap是非线程安全的,HashTable是线程安全的。2、HashMap的键和值都允许有null值存在,而HashTable则不行。3、因为线程安全的问题,HashMap效率比HashTable的要高。一、HashMap的内部存储结构Java中数据存储方式最底层的两种结构,一种是数组,另一种就是链表,数组的特点:连续空间,寻址迅速,但是在删除或者添加元素的时

2017-09-14 22:49:35 340

原创 集合类以及集合框架

集合是一组复合元素的容器,用来存储,检索,控制聚合数据并提供它们之间的通信方法。java的集合框架提供了表示和操控集合的统一架构。所有的集合框架都包含下面三个方面:接口:即集合的抽象数据结构。接口允许我们独立地操纵集合而不用考虑集合的具体实现实现:即接口的具体实现类。从本质上来讲,它们是可重用的数据结构算法:即在实现了集合接口的对象上执行有用的计算,比如

2017-09-14 22:37:24 1899 1

转载 深度学习入门

人工智能(AI)是近两年来最热门的词之一了,自16年Google DeepMind的AlphaGo打败了世界围棋大师李世石后,人们在惊叹之余,也意识到人工智能时代的正式开始。从此,人工智能、机器学习和深度学习就成为了热门词汇,而它们的关系如下图1所示。人工智能的概念起源于1956年,所谓的人工智能就是给机器赋予人的智能,让机器能够像人一样地思考问题,做出决策。而一种较为有效的、

2017-09-14 13:26:50 6272

转载 浅析数据一致性

什么是数据一致性?  在数据有多分副本的情况下,如果网络、服务器或者软件出现故障,会导致部分副本写入成功,部分副本写入失败。这就造成各个副本之间的数据不一致,数据内容冲突。 实践中,导致数据不一致的情况有很多种,表现样式也多种多样,比如数据更新返回操作失败,事实上数据在存储服务器已经更新成功。CAP定理  CAP定理是2000年,由 Eric Brewer 提出来的。B

2017-09-12 17:26:50 386

原创 迷宫寻路

问题描述:假设一个探险家被困在了地底的迷宫之中,要从当前位置开始找到一条通往迷宫出口的路径。迷宫可以用一个二维矩阵组成,有的部分是墙,有的部分是路。迷宫之中有的路上还有门,每扇门都在迷宫的某个地方有与之匹配的钥匙,只有先拿到钥匙才能打开门。请设计一个算法,帮助探险家找到脱困的最短路径。如前所述,迷宫是通过一个二维矩阵表示的,每个元素的值的含义如下 0-墙,1-路,2-探险家的起始位置,

2017-09-08 15:06:02 986

转载 HDFS Federation

1. 当前HDFS架构和功能概述我们先回顾一下HDFS功能。HDFS实际上具有两个功能:命名空间管理(Namespace management)和块/存储管理服务(block/storage management)。1.1 命名空间管理HDFS的命名空间包含目录、文件和块。命名空间管理:是指命名空间支持对HDFS中的目录、文件和块做类似文件系统的创建、修改、删除、列表文

2017-09-02 20:13:32 376

原创 LFU缓存策略

Example:LFUCache cache = new LFUCache( 2 /* capacity */ );cache.put(1, 1);cache.put(2, 2);cache.get(1); // returns 1cache.put(3, 3); // evicts key 2cache.get(2); // returns -1 (

2017-08-30 21:17:05 798

原创 LRU缓存策略

问题描述:为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据(get)和写入数据(set)。获取数据get(key):如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。写入数据set(key, value):如果key还没有在缓存中,则写入其数据值。当缓存达到上限,它应该在写入新数据之前删除最近最少使用的数据用来腾出空闲位置。

2017-08-29 19:48:35 491

转载 LSM Tree

我们在访问数据的时候速度肯定是内存大于磁盘的,这样的话为什么不全用内存呢?原因大家自己考虑下就行了,所以权衡下来还是需要用硬盘的,那么为了实现数据的快速插入和查询,存储应该怎么设计呢?学过oracle的同学都应该知道,要使一个表对查询的响应比较快,那么最主要的手段就是索引,但是索引多了就会影响数据插入的速度,这也是一种平衡,下面我们将分析lsm,看看它是设计了个完美的解决方案吗?在讨论这个

2017-08-28 18:27:56 2460

转载 编程题——攀爬字符串

给定一个字符串 S1,将其递归地分割成两个非空子字符串,从而将其表示为二叉树。下面是s1 = "great"的一个可能表达: great / \ gr eat / \ / \g r e at / \ a t在攀爬字符串的过程中,我们可以选择其中任意一个非叶节点,然后交换该节点的两个

2017-08-28 17:23:35 269

原创 动态规划——吹气球

问题描述有n个气球,编号为0到n-1,每个气球都有一个分数,存在nums数组中。每次吹气球i可以得到的分数为 nums[left] * nums[i] * nums[right],left和right分别表示i气球相邻的两个气球。当i气球被吹爆后,其左右两气球即为相邻。要求吹爆所有气球,得到最多的分数。样例给出 [4, 1, 5, 10]返回 270nu

2017-08-28 13:17:49 1463

转载 Deep Learning(深度学习)神经网络如何识别

一、基本变换:层 一般的神经网络是由一层一层堆叠而成的,但是每层究竟在做啥呢? 我从三个方面述说一下:数学公式Y = a ( W * X + b )         其中Y是输出量,X是输入量,a()是一个激活函数,W是权重矩阵,b是偏置向量。每一层都是通过该公式简单的得到输出Y。数学理解 通过如下5种对输入空间(输入向量的集合)的操作,完成

2017-08-27 16:05:44 4428

转载 你应该知道的 RPC 原理

1 如何调用他人的远程服务?由于各服务部署在不同机器,服务间的调用免不了网络通信过程,服务消费方每调用一个服务都要写一坨网络通信相关的代码,不仅复杂而且极易出错。如果有一种方式能让我们像调用本地服务一样调用远程服务,而让调用者对网络通信这些细节透明,那么将大大提高生产力。要让网络通信细节对使用者透明,我们自然需要对通信细节进行封装,我们先看下一个RPC调用的流程:

2017-08-27 11:41:06 278

转载 购物车实现原理

购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。     购物车的功能包括以下几项:n    

2017-08-27 10:43:36 1460

转载 Hadoop NameNode 高可用 (High Availability) 实现解析

NameNode 高可用整体架构概述在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组

2017-08-23 10:44:27 384

原创 Hive基本操作(三)

InsertInserting data into table from queriesStandard syntax:INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement Hive extension

2017-08-22 23:16:41 543

转载 TCP流量控制与拥塞控制

TCP流量控制如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。从图中可以看出,B进行了三次流量控制。第一次把窗口减少到 rwnd = 300 ,第二次又减到了 rwnd = 100 ,最后减到 rwnd = 0 ,

2017-08-20 14:48:03 1871

转载 线段树(二)

Question:给你N个数,有两种操作:1:给区间[a,b]的所有数增加X2:询问区间[a,b]的数的和。输入描述:第一行一个正整数n,接下来n行n个整数,再接下来一个正整数Q,每行表示操作的个数,如果第一数是1,后接3个正整数,表示在区间[a,b]内每个数增加X,如果是2,表示操作2询问区间[a,b]的和是多少。输入样例:55 4 3 2 12

2017-08-20 12:57:53 197

转载 线段树(一)

首先提出一个问题: 给你n个数,有两种操作:1:给第i个数的值增加X2:询问区间[a,b]的总和是什么?输入描述输入文件第一行为一个整数n,接下来是n行n个整数,表示格子中原来的整数。接下一个正整数q,再接下来有q行,表示q个询问,第一个整数表示询问代号,询问代号1表示增加,后面的两个数x和A表示给位置X上的数值增加A,询问代号2表示

2017-08-20 12:24:19 247

转载 TCP连接的建立与终止

1.三次握手TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。第一次握手: 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SE

2017-08-20 10:27:26 290

转载 一致性哈希算法

一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。分布式缓存问题一个网站随着流量增加,服务器压力越来越大,之前直接读写数据库的方式遭遇I/O和连接数的瓶颈,于是我们引入Memcached作为缓存服务器减轻DB压力。

2017-08-19 14:42:21 369

原创 Hive基本操作(二)

Alter Table1 Add  PartitionsALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION 'location1' ] partition_spec [ LOCATION 'location2' ] ...partition_spec: : PARTITION (partition

2017-08-19 10:35:38 332

原创 编程题——和为sum的方法数

题目描述给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。输入描述:输入为两行:第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)第二行为n个正整数A[i](32位整数),以空格隔开。输出描述:输出所求的方案数

2017-08-19 01:53:22 4085

原创 编程题——地下迷宫

题目描述小青蛙有一天不小心落入了一个地下迷宫,小青蛙希望用自己仅剩的体力值P跳出这个地下迷宫。为了让问题简单,假设这是一个n*m的格子迷宫,迷宫每个位置为0或者1,0代表这个位置有障碍物,小青蛙达到不了这个位置;1代表小青蛙可以达到的位置。小青蛙初始在(0,0)位置,地下迷宫的出口在(0,m-1)(保证这两个位置都是1,并且保证一定有起点到终点可达的路径),小青蛙在迷宫中水平移动一个单位距

2017-08-18 15:15:43 1474

原创 子网掩码

IP地址IP默认分配的子网掩码每段只有255或0A类的默认子网掩码 255.0.0.0 一个子网最多可以容纳1677万多台电脑B类的默认子网掩码 255.255.0.0 一个子网最多可以容纳6万台电脑C类的默认子网掩码 255.255.255.0 一个子网最多可以容纳254台电脑要想在同一网段,只要网络标识相同就可以了,那要怎么看网络标识呢?首先要做的是

2017-08-18 11:53:53 429

转载 ST(稀疏表)算法

作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保

2017-08-18 09:07:25 1920 2

原创 Hive基本操作(一)

create table 1、1总述  CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常。  EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录

2017-08-17 19:54:56 443

原创 最小生成树

问题描述给出一些Connections,即Connections类,找到一些能够将所有城市都连接起来并且花费最小的边。如果说可以将所有城市都连接起来,则返回这个连接方法;不然的话返回一个空列表。 注意事项返回cost最小的连接方法,如果cost相同就按照city1进行排序,如果city1也相同那么就按照city2进行排序。样例

2017-08-17 11:43:04 289

空空如也

空空如也

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

TA关注的人

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