## 前言一
由于计算,海量数据存储和互联网技术等关键领域的共同发展,机器学习领域呈现了巨大的发展。许多人的日常生活中的许多技术和事件,直接或间接地受到自动学习的影响。语音识别,手机上的图像分类或垃圾邮件检测等技术的例子,使得一些应用成为可能,它们只出现在十年前科幻小说中。股票市场模型或医疗模型中的学习的使用,对我们的社会产生了巨大的影响。此外,具有巡航控制,无人机和各种机器人的汽车将在不久的将来影响社会。
深度学习是机器学习的一个子类型,自 2006 年重新发现以来,无疑是爆发性扩张的领域之一。事实上,硅谷的许多创业公司都专注于此,而谷歌,Facebook,微软或 IBM 等大型科技公司都有开发和研究团队。深度学习甚至引起了大学之外和研究领域的兴趣:许多专业杂志(如 Wired)甚至是通用杂志(如纽约时报,Bloomberg 或 BBC)为这个主题撰写了很多文章。
这种兴趣促使许多学生,企业家和投资者加入深度学习。由于产生的所有兴趣,几个软件包已被制作成“开源”的。作为库的主要推动者之一,我们在 2012 年作为博士生在伯克利(Caffe)开发了它。我可以说,TensorFlow 将成为研究人员和中小企业公司用于实现他们的深度学习和机器学习的想法的主要工具之一,它出现在本书中并由 Google(加州)设计,我自 2013 年以来一直在那里研究它。对此的保证是参与该项目的工程师和顶尖研究人员的数量,它最终得到了开源。
我希望这本入门书能够帮助有兴趣在这个非常有趣的领域开始冒险的读者。我要感谢作者,我很高兴了解到它传播这项技术的努力。在开源项目发布两个月后,他在创纪录的时间内写了这本书(首先是西班牙语版本)。这是巴塞罗那活力的另一个例子,它有兴趣成为这一技术场景中的参与者之一,无疑将影响我们的未来。
Oriol Vinyals,Google Brain 的研究科学家
## 前言二
> 教育是你用来改变世界的最有力的武器。
>
> Nelson Mandela
本书的目的是有助于将这些知识转播给工程师,它们希望在激动人心的机器学习世界中扩展智慧。我相信任何具有工程背景的人都可能会发现,深度学习和机器学习的应用对他们的工作很有价值。
鉴于我的背景,读者可能会想知道为什么我提出了编写这种新的深度学习技术的挑战。我的研究重点是逐步从超级计算架构和运行时转向大数据工作负载的执行中间件,最近转向大规模数据的机器学习平台。
正是作为一名工程师,而不是数据科学家,我认为我可以为这一主题贡献这种介绍性的方法,并且它对早期阶段的许多工程师都有帮助;然后他们会选择深入了解他们的需求。
我希望这本书能为这个我非常喜爱的教育世界增添一些价值。我认为知识就是解放,应该让所有人都能获得。因此,本书的内容将在网站 [www.JordiTorres.eu/TensorFlow](http://www.jorditorres.eu/TensorFlow) 上完全免费提供。如果读者发现内容有用并认为适当补偿作者的写作,网站上有一个标签可以用于捐赠。另一方面,如果读者更喜欢选择纸质副本,你可以通过 Amazon.com 购买该书。
本书还提供西班牙语版本。事实上,这本书是西班牙语的翻译,该书于去年 1 月完成,并在 GEMLeB Meetup(Grup d'Estudi de Machine Learning de Barcelona)中展示,我是其中一个共同组织者。
感谢你阅读本书!它使我感到安慰,并证明了我写作的努力。那些了解我的人,知道技术传播是我的激情之一。它激励我继续学习。
Jordi Torres,2016 年 2 月
## 一种实用的方法
> 告诉我,我会忘记。教我,我会记得。让我参与,我会学习。
>
> 本杰明·富兰克林
深度学习的一个常见应用包括模式识别。因此,当你开始编程时,有个传统是打印“Hello World”,与它相同,在深度学习中,通常构造用于识别手写数字的模型 [1]。我将提供的第一个神经网络示例,也将允许我介绍这种名为 TensorFlow 的新技术。
但是,我不打算写一本关于机器学习或深度学习的研究书籍,我只想尽快为每个人提供这个新的机器学习软件包 TensorFlow。因此,我向我的数据科学家们道歉,为了与普通读者分享这些知识,我允许自己进行某些简化。
读者会在这里找到我在课堂上使用的常规结构;这会邀请你在学习的同时使用计算机的键盘。我们称之为“从实践中学习”,而我作为 UPC 教授的经历告诉我,这种方法对于尝试开始新主题的工程师来说非常有效。
出于这个原因,这本书具有实用性,因此我尽可能地减少了理论部分。然而,当学习过程需要时,文本中已包含某些数学细节。
我假设读者对机器学习有一些基本的理解,所以我将使用一些流行的算法逐步组织读者在 TensorFlow 中的训练。
在第一章中,除了介绍TensorFlow将扮演重要角色的场景之外,我还借此机会解释TensorFlow程序的基本结构,并简要解释它在内部维护的数据。
在第二章中,通过线性回归的一个例子,我将介绍一些代码基础知识,同时,如何调用学习过程中的各种重要组件,如损失函数或梯度下降优化算法。
在第三章中,我展示了一个聚类算法,我将详细介绍 TensorFlow 的基本数据结构,称为`tensor`(张量),以及 TensorFlow 包提供的用于创建和管理张量的不同类和函数。
第四章详细介绍了如何构建识别手写数字的单层神经网络。这将允许我们归纳上面提出的所有概念,以及查看创建和测试模型的整个过程。
下一章首先介绍基于前一章中所见的神经网络概念,并介绍如何构建多层神经网络来获得更好的手写数字识别结果。它将更详细地介绍所谓的卷积神经网络。
在第六章中,我们将讨论一个更具体的问题,利用 GPU 提供的计算能力,可能不是所有读者都感兴趣。如第 1 章所述,GPU 在神经网络的训练过程中发挥着重要作用。
本书以后记结束,其中我强调了一些结论。我想强调的是,本书中的代码示例可以从本书 [2] 的 github 仓库下载。
- TensorFlow 1.x 深度学习秘籍
- 零、前言
- 一、TensorFlow 简介
- 二、回归
- 三、神经网络:感知器
- 四、卷积神经网络
- 五、高级卷积神经网络
- 六、循环神经网络
- 七、无监督学习
- 八、自编码器
- 九、强化学习
- 十、移动计算
- 十一、生成模型和 CapsNet
- 十二、分布式 TensorFlow 和云深度学习
- 十三、AutoML 和学习如何学习(元学习)
- 十四、TensorFlow 处理单元
- 使用 TensorFlow 构建机器学习项目中文版
- 一、探索和转换数据
- 二、聚类
- 三、线性回归
- 四、逻辑回归
- 五、简单的前馈神经网络
- 六、卷积神经网络
- 七、循环神经网络和 LSTM
- 八、深度神经网络
- 九、大规模运行模型 -- GPU 和服务
- 十、库安装和其他提示
- TensorFlow 深度学习中文第二版
- 一、人工神经网络
- 二、TensorFlow v1.6 的新功能是什么?
- 三、实现前馈神经网络
- 四、CNN 实战
- 五、使用 TensorFlow 实现自编码器
- 六、RNN 和梯度消失或爆炸问题
- 七、TensorFlow GPU 配置
- 八、TFLearn
- 九、使用协同过滤的电影推荐
- 十、OpenAI Gym
- TensorFlow 深度学习实战指南中文版
- 一、入门
- 二、深度神经网络
- 三、卷积神经网络
- 四、循环神经网络介绍
- 五、总结
- 精通 TensorFlow 1.x
- 一、TensorFlow 101
- 二、TensorFlow 的高级库
- 三、Keras 101
- 四、TensorFlow 中的经典机器学习
- 五、TensorFlow 和 Keras 中的神经网络和 MLP
- 六、TensorFlow 和 Keras 中的 RNN
- 七、TensorFlow 和 Keras 中的用于时间序列数据的 RNN
- 八、TensorFlow 和 Keras 中的用于文本数据的 RNN
- 九、TensorFlow 和 Keras 中的 CNN
- 十、TensorFlow 和 Keras 中的自编码器
- 十一、TF 服务:生产中的 TensorFlow 模型
- 十二、迁移学习和预训练模型
- 十三、深度强化学习
- 十四、生成对抗网络
- 十五、TensorFlow 集群的分布式模型
- 十六、移动和嵌入式平台上的 TensorFlow 模型
- 十七、R 中的 TensorFlow 和 Keras
- 十八、调试 TensorFlow 模型
- 十九、张量处理单元
- TensorFlow 机器学习秘籍中文第二版
- 一、TensorFlow 入门
- 二、TensorFlow 的方式
- 三、线性回归
- 四、支持向量机
- 五、最近邻方法
- 六、神经网络
- 七、自然语言处理
- 八、卷积神经网络
- 九、循环神经网络
- 十、将 TensorFlow 投入生产
- 十一、更多 TensorFlow
- 与 TensorFlow 的初次接触
- 前言
- 1. TensorFlow 基础知识
- 2. TensorFlow 中的线性回归
- 3. TensorFlow 中的聚类
- 4. TensorFlow 中的单层神经网络
- 5. TensorFlow 中的多层神经网络
- 6. 并行
- 后记
- TensorFlow 学习指南
- 一、基础
- 二、线性模型
- 三、学习
- 四、分布式
- TensorFlow Rager 教程
- 一、如何使用 TensorFlow Eager 构建简单的神经网络
- 二、在 Eager 模式中使用指标
- 三、如何保存和恢复训练模型
- 四、文本序列到 TFRecords
- 五、如何将原始图片数据转换为 TFRecords
- 六、如何使用 TensorFlow Eager 从 TFRecords 批量读取数据
- 七、使用 TensorFlow Eager 构建用于情感识别的卷积神经网络(CNN)
- 八、用于 TensorFlow Eager 序列分类的动态循坏神经网络
- 九、用于 TensorFlow Eager 时间序列回归的递归神经网络
- TensorFlow 高效编程
- 图嵌入综述:问题,技术与应用
- 一、引言
- 三、图嵌入的问题设定
- 四、图嵌入技术
- 基于边重构的优化问题
- 应用
- 基于深度学习的推荐系统:综述和新视角
- 引言
- 基于深度学习的推荐:最先进的技术
- 基于卷积神经网络的推荐
- 关于卷积神经网络我们理解了什么
- 第1章概论
- 第2章多层网络
- 2.1.4生成对抗网络
- 2.2.1最近ConvNets演变中的关键架构
- 2.2.2走向ConvNet不变性
- 2.3时空卷积网络
- 第3章了解ConvNets构建块
- 3.2整改
- 3.3规范化
- 3.4汇集
- 第四章现状
- 4.2打开问题
- 参考
- 机器学习超级复习笔记
- Python 迁移学习实用指南
- 零、前言
- 一、机器学习基础
- 二、深度学习基础
- 三、了解深度学习架构
- 四、迁移学习基础
- 五、释放迁移学习的力量
- 六、图像识别与分类
- 七、文本文件分类
- 八、音频事件识别与分类
- 九、DeepDream
- 十、自动图像字幕生成器
- 十一、图像着色
- 面向计算机视觉的深度学习
- 零、前言
- 一、入门
- 二、图像分类
- 三、图像检索
- 四、对象检测
- 五、语义分割
- 六、相似性学习
- 七、图像字幕
- 八、生成模型
- 九、视频分类
- 十、部署
- 深度学习快速参考
- 零、前言
- 一、深度学习的基础
- 二、使用深度学习解决回归问题
- 三、使用 TensorBoard 监控网络训练
- 四、使用深度学习解决二分类问题
- 五、使用 Keras 解决多分类问题
- 六、超参数优化
- 七、从头开始训练 CNN
- 八、将预训练的 CNN 用于迁移学习
- 九、从头开始训练 RNN
- 十、使用词嵌入从头开始训练 LSTM
- 十一、训练 Seq2Seq 模型
- 十二、深度强化学习
- 十三、生成对抗网络
- TensorFlow 2.0 快速入门指南
- 零、前言
- 第 1 部分:TensorFlow 2.00 Alpha 简介
- 一、TensorFlow 2 简介
- 二、Keras:TensorFlow 2 的高级 API
- 三、TensorFlow 2 和 ANN 技术
- 第 2 部分:TensorFlow 2.00 Alpha 中的监督和无监督学习
- 四、TensorFlow 2 和监督机器学习
- 五、TensorFlow 2 和无监督学习
- 第 3 部分:TensorFlow 2.00 Alpha 的神经网络应用
- 六、使用 TensorFlow 2 识别图像
- 七、TensorFlow 2 和神经风格迁移
- 八、TensorFlow 2 和循环神经网络
- 九、TensorFlow 估计器和 TensorFlow HUB
- 十、从 tf1.12 转换为 tf2
- TensorFlow 入门
- 零、前言
- 一、TensorFlow 基本概念
- 二、TensorFlow 数学运算
- 三、机器学习入门
- 四、神经网络简介
- 五、深度学习
- 六、TensorFlow GPU 编程和服务
- TensorFlow 卷积神经网络实用指南
- 零、前言
- 一、TensorFlow 的设置和介绍
- 二、深度学习和卷积神经网络
- 三、TensorFlow 中的图像分类
- 四、目标检测与分割
- 五、VGG,Inception,ResNet 和 MobileNets
- 六、自编码器,变分自编码器和生成对抗网络
- 七、迁移学习
- 八、机器学习最佳实践和故障排除
- 九、大规模训练
- 十、参考文献