《动手学深度学习 Pytorch版》 4.1 多层感知机

%matplotlib inline
import torch
from d2l import torch as d2l

4.1.1 隐藏层

整节理论,详见书本。

以下展示常见的激活函数。

  1. ReLU 函数

    ReLU(x)=max(x,0)

    修正线性单元(rectified linear unit,ReLU),通过将相应的激活值设为 0,仅保留正元素丢弃所有负元素。ReLU 函数求导表现特别好:要么让参数消失,要么让参数通过。这使得优化表现更好,并且可以缓解梯度消失问题。

    以下为 ReLU 函数图像及其导数图像(在 0 处默认使用左侧导数)。

x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)
y = torch.relu(x)
d2l.plot(x.detach(), y.detach(), 'x', 'relu(x)', figsize=(5, 2.5))

image

y.backward(torch.ones_like(x), retain_graph=True)
d2l.plot(x.detach(), x.grad, 'x', 'grad of relu', figsize=(5, 2.5))

image

  1. sigmoid 函数

    sigmoid(x)=11+exp(x)

    sigmoid 函数通常被称为挤压函数(squashing function),它将输入变换为区间 (0, 1) 上的输出。当输入接近 0 时,sigmoid 函数接近线性变换。其导数在输入为 0 时达到最大值 0.25。目前已经很少使用,大部分时候会使用 ReLU 函数。

    以下为 sigmoid 函数图像及其导数图像。

y = torch.sigmoid(x)
d2l.plot(x.detach(), y.detach(), 'x', 'sigmoid(x)', figsize=(5, 2.5))

image

x.grad.data.zero_()  # 清除以前的梯度
y.backward(torch.ones_like(x),retain_graph=True)
d2l.plot(x.detach(), x.grad, 'x', 'grad of sigmoid', figsize=(5, 2.5))

image

  1. tanh 函数

    tanh(x)=1exp(2x)1+exp(2x)

    双曲正切函数(hyperbolic tangent function),与 sigmoid 函数类似,也能将其压缩转换到区间 (-1,1) 上。当输入在 0 附近时,tanh 函数接近线性变换,但不同于 sigmoid 函数的是,tanh 函数关于坐标原点中心对称。

    以下为 tanh 函数图像及其导数图像。

y = torch.tanh(x)
d2l.plot(x.detach(), y.detach(), 'x', 'tanh(x)', figsize=(5, 2.5))

image

x.grad.data.zero_()  # 清除以前的梯度
y.backward(torch.ones_like(x),retain_graph=True)
d2l.plot(x.detach(), x.grad, 'x', 'grad of tanh', figsize=(5, 2.5))

image

练习

(1)计算 pReLU 激活函数的导数。

(1)pReLU(x)=max(0,x)+αmin(0,x)={αxx<0x=0xx>0

(2)d pReLU(x)dx={αx<0x=01x>0


(2)证明一个仅使用 ReLU(或pReLU)的多层感知机构造了一个连续的分段线性函数。

不会......


(3)证明 tanh(x)+1=2sigmoid(2x)

(3)tanh(x)+1=1exp(2x)1+exp(2x)+1(4)=1exp(2x)1+exp(2x)+1+exp(2x)1+exp(2x)(5)=21+exp(2x)(6)=2sigmoid(2x)


(4)假设我们有一个非线性单元,将它一次应用于一个小批量的数据,这会导致什么样的问题?

这题也不会......

posted @   AncilunKiang  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示