取各家之长吧,自己码一遍加深印象,参考链接已附上,侵删。

参考:
1.常见的激励函数和损失函数
https://blog.csdn.net/Chile_Wang/article/details/100557019
2.常用激活函数(激励函数)理解与总结
https://blog.csdn.net/tyhj_sf/article/details/79932893
3.【AI实战】快速掌握TensorFlow(四):损失函数
https://my.oschina.net/u/876354/blog/1940819
4.深度学习的激活函数分析—Sigmoid & ReLU & Softmax
https://blog.csdn.net/yituoxiaoge_keliang/article/details/80422642
5.谈谈激活函数以零为中心的问题
https://blog.csdn.net/weixin_30444105/article/details/98423768
6.关于Sigmoid数据输出不是zero-centered的理解
https://blog.csdn.net/weixin_43835911/article/details/89294613

我们在训练模型前,需要设定的几个超参数:

  • 学习率 learning rate
  • 优化器 optimizer
  • 以及防止过拟合的几种工具,如Dropout和正则化L1、L2。
  • 激励函数 activation func
  • 损失函数 loss func

一. 激励函数

1. 什么叫激励函数?
  • 神经元从输入到输出,会经历一个f函数,这个函数就叫做激励函数,本质就是一个非线性函数。
  • 作用:激励函数的作用非常纯粹,就是为了让网络模型非线性,可以几乎逼近任意函数,网络的表达能力更强大。
  • 激励函数的作用:通过激励函数会将数据压缩到一定的范围区间内,得到的数据的大小将决定该神经元是否处于活跃状态,即:是否被激活。

以下两幅图帮助理解:

2. 常见的激励函数

  • Sigmoid、tanh、ReLU - 用于隐层神经元输出

  • Softmax- 用于多分类神经网络的输出

  • Linear - 用于回归神经网络的输出(或者二分类的问题)


(1) sigmoid激励函数

(2) tanh激励函数

  • sigmoid:每一层输出都在(0,1)之间,经过多层连乘运算后,每层神经元的输出值越来越小, 直至为0,也就是梯度消失。
  • tanh:也存在同样的连乘导致梯度消失的问题。
  • sigmoid和tanh,通常用在层数较少的神经网络中;或者放在回归模型输出层中用作回归激励函数;或者放在分类模型输出层中用作计算概率的激励函数。

(3) Relu激励函数

  • Relu激励函数,弥补sigmoid和tanh的梯度消失问题,并且比sigmoid和tanh计算速度快。

  • Relu函数有很多变种形式。

  • Relu函数通常放在多层神经网络的中间层。

  • Relu激励函数的优点:
    (1) 相比于Sigmoid,梯度不饱和,因此在反向传播过程中,减轻了梯度弥散(梯度消失)的问题,神经网络前几层的参数也可以很快的更新。
    (2) 计算速度快。Sigmoid和tanh函数需要计算指数,relu只需要设置阈值,判断输入是否大于阈值。
    (3) 网络稀疏性。在一定程度上缓解过拟合问题。

  • Relu缺点:
    (1) non-zero-centered:函数的输出不是以零为中心的。Sigmoid的输出也不是以零为中心的,这会导致网络收敛较慢,如图所示,梯度下降权重更新时出现z字型的下降:

    (2) Dead ReLU Problem:也就是某些神经元可能永远不会激活,导致相应的参数永远得不到更新。后来也有一个Relu变种形式试图改善问题,但并没有明显优势。

  • 所以,Relu激励函数仍然是目前的优先选择,80~90%的神经网络会用Relu激励函数。

  • 现在主流做法:多做一步BN(batch normalization),尽可能保证每层网络输入具有相同的分布。

(4) linear激励函数

  • 线性激励函数,不对神经元的输出值进行处理,直接输出。
  • 通常用在回归模型的输出层。

(5) softmax激励函数

  • softmax层,每个节点输出一个概率,所有节点概率之和等于1。
  • softmax层通常用于分类,给出一副图像,softmax给出每个标签对应的概率。

二. 损失函数

1. 什么叫损失函数
  • 神经网络训练的过程,就是基于梯度下降的方法,不断缩小预测值和真实值之间差值的过程。
  • 这个差值就是损失 loss,计算这个差值的函数就是损失函数loss func。
  • 损失函数和神经网络输出层的激励函数,配套使用。
2. 常见的损失函数

(1) 回归任务

  • 损失函数 loss func:均方误差mse
  • 输出层激励函数:linear、sigmoid、tanh
  • 输出层神经元个数:1

(2) 二分类任务

  • 损失函数loss func:二分类交叉熵(binary_crossentropy)

  • 输出层激励函数:softmax

  • 输出层神经元个数:2

  • 损失函数loss func:二分类交叉熵(binary_crossentropy)

  • 输出层激励函数:sigmoid 或者 tanh

  • 输出层神经元个数:1

(3) 多分类任务

  • 损失函数 loss func:多分类交叉熵(categorical_crossentropy)
  • 输出层激励函数:softmax
  • 输出层神经元个数:分类类别个数

学习笔记——激励函数activation func、损失函数loss func相关推荐

  1. 【深度学习 一】activation function以及loss function理解

    一  首先线性回归模型: 可以看成是单层神经网络 二  引入非线性元素,使神经网络可以完成非线性映射,就引入了sigmoid,ReLU,softmax等激活函数 Sigmoid函数 Sigmoid = ...

  2. Pytorch深度学习笔记(02)--损失函数、交叉熵、过拟合与欠拟合

    目录 一.损失函数 二.交叉熵损失函数详解 1.交叉熵 2.信息量 3.信息熵 4.相对熵(KL散度) 5.交叉熵 6.交叉熵在单分类问题中的应用 7.总结: 三.过拟合和欠拟合通俗解释 1.过拟合 ...

  3. 统计学习基础:数据挖掘、推理和预测_百度零基础深度学习笔记(三) 波士顿房价预测...

    波士顿房价预测 波士顿房价预测是一个经典的机器学习任务,期待构建一个房价预测模型,其数据中包含13个影响房价的因素和该类型房屋均价. 波士顿房价影响因素 数据预处理 数据预处理包括: 数据导入 数据形 ...

  4. 《深度学习笔记》——“损失函数loss乘以正数因子a是否等价于学习率lr乘以a呢?”

    致谢 感谢知乎回答"loss的尺度的影响的本质上取决于优化器"给予我的启发! 1 问题描述 最近我在调参时,想到一个问题:"损失函数loss乘以正数因子a是否等价于学习率 ...

  5. PyTorch学习笔记(21) ——损失函数

    0. 前言 本博客内容翻译自纽约大学数据科学中心在2020发布的<Deep Learning>课程的Activation Functions and Loss Functions 部分. ...

  6. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优

    Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...

  7. 深度学习新的采样方式和损失函数--论文笔记

    深度学习新的采样方式和损失函数--论文笔记 论文<Sampling matters in deep embedding learning> 论文地址:https://arxiv.org/p ...

  8. [TensorFlow 学习笔记-06]激活函数(Activation Function)

    [版权说明] TensorFlow 学习笔记参考:  李嘉璇 著 TensorFlow技术解析与实战 黄文坚 唐源 著 TensorFlow实战郑泽宇  顾思宇 著 TensorFlow实战Googl ...

  9. DeepXDE学习笔记【1】——简单ODE方程求解

    DeepXDE学习笔记[1]--简单ODE方程求解 1.背景 物理信息神经网络(PINN)自从2017年被提出,其应用范围在近两年也被挖掘的越来越广泛,除了可以解决物理方面的问题,信号处理.工程评估等 ...

  10. 李宏毅深度学习笔记——呕心整理版

    李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...

最新文章

  1. 基于Vue, Vuex 和 ElementUI 构建轻量单页Hexo主题Lite
  2. 百变冰冰!手把手教你实现CVPR2021最新妆容迁移算法
  3. 资讯|WebRTC M94 更新
  4. pythonurllib微博登陆是什么_而不是使用urllib登录网站http.clien
  5. OpenSessionInViewFilter作用及配置
  6. Uboot 命令是如何被使用的?
  7. Codeforces 835 F Roads in the Kingdom(树形dp)
  8. 报表中Mail Label 的使用
  9. 2014年图灵奖_2014年人民选择奖:投下您的一票
  10. R语言数据挖掘1.9.1 机器学习方法
  11. winform datagridview 打印预览
  12. [免费专栏] Android安全之Drozer安全测试详细使用教程
  13. 亚马逊卖家运营必备八大工具
  14. OAuth2四种不同的标准模式
  15. PD win10虚拟机 主机互联
  16. 1-1统计数字问题(C语言实现)
  17. .NET Core中Expression<Func<T,bool>>简洁明了
  18. java实现第五届蓝桥杯海盗分金币
  19. 银行家算法—简单易懂解题思路
  20. 怎么用鸿蒙os系统,鸿蒙OS2.0系统怎么降级到EMUI11 鸿蒙OS2.0系统降级到EMUI11方法...

热门文章

  1. 2016服务器系统驱动,windows sever2016驱动大家是怎么装的啊
  2. linux libpng dev,linux下实用图形库--libpng下载地址及说明
  3. 2021爱分析・中国采购数字化趋势报告
  4. mysql表analyze_MySQL ANALYZE Optimize Check Table使用详解
  5. 人工智能语音训练数据的制作方式?
  6. 菜鸟网络后端java 一面总结
  7. 框架基础---动态代理
  8. 浏览器与输入法——用户入口的争夺
  9. 大厂阿里程序员的薪资:简述阿里的薪酬体系和职级
  10. 树莓派计算机组装,Samytronix Pi:用树莓派 DIY 的桌面计算机