第一章 深度学习入门
第一章 深度学习入门
帮助您使用Python进行深度学习,包括如何使用Keras构建和运行深度学习模型。本书也包括深度学习的技巧、示例代码和技术内容。
深度学习的数学基础很精妙:但是一般用户不需要完全了解数学细节就可以抄起键盘开始编程。实用一点讲,深度学习并不复杂,带来的成效却很客观。教会你如何用深度学习:这就是本书的目的。
1.1 深度学习:如何错误入门
如果你去问大佬们深度学习如何入门,他们会怎么说?不外乎:
- 线性代数是关键啊!
- 你得了解传统神经网络才能干啊!
- 概率论和统计学是基础的基础不是吗?
- 你得先在机器学习的水里扑腾几年再来啊。
- 不是计算机博士不要和我说话好吗!
- 入门挺简单的:10年经验应该差不多也行有可能就够了吧。
总结一下:只有大神才能做深度学习。
1.2 使用Python进行深度学习
本书准备把传统的教学方式倒过来:直接教你怎么深度学习。如果你觉得这东西真厉害我要好好研究一下,再去研究理论细节。本书直接让你用深度学习写出能跑的东西。
我用了不少深度学习的库:我觉得最好的还是基于Python的Keras。Python是完整的成熟语言,可以直接用于商业项目的核心,这点R是比不上的。和Java比,Python有SciPy和scikit-learn这些专业级别的包,可以快速搭建平台。
Python的深度学习库有很多,最著名的是蒙特利尔大学的Theano(已死,有事烧纸)和Google的TensorFlow。这两个库都很简单,Keras都无缝支持。Keras把数值计算的部分封装掉,留下搭建神经网络和深度学习模型的重点API。
本书会带领你亲手构建神经网络和深度学习模型,告诉你如何在自己的项目中利用。废话少说,赶快开始:
1.3 本书结构
本书分3部分:
- 课程:介绍某个神经网络的某个功能,以及如何使用Keras的API写出来
- 项目:将课上的知识放在一起,写一个项目:这个项目可以作为模板
- 示例:直接可以复制粘贴的代码!本书还附赠了很多代码,在Github上!
1.3.1 第一部分:课程和项目
每节课是独立的,推荐一次性完成,时长短则20分钟,长则数小时 - 如果你想仔细调参数。课程分4块:
- 背景
- 多层感知器
- 高级多层感知器和Keras
- 卷积神经网络
1.3.2 第二部分:背景知识
这部分我们介绍Theano、TensorFlow(TF)和Keras这3个库,以及如何在亚马逊的云服务(AWS)上用低廉的价格测试你的网络。分成4个部分:
- Theano 入门
- TensorFlow 入门
- Keras 入门
这些是最重要的深度学习库。我们多介绍一点东西:
- 项目:在云上部署GPU项目
到这里你应该准备好用Keras开发模型了。
1.3.3 第三部分:多层感知器
这部分我们介绍前馈神经网络,以及如何用Keras写出自己的网络。大体分段:
- 多层感知器入门
- 用Keras开发第一个神经网络
- 测试神经网络模型性能
- 用Scikit-Learn和Keras模型进行机器学习
这里有3个项目可以帮助你开发神经网络,以及为之后的网络打下模板:
- 项目:多类分类
- 项目:分类问题
- 项目:回归问题
到这里你已经熟悉了Keras的基本操作。
1.3.4 第四部分:高级多层感知器
这部分我们进一步探索Keras的API,研究如何得到世界顶级的结果。内容包括:
- 如何保存神经网络
- 如何保存最好的网络
- 如何边训练观察训练结果
- 如何对付过拟合
- 如何提高训练速度
到这里你已经可以使用Keras开发成熟的模型了。
1.3.5 第五部分:卷积神经网络(CNN)
这部分我们介绍一些计算机视觉和自然语言的问题,以及如何用Keras构建神经网络出色地解决问题。内容包括:
- 卷积神经网络入门
- 如何增强模型效果
写代码才能真正理解网络:这里我们用CNN解决如下问题:
- 项目:手写字符识别
- 项目:图像物体识别
- 项目:影视评论分类
到这里你可以用CNN对付你遇到的实际问题了。
1.3.6 结论
这部分我们给你提供一些继续深造的资料。
1.3.7 示例
边学习边积累代码库:每个问题你都写了代码,供以后使用。
本书给你所有项目的代码,以及一些没有讲到的Keras代码。自己动手积累吧!
1.4 本书需求
1.4.1 Python和SciPy
你起码得会装Python和SciPy,本书默认你都配置好了。你可以在自己的机器上,或者虚拟机/Docker/云端配置好环境。参见第二章项目。
本书使用的软件和库:
- Python 2或3:本书用版本2.7.11.
- SciPy和NumPy:本书用SciPy 0.17.0和NumPy 1.11.0.
- Matplotlib:本书用版本1.5.1
- Pandas:本书用版本0.18.0
- scikit-learn:本书用版本0.17.1。
版本不需要完全一致:但是希望安装的版本不要低于上面的要求。第二部分会带领你配置环境。
1.4.2 机器学习
你不需要专业背景,但是会用scikit-learn研究简单的机器学习很有帮助。交叉检验等基本概念了解一下。书后有参考资料:简单阅读一下。
1.4.3 深度学习
你不需要知道算法的数学理论,但是概念需要有所了解。本书有个神经网络和模型的入门,但是不会深度研究细节。术后有参考资料:希望你对神经网络有点概念。
注意:所有的例子都可以用CPU跑,GPU不是必备的,但是GPU可以显著加速运算。第5章会告诉你如何在云上配置GPU。
1.5 本书目标
希望你看完本书后有能力从数据集上用Python开发深度学习算法。包括:
- 如何开发并测试深度学习模型
- 如何使用高级技巧
- 如何为图片和文本数据构建大模型
- 如何扩大图片数据
- 如何寻求帮助
现在可以开始了。你可以挑自己需要的主题阅读,也可以从头到尾走一遍流程。我推荐后者。
希望你亲手做每一个例子,将所思所想记录下来。我的邮箱是jason@MachineLearningMastery.com。本书希望你努力一下,尽快成为深度学习工程师。
1.6 本书不是什么
本书为开发者提供深度学习的入门教程,但是挂一漏万。本书不是:
- 深度学习教科书:本书不深入神经网络的理论细节,请自行学习。
- 算法书:我们不关注算法如何工作,请自行学习。
- Python编程书:本书不深入讲解Python的用法,希望你已经会Python了。
如果需要深入了解某个主题,请看书后的帮助。
1.7 总结
此时此刻,深度学习的工具处于历史顶峰,神经网络和深度学习的发展从未如此之快,在无数领域出神入化。希望你玩的开心。
1.7.1 下一步
下一章我们讲解一下Theano、TensorFlow和你要用的Keras。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Go的CSP并发模型实现:M, P, G
最近抽空研究、整理了一下Golang调度机制,学习了其他大牛的文章。把自己的理解写下来。如有错误,请指正!!! golang的goroutine机制有点像线程池: 一、go 内部有三个对象: P对象(processor) 代表上下文(或者可以认为是cpu),M(work thread)代表工作线程,G对象(goroutine). 二、正常情况下一个cpu对象启一个工作线程对象,线程去检查并执行goroutine对象。碰到goroutine对象阻塞的时候,会启动一个新的工作线程,以充分利用cpu资源。所有有时候线程对象会比处理器对象多很多 我们用如下图分别表示P、M、G 在单核情况下,所有goroutine运行在同一个线程(M0)中,每一个线程维护一个上下文(P),任何时刻,一个上下文中只有一个goroutine,其他goroutine在runqueue中等待。一个goroutine运行完自己的时间片后,让出上下文,自己回到runqueue中(如下图左边所示)。 当正在运行的G0阻塞的时候(可以需要IO),会再创建一个线程(M1),P转到新的线程中去运...
- 下一篇
第3章 TensorFlow入门
第3章 TensorFlow入门 TensorFlow是Google创造的数值运算库,作为深度学习的底层使用。本章包括: TensorFlow介绍 如何用TensorFlow定义、编译并运算表达式 如何寻求帮助 注意:TensorFlow暂时不支持Windows,你可以用Docker或虚拟机。Windows用户可以不看这章。 3.1 TensorFlow是什么? TensorFlow是开源数学计算引擎,由Google创造,用Apache 2.0协议发布。TF的API是Python的,但底层是C++。和Theano不同,TF兼顾了工业和研究,在RankBrain、DeepDream等项目中使用。TF可以在单个CPU或GPU,移动设备以及大规模分布式系统中使用。 3.2 安装TensorFlow TF支持Python 2.7和3.3以上。安装很简单: sudo pip install TensorFlow 就好了。 3.3 TensorFlow例子 TF的计算是用图表示的: 节点:节点进行计算,有一个或者多个输入输出。节点间的数据叫张量:多维实数数组。 边缘:定义数据、分支、循环和覆盖的图...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题