一文速学-让神经网络不再神秘,一天速学神经网络基础(一)


前言

思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,不然如果以后数学建模竞赛或者是其他更优化模型如果用上了神经网络(比如利用LSTM进行时间序列模型预测),那么就更好向大家解释并且阐述原理了。但是深度学习的内容不是那么好掌握的,包含大量的数学理论知识以及大量的计算公式原理需要推理。且如果不进行实际操作很难够理解我们写的代码究极在神经网络计算框架中代表什么作用。不过我会尽可能将知识简化,转换为我们比较熟悉的内容,我将尽力让大家了解并熟悉神经网络框架,保证能够理解通畅以及推演顺利的条件之下,尽量不使用过多的数学公式和专业理论知识。以一篇文章快速了解并实现该算法,以效率最高的方式熟练这些知识。

现在很多竞赛虽然没有限定使用算法框架,但是更多获奖的队伍都使用到了深度学习算法,传统机器学习算法日渐式微。比如2022美国大学生数学建模C题,参数队伍使用到了深度学习网络的队伍,获奖比例都非常高,现在人工智能比赛和数据挖掘比赛都相继增多,对神经网络知识需求也日渐增多,因此十分有必要掌握各类神经网络算法。

博主专注建模四年,参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。此专栏的目的就是为了让零基础快速使用各类数学模型、机器学习和深度学习以及代码,每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码。希望有需求的小伙伴不要错过笔者精心打造的专栏。


神经网络基础

神经网络的基础知识,我们能够掌握到以上8点基础知识,就算成功。 对于神经网络的理解,我们最好建立较为具体的思考内容而不是单单建立知识概念的抽象内容。当我们谈论神经网络时,其实可以把它想象成一种模仿人脑工作方式的计算方法。你可以把神经网络想象成一个由很多个小单元(神经元)组成的网络,就像大脑中的神经元一样。那么让我们回到上初中生物课的时候,先给大家放一张我们人类基础的神经大脑图片:

 

 不知道大家是否还有印象,再给大家放一张神经网络框架图片:

 

我们可以这样类比,和神经元传播类似:神经网络可以分为三层,分别是输入层,隐藏层以及输出层。每一层我们可以理解为就是大量的神经元组成的一个功能系统,也就是视为一个大号的神经元,释放的神经递质也就是我们当前层传递给下一层的数据参数,受体层则根据上一层给出的信号,去调整下一层该释放的神经信号。由此不断的一层一层传递数据,直到结束,也就是到输出层。

在神经网络中,最左边的一层称为输入层,如图,它有三个神经元。最右边的一层称为输出层,它包含两个输出神经元。如果一个层既不是输入层也不是输出层,那么我们就可以称其为隐藏层。不过隐藏层并不只限定有一层,比如下图:

 这个网络就有两层隐藏层。接下来我们再对单个神经元进行研究。

1.1神经元

 一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以用向其他多个神经元传递信息。轴突末梢与其他神经元的树突产生连接,从而传递信号。

在神经网络中,神经元模型是一个包含输入输出与计算功能的模型。输入可以类比为神经元的树突,输出可以类比为神经元的轴突,而计算则可以类比为细胞核。以下图为例:

 

 这就是一个典型的神经元模型,包含三个输入一个输出以及两个计算功能,连线称为“连接”,每一条连接线上都有一个“权重值”。权重的概念在我以往的机器学习算法都有很多次介绍这里便不开展,可以理解为线性回归中的a,b值。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

 现在了解到了基础的神经网络结构后不免产生疑问,神经层数是越多越好吗?神经网络设置的神经元个数是否会影响分类效果?

1.2神经网络性质

一般来说更多的神经元的神经网络可以表达更复杂的函数。然而这即是优势也是不足,也就是说我们可以通过神经网络工具建造大炮甚至是究极导弹,但是你却让我去打蚊子,也就是令我们算法工程师最头疼的过拟合问题。过拟合想必不过多描述,以一个实际案例大家基本都能了解:

 如上图所示,图中圆点代表数据集,颜色代表数据的类别。红色和绿色的圆点代表数据集的类别情况,红色和绿色的背景表示神经网络的分类情况。当网络隐藏层包含3个神经元时,模型并没有将绿色圆点和红色圆点都很好地区分开。

当我们将隐藏层的神经元个数调整为6的时候:

我们明显发现分类效果更好了,大部分数据都得到了比较好的分类。当将隐藏层的神经元个数再次扩充至20个时:

 这时候的分类效果达到了极致,可以说是99.9%了,大家肯定觉得这个模型简直完美,但是我要告诉大家的是这模型几乎不可能用,因为它过分了区分了红色和绿色,如果我新加入一些数据集落入红绿边缘的时候,几乎都有明确的关系,那么我们再次训练的时候便不能灵敏的根据新加入的数据集去调整区域了,而且实际上的数据集并不是明显可分的,更多的是模棱两可。因此更好的泛化能力才是我们追求的。

如果数据比较简单,我们可以使用结构较为简单的网络防止过拟合。为了防止过拟合,工程师研发出了很多方法,比如正则化,噪声处理等。本篇文章主要给大家先引入神经网络基本概念,下一篇将给大家具体详细阐述神经网络的关键计算函数-激活函数。

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

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

相关文章

购买腾讯云服务器搭建网站全流程_新手建站

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网分享使用腾讯云服务器建站教程,新手站长搭…

SpringMVC 第二天

第 1 章 ModelAttribute 和 SessionAttribute[ 应 用 ] 1.1ModelAttribute 1.1.1 使用说明 作用: 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上,表示当前方法会在控制器的方法执行之前,先执行…

【Azure】Virtual Hub vWAN

虚拟 WAN 文档 Azure 虚拟 WAN 是一个网络服务,其中整合了多种网络、安全和路由功能,提供单一操作界面。 我们主要讨论两种连接情况: 通过一个 vWAN 来连接不通的 vNET 和本地网络。以下是一个扩展的拓扑 结合 vhub,可以把两个中…

【Centos8配置节点免密登陆】

登录Centos8 配置免密登录 为什么需要配置免密登录,玩大数据,玩集群的朋友们,都需要使用RPC通讯,完成集群命令同步,数据操作通讯。要实现RPC通讯,就需要配置节点之间的免密登录。 # 配置登录秘钥 ssh-key…

【已解决】pycharm突然双击无法打开,重启电脑也不管用

1.问题: pycharm突然双击无法打开,重启电脑也不管用 2.解决 2.1 方法一(修改Roaming) 1.找到C盘对应路径下的pycharm版本 2. 用记事本打开文件类型为VMOPTIONS文件 3. 修改或删除最后一行的映射路径 4.保存退出 2.2 方法二…

大二在校生一把通关云计算HCIE:考证,没你想得那么难

大家好,我是誉天云计算的任同学,在不久前的考试中顺利通过,拿到了云计算HCIE的证书。 我目前还是一名在校大学生,就读的专业也是云计算相关。考HCIE认证,一方面是想强化一下自己的专业能力,另一方面也是为今…

文件夹无法删除?简单3招,轻松解决问题!

“我电脑里有一个文件夹占用了很大的内存,我想将它删除来释放一些内存,但是根本没法删除,为什么会这样呢?文件夹无法删除应该怎么办呢?” 在日常电脑使用中,有时候会遇到文件夹无法删除的情况,这…

WPF基础入门-Class4-WPF绑定

WPF基础入门 Class4&#xff1a;WPF绑定 一、简单绑定数据 1、cs文件中设置需要绑定的数据&#xff1a; public partial class Class_4 : Window{public Class_4(){InitializeComponent();List<Color> test new List<Color>();test.Add(new Color() { Code &q…

深度剖析:利用Charles抓包工具进行iOS逆向分析

抓包是逆向中非常重要的一个环节&#xff0c;今天我们来详细介绍一款在iOS逆向分析中常见的Charles抓包工具。 1. Charles工具介绍&#xff0c;下载和安装 Charles是一款强大的代理工具&#xff0c;可用于拦截、监视和修改网络通信。您可以从Charles的官方网站下载并安装适用于…

2023腾讯云服务器多少钱一年?CPU内存带宽配置报价

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G4M带宽112元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、云服务器CVM S5实例2核2G配置280.8元一年、GPU服务器GN10Xp实例145元7天&#xff0c;腾讯云服务器网长期更新腾讯云轻量…

如何实现AI的矢量数据库

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 然而&#xff0c;人工智能模型有点像美食厨师。他们可以创造奇迹&#xff0c;但他们需要优质的成分。人工智能模型在大多数输入上都做得很好&#xff0c;但如果它们以最优化的格式接收输入&#xff0c;它们就会真正…

2023.8.25 关于 Selenium 常用 API 详解

目录 引言 打开页面 查找页面元素 输入文本 点击操作 提交操作 清除文本 获取文本和属性值 ​编辑 选择多个元素 获取页面标题和URL 等待操作 浏览器操作 多层框架定位 窗口操作 屏幕截图 下拉框元素选择操作 ​编辑 执行脚本 文件上传 引言 本文讲的所有…

如何选择合适的自动化测试工具?

自动化测试是高质量软件交付领域中最重要的实践之一。在今天的敏捷开发方法中&#xff0c;几乎任一软件开发过程都需要在开发阶段的某个时候进行自动化测试&#xff0c;以加速回归测试的工作。自动化测试工具可以帮助测试人员以及整个团队专注于自动化工具无法处理的各自任务&a…

与面试官互动:建立积极的技术讨论氛围

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

引领未来商业:循环购模式的创新突破-微三云门门

尊敬的创业者们&#xff0c;我是微三云门门。今天&#xff0c;我将与您深入探讨一种崭新的商业模式——循环购模式。该模式在私域流量领域取得了巨大成功&#xff0c;仅用6个月时间就创造了超过400万的用户数量&#xff01; 循环购商业模式的核心概念涵盖三个关键要素&#xf…

【NX】分割曲线出现“输入行的长度为0”

在nx使用分割曲线的功能或者函数的时候&#xff0c;偶尔会提示如下&#xff1a; “输入行的长度为0”。实际上这是翻译的过&#xff0c;应该是the length of input is 0 之类的直译。 针对这种情况&#xff0c;一般要考虑是输入的曲线有问题或者点有问题&#xff0c;这时候我们…

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 &#x1f4cc;参考文章&#xff1a;https://xiaozhuanlan.com/topic/6058234791&#x1f39e;实现效果演示&#xff1a; &#x1f516;上图中的读到的FLASH_ID所指的是针对不同容量&#xff0c;所对应的ID。 //W25X/Q不同容量对应…

spring小记

Spring是轻量级的开源的javaEE框架目的&#xff1a;解决企业应用开发的复杂性 Spring有两个核心部分&#xff1a;IOC和AOP <1>IOC&#xff1a;控制反转&#xff0c;把创建的对象过程交给Spring进行管理 <2>AOP&#xff1a;面向切面&#xff0c;不修改源代码进行…

软件测试及数据分析处理实训室建设方案

一 、系统概述 软件测试及数据分析处理是软件开发过程中的一项重要测试活动&#xff0c;旨在验证不同软件模块或组件之间的集成与交互是否正常。综合测试确保各个模块按照设计要求正确地协同工作&#xff0c;以实现整个软件系统的功能和性能。以下是软件测试及数据分析处理的一…

无涯教程-Android - 系统架构

Android操作系统是一堆软件组件&#xff0c;大致分为五个部分和四个主要层&#xff0c;如体系结构图中所示。 Linux内核 底层是Linux-Linux 3.6&#xff0c;带有大约115个补丁&#xff0c;这在设备硬件之间提供了一定程度的抽象&#xff0c;并且包含所有必需的硬件驱动程序&am…