Pycharm(二十)神经网络入门

一、什么是神经网络

人工神经网络 ( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN),是一种模仿生物神经网络结构和功能的计算模型。人脑可以看做是一个生物神经网络,由众多的神经元连接而成。各个神经元传递复杂的电信号,树突接收到输入信号,然后对信号进行处理,通过轴突输出信号

当电信号通过树突进入到细胞核时,会逐渐聚集电荷。达到一定的电位后,细胞就会被激活,通过轴突发出电信号

如何构建神经网络?

这个过程就像,来源不同树突(树突都会有不同的权重)的信息, 进行的加权计算, 输入到细胞中做加和,再通过激活函数输出细胞值。

使用多个神经元来构建神经网络,相邻层之间的神经元相互连接,并给每一个连接分配一个强度.

概述:

神经网络中信息只向一个方向移动,即从输入节点向前移动,通过隐藏节点,再向输出节点移动。其中的基本部分是:

1.输入层: 即输入 x 的那一层;

2.输出层: 即输出 y 的那一层;

3.隐藏层: 输入层和输出层之间都是隐藏层;

特点:

1.同一层的神经元之间没有连接;

2.第 N 层的每个神经元和第 N-1层 的所有神经元相连(这就是full connected的含义),这就是全连接神经网络;

3.第N-1层神经元的输出就是第N层神经元的输入

4.每个连接都有一个权重值(w系数和b系数)。

二、激活函数

激活函数 用于对每层的输出数据进行变换, 进而为整个网络注入了非线性因素。此时, 神经网络就可以拟合各种曲线

注:

1.没有引入非线性因素的网络等价于使用一个线性模型来拟合;

2.通过给网络输出增加激活函数, 实现引入非线性因素, 使得网络模型可以逼近任意函数, 提升网络对复杂问题拟合能力

常见的激活函数如下:

2.1 sigmoid函数

补充:

1.sigmoid 函数可以将任意的输入映射到**(0, 1)之间,当输入的值大致在 <-6 或者 >6 时,意味着输入任何值得到的激活值都是差不多的,这样会丢失部分的信息**。比如:输入100和输入 10000 经过 sigmoid 的激活值几乎都是等于 1 的,但是输入的数据之间相差 100 倍的信息就丢失了;

2.对于 sigmoid 函数而言,输入值在**[-6, 6]之间输出值才会有明显差异**,输入值在**[-3, 3]之间才会有比较好的效果;**

3.通过上述导数图像,我们发现导数数值范围是**(0, 0.25),当输入<-6 或者 >6** 时,sigmoid 激活函数图像的导数接近为 0,此时网络参数将更新极其缓慢,或者无法更新;

4.一般来说, sigmoid 网络在 5 层之内就会产生梯度消失现象。而且,该激活函数并不是以 0 为中心的,所以在实践中这种激活函数使用的很少。sigmoid函数一般只用于二分类的输出层

Python示例代码如下:

相关推荐
舒一笑21 分钟前
如何获取最新的技术趋势和热门技术
人工智能·程序员
聚客AI37 分钟前
🎉OpenClaw深度解析:多智能体协同的三种模式、四大必装技能与自动化运维秘籍
人工智能·开源·agent
黄粱梦醒43 分钟前
大模型企业级部署方案-vllm
人工智能·llm
IT_陈寒1 小时前
JavaScript代码效率提升50%?这5个优化技巧你必须知道!
前端·人工智能·后端
IT_陈寒1 小时前
Java开发必知的5个性能优化黑科技,提升50%效率不是梦!
前端·人工智能·后端
康斯坦丁师傅1 小时前
发现一个插件,免费用谷歌最新NanoBanana 2
人工智能
emo猫pro_max3 小时前
openclaw飞书流式回复配置指南
人工智能
FishCoderh3 小时前
被OpenClaw的Session搞晕了?这篇让你彻底搞懂
人工智能
孤烟3 小时前
19 万 + GitHub 星标!OpenClaw 凭什么成为 2026 最火 AI Agent,万字实测告诉你
人工智能
zhl774 小时前
YOLOv5:从0搭建你的第一个目标检测模型
人工智能