欢迎光临
我们一直在努力

AI训练师图解_08_神经网络训练_教AI如何更懂人类

第8章 教AI如何更懂人类——神经网络训练

文章目录

    • 第8章 教AI如何更懂人类——神经网络训练
      • 8.1 结构与发展演进:神经网络
        • 8.1.1 概念:什么是神经网络?
          • 案例64 用人工神经网络搭建波士顿房价预测模型
        • 8.1.2 原理:神经网络的组成结构
        • 8.1.3 技巧:神经网络的训练方法
          • 案例65 Neural Filters让Photoshop创意修图更简单
      • 8.2 经典神经网络架构:六大类型
        • 8.2.1 感知机:用于解决模式识别问题
        • 8.2.2 卷积神经网络:捕捉图像的空间结构
          • 案例66 CNN在ImageNet挑战赛中展现出惊人的图像识别能力
        • 8.2.3 循环神经网络:用于处理序列数据
          • 案例67 使用高级神经网络库Keras训练RNN模型
        • 8.2.4 生成对抗网络:相互博弈以提升模型性能
          • 案例68 使用Stable Diffusion的图生图功能实现风格迁移
        • 8.2.5 递归神经网络:对序列数据进行有效处理
          • 案例69 Deep Speech利用RNN提高语音识别准确率
        • 8.2.6 长短期记忆网络:处理自然语言序列等任务
          • 案例70 LSTM网络在谷歌语音搜索和识别技术中的应用
      • 8.3 模型训练实战:LoRA
        • 8.3.1 认识模型:LoRA模型训练概述
          • 案例71 用LoRA微调Stable Diffusion绘画大模型
        • 8.3.2 准备工作:安装训练器与整理数据集
        • 8.3.3 数据标注:图像预处理和打标优化
        • 8.3.4 参数调整:设置训练模型和数据集
        • 8.3.5 测试模型:评估模型应用效果

神经网络训练是人工智能领域中一个至关重要的环节,它涉及教会AI如何理解、解析和模拟人类的思维模式。神经网络训练可以使AI在各种应用场景中更加智能化、高效化。本章将深入探讨如何通过神经网络训练,使AI变得更懂人类、更好地为人类服务。

#mermaid-svg-P83tAv5cfN40bZR8{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-P83tAv5cfN40bZR8 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-P83tAv5cfN40bZR8 .error-icon{fill:#552222;}#mermaid-svg-P83tAv5cfN40bZR8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-P83tAv5cfN40bZR8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-P83tAv5cfN40bZR8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-P83tAv5cfN40bZR8 .marker.cross{stroke:#333333;}#mermaid-svg-P83tAv5cfN40bZR8 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-P83tAv5cfN40bZR8 p{margin:0;}#mermaid-svg-P83tAv5cfN40bZR8 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-P83tAv5cfN40bZR8 .cluster-label text{fill:#333;}#mermaid-svg-P83tAv5cfN40bZR8 .cluster-label span{color:#333;}#mermaid-svg-P83tAv5cfN40bZR8 .cluster-label span p{background-color:transparent;}#mermaid-svg-P83tAv5cfN40bZR8 .label text,#mermaid-svg-P83tAv5cfN40bZR8 span{fill:#333;color:#333;}#mermaid-svg-P83tAv5cfN40bZR8 .node rect,#mermaid-svg-P83tAv5cfN40bZR8 .node circle,#mermaid-svg-P83tAv5cfN40bZR8 .node ellipse,#mermaid-svg-P83tAv5cfN40bZR8 .node polygon,#mermaid-svg-P83tAv5cfN40bZR8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-P83tAv5cfN40bZR8 .rough-node .label text,#mermaid-svg-P83tAv5cfN40bZR8 .node .label text,#mermaid-svg-P83tAv5cfN40bZR8 .image-shape .label,#mermaid-svg-P83tAv5cfN40bZR8 .icon-shape .label{text-anchor:middle;}#mermaid-svg-P83tAv5cfN40bZR8 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-P83tAv5cfN40bZR8 .rough-node .label,#mermaid-svg-P83tAv5cfN40bZR8 .node .label,#mermaid-svg-P83tAv5cfN40bZR8 .image-shape .label,#mermaid-svg-P83tAv5cfN40bZR8 .icon-shape .label{text-align:center;}#mermaid-svg-P83tAv5cfN40bZR8 .node.clickable{cursor:pointer;}#mermaid-svg-P83tAv5cfN40bZR8 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-P83tAv5cfN40bZR8 .arrowheadPath{fill:#333333;}#mermaid-svg-P83tAv5cfN40bZR8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-P83tAv5cfN40bZR8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-P83tAv5cfN40bZR8 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-P83tAv5cfN40bZR8 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-P83tAv5cfN40bZR8 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-P83tAv5cfN40bZR8 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-P83tAv5cfN40bZR8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-P83tAv5cfN40bZR8 .cluster text{fill:#333;}#mermaid-svg-P83tAv5cfN40bZR8 .cluster span{color:#333;}#mermaid-svg-P83tAv5cfN40bZR8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-P83tAv5cfN40bZR8 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-P83tAv5cfN40bZR8 rect.text{fill:none;stroke-width:0;}#mermaid-svg-P83tAv5cfN40bZR8 .icon-shape,#mermaid-svg-P83tAv5cfN40bZR8 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-P83tAv5cfN40bZR8 .icon-shape p,#mermaid-svg-P83tAv5cfN40bZR8 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-P83tAv5cfN40bZR8 .icon-shape .label rect,#mermaid-svg-P83tAv5cfN40bZR8 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-P83tAv5cfN40bZR8 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-P83tAv5cfN40bZR8 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-P83tAv5cfN40bZR8 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

第8章 神经网络训练

8.1 结构与发展演进:神经网络

8.2 经典神经网络架构:六大类型

8.3 模型训练实战:LoRA

神经元模型

前向/反向传播

CNN 卷积神经网络

RNN 循环神经网络

GAN 生成对抗网络

Transformer

Autoencoder

Diffusion模型

数据准备

参数配置

训练与验证

8.1 结构与发展演进:神经网络

神经网络是由生物神经元构成的复杂网络,也可以将其理解为由人工神经元或节点组成的网络或电路。这些神经元或节点之间的连接,就像人类的神经元网络一样,能够传递并处理信息。神经网络在AI训练中扮演着极其重要的角色,它为AI的发展提供了强大的技术支持,使得AI能够更好地模拟人类的智能行为。

8.1.1 概念:什么是神经网络?

神经网络可以分为两大类,即生物神经网络和人工神经网络。生物神经网络是指生物大脑中的神经元网络,由生物神经系统中的神经细胞按照一定方式连接而形成,主要用于产生生物的意识,帮助生物进行思考和行动。

人工神经网络也称连接模型(Connection Model),是一种通过模仿生物神经网络的行为特征,并进行分布式并行信息处理的算法数学模型。它依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

案例64 用人工神经网络搭建波士顿房价预测模型

波士顿房价预测模型是一个基于历史房价数据和多种机器学习算法构建的模型,其目标是预测波士顿未来的房价走势。该模型的核心是线性回归算法,通过拟合历史数据,建立一个反映房价与各影响因素之间关系的线性神经网络模型。

开发者使用PaddlePaddle(飞桨)框架创建了一个全连接神经网络,包含输入层、隐藏层和输出层。在训练过程中,使用波士顿房价数据集作为样本,通过随机梯度下降(SGD)优化算法,不断调整权重和偏置项,以最小化预测房价与真实房价之间的平方误差损失,从而得到一个能较准确预测波士顿未来房价走势的模型。

温馨提示 SGD是一种常用的优化算法,尤其适用于处理大规模的数据集。

8.1.2 原理:神经网络的组成结构

神经网络由输入层(Input Layer)、隐藏层(Hidden Layer)和输出层(Output Layer)组成。其中,每个节点代表一种特定的输出函数(或称为激励函数),每两个节点的连接代表该信号在传输中的比重(即权重,相当于人工神经网络的记忆),网络的输出则取决于激励函数和权重的值。

神经网络是一种运算模型,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。神经网络先以一定的学习准则进行学习,然后才能工作。以写A、B两个字母的识别为例,规定当A输入网络时应该输出1,当输入为B时输出应为0。

神经网络学习的准则为:如果网络做出错误的判断,则通过网络的学习,应使得网络降低下次犯同样错误的可能性。

8.1.3 技巧:神经网络的训练方法

神经网络作为机器学习领域的一种通用模型,不仅是一个简单的算法集合,还是一套能够应对各种复杂问题的强大工具。神经网络的强大之处在于它的自适应和学习能力,通过不断地调整神经元或节点之间的连接权重,神经网络能够逐渐适应不同的数据模式,并从中学到有用的信息。

这种自适应的学习过程使得神经网络在处理复杂的、非线性的输入输出关系时具有出色的表现。基本流程如下:

  • 数据预处理:对原始数据进行清洗、归一化等处理,使其符合神经网络的输入要求。
  • 温馨提示 数据清洗是指发现并纠正数据文件中可识别的错误,包括检查数据一致性、处理无效值和缺失值等。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,转化为无量纲的表达式,使其成为标量。

  • 网络结构设计:根据问题类型和数据特点设计合适的神经网络结构,包括网络层数、每层神经元数、各层互连方式等。

  • 初始化参数:为神经网络的权重和偏置项设置初始值。

  • 前向传播:根据输入数据和神经网络结构,计算出网络的输出值。

  • 计算损失:根据实际输出和期望输出之间的差异,计算出损失值。

  • 反向传播:根据损失值和梯度下降算法,更新神经网络的权重和偏置项。

  • 迭代优化:重复执行前向传播、计算损失、反向传播的步骤,不断优化神经网络的参数,直至达到预设的停止条件。

  • 温馨提示 损失值收敛是指在多次迭代后,损失值的变化逐渐减小,趋于稳定,这通常意味着模型的性能已经达到一个相对较好的水平。达到最大迭代次数是指在训练过程中设定一个最大迭代次数的阈值,当达到这个阈值时,即使损失值还没有完全收敛,训练也会停止,从而防止过拟合和节省计算资源。

  • 测试评估:使用测试数据对训练好的神经网络进行评估,检查其泛化能力。泛化能力是指机器学习算法对新鲜样本的适应能力,泛化能力越强,模型在新数据上的预测能力就越好。

  • 调整优化:根据测试评估结果,对神经网络结构和参数进行进一步调整和优化。

  • 案例65 Neural Filters让Photoshop创意修图更简单

    Neural Filters(神经滤镜)是Photoshop重点推出的AI修图技术,可以帮助用户把复杂的修图工作简单化,大大提高修图效率。Neural Filters中包含一系列滤镜,每个滤镜都有其独特的功能和效果。

    借助Neural Filters的"妆容迁移"滤镜,可以将人物眼部和嘴部的妆容风格应用到其他人物图像中。

    8.2 经典神经网络架构:六大类型

    随着人工智能技术的飞速发展,神经网络作为其核心组件,已经成为研究的热点。AI训练师要掌握各种神经网络架构。本节将深入探讨6种重要的神经网络架构,这些架构在各种任务中都展现出了强大的性能。

    8.2.1 感知机:用于解决模式识别问题

    感知机(Perceptron)是第一代神经网络架构,仅包含一个神经元。它首先将原始输入转化为特征,然后通过权重和阈值来确定输出结果。虽然感知机的结构非常简单,但局限性较大,因为一旦确定了特征,学习就会受到限制。为了解决这个问题,需要建立多层自适应的非线性隐藏单元,以实现更复杂的输入输出映射。

    温馨提示 输入输出映射是指一种关联关系,它将一个集合中的元素(也称输入)映射到另一个集合中的元素(称为输出)上。在机器学习中,输入输出映射可以表示为从输入数据到预测结果的函数关系,通过训练模型来学习这种映射关系,可以实现对新数据的预测和分析。

    8.2.2 卷积神经网络:捕捉图像的空间结构

    卷积神经网络(CNN)是一种深度学习算法,专门用于处理具有网格结构的数据,如图像和语音。CNN的核心思想是通过卷积操作来提取输入数据中的特征,并通过池化操作来减小特征图的尺寸。

    卷积操作使用一组可学习的滤波器(也称卷积核)对输入数据进行滑动窗口计算,从而生成特征图,这些滤波器可以捕捉到输入数据中的局部模式和特征。CNN通常由多个卷积层、激活函数、池化层和全连接层组成。CNN在图像识别、目标检测、图像分割等计算机视觉任务中取得了巨大的成功,能够自动学习图像中的抽象特征。

    此外,CNN还可以通过迁移学习,将在大规模数据集上预训练的模型应用于其他任务,提高模型的泛化能力。

    案例66 CNN在ImageNet挑战赛中展现出惊人的图像识别能力

    在ImageNet挑战赛中,卷积神经网络展现出了惊人的图像识别能力。ImageNet是一个大规模的图像数据集,包含了上万种不同种类的图片。传统的图像处理方法在面对如此庞大和多样化的数据集时,往往难以准确识别出各种类别的图像。

    然而,通过训练的CNN模型,不仅能够快速地处理大量的图像数据,还能在分类任务中达到非常高的准确率。相比传统方法在面对不同光照条件、角度、尺寸和遮挡物等复杂情况时准确率大幅下降,CNN通过学习从原始图像中提取有用的特征,能够更好地处理这些变化和挑战。

    实际应用中,CNN被广泛应用于安防监控、自动驾驶、人脸识别、医学影像分析等领域。

    8.2.3 循环神经网络:用于处理序列数据

    循环神经网络(RNN)是一种特殊的神经网络架构,主要用于处理序列数据,如文本、语音、时间序列等。RNN以序列数据作为输入,在序列的演进方向上进行递归,且所有节点(循环单元)按链式结构进行连接。RNN具有记忆性、参数共享及图灵完备等特性,这使它在处理序列的非线性特征时具有优势。

    RNN的结构包括一个循环单元和一个隐藏状态,其中循环单元负责接收当前时刻的输入数据及上一时刻的隐藏状态,而隐藏状态则同时影响当前时刻的输出和下一时刻的隐藏状态。

    RNN的训练通常使用反向传播算法和梯度下降算法,但存在梯度消失和梯度爆炸等问题,因此需要采用一些特殊的训练方法,如长短时记忆网络、自适应学习率算法等。RNN在自然语言处理、语音识别、时间序列分析等领域有广泛的应用。

    案例67 使用高级神经网络库Keras训练RNN模型

    Keras是一个基于Python开发的高级神经网络库,它可以在各种深度学习框架上运行,如TensorFlow和Theano。Keras提供了一种简单易用的方式来构建和训练RNN模型,可以用于股票价格预测等时间序列预测任务。

    Keras为用户提供了一个简单易用的API来构建神经网络模型,让用户可以更加方便地设计和训练复杂的RNN模型,而不需要深入了解底层细节。另外,Keras还提供了一些工具和库,如TensorBoard等,可以帮助用户可视化模型训练过程和结果。

    8.2.4 生成对抗网络:相互博弈以提升模型性能

    生成对抗网络(GAN)是一种深度学习模型,用于生成新的数据样本,如图片、音频和文本等。GAN由两个互相对抗的神经网络组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是生成新的数据样本,而判别器的任务则是判断输入的数据样本是否真实。

    在GAN的训练过程中,生成器和判别器会进行对抗训练,不断改进和优化各自的参数。生成器试图生成更加逼真的数据样本以欺骗判别器,而判别器则努力识别输入的数据样本是否为真实数据或由生成器生成的假数据。通过这种对抗过程,生成器和判别器都会逐渐提高自己的性能。

    GAN的主要应用包括图像生成、图像修复、风格迁移等。

    案例68 使用Stable Diffusion的图生图功能实现风格迁移

    Stable Diffusion是一种基于深度学习技术的大模型,其图生图功能采用了GAN实现风格迁移,能够将一种图像的风格迁移到另一种图像上。具体来说,该过程通过训练一个生成器来学习目标图像的风格,然后将这种风格应用于原始图像上。同时,使用判别器来评估生成图像的质量和风格的真实性。

    8.2.5 递归神经网络:对序列数据进行有效处理

    递归神经网络(Recursive Neural Network)具有树状阶层结构且网络节点按其连接顺序对输入信息进行递归,它可以对序列数据进行有效处理,通常应用于自然语言处理、语音识别、时间序列预测等领域。

    递归神经网络的基本思想是将一个序列数据输入神经网络后,通过递归地构建神经网络层次结构,将数据逐层展开,从而对序列数据进行精细粒度的处理。递归神经网络由若干个节点构成,每个节点都包含一个或多个权重参数,这些参数在训练过程中会得到不断调整和优化。

    在训练时,通常采用反向传播算法对参数进行更新,由于结构是层次化的,因此在反向传播时需要逐层向上传递误差信号。

    案例69 Deep Speech利用RNN提高语音识别准确率

    Deep Speech是百度基于深度学习技术开发的语音识别系统,它采用了深度学习技术中的递归神经网络和CTC Loss来训练深度神经网络,可以处理各种条件下的语音,包括嘈杂环境的语音、不同口音及区别不同语种等。

    通过深度神经网络识别音频的频谱,Deep Speech可以输出字符串,实现语音到文本的映射。

    温馨提示 CTC Loss的全称为Connectionist Temporal Classification Loss,是一种用于解决序列识别问题的损失函数,它通常与神经网络结构相结合,以生成序列标签。

    8.2.6 长短期记忆网络:处理自然语言序列等任务

    长短期记忆(LSTM)网络是一种时间递归神经网络,用于解决传统的循环神经网络存在的长期依赖问题。LSTM网络通过引入记忆单元来解决这个问题,这个记忆单元可以记住之前的信息,并在需要的时候使用这些信息。LSTM网络的结构包括输入门、遗忘门、输出门和记忆单元,相关介绍如下:

  • 输入门(Input Gate):用于控制新输入信息的流入程度。通过使用sigmoid激活函数将当前输入与之前的记忆状态进行组合,得到一个介于0到1之间的值,决定了哪些新信息会被纳入记忆单元中。

  • 遗忘门(Forget Gate):用于决定要保留和遗忘的部分。遗忘门接收一个长期记忆,并使用sigmoid激活函数计算出一个遗忘因子,决定了哪些信息需要被遗忘。

  • 输出门(Output Gate):用于控制输出的生成,并决定从记忆细胞中输出多少信息。通过引入"门控机制",LSTM网络能够有效地捕捉序列之间的长期依赖关系,并且能够在处理长序列数据时避免梯度消失和梯度爆炸的问题。

  • 记忆单元(Memory Cell):这是LSTM网络的核心部分,负责存储信息。记忆单元通过tanh激活函数生成一个新的候选值向量,作为新的记忆候选值。

  • 案例70 LSTM网络在谷歌语音搜索和识别技术中的应用

    谷歌的语音搜索和语音识别技术使用了LSTM网络处理语音信号中的长期依赖关系。语音信号是一种时间序列数据,其中每个语音帧都依赖于前面的帧。传统的循环神经网络在处理这种长期依赖关系时会逐渐忘记前面的信息;而LSTM网络通过引入记忆单元,能够有效地存储和传递长期依赖信息,从而提高语音识别的准确率。

    在谷歌的语音搜索和语音识别技术中,LSTM网络被用于捕获语音信号中的特征和模式,并将这些特征和模式转换为相应的文本。先通过预处理技术将原始的语音信号转换为特征序列,然后LSTM网络接收这些特征序列并输出相应的文本。

    此外,谷歌还结合了LSTM网络和注意力机制(Attention Mechanism),以便在处理长语音序列时更好地聚焦于重要的部分,使得模型能够更好地理解语音中的语义信息,并提高识别的准确性。

    8.3 模型训练实战:LoRA

    LoRA(Low-Rank Adaptation,低阶适应)是一种能够自动调整神经网络中各层之间权重的神经网络模型,通过学习可以不断提升模型的性能。本节以图像领域中的LoRA模型为例,介绍训练特定画风的LoRA模型的基本流程。

    8.3.1 认识模型:LoRA模型训练概述

    LoRA最初应用于大型语言模型(LLM,简称大模型),由于直接对大模型进行微调不仅成本高而且速度慢,再加上大模型的体积庞大,因此性价比很低。LoRA通过冻结原始大模型,并在外部创建一个小型插件来进行微调,从而避免了直接修改原始大模型。这种方法不仅成本低、速度快,而且插件式的特点使得它非常易于使用。

    案例71 用LoRA微调Stable Diffusion绘画大模型

    LoRA在Stable Diffusion绘画大模型上的表现非常出色,固定画风或人物样式的能力非常强大。只要是图片上的特征,LoRA都可以提取并训练,其作用包括对人物的脸部特征进行复刻、生成某一特定风格的图像、固定人物动作特征等。因此,LoRA的应用范围逐渐扩大,并迅速成了一种流行的AI绘画模型。

    LoRA对于神经网络训练的意义在于通过学习神经网络中各层之间的权重,提高模型的性能。具体来说,LoRA通过自动调整当前层的权重,使不同的层在不同的任务上发挥更好的作用。

    这种重加权模型能够实现对AI生图效果的改善,并且具有参数高效性,能够显著降低finetune(微调)的成本,同时获得与大模型微调类似的效果。

    温馨提示 LoRA原用于解决大模型的微调问题,如GPT 3.5这类拥有1750亿量级参数的模型。有了LoRA,就可以将训练参数插入模型的神经网络中,而无须全面调整模型。这种方法既可即插即用,又不会破坏原有模型,有助于提升模型的训练效率。

    8.3.2 准备工作:安装训练器与整理数据集

    在训练LoRA模型之前,用户需要先下载相应的训练器,如这里使用的是秋葉aaaki的SD-Trainer,它是一个基于Stable Diffusion的LoRA模型训练器。使用SD-Trainer,只需少量图片数据,每个人都可以轻松快捷地训练出属于自己的LoRA模型。

    同时,用户还要准备用于训练的图片数据集。下面介绍LoRA模型训练的一些具体准备工作。

    步骤01 下载好SD-Trainer的安装包后,选择该安装包并右击,在弹出的快捷菜单中选择"解压到当前文件夹"命令,将其解压到当前文件夹中。

    温馨提示

    用户需要先明确自己的训练主题,如特定的人物、物品或画风。确定好后,还需要准备用于训练的图片数据集。数据集的质量直接关系到模型的表现,因此一个理想的数据集应具备以下要求:① 准备不少于15张高质量的图片,通常建议准备20~50张图;

    温馨提示

    用户需要先明确自己的训练主题,如特定的人物、物品或画风。确定好后,还需要准备用于训练的图片数据集。数据集的质量直接关系到模型的表现,因此一个理想的数据集应具备以下要求:① 准备不少于15张高质量的图片,通常建议准备20~50张图; ② 确保图片主体内容清晰可识别、特征鲜明,保持图片构图简单,避免干扰元素,同时避免使用重复或相似度过高的图片;③ 如果选择人物照片,尽量以脸部特写为主(包括多个角度和表情),同时还可以混入几张不同姿势和服装的全身照。 素材图片准备好之后,对于低像素的图片可以使用Stable Diffusion的后期处理功能进行高清放大处理;统一裁剪图片的尺寸,确保分辨率是64的倍数,如512px×512px或者768px×768px。

    步骤02 解压完成后,进入安装目录下的train文件夹中,创建一个用于存放LoRA模型的文件夹,建议文件夹的名称与要训练的LoRA模型名称一致,如Fashionable Beauties(时尚美女)。

    步骤03 进入Fashionable Beauties文件夹,在其中再创建一个名为10_Fashionable Beauties的文件夹,并将准备好的训练图片放入其中。

    温馨提示 注意,10_Fashionable Beauties文件夹名称中的10是repeat数,指的是在训练过程中,对于每一张图片,需要重复训练的次数。这个数字通常用于控制模型训练的精度和稳定性。一般来说,增加repeat数可以增加模型的训练精度,但也会增加训练时间和计算资源的消耗。

    8.3.3 数据标注:图像预处理和打标优化

    图像预处理主要是对训练图片进行标注,这有助于提升AI的学习效果。在生成tags(打标文件)后,还需要优化文件内的标签,通常采用以下两种优化方式:

  • 保留所有标签:是指不删减任何标签,直接应用于训练,这种方法常用于训练不同画风或追求高效训练人物模型的情境。优势是省去了处理标签的时间和精力,同时降低出现过拟合情况的可能性; 劣势是因为风格变化大,需要输入大量标签进行调用,同时需要增加epoch训练轮次,导致训练时间变长。

  • 删除部分特征标签:举例来说,在训练特定角色时,保留"黑色头发"作为其独有特征,因此删除black hair标签,以防止将基础模型中的"黑色头发"特征引导到LoRA模型的训练中。优势是方便调用LoRA模型,更准确地还原画面特征; 劣势是容易导致过拟合的情况出现,同时泛化性能降低。

  • 温馨提示 过拟合是指模型在训练数据上表现得过于优秀,但在未见数据上表现较差。欠拟合则是指模型无法很好地拟合训练数据,从而无法捕捉到数据中的真实模式和关系。

    下面介绍图像数据标注的操作方法。

    步骤01 进入SD-Trainer的安装目录,先双击"A强制更新-国内加速.bat"文件进行更新(注意,仅首次启动时需要运行该程序)。完成命令后,再双击"A启动脚本.bat"文件启动应用。

    步骤02 执行操作后,即可在浏览器中打开"SD-Trainer|SD训练UI"页面。单击左侧的"WD 1.4标签器"。

    温馨提示 WD 1.4标签器(又称Tagger标注工具)是一种图片提示词反推模型,其原理是利用Tagger模型将图片内容转化为提示词,从而生成对应的文生图或图生图的AI作品。Tagger模型能够自动通过分析图片内容,推断出相应的文字描述,提高图片数据标注的效率。

    步骤03 执行操作后,进入"WD 1.4标签器"页面,设置相应的图片文件夹路径(即前面创建的10_Fashionable Beauties文件夹的路径),并输入相应的附加提示词(注意用逗号分隔),作为起手通用提示词,用于提升画面的质感。

    步骤04 单击页面右下角的"启动"按钮,即可进行图像预处理。可以在命令行窗口中查看处理结果,同时还会在图像源文件夹中生成相应的标签文档。

    8.3.4 参数调整:设置训练模型和数据集

    SD-Trainer提供了"新手"和"专家"两种LoRA模型训练模式,建议新手采用"新手"模式,参数的设置会更加简单一些。下面介绍在"新手"模式中设置训练模型和数据集等参数的操作方法。

    步骤01 将用于LoRA模型训练的基础底模型(即底模文件)放入SD-Trainer安装目录下的sd-models文件夹内。

    步骤02 在"SD-Trainer|SD训练UI"页面中,单击左侧的"新手"进入相应页面,在"训练用模型"选项区中设置相应的底模文件路径,在"数据集设置"选项区中设置相应的训练数据集路径(即图像文件夹的路径)。

    步骤03 在"新手"页面下方的"保存设置"选项区中,设置相应的模型保存名称和保存路径。

    步骤04 在"新手"页面下方还可以设置学习率与优化器参数、训练预览图参数等,这里保持默认设置即可,单击"开始训练"按钮。

    步骤05 执行操作后,在命令行窗口中可以查看模型的训练进度。

    步骤06 模型训练完成后,进入output文件夹中,即可看到训练好的LoRA模型。

    8.3.5 测试模型:评估模型应用效果

    将训练好的LoRA模型放入Stable Diffusion的LoRA模型文件夹中,并测试该LoRA模型的绘画效果。可以看到,通过LoRA模型生成的图像会带有原图的画风,其中人物脸形、发型、服饰和背景等元素都非常相似。下面介绍在Stable Diffusion中测试LoRA模型的操作方法。

    步骤01 进入"文生图"页面,选择训练LoRA模型时使用的大模型,输入简单的提示词,切换至Lora选项卡,单击"刷新"按钮即可看到新安装的LoRA模型。选择新安装的LoRA模型并将其添加到提示词输入框中,用于固定图像画风。

    温馨提示 在LoRA模型的提示词中,可以对其权重值进行设置。需要注意的是,LoRA模型的权重值尽量不要超过1,否则容易生成效果很差的图。大部分单个LoRA模型的权重值可以设置为0.6~0.9,这样能够提高出图质量。如果只想带一点点LoRA模型的元素或风格,则将权重值设置为0.3~0.6即可。

    步骤02 在页面下方设置"采样方法"为DPM++ 2M Karras,使采样结果更加真实、自然,其他参数保持默认即可。

    温馨提示 DPM++ 2M Karras采样器可以生成高质量图像,适合生成写实人像或刻画复杂场景,而且步幅(即迭代步数)越高,细节刻画效果越好。使用DPM++ 2M Karras采样器生成图片时,不仅生成速度快,而且出图效果好。

    步骤03 单击"生成"按钮,即可生成相应画风的图像。

    本章小结

    本章主要介绍了训练神经网络的基本知识,具体内容包括神经网络的概念、组成结构、训练方法,以及感知机、卷积神经网络、循环神经网络、生成对抗网络、递归神经网络、长短期记忆网络等神经网络架构的特点和应用场景,最后以LoRA模型训练为例,详细介绍训练特定画风模型的整个流程。

    通过学习本章内容,读者可以了解神经网络的原理和各种架构的特点,并掌握训练LoRA模型的方法。

    课后习题

  • 神经网络的组成结构是什么?

  • 用真实摄影风格的LoRA模型生成人物图片,效果如图8-23所示。

  • 赞(0)
    未经允许不得转载:171主机测评 » AI训练师图解_08_神经网络训练_教AI如何更懂人类
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址