秒懂神经网络并利用一行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

相关文章

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3