秒懂神经网络并利用一行Python代码建立——代码详细参数思维导图,个人见解,希望可以帮助小白

本文主要是介绍秒懂神经网络并利用一行Python代码建立——代码详细参数思维导图,个人见解,希望可以帮助小白,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

神经网络

  • 0、原理
    • 0.1、一个简单的例子
    • 0.2、神经网络的核心结构是什么呢?
    • 0.3、建立神经网络
    • 0.4、笔者对神经网络结构及其计算原理的理解
  • 1、Python建立神经网络
  • 2、Python代码参数详细解释
  • 3、推荐书单《Python神经网络编程》
  • ★佐佑思维二维码★

0、原理

神经网络就是利用计算器的计算功能来实现一种预测!

这个预测结果的本质就是数字

0.1、一个简单的例子

1

一台计算机对”3×4“的输入进行处理,它的处理也许就是将乘法转化为相对更简单的加法,如何输出结果”12“

其实神经网络的核心就是在修改中间部分,将其按照一定的结构编写,最终输出预测的结果。

0.2、神经网络的核心结构是什么呢?

神经网络来源于大脑,相信大家在中学的生物课上一定学过。
它的基本结构单元类似于大脑神经元:
2就像上面这样,它简化一下就成了神经网络最基本的单元:神经元模型
3

  • 神经元模型的输入是经由轴突传递而来的自变量 x 0 x_0 x0 x 1 x_1 x1 x 2 x_2 x2
  • 通过突触传递到下个神经元的树突
  • 到达细胞体进行刺激信号的整合处理:在细胞体中接收输入变量的是一个线性模型 ,其中 w i w_i wi表示权值 b b b表示截距,通常对应着神经元的激活阈值,即当“信号刺激”达到一定程度(这个一定程度就是阈值)传递信号
  • 接下来是一个非线性的激活函数 f f f(经常采用sigmoid函数,如下图),它将控制是否对外发送信号,对应大脑神经元里的轴突,得到最后的输出 ,这个值将通过突触传递给下一个神经元模型

激活函数:当函数的自变量大于某个阈值时则等于1,否则等于0,为保证输出为连续值,实际经常采用sigmoid函数,它把可能在较大范围内变化的输入变量挤压到(0, 1)输出范围内。

4

  • 与人体神经元一样,一个神经元模型可以有多个输出箭头,且输出值都是一样的。

如果你已经看懂上面的图,那么恭喜你已经了解了神经网络最基本的部分了。

0.3、建立神经网络

神经网络其实就是神经元模型联结在一起,形成多层结构,常见结构形式如下图。每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”。

5

  • 神经网络包含输入层隐藏层以及输出层
  • 一个神经网络模型只有一个输入层,只负责传递
  • 一个神经网络可以有多个隐藏层,负责传输并分析数据
  • 一个神经网络里只有一个输出层,只负责输出结果

0.4、笔者对神经网络结构及其计算原理的理解

神经网络的学习过程,就是根据训练数据来调整神经元之间的链接权值以及每个功能神经元的阈值

最常用的是误差逆传播算法,它的详细的计算公式不作列举,因为大多数研究者只是把它当作一个工具,简单理解它的原理即可。

原理图如下,感受一下:
6笔者的理解,简洁陈述如下:

  • 整个神经网络就是在两组变量间搭建起一个桥梁
  • 神经网络的计算原理就是利用已知的变量值组(各自对应关系)计算出网络中的链接权值阈值(笔者理解这个过程为“找规律”),然后预测未知的变量值
  • 那这个“找规律”它是怎么找的呢?笔者这里简单说说最为常见的误差你传播算法:它的出现是因为寻找规律不是一蹴而就的,就像我们从小做算术题一样,不断犯错,不断批评,如何才能记住,还有我们做找规律的脑筋急转弯,都是一次次不断地犯错、改进,在错误中成长,从而进步。误差逆传播算法就利用的这个道理。
    1. 首先找到一个性能指标,叫作预测值(已知变量值组的输入变量值输入到网络后的输出值)与真实值(已知的对应变量值,也叫标记值)间的误差,误差大家应该都有所了解吧!但是它的定义公式有很多种,针对不同的问题各有利弊,最为常见的就是均方误差
      E k = 1 2 ∑ j = 1 l ( y 预 测 值 − y 真 实 标 记 值 ) E_k=\frac{1}{2}\sum_{j=1}^{l}\left ( y_{预测值}-y_{真实标记值} \right ) Ek=21j=1l(yy)

    2. 就像人一样,每个人都是一个不同的个体,对于刚出生的婴儿也各有不同,那对于神经网络也一样,所以就需要我们随机给定一个初始的权值和阈值

    3. 人在出生后需要不断地学习和成长,才能去认知和感知这个世界,神经网络也一样,它也需要学习,不过它是对数字的学习,输入第一组数值后,会出现一个误差,误差逆传播就是将误差分摊逐级反算回每级每个神经元上

    4. 利用这个误差,修改权值和阈值

    5. 神经网络要想在错误中成长,不断进步,就得不断地改进。所以每次输入一个值都会进行一次误差的修改,然后不断“成熟起来”,都说学无止境,所以你给它的已知数据越多,它的结果越好。

1、Python建立神经网络

建立在你理解神经网络的基础上,你就可以直接利用Python现有的scikit-learn库一步即可建立神经网络。

#输入训练集
train_X= input_data; train_y= output_data
#建立神经网络的一行代码
clf = MLPRegressor(activation='logistic', alpha=0.0001, batch_size=200, beta_1=0.9,beta_2=0.99, hidden_layer_sizes=(5,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=4, shuffle=True, solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False)
#拟合训练集并输出模型
print("模型:",clf.fit(train_X,train_y))

输出结果:

模型:MLPRegressor(activation='logistic', alpha=0.0001, batch_size=200, beta_1=0.9, beta_2=0.99, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(5,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=4, shuffle=True, solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False)

2、Python代码参数详细解释

怎么样?上面的代码是不是看得眼花缭乱,没关系,我给大家总结好了Sklearn.neural_network.MLPRegressor函数参数的思维导图,附有详细解释:

7这个照片文件有24M左右,无法上传(CSDN限制为5M),可能大家会看不清,没关系,笔者已经将它的BMP格式文件和Xmind文件都放到了佐佑思维VX公众号(回复 “MLP参数思维导图免费获取)和我的CSDN资源里,想要的可去免费提取,(Xmind导图.exe寻找帮助,请联系佐佑思维公众号)!

3、推荐书单《Python神经网络编程》

本书通俗易懂,可以为大部分的人解释神经网络的原理,尤其是对计算机编程一窍不通的人,内容来源于简单的生活实例,是一本极佳的书籍!

提问或寻书帮助,请联系佐佑思维公众号,我们一起共同进步!

★佐佑思维二维码★

佐佑思维

这篇关于秒懂神经网络并利用一行Python代码建立——代码详细参数思维导图,个人见解,希望可以帮助小白的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367797

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相