当前位置: 首页 > 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年软考高项-信息系统管理师介绍-备考-考试内容-通过攻略

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

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...