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

1.需求预测

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

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

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

3.如何构建一层神经元

在这里插入图片描述
第一个隐藏层放大来看
在这里插入图片描述
第二个输出层放大来看
如果你想要一个二进制预测(1或者是0),对阈值大小进行判断
总结:神经网络的工作原理:每一层都输入一个数字向量,并对其应用一系列逻辑回归单元,然后计算另一个数字向量,然后从一层传递到另一层,直到最后的输出层计算出它对神经网络的预测,然后你可以在零点五的阈值,或者不提出最终的预测。

4.更复杂的神经网络

当我们说一个神经网络有四个层时,包括所有的隐藏层和输出层,不包括输入层,输入层为第0层。
在这里插入图片描述
第三次要做什么计算才能从二层变成三层?如果它有三个神经元或者我们称为三个隐藏单位。
在这里插入图片描述
计算神经网络中任意层的激活值: 对于任意层l和任意单位j,g也被称为激活函数(因为g输出激活值)如下图所示:
在这里插入图片描述

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

(让你的神经网络做出推断或预测)为了简单起见,我们区分手写数字0和1,所以这只是一个二进制分类问题,我们要输入图像并分类。把那个图像放到88的网格或矩阵中,四个像素强度值,25表示一个明亮的白色像素,零表示一个黑色像素,不同的数字是不同的在这黑白之间的黑色阴影,如下图所示:
在这里插入图片描述
这里我们给出四个输入特性,我们将使用一个带有两个隐藏层的神经网络,第一层有25个神经元或25个单位,第二层有15个神经元或15个单位,最后输出层输出几率是多少
在这里插入图片描述
我们通过一系列计算:我们需要建立的神经网络从输入x(这个8
8或64的矩阵预测概率的四个数字),第一个计算是从x到a1(这就是第一层或隐藏的第一层所做的),它执行上标方括号的计算,如下图所示:
在这里插入图片描述
同理,第二层,因为有15个单元,所以下标是1-15,如下图所示:
在这里插入图片描述
最后一步是计算a3,用相似的计算方法,输出层只有一个单元,所以只有一个输出,所以a3是一个标量。最后你可以选择一个阈值0.5 得出一个二进制分类标签。
在这里插入图片描述
所以,计算顺序是首先取x,在计算a1,再计算a2,再计算a3,a3也是神经网络的输出,所以a3可以写成f(x)。
因此记住: 当我们学习线性回归和逻辑回归时,我们用x的f表示线性回归或logistic回归的输出,所以我们也可以用x 的f来表示由神经网络计算的函数是x 的函数。因为计算是从左到右的,从x计算a1,a2,a3,这种算法也叫正向传播(因为你传播神经元的激活是从左到右沿着向前的方向进行计算的),反之为反向传播。

6.tensorflow在代码中实现推理

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

7.TensorFlow中的数据如何表示

TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表。
(当你实现新的神经网络时,你可以用一个一致的框架来考虑如何表示你的数据)
这个例子还是咖啡豆。并且你有一个如下所示数据集:
在这里插入图片描述
这里需要明确numpy如何存储向量和矩阵:每一行是一个中括号,总的又在一个中括号里。
在这里插入图片描述
回到咖啡豆的例子。数据集的表示如下:
在这里插入图片描述
用于在神经网络中进行传播或推理的代码
在这里插入图片描述
tensor是tensorflow创建的一种数据类型,用于在矩阵上充分存储和执行计算,可看作表示矩阵的一种方法。(数组)
事实上,如果想取一个a1并把他转回一个tensor的数组,可以用numpy,它将获取相同的数据 并以数字数组的形式返回,而不是以矩阵的形式。

8.构建一个神经网络

在tensorflow中建立一个神经网络:
原先的方法是一次一层的计算,向前推进:
在这里插入图片描述
tensorflow还有一种不同的方式来实现向前推进:
向之前一样,先建立第一层和第二层,但现在你不用自己手动获取数据并将其传递到第一层 然后激活到第一层 再传递到第二层,相反,我们可以告诉tensorflow我们希望它采取第一层和第二层,并将它们串在一起,形成一个神经网络,这就是tensorflow中Sequential函数的作用。
在这里插入图片描述
用tensorflow重做数字识别: 一二三层,然后告诉tensorflow把这些层串成一个神经网络,可以将数据存储在一个矩阵中并运行编译函数和拟合函数,最后进行推断和预测。你可以在x_new上使用模型预测。在这里插入图片描述
可以使代码更紧凑:
在这里插入图片描述
告诉tensorflow为我创建一个模型,按顺序将这三层串在一起,剩下的代码和以前一样。
在这里插入图片描述
这就是在tensorflow中建立神经网络的方法。

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

在这里插入图片描述
在这里插入图片描述

10.向前传播的一般实现

在这里插入图片描述

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

学习研究人员已经能够扩大神经网络的规模并建立真正的神经网络。因为神经网络可以被矢量化,使用矩阵乘法可以非常有效地实现它们。
如下代码是您以前看到的关于如何向前实现的代码: (输入x,w,b,它会输出三个数字,如下所示)
在这里插入图片描述
事实证明,你可以开发这个函数的矢量化实现如下所示:(设x的值,这里需要注意是双方括号,代表二维数组;w和以前一样;b也是一个1×3的二维数组,内部的for循环可以替换为几行代码,如下所示,这个模型就是Numpy如何进行矩阵乘法 并将两个矩阵相乘在一起 再加上矩阵b)
在这里插入图片描述
现在x和w都是矩阵,所以你只要把它们相乘在一起 ,结果发现这个循环所有这些代码都可以用几行代码来替换,它给出了这个函数的矢量化实现。
注意:像x,w,b,A_in这些变量都是二维数组。

12.矩阵乘法

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

13.矩阵乘法代码

在代码中,这个矩阵数组A是一个numpy数组,AT是数组A的转置,就是A的列按行排列。
在这里插入图片描述
w是一个二维数组:
在这里插入图片描述
然后计算Z等于AT乘以W,也就是np.matmul(AT,W)。其中matmul函数的另一种表示方式是@,如下图所示:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值