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

【深度学习】最强算法之:人工神经网络(ANN)

人工神经网络ANN

  • 1、引言
  • 2、人工神经网络(ANN)
    • 2.1 定义
      • 2.1.1 定义
      • 2.1.2 应用场景
    • 2.2 核心原理
    • 2.3 实现方式
    • 2.4 算法公式
    • 2.5 代码示例
  • 3、总结

1、引言

小屌丝:鱼哥,看新闻没?
小鱼:新闻天天看,啥事大惊小怪的。
小屌丝:就是,YL总统的事情
小鱼:…你关心的可真够远的啊。
小屌丝:这很震惊的啊
小鱼:你啊, 先关心关心你的深度学习领域知识吧。
小屌丝:额… 这…
小鱼:ANN 了解吗?
小屌丝:不了解
小鱼:KNN了解吗?
小屌丝:不了解
小鱼:你看,这都不了解, 还不赶紧学习学习。
小屌丝:哦,好哦。
小屌丝:不对,这总感觉哪里怪怪的。
小鱼:没有,你赶紧学习吧
小屌丝:这… 啥情况
在这里插入图片描述

2、人工神经网络(ANN)

2.1 定义

2.1.1 定义

人工神经网络是由大量的节点(或称为“神经元”)组成的网络结构,这些节点之间通过“突触”相互连接。

每个神经元可以接收输入,对输入进行加权和,然后通过一个非线性激活函数生成输出。

通过这种方式,ANN能够捕捉和表示复杂的输入输出关系。

2.1.2 应用场景

ANN应用广泛,包括但不限于以下几个领域:

  • 图像识别和处理:如人脸识别、物体检测。
  • 语音识别:如智能助手的语音命令解析。
  • 自然语言处理:如机器翻译、情感分析。
  • 预测模型:如股票市场预测、天气预报。
  • 游戏和仿真:如自动驾驶汽车的模拟训练。

2.2 核心原理

ANN的核心原理基于“学习”,即通过调整网络中的突触权重来最小化模型输出和实际输出之间的误差。

这一过程通常通过一个叫做反向传播(Backpropagation)的算法来完成,配合梯度下降(Gradient Descent)或其变体进行权重的优化更新

2.3 实现方式

实现ANN通常需要以下几个步骤:

  • 初始化网络:设计网络结构(输入层、隐藏层、输出层的节点数)并随机初始化权重。
  • 前向传播:输入数据在网络中前向传递,每个节点计算其输出。
  • 计算损失:根据网络输出和实际值计算损失函数。
  • 反向传播:根据损失函数计算每个权重的梯度,并更新权重。
  • 重复2-4步骤:直到满足终止条件(如迭代次数、误差阈值等)。
    在这里插入图片描述

2.4 算法公式

一个基本的ANN模型,其输出 ( y ) (y) (y)可以表示为: [ y = f ( ∑ i = 1 n w i ⋅ x i + b ) ] [y = f(\sum_{i=1}^{n} w_i \cdot x_i + b)] [y=f(i=1nwixi+b)]
其中, ( w i ) (w_i) (wi)是权重, ( x i ) (x_i) (xi)是输入, ( b ) (b) (b)是偏置项, ( f ) (f) (f)是激活函数。

2.5 代码示例

# -*- coding:utf-8 -*-
# @Time   : 2024-04-05
# @Author : Carl_DJ# 导入必要的库
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical# 生成模拟数据
# 二分类问题
x_train = np.random.random((1000, 20))  # 训练数据:1000个样本,每个样本20个特征
y_train = np.random.randint(2, size=(1000, 1))  # 训练标签:1000个样本的标签(0或1)
y_train = to_categorical(y_train)  # 将标签转换为分类编码# 定义模型
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=20))  # 第一层密集连接层,有64个神经元,激活函数为ReLU
model.add(Dense(64, activation='relu'))  # 第二层密集连接层,有64个神经元,激活函数为ReLU
model.add(Dense(2, activation='softmax'))  # 输出层,有2个神经元对应两个类别,使用softmax激活函数# 编译模型
model.compile(optimizer='adam',  # 优化器使用Adamloss='categorical_crossentropy',  # 损失函数使用分类交叉熵metrics=['accuracy'])  # 评估模型性能的指标使用准确率# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=32)  # 训练模型,迭代10次,每批次32个样本# 模型总结
model.summary()

解析

  • 导入库:首先,我们导入了必要的库,包括numpy用于数据操作,keras中的Sequential模型构建ANN,以及Dense用于构建密集连接层。

  • 生成模拟数据:为了简化,这里我们生成了一些随机数据作为训练数据和标签。实际应用中,这些数据将来自于真实的数据集。

  • 定义模型:使用Sequential模型顺序堆叠各层。模型的第一层需要指定input_dim,即输入数据的维度。接下来添加了两个密集连接层,每层都使用ReLU激活函数。最后,输出层的神经元数量应与分类任务的类别数量相匹配,在本例中为2,使用softmax函数进行激活以进行分类。

  • 编译模型:在编译模型时,我们指定优化器(adam)、损失函数(categorical_crossentropy)和评价指标(accuracy)。

  • 训练模型:使用fit方法训练模型,指定训练数据、标签、训练的轮次(epochs)和每批次的样本数(batch_size)。

  • 模型结果统计最后,summary方法提供了模型的架构概览,包括每层的名称、类型、输出形状和参数数量。
    在这里插入图片描述

3、总结

人工神经网络作为深度学习的基石,其灵活性和强大的表达能力使其成为解决复杂非线性问题的有力工具。

通过不断优化和改进,ANN在各个领域的应用将更加广泛,性能也将更加出色。

不过,也需要注意的是,ANN模型的训练需要大量的数据和计算资源,并且模型的解释性相对较差,这些都是目前深度学习领域面临的挑战。

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 企业认证金牌面试官
  • 多个名企认证&特邀讲师等
  • 名企签约职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)评测一等奖获得者

关注小鱼,学习【机器学习】&【深度学习】领域的知识。

相关文章:

【深度学习】最强算法之:人工神经网络(ANN)

人工神经网络ANN 1、引言2、人工神经网络(ANN)2.1 定义2.1.1 定义2.1.2 应用场景 2.2 核心原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥,看新闻没? 小鱼:新闻天天看,啥事大惊小怪的。 小屌…...

Unity vscode在mac上的编译环境设置

在settings.json文件中配置以下信息。 settings.json路径一般在/Users/xxx/Library/Application Support/Code/User/settings.json {"omnisharp.useGlobalMono": "always","editor.fontLigatures": false,"omnisharp.useModernNet": …...

【Java】在高并发场景下,保证 Redis 缓存一致性的几种方案

在高并发场景下,保证 Redis 缓存一致性是一个常见的挑战。以下是几种常见的解决方案及其优缺点,以及相应的代码示例。 1. Cache Aside Pattern (旁路缓存模式) 原理 读取数据时,先读缓存,如果缓存没有命中,再从数据…...

GaussDB数据库的备份与恢复

1.逻辑备份-gs_dump gs_dump是一款用于导出数据库相关信息的工具,支持导出完整一致的数据库对象(数据库、模式、表、视图等)数据,同时不影响用户对数据库的正常访问。 备份sql语句 gs_dump是openGauss用于导出数据库相关信息的工…...

03-02-Vue组件之间的传值

前言 我们接着上一篇文章 03-01-Vue组件的定义和注册 来讲。 下一篇文章 04-Vue:ref获取页面节点–很简单 父组件向子组件传值 我们可以这样理解:Vue实例就是一个父组件,而我们自定义的组件(包括全局组件、私有组件)…...

昂达固态硬盘数据恢复方法:全面解析与操作指南

在数字化时代,数据已经成为我们生活和工作中不可或缺的一部分。而固态硬盘(SSD)由于其读写速度快、抗震性强等优点,慢慢取代了传统的机械硬盘,成为我们存储数据的主要选择。然而,即便再先进的存储设备&…...

C++的红黑树

目录 基本概念 插入结点的颜色 判断性质是否破坏 调整方式 u为g的右孩子 u存在且为红 u存在且为黑 u不存在 结论 红黑树结点定义 代码实现 基本概念 1、红黑树是一种特殊的二叉搜索树,每个结点会增加一个存储位表示结点的颜色(红或黑&#x…...

Keras深度学习框架第二十九讲:在自定义训练循环中应用KerasTuner超参数优化

1、简介 在KerasTuner中,HyperModel类提供了一种方便的方式来在可重用对象中定义搜索空间。你可以通过重写HyperModel.build()方法来定义和进行模型的超参数调优。为了对训练过程进行超参数调优(例如,通过选择适当的批处理大小、训练轮数或数…...

手机App收集个人信息,用户是否有权拒绝?

其实过度收集个人信息这件事,在APP上随处可见,泛滥成灾。 前两天有个不疼不痒的小软件“小鸡词典”,因为收集个人信息受到了处罚。 小鸡词典因划分为工具类APP过度收集隐私(手机号、地理位置定位)、不同意政策不能用…...

云下到云上,丽迅物流如何实现数据库降本50% | OceanBase案例

在2024年3月20日的首场OceanBase数据库城市行活动中,专注于物流及供应链解决方案的丽迅物流的架构师阳磊,围绕“OB Cloud在丽迅物流的实践”这一主题,进行了精彩的演讲。本文为此次演讲的内容回顾。 在丽迅物流(Lesoon Logistics…...

STM32无源蜂鸣器播放音乐

开发板:野火霸天虎V2 单片机:STM32F407ZGT6 开发软件:MDKSTM32CubeMX 文章目录 前言一、找一篇音乐的简谱二、确定音调三、确定节拍四、使用STM32CubeMX生成初始化代码五、代码分析 前言 本实验使用的是低电平触发的无源蜂鸣器 无源蜂鸣器是…...

【云原生】kubernetes中的认证、权限设置---RBAC授权原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

【Python设计模式04】策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化不会影响使用算法的客户端,使得算法可以独立于客户端的变化而变化。…...

私域用户画像分析:你必须知道的3个关键点!

在互联网时代的变革中,私域流量成为越来越多企业的关注焦点。而了解私域用户画像是建立精准营销策略的关键一步。 今天,就给大家分享私域用户画像分析的三个关键点,让大家都能更好地进行用户画像分析。 1、市场需求 理解市场需求是把握用户…...

【MATLAB源码-第74期】基于matlab的OFDM-IM索引调制系统不同频偏误码率对比,对比OFDM系统。

操作环境: MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术,它将正交频分复用(OFDM)和索引调制(IM)相结合,以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…...

优于其他超导量子比特数千倍!猫态量子比特实现超过十秒的受控比特翻转时间

内容来源:量子前哨(ID:Qforepost) 文丨娴睿/慕一 排版丨沛贤 深度好文:2000字丨8分钟阅读 摘要:量子计算公司Alice & Bob和QUANTIC团队(国立巴黎高等矿业学院PSL分校、巴黎高等师范学院和…...

QtXlsx库编译使用

文章目录 一、前言二、Windows编译使用2.1 用法①:QtXlsx作为Qt的附加模块2.1.1 检验是否安装Perl2.1.2 下载并解压QtXlsx源码2.1.3 MinGW 64-bit安装模块2.1.4 测试 2.2 用法②:直接使用源码 三、Linus编译使用3.1、安装Qt5开发软件包:qtbas…...

LeetCode题练习与总结:二叉树的层序遍历Ⅱ--107

一、题目描述 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[…...

WIFI国家码设置的影响

记录下工作中关于国家码设置对WIFI的影响,以SKYLAB的SKW99和SDZ202模组为例进行说明。对应到日常,就是我们经常提及手机是“美版”“港版”等,它们的wifi国家码是不同的,各版本在wifi使用中遇到的各种情况与下面所述是吻合的。 现…...

2024年软考高项-信息系统管理师介绍-备考-考试内容-通过攻略

介绍 以下是计算机软件考试的资格设置,本文说的是高级资格中的信息系统项目管理师(简称"高项"),是比较热门和好考的选择,与中级的"系统集成项目管理工程师"有大部分的知识重叠交叉,中级考了"系统集成项…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...

比特币:固若金汤的数字堡垒与它的四道防线

第一道防线&#xff1a;机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”&#xff08;Hashing&#xff09;就是一种军事级的加密术&#xff08;SHA-256&#xff09;&#xff0c;能将信函内容&#xff08;交易细节&#xf…...

2025-06-01-Hive 技术及应用介绍

Hive 技术及应用介绍 参考资料 Hive 技术原理Hive 架构及应用介绍Hive - 小海哥哥 de - 博客园https://cwiki.apache.org/confluence/display/Hive/Home(官方文档) Apache Hive 是基于 Hadoop 构建的数据仓库工具&#xff0c;它为海量结构化数据提供类 SQL 的查询能力&#xf…...

c++算法学习3——深度优先搜索

一、深度优先搜索的核心概念 DFS算法是一种通过递归或栈实现的"一条路走到底"的搜索策略&#xff0c;其核心思想是&#xff1a; 深度优先&#xff1a;从起点出发&#xff0c;选择一个方向探索到底&#xff0c;直到无路可走 回溯机制&#xff1a;遇到死路时返回最近…...