IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 2022吴恩达机器学习课程——第二课(神经网络) -> 正文阅读

[人工智能]2022吴恩达机器学习课程——第二课(神经网络)

注:参考B站视频教程

视频链接:【(强推|双字)2022吴恩达机器学习Deeplearning.ai课程】

写在前面:文章只是为了记录学习课程的整个过程,方便以后查漏补缺,方便找到对应章节,希望看到这篇文章的同学能够认真的看一遍视频教程,会有很大收获!

上一篇:2022吴恩达机器学习课程——第一课
下一篇:2022吴恩达机器学习课程——第三课(非监督学习)


第一周

一、神经元

1.2 神经元

在这里插入图片描述


神经网络的起源
在这里插入图片描述


1.3 需求预测

预测T恤是否畅销
在这里插入图片描述


在这里插入图片描述


多个隐藏层
在这里插入图片描述


1.4 举例——图像感知
人脸识别问题是,你能否训练一个神经网络,以一百万像素亮度值的特征向量作为输入,并输出图片中人物的身份
在这里插入图片描述


在这里插入图片描述


应用到车辆检测
在这里插入图片描述


二、神经网络

2.1 神经网络中的网络层
三个神经元中的每一个都在执行一个小小的逻辑回归单元
上标【1】表示layer1(神经网络第1层)中的参数
在这里插入图片描述


layer1-->layer2
在这里插入图片描述


在这里插入图片描述


2.2 更复杂的神经网络

layer2-->layer3
在这里插入图片描述


在这里插入图片描述


如何计算任意层的激活值
在这里插入图片描述


2.3 神经网络向前传播
神经网络需要从输入X这个8*8矩阵预测出a3的概率
在这里插入图片描述


在这里插入图片描述


用f(x)来表示线性回归或逻辑回归的输出
在这里插入图片描述


三、代码实现 & Tensorflow

3.1 如何用代码实现推理
使用机器学习算法来优化咖啡的烘焙过程
在这里插入图片描述


使用Tensorflow做基于神经网络的推理
在这里插入图片描述


手写数字识别
x是一个含有像素强度值的列表
在这里插入图片描述


3.2 Tensorflow中的数据形式
Numpy是如何存储向量和矩阵的
在这里插入图片描述


在这里插入图片描述


两个方括号表示的是“二维矩阵”,一个方括号表示的是“一维向量”
在这里插入图片描述


张量tensor是Tensorflow团队创建的一种数据类型,可以有效地存储和执行矩阵运算
在这里插入图片描述


在这里插入图片描述
将数组传入Tensorflow时,Tensorflow喜欢将其转换为自己的内部格式,然后有效的使用张量;当你把数据读出来的时候,你可以把它作为一个张量或者将其转换为Numpy数组


3.3 搭建一个神经网络
Sequential把网络层串联起来形成一个神经网络框架。
调用model.compile()训练神经网络,调用model.predict()实现向前传播。
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


四、前向传播

4.1 单个网络层上的向前传播
在这里插入图片描述


4.2 前向传播的一般实现
在这里插入图片描述


五、强人工智能

5.1 强人工智能
在这里插入图片描述


六、矩阵乘法 (简单,可以跳过)

6.1 神经网络为何如此高效

向量化实现 matmul
在这里插入图片描述


6.2 矩阵乘法
在这里插入图片描述


在这里插入图片描述


6.3 矩阵乘法规则
在这里插入图片描述


在这里插入图片描述


6.4 矩阵乘法代码
在这里插入图片描述


在这里插入图片描述


第二周

一、用Tensorflow训练神经网络

1.1 Tensorflow实现
在这里插入图片描述


1.2 模型训练细节
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


二、激活函数

2.1 Sigmoid激活函数的替代方案
在这里插入图片描述


在这里插入图片描述


2.2 如何选择激活函数
在这里插入图片描述


ReLU函数更加常用
在这里插入图片描述


在这里插入图片描述


2.3 为什么模型需要激活函数
为了引入非线性,提高模型的拟合能力
在这里插入图片描述


在这里插入图片描述


在隐藏层使用线性激活函数,在输出层使用logistic激活函数,结果这个模型等价于逻辑回归
经验法则:不要在神经网络的隐藏层中使用线性激活函数
在这里插入图片描述


三、Softmax

3.1 多分类问题
在这里插入图片描述


在这里插入图片描述


3.2 Softmax

如何计算Softmax回归模型
在这里插入图片描述
Softmax回归模型是逻辑回归的推广


aj的值越大,损失函数L的值越小
在这里插入图片描述


3.3 神经网络的Softmax输出
在这里插入图片描述


在多分类问题上训练神经网络
在这里插入图片描述
并不是最好的版本


3.4 Softmax的改进实现
在这里插入图片描述


不同的表达方式下可能会出现“数值舍入误差”
在这里插入图片描述


改进,设置from_logits = True
在这里插入图片描述


将表达式直接带入,这样就给了Tensorflow可以重新排列项并计算的能力
相比下,逻辑回归的数值舍入误差更大一点,建议用改进方法
在这里插入图片描述


神经网络的最后一层不再输出一些概率值了,not a1~a10 , is z1~z10
在这里插入图片描述


把逻辑回归和代价函数整合在一起,把输出值映射到Logistic函数中,得到概率

在这里插入图片描述


3.5 多个输出的分类

举例:多标签分类问题
在这里插入图片描述


多类别分类和多标签分类容易混淆
在这里插入图片描述


四、Adam & 卷积层

4.1 高级优化方法

Adam算法可以自动更新学习率,它比梯度下降算法要快得多
在这里插入图片描述


模型的每个参数都会用不同的学习率
在这里插入图片描述


如果一个参数wj或b在大致相同的方向上移动,就提高参数的学习率;
如果一个参数来回震荡,就减小参数的学习率。
在这里插入图片描述


在这里插入图片描述
现在大多数从业者会使用Adam算法而不是梯度下降算法


4.2 其他的网络层类型
全连接层
在这里插入图片描述


卷积层:每个神经元只关注输入图像的一个区域
在这里插入图片描述


在这里插入图片描述


第三周

一、训练集&测试集

1.1 决定下一步做什么
在这里插入图片描述


机器学习诊断:指的是一种测试,你可以运行它来深入了解算法中哪些是有效的,哪些是无效的,从而明白应该怎样提升性能。其中一些诊断会告诉你,是否值得用几周或者几个月的时间来收集更多的训练数据,如果是的话,你就可以继续投入时间寻找数据,这有望提升性能;如果不是,那么进行诊断可以为你节省几个月的时间
在这里插入图片描述


1.2 模型评估
在这里插入图片描述
划分训练集与测试集
在这里插入图片描述


线性回归
在这里插入图片描述


模型在训练集上做的好,但是在测试集上表现得不好

在这里插入图片描述


分类问题
在这里插入图片描述
取一个数据集,把它分为训练集和一个单独的测试集,可以系统的评估你的学习成果;通过计算训练误差和测试误差,你可以衡量模型在训练集和测试集上的表现


1.3 模型选择&交叉验证测试集的训练方法

d是多项式的次数
在这里插入图片描述
可以尝试不同的模型,并根据计算误差来选择一个合适的模型,不过这种方法过于复杂,不太建议


划分为训练集&验证集&测试集

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


二、偏差&方差

2.1 通过偏差与方差进行诊断

一个更系统的判断算法是否有高偏差或者高方差的方法是,看你的算法在训练集和交叉验证集上的表现
在这里插入图片描述


当你拟合一个越来越高阶的多项式时,训练误差会趋于下降;因为当你有一个非常简单的线性函数时,它并不能很好的拟合训练数据;当你拟合二阶/三阶/四阶多项式时,对训练数据的拟合越来越好;随着多项式次数的增加,J_train通常会下降
在这里插入图片描述


高偏差意味着算法在训练集上表现不好,高方差意味着,算法在交叉验证集上的表现比训练集上的差得多

高方差与高偏差同时出现的例子极少存在,是由于模型一半过拟合、一半欠拟合导致的

在这里插入图片描述


2.2 正则化、偏差、方差

正则化参数的选择对偏差和方差会产生什么影响
在这里插入图片描述


在这里插入图片描述


J_train和λ分别作为横轴,两个图就像彼此的镜像

在这里插入图片描述


2.3 制定一个用于性能评估的基准

以语音识别应用为例
可能10.8%的误差意味着这是很高的偏差,但当我们按照人类水平进行基准测试时,我们看到这个算法在训练集上表现得很好,但是交叉验证误差远高于训练误差,因此该算法更多的是方差问题,而不是偏差问题
在这里插入图片描述


在这里插入图片描述


2.4 学习曲线

交叉验证的误差通常要比训练误差高
在这里插入图片描述


在这里插入图片描述
如果学习算法有很高的偏差,获得更多的训练数据本身不会有多大的帮助


在这里插入图片描述
如果学习算法有很高的方差,获得更多的训练数据可能会有所帮助


2.5 决定下一步做什么
在这里插入图片描述


2.6 方差与偏差
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


不同的层可以选择不同的λ值

在这里插入图片描述


三、误差分析&迁移学习

3.1 机器学习开发的迭代

在这里插入图片描述


垃圾邮件分类实例

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


3.2 误差分析

这种误差分析的要点是,手动检查一组算法错误分类或标记的样本。通常分析完以后,下一步要做什么的灵感就来了。有时误差分析还可以告诉你,某种误差非常罕见,不值得你花那么多时间来修复
在这里插入图片描述


偏差和方差分析可以告诉你收集更多数据是否有帮助;通过误差分析可知:增加邮件特征(外部:路由、标题...)会有所帮助,但也只是一点点;然而,添加检测垃圾或钓鱼邮件的更复杂的特征(邮件内容:包含xx关键字...)可能会有很大帮助;检查拼写错误机会没有多大帮助
在这里插入图片描述
误差分析的局限性,它更容易处理人类擅长的问题


3.3 添加更多数据

数据增强
在这里插入图片描述


在这里插入图片描述


数据增强思想也适用于语音识别
在这里插入图片描述


考虑数据扩充的一种方式是如何修改、扭曲或在数据中制造更多噪音。但在某种程度上,你得到的仍然和你在测试集中得到的很相似,这就是学习算法最终会做的很好的地方。
在这里插入图片描述


照片OCR是指自动让计算机读取出图像中的文本

在这里插入图片描述


这是来自照片OCR任务的真实数据,关键步骤是能够看到像这样的小图像,并识别出中间的字母。
在这里插入图片描述
左边的图像是来自世界上拍摄的真实图片,右边图片是用电脑上的字体合成的。通过像这样的合成数据,你可以生成大量的图像或者图片OCR任务的例子


在这里插入图片描述


3.4 迁移学习-使用其他任务中的数据
假设你想要识别从0到9的手写数字,但是没有那么多这些手写数字的带标签数据

迁移学习给人的直观感受是,通过识别猫,狗,牛,人等,它已经为处理输入图像的前几个层学习了一些合理的参数,然后通过将这些参数迁移到新的神经网络,新神经网络参数的初始值更合适了,这样我们只需要再让算法学习一点,它就能成为一个很好的模型。

首先在大型数据集上进行训练,然后在较小的数据集上进一步参数调优,这两个步骤被称为“监督预训练”
在这里插入图片描述
有人会把训练有素的神经网络发布到互联网上,免费授权给任何人下载和使用。这意味着,与其自己从头开始,不如下载别人可能花了数周时间训练的神经网络,然后用自己的输出层替换原有的输出层,并执行option1或option2来微调别人已经监督预训练的神经网络,只需要做一点微调,你就可以快速得到一个表现良好的神经网络。


为什么迁移学习会起作用?
帮助神经网络学习检测图像的一些基本特征,比如找到边缘、角、曲线、基本形状。
在这里插入图片描述
预训练的限制条件:对于预训练和微调这两步,图像类型x是必须相同的


在这里插入图片描述


3.5 机器学习项目的完整周期

在这里插入图片描述


在这里插入图片描述


3.6 公平、偏见与伦理
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


四、精确率&召回率

4.1 倾斜数据集的误差指标
在这里插入图片描述


在这里插入图片描述


4.2 精确率与召回率的权衡

Precision:预测为正样本中有多少是真的预测正确了(找的对)
Recall:样本中的正例有多少被预测正确了(找的全)

在这里插入图片描述


在这里插入图片描述


第四周

一、决策树

1.1 决策树模型
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


1.2 学习过程
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


二、信息增益&独热码

2.1 纯度
在这里插入图片描述


计算熵的公式
在这里插入图片描述


2.2 选择拆分信息增益

熵的减少称为信息增益

决定何时不再继续分裂的停止标准之一是:是否熵减少的足够少
在这里插入图片描述
基于耳朵形状的分裂,导致熵的减少最大,所以我们会选择在根节点上分割耳朵形状特征


计算信息增益的基本公式
在这里插入图片描述
p1left = 左子树中带有正标签的例子的比例,正标签表示猫
w1left = 所有根节点到左边子分支的样本的比例


2.3 整合
构建决策树的整个过程
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.4 独热编码One-hot
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.5 连续有价值的功能

如何决定怎样划分体重特征?
在这里插入图片描述


为了让决策树在每个节点上能处理连续值特征,使用划分时,只需要考虑不同的值来划分,计算信息增益,并决定对其分割。选择连续值特征能提供尽可能高的信息增益
在这里插入图片描述


2.6 回归树
在这里插入图片描述


在这里插入图片描述


选择方差减少最大的那个
在这里插入图片描述


三、随机森林

3.1 使用多个决策树
事实上,仅仅改变一个训练例子就会导致这个算法在根节点产生一个不同的划分,形成了一棵完全不同的树,使得算法不那么健壮
在这里插入图片描述


集成树模型的最终预测
在这里插入图片描述
使用多个决策树能使整体算法对任何一棵树做的事情不那么敏感


3.2 有放回抽样
在这里插入图片描述


3.3 随机森林

袋装决策树
在这里插入图片描述


在这里插入图片描述


3.4 XGBoost

刻意练习:把更多的注意力放在做得不好的例子上

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


3.5 何时使用决策树

  • 决策树和集成树通常可以很好的处理结构化数据(如:房价预测)
  • 非结构化数据:图像、视频、音频、文本
  • 决策树和集成树的优势:训练速度快
  • 神经网络适用于所有的数据结构(结构化和非结构化数据),但神经网络训练时长可能比决策树要慢
    在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2022-12-25 11:10:20  更:2022-12-25 11:15:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/21 19:51:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码