深度学习(神经网络、决策树)第一周——如何在神将网络进行推理
一、神经网络的工作原理
层(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的矩阵乘法。
更多推荐



所有评论(0)