吴恩达深度学习
文章平均质量分 93
大局观选手周弈帆
天才游戏设计师,编程最强王者,算法金牌讲师,前MMDeploy开发者,现在在搞科研。
展开
-
吴恩达《深度学习专项》笔记(十三):CNN应用:人脸识别与风格迁移
如上图所示,在神经网络风格迁移中,输入一张表示内容的图©和一张表示画家风格的图(S),我们可以借助神经网络生成一幅融合内容与风格的图片(G)。接下来实现神经网络风格迁移时,我们会关注CNN浅层和深层提取出来的特征。因此,在具体介绍风格迁移的实现之前,我们先来看看CNN各层网络究竟学到了什么。这节课主要介绍了人脸识别和神经网络风格迁移两项任务,最后顺便介绍了1D和3D上的卷积。人脸识别人脸验证与人脸识别任务的定义如何对单样本学习建模孪生网络基于三元组误差和二分类误差的人脸识别网络。...原创 2022-08-09 16:36:55 · 796 阅读 · 0 评论 -
目标检测 NMS 的 Python 实现(附算法动图)
在目标检测算法中,为了尽量不漏掉物体,会输出大量的检测结果(每一条结果由检测概率与检测框组成)。这些检测结果很可能有重复的,即会有多个框标出了同一个物体。下图就是一个例子,算法正确识别出了两辆车,但却有多个检测框标出了同一辆车。我们需要一个算法来过滤多余的检测框。最常用的算法就是NMS(Non-Maximum Suppresion, 非极大值抑制)。该算法的思路很简单:只保留局部概率最大的检测框,与其重合的其他检测框都会被舍去。...原创 2022-08-09 16:10:25 · 1878 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记(十二):目标检测与语义分割简介 (YOLO, U-Net)
让我们把前几节的内容总结一下,看一下YOLO算法的全貌。在训练前,我们要对数据做预处理。首先,我们要指定以下超参数:图片切分成多大的格子、每个格子里有多少个锚框。之后,根据这些信息,我们可以得到每一个训练标签张量的形状。比如3×3×2×83×3×2×8的一个训练标签,表示图片被切成了3×33 \times 33×3的格子,每个格子有两个锚框。这是一个三分类问题,对于每一个检测出来的物体,都可以用一个长度为888的向量表示。其中,pcp_cpc。...原创 2022-08-09 14:24:40 · 3322 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记(十一): CNN示例学习:VGG, ResNet, MobileNet
这节课是CNN中最重要的一节课。通过学习一些经典的CNN架构,我们掌握了很多有关搭建CNN的知识。早期CNN卷积、池化、全连接边长减小,通道数增加ResNet为什么使用ResNet?梯度问题是怎么被解决的?残差块的一般结构输入输出通道数不同的残差块了解ResNet的结构(ResNet-18,ResNet-50)Incpetion网络1x1卷积用1x1卷积减少计算量Inception网络的基本模块MobileNet逐深度可分卷积https。......原创 2022-07-24 22:39:48 · 566 阅读 · 0 评论 -
反向传播的实现思路(以NumPy版卷积为例)
卷积反向传播的NumPy实现如何用PyTorch手动求导如何编写完整的算子单元测试实现算子正向传播、反向传播的思路如果你也想把代码基础打牢,一定一定要像这样自己动手从头写一份代码。在写代码,调bug的过程中,一定会有很多收获。由于现在的编程框架都比较成熟,搞科研时基本不会碰到自己动手写底层算子的情况。但是,如果你想出了一个特别棒的idea,想出了一个全新的神经网络模块,却在写代码时碰到了阻碍,那可就太可惜了。学一学反向传播的实现还是很有用的。在模型部署中,反向传播可能完全派不上用场。......原创 2022-07-24 22:10:22 · 855 阅读 · 0 评论 -
torch.conv2d 参数解析与 NumPy 复现
《深度学习专项》只介绍了卷积的stride, padding这两个参数。实际上,编程框架中常用的卷积还有其他几个参数。在这篇文章里,我会介绍如何用NumPy复现PyTorch中的二维卷积`torch.conv2d`的前向传播。如果大家也想多学一点的话,建议看完本文后也自己动手写一遍卷积,彻底理解卷积中常见的参数。............原创 2022-07-24 22:07:51 · 1415 阅读 · 2 评论 -
简单的 PyTorch CNN 二分类器示例
学完了CNN的基本构件,看完了,让我们再用PyTorch来搭建一个CNN,并用这个网络完成之前那个简单的猫狗分类任务。这份PyTorch实现会尽量和TensorFlow实现等价。同时,我也会分享编写此项目过程中发现的PyTorch与TensorFlow的区别。项目网址https。......原创 2022-07-24 22:04:56 · 4492 阅读 · 0 评论 -
简单的 TensorFlow CNN 二分类器示例
学完了CNN的基本构件,让我们用TensorFlow来搭建一个CNN,并用这个网络完成之前那个简单的猫狗分类任务。项目网址https。原创 2022-07-24 22:02:35 · 1265 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记(十):卷积神经网络的基础构件
在这堂课中,我们认识了CNN的三大基础构件卷积、池化、全连接。其中,卷积和池化是新学的知识。这堂课的内容非常多,也非常重要,让我们来回顾一下。CNN的优点CNN与全连接网络的参数比较权重共享、稀疏连接卷积操作基本运算流程填充步幅示例边缘检测卷积层对多通道图像卷积输出多通道图像加上bias,送入激活函数池化层运算流程最大池化与平均池化CNN示例如何组合不同类别的层卷积接池化,最后全连接。图像边长变小,通道数变大。https。...原创 2022-07-24 22:00:20 · 1373 阅读 · 0 评论 -
吴恩达《深度学习专项》第三阶段总结与第四阶段预览
在过去两周里,我们学习了改进深度学习模型的一些策略。让我们来回顾一下。首先,我们应该设置好任务的目标。选取开发/测试集时,应参考实际应用中使用的数据分布。设置优化指标时,应使用单一目标。可以设置一个最优化目标和多个满足目标。在搭建模型时,我们可以根据现有的数据量、问题的难易度,选择端到端学习或者是多阶段学习。训练模型前,如果有和该任务相似的预训练模型,我们可以采取迁移学习,把其他任务的模型权重搬过来;如果我们的模型要完成多个相似的任务,可以同时训练多个任务的模型。...原创 2022-07-24 21:55:11 · 410 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记(九):错误分析、数据集匹配、多任务学习、端到端学习
错误分析用表格做错误分析统计错标数据数据不匹配何时使用数据分布不同的训练集和开发/测试集训练开发集如何诊断数据不匹配问题完成多个任务迁移学习的定义与常见做法预训练、微调多任务学习的定义多个二分类任务迁移学习与多任务学习的优劣、使用场景端到端深度学习认识端到端学习的例子何时使用端到端学习和上周一样,这周的知识都是一些只需要了解的概念,没有什么很复杂的公式。大家可以较为轻松地看完这周的内容。另外,这周也没有官方的编程作业。httpshttps。...原创 2022-07-24 00:40:03 · 571 阅读 · 2 评论 -
吴恩达《深度学习专项》笔记(八):如何降低误差以达成优化目标
我们经常能看到AI与人类比较的新闻什么AlphaGo在围棋上战胜人类了,什么在ImageNet上AI的分类准确率超过了人类啊,等等。除了博眼球的新闻外,业内同样也会时常将机器学习模型和人类比较。这是为什么呢?在许多任务中,人类的表现都非常出色。当AI超过了人类后,往往也达到了这类问题的最优精度。获取人类标注的数据。从手动误差分析中获得启发为什么人就能做对?更好地分析偏差与方差。其中,第1条是显然的,第2条会在下周介绍。接下来,我们看看第3条是怎么回事。正交化目标单一指标。......原创 2022-07-24 00:37:41 · 797 阅读 · 0 评论 -
Windows/Linux安装PyTorch并实现多分类任务
配编程环境考察的是利用搜索引擎的能力。在配环境时,应该多参考几篇文章。有英文阅读能力的应该去参考官方给的配置教程。出了问题把问题的出错信息放到搜索引擎上去查。一般多踩几次坑,多花点时间,环境总能配好。本文只能给出一个大概率可行的指导,不能覆盖所有情况。如果在执行本文的安装步骤时出了问题,请灵活使用搜索引擎。配置深度学习编程框架时,强烈推荐配置GPU版本。本文会介绍PyTorch GPU版本的配置。如果只想用......原创 2022-07-08 01:13:30 · 952 阅读 · 0 评论 -
Windows/Linux安装TensorFlow并实现多分类任务
配编程环境考察的是利用搜索引擎的能力。在配环境时,应该多参考几篇文章。有英文阅读能力的应该去参考官方给的配置教程。出了问题把问题的出错信息放到搜索引擎上去查。一般多踩几次坑,多花点时间,环境总能配好。本文只能给出一个大概率可行的指导,不能覆盖所有情况。如果在执行本文的安装步骤时出了问题,请灵活使用搜索引擎。配置深度学习编程框架时,强烈推荐配置GPU版本。本文会介绍TensorFlow GPU版本的配置。如果只想用CPU版本的话,跳过“CUDA与cuDNN”一节即可。本文会同时介绍Windows和Linux下原创 2022-07-08 01:08:45 · 825 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记(七):调参、批归一化、多分类任务、编程框架
这周的知识点也十分分散,主要包含四项内容:调参、批归一化、多分类任务、编程框架。通过在之前的编程项目里调整学习率,我们能够体会到超参数对模型效果的重要影响。实际上,选择超参数不是一个撞运气的过程。我们应该有一套系统的方法来快速找到合适的超参数。两周前,我们学习了输入归一化。类似地,如果对网络的每一层都使用归一化,也能提升网络的整体表现。这样一种常用的归一化方法叫做批归一化。之前,我们一直都在讨论二分类问题。而只要稍微修改一下网络结构和激活函数,我们就能把二分类问题的算法拓展到多分类问题上。为了提升编程的效率原创 2022-07-08 01:03:31 · 244 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记+代码实战(六):改进梯度下降算法(mini-batch, Momentum, Adam)
一直以来,我们都用梯度下降法作为神经网络的优化算法。但是,这个优化算法还有很多的改进空间。这周,我们将学习一些更高级的优化技术,希望能够从各个方面改进普通的梯度下降算法。我们要学习的改进技术有三大项:分批梯度下降、高级更新方法、学习率衰减。这三项是平行的,可以同时使用。分批梯度下降是从数据集的角度改进梯度下降。我们没必要等遍历完了整个数据集后再进行参数更新,而是可以遍历完一小批数据后就进行更新。高级更新方法指不使用参数的梯度值,而是使用一些和梯度相关的中间结果来更新参数。通过使用这些更高级的优化算法,我们能原创 2022-07-08 00:59:30 · 1033 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记+代码实战(五):深度学习的实践层面(数据集划分、偏差与方差、参数初始化、正则化)
学习机器学习中的常用技术:数据集划分、参数初始化、正则化原创 2022-06-15 17:48:36 · 620 阅读 · 1 评论 -
吴恩达《深度学习专项》第一阶段总结与第二阶段预览
《深度学习专项》第一阶段总结与第二阶段预览原创 2022-06-10 11:55:41 · 202 阅读 · 0 评论 -
吴恩达《深度学习专项》笔记+代码实战(四):深度神经网络(全连接网络)
实现任意层数的深度神经网络(全连接网络)。原创 2022-06-03 22:09:51 · 416 阅读 · 2 评论 -
吴恩达《深度学习专项》笔记+代码实战(三):“浅度”神经网络
让我们正式认识神经网络,实现有一个隐藏层的神经网络。原创 2022-06-01 17:15:05 · 607 阅读 · 2 评论 -
吴恩达《深度学习专项》笔记+代码实战(二):简单的神经网络——逻辑回归
这堂课要学习的是逻辑回归——一种求解二分类任务的算法。同时,这堂课会补充实现逻辑回归必备的数学知识、编程知识。学完这堂课后,同学们应该能够用Python实现一个简单的小猫分类器。原创 2022-05-31 09:42:41 · 1107 阅读 · 3 评论 -
吴恩达《深度学习》笔记+代码实战(一):深度学习入门
为什么深度学习近几年飞速发展?让我们从零开始,一步一步学习深度学习。原创 2022-05-31 01:13:04 · 1464 阅读 · 0 评论