【深度学习】最强算法之:人工神经网络(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',  # 优化器使用Adam
              loss='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博客专家
  • 企业认证金牌面试官
  • 多个名企认证&特邀讲师等
  • 名企签约职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)评测一等奖获得者

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648694.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【力扣刷题笔记第三期】Python 数据结构与算法

先从简单的题型开始刷起,一起加油啊!! 点个关注和收藏呗,一起刷题鸭!! 第一批题目 1.设备编号 给定一个设备编号区间[start, end],包含4或18的编号都不能使用,如:418、…

了解Hive 工作原理:Hive 是如何工作的?

一、概念 1、Hive Apache Hive 是一个分布式的容错数据仓库系统,可实现大规模分析和便于使用 SQL 读取、写入和管理驻留在分布式存储中的PB级数据。 Hive是建立在Hadoop之上的数据仓库框架,它提供了一种类SQL的查询语言—HiveQL,使得熟悉S…

.NET调用阿里云人脸识别1:1简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 人脸比对1:1 功能说明 该功能是两张照片对比,比对两张照片是不是同一个人,至于应用到什么场景,可以参考阿里云的官方文档,我这边以大学生项目来说的话,比如员工打卡&a…

strstr的使⽤和模拟实现

strstr(function) Returnsa pointer to the irst occurrence of str2 in str1, or a null pointer if str2 is not part of str1. (函数返回字符串str2在字符串str1中第⼀次出现的位置)。 The matchingprocess doesnot include t…

如何通过虚拟人动画制作打响文旅信息资源?

随着科技的发展,虚拟人动画制作成为文旅产业数字化转型的重要手段。虚拟人动画制作可以将文化资源转化为生动的动画形式,为文旅资源的宣传和推广注入新的活力。如阿布扎比文旅部推出的数字虚拟形象“哈利法”,通过虚拟人动画制作形式&#xf…

漂流瓶挂机项目,聊天脚本赚钱新玩法,号称单机30-50+ (教程+软件)

一、项目简介: 漂流瓶挂机项目主要是通过使用探遇漂流瓶、音麦漂流瓶等聊天软件,为用户提供一个聊天赚钱的平台。男性用户需要充值后才能发送消息,而女性用户则可以通过接收消息赚取分红。男性用户发送给女性用户的消息费用大约在.1-.2元之间…

大数据开发面试题【Spark篇】

115、Spark的任务执行流程 driver和executor,结构式一主多从模式, driver:spark的驱动节点,用于执行spark任务中的main方法,负责实际代码的执行工作;主要负责:将代码逻辑转换为任务、在executo…

618值得买的东西有哪些?买什么最划算?超全品类大清单总结

平日里让许多人心动不已的收藏加购好物,是否常常因为价格昂贵而让人望而却步?然而,618活动期间的到来,恰恰为我们提供了一个难得的购物盛宴!相信在第一波活动中,许多消费者已经跃跃欲试,开始享受…

C++干货 --类和对象(二)

前言: 上文中,我们介绍了类这一重要知识点,包括为什么要有类、类的使用方法、封装、以及对象实例化。详情可以去看我的文章:写文章-CSDN创作中心C干货 --类和对象(一)-CSDN博客写文章-CSDN创作中心 这篇文章,我们简单…

短视频矩阵系统4年独立开发正规代发布接口源码搭建部署开发

1. 短视频矩阵源码技术开发要求及实现流程: 短视频矩阵源码开发要求具备视频录制、编辑、剪辑、分享等基本功能,支持实时滤镜、特效、音乐等个性化编辑,能够实现高效的视频渲染和处理。开发流程主要包括需求分析、技术选型、设计架构、编码实…

保险业务管理系统的设计与实现(论文 + 源码)

保险业务管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89361419 保险业务管理系统的设计与实现 摘要 历经二十余年的高速发展,我国保险行业的市场竞争已经达到白热化的程度,在同一个城市往往有数十家主体参与保险业务的竞争。保…

vue koa post 请求代理失败问题总结

场景是在使用 koa 写接口时,客户端发送 post 请求,服务端会报下面这个错误,导致接口未能访问成功: 前端接口一直 Pending 状态, 解决方案:走的是本地 mock 数据,未访问服务端的接口 总结&#x…

Facebook:解锁社交媒体的无限可能性

在当今数字化时代,社交媒体已经成为人们生活中不可或缺的一部分。而在众多社交媒体平台中,Facebook无疑是最为知名和影响力最大的之一。从其创立至今,Facebook一直在不断地演变和发展,成为了连接世界的桥梁,也是社交媒…

以不变应万变:在复杂世界中保持初心,坚持原则

在这个日新月异、瞬息万变的世界里,人情世故也显得尤为复杂。我们常常会因为忙碌的生活、工作压力以及人际关系的纠葛而感到迷茫和疲惫。在面对这些复杂局面的同时,如何保持内心的平静,坚持自己的原则,并在变幻莫测的环境中持续成…

【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】

调试笔记-系列文章目录 调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 文章目录 调试笔记-系列文章目录调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 前言一、调试环境操作系统:Ubuntu 22.04.4 LTS编译环境调试目标 二、调…

一个专为程序员设计的精致 Java 博客系统

大家好,我是 Java陈序员。 今天,给大家介绍一个设计精致的博客系统,基于 Java 实现! 关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 项目介绍 bolo-solo …

抄表:现代生活中的数据采集关键

1.界定与发源 抄表,简单的说,指从各种各样计量机器设备(如智能水表、电度表、天然气表等)载入做好记录使用量的全过程。这一概念自工业化时代至今就出现了,最初由人工进行,伴随着科技创新,如今已经演化出自动化和远程…

Netflix Conductor整合Apache Seata实现支持分布式事务的服务编排方案

一、背景 Netflix Conductor是Netflix开源的一个微服务编排引擎。它旨在简化和自动化微服务架构中复杂的业务流程和工作流处理。Conductor允许开发人员使用声明性的方式定义工作流,将多个服务和任务组合成一个完整的业务流程。它提供了一个用户友好的UI界面&#xf…

echarts- 热力图, k线图,雷达图

热力图 热力图可以看成是一种矩形的散点图。 热力图的矩形受itemStyle的影响。 通常配合visualmap组件来根据值的大小做颜色的变化。 热力图主要通过颜色去表现数值的大小,必须要配合 visualMap 组件使用。 visualMap:视觉映射组件 let options {tooltip: {},xAx…

车辆相关识别API优化您的车辆系统

车辆相关识别API是开发者们所需的重要工具,它们基于先进的计算机视觉和深度学习技术,提供了强大的车辆识别和分类能力。这些API能够从图像或视频中快速准确地识别和提取车辆的关键信息,如车辆型号、品牌、颜色等。对于开发者而言,…