- 博客(133)
- 收藏
- 关注
原创 为什么深度学习不使用牛顿法或拟牛顿法优化
Hessian矩阵是n∗nn∗nn*n的所以空间复杂度会很高f(xk+1)=f(xk)−1/2gTH−1gf(xk+1)=f(xk)−1/2gTH−1gf(x_{k+1}) = f(x_k)-1/2g^TH^{-1}g,所以当f是convex时,牛顿法迭代目标函数一定会下降,但是深度学习是non-convex,所以牛顿法并不是太适用。...
2018-07-10 22:25:27 2713
原创 牛顿法
求凸函数的最小值不过就是找出导函数的零点,所以就是对导函数使用牛顿法迭代计算零点。 牛顿法是对目标函数的二阶泰勒展开,也就相当于导函数的一阶泰勒展开。...
2018-07-09 21:55:03 478
原创 残差结构的理解
首先我们想一下为什么深度学习的效果很好? 我认为最大的原因就是它可以很轻易的实现非常高复杂度的模型,而在传统上想要实现高复杂度并不是很简单的。 传统方法:特征变换(其实手段也很有限,因为实用的核函数种类很少)非线性模型,也决策树为代表的一些模型,adaboost,gbdt,rf等。这些模型想要提升复杂度的话总是有一些受限,而深度学习则不存在这个问题,如果Ein,EoutEin,E...
2018-07-09 15:34:50 8995
原创 focal loss
原文 https://blog.csdn.net/u014380165/article/details/77019084focal 解决的是两个问题:样本不均衡专注于难以分类的样本传统的交叉熵损失:CE=−logptCE=−logptCE=-\log p_t 其中ptptp_t为模型对正确的类别所预测的概率。FL=−αt(1−pt)γlogptFL=−αt(1−pt)γlo...
2018-07-04 17:36:27 2960
原创 MCMC采样方法
马氏链定理如果满足非周期,任意两个状态之间可达则此马氏链收敛于一个平稳分布。非周期:只有当n=d,2d,3d,…时,有p(n)ij>0 ,则状态i为周期性的状态,周期为d。当马尔可夫链中任意一个状态都为周期性的状态时,则称马尔可夫链是周期的。可达的:可从有向图的角度理解。细致平稳条件...
2018-07-04 17:15:30 1013
原创 顺序统计量
XXX服从[0,1]上的均匀分布,对X进行5次独立采样,求最大的样本的分布。 计算x为最大的样本的概率,首先它要在某一次被取到(一个有5次机会),其次其他4个样本都比x要小,所以fmax(x)=5f(x)F4(x)=5x4fmax(x)=5f(x)F4(x)=5x4f_{max}(x) = 5f(x)F^4(x)=5x^4。次序量k取其他值时情况类似,都是计算n*两个独立事件(1. x被取到...
2018-07-02 22:26:11 3847
转载 静态存储区,动态存储区和堆以及栈的关系
所谓静态,就是一定会存在的而且会永恒存在、不会消失,这样的数据包括常量、常变量(const 变量)、静态变量、全局变量等,它们都存储在静态存储区。动态的话,就是会变化的了。动态的区域,就是堆和栈。这个栈应该称作 call stack,上面会存放函数的返回地址、参数和局部变量。而堆放就是我们通过 new 算符和 malloc 函数分配得到的空间,这些都是手动获得的空间,也需要手动的释放。ht...
2018-07-02 09:59:44 1345
原创 static变量的作用域和生存周期,static关键字
静态局部变量、静态全局变量生存周期: 变量从定义到销毁的时间范围,也就是可以访问的时间段。存放在全局数据区的变量的生存周期存在于整个程序运行期间,而存放在栈中的数据则随着函数等的作用域结束导致出栈而销毁,除了静态变量之外的局部变量都存放于栈中。作用域: 变量的可见代码域(块作用域,函数作用域,类作用域,程序全局作用域)。所有的静态变量的生存周期都是从程序开始到结束的。静态变量可分为...
2018-07-02 09:55:25 2305
原创 策梅洛定理
在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。定理具体内容: 在一个双人游戏中,满足: 0. 双人轮流行动 1. 有限步。比如国际象棋好像重复出现三次相同的棋局判和 2. 信息完备。所谓信息完备,大概是玩家明确知道所有之前的步骤。 3. 仅有3种结局,对于玩家1只有:赢,和,输三种结局 当满足上述条件的游...
2018-06-30 17:31:55 2638
原创 决策树如何处理缺失数据
决策树或随即森林中位数(数值型)或众数(类别型)使用其他的训练数据的相应特征做加权补充xgboost的方法分叉时先不考虑缺失值,分好之后分别计算把缺失值放到左面和右面的损失,选择小的作为缺失值分类方向。...
2018-06-21 21:18:52 1744
原创 梯度的计算与证明
偏导数偏导数就是一个多元函数沿相应坐标轴的变化率的函数。计算: 把其他的变量当作常数然后对变量求导即可。方向导数多元函数沿某一个方向变化率的函数。 这个方向由一个单位向量(cosα,cosβ,...)(cosα,cosβ,...)(\cos\alpha,\cos \beta,...)给出。 表示这个单位向量与各个坐标轴的夹角。 方向导数就等于偏导数与方向向量的内积,这个...
2018-06-21 19:48:39 6371
原创 MSE和MAE的比较
两种损失函数的性质异常值MSE对异常值敏感,因为它的惩罚是平方的,所以异常值的loss会非常大。 MAE对异常之不敏感,不妨设拟合函数为常数,那么MSE就相当于所有数据的均值(列出loss对c求导即可),而MAE相当于所有数据的中位数,所以会对异常值不敏感。优化效率MAE不可导而且所有的导数的绝对值都相同,优化时无法确定更新速度, MSE可导,有closed-for...
2018-06-20 14:14:09 14575
原创 特征选择的方法
特征选择的目的:提高模型的准确率构建更快的模型能够对原来的问题给出解释特征选择的方法:计算每个特征与label的相关性,缺点:无法对发现特征之间的组合后的特征的重要性,例如异或分类对每个特征单独训练模型,和1差不多使用L1正则项进行特征选择使用permutation特征选择,例如在RF中可以很方便的计算从空集开始每次对未被选择的特征进行遍历尝试加入,每次加入提升最多的...
2018-06-19 13:54:31 378
原创 卷积神经网络
全连接的缺点:随着图片的增大参数量迅速增长O(n2)O(n2)O(n^2) 2.而且很多参数都是没什么用的,两个距离非常远的像素点相互其实没有什么关联,不需要把它们放在一起做乘加卷积层使用步长为一的原因: 尽量在卷积层不丢失信息,只负责数据的变换,而降采样只由pooling层负责,使得这两个层之间是orthogonal,方便调参。内存和计算时间大部分在卷积层(反向传播是需要使用...
2018-06-19 13:16:32 233
原创 二叉树的非递归遍历
前序遍历把栈中的每一个节点都当作是一棵完整的二叉树,每次pop出一个节点,访问,然后把右左两棵子树入栈。中序遍历把栈中的每一个节点当作是只有右子树的二叉树,这就需要每次入栈时处理好它的左子树,一路向左把所有的节点入栈,然后出栈,访问,然后把这个节点的右子树当作是二叉树按同样的方法处理(一路向左)后序遍历后序遍历的关键就在于如何判断一个节点是应该遍历它的两棵子树还是它自己, 后...
2018-06-18 20:38:20 231
原创 99杯水,1杯毒药,毒药发作时间为一天,两天时间,最少使用多少只小鼠才能确定哪一杯是毒药?
因为一共有两天时间,所以小鼠有三种状态:死活死活活那么n只小鼠一个就有3n3n3^n个状态,所以n的最小值为5.具体操作: 把0-99号杯子转化为3进制,0表示不喝,1表示0时刻喝,2表示1时刻喝。小鼠的状态:死对应1,活死对应2,活活对应0,然后把小鼠的状态转化为10进制则为有毒药的杯子号。扩展: 如果把条件变成98杯水和2杯毒药,最少需要多少只小鼠?...
2018-06-15 10:44:45 6074
原创 需求定律
需求定律(Law of demand)是一条经济学定律,断言假设其他因素不变,当一物品价格增加,其需求量会下降,反之亦然。需求量随价格的变化而变化的曲线——需求曲线需求:整个的需求曲线,它代表了消费者的购买意图需求量:某个价格下的消费者的意图购买量
2018-01-01 12:54:37 2193
原创 Linux下tar gz的含义
tar是指将多个文件打包到一起变成一个文件 本程序最初的设计目的是将文件备份到磁带上(**t**ape **ar**chive),因而得名tar。gz是gzip的缩写,是一种压缩方式,通常看到的.tar.gz结尾的文件就是通过tar打包后用gz压缩的文件。
2017-11-09 16:20:53 2095
翻译 如何处理不平衡数据
采样法过采样和欠采样过采样:过拟合(学习到小类别样本中的噪声) 欠采样:欠拟合(丢失大类别样本中的重要数据)SMOTE算法找到小类别样本中的k个近邻,然后在他们之间的连线上取点,作为新的样本。缺点:容易过拟合Borderline-SMOTE其与SMOTE的不同是:SMOTE是对每一个minority样本产生综合新样本,而Borderline-SMOTE仅对靠近边界的minority样本创造新数据。
2017-10-16 22:21:16 1368
原创 为什么使用ReLU而不是sigmoid
sigmoid计算复杂,需要计算指数梯度弥散: 对于每层只有一个神经元的网络,考虑每一层的偏导数,我们发现 ∂C∂b1=σ′(z1),w2σ′(z2),w3σ′(z3),w4σ′(z4),∂C∂a4.(122)\begin{eqnarray} \frac{\partial C}{\partial b_1} = \sigma’(z_1) , w_2 \sigma’(z_2) , w_3
2017-10-12 13:25:41 2394
原创 [python]leetcode(309). Best Time to Buy and Sell Stock with Cooldown
problem Say you have an array for which the ith element is the price of a given stock on day i. Design an algorithm to find the maximum profit. You may complete as many transactions as you
2017-10-06 21:52:44 691
原创 [python]leetcode(75). Sort Colors
problem Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will
2017-10-06 18:59:01 433
原创 条件随机场(CRF)
在进行样本标注时,不认为它们类别之间是独立的,而是和它们的先后关系有一定的区别,例如在词性标注中,两个相邻的单词即使在其他语料中几乎都被标记为动词,那么它俩也不可能同时为动词,这样就是利用了样本的顺序信息。据此,我们可以建立多个特征函数来评价一个标记序列,Introduction to Conditional Random FieldsImagine you have a sequence of s
2017-10-01 15:50:00 444
原创 [python]leetcode(49). Group Anagrams
problem Given an array of strings, group anagrams together.solution这个问题的关键就在于如何判别两个字符串是不是anagrams,比较容易想到的是把字符串排序之后在进行比较,只不过这样的复杂度是O(nlogn)O(n\log n),n为字符串长度,我们要利用的信息就是不管怎么样排列都是anagram,所以要找到一个函数使得变换次
2017-09-27 22:38:34 531
原创 [python]leetcode(22). Generate Parentheses
problem Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.solution1-回溯法参考这篇博客的模板,我们可以把括号生成的问题考虑成一颗二叉树遍历问题,对这棵树进行遍历回溯。class Solution(object):
2017-09-27 20:57:31 374
原创 [python]leetcode(148). Sort List
problem Sort a linked list in O(n log n) time using constant space complexity.solution因为常见的排序算法时间复杂度描述的都是顺序表,而链表和顺序表的主要区别就是顺序表可以随机存取,而链表的查找效率为O(n)O(n),插入、删除操作链表的效率要更高,但是这建立在已知插入位置的情况下。class Solution
2017-09-27 14:06:15 480
原创 [python]leetcode(23). Merge k Sorted Lists
problem Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.solution对于这个问题,有这样两种主要的思路:从这k个链表中找出最小的连接到dummy node上,知道所有链表为空。把merge k简化成merge 2,也就是每次只
2017-09-26 19:15:59 1052
原创 广义线性模型
什么是广义线性模型广义线性模型(GLM)假设实验者所量测的随机变数(Y)的分布函数与实验中系统性效应(X,即信息,非噪声)可经由一链接函数(link function)建立起可资解释其相关性的函数。也就是说可以找到一个链接函数,找出X与Y的相关性。也就是说E(y)=μ=g−1(Xβ)\operatorname {E}({\boldsymbol {y}})={\boldsymbol {\mu }}
2017-09-25 14:21:01 484
原创 检验样本是否服从正态分布,处理偏态分布
在数据分析中如果某个数据服从正态分布的话,我们可以利用正态分布的性质做出很多有意义的分析,例如t-检验。。如何检验样本是否服从正态分布? 可以使用Q-Q图来进行检验,Q-Q图是一个散点图,点(x, y)表示数据x的某个分位数,y表示和x的分位数相同的分位数(即FX(x)=FY(y)F_X (x)=F_Y(y)),如果说两个分布的QQ图在一条直线上,则说明每个[xi,xi+1],[yi,yi+1][
2017-09-23 22:10:09 13338
原创 42. Trapping Rain Water
problem Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. For example, Given [0,1,0,2,
2017-09-22 11:33:10 223
原创 [python]leetcode(632). Smallest Range
problem You have k lists of sorted integers in ascending order. Find the smallest range that includes at least one number from each of the k lists. We define the range [a,b] is smaller tha
2017-09-21 12:10:43 590
原创 特征工程
特征值处理对特征的值进行操作特征处理特征二值化:通过阈值把特征转化为0-1,有些特征只接受布尔值作为输入。特征离散化:把连续的数值转化为离散的,是让每一部分样本相同,还是每一部分区间长度相同?特征值转化:放缩、平移特征正规化:把所有的特征的分布变为N(0,1)N(0, 1),这样在梯度下降时收敛更快。对特征加入先验:例如可以用来区分是语法词还是情感词。特征选择less is more
2017-09-21 10:53:30 416
原创 [python]leetcode(450). Delete Node in a BST
problem Given a root node reference of a BST and a key, delete the node with the given key in the BST. Return the root node reference (possibly updated) of the BST. Basically, the deletion
2017-09-20 12:55:23 700
原创 python list 切片
list: l = list(range(10)) 对于切片l[start:end:step],其中step为正数时,start的默认值为0,end默认值为len(l)-1,step为负数时,start默认值len(l)-1,end默认值为0。生成方式:ans = []for i in range(inf): if start + i*step < end: ans.a
2017-09-19 22:10:22 986
原创 [python]leetcode(79). Word Search
problem Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally
2017-09-19 22:00:21 1962
原创 先验分布,后验分布,共轭分布的关系
先考虑一下我们是如何解决一个概率问题的:在一个实际问题中我们通常是根据经验选出一个模型,例如一个抛硬币可以抽象为伯努利分布(0-1分布)的模型,人的身高分布可以抽象为正态分布的模型,然后根据数据推算出模型的参数。而这个选取的模型就决定了似然函数p(X|θ)p(X|\theta)的形式。例如抛硬币模型:f(k;n,p)=Pr(K=k)=(nk)pk(1−p)n−kf(k;n,p)=\Pr(K=k)={
2017-09-19 15:16:12 4818
原创 [python]回溯法模板
什么是回溯法回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。无重复元素全排列问题给定一个所有元素都不同的list,要求返回list元素的全排列。设n = len(list),那么这个问题可以考虑为n叉树,对这个树
2017-09-18 16:36:46 13248 4
原创 [python]leetcode(76). Minimum Window Substring
problem Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). For example, S = “ADOBECODEBANC” T = “ABC” Minimum window
2017-09-17 17:12:08 489
原创 [python]leetcode(438). Find All Anagrams in a String
problem Given a string s and a non-empty string p, find all the start indices of p’s anagrams in s. Strings consists of lowercase English letters only and the length of both strings s and
2017-09-17 16:49:30 1250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人