diff --git a/4.人工智能/4.3人工智能导论及机器学习入门.md b/4.人工智能/4.3人工智能导论及机器学习入门.md
index 27299ac..18a1457 100644
--- a/4.人工智能/4.3人工智能导论及机器学习入门.md
+++ b/4.人工智能/4.3人工智能导论及机器学习入门.md
@@ -2,18 +2,16 @@
人工智能(Artificial Intelligence, AI)是机器,特别是计算机系统对人类智能过程的模拟。人工智能是一个愿景,目标就是让机器像我们人类一样思考与行动,能够代替我们人类去做各种各样的工作。人工智能研究的范围非常广,包括演绎、推理和解决问题、知识表示、学习、运动和控制、数据挖掘等众多领域。
-# 人工智能、机器学习与深度学习关系
+## 人工智能、机器学习与深度学习关系
人工智能是一个宏大的愿景,目标是让机器像我们人类一样思考和行动,既包括增强我们人类脑力也包括增强我们体力的研究领域。而学习只是实现人工智能的手段之一,并且,只是增强我们人类脑力的方法之一。所以,人工智能包含机器学习。机器学习又包含了深度学习,他们三者之间的关系见下图。

-# 如何学习本节内容
+## 如何学习本节内容
作者深知学习人工智能时面临许多繁碎数学知识,复杂数学公式的痛苦,因此,本节内容重在讲解核心概念和算法,略去了复杂的数学推导,尽可能以直觉的方式去理解,本文的数学知识,高中生足以掌握。阅读本节内容不需要人工智能基础,你可以直接从本节入门 AI。本节内容的算法、项目实现将使用 python 实现,需要掌握一定的 python 基础语法。当然如果你急于了解 AI,却又不会 python,没有关系,你可以选择跳过其中的编程部分,着眼于其中的概念、算法,程序语言是算法实现的工具,并非学习算法的必须品。
-# 学习建议
+## 学习建议
本节内容是作者根据[哈佛的 CS50AI 导论](https://cs50.harvard.edu/ai/2020/)以及 [Andrew Ng 的机器学习专项课程](https://www.coursera.org/specializations/machine-learning-introduction)简化编写,当然你可以直接学习这两门课程。本节内容的总学习时间应该是二到三个月,如果你在某个知识点上卡住了,你也许需要反复阅读讲义,必要时向身边人求助。
-
-# 目录
diff --git a/4.人工智能/4.4FAQ:常见问题.md b/4.人工智能/4.4FAQ:常见问题.md
index b0f600f..941c795 100644
--- a/4.人工智能/4.4FAQ:常见问题.md
+++ b/4.人工智能/4.4FAQ:常见问题.md
@@ -1,8 +1,8 @@
# FAQ:常见问题
-## 我是非计算机专业的,感觉AI很火,可以看这篇内容吗
+## 我是非计算机专业的,感觉 AI 很火,可以看这篇内容吗
-如果你不打算做相关研究的话,我觉得你最先应该考虑的是熟练掌握使用AI工具,本章内容更偏向于完善AI方面的知识体系架构
+如果你不打算做相关研究的话,我觉得你最先应该考虑的是熟练掌握使用 AI 工具,本章内容更偏向于完善 AI 方面的知识体系架构
## 我对AI/CV/NLP/blabla研究方向很感兴趣可以看这篇内容吗?
@@ -10,7 +10,7 @@
因此如果你想学某个知识体系,可以参考本章内容的路线,但是若你有足够强大的能力可以直接应对国外课程体系的困难,那么我非常推荐你去直接看英文内容
-因为我们在降低门槛的时候也一定程度上让各位损失了一定的训练,在概括的过程中,信息量被稀释了,抽象地描述也许更能让你get到一些思想性的内容
+因为我们在降低门槛的时候也一定程度上让各位损失了一定的训练,在概括的过程中,信息量被稀释了,抽象地描述也许更能让你 get 到一些思想性的内容
## 我数学不好可以学吗
@@ -30,11 +30,9 @@
你应该更多地依赖自己而不是学校
+## [如果不是相关领域可以找到这个领域工作吗](https://www.quora.com/How-do-I-get-a-job-in-Machine-Learning-as-a-software-programmer-who-self-studies-Machine-Learning-but-never-has-a-chance-to-use-it-at-work)
-
-# [如果不是相关领域可以找到这个领域工作吗](https://www.quora.com/How-do-I-get-a-job-in-Machine-Learning-as-a-software-programmer-who-self-studies-Machine-Learning-but-never-has-a-chance-to-use-it-at-work)
-
-> “我正在为团队招聘专家,但你的 MOOC 并没有给你带来工作学习机会。我大部分机器学习方向的硕士也并不会得到机会,因为他们(与大多数工作)上过 MOOC 的人一样)并没有深入地去理解。他们都无法帮助我的团队解决问题。” Ross C. Taylor
+> “我正在为团队招聘专家,但你的 MOOC 并没有给你带来工作学习机会。我大部分机器学习方向的硕士也并不会得到机会,因为他们(与大多数工作)上过 MOOC 的人一样)并没有深入地去理解。他们都无法帮助我的团队解决问题。”Ross C. Taylor
## 人工智能,深度学习,机器学习,数据分析,我该如何区分
diff --git a/4.人工智能/4.7图网络略述(intro&GCN).md b/4.人工智能/4.7图网络略述(intro&GCN).md
index 31f61c0..795df26 100644
--- a/4.人工智能/4.7图网络略述(intro&GCN).md
+++ b/4.人工智能/4.7图网络略述(intro&GCN).md
@@ -81,7 +81,7 @@ $
## ChebNet 及其思考
-ChebNet 的引入是当今神经网络大热门的开端,也是图卷积网络的基础。其思路为,使用切比雪夫多项式对卷积过程 K 阶拟合([参考](https://zhuanlan.zhihu.com/p/138420723))
+ChebNet 的引入是当今神经网络大热门的开端,也是图卷积网络的基础。其思路为,使用切比雪夫多项式对卷积过程 K 阶拟合 ([参考](https://zhuanlan.zhihu.com/p/138420723))
ChebNet 假设$g\theta$对$\Lambda$的滤波结果是原始特征值多项式函数,而网络的目的是抛弃原本通过矩阵相乘来对卷积结果进行求解,而通过参数学习来对结果进行表示,给出下式
@@ -96,7 +96,7 @@ $$
其中有切比雪夫多项式在矩阵上的表示,具体数学背景可以详细查看
$$
-T_0(L) = I\ T_1(L)=L\ T_{n+1}(L)=2LT_n(L) - T_{n-1}(L)
+T_0(L) = I\ T_1(L)=L\ T_{n+1}(L)=2LT_n(L) - T_{n-1}(L)
$$
有$\beta_k$为网络的待学习参数
@@ -114,9 +114,7 @@ $$
\mathbf{U}^\mathsf{T}x
\end{matrix}
$$
-
-,并对其中无关输入信号 $x$ 的部分进行改写
-
+并对其中无关输入信号 $x$ 的部分进行改写
$$
\mathbf{U}\begin{matrix}\sum_{k=0}^K
@@ -163,7 +161,6 @@ x
\end{matrix}
$$
-
作为 ChebNet 的卷积结构
其中值得注意的一点是,ChebNet 的 K 值限制了卷积核的多项式次数,但是这里的多项式次数描述了什么呢?其实就是卷积的“范围”,即单次卷积内最高可获得的 K 阶相邻节点信息。在 K=n 的时候,我们从理论上可以通过单次卷积,获取一张连通图上所有结点的信息,而这也是原方法难以计算的根本原因。
diff --git a/4.人工智能/4.8数据分析.md b/4.人工智能/4.8数据分析.md
index 317b4e1..772072c 100644
--- a/4.人工智能/4.8数据分析.md
+++ b/4.人工智能/4.8数据分析.md
@@ -1,12 +1,14 @@
# 数据科学
+
author:zzm
-# 本章内容会从一个小故事开始
+
+## 本章内容会从一个小故事开始
讲讲某个人在大一的悲惨经历来为大家串起来一个精简的数据科学工作包括了哪些步骤,同时给各位介绍一些优质的教程
同时,这章内容将详细阐述[与人合作的生死疲劳](../1.杭电生存指南/1.5小组作业避雷指南.md)
-# 悲惨世界
+## 悲惨世界
::: danger 若有雷同,纯属瞎编~~根据真实事件改编
@@ -15,35 +17,40 @@ author:zzm
请欣赏小故事的同时,根据自己的需求选择自己想学的教程
:::
-## Day1
+
+### Day1
你是一个可怜的大一学生,学校的短学期的第一天,你的心情非常好,因为要放寒假了,只要再坚持过这个短学期,你的快乐假期要来了!什么是短学期?不知道啊,也没听学长说过,好像是新研究出来的一个课程,去试试看吧。
-当你快乐的走进教室,老师告诉你:“你们看看PPT上的任务,自由选择啊!”
+当你快乐的走进教室,老师告诉你:“你们看看 PPT 上的任务,自由选择啊!”
-你看到PPT上赫然印着
+你看到 PPT 上赫然印着
::: tip 任务目标
-基础系统:
+基础系统:
+
1. 淘宝客户价值分析系统,实现爬取数据,数据处理,数据分析。
2. 二手房数据分析预测系统,实现爬取数据,数据分析,绘制图表。
3. 智能停车场运营分析系统,实现爬取数据,数据分析,绘制图表。
4. 影视作品分析系统,实现爬取数据,数据分析,绘制图表。
-升级系统:
+
+升级系统:
+
1. 利用爬虫理论,实现 12306 抢票小助手系统。
2. 利用数据分析方法,实现淘宝商品排行分析。
3. 利用爬虫原理,爬 Google 搜索引擎分析。”
要求实现三项以上的功能模块或三种以上的特征分析或提取。
+
:::
-心中一惊,暗道不妙,这都什么玩意,怎么还有爬谷歌,淘宝和抢12306的票啊,这tm不是犯法的么!这我要能做出来我还上什么大一的学啊!🥺🥺🥺🥺
+心中一惊,暗道不妙,这都什么玩意,怎么还有爬谷歌,淘宝和抢 12306 的票啊,这 tm 不是犯法的么!这我要能做出来我还上什么大一的学啊!🥺🥺🥺🥺
老师紧接着补充“十个人一组啊!一周内做完,数据自己想办法,第三天就要检查你们的进度了!”
-这是你倒是暗暗松了一口气,好像十个人一起干也没有那么复杂!😎(这时正是愚昧之峰,错误的认为工作总量就是工作量除以十)迅速的组好队之后,你问了问大伙的进度,what?大伙都没有python基础,只有我有?幸好学了hdu-wiki和datawhale的[聪明方法学python](https://github.com/datawhalechina/learn-python-the-smart-way)
+这是你倒是暗暗松了一口气,好像十个人一起干也没有那么复杂!😎(这时正是愚昧之峰,错误的认为工作总量就是工作量除以十)迅速的组好队之后,你问了问大伙的进度,what?大伙都没有 python 基础,只有我有?幸好学了 hdu-wiki 和 datawhale 的[聪明方法学 python](https://github.com/datawhalechina/learn-python-the-smart-way)
那就把教程分给大伙吧,我们选一个最简单的,二手房数据的分析系统好了!
-第一天选好题了,又是大下午的,摆了摆了,你开心的打开电脑,打开了steam,开摆!
+第一天选好题了,又是大下午的,摆了摆了,你开心的打开电脑,打开了 steam,开摆!
day 1 End!🤣
@@ -51,9 +58,9 @@ day 1 End!🤣
昨天真是美滋滋的一天,玩了一晚上的你有点头昏脑涨,今天就开始干活好了,反正一周时间呢,比期末复习周可长太多了,就做这么个玩意我还能做不出来吗?
-虽然你没有学过爬虫,但是你很幸运的找到了github上一个现成的爬虫代码,虽然费了一翻力气,但是仍然躲过了某房价网站的爬虫,他成功爬下来了,我们就把他存在哪里呢?~~(爬虫待补充)
+虽然你没有学过爬虫,但是你很幸运的找到了 github 上一个现成的爬虫代码,虽然费了一翻力气,但是仍然躲过了某房价网站的爬虫,他成功爬下来了,我们就把他存在哪里呢?~~(爬虫待补充)
-先试试excel好了,毕竟这是大家最耳熟能详的存表格的方法,但是你貌似没有深入了解过他,打开了datawhale的[free-excel](https://github.com/datawhalechina/free-excel),你才惊讶的发现,wow,原来他有这么多牛逼的功能啊!它除了可以将房价统计,找到它的平均价格,算出他的最高价格之类以外,竟然也可以把他可视化!甚至它还可以对房价进行多元分析!根据房屋数量面积地段等等因素帮你预测房价,甚至可以自动帮你检索和去除重复数据,实在是太好用啦!
+先试试 excel 好了,毕竟这是大家最耳熟能详的存表格的方法,但是你貌似没有深入了解过他,打开了 datawhale 的[free-excel](https://github.com/datawhalechina/free-excel),你才惊讶的发现,wow,原来他有这么多牛逼的功能啊!它除了可以将房价统计,找到它的平均价格,算出他的最高价格之类以外,竟然也可以把他可视化!甚至它还可以对房价进行多元分析!根据房屋数量面积地段等等因素帮你预测房价,甚至可以自动帮你检索和去除重复数据,实在是太好用啦!
当然,这只是一个理想状态,残酷的现实很快给你当头一棒!当你试着多爬点不同城市数据的时候,他崩了!这么脆弱的吗?!干点活就喊累的吗?!😨
@@ -61,22 +68,22 @@ day 1 End!🤣
之前好像看到有一个教程叫做[wonderful-sql](https://github.com/datawhalechina/wonderful-sql?from=from_parent_mindnote)
-他提到“随着社会的快速发展,各类企业数字化转型迫在眉睫,SQL 应用能力日趋重要。 在诸多领域中 SQL 应用广泛,数据分析、开发、测试、维护、产品经理等都有可能会用到SQL,而在学校里系统性讲授 SQL 的课程较少,但是面试及日常工作中却经常会涉及到 SQL。”
+他提到“随着社会的快速发展,各类企业数字化转型迫在眉睫,SQL 应用能力日趋重要。在诸多领域中 SQL 应用广泛,数据分析、开发、测试、维护、产品经理等都有可能会用到 SQL,而在学校里系统性讲授 SQL 的课程较少,但是面试及日常工作中却经常会涉及到 SQL。”
确实学校没有教过,但是幸好你有教程,折腾了一翻之后,你发现你对数据库有了更深的理解,他帮助了我们在容纳大量的多种不同的数据形式的时候不用专门去考虑怎么设计一个数据结构而是规划了一定的存储方法后全部塞给他,完全不用考虑具体的物理性的以及性能问题存储模式,并且他很多高级的功能可以帮助你便捷的把数据组织成一般情况下难以到达的形式,他的底层设计被严格的包装起来让你在进行数据增删改查的时候都又快又好。
-并且它可以非常方便的存一些excel不好存的所谓的非结构化的数据,比如说图像等等,并且他不会动不动就喊累!处理几十万条也是一下子!
+并且它可以非常方便的存一些 excel 不好存的所谓的非结构化的数据,比如说图像等等,并且他不会动不动就喊累!处理几十万条也是一下子!
-当然同时你也了解到,你所用的是关系型数据库,是老东西了,目前还有很多较为前沿的非关系型数据库,例如MongoDB(这玩意什么都能存,比如说地图),Neo4j(像一张蜘蛛网一样的结构,图)等等,他们不用固定的表来存储,可以用图存或者键值对进行存储,听起来好像非常的高级,不过你暂时用不到,数据搞都搞下来了,量也够了,是时候看看队友做到哪了?说不定后面你都不用做了,已经做的够多够累的了!
+当然同时你也了解到,你所用的是关系型数据库,是老东西了,目前还有很多较为前沿的非关系型数据库,例如 MongoDB(这玩意什么都能存,比如说地图),Neo4j(像一张蜘蛛网一样的结构,图)等等,他们不用固定的表来存储,可以用图存或者键值对进行存储,听起来好像非常的高级,不过你暂时用不到,数据搞都搞下来了,量也够了,是时候看看队友做到哪了?说不定后面你都不用做了,已经做的够多够累的了!
-什么?!刚开始学python?!woc!完蛋,你逐渐来到了绝望之谷,唉!明天继续做吧!看来休息不了了。
+什么?!刚开始学 python?!woc! 完蛋,你逐渐来到了绝望之谷,唉!明天继续做吧!看来休息不了了。
day 2 End 😔!
## Day 3
-God!No!昨天已经够累的了,今天老师还要讲课,还要早起!你期待着老师可以降低要求,可是当老师托起长音,讲起了他知道了学生的累,所以今天决定开始讲课了!(现在讲有毛用啊,你明天就要验收我们的进度了!)
+God!No! 昨天已经够累的了,今天老师还要讲课,还要早起!你期待着老师可以降低要求,可是当老师托起长音,讲起了他知道了学生的累,所以今天决定开始讲课了!(现在讲有毛用啊,你明天就要验收我们的进度了!)
-而他却慢悠悠的开始讲python的历史,把这点内容讲了足足两节课,你终于绷不住了,本来时间就不够,他竟然又浪费了你足足一早上的时间!这也太该死了!🤬
+而他却慢悠悠的开始讲 python 的历史,把这点内容讲了足足两节课,你终于绷不住了,本来时间就不够,他竟然又浪费了你足足一早上的时间!这也太该死了!🤬
你回到了寝室,准备今天争取数据分析完就直接交上去好了!
@@ -84,23 +91,25 @@ God!No!昨天已经够累的了,今天老师还要讲课,还要早起!你
这个野鸡房价网站每个城市的排版不一样,你爬虫爬取的完全是按照顺序标的,也就是说你爬取的所有房价信息处于混沌状态!完全就相当于给每个房子爬了一段句子的描述!
-没有办法了,看来今天有的折腾了,你找到了一个叫pandas(熊猫?)的东西,找到了这个教程[Joyful-Pandas](https://github.com/datawhalechina/joyful-pandas),开始了一天的学习!
+没有办法了,看来今天有的折腾了,你找到了一个叫 pandas(熊猫?)的东西,找到了这个教程[Joyful-Pandas](https://github.com/datawhalechina/joyful-pandas),开始了一天的学习!
-你了解到pandas是一个开源的Python数据处理库,提供了高性能、易用、灵活和丰富的数据结构,可以帮助用户轻松地完成数据处理、清洗、分析和建模等任务。你使用了DataFrame来装载二维表格对象。
+你了解到 pandas 是一个开源的 Python 数据处理库,提供了高性能、易用、灵活和丰富的数据结构,可以帮助用户轻松地完成数据处理、清洗、分析和建模等任务。你使用了 DataFrame 来装载二维表格对象。
-用一些关键词来提取数据中隐藏的信息,例如提取“平米”前面的数字放到‘area'列,提取房价到'price’列,提取位置到'locate'里面,当然你也遇到了可怕的bug,提取所有“室”和“厅”前面的数字,他总是告诉你有bug,全部输出之后才发现你提取到了“地下室”结果他没法识别到数字所以炸了!
+用一些关键词来提取数据中隐藏的信息,例如提取“平米”前面的数字放到‘area'列,提取房价到'price’列,提取位置到'locate'里面,当然你也遇到了可怕的 bug,提取所有“室”和“厅”前面的数字,他总是告诉你有 bug,全部输出之后才发现你提取到了“地下室”结果他没法识别到数字所以炸了!
将数据勉强弄得有序之后,你提取了平均数填充到缺失数据的房屋里面,将一些处理不了的删掉。
-当然,你也额外了解到pandas这只可爱的小熊猫还有非常多强大的功能,例如数据可视化,例如分类数据,甚至可以让房屋按照时序排列,但是你实在不想动了!
+当然,你也额外了解到 pandas 这只可爱的小熊猫还有非常多强大的功能,例如数据可视化,例如分类数据,甚至可以让房屋按照时序排列,但是你实在不想动了!
不论怎么说,你勉强有了一份看得过去的数据,你看了看表,已经晚上十一点半了,今天实在是身心俱疲!
-问问队友吧,什么,他们怎么还是在python语法?!你就像进了米奇不妙屋~队友在想你说“嘿~你呀瞅什么呢~是我!你爹~”
+问问队友吧,什么,他们怎么还是在 python 语法?!你就像进了米奇不妙屋~队友在说
-此时你像一头挨了锤的老驴,曾经的你有好多奢望,你想要GPA,想要老师的认同,甚至想要摸一摸水里忽明忽暗的🐟,可是一切都随着你的hadworking变成了泡影。
+~~“嘿~你呀瞅什么呢~是我!你爹~”~~
-可是步步逼近的截止日期不允许你有太多的emo期,说好的七天时间,最后一天就剩下展示了!也就是说实际上只有6天的开发时间,也就是说你必须得挑起大梁了
+此时你像一头挨了锤的老驴,曾经的你有好多奢望,你想要 GPA,想要老师的认同,甚至想要摸一摸水里忽明忽暗的🐠,可是一切都随着你的 hardworking 变成了泡影。
+
+可是步步逼近的截止日期不允许你有太多的 emo 时间,说好的七天时间,最后一天就剩下展示了!也就是说实际上只有 6 天的开发时间,也就是说你必须得挑起大梁了
> 世界上只有一种真正的英雄主义,那就是看清生活的真相之后,依然热爱生活
@@ -110,17 +119,17 @@ day 3 end!👿 👹 👺 🤡
## Day 4
-老师在验收的时候认为你什么工作也没做,他认为一份数据实在是太单薄了,特别是被你疯狂结构优化后的数据已经没几个特征了,让你去做点看得到的东西,不然就要让你不及格了,你的心里很难过,你想到也许你需要一些更好看的东西。数据可视化你在昨天的pandas看到过,可是你并没有详细了解,你觉得pandas已经在昨天把你狠狠的暴捶一顿了,并且老师想要更好看的图。
+老师在验收的时候认为你什么工作也没做,他认为一份数据实在是太单薄了,特别是被你疯狂结构优化后的数据已经没几个特征了,让你去做点看得到的东西,不然就要让你不及格了,你的心里很难过,你想到也许你需要一些更好看的东西。数据可视化你在昨天的 pandas 看到过,可是你并没有详细了解,你觉得 pandas 已经在昨天把你狠狠的暴捶一顿了,并且老师想要更好看的图。
-于是你考虑pandas配合Matplotlib画一些简单的图(Matplotlib的缺点是它的绘图语法比较繁琐,需要编写较多的代码才能得到漂亮的图形。)
+于是你考虑 pandas 配合 Matplotlib 画一些简单的图(Matplotlib 的缺点是它的绘图语法比较繁琐,需要编写较多的代码才能得到漂亮的图形。)
-加上Plotly绘制一些复杂的图,让你的图有着更漂亮的交互效果,然后加上看起来很牛逼的英语描述
+加上 Plotly 绘制一些复杂的图,让你的图有着更漂亮的交互效果,然后加上看起来很牛逼的英语描述
+你找到了下面的教程:
-你找到了下面的教程
-[matplotlib奇遇记文字教程](https://github.com/datawhalechina/fantastic-matplotlib)
+[matplotlib 奇遇记文字教程](https://github.com/datawhalechina/fantastic-matplotlib)
-[极好的Plotly文字教程:](https://github.com/datawhalechina/wow-plotly)
+[极好的 Plotly 文字教程:](https://github.com/datawhalechina/wow-plotly)
[视频教程](https://www.bilibili.com/video/BV1Df4y1A7aR)
🤗
@@ -128,7 +137,7 @@ day 3 end!👿 👹 👺 🤡
这时你认为你的任务已经完成了!于是早早就心满意足的早早睡着了🍻 🥂。最近真的太累了,天天一两点睡,早上惊醒,做梦都是在爬数据分析数据!太可怕了!
-在梦里,你好像看到了美好的假期时光。 😪
+在梦里,你好像看到了美好的假期时光。 😪
day 4 end!~🤤
@@ -138,7 +147,7 @@ day 4 end!~🤤
可是机票今晚就要起飞了啊!😰你已经要气疯了,想和老师据理力争,但是又害怕这么一个课被打上不及格的分数,这实在是太难受了!
-终归你还是在老师的逼迫下,改签了机票,好吧,多少得加点功能了!呜呜呜~🤢 🤮
+终归你还是在老师的逼迫下,改签了机票,好吧,多少得加点功能了!呜呜呜~🤢 🤮
可是你并不完全会机器学习的算法,可怜的大一本科生的你没有学信息论也没有学最优化理论,很多算法你完全不懂其理论知识!听说西瓜书很好,可是你在图书馆借到了西瓜书之后根本看不懂!
@@ -148,21 +157,21 @@ day 4 end!~🤤
你对着他啃了半天,觉得很多东西你都能看懂了,你脑子里已经有了很多思路,你想按使用高级的机器学习的算法!
-但是!时间还是太紧张了!你没有办法从头开始实现了!
+但是!时间还是太紧张了!你没有办法从头开始实现了!
-你想尝试[pytorch文字教程](https://github.com/datawhalechina/thorough-pytorch),但是时间也不够让你去重整数据去训练了。你随便塞在线性层里的数据梯度直接爆炸,你这时候还不知道归一化的重要性,紧张之下把几万几十万的房价往里面塞,结果结果烂成💩了,并且你没有波如蝉翼的基础知识并不够让你去解决这些个bug,只能疯狂的瞎挑参数,可是结果往往不如人意~
+你想尝试[pytorch 文字教程](https://github.com/datawhalechina/thorough-pytorch),但是时间也不够让你去重整数据去训练了。你随便塞在线性层里的数据梯度直接爆炸,你这时候还不知道归一化的重要性,紧张之下把几万几十万的房价往里面塞,结果结果烂成💩了,并且你那薄如蝉翼的基础知识并不够让你去解决这些个 bug,只能疯狂的瞎调参数,可是结果往往不如人意~
时间来到了晚上八点,明天就要最后验收了,走投无路的你把目光看向了远在几十千米外已经入职了的大哥,晚上跟他打电话哭诉你最近的遭遇,你实在搞不懂,为什么十二生肖大伙都属虎,就你属驴。
-大哥嘎嘎猛,连夜打车过来,我在因疫情封校的最后两个小时赶出了学校,和大哥一起租了个酒店,通宵奋战,他采取了更多更为优雅的特征工程和模型调参的方式,让模型优雅的收敛到了一定程度,再用春秋笔法进行汇总,在半夜两点半,终于将内容搞定了
+大哥嘎嘎猛,连夜打车过来,你在因疫情封校的最后两个小时跑出了学校,和大哥一起租了个酒店,通宵奋战,他采取了更多更为优雅的特征工程和模型调参的方式,让模型优雅的收敛到了一定程度,再用春秋笔法进行汇总,在半夜两点半,终于将内容搞定了😭
终于你可以睡个好觉了~
day 5 end!😍 🥰 😘
-## Day 6
+## Day 6
-验收日,老师端坐在底下,宛如一尊大佛,提出了一系列无关紧要的问题,比如问我们能不能拿这个程序给老年人查资料???
+验收日,老师端坐在底下,宛如一尊大佛,提出了一系列无关紧要的问题,比如问“我们能不能拿这个程序给老年人查资料???”
等等问题和技术一点关系都没有!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -172,20 +181,19 @@ day 5 end!😍 🥰 😘
The End~~~~~~~~~~
-# 事后总结
+## 事后总结
-你在那个暑假详细了解和学习一下数据科学竞赛,发现他的含金量在职场领域有时候相当高,并且对提升自身的实力也有相当大的帮助!
+你在那个暑假详细了解和学习一下数据科学竞赛,发现他的含金量在职场领域有时候相当高,并且对提升自身的实力也有相当大的帮助!
-[数据竞赛Baseline & Topline分享](https://github.com/datawhalechina/competition-baseline)
+[数据竞赛 Baseline & Topline 分享](https://github.com/datawhalechina/competition-baseline)
-你还发现了之前从来没有注意到的kaggle平台以及一些很棒的综合实践项目!
+你还发现了之前从来没有注意到的 kaggle 平台以及一些很棒的综合实践项目!
例如[根据贷款申请人的数据信息预测其是否有违约的可能](https://github.com/datawhalechina/team-learning-data-mining/tree/master/FinancialRiskControl)
[根据汽车类型等信息预测二手汽车的交易价格](https://github.com/datawhalechina/team-learning-data-mining/tree/master/SecondHandCarPriceForecast)
-例如:[使用公开的arXiv论文完成对应的数据分析操作](https://github.com/datawhalechina/team-learning-data-mining/tree/master/AcademicTrends)
-
+例如:[使用公开的 arXiv 论文完成对应的数据分析操作](https://github.com/datawhalechina/team-learning-data-mining/tree/master/AcademicTrends)
想到如果你早做准备,没有荒废大一的时光,也许你不但能圆满的通过这次课程,也可以开辟更为广阔的新世界了吧~
@@ -195,14 +203,14 @@ The End~~~~~~~~~~
::: danger 再次警告,本章内容有很多瞎编的内容,不要全信
-比如说一天学完pandas,一天学完sql之类的都是很不现实的!希望大家注意!
+比如说一天学完 pandas,一天学完 sql 之类的都是很不现实的!希望大家注意!
当然你也可以在需要用的时候再研究,也来得及,就是很累
不要打击到大家的自信心!
:::
-# 补充内容:下个定义
+## 补充内容:下个定义
数据分析是独立于开发和算法岗的另一个方向,它主要是通过应用机器学习和深度学习的已有算法来分析现实问题的一个方向
@@ -210,11 +218,9 @@ The End~~~~~~~~~~
数据这门科学就像中西医混合的一门医学,既要有西医的理论、分析模型以及实验,又需要有中医的望闻问切这些个人经验。
-
> 这世界缺的真不是算法和技术,而是能用算法、技术解决实际问题的人
-
-# 什么是数据科学
+## 什么是数据科学
数据科学是当今计算机和互联网领域最热门的话题之一。直到今天,人们已经从应用程序和系统中收集了相当大量的数据,现在是分析它们的时候了。从数据中产生建议并创建对未来的预测。[在这个网站中](https://www.quora.com/Data-Science/What-is-data-science),您可以找到对于数据科学的更为精确的定义。
@@ -222,6 +228,6 @@ The End~~~~~~~~~~
+ 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +|Version| IHL |Type of Service| Total Length | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Identification |Flags| Fragment Offset | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Time to Live | Protocol | Header Checksum | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Source Address | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Destination Address | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| Options | Padding | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Example Internet Datagram Header ++## 版本 + +第一个字段是IP协议版本号,用于标识IPv4和IPv6两个版本,这两个版本的报文格式是不同的。上图展示的是 IPv4 的报文格式 + +## IHL(Internet Header Length) + +就是IP协议的头部部分的长度,单位是 4byte,由于 IP 头一般长度为 20byte,所以这个值一般为 5。如果存在Options字段,这个值会相应增加。 + +## Type of Service + +服务类型,标记服务类型最初是为了对不同服务的数据包做不同的转发策略,比如说哪些数据包应该被优先转发,应该更注重转发延时还是更注重吞吐量一类的问题,除非到运营商层面一般接触不太到。 + +## 数据包总长度 + +Total Length 很好理解就是包括 IP 头在内的 IP 报文的总长度,报文长度上限就是 MTU。 + +## Identification & Flags & Fragment Offset + +这三个字段放在一起讲,他们都是用于控制分片的。 + +我们的 MTU 他一般是 1500,去除 20 bytes 的头部他还能够携带 1480 bytes 的数据,但是现实中的负载很容易就能够超出这个大小,这时候就需要将内容切片分块发送。 + +切片时,会切出许多 1480 bytes 的切片,和剩下的不足 1480 bytes 的部分。对于以上的所有切片,都会给他们加一个自己的 IP 头。这些 IP 头有一个共同点,就是他们具有一个相同的 Identification 用于识别(identify)他们原先是一块的。 + +现在还存在两个问题, + +1. 服务器接收到一个分片后,不知道要不要继续接收 +2. 分片很有可能乱序抵达,服务器不知道分片的顺序 + +对于第二个问题,引入了 Fragment Offset(分片偏移量),他的单位是 byte,用于标识这一个分片的数据,是从原来超长负载的哪个位置开始的。比如对于一个长度为 5000 bytes 的负载,他的几个分片的 Fragment Offset 依次为 0,1480,2960,4440。在收到数据后,服务器只需要按照这个字段重新组装即可。 + +对于第一个问题,引入了 Flags(标志位), Flags 里有三个 Flag,其中最后一位的意义是“后面还有更多分片“,这就相当于告诉服务器,你要继续等待接收其他分片。而当最后的分片抵达时,服务器在知道这是最后的分片的同时,他也能从这个分片的 Fragment Offset里得知前面应该有多少数据,如果缺失,服务器也能继续等待接收。 + +关于Flags的其他两位,最高位是目前保留不使用,永远为0。后面那位的意义是不要分片,这一般是不设置的,他这句话是对传输过程中的路由设备讲的,因为如果途径 MTU 低于当前包长度的链路可能会进行二次分片。如果设置了这个 Flag,转发时再碰到 MTU 低的链路这种包会被直接丢弃同时返回一个 ICMP 包告诉源IP地址的设备发生了什么。 + +## TTL(Time To Live) + +TTL 是一个unsigned int,代表数据包的剩余生存时间,指的是数据包在互联网中还能转发多少时间,单位是秒。 + +虽然单位是秒,但是一般情况下转发耗时是远远低于一秒的,根据 IP 协议的规定,无论转发耗时多少,TTL 应当至少 -1,所以在实践中 TTL 往往指的是转发了几次。 + +一般发往互联网的数据包初始 TTL 为 64 或 128,你可以试试 ping 命令,他会显示一个TTL,这是对面服务器回复的包到自己的设备的时候的 TTL。 + +```powershell +PS C:\Users\bs> ping baidu.com + +正在 Ping baidu.com [39.156.66.10] 具有 32 字节的数据: +来自 39.156.66.10 的回复: 字节=32 时间=43ms TTL=47 +来自 39.156.66.10 的回复: 字节=32 时间=144ms TTL=47 +来自 39.156.66.10 的回复: 字节=32 时间=43ms TTL=47 +来自 39.156.66.10 的回复: 字节=32 时间=42ms TTL=47 + +39.156.66.10 的 Ping 统计信息: + 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), +往返行程的估计时间(以毫秒为单位): + 最短 = 42ms,最长 = 144ms,平均 = 68ms +``` + +TTL 减少到 0 的时候,这个数据包会被丢弃,所以如果互联网中出现路由配置错误,以至于产生了一个环,TTL 能够帮助数据包及时停止转发,避免事故扩大最终导致网络设施瘫痪。 + +当路由设备由于 TTL 为 0,而丢弃这个数据包的时候,路由设备还会向源 IP 回复一个 `TTL超时`的 ICMP 报文 + +```powershell +PS C:\Users\bs> ping baidu.com -i 2 + +正在 Ping baidu.com [39.156.66.10] 具有 32 字节的数据: +来自 192.168.1.1 的回复: TTL 传输中过期。 +来自 192.168.1.1 的回复: TTL 传输中过期。 +来自 192.168.1.1 的回复: TTL 传输中过期。 +来自 192.168.1.1 的回复: TTL 传输中过期。 + +39.156.66.10 的 Ping 统计信息: + 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), +``` + +traceroute 就是利用这个性质来实现的,通过从 0 开始遍历 TTL 的方式,可以拿到转发过程中的所有路由器的 ICMP 回复,从这些回复中可以读取到这些路由器的 IP。 + +当然 traceroute 不是万能的,真实互联网中广泛存在拦截,不响应 ,改写等等行为,会导致 traceroute 产生丢失或者藏跳等等比较迷惑的结果。 + +```powershell +PS C:\Users\bs> TRACERT.EXE bilibili.com + +通过最多 30 个跃点跟踪 +到 bilibili.com [8.134.50.24] 的路由: + + 1 8 ms 13 ms 2 ms 192.168.0.1 [192.168.0.1] + 2 1 ms 1 ms 2 ms 192.168.1.1 [192.168.1.1] + 3 8 ms 8 ms * 100.66.0.1 + 4 * * * 请求超时。 + 5 * * * 请求超时。 + 6 * * * 请求超时。 + 7 * * * 请求超时。 + 8 * * 8 ms 61.139.121.77 + 9 * * * 请求超时。 + 10 78 ms * * 113.96.5.134 + 11 * 83 ms 43 ms 121.14.50.241 + 12 45 ms 42 ms 41 ms 121.14.24.82 + 13 * * * 请求超时。 + 14 * * * 请求超时。 + 15 * * * 请求超时。 + 16 * * * 请求超时。 + 17 42 ms 50 ms 40 ms 8.134.50.24 + +跟踪完成。 +``` + +上面就是一个真实案例,有很多路由设备在丢弃数据包时并没有给出 ICMP 回复。 + +## 协议 + +协议(Protocol)指的是负载中的数据所使用的协议。这就很广泛了,比如 + +- TCP + +- UDP + +- ICMP + +- Telnet + +- OSPF + +具体可以参考 [List of IP protocol numbers - Wikipedia](https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers) + +## 头部校验和 + +头部校验和(Header Checksum)用于检验传输的数据是否出错,一旦出错直接丢弃。 + +在计算头部的校验和的时候,头部校验和这个字段会被置零,再使用特定算法计算得到校验和,填写到这个位置。 + +这个校验和算法比较简单,就是头部以 16 bits 为单位,取补码再求和 + +注意,由于 TTL 在每次转发中都会改变,所以实际上,每次转发都会重新计算校验和。 + + +## IP地址 + +正如上图的 `Source Address` 和 `Destination Address` 字段所展示的一样,一个 IP 地址占用 4 byte 的存储空间。在书面的写法上,我们用 `.` 将每一个 byte 分割开,例如 `1.1.1.1` 这样更便于人类处理和分类。 + +有一些 IP 地址被用作特殊用途,除了这些 IP 地址外的地址都是公网 IP,一个公网 IP 在整个互联网范围内按照规范来说,只能由一台网络设备占有(也有例外,anycast)。但互联网是复杂的,也有人占用这些地址作为自己的内网地址(例如 tr069),这个由网络运维人员自行分析情景把握。 + +网络地址的分类需要更多的前置知识,我们后续再介绍。 + +## 可选项 + +可选参数(Options)比较繁琐,一般没啥用,有兴趣的可以看看下面参考资料中 RFC 791 对此的描述。 + + +## 参考资料 + +- [RFC 791 - Internet Protocol (ietf.org)](https://datatracker.ietf.org/doc/html/rfc791) +- [Reserved IP addresses - Wikipedia](https://en.wikipedia.org/wiki/Reserved_IP_addresses) +- [List of IP protocol numbers - Wikipedia](https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers) \ No newline at end of file diff --git a/9.计算机网络/9.2.3网络层.md b/9.计算机网络/9.2.3网络层.md new file mode 100644 index 0000000..c74875a --- /dev/null +++ b/9.计算机网络/9.2.3网络层.md @@ -0,0 +1,18 @@ +# 9.2.3 网络层 + +> Author: 柏喵樱 +> +> copyright reserved + +本章节是网络层的开篇章节,我们先做两个约定: + +- 没有提及IP协议版本,都是IPv4( IPv6 会单独介绍不详细展开) + +- 路由表已经配置好了,给IP地址就能发到正确的地方(路由技术参照“路由与交换”章节) + +以上两个约定适用于所有网络层章节。 + +在链路层我们已经实现了两个直接相连的设备之间的数据收发,也可以在总线类型的网络上完成数据手法,更成熟一点,可以借助交换机来构建一个具有一定规模的中心化网络。 + +但中心化是有极限的,这必然无法承载这个整个互联网,因此,我们需要再往上一层,定义一个新的概念,IP 地址,并完成实现数据包的转发操作,将互联网推向去中心化。 + diff --git a/9.计算机网络/9.2计网基础.md b/9.计算机网络/9.2计网基础.md deleted file mode 100644 index 9d9eb05..0000000 --- a/9.计算机网络/9.2计网基础.md +++ /dev/null @@ -1 +0,0 @@ -# 9.2计网基础 diff --git a/9.计算机网络/9.计算机网络.md b/9.计算机网络/9.计算机网络.md index dec12a1..a0586c9 100644 --- a/9.计算机网络/9.计算机网络.md +++ b/9.计算机网络/9.计算机网络.md @@ -95,7 +95,7 @@ 链路层 ---> 数据帧/MAC/CRC 链路层 ---> PPP 链路层 ---> ARP - 网络层 ---> IP地址 + 网络层 ---> IP 协议 网络层 ---> 子网/掩码/CIDR 网络层 ---> IPv6概述 传输层 ---> 端口 diff --git a/9.计算机网络/static/dnspod-domain.png b/9.计算机网络/static/dnspod-domain.png new file mode 100644 index 0000000..a53c11f Binary files /dev/null and b/9.计算机网络/static/dnspod-domain.png differ diff --git a/README.md b/README.md index 6d2d40e..e362e7a 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,9 @@
喜欢本项目可以点击右上角 star 收藏哦🎇
- 📚在线阅读(美国、AWS节点) + 📚在线阅读(美国加利福尼亚、Vercel节点) 🎉【推荐】📚在线阅读(中国腾讯云CDN节点)
diff --git a/index.md b/index.md index 7ccca79..17b6aff 100644 --- a/index.md +++ b/index.md @@ -26,6 +26,43 @@ features: details: 给你学习大学理应掌握的编程思维,构建合理的编程思维方式!当然,未完待续,很多内容仍在测试阶段。 - title: 🤣what's more? details: 还有非常多的内容尚未更新完毕,我们期待着你的反馈和加入! ---- - +head: + - - meta + - name: description + content: HDU计算机科学讲义 + - - meta + - property: 'og:url' + content: https://hdu-cs.wiki/ + - - meta + - property: 'og:type' + content: wiki + - - meta + - property: 'og:title' + content: HDU-CS-WIKI | HDU-CS-WIKI + - - meta + - property: 'og:description' + content: HDU计算机科学讲义 + - - meta + - property: 'og:image' + content: https://cdn.xyxsw.site/og-img.png + - - meta + - name: twitter:card + content: summary_large_image + - - meta + - property: 'twitter:domain' + content: hdu-cs.wiki + - - meta + - property: 'twitter:url' + content: https://hdu-cs.wiki/ + - - meta + - name: twitter:title + content: HDU-CS-WIKI | HDU-CS-WIKI + - - meta + - name: twitter:description + content: HDU计算机科学讲义 + - - meta + - name: twitter:image + content: https://cdn.xyxsw.site/og-img.png + +--- diff --git a/package-lock.json b/package-lock.json index c998e1b..4af0aeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "@codemirror/lang-sql": "^6.5.2", "@jupyterlab/mathjax2": "^3.6.5", "@jupyterlab/theme-light-extension": "^4.0.3", + "@vercel/analytics": "^1.0.1", "@vueuse/core": "^10.3.0", "markdown-it": "^13.0.1", "markdown-it-pangu": "^1.0.2", @@ -1399,6 +1400,11 @@ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" }, + "node_modules/@vercel/analytics": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@vercel/analytics/-/analytics-1.0.1.tgz", + "integrity": "sha512-Ux0c9qUfkcPqng3vrR0GTrlQdqNJ2JREn/2ydrVuKwM3RtMfF2mWX31Ijqo1opSjNAq6rK76PwtANw6kl6TAow==" + }, "node_modules/@vitejs/plugin-vue": { "version": "4.2.3", "resolved": "https://repo.huaweicloud.com/repository/npm/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", @@ -5260,6 +5266,11 @@ "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.17.tgz", "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" }, + "@vercel/analytics": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/@vercel/analytics/-/analytics-1.0.1.tgz", + "integrity": "sha512-Ux0c9qUfkcPqng3vrR0GTrlQdqNJ2JREn/2ydrVuKwM3RtMfF2mWX31Ijqo1opSjNAq6rK76PwtANw6kl6TAow==" + }, "@vitejs/plugin-vue": { "version": "4.2.3", "resolved": "https://repo.huaweicloud.com/repository/npm/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz", diff --git a/package.json b/package.json index ce45cf7..f15e6f9 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@codemirror/lang-sql": "^6.5.2", "@jupyterlab/mathjax2": "^3.6.5", "@jupyterlab/theme-light-extension": "^4.0.3", + "@vercel/analytics": "^1.0.1", "@vueuse/core": "^10.3.0", "markdown-it": "^13.0.1", "markdown-it-pangu": "^1.0.2",