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示例代码如下:

相关推荐
泯泷5 分钟前
AI Agent 的下一站:让世界主动来找它
人工智能·llm·agent
xsd2024111816 分钟前
MediaMTX + FFmpeg 搭一套轻量 RTSP 流服务器
人工智能
北漂人Java22 分钟前
基于 Spring AI Alibaba WorkFlow 构建 Java 生产级 AI Agent
java·人工智能·spring
丘山录43 分钟前
本地部署 llama.cpp,3.9G 盒子只能开 5.8 万
人工智能
tinggu1 小时前
从 $6.22 到 $113.96:拆解 AI 用纯 Python 在 Blender 5.2 中“手搓”百万面 3D 场景的工程真相
人工智能
Linye1 小时前
AI 写的 HTML 原型全是空壳?聊聊真实 DOM 交互避坑
前端·人工智能
师夷长技以自愈1 小时前
手搓 AI Agent 第 7 篇:菜做砸了别硬炒——错误分类 + 双账本熔断
人工智能·python
调接口的阿光1 小时前
调用对话接口时输出被截断怎么办:先看 finish_reason,再决定是续写一次、缩小范围,还是换成更短的格式(Python)
人工智能·python
东鸿电子Eastron2 小时前
工厂节能降本落地指南:从精准能源计量搭建数字化管理基础
大数据·人工智能·能源·智能电表·能耗管理
师夷长技以自愈2 小时前
手搓 AI Agent 第 6 篇:先别动刀——Plan Mode 让 AI 报完方案才动手
人工智能