zoukankan      html  css  js  c++  java
  • 鱼书学习笔记:激活函数

    在感知机中,神经元节点只有x和y

    例如:

    (1)当b+w1x1+w2x2<=0, y=0

    (2)当b+w1x1+w2x2>0, y=1

    其中,x1x2都是感知机输入层,w1w2则是输入层到输出层信号的权重,再经过参数b的偏置后,根据是否大于0输出二元信号y=0或y=1

    在这里,假如设定a=b+w1x1+w2x2,y=h(a),则原感知机的计算过程就可以描述为两步:

    (1)对输入x1,x2,w1,w2和b求和后得到a

    (2)计算y=h(a)

    其中,y=h(a)的计算步骤就被称作激活函数

    激活函数的分类

    预定义:h(x)表示隐藏层激活函数,σ(x)表示输出层激活函数,np指的是python的numpy数值计算包

    1.恒等函数

    函数式:σ(x) = x

    应用:回归问题

    代码:

    def identity_function(x)
        return x

    2.阶跃函数(也就是例子中的二元信号激活函数)

    函数式:①h(x) = 0 (x <=0);②h(x) = 1 (x > 0)

    应用:感知机

    代码:

    def step_function(x):
        return np.array(x > 0, dtype = np.int)

    因为np.array(x>0)输出的是布尔值,但是我们想要的阶跃函数是会输出int型0或1的函数,因此需要指定dtype = np.int

    3.sigmoid函数

    函数式:h(x)/σ(x) = 1 / 1+exp(-x)

    应用:二元分类问题

    代码:

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

    4.softmax函数

    函数式:σ(x) = exp(ax) / Σni=1exp(ai)

    应用:多元分类问题

    代码:

    def softmax(a):
        c = np.max(a)
        exp_a = np.exp(a - c) # 防止溢出
        sum_exp_a = np.sum(exp_a)
        y = exp_a / sum_exp_a
    
        return y

    5.ReLU(Rectified Linear Unit)函数

    函数式:①h(x) = x (x > 0);②h(x) = 0 (x <= 0)

    应用:略

    代码:

    def relu(x):
        return np.maximum(0, x)
  • 相关阅读:
    使用VMware 15 安装虚拟机和使用CentOS 8
    .Net工具类--表达式目录树解析DataReader和DataTable
    .Net 获取当前周是第几周
    使用Net Mail发送邮件
    ASP.NET Core 中的 Razor 文件编译
    Sql去重一些技巧
    手动实现一个简单的IOC容器
    Portswigger-web-security-academy:OAth authentication vulnerable
    Portswigger-web-security-academy:ssrf
    Portswigger-web-security-academy:os command injection
  • 原文地址:https://www.cnblogs.com/J14nWe1/p/14555527.html
Copyright © 2011-2022 走看看