锋哥原创的TensorFlow2 Python深度学习视频教程:
https://www.bilibili.com/video/BV1X5xVz6E4w/
课程介绍
本课程主要讲解基于TensorFlow2的Python深度学习知识,包括深度学习概述,TensorFlow2框架入门知识,以及卷积神经网络(CNN),循环神经网络(RNN),生成对抗网络(GAN),模型保存与加载等。
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 神经网络基础原理
人大脑中的神经网络
脑神经是由数以万计神经元连接组成的,中学时代我们都学习过生物,神经元主要由树突、胞体、轴突和突触组成。其中树突接收电信息,并将信号并传递至胞体,胞体承担信息整合功能,整合后如果需要进一步传递,就会通过轴突传递给下一个神经元,不同的神经元之间是通过突触连接的,如下图

突触的大小长短不一,在传递的过程中,会导致有些电信号增强有些电信号减弱,所以在胞体汇聚的时候,有些胞体的电信号增强,有些胞体的电信号减弱,所起的作用大小也不一样,这就构成了不同的权重,数以亿计的神经元综合在一起,就构成了人脑的智能。

深度学习中的神经网络
神经网络是一种模仿人脑神经元结构的计算模型。
它由多个层组成:
输入层:接收原始数据
隐藏层:进行复杂计算
输出层:给出最终结果
连接线表示神经元之间的连接,每个连接都有权重。

如下图,X就是输入数据,输入数据相当于一个个突触,W就是权重,权重就相当于突触的长短,胞体就是一个激活函数。


一个节点是这样,那我们多搞几个节点,连接起来,就如下图所示,如果看起来有点眼熟,那就对了,这就是大名鼎鼎的神经网络。

TensorFlow 2 神经网络基础与原理
神经网络(Neural Network, NN) 是模拟生物神经系统进行信息处理的一种算法,是深度学习(Deep Learning)中的核心模型之一。TensorFlow 2.x 是一个开源的深度学习框架,广泛应用于构建和训练神经网络。
神经网络由 层(Layer) 、神经元(Neuron) 、权重(Weights) 、偏置(Biases) 等基本组成部分构成。神经网络的目标是通过调整权重和偏置,学习输入数据和输出结果之间的关系。TensorFlow 2.x 提供了高效的工具来构建、训练和评估神经网络。
神经网络的基本原理
-
神经元(Neuron)
-
神经元是神经网络的基本单元,类似于生物神经系统中的神经细胞。每个神经元接收输入,进行加权求和,然后通过激活函数生成输出。
-
每个神经元的输出是输入值和权重的加权和再加上偏置,然后通过激活函数进行非线性变换。
-
-
权重(Weights)
- 权重是神经元之间连接的参数,用来调整输入信号的重要性。网络通过学习来优化这些权重,以便更好地拟合数据。
-
偏置(Bias)
- 偏置用于调整神经元的输出,使其不依赖于输入信号。它确保了神经元的输出可以更灵活地表示各种关系。
-
激活函数(Activation Function)
- 激活函数决定了神经元的输出。它的作用是引入非线性,使神经网络能够学习到复杂的模式。常见的激活函数包括 ReLU 、Sigmoid 、Tanh 和 Softmax。
-
前向传播(Forward Propagation)
- 前向传播是神经网络进行预测的过程,输入数据通过每一层的神经元进行传递,最终输出结果。
-
损失函数(Loss Function)
- 损失函数用于衡量模型预测结果与真实结果之间的差距。常见的损失函数有 均方误差(MSE) 和 交叉熵(Cross-Entropy)。
-
反向传播(Backpropagation)
- 反向传播是训练神经网络的关键过程,通过计算梯度并更新权重,最小化损失函数。使用 梯度下降算法 来进行优化。
-
优化算法(Optimization Algorithm)
- 优化算法决定了如何更新神经网络的权重。常见的优化算法有 梯度下降法(SGD) 、Adam 、RMSprop 等。
神经网络的训练过程
训练目标:
调整权重和偏置,让输出接近期望结果
训练步骤:
1,向前传播:计算预期输出
2,计算误差:比较预测与期望结果之间的误差
3,反向传播:计算每个权重对总误差的贡献
4,更新权重:减少误差
这个过程会重复成千上万次,直到误差足够小,那就学会了正确的模式