2022吴恩达机器学习课程学习笔记(第二课第一周)

欢迎

在这一课中,我们将会学习:

  • 神经网络的推理或预测
  • 训练神经网络
  • 构建机器学习系统的一些实用技巧
  • 决策树

神经元和大脑

神经网络发展

起初,神经网络的构建的动机是为了模拟人类的大脑。
但是,今天的神经网络几乎和大脑的学习方式无关

大脑中的神经元

在这里插入图片描述
神经元接受其他神经元的电脉冲,执行一些计算,然后再通过电脉冲传递给其他神经元。
在这里插入图片描述
这只是生物神经元和人工神经元之间的松散类比,因为我们目前还不知道生物大脑是如何工作的。

神经网络高速发展的原因

在这里插入图片描述
数据量的迅速增加、计算机硬件如GPU等的迅速发展。

需求预测

举例说明神经网络是如何工作的——需求预测。
在这里插入图片描述
我们使用符号 a 代表激活,它是一个来自神经科学的术语,指的是一个神经元向下游其他神经元发送的输出。
一层(layer)是指一组神经元,它们接受相同或相似的特征并产生输出。
神经网络有四个输入,然后中间层接受输入并计算出三个激活值,输出层接受三个激活值,并计算出一个结果,也就是神经网络的输出。
在上述神经网络中,对于每一个神经元,我们必须手动选择它接受上一层哪些输出,但当我们构建一个大型神经网络时,这需要大量的工作。
所以在实践中的方式是,任一神经元可以接受上一层的所有特征,只需通过合适地设置参数来弄清楚与该神经元有关的特征子集是什么即可。
在这里插入图片描述
中间层也叫隐藏层,这是由于在给定训练集时,我们可以同时观察 x 和 y,也就是我们知道什么是正确的输入,什么是正确的输出,但是我们不知道中间层输出的激活,可以看作隐藏起来了,所以被称为隐藏层。
在这里插入图片描述
另一种关于神经网络的思考方式是,我们把左半边遮住,只看右半边时,这是一个逻辑回归模型,但使用的特征不是原始特征,而是选择了一些更好的特征进行更准确的预测。所以神经网络所做的是不需要你手动设计特征,它可以自己学习选择合适的特征,这也是使神经网络成为当今世界上最强大的学习算法之一的的原因之一。
当我们自己构建神经网络时,其中一个需要做的决定就是设计多少隐藏层和每层多少个神经元,这是神经网络架构的问题。

举例-图像识别

在这里插入图片描述
第一个隐藏层中,每个神经元在寻找图像中非常短的线条;第二个隐藏层中,每个神经元在学习把之前找到的短线条组合在一起,找到面部的一小块区域;第三个隐藏层中,每个神经元在聚合面部的不同部分,形成粗糙的面部形状。
越靠近输出层的隐藏层,对应的窗口(原图像的区域)越大。

神经网络中的层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为了区分不同的层,我们使用上标方括号索引到不同的层。
上标表示第几个隐藏层,下标表示第几个神经元。
神经网络的工作原理:每一层都输入一个数字向量,对其应用一些逻辑回归单元,计算另一个数字向量,然后在层到层之间传输,直至得到最终的输出层结果。

更复杂的神经网络

在这里插入图片描述
sigmoid也被称为激活函数,即输出激活值的函数。

神经网络前向传播

举例说明神经网络是如何进行推理或预测的——手写数字识别。
在这里插入图片描述
逐步完成神经网络从输入开始需要进行的计算序列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
计算序列首先取 x,然后计算 a1,然后计算 a2,然后计算 a3,这也是神经网络的输出。
这个计算是从左到右进行的,所以这个算法被称为前向传播
这种最初有很多的隐藏单元,越靠近输出层,隐藏单元数量越少的神经网络架构是一个非常典型的网络架构

如何用代码实现推理

TensorFlowPyTorch 是最先进的深度学习框架之一。
举例说明如何使用代码实现推理——烤咖啡豆。
在这里插入图片描述
影响咖啡口感的因素有烘烤温度烘烤时间
下面是用神经网络推理设置某温度、某时间是否会产生口感好的咖啡。
在这里插入图片描述
dense 层也叫全连接层,是网络层的一种类型。

TensorFlow 中的数据形式

Numpy 和 TensorFlow 中数据的表示方式存在一些不一致的地方。
在这里插入图片描述
矩阵就是二维的数组,维度一般写成行数乘以列数。
最外围方括号里面的每一对方括号都代表矩阵的一行。
在这里插入图片描述
第一个例子代表的是 1 行 2 列的矩阵,第二个例子代表的是 2 行 1 列的矩阵,而第三个例子代表的是一维数组,没有行和列。
TensorFlow 使用矩阵来表示数据是因为 TensorFlow 是为了处理非常大的数据集,而用矩阵表示数据使 TensorFlow 在内部更高效地计算。
在这里插入图片描述
float32 代表这是一个浮点数,占用计算机的 32 位内存。
Tensor 是TensorFlow 的一种数据类型,用于有效地存储和执行矩阵运算,在本课中,可以简单地认为 Tensor 就是 TensorFlow 中的矩阵。
使用 numpy() 函数可以将 Tensor 格式转为 NumPy 格式。
一般情况下,我们在 NumPy 中加载和操作数据,但是当我们将 NumPy 数组传递给 TensorFlow 时,TensorFlow 喜欢将其转换为自己的内部格式 Tensor,然后高效的运行;当我们读回数据时,可以将其保留位 Tensor 格式,也可以转换回 NumPy 格式。

搭建一个神经网络

在这里插入图片描述
通常情况下,我们不明确地将两个隐藏层分配给两个变量,而是都写在 Sequential 函数里。

单个网络层上的前向传播

在这里插入图片描述
这是使用 python 和 np 实现的前向传播,数据都用的一维数组表示。

前向传播的一般实现

在这里插入图片描述
dense 函数的作用是,输入前一层的激活,给定当前层的参数,他返回下一层的激活。
sequential 函数的作用是,将几个全连接层组合在一起,以在神经网络中实现前向传播。
我们通常用大写字母表示矩阵,小写字母表示向量和标量。

强人工智能

在这里插入图片描述
AI 包括 ANI 和 AGI。
ANI 代表狭义人工智能,指的是一个只做一件事的人工智能系统,例如自动驾驶汽车或网络搜索。
AGI 代表通用人工智能,指的是可以做人类做的任何事的人工智能系统。
在过去的几年里,ANI 取得了巨大的进步,他正在为当今世界创造巨大的价值。因为 ANI 是 AI 的一个子集,所以 ANI 的快速发展意味着 AI 在过去的几年里也取得了巨大的进步,但是 AI取得了巨大的进步,不代表 AGI 也取得了巨大的进步。
在这里插入图片描述
随着深度学习的兴起,我们开始模拟神经元,我们最开始认为如果我们能模拟很多神经元,那我们就能模拟人脑,但事实却不是这样的。
首先,我们构建的神经网络非常简单,比如一个逻辑回归单元和任何生物神经元所做的都简单;其次,我们几乎不知道大脑是如何工作的,更不用说在计算机中模拟了。
但是,实现 AGI 的突破还是有希望的,有如下的证据来说明这一点。
在这里插入图片描述
一种学习算法假设:可能很多智能源于一种或少数几种学习算法。
其中一个实验细节:大脑中的听觉皮层接受来自你耳朵的电脉冲信号,检测出你听到的是什么声音,当我们切断耳朵和听觉皮层之间的线,而是将图像输入到听觉皮层,听觉皮层学会了看。
一系列这样的实验表明:大脑中的许多不同部分,仅仅取决于给出的数据,可以学会看或者学会感受或者学会听,就好像有一种算法可以仅根据给定的数据学会相应的处理。

神经网络为何如此高效

神经网络可以矢量化,可以使用矩阵乘法非常有效地实现。
在这里插入图片描述

矩阵乘法

线性代数中学的,就不详细写了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值