当前位置:
首页 > 互联网+ > 人工智能 > 深度学习:Keras快速开发入门pdf/doc/txt格式电子书下载

深度学习:Keras快速开发入门pdf/doc/txt格式电子书下载

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

深度学习:Keras快速开发入门pdf/doc/txt格式电子书下载

书名:深度学习:Keras快速开发入门pdf/doc/txt格式电子书下载

推荐语:Keras——一个极简的框架,帮您轻松入门深度学习

作者:乐毅,严超

出版社:电子工业出版社

出版时间:2017-06-01

书籍编号:30457338

ISBN:9787121318689

正文语种:中文

字数:163877

版次:1

所属分类:互联网+-人工智能

全书内容:

深度学习:Keras快速开发入门pdf/doc/txt格式电子书下载






前言


1950年,著名的图灵测试诞生,按照计算机科学和人工智能之父艾伦·麦席森·图灵(Alan Mathison Turing)的定义:“如果一台机器能够与人类展开对话,而不能被辨别出其机器身份,那么称这台机器具有智能。” 随后几年围绕着图灵测试模型产生了一系列的争论,直至1956年夏天,在美国达特茅斯大学召开的会议确立了“人工智能(Artificial Intelligence)”这一术语,并被认为是人工智能诞生的标志。时至今日,人工智能的发展经历了多次起伏,从20世纪50年代人工智能概念的兴起到20世纪60年代末到20世纪70年代的专家系统,再到20世纪80年代人工神经网络的飞速发展和20世纪90年代浅层机器学习的出现。2006年加拿大多伦多大学教授、机器学习领域泰斗Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物Science上发表了一篇文章“Reducing the Dimensionality of Data with Neural Networks”,开启了深度学习在学术界和工业界的浪潮。虽然人们对目前人工智能技术仍然存在许多争论,到底什么是真正的人工智能?是否存在像人一样能够独立思考的机器人?但这些疑问阻挡不了人类对人工智能的探索和向往。


2017年5月,Google Deepmind公司对去年发布的人工智能程序阿尔法围棋(AlphaGo)进行了优化和训练,并发起对战世界围棋冠军、职业九段选手柯洁的挑战,最终以3:0的总比分获胜,击破了代表人类智慧的最后的堡垒。Deepmind 公司的围棋程序(AlphaGo)不同于传统的人工智能程序,它能够将大量棋谱数据输入计算机进行自我学习,而不像专家系统需要人类的智能去干预和调整算法。AlphaGo的这一特点有力地证明了人工智能已经迎来了一个更高的发展阶段,即深度学习技术。


与此同时,国内外众多学者、从业者或业余爱好者都纷纷加入到深度学习(Deep Learning)的研究和工作中。然而,许多读者朋友对深度学习技术中复杂的数学公式和理论感到困惑,以至于常常无从下手。目前主流的深度学习框架,从TensoFlow难以理解的设计和表述方法到Caffe冗长的神经网络模型定义,往往使读者很难清晰、完整和快速地掌握深度学习技术。本书选择Keras这一深度学习框架向读者介绍深度学习技术和应用,力求使用简洁、高效和丰富的实例帮助读者快速掌握这门技术,这得益于Keras良好的模块化、极简的设计、快速原型迭代和易扩展性等特点。通过学习本书的内容,读者能够快速搭建满足产品需求的神经网络模型,从而加快产品研发周期。


本书共包括9章,每章的主要内容如下:


第1章“Keras概述”介绍了Keras框架的技术背景、特点、优势以及与其他框架的对比。


第2章“Keras的安装与配置”介绍了如何安装与配置Keras,为进一步的Keras开发做准备。


第3章“Keras 快速上手”体现了 Keras 开发极易入手的特点,一定Python基础的开发人员都能非常简单地完成一个Keras模型训练。


第4章“Keras 模型的定义”详细介绍了 Keras 的两种类型模型—Sequential模型和函数式模型,以及它们的参数定义和接口。


第5章“Keras网络结构”深入Keras的内部结构,详细介绍了Keras的网络结构及其层的定义,并对每层的参数进行说明和分析。


第6章“Keras数据预处理”讲解了Keras提供的常用数据预处理工具方法,以及对于特定数据预处理使用场景的解析。


第7章“Keras内置网络配置”介绍了Keras提供的内置网络配置,帮助读者完善模型优化体系的同时,熟悉Keras内置网络配置方法。


第8章“Keras实用技巧和可视化”帮助读者完善了Keras实用技巧与可视化方法,打通Keras与下层框架(Theano、TensorFlow)的使用阻隔。


第9章“Keras实战”完成了三个经典的Keras实战练习,增强读者对完整Keras训练过程的理解。


本书的内容由我与朋友严超共同完成,在写作过程中我们经常交流、探讨,互相指正对方的不足和错误,从而达到共同进步,在此对严超表示感谢。同时还要感谢电子工业出版社的孙学瑛老师对本书提出了很多非常好的建议,帮助我们顺利出版此书。


最后,由于深度学习技术发展迅速,各种知识和应用工具变化很快, Github上Keras项目还处在活跃开发阶段,并即将发布支持CNTK和MXNet后端的实现,这使得Keras在不断更新和修正。笔者才疏学浅,理解有限,加之编写时间也较仓促,书中难免有错谬之处,敬请广大读者朋友批评指正,不胜感激。


乐毅


2017年6月

第1章 Keras概述


深度学习(Deep Learning)越来越成为人工智能领域研究和应用的热门方向,并不断涌现出很多优秀的深度学习框架。其中Keras框架自诞生以来,由于其良好的模块化,极简的设计和快速原型迭代等特性,越来越受到业内人士的青睐。也正由于这些特点,Keras 成为机器学习领域值得推荐的深度学习框架之一。


本章首先介绍了Keras的由来及技术背景,然后比较了当前主流的深度学习框架,最后总结了Keras框架的特点。


1.1 Keras简介


1.1.1 Keras 2


Keras深度学习框架的作者是Francois Chollet,现就职于谷歌,从事机器学习与人工智能技术的研究。Keras在2015年3月首次推出,现在用户数量已经突破了10万。其中有数百人为 Keras 代码库做出了贡献,更有数千人为Keras社区做出了贡献。截止本书截稿之日,Keras在GitHub上的star数已达16333个。Keras不仅催生了众多创业公司,提高了研究者的成果率,而且简化了大公司的工程流程图,并为数以千计没有机器学习经验的工程师打开了一扇通向深度学习的大门。


今年3月,Keras通过官方博客发布了全新的 Keras 2版本,它带有一个更易使用的新 API,实现了与 TensorFlow 的直接整合。这是在TensorFlow核心整合Keras API所准备的重要一步。


Keras 2相比以前的版本有很多新变化,主要体现在以下几个方面。


1.与TensorFlow等后端框架整合


尽管Keras自2015年12月已经作为运行时后端(runtime backend)开始支持TensorFlow,但Keras API却一直与TensorFlow代码库相分离。Keras 2改变了这一情况,从TensorFlow 1.2版本开始,Keras API可作为TensorFlow 工作流的一部分直接使用,这是 TensorFlow 在向数百万新用户开源的道路上迈出的一大步。


Keras作为一个API技术规范被理解和使用,而不是一个特殊的代码库。事实上,Keras技术规范的发展会出现的两个不同分支:(a)TensorFlow的内部实现(如tf.keras),其完全由TensorFlow设计和实现,与TensorFlow的所有功能深度兼容;(b)外部的多后端实现,同时支持 Theano 和TensorFlow(以后可能会支持更多的后台,如微软CNTK和MXNET后端已经处于密集开发阶段和发布前期)。


类似的,Skymind(商业智能和企业软件公司)正在用 Scala 语言实现Keras的部分规范,如ScalNet。为了在浏览器中运行,Keras.js正在用JavaScript运行Keras的部分API。正因如此,Keras API将会成为深度学习从业者的通用语言,在不同的工作流程中共享并独立于底层平台。像Keras这样的统一API规范将促进代码共享,提高产品设计和实现的再生产率,从而进一步支持Keras的社区发展。


2.全新API


新的Keras 2为了提高重用性和向前兼容性,在这次发布中大量修改了API。特别是新API选项完全兼容TensorFlow规范,具体变化如下[1]


●大多数神经网络层的 API 有了显著变化,特别是 Dense、BatchNormalization和全卷积层。为了使Keras 1的代码在Keras 2上无障碍地运行,Keras 2设置了兼容接口,代码运行的同时会有警告,提示迁移转换到新的API层接口。


●训练和评估生成器方法的API发生了变化,比如fit_generator、predict_generator 和 evaluate_generator 方法实现细节有一些更新,但这些Keras 1方法的调用依然适用于Keras 2。


●在fit中,训练epoch数的变量nb_epoch已重命名为epochs。Keras的API转换接口也适用于这项改变。


●很多层所保存的权重格式已经改变。但是,Keras 1上保存的权重文件依然能在Keras 2的模型上加载。


●Objectives损失函数模块已更名为Losses。


3.显著修改


考虑到Keras的广大用户基础,Keras 2并没有对Keras做根本变动。但有些变动不可避免,尤其是对于更高阶的用户,具体变化如下:


●传统层MaxoutDense、TimeDistributedDense和 Highway已被永久删除。


●大量的传统度量和损失函数已被删除。


●BatchNormalization层不再支持mode参数。


●Keras内部构件已经改变,自定义层被升级。这些改变相对较小,只是使设计变得更快、更简单。


●使用非正式的Keras功能编写的代码将会失效,因此高阶用户需要做一些相应的更新工作。


1.1.2 Keras功能构成


1.Optimizers


顾名思义,Optimizers(优化器)包含了一些优化的方法,比如最基本的随机梯度下降SGD。另外还有Adagrad、Adadelta、RMSprop和Adam等,一些新的方法以后也会被不断地添加进来。


keras.optimizers.SGD(lr=0.01, momentum=0.9, decay=0.9, nesterov=False)


上面的代码是SGD的使用方法,lr表示学习速率;momentum表示动量项;decay是学习速率的衰减系数(每个epoch衰减一次);nesterov的值是False或者True,表示是否使用nesterov momentum动量方法。


2.Losses


Losses(损失函数)是计算神经网络输出与样本标记不一致程度的一种量化方法。Keras 提供了 mean_squared_error、mean_absolute_error、squared_hinge、hinge、binary_crossentropy、categorical_crossentropy等常用的目标函数。这里 binary_crossentropy 和 categorical_crossentropy 也就是常说的logloss(分别用作二类问题和多类问题)。


3.Activations


Activations(激活函数)的引入使得模型具有非线性因素,Keras 提供了linear、sigmoid、hard_sigmoid、tanh、softplus、relu和softplus等内置激活函数。另外,softmax也放在Activations模块里。像LeakyReLU和PReLU 这种比较新的激活函数,在 keras.layers.advanced_activations 模块里也可以找到。


4.Initializations


Initializations(参数初始化)是参数初始化模块,在添加layer的时候调用 init 进行初始化。Keras 提供了 uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal和he_normal等几种初始化方法。


5.Layer


Layer(层)模块包含了 core、convolutional、recurre

....

本站仅展示书籍部分内容

如有任何咨询

请加微信10090337咨询

本站仅展示书籍部分内容
如有任何咨询

请加微信10090337咨询

再显示