• Tensorflow笔记(二)


    为什么要用激活函数?

    在实际应用中某些数据是线性可分的,即可以用一条直线将数据分开:
    在这里插入图片描述
    而有些数据则无法通过线性进行分割,
    在这里插入图片描述
    此时可以通过线性变换的方式进行分割:x² y²的方式

    在这里插入图片描述

    总而言之,激活函数可以引入非线性因素,解决线性模型所不能解决的问题。

    神经网络复杂度:

    在这里插入图片描述

    一、空间复杂度:
    		① 层数=隐藏层数+输出层    ② 总复杂度=总W + 总b
    		上图的层数:隐藏层+输出层 = 2
    		上图的复杂度:3*4+4 + 4*2+2 = 26
    二、时间复杂度
    		乘加运算次数
    		3*4 + 4*2 = 20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    学习率:

    ① W(t+1) = W(t) - L(r)* Зloss / ЗW(t)
    ② 指数衰减学习率 = 初始学习率 * 学习率衰减率 ** (当前轮数 / 多少轮衰减一次)
    
    • 1
    • 2

    激活函数:

    激活函数的标准

    1、非线性:非线性可使多层神经网络可逼近所有函数
    2、可微性:大多蚕蛹梯度下降的方式更新参数
    3、单调性:当激活函数单调,可以保障单层网络的损失函数是凸函数
    4、近似恒等性:f(x) ≈ x,当参数初始化随机最小值,神经网络更稳定
    
    • 1
    • 2
    • 3
    • 4

    一、sigmoid 【tf.nn.sigmoid】

    在这里插入图片描述

    	函数:f(x) = 1 / (1 + e**-x)
        缺点:
    		① 易造成梯度损失
    		② 输出非0均值,训练慢
    		③ 幂运算复杂,训练时间长
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、Tanh 【tf.math.tanh(x)】

    在这里插入图片描述

    	函数:f(x) = (1-e**-2x)/(1+e**-2x)
    	缺点:
    		① 输出是 0 均值
    		② 易造成梯度消失
    		③ 幂运算复杂,训练时间长
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、Relu 【tf.nn.relu(x)】

    在这里插入图片描述

    	函数:                 |- 0  x<0
    		f(x) = max(x,0) = |
    		                  |- x  x>=0
    	优点:                                        缺点:
    		① 解决梯度消失(正区间)                         ① 输出非0均值,收敛慢
    		② 计算快(输入>0)                              ② Dead Relu问题
    		③ 收敛快于sigmoid和Tanh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Linux 文件基础
    HTML5期末大作业:基于html企业官网项目的设计与实现【艺术官网】
    Discrete Optimization课程笔记(2)—Constraint Programming约束规划(上)
    flyway的快速入门教程
    ResNet简单解释
    JavaWeb
    深度学习入门
    传奇外网架设教程带图文解说——Gom引擎
    linux系统Jenkins的安装
    第十章 将对象映射到 XML - 控制关系映射的形式
  • 原文地址:https://blog.csdn.net/qq_38705144/article/details/126773982