@@ -24,7 +24,7 @@ math: true
24
24
25
25
### K-近邻算法(KNN)
26
26
27
- ![ KnnClassification.svg ] ( ../assets/img/deep-learning-note-caolvchong_assets/KNN.png )
27
+ ![ KnnClassification] ( ../assets/img/deep-learning-note-caolvchong_assets/KNN.png )
28
28
29
29
k近邻算法,也称为KNN 或k-NN,是** 一种非参数、有监督的学习分类器,KNN 使用邻近度对单个数据点的分组进行分类或预测** 。 虽然k近邻算法(KNN) 可以用于回归或分类问题,但它通常用作分类算法,假设可以在彼此附近找到相似点。 对于分类问题,** 根据多数票分配类别标签** ,也就是使用在给定数据点周围最常表示的标签。
30
30
89
89
\$ $
90
90
\text{MSE} = \frac{1}{n} \sum_ {i=1}^{n} (y_i - \hat{y}_ i)^2
91
91
$$
92
- 其中,\$$ y_i $$ 是实际值,\$$ \hat{y}_i $$ 是预测值。
92
+
93
+ 其中,$$ y_i $$ 是实际值,$$ \hat{y}_i $$ 是预测值。
93
94
94
95
- **交叉熵损失 (Cross-Entropy Loss)**:用于分类任务,公式为:
95
96
\ $$
96
97
\text{Cross-Entropy} = -\sum_ {i=1}^{n} y_i \log(\hat{y}_ i)
97
98
$$
98
- 其中,\$$ y_i $$ 是实际类别的指示函数,\$$ \hat{y}_i $$ 是预测的概率值。
99
+
100
+ 其中,$$ y_i $$ 是实际类别的指示函数,$$ \hat{y}_i $$ 是预测的概率值。
99
101
100
102
#### 5. 反向传播 (Backpropagation)
101
103
@@ -134,15 +136,19 @@ W = 0.01 * np.random.randn(D, H)
134
136
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.
135
137
Dropout 可用于大多数类型的神经网络。它是减少模型过度拟合的好工具。它比可用的正则化方法要好得多,并且还可以与最大范数归一化相结合,这比仅使用 dropout 提供了显着的提升。
136
138
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)
138
140
139
141
### 线性函数(得分函数)
140
142
141
143
从输入到输出的映射。
142
144
143
145

144
146
145
- $$ x $$: image,行数代表特征数量 $$ W $$: parameter,每行代表一个类别,列与 $$ x $$ 相同 $$ b $$: 偏置,微调对象
147
+ $$ x $$: image,行数代表特征数量
148
+
149
+ $$ W $$: parameter,每行代表一个类别,列与 $$ x $$ 相同
150
+
151
+ $$ b $$: 偏置,微调对象
146
152
147
153
函数结果为 $$ 10 \times 1 $$ 矩阵,每个元素代表一个类别的得分。
148
154
@@ -337,8 +343,10 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
337
343
##### 定义
338
344
339
345
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$$\)。
342
350
343
351
2. **卷积操作**:
344
352
- 卷积核在输入数据上滑动(也称为卷积),在每个位置上与输入数据的对应区域进行逐元素相乘,然后求和,得到一个单一值,这个过程称为点积(Dot Product)。
@@ -368,7 +376,6 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
368
376
3. **提高泛化能力**:
369
377
- 由于参数共享,卷积核能够捕捉到输入图像的局部特征,这些特征在图像的不同位置具有相似性,从而提高了模型的泛化能力。
370
378
371
- > [!TIP]
372
379
>
373
380
> 假设输入图像是一个 \($$5 \times 5$$\) 的灰度图像(单通道),卷积核是一个 \($$3 \times 3$$\) 的矩阵。以下是一个具体的卷积操作例子:
374
381
>
@@ -416,12 +423,12 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
416
423
> $$
417
424
>
418
425
> 通过在输入图像上重复这个过程,可以生成一个输出特征图。
426
+ {: .prompt-tip }
419
427
420
428
##### 区分卷积核的个数与深度
421
429
422
- > [!CAUTION]
423
- >
424
430
> 卷积核的数目和输入数据的层数不一定相同。这里需要区分的是卷积核的**数目**和卷积核的**深度**。卷积核的数目是指一个卷积层中使用的不同卷积核的数量,而卷积核的深度是指每个卷积核在处理输入数据时所涉及的通道数。
431
+ {: .prompt-tip }
425
432
426
433
在卷积神经网络中,卷积核的数目和输入数据的层数(通道数)不是相同的概念:
427
434
@@ -447,9 +454,9 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
447
454
448
455
卷积神经网络通过一系列卷积层、激活函数和池化层的操作,逐步提取输入数据的特征,并生成特征图。**特征图是卷积操作后的结果,包含了输入数据中被滤波器检测到的特征**。通过多层特征图的传递和处理,CNN能够从原始输入数据中提取出有用的特征,并完成各种任务如图像分类、目标检测等。特征图在CNN中起到了信息传递和特征表示的重要作用,是理解和设计卷积神经网络的核心概念之一。
449
456
450
- > [!NOTE]
451
- >
457
+
452
458
> 如果在卷积层中使用多个滤波器(filters),每个滤波器会生成一个特征图。因此,一个卷积层会产生多个特征图,这些特征图堆叠在一起形成该层的输出。
459
+ {: .prompt-tip }
453
460
454
461

455
462
@@ -498,23 +505,22 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
498
505
499
506
#### 卷积层参数
500
507
501
- > [!IMPORTANT]
502
- >
503
508
> - **滑动窗口步长**:影响特征图的尺寸和计算成本。较大的步长减少特征图尺寸,较小的步长保留更多细节。
504
509
> - **卷积核尺寸**:决定每次卷积操作的覆盖区域。较小的卷积核捕捉细节,较大的卷积核捕捉全局特征。
505
510
> - **边缘填充**:控制特征图尺寸和边缘信息的处理。填充可以使特征图尺寸与输入相同或更接近。
506
511
> - **卷积核个数**:决定输出特征图的深度。更多的卷积核提取更多样化的特征,提高模型的表示能力。
512
+ {: .prompt-info }
507
513
508
514
##### 1. 滑动窗口步长(Stride)
509
515
510
516

511
517
512
518
步长是卷积核在输入数据上滑动时每次移动的像素数。步长可以是水平和垂直方向上的不同值,通常为一个标量(如 1, 2 等)或一个元组(如 (2, 2) 表示在两个方向上都移动 2 个像素)。
513
519
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 }
518
524
519
525
** 作用**
520
526
@@ -526,23 +532,21 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
526
532
527
533
卷积核的尺寸是一个表示卷积核高度和宽度的标量或元组(如 $$ 3 \times 3 $$ , $$ 5 \times 5 $$ 等),深度省略是因为卷积核的深度必须与输入数据的层数(即通道数)相同。
528
534
529
- > [ !TIP]
530
- >
531
535
> 一个 $$ 3 \times 3 $$ 的卷积核在输入图像上进行卷积操作时,每次覆盖 $$ 3 $$ 行 $$ 3 $$ 列的像素区域。
536
+ {: .prompt-tip }
532
537
533
538
** 作用**
534
539
535
540
- 卷积核的尺寸决定了每次卷积操作覆盖的输入区域大小。较大的卷积核能够捕捉更大的局部特征,但计算量也更大。
536
541
537
- - 不同的卷积核尺寸适用于不同类型的特征提取需求。例如,较小的卷积核(如 $$ 3 \times 3 $$ )常用于捕捉细节特征,而较大的卷积核(如 $$ 7 \times 7 $$ )则用于捕捉更全局的特征。
542
+ - 不同的卷积核尺寸适用于不同类型的特征提取需求。例如,较小的卷积核如( $$ 3 \times 3 $$ )常用于捕捉细节特征,而较大的卷积核(如 $$ 7 \times 7 $$ )则用于捕捉更全局的特征。
538
543
539
544
##### 3. 边缘填充(Padding)
540
545
541
546
填充是在输入数据的边缘添加额外的像素。常见的填充方式有 "valid"(无填充)和 "same"(填充使得输出特征图尺寸与输入相同)。
542
547
543
- > [ !TIP]
544
- >
545
548
> 对于 $$ 3 \times 3 $$ 的卷积核,输入图像尺寸为 $$ 32 \times 32 $$ ,若使用 "same" 填充(填充 1 像素),则输出特征图尺寸仍为 $$ 32 \times 32 $$ 。
549
+ {: .prompt-tip }
546
550
547
551
** 作用**
548
552
@@ -554,9 +558,8 @@ Ref: [Introduce to Loss Function](https://www.datarobot.com/blog/introduction-to
554
558
555
559
卷积核个数是指卷积层中使用的滤波器数量。每个滤波器生成一个特征图。
556
560
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 }
560
563
561
564
** 作用**
562
565
586
589
587
590
** 公式中的符号解释**
588
591
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\) 进行下取整操作。
600
613
601
614
> ### 例子
602
615
>
@@ -772,7 +785,7 @@ LeNet-5是由Yann LeCun等人于1998年提出的,用于手写数字识别。
772
785
773
786
AlexNet由Alex Krizhevsky等人于2012年提出,在ILSVRC 2012竞赛中取得了巨大成功。其结构如下:
774
787
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" }
776
789
777
790
1 . ** 输入层** :227x227x3的彩色图像
778
791
2 . ** 卷积层1** :96个11x11卷积核,步长为4,输出尺寸55x55x96
@@ -889,7 +902,7 @@ ResNet由He等人于2015年提出,以其残差连接(skip connections)而
889
902
890
903
###### 残差块(Residual Block)
891
904
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" }
893
906
894
907
残差块是ResNet的基本构建单元,包含一个或多个卷积层和一个直接的短路连接。具体来说,残差块的输出是输入的恒等映射与卷积层输出的相加。
895
908
0 commit comments