没有合适的资源?快使用搜索试试~ 我知道了~
首页2017版《Python深度学习实战指南》:从入门到实践
"《深度学习与Python 2017》是一本面向工程师和学生编写的优秀学习资料,隶属于Manning Early Access Program(MEAP)。本书由Manning Publications于2017年出版,旨在为那些希望从零开始学习深度学习并将其应用于实际问题解决的读者提供全面的指导。作者假设读者具备一定的Python编程基础,但对机器学习和深度学习的知识相对有限。 本书分为多个章节,从基础理论开始,逐步深入到高级实践应用,非常适合那些希望通过本书系统地建立起深度学习技能的学习者。即使对于已经有一定深度学习经验的读者,书中后续部分也能提供有价值的补充和深化理解的内容。在购买MEAP版本时,读者可以期待一个详尽的教程,涵盖了深度学习的核心概念、神经网络架构、数据预处理、优化算法、反向传播、卷积神经网络(CNN)和循环神经网络(RNN)等关键领域。 在编写过程中,作者欢迎读者通过Manning论坛(<https://forums.manning.com/forums/deep-learning-with-python>)提出反馈,尤其是关于书籍内容和可能存在的小错误。版权方面,这本书已获得授权给所有购买者,并且鼓励读者积极参与讨论,共同提升本书的质量。 《深度学习与Python 2017》是一本既适合初学者入门又可供进阶者参考的实用指南,它将帮助读者掌握深度学习的基本原理和实战技巧,为他们在人工智能领域的发展奠定坚实的基础。"
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10170472/bg10.jpg)
Deep learning has reached a level of public attention and industry investment never seen
before in the history of AI, but it isn’t the first successful form of machine learning. In
fact, it’s a safe bet to say that most of the machine learning algorithms in use in the
industry today are still not deep learning algorithms. Deep learning isn’t always the right
tool for the job—sometimes there just isn’t enough data for deep learning to be
applicable, and sometimes the problem is simply better solved by a different algorithm. If
deep learning is your first contact with machine learning, then you may find yourself in a
situation where all you have is the deep learning hammer and every machine learning
problem starts looking like a nail for this hammer. The only way not to fall into this trap
is to be familiar with other approaches and practice them when appropriate.
A detailed exposure of classical machine learning approaches is outside of the scope
of this book, but we will briefly go over them and describe the historical context in which
they were developed. This will allow us to place deep learning in the broader context of
machine learning, and better understand where deep learning comes from and why it
matters.
Probabilistic modeling is the application of the principles of statistics to data analysis. It
was one of the earliest forms of machine learning, yet it is still widely used to this day.
One of the best-known algorithms in this category is the Naive Bayes algorithm.
Naive Bayes is a type of machine learning classifier based on applying the Bayes
Theorem while assuming that the features in the input data are all independent (a strong,
or "naive" assumption, which is where the name comes from). This form of data analysis
actually predates computers, and was applied by hand decades before its first computer
implementation (most likely dating back to the 1950s). The Bayes Theorem and the
foundations of statistics themselves date back to the 18th century, and these are all you
need to start using Naive Bayes classifiers.
A closely related model is the Logistic Regression (logreg for short), which is
sometimes considered to be the "hello world" of modern machine learning. Don’t be
misled by its name—logreg is in fact a classification algorithm rather than a regression
algorithm. Much like Naive Bayes, logreg predates computing by a long time, yet it is
still very useful to this day, thanks to its simple and versatile nature. It is often the first
thing a data scientist will try on a dataset to get a feel for the classification task at hand.
1.2 Before deep learning: a brief history of machine learning
1.2.1 Probabilistic modeling
©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and
other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders.
https://forums.manning.com/forums/deep-learning-with-python
12
Licensed to <null>
![](https://csdnimg.cn/release/download_crawler_static/10170472/bg11.jpg)
Early iterations of neural networks have been completely supplanted by the modern
variants that we cover in these pages; however, it is helpful to be aware of how deep
learning originated. Although the core ideas of neural networks were investigated in toy
forms as early as the 1950s, the approach took decades to really get started. For a long
time, the missing piece was a lack of an efficient way to train large neural networks. This
changed in the mid-1980s, as multiple people independently rediscovered the
"backpropagation" algorithm, a way to train chains of parametric operations using
gradient descent optimization (later in the book, we will go on to precisely define these
concepts), and started applying it to neural networks.
The first successful practical application of neural nets came in 1989 from Bell Labs,
when Yann LeCun combined together the earlier ideas of convolutional neural networks
and backpropagation, and applied them to the problem of handwritten digits
classification. The resulting network, dubbed "LeNet", was used by the US Post Office in
the 1990s to automate the reading of ZIP codes on mail envelopes.
As neural networks started gaining some respect among researchers in the 1990s thanks
to this first success, a new approach to machine learning rose to fame and quickly sent
neural nets back to oblivion: kernel methods.
Kernel methods are a group of classification algorithms, the best known of which is
the Support Vector Machine (SVM). The modern formulation of SVM was developed by
Vapnik and Cortes in the early 1990s at Bell Labs and published in 1995, although an
older linear formulation was published by Vapnik and Chervonenkis as early as 1963.
SVM aims at solving classification problems by finding good "decision boundaries"
(Figure 1.10) between two sets of points belonging to two different categories. A
"decision boundary" can be thought of as a line or surface separating your training data
into two spaces corresponding to two categories. To classify new data points, you just
need to check which side of the decision boundary they fall on.
Figure 1.10 A decision boundary
1.2.2 Early neural networks
1.2.3 Kernel methods
©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and
other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders.
https://forums.manning.com/forums/deep-learning-with-python
13
Licensed to <null>
![](https://csdnimg.cn/release/download_crawler_static/10170472/bg12.jpg)
SVMs proceed to find these boundaries in two steps:
First, the data is mapped to a new high-dimensional representation where the decision
boundary can be expressed as an hyperplane (if the data is two-dimensional like in our
example, an "hyperplane" would simply be a straight line).
Then a good decision boundary (a separation hyperplane) is computed by trying to
maximize the distance between the hyperplane and the closest data points from each
class, a step called "maximizing the margin". This allows the boundary to generalize well
to new samples outside of the training dataset.
The technique of mapping data to a high-dimensional representation where a
classification problem becomes simpler may look good on paper, but in practice it is
often computationally intractable. That’s where the "kernel trick" comes in, the key idea
that kernel methods are named after. Here’s the gist of it: for finding good decision
hyperplanes in the new representation space, you don’t have to explicitly compute the
coordinates of your points in the new space, you just need to compute the distance
between pairs of points in that space, which can be done very efficiently using what is
called a "kernel function". A kernel function is a computationally tractable operation that
maps any two points in your initial space to the distance between these points in your
target representation space, completely by-passing the explicit computation of the new
representation. Kernel functions are typically crafted by hand rather than learned from
data—in the case of SVM, only the separation hyperplane is learned.
At the time they were developed, SVMs exhibited state of the art performance on
simple classification problems, and were one of the few machine learning methods
backed by extensive theory and amenable to serious mathematical analysis, making it
well-understood and easily interpretable. Because of these useful properties, it became
extremely popular in the field for a long time.
However, SVM proved hard to scale to large datasets and did not provide very good
results for "perceptual" problems such as image classification. Since SVM is a "shallow"
method, applying SVM to perceptual problems requires first extracting useful
representations manually (a step called "feature engineering"), which is difficult and
brittle.
Decision trees are flowchart-like structures that can allow to classify input data points or
predict output values given inputs. They are easy to visualize and interpret. Decisions
trees learned from data started getting significant research interest in the 2000s, and by
2010 they were often preferred to kernel methods.
1.2.4 Decision trees, Random Forests and Gradient Boosting Machines
©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and
other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders.
https://forums.manning.com/forums/deep-learning-with-python
14
Licensed to <null>
![](https://csdnimg.cn/release/download_crawler_static/10170472/bg13.jpg)
Figure 1.11 A decision tree: the parameters that are learned are the questions about the
data. A question could be, for instance, "is coefficient 2 in the data higher than 3.5?".
In particular, the "Random Forest" algorithm introduced a robust and practical take on
decision tree learning that involves building a large number of specialized decision trees
then ensembling their outputs. Random Forests are applicable to a very wide range of
problems --you could say that they are almost always the second-best algorithm for any
shallow machine learning task. When the popular machine learning competition website
Kaggle.com got started in 2010, Random Forests quickly became a favorite on the
platform—until 2014, when Gradient Boosting Machines took over. Gradient Boosting
Machines, much like Random Forests, is a machine learning technique based on
ensembling weak prediction models, generally decision trees. It leverages "gradient
boosting", a way to improve any machine learning model by iteratively training new
models that specialize in addressing the weak points of the previous models. Applied to
decision trees, the use of the "gradient boosting" technique results in models that strictly
outperform Random Forests most of the time, while having very similar properties. It
may be one of the best, if not the best, algorithm for dealing with non-perceptual data
today. Alongside deep learning, it is one of the most commonly used technique in Kaggle
competitions.
Around 2010, while neural networks were almost completely shunned by the scientific
community at large, a number of people still working on neural networks started making
important breakthroughs: the groups of Geoffrey Hinton at the University of Toronto,
Yoshua Bengio at the University of Montreal, Yann LeCun at New York University, and
IDSIA in Switzerland.
In 2011, Dan Ciresan from IDSIA started winning academic image classification
competitions with GPU-trained deep neural networks—the first practical success of
modern deep learning. But the watershed moment came in 2012, with the entry of
Hinton’s group in the yearly large-scale image classification challenge ImageNet. The
ImageNet challenge was notoriously difficult at the time, consisting in classifying
high-resolution color images into 1000 different categories after training on 1.4 million
images. In 2011, the top-5 accuracy of the winning model, based on classical approaches
1.2.5 Back to neural networks
©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and
other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders.
https://forums.manning.com/forums/deep-learning-with-python
15
Licensed to <null>
![](https://csdnimg.cn/release/download_crawler_static/10170472/bg14.jpg)
to computer vision, was only 74.3%. Then in 2012, a team led by Alex Krizhevsky and
advised by Geoffrey Hinton was able to achieve a top-5 accuracy of 83.6%—a significant
breakthrough. The competition has been dominated by deep convolutional neural
networks every year since. By 2015, we had reached an accuracy of 96.4%, and the
classification task on ImageNet was considered to be a completely solved problem.
Since 2012, deep convolutional neural networks ("convnets") have become the go-to
algorithm for all computer vision tasks, and generally all perceptual tasks. At major
computer vision conferences in 2015 or 2016, it had become nearly impossible to find
presentations that did not involve convnets in some form. At the same time, deep learning
has also found applications in many other types of problems, such as natural language
processing. It has come to completely replace SVMs and decision trees in a wide range of
applications. For instance, for several years, the European Organization for Nuclear
Research, CERN, used decision tree-based methods for analysis of particle data from the
ATLAS detector at the Large Hadron Collider (LHC), but they eventually switched to
Keras-based deep neural networks due to their higher performance and ease of training
on large datasets.
The reason why deep learning took off so quickly is primarily that it offered better
performance on many problems. But that’s not the only reason. Deep learning is also
making problem-solving much easier, because it completely automates what used to be
the most crucial step in a machine learning workflow: "feature engineering".
Previous machine learning techniques, "shallow" learning, only involved
transforming the input data into one or two successive representation spaces, usually via
very simple transformations such as high-dimensional non-linear projections (SVM) or
decision trees. But the refined representations required by complex problems generally
cannot be attained by such techniques. As such, humans had to go to great length to make
the initial input data more amenable to processing by these methods, i.e. they had to
manually engineer good layers of representations for their data. This is what is called
"feature engineering". Deep learning, on the other hand, completely automates this step:
with deep learning, you all features in one pass rather than having to engineer themlearn
yourself. This has greatly simplified machine learning workflows, often replacing very
sophisticated multi-stage pipelines with a single, simple, end-to-end deep learning model.
You may ask, if the crux of the issue is to have multiple successive layers of
representation, could shallow methods be applied repeatedly to emulate the effects of
deep learning? In practice, there are fast-diminishing returns to successive application of
shallow learning methods, because the optimal first representation layer in a 3-layer
. What is transformativemodel is not the optimal first layer in a 1-layer or 2-layer model
about deep learning is that it allows a model to learn all layers of representation , atjointly
the same time, rather than in succession ("greedily", as it is called). With joint feature
learning, whenever the model adjusts one of its internal features, all other features that
depend on it will automatically adapt to the change, without requiring human
1.2.6 What makes deep learning different
©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and
other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders.
https://forums.manning.com/forums/deep-learning-with-python
16
Licensed to <null>
剩余317页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/6e0b882e50c0404fa310a4ea125e7d66_awyyauqpmy.jpg!1)
decouples
- 粉丝: 158
- 资源: 17
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)