自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 算法面试题系列:Leetcode 数据结构探索:队列和栈(一)

Leetcode 算法面试题之路(一)新手村之数据结构探索:队列和栈(一)队列 & 栈介绍在数组中,我们可以通过索引访问随机元素。但是,在某些情况下,我们可能想要限制处理顺序。比如我们可以选择两种不同的处理顺序,先入先出和后入先出,分别对应两个不同的线性数据结构,队列和栈。我们将详细介绍每个数据结构的定义,实现和内置函数。 然后,我们将更多地关注这两种数据结构的实际应用。学习的目标了解 FIFO 和 LIFO 处理顺序的原理;实现这两个数据结构;熟悉内置的队列和栈结构;解决

2020-05-15 13:48:38 312

原创 面试与笔试算法题:leetcode_07

Leetcode 第七题:整数反转题目描述及要求题目概述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。题目示例:示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意事项:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围...

2019-07-03 13:20:08 173

原创 剑指 offer 笔记(二)

第二章 面试需要的基础知识面试官谈基础知识C++ 的基础知识,如面向对象的特性、构造函数、析构函数、动态绑定等,能够反映出应聘者是否善于把握问题本质,有没有耐心深入一个问题。另外还有常用的设计模式、UML 图等,这些都能体现应聘者是否有软件工程方面的经验。对基础知识的考查需要特别重视 C++ 中对内存的使用管理。内存管理是 C++ 程序员特别注意的,因为内存的使用和管理会影响程序的...

2019-06-08 09:19:39 241

原创 剑指offer笔记(一)

第一章 面试的流程面试官谈面试对于初级程序员,一般会偏向考察算法和数据结构,看应聘者的基本功;对于高级程序员,会多关注专业技能和项目经验。应聘者要事先做好准备,对公司近况、项目情况有所了解,对应聘的工作很有热情。另外,应聘者还要准备好合适的问题问面试官。应聘者在面试过程中首先需要放松,不要过于紧张,这有助于后面解决问题时开拓思路。其次不要急于编写代码,应该先了解清楚所要解决的...

2019-06-05 21:00:45 233

翻译 CS231n:面向视觉识别的卷积神经网络学习笔记(四)

线性分类损失函数从图像像素值到所属类别的评分函数(score function)的参数是权重矩阵 W。在函数中,数据 (xi,yi)(x_i,y_i)(xi​,yi​) 是给定的,不能修改。但是我们可以调整权重矩阵这个参数,使得评分函数的结果与训练数据集中图像的真实类别一致,即评分函数在正确的分类的位置应当得到最高的评分(score)。我们将使用损失函数(Loss Funct...

2019-05-16 18:16:51 370

翻译 CS231n:面向视觉识别的卷积神经网络学习笔记(三)

线性分类线性分类器简介图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。k-Nearest Neighbor (k-NN)分类器的基本思想是通过将测试图像与训练集带标签的图像进行比较,来给测试图像打上分类标签。k-Nearest Neighbor 分类器存在以下不足:分类器必须记住所有训练数据并将其存储起来,以便于未来测试数据用于比较。这在存储空间上...

2019-05-14 21:56:17 305

翻译 CS231n:面向视觉识别的卷积神经网络学习笔记(二)

图像分类验证集、交叉验证集和超参数调优用于超参数调优的验证集k-NN 分类器需要设定 k 值,那么选择哪个 k 值最合适的呢?我们可以选择不同的距离函数,比如 L1 范数和 L2 范数等,那么选哪个好?还有不少选择我们甚至连考虑都没有考虑到(比如:点积)。所有这些选择,被称为超参数(hyperparameter)。在基于数据进行学习的机器学习算法设计中,超参数是很常见的。一般说来...

2019-05-14 17:51:39 265

翻译 CS231n:面向视觉识别的卷积神经网络学习笔记(一)

图像分类图像分类、数据驱动方法和流程图像分类目标:介绍图像分类问题所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像。计算机视觉领域中很多看似不同的问题(比如物体检测和分割),都可以被归结为图像分类问题。例子:以下图为例图像分类模型读取该图片,并生成该图片属于集合 {cat, dog, ...

2019-05-12 11:43:15 312

转载 算法工程师修仙之路:Mxnet(四)

深度学习基础线性回归的简洁实现实践中,我们通常可以用更简洁的代码来实现同样的模型,我们将介绍如何使用 MXNet 提供的Gluon 接口更方便地实现线性回归的训练。生成数据集我们生成与之前相同的数据集,其中 features 是训练数据特征,labels 是标签。from mxnet import autograd, ndnum_inputs = 2num_example...

2019-05-04 17:54:07 205

转载 算法工程师修仙之路:Mxnet(三)

深度学习基础尽管强大的深度学习框架可以减少大量重复性工作,但若过于依赖它提供的便利,会导致我们很难深入理解深度学习是如何工作的。因此,我们将介绍如何只利用 NDArray 和 autograd 来实现一个线性回归的训练。线性回归的从零开始实现首先,导入所需的包或模块,其中的 matplotlib 包可用于作图:from IPython import displayfr...

2019-05-03 18:22:16 273

转载 算法工程师修仙之路:Mxnet(二)

深度学习基础作为机器学习的一类,深度学习通常基于神经网络模型逐级表示越来越抽象的概念或模式。我们先从线性回归和 softmax 回归这两种单层神经网络入手,简要介绍机器学习中的基本概念。然后,我们由单层神经网络延伸到多层神经网络,并通过多层感知机引入深度学习模型。在观察和了解了模型的过拟合现象后,我们将介绍深度学习中应对过拟合的常用方法:权重衰减和丢弃法。接着,为了进一步理解深度学习...

2019-05-02 18:05:41 155

转载 算法工程师修仙之路:Mxnet(一)

深度学习简介与其设计一个解决问题的程序,不如从最终的需求入手来寻找一个解决方案。事实上,这也是目前的机器学习和深度学习应用共同的核心思想:我们可以称其为“用数据编程”。通俗来说,机器学习是一门讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科。深度学习是指机器学习中的一类函数,它们的形式通常为多层神经网络。近年来,仰仗着大数据集和强大的硬件,...

2019-04-19 13:42:42 325

原创 算法工程师修仙之路:Keras(十四)

深度学习基础神经网络入门预测房价:回归问题分类问题的目标是预测输入数据点所对应的单一离散的标签。回归问题预测一个连续值而不是离散的标签,例如,根据气象数据预测明天的气温,或者根据软件说明书预测完成软件项目所需要的时间。波士顿房价数据集预测20世纪70年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。用到的数据集包含的数据点相对较少,...

2019-03-21 12:02:10 322

原创 算法工程师修仙之路:Keras(十三)

深度学习基础神经网络入门新闻分类:多分类问题

2019-03-20 14:12:26 355

原创 算法工程师修仙之路:Keras(十二)

深度学习基础神经网络入门电影评论分类:二分类问题二分类问题可能是应用最广泛的机器学习问题。在这个例子中,将根据电影评论的文字内容将其划分为正面或负面。IMDB 数据集IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50000条严重两极分化的评论。数据集被分为用于训练的25000条评论与用于测试的25000条评论,训练集和测试集都包含50%的正面评论和50%的负面评论。...

2019-03-17 10:12:08 493

原创 算法工程师修仙之路:Keras(十一)

深度学习基础神经网络入门Keras 简介Keras 是一个 Python 深度学习框架,可以方便地定义和训练几乎所有类型的深度学习模型。Keras 最开始是为研究人员开发的,其目的在于快速实验。Keras 具有以下重要特性:相同的代码可以在 CPU 或 GPU 上无缝切换运行。具有用户友好的 API,便于快速开发深度学习模型的原型。内置支持卷积网络(用于计算机视觉)...

2019-03-15 17:48:28 409 1

原创 算法工程师修仙之路:Keras(十)

深度学习基础神经网络入门神经网络剖析训练神经网络主要围绕以下四个方面:层,多个层组合成网络(或模型);输入数据和相应的目标;损失函数,即用于学习的反馈信号;优化器,决定学习过程如何进行。网络、层、损失函数和优化器之间的关系多个层链接在一起组成了网络,将输入数据映射为预测值。然后损失函数将这些预测值与目标进行比较,得到损失值,用于衡量网络预测值与预期结果的匹配程...

2019-03-15 16:00:48 186

原创 算法工程师修仙之路:Keras(九)

深度学习基础神经网络的数学基础神经网络的“引擎”:基于梯度的优化我们的第一个神经网络示例中,每个神经层都用下述方法对输入数据进行变换。output = relu(dot(W, input) + b)在这个表达式中,W 和 b 都是张量,均为该层的属性。它们被称为该层的权重(weight)或可训练参数(trainable parameter),分别对应 kernel 和 bia...

2019-03-15 11:24:45 286

原创 算法工程师修仙之路:机器学习实战(四)

第一部分:分类第二章 k-近邻算法k-近邻算法概述简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高、空间复杂度高。适用数据范围:数值型和标称型。k-近邻算法(kNN)的工作原理存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一...

2019-02-25 10:20:56 344 1

原创 算法工程师修仙之路:机器学习实战(三)

第一部分:分类第一章 机器学习基础Python 语言的优势基于以下三个原因,我们选择 Python 作为实现机器学习算法的编程语言:Python 的语法清晰;易于操作纯文本文件;使用广泛,存在大量的开发文档。可执行伪代码Python 具有清晰的语法结构,它也被称作可执行伪代码(executable pseudo-code);默认安装的 Python 开发环境已经附...

2019-02-23 17:20:09 187

原创 算法工程师修仙之路:机器学习实战(二)

第一部分:分类第一章 机器学习基础机器学习的主要任务机器学习解决分类问题的主要任务是将实例数据划分到合适的分类中。机器学习的另一项任务是回归,它主要用于预测数值型数据。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成由...

2019-02-23 13:05:16 253

原创 算法工程师修仙之路:机器学习实战(一)

第一部分:分类第一章 机器学习基础在监督学习的过程中, 我们只需要给定输入样本集, 机器就可以从中推演出指定目标变量的可能结果。监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果。监督学习一般使用两种类型的目标变量:标称型和数值型。标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合 {爬行类、鱼类、哺乳类、两栖类} ;数值...

2019-02-22 16:52:15 311

原创 算法工程师修仙之路:Keras(八)

深度学习基础神经网络的数学基础神经网络的“齿轮”:张量运算张量变形第三个重要的张量运算是张量变形(tensor reshaping)。张量变形是指改变张量的行和列,以得到想要的形状。变形后的张量的元素总个数与初始张量相同。>>> x = np.array([[0., 1.], [2., 3.], [4., 5.]])>>...

2019-02-20 17:29:44 733

原创 算法工程师修仙之路:Keras(七)

深度学习基础神经网络的数学基础神经网络的“齿轮”:张量运算所有计算机程序最终都可以简化为二进制输入上的一些二进制运算(AND、OR、NOR等),与此类似,深度神经网络学到的所有变换也都可以简化为数值数据张量上的一些张量运算(tensor operation),例如加上张量、乘以张量等。在最开始的例子中,我们通过叠加 Dense 层来构建网络:keras.layers.Dense...

2019-02-20 15:57:35 338

原创 算法工程师修仙之路:Keras(六)

深度学习基础神经网络的数学基础神经网络的数据表示在 Numpy 中操作张量我们可以使用语法 train_images[i] 来选择沿着第一个轴的特定数字,选择张量的特定元素叫作张量切片(tensor slicing)。我们来看一下 Numpy 数组上的张量切片运算:选择第10~100个数字(不包括第100个),并将其放在形状为(90, 28, 28) 的数组中。>&g...

2019-02-17 22:23:45 321

原创 算法工程师修仙之路:Keras(五)

深度学习基础神经网络的数学基础神经网络的数据表示数据存储在多维 Numpy 数组中,也叫张量(tensor)。一般来说,当前所有机器学习系统都使用张量作为基本数据结构。张量这一概念的核心在于,它是一个数据容器。它包含的数据几乎总是数值数据,因此它是数字的容器。矩阵是二维张量,张量是矩阵向任意维度的推广,张量的维度(dimension)通常叫作轴(axis)。标量(0D 张量...

2019-02-17 11:53:37 211

原创 算法工程师修仙之路:Keras(四)

深度学习基础神经网络的数学基础初识神经网络我们来看一个具体的神经网络示例,使用 Python 的 Keras 库来学习手写数字分类。我们这里要解决的问题是,将手写数字的灰度图像(28 像素 × 28像素)划分到10个类别中(0~9)。我们将使用 MNIST 数据集,它是机器学习领域的一个经典数据集,其历史几乎和这个领域一样长,而且已被人们深入研究。这个数据集包含60...

2019-02-16 13:46:54 400

原创 算法工程师修仙之路:Keras(三)

深度学习基础什么是深度学习为什么是深度学习,为什么是现在深度学习用于计算机视觉的两个关键思想,即卷积神经网络和反向传播,在1989年就已经为人们所知。长短期记忆(LSTM, long short-term memory)算法是深度学习处理时间序列的基础,它在1997年就被开发出来了,而且此后几乎没有发生变化。总的来说,三种技术力量在推动着机器学习的进步:硬件数据集和基准算...

2019-02-16 11:14:02 248

原创 算法工程师修仙之路:Keras(二)

深度学习基础什么是深度学习深度学习之前:机器学习简史深度学习不一定总是解决问题的正确工具:有时没有足够的数据,深度学习不适用;有时用其他算法可以更好地解决问题。概率建模概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。朴素贝叶斯是一类基于应...

2019-02-14 22:14:02 259

原创 算法工程师修仙之路:Keras(一)

深度学习基础什么是深度学习人工智能、机器学习与深度学习人工智能、机器学习与深度学习的关系人工智能人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。早期的国际象棋程序仅包含程序员精心编写的硬编码规则,并不属于机器学习。在相当长的时间内,许多专家相信,只要程序员精心编写足...

2019-02-14 17:17:24 501

原创 算法工程师修仙之路:推荐系统实践(四)

第二章 利用用户行为数据实验设计和算法评测数据集采用 GroupLens 提供的 MovieLens 数据集介绍和评测各种算法。MovieLens 数据集有3个不同的版本,选用中等大小的数据集。该数据集包含6000多用户对4000多部电影的100万条评分。该数据集是一个评分数据集,用户可以给电影评5个不同等级的分数(1~ 5分)。研究隐反馈数据集中的 TopN 推荐问题...

2019-02-12 22:42:51 234

原创 算法工程师修仙之路:推荐系统实践(三)

第二章 利用用户行为数据用户行为数据简介实现个性化推荐的最理想情况是用户能在注册的时候主动告诉我们他喜欢什么,但这种方法有三个缺点:首先,现在的自然语言理解技术很难理解用户用来描述兴趣的自然语言;其次,用户的兴趣是不断变化的,但用户不会不停地更新兴趣描述;最后,很多时候用户并不知道自己喜欢什么,或者很难用语言描述自己喜欢什么。因此,我们需要通过算法自动发掘用户行为数据,从用户的行...

2019-02-06 16:13:25 236

原创 算法工程师修仙之路:推荐系统实践(二)

第一章 好的推荐系统推荐系统评测推荐系统实验方法在推荐系统中,主要有三种评测推荐效果的实验方法,即离线实验(offline experiment)、用户调查(user study)和在线实验(online experiment)。离线实验离线实验的方法一般由如下几个步骤构成:通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;将数据集按照一定的规则分成训练...

2019-01-29 17:38:51 802

原创 算法工程师修仙之路:吴恩达深度学习(六)

神经网络和深度学习神经网络基础计算图可以说,一个神经网络的计算,都是按照前向或反向传播过程组织的,计算图解释了为什么我们用这种方式组织这些计算过程。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作,后者我们用来计算出对应的梯度或导数。我们尝试计算函数 JJJ,JJJ 是由三个变量 a,b,ca, b, ca,b,c 组成的函数,这个函数是 3(a+b...

2019-01-26 17:02:26 144

原创 算法工程师修仙之路:吴恩达深度学习(五)

神经网络和深度学习神经网络基础梯度下降法梯度下降法可以在你测试集上,通过最小化代价函数(成本函数)J(w,b)J(w, b)J(w,b) 来训练的参数 www 和 bbb。梯度下降法的形象化说明:在这个图中,横轴表示你的空间参数 www 和 bbb;在实践中,www 可以是更高的维度,但是为了更好地绘图,我们定义 www 和 bbb 都是单一实数;代价函数(成本函数)J...

2019-01-25 12:02:56 144

原创 算法工程师修仙之路:吴恩达深度学习(四)

神经网络和深度学习logistic 回归对于二元分类问题来讲,给定一个输入特征向量 XXX,它可能对应一张图片,你想识别这张图片看它是否是一只猫或者不是一只猫,你想要一个算法能够输出预测,你只能称之为 y^\hat{y}y^​,也就是你对实际值 yyy 的估计。XXX 是一个 nxn_xnx​ 维的向量(相当于有 nxn_xnx​ 个特征的特征向量)。我们用 www 来表示逻辑回归的...

2019-01-23 12:38:08 132

原创 算法工程师修仙之路:吴恩达深度学习(三)

神经网络和深度学习神经网络基础二分分类在神经网络的计算中,通常先有一个叫做前向传播的步骤,接着有一个叫做反向传播的步骤。逻辑回归是一个用于二分类(binary classification)的算法。这里有一个二分类问题的例子,假如你有一张图片作为输入,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。现在我们可以用字母 yyy 来表示输出...

2019-01-21 21:01:25 126

原创 算法工程师修仙之路:吴恩达深度学习(二)

神经网络和深度学习深度学习引言神经网络的监督学习在监督学习中你有一些输入 xxx,你想学习到一个函数来映射到一些输出 yyy,比如我们之前提到的房价预测的例子,你只要输入有关房屋的一些特征,试着去输出或者估计价格 yyy。如今应用深度学习获利最多的一个领域,就是在线广告。具体就是通过在网站上输入一个广告的相关信息,因为也输入了用户的信息,于是网站就会考虑是否向你展示广告。神经网络...

2019-01-21 11:55:28 158

原创 算法工程师修仙之路:吴恩达深度学习(一)

神经网络和深度学习深度学习引言欢迎深度学习改变了传统互联网业务,例如如网络搜索和广告。但是深度学习同时也使得许多新产品和企业以很多方式帮助人们,从获得更好的健康关注。深度学习做的非常好的一个方面就是读取 X 光图像,到生活中的个性化教育,到精准化农业,甚至到驾驶汽车以及其它一些方面。事实证明,构建机器学习系统的策略改变了深度学习的错误。举个例子:你分割数据的方式,分割成训...

2019-01-20 21:55:16 173

原创 算法工程师修仙之路:TensorFlow(十)

深层神经网络深度学习与深层神经网络激活函数实现去线性化神经元结构的输出为所有输入的加权和,这导致整个神经网络是一个线性模型。如果将每一个神经元(也就是神经网络中的节点)的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,这个非线性函数就是激活函数。加入偏置项和激活函数的神经元结构示意图:神经网络结构加上激活函数和偏置项后的前向传播算法的数学定义:A1=[a...

2019-01-14 12:34:28 137

李沐大神的Mxnet框架与深度学习实战

深度学习框架Mxnet,亚马逊的内部开源框架,由框架开发者李沐亲自编写的深度学习教程

2019-01-07

空空如也

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

TA关注的人

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