Skip to content

Commit 5541f2f

Browse files
committed
fix: format
1 parent e3b5d5e commit 5541f2f

File tree

1 file changed

+52
-39
lines changed

1 file changed

+52
-39
lines changed

_posts/2024-7-31-deep-learning-note-caolvchong.md

Lines changed: 52 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ math: true
2424

2525
### K-近邻算法(KNN)
2626

27-
![KnnClassification.svg](../assets/img/deep-learning-note-caolvchong_assets/KNN.png)
27+
![KnnClassification](../assets/img/deep-learning-note-caolvchong_assets/KNN.png)
2828

2929
k近邻算法,也称为KNN 或k-NN,是**一种非参数、有监督的学习分类器,KNN 使用邻近度对单个数据点的分组进行分类或预测**。 虽然k近邻算法(KNN) 可以用于回归或分类问题,但它通常用作分类算法,假设可以在彼此附近找到相似点。 对于分类问题,**根据多数票分配类别标签**,也就是使用在给定数据点周围最常表示的标签。
3030

@@ -89,13 +89,15 @@ $$
8989
\$$
9090
\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
9191
$$
92-
其中,\$$ y_i $$ 是实际值,\$$ \hat{y}_i $$ 是预测值。
92+
93+
其中,$$ y_i $$ 是实际值,$$ \hat{y}_i $$ 是预测值。
9394
9495
- **交叉熵损失 (Cross-Entropy Loss)**:用于分类任务,公式为:
9596
\$$
9697
\text{Cross-Entropy} = -\sum_{i=1}^{n} y_i \log(\hat{y}_i)
9798
$$
98-
其中,\$$ y_i $$ 是实际类别的指示函数,\$$ \hat{y}_i $$ 是预测的概率值。
99+
100+
其中,$$ y_i $$ 是实际类别的指示函数,$$ \hat{y}_i $$ 是预测的概率值。
99101
100102
#### 5. 反向传播 (Backpropagation)
101103
@@ -134,15 +136,19 @@ W = 0.01 * np.random.randn(D, H)
134136
Dropouts can be used with most types of neural networks. It is a great tool to reduce overfitting in a model. It is far better than the available regularisation methods and can also be combined with max-norm normalisation which provides a significant boost over just using dropout.
135137
Dropout 可用于大多数类型的神经网络。它是减少模型过度拟合的好工具。它比可用的正则化方法要好得多,并且还可以与最大范数归一化相结合,这比仅使用 dropout 提供了显着的提升。
136138
137-
**Ref:** https://towardsdatascience.com/dropout-in-neural-networks-47a162d621d9
139+
**Ref:** [https://towardsdatascience.com/dropout-in-neural-networks-47a162d621d9](https://towardsdatascience.com/dropout-in-neural-networks-47a162d621d9)
138140
139141
### 线性函数(得分函数)
140142
141143
从输入到输出的映射。
142144
143145
![score-function](../assets/img/deep-learning-note-caolvchong_assets/score-function.png)
144146
145-
$$ x $$: image,行数代表特征数量 $$ W $$: parameter,每行代表一个类别,列与 $$ x $$ 相同 $$ b $$: 偏置,微调对象
147+
$$ x $$: image,行数代表特征数量
148+
149+
$$ W $$: parameter,每行代表一个类别,列与 $$ x $$ 相同
150+
151+
$$ b $$: 偏置,微调对象
146152
147153
函数结果为 $$ 10 \times 1 $$ 矩阵,每个元素代表一个类别的得分。
148154
@@ -337,8 +343,10 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
337343
##### 定义
338344
339345
1. **卷积核的结构**:
340-
- 卷积核通常是一个小的矩阵,比如 \(\$$3 \times 3$$\), \(\$$5 \times 5$$\) 或者 \(\$$7 \times 7$$\) 等。对于彩色图像,卷积核的深度与输入图像的通道数相同(例如,对于RGB图像,深度为\$$3$$)。
341-
- 例如,一个 \(\$$3 \times 3$$\) 的卷积核在RGB图像上的形状是 \(\$$3 \times 3 \times 3$$\)。
346+
347+
卷积核通常是一个小的矩阵,比如 \($$3 \times 3$$\), \($$5 \times 5$$\) 或者 \($$7 \times 7$$\) 等。对于彩色图像,卷积核的深度与输入图像的通道数相同(例如,对于RGB图像,深度为$$3$$)。
348+
349+
例如,一个 \($$3 \times 3$$\) 的卷积核在RGB图像上的形状是 \($$3 \times 3 \times 3$$\)。
342350
343351
2. **卷积操作**:
344352
- 卷积核在输入数据上滑动(也称为卷积),在每个位置上与输入数据的对应区域进行逐元素相乘,然后求和,得到一个单一值,这个过程称为点积(Dot Product)。
@@ -368,7 +376,6 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
368376
3. **提高泛化能力**:
369377
- 由于参数共享,卷积核能够捕捉到输入图像的局部特征,这些特征在图像的不同位置具有相似性,从而提高了模型的泛化能力。
370378
371-
> [!TIP]
372379
>
373380
> 假设输入图像是一个 \($$5 \times 5$$\) 的灰度图像(单通道),卷积核是一个 \($$3 \times 3$$\) 的矩阵。以下是一个具体的卷积操作例子:
374381
>
@@ -416,12 +423,12 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
416423
> $$
417424
>
418425
> 通过在输入图像上重复这个过程,可以生成一个输出特征图。
426+
{: .prompt-tip }
419427
420428
##### 区分卷积核的个数与深度
421429
422-
> [!CAUTION]
423-
>
424430
> 卷积核的数目和输入数据的层数不一定相同。这里需要区分的是卷积核的**数目**和卷积核的**深度**。卷积核的数目是指一个卷积层中使用的不同卷积核的数量,而卷积核的深度是指每个卷积核在处理输入数据时所涉及的通道数。
431+
{: .prompt-tip }
425432
426433
在卷积神经网络中,卷积核的数目和输入数据的层数(通道数)不是相同的概念:
427434
@@ -447,9 +454,9 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
447454
448455
卷积神经网络通过一系列卷积层、激活函数和池化层的操作,逐步提取输入数据的特征,并生成特征图。**特征图是卷积操作后的结果,包含了输入数据中被滤波器检测到的特征**。通过多层特征图的传递和处理,CNN能够从原始输入数据中提取出有用的特征,并完成各种任务如图像分类、目标检测等。特征图在CNN中起到了信息传递和特征表示的重要作用,是理解和设计卷积神经网络的核心概念之一。
449456
450-
> [!NOTE]
451-
>
457+
452458
> 如果在卷积层中使用多个滤波器(filters),每个滤波器会生成一个特征图。因此,一个卷积层会产生多个特征图,这些特征图堆叠在一起形成该层的输出。
459+
{: .prompt-tip }
453460
454461
![cnn-multi-filters](../assets/img/deep-learning-note-caolvchong_assets/cnn-multi-filters.png)
455462
@@ -498,23 +505,22 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
498505
499506
#### 卷积层参数
500507
501-
> [!IMPORTANT]
502-
>
503508
> - **滑动窗口步长**:影响特征图的尺寸和计算成本。较大的步长减少特征图尺寸,较小的步长保留更多细节。
504509
> - **卷积核尺寸**:决定每次卷积操作的覆盖区域。较小的卷积核捕捉细节,较大的卷积核捕捉全局特征。
505510
> - **边缘填充**:控制特征图尺寸和边缘信息的处理。填充可以使特征图尺寸与输入相同或更接近。
506511
> - **卷积核个数**:决定输出特征图的深度。更多的卷积核提取更多样化的特征,提高模型的表示能力。
512+
{: .prompt-info }
507513
508514
##### 1. 滑动窗口步长(Stride)
509515
510516
![cnn-step](../assets/img/deep-learning-note-caolvchong_assets/cnn-step.png)
511517
512518
步长是卷积核在输入数据上滑动时每次移动的像素数。步长可以是水平和垂直方向上的不同值,通常为一个标量(如 1, 2 等)或一个元组(如 (2, 2) 表示在两个方向上都移动 2 个像素)。
513519
514-
> [!TIP]
515-
>
516-
> - 如果输入图像的尺寸为 \$$ 32 \times 32 $$,卷积核尺寸为 \$$ 3 \times 3 $$,没有填充且步长为 \$$ 1 $$,则输出特征图的尺寸为 \$$ 30 \times 30 $$
517-
> - 若步长为 \$$ 2 $$,则输出特征图的尺寸为 \$$ 15 \times 15 $$。
520+
> 如果输入图像的尺寸为 $$ 32 \times 32 $$,卷积核尺寸为 $$ 3 \times 3 $$,没有填充且步长为 $$ 1 $$,则输出特征图的尺寸为 $$ 30 \times 30 $$
521+
>
522+
> 若步长为 $$ 2 $$,则输出特征图的尺寸为 $$ 15 \times 15 $$
523+
{: .prompt-tip }
518524

519525
**作用**
520526

@@ -526,23 +532,21 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
526532

527533
卷积核的尺寸是一个表示卷积核高度和宽度的标量或元组(如 $$ 3 \times 3 $$, $$ 5 \times 5 $$ 等),深度省略是因为卷积核的深度必须与输入数据的层数(即通道数)相同。
528534

529-
> [!TIP]
530-
>
531535
> 一个 $$ 3 \times 3 $$ 的卷积核在输入图像上进行卷积操作时,每次覆盖 $$3$$$$3$$ 列的像素区域。
536+
{: .prompt-tip }
532537

533538
**作用**
534539

535540
- 卷积核的尺寸决定了每次卷积操作覆盖的输入区域大小。较大的卷积核能够捕捉更大的局部特征,但计算量也更大。
536541

537-
- 不同的卷积核尺寸适用于不同类型的特征提取需求。例如,较小的卷积核(如 $$ 3 \times 3$$ )常用于捕捉细节特征,而较大的卷积核(如 $$ 7 \times 7 $$)则用于捕捉更全局的特征。
542+
- 不同的卷积核尺寸适用于不同类型的特征提取需求。例如,较小的卷积核如( $$ 3 \times 3$$ )常用于捕捉细节特征,而较大的卷积核(如 $$ 7 \times 7 $$)则用于捕捉更全局的特征。
538543

539544
##### 3. 边缘填充(Padding)
540545

541546
填充是在输入数据的边缘添加额外的像素。常见的填充方式有 "valid"(无填充)和 "same"(填充使得输出特征图尺寸与输入相同)。
542547

543-
> [!TIP]
544-
>
545548
> 对于 $$ 3 \times 3 $$ 的卷积核,输入图像尺寸为 $$ 32 \times 32 $$,若使用 "same" 填充(填充 1 像素),则输出特征图尺寸仍为 $$ 32 \times 32 $$
549+
{: .prompt-tip }
546550

547551
**作用**
548552

@@ -554,9 +558,8 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
554558

555559
卷积核个数是指卷积层中使用的滤波器数量。每个滤波器生成一个特征图。
556560

557-
> [!TIP]
558-
>
559-
> 如果卷积层有 64 个 $$ 3 \times 3 $$ 的卷积核,输入图像尺寸为 $$ 32 \times 32 \times 3 $$,则输出特征图的尺寸为 $$ 32 \times 32 \times 64 $$(假设步长为 $$1$$,填充为 "same")。
561+
> 如果卷积层有 $$64$$$$ 3 \times 3 $$ 的卷积核,输入图像尺寸为 $$ 32 \times 32 \times 3 $$,则输出特征图的尺寸为 $$ 32 \times 32 \times 64 $$(假设步长为 $$1$$,填充为 "same")。
562+
{: .prompt-tip }
560563

561564
**作用**
562565

@@ -586,17 +589,27 @@ $$
586589

587590
**公式中的符号解释**
588591

589-
- \( \$$H$$ \):输入图像的高度。
590-
- \( \$$W$$ \):输入图像的宽度。
591-
- \( \$$D$$ \):输入图像的深度(通道数)。
592-
- \( \$$K_H$$ \):卷积核的高度。
593-
- \( \$$K_W$$ \):卷积核的宽度。
594-
- \( \$$S_H$$ \):垂直方向的步长。
595-
- \( \$$S_W$$ \):水平方向的步长。
596-
- \( \$$P_H$$ \):垂直方向的填充大小。
597-
- \( \$$P_W$$ \):水平方向的填充大小。
598-
- \( \$$N$$ \):卷积核的数量(即输出特征图的深度)。
599-
- \( \$$\left\lfloor x \right\rfloor$$ \):表示对 \(x\) 进行下取整操作。
592+
$$H$$:输入图像的高度。
593+
594+
$$W$$:输入图像的宽度。
595+
596+
$$D$$:输入图像的深度(通道数)。
597+
598+
$$K_H$$:卷积核的高度。
599+
600+
$$K_W$$:卷积核的宽度。
601+
602+
$$S_H$$:垂直方向的步长。
603+
604+
$$S_W$$:水平方向的步长。
605+
606+
$$P_H$$:垂直方向的填充大小。
607+
608+
$$P_W$$:水平方向的填充大小。
609+
610+
$$N$$:卷积核的数量(即输出特征图的深度)。
611+
612+
$$\left\lfloor x \right\rfloor$$:表示对 \(x\) 进行下取整操作。
600613

601614
> ### 例子
602615
>
@@ -772,7 +785,7 @@ LeNet-5是由Yann LeCun等人于1998年提出的,用于手写数字识别。
772785

773786
AlexNet由Alex Krizhevsky等人于2012年提出,在ILSVRC 2012竞赛中取得了巨大成功。其结构如下:
774787

775-
![](../assets/img/deep-learning-note-caolvchong_assets/Comparison_image_neural_networks.svg)
788+
![alexnet](../assets/img/deep-learning-note-caolvchong_assets/Comparison_image_neural_networks.svg){: width="900" }
776789

777790
1. **输入层**:227x227x3的彩色图像
778791
2. **卷积层1**:96个11x11卷积核,步长为4,输出尺寸55x55x96
@@ -889,7 +902,7 @@ ResNet由He等人于2015年提出,以其残差连接(skip connections)而
889902

890903
###### 残差块(Residual Block)
891904

892-
![residual-block](../assets/img/deep-learning-note-caolvchong_assets/residual-block.svg)
905+
![residual-block](../assets/img/deep-learning-note-caolvchong_assets/residual-block.svg){: width="900" }
893906

894907
残差块是ResNet的基本构建单元,包含一个或多个卷积层和一个直接的短路连接。具体来说,残差块的输出是输入的恒等映射与卷积层输出的相加。
895908

0 commit comments

Comments
 (0)