《深度学习原理与Pytorch实战》(第二版)(二)6-10章
第6章 手写数字加法器——迁移学习
- 迁移学习允许训练集和测试集的数据有不同的分布、目标、领域;而一般的监督学习要求训练集和测试集上的数据有相同的分布特性
一个有意思的想法:大公司运用大数据训练大模型,再将这些模型迁移到小公司擅长的特定垂直领域中,这样就可以将泛化的大模型与特定细分领域的数据相结合了
- 最简单的理解:将一个训练好的神经网络从中间切开,再拼接到其他网络上,就实现了迁移学习
- 迁移学习方式:预训练模式、固定值模式
预训练模式:将迁移过来的权重视作新网络的初始权重,但是在训练过程中会再次根据梯度下降算法改变数值;反向传播算法会影响迁移部分参数
固定值模式:迁移部分保持不变,训练过程仅针对迁移模块后的全连接网络;反向传播算法不会影响迁移部分参数 - Pytorch提供多种层数(18、34、50、101、152)的ResNet模型,都是已经在ImageNet数据集上训练完毕的网络,因此可以直接拿来进行迁移学习
- torchvision包含了 目前流行的数据集和模型结构
- NanoNets知乎
第7章 你自己的Prisma——图像迁移风格
- 卷积——相当于用一系列不同的模版去匹配图像中的不同区域,从而抽取出模式;
池化——相当于对原始输入进行大尺度的抽象和简化,从而使图像越来越小,以便得到更大尺度的信息
第8章 人工智能造假术——图像生成与对抗学习
- 基于反卷积的图像生成技术——专为图像生产而设计
基于卷积神经网络的识别和预测模型师一个从大尺度图像逐渐变换到小尺度图像,最后到一个标签的数据加工过程;
反卷积神经网络是从一个向量到小尺度图像,在逐渐转化成大尺度图像的过程;
上述两者是一种过程上的镜像对称——书P165
前馈神经网络、反馈神经网络、图网络的介绍CSDN
- 反卷积运算(deconvolution)
卷积运算与反卷积运算一般都是以图像作为输入与输出
同理,也有反卷积核,在卷积核的基础上“上下颠倒,左右翻转”后可以生成
反卷积并不是卷积的逆运算每一个图象经过卷积后,再经过反卷积并不能得到原图
- 反池化过程
步伐(striding)——书P169
当单纯使用步伐大于1的卷积运算时,就可以达到卷积加池化的效果,能够简化流程 - 批正则化技术(batch normalization)——书P172
第9章 词汇的星空——神经语言模型与Word2Vec
- 词向量技术(Word2Vec,Word to Vector):本质上是找到一种编码技术,来实现词语到向量的合理转换——书P195
联动到之前学习到的词袋模型,有另一种模型神经概率语言模型(neural probabilistic language model,NPLM),而Word2Vec就是NPLM的增强版
传统编码方式的优缺点——书P196 - N-gram模型假设一个词语的出现只和它前面N个词语相关。本质上是一个映射函数,把前N个词映射到下一个词,而NPLM就是通过机器学习来学习这个映射函数——书P198
损失函数使用主要是在模型的训练阶段,每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,来降低真实值与预测值之间的损失,使得模型生成的预测值往真实值方向靠拢,从而达到学习的目的。知乎
——2024.5.4
3. Word2Vec模型包含CBOW(continuous bag of words)模型和Skip-gram模型——书P207
CBOW(continuous bag of words)模型:用当前词的前n个词和后n个词(即上下文)来预测当前词
Skip-gram模型:用当前词来预测上下文
4. NPLM用监督学习的方式解决了非监督学习问题,但是缺点在于运行效率低下
监督学习与无监督学习
NPLM(Neural Probabilistic Language Model)是一种用于自然语言处理的模型,它使用监督学习方法解决了传统上被认为是无监督学习问题的语言建模任务。这里有几个理由可以解释为什么NPLM被视为使用监督学习方法解决了无监督学习问题:
定义了监督学习任务:在NPLM中,语言建模被定义为一个监督学习问题,其中模型被训练来预测给定上下文的下一个单词。这意味着模型的训练数据是有标签的,每个输入都与一个正确的输出相关联。这种有监督的设置使得模型可以直接从数据中学习单词之间的关系,而无需使用传统的无监督学习技术。
利用上下文信息:NPLM利用了上下文信息来预测下一个单词。通过将上下文单词编码成向量,并将它们作为输入传递给神经网络,NPLM能够捕获单词之间的语义和语法关系。这种方法使得模型能够在给定上下文的情况下生成更合理的单词预测,从而提高了语言建模的准确性。
神经网络的非线性建模能力:NPLM使用神经网络来建模单词之间的复杂关系,这使得模型能够更好地适应数据并提取特征。相比之下,传统的无监督学习方法可能会受到线性模型的限制,无法捕捉到数据中的非线性关系。
综上所述,NPLM利用了监督学习的框架和神经网络的强大特性,使得它能够有效地解决语言建模任务,从而被视为使用监督学习方法解决了传统上被认为是无监督学习问题的任务。
- Word2Vec提出了层次归一化指数函数的方法来计算Loss函数值,大大加速了训练过程;Word2Vec还提出了负采样的方法以改进Loss函数,是的训练更加有效——书P217
对于层次归一化指数函数,它使用了二叉树等结构来组织输出单词的概率分布,通过这种方式来减少计算量。具体来说,对于每个单词,使用二叉树中的路径来表示它的概率,而不是直接计算所有单词的概率
为了减少计算量,负采样引入了一个简化的目标函数。相比于传统的softmax,负采样只选择少量(通常是一小部分)的负样本来计算Loss。具体来说,对于每个正样本(即正确的(上下文,单词)对),从词汇表中随机选择一些负样本(即不相关的单词),并将它们与正样本一起用于Loss函数的计算
交叉熵损失函数的含义是,对于每个样本,将实际标签对应的位置上的预测概率取对数,并取负号,然后对所有类别进行求和。因此,当模型的预测接近实际标签时,交叉熵损失函数的值会趋于0,表示模型的性能较好;当模型的预测与实际标签有较大差异时,交叉熵损失函数的值会较大,表示模型的性能较差
第10章 深度网络LSTM作曲机——序列生成模型
- RNN(recurrent neural network)与前馈神经网络最大的不同之处就在于,它的连接存在大量的环路,信息在传递过程中有可能在网络中长期保留,所以有更好的记忆性——书P221
再根据RNN中应对真实序列中的长程依赖特性问题,又提出了LSTM(long short term memory,长短时记忆)网络模型,通过增加新的门控单元来尽可能长时间的保留信息
RNN模型——书P222 - LSTM的三种门:输入门(input gate)、遗忘门(forget gate)、输出门(output gate)——书P228
——2024.5.5