深度学习初识
反向传播 我们将考虑一个通用输入 $x$,并计算 $h_\theta(x)$ 关于 $\theta$ 的梯度。为简便起见,我们用 $o$ 作为 $h_\theta(x)$ 的简写($o$ 代表 output,即输出)。为简便起见,虽然有滥用符号之嫌,我们使用 $J = \frac{1}{2} (y - o)^2$ 来表示损失函数。(注意:这覆盖了 7.1 节中将 $J$ 定义为总损失的设定。)我们的目标是计算 $J$ 关于参数 $\theta$ 的导数。 单个神经元的反向传播 先假设$x$和$w$都是简单的标量。我们有如下: $x \xrightarrow{w, b} z \rightarrow o \rightarrow J$ 前向公式: $z = w \cdot x + b$ $o = \text{ReLU}(z)$ $J = \frac{1}{2}(y - o)^2$ 求导 (链式法则): 由链式法则可得: $$ \frac{\partial J}{\partial w} = \frac{\partial J}{\partial o} \cdot \frac{\parti...
生成式学习算法
判别式模型 vs. 生成式模型 在分类问题中,我们的最终目标是确定样本 $x$ 属于类别 $y$ 的概率。 判别式模型 (Discriminative Learning Algorithms) 目标: 直接学习 $p(y|x)$ 或从输入空间 $X$ 到标签 ${0, 1}$ 的映射。 直觉: 寻找不同类别之间的 决策边界(Decision Boundary) 。 例子: “我不需要知道大象长什么样,我只需要知道大象和狗之间那条区分的线在哪里。” 代表算法: 逻辑回归 (Logistic Regression)、感知机 (Perceptron)、SVM。 生成式模型 (Generative Learning Algorithms) 目标: 学习 $p(x|y)$(给定类别下特征的分布)和 $p(y)$(类别的先验概率)。 直觉: 学习每一个类别 具体的特征模型 。 例子: “我先学习大象长什么样,再学习狗长什么样。新来一个动物时,看它更像谁。” 代表算法: 朴素贝叶斯 (Naive Bayes)、高斯判别分析 (GDA)、HMM。 Q: 为什么有了判别式模型我们却还需要生...
广义线性模型 GLMs
指数分布族 Exponential Family Distributions 如果一类分布可以写成如下形式,我们就说它是指数分布族的: $$ p(y; \eta) = b(y) \exp(\eta^T T(y) - a(\eta)) \quad (3.1) $$ $\eta$ 被称为该分布的 自然参数 (natural parameter,也称为正则参数 canonical parameter)。 $T(y)$ 是 充分统计量 (sufficient statistic)。在我们考虑的分布中,通常有 $T(y) = y$。 $a(\eta)$ 是 对数配分函数 (log partition function)。 量 $e^{-a(\eta)}$ 本质上起到了归一化常数的作用,确保分布 $p(y; \eta)$ 对 $y$ 的求和或积分等于 1。 一旦固定了 $T, a$ 和 $b$ 的选择,就定义了一个由 $\eta$ 参数化的分布族;随着我们改变 $\eta$,我们就能得到该家族中不同的分布。 伯努利分布(Bernoulli Distribution) 我们现在证明伯努...
分类问题
二元分类 $y$只有0,1两种取值。 例如,如果我们尝试建立一个电子邮件垃圾邮件分类器,那么 $x^{(i)}$ 可能是邮件的一些特征,$y$ 如果是垃圾邮件则为 1,否则为 0。0 也被称为 负类(negative class) ,1 被称为 正类(positive class) ,它们有时也用符号 “-” 和 “+” 表示。给定 $x^{(i)}$,相应的 $y^{(i)}$ 也被称为训练样本的 标签(label) 。 逻辑回归 (Logistic Regression) 假设函数$h_\theta(x)$ $$ h_\theta(x) = g(\theta^T x) = \frac{1}{1 + e^{-\theta^T x}} $$ 其中 $$ g(z) = \frac{1}{1 + e^{-z}} $$ 被称为逻辑函数(logistic function)或 Sigmoid 函数。 Sigmoid 函数具有如下性质:当 $z \to \infty$ 时,$g(z) \to 1$;当 $z \to -\infty$ 时,$g(z) \to 0$。因此 $h(x)$...
线性回归与梯度下降
线性回归基础 基本术语与符号 以一个波特兰市的房价预测模型作为例子,假设我们有如下数据: 输入特征 ($x^{(i)}$):例如房子的建筑面积。 输出/目标变量 ($y^{(i)}$):我们要预测的值,例如房价。 训练示例 ($(x^{(i)}, y^{(i)})$):一组输入和输出的配对。 训练集:包含 $n$ 个训练示例的数据集。 假设 ($h$):我们要学习的预测函数,输入 $x$ 并输出预测值。 回归问题:当预测的目标变量是连续值(如价格)时。 分类问题:当预测目标是离散值(如判断是“住宅”还是“公寓”)时。 概念 常见维度符号 在 d 个特征、n 个样本下的具体维度 单条输入特征$x$ $x \in \mathbb{R}^{d+1}$ $(d+1) \times 1$(列向量) 单条输出变量$y$ $y \in \mathbb{R}$ $1 \times 1$(标量) 参数$\theta$ $\theta \in \mathbb{R}^{d+1}$ $(d+1) \times 1$(列向量) 设计矩阵$X$ $X \in \mathbb{R...
提高大模型生成多样性的方法综述
temperature和top-p采样 在生成文本时,调整采样策略可以显著影响输出的多样性。两种常用的方法是temperature采样和top-p采样。 temperature和Top-p都是 高->随机,有创造力。 低->确定,偏向保守。 原理 大模型核心任务是预测下一个最可能出现的词,该过程分为生成分数、转换概率、加权采样三个关键步骤。 生成分数 大模型会为其词汇表中所有词(数量通常为几万到几十万)打分,该分数在 AI 领域称为 logit。以用户问题 “可以给我推荐一个讲 ai 的技术频道吗?” 为例,模型会对相关词进行打分,实际应用中通常展示分数最高的前几个词。 转换概率 通过 softmax 函数将分数转换为概率,公式为 $$ \sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} $$ 其中$z_i$为第 i 个词的分数,K 为词的总量。转换后得到每个词的输出概率,使模型能按概率预测下一个词。 加权采样 根据概率生成预测值的过程称为加权采样。将每个词的概率对应分配到 0-100 的数轴区间,生成随机...
算法分析与设计
第一章 算法概述 五种算法渐进界 1. $O$ (Big-O) —— 渐近上界 设 $f(n)$ 和 $g(n)$ 是定义在非负整数上的正函数。 如果存在正常数 $c$ 和 $n_0$,使得对于所有的 $n \ge n_0$,都有: $$ 0 \le f(n) \le c \cdot g(n) $$ 则称 $f(n) = O(g(n))$。 2. $\Omega$ (Big-Omega) —— 渐近下界 设 $f(n)$ 和 $g(n)$ 是定义在非负整数上的正函数。 如果存在正的常数 $c$ 和 $n_0$,使得对于所有的 $n \ge n_0$,都有: $$ 0 \le c \cdot g(n) \le f(n) $$ 则称 $f(n) = \Omega(g(n))$。 3. $\Theta$ (Big-Theta) —— 渐近紧确界 设 $f(n)$ 和 $g(n)$ 是定义在非负整数上的正函数。 如果存在正的常数 $c_1, c_2$ 和 $n_0$,使得对于所有的 $n \ge n_0$,都有: $$ 0 \le c_1 \cdot g(n) \le f(n)...
查询处理与优化
数据库查询处理 (Query Processing) 1. 核心概念与流程 (Overview) 查询处理的目标是将用户的高级语言(如 SQL)转换成数据库系统能够执行的低级指令,并寻找最高效的执行方式。 三个关键步骤 : Parsing and translation (解析与翻译): 检查语法,将查询转换成关系代数表达式。 Optimization (优化): 这是最关键的一步。同一个查询可以有多种执行计划(Plan),优化器负责估算各种计划的代价,找出成本最低的一个。 Evaluation (执行): 查询执行引擎根据优化后的计划,一步步执行并返回结果。 2. 代价估算指标 (Measures of Query Costs) 数据库主要关注磁盘 I/O,因为它是最慢的环节。我们通常忽略 CPU 开销,主要计算磁盘访问的次数。 基本符号: $b$: 需要传输的数据块 (block) 数量。 $S$: 寻道 (seek) 次数。 $t_T$: 传输一个 block 的时间 (Transfer time)。 $t_S$: 一次寻道的时间 (Seek time)。 ...
物理存储结构与索引
存储与文件结构 文件组织 定长记录与变长记录 定长记录(fixed-length record):每条记录的长度相同,便于计算和存取 变长记录(variable-length record):每条记录的长度不同,节省空间,但存取较复杂 文件中记录的组织 堆文件组织(heap file organization) 记录无特定顺序存储,适用于插入频繁但查询较少的场景 顺序文件组织(sequential file organization) 记录按某一属性排序存储,适用于范围查询和顺序访问 散列文件组织(hashed file organization) 记录通过哈希函数映射到存储位置,适用于等值查询 多表聚簇文件组织 (clustered file organization) 将相关表的数据存储在一起,提高联接查询效率 数据字典 (Data Dictionary / System Catalog) 它是“数据库的数据库”。 存什么? 元数据 (Metadata)。即关于数据的数据。 表名、列名、列的类型。 完整性约束(主键、外键)。 用户权限信息。 统计信息(表有多少行?索引树...
conda 常用命令
Conda 常用命令 本文档列出在日常使用 Conda(Anaconda / Miniconda)时常见且实用的命令与示例,包含环境管理、包管理、导出/导入、配置与清理等常用操作。 环境管理(创建 / 激活 / 删除 / 列表) 创建新环境:指定 Python 版本 1conda create -n myenv python=3.10 创建并同时安装包: 1conda create -n myenv python=3.10 numpy pandas 列出所有环境: 123conda env list# 或者conda info --envs 激活环境: 1conda activate myenv 停用当前环境: 1conda deactivate 删除环境: 1conda remove -n myenv --all 克隆环境: 1conda create --name cloned_env --clone myenv 包管理(安装 / 升级 / 卸载 / 列表) 在当前激活环境安装包: 1conda install numpy 在指定环境安装包...
