书籍详情
《机器学习编程:从编码到深度学习》[46M]百度网盘|亲测有效|pdf下载
  • 机器学习编程:从编码到深度学习

  • 出版社:机械工业出版社自营官方旗舰店
  • 出版时间:2021-05
  • 热度:9135
  • 上架时间:2024-06-30 08:52:20
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

适读人群 :本书是从零基础初学者的思维角度编写的,适合作为智能科学与技术、数据科学与大数据技术、计算机科学与技术以及相关专业的本科生或研究生的机器学习入门教材,也可供工程技术人员和自学读者学习参考。

l 语言幽默,举例生动,适合零基础读者学习机器学习。

l 广泛覆盖梯度下降、线性与非线性分类模型、感知机、神经网络、超参数调优、过度拟合和卷积神经网络等重要热门主题。

l 附带配套网站ProgML(www.progml.com),读者可自行参阅重要内容的额外解释与细节部分。

l 每章都附有可供读者完成的编程练习,练习还配备了参考答案。

l 附录中有Python简单入门教程与术语表。


内容简介

本书从一个完全不了解机器学习的程序员的视角出发,通过一系列生动有趣的具体应用实例,运用诙谐的语言以循序渐进的方式比较系统地介绍机器学习的本质思想、基本理论和重要算法,比较细致地剖析线性模型、感知机模型、浅层神经网络、深度神经网络的设计原理与编程方法,引导读者亲自动手从零开始打造和完善机器学习的底层代码,逐步消除对机器学习算法原理的认知盲点,让广大初学者能够较为轻松地掌握机器学习和深度学习的基本理论和编程技术。本书是从零基础初学者的思维角度编写的,适合作为智能科学与技术、数据科学与大数据技术、计算机科学与技术以及相关专业的本科生或研究生的机器学习入门教材,也可供工程技术人员和自学读者学习参考。


作者简介

◆译者简介◆

汪荣贵

合肥工业大学计算机与信息学院(人工智能学院)教授、博士生导师,中国人工智能学会离散智能计算专委会委员,安徽省人工智能学会理事,主要研究方向为多媒体技术与深度学习、视频大数据与计算机视觉,已承担完成或正在承担国家重点研发计划项目、国家自然基金企业联合基金重点项目、国家自然基金面上项目、工信部电子产业基金项目、安徽省科技攻关重点项目(科技强警),以及企业委托研发项目等多个课题的研究,已发表高水平学术论文八十余篇,近期研究成果获中电集团科技进步一等奖、安徽省科技进步二等奖、合肥市科技进步一等奖,长期从事《离散数学》、《算法设计与分析》、《机器学习》、《计算机视觉》、《优化计算方法》等本科生或研究生课程的教学工作,编著出版的教材《离散数学及其应用》、《算法设计与应用》、《机器学习及其应用》、《机器学习简明教程》,以及近期出版的译著《优美的教学思维——问题求解与证明》、《机器学习编程——从编码到深度学习》深受广大读者的欢迎和好评。


精彩书摘

◆前言 ◆

机器学习看上去就像魔法一样。计算机是如何识别图像中物体的呢?车辆又是如何自动驾驶的呢?

不论是对于普通人,还是对于你我这样的软件开发者来说,这些神奇的功能都令人感到沮丧。即使是我这种已经编写了很多年代码的程序员,也不知道机器学习的原理。当我在鼓捣最新的Web框架的时候就有人在编写酷炫的软件。这些软件看上去就像科幻片一样,我甚至都无法理解。

我想要从事这种软件的开发,想要亲自打造属于自己的机器学习软件。

我知道应该怎么去写程序,所以自以为很快就能上手机器学习程序的开发。我想,那能有多难呢?我带着自信满满的微笑开始学习。然后,我将之前的疑虑抛到脑后,保持着自信的微笑。

机器学习对于我们这种程序开发人员来说很陌生。这个领域充满了数学术语、研究惯例以及糟糕的代码。人们会把你引向各种讲座和研究论文,而非教程。对于我们中的大多数而言,机器学习既迷人又危险。

我刚开始学习机器学习时就没有这样一本书—用程序员习惯的语言编写出版的机器学习开发者入门指南。读完本书,你会熟悉机器学习的基本原理,并且能够编写一些机器学习程序。虽然你也许还不能编写出属于自己的自动驾驶程序,但是至少知道机器学习是怎么一回事了。

关于本书

这是一本写给想要从头开始学习机器学习的程序开发人员的入门指南。

机器学习涉及的范围十分广泛,没有哪本书能够涵盖机器学习的所有内容。本书内容将集中在机器学习最重要的三个方面:监督学习、神经网络和深度学习。随着本书内容的展开,我们将以逐渐深入的方式介绍这些术语,下图和下文中的简单定义能够帮助你入门。

监督学习是一种特殊的机器学习类型。机器学习有几种具有不同特点的类型,监督学习是其中最流行的一种。本书的第一部分就是监督学习的一个实践指南。在开始的几章里,我们将编写小型的机器学习程序。然后,我们将逐步提升程序的编写水平,直至完成一个名为感知机的机器学习系统。我们的感知机是一个真正的计算机视觉系统,功能强大到足以识别手写符号。我们完全依靠自己完成程序的编写,不使用程序库,你可以理解程序中的每一行代码。

实现监督学习系统有很多方法,其中最流行的一种是神经网络。神经网络是受人脑神经元连接方式启发而发明出来的一种美妙算法。本书第二部分专注于神经网络。我们将把第一部分构造出来的程序逐步转换为成熟的神经网络模型。我们会在研究过程中面临一些挑战,但获得的回报是巨大的:最后得到的神经网络模型要比初始程序强大得多。这里再次重申,我们会自己一行一行地编写代码。我们将公开代码内核以便读者自己进行尝试。

近年来,研究者发明了一些具有突破性的技术来设计并使用神经网络,神经网络也因此获得了巨大的发展。这种强化版的神经网络技术要比老式的简单神经网络技术强大得多,以致得到一个名为深度学习的新名称。本书第三部分就是深度学习。在这部分,我们将使用现代机器学习程序库重新编写神经网络模型,由此得到的代码将成为我们理解深度学习的起跑线。在第三部分的最后,我们将浏览先进的深度学习技术,为将来的发展打下基础。

严格地说,前面的示意图中表示的内容并不完全准确。例如,神经网络可用于机器学习的其他领域,而并不仅限于监督学习领域。然而,该示意图是顺利理解本书内容的精髓及其整合方式的起点。

开始之前

虽然本书没办法让你在一夜之间成为机器学习专家,但它能够让你从直觉和实践的角度理解机器学习的原理。我想要掀开机器学习的神秘面纱,展示机器学习的奥秘,阐明机器学习的魔法。一旦掌握了机器学习的基本原理,你就会发现深挖机器学习技术并将这些技术结合到日常工作中变得更加容易,甚至还有可能开启你的机器学习工程师职业生涯。

虽然不是只有职业程序开发者才能阅读本书,但你必须能享受编写程序的过程。如果你懂得Python语言,那么你的运气不错,本书自始至终使用的都是Python语言,你会像在自己家里一样自在。如果你不懂Python语言,那也不用担心。Python是一种非常友好的语言,本书的所有代码都不会过于复杂。你可以阅读附录A来快速入门,如果卡壳了就上网搜索更多的信息吧。

机器学习涉及不少数学内容。虽然我不会简化数学部分的内容,但会尽可能地让这些数学内容变得易于直观理解。你需要掌握部分高中数学知识,我默认大家都能看懂笛卡儿坐标系,知道什么是“坐标轴”和“原点”,也能够理解函数图像。除此之外,不需要其他更多的先修数学知识了。

数学探究

我们都喜欢直观的数学,但有时你可能需要更加形式化的表述。如果你在对公式进行分析的时候感到迷茫,或者你喜欢数学并且想要学得更深,那就阅读“数学探究”这个信息框吧。它们会将卓越的可汗学院的相关数学截图呈现给你。不论你现在的数学水平如何,这个网站总能给你提供帮助。

事先说明一下,这些额外的课程内容是选学的。学习本书的知识并不需要这些内容,只有在你想要彻底掌握机器学习的数学知识时才需要学习它们。

另外,如果你有扎实的线性代数和微积分基础,那就会觉得有些数学表达是显而易见的。此时,你就可以不假思索地跳过那些不必阅读的解释。

机器学习有着丰富而且特定的词汇库。你可能会偶尔看见新名词,或者旧词新意。请放轻松,你不用记住所有这些词汇。再次遇到这些词汇的时候,我会提醒你其中很多词汇的含义。每当你遇到不记得含义的术语,都可以查看附录B。

可以使用一句话概括我将在具体应用实例中使用的样本数据集:其中许多数据集是图像集合。但请放心,除了图像识别之外,机器学习还可以做更多其他方面的事情。它可以分析文本、生成音乐,甚至可以进行自动对话。然而,图像识别是一个非常直观的应用实例,所以我将它作为整本书首选的程序应用。

最后,别忘了浏览本书的网站并下载关于应用实例的源代码。你还能在本书的网站上找到关于勘误表的链接,拼写错误、bug和致命错误的勘误也都写在勘误表里。

本书还有一个名为ProgML的配套网站,其中包含一些无法放入书中的额外内容。有时你会在注释中找到对ProgML的引用,以链接到那些关于选学内容的介绍。如果你想要知道更多细节,那就去看看吧。

关于本书的简介就到这里。让我们从第一部分开始学习吧。

致  谢

首先,我要大声地感谢我的技术评审员们:Alessandro Bahgat、Arno Bastenhof、Roberto Bettazzoni、Guido“Zen”Bolognesi、Juan de Bravo、Simone Busoli、Pieter Buteneers、Andrea Cisternino、Sebastian Hennebrüder、Alberto Lumbreras、Russ Olsen、Luca Ongaro、Pierpaolo Pantone、Karol Przystalski、Dan Sheikh、Leonie Sieger、Gal Tsubery、l’ùmarèin pugnàtta di Casalecchio和Giancarlo Valente。谢谢你们提出富有见地的意见,不断地优化本书。Roberto Bettazzoni我就不客气了,他就像我的好朋友一样,得为本书出现的任何错误背锅。

我要感谢我的读者们:Marco Arena、Glen Aultman-Bettridge、Juanjo Bazan、Zbynek Bazanowski、Jamis Buck、Charles de Bueger、Leonardo Carotti、Amir Ebrahimi、Helge Eichhorn、George Ellis、Bruno Girin、Elton Goci、Dave Halliday、Darren Hunt、Peter Lin、Karen Mauney、Bradley Mirly、Vasileios Ntarlagiannis、Volkmar Petschnig、David Pinto、Conlan Rios、Roman Romanchuk、Ionut Simion、Drew Thomas和Jeroen Wenting。谢谢你们在本书的预出版阶段提出意见并参与勘误工作。

谢谢我的朋友Annamaria Di Sebastiano,感谢你和我分享了第1章开头的故事。

感谢Marc Schnierle,谢谢你那无与伦比的LaTeX4technics网络App,我用它来生成公式;感谢Kimberly Geswein,谢谢你设计的独立花体字,我在图中使用了这种字体;感谢设计了DejaVu Sans和DejaVu Sans Mono的团队,我在本书中广泛地使用了它们;还要感谢布里斯班市议会发布了美丽的针鼹图片,它出现在本书的末尾几章之中。

本书历经三位编辑之手。三位编辑都很优秀,我真的很幸运。感谢Meghan Blanchette和Susan Conant,谢谢你们帮助我从草稿开始到完成半成品。如果我在这里表现对你们的偏爱,你们应该会原谅我吧。我还要特别感谢Katharine Dvorak,谢谢你对本书做出的巨大努力,也谢谢你坚定不移但又充满耐心的指引。Katharine,你真的是一名令人称奇的编辑。

我要感谢我的大家庭:爸、妈、Anna、Susanna以及我遍布全球的亲朋好友们。有你们在我身边真是一年四季欢乐无比。

最后,我要感谢我的妻子Irene,当我开始撰写本书的时候,你在我身边支持我度过苦苦挣扎的炎炎夏日。现在本书即将付梓,你一如既往,始终不渝。我无比感激,将本书献给你。


前言/序言

人工智能系统主要使用机器学习技术解析外部环境数据,从数据中获取知识和模型参数,从而获得可用于决策或预测的数学模型。机器学习为人工智能系统提供了基础性的核心算法支撑。要想了解人工智能,首先必须牢固掌握机器学习的基础理论与应用技术。

机器学习主要是从经验数据等先验信息中产生或构造模型的训练学习算法,或者说机器学习是一门关于训练学习算法设计理论与应用技术的学问。我们知道,算法设计是一种思维的艺术,需要一定的抽象思维能力和数学知识。机器学习算法更是如此,不仅涉及微积分、数理统计、矩阵计算、图论等数学知识,还涉及众多最优化理论与方法,为广大初学者掌握机器学习知识带来一定的困难。

本书从一个完全不了解机器学习的程序员的视角出发,通过一系列生动有趣的具体应用实例,运用诙谐的语言以循序渐进的方式比较系统地介绍机器学习的本质思想、基本理论和重要算法,引导读者亲自动手从零开始打造和完善机器学习的底层代码,逐步消除对机器学习算法原理的认知盲点,使得广大初学者可以比较轻松地掌握机器学习和深度学习的基本理论和编程技术。

本节主要由三部分组成。第一部分主要通过一些有趣的应用实例介绍机器学习的基本概念、梯度下降优化算法,以及线性回归模型、线性分类模型、感知机模型等最基本的机器学习模型。第二部分主要介绍神经网络模型及相关的训练算法,首先使用一种非常易于理解的方式介绍感知机神经网络模型,使得读者能够很快认识到神经网络模型的本质,然后结合代码的编写过程由浅入深地介绍神经网络模型的训练步骤和训练算法,并以诙谐幽默的语言分析讨论超参数调优和模型测试的一般方法和基本技巧。第三部分介绍深度学习的基本原理和基本模型,着重讨论深度学习的过度拟合问题和正则化策略以及激活函数的设计思想,帮助广大初学者打下良好的深度学习知识基础和编程基础。

本书是从零基础初学者的思维角度编写的,使用非常朴实、幽默的语言深入浅出地表达知识内容,着重突出机器学习方法的思想内涵、本质和基本的编程技术,使得广大读者能够通过自己的努力较容易地掌握全书主要内容,适合作为智能科学与技术、数据科学与大数据技术、计算机科学与技术以及相关专业的本科生或研究生的机器学习入门教材,也可供工程技术人员和自学读者学习参考。

本书由汪雄飞、汪荣贵共同翻译完成。感谢研究生张前进、江丹、孙旭、尹凯健、王维、张珉、李婧宇、修辉、雷辉、张法正、付炳光、叶萌、朱正发、汤明空、韩梦雅、邓韬、王静、龚毓秀、李明熹、董博文、麻可可、李懂、刘兵等提供的帮助,感谢合肥工业大学和机械工业出版社的大力支持。

由于时间仓促,译文难免存在不妥之处,敬请读者批评指正!

译者

2021年3月