ML系列-《The Hundred-Page Machine Learning book》-读书笔记&思考

About the author:
作者简介安德烈·布可夫(Andriy Burkov)是一位机器学习专家,目前居住于加拿大魁北克省。 他拥有人工智能博士学位,尤其擅长自然语言处理技术。 目前,他是高德纳(Gartner)咨询公司机器学习开发团队的主管。 该团队的主要工作是,使用浅层和深度学习技术,开发可用于生产环境的、先进的多语言文字抽取和标准化系统。

About the book:
《The Hundred-Page Machine Learning Book》(中文名:《机器学习百页书》)是一本精简的机器学习入门手册,书籍囊括机器学习的精髓,系统而精炼地讲解机器学习的基本原理,包含大量自20世纪60 年代以来具有重要实用价值的机器学习材料。 它既适用于初学者,也适用于有经验的从业者。

Preface:
—— 由preface作者引出一个问题“机器会学习吗?”
作者给出的答案是“不会”,典型的“学习机器”是找到一个数学公式,向公式输入“训练数据”(called “training data”)生成所需要的输出,这个公式也同样适用于来源相同或者具有相似统计分布的数据。那为什么这不是学习呢(learning)? 因为算法是“人为”定义的,试想一个场景,一个被算法训练为只能直视屏幕来玩屏幕游戏的机器人,当屏幕旋转的时候,它就没有办法跟随屏幕旋转来玩游戏了,因为它没有经过训练来识别旋转,但人类在屏幕旋转的情况下,仍然能够成为一个优秀的玩家。
那么为什么叫“机器学习”呢?
想必更多的原因在于营销的噱头, 1959年,在IBM工作的美国电脑游戏和人工智能领域先驱阿瑟·塞缪尔 (Arthur Samuel) 创造了这个术语,与2010年代IBM试图推销“认知计算”一词以在竞争中脱颖而出类似,在1960年代,IBM使用新的酷术语“机器学习”来吸引客户和有才华的员工。就像人工智能不是智能一样,机器学习也不是学习。不过,机器学习是一个普遍认可的术语,通常指的是在科学和工程中无需明确编程即可构建能够做各种有用事情的机器。 因此,该术语中的“学习”一词是类比动物的学习,并非字面意思。
—— 这本书适合谁?
这本书仅包含自20世纪60年代以来开发的大量机器学习材料中已被证明具有重大实用价值的部分。机器学习的初学者将在本书中找到足够的细节,以轻松地理解该领域并开始提出正确的问题。有经验的从业者可以将本书作为进一步自我提升的指南集。当您在项目开始时进行头脑风暴时,可以尝试用本书来回答给定的技术或业务问题是否是“机器可学习的”问题,如果是的话,也可以参考本书尝试使用哪些技术来解决。
—— 如何使用本书?
如果你即将开始学习机器学习,你应该从头到尾阅读这本书,只有一百页。MLbook.com上包含附加材料的页面的链接,包括推荐读物、视频、问答、代码片段、教程和其他奖励。
https://themlbook.com/
关于机器学习你需要了解的一切都在一百页之内
监督和无监督学习、支持向量机、神经网络、集成方法、梯度下降、聚类分析和降维、自动编码器和迁移学习、特征工程和超参数调整! 数学、直觉、插图,全部在短短一百页内!
—— 你应该买这本书吗?
本书按照“先读,后买”的原则发行。在google搜索就能获得pdf的下载链接。
—— 建议阅读时间?

Content:
http://themlbook.com/wiki/doku.php
Chapter 1: Introduction
Part I: Supervised Learning
Chapter 2: Notation and Definitions
Chapter 3: Fundamental Algorithms (plus in-depth material)
Chapter 4: Anatomy of a Learning Algorithm
Chapter 5: Basic Practice (plus in-depth material)
Chapter 6: Neural Networks and Deep Learning (plus in-depth material)
Chapter 7: Problems and Solutions
Chapter 8: Advanced Practice
Part II: Unsupervised and Other Forms of Learning
Chapter 9: Unsupervised Learning (plus in-depth material)
Chapter 10: Other Forms of Learning
Chapter 11: Conclusion and additional reading
Code on Github
https://github.com/aburkov/theMLbook
All wiki pages
http://themlbook.com/wiki/doku.php?id=start&do=index

———————————————————— Chapter 1: Introduction ———————————————————— 2024.01.21
1.1 What is Machine Learning
1.2 Types of Learning
1.2.1 Supervised Learning
1.2.2 Unsupervised Learning
1.2.3 Semi-Supervised Learning
1.2.4 Reinforcement Learning
1.3 How Supervised Learning Works
1.4 Why the Model Works on New Data

————————————————Chapter 2: Notation and Definitions —————————————————— 2024.01.21
2.1 Notation
2.1.1 Scalars, Vectors, and Sets
2.1.2 Capital Sigma Notation
2.1.3 Capital Pi Notation

————————————————— Chapter 3: Fundamental Algorithms ————————————————— 2024.01.21

本章中,作者介绍了最著名且有效的五种算法。
以下内容来自于本书的介绍,Plus ChatGPT4的理解,Plus StatQuest Tutorial,Plus Kaggle上案例学习。(笔记秉持“学以致用”的心态创作,以理解本书概念入手,辅以视频解释和案例练习)

3.1 Linear Regression
3.1.1 Problem Statement
3.1.2 Solution

Linear regression is a popular regression learning algorithm that learns a model which is a linear combination of features of the input example.
线性回归是一种流行的回归学习算法,它学习的模型是输入示例特征的线性组合。

Problem Statement 问题陈述
线性回归模型的构建:目标是创建一个模型\(f_{w, b}(x)=w x+b\),其中x是D维特征向量,w是参数向量/权重向量,b是一个实数/偏置项。这个模型用于预测给定x的未知y,选择线性模型是因为它简单且不易过拟合。
与SVM模型的比较:虽然线性回归模型的形式与支持向量机(SVM)模型类似,主要区别在于SVM中的决策边界(超平面)用于分类,而线性回归中的超平面用于尽可能接近所有训练样本。
多维情况下的线性回归:在多于一维的特征空间中,线性回归模型不是一条线,而是一个平面(二维)或超平面(三维以上)。

Solution 解决方案
优化过程:为了满足超平面尽可能靠近训练样本的要求,优化过程旨在最小化平方误差损失\(\frac{1}{N} \sum_{i=1}^N\left(f_{w, b}\left(x_i\right)-y_i\right)^2\)
为什么使用平方误差损失:平方误差损失在数学上方便,因为它具有连续的导数,便于求解闭式解。与绝对值损失相比,平方误差损失在数学上更易于处理,因为绝对值函数在零点处不光滑,没有连续导数。
为什么关心平均损失的导数:通过计算平均损失函数的导数并将其设为零,可以找到模型最优参数w和b。

相关概念
线性模型 (Linear Model):使用线性方程式来模拟数据之间关系的模型。
SVM模型 (SVM Model):支持向量机,用于分类问题,它通过一个或多个超平面来区分不同的类别。
多项式模型 (Polynomial Model):使用多项式(超过一阶的方程式)来模拟数据间复杂的非线性关系。
超平面和维度 (Hyperplane and Dimension):超平面是高维空间中的一个子空间,用于决策边界(如在SVM中)。维度是指特征空间的数量。

损失函数 (Loss Function):衡量模型预测值与真实值差异的函数(单个样本)。

成本函数 (Cost Function)/目标函数 (Objective Function)/经验风险 (Empirical Risk):在机器学习和统计学中是一个核心概念,用于衡量模型在整个数据集上的表现。它是单个样本损失函数的总和或平均值,代表了模型预测值与实际值之间差异的总体水平。成本函数的目的是提供一个可量化的指标,以评估和指导模型的训练过程。
成本函数的几种常见类型:

  1. 均方误差 (Mean> Squared Error, MSE)
  • 在回归问题中常用。
  • 公式: \(\mathrm{MSE}=\frac{1}{N} \sum_{i=1}^N\left(y_i-\hat{y}_i\right)^2\)
  1. 交叉嫡成本函数(Cross-Entropy Cost Function):
  • 在分类问题中常用。
  • 适用于衡量模型输出的概率分布与真实标签的概率分布之间的差异。
  1. 对数似然成本函数 (Log-Likelihood Cost Function) :
  • 用于逻辑回归等概率模型。
  • 最大化对数似然相当于最小化负对数似然, 这通常被用作分类问题的成本函数。
    不同的问题类型(如回归、分类、聚类等) 通常需要不同类型的成本函数。此外,数据的特点(如是否存在异常值)和特定的业务目标也会影响到成本函数的选择。

平方误差损失 (Squared Error Loss):损失函数的一种,为预测值与实际值之差的平方(单个样本)。

\[L\left(y_i, \hat{y}_i\right)=\left(y_i-\hat{y}_i\right)^2 \]

  • \(y_i\) 是实际值。
  • \(\hat{y}_i\) 是预测值。

均方误差(Mean Squared Error, 简称MSE):是衡量模型预测值与实际观测值之间差异的一种常用指标,特别是在回归问题中,它计算的是预测误差的平方的平均值。MSE 对大的误差给予更大的惩罚,因为误差被平方。(多个样本)

\[\mathrm{MSE}=\frac{1}{N} \sum_{i=1}^N\left(y_i-\hat{y}_i\right)^2 \]

\(N\)是样本的总数
\(y_i\)是第\(i\)个样本的实际值
\(\hat{y}_i\)是第\(i\)个样本的预测值

平均损失 (Average Loss):平均损失是指对所有样本损失的平均值。它可以是任何形式的损失,不仅限于均方误差。例如,在分类问题中,平均损失可能基于交叉熵损失或对数损失。在回归问题中,平均损失可能是均方误差。

\[\text { Average Loss }=\frac{1}{N} \sum_{i=1}^N L\left(y_i, \hat{y}_i\right) \]

其中 \(L\left(y_i, \hat{y}_i\right)\) 是第 \(i\) 个样本的损失。

二元损失 (Binary Loss):分类问题中常用的损失函数,当预测值与真实值不同时为1,相同时为0。
过拟合 (Overfitting):模型在训练数据上表现良好,但在新数据上表现差。
梯度下降 (Gradient Descent):一种优化算法,用于找到损失最小化的参数。
平均损失的导数 (Derivative of the Average Loss):用于在梯度下降过程中更新参数。

概念对比
线性模型 vs SVM模型 vs 多项式模型:线性模型适用于预测连续的输出,而SVM用于分类;多项式模型处理非线性关系。
损失函数 vs 成本函数:损失函数针对单个样本,成本函数考虑整个数据集。

作者的提问
为什么线性回归中使用二次损失函数?
二次损失函数(平方误差)在数学上易于处理,有连续导数,便于求解闭式解。绝对值损失由于不光滑,导致优化更复杂。
为什么人们发明新的学习算法?
要么是为了更好地解决特定的实际问题,要么是为了提供更好的理论保证。
为什么线性回归有用?
线性回归模型简单,不太容易过拟合,适用于许多实际问题。
为什么选择平方损失?
平方损失在数学优化中更方便处理,对大误差施加更大的惩罚。
为什么关心平均损失的导数?
平均损失的导数用于通过梯度下降等优化算法寻找模型参数的最优值。

思考🤔:1,线性回归适用于解决现实中?商业中哪些问题?
—— 以电商领域为例,比如说,预测客户风险等级?预测销量-产品销量的预测?

3.1 Logistic Regression
3.1.1 Problem Statement
3.1.2 Solution

The first thing to say is that logistic regression is not a regression, but a classification learning algorithm. The name comes from statistics and is due to the fact that the mathematical formulation of logistic regression is similar to that of linear regression.
首先要说的是,逻辑回归不是回归,而是一种分类学习算法。 该名称源自统计学,是因为逻辑回归的数学公式与线性回归相似。
I explain logistic regression on the case of binary classification. However, it can naturally be extended to multiclass classification.
我以二元分类为例解释逻辑回归。 然而,它自然可以扩展到多类分类。

Problem Statement 问题陈述

Solution 解决方案

posted @ 2024-01-21 16:23  huihui_plus  阅读(432)  评论(0)    收藏  举报