自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

然后就去远行

在某个地方,有些不可思议的事物正等待着被我们发现。

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

原创 python中Numpy中的替代值

Numpy可以运用布尔值来替换值。在数组中vector = numpy.array([5, 10, 15, 20])equal_to_ten_or_five = (vector == 10) | (vector == 5)vector[equal_to_ten_or_five] = 50print(vector)[50, 50, 15, 20]在矩阵中:matrix = nump...

2019-12-30 20:34:23 2957

原创 改善深层神经网络:超参数调整、正则化以及优化 —— 3.2 为超范围

上一节已经看到,在超参数范围内,随机取值可以提升搜索效率,但随机取值并不是在有效范围内的随机均匀取值,而是选择合适的标尺用于探究超参数。假设要选取隐藏单元的数量n[l]n^{[l]}n[l],对于给定层,假设选择的取值范围是从50到100中某点,这种情况下,对于50-100的数轴,可以随机在其上取点,这是一个搜索特定超参数的很直观的方式。或者如果要选取神经网络的层数,称之为字母L,也许会选择层...

2019-12-30 15:19:56 307

原创 改善深层神经网络:超参数调整、正则化以及优化 —— 3.1调试处理

如果想尝试调整一些超参数,该如何选择调试值呢?在早一代的机器学习算法中,如果有两个超参数,常见的做法是在网格中取样点,然后系统的研究这些数值,例如放置5∗55*55∗5的点,实际证明,网格可以是5∗55*55∗5,也可多或可少。对于这个例子,可以尝试所有的25个点,然后选择哪个参数效果最好。当参数的数量相对较少时,这个方法很实用。在深度学习领域,推荐使用下面的做法。随机选择点,可以选择同等数...

2019-12-30 12:47:48 187

原创 结构化机器学习项目 —— 1.1 为什么是ML策略

假设你正在调试你的猫类分类器,经过一段时间的调整,你的系统达到了90%的准确率,但对你的应用程序来说还不够好,你可能有很多想法去改善你的系统,比如说收集更多的训练数据;可能训练集的多样性还不够,应该收集更多不同姿势的猫咪图片或者更多样化的反例集;或者你想用梯度下降训练算法,训练久一点;或者你想尝试用一个完全不同的优化算法,比如Adam优化算法;或者尝试使用规模更大或者更小的神经网络;或者你想试试d...

2019-12-27 20:38:11 147

原创 改善深层神经网络:超参数调整、正则化以及优化——2.9学习率衰减

加快学习算法的一个办法就是随着时间慢慢减少学习率,我们将之称为学习率衰减。假设要使用mini-batch梯度下降法,mini-batch数量不大,大概64或者128个样本。在迭代过程中会有噪声,迭代会不断向最小值下降,但是不会精确地收敛,所以算法最后在最小值点附近摆动,并不会真正地收敛。这是因为用的α\alphaα是固定值,不同的mini-batch中有噪音,但要慢慢减少学习率α\alphaα的...

2019-12-27 11:32:27 255

原创 改善深层神经网络:超参数调整、正则化以及优化——2.8 Adam算法(Adaptive Moment Estimation)

Adam算法是Momentum和RMSprop结合在一起得到的。使用Adam算法,首先要初始化Vdw=0,Sdw=0,Vdb=0,Sdb=0V_{dw}=0,S_{dw}=0,V_{db}=0,S_{db}=0Vdw​=0,Sdw​=0,Vdb​=0,Sdb​=0。在第t次迭代中,要计算微分,用当前的mini-batch计算dW,dbdW,dbdW,db,一般会用mini-batch梯度下降法,接...

2019-12-27 11:04:53 1878

原创 改善深层神经网络:超参数调整、正则化以及优化——2.7 RMSprop

RMSprop算法全称是root mean square prop算法,该算法可以加速梯度下降,回忆一下之前的例子,如果执行梯度下降,虽然横轴方向正在推进,但纵轴方向会有大幅度的摆动,假设纵轴代表参数b,横轴代表参数W,可能有W1W_1W1​,W2W_2W2​或者其它重要的参数,为了便于理解,称为b和W。所以如果想减缓b方向的学习,同时加快横轴方向的学习,RMSprop算法可以实现这一点。在第t...

2019-12-27 10:11:24 888 1

原创 改善深层神经网络:超参数调整、正则化以及优化——2.6 动量梯度下降法

如果要优化成本函数,函数如下图所示,红点代表最小值的位置。假设从边缘开始梯度下降,如果进行梯度下降法的一次迭代,无论是batch还是mini-batch下降法,都会产生较大的迭代波动,这会导致花费更多的时间。同时为了避免摆动过大,需要用一个较小的学习率。另一个看待问题的角度是,如果,在竖轴上我们希望摆动小一点,同时,在横轴上希望摆动能大一点,所以我们使用Momentum梯度下降法。我们需要做的是...

2019-12-27 09:28:52 213 1

原创 改善深层神经网络:超参数调整、正则化以及优化——2.5 指数加权平均的偏差修正

vt=βvt−1+(1−β)θtv_t=\beta v_{t-1}+(1-\beta)\theta_tvt​=βvt−1​+(1−β)θt​在指数加权平均早期,因为设定v0=0v_0=0v0​=0,v1=0.98∗v0+0.02∗θ1v_1=0.98*v_0+0.02*\theta_1v1​=0.98∗v0​+0.02∗θ1​,因为v0=0v_0=0v0​=0,所以v1=0.02∗θ1v_1=0....

2019-12-27 08:40:49 194

原创 改善深层神经网络:超参数调整、正则化以及优化——2.3指数加权平均

指数加权平均:vt=βvt−1+(1−β)θtv_t=\beta v_{t-1}+(1-\beta)\theta_tvt​=βvt−1​+(1−β)θt​;当β=0.9\beta=0.9β=0.9时,得到的结果是红线;当β=0.98\beta=0.98β=0.98时,得到的结果是绿线;当β=0.5\beta=0.5β=0.5时,得到的结果是黄线。我们通过进一步分析来理解如何计算得出每日温度的平...

2019-12-26 23:35:18 175

原创 改善深层神经网络:超参数调整、正则化以及优化——2.2 理解Mini-batch梯度下降法

使用batch梯度下降法时,每次迭代都需要遍历整个训练集,可以预期每次迭代的成本都会下降。如果成本函数J是迭代次数的一个函数,它应该会随着每次迭代而减少,如果J在某次迭代中增加了,那肯定出了问题。如果使用mini-batch梯度下降法,如果作出成本函数在整个过程中的图,则并不是每次迭代都是下降的,特别是在每次迭代中要处理的是X{t}X^{\left\{t\right\}}X{t}和Y{t}Y^{...

2019-12-26 22:20:37 355

原创 改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降

机器学习的应用是一个高度依赖经验的过程,优化算法能够帮助你快速训练模型。深度学习没有在大数据领域发挥最大的效果我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢。因此,使用快速的优化算法,使用好用的优化算法能够大大提高效率,现在谈谈mini-batch梯度下降法。向量化能有效地对所有m个例子进行计算,允许处理整个训练集而无需某个明确的公式,所以我们要把训练样本放...

2019-12-26 20:52:49 178

原创 深度学习 —— 深度前馈网络

6.1 XOR例子对于如图所示的异或问题,简单的单层线性函数f(x,w,b)=xTw+bf(x,w,b)=x^Tw+bf(x,w,b)=xTw+b无法解决异或问题;解决办法是增加深度,即加入隐层单元h;h=f(1)(x,W,c),y=f(2)(h,w,b)h=f^{(1)}(x,W,c),y=f^{(2)}(h,w,b)h=f(1)(x,W,c),y=f(2)(h,w,b),完整版的模型是f(...

2019-12-26 10:59:31 299

原创 花书 —— 机器学习基础

1.机器学习算法什么是学习?Mitcgell(1997)提供了一个简洁的定义:“对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由性能度量P衡量的性能有所提升。”什么是机器学习算法?机器学习算法是一种能够从数据中学习的算法。1.1 任务T机器学习的任务是什么?通常机器学习任务定义为机器学习系统应该如何处理样本(example...

2019-12-25 20:57:24 618

原创 西瓜书——EM算法(一)

1. EM算法的引入1.1 为什么需要EM算法概率模型有时既含有观测变量,又含有隐变量或者潜在变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或者贝叶斯估计法估计模型参数。但是,当参数含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法。2. EM算法的例子2.1 《统计学习方法》例9.1(三硬币模型)假设有3....

2019-12-24 22:17:22 696

原创 leetcode —— 687. 最长同值路径

给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。注意:两个节点之间的路径长度由它们之间的边数表示。示例 1:输入:输出:2示例 2:输出:2——————解题思路:要知道通过根节点的最长同值路径,需要知道以左子节点为根的左半边子树的同值的最长路径num(root−>left)num(root->left...

2019-12-20 15:44:14 146

原创 leetcode - 783. 二叉搜索树结点最小距离

给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。示例:注意:二叉树的大小范围在 2 到 100。二叉树总是有效的,每个节点的值都是整数,且不重复。——————解题思路:中序遍历得到的二叉搜索树的结果是按从小到大排序的,因此可以用中序遍历得到的结果计算相邻两位的最小差值就是我们想要的结果。因为使用递归算法,空间复杂度为O(m)O(m)O(m),m是树的深度。...

2019-12-20 12:00:55 150

原创 leetcode —— 589. N叉树的前序遍历 (使用到遍历多叉树的方法)

给定一个 N 叉树,返回其节点值的前序遍历。例如,给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。——————————解法一:通过递归的方法进行求解,时间复杂度为O(n)O(n)O(n),空间复杂度为O(n)O(n)O(n),其C++代码如下:/*// Definition for a Node.class Node {public: int val;...

2019-12-19 12:08:39 193

原创 leetcode —— 938. 二叉搜索树的范围和

给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。示例 1:输入:root = [10,5,15,3,7,null,18], L = 7, R = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10输出:23提示:树中的结点数量最多为...

2019-12-17 20:46:52 127

原创 leetcode —— 1290. 二进制链表转整数

给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/convert-bi...

2019-12-17 18:14:55 419 2

原创 leetcode —— 75. 颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]来源:力扣(LeetCode)链接:https://leetco...

2019-12-17 11:50:55 137

原创 leetcode —— 337. 打家劫舍 III

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:示例 2:来源:力...

2019-12-17 10:35:05 84

原创 leetcode —— 11. 盛最多水的容器

给定 n 个非负整数 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​,每个数代表坐标中的一个点 (i,ai)(i, a_i)(i,ai​) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i,ai)(i, a_i)(i,ai​) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的...

2019-12-16 09:04:00 73

原创 leetcode —— 238. 除自身以外数组的乘积

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出...

2019-12-14 11:29:56 97

原创 leetcode —— 48. 旋转图像

给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:示例 2:————————解题思路:选择某一个点为旋转点,则矩阵中对应的四个点之间存在一个规律,比如对于矩阵中的某个点matrix[i][j]matrix[i][j]matrix[i][j],其在矩阵...

2019-12-14 10:54:48 100

原创 leetocde —— 114. 二叉树展开为链表

给定一个二叉树,原地将它展开为链表。例如,给定二叉树————————解题思路:借鉴windliang发布在leetcode题解上的第一个思路,利用先序遍历,将二叉树展开成一个链表。将左子树插入到右子树的地方;将原来的右子树接到左子树的最右边节点;考虑新的右子树的根节点,一直重复上边的过程,直到新的右子树为 null;其C++代码如下:/** * Definition fo...

2019-12-13 22:06:53 95

原创 自然语言处理 —— 2.7负采样

word2vec的一个缺点是softmax计算起来很慢,这一节中,你会看到一个改善过的学习问题叫做负采样。它能做到与你之前看到的skip-gram模型相似的事情,但是用了一个更加有效的学习算法。I want a glass of orange juice to go along with ...

2019-12-13 20:03:54 710

原创 自然语言处理 —— 2.6 word2vec

假定训练集中给定了一个这样的句子:I want a glass of orange juice to go along with my cereal.I\space want\space a\space glass\space of\space orange\space juic...

2019-12-13 14:56:24 136

原创 自然语言处理 —— 2.5 学习词嵌入

这里将学习一些具体算法来学习词嵌入,在深度学习应用于学习词嵌入的历史上,人们一开始使用的算法比较复杂。但随着时间推移,研究者们不断发现它们能用更加简单的算法来达到一样好的效果,特别是在数据集很大的情况下,但有一件事就是现在很多最流行的算法都十分简单,如果一开始就介绍这些简单的算法你可能会觉得很神经,这么简单的算法究竟是怎么起作用的。所以今天想从一些稍微复杂的算法开始,因为我觉得这样更容易对算法的...

2019-12-13 10:55:36 163 3

原创 自然语言处理 —— 2.4 嵌入矩阵

接下来我们要将学习词嵌入这一问题具体化,当你应用算法来学习词嵌入时,实际上是学习一个嵌入矩阵,我们来看一下这是什么意思。假设我们字典含有10000个单词,有a,aaron等单词,可能还有一个未知词标记。我们要做的就是学习一个嵌入矩阵E,它将是一个300∗10000300*10000300∗10000的矩阵,如果加上未知词,就是300∗10001300*10001300∗10001维的矩阵。这个矩...

2019-12-13 09:41:42 3735 6

原创 自然语言处理 —— 2.3 词嵌入的特性

词嵌入还有一个特性是能帮助实现类比推理,尽管类比推理可能不是自然语言处理中最重要的存在,不过它能帮助人们理解词嵌入做了什么以及词嵌入能做什么,让我们来一探究竟。上图是一系列你希望词嵌入可以捕捉的单词的特征表示,假如提出一个问题,man如果对应woman,那么king应该对应什么?我们都应该能猜到,king应该对应queen。能否有一种算法来自动推导出这种关系?下面就是实现的方法。我们用一个四维...

2019-12-13 09:04:39 240

原创 自然语言处理 —— 2.2 使用词嵌入

上一节中已经了解了不同单词的特征化表示,这一节将会看到我们如何把这种表示方法应用到NLP应用中。我们从一个例子开始,继续用我们的命名实体识别的例子,如果你要找出人名,假如有一个句子Sally Johnson is an orange farmerSally\space Johnson\space is\space an\space orange\...

2019-12-12 22:54:54 267

原创 自然语言处理 —— 2.1 词汇表征

词表示V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]V=[a,aaron,...,zulu,<UNK>]目前为止,我们一直都是用词汇表来表示词,上章节中提到的单词表可能是10000个单词,我们一直用one-hot向量来表示词,比如man在词典中是第5391个单词,那么就可以表示成一个向量,这个向量只在...

2019-12-12 21:53:30 215

原创 160. 相交链表

编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。注意:- 如果两个链表没有交点,返回 null.- 在返回结果后,两个链表仍须保持原有的结构。- 可假定整个链表结构中没有循环。- 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。——————解法一:暴力解法,对于链表headA中的每一个点,都对链表headB中的每一个点进行遍历...

2019-12-12 19:24:37 62

原创 leetcode —— 2. 两数相加 (对于链表更新的细节)

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...

2019-12-12 14:20:08 70

原创 leetcode —— 59. 螺旋矩阵 II

给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]class Solution {public: vector<vector<int>> generateMatrix(int n) { ...

2019-12-12 10:45:31 58

原创 leetcode —— 654. 最大二叉树

给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :解题思路:通过递归和二分查找建立二叉树。其C++代码如下:class Solution {public: ...

2019-12-12 10:15:16 89

原创 cs224 - Lecture2: Word Vectors and Word Senses

课程2:词向量和词义

2019-12-11 22:10:00 93

原创 leetcode —— 1282. 用户分组

有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。示例 1:输入:groupSizes = [3,3...

2019-12-11 19:00:04 234

原创 leetcode —— 866. 回文素数

求出大于或等于 N 的最小回文素数。回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。例如,2,3,5,7,11 以及 13 是素数。回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。例如,12321 是回文数。示例 1:输入:6输出:7示例 2:输入:8输出:11示例 3:输入:13输出:101提示:1 ...

2019-12-11 17:30:15 194

空空如也

空空如也

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

TA关注的人

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