产品特色
编辑推荐
如今是人工智能高歌猛进的时代,机器学习的发展也如火如荼。然而,复杂的数学公式和难解的专业术语容易令刚接触这一领域的学习者望而生畏。有没有这样一本机器学习的书,能摒弃复杂的公式推导,带领读者通过实践来掌握机器学习的方法?
《机器学习与优化》正是这样一本书!它的写作脱胎于意大利特伦托大学机器学习与智能优化实验室(LION lab)的研究项目,语言轻松幽默,内容图文并茂,涵盖了机器学习中可能遇到的各方面知识。更重要的是,书中特别介绍了两个机器学习的应用,即信息检索和协同推荐,让读者在了解信息结构的同时,还能利用信息来预测相关的推荐项。
本书作者以及读者群发布的数据、指导说明和教学短片都可以在本书网站上找到。
本书内容要点:
● 监督学习——线性模型、决策森林、神经网络、深度和卷积网络、支持向量机等
● 无监督模型和聚类——K均值、自底而上聚类、自组织映射、谱图绘制、半监督学习等
● 优化是力量之源——自动改进的局部方法、局部搜索和反馈搜索优化、协作反馈搜索优化、多目标反馈搜索优化等
● 应用精选——文本和网页挖掘,电影的协同推荐系统
内容简介
本书是机器学习实战领域的一本佳作,从机器学习的基本概念讲起,旨在将初学者引入机器学习的大门,并走上实践的道路。本书通过讲解机器学习中的监督学习和无监督学习,并结合特征选择和排序、聚类方法、文本和网页挖掘等热点问题,论证了“优化是力量之源”这一观点,为机器学习在企业中的应用提供了切实可行的操作建议。
作者简介
【作者简介】
罗伯托·巴蒂蒂(Roberto Battiti)
人工智能领域先驱,IEEE会士。因在无功搜索优化(RSO)方向做出了开创性的工作而名震学界。 目前为意大利特伦托大学教授,同时担任特伦托大学机器学习与智能优化实验室(LION lab)主任。
毛罗·布鲁纳托(Mauro Brunato)
意大利特伦托大学助理教授,LION研究团队成员。
【译者简介】
王彧弋
博士,现于瑞士苏黎世联邦理工学院从事研究工作,主要研究方向为理论计算机科学与机器学习。
目录
第 1章 引言 1
1.1 学习与智能优化:燎原之火 1
1.2 寻找黄金和寻找伴侣 3
1.3 需要的只是数据 5
1.4 超越传统的商业智能 5
1.5 LION方法的实施 6
1.6 “动手”的方法 6
第 2章 懒惰学习:最近邻方法 9
第3章 学习需要方法 14
3.1 从已标记的案例中学习:最小化和泛化 16
3.2 学习、验证、测试 18
3.3 不同类型的误差 21
第 一部分 监督学习
第4章 线性模型 26
4.1 线性回归 27
4.2 处理非线性函数关系的技巧 28
4.3 用于分类的线性模型 29
4.4 大脑是如何工作的 30
4.5 线性模型为何普遍,为何成功 31
4.6 最小化平方误差和 32
4.7 数值不稳定性和岭回归 34
第5章 广义线性最小二乘法 37
5.1 拟合的优劣和卡方分布 38
5.2 最小二乘法与最大似然估计 42
5.2.1 假设检验 42
5.2.2 交叉验证 44
5.3 置信度的自助法 44
第6章 规则、决策树和森林 50
6.1 构造决策树 52
6.2 民主与决策森林 56
第7章 特征排序及选择 59
7.1 特征选择:情境 60
7.2 相关系数 62
7.3 相关比 63
7.4 卡方检验拒绝统计独立性 64
7.5 熵和互信息 64
第8章 特定非线性模型 67
8.1 logistic 回归 67
8.2 局部加权回归 69
8.3 用LASSO来缩小系数和选择输入值 72
第9章 神经网络:多层感知器 76
9.1 多层感知器 78
9.2 通过反向传播法学习 80
9.2.1 批量和bold driver反向传播法 81
9.2.2 在线或随机反向传播 82
9.2.3 训练多层感知器的高级优化 83
第 10章 深度和卷积网络 84
10.1 深度神经网络 85
10.1.1 自动编码器 86
10.1.2 随机噪声、屏蔽和课程 88
10.2 局部感受野和卷积网络 89
第 11章 统计学习理论和支持向量机 94
11.1 经验风险最小化 96
11.1.1 线性可分问题 98
11.1.2 不可分问题 100
11.1.3 非线性假设 100
11.1.4 用于回归的支持向量 101
第 12章 最小二乘法和健壮内核机器 103
12.1 最小二乘支持向量机分类器 104
12.2 健壮加权最小二乘支持向量机 106
12.3 通过修剪恢复稀疏 107
12.4 算法改进:调谐QP、原始版本、无补偿 108
第 13章 机器学习中的民主 110
13.1 堆叠和融合 111
13.2 实例操作带来的多样性:装袋法和提升法 113
13.3 特征操作带来的多样性 114
13.4 输出值操作带来的多样性:纠错码 115
13.5 训练阶段随机性带来的多样性 115
13.6 加性logistic回归 115
13.7 民主有助于准确率-拒绝的折中 118
第 14章 递归神经网络和储备池计算 121
14.1 递归神经网络 122
14.2 能量极小化霍普菲尔德网络 124
14.3 递归神经网络和时序反向传播 126
14.4 递归神经网络储备池学习 127
14.5 超限学习机 128
第二部分 无监督学习和聚类
第 15章 自顶向下的聚类:K均值 132
15.1 无监督学习的方法 134
15.2 聚类:表示与度量 135
15.3 硬聚类或软聚类的K均值方法 137
第 16章 自底向上(凝聚)聚类 142
16.1 合并标准以及树状图 142
16.2 适应点的分布距离:马氏距离 144
16.3 附录:聚类的可视化 146
第 17章 自组织映射 149
17.1 将实体映射到原型的人工皮层 150
17.2 使用成熟的自组织映射进行分类 153
第 18章 通过线性变换降维(投影) 155
18.1 线性投影 156
18.2 主成分分析 158
18.3 加权主成分分析:结合坐标和关系 160
18.4 通过比值优化进行线性判别 161
18.5 费希尔线性判别分析 163
第 19章 通过非线性映射可视化图与网络 165
19.1 最小应力可视化 166
19.2 一维情况:谱图绘制 168
19.3 复杂图形分布标准 170
第 20章 半监督学习 174
20.1 用部分无监督数据进行学习 175
20.1.1 低密度区域中的分离 177
20.1.2 基于图的算法 177
20.1.3 学习度量 179
20.1.4 集成约束和度量学习 179
第三部分 优化:力量之源
第 21章 自动改进的局部方法 184
21.1 优化和学习 185
21.2 基于导数技术的一维情况 186
21.2.1 导数可以由割线近似 190
21.2.2 一维最小化 191
21.3 求解高维模型(二次正定型) 191
21.3.1 梯度与最速下降法 194
21.3.2 共轭梯度法 196
21.4 高维中的非线性优化 196
21.4.1 通过线性查找的全局收敛 197
21.4.2 解决不定黑塞矩阵 198
21.4.3 与模型信赖域方法的关系 199
21.4.4 割线法 200
21.4.5 缩小差距:二阶方法与线性复杂度 201
21.5 不涉及导数的技术:反馈仿射振荡器 202
21.5.1 RAS:抽样区域的适应性 203
21.5.2 为健壮性和多样化所做的重复 205
第 22章 局部搜索和反馈搜索优化 211
22.1 基于扰动的局部搜索 212
22.2 反馈搜索优化:搜索时学习 215
22.3 基于禁忌的反馈搜索优化 217
第 23章 合作反馈搜索优化 222
23.1 局部搜索过程的智能协作 223
23.2 CoRSO:一个政治上的类比 224
23.3 CoRSO的例子:RSO与RAS合作 226
第 24章 多目标反馈搜索优化 232
24.1 多目标优化和帕累托最优 233
24.2 脑-计算机优化:循环中的用户 235
第四部分 应用精选
第 25章 文本和网页挖掘 240
25.1 网页信息检索与组织 241
25.1.1 爬虫 241
25.1.2 索引 242
25.2 信息检索与排名 244
25.2.1 从文档到向量:向量-空间模型 245
25.2.2 相关反馈 247
25.2.3 更复杂的相似性度量 248
25.3 使用超链接来进行网页排名 250
25.4 确定中心和权威:HITS 254
25.5 聚类 256
第 26章 协同过滤和推荐 257
26.1 通过相似用户结合评分 258
26.2 基于矩阵分解的模型 260
参考文献 263
索引 269
《算法的炼金术:从零构建你的智能系统》 导语: 在这个数据洪流奔涌、智能需求日益迫切的时代,我们常常惊叹于那些能够学习、预测、决策的“聪明”系统。它们有的能够精准识别图像中的猫狗,有的能根据你的喜好推荐电影,有的甚至能驾驶汽车穿越复杂的城市道路。然而,这些神奇的能力并非凭空而来,它们的背后是一系列精妙的算法,是无数次迭代与优化的结晶。本书并非直接教授你某个领域的具体应用,而是将目光投向算法的根基,带你深入探究那些构建智能系统的“魔法石”。我们将一同解锁算法的底层逻辑,理解它们如何从原始数据中提炼智慧,如何通过不断的试错与调整变得更加高效和精准。无论你是渴望理解人工智能背后原理的初学者,还是希望夯实理论基础、拓展技术边界的从业者,本书都将为你开启一扇通往算法世界的全新大门。 第一章:算法的基石——数据与结构 在构建任何智能系统之前,我们必须首先理解它的原材料——数据。数据是智能的土壤,而数据的组织方式则决定了土壤的肥沃程度。本章将带领读者从最基础的角度审视数据,探讨不同类型数据的本质及其在算法处理中的意义。 数据的分类与理解:我们将从数据的量级(小数据、大数据)、维度(低维、高维)、类型(结构化、非结构化、半结构化)等多个维度深入剖析数据。理解数据的特性至关重要,因为它直接影响着后续算法的选择和设计。例如,文本数据和图像数据在存储和处理上就存在显著差异。我们将通过实际案例,展示如何从海量数据中识别出对特定任务有价值的信息。 数据结构的重要性:算法的效率往往与数据结构的组织方式息息相关。我们会回顾并深入探讨几种经典的数据结构,如数组、链表、栈、队列、树、图、哈希表等。理解它们的优缺点,以及在不同场景下适用的数据结构,能够极大地优化算法的执行速度和内存占用。例如,在需要频繁查找的场景,哈希表能提供近乎常量的查找时间;而在需要高效插入和删除的场景,链表则可能更为合适。 数据预处理的艺术:原始数据往往充满了噪声、缺失值和不一致性,直接将其用于算法训练可能会导致模型性能下降甚至失效。本章将详细讲解数据预处理的关键步骤,包括数据清洗(处理缺失值、异常值)、数据转换(归一化、标准化、编码)、特征工程(特征选择、特征提取、特征构造)等。我们会强调,数据预处理并非机械的操作,而是一个需要深入理解数据特性、并结合具体问题进行巧妙设计的艺术过程。例如,如何将类别型特征转化为数值型特征,以便算法能够理解;如何处理数据中的时间序列信息,使其更易于模型学习。 第二章:算法的思维——逻辑与流程 算法的本质是解决问题的步骤和逻辑。本章将聚焦于算法的思维方式,带领读者理解如何将一个实际问题转化为一系列可执行的指令,并探讨不同算法设计范式的核心思想。 问题的形式化与建模:如何将现实世界模糊的问题,转化为计算机能够理解的、清晰的数学模型和逻辑结构,是算法设计的起点。我们将学习如何定义输入、输出,如何设定约束条件,如何选择合适的评价指标来衡量问题解决的“好坏”。例如,一个“预测房价”的问题,可以被形式化为一个输入“房屋特征”(面积、地理位置、房间数等)输出“预测价格”的模型。 基本算法设计范式:本章将介绍几种最基本的算法设计范式,例如: 分治法:将复杂问题分解为更小的、独立的子问题,分别解决,然后将子问题的解合并起来。我们将以经典的“归并排序”和“快速排序”为例,深入理解分治法的思想和实现。 动态规划:通过将大问题分解为相互重叠的子问题,并记录子问题的解,避免重复计算,从而高效地解决问题。经典的“背包问题”、“最长公共子序列”等问题将作为实例,揭示动态规划的魅力。 贪心算法:在每一步选择局部最优解,期望最终得到全局最优解。我们将通过“活动选择问题”、“霍夫曼编码”等案例,探讨贪心算法的适用条件和潜在陷阱。 回溯法与分支限界法:用于搜索解空间的算法,尤其适用于组合优化问题。我们将通过“八皇后问题”、“旅行商问题”等,理解如何系统地搜索所有可能的解决方案,并进行剪枝以提高效率。 复杂度分析的艺术:理解算法的效率至关重要。我们将深入学习如何使用大O符号(Big O notation)来分析算法的时间复杂度和空间复杂度。这不仅仅是理论上的学术探讨,更是评估算法可行性、选择最优算法的关键依据。我们会通过实例,计算并比较不同算法的复杂度,理解“O(n)”、“O(n log n)”、“O(n^2)”等不同增长趋势的意义。 第三章:算法的进化——学习与调整 如果说前两章聚焦于静态的算法逻辑,那么本章将把目光转向算法的“生命力”——学习与自我调整的能力。我们将探讨算法如何从经验中汲取养分,如何通过不断地迭代优化来提升性能。 监督学习的探索:在本章中,我们将深入理解监督学习的核心概念。它就像一位勤奋的学生,在老师(标签数据)的指导下学习。我们会详细介绍几种基础的监督学习算法,如: 线性回归与逻辑回归:理解模型如何通过拟合数据来建立输入与输出之间的映射关系。我们会探讨它们的数学原理、参数更新过程,以及如何评估模型的性能(如MSE、准确率)。 决策树:学习如何构建一个树状结构,通过一系列判断来做出预测。我们将探讨信息增益、基尼系数等用于节点划分的指标,以及过拟合的风险和剪枝策略。 支持向量机(SVM):理解如何找到最优的超平面来分隔不同类别的数据,以及核技巧在处理非线性可分问题中的作用。 无监督学习的发现:与监督学习不同,无监督学习就像一位自主探索的科学家,在没有明确指导的情况下寻找数据中的模式和结构。我们将介绍: 聚类算法:如K-Means算法,学习如何将相似的数据点分组,发现隐藏的数据簇。我们会探讨距离度量、簇的质心更新等过程。 降维技术:如主成分分析(PCA),学习如何在高维数据中提取最重要的信息,将其压缩到低维空间,同时保留尽可能多的方差。 模型评估与调优的循环:构建一个算法模型并非终点,如何评估它的表现并进行持续的优化才是关键。本章将重点讲解模型评估的常用方法,如交叉验证、混淆矩阵、ROC曲线等,以及如何通过调整模型参数(超参数调优)、特征工程等手段来提升模型的泛化能力和鲁棒性。我们将强调,这是一个反复迭代、不断逼近最优解的过程。 第四章:算法的实践——工具与应用 理论的基石一旦稳固,便需要付诸实践。本章将带领读者将所学的算法知识转化为实际的应用,了解常用的算法开发工具和平台,并初步触及一些算法在各领域的应用场景。 编程语言与库的生态:我们将简要介绍当前主流的算法开发编程语言,如Python,并着重介绍与其配套的强大算法开发库,如NumPy(数值计算)、SciPy(科学计算)、Pandas(数据处理)、Scikit-learn(机器学习)等。理解这些工具的作用和基本用法,能够极大地提高开发效率。 算法实现的最佳实践:在实际编码中,遵循一些最佳实践能够确保代码的可读性、可维护性和效率。我们将讨论代码风格、模块化设计、注释的重要性,以及如何编写高效的算法代码。 算法在各领域的“投影”:虽然本书不侧重于某个具体应用领域,但为了让读者更好地理解算法的价值,我们将在本章简要介绍算法在不同领域的“投影”。例如: 计算机视觉:图像识别、目标检测背后的算法逻辑。 自然语言处理:文本分类、机器翻译、情感分析等任务中算法的扮演的角色。 推荐系统:个性化推荐背后隐藏的算法模型。 金融风控:欺诈检测、信用评分等场景的算法应用。 科学计算与模拟:在物理、化学、生物等领域,算法如何加速研究进程。 我们将强调,理解算法的通用性,是触类旁通、适应不同领域挑战的关键。 结语: 算法的世界博大精深,它既是严谨的科学,也是充满创造力的艺术。本书旨在为您提供一个坚实的起点,让您能够理解算法的“前世今生”,掌握算法的“思维方式”,并具备初步的“实践能力”。在数据的海洋中,算法是您最可靠的导航仪,它能帮助您发现规律,预测未来,并最终构建出属于您自己的智能系统。愿您在算法的探索之路上,不断发现新的可能,炼就属于您的“智能之石”。