一、神经网络的工作原理

层(layer):是一组或一个神经元,它们以相同的或相似的特征作为输入,并依次输出一些数字。

以下是预测一种T恤成为畅销品的概率,有四个特征作为特征向量x来输入,它们会影响顾客的可负担性、认知度和感知质量,其中,输出的概率也叫激活值,其实这就是一个逻辑回归,输入特征向量后通过逻辑回归来预测成为畅销品的概率。

黄色为输入层,中间蓝色为中间层,也叫隐藏层,右边粉色叫输出层。

因此,神经网络的工作原理就是特征向量输入到隐藏层,输出一个包含几个激活值的向量,再作为输入被输入到第二个隐藏层(如果不止一个的话)或者进入输出层,输出神经网络的最终预测。

神经网络架构就是选择几个隐藏层,每个隐藏层有几个神经元的技巧。

二、神经元是如何工作的

1.一层神经元

 

其中[1]表示与神将网络第1层相关的量。

2.更复杂的神经网络

三、前向传播

1.如上图中,从左到右进行计算,从x->a[1]->a[2]->a[3]这个过程就是前向传播

2.代码实现(使用TensorFlow在神经网络中进行推理):

units=3表示这一层有三个隐藏单元,使用sigmoid作为激活函数。

四、TensorFlow中的数据

1.Numpy表示

将二维数组又按行作为一个一维数组存储,所有又会有一个“[]”。

import numpy as np

# 创建 NumPy 矩阵
np_array = np.array([[1, 2, 3],
                     [4, 5, 6]])
print("NumPy 矩阵:")
print(np_array)

运行后输出:

NumPy 矩阵:

[[1 2 3]

 [4 5 6]]

2.TensorFlow表示

import tensorflow as tf

# 创建 TensorFlow 张量(矩阵)
tf_tensor = tf.constant([[1, 2, 3],
                         [4, 5, 6]])
print("TensorFlow 张量:")
print(tf_tensor)

TensorFlow 张量:

tf.Tensor( [[1 2 3] [4 5 6]], shape=(2, 3), dtype=int32)

tf.constant 是 TensorFlow 中用于创建常量(不可变张量) 的函数,它会生成一个值固定不变的张量(多维数组),一旦创建就无法修改其元素值。

shape=(2,3)表示这是一个2x3的矩阵。

还可以将TensorFlow转换回numpy。

3.TensorFlow另一种实现前向传播和学习的方法(如何在TensorFlow中构建神经网络)

使用顺序(Sequential)函数,Tensor Flow中编码,不会显示的将两层分配给两个变量,而是使用顺序模型。

4.使用python和numpy实现单层前向传播

5.对上面单层前向传播的简化

W是一个2x3的矩阵,W.shape[1]是求列数,下面代码是求当前层的单元数,将a_out设置为一个与单元数相同元素数量的零数组,W[:,j]这是python中提取矩阵W第j列的方式,密集函数sequential的作用是输入前一层的激活值,并根据当前层的参数,返回下一层的激活值。

6.前向传播的高效实现

下面是函数的向量化实现,matmul是numpy进行矩阵乘法的方式,这些量都是二维数组

五、矩阵乘法

1.矩阵乘法的代码实现

A.T是求转置,matmul和@都是调用numpy的矩阵乘法。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐