深度学习(21)神经网络与全连接层四: 输出方式


Outline

  • y ∈ R d y∈R^d yRd
  • y i ∈ [ 0 , 1 ] , i = 0 , 1 , … , y d − 1 y_i∈[0,1],i=0,1,…,y_d-1 yi[0,1],i=0,1,,yd1
  • y i ∈ [ 0 , 1 ] , ∑ i = 0 y d y i = 1 ,   i = 0 , 1 , … , y d − 1 y_i∈[0,1],∑_{i=0}^{y_d}y_i=1,\ i=0,1,…,y_d-1 yi[0,1],i=0ydyi=1, i=0,1,,yd1
  • y i ∈ [ − 1 , 1 ] ,   i = 0 , 1 , … , y d − 1 y_i∈[-1,1],\ i=0,1,…,y_d-1 yi[1,1], i=0,1,,yd1

1. y ∈ R d y∈R^d yRd

  • linear regression
  • naïve classification with MSE
  • other general prediction
  • o u t = r e l u ( X @ W + b ) out=relu(X@W+b) out=relu(X@W+b)
    • logits

2. y i ∈ [ 0 , 1 ] y_i∈[0,1] yi[0,1]

  • binary classification
    • y>0.5,→1
    • y<0.5,→0
  • Image Generation
    • RGB图像
      在这里插入图片描述

以上图片为应用GAN的AI自动画出来的,灰常神奇~

3. sigmoid函数

(1) 目的

使用sigmoid函数的目的是将输出范围限制在[0~1]之间。
在这里插入图片描述

  • o u t = r e l u ( X @ W + b ) out=relu(X@W+b) out=relu(X@W+b)
  • sigmoid → \to
  • o u t ′ = s i g m o i d ( o u t ) out'=sigmoid(out) out=sigmoid(out)

(2) tf.sigmoid

f ( x ) = 1 ( 1 + e − x ) f(x)=\frac{1}{(1+e^{-x} )} f(x)=(1+ex)1
在这里插入图片描述
在这里插入图片描述

(a)a = tf.linspace(-6., 6, 10): 定义a为[-6, 6]间隔10个点;
(b)tf.sigmoid(a): 将a用sigmoid函数使其输出范围限制在[0, 1]之间;
(c)x = tf.random.normal([1, 28, 28])*5: 创建1张28×28的图片,共有5张这样的图片; 其灰度值最小是-18.78872; 最大是15.466431;
(d)x = tf.sigmoid(x): 将x用sigmoid函数使其灰度值限制在[0, 1]之间,这样我们就可以很方便地使用matplot打印出来;

4. softmax

(1) 需求

  • y i ∈ [ 0 , 1 ] , ∑ y i = 1 y_i∈[0,1],∑y_i =1 yi[0,1],yi=1
    在多分类问题中,我们不仅希望将其输出范围限制在[0, 1]之间,还希望所有概率和为1,这样能很方便观察出其中最有可能的值(例如手写数字识别)。
  • 使用sigmoid
    在这里插入图片描述

可以看出,sigmoid函数并不能满足这一点;

  • 使用softmax
    在这里插入图片描述

可以看出, y i ∈ [ 0 , 1 ] , ∑ y i = 1 y_i∈[0,1],∑y_i =1 yi[0,1],yi=1得到了满足;

(2) 原理

在这里插入图片描述

注: 一般将没有激活函数的输出成为Logits;

(3) Classification(分类实例)

在这里插入图片描述

(a)logits = tf.random.uniform([1, 10], minval=-2, maxval=2): 创建一个新的Tensor,共有10个分类,输出值的范围为[-2, 2];
(b)prob = tf.nn.softmax(logits, axis=1): 将其输出值进行归一化处理;
(c)tf.reduce_sum(prob, axis=1): 验证,其概率值的和等于1;

5. tanh

  • y i ∈ [ − 1 , 1 ] y_i∈[-1,1] yi[1,1]
    tanh
    在这里插入图片描述

t a n h ⁡ ( x ) = s i n h ⁡ ( x ) c o s h ⁡ ( x ) = ( e x − e − x ) / ( e x + e − x ) tanh⁡(x)=\frac{sinh⁡(x)}{cosh⁡(x)} =(e^x-e^{-x})/(e^x+e^{-x}) tanh(x)=cosh(x)sinh(x)=(exex)/(ex+ex)
注: tanh主要应用于LSTM;
在这里插入图片描述

(a)tf.tanh(a): 将a的输出值范围压缩到[-1, 1]之间;

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》
[2] https://medium.com/syncedreview/biggan-a-new-state-of-the-art-in-image-synthesis-cf2ec594024
[3] https://www.youtube.com/watch?v=lvNdl7yg4Pg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值