
深度学习
最老程序员闫涛
关注全文检索、数据挖掘、推荐引擎技术,Android开发技术,互联网及移动互联网创业。
展开
-
PyTorch学习笔记1---张量
PyTorch中数据集用Tensor来表示,Tensor与Python中的List类似,但是其内部存储时以连续内存单元存储,可以通过下标计算出内存地址,然后直接读出数值,因此存取效率很高,同时由于与Numpy的内存存储基本相同,所以numpy的ndarray与Tensor之间转换,不论有多少元素,其转换只需数毫秒,非常高效。同时,Tensor可以在GPU上运行,因此比numpy的效率要高。Ten...原创 2019-12-02 22:31:08 · 492 阅读 · 0 评论 -
智能教育深度学习推荐系统---1.2.合成推荐算法CKE解读和算法实现1
在推荐系统构建中,人们最常用的方法当属协同过滤推荐算法。协同过滤推荐算法仅需要考虑用户和待推荐条目的交互关系,算法可以处理毫不费力地同时应用于电影推荐、图书推荐、音乐推荐等,而无需研究待推荐具体的内容。但是协同过滤算法在实际应用也存在很多问题,例如对新条目,由于没有与用户的交互数据,所以就无法推荐,并且很多时候,由于某个意外事件会使某个条目遭到爆炒,使热度爆表,但是实际质量并不好,依据这些信息的推...原创 2018-08-26 17:38:13 · 3064 阅读 · 2 评论 -
深度学习在线教育平台实践---推荐算法TensorFlow实现
在前面几节中,我们向大家介绍了基于深度学习的推荐系统的数学原理,在这一节中,我们讨论怎样使用TensorFlow来实现这些数学原理。我们知道,TensorFlow对于深度学习算法的实现有很多资料参考,但是我们前面介绍的推荐系统,与一般的深度学习网络有很大的不同,属于Matrix Factorization的一种,所以在具体实现中,需要对TensorFlow有一个较为深入的了解,才能写出一个较好的解...原创 2018-08-14 13:59:01 · 3770 阅读 · 8 评论 -
深度学习在线教育平台实践---推荐算法冷启动问题
在本节中,我们将讨论如何在对学生一无所知的情况下,例如入学的新生,转学过来的学生,利用我们上一节中讲到的基于深度学习的推荐系统,给学生推荐适合的题目。 所有推荐系统,比较难解决的问题就是冷启动问题,就是在系统运行初期,没有学生做练习题目的数据,而我们要推荐的话,这些数据是必须的。通常解决方法是找一批种子用户,让他们来做这些题目,然后我们根据学习做题正确情况,所用时间等信息,给出学生对题目的需要程...原创 2018-08-14 11:53:32 · 1469 阅读 · 2 评论 -
深度学习在线教育平台实践---深度学习推荐算法
在本节中,我们将基于内容的推荐算法,与基于协同过滤的推荐算法,集合在一起,形成深度学习推荐算法,同时为了提高运行效率,我们还将介绍算法的向量表示。 在这里我们希望同时学习学生对题目需要程度的参数集{θ(1),θ(2),...,θ(nu)}{θ(1),θ(2),...,θ(nu)}\{ \boldsymbol{\theta}^{(1)}, \boldsymbol{\theta}^{(2)}, .....原创 2018-08-14 11:15:57 · 1720 阅读 · 0 评论 -
深度学习在线教育平台实践---协同过滤推荐系统
对于商品内容进行分析,进而根据商品内容进行推荐,是一种常用的推荐系统实现技术。但是如果商品种类很多,而且商品的属性很复杂,这样靠人工来标注商品的内容属性,就变得不太现实了。协同过滤技术正是为了解决这一问题而提出的,通过这种技术,我们不需要了解商品本身,只需要通过研究用户与商品这间的交互,就可以精准的向用户推荐他们可能感举趣的商品了。 具体到我们的个性题库系统,如果我们的客户有数以万计的题目,让人...原创 2018-08-09 20:27:11 · 1579 阅读 · 0 评论 -
深度学习在线教育平台实践---内容推荐系统2
根据上篇博文的内容,我们可以将题目样本就可以表示为如下形式: x(1)=⎡⎣⎢⎢⎢x(1)0x(1)1x(1)2⎤⎦⎥⎥⎥=⎡⎣⎢1.00.90.0⎤⎦⎥x(1)=[x0(1)x1(1)x2(1)]=[1.00.90.0]\boldsymbol{x}^{(1)}=\begin{bmatrix}x^{(1)}_0\\x^{(1)}_1\\x^{(1)}_2\end{bmatrix}=\b...原创 2018-08-09 13:54:56 · 993 阅读 · 0 评论 -
深度学习在线教育平台实践---内容推荐系统1
深度学习技术众所周知,深度学习和人工智能技术在教育领域的应用,一直是在线教育界的王冠,是众多在线教育企业正在做的事情。但是直到目前为止,虽然有很多深度学习和人工智能解决方案,但是真正能够在实践中应用和落地的项目却并不多,大多数解决方案还停留在概念阶段或收集数据阶段,离实际应用还有一段距离。本系列文章,将以我们在高三地理教学中实际使用的个性题库系统为例,向大家详细介绍基于深度学习技术的题库推荐系...原创 2018-08-09 12:41:42 · 2478 阅读 · 0 评论 -
医疗图神经网络---1.1.简介
医疗图神经网络采用Google Deepming最新的图神经网络技术,结合知识图谱、因果推理网络和深度学习技术,模拟执业医生思维模式,创建接近或达到人类专家水平的医疗自动/辅助诊断系统。 对于每种疾病,我们从四个方面来进行建模:流行病学、病程、症状和综合征、机制。 流行病学主要解决谁会得这种疾病的问题,包括人口统计学信息,如性别、年龄、职业、民族、籍贯等,同时包括各种危险因素,例如肥胖、吸烟,...原创 2018-07-15 18:08:18 · 1309 阅读 · 0 评论 -
随诊医生开发---1.2. 创建主界面
创建主界面由于需要针对基层医疗机构出诊及家庭医生需求,需要快速开发出一个简单的移动应用,决定采用Google在2018年2月新推出的Flutter技术,来开发这个新的App。 首先主页的底部像大多数应用一样,有一个TabBar,共有5个选项:日程 记录医生在医院出诊、预约计划和执行情况,以及走访社区出诊计划和执行情况。在医院就诊需要记录医院、科室和出诊时间,外出出诊需要记录时间、患者...原创 2018-07-23 19:39:55 · 745 阅读 · 0 评论 -
斯坦福自然语言处理习题课1——绪论
对于技术人员来说,如果要问当前最热门的技术是什么?我想大家一定会回答是人工智能技术。而在人工智能技术中,哪个技术方向最火呢?大家肯定会回答是深度学习技术。如果我们要问在深度学习技术中,哪些应用方向最火呢?我想大家可能会不约而同地说是机器视觉和自然语言处理了。机器视觉自然就不必说了,比如说像商汤、旷视、Face++等独角兽级企业,是史上成长最快的独角兽级企业了,融资规模在几十亿以上,同时机器视觉工程...原创 2018-11-06 16:17:08 · 988 阅读 · 1 评论 -
智能教育深度学习推荐系统---1.1.概述
深度学习推荐系统在智能教育中的应用,最容易应用的领域就是练、测、评环节。深度学习推荐系统就是将学生和题目的历史信息,作为系统输入,利用深度学习算法模型,找到学生和题目的隐表示,并利用这种隐表示(向量),找出学生和题目之间的隐藏关系,从而产生针对该学生的题目推荐。 智能教育深度学习推荐系统的架构图如下所示: 输入层主要包括学生的反馈数据,包括学习做题结果,从错到对分为0~5分,结果resul...原创 2018-08-25 09:44:28 · 3080 阅读 · 8 评论 -
斯坦福自然语言处理习题课2---softmax函数详解
从现在开始,我们就要正式开始向大家讲解斯坦福大学CS224n作业的实现了。我们首先业看作业关于softmax函数实现部分。我们在这里将先向大家介绍softmax函数的具体应用场景和物理意义,以及采用numpy和python实现中需要注意的地方,在下一篇文章中,我们再向大家介绍CS224n作业1中softmax的具体实现。之所以这样安排,是因为数学是一个非常优雅的建模工具,可以非常优雅的描述物理过程...原创 2018-11-07 14:43:27 · 1350 阅读 · 0 评论 -
深度强化元学习教程---优化器元学习2/2
优化器元网络推导在梯度下降算法中,我们通过下面的公式来调整参数:θt=θt−1−αt∇θt−1Lt\boldsymbol{\theta}_{t} = \boldsymbol{\theta}_{t-1} - \alpha_{t} \nabla_{\boldsymbol{\theta}_{t-1}} \mathcal{L}_{t}θt=θt−1−αt∇θt−1Lt根据上一节长短时...原创 2019-07-31 15:43:03 · 822 阅读 · 3 评论 -
深度强化元学习教程---优化器元学习1/2
为了解决深度学习需要大量标注数据集的问题,优化器元学习方法通过利用元网络来学习最佳优化器,从而帮助实现我们当前功能的基础网络具有更好的性能。这种方法有一个比较长名字:通过梯度下降来学习怎样学习梯度下降算法。这样说比较抽像,我们以一个具体的例子业说明这一过程。在传统的深度学习中,我们首先会根据训练样本计算出代价函数,然后求出代价函数对连接权值和偏置值的微分,再在优化器的帮助下,根据梯度下降算法,调...原创 2019-07-30 16:01:23 · 1284 阅读 · 0 评论 -
深度强化元学习教程---元学习概述
深度强化元学习是近期深度学习技术的一个另人瞩目的新兴领域,其利用元学习,解决了深度学习需要大数据集的问题,以及强化学习收敛慢的问题。同时元学习还可以适用于环境不断改变的应用场景,具有巨大的应用前景。元学习概述元学习简介提到元学习,我们通常想到Few-Shot Learning、One-Shot Learning、Zero-Shot Learning,其实这些都是K-Shot Learning...原创 2019-07-29 16:16:30 · 2050 阅读 · 0 评论 -
深度学习量化交易---0.1.股票K线图绘制
研究股票交易的基本功就是看K线图,所以在这一节里面,我们的任务就是拿到一支股票的历史数据,我们用python画出其K线图,这是进行下一步技术分析的基础。我们以上证综指为例,之所以没拿某支股票为例,是因为股票容易被操控,而上证综指很难被操控,因为规律性会更强一些。...原创 2018-11-25 12:54:57 · 5365 阅读 · 5 评论 -
深度学习量化交易实践---7.1.时序信号特点
时序信号我们以上证综指收盘指数为例,其就是一个典型的时序信号。上证综指文件中,每天作为一行,表示该日的指数信息,各列信息如下所示:Indexcd:指数代码,000001表示上证综合指数;trddt:交易日期,格式为yyyy-MM-dd;daywk:星期日期,0星期日,1星期一,…,6星期六opnindex:开盘指数hiindex:最高价loindex:最低价clsindex:收盘价...原创 2018-11-22 17:47:58 · 2298 阅读 · 0 评论 -
TensorFlow可微编程实践2---自动微分符号体系
自动微分采用一套与常规机器学习和深度学习不同的符号体系,我们只有熟悉了这个符号体系,才能比较轻松的看懂自动微分的文章。本篇博文将向大家介绍自动微分中使用的符号体系。...原创 2018-06-20 16:20:02 · 1443 阅读 · 1 评论 -
TensorFlow中的Eager Execution和自动微分
在传统的TensorFlow开发中,我们需要首先通过变量和Placeholder来定义一个计算图,然后启动一个Session,通过TensorFlow引擎来执行这个计算图,最后给出我们需要的结果。相信大家在入门阶段,最困惑的莫过于想要打印某些向量或张量的值,在Session之外或未执行时,其值不可打印的问题。TensorFlow采用这种反人性的设计方式,主要是为了生成基于符号的计算图,然后通过C+...原创 2018-06-19 11:03:20 · 2534 阅读 · 0 评论 -
深度学习算法实践6---逻辑回归算法应用
在上篇博文中,我们介绍了深度学习算法的实现,并且以MNIST手写数字识别为例,验证了该算法的有效性。但是我们学习逻辑回归算法的目的是解决我们的实际问题,而不是学习算法本身。逻辑回归算法在实际中的应用还是很广泛的,例如在医学领域的疾病预测中,我们就可以列出一系疾病相关因素,然后根据某位患者的具体情况,应用逻辑回归算法,判断该患者是否患有某种疾病。当然,逻辑回归算法还是有局限性的,其比较适合于处理线性原创 2016-08-11 14:45:50 · 4198 阅读 · 0 评论 -
深度学习算法实践7---前向神经网络算法原理
在本文中,我们对感知器模型的算法进行了推导,为我们对多层前馈网络(BP)的误差反向传播算法打下基础。原创 2016-08-22 18:16:30 · 6240 阅读 · 3 评论 -
深度学习算法实践5---线性回归算法实现
在学习了基本的Theano的概念之后,我们可以将这些知识用来进行一些简单的应用,在这篇文章中,我们将实现一个简旱的逻辑回归算法,并将该算法用于二维平面上的点是位于y=x之上还是之下。其实,Theano网站的教程中,有一个线性回归的例子,但是那个例子是一个用于手写字符识别的例子,没有给出实际的数据集,非常不直观,而其他例子直接就上MNIST的手写字符识别,由于问题比较复杂,很难有一个直观的认识。因此原创 2016-08-10 14:11:27 · 9966 阅读 · 0 评论 -
深度学习算法实践13---去噪自动编码机(Denosing Autoencoder)
截至目前为止,我们所讨论的神经网络技术,感知器模型、BP网络、多层卷积神经网络(CNN),都可以视为前馈神经网络的变形,都会采用信号前向传播,误差反向传播修正连接权值,采用有监督学习方式,解决样本分类问题。在这一篇博文,我们将介绍稍微不同的神经网络架构,即被称为自动编码机(Autoencoder)。与前述我们所讨论的神经网络不同,自动编码器(Autoencoder)属于非监督学习,不需要对训练样本原创 2016-08-31 17:57:29 · 16653 阅读 · 3 评论 -
深度学习算法实践12---卷积神经网络(CNN)实现
在搞清楚卷积神经网络(CNN)的原理之后,在本篇博文中,我们将讨论基于Theano的算法实现技术。我们还将以MNIST手写数字识别为例,创建卷积神经网络(CNN),训练该网络,使识别误差达到1%以内。原创 2016-08-30 12:50:35 · 8153 阅读 · 0 评论 -
深度学习算法实践11---卷积神经网络(CNN)之卷积操作
卷积神经网络(CNN)主要特性有:稀疏连接和权值共享、卷积操作、池化。在前一篇博文中我们已经讨论了稀疏连接和权值共享,在本篇博文中,我们将介绍卷积操作和池化。正是由于对图像进行卷积操作,卷积神经网络才得以其名,可见卷积操作是其核心。在这篇博文中,我们将讨论卷积操作的实现其及物理含义。原创 2016-08-29 18:20:48 · 11046 阅读 · 5 评论 -
深度学习算法实践4---Theano常用技巧
在上一篇文章中介绍了神经网感知器模型中用到的一些算法,在这篇文章中,将继续介绍这些常用的算法,首先是随机数的生成,因为感知器模型必须用随机数来初始化连接权值,其次是求导数,因为感知器学习算法是,会用到梯度下降算法,涉及到求导问题。在讨论随机数生成算法之前,我们先来讨论一下共享变量,这很像C语言中的静态变量,假设我们要对网站的内容的热度进行统计分析,我们用hottness来表示热度,用visitWe原创 2016-08-08 13:20:09 · 2833 阅读 · 0 评论 -
深度学习算法实践3---神经网络常用操作实现
在这篇文章中,我们介绍了实现一个神经网络中最简单的感知器模型,我们介绍了Theano中的相关函数,并对其中的关键步聚给出了代码实现,读者可以基于这些代码,参考神经网络教材,实现出一个完整的感知器模型。原创 2016-08-05 10:46:00 · 3428 阅读 · 0 评论 -
深度学习算法实践2---线性代数和Numpy的使用
使用Theano和Numpy实现一些线性代数的基本操作,如常数与矩阵相乘,标量加法和矩阵乘法。原创 2016-08-04 14:54:24 · 3666 阅读 · 0 评论 -
深度学习算法实践14---去噪自动编码机(dA)的Theano实现
在明白了去噪自动编码机(dA)的理论之后,在本篇博文中,我们将讨论用Theano来实现一个去噪自动编码机。通过上篇博文的讨论,我们知道去噪自动编码机(dA)工作主要有四步组成:第一步是向原始输入信号中加入随机噪音(使原始信号在某些维度上值为零);第二步是将加入噪音的信号输入网络,经过编码器部分,在中间层生成输入信号的压缩信号;第三步是经过解码器层,在输出层得到输出信号;第四步将输出信号与原始输入信原创 2016-09-02 11:00:12 · 5207 阅读 · 1 评论 -
深度学习算法实践8---BP算法详解
BP算法是关于误差的反向传播算法,就是从输出层开始,将结果与预期结果相比较,求出误差,然后按照梯度最大下降方向,调整神经元的联接权值,然后依次逐层调整各层之间的连接权值,对于批量学习方式而言,不断重复上述过程,直到误差达到足够小时为止。对于输出层而言,我们可以直接使用在上一篇博文中关于感知器模型的算法,BP算法的难点在于,如何处理隐藏层,因为隐藏层没有正确的输出信息用来计算误差。下面我们将从输出层原创 2016-08-24 19:06:51 · 6253 阅读 · 0 评论 -
TensorFlow可微分编程实践3---Eager模式下新版dataset API使用
我们在这篇博文中,将向大家介绍采用TensorFlow Eager Execution API,来实现一个最简单的多层感知器(MLP)模型,并用于MNIST手写数字识别。需要注意的是,我们在这里并不是讲解的TenforFlow Eager Execution官方的例子,因为该例子封装得太多了,使我们无从了解其中的细节。在大家学习深度学习技术时,一个特别典型的痛点就是看到数学理论,似乎也看明白了,再...原创 2018-06-25 17:39:00 · 993 阅读 · 0 评论 -
TensorFlow CPU版源码安装
最近发现Windows10有一个非常好的特性,就是自带一个完整的Linux Subsystem,可以完全模拟一个Ubuntu系统,甚至可以模拟图形界面,而且不用离开Windows环境,以一个Windows标准程序的方式运行,这为我们在Windows平台上开发Linux应用提供了极大的方便,目前发现其唯一的不足之处在于其不支持对硬件GPU的访问,对于深度学习应用来说,是一个比较大的遗憾。配置Wind...原创 2018-06-18 14:14:50 · 1992 阅读 · 1 评论 -
TensorFlow可微分编程实践3---交叉熵与代价函数微分
在上篇博文中,我们讲述怎样处理第l−1l−1l-1层到第lll层的前向传输和反向求导,我们还没有讲述关于输出层的处理技术。在这里,我们还以MNIST手写数字识别为例,网络计算图如下所示: 当我们计算出输出层的输出y∈R10y∈R10\boldsymbol{y} \in R^{10}时,表示输入图像xx\boldsymbol{x}是0~9这10个数字的概率。此时输入图像xx\boldsymbo...原创 2018-06-24 16:08:15 · 1563 阅读 · 2 评论 -
TensorFlow可微分编程实践3---向量微分和Jacobian矩阵
在这篇博文中,我们将利用TensorFlow Eager Execution API来实现一个完整多层感知器(MLP)模型。原创 2018-06-24 14:00:25 · 1300 阅读 · 1 评论 -
TensorFlow可微分编程实践3---计算图模型
在这篇博文中,我们将探讨怎样通过可微分编程技术,实现深度学习中最常用的多层感知器(MLP)模型。我们在这里使用TensorFlow Eager Execution API,并使用多层感知器模型来进行MNIST手写数字识别任务。...原创 2018-06-21 17:46:20 · 883 阅读 · 0 评论 -
深度学习算法实践16---限制性波尔兹曼机(RBM)原理1
我们目前的讨论的神经网络,虽然学习算法不同,但基本上架构还是相同的,就是都是分层网络,即神经元按层进行组织,层内神经元无连接,层间神经元间有连接。我们在这篇博文中,将讨论一种非常不同的神经网络,这类神经网络是由没层次关系的神经元全连接网络进化而来,采用有别于梯度下降算法进行学习的网络。这类网络首先起源于Holpfield网络,这是一种全联接的网络,神经元之前进行全连接,我们可以给这个网络定义一个能原创 2016-09-21 17:12:21 · 9647 阅读 · 4 评论 -
深度学习算法实践15---堆叠去噪自动编码机(SdA)原理及实现
在上一篇博文中,我们讨论了去噪自动编码机(dA),并讨论了Theano框架实现的细节。在本节中,我们将讨论去噪自动编码机(dA)的主要应用,即组成堆叠自动编码机(SdA),我们将以MNIST手写字母识别为例,用堆叠自动编码机(SdA)来解决这一问题。原创 2016-09-07 06:28:08 · 11237 阅读 · 0 评论 -
深度学习算法实践10---卷积神经网络(CNN)原理
其实从本篇博文开始,我们才算真正进入深度学习领域。在深度学习领域,已经经过验证的成熟算法,目前主要有深度卷积网络(DNN)和递归网络(RNN),在图像识别、视频识别、语音识别领域取得了巨大的成功,正是由于这些成功,能促成了当前深度学习的大热。与此相对应的,在深度学习研究领域,最热门的是AutoEncoder、RBM、DBN等产生式网络架构,但是这些研究领域,虽然论文比较多,但是重量级应用还没有出现原创 2016-08-26 14:46:53 · 23240 阅读 · 5 评论 -
深度学习算法实践9---用Theano实现多层前馈网络
我们到目前为止,使用逻辑回归模型已经可以对简单的线性可分问题进行了研究,不仅对MNIST手写数字识别样本集进行了训练和识别,我们还对二维平面上的点是否在y=x这条直线上进行了判断,有了这两个例子,尤其是第二个例子,读者应该可以将逻辑回归模型应用到自己的项目中了。虽然逻辑回归问题不能解决线性不可分问题,但是对于很多线性不可分问题,还是可以找到一个尽量好的超平面,得到令人满意的分类结果。由于逻辑回归算原创 2016-08-25 17:39:24 · 3500 阅读 · 0 评论