Skip to content

Commit ce7d56b

Browse files
Update 2.2-deep-learning-basic-mathematics.ipynb
1 parent d18ddbb commit ce7d56b

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

chapter2/2.2-deep-learning-basic-mathematics.ipynb

+13-13
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"- 半监督学习 :在训练阶段结合了大量未标记的数据和少量标签数据。与使用所有标签数据的模型相比,使用训练集的训练模型在训练时可以更为准确。\n",
3030
"- 强化学习:我们设定一个回报函数(reward function),通过这个函数来确认否越来越接近目标,类似我们训练宠物,如果做对了就给他奖励,做错了就给予惩罚,最后来达到我们的训练目的。\n",
3131
"\n",
32-
"这里我们只着重介绍监督学习,因为我们后面的绝大部们课程都是使用的监督学习的方法,在训练和验证时输入的数据既包含输入x,又包含x对应的输出y,即学习数据已经事先给出了正确答案。"
32+
"这里我们只着重介绍监督学习,因为我们后面的绝大部们课程都是使用的监督学习的方法,在训练和验证时输入的数据既包含输入x又包含x对应的输出y,即学习数据已经事先给出了正确答案。"
3333
]
3434
},
3535
{
@@ -185,7 +185,7 @@
185185
"cell_type": "markdown",
186186
"metadata": {},
187187
"source": [
188-
"其中参数(1, 1)代表输入输出的特征(feature)数量都是1. `Linear` 模型的表达式是 $y=w \\cdot x+b$, 其中 $w$ 代表权重, $b$ 代表偏置"
188+
"其中参数(1, 1)代表输入输出的特征(feature)数量都是1. `Linear` 模型的表达式是 $y=w \\cdot x+b$其中 $w$ 代表权重 $b$ 代表偏置"
189189
]
190190
},
191191
{
@@ -241,7 +241,7 @@
241241
"cell_type": "markdown",
242242
"metadata": {},
243243
"source": [
244-
"准备训练数据: `x_train`, `y_train` 的形状是 (256, 1), 代表 `mini-batch` 大小为256, `feature` 为1. `astype('float32')` 是为了下一步可以直接转换为 `torch.float`."
244+
"准备训练数据: `x_train`, `y_train` 的形状是 (256, 1) 代表 `mini-batch` 大小为256 `feature` 为1. `astype('float32')` 是为了下一步可以直接转换为 `torch.float`."
245245
]
246246
},
247247
{
@@ -327,7 +327,7 @@
327327
"cell_type": "markdown",
328328
"metadata": {},
329329
"source": [
330-
"训练完成了,看一下训练的成果是多少. 用 `model.parameters()` 提取模型参数. $w$, $b$ 是我们所需要训练的模型参数\n",
330+
"训练完成了,看一下训练的成果是多少用 `model.parameters()` 提取模型参数 $w$ $b$ 是我们所需要训练的模型参数\n",
331331
"我们期望的数据 $w=5$,$b=7$ 可以做一下对比"
332332
]
333333
},
@@ -386,7 +386,7 @@
386386
"source": [
387387
"以上就是一个使用PyTorch做线性回归的简单样例了,下面我们会对上面的内容做详细的介绍\n",
388388
"## 2.2.3 损失函数(Loss Function)\n",
389-
"损失函数(loss function)是用来估量模型的预测值(我们例子中的output)与真实值(例子中的y_train)的不一致程度,它是一个非负实值函数,损失函数越小,模型的鲁棒性就越好。\n",
389+
"损失函数(loss function)是用来估量模型的预测值(我们例子中的output)与真实值(例子中的y_train)的不一致程度,它是一个非负实值函数损失函数越小,模型的鲁棒性就越好。\n",
390390
"我们训练模型的过程,就是通过不断的迭代计算,使用梯度下降的优化算法,使得损失函数越来越小。损失函数越小就表示算法达到意义上的最优。\n",
391391
"\n",
392392
"这里有一个重点:因为PyTorch是使用mini-batch来进行计算的,所以损失函数的计算出来的结果已经对mini-batch取了平均\n",
@@ -427,7 +427,7 @@
427427
"metadata": {},
428428
"source": [
429429
"### nn.CrossEntropyLoss:\n",
430-
"多分类用的交叉熵损失函数,LogSoftMax和NLLLoss集成到一个类中,会调用nn.NLLLoss函数,我们可以理解为CrossEntropyLoss()=log_softmax() + NLLLoss()\n",
430+
"多分类用的交叉熵损失函数,LogSoftMax和NLLLoss集成到一个类中,会调用nn.NLLLoss函数我们可以理解为CrossEntropyLoss()=log_softmax() + NLLLoss()\n",
431431
"\n",
432432
"\n",
433433
" $ \\begin{aligned} loss(x, class) &= -\\text{log}\\frac{exp(x[class])}{\\sum_j exp(x[j]))}\\ &= -x[class] + log(\\sum_j exp(x[j])) \\end{aligned} $\n",
@@ -469,7 +469,7 @@
469469
"source": [
470470
"### 梯度\n",
471471
"在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。\n",
472-
"例如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。\n",
472+
"例如函数f(x,y), 分别对xy求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T简称grad f(x,y)或者▽f(x,y)。\n",
473473
"\n",
474474
"几何上讲,梯度就是函数变化增加最快的地方,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向梯度减少最快,也就是更加容易找到函数的最小值。\n",
475475
"\n",
@@ -504,7 +504,7 @@
504504
"![](2.png)\n",
505505
"普通的batch梯度下降法和Mini-batch梯度下降法代价函数的变化趋势,如下图所示:\n",
506506
"![](3.png)\n",
507-
"- 如果训练样本的大小比较小时,能够一次性的读取到内存中,那我们就不需要使用Mini-batch,\n",
507+
"- 如果训练样本的大小比较小时能够一次性的读取到内存中,那我们就不需要使用Mini-batch,\n",
508508
"- 如果训练样本的大小比较大时,一次读入不到内存或者现存中,那我们必须要使用 Mini-batch来分批的计算\n",
509509
"- Mini-batch size的计算规则如下,在内存允许的最大情况下使用2的N次方个size\n",
510510
"![](4.png)\n"
@@ -516,7 +516,7 @@
516516
"source": [
517517
"`torch.optim`是一个实现了各种优化算法的库。大部分常用优化算法都有实现,我们直接调用即可。\n",
518518
"### torch.optim.SGD\n",
519-
"随机梯度下降算法,带有动量(momentum)的算法作为一个可选参数可以进行设置,样例如下:"
519+
"随机梯度下降算法带有动量(momentum)的算法作为一个可选参数可以进行设置,样例如下:"
520520
]
521521
},
522522
{
@@ -571,12 +571,12 @@
571571
"metadata": {},
572572
"source": [
573573
"## 2.2.5 方差/偏差\n",
574-
"- 偏差度量了学习算法的期望预测与真实结果的偏离程序, 即 刻画了学习算法本身的拟合能力\n",
575-
"- 方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即 模型的泛化能力\n",
574+
"- 偏差度量了学习算法的期望预测与真实结果的偏离程序,即刻画了学习算法本身的拟合能力\n",
575+
"- 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即模型的泛化能力\n",
576576
"![](5.png)\n",
577577
"\n",
578578
"从图中我们可以看出\n",
579-
"- 高偏差(high bias)的情况,一般称为欠拟合(underfitting),即我们的模型并没有很好的去适配现有的数据,拟合度不够。\n",
579+
"- 高偏差(high bias)的情况,一般称为欠拟合(underfitting)即我们的模型并没有很好的去适配现有的数据,拟合度不够。\n",
580580
"- 高方差(high variance)的情况一般称作过拟合(overfitting),即模型对于训练数据拟合度太高了,失去了泛化的能力。\n",
581581
"\n",
582582
"如何解决这两种情况呢?\n",
@@ -616,7 +616,7 @@
616616
"metadata": {},
617617
"source": [
618618
"## 2.2.6 正则化\n",
619-
"利用正则化来解决High variance 的问题,正则化是在 Cost function 中加入一项正则化项,惩罚模型的复杂度,这里我们简单的介绍一下正则化的概念"
619+
"利用正则化来解决High variance 的问题,正则化是在 Cost function 中加入一项正则化项,惩罚模型的复杂度这里我们简单的介绍一下正则化的概念"
620620
]
621621
},
622622
{

0 commit comments

Comments
 (0)