- 博客(49)
- 收藏
- 关注
原创 Logging
python中logging模块的使用1.创建logimport logginglogger = logging.getLogger("logname")2.设置参数log级别:logger.setLevel(logging.DEBUG)或者直接设置config:logging.basicConfig(format='%(message)s', level=lo...
2019-04-03 11:22:35
192
原创 Paper reading: Playing Atari with Deep Reinforcement Learning
论文的Motivation是大部分效果比较好的RL算法都是基于大量的人工特征,而Deep Neural Network(CNN等)已经在图像等领域被证明具有很好的直接从原始数据中提取高层特征的能力,因此很自然的想到将Deep Neural Network与RL算法结合。但是Deep learning与reinforcement learning有很大的不同:1. deep learning...
2019-03-20 13:11:06
375
原创 Paper reading: Human-level control through deep reinforcement learning
提出问题:To use reinforcement learning successfully insituationsapproaching real-world complexity, however, agents are confrontedwith a difficult task: theymust derive efficient representations of the...
2019-03-18 11:23:39
185
原创 120. 三角形最小路径和
class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { vector<int> res; res.push_back(triangle[0][0]); for(int i=1; i<trian...
2018-08-24 01:45:40
240
原创 230. 二叉搜索树中第K小的元素
题目:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。解法一:利用中序遍历,不需要全部遍历完,找到第K个就可以/** * Definition for a binary tree node. * struct TreeNode { * int val...
2018-08-24 01:14:20
130
原创 关于Dropout
1.Dropout: A simple way to prevent neural networks from overfitting摘要中提出,对于深度神经网络,过拟合是一个严重的问题,并且对于参数庞大的网络,计算速度很慢,没有办法采用传统的用多个模型集成的方法来解决过拟合。因此提出了Dropout的方法来解决过拟合问题,Dropout的核心是在训练时随机的丢掉一些unit。在训练时,相...
2018-07-26 01:18:29
757
原创 基于RNN构建的语言模型
语言模型的作用:1.可以给出任意一个句子的分数,评价这个句子在实际中发生的可能性。2.可以产生新的句子(character level language model)论文1.Recurrent neural network based language model模型: ,输入为,包含了当前词和上一时刻的状态,其中的维度为词表大小 hidden state 为...
2018-07-26 01:18:11
2201
原创 正交初始化(orthogonal initialize)
正交初始化:用以解决深度网络下的梯度消失、梯度爆炸问题,在RNN中经常使用的参数初始化方法。https://blog.csdn.net/shenxiaolu1984/article/details/71508892实现代码:def orthogonal(shape): flat_shape = (shape[0], np.prod(shape[1:])) a ...
2018-07-26 01:17:33
12107
转载 Batch Normalization
https://www.leiphone.com/news/201611/oykRjZskXc2kByKx.htmlhttps://www.zhihu.com/question/38102762/answer/85238569https://blog.csdn.net/leayc/article/details/77645877BNLSTM实现代码:https://github.c...
2018-07-26 01:17:12
118
原创 剑指offer31 -- 字符流中第一个不重复的字符
题目描述:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。解题思路:题目的关键是字符流,需要自己定义一个数据结构存储数据流# -*- coding:u...
2018-07-24 00:55:58
95
原创 剑指offer30 -- 构建乘积数组
题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。解题思路:运用动态规划的方法,得到前向乘积和后向乘积两个数组,每一次分别从前向和后向中取对应部分# -*- coding:utf-8 -*-class Solution...
2018-07-24 00:38:42
139
原创 剑指offer29 -- 数组中重复的数字
题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路:因为数组的长度为n,如果没有重复每个数与其下标相同,如果该下标已经相同了,则说明有重复。# -*...
2018-07-24 00:23:05
122
原创 剑指offer28 -- 不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路:使用位运算第一步不考虑进位,对每一位直接相加,1加0和0加1都等于1,0加0和1加1都等于0,这和异或的结果相同第二步考虑进位,只有1加1会产生进位,因此先按位与,结果为1的位置需要向前进1位,即<<1第三步用同样的方法将两个结果相加循环知道没有进位为止# -...
2018-07-23 02:24:05
102
原创 剑指offer27 -- 孩子们的游戏(圆圈中最后剩下的数)
题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....
2018-07-23 02:05:03
113
原创 剑指offer26 -- 扑克牌顺子
题目描述:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小王可以看成任何数字,并且A看作1,J为11,Q为12,K...
2018-07-23 01:48:13
101
原创 剑指offer25 -- 翻转单词顺序列
题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?解题思路:跟2...
2018-07-23 01:31:22
97
原创 剑指offer24 -- 左旋转字符串
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解题思路:对整体进行左旋以后,再部分旋转# -*- coding:utf-8 -*...
2018-07-23 01:26:52
99
原创 剑指offer23 -- 和为s的两个数字
题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。解题思路:一种方法就是用两个指针,因为是排序数列,一个从前,一个从后,如果和小于S,前面的指针走一步,如果和大于S,后面的指针走一步# -*- coding:utf-8 -*-class Solution: def FindNumbe...
2018-07-23 01:16:01
83
原创 剑指offer22 -- 和为S的连续正数序列
题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数...
2018-07-23 01:01:48
99
原创 剑指offer20 -- 平衡二叉树
题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。解题思路:平衡二叉树的定义:平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。递归判断:左右子树的高度差绝对值不超过1,且左右子树都是一颗平衡数...
2018-07-22 19:33:58
86
原创 剑指offer19 -- 二叉树的深度
题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路:做深度优先搜索,找出最大路径长度# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# se...
2018-07-22 19:26:50
86
原创 剑指offer18 -- 数字在排序数组中出现的次数
题目描述:统计一个数字在排序数组中出现的次数解题思路:使用二分查找的方法,从数组的中点开始查找,如果中点的数大于目标,在数组左边查找;如果中点的数小于目标,在数组右边查找;如果中点的数恰好等于目标,将目标与左端点和右端点的数相比,如果左端小于目标数,继续在左端搜索;如果右端大于目标数,继续在右端搜索关键需要考虑清楚边界。# -*- coding:utf-8 -*-class...
2018-07-22 19:16:58
96
原创 剑指offer17 -- 两个链表的第一个公共结点
题目描述:输入两个链表,找出它们的第一个公共结点。解题思路:首先遍历两个链表,分别得到两个链表的长度,然后让长的链表先走diff步(diff为长度差),然后两个指针同时走,走到相同即为第一个公共结点。依据是公共部分的长度是相等的。解答:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):...
2018-07-22 18:33:01
92
原创 剑指offer15 -- 第一个只出现一次的数字
题目描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).解题思路:第一遍扫描数组时得到hash表(每个字母的频率计数),第二遍扫描数组,每次从hash表中取出频率,第一个频率为1的即为所求。时间复杂度O(n)解答:# -*- coding:utf-8 -*-c...
2018-07-22 10:28:40
112
原创 剑指offer13 -- 把数组排成最小的数
题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题思路:两个数之间比较,看哪个数放在前面排成的数字较小。利用冒泡的方法,将数组排序解答:# -*- coding:utf-8 -*-class Solution: def Prin...
2018-07-22 00:36:40
159
原创 剑指offer11 -- 连续子数组的最大和
题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大...
2018-07-21 22:28:15
79
原创 剑指offer10 -- 最小的k个数
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解题思路:使用快排的思路,每一次交换以后判断右边的数的个数,大于k的话在右边找最小的k个,小于k的话在左边找最小的k-r(r位右边的长度),等与k的话直接返回或者直接找partition点,如果parttion点恰好等于k-1就返回,如果大于k-1则在...
2018-07-21 22:19:28
86
原创 cross-entropy
1.交叉熵的定义2.交叉熵与信息熵、KL散度的关系信息熵是用来衡量不确定性的。信息量的定义:不确定性越大,所包含的信息量越大;不确定性越小,所包含的信息量定义:为一个随机分布,,当时,所包含的信息量为根据概率分布的性质,,所以, 当且仅当时,;且越大,越小信息熵可以看作是一个概率分布信息量的期望,KL散度(相对熵)是用来衡量两个分布之间的差异,也可以认为是从分布p到...
2018-07-21 12:06:19
755
原创 剑指offer9 -- 数组出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解答:# -*- coding:utf-8 -*-class Solution: def MoreThanHalfNum_Solution(self, nu...
2018-07-20 01:56:59
104
原创 剑指offer8 -- 字符串的排列
问题描述:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路:回溯法# -*- coding:utf-8 -*-class Solution: def ...
2018-07-20 01:53:26
173
原创 剑指offer7--二叉搜索树与双向链表
问题描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:二叉搜索树的中序遍历,同时每一次增加一个指向# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# ...
2018-07-20 01:30:25
96
原创 剑指offer6--复杂链表的复制
题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路:关键是需要记录每一个random指针指向的节点。这个想法很巧妙,首先在每一个节点后面插入一个节点,插入的节点值跟该节点相同,且特殊指针指向的节点也相同...
2018-07-20 01:11:25
105
原创 剑指offer5--二叉树中和为某一值的路径
题目描述:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)解题思路:深度优先遍历,每一次遍历到叶子节点判断是否满足和为expectnumber重点是路径的存储方式,将某一节点后的路径都存储为嵌套列表。# -*- coding...
2018-07-20 00:08:03
81
原创 剑指offer4-- 二叉搜索树的后续遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路:二叉搜索树的特征:左儿子<父亲<右儿子后续遍历:左子树、右子树、根根据后续遍历的规律,首先可以找到根节点,然后根据左子树上的元素都小于根节点,右子树上的元素都大于根节点,可以分别得到左子树对应的后续遍历序列和右...
2018-07-19 23:53:18
106
原创 剑指offer3--从上往下打印二叉树
题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路:维持一个队列,首先让根节点入队,然后对于,每一个节点,当其左右儿子入队时,该节点出队,进入打印列表。 # class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...
2018-07-19 23:37:06
99
原创 剑指offer2 -- 栈的压入、弹出序列
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:根据栈压入和弹出的规则,要么压入就弹出,要么一定在后压入的元素之后...
2018-07-19 23:27:24
81
原创 剑指offer1 - 包含min函数的栈
思路是同时维护两个栈,一个存放数字,一个存放min# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack = [] self.min_stack = [] def push(self, node): self.stack.append(nod...
2018-07-19 22:38:03
65
论文学习 -- Attending to Characters in Neural Sequence Labeling Models
2016 COLING 的一篇文章,在序列标注的框架里,同时使用character级别的embedding和word级别的embedding并且在两种embedding之间使用attention的机制结合序列标注模型: BI-LSTM + CRF, 有一个问题不太理解:为什么这里要加一个层,解释的理由不是太理解。loss function是最小化负的正样本的log概率,概率是C...
2018-07-13 18:26:05
1267
原创 leetcode -- 718. 最长重复子数组
用动态规划class Solution(object): def findLength(self, A, B): """ :type A: List[int] :type B: List[int] :rtype: int """ LENA = len(A) LENB = len(...
2018-07-13 09:20:37
493
原创 Language Model 论文
1.A Neural Probabilistic Language Modelwww.jmlr.org/papers/volume3/bengio03a/bengio03a.pdfBegio的一篇文章,建立语言模型根本的问题是维度灾难,为了解决这个问题使用N-gram,但N-gram的问题是对于训练集中没有出现的句子,概率很小,所以要把N取得小,这样有两点问题:1....
2018-07-11 16:53:39
472
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人