【机器学习】十大算法之一 “神经网络”

article/2025/10/6 5:35:09

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?type=blog个人简介:打工人。

持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。

如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com 

        作为机器学习十大算法之一的神经网络算法,是人工智能发展历程中非常重要的一环,其在很多领域都有应用,如语音识别、图像分类、自然语言处理等等。

本文将详细讲解机器学习十大算法之一“神经网络”


目录

一、简介

二、发展史

        1. 原始感知机

        2. 多层感知机

        3. 反向传播算法

        4. 卷积神经网络

三、算法原理

        1. 神经元

        2. 激活函数

        3. 反向传播算法

四、算法功能

        1. 数据分类

        2. 数据预测

        3. 图像处理

        4. 自然语言处理

五、示例代码

        1. 导入库

        2. 数据探索

        3. 特征选择与切割数据

        4. 模型构建

        5. 模型评估

        6. 输出结果

六、总结

 


一、简介

        神经网络是一种模拟人脑信息处理方式的算法,其通过神经元之间不断传递信息、调节连接权重等方式进行学习和预测,最终实现数据分类、识别等功能。由于神经网络算法的强大功能和广泛应用,其在过去几十年间经历了多次的发展和变革。

二、发展史

        1. 原始感知机

        神经网络算法的起源可以追溯到20世纪50年代的原始感知机模型。感知机是一种由美国计算机科学家费兹(Frank Rosenblatt)提出的单层前馈神经网络,其机制类似于神经元,在输入层接收输入数据,通过连接权重,对数据进行加权处理,并通过激活函数进行输出结果。其基本公式如下:

        其中,x为输入特征向量,w为连接权重向量,b为偏置,f为激活函数,y为输出结果。

        原始感知机模型只能解决线性可分问题,且其训练过程比较复杂,无法适应复杂的数据任务。

        2. 多层感知机

        为了提高神经网络算法的性能,研究者们提出了多层感知机模型。多层感知机是一种带有隐含层的前馈神经网络,其利用多层神经元对输入向量进行非线性变换,并通过反向传播算法不断调整连接权重,实现分类、预测等果。

        多层感知机在实际运用中,特别是在图像识别、自然语言处理等领域,被证明具有很强的优势。

        3. 反向传播算法

        为了解决多层感知机模型训练过程中的问题,扩大算法的应用范围,研究者们提出了反向传播算法。反向传播算法是一种链式法则,其通过对神经网络进行误差反向传播,不断调整连接权重,使神经网络输出结果与实际标签相差越来越小,并逐渐达到一个稳定的状态。

        反向传播算法是多层神经网络的训练核心,也是神经网络成为至今广受欢迎的原因之一。

        4. 卷积神经网络

        随着计算机视觉和图像处理技术的发展,神经网络中又产生了一类被成为卷积神经网络(CNN)。卷积神经网络是一种特殊的多层神经网络,其特点是在输入层和隐藏层之间插入了卷积层和池化层,对高维数据状态特征进行提取和识别。

        卷积神经网络应用很广,不仅在图像分类、目标检测等领域有着非凡表现,在语音识别、自然语言处理等领域也有着很强的应用潜力。

三、算法原理

        神经网络算法的核心思想是构建一个由神经元相互连接的网络,类比人类神经系统,通过学习调整连接权重,实现数据分类、预测等功能。

        1. 神经元

        神经元是神经网络中的基本元素,其特点是能接收其他神经元的输入信号,并通过连接权重进行求和运算,再通过激活函数进行输出结果。神经元的基本公式如下:

        其中,w为连接权重向量,x为输入特征向量,b为偏置,f为激活函数,y为输出结果。

        2. 激活函数

        激活函数是一个非线性的函数,其作用是强调神经元之间的复杂性和非线性关系。在神经网络的训练中,常用的激活函数有sigmoid、ReLU、softmax等。

        sigmoid函数是一种S型函数,其公式为:

        ReLU函数则在输入值大于0时输出该值,小于0时输出0: 

        softmax函数则常用于分类问题,将输出结果映射到概率值: 

        3. 反向传播算法

        反向传播算法是多层神经网络的训练核心,其基本原理是对网络中每个神经元的输出结果进行误差分析,然后再通过链式法则,反向传播误差,最终实现对每个连接权重进行调节,使网络输出结果逐渐趋于期望结果。反向传播算法主要分为前向传播和反向传播过程:

(1) 前向传播:将训练数据输入神经网络,进行前向传播计算,获得网络的输出结果。

(2) 反向传播:通过计算输出值与期望值之间的误差,逐层反向传输误差值,并不断调整连接权重,使网络输出结果逐渐靠近正确结果。反向传播具体过程如下:

        设网络输出结果为 yy,期望标签为 y_eye​,损失函数为 LL,则其误差 EE 可以表示为:

        对于每个连接权重 w,将误差 E 对其偏导数表示为 ∂E​\∂w,则根据链式法则有: 

        其中,netnet 表示输入加权和。

        通过上式,可以对神经网络中每个连接权重进行调节,从而减小误差并提升网络性能。

四、算法功能

        神经网络算法在机器学习领域有着广泛的应用,其主要功能如下:

        1. 数据分类

        神经网络可以分别用于二元分类和多元分类数据集,如通过图像预测物体种类、通过数据集预测人物情绪等。

        2. 数据预测

        神经网络可以对任意数据进行预测,如对基于时间序列的数据,预测未来的股票价格、气温变化等。

        3. 图像处理

        卷积神经网络的出现,极大的推动图片处理领域的发展,在图像分类、目标检测、图像生成等领域得到了广泛的应用。

        4. 自然语言处理

        自然语言处理领域,神经网络是我们的主力军,如在机器翻译、情感分析、文本摘要等领域都有相当的应用和地位。

五、示例代码

        下面以 Python 编程语言为例,简单介绍神经网络在数据分类任务中的应用。

        数据集中包含 569 条乳腺癌数据,其中357条良性乳腺癌数据,212条恶性乳腺癌数据,需要使用神经网络模型将两种数据进行分类。

        1. 导入库

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score,classification_report,confusion_matrix

        2. 数据探索

cancer = load_breast_cancer()
df = pd.DataFrame(np.c_[cancer['data'], cancer['target']], columns = np.append(cancer['feature_names'], ['target']))sns.countplot(df['target'])
plt.title('Class Distribution')
plt.xlabel('Target Class')
plt.ylabel('Count')
plt.show()

        3. 特征选择与切割数据

X,y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

        4. 模型构建

model=Sequential()
model.add(Dense(10,input_dim=30,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=1000, batch_size=10, verbose=0)

        5. 模型评估

        模型训练完毕后,接下来对模型进行评价。包括准确率,混淆矩阵和分类器报告等相关指标。

y_pred = model.predict(X_test)
y_pred = (y_pred > 0.5)
print('Accuracy:',accuracy_score(y_test,y_pred))
print('Confusion matrix:')
print(confusion_matrix(y_test,y_pred))
print('Classification report:')
print(classification_report(y_test,y_pred))

        6. 输出结果

Accuracy: 0.9473684210526315
Confusion matrix:
[[ 59   4]
 [  4 104]]
Classification report:
              precision    recall  f1-score   support

           0       0.94      0.94      0.94        63
           1       0.96      0.96      0.96       108

    accuracy                           0.95       171
   macro avg       0.95      0.95      0.95       171
weighted avg       0.95      0.95      0.95       171

六、总结

        神经网络算法是一种非常强大和广泛应用的算法,其在数据分类、预测、图像处理、自然语言处理等领域都有着非常出色的表现。神经网络算法的发展历程从原始的感知机模型到多层神经网络,再到卷积神经网络,反应了机器学习的发展过程,各个模型优点互补,使神经网络在各个领域得以深入应用。

        在这里需要说明的是,神经网络算法虽然在应用中表现出非常强大的性能和普适性,但是也面临着一些问题,如训练困难、容易出现过拟合等问题。因此在实际应用过程中,需要结合具体问题和数据特点,综合评估算法优劣,在适当的情况下,结合其他机器学习算法来实现更优秀的性能。

 


http://chatgpt.dhexx.cn/article/1USZPVfl.shtml

相关文章

深度神经网络算法分析

深度神经网络算法分析 人工智能的分类 弱人工智能:特定任务与人类智力或者效率持平通用人工智能:具有人类智力水平,解决通用问题超人工智能:超过人类智力水平,可以在创造力上超过常人 机器学习的类型 监督学习&…

神经元网络算法的思想,神经元算法大全图解

什么是人工神经元算法 人工神经网络算法 “人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称ANN)是在对人脑组织结构和运行机制的认识理解基础之上模拟其结构和智能行为的一种工程系统。 早在本世纪40年代初期,心理学家McCulloch、数学家Pitts就提出了人…

秒懂算法 | 基于图神经网络的推荐算法

图神经网络(Graph Neural Networks,GNN)是近几年兴起的学科,用来作推荐算法自然效果也相当好,但是要学会基于图神经网络的推荐算法之前,需要对图神经网络自身有个了解。 图卷积网络(Graph Convolutional Networks,GCN)提出于2017年。GCN 的出现标志着图神经网络的出现。深度学习…

浅谈神经网络算法

我们在设计机器学习系统时,特别希望能够建立类似人脑的一种机制。神经网络就是其中一种。但是考虑到实际情况,一般的神经网络(BP网络)不需要设计的那么复杂,不需要包含反馈和递归。人工智能的一大重要应用,…

【深度学习】3-4 神经网络的学习- 学习算法的实现

神经网络的学习步骤如下所示: 步骤1(mini-batch) 从训练数据中随机选出一部分数据,目标是减小mini-batch的损失函数的值 步骤2(计算梯度) 为了减小mini-batch的损失函数的值,需要求出各个权重参数的梯度 步骤3(更新参数) 将权重参数沿梯度…

神经网络算法基本介绍,简单神经网络算法原理

神经网络是什么? 生物神经网络主要是指人脑的神经网络,它是人工神经网络的技术原型。 人脑是人类思维的物质基础,思维的功能定位在大脑皮层,后者含有大约10^11个神经元,每个神经元又通过神经突触与大约103个其它神经…

神经元的计算

神经元的计算 单神经元内部参数的设置偏移值 b 的作用神经网络的分层常用的激活函数 单神经元 人类大脑神经元细胞的树突接收来自外部的多个强度不同的刺激,并在神经元细胞体内进行处理,将其转化为一个输出结果,功能抽象图示: 神…

神经学习(算法)

神经元与激励函数 神经元 神经元是神经网络的基本组成,如果把它画出来,大概就长成下面这样: 图中神经元左边的x表示对神经元的多个输入,w表示每个输入对应的权重,神经元右边的箭头表示它仅有一个输出。 当然神经元也…

神经网络十大算法有哪些,神经网络十大算法排名

数学建模的十大算法 。 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法…

训练神经网络的五大算法

原文: 5 algorithms to train a neural network 作者: Alberto Quesada 译者: KK4SBB 责编:何永灿,关注人工智能,投稿请联系 heyccsdn.net 或微信号 289416419 神经网络模型的每一类学习过程通常被归纳为一…

论文阅读2--《融合多因素的短时交通流预测研究》

1.问题的提出 现有的交通流预测研究大多为常态下的预测,而未考虑天气、节假日等外部因素的影响。 2.交通流预测相关工作 (1)传统的短时交通流研究方法: 卡尔曼滤波模型、历史平均模型、时间序列模型、非参数回归模型、混沌理论…

用于交通流预测的时间多图卷积网络

为了联合建模道路网络中各种全局特征的空间、时间和语义关联,本文提出了一种用于交通流预测的深度学习框架T-MGCN(时态多图卷积网络)。首先,我们识别了几种语义关联,并将道路之间的非欧几里德空间关联和异构语义关联编…

交通流分析1:《基于大数据的城市公路交通流短时预测研究_张红》阅读总结

大概读了一下,第6节小波分析那里实在没有看懂。 如果有理解不对的地方欢迎批评指正。 建模方法 这篇论文选用的是时间序列模型和小波理论,小波理论那里我实在没看懂,说说他基于时间序列模型的组合建模方法,这是选择时间序列模型的…

matlab中的AR模型短时预测交通流

1、内容简介 略 438-可以交流、咨询、答疑 2、内容说明 智能交通系统的宗旨,就是利用丰富的交通检测数据,对未来的交通流状态进行预测,对于最大效率的利用快速路资源,减少出行者时间,减少快速路交通拥挤与交通事故。短时交通流预测是道路交通控制系统、交通流诱导系统等领域…

交通流预测爬坑记(三):使用pytorch实现LSTM预测交通流

很长时间没有更新内容了,上一篇可以看做是刚接触深度学习写的,看法非常狭隘,内容非常粗糙。 在最近的学习中接触到了Pytorch,不得不承认,相对于TensorFlow来讲,灵活很多。 这次就使用pytroch来进行一下交通…

Python交通流仿真【含源码】

虽然交通并不总是畅通无阻,但汽车无缝穿越交叉路口,在交通信号灯处转弯和停车看起来相当壮观。这种沉思让我思考交通流对人类文明的重要性。 在此之后,内心的书呆子特质让我忍不住思考一种模拟交通流的方法。我在一个涉及交通流量的本科项目…

基于深度学习的短时交通流预测与优化

TOC 第二章 数据预处理与短时交通流量特性分析 2.1 数据来源 数据记录了明尼苏达州双子城19条高速环城公路一整年的交通流量,交通流量数据采样间隔为30秒(采用2018年6月1日至8月31日期间,采集间隔为5分钟,选取公路上的5个车辆检测站点的交…

基于Spatial-Temporal Transformer的城市交通流预测

文章信息 本周阅读的论文是题目为《Spatial-Temporal Transformer Networks for Traffic Flow Forecasting》的一篇2021年发布在arXiv网站上的使用时空Transformer网络(STTNs)预测交通流的文章。 摘要 交通预测已成为智能交通系统的核心组成部分。然而&a…

基于推特数据挖掘交通事件的城市交通流深度学习预测模型

文章信息 本周阅读的论文是题目为《A deep-learning model for urban traffic flow prediction with traffic events mined from twitter》的一篇2021年发表在《World Wide Web》涉及交通事故下的城市交通客流预测的文章。 摘要 短期交通预测是现代城市交通管理和控制系统的关键…

交通流优化:一种强化学习方法

1. 文章信息 《Traffic flow optimization: A reinforcement learning approach》是2016年发表在Engineering Applications of Artificial Intelligence的一篇文章。 2. 摘要 交通拥堵会导致诸如延误、燃油消耗增加和额外污染等重要问题。本文提出了一种新的基于强化学习的交通…