Deep Learning | Chapter 6 · Deep Feedforward Networks
  • 深度前馈网络定义函数 $\pmb{y}=f(\pmb{x};\pmb{\theta})$ ,并学习参数 $\theta$ 以获得对于函数 $y=f^*(\pmb{x})$ 的最佳近似。
  • 训练数据是含有噪声的 $f^* (\pmb{x})$ 的近似实例,每个 $\pmb{x}$ 的标签 $y \approx f^*(\pmb{x})$ 。
  • 只有输出层能够决定网络输出的 $y$ ,其他层被称之为隐藏层
  • 神经网络中的每一个单元将向量转化为一个标量。
  • 扩展线性模型:不把线性模型用于 $\pmb{x}$ ,而是用在变换后的输入 $\phi(\pmb{x})$ 上,其中 $\phi$ 是一个非线性变换。如何选择 $\phi$:

    • 选择无限维的 $\phi$ ,会导致在训练集上拟合的很好,却很难泛化。
    • 手动设计 $\phi$ ,费时费力且很难迁移。
    • 利用深度学习学习 $\phi$ 。

      • 模型: $y=f(\pmb{x};\theta ,\pmb{w})=\phi(\pmb{x};\theta)^{\mathrm{T}}\pmb{w}$ 。
      • $\phi$ 定义了一个隐藏层,学习参数 $\theta$ ,即从函数族中选择对应的函数。
      • 放弃了凸性,但利大于弊。
      • 可以与方法 1 和方法 2 有效结合。

6.1 Example: Learning XOR

  • 数据集 $\mathbb{X}=\{[0,0]^\mathrm{T},[0,1]^\mathrm{T},[1,0]^\mathrm{T},[1,1]^\mathrm{T}\}$ 。不关心泛化,只关心如何拟合数据集。
  • 选择的损失函数为 MSE ,$J(\theta)=\frac{1}{4} \sum\limits_{x\in \mathbb{X}}(f^*(\pmb{x})-f(\pmb{x};\pmb{\theta}))^2$ 。但需要注意,MSE 并不是非常适合二进制的模型。
  • 错误的方法:选择一个线性模型 $f(\pmb{x};\pmb{w},b)=\pmb{x}^\mathrm{T}\pmb{w}+b$ ,解得:$\pmb{w}=0,b=\frac{1}{2}$ ,在任意一点损失函数都为 $0.5$ 。
  • 正确的方法:$f(\pmb{x};\pmb{W},\pmb{c},\pmb{w},b)=f^{(2)}(f^{(1)}(\pmb{x}))$ ,其中 $\pmb{h}=f^{(1)}(\pmb{x};\pmb{W},\pmb{c}),y=f^{(2)}(\pmb{h};\pmb{w},b)$ ,如图所示。

    • $f^{(1)}(\pmb{x})=g(\pmb{W}^{\mathrm{T}}\pmb{x}+\pmb{c})$ ,其中 $g$ 是一个激活函数,常用 ReLU :$g(z)=\max\{0,z\}$ ,其是一个非线性变换。
    • $f^{(2)}(\pmb{h})=\pmb{h}^{\mathrm{T}}\pmb{w}$
    • 具体例子

6.2 Gradient-Based Learning

  • 神经网络的非线性导致优化时的非凸性 。凸性函数一定可以优化至最低点,但是非凸函数只能优化至极值点,并且和初始参数密切相关。

6.2.1 Cost Functions

6.2.1.1 Learning Conditional Distributions with Maximum Likelihood
  • 上一章已经讲过,最大似然可以引出负对数似然 $J(\pmb{\theta})=-\mathbb{E}_{\pmb{\mathrm{x}},\pmb{\mathrm{y}}\sim \hat{p}_{\mathrm{data}}}\mathrm{log}p_{\mathrm{model}}(\pmb{y}|\pmb{x})$ 。
  • 负对数似然有时可以通过解除指数来解决饱和问题。
6.2.1.2 Learning Conditional Statistics
  • 有时不需要完整的概率分布,只需要某一种统计量。例如对于预测器 $f(\pmb{x};\pmb{\theta})$ ,预测 $\pmb{y}$ 的均值。
  • 假设有一个非常强大的神经网络,可以表示任意的 $f$ ,此时可以把代价函数看作是泛函,也就是对于一个 $x$ ,不是仅仅得到一个实数,而是得到一个函数。还有后续要讲的变分法,这里都不需要太掌握,只需要记得两个结论。

    • 解优化问题 $f^*=\mathop{\arg\min}_{f} \mathbb{E}_{\pmb{\mathrm{x}},\pmb{\mathrm{y}} \sim p_{mathrm{data}}} ||\pmb{y}-f(\pmb{x})||^2$ ,可以得到 $f*(\pmb{x})=\mathbb{E}_{\pmb{\mathrm{y}} \sim p_{\mathrm{data}}(\pmb{y}|\pmb{x})}[y]$ 。也就是说,最小化均方误差将得到一个函数,可以对于每个 $\pmb{x}$ 预测 $\pmb{y}$ 的均值
    • 解优化问题 $f^*=\mathop{\arg\min}_{f} \mathbb{E}_{\pmb{\mathrm{x}},\pmb{\mathrm{y}} \sim p_{mathrm{data}}} ||\pmb{y}-f(\pmb{x})||_1$ ,可以得到预测每个 $\pmb{x}$ 的 $\pmb{y}$ 的中位数的函数

6.2.2 Output Units

  • 假设已有隐藏层 $\pmb{h}=f(\pmb{x};\pmb{\theta})$ 。
6.2.2.1 Linear Units for Gaussian Output Distributions
  • $\hat{\pmb{y}}=\pmb{W}^{\mathrm{T}}\pmb{h}+\pmb{b}$
  • 一般用于预测高斯分布的均值 $p(\pmb{y}|\pmb{x})=\mathcal{N}(\pmb{y};\hat{\pmb{y}},\pmb{I})$ 。之前讲过,此时,最大似然等价于最小化均方误差。
  • 线性模型的优点是不会饱和。
6.2.2.2 Sigmoid Units for Bernoulli Output Distributions
  • Sigmoid 输出层用于二分类问题,此时最大似然函数是定义在 $\pmb{x}$ 条件下 $y$ 的 Bernoulli 分布。
  • 定义 $\hat{y}=\sigma(\pmb{w}^{\mathrm{T}}\pmb{h}+b)$ 为模型预测的概率,其中 $\sigma(x)=\frac{1}{1+e^{-x}}$ ,也就是 Sigmoid 激活函数。但要注意这个这并不是标准的概率分布,因为概率和不为 $1$ 。
  • 设 $y=0$ 或者 $1$ ,指数据集中的标签, $z=\pmb{w}^\mathrm{T}\pmb{h}+b$ ,构造伯努利概型 $P(y)=\frac{e^{yz}}{\sum_{y’=0}^1 e^{y’z}}=\sigma ((2y-1)z)$ 来预测 $y$ 的概率分布,此概率分布已经完成归一化。
  • 损失函数 $J(\pmb{\theta})=-\mathrm{log}P(y|\pmb{x})=\zeta((1-2y)z)$ ,其中 $\zeta$ 是 softplus 函数。

    • 本质上与日常见到的 $L=\frac{1}{N}\sum\limits_i L_i=\frac{1}{N}\sum\limits_i -[y_i \mathrm{log}(p_i)+(1-y_i)\mathrm{log}(1-p_i)]$ 中的 $L_i$ 是一样的。
    • 根据 softplus 的性质,只有在模型得到正确答案时才会饱和。

      • 当 $y=1$ 且 $z$ 取非常大的正值时。
      • 当 $y=0$ 且 $z$ 取非常小的负值时。

6.2.2.3 Softmax Units for Multinoulli Output Distributions

  • Softmax 输出层用于解决多分类问题,也就是输出对于 $n$ 个分类的概率,此时满足 Multinoulli 分布。
  • 与 Sigmoid 输出层类似,未归一化的概率为 $\pmb{z}=\pmb{W}^\mathrm{T}\pmb{h}+\pmb{b}$ 。经过指数化和归一化,得到 $\mathrm{softmax}(\pmb{z})_i=\frac{e^{z_j}}{\sum_j e^{z_j}}$ ,此时其对数似然为 $\mathrm{softmax}(\pmb{z})_i=z_i-\mathrm{log}\sum\limits_j e^{z_j}$ 。
  • $\mathrm{softmax}$ 函数的变量 $\pmb{z}$ 可以通过两种方式生成:

    • 简单地使用神经网络之前层输出的元素,但这样会导致参数太多,因为已知 $n-1$ 个概率,就可以得到剩下一个概率。
    • 强制要求 $z_n=0$ 。

6.2.2.4 Other Output Types

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇