Jelajahi Sumber

update bold format

Gen TANG 1 tahun lalu
induk
melakukan
f6022ae91b

+ 15 - 0
ch04_logit/README.md

@@ -1,4 +1,19 @@
 
+## 概述
+
+本章将讨论逻辑回归模型。这个模型对我们日常生活的各个方面都有深远的影响:小到网页的广告内容,大到国家层面制定的各项经济政策,比如扶贫政策,逻辑回归都发挥着重要作用。
+
+逻辑回归不仅应用广泛,更是一个具有里程碑意义的模型。其建模过程体现了一种非常重要的建模思想:将问题分解为可见和不可见的两层,然后利用非线性变换和线性模型的结合,将未知的复杂问题分解为已知的简单问题。毫不夸张地说,深入理解逻辑回归的细节,就是掌握搭建模型的核心精髓。
+
+逻辑回归模型本身具有多个重要特点。
+
+* 模型简单:逻辑回归的建模思路清晰,易于理解和掌握。
+* 适用范围广:该模型的假设相对容易被满足,适用的场景广泛。它在不同领域,如医疗、金融和市场营销等,均有着广泛的应用。
+* 模型可解释性强:逻辑回归的模型参数具有直接的实际意义,参数值直接反映特征的重要性。这强化了模型的解释性,有助于了解特征如何影响预测结果。
+* 结果可靠性强:类似于线性回归模型,逻辑回归模型具有强大的分析工具,能够对模型参数和结果进行稳定性分析。这样的分析有助于提高模型结果的可信度。
+
+## 代码说明
+
 |代码|说明|
 |---|---|
 |[normal\_logit_approx.ipynb](normal_logit_approx.ipynb)| 逻辑分布与正态分布的关系 |

+ 1 - 1
ch05_econometrics/README.md

@@ -1,6 +1,6 @@
 ## 概述
 
-**计量经济学(Econometrics)**是经济学中的一个重要分支,它以数理统计学为基础,为经济理论提供实证支持。它运用数学模型分析真实数据,验证或推翻已有的经济理论。这一学科就如同经济研究的直尺,将研究由定性推进到定量。[线性回归](../ch03_linear)和[逻辑回归](../ch04_logit)是该学科的核心模型。
+**计量经济学**(Econometrics)是经济学中的一个重要分支,它以数理统计学为基础,为经济理论提供实证支持。它运用数学模型分析真实数据,验证或推翻已有的经济理论。这一学科就如同经济研究的直尺,将研究由定性推进到定量。[线性回归](../ch03_linear)和[逻辑回归](../ch04_logit)是该学科的核心模型。
 
 经济学家凯恩斯曾稍显自负地声称
 

+ 1 - 1
ch06_optimizer/README.md

@@ -2,7 +2,7 @@
 
 正如前面几章讨论的,在着手搭建模型时,首先会从实际应用场景出发,初步分析数据的特征,获取灵感和直觉;然后,通过数学的抽象和变换,为问题选择合适的模型架构;最后,使用Python开源的算法库实现最终的模型,其中模型的参数已经被估计出来。
 
-从软件设计的角度来讲,Python开源算法库在抽象(Abstraction)方面做得非常出色。它有效地隐藏了模型构建和训练的底层实现细节,使我们只需关注高层的概念和操作,即提供的一系列函数接口(API)。通过这些接口,通常只需几十行代码就能完成模型的构建和训练。在这个过程中,无须过多考虑模型背后复杂的数学计算,计机估计模型参数的算法实现也不再成为障碍。在理想情况下,所有底层的复杂性都被完美抽象,数据科学家的工作更加轻松和便捷(当然,作为硬币的另一面,这也可能导致数据科学家的门槛降低,进而影响相关职位的数量和薪水)。然而,不幸的是(或者幸运的是),由于模型涉及复杂的数学抽象和计算,即使软件设计和抽象再完美,也无法完全掩盖其复杂性,某些细节仍然可能“泄漏”出来,影响用户对系统的理解和操作,这就是**抽象泄漏(Leaky Abstraction)**
+从软件设计的角度来讲,Python开源算法库在抽象(Abstraction)方面做得非常出色。它有效地隐藏了模型构建和训练的底层实现细节,使我们只需关注高层的概念和操作,即提供的一系列函数接口(API)。通过这些接口,通常只需几十行代码就能完成模型的构建和训练。在这个过程中,无须过多考虑模型背后复杂的数学计算,计机估计模型参数的算法实现也不再成为障碍。在理想情况下,所有底层的复杂性都被完美抽象,数据科学家的工作更加轻松和便捷(当然,作为硬币的另一面,这也可能导致数据科学家的门槛降低,进而影响相关职位的数量和薪水)。然而,不幸的是(或者幸运的是),由于模型涉及复杂的数学抽象和计算,即使软件设计和抽象再完美,也无法完全掩盖其复杂性,某些细节仍然可能“泄漏”出来,影响用户对系统的理解和操作,这就是**抽象泄漏**(Leaky Abstraction)。
 
 举个例子,在训练逻辑回归模型时,某些数据集可能导致开源算法库出现错误,无法估计模型参数。对于相对经典或简单的模型,抽象泄漏的情况较少出现。然而,对于更复杂的模型,例如神经网络领域的深度学习和语言大模型,可能出现大量的抽象泄漏问题。如果不理解底层实现的细节,在这些领域将寸步难行:从理论角度来看,无法理解模型的精髓,就难以有效地优化模型,无法达到预期的模型效果;从实际应用角度来看,遇到程序问题难以修复,训练时间过长,除了参考示例实现,很难灵活运用算法库,也无法根据需求调整模型架构。
 

+ 1 - 1
ch07_autograd/README.md

@@ -1,7 +1,7 @@
 
 ## 概述
 
-在神经网络的广袤世界中,若想要“扶摇直上九万里”,**反向传播算法(Back Propagation,BP)**无疑是飞升的必备良器。它与第6章讨论的最优化算法紧密相连,相互协作。然而,正是这种紧密关联,往往导致反向传播、向前传播和向后传播这3个术语在使用中被混淆,甚至干扰理解。不仅如此,这些术语在不同的文献中所指范围也各不相同,容易给读者造成困惑。因此,本章开篇将采用哲学家的思维方式,对这些术语进行明确定义。在[第6章](../ch06_optimizer)中,我们讨论了最优化算法的全流程,我们在此基础上引入新的标记,以更加清晰地说明向前传播、反向传播和向后传播这3个术语的含义,如下图所示。通过这张图,我们能够毫不费力地理解这些术语的意义及其之间的联系,犹如阳光照耀一般,使阴云消散。
+在神经网络的广袤世界中,若想要“扶摇直上九万里”,**反向传播算法**(Back Propagation,BP)无疑是飞升的必备良器。它与第6章讨论的最优化算法紧密相连,相互协作。然而,正是这种紧密关联,往往导致反向传播、向前传播和向后传播这3个术语在使用中被混淆,甚至干扰理解。不仅如此,这些术语在不同的文献中所指范围也各不相同,容易给读者造成困惑。因此,本章开篇将采用哲学家的思维方式,对这些术语进行明确定义。在[第6章](../ch06_optimizer)中,我们讨论了最优化算法的全流程,我们在此基础上引入新的标记,以更加清晰地说明向前传播、反向传播和向后传播这3个术语的含义,如下图所示。通过这张图,我们能够毫不费力地理解这些术语的意义及其之间的联系,犹如阳光照耀一般,使阴云消散。
 
 <p align="center">  
 <img width="600" alt="autograd" src="autograd">

+ 1 - 1
ch08_mlp/README.md

@@ -6,7 +6,7 @@
 
 当然,也有不少人担忧人工智能可能带来巨大的风险,因为我们正在创造一种在某种程度上类似永生的、全新类型的智能体,可以称之为**硅基生命**。业界的伊隆·马斯克(Elon Musk)和学术界的杰弗里·辛顿(Geoffrey Hinton)持有这种观点。尽管当前的人工智能尚未直接显现出威胁,但考虑到其迅猛的发展速度,未来(约5年或10年内)我们可能会面临人工智能带来的潜在风险。这种风险可能并不会如许多科幻电影所描绘的那样——人工智能对人类发动最终的审判之战并毁灭人类。然而,它确实可能引发大规模的失业问题,因为许多工作完全可以由人工智能来完成,导致许多人失去工作机会。
 
-无论持有哪种观点,未来都已然降临。在面对人工智能时,你或许可以欣赏、引述、反驳、质疑、歌颂,抑或批评,却无法忽略其存在。理解并掌握神经网络的相关知识,已经成为新一代数据科学家必不可少的技能之一。在经过前几章的铺垫后,从本章起,我们将深入探讨神经网络模型:从最基础的**多层感知器模型(Multilayer Perceptron,MLP)**开始,详细剖析并证明深度学习潜能的[卷积神经网络(CNN)模型](../ch09_cnn),接着介绍处理时序数据的[循环神经网络(RNN)](../ch10_rnn),最终深入探讨如何训练和构建目前最先进的对话式人工智能模型([大语言模型](../ch11_llm)),如ChatGPT。 
+无论持有哪种观点,未来都已然降临。在面对人工智能时,你或许可以欣赏、引述、反驳、质疑、歌颂,抑或批评,却无法忽略其存在。理解并掌握神经网络的相关知识,已经成为新一代数据科学家必不可少的技能之一。在经过前几章的铺垫后,从本章起,我们将深入探讨神经网络模型:从最基础的**多层感知器模型**(Multilayer Perceptron,MLP)开始,详细剖析并证明深度学习潜能的[卷积神经网络(CNN)模型](../ch09_cnn),接着介绍处理时序数据的[循环神经网络(RNN)](../ch10_rnn),最终深入探讨如何训练和构建目前最先进的对话式人工智能模型([大语言模型](../ch11_llm)),如ChatGPT。 
 
 
 ## 代码说明

+ 1 - 1
ch09_cnn/README.md

@@ -6,7 +6,7 @@
 
 正如[第8章](../ch08_mlp)中讨论的,神经网络的隐藏层可以看作对数据进行自动特征提取的工具。这种自动特征提取的能力能否达到或超越人类的水平呢?换句话说,在人类无法有效完成特征提取的情况下,是否可以利用神经网络的特性来自动提取特征并完成建模任务呢?答案是肯定的。这也是本章要深入探讨的问题。在接下来的章节中,我们将详细讨论如何利用神经网络自动提取图像特征,进而赋予计算机视觉能力。
 
-本章讨论的**卷积神经网络(Convolutional Neural Network,CNN)**,是深度学习领域的一个重要里程碑。它展示了深度学习的潜力:通过增加网络的深度,模型可以获得惊人的性能提升。该模型的作者作为“较早吃螃蟹的人”,采用GPU而非传统的CPU进行模型训练,大幅提升了计算速度。这一成功案例推动了GPU在神经网络领域的广泛应用,使训练深度神经网络成为可能,也推动了深度学习的快速发展。可以毫不夸张地说,卷积神经网络开启了深度学习时代,让以深度学习为代表的人工智能走出实验室,走进现实世界。人工智能在极短的时间内在一个个项目中超越了人类的表现。或许,人工智能内心一直在不断地回响这句名言:“我来,我见,我征服。”
+本章讨论的**卷积神经网络**(Convolutional Neural Network,CNN),是深度学习领域的一个重要里程碑。它展示了深度学习的潜力:通过增加网络的深度,模型可以获得惊人的性能提升。该模型的作者作为“较早吃螃蟹的人”,采用GPU而非传统的CPU进行模型训练,大幅提升了计算速度。这一成功案例推动了GPU在神经网络领域的广泛应用,使训练深度神经网络成为可能,也推动了深度学习的快速发展。可以毫不夸张地说,卷积神经网络开启了深度学习时代,让以深度学习为代表的人工智能走出实验室,走进现实世界。人工智能在极短的时间内在一个个项目中超越了人类的表现。或许,人工智能内心一直在不断地回响这句名言:“我来,我见,我征服。”
 
 
 

+ 2 - 2
ch10_rnn/README.md

@@ -1,12 +1,12 @@
 ## 概述
 
-[第8章](../ch08_mlp)和[第9章](ch09_cnn)深入讨论了多层感知器和卷积神经网络。尽管这些模型在结构上存在显著差异,但从数据处理的角度来看,它们都共享一个基本假设:数据之间是相互独立的,模型仅关注当前数据的特征与标签之间的关系。这种类型的模型通常被称为**普通神经网络(Vanilla Neural Network**)。举例来说,卷积神经网络常被用于图像识别任务,在这个应用场景下,每张图片的识别都是独立的,模型并不会考虑它们之间可能存在的关联关系。除了图像识别,卷积神经网络还可应用于文本分类。例如,它可用于对句子进行情感分析,将其表达的情感划分为正面情感(如“通过加时赛,中国队逆转获胜了”)和负面情感(如“我的眼泪止不住地往下流”)。在这个应用场景下,模型同样是独立地处理每个句子,并不考虑它们之间的依赖关系。
+[第8章](../ch08_mlp)和[第9章](ch09_cnn)深入讨论了多层感知器和卷积神经网络。尽管这些模型在结构上存在显著差异,但从数据处理的角度来看,它们都共享一个基本假设:数据之间是相互独立的,模型仅关注当前数据的特征与标签之间的关系。这种类型的模型通常被称为**普通神经网络**(Vanilla Neural Network)。举例来说,卷积神经网络常被用于图像识别任务,在这个应用场景下,每张图片的识别都是独立的,模型并不会考虑它们之间可能存在的关联关系。除了图像识别,卷积神经网络还可应用于文本分类。例如,它可用于对句子进行情感分析,将其表达的情感划分为正面情感(如“通过加时赛,中国队逆转获胜了”)和负面情感(如“我的眼泪止不住地往下流”)。在这个应用场景下,模型同样是独立地处理每个句子,并不考虑它们之间的依赖关系。
 
 需要注意的是,并非所有数据都满足上述的独立性假设。以句子的情感分析为例,如果要分类的句子来自同一篇文章,那么对某一句子的理解就必须考虑其上下文所提供的信息,因为同样的句子在不同背景下可能表达不同的情感。例如,整段文字是“通过加时赛,中国队逆转获胜了。我的眼泪止不住地往下流”。其中,第二个句子表达的是正面情感。存在相互依赖关系的数据被称为**序列数据**(Sequential Data或Sequence Data)。典型的例子包括金融市场的价格(时间序列)、文本(文字序列)以及影像(图像序列)。
 
 对于序列数据而言,普通神经网络的建模效果通常不尽如人意。这是因为普通神经网络的结构限制了它们学习数据依赖关系的能力。虽然我们可以通过一些巧妙的设计来增强模型在这方面的学习能力,但这种改进效果往往有限,并且可能引入其他的建模问题。[char_mlp.ipynb](char_mlp.ipynb)就将通过一个具体的示例详细讨论使用普通神经网络学习序列数据的方法及其优缺点。
 
-为了克服普通神经网络在处理序列数据时的不足,学术界引入了**循环神经网络(Recurrent Neural Network,RNN)**。这是一种全新的模型结构,在多种情境下展现出令人惊叹的效果。尤其是在自然语言处理(Natural Language Processing,NLP)领域,这类模型的表现常常超出预期。实际上,令世人惊叹甚至有些恐惧的大语言模型正是基于循环神经网络搭建的。从本章开始,我们将聚焦于自然语言处理和循环神经网络,讨论如何让这一新兴智能体理解人类的语言,获取语言中蕴含的知识。
+为了克服普通神经网络在处理序列数据时的不足,学术界引入了**循环神经网络**(Recurrent Neural Network,RNN)。这是一种全新的模型结构,在多种情境下展现出令人惊叹的效果。尤其是在自然语言处理(Natural Language Processing,NLP)领域,这类模型的表现常常超出预期。实际上,令世人惊叹甚至有些恐惧的大语言模型正是基于循环神经网络搭建的。从本章开始,我们将聚焦于自然语言处理和循环神经网络,讨论如何让这一新兴智能体理解人类的语言,获取语言中蕴含的知识。
 
 
 ## 代码说明

+ 1 - 1
ch11_llm/README.md

@@ -1,6 +1,6 @@
 ## 概述
 
-通过前面章节的介绍,我们已经掌握了人工智能相关的基本知识和工程实践经验,并有足够的能力来深入研究这一领域最引人注目的前沿——**大语言模型(Large Language Model,LLM)**。大语言模型产品中最著名的当属ChatGPT。下面的图就展示了些经典的ChatGPT应用场景。
+通过前面章节的介绍,我们已经掌握了人工智能相关的基本知识和工程实践经验,并有足够的能力来深入研究这一领域最引人注目的前沿——**大语言模型**(Large Language Model,LLM)。大语言模型产品中最著名的当属ChatGPT。下面的图就展示了些经典的ChatGPT应用场景。
 
 <p align="center">  
 <img width="600" alt="chatgpt_example" src="chatgpt_example">

+ 1 - 1
ch12_rl/README.md

@@ -2,7 +2,7 @@
 
 从[第3章](../ch03_linear)开始,我们深入研究了各种模型,从简单到复杂。虽然这些模型在结构和性能上存在着显著差异,但它们的训练和应用方式有着相似之处:需要提前收集和准备好训练数据,模型需要经过充分的训练和优化才能投入使用。用一个或许略显夸张但生动形象的比喻来说:模型的生产就如同在子宫中孕育婴儿一样。人工智能这种“生命”还比较脆弱,难以与外界深入互动。因此,需要一个相对封闭的环境来促使模型生长。生命体进一步进化的关键在于持续适应新环境,迎接新的挑战。同理,模型的训练也需要迈向一个新的阶段,引导模型走进社会生活,让它在持续交互中学习成长。
 
-本章将讨论**强化学习(Reinforcement Learning,RL)**。强化学习并不是某种新型的模型结构,而是一种全新的模型训练方式。其核心在于如何在不确定的环境中(在训练数据尚未完全收集的情况下)训练模型。为了应对这种不确定性,强化学习采用了一种独特的策略:在模型并未完全准备好的情况下,就开始使用模型来助力自身的训练。这一方法类似于人类在现实生活中的学习方式,比如学习骑自行车,通过不断尝试和练习来提高性能。
+本章将讨论**强化学习**(Reinforcement Learning,RL)。强化学习并不是某种新型的模型结构,而是一种全新的模型训练方式。其核心在于如何在不确定的环境中(在训练数据尚未完全收集的情况下)训练模型。为了应对这种不确定性,强化学习采用了一种独特的策略:在模型并未完全准备好的情况下,就开始使用模型来助力自身的训练。这一方法类似于人类在现实生活中的学习方式,比如学习骑自行车,通过不断尝试和练习来提高性能。
 
 强化学习包含很多内容,甚至足以成为一门完整的学科。由于需要处理不确定性的环境,强化学习涉及大量的概率分析和复杂的数学推导过程。详细介绍这一切可能需要一本与厚度很大的专著,因此,本章并不打算穷尽强化学习的方方面面,而只是沿着大语言模型的技术路径展开讨论。具体而言,本章将效仿ChatGPT的做法,探讨如何利用**PPO**(Proximal Policy Optimization)技术来优化模型。ChatGPT所采用的优化技术几乎是强化学习的前沿,因此本章将涵盖该领域的大部分关键概念。