深度学习激活函数

简介: 深度学习激活函数

1 分类

人在思考的过程中,往往不会产生精确的数值估计,而常做的事情是分类

但是这种阶跃函数就不能拟合出一条回归的直线了,这么画都感觉误差很大

这样时是不是好多了

那么怎么表示这样的关系呢?机制如你,想到分段函数

远的不说,这个大括号看着就很头疼,看着就是个不好处理的家伙。

我们接下来,看一种更为优雅的Logistic函数

不过我们一般会采用标准的Logistic函数,L=1,k=1,y0=0

可以看出来这个函数的计算结果始终在0到1之间,他的名字也暗示了这一点:很适合做逻辑判断,即分类。

知识补充:

此时这里函数关系为:

2 函数求导进行求解出最小代价函数

接下来,我们按照之前的方法,分别e对w、b求偏导,然后合成:

补充Logistic函数求导

理解复合函数求导中从外到内的这一过程,这有助于我们后续理解神经网络的精髓:

3 代码实现

豆豆数据集模拟:dataset.py

import numpy as np
def get_beans(counts):
  xs = np.random.rand(counts)
  xs = np.sort(xs)
  ys = np.zeros(counts)
  for i in range(counts):
    x = xs[i]
    yi = 0.7*x+(0.5-np.random.rand())/50+0.5
    if yi > 0.8:
      ys[i] = 1
  return xs,ys

豆豆毒性分布如下:

加入激活函数后的梯度随机下降算法:activation.py

import dataset
import matplotlib.pyplot as plt
import numpy as np
# 豆豆数量m
m = 100
xs, ys = dataset.get_beans(m)
# 配置图像
plt.title("Size-Toxicity Function", fontsize=12)
plt.xlabel("Bean Size")
plt.ylabel("Toxicity")
plt.scatter(xs, ys)
w = 0.1
b = 0.1
z = w * xs + b
a = 1 / (1 + np.exp(-z)) # 加入激活函数
plt.plot(xs, a)
plt.show()
# alpha为学习率
alpha = 0.01
# 训练5000次
for _ in range(5000):
    for i in range(100):
        x = xs[i]
        y = ys[i]
        # 三个函数
        z = w * x + b
        a = 1 / (1 + np.exp(-z))
        e = (y - a) ** 2
        # 对w和b求偏导
        deda = -2 * (y - a)
        dadz = a * (1 - a)
        dzdw = x
        dzdb = 1
        dedw = deda * dadz * dzdw
        dedb = deda * dadz * dzdb
        w = w - alpha * dedw
        b = b - alpha * dedb
    if _ % 100 == 0:
        # 绘制动态
        plt.clf()  ## 清空窗口
        plt.scatter(xs, ys)
        z = w * xs + b
        a = 1 / (1 + np.exp(-z))  # 加入激活函数
        plt.xlim(0, 1)
        plt.ylim(0, 1.2)
        plt.plot(xs, a)
        plt.pause(0.01)  # 暂停0.01秒

f5045a5cd2ca44e9ad3abfb8ad918084.png


目录
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习Pytorch-Tensor函数
深度学习Pytorch-Tensor函数
76 0
|
28天前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
107 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
3月前
|
机器学习/深度学习 算法
|
5月前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
59 3
|
5月前
|
机器学习/深度学习 人工智能 Serverless
【深度学习】神经网络中的激活函数:释放非线性的力量
【深度学习】神经网络中的激活函数:释放非线性的力量
143 1
|
6月前
|
机器学习/深度学习 数据可视化 Python
|
6月前
|
机器学习/深度学习 人工智能 测试技术
深度学习中损失函数和激活函数的选择
深度学习中损失函数和激活函数的选择
56 0
|
6月前
|
机器学习/深度学习 数据可视化 Python
【一起撸个深度学习框架】6 折与曲的相会——激活函数(1)
6 折与曲的相会——激活函数🍈 1 前言 在上一节,我们实现了一个“自适应线性单元”,不断地将一个一次函数的输入和输出“喂”给它,它就可以自动地找到一次函数y = w x + b y=wx+by=wx+b中合适的参数值w和b。计算图通过前向传播和反向传播,初步展现了它的神奇之处。
68 0
|
6月前
|
机器学习/深度学习 存储 自然语言处理
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
一文带你了解【深度学习】中CNN、RNN、LSTM、DBN等神经网络(图文解释 包括各种激活函数)
246 0

热门文章

最新文章