人工智能基础部分6-神经网络初步认识(超详细)
大家好,我是微学AI,今天给大家介绍一下神经网络的基本知神经网络就像一个人,它可以从外部获取输入信息并将其转换为内部结构,以便在不同的情况下做出正确的决定。神经网络也像一个掌握语言的机器,它能够接受输入,模仿人类的学习方式,从而学习和记忆特定的输入和输出之间的关系。
大家好,我是微学AI,今天给大家介绍一下神经网络的基本知识。
目录
一、神经网络案例
神经网络就像一个人,它可以从外部获取输入信息并将其转换为内部结构,以便在不同的情况下做出正确的决定。神经网络也像一个掌握语言的机器,它能够接受输入,模仿人类的学习方式,从而学习和记忆特定的输入和输出之间的关系。
例如,当一个人面对一棵大树时,他可以从外部视觉输入中获取信息,并基于这些信息来做出决定,例如攀爬树或不攀爬树。这就是神经网络所做的,它们可以收集外部信息,转换它们,并基于这些信息做出正确的决定或预测。
假设你正在教给一个神经网络英语语法,它可以接受单词的输入,比如“dog”,并输出正确的单复数形式,即“dogs”。它可以通过模仿人类学习的方式,记住单词和它们的正确形式之间的关系,并继续输出正确的单复数形式。
二、神经网络仿生学
生物神经网络的仿生学原理基于人类神经系统的结构和功能,其中包括具有学习和记忆能力的神经元/突触,神经元细胞之间的连接,以及神经元细胞的反应和传递信号的机制。从这个角度来看,生物神经网络的仿生学原理包括以下几点:
1. 神经元/突触:生物神经网络仿生学原理的最基本元素是神经元/突触,即神经元细胞之间的连接。这些神经元/突触可以通过权重来表示神经元之间的连接强度。
2. 学习:神经网络可以通过学习来调整连接权重,以便能够更有效地完成特定任务。
3. 记忆:人类神经系统有一种能力,可以将已经学习过的信息储存,以便在未来可以更快地推断出结果。同样,生物神经网络也可以学习和记忆信息,从而更有效地完成特定任务。
4. 传递信号:人类神经系统可以通过传递神经元信号来传递信息,以便完成特定任务。同样,生物神经网络也可以传递神经元信号,从而完成特定任务。
三、神经网络具体结构:
神经网络的原理主要可以分为三个层次:输入层、隐含层和输出层。
1.输入层
神经网络的输入层由输入单元组成,它们接收外部环境的输入信号,并将其转化为神经网络可以理解的信号。
2.隐含层
隐含层是神经网络的核心,它由多个神经元组成,它们可以接收输入层传来的信号,并对其进行加工处理,以便识别出有用的信息,并将其输出给输出层。
3.输出层
输出层由输出单元组成,它们从隐含层接收到的信号,并将其转化为结果输出,以便外部环境对其进行处理。
神经网络通过反复调整连接权重和神经元参数,以调整信号在各个神经元之间传递的强度,从而使神经网络能够实现复杂的任务,实现自动化处理信息的目标。
四、神经网络的数学计算
下面举一个案例,神经网络有有3个输入,2个输出,1个隐藏层,隐藏层有4个神经元:
下面用一个简单的三层神经网络(1个隐藏层)举例说明数学计算过程。
网络结构
输入层:3个神经元(记为 )
隐藏层:4个神经元(记为)
输出层:2个神经元(记为)
1. 参数定义
输入到隐藏层的权重矩阵:4×3 矩阵
隐藏层的偏置:4×1 向量
隐藏到输出层的权重矩阵 :2×4 矩阵
-输出层的偏置:2×1 向量
2. 数学公式
输入层到隐藏层
其中,是激活函数(如ReLU或sigmoid)。
隐藏层到输出层
其中,是输出层的激活函数(如softmax或sigmoid)。
具体案例
假设:
输入:
- 激活函数取ReLU:
输出层激活函数取恒等映射(即不变)
步骤1:输入到隐藏层
计算得:
第一行:0.1 + 0.4 + 0.9 + 0.1 = 1.5
第二行:0.4 + 1.0 + 1.8 + 0.2 = 3.4
第三行:0.7 + 1.6 + 2.7 + 0.3 = 5.3
第四行:1.0 + 2.2 + 3.6 + 0.4 = 7.2
所以
(ReLU激活,全部为正,值不变)
步骤2:隐藏层到输出层
第一行:
0.15 + 0.68 + 1.59 + 2.88 + 0.1 = 5.4
第二行:
0.75 + 2.04 + 3.71 + 5.76 + 0.2 = 12.46
输入经过权重和偏置线性变换、激活函数,得到隐藏层输出
隐藏层输出再经过权重和偏置线性变换、激活函数,得到最终输出
五、神经网络的实现代码
神经网络有有3个输入,2个输出,1个隐藏层,隐藏层有4个神经元的代码实现
import numpy as np
# 输入层-隐藏层的权重
weights_input_hidden = np.array([[1, 2, 3, 4],
[2, 3, 4, 5],
[3, 4, 5, 6]])
# 隐藏层-输出层的权重
weights_hidden_output = np.array([[1, 2],
[2, 3],
[3, 4],
[4, 5]])
# 输入值
input_data = np.array([2, 3, 4])
# 定义激活函数
def sigmoid(x):
return 1.0/(1.0 + np.exp(-x))
# 计算隐藏层的输出
hidden_layer_input = np.dot(input_data, weights_input_hidden)
hidden_layer_output = sigmoid(hidden_layer_input)
# 计算输出层的输出
output_layer_input = np.dot(hidden_layer_output, weights_hidden_output)
output = sigmoid(output_layer_input)
print(output)
六、神经网络涉及的内容
学习神经网络的初步知识需要掌握以下几个方面的知识,这些之前课程有涉及一些:
1.线性代数:神经网络中常用的矩阵运算,例如矩阵乘法,线性方程组的求解等都需要用到线性代数的知识。
2.神经网络的基础概念:包括人工神经元、权重、激活函数、正则化、损失函数等。
3.梯度下降算法:神经网络的训练过程中,常常需要使用梯度下降算法来最小化损失函数。需要了解梯度下降算法的原理以及如何应用。
4.神经网络的基本结构:需要了解神经网络的基本构成,包括输入层,隐藏层,输出层,权重,偏置等概念。
5.前向传播算法:了解如何使用神经网络进行预测,包括使用权重和偏置计算输入到隐藏层的信号,以及使用激活函数对信号进行非线性变换。
6.反向传播算法:了解如何使用反向传播算法计算损失函数对权重和偏置的梯度,以便使用梯度下降算法进行训练。
7.激活函数:了解常用的激活函数,包括 Sigmoid 函数,Tanh 函数,ReLU 函数,softmax函数等;
8.神经网络的架构:常用的神经网络架构,如卷积神经网络CNN、循环神经网络RNN、长短期记忆网络等LSTM。
9. 神经网络的应用:图像分类、语音识别、自然语言处理等。
10. 神经网络的实现框架:TensorFlow、PyTorch、Paddle等。
往期作品:
一、人工智能基础部分
7.人工智能基础部分7-高维空间的神经网络认识
9.人工智能基础部分9-深度学习深入了解
10.人工智能基础部分10-卷积神经网络初步认识
11.人工智能基础部分11-图像识别实战
12.人工智能基础部分12-循环神经网络初步认识
13.人工智能基础部分13-LSTM网络:自然语言处理实践
更多推荐
所有评论(0)