吴恩达2022机器学习_第二部分高级学习算法第一周笔记

目录

*
1.需求预测
2.机器学习例子:图像识别过程:
3.如何构建一层神经元
4.更复杂的神经网络
5.推理:做出预测(向前传播) 手写数字识别例子:
6.tensorflow在代码中实现推理
7.TensorFlow中的数据如何表示
8.构建一个神经网络
9.在一个单层中的向前传播
10.向前传播的一般实现
11.神经网络如何高效实现
12.矩阵乘法
13.矩阵乘法代码

1.需求预测

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
神经元 的作用是输入一个或几个数字,然后输出一个数字或者其他几个号码。(如图中的一个神经元里面就代表了神经元上边的公式,输入x,经过公式计算输出a的值)
神经网络 建立一个神经网络只需要取一堆这些神经元,把它们连接在一起或把它们放在一起。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
注:一层是一组神经元(可以有一个或多个),让我们输入相同或相似的特征,然后输出几个数字在一起。最后一层是输出层,因为最终神经元的输出是神经网络,在神经网络术语中预测的输出概率。我们还将把可负担性意识和感知质量称为激活。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记

; 2.机器学习例子:图像识别过程:

输入图片,输出图片中人的身份。输入图像x被输入到这一层神经元,这是第一个隐藏层,然后提取一些特征。第一层隐藏层的输出被传送到第二个隐藏层。输出被送到第三层。最后到达输出层。估计是某个特定的人。其中第一层神经元在寻找垂直线或垂直边缘,另一个神经元寻找一条定向线或定向边缘,第三个神经元在这个方向寻找一条线,以此类推。

3.如何构建一层神经元

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
第一个隐藏层放大来看
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
第二个输出层放大来看
如果你想要一个二进制预测(1或者是0),对阈值大小进行判断
总结:神经网络的工作原理:每一层都输入一个数字向量,并对其应用一系列逻辑回归单元,然后计算另一个数字向量,然后从一层传递到另一层,直到最后的输出层计算出它对神经网络的预测,然后你可以在零点五的阈值,或者不提出最终的预测。

; 4.更复杂的神经网络

当我们说一个神经网络有四个层时,包括所有的隐藏层和输出层,不包括输入层,输入层为第0层。

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
第三次要做什么计算才能从二层变成三层?如果它有三个神经元或者我们称为三个隐藏单位。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
计算神经网络中任意层的激活值: 对于任意层l和任意单位j,g也被称为激活函数(因为g输出激活值)如下图所示:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记

5.推理:做出预测(向前传播) 手写数字识别例子:

(让你的神经网络做出推断或预测)为了简单起见,我们区分手写数字0和1,所以这只是一个二进制分类问题,我们要输入图像并分类。把那个图像放到8 _8的网格或矩阵中,四个像素强度值,25表示一个明亮的白色像素,零表示一个黑色像素,不同的数字是不同的在这黑白之间的黑色阴影,如下图所示:

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
同理,第二层,因为有15个单元,所以下标是1-15,如下图所示:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
最后一步是计算a3,用相似的计算方法,输出层只有一个单元,所以只有一个输出,所以a3是一个标量。最后你可以选择一个阈值0.5 得出一个二进制分类标签。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
所以,计算顺序是首先取x,在计算a1,再计算a2,再计算a3,a3也是神经网络的输出,所以a3可以写成f(x)。
因此记住: 当我们学习线性回归和逻辑回归时,我们用x的f表示线性回归或logistic回归的输出,所以我们也可以用x 的f来表示由神经网络计算的函数是x 的函数。因为计算是从左到右的,从x计算a1,a2,a3,这种算法也叫正向传播(因为你传播神经元的激活是从左到右沿着向前的方向进行计算的),反之为反向传播。

; 6.tensorflow在代码中实现推理

同一个算法可以应用于不同的应用。这里拿烤咖啡豆来说,影响因素可以简化为烤的时间长短和烤的温度,

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
我们把x设为两个数字的数组,输入的特征是200摄氏度和17分钟,这一层等于密度单位。layer_1创造了一个隐藏的神经元层,有三个隐藏的单位并将其作为激活功能,Dance只是这个层的名字,有三个单元用sigmoid函数,最后计算激活值a1。layer_1将是一个由三个数字组成的列表,因为第一层有三个单元
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
第二层有一个单元(units=1),用sigmoid函数,你可以用layer_2函数来计算有a1到a2的值。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
你也可以设置阈值0.5来判断咖啡豆的好坏。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
这就是神经网络中使用tensorflow进行推理的方法。
对于如何加载tensorflow库以及如何加载神经网络的参数w和b,这些是传播的关键步骤,之后再说。
再回到手写数字识别问题 ,x是像素强度值的列表,所以x等于这个像素强度值列表中的一个数字数组,然后初始化并执行前一步的传播层layer_1,units=25也就是25个单元 用sigmoid函数,然后计算一个a1等于layer_1的函数应用于x来构建并通过第二层进行推理
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
同样地i,可以按照以下方式设置第二层,计算一个a2
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
最后可以设置成二进制预测
吴恩达2022机器学习_第二部分高级学习算法第一周笔记

7.TensorFlow中的数据如何表示

TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表。
(当你实现新的神经网络时,你可以用一个一致的框架来考虑如何表示你的数据)
这个例子还是咖啡豆。并且你有一个如下所示数据集:

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
这里需要明确numpy如何存储向量和矩阵:每一行是一个中括号,总的又在一个中括号里。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
回到咖啡豆的例子。数据集的表示如下:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
用于在神经网络中进行传播或推理的代码
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
tensor是tensorflow创建的一种数据类型,用于在矩阵上充分存储和执行计算,可看作表示矩阵的一种方法。(数组)
事实上,如果想取一个a1并把他转回一个tensor的数组,可以用numpy,它将获取相同的数据 并以数字数组的形式返回,而不是以矩阵的形式。

; 8.构建一个神经网络

在tensorflow中建立一个神经网络:
原先的方法是一次一层的计算,向前推进:

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
tensorflow还有一种不同的方式来实现向前推进:
向之前一样,先建立第一层和第二层,但现在你不用自己手动获取数据并将其传递到第一层 然后激活到第一层 再传递到第二层,相反,我们可以告诉tensorflow我们希望它采取第一层和第二层,并将它们串在一起,形成一个神经网络,这就是tensorflow中Sequential函数的作用。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
可以使代码更紧凑:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
告诉tensorflow为我创建一个模型,按顺序将这三层串在一起,剩下的代码和以前一样。
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
这就是在tensorflow中建立神经网络的方法。

9.在一个单层中的向前传播

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记

; 10.向前传播的一般实现

吴恩达2022机器学习_第二部分高级学习算法第一周笔记

11.神经网络如何高效实现

学习研究人员已经能够扩大神经网络的规模并建立真正的神经网络。因为神经网络可以被矢量化,使用矩阵乘法可以非常有效地实现它们。
如下代码是您以前看到的关于如何向前实现的代码: (输入x,w,b,它会输出三个数字,如下所示)

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
事实证明,你可以开发这个函数的矢量化实现如下所示:(设x的值,这里需要注意是双方括号,代表二维数组;w和以前一样;b也是一个1×3的二维数组,内部的for循环可以替换为几行代码,如下所示,这个模型就是Numpy如何进行矩阵乘法 并将两个矩阵相乘在一起 再加上矩阵b)
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
现在x和w都是矩阵,所以你只要把它们相乘在一起 ,结果发现这个循环所有这些代码都可以用几行代码来替换,它给出了这个函数的矢量化实现。
注意:像x,w,b,A_in这些变量都是二维数组。

; 12.矩阵乘法

先看两个向量的点积:第一行乘以第一列这样,之后是多行多列的,计算方法一样,线性代数基础,在此不做赘述。

13.矩阵乘法代码

在代码中,这个矩阵数组A是一个numpy数组,AT是数组A的转置,就是A的列按行排列。

吴恩达2022机器学习_第二部分高级学习算法第一周笔记
w是一个二维数组:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
然后计算Z等于AT乘以W,也就是np.matmul(AT,W)。其中matmul函数的另一种表示方式是@,如下图所示:
吴恩达2022机器学习_第二部分高级学习算法第一周笔记
吴恩达2022机器学习_第二部分高级学习算法第一周笔记

Original: https://blog.csdn.net/qq_48278620/article/details/127015013
Author: 爱敲代码的小雨
Title: 吴恩达2022机器学习_第二部分高级学习算法第一周笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/619289/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球