赞
踩
大家好,我是微学AI,今天给大家介绍一下神经网络的基本知识。
一、神经网络案例
神经网络就像一个人,它可以从外部获取输入信息并将其转换为内部结构,以便在不同的情况下做出正确的决定。神经网络也像一个掌握语言的机器,它能够接受输入,模仿人类的学习方式,从而学习和记忆特定的输入和输出之间的关系。
例如,当一个人面对一棵大树时,他可以从外部视觉输入中获取信息,并基于这些信息来做出决定,例如攀爬树或不攀爬树。这就是神经网络所做的,它们可以收集外部信息,转换它们,并基于这些信息做出正确的决定或预测。
假设你正在教给一个神经网络英语语法,它可以接受单词的输入,比如“dog”,并输出正确的单复数形式,即“dogs”。它可以通过模仿人类学习的方式,记住单词和它们的正确形式之间的关系,并继续输出正确的单复数形式。
二、神经网络仿生学
生物神经网络的仿生学原理基于人类神经系统的结构和功能,其中包括具有学习和记忆能力的神经元/突触,神经元细胞之间的连接,以及神经元细胞的反应和传递信号的机制。从这个角度来看,生物神经网络的仿生学原理包括以下几点:
1. 神经元/突触:生物神经网络仿生学原理的最基本元素是神经元/突触,即神经元细胞之间的连接。这些神经元/突触可以通过权重来表示神经元之间的连接强度。
2. 学习:神经网络可以通过学习来调整连接权重,以便能够更有效地完成特定任务。
3. 记忆:人类神经系统有一种能力,可以将已经学习过的信息储存,以便在未来可以更快地推断出结果。同样,生物神经网络也可以学习和记忆信息,从而更有效地完成特定任务。
4. 传递信号:人类神经系统可以通过传递神经元信号来传递信息,以便完成特定任务。同样,生物神经网络也可以传递神经元信号,从而完成特定任务。
三、神经网络具体结构:
神经网络的原理主要可以分为三个层次:输入层、隐含层和输出层。
1.输入层:神经网络的输入层由输入单元组成,它们接收外部环境的输入信号,并将其转化为神经网络可以理解的信号。
2.隐含层:隐含层是神经网络的核心,它由多个神经元组成,它们可以接收输入层传来的信号,并对其进行加工处理,以便识别出有用的信息,并将其输出给输出层。
3.输出层:输出层由输出单元组成,它们从隐含层接收到的信号,并将其转化为结果输出,以便外部环境对其进行处理。
神经网络通过反复调整连接权重和神经元参数,以调整信号在各个神经元之间传递的强度,从而使神经网络能够实现复杂的任务,实现自动化处理信息的目标。
四、神经网络的数学计算:
下面举一个案例,神经网络有有3个输入,2个输出,1个隐藏层,隐藏层有4个神经元:
设输入层的输入为,输出层的输出为
,隐藏层的输出为
;
设权重矩阵为:
那么,隐藏层的4个神经元的计算公式为:
输出层的2个神经元的计算公式为:
其中,表示激活函数,比如
函数。
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)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
六、神经网络涉及的内容
学习神经网络的初步知识需要掌握以下几个方面的知识,这些之前课程有涉及一些:
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网络:自然语言处理实践
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。