当前位置: 首页 > news >正文

深度学习基础(一)神经网络基本原理

之前的章节我们初步介绍了机器学习相关基础知识,目录如下:

机器学习基础(一)理解机器学习的本质-CSDN博客

机器学习基础(二)监督与非监督学习-CSDN博客


机器学习基础(四)非监督学习的进阶探索-CSDN博客机器学习基础(三)监督学习的进阶探索-CSDN博客

机器学习基础(四)非监督学习的进阶探索-CSDN博客

机器学习基础(五)监督与非监督学习的结合-CSDN博客

机器学习基础(六)TensorFlow与PyTorch-CSDN博客

        从这一节开始,我们开始介绍了深度学习相关基础知识。请注意,本节代码示例旨在说明概念,并不是实际应用中的最佳选择。在实际应用中,通常会使用更高级的库和框架,如TensorFlow或PyTorch,来构建和训练神经网络。

目录

与机器学习比较

深度学习简介

两者的关系

从机器学习到深度学习

深度学习的兴起

机器学习与深度学习的选择

神经网络

神经元模型        

生物神经元概述

人工神经元

神经元模型代码示例

网络结构

层次结构

常见网络结构

前向传播

计算过程

前向传播代码示例

反向传播

梯度下降

反向传播代码示例

实际应用案例


与机器学习比较

深度学习简介

        深度学习是机器学习中的一个子集,它通过使用称为神经网络的结构,特别是深层神经网络,来模拟人类大脑处理信息的方式。深度学习的“深度”指的是网络中层的数量,这些层可以自动并且有效地学习数据的多层次特征表示。深度学习在许多复杂的任务中表现出了卓越的性能,如图像和语音识别、自然语言处理和无人驾驶汽车技术。

两者的关系

        机器学习和深度学习的关系可以通过俄罗斯套娃来形象地描述:深度学习是机器学习的一个子集,而机器学习本身又是人工智能的子集。所有深度学习都是机器学习,但并非所有机器学习都是深度学习。

从机器学习到深度学习

        传统的机器学习模型依赖于手工提取的特征和数据表示,这要求领域专家深入了解问题。相比之下,深度学习模型通过足够深的神经网络自动学习特征表示,减少了对领域知识的依赖。这种自动特征学习使深度学习在处理复杂和高维数据时,如图像、声音和文本,表现出了显著的优势。

深度学习的兴起

        深度学习之所以能够取得突破性的进展,归功于以下几个关键因素:大量的数据集、强大的计算能力和算法的创新。大数据的可用性为深度学习模型的训练提供了丰富的“经验”,而GPU和其他专用硬件的发展则显著加速了这些模型的训练过程。此外,算法上的创新,如卷积神经网络(CNN)和长短期记忆网络(LSTM),为特定类型的数据和任务提供了高效的模型架构。

机器学习与深度学习的选择

        尽管深度学习在许多任务上取得了巨大成功,但这并不意味着它适用于所有问题。在某些情况下,传统的机器学习算法(如决策树、随机森林和支持向量机)可能更加有效和适合。选择使用机器学习还是深度学习取决于多个因素,包括数据的复杂性、任务的性质、可用的计算资源和所需的准确性。

神经网络

        在人工智能领域,神经网络技术模仿人脑的处理方式,已经成为最令人兴奋的进步之一。这种技术的应用范围从简单的日常任务自动化到复杂的决策过程和模式识别,涵盖了医学、金融、自动驾驶车辆等多个领域。神经网络的核心原理启发于我们对人脑工作机制的理解,通过模拟神经元之间的连接来处理和存储信息。

     

神经元模型        

生物神经元概述

        生物神经元是人脑中的基本单位,由细胞体、树突和轴突组成。树突接收来自其他神经元的信号,细胞体处理这些信号,轴突将处理后的信号传递给其他神经元。这种高效的信息传递机制激发了人工神经元的设计。

人工神经元

        人工神经元模仿生物神经元的功能,接收一组输入,通过加权和并应用激活函数处理这些输入,最后产生输出。这个过程可以用以下数学模型表示:

神经元模型代码示例

        这个简单的Python函数演示了一个基本的神经元模型,它接收一组输入和相应的权重,然后应用一个激活函数(这里使用Sigmoid函数)来计算输出。

import numpy as npdef sigmoid(x):"""Sigmoid激活函数"""return 1 / (1 + np.exp(-x))def neuron_output(weights, inputs):"""单个神经元的输出计算"""return sigmoid(np.dot(weights, inputs))

网络结构

        神经网络通过层次化的神经元组织起来,形成从简单到复杂的结构。

层次结构
  • 输入层:接收原始数据。
  • 隐藏层:一个或多个,进行数据加工和特征提取。
  • 输出层:产生最终结果。
常见网络结构
  • 前馈神经网络(FNN):数据单向流动,从输入层到输出层。
  • 卷积神经网络(CNN):特别适合处理图像数据。
  • 递归神经网络(RNN):处理序列数据,如时间序列或文本。

前向传播

        前向传播是数据在神经网络中从输入到输出的流动过程。每一层的输出都依赖于其输入、层内神经元的权重和偏置项,以及激活函数。这个过程可以通过层层计算实现,直到达到输出层。

计算过程
  1. 输入层:接收输入数据。
  2. 隐藏层:计算加权和,应用激活函数。
  3. 输出层:生成最终预测结果。

前向传播代码示例

        这个示例展示了如何在一个简单的神经网络中实现前向传播。这个网络包括输入层、一个隐藏层和输出层。

def forward_propagation(network, inputs):"""简单的前向传播实现"""activations = inputsfor layer in network:# 添加偏置项activations = np.dot(layer['weights'], activations) + layer['bias']# 应用激活函数activations = sigmoid(activations)return activations# 示例网络结构
network = [{"weights": np.array([0.2, 0.4, 0.6]), "bias": np.array([0.1])},  # 隐藏层{"weights": np.array([0.5, 0.6]), "bias": np.array([0.2])}        # 输出层
]# 输入向量
inputs = np.array([0.5, 0.3, 0.2])# 前向传播计算
output = forward_propagation(network, inputs)
print("Network output:", output)

反向传播

        反向传播是训练神经网络的核心机制,用于优化权重,以减少预测值和实际值之间的差异。这个过程涉及以下步骤:

  1. 计算误差:评估输出层的误差。
  2. 传播误差:将误差从输出层反向传递到输入层,途中更新每个神经元的权重。
梯度下降

        权重的更新依赖于梯度下降算法,该算法通过计算损失函数相对于每个权重的梯度来调整权重,以最小化误差。

反向传播代码示例

        反向传播是一个相对复杂的过程,涉及到计算损失函数相对于每个权重的梯度,并根据这些梯度更新权重。以下是一个简化的反向传播过程示例。

def backward_propagation(network, inputs, expected_output):"""简单的反向传播实现"""outputs = forward_propagation(network, inputs)error = expected_output - outputsfor i, layer in reversed(list(enumerate(network))):# 计算当前层的误差layer_error = error * outputs * (1.0 - outputs)error = np.dot(layer['weights'].T, layer_error)# 更新权重和偏置项layer['weights'] += layer_error * inputs.Tlayer['bias'] += layer_error# 假设的期望输出
expected_output = np.array([0.8])# 反向传播权重更新
backward_propagation(network, inputs, expected_output)

实际应用案例

        神经网络在众多领域内的应用案例展示了其强大的能力。在医疗领域,神经网络能够帮助诊断疾病和预测病情发展;在金融领域,它们用于风险管理和算法交易;在自动驾驶技术中,神经网络使车辆能够识别物体和做出决策。

        神经网络技术的未来前景广阔,随着研究的深入和计算能力的增强,它们将在解决更复杂问题和创造新的应用方面发挥更大的作用。

        神经网络作为人工智能领域的一个重要分支,其灵感来源于人类大脑的工作原理,已经证明了其在多个领域的巨大潜力。通过深入理解神经网络的基本原理和应用,我们可以更好地利用这项技术,推动社会和科技的进步。

下一节开始我们将进行卷积神经网络(CNN)的应用介绍讲解

深度学习基础(二)卷积神经网络(CNN)-CSDN博客文章浏览阅读2次。卷积神经网络(CNN)的应用领域广泛,尤其在图像处理方面,CNN已经成为了一种革命性的工具。本章将深入探讨CNN的架构、典型应用案例以及性能分析,旨在为读者提供一个全面的视角,理解CNN在图像处理中的核心作用及其背后的原理。https://blog.csdn.net/qq_52213943/article/details/136259197?spm=1001.2014.3001.5501-----------------

以上,欢迎点赞收藏、评论区交流

相关文章:

深度学习基础(一)神经网络基本原理

之前的章节我们初步介绍了机器学习相关基础知识,目录如下: 机器学习基础(一)理解机器学习的本质-CSDN博客 机器学习基础(二)监督与非监督学习-CSDN博客 机器学习基础(四)非监督学…...

2024年2月22日 - mis

rootyy3568-alip:/sys# ls /sys/class/gpio/gpio* -F /sys/class/gpio/gpio114 /sys/class/gpio/gpiochip511 /sys/class/gpio/gpiochip0 /sys/class/gpio/gpiochip64 /sys/class/gpio/gpiochip128 /sys/class/gpio/gpiochip96 /sys/class/gpio/gpiochip32符号表示该文…...

拼接 URL(C 语言)【字符串处理】

题目来自于博主算法大师的专栏:最新华为OD机试C卷AB卷OJ(CJavaJSPy) https://blog.csdn.net/banxia_frontend/category_12225173.html 题目 给定一个 url 前缀和 url 后缀 通过,分割 需要将其连接为一个完整的 url 如果前缀结尾和后缀开头都…...

故障排除:Failed to load SQL Modules into database Cluster

PostgreSQL 安装和故障排除 重新安装前的准备工作 在重新安装 PostgreSQL 之前,确保完成以下步骤: 重新卸载 PostgreSQL 并重启电脑。 删除以下目录: C:\Program Files\PostgreSQL\13C:\Users\admin\AppData\Roaming\pgadmin 重启安装过…...

【超详细】HIVE 日期函数(当前日期、时间戳转换、前一天日期等)

文章目录 相关文献常量:当前日期、时间戳前一天日期、后一天日期获取日期中的年、季度、月、周、日、小时、分、秒等时间戳转换时间戳 to 日期日期 to 时间戳 日期之间月、天数差 作者:小猪快跑 基础数学&计算数学,从事优化领域5年&#…...

[ffmpeg] x264 配置参数解析

背景 创建 x264 编码器后,其有一组默认的编码器配置参数,也可以根据需要修改参数,来满足编码要求。 具体参数 可修改的参数,比较多,这边只列举一些常用的。 获取可以配置的参数 方式1 查看 ffmpeg源码 libx264.c…...

GO语言基础总结

多态: 定义一个父类的指针(接口),然后把指针指向子类的实例,再调用这个父类的指针,然后子类的方法被调用了,这就是多态现象。 Golang 高阶 goroutine 。。。。。 channel channel的定义 …...

飞天使-linux操作的一些技巧与知识点7-devops

文章目录 简述devopsCICD 简述devops 让技术团队,运维,测试等团队实现一体式流程自动化 进阶版图 CICD 持续集成, 从编译,测试,发布的完成自动化流程 持续交付,包含持续集成,并且将项目部署…...

Sora:视频生成模型作为世界模拟器

我们探索了视频数据上生成模型的大规模训练。具体来说,我们在可变持续时间、分辨率和长宽比的视频和图像上联合训练文本条件扩散模型。我们利用了一个在视频和图像潜在码的时空块上操作的变压器架构。我们规模最大的模型 Sora 能够生成一分钟的高保真视频。我们的结…...

FairyGUI × Cocos Creator 3.x 使用方式

前言 上一篇文章 FariyGUI Cocos Creator 入门 简单介绍了FairyGUI,并且按照官方demo成功在Cocos Creator2.4.0上运行起来了。 当我今天使用Creator 3.x 再引入2.x的Lib时,发现出现了报错。 这篇文章将介绍如何在Creator 3.x上使用fgui。 引入 首先&…...

基于Java的养生健康管理系统

物质生活的丰富而使得人们已经不仅仅满足于吃饱而向着吃好、吃健康的方向阔步前进。生活方式的改变使人们在日常摄入了大量的营养却没有足够的运动进行消耗,因此而导致肥胖成为当前城市生活的主要标志,而高血压、糖尿病等慢性疾病也在偷偷吞噬着人们健康…...

Python课堂16——异常查找及处理

文章目录 前言一、异常是什么?二、异常处理1. 根据提示2. 捕获异常3.抛出异常——raise4.应用场景 总结 前言 我们在日常编写代码的时候,难免会遇到一些不可控的错误,这无疑会导致程序的终止,大大降低了程序的实用性,…...

任务书参考答案-模块1任务一

1.根据网络拓扑图所示,按照IP 地址规划表,对防火墙的名称、各接口IP 地址进行配置。共8 分,每错1 处(行)扣1 分,扣完为止。地址、安全域、接口(状态为UP)、名称都正确。 2.根据网络拓扑图所示,按照IP 地址规划表,对三层交换机的名称进行配置,创建VLAN 并将相应接口划…...

2023最新盲盒交友脱单系统源码

源码获取方式 搜一搜:万能工具箱合集 点击资源库直接进去获取源码即可 如果没看到就是待更新,会陆续更新上 或 源码软件库 最新盲盒交友脱单系统源码,纸条广场,单独抽取/连抽/同城抽取/高质量盒子 新增功能包括心动推荐&#xff…...

Half-Band filter(半带滤波器)

Half-Band filter 引言正文symmetric half-band filtersamplitude half-band filterspower half-band filters引言 今天看文章的时候遇到了一个名词,Half-Band filter,中文名称半带滤波器,特来记录一下。 正文 假设我们通过采样获取到的信号带宽为 f s f_s...

2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024)

【EI检索】2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024) 会议简介 我们很高兴邀请您参加将在三亚举行的2024年环境安全科学、材料工程和制造国际学术会议(ESSMEM 2024)。 ESSMEM2024将汇集世界各国和地区的研究人员&…...

常用路径规划算法简介及python程序

目录 1、前言2、D*算法2.1简介2.2优缺点2.2.1 优点2.2.2 缺点 2.3 python程序 3、A*算法3.1 优缺点:3.1.1 优点:3.1.2 缺点: 3.2 python程序 4、人工势场算法4.1优缺点4.1.1优点:4.1.2缺点: 4.2 python程序 5、Dijkstr…...

计算x的对数math.log(x)math.log(x, a)math.log2(x)math.log10(x)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算x的对数 math.log(x) math.log(x, a) math.log2(x) math.log10(x) [太阳]选择题 以下说法错误的是() import math print("【执行】e math.exp(1)") e …...

Golin 弱口令/漏洞/扫描/等保/基线核查的快速安全检查小工具

下载地址: 链接:https://pan.quark.cn/s/db6afba6de1f 主要功能 主机存活探测、漏洞扫描、子域名扫描、端口扫描、各类服务数据库爆破、poc扫描、xss扫描、webtitle探测、web指纹识别、web敏感信息泄露、web目录浏览、web文件下载、等保安全风险问题风险…...

【JavaEE】_HttpServlet类

目录 1. init方法 2. destory方法 3. service方法 4. servlet生命周期 前文已经提及到:servlet是tomcat提供的,用于操作HTTP协议的一组API,可以将这组API理解为HTTP服务器的框架; 编写一个servlet程序,往往都要继…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...