深度学习入门笔记
文章平均质量分 66
cnhwl
这个作者很懒,什么都没留下…
展开
-
深度学习入门笔记 —— 循环神经网络 RNN
(Bag-of-Words Model),如图所示,输入是三个句子,词袋模型首先要定义一个词汇表 vocabulary,里面记录了单词与数字的对应关系,共 9 个单词,所以特征矩阵就有 9 列;多对多可以分为直接的和延迟的,例如视频描述就是多张图像直接地对应多个描述,语言翻译则是一段话延迟地对应一段话,因为直接翻译语言之间的单词往往是不准确的。与前馈神经网络相比,RNN 也就是多了在不同时刻的隐藏层单元之间的权重矩阵,计算加权和的方法还是一样的,得到加权和就能通过激活函数得到激活值,最终也可以得到输出。..原创 2022-08-28 23:24:38 · 675 阅读 · 0 评论 -
深度学习入门笔记(9)—— Regularization to avoid overfitting 用正则化来避免过拟合
这两者加起来就是带L2正则化的线性回归,两者折衷的目标就是下降到绿色点。LogisticRegression中的L2正则化,损失函数L就是二元交叉熵,则目标函数就是损失函数+L2正则化项,L2正则化项就是对参数w求平方和,前面再乘以一个超参数λ(越大正则化程度越高)。然后是提前停止,思路很简单,将数据集划分为训练集、验证集和测试集,使用验证集来进行模型选择,在这里就相当于是训练轮数Epochs的超参数调整,选择模型在验证集上的性能顶点作为最优的训练轮数。............原创 2022-07-17 22:30:50 · 521 阅读 · 0 评论 -
深度学习入门笔记(8)—— Multilayer Perceptron 多层感知器
所谓多层感知器,其实就是具有一个或多个隐藏层(hidden layer)的全连接前馈神经网络,如图所示,在最重要的求取损失关于权重的偏导数的过程上,跟之前的 Logistic Regression 和 Softmax Regression 一样,仍然是使用链式法则进行求导。为了将感知器、Logistic Regression 和 Adaline 看作是单层神经网络,习惯上,我们把输入层作为第 0 层,把第一个隐藏层作为第 1 层,以此类推。在符号上也是如此,a2(1)a_2^{(1)}a2(1) 表示第原创 2022-07-13 16:11:01 · 2014 阅读 · 0 评论 -
深度学习入门笔记(7)—— Multinomial Logistic Regression / Softmax Regression
首先介绍一个非常著名的多分类数据集 MNIST,也就是 0 到 9 的手写数字数据集。每个图像都是 28 * 28,用于Pytorch 数据读取的格式是 NCHW,即 Number、Channel、Height、Weight。读取图像之后,就能看到一个只有单通道的(灰度)图像,实际上就是一行行像素值的组合,用于 Softmax Regression 时输入得是一个向量,所以要将一行行的像素进行拼接,成为一个长的向量。同时,将像素值从 0 - 255 转化为 0 - 1 有利于梯度下降。回顾之前的 Logi原创 2022-06-29 12:05:46 · 575 阅读 · 0 评论 -
深度学习入门笔记(6)—— Logistic Regression
对比第三节中的 Adaline 和 Logistic Regression,可以发现它们只有两点不同:1、激活函数,Adaline 中的激活函数是恒等函数(线性),而 Logistic Regression 中的激活函数是 Sigmoid 函数(非线性);2、损失函数,Adaline 中的损失函数是均方误差,而 Logistic Regression 中的损失函数则是交叉熵。Sigmoid 函数如图所示,其值域为 0 到 1,输入为 0 时取值为 0.5h 即 hypothesis,就是我们的模型,由于原创 2022-06-26 14:01:18 · 660 阅读 · 0 评论 -
深度学习入门笔记(5)—— Pytorch API 的基本用法框架
第一步,通常是定义我们的神经网络模型。类名后的括号表示我们定义的类会继承 torch.nn.Module,而 super 函数就是调用父类的方法,后面跟 __init__() 就是调用 torch.nn.Module 的构造函数,然后就是我们自定义的模型及其参数。在 forward 方法中则定义了数据是如何传递的。第二步,是实例化我们定义好的模型。通常会设定一个随机种子以方便复现结果,如果有 GPU 用 model.to() 就可以把模型移动到 GPU 上进行计算。最后是实例化一个优化器,要告诉优化器,模原创 2022-06-23 22:31:16 · 353 阅读 · 0 评论 -
深度学习入门笔记(4)—— Pytorch 和计算图的简单介绍
Pytorch 顾名思义,就是 Torch 7 移植到 Python 的版本,其最大亮点就是自动微分、动态计算图和 Numpy 集成。Pytorch 相比于 Numpy,优点在于支持 GPU 计算甚至是多设备计算,以及动态计算图。在 import 的时候,得记住 import 的是 torch 而不是 pytorch最常用的激活函数之一是 ReLU 函数,它可以看作是恒等函数 y = x 在 x 小于等于 0 时被截掉了(y 等于 0)。由于它在 x = 0 处的左右极限不相同,所以显然它在零点处不原创 2022-06-22 22:45:30 · 288 阅读 · 0 评论 -
深度学习入门笔记(3)——用梯度下降进行参数更新
首先是对感知器的简单回顾,假设现有的训练集为 D,共有 n 个训练数据,每个数据都有 m 个输入特征和一个输出标签。一个 epoch 就是遍历一次整个训练集,对于每一个训练数据,都计算其预测、计算误差、更新参数。在一个 epoch 中,每次针对一个训练数据进行参数更新的方法,称为在线方法或者随机梯度下降;而在一个 epoch 中将参数在每个训练数据上需要更新的值记录下来,最后叠加在一起再对参数进行更新的方法,称为批量方法。最常用的是这两种方法的折中方法:小批量方法。它的优点有三个:1、选择子集而不是单原创 2022-06-06 23:27:56 · 2405 阅读 · 0 评论 -
深度学习入门笔记(2)—— 感知器
最经典的神经元模型,从左到右依次是:输入、权重、加权和、阈值、输出。加权和又叫做 Net Input,符号为 z,当 z 的值大于阈值时输出 1,小于阈值时输出 0。实现与门和或门,权重为 1,阈值分别为 1.5 和 0.5 即可。用偏置 b 代替负阈值,此时的加权和 z 就变成了 wTx+b{w^T}x + bwTx+b,新的阈值就是 0 了。更进一步的,可以将偏置看作是输入 1 时对应的权重,这样做的好处是可以写成向量内积的形式,有利于数学表达。但是,实际常用的还是 wTx+b{w^T.原创 2022-03-31 23:24:57 · 1677 阅读 · 0 评论 -
深度学习入门笔记(1)——导论部分
此笔记来源于 Sebastian Raschka 的 Introduction to Deep Learning 系列课程。首先介绍的是传统的编程范式,假设我们想实现垃圾邮件识别的功能,传统的方法就是由程序员来找出垃圾邮件的规则并对其进行编程,得到一个垃圾邮件识别的程序。机器学习的方法,可以通过输入邮件以及邮件对应的标签,通过算法自动得到机器学习模型,该模型可以代替传统方法中程序员手动编写规则得到的程序,实现垃圾邮件识别。单个的训练样本(不包含标签),其实就是一个特征向量(列向量),特征数量为原创 2022-03-31 19:06:28 · 1503 阅读 · 0 评论