1.提示词(Prompt)
与大模型交互时,输入模型中的内容,就是提示词
2.token
token是计量模型输入/输出的最小单位。
汉语一个字符是3-4个token,英语的一个英文单词一般是1-2个token。
3.什么是模型
模型是经过训练的算法或数学结构,能够从数据中学习规律,并对新的输入(例如图像、文本、声音等)进行分析、推理、预测或生成结果,它是AI的“大脑”,可以将输入转化为有意义的输出。
模型本身是一个文件如:(这是一个很简单的小模型)
最经典的模型:y=kx+b 这就是个线性模型,在这个模型中k代表斜率,b代表直线的截距。
假设:现在我们要做一个股票预测的模型,我将每天股票的数据比如:成交量、股价、等作为数据来拟合一条曲线(其实和k线图一样这里就先随便找一个图好了)。
对于模型来说,k和b就是他要学习的参数。
4.什么是神经网络
神经网络是一种模仿生物大脑结构和功能的计算模型,是机器学习和深度学习的核心工具,通过层层连接的“神经元”处理输入数据,学习数据中的复杂模式,最终实现分类、预测或生成等任务。
5.神经网络的类型
- 前馈神经网络(FNN):最简单的单向结构,无循环(如多层感知机MLP)。
- 卷积神经网络(CNN):专为图像设计,卷积层是卷积神经网络中的核心模块,卷积层的目的是提取输入特征图的特征,用卷积核提取局部特征(如ResNet、VGG),CNN常用于人脸识别、医学影像分析。
卷积神经网络中:
第1层可能负责识别图像的颜色及简单的纹理
第2层可能识别更细化的纹理、布纹、叶纹等
第3层可能识别图像上的具体特征比如黄色的烛光、萤火、鸡蛋的黄色
第4层可能识别出图像上具体的事物比如狗的脸、猫的爪子、圆柱体的事物、七星瓢虫
第5层可能就能识别出图像上大致完整的事物例如有狗、花、屋顶、键盘、电脑等
.....很多层之后
最后综合这些特征神经网络就能将判别知道完整的图像内容如:绿色的草地上有一头黑白花色的奶牛在吃草。
- 循环神经网络(RNN):处理序列数据(如文本、时间序列),有记忆功能(如LSTM、GRU)。
- Transformer:基于自注意力机制,擅长长距离依赖(如BERT、GPT)。
- 生成对抗网络(GAN):由生成器和判别器对抗训练,生成逼真数据。
6.卷积神经网络流程示例
图中步骤为:
• 输入层: 最左边的棋盘格图案代表了输入数据,这里是一个简单的二维矩阵,可以是图像的像素值。
• 卷积层(Convolution): 第一个矩形框内有一个“X”标记,表示卷积操作,逐点相乘计算来提取特征。卷积层通过卷积核(或滤波器)在输入数据上滑动,提取局部特征。这些特征可以是边缘、纹理等。
• 激活函数层(ReLU): 紧接着卷积层的是ReLU(Rectified Linear Unit)激活函数层。ReLU函数将所有负值置为0,保留正值,增加网络的非线性能力,帮助模型学习更复杂的特征。
• 卷积层和ReLU层的重复: 图中显示了多次卷积和ReLU操作的重复,这有助于提取更深层次的特征。
• 池化层(Pooling): 池化层(通常是最大池化或平均池化)一般是2×2的区域取最大值(最大池化)或者平均值(平均池化)等,用于降低特征图的空间维度,减少计算量,同时保留重要特征。图中用向下的三角形表示池化操作。
• 输出层: 经过一系列的卷积、ReLU和池化操作后,最后得到的特征图被用于分类或其他任务。图中最右边的三个小方块代表了分类结果的概率分布,每个方块对应一个类别,颜色深浅表示概率大小。
整个流程展示了CNN如何通过层层抽象,从原始图像数据中提取特征并进行分类的过程。这种结构使得CNN在图像识别任务中表现出色。
7.卷积神经网络代码示例
import tensorflow as tf
net = tf.keras.models.Sequential([
# 卷积层:96个卷积核 卷积核的大小:11*11(相当于一组权重参数)
# 步长:4(卷积核在图像上移动的尺寸) 激活函数:relu
tf.keras.layers.Conv2D(filters=96, kernel_size=11,
strides=4, activation="relu"),
# 池化:3*3 2
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
# 卷积:256 5*5 1 RELU same
#tf.keras.layers.Conv2D(filters=256, kernel_size=5,padding="same", activation="relu"),
# 池化: 3*3 2
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
# 卷积:384 3*3 1 RELU same
#tf.keras.layers.Conv2D(filters=384, kernel_size=3, padding="same", activation="relu"),
# 卷积:384 3*3 1 RELU same
#tf.keras.layers.Conv2D(filters=384, kernel_size=3, padding="same", activation="relu"),
# 卷积:256 3*3 1 RELU same
tf.keras.layers.Conv2D(filters=256, kernel_size=3, padding="same", activation="relu"),
# 池化:3*3 2
tf.keras.layers.MaxPool2D(pool_size=3, strides=2),
# 展开
tf.keras.layers.Flatten(),
# 全连接层:4096 relu
tf.keras.layers.Dense(1024, activation="relu"),
# 随机失活
tf.keras.layers.Dropout(0.5),
# 全连接层:4096 relu
tf.keras.layers.Dense(256, activation="relu"),
# 随机失活
tf.keras.layers.Dropout(0.5),
# 输出层:
tf.keras.layers.Dense(10, activation="softmax")
])
问题1:输出层: tf.keras.layers.Dense(10, activation="softmax"),
最后一层的类别是10,代表的是输出10个特征
问题2:全连接层:tf.keras.layers.Dense为什么有多次?
因为多层的全连接可以提取特征更加的全面,只写一层全连接也是可以的。
问题3:为什么要随机失活: tf.keras.layers.Dropout(0.5)
让神经元随机失活,可以减轻神经网络计算量,并且可以强制神经网络不依赖单一神经元,来提升模型的泛化能力,从而减少过拟合。
问题4:卷积核的步长是什么意思?
指的是卷积核在滑动处理输入数据时,每次移动的像素距离。它是卷积神经网络(CNN)中一个关键的超参数,直接影响输出特征图的尺寸、计算效率和模型对输入信息的捕捉能力。
问题5:如何判断模型层数不够深导致学习不好还是因为数据量导致?
可以增加数据量在模型不变的情况下看看效果是否变好,变好了就是数据量问题,没变好就是模型的问题
问题6:浅层网络的卷积核比深层的卷积核数量少?
因为卷积神经网络的模型在浅层时识别的都是边缘纹理颜色等不是很复杂的特征,但是到了深层网络时识别的都是较为复杂事物的特征,需要识别更加细腻的内容,所以需要更多的卷积核。
经验:一般深层网络的卷积核是浅层网络卷积核的翻倍或者更多。
8.深度神经网络深度变的更深,为什么用更小的卷积核?
神经网络变深,相当于可以提取更加细化的特征。
使用更小的卷积核:可以提前知道更多的细节。怎么理解这个细节呢?其实就是使用更小的卷积核他的计算参数会少。
以上图为例:假设输入的是7×7的图像,用5×5的卷积核进行卷积,卷积完一次(步长为1)后输出的图大小为3×3
计算公式为:输出尺寸 = (输入尺寸 - 卷积核尺寸) / 步长 + 1
= (7 - 5) / 1 + 1
= 3
现在假设输入的是7×7的图像,使用3×3的卷积核进行卷积,卷积完一次后输出的图像大小为5×5,此时在此基础上5×5的图像做为输入,使用3×3的卷积核再进行一次卷积会输出一个3×3的图像。
使用5×5的卷积核需要 学习25个参数才可以输出一个图像,而使用2个3×3的卷积核只需要18个参数就可以获得超越5×5的卷积核所输出的效果,拿到了同样的输出的大小,但是参数量减少了30%。
这就是上图中为什么使用2个3×3卷积核的原因
9.GoogLeNet神经网络并联卷积
他的思想就是:当一个特征输进来,同时用四个支路并联对它提取和分析,然后,再进行输出,再用四个支路进行提取分析,卷积层的设计有这种模块化的结构,也是我们未来会常见到的一些设计方法。
10.不同CNN神经网络效果比对
11.神经网络层数深度与模型性能关系
这张图展示了深度学习模型在图像识别任务(ILSVRC,ImageNet Large Scale Visual Recognition Challenge)上的性能演变,特别是随着网络层数增加,模型性能的提升情况。
以几个著名的深度学习模型及其在ILSVRC上的表现(从右往左看):
• ILSVRC'12 AlexNet:有8层,错误率为16.4%。
• ILSVRC'13 VGG:有19层,错误率为7.3%。
• ILSVRC'14 GoogleNet:有22层,错误率为6.7%。
• ILSVRC'15 ResNet:有152层,错误率为3.57%。
图中用蓝色柱状图表示每个模型的错误率,错误率越低,模型的性能越好。可以看到,随着网络层数的增加,模型的错误率逐渐降低,性能逐渐提高。
此外,图中还用虚线连接了不同年份的模型,显示了错误率的下降趋势。最右侧的“shallow”表示浅层模型,而最左侧的“152 layers”表示深层模型。
可以明显的看到在ILSVRC'13 VGG 19层 与 ILSVRC'14 GoogleNet 22层 错误下降率仅为0.7%也就是说继续加深模型的层度效果越来越低。
网络层度的加深在一定程度上可以提高性能,但是提高性能是有限的。
12.残差网络ResNet
1.深度学习中网络退化
这个图展示了深度学习中网络退化(degradation)的问题,以及ResNet(残差网络)如何解决这个问题。
图的内容解释:
• 网络退化问题:
• 随着网络层数的增加,理论上网络应该能够学习到更复杂的特征,从而提高性能。
• 然而,在实践中,随着网络层数的增加,优化效果反而变差,导致测试数据和训练数据的准确率降低。
• 图中提到,56层的网络比20层的网络效果还要差,这种现象称为网络退化。
• 图示:
• 左图显示了训练误差(training error)随迭代次数(iter.)的变化。可以看到,56层网络(红色线)在训练过程中误差下降得更快,但最终的训练误差高于20层网络(黄色线)。
• 右图显示了测试误差(test error)随迭代次数的变化。同样,56层网络的测试误差最终高于20层网络,这表明56层网络在测试集上的表现更差。
2.残差网络的构建
ResNet为了解决网络退化问题:
• 通过引入残差连接(skip connections)来解决网络退化问题,上图中X identity的曲线就是残差的连接。残差连接允许网络学习残差函数,而不是直接学习未映射的特征。
• 这种结构使得即使网络非常深,也能有效地训练,因为残差连接可以缓解梯度消失问题,使得深层网络的训练变得可行。
右侧的图就是一个残差块(Resldual Block)
3.残差网络原理
这张图展示了三种不同的深度学习模型架构:
ResNet(残差网络)的34层版本、34层普通网络(plain)、VGG-19网络,
这些架构图展示了每个模型的层次结构和数据流动方式。
1.34-layer plain(34层普通网络)
• 这个模型是一个标准的卷积神经网络,没有残差连接。
• 它由多个卷积层(conv)、池化层(pool)和全连接层(fc)组成。
• 随着网络的深入,卷积层的过滤器数量逐渐增加,从64开始,逐渐增加到512。
• 最后通过全连接层输出分类结果。
• 在特征传递的过程中只有一条路,特征必须要经过过每一层的卷积。在卷积的过程中,因为本身特征的信息就会丢失,一张图上会有不同的特征,每个卷积处理的不同的特征比较好处理,但是其他的特征信息会丢失,因为只有一条路,假设:A特征,它不适合过我们过这一段的卷积,如果经过这一段的卷积,这个a特征可能就会消失,A特征的消失就不利于后面真正处理A特征的卷积层来进行特征提取,准确率就会比较差。
2.34-layer Residual(34层残差网络)
• 这个模型是ResNet的一个变种,具有34层。
• 与普通网络不同,ResNet引入了残差块(residual block),这些块通过跳跃连接(skip connections)绕过一些层,直接将输入传递到后面的层。
• 这种结构有助于缓解深度网络中的梯度消失问题,使得网络更容易训练。
• 残差块通常包含两个3x3卷积层,中间可能有一个批量归一化层(Batch Normalization)和ReLU激活函数。
• 现在有了残差连接,就有一个好处在于神经网络可以自己去选,还是以上面的A特征为例:如果A特征在这走这一段卷积层的过程中,神经网络觉得过这些卷积不好会丢失特征,那么他会走上面这条短路,跳过这个卷积,那么这个a特征又被幸存下来了,然后如此反复的跳过,就相当于A特征没有被这层卷积层处理过,这层卷积层只处理了B特征,此时A特征就得以保留在后续的卷积层中进行处理,这就是残差大致的原理。
3.VGG-19
• VGG-19是一个更深的网络,有19层。
• 它由多个卷积层和池化层组成,卷积层的过滤器数量从64开始,逐渐增加到512。
• VGG-19的特点是使用了多个3x3卷积层来代替更大的卷积核,这样可以减少参数数量,同时保持模型的学习能力。
• 最后通过三个全连接层输出分类结果。
总结
• 这些架构图展示了不同深度学习模型的结构和层次,以及它们如何处理输入数据。
• ResNet通过引入残差连接来解决深度网络的训练问题,而VGG-19则通过使用多个小卷积核来构建更深的网络。
• 这些模型在图像识别任务中表现出色,是深度学习领域的重要里程碑。
假如说我们是下面的一个网络,那么特征在传递的过程中是不是只有一条路,我必须要过某一个层的选题。我必须要过这层卷积,它没有其他落,那么在卷积的过程中,因为本身信息就会丢失,