【七篇文章从零速通transformer】01 从零开始解密神经网络:深度学习基础全解析

news/2024/11/14 12:04:19/
文章简介

本系列文章旨在帮助零基础的读者系统地掌握深度学习,最终能够理解 Transformer 架构。本篇文章是第一篇,我们将从深度学习最核心的知识——神经网络——开始讲解,深入浅出地带你了解神经网络的结构、如何让神经网络工作,激活函数、损失函数、优化器和反向传播等关键概念。这些内容是理解深度学习的基础,如果你完全没有编程或数学背景,也不用担心,文章中的例子和讲解都会尽可能简单易懂。


1. 什么是神经网络

深度学习中,神经网络是我们用来处理数据的模型,它模仿人脑的工作方式,能自动学习并识别数据中的模式。

神经网络的结构:输入层、隐藏层和输出层

我们可以把神经网络看作是一个“输入数据 -> 处理数据 -> 输出结果”的机器。它的结构主要分为三部分:

  1. 输入层(Input Layer):负责接收数据,比如一张图片的像素值,或者一段文字的编码。输入层只是“传递”数据到网络的下一层。
  2. 隐藏层(Hidden Layers):这里是神经网络真正处理数据的地方。隐藏层包含“神经元”,这些神经元会对输入数据做数学运算(加权求和,激活等),从中提取特征。网络的复杂性体现在隐藏层的数量和它们内部的结构上。
  3. 输出层(Output Layer):生成预测结果。对于分类问题,输出层的结果是一个概率分布,告诉我们输入属于每个类别的可能性。
神经网络的工作方式

神经网络的工作方式其实很像“加法器”,它把输入的数据“加起来”,然后决定输出什么。

例如,假设输入层有 3 个值(像素值),我们可以简单地给它们加上不同的权重(也就是加权求和)。每个输入会被乘以一个权重值,再加上一个偏置(相当于一个修正值),最后再通过激活函数转化为输出。

图示

css输入层          隐藏层         输出层
[x1, x2, x3]  -->  [h1, h2]  -->  [y1, y2]

在隐藏层中,每个神经元接收输入数据,通过一系列数学运算产生输出,这样一步步往后推,最终输出层给出结果。


2. 激活函数:让神经网络更强大

如果我们只是简单地把输入“加权求和”,这会限制神经网络的表现能力,因为这样的模型是“线性的”,无法处理复杂的问题。激活函数的作用就是引入“非线性”,让网络可以解决复杂问题,比如识别图片中的猫和狗。

常见的激活函数
  1. ReLU(Rectified Linear Unit)
    ReLU 是目前最常用的激活函数。它的计算非常简单:如果输入小于 0,输出为 0;如果输入大于 0,输出为原值。

    例子

    • 输入:-2,输出:0
    • 输入:3,输出:3

    公式:f(x) = max(0, x)
    它可以帮助神经网络学习更快,并且避免一些计算上的问题。

  2. Sigmoid
    Sigmoid 会把输入压缩到 0 和 1 之间。你可以把它想象成一个“开关”,输入越大,结果越接近 1,输入越小,结果越接近 0。

    公式:f(x) = 1 / (1 + exp(-x))
    这意味着输入越大,输出越接近 1;输入越小,输出越接近 0。Sigmoid 常用于二分类问题(例如,判断一封邮件是否是垃圾邮件)。

  3. Tanh(双曲正切函数)
    Tanh 和 Sigmoid 类似,不过它的输出范围是 -1 到 1,输入越大,输出接近 1;输入越小,输出接近 -1。它在需要处理正负值的任务中比较常用。

    公式:f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))

激活函数如何帮助神经网络

激活函数通过将线性输入转换为非线性输出,赋予神经网络


http://www.ppmy.cn/news/1527526.html

相关文章

Router安装以及导入

安装 本文适合Vue3的项目使用 安装vue-router4 npm install vue-router4在src目录下创建router的文件夹,并新建一个index.js在index.js中导入vue-router,并定义其实例 import { createRouter, createWebHistory } from vue-router//在其中定义路由 c…

[网络]TCP/IP协议 之 TCP协议的核心机制(2)

文章目录 TCP核心机制1. 确认应答2. 超时重传3. 连接管理三次握手四次挥手 4. 滑动窗口5. 流量控制6. 拥塞控制7. 延时应答8. 捎带应答9. 粘包问题10. 异常情况 TCP核心机制 1. 确认应答 (上篇) 2. 超时重传 (上篇) 3. 连接管理 建立连接的流程: 三次握手 断开连接的流程…

3本SCI/SSCI期刊更名,9月WOS更新!速看!

SCI/SSCI期刊目录9月份已更新!快来查收最新动态!如有相关领域作者有意投稿,可作为重点关注! ​ 期刊动态 2024年9月科睿唯安期刊目录更新 2024年9月18日,科睿唯安更新了WOS期刊目录,此次更新&#xff0c…

OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性

可视化的管控平台,对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说,是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台,为用户提供了全面的数据库可…

RocketMQ出现The broker does not support consumer to filter message by SQL92

在使用RocketMQ使用SQL过滤消息的时候,出现下面错误 原因是我们的配置文件没有开启SQL过滤功能,我们需要在每个配置文件中添加下面命令 #开启过滤消息时支持SQL92标准 enablePropertyFiltertrue接着我们重启namesrv与broker服务就解决问题 # 1.进入bi…

matlab边缘点提取函数

1、边缘提取 matlab自带点云边缘提取函数,用于搜索点云边界,其核心是alpha shapes算法。alpha shapes提取边缘点,主要是依据滚动圆绕点云进行旋转,实现边缘检测,原理如下图所示。具体原理及效果,可以参考之前我写的博客:基于alpha shapes的边缘点提取(matlab)-CSDN博客…

QT之QML从入门到精通(第三章)

QML-Property 关于属性的设置 MyRectangle.qml import QtQuick 2.12 import QtQuick.Window 2.12 //2.15 import QtQuick.Controls 2.12 //可以引入别的控件 import Qt.labs.folderlistmodel 2.12 import Qt.labs.platform 1.0 as PlatformRectangle {id:borderRectrequired…

【FastAPI】实现服务器向客户端发送SSE(Server-Sent Events)广播

在FastAPI中实现服务器向客户端发送SSE(Server-Sent Events)广播,可以通过以下步骤实现。SSE是一种服务器推送技术,允许服务器发送实时数据到客户端,通常用于创建实时更新的应用程序。 1. 安装必要的依赖 首先&#…