Showing preview only (579K chars total). Download the full file or copy to clipboard to get everything.
Repository: datawhalechina/pumpkin-book
Branch: master
Commit: 58add39800df
Files: 31
Total size: 560.7 KB
Directory structure:
gitextract_7i4lkvtv/
├── .github/
│ └── workflows/
│ └── deploy.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_french.md
├── docs/
│ ├── .vitepress/
│ │ ├── config.mts
│ │ └── theme/
│ │ ├── custom.css
│ │ └── index.ts
│ ├── chapter1/
│ │ ├── chapter1.md
│ │ └── chapter1_FR.md
│ ├── chapter10/
│ │ └── chapter10.md
│ ├── chapter11/
│ │ └── chapter11.md
│ ├── chapter12/
│ │ └── chapter12.md
│ ├── chapter13/
│ │ └── chapter13.md
│ ├── chapter14/
│ │ └── chapter14.md
│ ├── chapter15/
│ │ └── chapter15.md
│ ├── chapter16/
│ │ └── chapter16.md
│ ├── chapter2/
│ │ ├── chapter2.md
│ │ ├── chapter2_FR.md
│ │ └── resources/
│ │ └── images/
│ │ └── roc.pptx
│ ├── chapter3/
│ │ └── chapter3.md
│ ├── chapter4/
│ │ ├── chapter4.md
│ │ └── resources/
│ │ └── 4_11.pptx
│ ├── chapter5/
│ │ └── chapter5.md
│ ├── chapter6/
│ │ └── chapter6.md
│ ├── chapter7/
│ │ └── chapter7.md
│ ├── chapter8/
│ │ └── chapter8.md
│ ├── chapter9/
│ │ └── chapter9.md
│ ├── errata.md
│ └── index.md
└── package.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/deploy.yml
================================================
# 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程
#
name: Deploy VitePress site to Pages
on:
# 在针对 `main` 分支的推送上运行。如果你
# 使用 `master` 分支作为默认分支,请将其更改为 `master`
push:
branches: [main]
# 允许你从 Actions 选项卡手动运行此工作流程
workflow_dispatch:
# 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
# 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
concurrency:
group: pages
cancel-in-progress: false
jobs:
# 构建工作
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0 # 如果未启用 lastUpdated,则不需要
# - uses: pnpm/action-setup@v4 # 如果使用 pnpm,请取消此区域注释
# with:
# version: 9
# - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 24
cache: npm # 或 pnpm / yarn
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: npm ci # 或 pnpm install / yarn install / bun install
- name: Build with VitePress
run: npm run docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/.vitepress/dist
# 部署工作
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
================================================
FILE: .gitignore
================================================
node_modules/
docs/.vitepress/dist
docs/.vitepress/cache
================================================
FILE: LICENSE
================================================
Attribution-NonCommercial-ShareAlike 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-NonCommercial-ShareAlike 4.0 International Public License
("Public License"). To the extent this Public License may be
interpreted as a contract, You are granted the Licensed Rights in
consideration of Your acceptance of these terms and conditions, and the
Licensor grants You such rights in consideration of benefits the
Licensor receives from making the Licensed Material available under
these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. BY-NC-SA Compatible License means a license listed at
creativecommons.org/compatiblelicenses, approved by Creative
Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
e. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name
of a Creative Commons Public License. The License Elements of this
Public License are Attribution, NonCommercial, and ShareAlike.
h. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
i. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
k. NonCommercial means not primarily intended for or directed towards
commercial advantage or monetary compensation. For purposes of
this Public License, the exchange of the Licensed Material for
other material subject to Copyright and Similar Rights by digital
file-sharing or similar means is NonCommercial provided there is
no payment of monetary compensation in connection with the
exchange.
l. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
m. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
n. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part, for NonCommercial purposes only; and
b. produce, reproduce, and Share Adapted Material for
NonCommercial purposes only.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. Additional offer from the Licensor -- Adapted Material.
Every recipient of Adapted Material from You
automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material
under the conditions of the Adapter's License You apply.
c. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties, including when
the Licensed Material is used other than for NonCommercial
purposes.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share
Adapted Material You produce, the following conditions also apply.
1. The Adapter's License You apply must be a Creative Commons
license with the same License Elements, this version or
later, or a BY-NC-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the
Adapter's License You apply. You may satisfy this condition
in any reasonable manner based on the medium, means, and
context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms
or conditions on, or apply any Effective Technological
Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database for NonCommercial purposes
only;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material,
including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.
Creative Commons may be contacted at creativecommons.org.
================================================
FILE: README.md
================================================
<div align=center>
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/pumpkin.png" >
<h1>南瓜书(pumpkin-book)</h1>
</div>
“周志华老师的《机器学习》(西瓜书)是机器学习领域的经典入门教材之一,周老师为了使尽可能多的读者通过西瓜书对机器学习有所了解, 所以在书中对部分公式的推导细节没有详述,但是这对那些想深究公式推导细节的读者来说可能“不太友好”,本书旨在对西瓜书里比较难理解的公式加以解析,以及对部分公式补充具体的推导细节。”
读到这里,大家可能会疑问为啥前面这段话加了引号,因为这只是我们最初的遐想,后来我们了解到,周老师之所以省去这些推导细节的真实原因是,他本尊认为“理工科数学基础扎实点的大二下学生应该对西瓜书中的推导细节无困难吧,要点在书里都有了,略去的细节应能脑补或做练习”。所以......本南瓜书只能算是我等数学渣渣在自学的时候记下来的笔记,希望能够帮助大家都成为一名合格的“理工科数学基础扎实点的大二下学生”。
## 使用说明
- 南瓜书的所有内容都是以西瓜书的内容为前置知识进行表述的,所以南瓜书的最佳使用方法是以西瓜书为主线,遇到自己推导不出来或者看不懂的公式时再来查阅南瓜书;
- 对于初学机器学习的小白,西瓜书第1章和第2章的公式**强烈不建议深究**,简单过一下即可,等你学得有点飘的时候再回来啃都来得及;
- 每个公式的解析和推导我们都力争以本科数学基础的视角进行讲解,所以超纲的数学知识我们通常都会以附录和参考文献的形式给出,感兴趣的同学可以继续沿着我们给的资料进行深入学习;
- 若南瓜书里没有你想要查阅的公式,或者你发现南瓜书哪个地方有错误,请毫不犹豫地去我们GitHub的Issues( 地址:[https://github.com/datawhalechina/pumpkin-book/issues](https://github.com/datawhalechina/pumpkin-book/issues) )进行反馈,在对应版块提交你希望补充的公式编号或者勘误信息,我们通常会在24小时以内给您回复,超过24小时未回复的话可以微信联系我们(微信号:at-Sm1les);
## 配套资源
视频教程:[https://www.bilibili.com/video/BV1Mh411e7VU](https://www.bilibili.com/video/BV1Mh411e7VU)
PDF版本下载:[https://github.com/datawhalechina/pumpkin-book/releases](https://github.com/datawhalechina/pumpkin-book/releases)
组队学习:[https://www.datawhale.cn/learn/summary/2](https://www.datawhale.cn/learn/summary/2)
## 纸质版
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/nangua_v2.jpg" width="300" height="316">
购买链接:[京东](https://item.jd.com/13989990.html) | [当当](http://product.dangdang.com/29579286.html) | [天猫](https://detail.tmall.com/item.htm?abbucket=12&id=720482241470)
勘误表:[https://datawhalechina.github.io/pumpkin-book/#/errata](https://datawhalechina.github.io/pumpkin-book/#/errata)
### 纸质版和开源版的区别
开源版本是我们寄送出版社的全书初稿,经由人民邮电出版社的编辑老师们对初稿进行了反复修缮最终诞生了纸质书籍,在此向人民邮电出版社的编辑老师的认真严谨表示衷心的感谢!(附:校对样稿)
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/yanggao1.jpg" width="300" height="225">
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/yanggao2.jpg" width="300" height="225">
## 配套的西瓜书版本
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/xigua.jpg" width="300" height= "350">
版次:2016年1月第1版
勘误表:[http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/MLbook2016.htm](http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/MLbook2016.htm)
## 编委会
| 职责 | 名单 |
| :---: | :---: |
| **主编** | [@Sm1les](https://github.com/Sm1les) [@archwalker](https://github.com/archwalker) [@jbb0523](https://blog.csdn.net/jbb0523)|
| **编委** | [@juxiao](https://github.com/juxiao) [@Majingmin](https://github.com/Majingmin) [@MrBigFan](https://github.com/MrBigFan) [@shanry](https://github.com/shanry) [@Ye980226](https://github.com/Ye980226) |
## 封面设计
| 构思 | 创作 |
| :---: | :---: |
| [@Sm1les](https://github.com/Sm1les) | 林王茂盛 |
## 致谢
特别感谢[@awyd234](https://github.com/awyd234)、[@feijuan](https://github.com/feijuan)、[@Ggmatch](https://github.com/Ggmatch)、[@Heitao5200](https://github.com/Heitao5200)、[@xhqing](https://github.com/xhqing)、[@LongJH](https://github.com/LongJH)、[@LilRachel](https://github.com/LilRachel)、[@LeoLRH](https://github.com/LeoLRH)、[@Nono17](https://github.com/Nono17)、[@spareribs](https://github.com/spareribs)、[@sunchaothu](https://github.com/sunchaothu)、[@StevenLzq](https://github.com/StevenLzq) 在最早期的时候对南瓜书所做的贡献。
<div align=center>
<h2>关注我们</h2>
扫描下方二维码关注公众号:Datawhale,然后发送“南瓜书”,即可获取“南瓜书读者交流群”入群方式
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/qrcode.jpeg" width="180" height="180">
<h2>LICENSE</h2>
本作品采用 <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0)</a> 进行许可
</div>
================================================
FILE: README_french.md
================================================
<div align=center>
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/pumpkin.png" >
<h1>PumpkinBook</h1>
<p>
<a href="https://github.com/datawhalechina/pumpkin-book/blob/master/README.md">简体中文</a> | <a href="https://github.com/datawhalechina/pumpkin-book/blob/master/README_french.md">Français</a>
</p>
</div>
“Le livre ‘Machine Learning’ (Watermelon Book) par Prof. Zhihua Zhou est l’un des plus classiques manuels dans le domaine de Machine Learning. Afin des faire connaissances au plus grand nombre de lecteurs possibles à travers de ce livre, Prof. Zhou n’a pas été détaillé des dérivations de certaines formules. Cependant, cela a créé des difficultés pour ce qui voudrais apprendre les détails de ces dérivations. Dans ce cas, ce livre vise à donner des interprétations qui sont plus difficile à comprendre, et aussi compléter des détails de certaines formules.”
Par ici, vous allez poser la question : pourquoi nous avons ajoute les guillemets au paragraphe précèdent ? Car c’était notre idée initiale de ce livre. Nous avons ensuite appris que Prof. Zhou a décidé de ne pas détailler ces dérivations car il a cru que “Les étudiants de l’ingénierie de L2 ont appris assez de mathématiques pour faire les démonstrations tout seul. Les principes sont tous dans le livre, ils devraient faire les démonstrations des formules en tant que les exercices.” Dans ce cas, ce livre ‘Pumpkin book’ est dédié comme une lecture note quand on se décide de faire notre propre auto-apprentissage. On espère que tous les lecteurs pourront devenir “un étudiant de l’ingénierie ayant une base solide en mathématique”.
## Mode d’emploi
- Toutes les contenues de ce Pumpkin Book est raconté à partir de même chapitre dans Watermelon book en tant que pré-connaissance. Cependant, la meilleure façon d’utiliser ce livre est de prendre le livre ‘Watermelon Book’ comme la ligne principale. Une fois vous rencontrez des difficultés sur des formules, vous allez les chercher dans ce livre. En un mot, vous allez prendre ce livre comme un guide pratique.
- Pour les novices en Machine Learning, Il est fortement déconseillé d’entrer dans les détails des formules dans chapitre 1 et 2 de Watermelon Book. Il n’est jamais trop tard de revenir, peut-être quand vous vous sentez complètement en contrôle de tous les principes de Machine Learning ?
- On vise à faire des démonstrations de chaque formule a partir des connaissance de mathématique de niveau License. Les connaissances en mathématiques au-delà du premier cycle sont donne en tant que appendices pour ce qui s’intéressent.
- Dans le cas où vous ne trouvez pas une formule, ou vous trouvez des erreurs de ce livre. N’hésitez pas de mettre en avant des Issues sur notre GitHub: https://github.com/datawhalechina/pumpkin-book/issues. Lorsque vous vous font parvenir des issues sur des demandes des détails supplémentaires des formules ou des erreurs dans les rubriques correspondantes, nous vous répondrons, de manière générale, dans les 24 heures suivantes. Au-delà, vous êtes libre de nous contacter par email ou par WeChat ID :at-Sm1les.
### Version papier
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/nangua_v2.jpg" width="300">
Lien d’achat: [JD mall 京东](https://item.jd.com/13989990.html) | [Dangdang 当当](http://product.dangdang.com/29579286.html) | [Tmall 天猫](https://detail.tmall.com/item.htm?abbucket=12&id=720482241470)
Errata:https://datawhalechina.github.io/pumpkin-book/#/errata
Tutoriel vidéo associé:https://www.bilibili.com/video/BV1Mh411e7VU
### Lecture en ligne (mise à jour en temps réelle)
Adresse:https://datawhalechina.github.io/pumpkin-book
### La dernière version du PDF
Adresse:https://github.com/datawhalechina/pumpkin-book/releases
#### La différence entre la version en ligne et celle en papier
La version PDF est celle que nous avons envoyé à editor, elle était notre première version. Elle a été relue et édite par les éditeurs à la Presse de télécommunication publique. Nous tenons à exprimer nos remercîments aux éditeurs de la Presse pour leur sérieux et leur rigueur. (Les deux photos jointes sont les documents de relecture lors de la publication.)
<center class="half"><img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/yanggao1.jpg" width="300"><img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/yanggao2.jpg" width="300"></center>
### Contenue
- Chapitre 1 [Introduction](https://datawhalechina.github.io/pumpkin-book/#/chapter1/chapter1)
- Chapitre 2 [Évaluation et choix des modelés](https://datawhalechina.github.io/pumpkin-book/#/chapter2/chapter2)
- Chapitre 3 [Modèle linéaire](https://datawhalechina.github.io/pumpkin-book/#/chapter3/chapter3)
- Chapitre 4 [Arbre de décision](https://datawhalechina.github.io/pumpkin-book/#/chapter4/chapter4)
- Chapitre 5 [Réseaux de neurones artificiels](https://datawhalechina.github.io/pumpkin-book/#/chapter5/chapter5)
- Chapitre 6 [Machines à vecteurs de soutien](https://datawhalechina.github.io/pumpkin-book/#/chapter6/chapter6)
- Chapitre 7 [Classification Bayésienne](https://datawhalechina.github.io/pumpkin-book/#/chapter7/chapter7)
- Chapitre 8 [Apprentissage d'ensemble](https://datawhalechina.github.io/pumpkin-book/#/chapter8/chapter8)
- Chapitre 9 [Regroupement](https://datawhalechina.github.io/pumpkin-book/#/chapter9/chapter9)
- Chapitre 10 [Réduction de la dimensionnalité et apprentissage métrique](https://datawhalechina.github.io/pumpkin-book/#/chapter10/chapter10)
- Chapitre 11 [Choix du fonctionnalité et apprentissage clairsemé](https://datawhalechina.github.io/pumpkin-book/#/chapter11/chapter11)
- Chapitre 12 [Théorie de l’apprentissage informatique](https://datawhalechina.github.io/pumpkin-book/#/chapter12/chapter12)
- Chapitre 13 [Apprentissage semi-supervisé](https://datawhalechina.github.io/pumpkin-book/#/chapter13/chapter13)
- Chapitre 14 [Modèle graphique probabiliste](https://datawhalechina.github.io/pumpkin-book/#/chapter14/chapter14)
- Chapitre 15 [Apprentissage des règles](https://datawhalechina.github.io/pumpkin-book/#/chapter15/chapter15)
- Chapitre 16 [Apprentissage par renforcement](https://datawhalechina.github.io/pumpkin-book/#/chapter16/chapter16)
### La version du livre ‘Watermelon Book’ Choisie
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/xigua.jpg" width="150" height= "175">
> Version : 1ère version du janvier 2016<br>
> Errata:http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/MLbook2016.htm
## Comité éditorial
||Liste des auteurs|
| :---: | :---: |
| **Éditeur en Chief** | [@Sm1les](https://github.com/Sm1les) [@archwalker](https://github.com/archwalker) |
| **Membre du comité de rédaction** | [@jbb0523](https://blog.csdn.net/jbb0523) [@juxiao](https://github.com/juxiao) [@Majingmin](https://github.com/Majingmin) [@MrBigFan](https://github.com/MrBigFan) [@shanry](https://github.com/shanry) [@Ye980226](https://github.com/Ye980226) |
## Remerciements
Nous tenons nos remerciements aux [@awyd234](https://github.com/awyd234)、[@feijuan](https://github.com/feijuan)、[@Ggmatch](https://github.com/Ggmatch)、[@Heitao5200](https://github.com/Heitao5200)、[@huaqing89](https://github.com/huaqing89)、[@LongJH](https://github.com/LongJH)、[@LilRachel](https://github.com/LilRachel)、[@LeoLRH](https://github.com/LeoLRH)、[@Nono17](https://github.com/Nono17)、[@spareribs](https://github.com/spareribs)、[@sunchaothu](https://github.com/sunchaothu)、[@StevenLzq](https://github.com/StevenLzq) pour leur contribution aux toute la premier version du livre ‘Pumpkin Book’
## Suivez nous
<div align=center>
<p>Scannez le QR code ci-dessous, et puis répondre aux mots clés ‘Pumpkin Book’, vous allez ensuite diriger vers la page par ou vous pouvez joindre la groupe de ‘échange de lecteur du pumpkin book’.</p>
<img src="https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/qrcode.jpeg" width = "250" height = "270" alt="Datawhale是一个专注AI领域的开源组织,以“for the learner,和学习者一起成长”为愿景,构建对学习者最有价值的开源学习社区。关注我们,一起学习成长。">
</div>
## LICENSE
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="知识共享许可协议" style="border-width:0" src="https://img.shields.io/badge/license-CC%20BY--NC--SA%204.0-lightgrey" /></a>
================================================
FILE: docs/.vitepress/config.mts
================================================
import { defineConfig } from 'vitepress'
import mathjax3 from 'markdown-it-mathjax3';
// https://vitepress.dev/reference/site-config
// 1. 获取环境变量并判断
// 如果环境变量 EDGEONE 等于 '1',说明在 EdgeOne 环境,使用根路径 '/'
// 否则默认是 GitHub Pages 环境,使用仓库子路径 '/easy-vecdb/'
const isEdgeOne = process.env.EDGEONE === '1'
const baseConfig = isEdgeOne ? '/' : '/pumpkin-book/'
export default defineConfig({
lang: 'zh-CN',
title: "南瓜书(pumpkin-book)",
description: "《机器学习》(西瓜书)公式详解",
base: baseConfig,
markdown: {
config(md) {
md.use(mathjax3, {
tex: {
macros: {
textcircled: ['\\enclose{circle}{#1}', 1]
}
}
})
}
},
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
logo: '/pumpkin-logo.png',
nav: [
{ text: '纸质版勘误表', link: '/errata' },
{ text: 'PDF版本下载', link: 'https://github.com/datawhalechina/pumpkin-book/releases' },
],
search: {
provider: 'local',
options: {
translations: {
button: {
buttonText: '搜索文档',
buttonAriaLabel: '搜索文档'
},
modal: {
noResultsText: '无法找到相关结果',
resetButtonTitle: '清除查询条件',
footer: {
selectText: '选择',
navigateText: '切换'
}
}
}
}
},
sidebar: [
{
items: [
{ text: '第1章 绪论', link: '/chapter1/chapter1' },
{ text: '第2章 模型评估', link: 'chapter2/chapter2' },
{ text: '第3章 线性模型', link: 'chapter3/chapter3' },
{ text: '第4章 决策树', link: 'chapter4/chapter4' },
{ text: '第5章 神经网络', link: 'chapter5/chapter5' },
{ text: '第6章 支持向量机', link: 'chapter6/chapter6' },
{ text: '第7章 贝叶斯分类器', link: 'chapter7/chapter7' },
{ text: '第8章 集成学习', link: 'chapter8/chapter8' },
{ text: '第9章 聚类', link: 'chapter9/chapter9' },
{ text: '第10章 降维与度量学习', link: 'chapter10/chapter10' },
{ text: '第11章 特征选择与稀疏学习', link: 'chapter11/chapter11' },
{ text: '第12章 计算学习理论', link: 'chapter12/chapter12' },
{ text: '第13章 半监督学习', link: 'chapter13/chapter13' },
{ text: '第14章 概率图模型', link: 'chapter14/chapter14' },
{ text: '第15章 规则学习', link: 'chapter15/chapter15' },
{ text: '第16章 强化学习', link: 'chapter16/chapter16' },
]
}
],
socialLinks: [
{ icon: 'github', link: 'https://github.com/datawhalechina/pumpkin-book' }
],
editLink: {
pattern: 'https://github.com/datawhalechina/pumpkin-book/blob/main/docs/:path'
},
footer: {
message: '<a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2026002630号-1</a>',
copyright: '本作品采用 <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0)</a> 进行许可'
}
}
})
================================================
FILE: docs/.vitepress/theme/custom.css
================================================
/* ============================================================================
公告栏样式
============================================================================ */
/* 关键:告诉 VitePress 公告栏的高度,让导航栏正确下移 */
:root {
--vp-layout-top-height: 40px;
}
.announcement-banner {
background: linear-gradient(90deg, #ffdfae 0%, #ffbd53 100%);
color: #fff;
padding: 8px 16px;
text-align: center;
color: #000;
font-size: 14px;
font-weight: 500;
line-height: 1.5;
height: var(--vp-layout-top-height);
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
/* 固定在顶部 */
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: var(--vp-z-index-layout-top, 40);
}
/* 暗色模式下的公告栏样式 */
.dark .announcement-banner {
background: linear-gradient(90deg, #5e4219 0%, #583c10 100%);
color: #fff;
}
/* 全局图片样式设置 */
.vp-doc img {
max-height: 50vh;
/* 最大高度为视口高度的50% */
width: auto;
/* 保持宽高比 */
display: block;
margin: 0 auto;
/* 居中显示,上下留白 */
}
/* 图片说明文字样式 */
.vp-doc img+em {
display: block;
text-align: center;
color: var(--vp-c-text-2);
font-size: 0.9em;
margin-top: -1rem;
margin-bottom: 1.5rem;
}
/* ============================================================================
VitePress 布局相关 CSS 变量参考
============================================================================
本节列出了 VitePress 默认主题中所有与布局相关的 CSS 变量。
你可以在 :root 选择器中覆盖这些变量来自定义布局。
来源:https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
============================================================================ */
/* ----------------------------------------------------------------------------
1. 整体布局宽度 (Layout Width)
---------------------------------------------------------------------------- */
:root {
/* 页面整体最大宽度
* 默认值:1440px
* 说明:控制整个页面内容的最大宽度,包括侧边栏和主内容区域
*
* 💡 调整内容区域宽度的主要变量
*
* 示例 1:增加内容宽度到 90% 视口宽度
* --vp-layout-max-width: 90%;
*
* 示例 2:固定宽度为 1600px
* --vp-layout-max-width: 1600px;
*
* 示例 3:使用 calc() 动态计算(视口宽度减去固定边距)
* --vp-layout-max-width: calc(100vw - 100px);
*
* ⚠️ 注意事项:
* - 修改此变量会影响整个页面的宽度,包括导航栏、侧边栏和内容区域
* - 在小屏幕设备上,VitePress 会自动调整布局为响应式
* - 建议值范围:1200px - 1800px(固定宽度)或 80% - 95%(百分比)
*/
--vp-layout-max-width: 95%;
}
/* ----------------------------------------------------------------------------
2. 侧边栏 (Sidebar)
---------------------------------------------------------------------------- */
/* 侧边栏宽度
* 默认值:272px
* 说明:控制左侧导航侧边栏的宽度
*
* 示例:增加侧边栏宽度
* :root {
* --vp-sidebar-width: 320px;
* }
*
* 💡 提示:
* - 侧边栏宽度会影响主内容区域的可用宽度
* - 实际内容宽度 = --vp-layout-max-width - --vp-sidebar-width
* - 在移动设备上(< 960px),侧边栏会自动折叠为抽屉式菜单
*/
/* --vp-sidebar-width: 272px; */
:root {
--vp-sidebar-width: 300px;
}
/* 侧边栏背景色
* 默认值:var(--vp-c-bg-alt)
* 说明:侧边栏的背景颜色,默认使用次要背景色
*/
/* --vp-sidebar-bg-color: var(--vp-c-bg-alt); */
/* ----------------------------------------------------------------------------
3. 导航栏 (Navigation Bar)
---------------------------------------------------------------------------- */
/* 导航栏高度
* 默认值:64px
* 说明:顶部导航栏的高度
*
* 示例:减小导航栏高度
* :root {
* --vp-nav-height: 56px;
* }
*/
/* --vp-nav-height: 64px; */
/* 导航栏背景色
* 默认值:var(--vp-c-bg)
* 说明:导航栏的背景颜色
*/
/* --vp-nav-bg-color: var(--vp-c-bg); */
/* 导航栏全屏菜单背景色
* 默认值:var(--vp-c-bg)
* 说明:移动设备上展开菜单时的背景色
*/
/* --vp-nav-screen-bg-color: var(--vp-c-bg); */
/* 导航栏 Logo 高度
* 默认值:24px
* 说明:导航栏中 Logo 图片的高度
*/
/* --vp-nav-logo-height: 24px; */
/* ----------------------------------------------------------------------------
4. 本地导航 (Local Navigation)
---------------------------------------------------------------------------- */
/* 本地导航背景色
* 默认值:var(--vp-c-bg)
* 说明:页面内导航(如目录)的背景色
*/
/* --vp-local-nav-bg-color: var(--vp-c-bg); */
/* ----------------------------------------------------------------------------
5. 层级控制 (Z-Index)
---------------------------------------------------------------------------- */
/* 页脚层级
* 默认值:10
* 说明:页脚的 z-index 值
*/
/* --vp-z-index-footer: 10; */
/* 本地导航层级
* 默认值:20
* 说明:页面内导航的 z-index 值
*/
/* --vp-z-index-local-nav: 20; */
/* 顶部导航栏层级
* 默认值:30
* 说明:顶部导航栏的 z-index 值
*/
/* --vp-z-index-nav: 30; */
/* 布局顶层层级
* 默认值:40
* 说明:布局顶层元素的 z-index 值
*/
/* --vp-z-index-layout-top: 40; */
/* 遮罩层层级
* 默认值:50
* 说明:模态框遮罩的 z-index 值
*/
/* --vp-z-index-backdrop: 50; */
/* 侧边栏层级
* 默认值:60(移动设备)/ 25(桌面设备 >= 960px)
* 说明:侧边栏的 z-index 值,在不同屏幕尺寸下有不同的值
*
* 响应式调整:
* @media (min-width: 960px) {
* :root {
* --vp-z-index-sidebar: 25;
* }
* }
*/
/* --vp-z-index-sidebar: 60; */
/* ----------------------------------------------------------------------------
6. 遮罩层 (Backdrop)
---------------------------------------------------------------------------- */
/* 遮罩层背景色
* 默认值:rgba(0, 0, 0, 0.6)
* 说明:模态框、抽屉等组件的半透明遮罩背景色
*/
/* --vp-backdrop-bg-color: rgba(0, 0, 0, 0.6); */
/* ============================================================================
实用示例:常见布局调整场景
============================================================================ */
/* 场景 1:增加内容区域宽度(推荐用于宽屏显示器)
*
* :root {
* --vp-layout-max-width: 1600px;
* }
*/
/* 场景 2:使用百分比宽度(更灵活的响应式布局)
*
* :root {
* --vp-layout-max-width: 90%;
* }
*/
/* 场景 3:调整侧边栏和内容区域的比例
*
* :root {
* --vp-layout-max-width: 1600px;
* --vp-sidebar-width: 300px;
* }
*
* 💡 说明:
* - 总宽度:1600px
* - 侧边栏:300px
* - 内容区域:约 1300px(1600px - 300px)
*/
/* 场景 4:紧凑型布局(适合笔记本电脑)
*
* :root {
* --vp-layout-max-width: 1200px;
* --vp-sidebar-width: 240px;
* --vp-nav-height: 56px;
* }
*/
/* 场景 5:全宽布局(最大化内容显示)
*
* :root {
* --vp-layout-max-width: 100%;
* }
*
* .VPDoc .container {
* max-width: 100%;
* padding: 0 2rem;
* }
*
* ⚠️ 注意:全宽布局可能导致文本行过长,影响阅读体验
* 建议配合 .VPDoc 的 max-width 限制内容宽度
*/
/* ============================================================================
变量之间的关系说明
============================================================================
1. 内容区域实际宽度计算:
实际内容宽度 ≈ --vp-layout-max-width - --vp-sidebar-width
2. 响应式断点:
- < 960px:移动设备布局,侧边栏折叠
- >= 960px:桌面布局,侧边栏固定显示
3. 层级关系(从低到高):
页脚(10) < 本地导航(20) < 侧边栏(25/60) < 顶部导航(30) <
布局顶层(40) < 遮罩层(50)
4. 修改建议:
- 优先修改 --vp-layout-max-width 来调整整体宽度
- 如需更精细控制,再调整 --vp-sidebar-width
- 避免修改 z-index 变量,除非遇到层级冲突
- 使用百分比宽度可以获得更好的响应式效果
============================================================================ */
/* ============================================================================
内容宽度覆盖规则(解决 688px 限制问题)
============================================================================
⚠️ 问题说明:
VitePress 默认的内容区域最大宽度被限制为 688px,这是由多个嵌套的 CSS 规则
共同作用的结果。仅仅修改 --vp-layout-max-width 变量是不够的,还需要覆盖
以下几个关键选择器的 max-width 属性。
📊 默认宽度计算(在 1440px 窗口宽度下):
1. 整体布局:1440px
2. 减去左右边距:1440 - 32 - 32 = 1376px
3. 减去侧边栏:1376 - 240 = 1136px
4. 减去右侧目录:1136 - 224 = 912px
5. 减去内容左右边距:912 - 112 - 112 = 688px
💡 解决方案:
通过覆盖以下选择器的 max-width 属性,可以在宽屏显示器上获得更宽的内容区域。
参考来源:
- https://github.com/vuejs/vitepress/discussions/1646
- https://github.com/vuejs/vitepress/discussions/1709
============================================================================ */
/* 1. 无侧边栏时的容器宽度
* 说明:当页面没有左侧边栏时(如首页),容器的最大宽度
* 默认值:约 1136px
* 推荐值:1584px(适合 1920px 宽屏)/ 2000px(适合 2560px 宽屏)
*/
.VPDoc:not(.has-sidebar) .container {
max-width: 2000px !important;
}
/* 2. 无侧边栏时的内容宽度
* 说明:当页面没有左侧边栏时,主内容区域的最大宽度
* 默认值:约 912px
* 推荐值:1264px(适合 1920px 宽屏)/ 1600px(适合 2560px 宽屏)
*/
.VPDoc:not(.has-sidebar) .content {
max-width: 1264px !important;
}
/* 3. 有右侧目录时的内容容器宽度(最重要)
* 说明:当页面有右侧目录(Aside)时,内容容器的最大宽度
* 这是导致 688px 限制的主要原因
* 默认值:约 912px
* 推荐值:1168px(适合 1920px 宽屏)/ 1500px(适合 2560px 宽屏)
*
* 💡 这是最关键的规则!
* 如果你的内容区域被限制在 688px,主要就是这个选择器在起作用。
*/
.VPDoc.has-aside .content-container {
max-width: 1168px !important;
}
/* 4. 通用容器边距重置
* 说明:移除容器的默认边距,让内容更靠近边缘
*/
.VPDoc .container {
margin: 0;
}
/* ============================================================================
宽度调整建议
============================================================================
根据你的显示器分辨率,可以参考以下推荐值:
📱 1920px 宽屏(Full HD):
:root {
--vp-layout-max-width: 90%;
}
.VPDoc:not(.has-sidebar) .container {
max-width: 1584px !important;
}
.VPDoc:not(.has-sidebar) .content {
max-width: 1264px !important;
}
.VPDoc.has-aside .content-container {
max-width: 1168px !important;
}
🖥️ 2560px 宽屏(2K/QHD):
:root {
--vp-layout-max-width: 90%;
}
.VPDoc:not(.has-sidebar) .container {
max-width: 2000px !important;
}
.VPDoc:not(.has-sidebar) .content {
max-width: 1600px !important;
}
.VPDoc.has-aside .content-container {
max-width: 1500px !important;
}
🖥️ 3840px 宽屏(4K/UHD):
:root {
--vp-layout-max-width: 90%;
}
.VPDoc:not(.has-sidebar) .container {
max-width: 3000px !important;
}
.VPDoc:not(.has-sidebar) .content {
max-width: 2400px !important;
}
.VPDoc.has-aside .content-container {
max-width: 2200px !important;
}
⚠️ 注意事项:
1. 使用 !important 是必要的,因为需要覆盖 VitePress 的内联样式
2. 这些修改不会影响移动端布局(< 960px),VitePress 会自动切换为响应式布局
3. 建议保持内容宽度在合理范围内,过宽的文本行会影响阅读体验
4. 可以使用浏览器开发者工具(F12)实时调整这些值,找到最适合你的宽度
🔍 如何验证修改效果:
1. 打开浏览器开发者工具(F12)
2. 选择 Elements 标签
3. 找到 <div class="VPDoc has-aside"> 元素
4. 查看其子元素 <div class="content-container"> 的 Computed 样式
5. 确认 max-width 值已经被成功覆盖
============================================================================ */
/* 表格样式 */
th,
td {
/* white-space: nowrap !important; */
/* 不让th,td内容换行显示 */
width: 10%;
/* 强制均匀分配宽度 */
}
================================================
FILE: docs/.vitepress/theme/index.ts
================================================
import DefaultTheme from 'vitepress/theme'
import './custom.css'
import type { Theme } from 'vitepress'
import 'viewerjs/dist/viewer.min.css';
import imageViewer from 'vitepress-plugin-image-viewer';
import vImageViewer from 'vitepress-plugin-image-viewer/lib/vImageViewer.vue';
import { useRoute } from 'vitepress';
import { h } from 'vue';
// 公告栏组件
const Announcement = () => h('div', {
class: 'announcement-banner',
}, '🎉 欢迎去各大电商平台选购纸质版南瓜书《机器学习公式详解 第2版》')
export default {
extends: DefaultTheme,
enhanceApp({ app }) {
// 注册全局组件(可选)
app.component('vImageViewer', vImageViewer);
},
setup() {
const route = useRoute();
// 启用插件
imageViewer(route);
},
Layout() {
return h(DefaultTheme.Layout, null, {
'layout-top': () => h(Announcement)
})
}
} satisfies Theme
================================================
FILE: docs/chapter1/chapter1.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:1.5天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=2
>
> 本章配套代码:https://github.com/datawhalechina/machine-learning-toy-code/blob/main/%E8%A5%BF%E7%93%9C%E4%B9%A6%E4%BB%A3%E7%A0%81%E5%AE%9E%E6%88%98.md
>
> 本章配套代码视频教程:https://space.bilibili.com/431850986/lists/3884942
# 第1章 绪论
本章作为"西瓜书"的开篇,主要讲解什么是机器学习以及机器学习的相关数学符号,为后续内容作铺垫,并未涉及复杂的算法理论,因此阅读本章时只需耐心梳理清楚所有概念和数学符号即可。此外,在阅读本章前建议先阅读西瓜书目录前页的《主要符号表》,它能解答在阅读"西瓜书"过程中产生的大部分对数学符号的疑惑。
本章也作为本书的开篇,笔者在此赘述一下本书的撰写初衷,本书旨在以"过来人"的视角陪读者一起阅读"西瓜书",尽力帮读者消除阅读过程中的"数学恐惧",只要读者学习过《高等数学》、《线性代数》和《概率论与数理统计》这三门大学必修的数学课,均能看懂本书对西瓜书中的公式所做的解释和推导,同时也能体会到这三门数学课在机器学习上碰撞产生的"数学之美"。
## 1.1 引言
本节以概念理解为主,在此对"算法"和"模型"作补充说明。"算法"是指从数据中学得"模型"的具体方法,例如后续章节中将会讲述的线性回归、对数几率回归、决策树等。"算法"产出的结果称为"模型",通常是具体的函数或者可抽象地看作为函数,例如一元线性回归算法产出的模型即为形如$f(x)=wx+b$的一元一次函数。不过由于严格区分这两者的意义不大,因此多数文献和资料会将其混用,当遇到这两个概念时,其具体指代根据上下文判断即可。
## 1.2 基本术语
本节涉及的术语较多且很多术语都有多个称呼,下面梳理各个术语,并将最常用的称呼加粗标注。
**样本**:也称为"示例",是关于一个事件或对象的描述。因为要想让计算机能对现实生活中的事物进行机器学习,必须先将其抽象为计算机能理解的形式,计算机最擅长做的就是进行数学运算,因此考虑如何将其抽象为某种数学形式。显然,线性代数中的向量就很适合,因为任何事物都可以由若干"特征"(或称为"属性")唯一刻画出来,而向量的各个维度即可用来描述各个特征。例如,如果用色泽、根蒂和敲声这3个特征来刻画西瓜,那么一个"色泽青绿,根蒂蜷缩,敲声清脆"的西瓜用向量来表示即为$\boldsymbol{x}=(\text{青绿};\text{蜷缩};\text{清脆})$ **(向量中的元素用分号";"分隔时表示此向量为列向量,用逗号","分隔时表示为行向量)**,其中青绿、蜷缩和清脆分别对应为相应特征的取值,也称为"属性值"。显然,用中文书写向量的方式不够"数学",因此需要将属性值进一步数值化,具体例子参见"西瓜书"第3章3.2。此外,仅靠以上3个特征来刻画西瓜显然不够全面细致,因此还需要扩展更多维度的特征,一般称此类与特征处理相关的工作为"特征工程"。
**样本空间**:也称为"输入空间"或"属性空间"。由于样本采用的是标明各个特征取值的"特征向量"来进行表示,根据线性代数的知识可知,有向量便会有向量所在的空间,因此称表示样本的特征向量所在的空间为样本空间,通常用花式大写的$\mathcal{X}$表示。
**数据集**:数据集通常用集合来表示,令集合$D=\{\boldsymbol{x}_{1},\boldsymbol{x}_{2},...,\boldsymbol{x}_{m}\}$表示包含$m$个样本的数据集,一般同一份数据集中的每个样本都含有相同个数的特征,假设此数据集中的每个样本都含有$d$个特征,则第$i$个样本的数学表示为$d$维向量:$\boldsymbol{x}_{i}=(x_{i1};x_{i2};...;x_{id})$,其中$x_{ij}$表示样本$\boldsymbol{x}_{i}$在第$j$个属性上的取值。
**模型**:机器学习的一般流程如下:首先收集若干样本(假设此时有100个),然后将其分为训练样本(80个)和测试样本(20个),其中80个训练样本构成的集合称为"训练集",20个测试样本构成的集合称为"测试集",接着选用某个机器学习算法,让其在训练集上进行"学习"(或称为"训练"),然后产出得到"模型"(或称为"学习器"),最后用测试集来测试模型的效果。执行以上流程时,表示我们已经默认样本的背后是存在某种潜在的规律,我们称这种潜在的规律为"真相"或者"真实",例如样本是一堆好西瓜和坏西瓜时,我们默认的便是好西瓜和坏西瓜背后必然存在某种规律能将其区分开。当我们应用某个机器学习算法来学习时,产出得到的模型便是该算法所找到的它自己认为的规律,由于该规律通常并不一定就是所谓的真相,所以也将其称为"假设"。通常机器学习算法都有可配置的参数,同一个机器学习算法,使用不同的参数配置或者不同的训练集,训练得到的模型通常都不同。
**标记**:上文提到机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律,我们称该方面的信息为"标记"。例如在学习西瓜的好坏时,"好瓜"和"坏瓜"便是样本的标记。一般第$i$个样本的标记的数学表示为$y_i$,标记所在的空间称为"标记空间"或"输出空间",数学表示为花式大写的$\mathcal{Y}$。标记通常也看作为样本的一部分,因此,一个完整的样本通常表示为$(\boldsymbol{x}, y)$。
根据标记的取值类型不同,可将机器学习任务分为以下两类:
- 当标记取值为离散型时,称此类任务为"分类",例如学习西瓜是好瓜还是坏瓜、学习猫的图片是白猫还是黑猫等。当分类的类别只有两个时,称此类任务为"二分类",通常称其中一个为"正类",另一个为"反类"或"负类";当分类的类别超过两个时,称此类任务为"多分类"。由于标记也属于样本的一部分,通常也需要参与运算,因此也需要将其数值化,例如对于二分类任务,通常将正类记为$1$,反类记为$0$,即$\mathcal{Y}=\{0,1\}$。这只是一般默认的做法,具体标记该如何数值化可根据具体机器学习算法进行相应地调整,例如第6章的支持向量机算法则采用的是$\mathcal{Y}=\{-1,+1\}$;
- 当标记取值为连续型时,称此类任务为"回归",例如学习预测西瓜的成熟度、学习预测未来的房价等。由于是连续型,因此标记的所有可能取值无法直接罗列,通常只有取值范围,回归任务的标记取值范围通常是整个实数域$\mathbb{R}$,即$\mathcal{Y}=\mathbb{R}$。
无论是分类还是回归,机器学习算法最终学得的模型都可以抽象地看作为以样本$\boldsymbol{x}$为自变量,标记$y$为因变量的函数$y=f(\boldsymbol{x})$,即一个从输入空间$\mathcal{X}$到输出空间$\mathcal{Y}$的映射。例如在学习西瓜的好坏时,机器学习算法学得的模型可看作为一个函数$f(\boldsymbol{x})$,给定任意一个西瓜样本$\boldsymbol{x}_{i}=(\text{青绿};\text{蜷缩};\text{清脆})$,将其输入进函数即可计算得到一个输出$y_{i}=f(\boldsymbol{x}_{i})$,此时得到的$y_{i}$便是模型给出的预测结果,当$y_i$取值为$1$时表明模型认为西瓜$\boldsymbol{x}_{i}$是好瓜,当$y_i$取值为$0$时表明模型认为西瓜$\boldsymbol{x}_{i}$是坏瓜。
根据是否有用到标记信息,可将机器学习任务分为以下两类:
- 在模型训练阶段有用到标记信息时,称此类任务为"监督学习",例如第3章的线性模型;
- 在模型训练阶段没用到标记信息时,称此类任务为"无监督学习",例如第9章的聚类。
**泛化**:由于机器学习的目标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量一个模型好坏的关键,我们称此为"泛化"能力。例如学习西瓜好坏时,假设训练集中共有3个样本:$\{(\boldsymbol{x}_{1}=(\text{青绿};\text{蜷缩}),y_{1}=\text{好瓜}),(\boldsymbol{x}_{2}=(\text{乌黑};\text{蜷缩}),y_{2}=\text{好瓜}),(\boldsymbol{x}_{3}=(\text{浅白};\text{蜷缩}),y_{3}=\text{好瓜})\}$,同时假设判断西瓜好坏的真相是"只要根蒂蜷缩就是好瓜",如果应用算法$A$在此训练集上训练得到模型$f_{a}(\boldsymbol{x})$,模型$a$学到的规律是"色泽等于青绿、乌黑或者浅白时,同时根蒂蜷缩即为好瓜,否则便是坏瓜",再应用算法$B$在此训练集上训练得到模型$f_{b}(\boldsymbol{x})$,模型$f_{b}(\boldsymbol{x})$学到的规律是"只要根蒂蜷缩就是好瓜",因此对于一个未见过的西瓜样本$\boldsymbol{x}=(\text{金黄};\text{蜷缩})$来说,模型$f_{a}(\boldsymbol{x})$给出的预测结果为"坏瓜",模型$f_{b}(\boldsymbol{x})$给出的预测结果为"好瓜",此时我们称模型$f_{b}(\boldsymbol{x})$的泛化能力优于模型$f_{a}(\boldsymbol{x})$。
通过以上举例可知,尽管模型$f_{a}(\boldsymbol{x})$和模型$f_{b}(\boldsymbol{x})$对训练集学得一样好,即两个模型对训练集中每个样本的判断都对,但是其所学到的规律是不同的。导致此现象最直接的原因是算法的不同,但是算法通常是有限的,可穷举的,尤其是在特定任务场景下可使用的算法更是有限,因此,数据便是导致此现象的另一重要原因,这也就是机器学习领域常说的"数据决定模型的上限,而算法则是让模型无限逼近上限",下面详细解释此话的含义。
先解释"数据决定模型效果的上限",其中数据是指从数据量和特征工程两个角度考虑。从数据量的角度来说,通常数据量越大模型效果越好,因为数据量大即表示累计的经验多,因此模型学习到的经验也多,自然表现效果越好。例如以上举例中如果训练集中含有相同颜色但根蒂不蜷缩的坏瓜,模型$a$学到真相的概率则也会增大;从特征工程的角度来说,通常对特征数值化越合理,特征收集越全越细致,模型效果通常越好,因为此时模型更易学得样本之间潜在的规律。例如学习区分亚洲人和非洲人时,此时样本即为人,在进行特征工程时,如果收集到每个样本的肤色特征,则其他特征例如年龄、身高和体重等便可省略,因为只需靠肤色这一个特征就足以区分亚洲人和非洲人。
而"算法则是让模型无限逼近上限"是指当数据相关的工作已准备充分时,接下来便可用各种可适用的算法从数据中学习其潜在的规律进而得到模型,不同的算法学习得到的模型效果自然有高低之分,效果越好则越逼近上限,即逼近真相。
**分布**:此处的"分布"指的是概率论中的概率分布,通常假设样本空间服从一个未知"分布"$\mathcal{D}$,而我们收集到的每个样本都是独立地从该分布中采样得到,即"独立同分布"。通常收集到的样本越多,越能从样本中反推出$\mathcal{D}$的信息,即越接近真相。此假设属于机器学习中的经典假设,在后续学习机器学习算法过程中会经常用到。
## 1.3 假设空间
本节的重点是理解"假设空间"和"版本空间",下面以"房价预测"举例说明。假设现已收集到某地区近几年的房价和学校数量数据,希望利用收集到的数据训练出能通过学校数量预测房价的模型,具体收集到的数据如表1-1所示。

基于对以上数据的观察以及日常生活经验,不难得出"房价与学校数量成正比"的假设,若将学校数量设为$x$,房价设为$y$,则该假设等价表示学校数量和房价呈$y=wx+b$的一元一次函数关系,此时房价预测问题的假设空间即为"一元一次函数"。确定假设空间以后便可以采用机器学习算法从假设空间中学得模型,即从一元一次函数空间中学得能满足表1-1中数值关系的某个一元一次函数。学完第3章的线性回归可知当前问题属于一元线性回归问题,根据一元线性回归算法可学得模型为$y=3x-2$。
除此之外,也可以将问题复杂化,假设学校数量和房价呈$y=wx^{2}+b$一元二次函数关系,此时问题变为了线性回归中的多项式回归问题,按照多项式回归算法可学得模型为$y=x^2$。因此,以表1-1中数据作为训练集可以有多个假设空间,且在不同的假设空间中都有可能学得能够拟合训练集的模型,我们将所有能够拟合训练集的模型构成的集合称为"版本空间"。
## 1.4 归纳偏好
在上一节"房价预测"的例子中,当选用一元线性回归算法时,学得的模型是一元一次函数,当选用多项式回归算法时,学得的模型是一元二次函数,所以不同的机器学习算法有不同的偏好,我们称为"归纳偏好"。对于当前房价预测这个例子来说,这两个算法学得的模型哪个更好呢?著名的"奥卡姆剃刀"原则认为"若有多个假设与观察一致,则选最简单的那个",但是何为"简单"便见仁见智了,如果认为函数的幂次越低越简单,则此时一元线性回归算法更好,如果认为幂次越高越简单,则此时多项式回归算法更好,因此该方法其实并不"简单",所以并不常用,而最常用的方法则是基于模型在测试集上的表现来评判模型之间的优劣。测试集是指由训练集之外的样本构成的集合,例如在当前房价预测问题中,通常会额外留有部分未参与模型训练的数据来对模型进行测试。假设此时额外留有1条数据:$(\text{年份}:2022\text{年};\text{学校数量}:3\text{所};\text{房价}:7\text{万}/m^{2})$用于测试,模型$y=3x-2$的预测结果为$3*3-2=7$,预测正确,模型$y=x^2$的预测结果为$3^{2}=9$,预测错误,因此,在当前房价预测问题上,我们认为一元线性回归算法优于多项式回归算法。
机器学习算法之间没有绝对的优劣之分,只有是否适合当前待解决的问题之分,例如上述测试集中的数据如果改为$(\text{年份}:2022\text{年};\text{学校数量}:3\text{所};\text{房价}:9\text{万}/m^{2})$则结论便逆转为多项式回归算法优于一元线性回归算法。
### 1.4.1 式(1.1)和式(1.2)的解释
$$\begin{aligned}
\sum_{f}E_{ote}(\mathfrak{L}_a| X,f) &= \sum_f\sum_h\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h| X,\mathfrak{L}_a)&\textcircled{1}\\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h| X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))&\textcircled{2} \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h| X,\mathfrak{L}_a)\cfrac{1}{2}2^{| \mathcal{X} |}&\textcircled{3} \\
&=\cfrac{1}{2}2^{| \mathcal{X} |}\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h| X,\mathfrak{L}_a)&\textcircled{4} \\
&=2^{| \mathcal{X} |-1}\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \cdot 1 &\textcircled{5}\\
\end{aligned}$$
$\textcircled{1} \to \textcircled{2}$:
$$\begin{aligned}
&\sum_f\sum_h\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h| X,\mathfrak{L}_a) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\sum_f\sum_h\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h| X,\mathfrak{L}_a) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h| X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) \\
\end{aligned}$$
$\textcircled{2} \to \textcircled{3}$:首先要知道此时我们假设$f$是任何能将样本映射到$\{0,1\}$的函数。存在不止一个$f$时,$f$服从均匀分布,即每个$f$出现的概率相等。例如样本空间只有两个样本时,$\mathcal{X}=\{\boldsymbol{x}_1,\boldsymbol{x}_2\},|
\mathcal{X} |=2$。那么所有可能的真实目标函数$f$如下:
$$\begin{aligned}
f_1:f_1(\boldsymbol{x}_1)=0,f_1(\boldsymbol{x}_2)=0\\
f_2:f_2(\boldsymbol{x}_1)=0,f_2(\boldsymbol{x}_2)=1\\
f_3:f_3(\boldsymbol{x}_1)=1,f_3(\boldsymbol{x}_2)=0\\
f_4:f_4(\boldsymbol{x}_1)=1,f_4(\boldsymbol{x}_2)=1
\end{aligned}$$
一共$2^{| \mathcal{X} |}=2^2=4$个可能的真实目标函数。所以此时通过算法$\mathfrak{L}_a$学习出来的模型$h(\boldsymbol{x})$对每个样本无论预测值为0还是1,都必然有一半的$f$与之预测值相等。例如,现在学出来的模型$h(\boldsymbol{x})$对$\boldsymbol{x}_1$的预测值为1,即$h(\boldsymbol{x}_1)=1$,那么有且只有$f_3$和$f_4$与$h(\boldsymbol{x})$的预测值相等,也就是有且只有一半的$f$与它预测值相等,所以$\sum_f\mathbb{I}(h(\boldsymbol{x})\neq
f(\boldsymbol{x})) = \frac{1}{2}2^{| \mathcal{X} |}$。
需要注意的是,在这里我们假设真实的目标函数$f$服从均匀分布,但是实际情形并非如此,通常我们只认为能高度拟合已有样本数据的函数才是真实目标函数,例如,现在已有的样本数据为$\{(\boldsymbol{x}_1,0),(\boldsymbol{x}_2,1)\}$,那么此时$f_2$才是我们认为的真实目标函数,由于没有收集到或者压根不存在$\{(\boldsymbol{x}_1,0),(\boldsymbol{x}_2,0)\}\{(\boldsymbol{x}_1,1),(\boldsymbol{x}_2,0)\},\{(\boldsymbol{x}_1,1),(\boldsymbol{x}_2,1)\}$这类样本,所以$f_1,f_3,f_4$都不算是真实目标函数。套用到上述"房价预测"的例子中,我们认为只有能正确拟合测试集的函数才是真实目标函数,也就是我们希望学得的模型。
================================================
FILE: docs/chapter1/chapter1_FR.md
================================================
## 1.1
$$E_{o t e}\left(\mathfrak{L}_{a} | X, f\right)=\sum_{h} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h | X, \mathfrak{L}_{a}\right)$$
[Analyse]: voir la formule(1.2)
## 1.2
$$\begin{aligned}
\sum_{f}E_{ote}(\mathfrak{L}_a\vert X,f) &= \sum_f\sum_h\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h\vert X,\mathfrak{L}_a) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h\vert X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h\vert X,\mathfrak{L}_a)\cfrac{1}{2}2^{\vert \mathcal{X} \vert} \\
&=\cfrac{1}{2}2^{\vert \mathcal{X} \vert}\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h\vert X,\mathfrak{L}_a) \\
&=2^{\vert \mathcal{X} \vert-1}\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \cdot 1\\
\end{aligned}$$
[Analyse]:De l'étape 1 à 2:
$$\begin{aligned}
&\sum_f\sum_h\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h\vert X,\mathfrak{L}_a) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x})\sum_f\sum_h\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x}))P(h\vert X,\mathfrak{L}_a) \\
&=\sum_{\boldsymbol{x}\in\mathcal{X}-X}P(\boldsymbol{x}) \sum_hP(h\vert X,\mathfrak{L}_a)\sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) \\
\end{aligned}$$
De l'étape 1 à 2::Tout d'abord; on fait hypothèse que $f$ est fonction qui peut mapper l'échantillion de {0,1} et obéir à une distribution uniforme. C'est-à-dire qu'il exists plusieur $f$ et la probabilité de chaque $f$ procède la même probabilité,dans le cas où il y a que deux échantillions :$ \mathcal{X}=\{\boldsymbol{x}_1,\boldsymbol{x}_2\},\vert \mathcal{X} \vert=2$,Toute les fonctions objectif $f$ seront egaux aux:
$$\begin{aligned}
f_1:f_1(\boldsymbol{x}_1)=0,f_1(\boldsymbol{x}_2)=0;\\
f_2:f_2(\boldsymbol{x}_1)=0,f_2(\boldsymbol{x}_2)=1;\\
f_3:f_3(\boldsymbol{x}_1)=1,f_3(\boldsymbol{x}_2)=0;\\
f_4:f_4(\boldsymbol{x}_1)=1,f_4(\boldsymbol{x}_2)=1;
\end{aligned}$$
En total, il y aura $2^{\vert \mathcal{X} \vert}=2^2=4$ fonctions objectifs. Le modèle $h(\boldsymbol{x})$ apris par l'algoritme $\mathfrak{L}_a$ contients des prédictions qui sont égaux aux $f$-la moitié de l'échantillion comprise entre 0 et 1. Par exemple, le modèle actuel$h(\boldsymbol{x})$ La prédiction de $\boldsymbol{x}_1$ dans le modèle actuel est égale à 1,donc $h(\boldsymbol{x}_1)=1$. Il n'y a que $f_3$ et $f_4$ qui sont égaux à la prédiction de $h(\boldsymbol{x})$. Autrementdit,la moitié de $f$ est égale à sa prédiction. Dans ce cas, \sum_f\mathbb{I}(h(\boldsymbol{x})\neq f(\boldsymbol{x})) = \cfrac{1}{2}2^{\vert \mathcal{X} \vert} $;les analyses de l'étape 3 jusqu'aux dernières étapes sont étabile de façon évident.Il est à noter que, notre hypothèses initiale est “La fonction peut mapper à l'échantillion de {0,1} et obéir à une distribution uniforme”,mais en réalité, on constate que la fonction qui peut parfaitement s'adapter aux données d'échantillon existantes est la véritable fonction objectif. Par exemple, l'échantillion existante est $\{(\boldsymbol{x}_1,0),(\boldsymbol{x}_2,1)\}$, et alors, $f_2$ est la véritable fonction objectif. Parce qu'aucun échantillon de ce type $\{(\boldsymbol{x}_1,0),(\boldsymbol{x}_2,0)\},\{(\boldsymbol{x}_1,1),(\boldsymbol{x}_2,0)\},\{(\boldsymbol{x}_1,1),(\boldsymbol{x}_2,1)\}$ n'a été collecté ou n'existait pas du tout. On constate que $f_1,f_3,f_4$ n'est pas la véritable fonction objectif。C'est donc l'expression "Cyclisme" de la formule (1.3) dans notre Pumpkin-book.
================================================
FILE: docs/chapter10/chapter10.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:
>
> https://www.bilibili.com/video/BV1Mh411e7VU?p=15
>
> https://www.bilibili.com/video/BV1Mh411e7VU?p=16
# 第10章 降维与度量学习
## 10.1 预备知识
本章内容需要较多的线性代数和矩阵分析的基础,因此将相关的预备知识整体整理如下。
### 10.1.1 符号约定
向量元素之间分号 ";" 表示列元素分隔符, 如
$\boldsymbol{\alpha}=\left(a_1 ; a_2 ; \ldots ; a_i ; \ldots ; a_m\right)$
表示 $m \times 1$ 的列向量; 而逗号 "," 表示行元素分隔符, 如
$\boldsymbol{\alpha}=\left(a_1, a_2, \ldots, a_i, \ldots, a_m\right)$
表示 $1 \times m$ 的 行向量。
### 10.1.2 矩阵与单位阵、向量的乘法
(1)矩阵左乘对角阵相当于矩阵每行乘以对应对角阵的对角线元素, 如:
$$
\left[\begin{array}{lll}
\lambda_1 & & \\
& \lambda_2 & \\
& & \lambda_3
\end{array}\right]\left[\begin{array}{lll}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{array}\right]=\left[\begin{array}{lll}
\lambda_1 x_{11} & \lambda_1 x_{12} & \lambda_1 x_{13} \\
\lambda_2 x_{21} & \lambda_2 x_{22} & \lambda_2 x_{23} \\
\lambda_3 x_{31} & \lambda_3 x_{32} & \lambda_3 x_{33}
\end{array}\right]
$$
(2)矩阵右乘对角阵相当于矩阵每列乘以对应对角阵的对角线元素, 如:
$$
\left[\begin{array}{lll}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{array}\right]\left[\begin{array}{llll}
\lambda_1 & & \\
& \lambda_2 & \\
& & \lambda_3
\end{array}\right]=\left[\begin{array}{lll}
\lambda_1 x_{11} & \lambda_2 x_{12} & \lambda_3 x_{13} \\
\lambda_1 x_{21} & \lambda_2 x_{22} & \lambda_3 x_{23} \\
\lambda_1 x_{31} & \lambda_2 x_{32} & \lambda_3 x_{33}
\end{array}\right]
$$
(3)矩阵左乘行向量相当于矩阵每行乘以对应行向量的元素之和, 如:
$$
\begin{aligned}
& {\left[\begin{array}{lll}
\lambda_1 & \lambda_2 & \lambda_3
\end{array}\right]\left[\begin{array}{lll}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{array}\right]} \\
& =\lambda_1\left[\begin{array}{llll}
x_{11} & x_{12} & x_{13}
\end{array}\right]+\lambda_2\left[\begin{array}{lll}
x_{21} & x_{22} & x_{23}
\end{array}\right]+\lambda_3\left[\begin{array}{lll}
x_{31} & x_{32} & x_{33}
\end{array}\right] \\
& =\left(\begin{array}{ll}
\lambda_1 x_{11}+\lambda_2 x_{21}+\lambda_3 x_{31}, \lambda_1 x_{12}+\lambda_2 x_{22}+\lambda_3 x_{32}, \lambda_1 x_{13}+\lambda_2 x_{23}+\lambda_3 x_{33}
\end{array}\right)
\end{aligned}
$$
(4)矩阵右乘列向量相当于矩阵每列乘以对应列向量的元素之和, 如:
$$
\begin{aligned}
& {\left[\begin{array}{lll}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{array}\right]\left[\begin{array}{l}
\lambda_1 \\
\lambda_2 \\
\lambda_3
\end{array}\right]} \\
& =\lambda_1\left[\begin{array}{l}
x_{11} \\
x_{21} \\
x_{31}
\end{array}\right]+\lambda_2\left[\begin{array}{l}
x_{12} \\
x_{22} \\
x_{32}
\end{array}\right]+\lambda_3\left[\begin{array}{l}
x_{13} \\
x_{23} \\
x_{33}
\end{array}\right]=\sum_{i=1}^3\left(\lambda_i\left[\begin{array}{l}
x_{1 i} \\
x_{2 i} \\
x_{3 i}
\end{array}\right]\right) \\
& =\left(\lambda_1 x_{11}+\lambda_2 x_{12}+\lambda_3 x_{13} ; \lambda_1 x_{21}+\lambda_2 x_{22}+\lambda_3 x_{23} ; \lambda_1 x_{31}+\lambda_2 x_{32}+\lambda_3 x_{33}\right)
\end{aligned}
$$
综上, 左乘是对矩阵的行操作, 而右乘则是对矩阵的列操作,
第(2)个和第(4)个结论后 面推导过程中灵活应用较多。
## 10.2 矩阵的F范数与迹
(1)对于矩阵 $\mathbf{A} \in \mathbb{R}^{m \times n}$, 其 Frobenius 范数
(简称 $\mathrm{F}$ 范数) $\|\mathbf{A}\|_F$ 定义为
$$
\|\mathbf{A}\|_F=\left(\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2\right)^{\frac{1}{2}}
$$
其中 $a_{i j}$ 为矩阵 $\mathrm{A}$ 第 $i$ 行第 $j$ 列的元素, 即
$$
\mathbf{A}=\left[\begin{array}{cccccc}
a_{11} & a_{12} & \cdots & a_{1 j} & \cdots & a_{1 n} \\
a_{21} & a_{22} & \cdots & a_{2 j} & \cdots & a_{2 n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{i 1} & a_{i 2} & \cdots & a_{i j} & \cdots & a_{i n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{m 1} & a_{m 2} & \cdots & a_{m j} & \cdots & a_{m n}
\end{array}\right]
$$
(2)若
$\mathbf{A}=\left(\boldsymbol{\alpha}_1, \boldsymbol{\alpha}_2, \ldots, \boldsymbol{\alpha}_j, \ldots, \boldsymbol{\alpha}_n\right)$,
其中
$\boldsymbol{\alpha}_j=\left(a_{1 j} ; a_{2 j} ; \ldots ; a_{i j} ; \ldots ; a_{m j}\right)$
为其列向量,
$\mathbf{A} \in \mathbb{R}^{m \times n}, \boldsymbol{\alpha}_j \in \mathbb{R}^{m \times 1}$,
则
$\|\mathbf{A}\|_F^2=\sum_{j=1}^n\left\|\boldsymbol{\alpha}_j\right\|_2^2$;
同理, 若
$\mathbf{A}=\left(\boldsymbol{\beta}_1 ; \boldsymbol{\beta}_2 ; \ldots ; \boldsymbol{\beta}_i ; \ldots ; \boldsymbol{\beta}_m\right)$,
其中
$\boldsymbol{\beta}_i=\left(a_{i 1}, a_{i 2}, \ldots, a_{i j}, \ldots, a_{i n}\right)$
为其行向量,
$\mathbf{A} \in \mathbb{R}^{m \times n}, \boldsymbol{\beta}_i \in \mathbb{R}^{1 \times n}$,
则
$\|\mathbf{A}\|_F^2=\sum_{i=1}^m\left\|\boldsymbol{\beta}_i\right\|_2^2$
。
证明: 该结论是显而易见的, 因为
$\left\|\boldsymbol{\alpha}_j\right\|_2^2=\sum_{i=1}^m\left|a_{i j}\right|^2$,
而
$\|\mathbf{A}\|_F^{2}=\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2$
。
(3)若 $\lambda_j\left(\mathbf{A}^{\top} \mathbf{A}\right)$ 表示 $n$
阶方阵 $\mathbf{A}^{\top} \mathbf{A}$ 的第 $j$ 个特征值,
$\operatorname{tr}\left(\mathbf{A}^{\top} \mathbf{A}\right)$ 是
$\mathbf{A}^{\top} \mathbf{A}$ 的迹(对角线 元素之和);
$\lambda_i\left(\mathbf{A A}^{\top}\right)$ 表示 $m$ 阶方阵
$\mathbf{A} \mathbf{A}^{\top}$ 的第 $i$ 个特征值,
$\operatorname{tr}\left(\mathbf{A A}^{\top}\right)$ 是
$\mathbf{A} \mathbf{A}^{\top}$ 的迹, 则
$$
\begin{aligned}
\|\mathbf{A}\|_F^2 & =\operatorname{tr}\left(\mathbf{A}^{\top} \mathbf{A}\right)=\sum_{j=1}^n \lambda_j\left(\mathbf{A}^{\top} \mathbf{A}\right) \\
& =\operatorname{tr}\left(\mathbf{A} \mathbf{A}^{\top}\right)=\sum_{i=1}^m \lambda_i\left(\mathbf{A} \mathbf{A}^{\top}\right)
\end{aligned}
$$
证明: 先证
$\|\mathbf{A}\|_F^2=\operatorname{tr}\left(\mathbf{A}^{\top} \mathbf{A}\right)$,令
$\mathbf{B}=\mathbf{A}^{\top} \mathbf{A} \in \mathbb{R}^{n \times n}, b_{i j}$
表示 $\mathbf{B}$ 第 $i$ 行第 $j$ 列元素,
$\operatorname{tr}(\mathbf{B})=\sum_{j=1}^n b_{j \jmath}$
$$
\mathbf{B}=\mathbf{A}^{\top} \mathbf{A}=\left[\begin{array}{cccccc}
a_{11} & a_{21} & \cdots & a_{i 1} & \cdots & a_{m 1} \\
a_{12} & a_{22} & \cdots & a_{i 2} & \cdots & a_{m 2} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{1 j} & a_{2 j} & \cdots & a_{i j} & \cdots & a_{m j} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{1 n} & a_{2 n} & \cdots & a_{i n} & \cdots & a_{m n}
\end{array}\right]\left[\begin{array}{cccccc}
a_{11} & a_{12} & \cdots & a_{1 j} & \cdots & a_{1 n} \\
a_{21} & a_{22} & \cdots & a_{2 j} & \cdots & a_{2 n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{i 1} & a_{i 2} & \cdots & a_{i j} & \cdots & a_{i n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{m 1} & a_{m 2} & \cdots & a_{m j} & \cdots & a_{m n}
\end{array}\right]
$$
由矩阵运算规则, $b_{j j}$ 等于 $\mathbf{A}^{\top}$
的第 $j$ 行与 $\mathbf{A}$ 的第 $j$ 列的内积, 因此
$$
\operatorname{tr}(\mathbf{B})=\sum_{j=1}^n b_{j j}=\sum_{j=1}^n\left(\sum_{i=1}^m\left|a_{i j}\right|^2\right)=\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2=\|\mathbf{A}\|_F^2
$$
以上第三个等号交换了求和号次序(类似于交换积分号次序),
显然这不影响求和结果。
同理, 可证
$\|\mathbf{A}\|_F^2=\operatorname{tr}\left(\mathbf{A} \mathbf{A}^{\top}\right)$
:
$$
\begin{aligned}
& \mathbf{C}=\mathbf{A A}^{\top}=\left[\begin{array}{cccccc}
a_{11} & a_{12} & \cdots & a_{1 j} & \cdots & a_{1 n} \\
a_{21} & a_{22} & \cdots & a_{2 j} & \cdots & a_{2 n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{i 1} & a_{i 2} & \cdots & a_{i j} & \cdots & a_{i n} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{m 1} & a_{m 2} & \cdots & a_{m j} & \cdots & a_{m n}
\end{array}\right]\left[\begin{array}{cccccc}
a_{11} & a_{21} & \cdots & a_{i 1} & \cdots & a_{m 1} \\
a_{12} & a_{22} & \cdots & a_{i 2} & \cdots & a_{m 2} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{1 j} & a_{2 j} & \cdots & a_{i j} & \cdots & a_{m j} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
a_{1 n} & a_{2 n} & \cdots & a_{i n} & \cdots & a_{m n}
\end{array}\right] \\
&
\end{aligned}
$$
由矩阵运算规则, $c_{i i}$ 等于 $\mathbf{A}$ 的第 $i$ 行与
$\mathbf{A}^{\top}$ 的第 $i$ 列的内积(红色元素), 因此
$$
\operatorname{tr}(\mathbf{C})=\sum_{i=1}^m c_{i i}=\sum_{i=1}^m\left(\sum_{j=1}^n\left|a_{i j}\right|^2\right)=\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2=\|\mathbf{A}\|_F^2
$$
有关方阵的特征值之和等于对角线元素之和, 可以参见线性代数教材。
## 10.3 k近邻学习
### 10.3.1 式(10.1)的解释
$$
P(e r r)=1-\sum_{c \in \mathcal{Y}} P(c | \boldsymbol{x}) P(c | \boldsymbol{z})
$$
首先, $P(c \mid \boldsymbol{x})$ 表示样本 $\boldsymbol{x}$ 为类别 $c$
的后验概率, $P(c \mid \boldsymbol{z})$ 表示样本 $\boldsymbol{z}$ 为类别
$c$ 的后验概率; 其次,
$P(c \mid \boldsymbol{x}) P(c \mid \boldsymbol{z})$ 表示样本
$\boldsymbol{x}$ 和样本 $\boldsymbol{z}$ 同时为类别 $c$ 的概率;
再次,
$\sum_{c \in \mathcal{Y}} P(c \mid \boldsymbol{x}) P(c \mid \boldsymbol{z})$
表示样本 $\boldsymbol{x}$ 和样本 $\boldsymbol{z}$ 类别相同的概率;
这一点可以进一步解 释,设
$\mathcal{Y}=\left\{c_1, c_2, \cdots, c_N\right\}$, 则该求和式子变为:
$$
P\left(c_1 \mid \boldsymbol{x}\right) P\left(c_1 \mid \boldsymbol{z}\right)+P\left(c_2 \mid \boldsymbol{x}\right) P\left(c_2 \mid \boldsymbol{z}\right)+\cdots+P\left(c_N \mid \boldsymbol{x}\right) P\left(c_N \mid \boldsymbol{z}\right)
$$
即样本 $\boldsymbol{x}$ 和样本 $\boldsymbol{z}$ 同时为 $c_1$ 的概率,
加上同时为 $c_2$ 的概率, $\cdots \cdots$, 加上同时为 $c_N$ 的概率, 即
样本 $\boldsymbol{x}$ 和样本 $\boldsymbol{z}$ 类别相同的概率;
最后, $P(e r r)$ 表示样本 $\boldsymbol{x}$ 和样本 $\boldsymbol{z}$
类别不相同的概率, 即 1 减去二者类别相同的概率。
### 10.3.2 式(10.2)的推导
式(10.2)推导关键在于理解第二行的 "约等 $(\simeq)$ " 关系和第三行的
"小于等于 $(\leqslant)$ " 关系。
第二行的 "约等 $(\simeq)$ " 关系的依据在于该式前面一段话:
"假设样本独立同分布, 且对 任意 $\boldsymbol{x}$ 和任意小正数 $\delta$,
在 $\boldsymbol{x}$ 附近 $\delta$ 距离范围内总能找到一个训练样本",
这意味着对于任意 测试样本在训练集中都可以找出一个与其非常像 (任意小正数
$\delta$ ) 的近邻, 这里还有一个假 设书中末提及:
$P(c \mid \boldsymbol{x})$ 必须是连续函数 (对于连续函数 $f(x)$
和任意小正数 $\delta$, $f(x) \simeq f(x+\delta))$,
即对于两个非常像的样本 $\boldsymbol{z}$ 与 $\boldsymbol{x}$ 有
$P(c \mid \boldsymbol{x}) \simeq P(c \mid \boldsymbol{z})$, 即
$$
\sum_{c \in \mathcal{Y}} P(c \mid \boldsymbol{x}) P(c \mid \boldsymbol{z}) \simeq \sum_{c \in \mathcal{Y}} P^2(c \mid \boldsymbol{x})
$$
第三行的"小于等于 $(\leqslant)$ " 关系更简单: 由于
$c^* \in \mathcal{Y}$, 所以
$P^2\left(c^* \mid \boldsymbol{x}\right) \leqslant \sum_{c \in \mathcal{Y}} P^2(c \mid \boldsymbol{x})$,
也就是 "小于等于 $(\leqslant)$ " 左边只是右边的一部分,
所以肯定是小于等于的关系;
第四行就是数学公式 $a^2-b^2=(a+b)(a-b)$;
第五行是由于 $1+P\left(c^* \mid \boldsymbol{x}\right) \leqslant 2$,
这是由于概率值 $P\left(c^* \mid \boldsymbol{x}\right) \leqslant 1$
经过以上推导, 本节最后给出一个惊人的结论: 最近邻分类器虽简单,
但它的泛化错误 率不超过贝叶斯最优分类器的错误率的两倍!
然而这是一个没啥实际用途的结论, 因为这个结论必须满足两个假设条件, 且不说
$P(c \mid \boldsymbol{x})$ 是连续函数(第一个假设)是否满足, 单就
"对任意 $\boldsymbol{x}$ 和任意小正数 $\delta$, 在 $\boldsymbol{x}$ 附近
$\delta$ 距 离范围内总能找到一个训练样本" (第二个假设) 是不可能满足的,
这也就有了 $10.2$ 节开头 一段的讨论, 抛开 "任意小正数 $\delta$ " 不谈,
具体到 $\delta=0.001$ 都是不现实的。
## 10.4 低维嵌入
### 10.4.1 图10.2的解释
只要注意一点就行:在图(a)三维空间中,红色线是弯曲的,但去掉高度这一维(竖着的坐标轴)后,红色线变成直线,而直线更容易学习。
### 10.4.2 式(10.3)的推导
已知
$\mathbf{Z}=\left\{\boldsymbol{z}_1, \boldsymbol{z}_2, \ldots, \boldsymbol{z}_i, \ldots, \boldsymbol{z}_m\right\} \in \mathbb{R}^{d^{\prime} \times m}$,
其中
$\boldsymbol{z}_i=\left(z_{i 1} ; z_{i 2} ; \ldots ; z_{i d^{\prime}}\right) \in \mathbb{R}^{d^{\prime} \times 1}$;
降维后的内积矩阵
$\mathbf{B}=\mathbf{Z}^{\top} \mathbf{Z} \in \mathbb{R}^{m \times m}$,
其中第 $i$ 行第 $j$ 列元素 $b_{i j}$, 特别的
$$
b_{i i}=\boldsymbol{z}_i^{\top} \boldsymbol{z}_i=\left\|\boldsymbol{z}_i\right\|^2, b_{j j}=\boldsymbol{z}_j^{\top} \boldsymbol{z}_j=\left\|\boldsymbol{z}_j\right\|^2, b_{i j}=\boldsymbol{z}_i^{\top} \boldsymbol{z}_j
$$
MDS 算法的目标是
$\left\|\boldsymbol{z}_i-\boldsymbol{z}_j\right\|=d i s t_{i j}=\left\|\boldsymbol{x}_i-\boldsymbol{x}_j\right\|$,
即保持样本的欧氏距离在 $d^{\prime}$ 维空 间和原始 $d$ 维空间相同
$\left(d^{\prime} \leqslant d\right)$ 。
$$
\begin{aligned}
d i s t_{i j}^2 & =\left\|\boldsymbol{z}_i-\boldsymbol{z}_j\right\|^2=\left(z_{i 1}-z_{j 1}\right)^2+\left(z_{i 2}-z_{j 2}\right)^2+\ldots+\left(z_{i d^{\prime}}-z_{j d^{\prime}}\right)^2 \\
& =\left(z_{i 1}^2-2 z_{i 1} z_{j 1}+z_{j 1}^2\right)+\left(z_{i 2}^2-2 z_{i 2} z_{j 2}+z_{j 2}^2\right)+\ldots+\left(z_{i d^{\prime}}^2-2 z_{i d^{\prime}} z_{j d^{\prime}}+z_{j d^{\prime}}^2\right) \\
& =\left(z_{i 1}^2+z_{i 2}^2+\ldots+z_{i d^{\prime}}^2\right)+\left(z_{j 1}^2+z_{j 2}^2+\ldots+z_{j d^{\prime}}^2\right) \\
& -2\left(z_{i 1} z_{j 1}+z_{i 2} z_{j 2}+\ldots+z_{i d^{\prime}} z_{j d^{\prime}}\right) \\
& =\left\|\boldsymbol{z}_i\right\|^2+\left\|\boldsymbol{z}_j\right\|^2-2 \boldsymbol{z}_i^{\top} \boldsymbol{z}_j \\
& =b_{i i}+b_{j j}-2 b_{i j}
\end{aligned}
$$
本章矩阵运算非常多, 刚刚是从矩阵元素层面的推导;
实际可发现上式运算结果基本与 标量运算规则相同,
因此后面会尽可能不再从元素层面推导。具体来说:
$$
\begin{aligned}
d i s t_{i j}^2 & =\left\|\boldsymbol{z}_i-\boldsymbol{z}_j\right\|^2=\left(\boldsymbol{z}_i-\boldsymbol{z}_j\right)^{\top}\left(\boldsymbol{z}_i-\boldsymbol{z}_j\right) \\
& =\boldsymbol{z}_i^{\top} \boldsymbol{z}_i-\boldsymbol{z}_i^{\top} \boldsymbol{z}_j-\boldsymbol{z}_j^{\top} \boldsymbol{z}_i+\boldsymbol{z}_j^{\top} \boldsymbol{z}_j \\
& =\boldsymbol{z}_i^{\top} \boldsymbol{z}_i+\boldsymbol{z}_j^{\top} \boldsymbol{z}_j-2 \boldsymbol{z}_i^{\top} \boldsymbol{z}_j \\
& =\left\|\boldsymbol{z}_i\right\|^2+\left\|\boldsymbol{z}_j\right\|^2-2 \boldsymbol{z}_i^{\top} \boldsymbol{z}_j \\
& =b_{i i}+b_{j j}-2 b_{i j}
\end{aligned}
$$
上式第三个等号化简是由于内积
$\boldsymbol{z}_i^{\top} \boldsymbol{z}_j$ 和
$\boldsymbol{z}_j^{\top} \boldsymbol{z}_i$ 均为标量, 因此转置等于本身。
### 10.4.3 式(10.4)的推导
首先解释两个条件:
(1)令降维后的样本Z被中心化, 即
$\sum_{i=1}^m \boldsymbol{z}_i=\mathbf{0}$ 注意
$\mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m}$, $d^{\prime}$
是样本维度 (属性个数), $m$ 是样本个数, 易知 $\mathbf{Z}$ 的每一行有 $m$
个元 素 (每行表示样本集的一维属性), Z的每一列有 $d^{\prime}$ 个元素
(每列表示一个样本)。
式 $\sum_{i=1}^m \boldsymbol{z}_i=\mathbf{0}$ 中的 $\boldsymbol{z}_i$
明显表示的是第 $i$ 列, $m$ 列相加得到一个零向量
$\mathbf{0}_{d^{\prime} \times 1}$, 意思是样
本集合中所有样本的每一维属性之和均等于 0 ,
因此被中心化的意思是将样本集合Z的每一 行(属性)减去该行的均值。
(2)显然, 矩阵 $\mathbf{B}$ 的行与列之各均为零, 即
$\sum_{i=1}^m b_{i j}=\sum_{j=1}^m b_{i j}=0$ 。
注意 $b_{i j}=\boldsymbol{z}_i^{\top} \boldsymbol{z}_j$ (也可以写为
$b_{i j}=\boldsymbol{z}_j^{\top} \boldsymbol{z}_i$,
其实就是对应元素相乘, 再求和)
$$
\begin{gathered}
\sum_{i=1}^m b_{i j}=\sum_{i=1}^m \boldsymbol{z}_j^{\top} \boldsymbol{z}_i=\boldsymbol{z}_j^{\top} \sum_{i=1}^m \boldsymbol{z}_i=\boldsymbol{z}_j^{\top} \cdot \mathbf{0}_{d^{\prime} \times 1}=0 \\
\sum_{j=1}^m b_{i j}=\sum_{j=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_j=\boldsymbol{z}_i^{\top} \sum_{j=1}^m \boldsymbol{z}_j=\boldsymbol{z}_i^{\top} \cdot \mathbf{0}_{d^{\prime} \times 1}=0
\end{gathered}
$$
接下来我们推导式(10.4), 将式(10.3)的 $d i s t_{i j}^2$ 表达式代入:
$$
\begin{aligned}
\sum_{i=1}^m d i s t_{i j}^2 & =\sum_{i=1}^m\left(\left\|\boldsymbol{z}_i\right\|^2+\left\|\boldsymbol{z}_j\right\|^2-2 \boldsymbol{z}_i^{\top} \boldsymbol{z}_j\right) \\
& =\sum_{i=1}^m\left\|\boldsymbol{z}_i\right\|^2+\sum_{i=1}^m\left\|\boldsymbol{z}_j\right\|^2-2 \sum_{i=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_j
\end{aligned}
$$
根据定义:
$$
\begin{aligned}
& \sum_{i=1}^m\left\|\boldsymbol{z}_i\right\|^2=\sum_{i=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_i=\sum_{i=1}^m b_{i i}=\operatorname{tr}(\mathbf{B}) \\
& \sum_{i=1}^m\left\|\boldsymbol{z}_j\right\|^2=\left\|\boldsymbol{z}_j\right\|^2 \sum_{i=1}^m 1=m\left\|\boldsymbol{z}_j\right\|^2=m \boldsymbol{z}_j^{\top} \boldsymbol{z}_j=m b_{j j}
\end{aligned}
$$
根据前面结果:
$$
\sum_{i=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_j=\left(\sum_{i=1}^m \boldsymbol{z}_i^{\top}\right) \boldsymbol{z}_j=\mathbf{0}_{1 \times d^{\prime}} \cdot \boldsymbol{z}_j=0
$$
代入上式即得:
$$
\begin{aligned}
\sum_{i=1}^m d i s t_{i j}^2 & =\sum_{i=1}^m\left\|\boldsymbol{z}_i\right\|^2+\sum_{i=1}^m\left\|\boldsymbol{z}_j\right\|^2-2 \sum_{i=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_j \\
& =\operatorname{tr}(\mathbf{B})+m b_{j j}
\end{aligned}
$$
### 10.4.4 式(10.5)的推导
与式(10.4)类似:
$$
\begin{aligned}
\sum_{j=1}^m d i s t_{i j}^2 & =\sum_{j=1}^m\left(\left\|\boldsymbol{z}_i\right\|^2+\left\|\boldsymbol{z}_j\right\|^2-2 \boldsymbol{z}_i^{\top} \boldsymbol{z}_j\right) \\
& =\sum_{j=1}^m\left\|\boldsymbol{z}_i\right\|^2+\sum_{j=1}^m\left\|\boldsymbol{z}_j\right\|^2-2 \sum_{j=1}^m \boldsymbol{z}_i^{\top} \boldsymbol{z}_j \\
& =m b_{i i}+\operatorname{tr}(\mathbf{B})
\end{aligned}
$$
### 10.4.5 式(10.6)的推导
$$
\begin{aligned}
\sum_{i=1}^{m} \sum_{j=1}^{m} \operatorname{dist}_{i j}^{2} &=\sum_{i=1}^{m} \sum_{j=1}^{m}\left(\left\|z_{i}\right\|^{2}+\left\|\boldsymbol{z}_{j}\right\|^{2}-2 \boldsymbol{z}_{i}^{\top} \boldsymbol{z}_{j}\right) \\
&=\sum_{i=1}^{m} \sum_{j=1}^{m}\left\|\boldsymbol{z}_{i}\right\|^{2}+\sum_{i=1}^{m} \sum_{j=1}^{m}\left\|\boldsymbol{z}_{j}\right\|^{2}-2 \sum_{i=1}^{m} \sum_{j=1}^{m} \boldsymbol{z}_{i}^{\top} \boldsymbol{z}_{j} \\
\end{aligned}
$$
其中各子项的推导如下:
$$
\sum_{i=1}^{m} \sum_{j=1}^{m}\left\|\boldsymbol{z}_{i}\right\|^{2}=m \sum_{i=1}^{m}\left\|\boldsymbol{z}_{i}\right\|^{2}=m \operatorname{tr}(\mathbf{B})
$$
$$
\sum_{i=1}^{m} \sum_{j=1}^{m}\left\|\boldsymbol{z}_{j}\right\|^{2}=m \sum_{j=1}^{m}\left\|\boldsymbol{z}_{j}\right\|^{2}=m \operatorname{tr}(\mathbf{B})
$$
$$
\sum_{i=1}^{m} \sum_{j=1}^{m} \boldsymbol{z}_{i}^{\top} \boldsymbol{z}_{j}=0
$$
最后一个式子是来自于书中的假设,假设降维后的样本$\mathbf{Z}$被中心化。
### 10.4.6 式(10.10)的推导
由式(10.3)可得
$$
b_{ij}=-\frac{1}{2}(dist^2_{ij}-b_{ii}-b_{jj})
$$
由式(10.6)和(10.9)可得
$$
\begin{aligned}
tr(\boldsymbol B)&=\frac{1}{2m}\sum^m_{i=1}\sum^m_{j=1}dist^2_{ij}\\
&=\frac{m}{2}dist^2_{\cdot}
\end{aligned}
$$
由式(10.4)和(10.8)可得
$$
\begin{aligned}
b_{jj}&=\frac{1}{m}\sum^m_{i=1}dist^2_{ij}-\frac{1}{m}tr(\boldsymbol B)\\
&=dist^2_{\cdot j}-\frac{1}{2}dist^2_{\cdot}
\end{aligned}
$$
由式(10.5)和式(10.7)可得
$$
\begin{aligned}
b_{ii}&=\frac{1}{m}\sum^m_{j=1}dist^2_{ij}-\frac{1}{m}tr(\boldsymbol B)\\
&=dist^2_{i\cdot}-\frac{1}{2}dist^2_{\cdot}
\end{aligned}
$$
综合可得
$$
\begin{aligned}
b_{ij}&=-\frac{1}{2}(dist^2_{ij}-b_{ii}-b_{jj})\\
&=-\frac{1}{2}(dist^2_{ij}-dist^2_{i\cdot}+\frac{1}{2}dist^2_{\cdot\cdot}-dist^2_{\cdot j}+\frac{1}{2}dist^2_{\cdot\cdot})\\
&=-\frac{1}{2}(dist^2_{ij}-dist^2_{i\cdot}-dist^2_{\cdot j}+dist^2_{\cdot\cdot})
\end{aligned}
$$
在式(10.10)后紧跟着一句话: "由此即可通过降维前后保持不变的距离矩阵
$\mathbf{D}$ 求取内积 矩阵B", 我们来解释一下这句话。
首先解释式(10.10)等号右侧的变量含义:
$\quad d i s t_{i j}=\left\|\boldsymbol{z}_i-\boldsymbol{z}_j\right\|$
表示降维后 $\boldsymbol{z}_i$ 与 $\boldsymbol{z}_j$ 的欧氏 距离,
注意这同时也应该是原始空间 $\boldsymbol{x}_i$ 与 $\boldsymbol{x}_j$
的距离, 因为降维的目标(也是约束条件)是 "任意两个样本在 $d^{\prime}$
维空间中的欧氏距离等于原始空间中的距离"; 其次, 式(10.10)等号左侧
$b_{i j}$ 是降维后内积矩阵 $\mathbf{B}$ 的元 素, 即 $\mathbf{B}$ 的元素
$b_{i j}$ 可以由距离矩阵 $\mathbf{D}$ 来表达求取。
### 10.4.7 式(10.11)的解释
由题设知,$d^*$为$\mathbf{V}$的非零特征值,因此$\mathbf{B}=\mathbf{V} \boldsymbol{\Lambda} \mathbf{V}^{\top}$可以写成$\mathbf{B}=\mathbf{V}_{*} \boldsymbol{\Lambda}_{*} \mathbf{V}_{*}^{\top}$,其中$\boldsymbol{\Lambda}_{*} \in \mathbb{R}^{d \times d}$为$d$个非零特征值构成的特征值对角矩阵,而$\mathbf{V}_{*} \in \mathbb{R}^{m \times d}$
为
$\boldsymbol{\Lambda}_{*} \in \mathbb{R}^{d \times d}$对应的特征值向量矩阵,因此有
$$
\mathbf{B}=\left(\mathbf{V}_{*} \boldsymbol{\Lambda}_{*}^{1 / 2}\right)\left(\boldsymbol{\Lambda}_{*}^{1 / 2} \mathbf{V}_{*}^{\top}\right)
$$
故而$\mathbf{Z}=\boldsymbol{\Lambda}_{*}^{1 / 2} \mathbf{V}_{*}^{\top} \in \mathbb{R}^{d \times m}$
### 10.4.8 图10.3关于MDS算法的解释
首先要清楚此处降维算法要完成的任务: 获得 $d$ 维空间的样本集合
$\mathbf{X} \in \mathbb{R}^{d \times m}$ 在 $d^{\prime}$ 维空 间的表示
$\mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m}$, 并且保证距离矩阵
$\mathbf{D} \in \mathbb{R}^{m \times m}$ 相同, 其中 $d^{\prime}<d, m$
为样本个数,距离矩阵即样本之间的欧氏距离。那么怎么由$\mathbf{X} \in \mathbb{R}^{d \times m}$得到$\mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m}$呢?
经过推导发现 (式(10.3) 式(10.10)), 在保证距离矩阵
$\mathbf{D} \in \mathbb{R}^{m \times m}$ 相同的前提下, $d^{\prime}$ 维
空间的样本集合 $\mathbf{Z} \in \mathbb{R}^{d^{\prime} \times m}$
的内积矩阵
$\mathbf{B}=\mathbf{Z}^{\top} \mathbf{Z} \in \mathbb{R}^{m \times m}$
可以由距离矩阵 $\mathbf{D} \in \mathbb{R}^{m \times m}$ 得到
(参见式(10.10)), 此时只要对 $\mathrm{B}$ 进行矩阵分解即可得到
$\mathrm{Z}$; 具体来说, 对 $\mathrm{B}$ 进行特征值分 解可得
$\mathbf{B}=\mathbf{V} \boldsymbol{\Lambda} \mathbf{V}^{\top}$, 其中
$\mathbf{V} \in \mathbb{R}^{m \times m}$ 为特征值向量矩阵,
$\mathbf{\Lambda} \in \mathbb{R}^{m \times m}$ 为特征值构成的对 角矩阵,
接下来分类讨论:
\(1\) 当 $d>m$ 时, 即样本属性比样本个数还要多 此时, 样本集合
$\mathbf{X} \in \mathbb{R}^{d \times m}$ 的 $d$ 维属性一定是线性相关的
(即有品几余), 因为矩阵 $\mathbf{X}$ 的 秩不会大于 $m$ (此处假设矩阵
$\mathbf{X}$ 的秩恰好等于 $m$ ), 因此
$\Lambda \in \mathbb{R}^{m \times m}$ 主对角线有 $m$ 个非零值, 进而
$\mathbf{B}=\left(\mathbf{V} \boldsymbol{\Lambda}^{1 / 2}\right)\left(\boldsymbol{\Lambda}^{1 / 2} \mathbf{V}^{\top}\right)$,
得到的
$\mathbf{Z}=\boldsymbol{\Lambda}^{1 / 2} \mathbf{V}^{\top} \in \mathbb{R}^{d^{\prime} \times m}$
实际将 $d$ 维属性降成了 $d^{\prime}=m$ 维属性。
\(2\) 当 $d<m$ 时, 即样本个数比样本属性多
这是现实中最常见的一种情况。此时 $\Lambda \in \mathbb{R}^{m \times m}$
至多有 $d$ 个非零值(此处假设恰有 $d$ 个 非零值), 因此
$\mathbf{B}=\mathbf{V} \boldsymbol{\Lambda} \mathbf{V}^{\top}$ 可以写成
$\mathbf{B}=\mathbf{V}_* \boldsymbol{\Lambda}_* \mathbf{V}_*^{\top}$,
其中 $\boldsymbol{\Lambda}_* \in \mathbb{R}^{d \times d}$ 为 $d$
个非零值特征 值构成的特征值对角矩阵,
$\mathbf{V}_* \in \mathbb{R}^{m \times d}$ 为
$\Lambda_* \in \mathbb{R}^{d \times d}$ 相应的特征值向量矩阵, 进而
$\mathbf{B}=\left(\mathbf{V}_* \boldsymbol{\Lambda}_*^{1 / 2}\right)\left(\boldsymbol{\Lambda}_*^{1 / 2} \mathbf{V}_*^{\top}\right)$,
求得
$\mathbf{Z}=\boldsymbol{\Lambda}_*^{1 / 2} \mathbf{V}_*^{\top} \in \mathbb{R}^{d \times m}$,
此时属性没有冗杂, 因此按降维
的规则(降维后距离矩阵不变)并不能实现有效降维。
由以上分析可以看出, 降维后的维度 $d^{\prime}$ 实际为 $\mathrm{B}$
特征值分解后非零特征值的个数。
## 10.5 主成分分析
注意,作者在数次印刷中对本节符号进行修订,详见勘误修订,直接搜索页码即可,此处仅按个人推导需求定义符号,可能与不同印次书中符号不一致。
### 10.5.1 式(10.14)的推导
在一个坐标系中,
任意向量等于其在各个坐标轴的坐标值乘以相应坐标轴单位向量之和。 例如,
在二维直角坐标系中, $\boldsymbol{x}$ 轴和 $\boldsymbol{y}$
轴的单位向量分别为 $\boldsymbol{v}_1=(1 ; 0)$ 和
$\boldsymbol{v}_2=(0 ; 1)$, 向量 $\boldsymbol{r}=(2 ; 3)$ 可以表示为
$\boldsymbol{r}=2 \boldsymbol{v}_1+3 \boldsymbol{v}_2$; 其实
$\boldsymbol{v}_1=(1 ; 0)$ 和 $\boldsymbol{v}_2=(0 ; 1)$
只是二维平面的一组 标准正交基, 但二维平面实际有无数标准正交基, 如
$\boldsymbol{v}_1^{\prime}=\left(\frac{1}{\sqrt{2}} ; \frac{1}{\sqrt{2}}\right)$
和
$\boldsymbol{v}_2^{\prime}=\left(-\frac{1}{\sqrt{2}} ; \frac{1}{\sqrt{2}}\right)$,
此时向量
$\boldsymbol{r}=\frac{5}{\sqrt{2}} \boldsymbol{v}_1^{\prime}+\frac{1}{\sqrt{2}} \boldsymbol{v}_2^{\prime}$,
其中
$\frac{5}{\sqrt{2}}=\left(\boldsymbol{v}_1^{\prime}\right)^{\top} \boldsymbol{r}, \frac{1}{\sqrt{2}}=\left(\boldsymbol{v}_2^{\prime}\right)^{\top} \boldsymbol{r}$,
即新坐标系里的坐标。
下面开始推导,对于 $d$ 维空间 $\mathbb{R}^{d \times 1}$ 来说,
传统的坐标系为
$\left\{\boldsymbol{v}_1, \boldsymbol{v}_2, \ldots, \boldsymbol{v}_k, \ldots, \boldsymbol{v}_d\right\}$,
其中 $\boldsymbol{v}_k$ 为除第 $k$ 个 元素为 1 其余元素均 0 的 $d$
维列向量; 此时对于样本点
$\boldsymbol{x}_i=\left(x_{i 1} ; x_{i 2} ; \ldots ; x_{i d}\right) \in \mathbb{R}^{d \times 1}$
来说 亦可表示为
$\boldsymbol{x}_i=x_{i 1} \boldsymbol{v}_1+x_{i 2} \boldsymbol{v}_2+\ldots+x_{i d} \boldsymbol{v}_d$
。
现假定投影变换后得到的新坐标系为
$\left\{\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_k, \ldots, \boldsymbol{w}_d\right\}$
(即一组新的标准正 交基), 则 $\boldsymbol{x}_i$ 在新坐标系中的坐标为
$\left(\boldsymbol{w}_1^{\top} \boldsymbol{x}_i ; \boldsymbol{w}_2^{\top} \boldsymbol{x}_i ; \ldots ; \boldsymbol{w}_d^{\top} \boldsymbol{x}_i\right)$
。若丢弃新坐标系中的部分 坐标, 即将维度降低到 $d^{\prime}<d$
(不失一般性, 假设丢掉的是后 $d-d^{\prime}$ 维坐标), 并令
$$
\mathbf{W}=\left(\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_{d^{\prime}}\right) \in \mathbb{R}^{d \times d^{\prime}}
$$
则 $\boldsymbol{x}_i$ 在低维坐标系中的投影为
$$
\begin{aligned}
\boldsymbol{z}_i & =\left(z_{i 1} ; z_{i 2} ; \ldots ; z_{i d^{\prime}}\right)=\left(\boldsymbol{w}_1^{\top} \boldsymbol{x}_i ; \boldsymbol{w}_2^{\top} \boldsymbol{x}_i ; \ldots ; \boldsymbol{w}_{d^{\prime}}^{\top} \boldsymbol{x}_i\right) \\
& =\mathbf{W}^{\top} \boldsymbol{x}_i
\end{aligned}
$$
若基于 $\boldsymbol{z}_i$ 来重构 $\boldsymbol{x}_i$, 则会得到
$\hat{\boldsymbol{x}}_i=\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_j=\mathbf{W} \boldsymbol{z}_i$
("西瓜书" P230 第 11 行)。
有了以上符号基础, 接下来将式(10.14)化简成式(10.15)目标函数形式
(可逐一核对各项 维数以验证推导是否有误):
$$
\begin{aligned}
\sum_{i=1}^m\left\|\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_j-\boldsymbol{x}_i\right\|_2^2 &=\sum_{i=1}^m\left\|\mathbf{W} \boldsymbol{z}_i-\boldsymbol{x}_i\right\|_2^2 &\textcircled{1}\\
&=\sum_{i=1}^m\left\|\mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i-\boldsymbol{x}_i\right\|_2^2 &\textcircled{2}\\
&=\sum_{i=1}^m\left(\mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i-\boldsymbol{x}_i\right)^{\top}\left(\mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i-\boldsymbol{x}_i\right) &\textcircled{3}\\
&=\sum_{i=1}^m\left(\boldsymbol{x}_i^{\top} \mathbf{W} \mathbf{W}^{\top} \mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i-2 \boldsymbol{x}_i^{\top} \mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i+\boldsymbol{x}_i^{\top} \boldsymbol{x}_i\right) &\textcircled{4}\\
&=\sum_{i=1}^m\left(\boldsymbol{x}_i^{\top} \mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i-2 \boldsymbol{x}_i^{\top} \mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i+\boldsymbol{x}_i^{\top} \boldsymbol{x}_i\right) &\textcircled{5}\\
&=\sum_{i=1}^m\left(-\boldsymbol{x}_i^{\top} \mathbf{W}\mathbf{W}^{\top} \mathbf{x}_i+\boldsymbol{x}_i^{\top} \boldsymbol{x}_i\right) &\textcircled{6}\\
&=\sum_{i=1}^m\left(-\left(\mathbf{W}^{\top} \boldsymbol{x}_i\right)^{\top}\left(\mathbf{W}^{\top} \boldsymbol{x}_i\right)+\boldsymbol{x}_i^{\top} \boldsymbol{x}_i\right) &\textcircled{7}\\
&=\sum_{i=1}^m\left(-\left\|\mathbf{W}^{\top} \boldsymbol{x}_i\right\|_2^2+\boldsymbol{x}_i^{\top} \boldsymbol{x}_i\right) &\textcircled{8}\\
&\propto-\sum_{i=1}^m\left\|\mathbf{W}^{\top} \boldsymbol{x}_i\right\|_2^2 &\textcircled{9}
\end{aligned}
$$
$\textcircled{3}\to\textcircled{4}$是由于
$\left(\mathbf{W} \mathbf{W}^{\top}\right)^{\top}=\left(\mathbf{W}^{\top}\right)^{\top}(\mathbf{W})^{\top}=\mathbf{W} \mathbf{W}^{\top}$,
因此
$$
\left(\mathbf{W} \mathbf{W}^{\top} \boldsymbol{x}_i\right)^{\top}=\boldsymbol{x}_i^{\top}\left(\mathbf{W} \mathbf{W}^{\top}\right)^{\top}=\boldsymbol{x}_i^{\top} \mathbf{W} \mathbf{W}^{\top}
$$
代入即得$\textcircled{4}$;
$\textcircled{4}\to\textcircled{5}$是由于
$\boldsymbol{w}_i^{\top} \boldsymbol{w}_j=0,(i \neq j),\left\|\boldsymbol{w}_i\right\|=1$,
因此
$\mathbf{W}^{\top} \mathbf{W}=\mathbf{I} \in \mathbb{R}^{d^{\prime} \times d^{\prime}}$,
代入即得$\textcircled{5}$。由于最终目标是寻找 $\mathbf{W}$ 使目标函数(10.14)
最小, 而 $\boldsymbol{x}_i^{\top} \boldsymbol{x}_i$ 与 $\mathbf{W}$
无关, 因此在优化时可以去掉。令
$\mathbf{X}=\left(\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right) \in \mathbb{R}^{d \times m}$,
即每列为一个样本, 则式(10.14)可继续化简为
(参见10.2节)
$$
\begin{aligned}
-\sum_{i=1}^m\left\|\mathbf{W}^{\top} \boldsymbol{x}_i\right\|_2^2 & =-\left\|\mathbf{W}^{\top} \mathbf{X}\right\|_F^2 \\
& =-\operatorname{tr}\left(\left(\mathbf{W}^{\top} \mathbf{X}\right)\left(\mathbf{W}^{\top} \mathbf{X}\right)^{\top}\right) \\
& =-\operatorname{tr}\left(\mathbf{W}^{\top} \mathbf{X} \mathbf{X}^{\top} \mathbf{W}\right)
\end{aligned}
$$
这里 $\mathbf{W}^{\top} \boldsymbol{x}_i=\boldsymbol{z}_i$,
这里仅为得到式 (10.15) 的形式才最终保留 $\mathbf{W}$ 和
$\boldsymbol{x}_i$ 的; 若令
$\mathbf{Z}=\left(\boldsymbol{z}_1, \boldsymbol{z}_2, \ldots, \boldsymbol{z}_m\right) \in \mathbb{R}^{d^{\prime} \times m}$
为低维坐标系中的样本集合, 则 $\mathbf{Z}=\mathbf{W}^{\top} \mathbf{X}$,
即 $\boldsymbol{z}_i$ 为矩阵 $\mathbf{Z}$ 的第 $i$ 列; 而
$\sum_{i=1}^m\left\|\mathbf{W}^{\top} \boldsymbol{x}_i\right\|_2^2=\sum_{i=1}^m\left\|\boldsymbol{z}_i\right\|_2^2$
表示Z所有列向量 2 范数的平方, 也就是Z所 有元素的平方和, 即为
$\|\mathbf{Z}\|_F^2$, 此即第一个等号的由来;
而根据10.2节中第(3)个结论, 即对于矩阵 $\mathbf{Z}$ 有
$\|\mathbf{Z}\|_F^2=\operatorname{tr}\left(\mathbf{Z}^{\top} \mathbf{Z}\right)=\operatorname{tr}\left(\mathbf{Z} \mathbf{Z}^{\top}\right)$,
其中 $\operatorname{tr}(\cdot)$ 表示求矩阵的迹, 即对角线元素之和,
此即第二个等号的由来; 第三个等号将转置化简即得。
到此即得式(10.15)的目标函数, 约束条件
$\mathbf{W}^{\top} \mathbf{W}=\mathbf{I}$ 已在推导中说明。
式(10.15)的目标函数式(10.14)结果略有差异, 接下来推导
$\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}=\mathbf{X X}^{\top}$
以弥补这个差异(这个结论可以记下来)。
先化简 $\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}$, 首先
$$
\boldsymbol{x}_i \boldsymbol{x}_i^{\top}=\left[\begin{array}{c}
x_{i 1} \\
x_{i 2} \\
\vdots \\
x_{i d}
\end{array}\right]\left[\begin{array}{llll}
x_{i 1} & x_{i 2} & \cdots & x_{i d}
\end{array}\right]=\left[\begin{array}{cccc}
x_{i 1} x_{i 1} & x_{i 1} x_{i 2} & \cdots & x_{i 1} x_{i d} \\
x_{i 2} x_{i 1} & x_{i 2} x_{i 2} & \cdots & x_{i 2} x_{i d} \\
\vdots & \vdots & \ddots & \vdots \\
x_{i d} x_{i 1} & x_{i d} x_{i 2} & \cdots & x_{i d} x_{i d}
\end{array}\right]_{d \times d}
$$
整体代入求和号 $\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}$,
得
$$
\begin{aligned}
\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}= & \sum_{i=1}^m\left[\begin{array}{cccc}
x_{i 1} x_{i 1} & x_{i 1} x_{i 2} & \cdots & x_{i 1} x_{i d} \\
x_{i 2} x_{i 1} & x_{i 2} x_{i 2} & \cdots & x_{i 2} x_{i d} \\
\vdots & \vdots & \ddots & \vdots \\
x_{i d} x_{i 1} & x_{i d} x_{i 2} & \cdots & x_{i d} x_{i d}
\end{array}\right]_{d \times d} \\
= & {\left[\begin{array}{cccc}
\sum_{i=1}^m x_{i 1} x_{i 1} & \sum_{i=1}^m x_{i 1} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 1} x_{i d} \\
\sum_{i=1}^m x_{i 2} x_{i 1} & \sum_{i=1}^m x_{i 2} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 2} x_{i d} \\
\vdots & \vdots & \ddots & \vdots \\
\sum_{i=1}^m x_{i d} x_{i 1} & \sum_{i=1}^m x_{i d} x_{i 2} & \cdots & \sum_{i=1}^m x_{i d} x_{i d}
\end{array}\right]_{d \times d} }
\end{aligned}
$$
再化简 $\mathbf{X X}^{\top} \in \mathbb{R}^{d \times d}$
$$
\mathbf{X X}^{\top}=\left[\begin{array}{llll}
\boldsymbol{x}_1 & \boldsymbol{x}_2 & \cdots & \boldsymbol{x}_d
\end{array}\right]\left[\begin{array}{c}
\boldsymbol{x}_1^{\top} \\
\boldsymbol{x}_2^{\top} \\
\vdots \\
\boldsymbol{x}_d^{\top}
\end{array}\right]
$$
将列向量
$\boldsymbol{x}_i=\left(x_{i 1} ; x_{i 2} ; \ldots ; x_{i d}\right) \in \mathbb{R}^{d \times 1}$
代入
$$
\begin{aligned}
& \mathbf{X X}^{\top}=\left[\begin{array}{cccc}
x_{11} & x_{21} & \cdots & x_{m 1} \\
x_{12} & x_{22} & \cdots & x_{m 2} \\
\vdots & \vdots & \ddots & \vdots \\
x_{1 d} & x_{2 d} & \cdots & x_{m d}
\end{array}\right]_{d \times m} \bullet\left[\begin{array}{cccc}
x_{11} & x_{12} & \cdots & x_{1 d} \\
x_{21} & x_{22} & \cdots & x_{2 d} \\
\vdots & \vdots & \ddots & \vdots \\
x_{m 1} & x_{m 2} & \cdots & x_{m d}
\end{array}\right]_{m \times d} \\
& =\left[\begin{array}{cccc}
\sum_{i=1}^m x_{i 1} x_{i 1} & \sum_{i=1}^m x_{i 1} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 1} x_{i d} \\
\sum_{i=1}^m x_{i 2} x_{i 1} & \sum_{i=1}^m x_{i 2} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 2} x_{i d} \\
\vdots & \vdots & \ddots & \vdots \\
\sum_{i=1}^m x_{i d} x_{i 1} & \sum_{i=1}^m x_{i d} x_{i 2} & \cdots & \sum_{i=1}^m x_{i d} x_{i d}
\end{array}\right]_{d \times d} \\
&
\end{aligned}
$$
综合 $\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}$ 和
$\mathbf{X X}^{\top}$ 的化简结果, 即
$\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}=\mathbf{X X}^{\top}$
(协方差矩阵)。 根据刚刚推导得到的结论,
式(10.14)最后的结果即可化为式(10.15)的目标函数
$$
\operatorname{tr}\left(\mathbf{W}^{\top}\left(\sum_{i=1}^m \boldsymbol{x}_i \boldsymbol{x}_i^{\top}\right) \mathbf{W}\right)=\operatorname{tr}\left(\mathbf{W}^{\top} \mathbf{X} \mathbf{X}^{\top} \mathbf{W}\right)
$$
式(10.15)描述的优化问题的求解详见式(10.17)最后的解释。
### 10.5.2 式(10.16)的解释
先说什么是方差,对于包含 $n$ 个样本的一组数据
$X=\left\{x_1, x_2, \ldots, x_n\right\}$ 来说, 均值 $M$ 为
$$
M=\frac{x_1+x_2+\ldots+x_n}{n}=\sum_{i=1}^n x_i
$$
则方差 $\sigma_X^2$ 公式为
$$
\begin{aligned}
\sigma^2 & =\frac{\left(x_1-M\right)^2+\left(x_2-M\right)^2+\ldots+\left(x_n-M\right)^2}{n} \\
& =\frac{1}{n} \sum_{i=1}^n\left(x_i-M\right)^2
\end{aligned}
$$
方差衡量了该组数据偏离均值的程度,样本越分散, 其方差越大。
再说什么是协方差,若还有包含 $n$ 个样本的另一组数据
$X^{\prime}=\left\{x_1^{\prime}, x_2^{\prime}, \ldots, x_n^{\prime}\right\}$,
均值为 $M^{\prime}$, 则下式
$$
\begin{aligned}
\sigma_{X X^{\prime}}^2 & =\frac{\left(x_1-M\right)\left(x_1^{\prime}-M^{\prime}\right)+\left(x_2-M\right)\left(x_2^{\prime}-M^{\prime}\right)+\ldots+\left(x_n-M\right)\left(x_n^{\prime}-M^{\prime}\right)}{n} \\
& =\frac{1}{n} \sum_{i=1}^n\left(x_i-M\right)\left(x_i^{\prime}-M^{\prime}\right)
\end{aligned}
$$
称为两组数据的协方差。 $\sigma_{X X^{\prime}}^2$ 能说明第一组数据
$x_1, x_2, \ldots, x_n$ 和第二组数据
$x_1^{\prime}, x_2^{\prime}, \ldots, x_n^{\prime}$ 的变化情况。具体来说,
如果两组数据总是同时大于或小于自己的均值, 则
$\left(x_i-M\right)\left(x_i^{\prime}-M^{\prime}\right)>0$, 此时
$\sigma_{X X^{\prime}}^2>0$; 如果两组数据总是一个大于 (或小于) 自己的均
值而别一个小于 (或大于) 自己的均值, 则
$\left(x_i-M\right)\left(x_i^{\prime}-M^{\prime}\right)<0$, 此时
$\sigma_{X X^{\prime}}^2<0$; 如果 两组数据与自己的均值的大小关系无规律,
则 $\left(x_i-M\right)\left(x_i^{\prime}-M^{\prime}\right)$
的正负号随机变化, 其平 均数 $\sigma_{X X}^2$, 则会趋近于 0
。引用百度百科协方差词条原话: "从直观上来看, 协方差表示的是
两个变量总体误差的期望。如果两个变量的变化趋势一致,
也就是说如果其中一个大于自身 的期望值时另外一个也大于自身的期望值,
那么两个变量之间的协方差就是正值; 如果两个 变量的变化趋势相反,
即其中一个变量大于自身的期望值时另外一个却小于自身的期望值,
那么两个变量之间的协方差就是负值。如果两个变量是统计独立的,
那么二者之间的协方差 就是 0 , 但是, 反过来并不成立。协方差为 0
的两个随机变量称为是不相关的。"
最后说什么是协方差矩阵,结合本书中的符号:
$$
\mathbf{X}=\left(\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right)=\left[\begin{array}{cccc}
x_{11} & x_{21} & \cdots & x_{m 1} \\
x_{12} & x_{22} & \cdots & x_{m 2} \\
\vdots & \vdots & \ddots & \vdots \\
x_{1 d} & x_{2 d} & \cdots & x_{m d}
\end{array}\right]_{d \times m}
$$
矩阵 $\mathbf{X}$ 每一行表示一维特征,
每一列表示该数据集的一个样本; 而本节开始已假定数据样本 进行了中心化, 即
$\sum_{i=1}^m x_i=0 \in \mathbb{R}^{d \times 1}$ (中心化过程可通过
$\mathbf{X}\left(\mathrm{I}-\frac{1}{m} 11^{\top}\right.$ )实现, 其中
$\mathrm{I} \in \mathbb{R}^{m \times m}$ 为单位阵,
$\mathbf{1} \in \mathbb{R}^{m \times 1}$ 为全 1 列向量, 参见习题 10.3),
即上式矩阵的每一行平均 值等于零 (其实就是分别对所有 $\boldsymbol{x}_i$
的每一维坐标进行中心化, 而不是分别对单个样本 $\boldsymbol{x}_i$ 中
心化)对于包含 $d$ 个特征的特征空间(或称 $d$ 维特征空间)来说,
每一维特征可以看成是一 个随机变量, 而 $\mathbf{X}$ 中包含 $m$ 个样本,
也就是说每个随机变量有 $m$ 个数据, 根据前面 $\mathbf{X X}^{\top}$ 的
矩阵表达形式:
$$
\frac{1}{m} \mathbf{X X}^{\top}=\frac{1}{m}\left[\begin{array}{cccc}
\sum_{i=1}^m x_{i 1} x_{i 1} & \sum_{i=1}^m x_{i 1} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 1} x_{i d} \\
\sum_{i=1}^m x_{i 2} x_{i 1} & \sum_{i=1}^m x_{i 2} x_{i 2} & \cdots & \sum_{i=1}^m x_{i 2} x_{i d} \\
\vdots & \vdots & \ddots & \vdots \\
\sum_{i=1}^m x_{i d} x_{i 1} & \sum_{i=1}^m x_{i d} x_{i 2} & \cdots & \sum_{i=1}^m x_{i d} x_{i d}
\end{array}\right]_{d \times d}
$$
根据前面的结果知道 $\frac{1}{m} \mathbf{X} \mathbf{X}^{\top}$ 的第 $i$
行第 $j$ 列的元素表示 $\mathbf{X}$ 中第 $i$ 行和 $\mathbf{X}^{\top}$ 第
$j$ 列(即 $\mathbf{X}$ 中第 $j$ 行) 的方差 $(i=j)$ 或协方差
$(i \neq j)$ 。注意: 协方差矩阵对角线元素为各行的方差。
接下来正式解释式(10.16): 对于
$\mathbf{X}=\left(\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right) \in \mathbb{R}^{d \times m}$,
将其投影为
$\mathbf{Z}=\left(\boldsymbol{z}_1, \boldsymbol{z}_2, \ldots, \boldsymbol{z}_m\right) \in \mathbb{R}^{d^{\prime} \times m}$,
最大可分性出发, 我们希望在新空间的每一维坐标轴上样本都尽可能分散
(即每维特征尽可 能分散, 也就是Z各行方差最大; 参见图 $10.4$ 所示,
原空间只有两维坐标, 现考虑降至一维, 希望在新坐标系下样本尽可能分散,
图中画出了一种映射后的坐标系, 显然橘红色坐标方向 样本更分散, 方差更大),
即寻找 $\mathbf{W} \in \mathbb{R}^{d \times d^{\prime}}$ 使协方差矩阵
$\frac{1}{m} \mathbf{Z Z}^{\top}$ 对角线元素之和 (矩阵的 迹)最大(即使
$\mathbf{Z}$ 各行方差之和最大), 由于
$\mathbf{Z}=\mathbf{W}^{\top} \mathbf{X}$, 而常系数 $\frac{1}{m}$
在最大化时并不发生 影响, 求矩阵对角线元素之和即为矩阵的迹,
综上即得式(10.16)。
另外, 中心化后 $\mathbf{X}$ 的各行均值为零, 变换后
$\mathbf{Z}=\mathbf{W}^{\top} \mathbf{X}$ 的各行均值仍为零, 这是因为
$\mathbf{Z}$ 的第 $i$ 行
$\left(1 \leqslant i \leqslant d^{\prime}\right)$ 为
$\left\{\boldsymbol{w}_i^{\top} \boldsymbol{x}_1, \boldsymbol{w}_i^{\top} \boldsymbol{x}_2, \ldots, \boldsymbol{w}_i^{\top} \boldsymbol{x}_m\right\}$,
该行之和
$\boldsymbol{w}_i^{\top} \sum_{j=1}^m \boldsymbol{x}_j=\boldsymbol{w}_i^{\top} \mathbf{0}=0$
。
最后, 有关方差的公式, 有人认为应该除以样本数量 $m$,
有人认为应该除以样本数量减 1 即 $m-1$ 。简单来说,
根据总体样本集求方差就除以总体样本数量, 而根据抽样样本集求
方差就除以抽样样本集数量减 1; 总体样本集是真正想调查的对象集合,
而抽样样本集是从 总体样本集中被选出来的部分样本组成的集合,
用来估计总体样本集的方差; 一般来说, 总体样本集是不可得的,
我们拿到的都是抽样样本集。严格上来说,样本方差应该除以 $\mathrm{n}-1$
才会得到总体样本的无偏估计, 若除以 $\mathrm{n}$ 则得到的是有偏估计。
式(10.16)描述的优化问题的求解详见式(10.17)最后的解释。
### 10.5.3 式(10.17)的推导
由式(10.15)可知,主成分分析的优化目标为
$$
\begin{aligned}
&\min\limits_{\mathbf W} \quad-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)\\
&s.t. \quad\mathbf W^{\mathrm{T}} \mathbf W=\mathbf I
\end{aligned}
$$
其中,$\mathbf{X}=\left(\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right) \in \mathbb{R}^{d \times m},\mathbf{W}=\left(\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{d^{\prime}}\right) \in \mathbb{R}^{d \times d^{\prime}}$,$\mathbf{I} \in \mathbb{R}^{d^{\prime} \times d^{\prime}}$为单位矩阵。对于带矩阵约束的优化问题,根据[1]中讲述的方法可得此优化目标的拉格朗日函数为
$$
\begin{aligned}
L(\mathbf W,\Theta)&=-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\langle \Theta,\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I\rangle \\
&=-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\Theta^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)
\end{aligned}
$$
其中,$\Theta \in \mathbb{R}^{d^{\prime} \times d^{\prime}}$为拉格朗日乘子矩阵,其维度恒等于约束条件的维度,且其中的每个元素均为未知的拉格朗日乘子,$\langle \Theta,\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I\rangle = \text { tr }\left(\Theta^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)$为矩阵的内积[2]。若此时仅考虑约束$\boldsymbol{w}_i^{\mathrm{T}}\boldsymbol{w}_i=1(i=1,2,...,d^{\prime})$,则拉格朗日乘子矩阵$\Theta$此时为对角矩阵,令新的拉格朗日乘子矩阵为$\boldsymbol{\Lambda}=\operatorname{diag}(\lambda_1,\lambda_2,...,\lambda_{d^{\prime}})\in \mathbb{R}^{d^{\prime} \times d^{\prime}}$,则新的拉格朗日函数为
$$
L(\mathbf W,\boldsymbol{\Lambda})=-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\boldsymbol{\Lambda}^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)
$$
对拉格朗日函数关于$\mathbf{W}$求导可得
$$
\begin{aligned}
\cfrac{\partial L(\mathbf W,\boldsymbol{\Lambda})}{\partial \mathbf W}&=\cfrac{\partial}{\partial \mathbf W}\left[-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\text { tr }\left(\boldsymbol{\Lambda}^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right)\right] \\
&=-\cfrac{\partial}{\partial \mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)+\cfrac{\partial}{\partial \mathbf W}\text { tr }\left(\boldsymbol{\Lambda}^{\mathrm{T}} (\mathbf W^{\mathrm{T}} \mathbf W-\mathbf I)\right) \\
\end{aligned}
$$
由矩阵微分公式$\cfrac{\partial}{\partial \mathbf{X}} \text { tr }(\mathbf{X}^{\mathrm{T}} \mathbf{B} \mathbf{X})=\mathbf{B X}+\mathbf{B}^{\mathrm{T}} \mathbf{X},\cfrac{\partial}{\partial \mathbf{X}} \text { tr }\left(\mathbf{B X}^{\mathrm{T}} \mathbf{X}\right)=\mathbf{X B}^{\mathrm{T}} +\mathbf{X B}$可得
$$
\begin{aligned}
\cfrac{\partial L(\mathbf W,\boldsymbol{\Lambda})}{\partial \mathbf W}&=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}\boldsymbol{\Lambda}+\mathbf{W}\boldsymbol{\Lambda}^{\mathrm{T}} \\
&=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+\mathbf{W}(\boldsymbol{\Lambda}+\boldsymbol{\Lambda}^{\mathrm{T}} ) \\
&=-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\boldsymbol{\Lambda}
\end{aligned}
$$
令$\cfrac{\partial L(\mathbf W,\boldsymbol{\Lambda})}{\partial \mathbf W}=\mathbf 0$可得
$$
\begin{aligned}
-2\mathbf X\mathbf X^{\mathrm{T}} \mathbf W+2\mathbf{W}\boldsymbol{\Lambda}&=\mathbf 0\\
\mathbf X\mathbf X^{\mathrm{T}} \mathbf W&=\mathbf{W}\boldsymbol{\Lambda}\\
\end{aligned}
$$
将$\mathbf W$和$\boldsymbol{\Lambda}$展开可得
$$
\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda _i\boldsymbol w_i,\quad i=1,2,...,d^{\prime}
$$
显然,此式为矩阵特征值和特征向量的定义式,其中$\lambda_i,\boldsymbol w_i$分别表示矩阵$\mathbf X\mathbf X^{\mathrm{T}}$的特征值和单位特征向量。由于以上是仅考虑约束$\boldsymbol{w}_i^{\mathrm{T}}\boldsymbol{w}_i=1$所求得的结果,而$\boldsymbol{w}_i$还需满足约束$\boldsymbol{w}_{i}^{\mathrm{T}}\boldsymbol{w}_{j}=0(i\neq j)$。观察$\mathbf X\mathbf X^{\mathrm{T}}$的定义可知,$\mathbf X\mathbf X^{\mathrm{T}}$是一个实对称矩阵,实对称矩阵的不同特征值所对应的特征向量之间相互正交,同一特征值的不同特征向量可以通过施密特正交化使其变得正交,所以通过上式求得的$\boldsymbol w_i$可以同时满足约束$\boldsymbol{w}_i^{\mathrm{T}}\boldsymbol{w}_i=1,\boldsymbol{w}_{i}^{\mathrm{T}}\boldsymbol{w}_{j}=0(i\neq j)$。根据拉格朗日乘子法的原理可知,此时求得的结果仅是最优解的必要条件,而且$\mathbf X\mathbf X^{\mathrm{T}}$有$d$个相互正交的单位特征向量,所以还需要从这$d$个特征向量里找出$d^{\prime}$个能使得目标函数达到最优值的特征向量作为最优解。将$\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i=\lambda _i\boldsymbol w_i$代入目标函数可得
$$
\begin{aligned}
\min\limits_{\mathbf W}-\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W)&=\max\limits_{\mathbf W}\text { tr }(\mathbf W^{\mathrm{T}} \mathbf X\mathbf X^{\mathrm{T}} \mathbf W) \\
&=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\mathbf X\mathbf X^{\mathrm{T}} \boldsymbol w_i \\
&=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\boldsymbol w_i^{\mathrm{T}}\cdot\lambda _i\boldsymbol w_i \\
&=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda _i\boldsymbol w_i^{\mathrm{T}}\boldsymbol w_i \\
&=\max\limits_{\mathbf W}\sum_{i=1}^{d^{\prime}}\lambda _i \\
\end{aligned}
$$
显然,此时只需要令$\lambda_1,\lambda_2,...,\lambda_{d^{\prime}}$和$\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{d^{\prime}}$分别为矩阵$\mathbf X\mathbf X^{\mathrm{T}}$的前$d^{\prime}$个最大的特征值和单位特征向量就能使得目标函数达到最优值。
### 10.5.4 根据式(10.17)求解式(10.16)
注意式(10.16)中 $\mathbf{W} \in \mathbb{R}^{d \times d^{\prime}}$, 只有
$d^{\prime}$ 列, 而式(10.17)可以得到 $d$ 列, 如何根据式(10.17)
求解式(10.16)呢? 对
$\mathbf{X X}^{\top} \mathbf{W}=\mathbf{W} \boldsymbol{\Lambda}$
两边同乘 $\mathbf{W}^{\top}$, 得
$$
\mathbf{W}^{\top} \mathbf{X} \mathbf{X}^{\top} \mathbf{W}=\mathbf{W}^{\top} \mathbf{W} \boldsymbol{\Lambda} = \boldsymbol{\Lambda}
$$
注意使用了约束条件 $\mathbf{W}^{\top} \mathbf{W}=\mathbf{I}$;
上式左边与式(10.16)的优化目标对应矩阵相同, 而右边
$\Lambda \in \mathbb{R}^{d^{\prime} \times d^{\prime}}$ 是由
$\mathbf{X X} \mathbf{X}^{\top}$ 的 $d^{\prime}$ 个特征值组成的对角阵,
两边同时取矩阵的迹, 得
$$
\operatorname{tr}\left(\mathbf{W}^{\top} \mathbf{X} \mathbf{X}^{\top} \mathbf{W}\right)=\operatorname{tr}(\boldsymbol{\Lambda})=\sum_{i=1}^{d^{\prime}} \lambda_i
$$
$d$ 个特征值, 因此当然是取出最大的前 $d^{\prime}$ 个特征值, 而
$\mathbf{W}$ 即特征值对应的标准化特征向量组 成的矩阵。
特别注意, 图 $10.5$ 只是得到了投影矩阵 $\mathbf{W}$, 而降维后的样本为
$\mathbf{Z}=\mathbf{W}^{\top} \mathbf{X}$。
## 10.6 核化线性降维
注意, 本节符号在第14次印刷中进行了修订,
另外有一点需要注意的是,在上一节中用 $\boldsymbol{z}_i$ 表示
$\boldsymbol{x}_i$ 降维后的像, 而本节用 $\boldsymbol{z}_i$ 表示
$\boldsymbol{x}_i$ 在高 维特征空间中的像。
本节推导实际上有一个前提, 以式(10.19)为例(式(10.21)仅将
$\boldsymbol{z}_i$ 换为 $\phi\left(\boldsymbol{x}_i\right)$ 而已), 那就
是 $\boldsymbol{z}_i$ 已经中心化 (计算方差要用样本减去均值,
式(10.19)是均值为零时特殊形式, 详见式 (10.16)的解释), 但
$\boldsymbol{z}_i=\phi\left(\boldsymbol{x}_i\right)$ 是
$\boldsymbol{x}_i$ 高维特征空间中的像, 即使 $\boldsymbol{x}_i$
已进行中心化, 但 $\boldsymbol{z}_i$ 却不 一定是中心化的,
此时本节推导均不再成立。推广工作详见 KPCA[3]的附录
A。
### 10.6.1 式(10.19)的解释
首先, 类似于式(10.14)的推导后半部分内容可知
$\sum_{i=1}^m \boldsymbol{z}_i \boldsymbol{z}_i^{\top}=\mathbf{Z} \mathbf{Z}^{\top}$,
其中 $\mathbf{Z}$ 的每一列 为一个样本, 设高维空间的维度为 $h$, 则
$\mathbf{Z} \in \mathbb{R}^{h \times m}$, 其中 $m$ 为数据集样本数量。
其次, 式(10.19)中的 $\mathbf{W}$ 为从高维空间降至低维 (维度为 $d$ )
后的正交基, 在第 14 次印 刷中加入表述
$\mathbf{W}=\left(\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_d\right)$,
其中 $\mathbf{W} \in \mathbb{R}^{h \times d}$, 降维过程为
$\mathbf{X}=\mathbf{W}^{\top} \mathbf{Z}$ 。
最后, 式(10.19)类似于式 (10.17), 是为了求解降维投影矩阵
$\mathbf{W}=\left(\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_d\right)$
。 但问题在于 $\mathbf{Z Z}^{\top} \in \mathbb{R}^{h \times h}$, 当维度
$h$ 很大时 (注意本节为核化线性降维, 第六章核方法中高
斯核会把样本映射至无穷维), 此时根本无法求解 $\mathrm{Z}^{\top}$
的特征值和特征向量。因此才有了后 面的式(10.20)。
第 14 次印刷及之后印次, 式(10.19)为
$\left(\sum_{i=1}^m \boldsymbol{z}_i \boldsymbol{z}_i^{\top}\right) \boldsymbol{w}_j=\lambda_j \boldsymbol{w}_j$,
而在之前的印次中表 达有误, 实际应该为
$\left(\sum_{i=1}^m \boldsymbol{z}_i \boldsymbol{z}_i^{\top}\right) \mathbf{W}=\mathbf{W} \boldsymbol{\Lambda}$,
类似于式(10.17)。而这两种表达本质相同, $\lambda_j \boldsymbol{w}_j$ 为
$\mathbf{W} \Lambda$ 的第 $j$ 列, 仅此而已。
### 10.6.2 式(10.20)的解释
本节为核化线性降维, 而式(10.19)是在维度为 $h$ 的高维空间运算,
式(10.20)变形(咋一 看似乎有点无厘头)
的目的是为了避免直接在高维空间运算, 即想办法能够使用式(6.22)的核技巧,
也就是后面的式(10.24)。
第 14 次印刷及之后印次该式没问题, 之前的式(10.20)应该是:
$$
\begin{aligned}
\mathbf{W} & =\left(\sum_{i=1}^m \boldsymbol{z}_i \boldsymbol{z}_i^{\top}\right) \mathbf{W} \boldsymbol{\Lambda}^{-1}=\sum_{i=1}^m\left(\boldsymbol{z}_i\left(\boldsymbol{z}_i^{\top} \mathbf{W} \boldsymbol{\Lambda}^{-1}\right)\right) \\
& =\sum_{i=1}^m\left(\boldsymbol{z}_i \boldsymbol{\alpha}_i\right)
\end{aligned}
$$
其中
$\boldsymbol{\alpha}_i=\boldsymbol{z}_i^{\top} \mathbf{W} \boldsymbol{\Lambda}^{-1} \in \mathbb{R}^{1 \times d}, \boldsymbol{z}_i^{\top} \in \mathbb{R}^{1 \times h}, \mathbf{W} \in \mathbb{R}^{h \times d}, \boldsymbol{\Lambda} \in \mathbb{R}^{d \times d}$
为对角阵。这个结果 看似等号右侧也包含 $W$,
但将此式代入式(10.19)后经化简可避免在高维空间的运算, 而将
目标转化为求低维空间的
$\boldsymbol{\alpha}_i \in \mathbb{R}^{1 \times d}$,
详见式(10.24)的推导。
### 10.6.3 式(10.21)的解释
该式即为将式(10.19)中的 $\boldsymbol{z}_i$ 换为
$\phi\left(\boldsymbol{x}_i\right)$ 的结果。
### 10.6.4 式(10.22)的解释
该式即为将式(10.20)中的 $\boldsymbol{z}_i$ 换为
$\phi\left(\boldsymbol{x}_i\right)$ 的结果。
### 10.6.5 式(10.24)的推导
已知$\boldsymbol z_i=\phi(\boldsymbol x_i)$,类比$\mathbf{X}=\{\boldsymbol x_1,\boldsymbol x_2,...,\boldsymbol x_m\}$可以构造$\mathbf{Z}=\{\boldsymbol z_1,\boldsymbol z_2,...,\boldsymbol z_m\}$,所以公式(10.21)可变换为
$$
\left(\sum_{i=1}^{m} \phi(\boldsymbol{x}_{i}) \phi(\boldsymbol{x}_{i})^{\mathrm{T}}\right)\boldsymbol w_j=\left(\sum_{i=1}^{m} \boldsymbol z_i \boldsymbol z_i^{\mathrm{T}}\right)\boldsymbol w_j=\mathbf{Z}\mathbf{Z}^{\mathrm{T}}\boldsymbol w_j=\lambda_j\boldsymbol w_j
$$
又由公式(10.22)可知
$$
\boldsymbol w_j=\sum_{i=1}^{m} \phi\left(\boldsymbol{x}_{i}\right) \alpha_{i}^j=\sum_{i=1}^{m} \boldsymbol z_i \alpha_{i}^j=\mathbf{Z}\boldsymbol{\alpha}^j
$$
其中,$\boldsymbol{\alpha}^j=(\alpha_{1}^j;\alpha_{2}^j;...;\alpha_{m}^j)\in \mathbb{R}^{m \times 1}$。所以公式(10.21)可以进一步变换为
$$
\begin{aligned}
\mathbf{Z}\mathbf{Z}^{\mathrm{T}}\mathbf{Z}\boldsymbol{\alpha}^j&=\lambda_j\mathbf{Z}\boldsymbol{\alpha}^j \\
\mathbf{Z}\mathbf{Z}^{\mathrm{T}}\mathbf{Z}\boldsymbol{\alpha}^j&=\mathbf{Z}\lambda_j\boldsymbol{\alpha}^j
\end{aligned}
$$
由于此时的目标是要求出$\boldsymbol w_j$,也就等价于要求出满足上式的$\boldsymbol{\alpha}^j$,显然,此时满足$\mathbf{Z}^{\mathrm{T}}\mathbf{Z}\boldsymbol{\alpha}^j=\lambda_j\boldsymbol{\alpha}^j$的$\boldsymbol{\alpha}^j$一定满足上式,所以问题转化为了求解满足下式的$\boldsymbol{\alpha}^j$:
$$
\mathbf{Z}^{\mathrm{T}}\mathbf{Z}\boldsymbol{\alpha}^j=\lambda_j\boldsymbol{\alpha}^j
$$
令$\mathbf{Z}^{\mathrm{T}}\mathbf{Z}=\mathbf{K}$,那么上式可化为
$$
\mathbf{K}\boldsymbol{\alpha}^j=\lambda_j\boldsymbol{\alpha}^j
$$
此式即为公式(10.24),其中矩阵$\mathbf{K}$的第i行第j列的元素$(\mathbf{K})_{ij}=\boldsymbol z_i^{\mathrm{T}}\boldsymbol z_j=\phi(\boldsymbol x_i)^{\mathrm{T}}\phi(\boldsymbol x_j)=\kappa\left(\boldsymbol{x}_{i}, \boldsymbol{x}_{j}\right)$
### 10.6.6 式(10.25)的解释
式(10.25)仅需将第 14 次印刷中式(10.22)的 $\boldsymbol{w}_j$
表达式转置后代入即可。
该式的意义在于, 求解新样本 $\boldsymbol{x} \in \mathbb{R}^{d \times 1}$
映射至高维空间 $\phi(\boldsymbol{x}) \in \mathbb{R}^{h \times 1}$
后再降至低维空 高维空间 $\mathbb{R}^{h \times 1}$
的运算。但是由于此处没有类似第 6 章支持向量的概念, 可以发现式(10.25)
计算时需要对所有样本求和, 因此它的计算开销比较大。
注意, 此处书中符号使用略有混乱, 因为在式(10.19)中 $\boldsymbol{z}_i$
表示 $\boldsymbol{x}_i$ 在高维特征空间中的像, 而此处又用 $z_j$
表示新样本 $\boldsymbol{x}$ 映射为 $\phi(\boldsymbol{x})$ 后再降维至
$\mathbb{R}^{d^{\prime} \times 1}$ 空间时的第 $j$ 维坐标。
## 10.7 流形学习
不要被 "流形学习" 的名字所欺骗, 本节开篇就明确说了,
它是一类借鉴了拓扑流形概 念的降维方法而已, 因此称为 "流形学习"。 $10.2$
节 MDS 算法的降维准则是要求原始空间
中样本之间的距离在低维空间中得以保持, $10.3$ 节 PCA
算法的降维准则是要求低维子空间 对样本具有最大可分性,
因为它们都是基于线性变换来进行降维的方法(参见式(10.13),
故称为线性降维方法。
### 10.7.1 等度量映射(Isomap)的解释
如图"西瓜书"10.8所示, Isomap 算法与MDS 算法的区别仅在于距离矩阵
$\mathbf{D} \in \mathbb{R}^{m \times m}$ 的计算方法不同。在 MDS 算法中,
距离矩阵 $\mathbf{D} \in \mathbb{R}^{m \times m}$
即为普通的样本之间欧氏距离; 而本节的 Isomap 算法中, 距离矩阵
$\mathbf{D} \in \mathbb{R}^{m \times m}$ 由"西瓜书"图10.8的 Step1
\~Step5 生成, 即 遵循流形假设。当然, 对新样本降维时也有不同,
这在"西瓜书"图 10.8下的一段话中已阐明。
另外解释一下测地线距离, 欧氏距离即两点之间的直线距离,
而测地线距离是实际中可 以到达的路径, 如"西瓜书"图 10.7(a)中黑线
(欧氏距离) 和红线 (测地线距离)。
### 10.7.2 式(10.28)的推导
$$
w_{i j}=\frac{\sum\limits_{k \in Q_{i}} C_{j k}^{-1}}{\sum\limits_{l, s \in Q_{i}} C_{l s}^{-1}}
$$
由书中上下文可知,式(10.28)是如下优化问题的解。
$$
\begin{aligned}
\min _{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{m}} & \sum_{i=1}^{m}\left\|\boldsymbol{x}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{x}_{j}\right\|_{2}^{2} \\
\text { s.t. } & \sum_{j \in Q_{i}} w_{i j}=1
\end{aligned}
$$
若令$\boldsymbol{x}_{i}\in \mathbb{R}^{d\times 1},Q_i=\{q_i^1,q_i^2,...,q_i^n\}$,则上述优化问题的目标函数可以进行如下恒等变形
$$
\begin{aligned}
\sum_{i=1}^{m}\left\|\boldsymbol{x}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{x}_{j}\right\|_{2}^{2}&=\sum_{i=1}^{m}\left\|\sum_{j \in Q_{i}} w_{i j} \boldsymbol{x}_{i}-\sum_{j \in Q_{i}} w_{i j} \boldsymbol{x}_{j}\right\|_{2}^{2} \\
&=\sum_{i=1}^{m}\left\|\sum_{j \in Q_{i}} w_{i j}(\boldsymbol{x}_{i}-\boldsymbol{x}_{j}) \right\|_{2}^{2} \\
&=\sum_{i=1}^{m}\left\|\mathbf{X}_i\boldsymbol{w_i} \right\|_{2}^{2} \\
&=\sum_{i=1}^{m}\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i} \\
\end{aligned}
$$
其中$\boldsymbol{w_i}=(w_{iq_i^1},w_{iq_i^2},...,w_{iq_i^n})\in \mathbb{R}^{n\times 1}$,$\mathbf{X}_i=\left( \boldsymbol{x}_{i}-\boldsymbol{x}_{q_i^1}, \boldsymbol{x}_{i}-\boldsymbol{x}_{q_i^2},...,\boldsymbol{x}_{i}-\boldsymbol{x}_{q_i^n}\right)\in \mathbb{R}^{d\times n}$。同理,约束条件也可以进行如下恒等变形
$$
\sum_{j \in Q_{i}} w_{i j}=\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}=1
$$
其中$\boldsymbol{I}=(1,1,...,1)\in \mathbb{R}^{n\times 1}$为$n$行1列的元素值全为1的向量。因此,上述优化问题可以重写为
$$
\begin{aligned}
\min _{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{m}} & \sum_{i=1}^{m}\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i} \\
\text { s.t. } & \boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}=1
\end{aligned}
$$
显然,此问题为带约束的优化问题,因此可以考虑使用拉格朗日乘子法来进行求解。由拉格朗日乘子法可得此优化问题的拉格朗日函数为
$$
L(\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{m},\lambda)=\sum_{i=1}^{m}\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}+\lambda\left(\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}-1\right)
$$
对拉格朗日函数关于$\boldsymbol{w_i}$求偏导并令其等于0可得
$$
\begin{aligned}
\cfrac{\partial L(\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{m},\lambda)}{\partial \boldsymbol{w_i}}&=\cfrac{\partial \left[\sum_{i=1}^{m}\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}+\lambda\left(\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}-1\right)\right]}{\partial \boldsymbol{w_i}}=0\\
&=\cfrac{\partial \left[\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}+\lambda\left(\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}-1\right)\right]}{\partial \boldsymbol{w_i}}=0\\
\end{aligned}
$$
又由矩阵微分公式$\cfrac{\partial \boldsymbol{x}^{T} \mathbf{B} \boldsymbol{x}}{\partial \boldsymbol{x}}=\left(\mathbf{B}+\mathbf{B}^{\mathrm{T}}\right) \boldsymbol{x},\cfrac{\partial \boldsymbol{x}^{T} \boldsymbol{a}}{\partial \boldsymbol{x}}=\boldsymbol{a}$可得
$$
\begin{aligned}
\cfrac{\partial \left[\boldsymbol{w_i}^{\mathrm{T}}\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}+\lambda\left(\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}-1\right)\right]}{\partial \boldsymbol{w_i}}&=2\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}+\lambda \boldsymbol{I}=0\\
\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i\boldsymbol{w_i}&=-\frac{1}{2}\lambda \boldsymbol{I}
\end{aligned}
$$
若$\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i$可逆,则
$$
\boldsymbol{w_i}=-\frac{1}{2}\lambda(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}
$$
又因为$\boldsymbol{w_i}^{\mathrm{T}}\boldsymbol{I}=\boldsymbol{I}^{\mathrm{T}}\boldsymbol{w_i}=1$,则上式两边同时左乘$\boldsymbol{I}^{\mathrm{T}}$可得
$$
\begin{aligned}
\boldsymbol{I}^{\mathrm{T}}\boldsymbol{w_i}&=-\frac{1}{2}\lambda\boldsymbol{I}^{\mathrm{T}}(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}=1\\
-\frac{1}{2}\lambda&=\cfrac{1}{\boldsymbol{I}^{\mathrm{T}}(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}}
\end{aligned}
$$
将其代回$\boldsymbol{w_i}=-\frac{1}{2}\lambda(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}$即可解得
$$
\boldsymbol{w_i}=\cfrac{(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}}{\boldsymbol{I}^{\mathrm{T}}(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}\boldsymbol{I}}
$$
若令矩阵$(\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i)^{-1}$第$j$行第$k$列的元素为$C_{jk}^{-1}$,则
$$
w_{ij}=w_{i q_i^j}=\frac{\sum\limits_{k \in Q_{i}} C_{j k}^{-1}}{\sum\limits_{l, s \in Q_{i}} C_{l s}^{-1}}
$$
此即为公式(10.28)。显然,若$\mathbf{X}_i^{\mathrm{T}}\mathbf{X}_i$可逆,此优化问题即为凸优化问题,且此时用拉格朗日乘子法求得的$\boldsymbol{w_i}$为全局最优解。
### 10.7.3 式(10.31)的推导
以下推导需要使用预备知识中的10.2节:矩阵的 $\mathrm{F}$ 范数与迹。
观察式(10.29), 求和号内实际是一个列向量的 2 范数平方, 令
$\boldsymbol{v}_i=\boldsymbol{z}_i-\sum_{j \in Q_i} w_{i j} \boldsymbol{z}_j$,
$\boldsymbol{v}_i$ 的维度与 $\boldsymbol{z}_i$ 相同,
$\boldsymbol{v}_i \in \mathbb{R}^{d^{\prime} \times 1}$,
则式(10.29)可重写为
$$
\begin{aligned}
\min _{\boldsymbol{z}_1, \boldsymbol{z}_2, \ldots, \boldsymbol{z}_m} & \sum_{i=1}^m\left\|\boldsymbol{v}_i\right\|_2^2 \\
\text { s.t. } & \boldsymbol{v}_i=\boldsymbol{z}_i-\sum_{j \in Q_i} w_{i j} \boldsymbol{z}_j, i=1,2, \ldots, m
\end{aligned}
$$
令
$\mathbf{Z}=\left(\boldsymbol{z}_1, \boldsymbol{z}_2, \ldots, \boldsymbol{z}_i, \ldots, \boldsymbol{z}_m\right) \in \mathbb{R}^{d^{\prime} \times m}, \mathbf{I}_i=(0 ; 0 ; \ldots ; 1 ; \ldots ; 0) \in \mathbb{R}^{m \times 1}$,
即 $\mathbf{I}_i$ 为$m \times 1$ 的列向量, 除第 $i$ 个元素等于 1
之外其余元素均为零, 则
$$
\boldsymbol{z}_i=\mathbf{Z I}_i
$$
令
$(\mathbf{W})_{i j}=w_{i j}$ (P237 页第 1 行 ), 即
$\mathbf{W}=\left(\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_i, \ldots, \boldsymbol{w}_m\right)^{\top} \in \mathbb{R}^{m \times m}$,
也就是说 $\mathbf{W}$ 的第 $i$ 行的转置(没错, 就是第 $i$ 行) 对应第 $i$
个样 数 $\boldsymbol{w}_i$ (这里符号之所以别扭是因为 $w_{i j}$
已用来表示列向量 $\boldsymbol{w}_i$ 的第 $j$ 个元素, 但为了与习惯保
持一致即 $w_{i j}$ 表示 $\mathbf{W}$ 的第 $i$ 行第 $j$ 列元素, 只能忍忍,
此处暂时别扭着), 即
$$
\mathbf{W}=\left(\boldsymbol{w}_1, \boldsymbol{w}_2, \ldots, \boldsymbol{w}_i, \ldots, \boldsymbol{w}_m\right)^{\top}=\left[\begin{array}{cccccc}
w_{11} & w_{21} & \cdots & w_{i 1} & \cdots & w_{m 1} \\
w_{12} & w_{22} & \cdots & w_{i 2} & \cdots & w_{m 2} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
w_{1 j} & w_{2 j} & \cdots & w_{i j} & \cdots & w_{m j} \\
\vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\
w_{1 m} & w_{2 m} & \cdots & w_{i m} & \cdots & w_{m m}
\end{array}\right]^{\top}
$$
对于 $\boldsymbol{w}_i \in \mathbb{R}^{m \times 1}$ 来说, 只有
$\boldsymbol{x}_i$ 的 $K$ 个近邻样本对应的下标对应的
$w_{i j} \neq 0, j \in Q_i$, 且它们 的和等于 1 , 则
$$
\sum_{j \in Q_i} w_{i j} \boldsymbol{z}_j=\mathbf{Z} \boldsymbol{w}_i
$$
因此
$$
\boldsymbol{v}_i=\boldsymbol{z}_i-\sum_{j \in Q_i} w_{i j} \boldsymbol{z}_j=\mathbf{Z I}_i-\mathbf{Z} \boldsymbol{w}_i=\mathbf{Z}\left(\mathbf{I}_i-\boldsymbol{w}_i\right)
$$
令
$\mathbf{V}=\left(\boldsymbol{v}_1, \boldsymbol{v}_2, \ldots, \boldsymbol{v}_i, \ldots, \boldsymbol{v}_m\right) \in \mathbb{R}^{d^{\prime} \times m}, \mathbf{I}=\left(\mathbf{I}_1, \mathbf{I}_2, \ldots, \mathbf{I}_i, \ldots, \mathbf{I}_m\right) \in \mathbb{R}^{m \times m}$,
则
$$
\mathbf{V}=\mathbf{Z}\left(\mathbf{I}-\mathbf{W}^{\top}\right)=\mathbf{Z}\left(\mathbf{I}^{\top}-\mathbf{W}^{\top}\right)=\mathbf{Z}(\mathbf{I}-\mathbf{W})^{\top}
$$
根据前面的预备知识, 并将上式 $V$ 和式(10.30)代入, 得式(10.31)目标函数:
$$
\begin{aligned}
\sum_{i=1}^m\left\|\boldsymbol{v}_i\right\|_2^2 & =\|\mathbf{V}\|_F^2 \\
& =\operatorname{tr}\left(\mathbf{V} \mathbf{V}^{\top}\right) \\
& =\operatorname{tr}\left(\left(\mathbf{Z}(\mathbf{I}-\mathbf{W})^{\top}\right)\left(\mathbf{Z}(\mathbf{I}-\mathbf{W})^{\top}\right)^{\top}\right) \\
& =\operatorname{tr}\left(\mathbf{Z}(\mathbf{I}-\mathbf{W})^{\top}(\mathbf{I}-\mathbf{W}) \mathbf{Z}^{\top}\right) \\
& =\operatorname{tr}\left(\mathbf{Z}\mathbf{M}\mathbf{Z}^{\top}\right)
\end{aligned}
$$
接下来求解式(10.31)。
参考式(10.17)的推导, 应用拉格朗日乘子法, 先写出拉格朗日函数
$$
L(\mathbf{Z}, \boldsymbol{\Lambda})=\operatorname{tr}\left(\mathbf{Z M Z}^{\top}\right)+\left(\mathbf{Z Z}^{\top}-\mathbf{I}\right) \boldsymbol{\Lambda}
$$
令 $\mathbf{P}=\mathbf{Z}^{\top}$ (否则有点别扭), 则拉格朗日函数变为
$$
L(\mathbf{P}, \boldsymbol{\Lambda})=\operatorname{tr}\left(\mathbf{P}^{\top} \mathbf{M} \mathbf{P}\right)+\left(\mathbf{P}^{\top} \mathbf{P}-\mathbf{I}\right) \mathbf{\Lambda}
$$
求导并令导数等于 0 :
$$
\begin{aligned}
\frac{\partial L(\mathbf{P}, \boldsymbol{\Lambda})}{\partial \mathbf{P}} & =\frac{\partial \operatorname{tr}\left(\mathbf{P}^{\top} \mathbf{M} \mathbf{P}\right)}{\partial \mathbf{P}}+\frac{\partial\left(\mathbf{P}^{\top} \mathbf{P}-\mathbf{I}\right)}{\partial \mathbf{P}} \boldsymbol{\Lambda} \\
& =2 \mathbf{M} \mathbf{P}-2 \mathbf{P} \boldsymbol{\Lambda}=\mathbf{0}
\end{aligned}
$$
特征值对角阵; 然后两边再同时左乘 $\mathbf{P}^{\top}$ 并取矩阵的迹, 注意
$\mathbf{P}^{\top} \mathbf{P}=\mathbf{I} \in \mathbb{R}^{d^{\prime} \times d^{\prime}}$,
得
$\operatorname{tr}\left(\mathbf{P}^{\top} \mathbf{M} \mathbf{P}\right)=\operatorname{tr}\left(\mathbf{P}^{\top} \mathbf{P} \boldsymbol{\Lambda}\right)=\operatorname{tr}(\boldsymbol{\Lambda})$
因此, $\mathbf{P}=\mathbf{Z}^{\top}$ 是由
$\mathrm{M} \in \mathbb{R}^{m \times m}$ 最小的 $d^{\prime}$
个特征值对应的特征向量组成的矩阵。
## 10.8 度量学习
回忆10.5.1节的Isomap算法相比与10.2节的MDS算法的区别在于距离矩阵的计算方法不同,Isomap算法在计算样本间距离时使用的(近似)测地线距离,而MDS算法使用的是欧氏距离,也就是说二者的距离度量不同。
### 10.8.1 式(10.34)的解释
为了推导方便, 令
$\boldsymbol{u}=\left(u_1 ; u_2 ; \ldots ; u_d\right)=\boldsymbol{x}_i-\boldsymbol{x}_j \in \mathbb{R}^{d \times 1}$,
其中 $u_k=x_{i k}-x_{j k}$, 则式(10.34)重写为
$\boldsymbol{u}^{\top} \mathbf{M} \boldsymbol{u}=\|\boldsymbol{u}\|_{\mathbf{M}}^2$,
其中 $\mathbf{M} \in \mathbb{R}^{d \times d}$, 具体到元素级别的表达:
$$
\begin{aligned}
\boldsymbol{u}^{\top} \mathbf{M} \boldsymbol{u} & =\left[\begin{array}{llll}
u_1 & u_2 & \ldots & u_d
\end{array}\right]\left[\begin{array}{cccc}
m_{11} & m_{12} & \ldots & m_{1 d} \\
m_{21} & m_{22} & \ldots & m_{2 d} \\
\vdots & \vdots & \ddots & \vdots \\
m_{d 1} & m_{d 2} & \ldots & m_{d d}
\end{array}\right]\left[\begin{array}{c}
u_1 \\
u_2 \\
\vdots \\
u_d
\end{array}\right] \\
& =\left[\begin{array}{llll}
u_1 & u_2 & \ldots & u_d
\end{array}\right]\left[\begin{array}{c}
u_1 m_{11}+u_2 m_{12}+\ldots+u_d m_{1 d} \\
u_1 m_{21}+u_2 m_{22}+\ldots+u_d m_{2 d} \\
\vdots \\
u_1 m_{d 1}+u_2 m_{d 2}+\ldots+u_d m_{d d}
\end{array}\right] \\
& =u_1 u_1 m_{11}+u_1 u_2 m_{12}+\ldots+u_1 u_d m_{1 d} \\
& +u_2 u_1 m_{21}+u_2 u_2 m_{22}+\ldots+u_2 u_d m_{2 d} \\
& \ldots \\
& +u_d u_1 m_{d 1}+u_d u_2 m_{d 2}+\ldots+u_d u_d m_{d d}
\end{aligned}
$$
注意, 对应到本式符号,
式(10.33)的结果即为上面最后一个等式的对角线部分, 即
$$
u_1 u_1 m_{11}+u_2 u_2 m_{22}+\ldots+u_d u_d m_{d d}
$$
而式(10.32)的结果则要更进一步, 去除对角线部分中的权重
$m_{i i}(1 \leqslant i \leqslant d)$ 部分, 即
$$
u_1 u_1+u_2 u_2+\ldots+u_d u_d
$$
对比以上三个结果,
即式(10.32)的平方欧氏距离, 式(10.33)的加权平方欧氏距离, 式(10.34)
的马氏距离, 可以细细体会度量矩阵究竟带来了什么。
因此, 所谓 "度量学习", 即将系统中的平方欧氏距离换为式(10.34)的马氏距离,
通过 优化某个目标函数, 得到最恰当的度量矩阵 $\mathbf{M}$
(新的距离度量计算方法)的过程。书中在 式(10.34) (10.38)介绍的 NCA
即为一个具体的例子, 可以从中品味 "度量学习"的本质。
对于度量矩阵 $\mathbf{M}$ 要求半正定, 文中提到必有正交基 $\mathbf{P}$
使得 $\mathbf{M}$ 能写为 $\mathbf{M}=\mathbf{P P}^{\top}$, 此时 马氏距离
$\boldsymbol{u}^{\top} \mathbf{M} \boldsymbol{u}=\boldsymbol{u}^{\top} \mathbf{P} \mathbf{P}^{\top} \boldsymbol{u}=\left\|\mathbf{P}^{\top} \boldsymbol{u}\right\|_2^2$
。
### 10.8.2 式(10.35)的解释
这就是一种定义而已,没什么别的意思。传统近邻分类器使用多数投票法,有投票权的样本为
$\boldsymbol{x}_i$ 最近的 $\mathrm{K}$ 个近邻, 即 $\mathrm{KNN}$;
但也可以将投票范围扩大到整个样本集, 但每个样本 的投票权重不一样,距离
$\boldsymbol{x}_i$ 越近的样本投票权重越大,例如可取为第 5 章式(5.19)当
$\beta_i=1$ 时的高斯径向基函数
$\exp \left(-\left\|\boldsymbol{x}_i-\boldsymbol{x}_j\right\|^2\right)$
。从式中可以看出, 若 $\boldsymbol{x}_j$ 与 $\boldsymbol{x}_i$ 重合,
则投票权重 为 1 ,
距离越大该值越小。式(10.35)的分母是对所有投票值规一化至 $[0,1]$ 范围,
使之为概率。
可能会有疑问: 式(10.35)分母求和变量 $l$ 是否应该包含 $\boldsymbol{x}_i$
的下标即 $l=i$ ? 其实无所谓, 进一步说其实是否进行规一化也无所谓, 熟悉
$\mathrm{KNN}$ 的话就知道, 在预测时是比较各类投票 数的相对大小,
各类样本对 $\boldsymbol{x}_i$ 的投票权重的分母在式(10.35)中相同,
因此不影响相对大小。
注意啊, 这里有计算投票权重时用到了距离度量,
所以可以进一步将其换为马氏距离, 通过优化某个目标
(如式(10.38))得到最优的度量矩阵 $\mathbf{M}$。
### 10.8.3 式(10.36)的解释
先简单解释留一法(LOO), $\mathrm{KNN}$ 是选出样本 $\boldsymbol{x}_i$
的在样本集中最近的 $\mathrm{K}$ 个近邻, 而现在 将范围扩大,
使用样本集中的所有样本进行投票, 每个样本的投票权重为式(10.35), 将各类
样本的投票权重分别求和, 注意 $\boldsymbol{x}_i$
自己的类别肯定与自己相同(现在是训练阶段, 还没到 对末见样本的预测阶段,
训练集样本的类别信息均已知), 但自己不能为自己投票吧, 所以 要将自己除外,
即留一法。
假设训练集共有 $N$ 个类别, $\Omega_n$ 表示第 $n$ 类样本的下标集合
$(1 \leqslant n \leqslant N)$, 对于样本 $\boldsymbol{x}_i$ 来说,
可以分别计算 $N$ 个概率:
$$
p_n^{\boldsymbol{x}_i}=\sum_{j \in \Omega_n} p_{i j}, 1 \leqslant n \leqslant N
$$
注意, 若样本 $\boldsymbol{x}_i$ 的类别为 $n_*$, 则在根据上式计算
$p_{n_*}^{\boldsymbol{x}_i}$ 时要将 $\boldsymbol{x}_i$ 的下标去除,
即刚刚解释的留 一法 (自己不能为自己投票)。 $p_{n_*}^{\boldsymbol{x}_i}$
即为训练集将样本 $\boldsymbol{x}_i$ 预测为第 $n_*$ 类的概率, 若
$p_{n_*}^{\boldsymbol{x}_i}$ 在所有的
$p_n^{\boldsymbol{x}_i}(1 \leqslant n \leqslant N)$ 中最大, 则预测正确,
反之预测错误。
其中$p_{n_*}^{\boldsymbol{x}_i}$即为式(10.36)。
### 10.8.4 式(10.37)的解释
换为刚才式(10.36)的符号, 式(10.37)即为 $\sum_{i=1}^m p_{n_*}^{x_i}$,
也就是所有训练样本被训练集预测
正确的概率之和。我们当然希望这个概率和最大, 但若采用平方欧氏距离时,
对于某个训练 集来说这个概率和是固定的; 但若采用了马氏距离,
这个概率和与度量矩阵 $M$ 有关。
### 10.8.5 式(10.38)的解释
刚才式(10.37)中提到希望寻找一个度量矩阵 $\mathrm{M}$
使训练样本被训练集预测正确的概率之 和最大, 即
$\max _{\mathrm{M}} \sum_{i=1}^m p_{n_*}^{\boldsymbol{x}_i}$,
但优化问题习惯是最小化, 所以改为
$\min _{\mathrm{M}}-\sum_{i=1}^m p_{n_*}^{\boldsymbol{x}_i}$ 即可,
而式(10.38)目标函数中的常数 1 并不影响优化结果, 有没有无所谓的。
式(10.38)中有关将 $\mathbf{M}=\mathbf{P} \mathbf{P}^{\top}$
代入的形式参见前面式(10.34)的解释最后一段。
### 10.8.6 式(10.39)的解释
式(10.39)是本节第二个 "度量学习"
的具体例子。优化目标函数是要求必连约束集合 $\mathcal{M}$
中的样本对之间的距离之和尽可能的小,而约束条件则是要求勿连约束集合
$\mathcal{C}$ 中的样本对之 间的距离之和大于 1 。
这里的 "1"应该类似于第 6 章 SVM 中间隔大于 "1", 纯属约定, 没有推导。
# 参考文献
[1] Michael Grant. Lagrangian optimization with matrix constrains, 2015.
[2] Wikipedia contributors. Frobenius inner product, 2020.
[3] Bernhard Schölkopf, Alexander Smola, and Klaus-Robert Müller. Kernel principal component analy-
sis. In Artificial Neural Networks—ICANN’97: 7th International Conference Lausanne, Switzerland,
October 8–10, 1997 Proceeedings, pages 583–588. Springer, 2005.
================================================
FILE: docs/chapter11/chapter11.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=17
# 第11章 特征选择与稀疏学习
## 11.1 子集搜索与评价
开篇给出了 "特征选择" 的概念, 并谈到特征选择与第 10
章的降维有相似的动机。特征选择与降维的区别在于特征选择是从所有特征中简单地选出相关特征,
选择出来的特征就 是原来的特征; 降维则对原来的特征进行了映射变换,
降维后的特征均不再是原来的特征。
本节涉及 "子集评价" 的式(14.1)和式(14.2)与第 4 章的式(4.2)和式(4.1)相同,
这是因为 "决策树算法在构建树的同时也可看作进行了特征选择" (参见 "11.7
阅读材料")。 接下来在 11.2节、11.3 节、11.4
节分别介绍的三类特征选择方法: 过滤式(filter)、包裹
式(wrapper)和嵌入式(embedding)。
### 11.1.1 式(11.1)的解释
此为信息增益的定义式,对数据集 $D$ 和属性子集 $A$, 假设根据 $A$ 的取值将
$D$ 分为了 $V$ 个子集 $\left\{D^1, D^2, \ldots, D^V\right\}$,
那么信息增益的定义为划分之前数据集 $D$ 的信息樀和划分之后每个子数据集
$D^v$ 的信息樀的差。樀用来衡量一个系统的混舌程度,
因此划分前和划分后樀的差越大, 表示划分越有效, 划分带来的"信息增
益"越大。
### 11.1.2 式(11.2)的解释
$$
\operatorname{Ent}(D)=-\sum_{i=1}^{| \mathcal{Y |}} p_{k} \log _{2} p_{k}
$$
此为信息熵的定义式,其中$p_k, k=1, 2, \dots \vert\mathcal{Y}\vert$表示$D$中第$i$类样本所占的比例。可以看出,样本越纯,即$p_k\rightarrow 0$或$p_k\rightarrow 1$时,$\mathrm{Ent}(D)$越小,其最小值为0。此时必有$p_i=1, p_{\backslash i}=0, i=1, 2, \dots, \vert\mathcal{Y}\vert$。
## 11.2 过滤式选择
"过滤式方法先对数据集进行特征选择, 然后再训练学习器,
特征选择过程与后续学习 器无关。这相当于先用特征选择过程对初始特征进行
'过滤', 再用过滤后的特征来训练模 型。", 这是本节开篇第一段原话,
之所以重写于此, 是因为这段话里包含了 "过滤"的概念,
该概念并非仅针对特征选择, 那些所有先对数据集进行某些预处理,
然后基于预处理结果再 训练学习器的方法 (预处理过程独立于训练学习器过程)
均可以称之为 "过滤式算法"。特 别地, 本节介绍的 Relief
方法只是过滤式特征选择方法的其中一种而已。
从式(11.3)可以看出, Relief 方法本质上基于
"空间上相近的样本具有相近的类别标记" 假设。Relief
基于样本与同类和异类的最近邻之间的距离来计算相关统计量 $\delta^j$,
越是满足前 提假设, 原则上样本与同类最近邻之间的距离
$\operatorname{diff}\left(x_i^j, x_{i, \mathrm{nh}}^j\right)^2$ 会越小,
样本与异类最近邻之 间的距离
$\operatorname{diff}\left(x_i^j, x_{i, \mathrm{~nm}}^j\right)^2$
会越大,因此相关统计量 $\delta^j$ 越大,对应属性的分类能力就越强。
对于能处理多分类问题的扩展变量 Relief-F, 由于有多个异类,
因此对所有异类最近邻 进行加权平均,
各异类的权重为其在数据集中所占的比例。
### 11.2.1 包裹式选择
"与过滤式特征选择不考虑后续学习器不同,
包裹式特征选择直接把最终将要使用的学
习器的性能作为特征子集的评价准则。换言之,
包裹式特征选择的目的就是为给定学习器选 择最有利于其性能、"量身定做'
的特征子集。", 这是本节开篇第一段原话, 之所以重写于 此,
是因为这段话里包含了 "包裹" 的概念, 该概念并非仅针对特征选择,
那些所有基于学 习器的性能作为评价准则对数据集进行预处理的方法
(预处理过程依赖训练所得学习器的 测试性能)均可以称之为
"包裹式算法"。特别地, 本节介绍的 LVW 方法只是包裹式特征
选择方法的其中一种而已。
图 $11.1$ 中, 第 1 行 $E=\infty$ 表示初始化学习器误差为无穷大, 以至于第
1 轮迭代第 9 行 的条件就一定为真; 第 2 行 $d=|A|$ 中的 $|A|$ 表示特征集
$A$ 的包含的特征个数; 第 9 行 $E^{\prime}<E$ 表示学习器 $\mathfrak{L}$
在特征子集 $A^{\prime}$ 上的误差比当前特征子集 $A$ 上的误差更小,
$\left(E^{\prime}=E\right) \vee\left(d^{\prime}<d\right)$ 表示学习器
$\mathfrak{L}$ 在特征子集 $A^{\prime}$ 上的误差与当前特征子集 $A$
上的误差相当 但 $A^{\prime}$ 中包含的特征数更小; 表示 "逻辑与", $V$
表示 "逻辑或"。注意到, 第 5 行至第 17 行的while循环中 $t$ 并非一直增加,
当第 9 行条件满足时 $t$ 会被清零。
最后, 本节 LVW 算法基于拉斯维加斯方法框架,
可以仔细琢磨体会拉斯维加斯方法和
蒙特卡罗方法的区别。一个通俗的解释如下:
蒙特卡罗算法------采样越多, 越近似最优解;
拉斯维加斯算法------采样越多, 越有机会找到最优解。
举个例子, 假如筐里有 100 个苹果, 让我每次闭眼拿 1 个,
挑出最大的。于是我随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个\...\...我每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,
挑出的苹果就越大, 但我除非拿 100 次, 否则无法肯定挑出
了最大的。这个挑苹果的算法, 就属于蒙特卡罗算法一一尽量找好的,
但不保证是最好的。 而拉斯维加斯算法, 则是另一种情况。假如有一把锁, 给我
100 把钥匙, 只有 1 把是对 的。于是我每次随机拿 1 把钥匙去试,
打不开就再换 1 把。我试的次数越多, 打开 (最优解) 的机会就越大,
但在打开之前, 那些错的钥匙都是没有用的。这个试钥匙的算法,
就是拉斯维加斯的一一尽量找最好的, 但不保证能找到。
## 11.3 嵌入式选择与L1正则化
"嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。",具体可以对比本节式(11.7)的例子与前两节方法的本质区别,细细体会本节第一段的这句有关"嵌入式"的概念描述。
### 11.3.1 式(11.5)的解释
该式为线性回归的优化目标式,$y_i$表示样本$i$的真实值,而$w^\top x_i$表示其预测值,这里使用预测值和真实值差的平方衡量预测值偏离真实值的大小。
### 11.3.2 式(11.6)的解释
该式为加入了$\mathrm{L}_2$正规化项的优化目标,也叫"岭回归",$\lambda$用来调节误差项和正规化项的相对重要性,引入正规化项的目的是为了防止$w$的分量过大而导致过拟合的风险。
### 11.3.3 式(11.7)的解释
该式将11.6中的$\mathrm{L}_2$正规化项替换成了$\mathrm{L}_1$正规化项,也叫LASSO回归。关于$\mathrm{L}_2$和$\mathrm{L}_1$两个正规化项的区别,"西瓜书"图11.2给出了很形象的解释。具体来说,结合$\mathrm{L}_1$范数优化的模型参数分量取值尽量稀疏,即非零分量个数尽量小,因此更容易取得稀疏解。
### 11.3.4 式(11.8)的解释
从本式开始至本节结束, 都在介绍近端梯度下降求解 $L_1$
正则化问题。若将本式对应到 式(11.7), 则本式中
$f(\boldsymbol{w})=\sum_{i=1}^m\left(y^i-\boldsymbol{w}^{\top} \boldsymbol{x}_i\right)^2$,
注意变量为 $\boldsymbol{w}$ (若感觉不习惯就将其用 $\boldsymbol{x}$
替换好了)。最终推导结果仅含 $f(\boldsymbol{w})$ 的一阶导数
$\nabla f(\boldsymbol{w})=-\sum_{i=1}^m 2\left(y^i-\boldsymbol{w}^{\top} \boldsymbol{x}_i\right) \boldsymbol{x}_i$
。
### 11.3.5 式(11.9)的解释
该式即为 $L$-Lipschitz(利普希茨)条件的定义。简单来说,
该条件约束函数的变化不能太快。将式(11.9)变形则更为直观 (注: 式中应该是 2
范数, 而非 2 范数平方):
$$
\frac{\left\|\nabla f\left(\boldsymbol{x}^{\prime}\right)-\nabla f(\boldsymbol{x})\right\|_2}{\left\|\boldsymbol{x}^{\prime}-\boldsymbol{x}\right\|_2} \leqslant L, \quad\left(\forall \boldsymbol{x}, \boldsymbol{x}^{\prime}\right)
$$
进一步地, 若 $\boldsymbol{x}^{\prime} \rightarrow \boldsymbol{x}$, 即
$$
\lim _{\boldsymbol{x}^{\prime} \rightarrow \boldsymbol{x}} \frac{\left\|\nabla f\left(\boldsymbol{x}^{\prime}\right)-\nabla f(\boldsymbol{x})\right\|_2}{\left\|\boldsymbol{x}^{\prime}-\boldsymbol{x}\right\|_2}
$$
这明显是在求解函数 $\nabla f(\boldsymbol{x})$ 的导数绝对值(模值。 因此,
式(11.9)即要求 $f(\boldsymbol{x})$ 的二阶导数不大于 $L$, 其中 $L$
称为Lipschitz常数。
"Lipschitz连续" 可以形象得理解为: 以陆地为例,
Lipschitz连续就是说这块地上没有特别陡的坡; 其中最陡的地方有多陡呢?
这就是所谓的Lipschitz常数。
### 11.3.6 式(11.10)的推导
首先注意优化目标式和11.7
LASSO回归的联系和区别,该式中的$x$对应到式11.7的$w$,即我们优化的目标。再解释下什么是$L\mathrm{-Lipschitz}$条件,根据维基百科的定义:它是一个比通常连续更强的光滑性条件。直觉上,利普希茨连续函数限制了函数改变的速度,符合利普希茨条件的函数的斜率,必小于一个称为利普希茨常数的实数(该常数依函数而定)。
注意这里存在一个笔误,在wiki百科的定义中,式11.9应该写成
$$
\left\vert\nabla f\left(\boldsymbol{x}^{\prime}\right)-\nabla f(\boldsymbol{x})\right\vert \leqslant L\left\vert\boldsymbol{x}^{\prime}-\boldsymbol{x}\right\vert \quad\left(\forall \boldsymbol{x}, \boldsymbol{x}^{\prime}\right)
$$
移项得
$$
\frac{\left|\nabla f\left(\boldsymbol{x}^{\prime}\right)-\nabla f(\boldsymbol{x})\right|}{\vert x^\prime - x\vert}\leqslant L \quad\left(\forall \boldsymbol{x}, \boldsymbol{x}^{\prime}\right)
$$
由于上式对所有的$x, x^\prime$都成立,由导数的定义,上式可以看成是$f(x)$的二阶导数恒不大于$L$。即
$$
\nabla^2f(x)\leqslant L
$$
得到这个结论之后,我们来推导式11.10。
由泰勒公式,$x_k$附近的$f(x)$通过二阶泰勒展开式可近似为
$$
\begin{aligned}
\hat{f}(\boldsymbol{x}) & \simeq f\left(\boldsymbol{x}_{k}\right)+\left\langle\nabla f\left(\boldsymbol{x}_{k}\right), \boldsymbol{x}-\boldsymbol{x}_{k}\right\rangle+\frac{\nabla^2f(x_k)}{2}\left\|\boldsymbol{x}-\boldsymbol{x}_{k}\right\|^{2} \\
&\leqslant
f\left(\boldsymbol{x}_{k}\right)+\left\langle\nabla f\left(\boldsymbol{x}_{k}\right), \boldsymbol{x}-\boldsymbol{x}_{k}\right\rangle+\frac{L}{2}\left\|\boldsymbol{x}-\boldsymbol{x}_{k}\right\|^{2} \\
&= f\left(\boldsymbol{x}_{k}\right)+\nabla f\left(\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{L}{2}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)\\
&=f(x_k)+\frac{L}{2}\left(\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{2}{L}\nabla f\left(\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)\right)\\
&=f(x_k)+\frac{L}{2}\left(\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{2}{L}\nabla f\left(\boldsymbol{x}_{k}\right)^{\top}\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{1}{L^2}\nabla f(x_k)^\top\nabla f(x_k)\right) -\frac{1}{2L}\nabla f(x_k)^\top\nabla f(x_k)\\
&=f(x_k)+\frac{L}{2}\left(\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{1}{L} \nabla f\left(\boldsymbol{x}_{k}\right)\right)^{\top}\left(\left(\boldsymbol{x}-\boldsymbol{x}_{k}\right)+\frac{1}{L} \nabla f\left(\boldsymbol{x}_{k}\right)\right)-\frac{1}{2L}\nabla f(x_k)^\top\nabla f(x_k)\\
&=\frac{L}{2}\left\|\boldsymbol{x}-\left(\boldsymbol{x}_{k}-\frac{1}{L} \nabla f\left(\boldsymbol{x}_{k}\right)\right)\right\|_{2}^{2}+\mathrm{const}
\end{aligned}
$$
其中$\mathrm{const}=f(x_k)-\frac{1}{2 L} \nabla f\left(x_{k}\right)^{\top} \nabla f\left(x_{k}\right)$
### 11.3.7 式(11.11)的解释
这个很容易理解,因为2范数的最小值为0,当$\boldsymbol{x}_{k+1}=\boldsymbol{x}_{k}-\frac{1}{L} \nabla f\left(\boldsymbol{x}_{k}\right)$时,$\hat{f}(x_{k+1})\leqslant\hat{f}(x_k)$恒成立,同理$\hat{f}(x_{k+2})\leqslant\hat{f}(x_{k+1}), \cdots$,因此反复迭代能够使$\hat{f}(x)$的值不断下降。
### 11.3.8 式(11.12)的解释
注意 $\hat{f}(\boldsymbol{x})$ 在式(11.11)处取得最小值, 因此,
以下不等式肯定成立:
$$
\hat{f}\left(\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)\right) \leqslant \hat{f}\left(\boldsymbol{x}_k\right)
$$
在式(11.10)推导中有
$f(\boldsymbol{x}) \leqslant \hat{f}(\boldsymbol{x})$ 恒成立, 因此,
以下不等式肯定成立:
$$
f\left(\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)\right) \leqslant \hat{f}\left(\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)\right)
$$
在式(11.10)推导中还知道
$f\left(\boldsymbol{x}_k\right)=\hat{f}\left(\boldsymbol{x}_k\right)$,
因此
$$
f\left(\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)\right) \leqslant \hat{f}\left(\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)\right) \leqslant \hat{f}\left(\boldsymbol{x}_k\right)=f\left(\boldsymbol{x}_k\right)
$$
也就是说通过迭代
$\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\frac{1}{L} \nabla f\left(\boldsymbol{x}_k\right)$
可以使 $f(\boldsymbol{x})$ 的函数值逐步下降。
同理, 对于函数
$g(\boldsymbol{x})=f(\boldsymbol{x})+\lambda\|\boldsymbol{x}\|_1$,
可以通过最小化
$\hat{g}(\boldsymbol{x})=\hat{f}(\boldsymbol{x})+\lambda\|\boldsymbol{x}\|_1$
逐步 求解。式(11.12)就是在最小化
$\hat{g}(\boldsymbol{x})=\hat{f}(\boldsymbol{x})+\lambda\|\boldsymbol{x}\|_{1^{\circ}}$
。
以上优化方法被称为Majorization-Minimization。可以搜索相关资料做详细了解。
### 11.3.9 式(11.13)的解释
这里将式11.12的优化步骤拆分成了两步,首先令$z=x_{k}-\frac{1}{L} \nabla f\left(x_{k}\right)$以计算$z$,然后再求解式11.13,得到的结果是一致的。
### 11.3.10 式(11.14)的推导
令优化函数
$$
\begin{aligned}
g(\boldsymbol{x}) &=\frac{L}{2}\|\boldsymbol{x}-\boldsymbol{z}\|_{2}^{2}+\lambda\|\boldsymbol{x}\|_{1} \\
&=\frac{L}{2} \sum_{i=1}^{d}\left\|x^{i}-z^{i}\right\|_{2}^{2}+\lambda \sum_{i=1}^{d}\left\|x^{i}\right\|_{1} \\
&=\sum_{i=1}^{d}\left(\frac{L}{2}\left(x^{i}-z^{i}\right)^{2}+\lambda\left|x^{i}\right|\right)
\end{aligned}
$$
这个式子表明优化$g(\boldsymbol{x})$可以被拆解成优化$\boldsymbol{x}$的各个分量的形式,对分量$x^i$,其优化函数
$$
g\left(x^{i}\right)=\frac{L}{2}\left(x^{i}-z^{i}\right)^{2}+\lambda\left|x^{i}\right|
$$
求导得
$$
\frac{d g\left(x^{i}\right)}{d x^{i}}=L\left(x^{i}-z^{i}\right)+\lambda s g n\left(x^{i}\right)
$$
其中
$$
\operatorname{sign}\left(x^{i}\right)=\left\{\begin{array}{ll}
{1,} & {x^{i}>0} \\
{-1,} & {x^{i}<0}
\end{array}\right.
$$
称为符号函数[1],对于$x^i=0$的特殊情况,由于$\vert x^i \vert$在$x^i=0$点出不光滑,所以其不可导,需单独讨论。令$\frac{d g\left(x^{i}\right)}{d x^{i}}=0$有
$$
x^{i}=z^{i}-\frac{\lambda}{L} \operatorname{sign}\left(x^{i}\right)
$$
此式的解即为优化目标$g(x^i)$的极值点,因为等式两端均含有未知变量$x^i$,故分情况讨论。
(1)当$z^i>\frac{\lambda}{L}$时:a. 假设$x^i<0$,则$\operatorname{sign}(x^i)=-1$,那么有$x^i=z^i+\frac{\lambda}{L}>0$与假设矛盾;b. 假设$x^i>0$,则$\operatorname{sign}(x^i)=1$,那么有$x^i=z^i-\frac{\lambda}{L}>0$和假设相符和,下面来检验$x^i=z^i-\frac{\lambda}{L}$是否是使函数$g(x^i)$的取得最小值。当$x^i>0$时,
$$
\frac{d g\left(x^{i}\right)}{d x^{i}}=L\left(x^{i}-z^{i}\right)+\lambda
$$
在定义域内连续可导,则$g(x^i)$的二阶导数
$$
\frac{d^2 g\left(x^{i}\right)}{{d x^{i}}^2}=L
$$
由于$L$是Lipschitz常数恒大于0,因为$x^i=z^i-\frac{\lambda}{L}$是函数$g(x^i)$的最小值。
(2)当$z^i<-\frac{\lambda}{L}$时:a. 假设$x^i>0$,则$\operatorname{sign}(x^i)=1$,那么有$x^i=z^i-\frac{\lambda}{L}<0$与假设矛盾;b. 假设$x^i<0$,则$\operatorname{sign}(x^i)=-1$,那么有$x^i=z^i+\frac{\lambda}{L}<0$与假设相符,由上述二阶导数恒大于0可知,$x^i=z^i+\frac{\lambda}{L}$是$g(x^i)$的最小值。
(3)当$-\frac{\lambda}{L} \leqslant z^i \leqslant \frac{\lambda}{L}$时:a. 假设$x^i>0$,则$\operatorname{sign}(x^i)=1$,那么有$x^i=z^i-\frac{\lambda}{L}\leqslant 0$与假设矛盾;b. 假设$x^i<0$,则$\operatorname{sign}(x^i)=-1$,那么有$x^i=z^i+\frac{\lambda}{L}\geqslant 0$与假设矛盾。
(4)最后讨论$x^i=0$的情况,此时$g(x^i)=\frac{L}{2}\left({z^i}\right)^2$。当$\vert z^i\vert>\frac{\lambda}{L}$时,由上述推导可知$g(x^i)$的最小值在$x^i=z^i-\frac{\lambda}{L}$处取得,因为
$$
\begin{aligned}
g(x^i)\vert_{x^i=0}-g(x^i)\vert_{x^i=z^i-\frac{\lambda}{L}}
&=\frac{L}{2}\left({z^i}\right)^2 - \left(\lambda z^i-\frac{\lambda^2}{2L}\right)\\
&=\frac{L}{2}\left(z^i-\frac{\lambda}{L}\right)^2\\
&>0
\end{aligned}
$$
因此当$\vert z^i\vert>\frac{\lambda}{L}$时,$x^i=0$不会是函数$g(x^i)$的最小值。当$-\frac{\lambda}{L} \leqslant z^i \leqslant \frac{\lambda}{L}$时,对于任何$\Delta x\neq 0$有
$$
\begin{aligned}
g(\Delta x) &=\frac{L}{2}\left(\Delta x-z^{i}\right)^{2}+\lambda|\Delta x| \\
&=\frac{L}{2}\left((\Delta x)^{2}-2 \Delta x \cdot z^{i}+\frac{2 \lambda}{L}|\Delta x|\right)+\frac{L}{2}\left(z^{i}\right)^{2} \\
&\ge\frac{L}{2}\left((\Delta x)^{2}-2 \Delta x \cdot z^{i}+\frac{2 \lambda}{L}\Delta x\right)+\frac{L}{2}\left(z^{i}\right)^{2}\\
&\ge\frac{L}{2}\left(\Delta x\right)^2+\frac{L}{2}\left(z^{i}\right)^{2}\\
&>g(x^i)\vert_{x^i=0}
\end{aligned}
$$
因此$x^i=0$是$g(x^i)$的最小值点。
综上所述,11.14成立。
该式称为软阈值(Soft Thresholding)函数,很常见,建议掌握。另外,常见的变形是式(11.13)中的$L=1$或$L=2$时的形式,其解直接代入式(11.14)即可。与软阈值函数相对的是硬阈值函数,是将式(11.13)中的1范数替换为0范数的优化问题的闭式解。
## 11.4 稀疏表示与字典学习
稀疏表示与字典学习实际上是信号处理领域的概念。本节内容核心就是K-SVD算法。
### 11.4.1 式(11.15)的解释
这个式子表达的意思很容易理解,即希望样本$x_i$的稀疏表示$\boldsymbol{\alpha}_i$通过字典$\mathbf{B}$重构后和样本$x_i$的原始表示尽量相似,如果满足这个条件,那么稀疏表示$\boldsymbol{\alpha}_i$是比较好的。后面的1范数项是为了使表示更加稀疏。
### 11.4.2 式(11.16)的解释
为了优化11.15,我们采用变量交替优化的方式(有点类似EM算法),首先固定变量$\mathbf{B}$,则11.15求解的是$m$个样本相加的最小值,因为公式里没有样本之间的交互(即文中所述$\alpha_{i}^{u} \alpha_{i}^{v}(u \neq v)$这样的形式),因此可以对每个变量做分别的优化求出$\boldsymbol{\alpha}_i$,求解方法见式(11.13),式(11.14)。
### 11.4.3 式(11.17)的推导
这是优化11.15的第二步,固定住$\boldsymbol{\alpha}_i, i=1, 2,\dots,m$,此时式11.15的第二项为一个常数,优化11.15即优化$\min _{\mathbf{B}} \sum_{i=1}^{m}\left\|\boldsymbol{x}_{i}-\mathbf{B} \boldsymbol{\alpha}_{i}\right\|_{2}^{2}$。其写成矩阵相乘的形式为$\min _{\mathbf{B}}\|\mathbf{X}-\mathbf{B} \mathbf{A}\|_{2}^{2}$,将2范数扩展到$F$范数即得优化目标为$\min _{\mathbf{B}}\|\mathbf{X}-\mathbf{B} \mathbf{A}\|_{F}^{2}$。
### 11.4.4 式(11.18)的推导
这个公式难点在于推导$\mathbf{B}\mathbf{A}=\sum_{j=1}^k\boldsymbol{b}_j\boldsymbol{\alpha}^j$。大致的思路是$\boldsymbol{b}_{j} \boldsymbol{\alpha}^{j}$会生成和矩阵$\mathbf{B}\mathbf{A}$同样维度的矩阵,这个矩阵对应位置的元素是$\mathbf{B}\mathbf{A}$中对应位置元素的一个分量,这样的分量矩阵一共有$k$个,把所有分量矩阵加起来就得到了最终结果。推导过程如下:
$$
\begin{aligned}
\boldsymbol B\boldsymbol A
& =\begin{bmatrix}
b_{1}^{1} &b_{2}^{1} & \cdot & \cdot & \cdot & b_{k}^{1}\\
b_{1}^{2} &b_{2}^{2} & \cdot & \cdot & \cdot & b_{k}^{2}\\
\cdot & \cdot & \cdot & & & \cdot \\
\cdot & \cdot & & \cdot & &\cdot \\
\cdot & \cdot & & & \cdot & \cdot \\
b_{1}^{d}& b_{2}^{d} & \cdot & \cdot &\cdot & b_{k}^{d}
\end{bmatrix}_{d\times k}\cdot
\begin{bmatrix}
\alpha_{1}^{1} &\alpha_{2}^{1} & \cdot & \cdot & \cdot & \alpha_{m}^{1}\\
\alpha_{1}^{2} &\alpha_{2}^{2} & \cdot & \cdot & \cdot & \alpha_{m}^{2}\\
\cdot & \cdot & \cdot & & & \cdot \\
\cdot & \cdot & & \cdot & &\cdot \\
\cdot & \cdot & & & \cdot & \cdot \\
\alpha_{1}^{k}& \alpha_{2}^{k} & \cdot & \cdot &\cdot & \alpha_{m}^{k}
\end{bmatrix}_{k\times m} \\
& =\begin{bmatrix}
\sum_{j=1}^{k}b_{j}^{1}\alpha _{1}^{j} &\sum_{j=1}^{k}b_{j}^{1}\alpha _{2}^{j} & \cdot & \cdot & \cdot & \sum_{j=1}^{k}b_{j}^{1}\alpha _{m}^{j}\\
\sum_{j=1}^{k}b_{j}^{2}\alpha _{1}^{j} &\sum_{j=1}^{k}b_{j}^{2}\alpha _{2}^{j} & \cdot & \cdot & \cdot & \sum_{j=1}^{k}b_{j}^{2}\alpha _{m}^{j}\\
\cdot & \cdot & \cdot & & & \cdot \\
\cdot & \cdot & & \cdot & &\cdot \\
\cdot & \cdot & & & \cdot & \cdot \\
\sum_{j=1}^{k}b_{j}^{d}\alpha _{1}^{j}& \sum_{j=1}^{k}b_{j}^{d}\alpha _{2}^{j} & \cdot & \cdot &\cdot & \sum_{j=1}^{k}b_{j}^{d}\alpha _{m}^{j}
\end{bmatrix}_{d\times m} &
\end{aligned}
$$
$$
\begin{aligned}
\boldsymbol b_{\boldsymbol j}\boldsymbol \alpha ^{\boldsymbol j}
& =\begin{bmatrix}
b_{j}^{1}\\ b_{j}^{2}
\\ \cdot
\\ \cdot
\\ \cdot
\\ b_{j}^{d}
\end{bmatrix}\cdot
\begin{bmatrix}
\alpha _{1}^{j}& \alpha _{2}^{j} & \cdot & \cdot & \cdot & \alpha _{m}^{j}
\end{bmatrix}\\
& =\begin{bmatrix}
b_{j}^{1}\alpha _{1}^{j} &b_{j}^{1}\alpha _{2}^{j} & \cdot & \cdot & \cdot & b_{j}^{1}\alpha _{m}^{j}\\
b_{j}^{2}\alpha _{1}^{j} &b_{j}^{2}\alpha _{2}^{j} & \cdot & \cdot & \cdot & b_{j}^{2}\alpha _{m}^{j}\\
\cdot & \cdot & \cdot & & & \cdot \\
\cdot & \cdot & & \cdot & &\cdot \\
\cdot & \cdot & & & \cdot & \cdot \\
b_{j}^{d}\alpha _{1}^{j}& b_{j}^{d}\alpha _{2}^{j} & \cdot & \cdot &\cdot & b_{j}^{d}\alpha _{m}^{j}
\end{bmatrix}_{d\times m} &
\end{aligned}
$$
求和可得:
$$
\begin{aligned}
\sum_{j=1}^{k}\boldsymbol b_{\boldsymbol j}\boldsymbol \alpha ^{\boldsymbol j}
& = \sum_{j=1}^{k}\left (\begin{bmatrix}
b_{j}^{1}\\ b_{j}^{2}
\\ \cdot
\\ \cdot
\\ \cdot
\\ b_{j}^{d}
\end{bmatrix}\cdot
\begin{bmatrix}
\alpha _{1}^{j}& \alpha _{2}^{j} & \cdot & \cdot & \cdot & \alpha _{m}^{j}
\end{bmatrix} \right )\\
& =\begin{bmatrix}
\sum_{j=1}^{k}b_{j}^{1}\alpha _{1}^{j} &\sum_{j=1}^{k}b_{j}^{1}\alpha _{2}^{j} & \cdot & \cdot & \cdot & \sum_{j=1}^{k}b_{j}^{1}\alpha _{m}^{j}\\
\sum_{j=1}^{k}b_{j}^{2}\alpha _{1}^{j} &\sum_{j=1}^{k}b_{j}^{2}\alpha _{2}^{j} & \cdot & \cdot & \cdot & \sum_{j=1}^{k}b_{j}^{2}\alpha _{m}^{j}\\
\cdot & \cdot & \cdot & & & \cdot \\
\cdot & \cdot & & \cdot & &\cdot \\
\cdot & \cdot & & & \cdot & \cdot \\
\sum_{j=1}^{k}b_{j}^{d}\alpha _{1}^{j}& \sum_{j=1}^{k}b_{j}^{d}\alpha _{2}^{j} & \cdot & \cdot &\cdot & \sum_{j=1}^{k}b_{j}^{d}\alpha _{m}^{j}
\end{bmatrix}_{d\times m} &
\end{aligned}
$$
得证。
将矩阵$\mathbf{B}$分解成矩阵列$\boldsymbol{b}_j,j=1,2,\dots,k$带来一个好处,即和11.16的原理相同,矩阵列与列之间无关,因此可以分别优化各个列,即将$\min\limits_\mathbf{B}\Vert\dots\mathbf{B}\dots\Vert^2_F$转化成了$\min\limits_{b_i}\Vert\dots\boldsymbol{b}_i\dots\Vert^2_F$,得到第三行的等式之后,再利用文中介绍的K-SVD算法求解即可。
## 11.5 K-SVD算法
本节前半部分铺垫概念,后半部分核心就是K-SVD。作为字典学习的最经典的算法,K-SVD[2]自2006年发表以来已逾万次引用。理解K-SVD的基础是SVD,即奇异值分解,参见"西瓜书"附录A.3。
对于任意实矩阵 $\mathbf{A} \in \mathbb{R}^{m \times n}$, 都可分解为
$\mathbf{A}=\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\top}$, 其中
$\mathbf{U} \in \mathbb{R}^{m \times m}, \mathbf{V} \in \mathbb{R}^{n \times n}$,
分别为 $m$ 阶和 $n$ 阶正交矩阵 (复数域时称为酉矩阵), 即
$\mathbf{U}^{\top} \mathbf{U}=\mathbf{I}, \mathbf{V}^{\top} \mathbf{V}=\mathbf{I}$
(逆矩阵等于 自身的转置),
$\boldsymbol{\Sigma} \in \mathbb{R}^{m \times n}$, 且除
$(\boldsymbol{\Sigma})_{i i}=\sigma_i$ 之外其它位置的元素均为零,
$\sigma_i$ 称为奇异值, 可以证明, 矩阵 $\mathrm{A}$
的秩等于非零奇异值的个数。
正如西瓜书附录 A.3 所述, K-SVD 分解中主要使用 SVD
解决低秩矩阵近似问题。之所 以称为 K-SVD, 原文献中专门有说明:
We shall call this algorithm \"K-SVD\" to parallel the name
$\mathrm{K}$-means. While K-means applies K computations of means to
update the codebook, K-SVD obtains the updated dictionary by K SVD
computations, each determining one column.
具体来说, 就是原文献中的字典共有 $\mathrm{K}$ 个原子 (列), 因此需要迭代
$\mathrm{K}$ 次,这类似于 $\mathrm{K}$均值算法欲将数据聚成 $\mathrm{K}$
个簇, 需要计算 $\mathrm{K}$ 次均值。
K-SVD算法伪代码详如图11-1所示, 其中符号与本节符号有差异。具体来说,
原文献中字典矩阵用 $\mathbf{D}$ 表示 (书中用 $\mathrm{B}$ ), 稀疏系数用
$\mathbf{x}_i$ 表示 (书中用 $\boldsymbol{\alpha}_i$ ), 数据集用
$\mathbf{Y}$ 表示 (书中用$\mathrm{X}$)。

在初始化字典矩阵D以后, K-SVD 算法迭代过程分两步: 第 1 步 Sparse Coding
Stage 就是普通的已知字典矩阵 $\mathbf{D}$ 的稀疏表示问题,
可以使用很多现成的算法完成此步, 不再详述; K-SVD 的核心创新点在第 2 步
Codebook Update Stage, 在该步骤中分 K 次分别更新字典矩 阵 $\mathbf{D}$
中每一列, 更新第 $k$ 列 $\mathbf{d}_k$ 时其它各列都是固定的,
如原文献式(21)所示:
$$
\begin{aligned}
\|\mathbf{Y}-\mathbf{D X}\|_F^2 & =\left\|\mathbf{Y}-\sum_{j=1}^K \mathbf{d}_j \mathbf{x}_T^j\right\|_F^2 \\
& =\left\|\left(\mathbf{Y}-\sum_{j \neq k} \mathbf{d}_j \mathbf{x}_T^j\right)-\mathrm{d}_k \mathbf{x}_T^k\right\|_F^2 \\
& =\left\|\mathbf{E}_k-\mathbf{d}_k \mathrm{x}_T^k\right\|_F^2 .
\end{aligned}
$$
注意, 矩阵 $\mathbf{d}_k \mathbf{x}_T^k$ 的秩为 1 (其中,
$\mathbf{x}_T^k$ 表示稀疏系数矩阵 $\mathbf{X}$ 的第 $k$ 行, 以区别于其第
$k$ 列 $\mathbf{x}_k$ ), 对比西瓜书附录 A.3 中的式(A.34),
这就是一个低秩矩阵近似问题, 即对于给定矩阵 $\mathbf{E}_k$, 求 其最优 1
秩近似矩阵 $\mathbf{d}_k \mathbf{x}_T^k$; 此时可对 $\mathbf{E}_k$ 进行
SVD 分解, 类似于西瓜书附录式(A.35), 仅保 留最大的 1 个奇异值; 具体来说
$\mathbf{E}_k=\mathbf{U} \Delta \mathbf{V}^{\top}$, 仅保留 $\Delta$
中最大的奇异值 $\Delta(1,1)$, 则
$\mathbf{d}_k \mathbf{x}_T^k=\mathbf{U}_1 \boldsymbol{\Delta}(1,1) \mathbf{V}_1^{\top}$,
其 中 $\mathbf{U}_1, \mathbf{V}_1$ 分 别 为 $\mathbf{U}, \mathbf{V}$ 的
第 1 列, 此时 $\mathbf{d}_k=\mathbf{U}_1$,
$\mathbf{x}_T^k=\boldsymbol{\Delta}(1,1) \mathbf{V}_1^{\top}$
。但这样更新会破坏第 1 步中得到的稀疏系数的稀疏性 !
为了保证第 1 步中得到的稀疏系数的稀疏性, K-SVD 并不直接对 $\mathbf{E}_k$
进行 SVD 分解, 而是根据 $\mathbf{x}_T^k$ 仅取出与 $\mathrm{x}_T^k$
非零元素对应的部分列, 例如行向量 $\mathbf{x}_T^k$ 只有第 1、3、5、8、9
个元 素非零, 则仅取出 $\mathbf{E}_k$ 的第 1、3、5、8、9 列组成矩阵进行
$\operatorname{SVD}$ 分解
$\mathbf{E}_k^R=\mathbf{U} \Delta \mathrm{V}^{\top}$, 则
$$
\tilde{\mathbf{d}}_k=\mathbf{U}_1, \quad \tilde{\mathbf{x}}_T^k=\boldsymbol{\Delta}(1,1) \mathbf{V}_1^{\top}
$$
即得到更新后的 $\tilde{\mathbf{d}}_k$ 和 $\tilde{\mathbf{x}}_T^k$ (注意,
此时的行向量 $\tilde{\mathbf{x}}_T^k$ 长度仅为原 $\mathbf{x}_T^k$
非零元素个数, 需要按原 $\mathbf{x}_T^k$ 对其余位置填 0)。如此迭代 K
次即得更新后的字典矩阵 $\tilde{\mathbf{D}}$, 以供下一轮 Sparse Coding
使用。 $\mathrm{K}-\mathrm{SVD}$ 原文献中特意提到, 在 K
次迭代中要使用最新的稀疏系数 $\tilde{\mathbf{x}}_T^k$,
但并没有说是否要用 最新的 $\tilde{\mathbf{d}}_k$ (推测应该也要用最新的
$\tilde{\mathbf{d}}_k$ )。
## 11.6 压缩感知
虽然压缩感知与稀疏表示关系密切, 但它是彻彻底底的信号处理领域的概念。
"西瓜书"在本章有几个专业术语翻译与信号处理领域人士的习惯翻译略不一样:比如第
258 页的 Restricted Isometry Property (RIP)"西瓜书"翻译为 "限定等距性",
信号处理领域一般翻译为 "有限等距性质"; 第 259 页的 Basis Pursuit
De-Noising、第 261 页 的 Basis Pursuit 和 Matching Pursuit 中的
"Pursuit" "西瓜书"翻译为 "寻踪", 信号处理领域一般 翻译为 "追踪",
即基追踪降噪、基追踪、匹配追踪。
### 11.6.1 式(11.21)的解释
将式(11.21)进行变形
$$
\left(1-\delta_k\right) \leqslant \frac{\left\|\mathbf{A}_k \boldsymbol{s}\right\|_2^2}{\|\boldsymbol{s}\|_2^2} \leqslant\left(1+\delta_k\right)
$$
注意不等式中间, 若 $s$ 为输入信号, 则分母 $\|\boldsymbol{s}\|_2^2$
为输入信号的能量, 分子 $\left\|\mathrm{A}_k \boldsymbol{s}\right\|_2^2$
为对应的 观测信号的能量, 即 RIP
要求观测信号与输入信号的能量之比在一定的范围之内; 例如当 $\delta_k$ 等于
0 时, 观测信号与输入信号的能量相等,
即实现了等距变换,相关文献可以参考[3];
RIP 放松了对矩阵A 的约 束 (而且 $\mathrm{A}$ 并非方阵), 因此称为 "有限"
等距性质。
### 11.6.2 式(11.25)的解释
该式即为核范数定义: 矩阵的核范数(迹范数)为矩阵的奇异值之和。
有关 "凸包" 的概念, 引用百度百科里的两句原话: 在二维欧几里得空间中,
凸包可想 象为一条刚好包著所有点的橡皮圈; 用不严谨的话来讲,
给定二维平面上的点集, 凸包就是将最外层的点连接起来构成的凸多边形,
它能包含点集中所有的点。
个人理解, 将 $\operatorname{rank}(\mathbf{X})$ 的 "凸包" 是 $\mathbf{X}$
的核范数 $\|\mathbf{X}\|_*$ 这件事简单理解为 $\|\mathbf{X}\|_*$ 是
$\operatorname{rank}(\mathbf{X})$ 的上限即可, 即 $\|\mathbf{X}\|_*$
恒大于 $\operatorname{rank}(\mathbf{X})$, 类似于式(11.10)中的式子恒大于
$f(\boldsymbol{x})$ 。
## 参考文献
[1] Wikipedia contributors. Sign function, 2020.
[2] Michal Aharon, Michael Elad, and Alfred Bruckstein. K-svd: An algorithm for designing overcomplete
dictionaries for sparse representation. IEEE Transactions on signal processing, 54(11):4311–4322, 2006.
[3] 杨孝春. 欧氏空间中的等距变换与等距映射. 四川工业学院学报, 1999.
================================================
FILE: docs/chapter12/chapter12.md
================================================
# 第12章 计算学习理论
正如本章开篇所述,计算学习理论研究目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。例如,"西瓜书"定理12.1、定理12.3、定理12.6所表达意思的共同点是,泛化误差与经验误差之差的绝对值以很大概率($1-\delta$)很小,且这个差的绝对值随着训练样本个数($m$)的增加而减小,随着模型复杂度(定理12.1为假设空间包含的假设个数$\vert\mathcal{H}\vert$,定理12.3中为假设空间的VC维,定理12.6中为(经验)Rademacher复杂度)的减小而减小。因此,若想要得到一个泛化误差很小的模型,足够的训练样本是前提,最小化经验误差是实现途径,另外还要选择性能相同的模型中模型复杂度最低的那一个;"最小化经验误差"即常说的经验风险最小化,"选择模型复杂度最低的那一个"即结构风险最小化,可以参见"西瓜书"6.4节最后一段的描述,尤其是式(6.42)所表达的含义。
## 12.1 基础知识
统计学中有总体集合和样本集合之分,
比如要统计国内本科生对机器学习的掌握情况,
此时全国所有的本科生就是总体集合,
但总体集合往往太大而不具有实际可操作性, 一般都 是取总体集合的一部分,
比如从双一流 $\mathrm{A}$ 类、双一流 $\mathrm{B}$
类、一流学科建设高校、普通高校 中各找一部分学生 (即样本集合)进行调研,
以此来了解国内本科生对机器学习的掌握情况。 在机器学习中, 样本空间 (参见
$1.2$ 节) 对应总体集合, 而我们手头上的样例集 $D$ 对应 样本集合, 样例集
$D$ 是从样本空间中采样而得, 分布 $\mathcal{D}$
可理解为当从样本空间采样获得样例 集 $D$ 时每个样本被采到的概率, 我们用
$\mathcal{D}(t)$ 表示样本空间第 $t$ 个样本被采到的概率。
### 12.1.1 式(12.1)的解释
该式为泛化误差的定义式,所谓泛化误差,是指当样本$x$从真实的样本分布$\mathcal{D}$中采样后其预测值$h(\boldsymbol{x})$不等于真实值$y$的概率。在现实世界中,我们很难获得样本分布$\mathcal{D}$,我们拿到的数据集可以看做是从样本分布$\mathcal{D}$中独立同分布采样得到的。在西瓜书中,我们拿到的数据集,称为样例集$D$\[也叫观测集、样本集,注意与花体$\mathcal{D}$的区别\]。
### 12.1.2 式(12.2)的解释
该式为经验误差的定义式,所谓经验误差,是指观测集$D$中的样本$x_i, i=1,2,\cdots,m$的预测值$h(\boldsymbol{x}_i)$和真实值$y_i$的期望误差。
### 12.1.3 式(12.3)的解释
假设我们有两个模型$h_1$和$h_2$,将它们同时作用于样本$\boldsymbol{x}$上,那么他们的"不合"度定义为这两个模型预测值不相同的概率。
### 12.1.4 式(12.4)的解释
Jensen不等式:这个式子可以做很直观的理解,比如说在二维空间上,凸函数可以想象成开口向上的抛物线,假如我们有两个点$x_1, x_2$,那么$f(\mathbb{E}(x))$表示的是两个点的均值的纵坐标,而$\mathbb{E}(f(x))$表示的是两个点纵坐标的均值,因为两个点的均值落在抛物线的凹处,所以均值的纵坐标会小一些。
### 12.1.5 式(12.5)的解释
随机变量的观测值是随机的, 进一步地, 随机过程的每个时刻都是一个随机变量。
式中, $\frac{1}{m} \sum_{i=1}^m x_i$ 表示 $m$
个独立随机变量各自的某次观测值的平均,
$\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right)$ 表示 $m$
个独立随机变量各自的期望的平均。
式(12.5)表示事件
$\frac{1}{m} \sum_{i=1}^m x_i-\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right) \geqslant \epsilon$
出现的概率不大于 (i.e., $\left.\leqslant\right) e^{-2 m \epsilon^2}$;
式(12.6)的事件
$\left|\frac{1}{m} \sum_{i=1}^m x_i-\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right)\right| \geqslant \epsilon$
等价于以下事件:
$$
\frac{1}{m} \sum_{i=1}^m x_i-\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right) \geqslant \epsilon \quad \vee \quad \frac{1}{m} \sum_{i=1}^m x_i-\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right) \leqslant-\epsilon
$$
其中, $\vee$ 表示逻辑或
(以上其实就是将绝对值表达式拆成两部分而已)。这两个子事件并无 交集,
因此总概率等于两个子事件概率之和; 而
$\frac{1}{m} \sum_{i=1}^m x_i-\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right) \leqslant-\epsilon$
与式(12.5) 表达的事情对称, 因此概率相同。
Hoeffding 不等式表达的意思是 $\frac{1}{m} \sum_{i=1}^m x_i$ 和
$\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(x_i\right)$
两个值应该比较接近, 二者 之差大于 $\epsilon$ 的概率很小 (不大于
$2 e^{-2 m \epsilon^2}$ )。
如果对Hoeffding不等式的证明感兴趣,可以参考Hoeffding在1963年发表的论文[1],这篇文章也被引用了逾万次。
### 12.1.6 式(12.7)的解释
McDiarmid不等式:首先解释下前提条件:
$$
\sup _{x_{1}, \ldots, x_{m}, x_{i}^{\prime}}\left|f\left(x_{1}, \ldots, x_{m}\right)-f\left(x_{1}, \ldots, x_{i-1}, x_{i}^{\prime}, x_{i+1}, \ldots, x_{m}\right)\right| \leqslant c_{i}
$$
表示当函数$f$某个输入$x_i$变到$x_i^\prime$的时候,其变化的上确$\sup$仍满足不大于$c_i$。所谓上确界sup可以理解成变化的极限最大值,可能取到也可能无穷逼近。当满足这个条件时,McDiarmid不等式指出:函数值$f(x_1,\dots,x_m)$和其期望值$\mathbb{E}\left(f(x_1,\dots,x_m)\right)$也相近,从概率的角度描述是:它们之间差值不小于$\epsilon$这样的事件出现的概率不大于$\exp \left(\frac{-2 \epsilon^{2}}{\sum_{i} c_{i}^{2}}\right)$,可以看出当每次变量改动带来函数值改动的上限越小,函数值和其期望越相近。
## 12.2 PAC学习
本节内容几乎都是概念, 建议多读几遍,仔细琢磨一下。
概率近似正确(Probably Approximately Correct, PAC)学习, 可以读为
\[pæk\]学习。
本节第 2 段讨论的目标概念, 可简单理解为真实的映射函数;
本节第 3 段讨论的假设空间, 可简单理解为学习算法不同参数时的存在,
例如线性分类 超平面
$f(\boldsymbol{x})=\boldsymbol{w}^{\top} \boldsymbol{x}+b$, 每一组
$(\boldsymbol{w}, b)$ 取值就是一个假设;
本节第 4 段讨论的可分的(separable)和不可分的(non-separable),
例如西瓜书第 100 页的 图 5.4, 若假设空间是线性分类器,
则(a)(b)(c)是可分的, 而(d)是不可分的; 当然, 若假设空 间为椭圆分类器
(分类边界为椭圆), 则(d)也是可分的;
本节第 5 段提到的 "等效的假设"指的是第 7 页图 $1.3$ 中的 $\mathrm{A}$ 和
$\mathrm{B}$ 两条曲线都可以完 美拟合有限的样本点, 故称之为 "等效"
的假设; 另外本段最后还给出了概率近似正确的 含义, 即
"以较大概率学得误差满足预设上限的模型"。
定义 12.1 PAC 辨识的式(12.9)表示输出假设 $h$ 的泛化误差
$E(h) \leqslant \epsilon$ 的概率不小于 $1-\delta$; 即 "学习算法
$\mathfrak{L}$ 能以较大概率 (至少 $1-\delta$ ) 学得目标概念 $c$ 的近似
(误差最多为 $\epsilon$ )"。
定义 12.2 PAC 可学习的核心在于, 需要的样本数目 $m$ 是
$1 / \epsilon, 1 / \delta, \operatorname{size}(\boldsymbol{x}), \operatorname{size}(\mathrm{c})$
的多 项式函数。
定义 12.3 PAC 学习算法的核心在于, 完成 PAC 学习所需要的时间是
$1 / \epsilon, 1 / \delta, \operatorname{size}(\boldsymbol{x})$,
$\operatorname{size}(\mathrm{c})$ 的多项式函数。
定义 12.4 样本复杂度指完成 PAC 学习过程需要的最少的样本数量,
而在实际中当然也 希望用最少的样本数量完成学习过程。
在定义 12.4 之后, 抛出来三个问题:
- 研究某任务在什么样的条件下可学得较好的模型?(定义 12.2)
- 某算法在什么样的条件下可进行有效的学习?(定义 12.3)
- 需多少训练样例才能获得较好的模型?(定义 12.4)
有限假设空间指 $\mathcal{H}$ 中包含的假设个数是有限的,
反之则为无限假设空间; 无限假设空间 更为常见, 例如能够将图
5.4(a)(b)(c)中的正例和反例样本分开的线性超平面个数是无限多的。
### 12.2.1 式(12.9)的解释
PAC辨识的定义:$E(h)$表示算法$\mathcal{L}$在用观测集$D$训练后输出的假设函数$h$,它的泛化误差(见公式12.1)。这个概率定义指出,如果$h$的泛化误差不大于$\epsilon$的概率不小于$1-\delta$,那么我们称学习算法$\mathcal{L}$能从假设空间$\mathcal{H}$中PAC辨识概念类$\mathcal{C}$。
## 12.3 有限假设空间
本节内容分两部分, 第 1 部分 "可分情形" 时, 可以达到经验误差
$\widehat{E}(h)=0$, 做的事 情是以 $1-\delta$ 概率学得目标概念的
$\epsilon$ 近似, 即式(12.12); 第 2 部分 "不可分情形" 时, 无法达
到经验误差 $\widehat{E}(h)=0$, 做的事情是以 $1-\delta$ 概率学得
$\min _{h \in \mathcal{H}} E(h)$ 的 $\epsilon$ 近似, 即式(12.20)。无
论哪种情形, 对于 $h \in \mathcal{H}$, 可以得到该假设的泛化误差 $E(h)$
与经验误差 $\widehat{E}(h)$ 的关系, 即 "当 样例数目 $m$ 较大时, $h$
的经验误差是泛化误差很好的近似", 即式(12.18); 实际研究中经常需
要推导类似的泛化误差上下界。
从式12.10到式12.14的公式是为了回答一个问题:到底需要多少样例才能学得目标概念$c$的有效近似。只要训练集$D$的规模能使学习算法$\mathcal{L}$以概率$1-\delta$找到目标假设的$\epsilon$近似即可。下面就是用数学公式进行抽象。
### 12.3.1 式(12.10)的解释
$P(h(\boldsymbol{x})=y) =1-P(h(\boldsymbol{x}) \neq y)$
因为它们是对立事件,$P(h(x)\neq y)=E(h)$是泛化误差的定义(见12.1),由于我们假定了泛化误差$E(h)>\epsilon$,因此有$1-E(h)<1-\epsilon$。
### 12.3.2 式(12.11)的解释
先解释什么是$h$与$D$"表现一致",12.2节开头阐述了这样的概念,如果$h$能将$D$中所有样本按与真实标记一致的方式完全分开,我们称问题对学习算法是一致的。即$\left(h\left(\boldsymbol{x}_{1}\right)=y_{1}\right) \wedge \ldots \wedge\left(h\left(\boldsymbol{x}_{m}\right)=y_{m}\right)$为True。因为每个事件是独立的,所以上式可以写成$P\left(\left(h\left(\boldsymbol{x}_{1}\right)=y_{1}\right) \wedge \ldots \wedge\left(h\left(\boldsymbol{x}_{m}\right)=y_{m}\right)\right)=\prod_{i=1}^{m} P\left(h\left(\boldsymbol{x}_{i}\right)=y_{i}\right)$。根据对立事件的定义有:$\prod_{i=1}^{m} P\left(h\left(\boldsymbol{x}_{i}\right)=y_{i}\right)=\prod_{i=1}^{m}\left(1-P\left(h\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right)\right)$,又根据公式(12.10),有
$$
\prod_{i=1}^{m}\left(1-P\left(h\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right)\right)<\prod_{i=1}^{m}(1-\epsilon)=(1-\epsilon)^{m}
$$
### 12.3.3 式(12.12)的推导
首先解释为什么"我们事先并不知道学习算法$\mathcal{L}$会输出$\mathcal{H}$中的哪个假设",因为一些学习算法对用一个观察集$D$的输出结果是非确定的,比如感知机就是个典型的例子,训练样本的顺序也会影响感知机学习到的假设$h$参数的值。泛化误差大于$\epsilon$且经验误差为0的假设(即在训练集上表现完美的假设)出现的概率可以表示为$P(h \in \mathcal{H}: E(h)>\epsilon \wedge \widehat{E}(h)=0)$,根据式12.11,每一个这样的假设$h$都满足$P(E(h)>\epsilon \wedge \widehat{E}(h)=0)<\left(1-\epsilon \right)^m$,假设一共有$\vert\mathcal{H}\vert$这么多个这样的假设$h$,因为每个假设$h$满足$E(h)>\epsilon$且$\widehat{E}(h)=0$是互斥的,因此总的概率$P(h \in \mathcal{H}: E(h)>\epsilon \wedge \widehat{E}(h)=0)$就是这些互斥事件之和,即
$$
\begin{aligned}P\left(h \in \mathcal{H}: E(h)>\epsilon \wedge \widehat{E}(h)=0\right) &=\sum_i^{\mathcal{\vert H\vert}}P\left(E(h_i)>\epsilon \wedge \widehat{E}(h_i)=0\right)\\&<|\mathcal{H}|(1-\epsilon)^{m}\end{aligned}
$$
小于号依据公式(12.11)。
第二个小于号实际上是要证明$\vert\mathcal{H}\vert(1-\epsilon)^m < \vert\mathcal{H}\vert e^{-m\epsilon}$,即证明$(1-\epsilon)^m < e^{-m\epsilon}$,其中$\epsilon\in(0,1]$,$m$是正整数,推导如下:
当$\epsilon=1$时,显然成立,当$\epsilon\in(0, 1)$时,因为左式和右式的值域均大于0,所以可以左右两边同时取对数,又因为对数函数是单调递增函数,所以即证明$m\ln(1-\epsilon) < -m\epsilon$,即证明$\ln(1-\epsilon)<-\epsilon$,这个式子很容易证明:令$f(\epsilon)=\ln(1-\epsilon) + \epsilon$,其中$\epsilon\in(0,1)$,$f^\prime(\epsilon)=1-\frac{1}{1-\epsilon}=0 \Rightarrow \epsilon=0$
取极大值0,因此$ln(1-\epsilon)<-\epsilon$
也即$\vert\mathcal{H}\vert(1-\epsilon)^m < \vert\mathcal{H}\vert e^{-m\epsilon}$成立。
### 12.3.4 式(12.13)的解释
回到我们要回答的问题:到底需要多少样例才能学得目标概念$c$的有效近似。只要训练集$D$的规模能使学习算法$\mathcal{L}$以概率$1-\delta$找到目标假设的$\epsilon$近似即可。根据式12.12,学习算法$\mathcal{L}$生成的假设大于目标假设的$\epsilon$近似的概率为$P\left(h \in \mathcal{H}: E(h)>\epsilon \wedge \widehat{E}(h)=0\right)<\vert\mathcal{H}\vert e^{-m\epsilon}$,因此学习算法$\mathcal{L}$生成的假设落在目标假设的$\epsilon$近似的概率为$1-P\left(h \in \mathcal{H}: E(h)>\epsilon \wedge \widehat{E}(h)=0\right)\ge 1-\vert\mathcal{H}\vert e^{-m\epsilon}$,这个概率我们希望
至少是$1-\delta$,因此$1-\delta\leqslant 1-\vert\mathcal{H}\vert e^{-m\epsilon}\Rightarrow\vert\mathcal{H}\vert e^{-m\epsilon}\leqslant\delta$
### 12.3.5 式(12.14)的推导
$$
\begin{aligned}
\vert\mathcal{H}\vert e^{-m \epsilon} &\leqslant \delta\\
e^{-m \epsilon} &\leqslant \frac{\delta}{\vert\mathcal{H}\vert}\\
-m \epsilon &\leqslant \ln\delta-\ln\vert\mathcal{H}\vert\\
m &\geqslant \frac{1}{\epsilon}\left(\ln |\mathcal{H}|+\ln \frac{1}{\delta}\right)
\end{aligned}
$$
这个式子告诉我们,在假设空间$\mathcal{H}$是PAC可学习的情况下,输出假设$h$的泛化误差$\epsilon$随样本数目$m$增大而收敛到0,收敛速率为$O(\frac{1}{m})$。这也是我们在机器学习中的一个共识,即可供模型训练的观测集样本数量越多,机器学习模型的泛化性能越好。
### 12.3.6 引理12.1的解释
根据式(12.2),
$\widehat{E}(h)=\frac{1}{m} \sum_{i=1}^m \mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)$,
而指示函数 $\mathbb{I}(\cdot)$ 取值非 0 即 1 , 也就是 说
$0 \leq \mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right) \leq 1$;
对于式(12.1) 的 $E(h)$ 实际上表示
$\mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)$ 为 1
的期望
$\mathbb{E}\left(\mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)\right)$
(泛化误差表示样本空间中任取一个样本, 其预测类别不等于真实类别的 概率),
当假设 $h$ 确定时, 泛化误差固定不变, 因此可记为
$E(h)=\frac{1}{m} \sum_{i=1}^m \mathbb{E}\left(\mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)\right)$
。
此时, 将 $\widehat{E}(h)$ 和 $E(h)$ 代入式(12.15)到式(12.17),
对比式(12.5)和式(12.6)的 Hoeffding 不等式可知, 式(12.15)对应式(12.5),
式(12.16)与式(12.15)对称, 式(12.17)对应式(12.6)。
### 12.3.7 式(12.18)的推导
令$\delta=2e^{-2m\epsilon^2}$,则$\epsilon=\sqrt{\frac{\ln(2/\delta)}{2m}}$,由式(12.17)
$$
\begin{aligned}
P(|E(h)-\widehat{E}(h)| \geqslant \epsilon) &\leqslant 2 \exp \left(-2 m \epsilon^{2}\right)\\
P(|E(h)-\widehat{E}(h)| \geqslant \epsilon) &\leqslant \delta\\
P(|E(h)-\widehat{E}(h)| \leqslant \epsilon) &\geqslant 1 - \delta\\
P(-\epsilon \leqslant E(h)-\widehat{E}(h) \leqslant \epsilon) &\geqslant 1 - \delta\\
P(\widehat{E}(h) -\epsilon \leqslant E(h) \leqslant \widehat{E}(h)+\epsilon) &\geqslant 1 - \delta\\
\end{aligned}
$$
带入 $\epsilon=\sqrt{\frac{\ln(2/\delta)}{2m}}$得证。
这个式子进一步阐明了当观测集样本数量足够大的时候,$h$的经验误差是其泛化误差很好的近似。
### 12.3.8 式(12.19)的推导
令$h_1,h_2,\dots,h_{\vert\mathcal{H}\vert}$表示假设空间$\mathcal{H}$中的假设,有
$$
\begin{aligned}
& P(\exists h \in \mathcal{H}:|E(h)-\widehat{E}(h)|>\epsilon) \\
=& P\left(\left(\left|E_{h_{1}}-\widehat{E}_{h_{1}}\right|>\epsilon\right) \vee \ldots \vee\left(| E_{h_{|\mathcal{H}|}}-\widehat{E}_{h_{|\mathcal{H}|} |>\epsilon}\right)\right) \\ \leqslant & \sum_{h \in \mathcal{H}} P(|E(h)-\widehat{E}(h)|>\epsilon)
\end{aligned}
$$
这一步是很好理解的,存在一个假设$h$使得$|E(h)-\widehat{E}(h)|>\epsilon$的概率可以表示为对假设空间内所有的假设$h_i, i\in 1,\dots,\vert\mathcal{H}\vert$,使得$\left|E_{h_{i}}-\widehat{E}_{h_{i}}\right|>\epsilon$这个事件成立的\"或\"事件。因为$P(A\vee B)=P(A) + P(B) - P(A\wedge B)$,而$P(A\wedge B)\geqslant 0$,所以最后一行的不等式成立。
由式12.17:
$$
\begin{aligned}
&P(|E(h)-\widehat{E}(h)| \geqslant \epsilon) \leqslant 2 \exp \left(-2 m \epsilon^{2}\right)\\
&\Rightarrow \sum_{h \in \mathcal{H}} P(|E(h)-\widehat{E}(h)|>\epsilon) \leqslant 2|\mathcal{H}| \exp \left(-2 m \epsilon^{2}\right)
\end{aligned}
$$
因此:
$$
\begin{aligned}
P(\exists h \in \mathcal{H}:|E(h)-\widehat{E}(h)|>\epsilon)
&\leqslant \sum_{h \in \mathcal{H}} P(|E(h)-\widehat{E}(h)|>\epsilon)\\
&\leqslant 2|\mathcal{H}| \exp \left(-2 m \epsilon^{2}\right)
\end{aligned}
$$
其对立事件:
$$
\begin{aligned}
P(\forall h\in\mathcal{H}:\vert E(h)-\widehat{E}(h)\vert\leqslant\epsilon)&=1-P(\exists h \in \mathcal{H}:|E(h)-\widehat{E}(h)|>\epsilon)\\ &\geqslant 1- 2|\mathcal{H}| \exp \left(-2 m \epsilon^{2}\right)
\end{aligned}
$$
令$\delta=2\vert\mathcal{H}\vert e^{-2m\epsilon^2}$,则$\epsilon=\sqrt{\frac{\ln |\mathcal{H}|+\ln (2 / \delta)}{2 m}}$,带入上式中即可得到
$$
P\left(\forall h\in\mathcal{H}:\vert E(h)-\widehat{E}(h)\vert\leqslant\sqrt{\frac{\ln |\mathcal{H}|+\ln (2 / \delta)}{2 m}}\right)\geqslant 1- \delta
$$
其中$\forall h\in\mathcal{H}$这个前置条件可以省略。
### 12.3.9 式(12.20)的解释
这个式子是"不可知PAC可学习"的定义式,不可知是指当目标概念$c$不在算法$\mathcal{L}$所能生成的假设空间$\mathcal{H}$里。可学习是指如果$\mathcal{H}$中泛化误差最小的假设是$\arg\min_{h\in \mathcal{H}}E(h)$,且这个假设的泛化误差满足其与目标概念的泛化误差的差值不大于$\epsilon$的概率不小于$1-\delta$。我们称这样的假设空间$\mathcal{H}$是不可知PAC可学习的。
## 12.4 VC维
不同于12.3节的有限假设空间,从本节开始,本章剩余内容均针对无限假设空间。
### 12.4.1 式(12.21)的解释
这个是增长函数的定义式。增长函数$\Pi_{\mathcal{H}}(m)$表示假设空间$\mathcal{H}$对m个样本所能赋予标签的最大可能的结果数。比如对于两个样本的二分类问题,一共有4中可能的标签组合$[[0, 0], [0, 1], [1, 0], [1, 1]]$,如果假设空间$\mathcal{H}_1$能赋予这两个样本两种标签组合$[[0, 0], [1, 1]]$,则$\Pi_{\mathcal{H}_1}(2)=2$。显然,$\mathcal{H}$对样本所能赋予标签的可能结果数越多,$\mathcal{H}$的表示能力就越强。增长函数可以用来反映假设空间$\mathcal{H}$的复杂度。
### 12.4.2 式(12.22)的解释
值得指出的是,这个式子的前提假设有误,应当写成对假设空间$\mathcal{H}$,$m\in\mathbb{N}$,$0<\epsilon<1$,存在$h\in\mathcal{H}$
详细证明参见原论文 On the uniform convergence of relative frequencies of
events to their probabilities
[2],在该论文中,定理的形式如下:
Theorem 2 The probability that the relative frequency of at least one
event in class $S$ differs from its probability in an experiment of size
l by more then $\varepsilon$, for $l \geqq 2 / \varepsilon^2$, satisfies
the inequality
$$
\mathbf{P}\left(\pi^{(l)}>\varepsilon\right) \leqq 4 m^S(2 l) e^{-\varepsilon^2 l / 8} .
$$
注意定理描述中使用的是"at least one event in class S", 因此应该是 class
S 中"存在"one event 而不是 class S 中的 "任意" event。
另外, 该定理为基于增长函数对无限假设空间的泛化误差分析,
与上一节有限假设空间 的定理 12.1。在证明定理 $12.1$ 的式(12.19)过程中,
实际证明的结论是
$$
P(\exists h \in \mathcal{H}:|E(h)-\widehat{E}(h)|>\epsilon) \leqslant 2|\mathcal{H}| e^{-2 m \epsilon^2}
$$
根据该结论可得式(12.19)的原型(式(12.19)就是将 $\epsilon$ 用 $\delta$
表示):
$$
P(\forall h \in \mathcal{H}:|E(h)-\widehat{E}(h)| \leqslant \epsilon) \leqslant 1-2|\mathcal{H}| e^{-2 m \epsilon^2}
$$
这是因为事件 $\exists h \in \mathcal{H}:|E(h)-\widehat{E}(h)|>\epsilon$
与事件
$\forall h \in \mathcal{H}:|E(h)-\widehat{E}(h)| \leqslant \epsilon$
为对立事件。
注意到当使用 $|E(h)-\widehat{E}(h)|>\epsilon$ 表达时对应于 "存在",
当使用 $|E(h)-\widehat{E}(h)| \leqslant \epsilon$ 表达时 则对应于
"任意"。
综上所述, 式(12.22)使用 $|E(h)-\widehat{E}(h)|>\epsilon$,
所以这里应该对应于 "存在"。
### 12.4.3 式(12.23)的解释
这是VC维的定义式:VC维的定义是能被$\mathcal{H}$打散的最大示例集的大小。"西瓜书"中例12.1和例12.2
给出了形象的例子。
式(12.23)中的 $\left\{m: \Pi_{\mathcal{H}}(m)=2^m\right\}$ 表示一个集合,
集合的元素是能使 $\Pi_{\mathcal{H}}(m)=2^m$ 成立 的所有 $m$; 最外层的
max表示取集合的最大值。注意,
这里仅讨论二分类问题。注意,VC维的定义式上的底数2表示这个问题是2分类的问题。如果是$n$分类的问题,那么定义式中底数需要变为$n$。
$\mathrm{VC}$ 维的概念还是很容易理解的,
有个常见的思维误区西瓜书也指出来了, 即 "这并不 意味着所有大小为 $d$
的示例集都能被假设空间 $\mathcal{H}$ 打散", 也就是说只要 "存在大小为 $d$
的示例 集能被假设空间 H打散" 即可, 这里的区别与前面 "定理 $12.2$ 的解释"
中提到的 "任意" 与 "存在" 的关系一样。
### 12.4.4 引理12.2的解释
首先解释下数学归纳法的起始条件\"当$m=1, d=0$或$d=1$时,定理成立\",当$m=1,d=0$时,由VC维的定义(式12.23)
$\mathrm{VC}(\mathcal{H})=\max \left\{m: \Pi_{\mathcal{H}}(m)=2^{m}\right\}=0$
可知$\Pi_{\mathcal{H}}(1)<2$,否则$d$可以取到1,又因为$\Pi_{\mathcal{H}}(m)$为整数,所以$\Pi_{\mathcal{H}}(1)\in[0, 1]$,式12.24右边为$\sum_{i=0}^{0}\left(\begin{array}{c}{1} \\ {i}\end{array}\right)=1$,因此不等式成立。当$m=1,d=1$时,因为一个样本最多只能有两个类别,所以$\Pi_\mathcal{H}(1)=2$,不等式右边为$\sum_{i=0}^{1}\left(\begin{array}{c}{1} \\ {i}\end{array}\right)=2$,因此不等式成立。
再介绍归纳过程,这里采样的归纳方法是假设式(12.24)对$(m-1, d-1)$和$(m-1, d)$成立,推导出其对$(m,d)$也成立。证明过程中引入观测集$D=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right\}$
和观测集$D^\prime=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m-1}\right\}$,其中$D$比$D^\prime$多一个样本$x_m$,它们对应的假设空间可以表示为:
$$
\begin{array}{l}{\mathcal{H}_{| D}=\left\{\left(h\left(\boldsymbol{x}_{1}\right), h\left(\boldsymbol{x}_{2}\right), \ldots, h\left(\boldsymbol{x}_{m}\right)\right) | h \in \mathcal{H}\right\}} \\ {\mathcal{H}_{| D^{\prime}}=\left\{\left(h\left(\boldsymbol{x}_{1}\right), h\left(\boldsymbol{x}_{2}\right), \ldots, h\left(\boldsymbol{x}_{m-1}\right)\right) | h \in \mathcal{H}\right\}}\end{array}
$$
如果假设$h\in\mathcal{H}$对$x_m$的分类结果为$+1$,或为$-1$,那么任何出现在$\mathcal{H}_{\vert D^\prime}$中的串都会在$\mathcal{H}_{\vert D}$中出现一次或者两次。这里举个例子就很容易理解了,假设$m=3$:
$$
\begin{aligned}
\mathcal{H}_{\vert D}&=\{(+,-,-),(+,+,-),(+,+,+),(-,+,-),(-,-,+)\}\\
\mathcal{H}_{\vert D^\prime}&=\{(+,+),(+,-),(-,+),(-,-)\}\\
\end{aligned}
$$
其中串$(+,+)$在$\mathcal{H}_{\vert D}$中出现了两次$(+, +, +), (+, +, -)$,$\mathcal{H}_{\vert D^\prime}$中得其他串$(+,-), (-, +), (-, -)$均只在$\mathcal{H}_{\vert D}$中出现了一次。这里的原因是每个样本是二分类的,所以多出的样本$x_m$要么取$+$,要么取$-$,要么都取到(至少两个假设$h$对$x_m$做出了不一致的判断)。
记号$\mathcal{H}_{D^\prime\vert D}$表示在$\mathcal{H}_{\vert D}$中出现了两次的$\mathcal{H}_{\vert D^\prime}$组成的集合,比如在上例中$\mathcal{H}_{D^\prime\vert D}=\{(+,+)\}$,有
$$
\left|\mathcal{H}_{| D}\right|=\left|\mathcal{H}_{| D^{\prime}}\right|+\left|\mathcal{H}_{D^{\prime} | D}\right|
$$
由于$\mathcal{H}_{\vert D^\prime}$表示限制在样本集$D^\prime$上的假设空间$\mathcal{H}$的表达能力(即所有假设对样本集$D^\prime$所能赋予的标记种类数),样本集$D^\prime$的数目为$m-1$,根据增长函数的定义,假设空间$\mathcal{H}$对包含$m-1$个样本的集合所能赋予的最大标记种类数为$\Pi_{\mathcal{H}}(m-1)$,因此$\vert\mathcal{H}_{\vert D^\prime}\vert \leqslant \Pi_\mathcal{H}(m-1)$。又根据数学归纳法的前提假设,有:
$$
\left|\mathcal{H}_{| D^{\prime}}\right| \leqslant \Pi_{\mathcal{H}}(m-1) \leqslant \sum_{i=0}^{d}\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right)
$$
由记号$\mathcal{H}_{\vert D^\prime}$的定义可知,$\vert\mathcal{H}_{\vert D^\prime}\vert \geqslant \left\lfloor\frac{\vert\mathcal{H}_{\vert D}\vert}{2}\right\rfloor$,又由于$\vert\mathcal{H}_{\vert D^\prime}\vert$和$\vert\mathcal{H}_{D^\prime\vert D}\vert$均为整数,因此$\vert\mathcal{H}_{D^\prime\vert D}\vert \leqslant \left\lfloor\frac{\vert\mathcal{H}_{\vert D}\vert}{2}\right\rfloor$,由于样本集$D$的大小为$m$,根据增长函数的概念,有$\left|\mathcal{H}_{D^{\prime}| D}\right| \leqslant \left\lfloor\frac{\vert\mathcal{H}_{\vert D}\vert}{2}\right\rfloor\leqslant \Pi_{\mathcal{H}}(m-1)$。
假设$Q$表示能被$\mathcal{H}_{D^\prime\vert D}$打散的集合,因为根据$\mathcal{H}_{D^\prime\vert D}$的定义,$H_{D}$必对元素$x_m$给定了不一致的判定,因此$Q \cup\left\{\boldsymbol{x}_{m}\right\}$必能被$\mathcal{H}_{\vert D}$打散,由前提假设$\mathcal{H}$的VC维为$d$,因此$\mathcal{H}_{D^\prime\vert D}$的VC维最大为$d-1$,综上有
$$
\left|\mathcal{H}_{D^{\prime}| D}\right| \leqslant \Pi_{\mathcal{H}}(m-1) \leqslant \sum_{i=0}^{d-1}\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right)
$$
因此:
$$
\begin{aligned}
\left|\mathcal{H}_{| D}\right|&=\left|\mathcal{H}_{| D^{\prime}}\right|+\left|\mathcal{H}_{D^{\prime} | D}\right|\\
&\leqslant \sum_{i=0}^{d}\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right) + \sum_{i=0}^{d+1}\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right)\\
&=\sum_{i=0}^d \left(\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right) + \left(\begin{array}{c}{m-1} \\ {i-1}\end{array}\right)\right)\\
&=\sum_{i=0}^{d}\left(\begin{array}{c}{m} \\ {i}\end{array}\right)
\end{aligned}
$$
注:最后一步依据组合公式,推导如下:
$$
\begin{aligned}\left(\begin{array}{c}{m-1} \\ {i}\end{array}\right)+\left(\begin{array}{c}{m-1} \\ {i-1}\end{array}\right) &=\frac{(m-1) !}{(m-1-i) ! i !}+\frac{(m-1) !}{(m-1-i+1) !(i-1) !} \\ &=\frac{(m-1) !(m-i)}{(m-i)(m-1-i) ! i !}+\frac{(m-1) ! i}{(m-i) !(i-1) ! i} \\ &=\frac{(m-1) !(m-i)+(m-1) ! i}{(m-i) ! i !} \\ &=\frac{(m-1) !(m-i+i)}{(m-i) ! i !}=\frac{(m-1) ! m}{(m-i) ! i !} \\ &=\frac{m !}{(m-i) ! i !}=\left(\begin{array}{c}{m} \\ {i}\end{array}\right) \end{aligned}
$$
### 12.4.5 式(12.28)的解释
$$
\begin{aligned} \Pi_{\mathcal{H}}(m) & \leqslant \sum_{i=0}^{d}\left(\begin{array}{c}{m} \\ {i}\end{array}\right) \\ & \leqslant \sum_{i=0}^{d}\left(\begin{array}{c}{m} \\ {i}\end{array}\right)\left(\frac{m}{d}\right)^{d-i} \\ &=\left(\frac{m}{d}\right)^{d} \sum_{i=0}^{d}\left(\begin{array}{c}{m} \\ {i}\end{array}\right)\left(\frac{d}{m}\right)^{i} \\ & \leqslant\left(\frac{m}{d}\right)^{d} \sum_{i=0}^{m}\left(\begin{array}{c}{m} \\ {i}\end{array}\right)\left(\frac{d}{m}\right)^{i} \\
&={\left(\frac{m}{d}\right)}^d{\left(1+\frac{d}{m}\right)}^m\\
&<\left(\frac{e \cdot m}{d}\right)^{d} \end{aligned}
$$
第一步到第二步和第三步到第四步均因为$m\geqslant d$,第四步到第五步是由于二项式定理[3]:$(x+y)^{n}=\sum_{k=0}^{n}\left(\begin{array}{l}{n} \\ {k}\end{array}\right) x^{n-k} y^{k}$,其中令$k=i, n=m, x=1, y = \frac{d}{m}$得$\left(\frac{m}{d}\right)^{d} \sum_{i=0}^{m}\left(\begin{array}{c}{m} \\ {i}\end{array}\right)\left(\frac{d}{m}\right)^{i}=\left(\frac{m}{d}\right)^{d} (1+\frac{d}{m})^m$,最后一步的不等式即需证明${\left(1+\frac{d}{m}\right)}^m\leqslant e^d$,因为${\left(1+\frac{d}{m}\right)}^m={\left(1+\frac{d}{m}\right)}^{\frac{m}{d}d}$,根据自然对数底数$e$的定义[4],${\left(1+\frac{d}{m}\right)}^{\frac{m}{d}d}< e^d$,注意原文中用的是$\leqslant$,但是由于$e=\lim _{\frac{d}{m} \rightarrow 0}\left(1+\frac{d}{m}\right)^{\frac{m}{d}}$的定义是一个极限,所以应该是用$<$。
### 12.4.6 式(12.29)的解释
这里应该是作者的笔误,根据式12.22,$E(h)-\widehat{E}(h)$应当被绝对值符号包裹。将式12.28带入式12.22得
$$
P\left(\vert
E(h)-\widehat{E}(h) \vert> \epsilon
\right)
\leqslant 4{\left(\frac{2em}{d}\right)}^d\exp\left(-\frac{m\epsilon^2}{8}\right)
$$
令$4{\left(\frac{2em}{d}\right)}^d\exp\left(-\frac{m\epsilon^2}{8}\right)=\delta$可解得
$$
\delta=\sqrt{
\frac{8d\ln\frac{2em}{d}+8\ln\frac{4}{\delta}}{m}
}
$$
带入式12.22,则定理得证。这个式子是用VC维表示泛化界,可以看出,泛化误差界只与样本数量$m$有关,收敛速率为$\sqrt{\frac{\ln m}{m}}$
(书上简化为$\frac{1}{\sqrt{m}}$)。
### 12.4.7 式(12.30)的解释
这个是经验风险最小化的定义式。即从假设空间中找出能使经验风险最小的假设。
### 12.4.8 定理12.4的解释
首先回忆PAC可学习的概念,见定义12.2,而可知/不可知PAC可学习之间的区别仅仅在于概念类$c$是否包含于假设空间$\mathcal{H}$中。令
$$
\begin{aligned}
\delta^\prime = \frac{\delta}{2} \\
\sqrt{\frac{\left(\ln 2 / \delta^{\prime}\right)}{2 m}}=\frac{\epsilon}{2}
\end{aligned}
$$
结合这两个标记的转换,由推论12.1可知:
$$
\widehat{E}(g)-\frac{\epsilon}{2} \leqslant E(g) \leqslant \widehat{E}(g)+\frac{\epsilon}{2}
$$
至少以$1-\delta/2$的概率成立。写成概率的形式即:
$$
P\left(|E(g)-\widehat{E}(g)| \leqslant \frac{\epsilon}{2}\right) \geqslant 1-\delta / 2
$$
即$P\left(\left(E(g)-\widehat{E}(g) \leqslant \frac{\epsilon}{2}\right) \wedge\left(E(g)-\widehat{E}(g) \geqslant-\frac{\epsilon}{2}\right)\right) \geqslant 1-\delta / 2$,因此$P\left(E(g)-\widehat{E}(g) \leqslant \frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$且$P\left(E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$成立。
再令
$$
\sqrt{\frac{8 d \ln \frac{2 e m}{d}+8 \ln \frac{4}{\delta^{\prime}}}{m}}=\frac{\epsilon}{2}
$$
由式12.29可知
$$
P\left(\left\vert
E(h)-\widehat{E}(h) \right\vert\leqslant \frac{\epsilon}{2}
\right)
\geqslant 1-\frac{\delta}{2}
$$
同理,$P\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$且$P\left(E(h)-\widehat{E}(h) \geqslant -\frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$成立。
由$P\left(E(g)-\widehat{E}(g) \geqslant - \frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$和$P\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}\right) \geqslant 1-\delta / 2$均成立可知
则事件$E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2}$和事件$E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}$同时成立的概率为:
$$
\begin{aligned}
&P\left(
\left(E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2} \right)\wedge\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}
\right)\right)
\\= &
P\left(E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2}\right) +
P\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}\right)
- P\left(\left(E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2} \right)\vee\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}
\right)\right)
\\\geqslant &1 - \delta/2 + 1 - \delta/2 - 1
\\=& 1-\delta
\end{aligned}
$$
即
$$
P\left(
\left(E(g)-\widehat{E}(g) \geqslant -\frac{\epsilon}{2} \right)\wedge\left(E(h)-\widehat{E}(h) \leqslant \frac{\epsilon}{2}
\right)\right) \geqslant 1-\delta
$$
因此
$$
P\left(
\widehat{E}(g)-E(g)+E(h)-\widehat{E}(h)\leqslant\frac{\epsilon}{2} + \frac{\epsilon}{2}
\right) = P\left(E(h)-E(g)\leqslant\widehat{E}(h)-\widehat{E}(g)+\epsilon\right)
\geqslant 1 - \delta
$$
再由$h$和$g$的定义,$h$表示假设空间中经验误差最小的假设,$g$表示泛化误差最小的假设,将这两个假设共用作用于样本集$D$,则一定有$\widehat{E}(h)\leqslant\widehat{E}(g)$,因此上式可以简化为:
$$
P\left(E(h)-E(g)\leqslant\epsilon\right)
\geqslant 1 - \delta
$$
根据式12.32和式12.34,可以求出$m$为关于$\left(1/\epsilon,1/\delta,\text{size}(x),\text{size}(c)\right)$的多项式,因此根据定理12.2,定理12.5,得到结论任何VC维有限的假设空间$\mathcal{H}$都是(不可知)PAC可学习的。
## 12.5 Rademacher复杂度
上一节中介绍的基于VC维的泛化误差界是分布无关、数据独立的,本节将要介绍的Rademacher复杂度则在一定程度上考虑了数据分布。
### 12.5.1 式(12.36)的解释
这里解释从第一步到第二步的推导,因为前提假设是2分类问题,$y_k\in\{-1, +1\}$,因此$\mathbb{I}\left(h(x_i)\neq y_i\right)\equiv \frac{1-y_i h(x_i)}{2}$。这是因为假如$y_i=+1, h(x_i)=+1$或$y_i=-1, h(x_i)=-1$,有$\mathbb{I}\left(h(x_i)\neq y_i\right)=0= \frac{1-y_i h(x_i)}{2}$;反之,假如$y_i=-1, h(x_i)=+1$或$y_i=+1, h(x_i)=-1$,有$\mathbb{I}\left(h(x_i)\neq y_i\right)=1= \frac{1-y_i h(x_i)}{2}$。
### 12.5.2 式(12.37)的解释
由公式12.36可知,经验误差$\widehat{E}(h)$和$\frac{1}{m} \sum_{i=1}^{m} y_{i} h\left(\boldsymbol{x}_{i}\right)$呈反比的关系,因此假设空间中能使经验误差最小的假设$h$即是使$\frac{1}{m} \sum_{i=1}^{m} y_{i} h\left(\boldsymbol{x}_{i}\right)$最大的$h$。
### 12.5.3 式(12.38)的解释
上确界$\sup$这个概念前面已经解释过,见式(12.7)的解析。相比于式(12.37),
样例真实标记 $y_i$ 换为了 Rademacher 随机变量
$\sigma_i, \arg \max _{h \in \mathcal{H}}$ 换为了 上确界
$\sup _{h \in \mathcal{H}^{\circ}}$ 该式表示, 对于样例集
$D=\left\{\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right\}$,
假设空间 $\mathcal{H}$ 中的假设对其预 测结果
$\left\{h\left(\boldsymbol{x}_1\right), h\left(\boldsymbol{x}_2\right), \ldots, h\left(\boldsymbol{x}_m\right)\right\}$
与随机变量集合
$\boldsymbol{\sigma}=\left\{\sigma_1, \sigma_2, \ldots, \sigma_m\right\}$
的契合程度。接下 来解释一下该式的含义。
$\frac{1}{m} \sum_{i=1}^m \sigma_i h\left(\boldsymbol{x}_i\right)$ 中的
$\boldsymbol{\sigma}=\left\{\sigma_1, \sigma_2, \ldots, \sigma_m\right\}$
表示单次随机生成的结果(生成后就固定不 动 ), 而
$\left\{h\left(\boldsymbol{x}_1\right), h\left(\boldsymbol{x}_2\right), \ldots, h\left(\boldsymbol{x}_m\right)\right\}$
表示某个假设 $h \in \mathcal{H}$ 的预测结果, 至于
$\frac{1}{m} \sum_{i=1}^m \sigma_i h\left(\boldsymbol{x}_i\right)$ 的
取值则取决于本次随机生成的 $\sigma$ 和假设 $h$ 的预测结果的契合程度。
进一步地,
$\sup _{h \in \mathcal{H}} \frac{1}{m} \sum_{i=1}^m \sigma_i h\left(\boldsymbol{x}_i\right)$
中的
$\boldsymbol{\sigma}=\left\{\sigma_1, \sigma_2, \ldots, \sigma_m\right\}$
仍表示单次随机生成的结 果 (生成后就固定不动), 但此时需求解的是假设空间
$\mathcal{H}$ 中所有假设与 $\sigma$ 最契合的那个 $h$ 。
例如, $\boldsymbol{\sigma}=\{-1,+1,-1,+1\}$ (即 $m=4$, 这里
$\boldsymbol{\sigma}$ 仅为本次随机生成结果而已, 下次生
成结果可能是另一组结果), 假设空间
$\mathcal{H}=\left\{h_1, h_2, h_3\right\}$, 其中
$$
\begin{aligned}
& \left\{h_1\left(\boldsymbol{x}_1\right), h_1\left(\boldsymbol{x}_2\right), h_1\left(\boldsymbol{x}_3\right), h_1\left(\boldsymbol{x}_4\right)\right\}=\{-1,-1,-1,-1\} \\
& \left\{h_2\left(\boldsymbol{x}_1\right), h_2\left(\boldsymbol{x}_2\right), h_2\left(\boldsymbol{x}_3\right), h_2\left(\boldsymbol{x}_4\right)\right\}=\{-1,+1,-1,-1\} \\
& \left\{h_3\left(\boldsymbol{x}_1\right), h_3\left(\boldsymbol{x}_2\right), h_3\left(\boldsymbol{x}_3\right), h_3\left(\boldsymbol{x}_4\right)\right\}=\{+1,+1,+1,+1\}
\end{aligned}
$$
易知
$\frac{1}{m} \sum_{i=1}^m \sigma_i h_1\left(\boldsymbol{x}_i\right)=0, \frac{1}{m} \sum_{i=1}^m \sigma_i h_2\left(\boldsymbol{x}_i\right)=\frac{2}{4}, \frac{1}{m} \sum_{i=1}^m \sigma_i h_3\left(\boldsymbol{x}_i\right)=0$,
因此
$$
\sup _{h \in \mathcal{H}} \frac{1}{m} \sum_{i=1}^m \sigma_i h\left(\boldsymbol{x}_i\right)=\frac{2}{4}
$$
### 12.5.4 式(12.39)的解释
$$
\mathbb{E}_{\boldsymbol{\sigma}}\left[\sup _{h \in \mathcal{H}} \frac{1}{m} \sum_{i=1}^{m} \sigma_{i} h\left(\boldsymbol{x}_{i}\right)\right]
$$
\[解析\]:这个式子可以用来衡量假设空间$\mathcal{H}$的表达能力,对变量$\sigma$求期望可以理解为当变量$\sigma$包含所有可能的结果时,假设空间$\mathcal{H}$中最契合的假设$h$和变量的平均契合程度。因为前提假设是2分类的问题,因此$\sigma_i$一共有$2^m$种,这些不同的$\sigma_i$构成了数据集$D=\{(x_1, y_1), (x_2, y_2),\dots, (x_m, y_m)\}$的"对分"(12.4节),如果一个假设空间的表达能力越强,那么就越有可能对于每一种$\sigma_i$,假设空间中都存在一个$h$使得$h(x_i)$和$\sigma_i$非常接近甚至相同,对所有可能的$\sigma_i$取期望即可衡量假设空间的整体表达能力,这就是这个式子的含义。
### 12.5.5 式(12.40)的解释
对比式12.39,这里使用函数空间$\mathcal{F}$代替了假设空间$\mathcal{H}$,函数$f$代替了假设$h$,很容易理解,因为假设$h$即可以看做是作用在数据$x_i$上的一个映射,通过这个映射可以得到标签$y_i$。注意前提假设实值函数空间$\mathcal{F}:\mathcal{Z}\rightarrow\mathbb{R}$,即映射$f$将样本$z_i$映射到了实数空间,这个时候所有的$\sigma_i$将是一个标量即$\sigma_i\in\{+1, -1\}$。
### 12.5.6 式(12.41)的解释
这里所要求的是$\mathcal{F}$关于分布$\mathcal{D}$的Rademacher复杂度,因此从$\mathcal{D}$中采出不同的样本$Z$,计算这些样本对应的Rademacher复杂度的期望。
### 12.5.7 定理12.5的解释
首先令记号
$$
\begin{aligned} \widehat{E}_{Z}(f) &=\frac{1}{m} \sum_{i=1}^{m} f\left(\boldsymbol{z}_{i}\right) \\ \Phi(Z) &=\sup _{f \in \mathcal{F}} \left(\mathbb{E}[f]-\widehat{E}_{Z}(f)\right) \end{aligned}
$$
即$\widehat{E}_{Z}(f)$表示函数$f$作为假设下的经验误差,$\Phi(Z)$表示泛化误差和经验误差的差的上确界。再令$Z^\prime$为只与$Z$有一个示例(样本)不同的训练集,不妨设$z_m\in Z$和$z^\prime_m\in Z^\prime$为不同的示例,那么有
$$
\begin{aligned} \Phi\left(Z^{\prime}\right)-\Phi(Z) &=\sup _{f \in \mathcal{F}} \left(\mathbb{E}[f]-\widehat{E}_{Z^{\prime}}(f)\right)-\sup _{f \in \mathcal{F}} \left(\mathbb{E}[f]-\widehat{E}_{Z}(f)\right) \\ & \leqslant \sup _{f \in \mathcal{F}} \left(\widehat{E}_{Z}(f)-\widehat{E}_{Z^{\prime}}(f)\right) \\ &=\sup_{f\in\mathcal{F}}\frac{\sum^m_{i=1}f(z_i)-\sum^m_{i=1}f(z^\prime_i)}{m}\\&=\sup _{f \in \mathcal{F}} \frac{f\left(z_{m}\right)-f\left(z_{m}^{\prime}\right)}{m} \\ & \leqslant \frac{1}{m} \end{aligned}
$$
第一个不等式是因为上确界的差不大于差的上确界[5],第四行的等号由于$Z^\prime$与$Z$只有$z_m$不相同,最后一行的不等式是因为前提假设$\mathcal{F}:\mathcal{Z}\rightarrow [0,1]$,即$f(z_m),f(z_m^\prime)\in[0,1]$。
同理
$$
\Phi(Z)-\Phi\left(Z^{\prime}\right) =\sup _{f \in \mathcal{F}} \frac{f\left(z_{m}^\prime\right)-f\left(z_{m}\right)}{m} \leqslant \frac{1}{m}
$$
综上二式有:
$$
\left\vert \Phi(Z)-\Phi\left(Z^{\prime}\right)\right\vert \leqslant \frac{1}{m}
$$
将$\Phi$看做函数$f$(注意这里的$f$不是$\Phi$定义里的$f$),那么可以套用McDiarmid不等式的结论式12.7
$$
P\left(\Phi(Z)-\mathbb{E}_{Z}[\Phi(Z)] \geqslant \epsilon\right) \leqslant \exp \left(\frac{-2 \epsilon^{2}}{\sum_{i} c_{i}^{2}}\right)
$$
令$\exp \left(\frac{-2 \epsilon^{2}}{\sum_{i} c_{i}^{2}}\right)=\delta$可以求得$\epsilon=\sqrt{\frac{\ln (1 / \delta)}{2 m}}$,所以
$$
P\left(\Phi(Z)-\mathbb{E}_{Z}[\Phi(Z)] \geqslant \sqrt{\frac{\ln (1 / \delta)}{2 m}}\right) \leqslant \delta
$$
由逆事件的概率定义得
$$
P\left(\Phi(Z)-\mathbb{E}_{Z}[\Phi(Z)] \leqslant \sqrt{\frac{\ln (1 / \delta)}{2 m}}\right) \geqslant 1-\delta
$$
即书中式12.44的结论。下面来估计$\mathbb{E}_{Z}[\Phi(Z)]$的上界:
$$
\begin{aligned} \mathbb{E}_{Z}[\Phi(Z)] &=\mathbb{E}_{Z}\left[\sup _{f \in \mathcal{F}} \left(\mathbb{E}[f]-\widehat{E}_{Z}(f)\right)\right] \\ &=\mathbb{E}_{Z}\left[\sup _{f \in \mathcal{F}} \mathbb{E}_{Z^{\prime}}\left[\widehat{E}_{Z^{\prime}}(f)-\widehat{E}_{Z}(f)\right]\right] \\ & \leqslant \mathbb{E}_{Z, Z^{\prime}}\left[\sup _{f \in \mathcal{F}}\left( \widehat{E}_{Z^{\prime}}(f)-\widehat{E}_{Z}(f)\right)\right] \\ &=\mathbb{E}_{Z, Z^{\prime}}\left[\sup _{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m}\left(f\left(\boldsymbol{z}_{i}^{\prime}\right)-f\left(\boldsymbol{z}_{i}\right)\right)\right] \\ &=\mathbb{E}_{\boldsymbol{\sigma}, Z,Z^{\prime}}\left[\sup _{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m} \sigma_{i}\left(f\left(\boldsymbol{z}_{i}^{\prime}\right)-f\left(\boldsymbol{z}_{i}\right)\right)\right] \\ &\leqslant \mathbb{E}_{\boldsymbol{\sigma}, Z^{\prime}}\left[\sup _{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m} \sigma_{i} f\left(\boldsymbol{z}_{i}^{\prime}\right)\right]+\mathbb{E}_{\boldsymbol{\sigma}, Z}\left[\sup _{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m}-\sigma_{i} f\left(\boldsymbol{z}_{i}\right)\right] \\ &=2 \mathbb{E}_{\boldsymbol{\sigma}, Z}\left[\sup _{f \in \mathcal{F}} \frac{1}{m} \sum_{i=1}^{m} \sigma_{i} f\left(\boldsymbol{z}_{i}\right)\right] \\ &=2 R_{m}(\mathcal{F}) \end{aligned}
$$
第二行等式是外面套了一个对服从分布$\mathcal{D}$的示例集$Z^\prime$求期望,因为$\mathbb{E}_{Z^\prime\sim\mathcal{D}}[\widehat{E}_{Z^\prime}(f)]=\mathbb{E}(f)$,而采样出来的$Z^\prime$和$Z$相互独立,因此有$\mathbb{E}_{Z^\prime\sim\mathcal{D}}[\widehat{E}_{Z}(f)]=\widehat{E}_{Z}(f)$。
第三行不等式基于上确界函数$\sup$是个凸函数,将$\sup_{f\in\mathcal{F}}$看做是凸函数$f$,将$\widehat{E}_{Z^{\prime}}(f)-\widehat{E}_{Z}(f)$看做变量$x$根据Jesen不等式(式12.4),有$\mathbb{E}_{Z}\left[\sup _{f \in \mathcal{F}} \mathbb{E}_{Z^{\prime}}\left[\widehat{E}_{Z^{\prime}}(f)-\widehat{E}_{Z}(f)\right]\right] \leqslant \mathbb{E}_{Z, Z^{\prime}}\left[\sup _{f \in \mathcal{F}}\left( \widehat{E}_{Z^{\prime}}(f)-\widehat{E}_{Z}(f)\right)\right]$,其中$\mathbb{E}_{Z, Z^{\prime}}[\cdot]$是$\mathbb{E}_{Z}[\mathbb{E}_{Z^\prime}[\cdot]]$的简写形式。
第五行引入对Rademacher随机变量的期望,由于函数值空间是标量,因为$\sigma_i$也是标量,即$\sigma_i\in\{-1, +1\}$,且$\sigma_i$总以相同概率可以取到这两个值,因此可以引入$\mathbb{E}_{\sigma}$而不影响最终结果。
第六行利用了上确界的和不小于和的上确界[5],因为第一项中只含有变量$z^\prime$,所以可以将$\mathbb{E}_Z$去掉,因为第二项中只含有变量$z$,所以可以将$\mathbb{E}_{Z^\prime}$去掉。
第七行利用$\sigma$是对称的,所以$-\sigma$的分布和$\sigma$完全一致,所以可以将第二项中的负号去除,又因为$Z$和$Z^\prime$均是从$\mathcal{D}$中$i.i.d.$采样得到的数据,因此可以将第一项中的$z^\prime_i$替换成$z$,将$Z^\prime$替换成$Z$。
最后根据定义式12.41可得$\mathbb{E}_{Z}[\Phi(Z)]=2\mathcal{R}_m(\mathcal{F})$,式(12.42)得证。
## 12.6 定理12.6的解释
针对二分类问题, 定理 $12.5$ 给出了 "泛化误差" 和 "经验误差" 的关系, 即:
- 式(12.47)基于 Rademacher 复杂度 $R_m(\mathcal{H})$ 给出了泛化误差
$E(h)$ 的上界;
- 式(12.48)基于经验 Rademacher 复杂度 $\widehat{R}_D(\mathcal{H})$
给出了泛化误差 $E(h)$ 的上界。
可能大家都会有疑问:定理12.6的设定其实也适用于定理12.5, 即值域为二 值的
$\{-1,+1\}$ 也属于值域为连续值的 $[0,1]$ 的一种特殊情况,
这一点从接下来的式(12.49)的 转换可以看出。那么,
为什么还要针对二分类问题专门给出定理12.6呢?
根据(经验)Rademacher 复杂度的定义可以知道, $R_m(\mathcal{H})$ 和
$\widehat{R}_D(\mathcal{H})$ 均大于零 (参见前面 有关式(12.39)的解释,
书中式(12.39)下面的一行也提到该式取值范围是 $[0,1])$; 因此, 相比
于定理12.5来说, 定理12.6的上界更紧,
因为二者的界只有中间一项关于(经验)Rademacher 复杂度的部分不同,
在定理12.5中是两倍的(经验)Rademacher 复杂度, 而在定理 12.6中是
一倍的(经验)Rademacher 复杂度, 而(经验)Rademacher 复杂度大于零。
因此, 为二分类问题量身定制的定理12.6相比于通用的定理12.5来说,
二者的区别在 于定理12.6考虑了二分类的特殊情况,
得到了比定理12.5更紧的泛化误差界, 仅此而已。
下面做一些证明:
(1)首先通过式(12.49)将值域为 $\{-1,+1\}$ 的假设空间 $\mathcal{H}$
转化为值域为 $[0,1]$ 的函数空间 $\mathcal{F}_{\mathcal{H}}$ ;
(2)接下来是该证明最核心部分, 即证明式(12.50)的结论
$\widehat{R}_Z\left(\mathcal{F}_{\mathcal{H}}\right)=\frac{1}{2} \widehat{R}_D(\mathcal{H})$
: 第 1 行等号就是定义 $12.8$; 第 2 行等号就是根据式(12.49)将
$f_h\left(\boldsymbol{x}_i, y_i\right)$ 换为
$\mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)$; 第 3
行等号类似于式(12.36)的第 2 个等号; 第 4 行等号说明如下:
$$
\sup _{h \in \mathcal{H}} \frac{1}{m} \sum_{i=1}^m \sigma_i \frac{1-y_i h\left(\boldsymbol{x}_i\right)}{2}=\sup _{h \in \mathcal{H}} \frac{1}{2 m} \sum_{i=1}^m \sigma_i+\sup _{h \in \mathcal{H}} \frac{1}{2 m} \sum_{i=1}^m \frac{-y_i \sigma_i h\left(\boldsymbol{x}_i\right)}{2}
$$
其中 $\sup _{h \in \mathcal{H}} \frac{1}{2 m} \sum_{i=1}^m \sigma_i$ 与
$h$ 无关, 所以
$\sup _{h \in \mathcal{H}} \frac{1}{2 m} \sum_{i=1}^m \sigma_i=\frac{1}{2 m} \sum_{i=1}^m \sigma_i$,
即第 4 行等号; 第 5 行等号是由于
$\mathbb{E}_{\boldsymbol{\sigma}}\left[\frac{1}{m} \sum_{i=1}^m \sigma_i\right]=0$,
例如当 $m=2$ 时, 所有可能得 $\boldsymbol{\sigma}$ 包括 $(-1,-1)$,
$(-1,+1),(+1,-1)$ 和 $(+1,+1)$, 求期望后显然结果等于 0 ; 第 6
行等号正如边注所说, " $-y_i \sigma_i$ 与 $\sigma_i$ 分布相同"
(原因跟定理12.5中证明
$\mathbb{E}_Z[\Phi(Z)] \leqslant 2 R_m(\mathcal{F})$ 相同,
即求期望时要针对所 有可能的 $\sigma$ 参见"西瓜书"第 282 页第 8 行); 第 7
行等号再次使用了定义12.8。
(3)关于式(12.51), 根据式(12.50)的结论, 可证明如下:
$$
R_m\left(\mathcal{F}_{\mathcal{H}}\right)=\mathbb{E}_Z\left[\widehat{R}_Z\left(\mathcal{F}_{\mathcal{H}}\right)\right]=\mathbb{E}_D\left[\frac{1}{2} \widehat{R}_D(\mathcal{H})\right]=\frac{1}{2} \mathbb{E}_D\left[\widehat{R}_D(\mathcal{H})\right]=\frac{1}{2} R_m(\mathcal{H})
$$
其中第 2 个等号由 $Z$ 变为 $D$ 只是符号根据具体情况的适时变化而已。
(4)最后, 将式(12.49)定义的 $f_h$ 替换定理 $12.5$ 中的函数 $f$, 则
$$
\begin{gathered}
\mathbb{E}[f(\boldsymbol{z})]=\mathbb{E}[\mathbb{I}(h(\boldsymbol{x}) \neq y)]=E(h) \\
\frac{1}{m} \sum_{i=1}^m f\left(\boldsymbol{z}_i\right)=\frac{1}{m} \sum_{i=1}^m \mathbb{I}\left(h\left(\boldsymbol{x}_i\right) \neq y_i\right)=\widehat{E}(h)
\end{gathered}
$$
将式(12.51)代入式(12.42), 即用
$\frac{1}{2} R_m(\mathcal{H})$ 替换式(12.42)的 $R_m(\mathcal{F})$,
式(12.47)得证;
将式(12.50)代入式(12.43), 即用 $\frac{1}{2} \widehat{R}_D(\mathcal{H})$
替换式(12.43)的 $\widehat{R}_Z(\mathcal{F})$, 式(12.48)得证。
这里有个疑问在于,定理 $12.5$ 的前提是 "实值函数空间
$\mathcal{F}: \mathcal{Z} \rightarrow[0,1]$ ", 而式(12.49) 得到的函数
$f_h(z)$ 的值域实际为 $\{0,1\}$, 仍是离散的而非实值的; 当然, 定理 $12.5$
的证明也 只需要其函数值在 $[0,1]$ 范围内即可, 并不需要其连续。
### 12.6.1 式(12.52)的证明
比较繁琐,同书上所示,参见Foundations of Machine
Learning[6]
### 12.6.2 式(12.53)的推导
根据式12.28有$\Pi_{\mathcal{H}}(m) \leqslant\left(\frac{e \cdot m}{d}\right)^{d}$,根据式12.52有$R_{m}(\mathcal{H}) \leqslant \sqrt{\frac{2 \ln \Pi_{\mathcal{H}}(m)}{m}}$,因此$\Pi_{\mathcal{H}}(m) \leqslant \sqrt{\frac{2 d \ln \frac{e m}{d}}{m}}$,再根据式12.47
$E(h) \leqslant \widehat{E}(h)+R_{m}(\mathcal{H})+\sqrt{\frac{\ln (1 / \delta)}{2 m}}$
即证。
## 12.7 稳定性
上上节中介绍的基于VC维的泛化误差界是分布无关、数据独立的,上一节介绍的Rademacher复杂度则在一定程度上考虑了数据分布,但二者得到的结果均与具体学习算法无关;本节将要介绍的稳定性分析可以获得与算法有关的分析结果。算法的"稳定性"考察的是算法在输入发生变化时,输出是否会随之发生较大的变化。
### 12.7.1 泛化/经验/留一损失的解释
根据式(12.54)上方关于损失函数的描述:"刻画了假设 的预测标记 与真实标记
之间的差别",这里针对的是二分类,预测标记和真实标记均只能取 和
两个值,它们之间的"差别"又能是什么呢?
因此,当"差别"取为
时,式(12.54)的泛化损失就是式(12.1)的泛化误差,式(12.55)的经验损失就是式(12.2)的经验误差,如果类似于式(12.1)和式(12.2)继续定义留一误差,那么式(12.56)就对应于留一误差。
### 12.7.2 式(12.57)的解释
根据三角不等式[7],有$|a+b| \leq|a|+|b|$,将$a=\ell\left(\mathfrak{L}_{D}, \boldsymbol{z}\right)-\ell\left(\mathfrak{L}_{D^{i}}\right)$,$b=\ell\left(\mathfrak{L}_{D^{i}, \boldsymbol{z}}\right)-\ell\left(\mathfrak{L}_{D^{\backslash i}, \boldsymbol{z}}\right)$带入即可得出第一个不等式,根据$D^{\backslash i}$表示移除$D$中第$i$个样本,$D^i$表示替换$D$中第$i$个样本,那么$a,b$的变动均为一个样本,根据式12.57,$a\leqslant\beta, b\leqslant\beta$,因此$a +b \leqslant 2\beta$。
### 12.7.3 定理12.8的解释
西瓜书在该定理下方已明确给出该定理的意义, 即 "定理 $12.8$
给出了基于稳定性分析 推导出的学习算法 $\mathfrak{L}$
学得假设的泛化误差界", 式(12.58)和式(12.59)分别基于经验损失和留
一损失给出了泛化损失的上界。接下来讨论两个相关问题:
(1)定理 $12.8$ 的条件包括损失函数有界, 即
$0 \leqslant \ell\left(\mathfrak{L}_D, \boldsymbol{z}\right) \leqslant M$;
如本节第 1 条注解 "泛 化/经验/留一损失的解释" 中所述, 若 "差别" 取为
$\mathbb{I}\left(\mathfrak{L}_D(\boldsymbol{x}), y\right)$,
则泛化损失对应于泛化误 差, 此时上限 $M=1$ 。
(2)在前面泛化误差上界的推导中(例如定理 12.1、定理 12.3、定理 12.6、定理
12.7), 上界中与样本数 $m$ 有关的项收玫率均为 $O(1 / \sqrt{m})$,
但在该定理中却是 $O(\beta \sqrt{m})$; 一般来讲, 随着样本数 $m$ 的增加,
经验误差/损失应该收玫于泛化误差/损失, 因此这里假设 $\beta=1 / m$ (书
中式(12.59)下方第 3 行写为 $\beta=O(1 / m)$ ), 而在第 2 条注解 "定义
$12.10$ 的解释" 中已经提 到 $\beta$ 的取值的确会随着样本数 $m$
的增多会变小, 虽然书中并没有严格去讨论 $\beta$ 随 $m$ 增多的变 化规律,
但至少直觉上是对的。
### 12.7.4 式(12.60)的推导
将$\beta=\frac{1}{m}$带入至式(12.58)即得证。
### 12.7.5 经验损失最小化
顾名思义, "经验损失最小化" 指通过最小化经验损失来求得假设函数。
这里, "对于损失函数 $\ell$, 若学习算法 $\mathfrak{L}$
所输出的假设满足经验损失最小化, 则称算法 $\mathfrak{L}$
满足经验风险最小化原则, 简称算法是 ERM 的"。 在"西瓜书"第 278 页,
若学习算法 $\mathfrak{L}$ 输出的假设 $h$ 满足式(12.30), 则也称
$\mathfrak{L}$ 为满足经验风险最小 化原则的算法。而很明显,
式(12.30)是在最小化经验误差。
那么最小化经验误差和最小化经验损失有什么区别么?
在\"西瓜书"第 286 页左下角边注中提到,
"最小化经验误差和最小化经验损失有时并不相同, 这
是由于存在某些病态的损失函数 $\ell$
使得最小化经验损失并不是最小化经验误差"。
对于 "误差"、"损失"、"风险" 等概念的辨析,参见"西瓜书"第 2 章 $2.1$
节的注解。
### 12.7.6 定理(12.9)的证明的解释
首先明确几个概念,ERM表示算法$\mathcal{L}$满足经验风险最小化(Empirical
Risk
Minimization)。由于$\mathcal{L}$满足经验误差最小化,则可令$g$表示假设空间中具有最小泛化损失的假设,即
$$
\ell(g, \mathcal{D})=\min _{h \in \mathcal{H}} \ell(h, \mathcal{D})
$$
再令
$$
\begin{array}{l}{\epsilon^{\prime}=\frac{\epsilon}{2}} \\ {\frac{\delta}{2}=2 \exp \left(-2 m\left(\epsilon^{\prime}\right)^{2}\right)}\end{array}
$$
将$\epsilon^\prime=\frac{\epsilon}{2}$带入到${\frac{\delta}{2}=2 \exp \left(-2 m\left(\epsilon^{\prime}\right)^{2}\right)}$可以解得$m=\frac{2}{\epsilon^{2}} \ln \frac{4}{\delta}$,由Hoeffding不等式12.6,
$$
P\left(\left\vert\frac{1}{m} \sum_{i=1}^{m} x_{i}-\frac{1}{m} \sum_{i=1}^{m} \mathbb{E}\left(x_{i}\right)\right\vert \geqslant \epsilon\right) \leqslant 2 \exp \left(-2 m \epsilon^{2}\right)
$$
其中$\frac{1}{m} \sum_{i=1}^{m} \mathbb{E}\left(x_{i}\right)=\ell(g, \mathcal{D})$,$\frac{1}{m} \sum_{i=1}^{m} x_{i}=\widehat{\ell}(g, \mathcal{D})$,带入可得
$$
P(|\ell(g, \mathcal{D})-\widehat{\ell}(g, D)| \geqslant \frac{\epsilon}{2})\leqslant \frac{\delta}{2}
$$
根据逆事件的概率可得
$$
P(|\ell(g, \mathcal{D})-\widehat{\ell}(g, D)| \leqslant \frac{\epsilon}{2})\geqslant 1- \frac{\delta}{2}
$$
即文中$|\ell(g, \mathcal{D})-\widehat{\ell}(g, D)| \leqslant \frac{\epsilon}{2}$至少以$1-\delta/2$的概率成立。
由$\frac{2}{m}+(4+M) \sqrt{\frac{\ln (2 / \delta)}{2 m}}=\frac{\epsilon}{2}$可以求解出
$$
\sqrt{m}=\frac{(4+M) \sqrt{\frac{\ln (2 / \delta)}{2}}+\sqrt{(4+M)^{2} \frac{\ln (2 / \delta)}{2}-4 \times \frac{\epsilon}{2} \times(-2)}}{2 \times \frac{\epsilon}{2}}
$$
即$m=O\left(\frac{1}{\epsilon^{2}} \ln \frac{1}{\delta}\right)$。
由$P(|\ell(g, \mathcal{D})-\widehat{\ell}(g, D)| \leqslant \frac{\epsilon}{2})\geqslant 1- \frac{\delta}{2}$可以按照同公式12.31中介绍的相同的方法推导出
$$
P(\ell(\mathfrak{L}, \mathcal{D})-\ell(g, \mathcal{D})\leqslant\epsilon)\geqslant 1-\delta
$$
又因为$m$为与$\left(1/\epsilon,1/\delta,\text{size}(x),\text{size}(c)\right)$相关的多项式的值,因此根据定理12.2,定理12.5,得到结论$\mathcal{H}$是(不可知)PAC可学习的。
## 参考文献
[1] Wassily Hoeffding. Probability inequalities for sums of bounded random variables. Journal of the
American statistical association, 58(301):13–30, 1963.
[2] Vladimir N Vapnik and A Ya Chervonenkis. On the uniform convergence of relative frequencies of
events to their probabilities. In Measures of complexity, pages 11–30. Springer, 2015.
[3] Wikipedia contributors. Binomial theorem, 2020.
[4] Wikipedia contributors. E, 2020.
[5] robjohn. Supremum of the difference of two functions, 2013.
[6] Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar. Foundations of machine learning. 2018.
[7] Wikipedia contributors. Triangle inequality, 2020.
================================================
FILE: docs/chapter13/chapter13.md
================================================
# 第13章 半监督学习
## 13.1 未标记样本
"西瓜书"两张插图可谓本节亮点: 图 13.1 直观地说
明了使用末标记样本后带来的好处; 图 13.2
对比了主动学习、(纯)半监督学习和直推学习,
尤其是巧妙地将主动学习的概念融入进来。
直推学习是综合运用手头上已有的少量有标记样本和大量末标记样本,
对这些大量末标 记样本预测其标记;
而(纯)半监督学习是综合运用手头上已有的少量有标记样本和大量末标 记样本,
对新的末标记样本预测其标记。
对于直推学习, 当然可以仅利用有标记样本训练一个学习器,
再对末标记样本进行预测, 此即传统的监督学习; 对于(纯)半监督学习,
当然也可以舍弃大量末标记样本, 仅利用有标 记样本训练一个学习器,
再对新的末标记样本进行预测。但图 13.1 直观地说明了使用末标
记样本后带来的好处, 然而利用了末标记样本后是否真的会如图 13.1
所示带来预期的好处 呢? 此即 13.7 节阅读材料中提到的安全半监督学习。
接下来在 13.2 节、13.3 节、13.4 节、13.5 节介绍的四种半监督学习方法,
都可以应用 于直推学习, 但若要应用于(纯)半监督学习, 则要有额外的考虑,
尤其是 13.4 节介绍的图半 监督学习, 因为该节最后一段也明确提到
"构图过程仅能考虑训练样本集, 难以判知新样本 在图中的位置, 因此,
在接收到新样本时, 或是将其加入原数据集对图进行重构并重新进行 标记传播,
或是需引入额外的预测机制"。
## 13.2 生成式方法
本节与 9.4.3 节的高斯混合聚类密切相关, 有关 9.4.3 节的公式推导参见附录,
建议将高 斯混合聚类的内容理解之后再学习本节算法。
### 13.2.1 式(13.1)的解释
高斯混合分布的定义式。该式即为9.4.3节的式(9.29),式(9.29)中的$k$个混合成分对应于此处的$N$个可能的类别。
### 13.2.2 式(13.2)的推导
首先, 该式的变量 $\Theta \in\{1,2, \ldots, N\}$ 即为式(9.30)中的
$z_j \in\{1,2, \ldots, k\}$ 。
从公式第 1 行到第 2
行是对概率进行边缘化(marginalization);通过引入$\Theta$并对其求和
$\sum_{i=1}^N$以抵消引入的影响。从公式第 2 行到第 3 行推导如下
$$
\begin{aligned}p(y=j, \Theta=i | \boldsymbol{x}) &=\frac{p(y=j, \Theta=i, \boldsymbol{x})}{p(\boldsymbol{x})} \\&=\frac{p(y=j, \Theta=i, \boldsymbol{x})}{p(\Theta=i, \boldsymbol{x})} \cdot \frac{p(\Theta=i, \boldsymbol{x})}{p(\boldsymbol{x})} \\&=p(y=j | \Theta=i, \boldsymbol{x}) \cdot p(\Theta=i | \boldsymbol{x})\end{aligned}
$$
$p(y=j \mid \boldsymbol{x})$ 表示 $\boldsymbol{x}$ 的类别 $y$ 为第 $j$
个类别标记的后验概率(注意条件是已知 $\boldsymbol{x})$;
$p(y=j, \Theta=i \mid \boldsymbol{x})$ 表示 $\boldsymbol{x}$ 的类别 $y$
为第 $j$ 个类别标记且由第 $i$ 个高斯混合成分生成的后
验概率(注意条件是已知 $\boldsymbol{x}$ );
$p(y=j \mid \Theta=i, \boldsymbol{x})$ 表示第 $i$ 个高斯混合成分生成的
$\boldsymbol{x}$ 其类别 $y$ 为第 $j$ 个类别标记的概率 (注意条件是已知
$\Theta$ 和 $\boldsymbol{x}$, 这里修改了西瓜书式(13.3)下方对
$p(y=j \mid \Theta=i, \boldsymbol{x})$ 的表述);
$p(\Theta=i \mid \boldsymbol{x})$ 表示 $\boldsymbol{x}$ 由第 $i$
个高斯混合成分生成的后验概率(注意条件是已知 $\boldsymbol{x})$ 。
"西瓜书"第 296 页第 2 行提到 "假设样本由高斯混合模型生成,
且每个类别对应一个高斯 混合成分", 也就是说, 如果已知 $\boldsymbol{x}$
是由哪个高斯混合成分生成的, 也就知道了其类别。而
$p(y=j \mid \Theta=i, \boldsymbol{x})$ 表示已知 $\Theta$ 和
$\boldsymbol{x}$ 的条件概率(已知 $\Theta$ 就足够, 不需 $\boldsymbol{x}$
的信息), 因此
$$
p(y=j \mid \Theta=i, \boldsymbol{x})= \begin{cases}1, & i=j \\ 0, & i \neq j\end{cases}
$$
### 13.2.3 式(13.3)的推导
根据式(13.1)
$$
p(\boldsymbol{x})=\sum_{i=1}^{N} \alpha_{i} \cdot p\left(\boldsymbol{x} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)
$$
因此
$$
\begin{aligned}p(\Theta=i | \boldsymbol{x})&=\frac{p(\Theta=i , \boldsymbol{x})}{P(x)}\\&=\frac{\alpha_{i} \cdot p\left(\boldsymbol{x} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\sum_{i=1}^{N} \alpha_{i} \cdot p\left(\boldsymbol{x} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}\end{aligned}
$$
### 13.2.4 式(13.4)的推导
第二项很好解释,当不知道类别信息的时候,样本$x_j$的概率可以用式 13.1
表示,所有无类别信息的样本$D_u$的似然是所有样本的乘积,因为$\ln$函数是单调的,所以也可以将$\ln$函数作用于这个乘积消除因为连乘产生的数值计算问题。第一项引入了样本的标签信息,由
$$
p(y=j | \Theta=i, \boldsymbol{x})=\left\{\begin{array}{ll}1, & i=j \\0, & i \neq j\end{array}\right.
$$
可知,这项限定了样本$x_j$只可能来自于$y_j$所对应的高斯分布。
### 13.2.5 式(13.5)的解释
参见式(13.3),这项可以理解成样本$x_j$属于类别标签$i$(或者说由第$i$个高斯分布生成)的后验概率。其中$\alpha_i,\boldsymbol{\mu}_{i}\boldsymbol{\Sigma}_i$可以通过有标记样本预先计算出来。即:
$$
\begin{array}{l}\alpha_{i}=\frac{l_{i}}{\left|D_{l}\right|}, \text { where }\left|D_{l}\right|=\sum_{i=1}^{N} l_{i} \\\boldsymbol{\mu}_{i}=\frac{1}{l_{i}} \sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{x}_{j} \\\boldsymbol{\Sigma}_{i}=\frac{1}{l_{i}} \sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}\end{array}
$$
其中 $l_i$ 表示第 $i$ 类样本的有标记样本数目, $\left|D_l\right|$
为有标记样本集样本总数, $\wedge$ 为 "逻辑与"。
### 13.2.6 式(13.6)的解释
这项可以由
$$
\cfrac{\partial LL(D_l \cup D_u) }{\partial \mu_i}=0
$$
而得,将式
13.4 的两项分别记为:
$$
\begin{aligned}LL(D_l)&=\sum_{(\boldsymbol{x_j},y_j \in D_l)}\ln\left(\sum_{s=1}^{N}\alpha_s \cdot p(\boldsymbol{x_j}\vert \boldsymbol{\mu}_s,\boldsymbol{\Sigma}_s) \cdot p(y_i|\Theta = s,\boldsymbol{x_j})\right)\\&=\sum_{(\boldsymbol{x_j},y_j \in D_l)}\ln\left(\alpha_{y_j} \cdot p(\boldsymbol{x_j} \vert \boldsymbol{\mu}_{y_j},\boldsymbol{\Sigma}_{y_j})\right)\\LL(D_u)&=\sum_{\boldsymbol{x_j} \in D_u} \ln\left(\sum_{s=1}^N \alpha_s \cdot p(\boldsymbol{x_j} | \boldsymbol{\mu}_s,\boldsymbol{\Sigma}_s)\right)\end{aligned}
$$
首先,$LL(D_l)$对$\boldsymbol{\mu_i}$求偏导,$LL(D_l)$求和号中只有$y_j=i$
的项能留下来,即
$$
\begin{aligned}\frac{\partial L L\left(D_{l}\right)}{\partial \boldsymbol{\mu}_{i}} &=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{\partial \ln \left(\alpha_{i} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)\right)}{\partial \boldsymbol{\mu}_{i}} \\&=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{1}{p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \cdot \frac{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\partial \boldsymbol{\mu}_{i}} \\&=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{1}{p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right) \\&=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\end{aligned}
$$
$LL(D_u)$对$\boldsymbol{\mu_i}$求导,参考 9.33 的推导:
$$
\begin{aligned}
\frac{\partial L L\left(D_{u}\right)}{\partial \boldsymbol{\mu}_{i}} &=\sum_{\boldsymbol{x}_{j} \in D_{u}} \frac{\alpha_{i}}{\sum_{s=1}^{N} \alpha_{s} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{s}, \boldsymbol{\Sigma}_{s}\right)} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right) \\
&=\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)
\end{aligned}
$$
综上,
$$
\begin{aligned}\frac{\partial L L\left(D_{l} \cup D_{u}\right)}{\partial \boldsymbol{\mu}_{i}} &=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)+\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right) \\&=\boldsymbol{\Sigma}_{i}^{-1}\left(\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)+\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\right) \\&=\boldsymbol{\Sigma}_{i}^{-1}\left(\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{x}_{j}+\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{x}_{j}-\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{\mu}_{i}-\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{\mu}_{i}\right)\end{aligned}
$$
令$\frac{\partial L L\left(D_{l} \cup D_{u}\right)}{\partial \boldsymbol{\mu}_{i}}=0$,两边同时左乘$\Sigma_i$并移项:
$$
\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{\mu}_{i}+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{\mu}_{i}=\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{x}_{j}+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{x}_{j}
$$
上式中,$\boldsymbol{\mu_i}$
可以作为常量提到求和号外面,而$\sum_{\left(x_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} 1=l_{i}$,即第$i$类样本的有标记
样本数目,因此
$$
\left(\sum_{x_{j} \in D_{u}} \gamma_{j i}+\sum_{\left(x_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} 1\right) \boldsymbol{\mu}_{i}=\sum_{x_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{x}_{j}+\sum_{\left(x_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{x}_{j}
$$
即得式(13.6)。
### 13.2.7 式(13.7)的解释
首先$LL(D_l)$对$\boldsymbol{\Sigma_i}$求偏导 ,类似于式(13.6)
$$
\begin{aligned} \frac{\partial L L\left(D_{l}\right)}{\partial \boldsymbol{\Sigma}_{i}} &=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{\partial \ln \left(\alpha_{i} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)\right)}{\partial \boldsymbol{\Sigma}_{i}} \\ &=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{1}{p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \cdot \frac{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\partial \boldsymbol{\Sigma}_{i}} \\
&=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{1}{p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \cdot\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1}\\
&=\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1}
\end{aligned}
$$
然后$LL(D_u)$ 对$\boldsymbol{\Sigma_i}$求偏导,类似于式(9.35)
$$
\frac{\partial L L\left(D_{u}\right)}{\partial \boldsymbol{\Sigma}_{i}}=\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1}
$$
综合可得:
$$
\begin{aligned} \frac{\partial L L\left(D_{l} \cup D_{u}\right)}{\partial \boldsymbol{\Sigma}_{i}}=& \sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1} \\ &+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1} \\=&\left(\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right)\right.\\ &\left.+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}-\boldsymbol{I}\right)\right) \cdot \frac{1}{2} \boldsymbol{\Sigma}_{i}^{-1} \end{aligned}
$$
令$\frac{\partial L L\left(D_{l} \cup D_{u}\right)}{\partial \boldsymbol{\Sigma}_{i}}=0$,两边同时右乘$2\Sigma_i$并移项:
$$
\begin{aligned} \sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}+& \sum_{\left(\boldsymbol{x}_{j}, y_{j} \in D_{l} \wedge y_{j}=i\right.} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \\=& \sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot \boldsymbol{I}+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \boldsymbol{I} \\ &=\left(\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i}+l_{i}\right) \boldsymbol{I} \end{aligned}
$$
两边同时左乘以$\Sigma_i$:
$$
\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i} \cdot\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}+\sum_{\left(\boldsymbol{x}_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}=\left(\sum_{\boldsymbol{x}_{j} \in D_{u}} \gamma_{j i}+l_{i}\right) \boldsymbol{\Sigma}_{i}
$$
即得式(13.7)。
### 13.2.8 式(13.8)的解释
类似于式(9.36),写出$LL(D_l \cup D_u)$的拉格朗日形式
$$
\begin{aligned}\mathcal{L}\left(D_{l} \cup D_{u}, \lambda\right) &=L L\left(D_{l} \cup D_{u}\right)+\lambda\left(\sum_{s=1}^{N} \alpha_{s}-1\right) \\&=L L\left(D_{l}\right)+L L\left(D_{u}\right)+\lambda\left(\sum_{s=1}^{N} \alpha_{s}-1\right)\end{aligned}
$$
类似于式(9.37),对$\alpha_i$求偏导。对于$LL(D_u)$,求导结果与式(9.37)的推导过程一样
$$
\frac{\partial L L\left(D_{u}\right)}{\partial \alpha_{i}}=\sum_{\boldsymbol{x}_{j} \in D_{u}} \frac{1}{\sum_{s=1}^{N} \alpha_{s} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{s}, \boldsymbol{\Sigma}_{s}\right)} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)
$$
对于$LL(D_l)$,类似于式(13.6)和式(13.7)的推导过程
$$
\begin{aligned}\frac{\partial L L\left(D_{l}\right)}{\partial \alpha_{i}} &=\sum_{\left(x_{j}, y_{j}\right) \in D_{l} \wedge y_{j}=i} \frac{\partial \ln \left(\alpha_{i} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \bold
gitextract_7i4lkvtv/ ├── .github/ │ └── workflows/ │ └── deploy.yml ├── .gitignore ├── LICENSE ├── README.md ├── README_french.md ├── docs/ │ ├── .vitepress/ │ │ ├── config.mts │ │ └── theme/ │ │ ├── custom.css │ │ └── index.ts │ ├── chapter1/ │ │ ├── chapter1.md │ │ └── chapter1_FR.md │ ├── chapter10/ │ │ └── chapter10.md │ ├── chapter11/ │ │ └── chapter11.md │ ├── chapter12/ │ │ └── chapter12.md │ ├── chapter13/ │ │ └── chapter13.md │ ├── chapter14/ │ │ └── chapter14.md │ ├── chapter15/ │ │ └── chapter15.md │ ├── chapter16/ │ │ └── chapter16.md │ ├── chapter2/ │ │ ├── chapter2.md │ │ ├── chapter2_FR.md │ │ └── resources/ │ │ └── images/ │ │ └── roc.pptx │ ├── chapter3/ │ │ └── chapter3.md │ ├── chapter4/ │ │ ├── chapter4.md │ │ └── resources/ │ │ └── 4_11.pptx │ ├── chapter5/ │ │ └── chapter5.md │ ├── chapter6/ │ │ └── chapter6.md │ ├── chapter7/ │ │ └── chapter7.md │ ├── chapter8/ │ │ └── chapter8.md │ ├── chapter9/ │ │ └── chapter9.md │ ├── errata.md │ └── index.md └── package.json
SYMBOL INDEX (3 symbols across 1 files)
FILE: docs/.vitepress/theme/index.ts
method enhanceApp (line 17) | enhanceApp({ app }) {
method setup (line 21) | setup() {
method Layout (line 26) | Layout() {
Condensed preview — 31 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (625K chars).
[
{
"path": ".github/workflows/deploy.yml",
"chars": 1648,
"preview": "# 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程\n#\nname: Deploy VitePress site to Pages\n\non:\n # 在针对 `main` 分支的推送上运行。如果你\n #"
},
{
"path": ".gitignore",
"chars": 56,
"preview": "node_modules/\ndocs/.vitepress/dist\ndocs/.vitepress/cache"
},
{
"path": "LICENSE",
"chars": 20845,
"preview": "Attribution-NonCommercial-ShareAlike 4.0 International\n\n================================================================"
},
{
"path": "README.md",
"chars": 3749,
"preview": "<div align=center>\n<img src=\"https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/pumpkin.png\" >\n<h1"
},
{
"path": "README_french.md",
"chars": 8313,
"preview": "<div align=center>\n<img src=\"https://raw.githubusercontent.com/datawhalechina/pumpkin-book/master/res/pumpkin.png\" >\n<h1"
},
{
"path": "docs/.vitepress/config.mts",
"chars": 2884,
"preview": "import { defineConfig } from 'vitepress'\nimport mathjax3 from 'markdown-it-mathjax3';\n// https://vitepress.dev/reference"
},
{
"path": "docs/.vitepress/theme/custom.css",
"chars": 9735,
"preview": "/* ============================================================================\n 公告栏样式\n ============================"
},
{
"path": "docs/.vitepress/theme/index.ts",
"chars": 860,
"preview": "import DefaultTheme from 'vitepress/theme'\nimport './custom.css'\nimport type { Theme } from 'vitepress'\nimport 'viewerjs"
},
{
"path": "docs/chapter1/chapter1.md",
"chars": 8835,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:1.5天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=2\n> \n> 本章配套代码"
},
{
"path": "docs/chapter1/chapter1_FR.md",
"chars": 3715,
"preview": "## 1.1\n$$E_{o t e}\\left(\\mathfrak{L}_{a} | X, f\\right)=\\sum_{h} \\sum_{\\boldsymbol{x} \\in \\mathcal{X}-X} P(\\boldsymbol{x}"
},
{
"path": "docs/chapter10/chapter10.md",
"chars": 61255,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:\n> \n> https://www.bilibili.com/video/BV1Mh411e7VU?p=15\n> \n> h"
},
{
"path": "docs/chapter11/chapter11.md",
"chars": 22107,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=17\n\n# 第11章 特征选择"
},
{
"path": "docs/chapter12/chapter12.md",
"chars": 40585,
"preview": "# 第12章 计算学习理论\n\n正如本章开篇所述,计算学习理论研究目的是分析学习任务的困难本质,为学习算法提供理论保证,并根据分析结果指导算法设计。例如,\"西瓜书\"定理12.1、定理12.3、定理12.6所表达意思的共同点是,泛化误差与经验误"
},
{
"path": "docs/chapter13/chapter13.md",
"chars": 40742,
"preview": "# 第13章 半监督学习\n\n## 13.1 未标记样本\n\n\"西瓜书\"两张插图可谓本节亮点: 图 13.1 直观地说\n明了使用末标记样本后带来的好处; 图 13.2\n对比了主动学习、(纯)半监督学习和直推学习,\n尤其是巧妙地将主动学习的概念融"
},
{
"path": "docs/chapter14/chapter14.md",
"chars": 31822,
"preview": "# 第14章 概率图模型\n\n本章介绍概率图模型,前三节分别介绍了有向图模型之隐马尔可夫模型以及无向图模型之马尔可夫随机场和条件随机场;接下来两节分别介绍精确推断和近似推断;最后一节简单介绍了话题模型的典型代表隐狄利克雷分配模型(LDA)。\n"
},
{
"path": "docs/chapter15/chapter15.md",
"chars": 2490,
"preview": "# 第15章 规则学习\n\n规则学习是\"符号主义学习\"的代表性方法,用来从训练数据中学到一组能对未见示例进行判别的规则,形如\"如果A或B,并且C的条件下,D满足\"这样的形式。因为这种学习方法更加贴合人类从数据中学到经验的描述,具有非常良好的可"
},
{
"path": "docs/chapter16/chapter16.md",
"chars": 6937,
"preview": "# 第16章 强化学习\n\n强化学习作为机器学习的子领域,其本身拥有一套完整的理论体系,以及诸多经典和最新前沿算法,\"西瓜书\"该章内容仅可作为综述查阅,若想深究建议查阅其他相关书籍(例如《Easy\nRL:强化学习教程》[1])进行系统性学习。"
},
{
"path": "docs/chapter2/chapter2.md",
"chars": 31613,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:1.5天\n> \n> 本章配套视频教程正在赶制中,先自行看书学习,第2章严格来说是在学完具体机器学习算法(第3章及其以后章节的内容)后再来学的,因此本章能看懂"
},
{
"path": "docs/chapter2/chapter2_FR.md",
"chars": 20302,
"preview": "## 2.20\n$$\\text{AUC}=\\frac{1}{2}\\sum_{i=1}^{m-1}(x_{i+1} - x_i)\\cdot(y_i + y_{i+1})$$\n[Analyse]:Avant d'expliquer la for"
},
{
"path": "docs/chapter3/chapter3.md",
"chars": 47126,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:线性回归3天+对数几率回归3天+线性判别分析3天,共计9天\n> \n> 本章配套视频教程:\n> \n> 一元线性回归:https://www.bilibili."
},
{
"path": "docs/chapter4/chapter4.md",
"chars": 16522,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=7\n> \n> 本章配套代码:h"
},
{
"path": "docs/chapter5/chapter5.md",
"chars": 12100,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=8\n> \n> 本章配套代码:h"
},
{
"path": "docs/chapter6/chapter6.md",
"chars": 47609,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:\n> \n> 支持向量机:https://www.bilibili.com/video/BV1Mh411e7VU?p=9\n>"
},
{
"path": "docs/chapter7/chapter7.md",
"chars": 33606,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=11\n\n# 第7章 贝叶斯分类"
},
{
"path": "docs/chapter8/chapter8.md",
"chars": 65151,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:\n> \n> https://www.bilibili.com/video/BV1Mh411e7VU?p=12\n> \n> h"
},
{
"path": "docs/chapter9/chapter9.md",
"chars": 28477,
"preview": "> [!IMPORTANT]\n> 参与组队学习的同学须知:\n> \n> 本章学习时间:3天\n> \n> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=14\n\n# 第9章 聚类\n\n到"
},
{
"path": "docs/errata.md",
"chars": 2705,
"preview": "# 纸质版勘误表\n\n如何使用勘误?首先找到你的书的印次,接下来对着下表索引印次,该印次及其之后印次的勘误都是你书中所要注意的勘误,该印次前的所有勘误在当前印次均已修正。\n\n## 第2版第6次印刷(2024.01)\n- 127页,“式(8.7"
},
{
"path": "docs/index.md",
"chars": 2034,
"preview": "---\n# https://vitepress.dev/reference/default-theme-home-page\nlayout: home\n\nhero:\n name: \"南瓜书\"\n text: \"pumpkin-book\"\n "
},
{
"path": "package.json",
"chars": 320,
"preview": "{\n \"devDependencies\": {\n \"markdown-it-mathjax3\": \"^4.3.2\",\n \"vitepress\": \"^2.0.0-alpha.15\"\n },\n \"scripts\": {\n "
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the datawhalechina/pumpkin-book GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 31 files (560.7 KB), approximately 280.5k tokens, and a symbol index with 3 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.