首页 > 其他分享 >机器学习之神经网络Neural Network

机器学习之神经网络Neural Network

时间:2024-10-10 13:20:17浏览次数:3  
标签:输出 tanh Network sigmoid 函数 Neural 神经网络 神经元

第一部分:基本含义

神经网络(Neural Network)是一种模仿人脑神经元连接方式的机器学习模型,用于处理复杂的非线性问题。通过大量的参数和层级结构,神经网络可以学习数据中的特征,应用于分类、回归等任务。

机器学习和人类实现人生巅峰的例子对比:

如果把人比作神经网络,一次次摔倒就是反复训练,每一次的爬起,在绝望中寻找希望,都是为登上巅峰做准备。(失败乃成功之母)

神经网络和决策树之间的联系:

我们把上图旋转90度后:

        

神经网络可以看作是多个决策树的集合,或者多个简单模型的组合。不同层级的神经元会通过复杂的连接和权重共同作用,类似于多叉决策树的结构,逐层处理数据。

只不过:单个决策树是非参数模型,而神经网络是参数模型。

第二部分:神经网络核心思想和原理

(1)单个神经元模型(感知机)

x1​,x2​,...,xn​ 是输入的特征,每个输入特征都有相应的权重 w1,w2,...,wn。权重决定了该输入对神经元输出的重要性。

wx这些参数也可以转化为矩阵表示的形式:

因此,神经元模型本质上就是一个线性模型外侧套一个激活函数,有时也叫做感知器模型perceptron或者叫做感知机模型。

(2)神经网络(多层感知机MLP)

神经元是神经网络的基本构建单元,而神经网络是由大量神经元互相连接组成的一个系统。

一般来说,一个神经网络由3层组成,输入层隐藏层、和输出层。输入层接收原始数据,隐藏层通过神经元进行特征提取,输出层生成最终的预测或分类结果。

如果纯是线性,那么随着隐藏层个数的增加,所有的线性运算都可以回归到输入和输出这两个里面(矩阵运算);同时,层数也不是越多越好,有些时候,随着层数的增加,训练效果反而不好了,称为“退化”

为了防止上述问题的产生,我们就需要用到激活函数层。

(3)激活函数层

Step Function(阶跃函数):当输入大于等于 0 时输出 1,否则输出 0。

Sigmoid Function(Sigmoid 函数):在输入值较大时输出接近 1,较小时输出接近 0,输入在 0 附近时输出接近 0.5。

 ③tanh函数(sigmoid函数的优化版)

sigmoid在0.5这作为分类标准,收敛慢,而且还很有可能会出现梯度消失的情况,因此,出现了tanh函数:

tanh 函数可以通过对输入的 2 倍应用 sigmoid 函数,然后乘以 2 再减去 1 来实现。

tanh是在0这作为分类标准。而且tanh函数关于原点对称,而sigmoid函数全部图像都在x轴上面,就没有原点对称。

而且sigmoid和tanh的导数图像也不一样(峰值):

tanh函数能够解决sigmoid函数收敛慢的问题,但是它们的导数图像长相上比较像,因此tanh无法解决sigmoid梯度消失的问题。

④ReLU Function(ReLU 函数)(目前最好用的函数):当输入大于等于 0 时输出输入值本身,小于 0 时输出 0。(能够解决sigmoid和tanh梯度消失的问题)

同时由于relu函数是线性的,计算上比sigmoid和tanh要快,也就解决了sigmoid收敛慢的问题。

relu函数的缺点(死亡神经元问题):

也就是当输入持续为负的时候,那么结果一直都是0。

relu的变体:

⑤(单个神经元)激活函数层的具体位置

⑥将激活函数层应用到神经网络中

⑦为什么激活函数能够实现优化效果?他的意义何在

我们前面说过,激活函数的主要作用就是将线性输出转化为非线性,那为什么要这么做呢?

首先,我们用的这个神经网络是由多个神经元组成的,每一个神经元本质上又是一个线性方程,那多个线性方程在一块(如果不加激活层),效果将会是:

但是我们实际想要的可能是:

因为没有归于绝对的直线分类标准,全是直线的网络就很难真正拟合数据,而且直线越来越多就会造成模型退化问题,也就是(2)中提到的。

使用了激活函数之后,线的变化形式有很多了,这样模型的拟合能力就会大大提升,模型的表达能力更强了,也就能更好地反映数据真实的分类情况。

⑧如何选择激活函数

不要把各种激活函数串联到一个网络中使用,不然模型很可能难以收敛。

如果使用relu,小心设置学习率,如果死亡神经元过多,可以试试relu的变体。

尽量不要使用sigmoid,可以试试tanh.

(4)归一化层操作softmax层

经过了上述的激活函数,得到了经过非线性变换之后的数值,但是如果我们想要让数据更加的美观,比如将输出的数据能够映射到0~1这个范围,并且这些值的和为1(转化成概率分布的形式),那么我们就需要在最后再进行一次归一化操作。

再度更新优化神经网络流程图:

softmax函数和sigmoid函数的联系:

由于sigmoid的输出范围也是0~1,就跟softmax又非常相像了:

①二分类时,这两个一样

②sigmoid主要用于多标签分类(正确答案可能有多个)

③softmax函数主要用于但标签多分类问题(正确答案只有一个)

(5)损失函数的应用

由于上面我们经过softmax之后,输出的结果是以概率的形式,那么我们就可以用交叉熵损失函数,它的计算就是以概率为基础的,详细可见我博客:机器学习之损失函数大汇总~MSE+MAE+对数损失函数+交叉熵损失函数-CSDN博客

我们的最终目的就是最小化这个交叉熵损失函数,来评估并优化模型。

(6)反向传播

反向传播的核心是通过链式法则计算损失函数关于每个神经元参数(权重和偏置)的梯度。这个过程从输出层开始,逐层向后计算梯度,直到输入层。通过梯度下降法,更新各层的权重和偏置。

(7)不同的神经网络之间的核心差异

①三层网络结构的不同

②损失函数的类型有什么不同

③求解损失函数的过程有什么不同,梯度下降搜索策略上的差异

④对模型过拟合问题的解决方式不同

第三部分:神经网络的优缺点

(1)优点

①范围广

问题上:无论是监督学习,非监督学习,半监督学习,他都能适用

方式上:分类和回归也都能实现

数据上:所有数据都能用,都会转化成数值计算的形式

②效果好

泛化能力好(现在的gpt能够手动创作并输出以前从未见过的全新的文章),容错能力高(尽管某些神经元坏死了,但是仍然不影响输出结果)

③性能好

能够进行并行计算,cpu和gpu

(2)缺点

①训练难度大

参数选取很重要,否则很容易出现梯度消失和梯度爆炸,同时需要的样本数量比较多

②训练时间长        

③黑盒不可解释性

(3)神经网络的适用场景

①数据规模庞大,人工提取特征困难

②无需解释,只要结果

标签:输出,tanh,Network,sigmoid,函数,Neural,神经网络,神经元
From: https://blog.csdn.net/weixin_74009895/article/details/142761394

相关文章

  • Linux 网络管理-NetworkManager
    Linux网络管理-NetworkManagerNetworkManager教程https://wiki.archlinuxcn.org/wiki/NetworkManagernmcli命令https://ipcmen.com/nmclihttps://www.linuxcool.com/nmcliIP网络配置:https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/7/html/ne......
  • 深度学习:循环神经网络RNN
    目录一、神经网络的历程1.传统神经网络存在的问题2.提出一种新的神经网络二、RNN基本结构1.RNN基本结构2.RNN的独特结构3.RNN的局限性一、神经网络的历程1.传统神经网络存在的问题无法训练出具有顺序的数据。模型搭建时没有考虑数据上下之间的关系。因为传统神经网......
  • 霍普菲尔德(Hopfield)神经网络求解旅行商问题TSP,提供完整MATLAB代码,复制粘贴即可运行
    Hopfield神经网络是以美国物理学家约翰·霍普菲尔德(JohnHopfield)的名字命名的。他在1982年提出了这种类型的神经网络模型,因此通常被称为Hopfield网络。旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题,即在给定一组城市及城市之间的距离,找到一条遍历所有......
  • CS 259 Accelerating Convolutional Neural Network
    Fall2024CS259Lab1AcceleratingConvolutionalNeuralNetwork(CNN)onFPGAsusingMerlinCompilerDueOctober911:59pmDescriptionYourtaskistoacceleratethecomputationoftwolayersinaconvolutionalneuralnetwork(CNN)usingahigh-levelsynt......
  • CNN Explainer: 交互式可视化学习卷积神经网络
    cnn-explainerCNNExplainer简介卷积神经网络(ConvolutionalNeuralNetworks,CNNs)是深度学习领域最重要的模型之一,在计算机视觉等领域取得了巨大成功。然而,由于CNN的复杂结构和抽象概念,对于初学者和非专业人士来说,理解CNN的工作原理往往存在较大困难。为了解决这个问题,......
  • CAN(Controller Area Network)总线的仲裁机制
    CAN(ControllerAreaNetwork)总线的仲裁机制是其核心特性之一,它确保了在多节点环境中数据能够高效、公正地传输。以下是对CAN仲裁机制的详细解释和介绍:一、仲裁机制概述在CAN总线网络中,各个节点地位平等,没有固定的主节点或从节点之分。这种设计使得每个节点在需要时都可以试图......
  • 《神经网络》—— 循环神经网络RNN(Recurrent Neural Network)
    文章目录一、RNN简单介绍二、RNN基本结构1.隐藏中的计算2.输出层的计算3.循环三、RNN优缺点1.优点2.缺点一、RNN简单介绍循环神经网络(RecurrentNeuralNetwork,RNN)是一种用于处理序列数据的神经网络架构。与传统的前馈神经网络(FeedforwardNeuralNetwork......
  • RNN(循环神经网络)简介及应用
    一、引言在深度学习领域,神经网络被广泛应用于各种任务,从图像识别到语音合成。但对于序列数据处理的任务,如自然语言处理(NLP)、语音识别或时间序列预测等,传统的前馈神经网络(FeedforwardNeuralNetworks)显得力不从心。这是因为序列数据中存在着时间上的依赖关系,即序列中的每个元......
  • Error: There was a timeout while attempting to connect to the network at undefin
     trufflemigrate--networksepolia报错Error:Therewasatimeoutwhileattemptingtoconnecttothenetworkatundefined.Checktoseethatyourproviderisvalid.Ifyouhaveaslowinternetconnection,tryconfiguringalongertimeoutin......
  • SRGNN 基于图神经网络的会话推荐 推荐系统经典文章阅读
    本文主要介绍推荐系统中会话推荐经典的文章Session-basedRecommendationwithGraphNeuralNetworks,发布在2019年的AAAI上。前置知识会话推荐:基于当前基于用户当前会话(如浏览历史或点击序列)进行个性化推荐的技术,旨在为用户实时提供相关建议,尤其在缺乏长期用户信息的情况......