什么是神经网络,它的原理是啥?(1)

参考:https://www.youtube.com/watch?v=mlk0rddP3L4\&list=PLuhqtP7jdD8CftMk831qdE8BlIteSaNzD

视频1: 简单介绍神经网络的基本概念,以及一个训练好的神经网络是怎么使用的

分类算法中,神经网络在训练过程中会学习输入的 pattern,这个 pattern 会被用来区分以后的新输入

神经网络分为如图三层

输入层的神经元数量等于输入的特征数量

以图像识别为例,下图所需的神经元数量是 2352

如下图是输出层,我们的图中输出层只有一个神经元,所以只能做二元分类

隐藏层通常用于保存 "pattern"

通常来说,隐藏层越多,就能用于识别越复杂的图像,做更复杂更精细的分类。但是同样的,隐藏层越多、神经元越多,也会带来更大的存储开销和计算开销。

相邻两层的神经元之间有两两相连的 "边(连接)"。每条边都有权重,这个权重是被我们训练出来的。

权重的用法是:用来做 "加权乘法和(权重和)",也可以直观的解释下,就说是给每个特征一些权重,如下图

如上图,通常还会有个 bias

下一个概念:激活函数。通常,一个神经元的输出是激活函数的输出,而这个激活函数的 输入/参数 就是刚刚计算的权重和

需要注意的是 a21 神经元,以及和它同一层的神经元接下来也会做 权重和,然后继续对 a3? 等等神经元做同样的事情,这样一层一层传递下去,直到最后计算出 output layer

那么接下来的问题是:这些"边"的权重是怎么被计算的?

如上图,首先给这些边分配随机值,接着进行训练,训练过程会改变权重的值。

关于具体的训练过程,看下个视频。

视频2:大致介绍一些训练神经网络的框架、轮廓,没有深入细节

(谷歌浏览器无障碍字幕挺好用的)

视频里先介绍了计算、讨论神经网络时一些符号的意义

如上图,说明了,下一层神经元的值,和上一层神经元的值之间的关系,其实可以用一个矩阵计算的公式来表示

这里有一个前提,就是所有神经元(至少同一层)的激活函数都是一样的,那么我们才可以用同一个 f 来计算神经元的值

不同的输入,会激活不同的神经元

使用神经网络的过程中,我们会看到输入层计算权重和传到隐藏层,隐藏层不同的神经元被激活,再计算权重和传到下一个隐藏层... 这个过程就叫做 向前传播

Forward Propagation

向前传播算法如下图

那么,我们如何训练神经网络,来找到适合的权重矩阵和 bias 呢?

如下图,是 cost 函数,它的意思就是:模型的输出和实际值之间的差。

"改变 权重矩阵 和 bias,让 cost 函数的输出最小化" 这个就是训练模型的过程

如下图,如果我们可以绘制 cost 和 weight 的关系如下图,这是一个有全局最优的图,那么我们就可以用梯度下降法来优化权重矩阵

alpha 是学习速率,它旁边那个东西是曲线的斜率

当然了,神经网络中的参数有很多,每两层神经元之间都有一对 权重矩阵 和 bias,所以训练过程如下,我们会计算 cost 函数和不同参数的斜率、求导,随后进行梯度下降法进行优化

如上图,在我们优化参数的时候,我们在最小化 cost,cost 取决于 a2,a2取决于 W2 和 a1,a1 取决于 W1 和 a0。这个向后的过程我们就叫做向后传播算法, back propagation

一个整体的训练模型过程如下

相关推荐
ZTLJQ27 分钟前
深入理解CNN:卷积神经网络的原理与实战应用
人工智能·神经网络·cnn
WJSKad12353 小时前
[特殊字符] Mimi音频神经网络编解码器:高保真声音处理的突破
人工智能·神经网络·音视频
輕華3 小时前
零基础吃透 CNN 卷积神经网络:MNIST 手写数字识别实战全解(附完整可运行代码)
人工智能·神经网络·cnn
老鱼说AI4 小时前
大模型面试第二期:层归一化篇
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·chatgpt
Dev7z4 小时前
原创论文:基于卷积神经网络和递归神经网络的PE恶意文件检测识别
人工智能·神经网络·cnn·pe恶意文件
机器学习之心6 小时前
RF-RFE-BP基于随机森林递归特征消除(RF-RFE)与BP神经网络回归预测,MATLAB代码
神经网络·随机森林·回归·rf-rfe-bp
EQUINOX16 小时前
现代卷积神经网络
人工智能·神经网络·cnn
乾元7 小时前
红队测试:如何对大模型进行系统性的安全红队评估
运维·网络·人工智能·神经网络·安全·网络安全·安全架构
EQUINOX119 小时前
卷积神经网络
人工智能·神经网络·cnn
所谓伊人,在水一方3331 天前
【Python数据科学实战之路】第18章 | 大模型与数据科学:LLM赋能数据分析新时代
开发语言·python·深度学习·神经网络·数据分析·tensorflow