东莞网站设计教程北京自助企业建站模板
web/
2025/9/27 11:41:45/
文章来源:
东莞网站设计教程,北京自助企业建站模板,动漫制作必须会画画吗,腾讯网页游戏平台前文介绍
我们在前面了解到了线性回归模型#xff0c;其实我们可以把线性回归看成一个单个的神经元#xff0c;它实际上就完成了两个步骤 1.对输入的特征的加权求和 2.将结果通过传递函数#xff08;或者激活函数#xff09;输出
这里我们提到了传递函数#xff08;或者…前文介绍
我们在前面了解到了线性回归模型其实我们可以把线性回归看成一个单个的神经元它实际上就完成了两个步骤 1.对输入的特征的加权求和 2.将结果通过传递函数或者激活函数输出
这里我们提到了传递函数或者激活函数我们从线性回归的模型中可以看出在回归问题上输出并没有做激活仅仅是直接输出
单个神将元所完成的任务就是对所有输入的特征乘以权重w、加上偏置b。例如有3个特征分别为x1x2x3那么线性回归模型所做的就是对这些输入特征乘以权重w加上偏置b使用激活函数激活后然后输出 输出激活函数w1*x1w2*x2w3*x3b
激活函数
激活为了模拟生物大脑中神经元的工作原理大脑中神经元会对接收到的信号进行考察如果此信号满足一定条件神经元才会将信号往下输出繁殖就不往下传递了。激活函数的作用也类似激活会为网络带来非线性使得网络可以拟合非线性问题等更多复杂问题大大增强了网络的拟合能力。
神经网络的作用有哪些呢
引入非线性关系神经网络中的每一层都是由线性变换和激活函数组成的激活函数的非线性特性使得神经网络能够学习和表示更为复杂的函数关系。
解决梯度消失问题在深度神经网络中梯度消失问题是一个普遍存在的问题。激活函数的非线性特性可以使得梯度在反向传播时更容易传递从而缓解梯度消失问题。
去除对称性在神经网络中如果所有的神经元都使用相同的激活函数那么神经网络会出现对称性的问题。而使用不同的激活函数可以打破对称性使得神经网络可以更好地学习和表示不同的特征。
控制输出范围有些激活函数可以控制输出的范围例如sigmoid函数可以将输出限制在0到1之间tanh函数可以将输出限制在-1到1之间。这些函数可以使得神经网络更加稳定和鲁棒。
模块导入
import torch
import numpy as np
import matplotlib.pyplot as plt
from torch import nn
ReLU激活函数
ReLU也叫修正线性单元是目前应用最多的一个激活函数在当前大部分模型中都是用ReLU函数作为激活函数其公式如下
f(x)max(x,0)
ReLU激活函数的特点是如果输入是大于0的将其往后传递反之则输出0ReLU激活函数在实际应用中几乎是当前最受欢迎的激活函数它是大多数神经网络的默认选择在PyTorch中有内置的torch.relu()方法用来实现ReLU激活。
inputtorch.randn(2) # 生成随机数input
print(input)
outputtorch.relu(input) #对输入激活得到输出
print(output) 绘图展示
x np.linspace(-5, 5, 100)
y np.maximum(0, x)plt.plot(x, y)
plt.title(ReLU Activation Function)
plt.xlabel(x)
plt.ylabel(f(x))
plt.grid(True)
plt.show() Sigmoid激活函数
sigmoid函数的输出可以认为是一个是或者否的概率值常用来解决二分类问题
inputtorch.randn(2)
print(input)
outputtorch.sigmoid(input)
print(output)
number-1
for i in output:number1if i0.5:output[number]1else:output[number]0
print(output)
绘图展示
def sigmoid(x):return 1 / (1 np.exp(-x))x np.linspace(-5, 5, 100)
y sigmoid(x)plt.plot(x, y)
plt.title(Sigmoid Activation Function)
plt.xlabel(x)
plt.ylabel(f(x))
plt.grid(True)
plt.show() Tanh函数
其中心位置是0其输出为-1,1。Tanh激活函数的一个常见的使用场景是对生成模型的输出做激活从而使得输出规范为-1,1。PyTorch的内置函数torch.tanh()用来实现双曲正切激活函数
绘图展示
inputnp.linspace(-6, 6,100)
input_tensortorch.from_numpy(input)
outputtorch.tanh(input_tensor)
output_numpyoutput.numpy()
plt.plot(input,output_numpy)
plt.title(Tanh)
plt.xlabel(x)
plt.ylabel(y)
plt.grid(True)
plt.show() LeakyReLU激活函数
inputnp.linspace(-6,6,100)
input_tensortorch.tensor(input)
mnn.LeakyReLU(0) # 初始化LeakyReLU参数表示负轴部分的斜率
outputm(input_tensor)
output_numpyoutput.numpy()plt.plot(input,output_numpy)
plt.title(LeakyReLU)
plt.xlabel(x)
plt.ylabel(y)
plt.grid(True)
plt.show()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82742.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!