《Python与神经网络实战研究》曹玉婵著|(epub+azw3+mobi+pdf)电子书下载

图书名称:《Python与神经网络实战研究》

【作 者】曹玉婵著
【页 数】 375
【出版社】 长春:东北师范大学出版社 , 2019.11
【ISBN号】978-7-5681-6452-8
【价 格】30.00
【分 类】人工神经网络-软件工具-程序设计
【参考文献】 曹玉婵著. Python与神经网络实战研究. 长春:东北师范大学出版社, 2019.11.

图书封面:

图书目录:

《Python与神经网络实战研究》内容提要:

本书的内容丰富,主要介绍了经典传统机器学习算法、神经网络技术入门要点、从传统算法走向神经网络、神经网络进阶、半自动化机器学习框架、工程化机器学习框架等内容,为广大读者提供了大量实用的学习资料。编著本书的目的,就是想介绍一种入门机器学习的方法。虽然市面上已经有许多机器学习的书籍,但它们大多要么过于偏重理论,要么过于偏重应用,要么过于“厚重”;本书致力于将理论与实践相结合,在讲述理论的同时,利用Python这一门简明有力的编程语言进行一系列的实践与应用。

《Python与神经网络实战研究》内容试读

第1章Python与机器学习人门>

第1章1Python与机器学习入门

“机器学习”一词虽然不至于人尽皆知,但也是非常热门的。“机器学习”是英文单词“Machine Learning'”的直译,从字面上看,其是指让机器进行“学习”的技术。然而,我们知道机器终究是死的,“学习”归根结底只是人类赋予机器的一系列运算程序。这个“赋予”的过程可以用很多种方法实现,而Pytho正是其中相对容易、性能又相当不错的一种计算机程序设计语言。在本章中,我们先介绍一些有关机器学习的基础知识,再介绍并说明为何要用Python做机器学习的工具,最后通过一个简单易懂的、具有实际意义的例子让大家了解机器学习。

具体而言,本章主要涉及的知识点如下:

·机器学习的定义及重要性:

·Python在机器学习领域的优势:

·如何在电脑上配置Python机器学习的环境;

·机器学习的一般步骤。

1.1机器学习绪论

正如前言所说,近期的各种最新成果使“机器学习”成了非常热门的名词。机器学习在各种领域的优秀表现使各行各业的人们都或多或少地对其产生了兴趣。然而,对机器学习有误解的人也越来越多。他们或将机器学习想得过于神秘,或将它想得过于万能。本节将对机器学习进行一般性介绍,同时介绍机器学习中一些常见的术语,以方便后面章节内容的叙述。

1

1.1.1什么是机器学习

清晨的一句“今天天气真好”、朋友之间的寒暄“你刚刚是去吃饭了吧”、考试过后的感叹“复习了那么久终有收获”,这些日常生活中随处可见的话语,背后却蕴含了“学习”的思想一它们都是利用以往的经验来对未知的新情况做出的有效决策。而把这个决策的过程交给计算机来完成,可以说就是机器学习的一个最浅显的定义。

我们可以先说说机器学习与以往的计算机工作方式有什么不同。如果想用传统的计算机得到某个结果,那么人类需要赋予它一串指令,然后计算机根据这串指令一步步执行下去,最后得出结果。这个过程中的因果关系非常明确,只要人类的理解不出偏差,运行结果是可以准确预测的。但是在机器学习中,这一传统方式被打破了:计算机确实仍然需要人类赋予它一串指令,但这串指令往往不能直接得到结果:相反,这串指令赋予了机器“学习能力”。在此基础上,计算机需要进一步接收数据,并根据之前人类赋予它的“学习能力”进行“学习”,最后得出结果。这个结果往往无法仅通过直接编程得出。因此,这里就引出了稍微深一点的机器学习的定义:机器学习是一种让计算机利用数据而非指令来进行各种工作的方法。在这背后,最关键的概念就是统计的思想,“相关而非因果”的概念是机器学习的理论根基。在此基础上,机器学习可以说是计算机使用人类输入的数据,利用人类赋予的算法得到某种模型的过程,最终的目的是使用该模型预测未知的数据和信息。

既然提到了统计,那么一定要运用到数学理论。相关的、比较简短的统计定义会在后面章节给出,这里我们只叙述机器学习在统计理论下的、比较深刻的本质:它追求的是合理的假设空间(Hypothesis Space)的选取和模型的泛化(Generalization)能力。这一描述中用了一些术语,这些术语的详细定义会在后面介绍,这里我们只进行直观的理解:

·假设空间,就是我们的模型在数学上的适用场合:

·泛化能力,就是我们的模型在未知数据上的表现。

注意,严格来说,前面描述的本质是机械学习的本质:在其余的理论框架下,机器学习可以具有不同的内核。

从上面的讨论可以看出,机器学习和人类思考的过程或多或少有相似之处。事实上,在后面章节介绍的神经网络(Neural Network,NN)和卷积神

2

第1章Python与机器学习入门>

经网络(Convolutional Neural Networks,CNN)确实有着相应的神经科学的理论背景。然而,需要知道的是,机器学习并非是指一个会学习的机器人或具有学习能力的人造人之类,这一点从上面的讨论中也可以明确,机器学习是能被人类利用、用于发掘数据背后信息的工具。

1.1.2机器学习常用术语

机器学习领域有许多基本术语,这些术语可能有非常复杂的数学背景,在外人听来高深莫测,但实际上,它们往往含义相对浅显且易于理解,如上

一小节中的假设空间和泛化能力。本小节会对这些常用的基本术语进行说明与解释,阐述相关的数学理论,但不会涉及过深的知识。

正如前文反复强调的,数据在机器学习中具有不可或缺的作用,以下用于描述数据的术语需要被牢牢记住

·“数据集”(Data Set),指数据的集合。其中,每一条独立的数据都被称为“样本”(Sample)。若没有特殊说明,则本书都会假设数据集中的样本在各种意义下相互独立。事实上,除了某些特殊的模型(如隐马尔可夫模型和条件随机场),该假设在大多数场景中都是恰当的。

每个样本通常具有一些“属性”(Attribute)或“特征”(Feature),。

特征所具体取的值称为“特征值”(Feature Value)。

·特征和样本所分布的空间分别称为“特征空间”(Feature Space)和“样本空间”(Sample Space),可以简单地理解为特征和样本可能存在的空间。

·我们用“标签空间”(Label Space)描述模型的输出可能存在的空间:当模型是分类器时,我们通常会将其称为“类别空间”。

数据集可以分为以下三类

·训练集(Training Set):顾名思义,它是总的数据集中用来训练模型的部分。虽说将所有数据集都拿来当作训练集也无不可,但是为了提高并合理评估模型的泛化能力,我们通常只会取数据集中的一部分当作训练集

·测试集(Test Set):顾名思义,它是用来测试、评估模型泛化能力的。测试集不会用在模型的训练上,换句话说,测试集对模型而言是未知的,因此用它评估模型的泛化能力是恰当的。

·交叉验证集(Cross-Validation Set,CV Set):这是一部分比较特殊的数据,是用来调整模型具体参数的。

3

Python与神经网络实战研究

注意,获取数据集这个过程是不容易且重要的,尤其在当今大数据的背景下,读者可以上网寻找一些合适的数据集来评估我们自己实现的模型

可以通过具体的例子来理解上述概念。比如,我们假设小明是一名在北京上了一年学的学生,某天他想通过宿舍窗外的天气、景物和行人(能见度、温度、湿度、路人戴口罩的情况等)判断当天的雾霾情况并据此决定是否戴口罩。此时,他过去一年的经验就是他拥有的数据集,过去一年中每天的情况都是一个样本。“能见度”“温度”“湿度”“路人戴口罩的情况是四个特征,而“(能见度)低”“(温度)低”“(湿度)高”“(戴口罩的路人)多”就是相应的特征值。现在小明想了想,准备在脑中建立一个模型来帮自己做决定,该模型将利用过去一年的数据集来对如今的情况做出“是否戴口罩”的判断。此时小明可以用过去一年中8个月的数据量做训练集、2个月的数据量做测试集、2个月的数据量做交叉验证集,那么小明就需要不断地思考(训练模型)下列问题:

·用训练集训练出的模型是怎样的?

·该模型在交叉验证集上的表现怎么样?

。如果表现足够好,那么思考结束(得到最终模型)。

0如果表现不够好,那么根据模型在交叉验证集上的表现重新思考(调整模型参数)。

最后,小明可能在测试集上评估自己刚刚思考后得到的模型的性能,然后根据这个模型做出的“是否戴口罩”的判断来综合考虑自己到底戴不戴口罩。

接下来说明前面小节中提到过的重要概念:假设空间与泛化能力。泛化能力的含义在前文已有说明,为强调它的重要性,这里再叙述一遍:

·泛化能力针对的其实是学习方法,用于衡量由该学习方法学到的模型在整个样本空间上的表现。

这一点当然是十分重要的,因为我们用来训练模型的数据终究只是样本空间的很小的采样,如果过分专注于训练数据,那么会出现过拟合(Ovr

Fitting)情况。

当然,如果过于忽视训练数据,那么会出现欠拟合(Under Fitting)情况。可以用图来直观地表现过拟合和欠拟合情况(如图1-1所示,左边为欠拟合情况,右边为过拟合情况)。

4

第1章Python与机器学习人门>

2.0

2.0

1.5

1.5

1.0

1.0

0.5

0.5

0.0

0.0

-0.5

-0.5

-1915-1.0-0.5000.51.015-195-1.0-0.50.00.51.015

图1·1欠拟合和过拟合情况

所以需要找到平衡点,统计学中的结构风险最小化(Structural Risk

Minimization,SRM)就是研究这个的。和传统的经验风险最小化(Empirical

Risk Minimization,ERM)相比,其侧重于风险上界的最小化,而不是单纯地使经验风险最小化。它的原则是在使风险上界最小的函数子集中挑选出使经验风险最小的函数。这个函数子集就是我们之前提到过的假设空间。

注意,经验风险可以理解为训练数据集上的风险。相对的,ERM可以

理解为只注重训练数据集的学习方法,它的理论基础是经验风险在某种足够合理的数学意义上一致收敛于期望风险,即“真正的”风险。

关于SRM和ERM的详细讨论这里不再展开,但读者要有这样一个直观

的认识:为了使用学习方法训练出的模型的泛化能力足够好,我们需要对模型做出一定的“限制”,而这个“限制”就体现在假设空间的选取上。一个非常普遍的做法是:对模型的复杂程度做出一定的“惩罚”,从而使模型趋于精简。这与“奥卡姆剃刀原理”不谋而合:如无必要,勿增实体;切勿浪费较多的东西去做一件事,用较少的东西同样可以做好事情。

比起通过选取合适的假设空间来规避过拟合,交叉验证(Coss

Validation)可以让我们知道过拟合的程度,从而帮助我们选择合适的模型。常见的交叉验证有以下三种。

·S折交叉验证:这是应用最多的方法,其方法大致如下。

o将数据分成S份,D={D1,D2,…,D,},一共做S次试验。

o在第i次试验中,以D-D为训练集,以D,为测试集,对模型进行训练和评测

0最终选择平均测试误差最小的模型。

·留一交叉验证:这是S折交叉验证的特殊情况,此时S=N。

·简易交叉验证:这种方法实现起来最简单,也是本书在进行交叉验证

5

时所采用的方法。简单地将数据进行随机分组,最后达到训练集约占原数据70%的程度(这个比例可以视情况而变),选择模型时以测试误差为标准。

1.1.3机器学习的重要性

道理说了不少,但到底为什么要学机器学习呢?机器学习的重要性又在哪里呢?在过去,大多数工作基本上都有明确的定义,告诉你这一步该怎么做,下一步该怎么做。而如今,这类工作已经越来越少,工作的内容与要求越来越宽泛、模糊,比如某种工作的内容是“将本季度的产品推向最合适的市场,在最大化期望利润的同时,尽量做到风险最小化”。想要完成好这样的任务,就要获取相应的数据,再从这些数据中获得信息与知识,这不是项简单的工作。我们当然可以自己动手,仔细地逐个筛选,但这样工作量就十分庞大了。机器学习这门技术可以说正是为此而产生的。

我们能直接从机器学习具体的应用范围中了解机器学习的强大与重要。今天,机器学习的“触角”已经延伸到了各个角落,包括但不限于:

·机器视觉,也就是最近机器学习里深度学习的一种应用:

·语音识别,也就是微软Cortana背后的核心技术:

·数据挖掘,也就是人人耳熟能详的大数据相关领域:

·统计学习,也就是本书讲解的主要内容之一,许多著名的算法(如

支持向量机SVM)都源于统计学习,但是统计学习和机器学习仍存在不同

之处,简单来说,统计学习侧重于数学,而机器学习侧重于实践

机器学习还能够用于模式识别、自然语言处理,等等,之前提到过的围棋界的Master和最新人工智能在德州扑克上的表现无不显示出机器学习的巨大潜力。总之,机器学习是当今的研究热点,并且会在相当长的一段时间内保持强大的生命力。

1.2 Python简介

上一节介绍了机器学习的各种概念,这一节我们主要讲解脚本语言

Python的相关知识。

6

···试读结束···

阅读剩余
THE END