大家好,我是微学AI,今天给大家介绍一下神经网络的基本知识。

一、神经网络案例

神经网络就像一个人,它可以从外部获取输入信息并将其转换为内部结构,以便在不同的情况下做出正确的决定。神经网络也像一个掌握语言的机器,它能够接受输入,模仿人类的学习方式,从而学习和记忆特定的输入和输出之间的关系。

例如,当一个人面对一棵大树时,他可以从外部视觉输入中获取信息,并基于这些信息来做出决定,例如攀爬树或不攀爬树。这就是神经网络所做的,它们可以收集外部信息,转换它们,并基于这些信息做出正确的决定或预测。

假设你正在教给一个神经网络英语语法,它可以接受单词的输入,比如“dog”,并输出正确的单复数形式,即“dogs”。它可以通过模仿人类学习的方式,记住单词和它们的正确形式之间的关系,并继续输出正确的单复数形式。

二、神经网络仿生学

生物神经网络的仿生学原理基于人类神经系统的结构和功能,其中包括具有学习和记忆能力的神经元/突触,神经元细胞之间的连接,以及神经元细胞的反应和传递信号的机制。从这个角度来看,生物神经网络的仿生学原理包括以下几点:
1. 神经元/突触:生物神经网络仿生学原理的最基本元素是神经元/突触,即神经元细胞之间的连接。这些神经元/突触可以通过权重来表示神经元之间的连接强度。
2. 学习:神经网络可以通过学习来调整连接权重,以便能够更有效地完成特定任务。
3. 记忆:人类神经系统有一种能力,可以将已经学习过的信息储存,以便在未来可以更快地推断出结果。同样,生物神经网络也可以学习和记忆信息,从而更有效地完成特定任务。
4. 传递信号:人类神经系统可以通过传递神经元信号来传递信息,以便完成特定任务。同样,生物神经网络也可以传递神经元信号,从而完成特定任务。

三、神经网络具体结构:

神经网络的原理主要可以分为三个层次:输入层、隐含层和输出层。
1.输入层:神经网络的输入层由输入单元组成,它们接收外部环境的输入信号,并将其转化为神经网络可以理解的信号。
2.隐含层:隐含层是神经网络的核心,它由多个神经元组成,它们可以接收输入层传来的信号,并对其进行加工处理,以便识别出有用的信息,并将其输出给输出层。
3.输出层:输出层由输出单元组成,它们从隐含层接收到的信号,并将其转化为结果输出,以便外部环境对其进行处理。
神经网络通过反复调整连接权重和神经元参数,以调整信号在各个神经元之间传递的强度,从而使神经网络能够实现复杂的任务,实现自动化处理信息的目标。

四、神经网络的数学计算:

下面举一个案例,神经网络有有3个输入,2个输出,1个隐藏层,隐藏层有4个神经元:

设输入层的输入为(x_1, x_2, x_3),输出层的输出为(y_1, y_2),隐藏层的输出为(h_1, h_2, h_3, h_4)
设权重矩阵为:
W_{input-hidden}=\begin{bmatrix} w_{11} & w_{12} & w_{13} & w_{14} \\ w_{21} & w_{22} & w_{23} & w_{24} \\ w_{31} & w_{32} & w_{33} & w_{34} \end{bmatrix}
W_{hidden-output}=\begin{bmatrix} w_{1} & w_{2} & w_{3} & w_{4} \\ w_{5} & w_{6} & w_{7} & w_{8} \end{bmatrix}

那么,隐藏层的4个神经元的计算公式为:
h_1=f(w_{11}x_1 + w_{21}x_2 + w_{31}x_3)
h_2=f(w_{12}x_1 + w_{22}x_2 + w_{32}x_3)
h_3=f(w_{13}x_1 + w_{23}x_2 + w_{33}x_3)
h_4=f(w_{14}x_1 + w_{24}x_2 + w_{34}x_3)
输出层的2个神经元的计算公式为:
y_1=f(w_1h_1 + w_2h_2 + w_3h_3 + w_4h_4)
y_2=f(w_5h_1 + w_6h_2 + w_7h_3 + w_8h_4)
其中,f表示激活函数,比如sigmoid函数。

L层神经网络通用的公式表达:

\begin{aligned} z^{[1]} &= W^{[1]}x + b^{[1]} \\ a^{[1]} &= g^{[1]}(z^{[1]}) \\ z^{[2]} &= W^{[2]}a^{[1]} + b^{[2]} \\ a^{[2]} &= g^{[2]}(z^{[2]}) \\ \vdots \\ z^{[L]} &= W^{[L]}a^{[L-1]} + b^{[L]} \\ a^{[L]} &= g^{[L]}(z^{[L]}) \\ \end{aligned}

z^{[1]}:表示第一层网络的线性输出,z^{[1]}= W^{[1]}x + b^{[1]},其中W^{[1]}是第一层的权重矩阵,x表示输入,b^{[1]}表示第一层的偏置向量。
a^{[1]}:表示第一层网络的激活输出,a^{[1]}=g^{[1]}(z^{[1]}),其中g^{[1]}表示第一层的激活函数。
z^{[2]}: 表示第二层网络的线性输出,z^{[2]}= W^{[2]}a^{[1]} + b^{[2]},其中W^{[2]}是第二层的权重矩阵,a^{[1]}表示第一层的激活输出,b^{[2]}表示第二层的偏置向量。
a^{[2]}: 表示第二层网络的激活输出,a^{[2]}=g^{[2]}(z^{[2]}),其中g^{[2]}表示第二层的:
z^{[L]}:第 L层神经网络的激活前线性函数,z^{[L]}=W^{[L]}a^{[L-1]}+b^{[L]},其中W^{[L]}是第L 层的权重矩阵,a^{[L-1]}是第 L-1层的激活函数,b^{[L]}是第L 层的偏置向量。
a^{[L]}:L 层层神经网络的激活函数,a^{[L]}=g^{[L]}(z^{[L]}),其中g^{[L]}是第 L 层的激活函数。

五、神经网络的实现代码:

神经网络有有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等。

往期作品:

 一、人工智能基础部分

1.人工智能基础部分1-人工智能的初步认识

2.人工智能基础部分2-一元一次函数感知器

3.人工智能基础部分3-方差损失函数的概念

4.人工智能基础部分4-梯度下降和反向传播

5.人工智能基础部分5-激活函数的概念

6.人工智能基础部分6-神经网络初步认识

7.人工智能基础部分7-高维空间的神经网络认识

8.人工智能基础部分8-深度学习框架keras入门案例

9.人工智能基础部分9-深度学习深入了解

10.人工智能基础部分10-卷积神经网络初步认识

11.人工智能基础部分11-图像识别实战

12.人工智能基础部分12-循环神经网络初步认识

13.人工智能基础部分13-LSTM网络:自然语言处理实践

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐