李宏毅《生成式人工智能导论》第十次作业代码(课程提供了源码)的学习参考:https://blog.csdn.net/a131529/article/details/144342428https://colab.research.google.com/drive/1dI_-HVggxyIwDVoreymviwg6ZOvEHiLS?usp=sharing#scrollTo=CnJtiRaRuTFX1 准备工作安装必备的包:pip -q install timm==1.0.7 pip -q install fairscale==0.4.13 pip -q install transformers==4.41.2 pip -q install requests==2.32.3 pip -q install accelerate==0.31.0 pip -q install diffusers==0.29.1 pip -q install einop==0.0.1 pip -q install safetensors==0.4.3 pip -q install voluptuous==0.15.
李宏毅《生成式人工智能导论》第五次作业代码(课程提供了源码)的学习参考:李宏毅 生成式人工智能导论 HW51 准备阶段安装必备包:!pip install bitsandbytes==0.43.0 !pip install datasets==2.10.1 !pip install transformers==4.38.2 !pip install peft==0.9.0 !pip install sentencepiece==0.1.99 !pip install -U accelerate==0.28.0 !pip install colorama==0.4.6 !pip install fsspec==2023.9.2pytorch 版本是:2.6.0+cu118,cu126版本的pytorch似乎和 bitsandbytes 冲突出现bug。加载包:import os import sys import argparse import json import warnings import logging warnings.filterwarnings("ignore
原文:LoRA: Low-Rank Adaptation of Large Language Models1 简介冻结预训练模型的权重,在 Transformer 架构的每一层注入可训练的 秩分解矩阵,从而大大减少了下游任务的可训练参数数量。术语:the input and output dimension size of a Transformer layer: $d_{model}$the query/key/value/output projection matrices in the self-attention module: $W_q,W_k, W_v, W_o$the pretrained weight matrix: $W$ ($W_0$)accumulated gradient update during adaption: $\Delta W$the rank of a LoRA module: $r$Transformer MLP feedforward dimension $d_{ffn} = 4\times d_{model}$问题描述:给定一个由 $\Phi
1 卷积神经网络Convolutional Neural Network (CNN)卷积神经网络由三个主要部分组成:卷积层 (convolutional layers)池化层 (pooling layers)全连接层 (fully connected layers)应用于数字识别的CNN架构[source]1.1 卷积层输入:大小 $W\times H\times C$(W 宽,H 高,C 通道数对于初始的图像,通道数为颜色维度,RGB的 channel size = 3)主要的数学运算:卷积(对图像的像素矩阵应用的滑动窗口函数)卷积操作的目的:从输入图像中提取高级特征。通过应用多个不同的 filter (大小相同) 来提取不同的图像特征。每个 filter 以 一定步长stride 遍历整张图片。以手写数字识别为例,filter 可以用于识别数字的曲线,边缘,数字的整体形状等对输入预处理:padding 填充Valid padding: 不进行任何填充,卷积操作后特征图的尺寸会减小。Same padding: 进行填充,使得卷积操作后特征图的尺寸与输入图像的尺寸相同。使用 $3\ti
1 Denoising Diffusion Probabilistic Models论文地址:Denoising Diffusion Probabilistic ModelsDiffusion Probabilistic Model 是一个可参数化的马尔可夫链,通过变分推理训练,在有限时间内生成与数据匹配的样本。Transitions of this chain are learned to reverse a diffusion process, which is a Markov chain that gradually adds noise to the data in the opposite direction of sampling until signal is destroyed.当 diffusion 由少量高斯噪声组成时,将 sampling chain transitions 设置为条件高斯分布,从而允许实现特别简单的神经网络的参数化。1.1 backgroundDiffusion Model:latent variable models 潜变量模型形式:$$ p
video:https://www.youtube.com/watch?v=lAq96T8FkTwhttps://www.youtube.com/watch?v=NxTFlzBjS-4https://www.youtube.com/watch?v=lWzo8CajF5shttps://zhuanlan.zhihu.com/p/68748778EMA:Exponential Moving Average,指数移动平均,也称权重移动平均(Weighted Moving Average)。假设有 n 个数据:$[\theta_1, \theta_2, ..., \theta_n]$ 计算平均值:$v_t = \beta \cdot v_{t-1} + (1-\beta) \cdot \theta_t$ ,其中 $v_t$ 表示前 $t$ 个数据的平均值,$\beta$ 是加权权重值(一般设为 0.9~0.999),不同的 $\beta$ 值会影响平均值的平滑程度。普通求平均值的方法:$v_t = \cfrac{(n-1)\cdot v_{t-1} + \theta_t}{n}$ ,当 $\b
Generative Adversarial Network GAN学习:李宏毅:GAN GAN的输入包含一个随机变量 z,该变量从一个简单的分布(通常是正态分布)中采样。随机变量 z 的引入使得生成器具有更强的创造性,从而能够生成多样化的输出。Unconditional generation输入:一个低维向量 z,来自正态分布。输出:一个高维向量 y,通常表示为一张图像,具有复杂的分布。输入不同的 z 将导致输出的 y 不相同。Dicriminator 判别器是一个 neural network输入:一张图像输出:一个数值标量,数值越大,代表图像越真实,越小代表图像越假。Generator 和 Discriminator 是相互学习一起进化的。Algorithmgenerator 和 discriminator 是两个网络,首先需要初始化 generator 和 discriminator 两个网络,然后在每个训练步:Step1: 固定 generator G,更新 discriminator D。从正态分布中采样一些向量,作为 Generator 的输入,得到输出图像从真实数据集
学习:李宏毅:自注意力机制和Transformer1 EncoderEncoder 的主要作用是接收一系列输入向量,并输出对应的向量序列。可以使用 RNN 或 CNN 实现编码器,但在 Transformer 中,采用了自注意力机制(Self-Attention)来实现: Encoder 由多个相同的块(block)组成,每个块内部包含多个层(layer),其结构如下:每个块:input vector seq → self-attention → fully connected network → output。每个块的输出作为下一个块的输入,最终生成的输出为一个向量序列。 Transformer 的设计:在上面的结构基础上加入了 residual 和 normalization: 最终的 encoder 架构:2 Decoder2.1 自回归解码 Autoregressive(AT)Decoder 首先接收一个特殊符号,表示开始(start token),然后根据这个符号输出与词汇表大小相同的向量。选择概率最大的词作为最终输出,同时将其作为 Decoder 的新输入。 encode
1 输入Self-Attention 的输入一个向量序列,可以是原始输入或者某个隐藏层的输出。2 输出向量的产生对于输入向量(例如 $a^1$),需要计算其他向量与 $a^1$ 的关联度。关联度的计算通常通过 点乘 实现:对于给定的输入向量 $a^1$ ,需要先计算 $q^1$ 值:$a^1 = W^qa^1$,其他向量 $a^i$ 计算 $k^i$ 值:$k^i = W^ka^i$,之后和 $q^1$ 点乘,得到 $\alpha_{1,i}$,再进行 soft-max:$\alpha_{1,i}' = \exp(\alpha_{1,i})/\sum_j \exp(\alpha_{1,j})$,作为最终的 attention score: 根据 attention score,和每个输入的 value 值相乘(加权求和)得到最终的输出向量:$b^1 = \sum_i \alpha_{1,i}'v^i$ 这个输出包含了输入序列中各个元素的信息,经过加权后反映了与查询相关的重要性。计算 $b^2$,同上:3 矩阵乘法角度理解从矩阵乘法的角度来看: $W^q$,$W^k$,$W^v$ 是需
标题:Object Detection in 20 Years: A Survey发表时间:2019年pdf 链接:https://arxiv.org/pdf/1905.05055v2这篇文章回顾了400多篇关于目标检测的论文(从上个世纪九十年代到2019年),涵盖了许多话题。关键词:目标检测(Object detection)、计算机视(Computer vision)、深度学习(Deep learning)、卷积神经网络(Convolutional neural networks)、技术进步。1 介绍应用的角度:object detection 可以分为 "general object detection" 和 "detection application"。general object detection:探索不同的方法检测不同的物体以模拟人类的视觉和认知。detection appliction:探索特定应用场景,如:行人检测、人脸检测、文本检测 等。第二个部介绍目标检测20年的进化历史。第三部分介绍目标检测的一些加速技术。第四部分介绍近三年来一些最先进的检测方法(2019)。
caroline
计算机专业学生