wangongxi
会点Java,会点大数据,会点算法的程序员
展开
-
推荐序:《Deeplearning4j 快速入门》课程,深度学习必备秘籍
从 1956 年 Dartmouth 学会上提出的“人工智能”一词,到时下火热的人脸识别技术、车牌识别技术、智能语音应答,再到未来汽车发展趋势的自动驾驶技术,“人工智能”已然成为了科技未来的发展大势。对于广大 IT 行业从业人员而言,单纯地掌握 Java 等软件编程技术是远远不够的,学习 Deeplearning4j 技术就成为了进军“人工智能”行业的敲门砖。作为 Skymind 在亚洲的 CTO...原创 2020-09-22 12:08:45 · 923 阅读 · 0 评论 -
第01课:Windows、Linux 开发环境的搭建
在上一课中介绍了开源深度学习框架 Deeplearning4j 的相关内容,从本节课开始,我们将逐步讨论 Deeplearning4j 的使用,先来介绍如何在 Windows 以及 Linux 上搭建相应的开发环境。本节课核心内容包括:Deeplearning4j on WindowsDeeplearning4j on Linux首先,在 Windows/Linux/Mac 系统上,操作...原创 2020-09-22 12:08:43 · 493 阅读 · 0 评论 -
开篇词:基于 Java 的深度学习框架及其生态圈
随着深度学习在语音、图像、自然语言等领域取得了广泛的成功,越来越多的企业、高校和科研单位开始投入大量的资源研发 AI 项目。同时,为了方便广大研发人员快速开发深度学习应用,专注于算法应用本身,避免重复造轮子的问题,各大科技公司先后开源了各自的深度学习框架,例如:TensorFlow(Google)、Torch/PyTorch(Facebook)、Caffe(BVLC)、CNTK(Microsoft...原创 2020-09-22 12:08:41 · 817 阅读 · 0 评论 -
第02课:DeepLearning4j 开发的基本流程
前面的课程介绍了在 Windows 和 Linux 系统下,Deeplearning4j 开发环境的搭建。在此基础上,我们将进一步介绍 Deeplearning4j 开发的基本流程。本节课核心内容包括:单 CPU 环境多 CPU 环境分布式 Spark 环境对于机器学习应用来说,数据预处理、模型的训练和验证、模型的部署上线是几个标准的流程,Deeplearning4j 框架的开发流程同...原创 2020-09-22 12:08:40 · 881 阅读 · 0 评论 -
第03课:多层感知机在结构化数据中的应用实现
从本节课开始,我们将逐一介绍 Deeplearning4j 基于主流神经网络结构在分类、回归等机器问题上的实例应用。这一课将介绍多层感知机(MLP)在结构化数据集上构建分类和回归模型的例子。在给出具体的实例之前,先简单介绍下多层感知机的相关信息及特点。本节课核心内容包括:MLP 在分类问题中的应用MLP 在回归问题中的应用3.1 简介如果回顾神经网络的发展历史,早期的神经网络其实是没有...原创 2020-09-22 12:08:38 · 546 阅读 · 0 评论 -
第04课:自编码器在数据压缩中的应用实现
本节课我们将介绍如何使用神经网络对数据进行降维和特征提取,主要采用的方案是基于自监督学习的 AutoEncoder。本节课核心内容包括:降噪自编码器(DAE)基于深度信念网络的自编码器变分自编码器自编码器的用途比较广泛,比如:数据的压缩、检索、高效传输、深层网络的预训练等。由于 AutoEncoder 的具体实现方式很多,限于篇幅,我们介绍最常用的三种自编码器:变分自编码器、降噪自编码...原创 2020-09-22 12:08:37 · 801 阅读 · 0 评论 -
第05课:CNN 在机器视觉中的应用——图像分类
从本节课开始,我们将陆续为大家介绍在工业界使用较多的几种神经网络结构。首先介绍的是卷积神经网络(Convolution Neural Network,CNN)。本节课核心内容包括:卷积神经网络发展历史回顾卷积与池化卷积神经网络的应用(图像分类)卷积一词来源于信号处理领域。以 1D 信号为例,f(x) 和 g(x) 分别代表两个信号源输出的信号,则 f(x) 和 g(x) 的卷积可以表示...原创 2020-09-22 12:08:35 · 1424 阅读 · 0 评论 -
第06课:CNN 在机器视觉中的应用——目标检测
在上一节课中,我们介绍了卷积神经网络发展的历史以及图像分类的应用。本节课的内容将在上一节课的基础上,为大家介绍机器视觉中另一类经典案例——目标检测。本节课核心内容包括:卷积神经网络的应用:图像目标检测滑动窗口算法基于卷积神经网络的算法目前基于深度神经网络的目标检测模型有:YOLO 系列、SSD、R-CNN 系列等。本节课我们将为大家介绍这些算法的基本原理并结合目前 Deeplearni...原创 2020-09-22 12:08:34 · 720 阅读 · 0 评论 -
第07课:RNN 在序列问题中的应用——文本分类
本节课我们介绍另一种常用的神经网络结果——循环神经网络(Recurrent Neural Network,RNN)。需要注意的是,RNN 可以是两种神经网络的缩写,一种是本次课程讨论的 Recurrrent Neural Network,另一种则是 Recursive Neural Network,也称递归神经网络。前者是时间递归的神经网络,而后者是结构递归。在下文中,如果不特别说明,RNN 都代...原创 2020-09-22 12:08:32 · 539 阅读 · 0 评论 -
第08课:RNN 在序列问题中的应用——文本生成
在上一节课的内容中,我们介绍了循环神经网络(Recurrent Neural Network)的相关内容,并根据 Many-to-One 的结构给出了基于 Deeplearning4j 的文本分类实例。本节课核心内容包括:基于 One-to-Many 架构的文本生成应用在本次的课程中,我们将介绍另外一种结构:One-to-Many,并且我们将基于这种结构给出文本自动生成的例子。下面我就将文...原创 2020-09-22 12:08:30 · 322 阅读 · 0 评论 -
第09课:RNN 在序列问题中的应用——序列标注
在前两节课的内容中,我们介绍了循环神经网络及变种的基本原理,并介绍了 Many-to-One 和 One-to-Many 两种架构下,如何基于 Deeplearning4j 进行文本分类和文本生成的应用。本节课开始,我们将继续为大家介绍另外一种架构,Many-to-Many 在序列标注和机器翻译问题中的应用。这两类问题是 NLP 中的经典问题。尤其对于序列标注问题来说,分词、实体识别、句法分析都...原创 2020-09-22 12:08:29 · 417 阅读 · 0 评论 -
第10课:RNN 在序列问题中的应用——机器翻译
上一节课我们介绍了 Many-to-Many 在序列标注问题中的应用,在 RNN 部分的最后一节课中,我们来介绍另一种 Many-to-Many 的架构。本节课核心内容包括:基于 Many-to-Many 架构的机器翻译应用10.1 基于 Many-to-Many 架构的机器翻译应用Many-to-Many 结构的输出具有一定的滞后性,常用于机器翻译、QA 问答模型之中。比较典型的就是 ...原创 2020-09-22 12:08:28 · 448 阅读 · 0 评论 -
第11课:词句分布式表达——词建模工具
下面两节课我将为大家介绍,如何基于 Deeplearning4j 的框架来实现词和句子的分布式/向量化建模。目前 Deeplearning4j 支持对词建模的 word2vec、GloVe,对文档建模的 doc2vec/paragraph2vec,以及对图结构进行建模的 DeepWalk 算法。在具体介绍这些建模工具之前,我们首先回顾下对文本建模的一些手段。本节课核心内容包括:文本建模的词袋和...原创 2020-09-22 12:08:26 · 208 阅读 · 0 评论 -
第12课:词句分布式表达——句建模工具
在上一次的课程中,我们为大家介绍了词嵌入的两种算法:word2vec 和 GloVe。我们以实例的方式给出了 Deeplearning4j 的应用构建方式及部分实验结果。本次课程我们将以同样的方式为大家介绍句向量的建模工具——doc2vec/paragraph2vec,以及图嵌入的算法 DeepWalk。首先我们来看下doc2vec的原理和实例构建方式。本节课核心内容包括:doc2vec 的原...原创 2020-09-22 12:08:25 · 165 阅读 · 0 评论 -
第13课:Spark 分布式模型训练及调优(原理)
本节课程为大家介绍 Deeplearning4j 在 Apache Spark 上构建分布式深度学习模型的方式与底层机制。本节课的核心内容包括:Apache Spark 简介深度学习的并行与分布式建模Deeplearning4j 是原生支持在 Spark 上建模的开源库之一,同样原生支持的还有 Intel BigDL、SparkNet、H2O 等。像 Caffe 和 TensorFlow...原创 2020-09-22 12:08:23 · 609 阅读 · 0 评论 -
第14课:Spark 分布式模型训练及调优(实战)
上节课已经为大家介绍了 Apache Spark 项目的基本情况,以及分布式深度神经网络的解决方案。这节课我们将给出一个 Deeplearning4j+Spark 的建模实例,包括从配置 Maven 工程开始到本地的原型验证,以及集群上的模型训练。由于 ND4J 的张量运算是通过 JavaCPP 技术,诸如 OpenBLAS 开源库来调用实现的,因此我们也将就内存的调优进行介绍。下面我们首先介绍下...原创 2020-09-22 12:08:21 · 1517 阅读 · 0 评论 -
第15课:多 GPU 环境下的模型训练
本节课将为大家介绍如何基于 GPU 加速 Deeplearning4j 的建模过程。首先我们将为大家介绍异构计算的基本框架和原理,包括主流的 GPU 供应商英伟达各系列显卡的相关情况;接着,结合 Deeplearning4j 的具体情况,我们将讲解如何在使用单 GPU 和多 GPU 情况下加速训练过程的相似步骤;最后,我们会介绍一些调优的手段并对本节课做下总结。本节课核心内容包括:异构计算框架...原创 2020-09-22 12:08:20 · 296 阅读 · 0 评论 -
第16课:迁移学习的模型训练
本次课程我们为大家介绍一种新的构建模型方式——迁移学习(Transfer Learning)。迁移学习是解决标注数据缺失、从已有模型快速构建新应用的有效手段。迁移学习旨在于不同领域之间进行经验、知识、技能的转移,无需每次都从头学习全新的知识。目前,基于神经网络的迁移学习已经在图像、文本等领域取得了很多的研究成果,在工业界也有落地,本次课程我们在介绍迁移学习相关理论的基础上,结合 Deeplearn...原创 2020-09-22 12:08:18 · 1095 阅读 · 0 评论 -
第17课:强化学习的模型训练
在之前的课程中,我们为大家介绍的机器学习实例大部分都属于监督学习或者无监督学习。例如图像的分类和目标检测属于监督学习,而词嵌入课程中的 word2vec 和 GloVe 都属于无监督学习。在本次课程中,我们将为大家介绍另一种机器学习的方式——强化学习(Reinforcement Learning)。本节课核心内容包括:强化学习简介强化学习的实现方式与基本原理基于 RL4J 的 CartPo...原创 2020-09-22 12:08:17 · 2066 阅读 · 0 评论 -
第18课:搭建在线服务环境
本次的课程主要介绍模型的部署上线。Deeplearning4j 支持将模型持久化后结合诸如 Spark Streaming、Flink 等流式计算框架提供实时或者准实时的预测服务,也可以和 Java Web 技术整合通过 Web 容器对外提供服务。这几种方式在实际的生产环境中都有比较广泛的使用,一般都根据实际的技术和业务背景来做选择。课程中我们将分别就这两种上线方式给出具体的案例。另外,对于离线的...原创 2020-09-22 12:08:15 · 181 阅读 · 0 评论 -
第19课:DL4J 对其他深度学习框架的支持
从本节课开始,我们将介绍 Deeplearning4j 的一些扩展特性。首先在本次课程中,我们将为大家介绍 Deeplearning4j 对 Keras 和 TensorFlow 的支持情况,以及如何将这两个框架下训练好的模型导入到 Deeplearning4j 中。在系列课程的第一课中,我们就谈到 Deeplearning4j 可以通过 Keras 这样的胶水框架来提供对诸如 Caffe、Th...原创 2020-09-22 12:08:14 · 240 阅读 · 0 评论 -
第20课:DL4J 建模进阶
在之前的课程中,我们为大家先后介绍了 MLP、DBN、CNN、RNN 等网络结构的建模,我们的网络输入也从结构化数据拓展到图片、文本等复杂的非结构化数据。其实现实应用中的很多问题,往往不会从单一维度进行建模,很多时候我们需要同时考虑视觉、听觉等多维度的信息特征甚至基于这些信息同时完成多个目标的学习,而非单一目标。这些应用场景相对于之前我们介绍的问题会复杂一些,使用 Deeplearning4j 落...原创 2020-09-22 12:08:12 · 307 阅读 · 0 评论 -
结语:深度学习的进化
本次课程是该系列课程中的最后一课。在本次课程中,我们将从宏观的角度来讨论人工智能的相关问题,包括人工智能与深度学习的关系、人工智能未来的应用前景等。目前我们所谈论的人工智能这一概念可以追溯到 1956 年达特茅斯会议,当时与会的人有香农、明斯基等人。虽然受限于历史原因,达特茅斯会议并没有讨论出太多具有实质性意义的规划或者科学技术,但是与会人基本都认同会议的主题是关于机器模仿人的,由此人工智能(A...原创 2020-09-22 12:08:11 · 327 阅读 · 0 评论