首页 > 其他分享 >深度学习中的激励函数

深度学习中的激励函数

时间:2022-12-28 09:34:38浏览次数:54  
标签:非线性 relu 学习 神经网络 深度 我们 激励函数 Wx

今天我们会来聊聊现代神经网络中 必不可少的一个组成部分, 激励函数, activation function.

非线性方程

我们为什么要使用激励函数? 用简单的语句来概括. 就是因为, 现实并没有我们想象的那么美好, 它是残酷多变的. 哈哈, 开个玩笑, 不过激励函数也就是为了解决我们日常生活中 不能用线性方程所概括的问题. 好了,我知道你的问题来了. 什么是线性方程 (linear function)?

说到线性方程, 我们不得不提到另外一种方程, 非线性方程 (nonlinear function). 我们假设, 女生长得越漂亮, 越多男生爱. 这就可以被当做一个线性问题. 但是如果我们假设这个场景是发生在校园里. 校园里的男生数是有限的, 女生再漂亮, 也不可能会有无穷多的男生喜欢她. 所以这就变成了一个非线性问题.再说..女生也不可能是无穷漂亮的.

然后我们就可以来讨论如何在神经网络中达成我们描述非线性的任务了. 我们可以把整个网络简化成这样一个式子. Y = Wx, W 就是我们要求的参数, y 是预测值, x 是输入值. 用这个式子, 我们很容易就能描述刚刚的那个线性问题, 因为 W 求出来可以是一个固定的数. 不过这似乎并不能让这条直线变得扭起来 , 激励函数见状, 拔刀相助, 站出来说道: “让我来掰弯它!”.

激励函数

这里的 AF 就是指的激励函数. 激励函数拿出自己最擅长的”掰弯利器”, 套在了原函数上 用力一扭, 原来的 Wx 结果就被扭弯了.

其实这个 AF, 掰弯利器, 也不是什么触不可及的东西. 它其实就是另外一个非线性函数. 比如说relu, sigmoid, tanh. 将这些掰弯利器嵌套在原有的结果之上, 强行把原有的线性结果给扭曲了. 使得输出结果 y 也有了非线性的特征. 举个例子, 比如我使用了 relu 这个掰弯利器, 如果此时 Wx 的结果是1, y 还将是1, 不过 Wx 为-1的时候, y 不再是-1, 而会是0.

你甚至可以创造自己的激励函数来处理自己的问题, 不过要确保的是这些激励函数必须是可以微分的, 因为在 backpropagation 误差反向传递的时候, 只有这些可微分的激励函数才能把误差传递回去.

常用选择

想要恰当使用这些激励函数, 还是有窍门的. 比如当你的神经网络层只有两三层, 不是很多的时候, 对于隐藏层, 使用任意的激励函数, 随便掰弯是可以的, 不会有特别大的影响. 不过, 当你使用特别多层的神经网络, 在掰弯的时候, 万万不得随意选择利器. 因为这会涉及到梯度爆炸, 梯度消失的问题. 因为时间的关系, 我们可能会在以后来具体谈谈这个问题.

最后我们说说, 在具体的例子中, 我们默认首选的激励函数是哪些. 在少量层结构中, 我们可以尝试很多种不同的激励函数. 在卷积神经网络 Convolutional neural networks 的卷积层中, 推荐的激励函数是 relu. 在循环神经网络中 recurrent neural networks, 推荐的是 tanh 或者是 relu ,这个具体怎么选, 会在以后 循环神经网络重逐步探索.

 

标签:非线性,relu,学习,神经网络,深度,我们,激励函数,Wx
From: https://www.cnblogs.com/michael999/p/17009430.html

相关文章

  • 斯坦福 吴恩达 机器学习课程 视频+讲义+课件等 pdf
    非常优质的机器学习入门课程,课程内容有一定难度,但坚持学完,相信一定会有所收获。 关注公众号:后厂村搬砖工。发送:学习资料汇总即可    ......
  • Spring学习笔记 - 第三章 - AOP与Spring事务
    原文地址:Spring学习笔记-第三章-AOP与Spring事务Spring学习笔记全系列传送门:Spring学习笔记-第一章-IoC(控制反转)、IoC容器、Bean的实例化与生命周期、DI(依......
  • Python学习笔记--高阶技巧
    闭包(避免全局变量被修改的风险)函数的嵌套的利用若是只是调用到外部函数的值,只需要用到函数的嵌套,具体实现如下:若是要对外部函数的值进行修改,需要用到nonlocal关键字,具......
  • Python学习笔记--数据输出
    数据输出输出为Python对象collect算子具体实现:reduce算子具体实现:take算子具体实现:count算子具体实现:输出到文件中saveAsTextFile算子具体实现:起初......
  • Spring IOC官方文档学习笔记(五)之bean的作用域
    1.Bean的作用域(1)Bean的作用域即Bean实例的作用范围,Spring支持6种bean的作用域,其中4种只能在web环境中使用,具体如下作用域描述singleton默认作用域,采用单例......
  • mvc3学习之--安装
    mvc3安装 安装ASP.NETMVC3完整步骤教程(MusicStore)  这几天正在学习 MVC3,并且使用微软的MusicStore一步一步的学习的。在使用过程中,遇到......
  • c#,asp.net 开发 app 学习资料整理
    VS2015ApacheCordova第一个Android和IOS应用 ​​PhoneGap:免费开源的HTML5移动应用开发平台​​ 学习视频材料模板​​​http://www.jqueryfuns.com/​​html5学习资......
  • Android学习day02【页面布局的练习】
    在网上找了一些图片,只用最简单的颜色进行区分,目的是熟悉线性布局和相对布局下面是我找到的简单的Android页面,你也可以尝试以下‘  下面是我的实现代码第一个 ......
  • Java学习笔记------线程安全问题
    线程的安全问题同步机制解决线程安全问题方式一:同步代码块synchronized(obj){ //需要被同步的代码}synchronized(this){}synchronized(Windows.class){}......
  • Java学习笔记----线程基础
    线程线程,进程可进一步细化为线程,是一个程序内部的一条执行路径线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器,线程切换的开销小线程的创建与启动Java......