目录
-
- [46 语义分割和数据集](#46 语义分割和数据集)
-
- 语义分割与其他技术的区别
- [Pascal VOC2012 语义分割数据集](#Pascal VOC2012 语义分割数据集)
- 数据预处理
- 自定义语义分割数据集类
- 数据加载与批量处理
- 遇到的问题&解决办法
- [47 转置卷积](#47 转置卷积)
- [48 全连接卷积神经网络 FCN](#48 全连接卷积神经网络 FCN)
- [49 样式迁移](#49 样式迁移)
- [51 序列模型](#51 序列模型)
- [52 文本预处理](#52 文本预处理)
- [53 语言模型](#53 语言模型)
- [54 循环神经网络 RNN](#54 循环神经网络 RNN)
- [08 大语言模型与教育测量双向赋能的智能化测评](#08 大语言模型与教育测量双向赋能的智能化测评)
46 语义分割和数据集
语义分割与其他技术的区别
- 图像分割:将图像划分为若干组成区域,不保证分割出的区域具有语义。
- 实例分割:不仅区分语义,还要区分不同的目标实例。
Pascal VOC2012 语义分割数据集
- 这个数据集是语义分割的重要数据集之一,包括训练和测试样本,以及每个示例的输入图像和像素级标签。
- 标签图像中颜色相同的像素属于同一个语义类别。
数据预处理
- 使用随机裁剪技术对输入图像和标签进行相同区域的裁剪,而不是再缩放,以保持标签的精确性。
自定义语义分割数据集类
- 通过继承PyTorch的Dataset类,实现了一个VOCSegDataset类,能够加载和预处理VOC数据集。
数据加载与批量处理
- 通过定义数据加载器,将数据集分成训练集和测试集,并进行了批量处理。
遇到的问题&解决办法
图像裁剪后尺寸不一致
- 问题:随机裁剪后,部分图像尺寸小于指定的输出尺寸,导致训练数据不一致。
- 解决办法:通过自定义的filter函数移除尺寸小于指定输出尺寸的图像,确保数据一致性。
标签映射复杂
- 问题:将RGB颜色值映射到类别索引时,需要处理大量的颜色值。
- 解决办法:定义voc_colormap2label函数,构建从RGB到类别索引的映射,简化处理过程。
47 转置卷积
转置卷积的基本概念
转置卷积是一种可以增加上采样中间层特征图空间维度的卷积神经网络层,与常规卷积和汇聚层通常减少下采样输入图像的空间维度不同。转置卷积在语义分割等任务中非常有用,因为它能在空间维度被卷积神经网络层缩小后恢复空间维度。
转置卷积的基本操作
转置卷积的基本操作包括使用卷积核"广播"输入元素,以步幅为1且没有填充的情况下,将输入张量中的每个元素乘以卷积核,从而产生大于输入的输出。通过多个中间结果的相加,最终得到输出张量。
填充和步幅在转置卷积中的作用
在转置卷积中,填充应用于输出而不是输入,步幅是指定给中间结果而非输入。不同的填充和步幅设置会影响最终输出的形状。
多通道的转置卷积
对于多通道的输入和输出,转置卷积与常规卷积类似,每个输入通道和输出通道都有对应的卷积核。在这种情况下,可以通过适当设置卷积层和转置卷积层的超参数,保证输出形状与输入形状相同。
与矩阵变换的联系
卷积和转置卷积可以通过矩阵乘法来实现。在卷积操作中,输入张量与卷积核的转换可以表示为矩阵乘法,转置卷积则通过转置的权重矩阵来实现。
遇到的问题&解决办法
理解转置卷积的操作原理
- 问题:最初难以理解转置卷积如何通过卷积核"广播"输入元素来增加输出的空间维度。
- 解决办法:通过查看具体的例子和可视化图示,逐步理解每一步操作是如何影响输出的。
填充和步幅在转置卷积中的作用
- 问题:对填充和步幅在转置卷积中的应用感到困惑,不清楚其具体操作及对结果的影响。
- 解决办法:通过实际操作代码,设置不同的填充和步幅值,观察输出结果的变化,从而理解其作用。
多通道转置卷积的理解
- 问题:在多通道输入和输出的情况下,如何正确设置卷积核以保证输出形状与输入形状相同。
- 解决办法:通过查阅资料和查看代码示例,理解多通道卷积和转置卷积的工作原理,并在实际操作中应用。
与矩阵变换的联系
- 问题:理解转置卷积与矩阵变换的联系较为困难,不清楚如何通过矩阵乘法实现转置卷积。
- 解决办法:通过具体的例子,观察矩阵变换在卷积和转置卷积中的应用,逐步理解其数学原理。
48 全连接卷积神经网络 FCN
语义分割
语义分割是一种图像处理技术,用于对图像中的每个像素进行分类。它可以将图像中的不同区域分割成不同的类别,常用于自动驾驶、医学影像分析等领域。
全卷积网络(FCN)
全卷积网络是一种基于卷积神经网络的深度学习模型,用于语义分割任务。FCN不使用全连接层,而是通过卷积层和转置卷积层实现从图像像素到像素类别的转换,使输出的类别预测与输入图像在像素级别上具有一一对应关系。
预训练模型的应用
在FCN中,可以使用在ImageNet数据集上预训练的ResNet-18模型来提取图像特征。预训练模型通过迁移学习可以提高模型的性能和训练速度。
转置卷积层
转置卷积层用于将特征图的高和宽还原到输入图像的尺寸。在FCN中,转置卷积层通过双线性插值方法进行初始化,以实现上采样效果。
双线性插值
双线性插值是一种常用的上采样方法,通过对图像进行插值操作,可以将图像的尺寸放大。在FCN中,转置卷积层可以通过双线性插值进行初始化,以达到更好的上采样效果。
遇到的问题&解决办法
转置卷积层的初始化
在构建全卷积网络时,需要将转置卷积层初始化为双线性插值的上采样,但初次接触时对其实现原理不太理解。
解决办法
通过查阅相关资料,深入理解双线性插值的算法原理,并利用提供的bilinear_kernel函数成功实现转置卷积层的初始化,解决了这一问题。
预测结果的可视化
在对测试图像进行预测时,如何将预测结果与原始图像进行对比,并进行可视化展示是一个挑战。
解决办法
通过将预测类别映射回数据集中的标注颜色,并利用matplotlib进行图像展示,成功实现了预测结果的可视化对比,方便了对模型性能的评估。
49 样式迁移
风格迁移的基本概念
风格迁移是一种将一张图像的风格应用到另一张图像上的技术。它通过卷积神经网络将内容图像和风格图像进行融合,生成一种新的合成图像,使得内容图像具有风格图像的艺术效果。
风格迁移的方法
风格迁移的方法包括初始化合成图像、选择预训练的卷积神经网络来提取图像特征,并逐层计算和保存内容层和风格层的输出。通过前向传播计算损失函数,并通过反向传播不断更新合成图像,使其逐步接近目标风格。
风格迁移的损失函数
风格迁移的损失函数由三部分组成:内容损失、风格损失和全变分损失。内容损失使合成图像在内容特征上接近内容图像,风格损失使合成图像在风格特征上接近风格图像,全变分损失则用于减少合成图像中的噪点。
遇到的问题&解决办法
图像尺寸不一致的问题
在进行风格迁移时,内容图像和风格图像的尺寸可能不一致。通过使用预处理函数,对输入图像进行标准化,并将其调整为卷积神经网络接受的输入格式,解决了这一问题。
合成图像的噪点问题
在初始训练过程中,生成的合成图像可能包含较多的高频噪点。通过引入全变分损失,可以有效减少合成图像中的噪点,使得最终生成的图像更加平滑和自然。
调整超参数的问题
风格迁移过程中,内容损失、风格损失和全变分损失的权重选择对最终合成图像的效果有很大影响。通过实验,调整这些权重的比例,找到了一个合适的平衡点,使得合成图像既能保留内容图像的主要特征,又能很好地迁移风格图像的艺术效果。
51 序列模型
序列模型及其应用场景
序列模型是用于处理和预测时间序列数据的一类模型。这些模型可以应用于电影评分、用户行为预测、股价预测、语音、文本、视频等连续数据的处理。通过学习这些模型,可以更准确地进行未来事件的预测。
统计工具在序列模型中的应用
为了处理序列数据,需要使用统计工具。常用的统计工具包括自回归模型和隐变量自回归模型。这些工具可以帮助我们对序列数据进行建模和预测,通过训练模型来学习数据中的动态变化规律。
自回归模型
自回归模型通过使用固定长度的历史数据来预测未来数据。它通过回归的方法对自己进行预测,可以简化计算,保持参数数量不变,从而便于训练深度学习模型。
隐变量自回归模型
隐变量自回归模型在保持历史数据的总结基础上进行预测。它通过隐变量来表示过去观测的总结,并不断更新预测和总结。这种模型可以更好地捕捉数据中的复杂动态变化,但也增加了计算复杂度。
预测的难点与挑战
在实际应用中,预测未来数据的难度很大。特别是多步预测(multi-step prediction)过程中,误差会迅速累积,导致预测结果迅速偏离真实值。这是因为模型在每一步预测中都依赖前一步的预测结果,错误的累积会导致最终预测效果不理想。
遇到的问题&解决办法
预测精度下降
问题:在多步预测中,预测精度迅速下降,预测结果会偏离真实值。
解决办法:通过使用更复杂的模型(如隐变量自回归模型)和更长的历史数据来提高预测精度。同时,使用正则化技术和增加训练数据量也可以帮助模型更好地泛化。
数据预处理与特征工程
问题:序列数据的特征工程复杂,需要对数据进行合理的转换和处理。
解决办法:通过使用滑动窗口技术将时间序列数据转换为特征-标签对,并进行适当的归一化和标准化处理,以提高模型的训练效果。
模型选择与参数调整
问题:选择合适的模型和调整模型参数是一个复杂的过程。
解决办法:通过交叉验证和网格搜索等方法对模型进行评估和参数调优,从而选择最优模型和参数设置。此外,利用学习率调整和早停策略来防止过拟合和欠拟合。
52 文本预处理
文本数据读取与清洗
本周学习了如何从H.G. Wells的小说《时间机器》中加载文本数据。学习到文本预处理的第一步是将文本加载到内存中,去除标点符号并将所有字母转换为小写,以确保文本的一致性和可操作性。
文本词元化
词元化是将文本拆分为基本单位(词元,如单词或字符)的过程。学习到词元化可以分为单词级和字符级两种方式。通过词元化,可以将文本行转换为词元列表,为后续的文本处理和模型训练做好准备。
词表构建
词表是将词元映射为数字索引的字典。学习了如何根据词元在语料库中的频率构建词表,保留高频词元并分配索引。这一步使得文本数据可以以数字形式表示,方便模型处理。
词元索引转换
通过构建好的词表,将文本数据中的词元转换为相应的数字索引。这样做的好处是模型可以直接处理数字形式的数据,避免了字符串处理的复杂性。
数据整合
将前述步骤整合在一起,完成对《时间机器》文本数据的预处理,生成了词元索引列表和词表。这一步确保了整个预处理过程的连贯性和完整性,为模型训练提供了干净、结构化的数据输入。
遇到的问题&解决办法
文本数据清洗中的特殊字符处理
在清洗文本数据时,遇到了一些特殊字符和标点符号,这些字符在实际应用中可能会影响模型的训练效果。
解决办法: 使用正则表达式去除所有非字母字符,并将文本转换为小写。这样可以保证文本数据的简洁性和一致性。
词元化过程中空行处理
在对文本进行词元化时,发现有些文本行是空行,导致词元列表中出现空列表。
解决办法: 在词元化过程中,添加检查机制,过滤掉空行,确保词元列表中不包含空列表。
低频词元的处理
在构建词表时,低频词元可能会增加模型的复杂性,但这些词元对模型的实际预测贡献有限。
解决办法:设置最低词频阈值,将出现频率低于该阈值的词元移除,简化词表结构,提高模型训练效率。
数据整合中的内存管理
在处理大规模文本数据时,内存管理成为一个问题,尤其是在将所有文本行展平成一个列表时。
解决办法:通过分批次加载和处理数据,优化内存使用,并使用Python的生成器机制按需生成数据,降低内存占用。
53 语言模型
语言模型概述
语言模型是自然语言处理领域的核心,它的目标是估计文本序列的联合概率。理想情况下,语言模型能够基于给定的文本片段生成自然、流畅且符合语法的文本。尽管当前技术尚未达到完全理解文本的深度,但语言模型在诸如语音识别、文本摘要生成等应用中发挥着重要作用。
词元序列建模
在处理文本数据时,我们通常将文本序列转换为离散的观测值,如单词或字符。语言模型通过分析这些观测值的序列,学习文本数据的概率分布。这涉及到计算单个词元的概率以及给定前序词元后某个词元的条件概率。
拉普拉斯平滑
由于文本数据中的词元组合可能出现频率极低或从未出现,直接统计词频的方法会高估低频词元的频率。拉普拉斯平滑通过在所有计数中添加一个小常数来解决这一问题,从而有效处理低频词元并避免概率为零的情况。
马尔可夫模型与n元语法
马尔可夫模型假设文本序列的分布满足一定阶数的马尔可夫性质,即序列中每个词元的出现仅依赖于其前面的有限数量的词元。一元、二元和三元语法模型分别对应一阶、二阶和三阶马尔可夫链,它们通过考虑不同长度的词元序列来近似语言模型。
自然语言统计特性
自然语言的统计特性,如词频的快速衰减和齐普夫定律,对语言模型的设计具有重要影响。了解这些特性有助于我们更好地理解语言的结构,并指导模型的构建。
遇到的问题&解决办法
文本数据的稀疏性
问题描述:在构建语言模型时,经常遇到文本数据的稀疏性问题,即大量可能的词元组合在训练数据中从未出现或出现次数极少。
解决办法:采用拉普拉斯平滑等技术,为低频或未见词元组合分配非零的概率,从而提高模型的泛化能力。
长序列的处理
问题描述:长文本序列很少完整出现,导致直接基于频率统计的方法在处理长序列时效果不佳。
解决办法:通过随机采样和顺序分区等策略,将长序列划分为多个小批量的子序列,使得模型能够逐步学习和预测序列中的词元。
模型的泛化能力
问题描述:传统的基于计数和平滑的语言模型可能无法很好地泛化到未见过的数据上。
解决办法:利用深度学习技术,如循环神经网络(RNN)和长短期记忆网络(LSTM),构建能够捕捉文本数据长期依赖关系的复杂模型,以提高模型的泛化性能。
54 循环神经网络 RNN
循环神经网络概述
循环神经网络是一种适合于序列数据的神经网络,其核心特点是引入了隐状态来存储序列信息。与传统的多层感知机不同,RNN能够捕捉序列中时间步之间的依赖关系,使得模型能够基于先前的输入信息来预测或生成序列的下一个元素。
隐状态的作用
隐状态是RNN中的关键组成部分,它负责存储序列在时间步上的历史信息。通过隐状态的循环计算,RNN能够在每个时间步上更新并传递之前接收到的信息,从而实现对序列数据的动态处理。
循环神经网络的参数特点
尽管RNN在处理长序列时具有优势,但其参数数量并不会随着时间步的增加而增加。这是因为RNN在每个时间步上使用的参数是固定的,包括隐藏层和输出层的权重和偏置,这使得模型在时间维度上具有可扩展性。
字符级语言模型的应用
利用RNN构建的字符级语言模型能够根据当前和之前的字符来预测文本序列中的下一个字符。这种模型在自然语言处理中具有广泛的应用,如文本生成、语言翻译等。
困惑度评估方法
困惑度是评估语言模型性能的一个重要指标,它反映了模型对序列进行压缩的能力。一个低困惑度的模型意味着它能够更准确地预测下一个词元,从而在文本压缩上更为有效。
遇到的问题&解决办法
隐状态的梯度消失或爆炸
问题描述:在训练RNN时,由于梯度需要通过时间步进行反向传播,容易出现梯度消失或爆炸的问题,导致模型难以训练。
解决办法:采用特殊的激活函数如ReLU或Leaky ReLU,或者使用梯度剪切技术来控制梯度的大小,防止梯度问题的发生。
长序列的处理效率
问题描述:RNN在处理长序列时,由于需要存储和更新每个时间步的隐状态,导致计算和存储效率较低。
解决办法:使用循环神经网络的变种,如长短期记忆网络(LSTM)或门控循环单元(GRU),它们能够更有效地处理长序列数据。
模型的泛化能力不足
问题描述:在实际应用中,RNN可能在训练数据上表现良好,但在未见过的数据上泛化能力不足。
解决办法:通过数据增强、正则化技术或引入更多的训练数据来提高模型的泛化能力。同时,使用交叉验证等方法来评估模型的泛化性能。
超参数选择困难
问题描述:RNN模型中存在多个超参数,如学习率、隐藏层大小等,选择合适的超参数组合对于模型性能至关重要,但往往需要大量的实验和调整。
解决办法:采用超参数优化技术,如网格搜索或贝叶斯优化,来自动化超参数的选择过程,提高模型调优的效率。
08 大语言模型与教育测量双向赋能的智能化测评
背景信息
智能化测评在教育领域的应用越来越广泛,特别是通过大语言模型(LLM)和教育测量相结合,可以实现更为精准和个性化的测评。郑蝉金教授在华东师范大学教育学部教育心理学系以及上海智能教育研究院,致力于研究如何通过心理测量学赋能大语言模型,并应用于教育测量和评估场景。
LCEAAG: 心理测量学赋能大语言模型的概念
1. 大语言模型的特点
- 通用智能: 大语言模型通过处理海量数据和复杂算法,展现出高度的语言理解和生成能力,具有通用智能的特性。
- 知识习得方式: 大语言模型通过"填鸭灌输"方式高效获取知识,这种方法虽然在人工教育中不被提倡,但在模型训练中确实有效。
2. 心理测量学的赋能
- 专业领域知识对齐: 通过心理测量学的标准和方法,可以将大语言模型的知识体系和专业领域需求对齐,提升模型在特定领域的应用效果。
- 幻觉问题的解决: 大语言模型在生成过程中会出现所谓的"幻觉",即生成不真实或不准确的信息。心理测量学的方法可以帮助识别和纠正这些问题。
LCEAAG: 心理测量学赋能大语言模型的应用
1. 课程对齐和测量工具的开发
- 课程内容生成: 利用大语言模型生成课程内容,并通过心理测量学的工具进行评估和优化,确保内容的准确性和适用性。
- 个性化学习辅导: 通过测量工具评估学生的学习水平和需求,大语言模型可以提供个性化的学习建议和辅导,提高学习效率。
2. 评估和反馈机制
- 作文评语生成: 大语言模型可以根据学生的作文生成评语,结合心理测量学的标准,提供详细和有建设性的反馈。
- 对话学习辅导: 利用大语言模型进行实时的对话辅导,根据学生的表现和反馈进行动态调整,提高学习效果。
未来的思考
1. 工具和技术的持续发展
- 多级测量指标: 开发多级测量指标体系,以便更全面和精细地评估学生的学习状况。
- 智力层次结构模型: 结合智力层次结构模型和大语言模型,进一步提升智能测评的精准度和可靠性。
2. 个性化和智能化的进一步探索
- 信息赋能和个性化学习: 通过大语言模型和心理测量学的结合,提供更为精准和个性化的学习资源和建议,促进学生的全面发展。
- 持续优化和迭代: 不断通过实际应用中的反馈和数据进行优化和迭代,提升智能化测评系统的效果和用户体验。