
应用
文章平均质量分 89
fangzhan1109
我的未来式由我做主
展开
-
算法工程师修仙之路:Mxnet(四)
深度学习基础线性回归的简洁实现实践中,我们通常可以用更简洁的代码来实现同样的模型,我们将介绍如何使用 MXNet 提供的Gluon 接口更方便地实现线性回归的训练。生成数据集我们生成与之前相同的数据集,其中 features 是训练数据特征,labels 是标签。from mxnet import autograd, ndnum_inputs = 2num_example...转载 2019-05-04 17:54:07 · 233 阅读 · 0 评论 -
算法工程师修仙之路:机器学习实战(四)
第一部分:分类第二章 k-近邻算法k-近邻算法概述简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度高、空间复杂度高。适用数据范围:数值型和标称型。k-近邻算法(kNN)的工作原理存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一...原创 2019-02-25 10:20:56 · 392 阅读 · 1 评论 -
算法工程师修仙之路:推荐系统实践(四)
第二章 利用用户行为数据实验设计和算法评测数据集采用 GroupLens 提供的 MovieLens 数据集介绍和评测各种算法。MovieLens 数据集有3个不同的版本,选用中等大小的数据集。该数据集包含6000多用户对4000多部电影的100万条评分。该数据集是一个评分数据集,用户可以给电影评5个不同等级的分数(1~ 5分)。研究隐反馈数据集中的 TopN 推荐问题...原创 2019-02-12 22:42:51 · 286 阅读 · 0 评论 -
算法工程师修仙之路:机器学习实战(三)
第一部分:分类第一章 机器学习基础Python 语言的优势基于以下三个原因,我们选择 Python 作为实现机器学习算法的编程语言:Python 的语法清晰;易于操作纯文本文件;使用广泛,存在大量的开发文档。可执行伪代码Python 具有清晰的语法结构,它也被称作可执行伪代码(executable pseudo-code);默认安装的 Python 开发环境已经附...原创 2019-02-23 17:20:09 · 222 阅读 · 0 评论 -
算法工程师修仙之路:机器学习实战(二)
第一部分:分类第一章 机器学习基础机器学习的主要任务机器学习解决分类问题的主要任务是将实例数据划分到合适的分类中。机器学习的另一项任务是回归,它主要用于预测数值型数据。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成由...原创 2019-02-23 13:05:16 · 296 阅读 · 0 评论 -
算法工程师修仙之路:Keras(六)
深度学习基础神经网络的数学基础神经网络的数据表示在 Numpy 中操作张量我们可以使用语法 train_images[i] 来选择沿着第一个轴的特定数字,选择张量的特定元素叫作张量切片(tensor slicing)。我们来看一下 Numpy 数组上的张量切片运算:选择第10~100个数字(不包括第100个),并将其放在形状为(90, 28, 28) 的数组中。>&g...原创 2019-02-17 22:23:45 · 381 阅读 · 0 评论 -
算法工程师修仙之路:机器学习实战(一)
第一部分:分类第一章 机器学习基础在监督学习的过程中, 我们只需要给定输入样本集, 机器就可以从中推演出指定目标变量的可能结果。监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果。监督学习一般使用两种类型的目标变量:标称型和数值型。标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合 {爬行类、鱼类、哺乳类、两栖类} ;数值...原创 2019-02-22 16:52:15 · 362 阅读 · 0 评论 -
算法工程师修仙之路:Keras(七)
深度学习基础神经网络的数学基础神经网络的“齿轮”:张量运算所有计算机程序最终都可以简化为二进制输入上的一些二进制运算(AND、OR、NOR等),与此类似,深度神经网络学到的所有变换也都可以简化为数值数据张量上的一些张量运算(tensor operation),例如加上张量、乘以张量等。在最开始的例子中,我们通过叠加 Dense 层来构建网络:keras.layers.Dense...原创 2019-02-20 15:57:35 · 446 阅读 · 0 评论 -
算法工程师修仙之路:Keras(八)
深度学习基础神经网络的数学基础神经网络的“齿轮”:张量运算张量变形第三个重要的张量运算是张量变形(tensor reshaping)。张量变形是指改变张量的行和列,以得到想要的形状。变形后的张量的元素总个数与初始张量相同。>>> x = np.array([[0., 1.], [2., 3.], [4., 5.]])>>...原创 2019-02-20 17:29:44 · 789 阅读 · 0 评论 -
算法工程师修仙之路:Keras(九)
深度学习基础神经网络的数学基础神经网络的“引擎”:基于梯度的优化我们的第一个神经网络示例中,每个神经层都用下述方法对输入数据进行变换。output = relu(dot(W, input) + b)在这个表达式中,W 和 b 都是张量,均为该层的属性。它们被称为该层的权重(weight)或可训练参数(trainable parameter),分别对应 kernel 和 bia...原创 2019-03-15 11:24:45 · 325 阅读 · 0 评论 -
算法工程师修仙之路:Mxnet(三)
深度学习基础尽管强大的深度学习框架可以减少大量重复性工作,但若过于依赖它提供的便利,会导致我们很难深入理解深度学习是如何工作的。因此,我们将介绍如何只利用 NDArray 和 autograd 来实现一个线性回归的训练。线性回归的从零开始实现首先,导入所需的包或模块,其中的 matplotlib 包可用于作图:from IPython import displayfr...转载 2019-05-03 18:22:16 · 323 阅读 · 0 评论 -
算法工程师修仙之路:Mxnet(一)
深度学习简介与其设计一个解决问题的程序,不如从最终的需求入手来寻找一个解决方案。事实上,这也是目前的机器学习和深度学习应用共同的核心思想:我们可以称其为“用数据编程”。通俗来说,机器学习是一门讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科。深度学习是指机器学习中的一类函数,它们的形式通常为多层神经网络。近年来,仰仗着大数据集和强大的硬件,...转载 2019-04-19 13:42:42 · 367 阅读 · 0 评论 -
算法工程师修仙之路:Mxnet(二)
深度学习基础作为机器学习的一类,深度学习通常基于神经网络模型逐级表示越来越抽象的概念或模式。我们先从线性回归和 softmax 回归这两种单层神经网络入手,简要介绍机器学习中的基本概念。然后,我们由单层神经网络延伸到多层神经网络,并通过多层感知机引入深度学习模型。在观察和了解了模型的过拟合现象后,我们将介绍深度学习中应对过拟合的常用方法:权重衰减和丢弃法。接着,为了进一步理解深度学习...转载 2019-05-02 18:05:41 · 191 阅读 · 0 评论 -
算法工程师修仙之路:Keras(十四)
深度学习基础神经网络入门预测房价:回归问题分类问题的目标是预测输入数据点所对应的单一离散的标签。回归问题预测一个连续值而不是离散的标签,例如,根据气象数据预测明天的气温,或者根据软件说明书预测完成软件项目所需要的时间。波士顿房价数据集预测20世纪70年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。用到的数据集包含的数据点相对较少,...原创 2019-03-21 12:02:10 · 383 阅读 · 0 评论 -
算法工程师修仙之路:Keras(十二)
深度学习基础神经网络入门电影评论分类:二分类问题二分类问题可能是应用最广泛的机器学习问题。在这个例子中,将根据电影评论的文字内容将其划分为正面或负面。IMDB 数据集IMDB 数据集,它包含来自互联网电影数据库(IMDB)的50000条严重两极分化的评论。数据集被分为用于训练的25000条评论与用于测试的25000条评论,训练集和测试集都包含50%的正面评论和50%的负面评论。...原创 2019-03-17 10:12:08 · 538 阅读 · 0 评论 -
算法工程师修仙之路:Keras(十三)
深度学习基础神经网络入门新闻分类:多分类问题原创 2019-03-20 14:12:26 · 438 阅读 · 0 评论 -
算法工程师修仙之路:Keras(十一)
深度学习基础神经网络入门Keras 简介Keras 是一个 Python 深度学习框架,可以方便地定义和训练几乎所有类型的深度学习模型。Keras 最开始是为研究人员开发的,其目的在于快速实验。Keras 具有以下重要特性:相同的代码可以在 CPU 或 GPU 上无缝切换运行。具有用户友好的 API,便于快速开发深度学习模型的原型。内置支持卷积网络(用于计算机视觉)...原创 2019-03-15 17:48:28 · 457 阅读 · 1 评论 -
算法工程师修仙之路:Keras(十)
深度学习基础神经网络入门神经网络剖析训练神经网络主要围绕以下四个方面:层,多个层组合成网络(或模型);输入数据和相应的目标;损失函数,即用于学习的反馈信号;优化器,决定学习过程如何进行。网络、层、损失函数和优化器之间的关系多个层链接在一起组成了网络,将输入数据映射为预测值。然后损失函数将这些预测值与目标进行比较,得到损失值,用于衡量网络预测值与预期结果的匹配程...原创 2019-03-15 16:00:48 · 220 阅读 · 0 评论 -
算法工程师修仙之路:Keras(五)
深度学习基础神经网络的数学基础神经网络的数据表示数据存储在多维 Numpy 数组中,也叫张量(tensor)。一般来说,当前所有机器学习系统都使用张量作为基本数据结构。张量这一概念的核心在于,它是一个数据容器。它包含的数据几乎总是数值数据,因此它是数字的容器。矩阵是二维张量,张量是矩阵向任意维度的推广,张量的维度(dimension)通常叫作轴(axis)。标量(0D 张量...原创 2019-02-17 11:53:37 · 245 阅读 · 0 评论 -
算法工程师修仙之路:Keras(四)
深度学习基础神经网络的数学基础初识神经网络我们来看一个具体的神经网络示例,使用 Python 的 Keras 库来学习手写数字分类。我们这里要解决的问题是,将手写数字的灰度图像(28 像素 × 28像素)划分到10个类别中(0~9)。我们将使用 MNIST 数据集,它是机器学习领域的一个经典数据集,其历史几乎和这个领域一样长,而且已被人们深入研究。这个数据集包含60...原创 2019-02-16 13:46:54 · 472 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(八)
TensorFlow 入门TensorFlow实现神经网络完整神经网络样例程序训练神经网络的过程可以分为以下三个步骤:定义神经网络的结构和前向传播的输出结果;定义损失函数以及选择反向传播优化的算法;生成会话并且在训练、数据上反复运行反向传播优化算法。训练神经网络解决二分类问题import tensorflow as tf # NumPy是一个科学计算的工具包,这里...原创 2019-01-12 11:19:29 · 229 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(四)
TensorFlow 入门TensorFlow实现神经网络TensorFlow 游乐场及神经网络简介TensorFlow 游乐场是一个通过网页浏览器就可以训练的简单神经网络并实现了可视化训练过程的工具。TensorFlow 游乐场界面TensorFlow 游乐场的左侧提供了4个不同的数据集来测试神经网络。默认的数据为左上角被框出来的那个。被选中的数据也会显示在最右边...原创 2019-01-06 11:21:30 · 289 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(三)
TensorFlow 入门TensorFlow 运行模型一一会话TensorFlow 使用会话(session)来执行定义好的运算。会话拥有并管理 TensorFlow 程序运行时的所有资源。所有计算完成之后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题。TensorFlow 中使用会话的模式一般有两种。第一种模式需要明确调用会话生成函数和关闭会话函数...原创 2019-01-05 21:39:17 · 210 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(二)
TensorFlow 入门TensorFlow 数据模型一一张量张量的概念张量是 TensorFlow 管理数据的形式,在 TensorFlow程序中,所有的数据都通过张量的形式来表示。从功能的角度上看,张量可以被简单理解为多维数组。零阶张量表示标量(scalar),也就是一个数;一阶张量为向量(vector),也就是一个一维数组;第 n 阶张量可以理解为一个 n 维数组...原创 2019-01-05 20:31:07 · 249 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(一)
TensorFlow 入门TensorFlow 计算模型一一计算图计算图是 TensorFlow 中最基本的一个概念, TensorFlow 中的所有计算都会被转化为计算图上的节点 。计算图的概念Tensor 就是张量,在 TensorFlow 中,张量可以被简单地理解为多维数组。Flow 就是“流”,它直观地表达了张量之间通过计算相互转化的过程。TensorFlow...原创 2019-01-04 11:08:48 · 294 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(七)
TensorFlow 入门TensorFlow实现神经网络通过 TensorFlow 训练神经网络模型设置神经网络参数的过程就是神经网络的训练过程。只有经过有效训练的神经网络模型才可以真正地解决分类或者回归问题。使用监督学习的方式设置神经网络参数需要有一个标注好的训练数据集。在 Tensorflow 游乐场有两种颜色,一种黄色,一种蓝色。任意一种颜色越深,都代表判断的信心越...原创 2019-01-13 12:46:30 · 193 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(九)
深层神经网络深度学习与深层神经网络线性模型的局限性深度学习的精确定义为:一类通过多层非线性变换对高复杂性数据建模算法的合集。因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中基本上可以认为深度学习就是深层神经网络的代名词。深度学习有两个非常重要的特性:多层和非线性。在线性模型中,模型的输出为输入的加权和。假设一个模型的输出y和输入xix_ixi...原创 2019-01-14 11:17:38 · 250 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(十)
深层神经网络深度学习与深层神经网络激活函数实现去线性化神经元结构的输出为所有输入的加权和,这导致整个神经网络是一个线性模型。如果将每一个神经元(也就是神经网络中的节点)的输出通过一个非线性函数,那么整个神经网络的模型也就不再是线性的了,这个非线性函数就是激活函数。加入偏置项和激活函数的神经元结构示意图:神经网络结构加上激活函数和偏置项后的前向传播算法的数学定义:A1=[a...原创 2019-01-14 12:34:28 · 182 阅读 · 0 评论 -
算法工程师修仙之路:Keras(三)
深度学习基础什么是深度学习为什么是深度学习,为什么是现在深度学习用于计算机视觉的两个关键思想,即卷积神经网络和反向传播,在1989年就已经为人们所知。长短期记忆(LSTM, long short-term memory)算法是深度学习处理时间序列的基础,它在1997年就被开发出来了,而且此后几乎没有发生变化。总的来说,三种技术力量在推动着机器学习的进步:硬件数据集和基准算...原创 2019-02-16 11:14:02 · 287 阅读 · 0 评论 -
算法工程师修仙之路:推荐系统实践(三)
第二章 利用用户行为数据用户行为数据简介实现个性化推荐的最理想情况是用户能在注册的时候主动告诉我们他喜欢什么,但这种方法有三个缺点:首先,现在的自然语言理解技术很难理解用户用来描述兴趣的自然语言;其次,用户的兴趣是不断变化的,但用户不会不停地更新兴趣描述;最后,很多时候用户并不知道自己喜欢什么,或者很难用语言描述自己喜欢什么。因此,我们需要通过算法自动发掘用户行为数据,从用户的行...原创 2019-02-06 16:13:25 · 274 阅读 · 0 评论 -
算法工程师修仙之路:推荐系统实践(一)
第一章 好的推荐系统什么是推荐系统随着信息技术和互联网的发展,人们逐渐从信息匮乏的时代走入了信息过载(information overload)的时代。在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是...原创 2018-12-18 11:13:28 · 701 阅读 · 0 评论 -
算法工程师修仙之路:推荐系统实践(二)
第一章 好的推荐系统推荐系统评测推荐系统实验方法在推荐系统中,主要有三种评测推荐效果的实验方法,即离线实验(offline experiment)、用户调查(user study)和在线实验(online experiment)。离线实验离线实验的方法一般由如下几个步骤构成:通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;将数据集按照一定的规则分成训练...原创 2019-01-29 17:38:51 · 855 阅读 · 0 评论 -
算法工程师修仙之路:Keras(二)
深度学习基础什么是深度学习深度学习之前:机器学习简史深度学习不一定总是解决问题的正确工具:有时没有足够的数据,深度学习不适用;有时用其他算法可以更好地解决问题。概率建模概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。朴素贝叶斯是一类基于应...原创 2019-02-14 22:14:02 · 298 阅读 · 0 评论 -
算法工程师修仙之路:Keras(一)
深度学习基础什么是深度学习人工智能、机器学习与深度学习人工智能、机器学习与深度学习的关系人工智能人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。早期的国际象棋程序仅包含程序员精心编写的硬编码规则,并不属于机器学习。在相当长的时间内,许多专家相信,只要程序员精心编写足...原创 2019-02-14 17:17:24 · 547 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(六)
TensorFlow 入门TensorFlow实现神经网络神经网络参数与 TensorFlow 变量在 TensorFlow 中,变量(tf.Variable)的作用就是保存和更新神经网络中的参数。和其他编程语言类似,TensorFlow中的变量也需要指定初始值。因为在神经网络中,给参数赋予随机初始值最为常见,所以一般也使用随机数给 TensorFlow 中的变量初始化。# 声...原创 2019-01-09 18:14:14 · 156 阅读 · 0 评论 -
算法工程师修仙之路:TensorFlow(五)
TensorFlow 入门TensorFlow实现神经网络前向传播算法简介神经元是构成一个神经网络的最小单元,神经元也可以称之为节点。一个神经元有多个输入和一个输出;每个神经元的输入既可以是其他神经元的输出,也可以是整个神经网络的输入;所谓神经网络的结构指的就是不同神经元之间的连接结构。一个最简单的神经元结构的输出就是所有输入的加权和,而不同输入的权重就是神经元的参数。...原创 2019-01-09 12:38:43 · 237 阅读 · 0 评论