首页 > 其他分享 >深度学习基础实践:理解Sigmoid激活函数原理和实现

深度学习基础实践:理解Sigmoid激活函数原理和实现

时间:2024-09-04 13:23:11浏览次数:5  
标签:输出 函数 sigmoid 梯度 Sigmoid np 激活

Sigmoid 激活函数是一种广泛应用于机器学习和深度学习中的非线性函数,特别是在二分类问题中。它的作用是将一个实数值映射到(0, 1)区间,使得输出可以被解释为概率值,这在处理二分类问题时非常有用。

Sigmoid 函数的定义

Sigmoid 函数的数学表达式为:
σ ( x ) = 1 ( 1 + e − x ) σ(x)= \frac{1}{(1+e^{-x})} σ(x)=(1+e−x)1​
其中 ( e ) 是自然对数的底数,约等于 2.71828。

特点

  1. 非线性:Sigmoid 函数是非线性的,这使得神经网络能够学习复杂的模式。
  2. 输出范围:输出值始终在 0 到 1 之间,这使得它在概率估计中非常有用。
  3. 平滑连续:Sigmoid 函数是光滑且连续的,这有助于梯度下降算法的稳定性。

缺点

  1. 梯度消失问题:当输入值非常大或非常小时,Sigmoid 函数的梯度接近于 0,这会导致在神经网络的深层中梯度更新非常缓慢。
  2. 非零中心化:Sigmoid 函数的输出不是以 0 为中心的,这可能会导致梯度更新过程中的数值不稳定。

函数实现

以下是使用 Python 语言实现 Sigmoid 函数的代码:

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 示例使用
x = np.array([-1, 0, 1])
print("Sigmoid values:", sigmoid(x))

这段代码首先导入了 NumPy 库,用于处理数组和数学运算。sigmoid 函数接受一个数值或数组 x 作为输入,并返回应用 Sigmoid 函数后的输出。

应用

Sigmoid 函数常用于:

  • 二分类问题的输出层,作为激活函数。
  • 作为隐藏层的激活函数,尽管现在更常用的是 ReLU 系列函数。

了解 Sigmoid 函数的原理和实现对于深入理解神经网络的工作原理是非常重要的。

标签:输出,函数,sigmoid,梯度,Sigmoid,np,激活
From: https://blog.csdn.net/weixin_51455837/article/details/141888403

相关文章

  • 动态内存分配之realloc()函数详解
    目录一、函数简介二、函数原型参数返回值三、函数实现(伪代码)3.1.简化的realloc实现逻辑3.2.伪代码示例四、使用场景4.1.动态数组大小调整4.2.动态字符串大小调整4.3.内存优化4.4.复杂数据结构的内存管理4.5.跨函数内存管理4.6.灵活的内存分配策略五、......
  • Python程序:递归实现阶乘函数的优化与代码解读
    一、引言阶乘(Factorial)在数学和计算机科学中是一个常见的概念,它表示一个正整数的所有正整数的乘积。阶乘的定义如下:n!=n×(n−1)×(n−2)×…×1其中,0!定义为1。本文将以递归方式实现阶乘函数,并对代码进行优化与解释。二、原始代码首先来看一个简单的递归实现阶乘的P......
  • C++成员变量的new操作不应该放在构造函数中
    C++成员变量的new操作不应该放在构造函数中:理由如下:https://blog.csdn.net/lmb1612977696/article/details/77850378#:~:text=C++%E7%B1%BB%E4%B8%AD%E7%9A%84构造函数中尽量不要有new的操作,new的操作可以定义一个Init()来单独处理,代码如下:1classTest{2public:3......
  • 虚拟机下载安装 -> XP系统安装激活
    1.VMware软件1.微信公众号“软件管家”的电脑系统,下载安装VMware软件;2.新建虚拟机,导入XP系统的镜像文件,不输入产品密钥。2.windowsxp系统激活1. win+r,输入regedit,打开注册表;2.Hkey_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\WPAEvents\ 目录下;3......
  • QUOTENAME 函数
    QUOTENAME是SQLServer中的一个内置函数,用于为字符串加上指定的定界符(默认为方括号[]),以便在查询中引用数据库对象名称或其他字符串。该函数非常有用,特别是在处理数据库对象名称(如表名、列名)包含特殊字符或保留字时。语法sqlCopycodeQUOTENAME(string,[delimiter])......
  • php Semaphore 函数 信号量
    1一些理论基础:信号量:又称为信号灯、旗语用来解决进程(线程同步的问题),类似于一把锁,访问前获取锁(获取不到则等待),访问后释放锁。临界资源:每次仅允许一个进程访问的资源。临界区:每个进程中访问临界资源的那段代码叫临界区进程互斥:两个或以上的进程不能同时进入关于同一组共享变量......
  • 部分库函数及其模拟
     前言:当我们学习c/c++库函数的时候,我们可以用网站cplusplus.com-TheC++ResourcesNetwork来进行查阅,学习。 库函数:1.字符串函数字符串函数一般要用到头文件:<string.h> 1.1求字符串长度strlensize_tstrlen(constchar*str);1.首先,字符串是以\0来......
  • 函数的递归(初学)
    目录递归概念 递归例子 例1:阶乘计算例2:按顺序打印每一位 例3:运行时堆栈 递归误区递归概念//递归就是函数自己调用自己#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(){ printf("hehe"); main(); return0;}//陷入了死循环 递归例子 ......
  • 函数的力量:掌握Python中的“返回值”艺术
    引言在实际开发过程中,函数的返回值扮演着极其重要的角色。它不仅能够简化代码结构,提高代码复用性,还能帮助我们构建更加灵活高效的程序架构。通过合理设计函数的返回值,可以轻松实现数据处理、状态传递等多种功能。接下来,让我们一起深入了解如何定义与使用Python函数中的返回值。基......
  • cuda编程[1]:一二三维网格和块的核函数
    目录前言核函数一维二维三维结果分析前言所有的代码下载链接:code。以下代码展示了如何在CUDA中打印网格和线程的索引信息。代码包括一维、二维和三维的网格和块的设置,并定义了多个内核函数来输出当前的索引信息。核函数打印线程索引__global__voidprint_idx_kerne......