代码编织梦想

在这里插入图片描述

深度学习的发展历史与现状

深度学习的发展历史可以追溯到上世纪40年代,当时神经科学家Warren McCulloch和Walter Pitts提出了第一个神经网络模型,开启了人工神经网络的研究历程。随后,在1958年,计算机科学家Rosenblatt发明了感知器(Perceptron),这是一种单层神经网络,能够通过训练学习将输入数据分为两类。然而,感知器的功能非常有限,只能处理线性可分问题,对于非线性问题则无能为力。

直到上世纪80年代,深度学习才迎来了重要的突破。1986年,Rumelhart和Hinton等人提出了反向传播算法(Backpropagation),该算法可以有效地训练多层神经网络,从而解决了非线性问题的处理。随后,深度学习在各个领域得到了广泛的应用,包括语音识别、图像识别、自然语言处理等。

进入21世纪,随着大数据和计算机硬件的快速发展,深度学习得到了进一步的推动。2006年,Hinton等人提出了“深度学习”的概念,并指出了通过逐层预训练可以有效地训练深度神经网络。随后,深度学习在图像识别、语音识别、自然语言处理等领域取得了巨大的成功,成为了人工智能领域的重要分支。

目前,深度学习已经成为人工智能领域最热门的研究方向之一,各种深度学习模型和算法层出不穷。深度学习在各个领域都有着广泛的应用,如计算机视觉、自然语言处理、医疗影像分析、金融风控等。同时,深度学习也面临着一些挑战,如模型的可解释性、鲁棒性等问题,这些问题也是当前研究的热点和难点。

神经网络的基本原理

在这里插入图片描述

前向传播与反向传播算法

  1. 前向传播(Forward Propagation)
    原理:
    前向传播是神经网络中数据从输入层到输出层的传递过程。简单来说,就是根据当前网络的权重和偏置,计算每一层的输出,直到得到最终的输出。

步骤:

输入层:将原始数据输入到神经网络中。
隐藏层:每一层的神经元接收前一层神经元的输出作为输入,并使用激活函数进行转换。计算公式为:z = wx + b,其中z是加权输入,w是权重,x是输入,b是偏置。然后,通过激活函数f得到该层的输出:a = f(z)。
输出层:最后一层神经元的输出即为整个神经网络的输出。
应用:
前向传播在深度学习中的应用主要是用于预测或分类任务。给定输入数据,神经网络通过前向传播得到输出结果,与真实标签进行比较,从而评估模型的性能。

  1. 反向传播(Backpropagation)
    原理:
    反向传播是神经网络中用于更新权重和偏置的过程。它根据损失函数(如均方误差、交叉熵等)计算输出层的误差,然后将误差反向传播到每一层,根据误差调整权重和偏置,以减小模型在训练数据上的损失。

步骤:

计算输出层误差:根据损失函数计算输出层的误差,如均方误差或交叉熵误差。
反向传播误差:将误差反向传播到隐藏层,计算每一层神经元的误差。
更新权重和偏置:根据每一层神经元的误差和输入,计算权重和偏置的梯度,并使用优化算法(如梯度下降)更新权重和偏置。
应用:
反向传播在深度学习中的应用主要是用于训练模型。通过不断迭代前向传播和反向传播,神经网络能够学习到从输入到输出的映射关系,从而实现对新数据的预测或分类。

常见的激活函数与优化算法

常见的激活函数
Sigmoid
公式:σ(x) = 1 / (1 + e^(-x))
特点:将输入压缩到0和1之间,适合二分类问题的输出层。但存在梯度消失问题,当输入值非常大或非常小时,梯度接近于0,这可能导致在训练深层网络时,梯度无法有效回传。
ReLU (Rectified Linear Unit)
公式:f(x) = max(0, x)
特点:对于正输入,输出等于输入;对于负输入,输出为0。计算速度快,解决了梯度消失问题,但可能会导致神经元“坏死”。
Leaky ReLU
公式:f(x) = α * x for x < 0, f(x) = x for x ≥ 0
特点:为ReLU的负输入值添加了一个小的非零斜率α,避免神经元完全坏死。
Tanh
公式:tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x))
特点:将输入压缩到-1和1之间,与Sigmoid类似,但输出范围更大。同样存在梯度消失问题。
Softmax
公式:σ(z)_j = e^(z_j) / Σ_k e^(z_k)
特点:常用于多分类问题的输出层,将输出转换为概率分布,所有输出值的和为1。
常见的优化算法
SGD (Stochastic Gradient Descent)
特点:每次迭代只使用一个样本来更新权重,更新速度快,但可能陷入局部最优解。
Mini-batch Gradient Descent
特点:每次迭代使用一小批样本来更新权重,平衡了计算速度和收敛稳定性。
Momentum
特点:引入动量项,加速SGD在相关方向上的收敛,并抑制振荡。
RMSprop
特点:自适应地调整每个参数的学习率,根据梯度的历史平均值来调整学习率。
Adam (Adaptive Moment Estimation)
特点:结合了Momentum和RMSprop的思想,使用梯度的一阶矩(平均值)和二阶矩(未中心化的方差)来动态调整每个参数的学习率。
Adagrad
特点:为每个参数维护一个累积梯度平方的缓存,并根据这个缓存来调整学习率,适合处理稀疏数据。
Adamax
特点:是Adam的一个变种,使用无穷范数来替代RMSprop中的平方范数。
以上就是一些常见的激活函数和优化算法的介绍。它们在不同的神经网络架构和任务中各有优劣,需要根据实际情况选择合适的激活函数和优化算法。

深度学习框架(如TensorFlow或PyTorch)进行基础操作

我们将展示如何在PyTorch中执行一些基础操作。首先,确保你已经安装了PyTorch:

import torch  
  
# 创建一个张量  
tensor = torch.tensor([1, 2, 3, 4, 5])  
print("Tensor:", tensor)  
  
# 执行计算  
result = tensor + tensor  
print("Result of addition:", result)  
  
# 创建一个变量(在PyTorch中,变量通常是张量,并且具有`requires_grad`属性)  
variable = torch.tensor([1.0, 2.0], requires_grad=True)  
print("Initial value of variable:", variable)  
  
# 定义一个简单的损失函数和优化器  
loss_fn = torch.nn.MSELoss()  
optimizer = torch.optim.SGD(variable, lr=0.1)  
  
# 进行梯度下降优化  
for _ in range(10):  
    optimizer.zero_grad()  # 清空梯度  
    loss = loss_fn(variable, torch.tensor([3.0, 4.0]))  # 计算损失  
    loss.backward()  # 反向传播计算梯度  
    optimizer.step()  # 更新变量  
    print("Updated value of variable:", variable.data)

这些示例展示了如何在TensorFlow和PyTorch中创建张量、执行基本计算、定义变量和进行简单的优化。这些基础操作对于理解深度学习框架的基本用法非常重要。
在这里插入图片描述

均源自AI对话收集整理
仅用作学习笔记,持续…

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48134870/article/details/136351360

pytorch框架下使用gemma-爱代码爱编程

Gemma介绍 Gemma是谷歌发布的一款开源大语言模型,并且Gemma是开源大模型的SOTA,超越了Meta的LLaMa2。综合来说,Gemma有以下几个特点: 坚实的模型基础:Gemma使用与谷歌更强大的人工智能模型Gemini相同的研究和技术。这一共同的基础确保了Gemma建立在一个强大的基础上,并具有强大的能力潜力。 轻便易用:与体型较大的G

人工智能 — 边缘提取-爱代码爱编程

目录 一、边缘提取1、边缘2、边缘提取3、高频信号和低频信号4、步骤5、原理 二、图像锐化和图像平滑1、图像锐化2、图像平滑 三、Prewitt 算子四、Sobel 算子五、Canny 边缘检测算法

诉诸存储和传输的编码-爱代码爱编程

用脑补而不是重传对有损传输进行纠错 后,有朋友评论: 可现代的图像压缩、数据编码已经很大程度上把可以脑补的空间从传输载荷中沥干了——完美编码下所传输的数据是近乎噪声的没有任何特点的分布。在这个框架下,被压缩的载荷如果

superhuman 邮箱的替代方案是什么?-爱代码爱编程

Superhuman是一个极好的人工智能工具在电子邮件助理领域。根据SimilarWeb的最新统计,它在全球网站排名中排名第21980位,月访问量为1751798。然而市场上还有许多其他优秀的选择。为了帮助您找到最适合您需求的解决方案,我们为您精心挑选了10种Superhuman 邮箱替代方案:Zoho Mail、Super Send、Canary M

什么是生成式人工智能?-爱代码爱编程

近年来,人工智能取得了重大进展,其中发展迅速的领域之一就是生成式人工智能。生成式人工智能是人工智能和深度学习的一个子领域,主要使用机器学习技 术根据现有数据训练算法和模型,生成诸如图像、文本、音乐、视频等新内容。 要更好地理解人工智能、机器学习、深度学习和生成式人工智能之间的关系, 如果我们将人工智能视为基础,那么机器学习、深度学习和生成式人工智能就代表

《decoupling representation and classifier for long-爱代码爱编程

论文标题 《Decoupling Representation and Classifier for Long-Tailed Recognition》 用于长尾识别的解耦表示和分类器 作者 Bingyi Kang、S

ai/ml协同仿真,将更多可能性变成现实-爱代码爱编程

人工智能(AI)、机器学习(ML)和仿真彻底改变了人类处理和预测信息的方式,Ansys首席技术官Prith Banerjee博士‍在本文将为我们解释如何通过结合这些‍颠覆性‍的科学技术‍,‍帮助人们做出更好、更快的决策。   Prith Banerjee博士是Ansys首席技术官。Banerjee带领Ansys大力发展技术革新,并推动公司新一轮的创新

本届挑战赛冠军方案:基于llm的多场景智能运维-爱代码爱编程

本文介绍本届挑战赛冠军得主SRE-Copilot团队的参赛方案:基于LLM的多场景智能运维。 基础架构-SRE,负责字节跳动基础架构部门所有组件的SRE工作,沿着成本、稳定性、效率、服务四条主线,致力于打造高扩展、高可用的