CH4-李宏毅机器学习
文章平均质量分 91
根据台大教授李宏毅的讲义视频,总结的笔记
绿洲213
springboot3只支持jdk17
展开
-
项目5-迁移学习
这次的任务是源数据: 真实照片,目标数据: 手画涂鸦。我们必须让model看过真实照片以及标签,尝试去预测手画涂鸦的标签为何。资料位于’data/data58171/real_or_drawing.zip’Training : 5000 张真实图片 + label, 32 x 32 RGBTesting : 100000 张手绘图片,28 x 28 Gray ScaleLabel: 总共需要预测 10 个 class。资料下载下来是以 0 ~ 9 作为label。原创 2022-12-31 11:02:24 · 536 阅读 · 0 评论 -
项目4-语句分类
有三个文件,分别是 training_label.txt、training_nolabel.txt、testing_data.txttraining_label.txt:有标签的训练数据(句子配上 0 or 1,+++$+++ 只是分隔符号,不要理它)training_nolabel.txt:没有标签的训练数据(只有句子),用来做半监督学习!ouchtesting_data.txt:你要判断测试数据里面的句子是 0 or 1id,text。原创 2022-12-31 11:01:04 · 99 阅读 · 0 评论 -
10.1-迁移学习
迁移学习指的就是,假设你手上有一些跟你现在要进行的task没有直接相关的data,那你能不能用这些没有直接相关的data来帮助我们做一些什么事情。比如说:你现在做的是猫跟狗的classifer,那所谓没有什么直接相关的data是什么意思呢?没有什么直接相关其实是有很多不同的可能。比如说input distribution 是类似的(一样时动物的图片),但是你的label是无关的(domain是类似的,task是不像的)。原创 2022-12-31 10:44:36 · 289 阅读 · 0 评论 -
9.2-深度生成模型
我们来看intuitive reason,为什么要用VAE?如果是原来的auto-encoder的话,做的事情是:把每一张image变成一个code,假设现在的code是一维(图中红色的线)。你把满月这个图变为code上的一个value,在做decoder变回原来的图,半月图也是一样的。假设我们在满月和半月code中间,sample一个点,然后把这个点做decoder变回image,他会变成什么样子呢?你可能会期待说:可能会变成满月和半月之间的样子,但这只是你的想象而已。因为我们今天用的encoder和de原创 2022-12-31 10:43:43 · 507 阅读 · 0 评论 -
9.1-深度生成模型
但是你什么都不给它,让它从头开始画的话,它可能每一张image都是一样的,所以你要故意加一些random,也就是说它要predict下一个pixel的时候,不见得是选几率最后的那个pixel,它会有一定几率选一个几率比较低的颜色出来画在图上面,这样它每一次画的图都才会有点不一样。在Google的demo里面,它把影像都是机器人手背上的影像,(它在机器人手背上装一个摄影机),那就就会看到说:影像的前半段是机器人的手伸向一块膜布,然后影像的后半段是:机器人把膜布拿起来。所以,对machine来说是一样的。原创 2022-12-31 10:41:47 · 252 阅读 · 0 评论 -
8.5-无监督学习-深度自编码器
自动编码器的想法是这样子的:我们先去找一个encoder,这个encoder input一个东西(假如说,我们来做NMIST的话,就是input一张digit,它是784维的vector),这个encoder可能就是一个neural network,它的output就是code(这个code远比784维要小的,类似压缩的效果),这个coder代表了原来input一张image compact representation。但是现在问题是:我们现在做的是Unsupervised learning,你可以找到一原创 2022-12-31 10:41:19 · 1844 阅读 · 2 评论 -
8.4-无监督学习-领域嵌入
TSNE的NE就是Neighbor embedding的缩写。我们现在要做的事情就是我们之前讲过的降维,只是我们要做的是非线 性的降维。我们知道data point可能是在高维空间里面的一个manifold,也就是说:data point的分布其实是在低维的一个空间里,只是被扭曲被塞到高维空间里面。讲到manifold ,常常举的例子是地球,地球的表面就是一个manifold(一个二维的平面,被塞到一个三维的空间里面)。原创 2022-12-31 10:40:27 · 155 阅读 · 0 评论 -
8.3-无监督学习-词嵌入
你会希望说,狗的vector分布在狗的周围,马的vector散布的马的周围,车辆的vector散布在auto的周围。这个方法的原则是这样,假设我们知道w_iwi的word vector是V(w_i)V(wi),w_jwj的word vector是V(w_j)V(wj),我们可以计算V(w_iwi,)V(w_jwj)它的inner product,假设N_{i,j}Ni,j是w_iwi,w_iwi他们在同一个document的次数,那我们就希望这两件事情(内积和同时出现的次数)越接近越好。原创 2022-12-31 10:38:28 · 272 阅读 · 0 评论 -
8.2-无监督学习-线性降维
我把dimension reduction分为两种,一种做的事情叫做“化繁为简”,它可以分为两种:一种是cluster,一种是dimension reduction。所谓的“化繁为简”的意思:现在有很多种不同的input,比如说:你现在找一个function,它可以input看起来像树的东西,output都是抽象的树,把本来比较复杂的input变成比较简单的output。那在做unsupervised learning的时候,你只会有function的其中一边。比如说:我们要找一个function要把所有的原创 2022-12-31 10:36:48 · 263 阅读 · 0 评论 -
8.1-半监督学习
**为什么做semi-supervised learning,因为有人常会说,我们缺data,其实我们不是缺data,其实我们缺的是有label的data。**比如说,你收集image很容易(在街上一直照就行了),但是这些image是没有的label。label data 是很少的,unlabel是非常多的。所以semi-surprvised learning如果可以利用这些unlabel data来做某些事是会很有价值的。我们人类可能一直是在semi-supervised learning,比如说,小孩子原创 2022-12-31 10:36:03 · 494 阅读 · 0 评论 -
7.2-循环神经网络
有记忆的神经网络就是循环神经网络(RNN)长短期记忆网络(LSTM)有4个输入,1个输出。其中3个输入分别为:输入门(input gate)的控制信号$z_i$,遗忘门(forget gate)的控制信号$z_f$,输出门(output gate)的控制信号$z_0$。原创 2022-08-20 16:33:59 · 945 阅读 · 0 评论 -
项目3-食物图片分类
本次使用的数据集为food-11数据集,共有11类(面包,乳制品,甜点,鸡蛋,油炸食品,肉类,面条/意大利面,米饭,海鲜,汤,蔬菜/水果)Training set: 9866张Validation set: 3430张Testing set: 3347张数据格式下载 zip 档后解压缩会有三个资料夹,分别为training、validation 以及 testing。原创 2022-08-19 21:04:04 · 1798 阅读 · 1 评论 -
7.1-卷积神经网络
Deep Style的原理就是将原始图片输入到CNN中,然后得到**过滤器的输出,输出代表这一张图像里面有什么样的内容**;同样我们对另一张图片做同样的操作,但我们此时并不考虑过滤器的输出,而是考虑**过滤器与过滤器之间输出的相关性(correlation)**,而这个相关性代表了一张图的风格。接下来我们用同一个CNN,来找一张图片,使这张图片的内容(过滤器的输出)要像原始图片,同时这张图片的风格(过滤器与过滤器之间输出的相关性)要像另一张图片原创 2022-08-19 14:04:07 · 922 阅读 · 0 评论 -
PaddlePaddle教学
无此教程根据PaddlePaddle 2.0 rc官方手册编写。此教程旨在介绍PaddlePaddle(一个易用、高效、灵活、可扩展的深度学习框架)本教程只介绍了paddle中比较常用的一些API以及其基本用法,并不全面,如有任何问题请参考PaddlePaddle 2.0 rc官方手册,也可以百度一下自动微分是一个强大的实用工具使用PaddlePaddle实现深度学习中的常用函数使用paddle.io.Dataset处理数据PaddlePaddle中的自动混合精度训练。...原创 2022-08-18 18:27:52 · 809 阅读 · 0 评论 -
6.4-为何要深度学习
而对于深度学习来说也是如此,网络中的每一个神经元都可以视为一个模块,前面的模块将数据一步一步处理,最终得到预测结果,尽管每个模块都只做了很小的一件事,但他们集合起来就是一件十分复杂的事情。...原创 2022-08-18 16:59:47 · 360 阅读 · 0 评论 -
6.3-训练DNN的技巧
消失梯度问题(Vanishing Gradient Problem):网络在输入层附近梯度比较小,学习得非常慢,结果几乎是随机的。而在输出层附近时梯度比较大,学习得非常快,几乎很快收敛。为了提高输入层附近的网络对最终结果的影响,有人提出了新的激活函数ReLU...原创 2022-08-15 19:57:34 · 546 阅读 · 0 评论 -
6.2-反向传播
在之前的线性回归和逻辑回归中,通常我们做梯度下降的参数都是很少的。但对于神经网络而言,参数通常是百万数量级的,这就导致用常规方法来做梯度下降是不可靠的。需要用到反向传播的演算法来提高计算效率...原创 2022-08-15 19:55:05 · 277 阅读 · 0 评论 -
6.1-深度学习简介
最后一张图是全连接前馈网络的一般画法,由于层(Layer)与层(Layer)之间所有的神经元都是两两连接,因此它叫全连接(Fully Connect),传递的方向是从后往前(1->2->3...->L),因此叫前馈(Feedforward)......原创 2022-08-11 12:57:06 · 599 阅读 · 0 评论 -
5.1-集成学习
Bagging做的事情就是创造出不同的数据集,再用不同的数据集各自训练一个复杂的模型,虽然每一个模型单独拿出来看方差(Variance)都很大,但把所有的模型集合起来求平均之后,就会得到一个方差很小,偏置值也很小的理想模型。...原创 2022-08-11 09:58:35 · 359 阅读 · 2 评论 -
项目2-年收入判断
二元分类是机器学习中最基础的问题之一,在这份教学中,你将学会如何实作一个线性二元分类器,来根据人们的个人资料,判断其年收入是否高于 50,000 美元。我们将以两种方法: logistic regression 与 generative model,来达成以上目的,你可以尝试了解、分析两者的设计理念及差别。实现二分类任务:个人收入是否超过50000元?......原创 2022-08-09 18:13:54 · 905 阅读 · 0 评论 -
4.1-支持向量机
当数据中有离群点(Outlier)时,铰链损失(Hinge loss)往往要比交叉熵(Cross entropy)表现得更好原创 2022-08-10 10:33:12 · 483 阅读 · 0 评论 -
项目1-PM2.5预测
手动实现 linear regression,方法限使用 gradient descent原创 2022-08-09 18:11:10 · 1519 阅读 · 1 评论 -
3.2-分类-Logistic回归
对于逻辑回归(Logistic Regression)而言,他用来衡量模型好坏的loss函数是在训练集上的交叉熵之和。该值越小,则代表在训练集上的表现越好。原创 2022-08-08 23:00:56 · 245 阅读 · 0 评论 -
3.1-分类-概率生成模型
修正模型(Modifying Model):比较常见的一个做法是不同的类可以共享同一个协方差矩阵𝜮,这样我们就可以通过减少模型的参数来降低方差(variance),从而得到一个更加简单的模型。其中u^1^和u^2^的算法没有变,而𝜮变成了之前𝜮^1^和𝜮^2^两者之间的加权平均和。结果从53%提高到了73%...原创 2022-08-07 23:03:03 · 439 阅读 · 0 评论 -
2.1-梯度下降
在做梯度下降的过程,实际上就是在找loss函数微分为0的地方,然而微分为0的地方却不一定是局部最优解,它还可能是图中的鞍点。原创 2022-08-07 16:59:47 · 123 阅读 · 0 评论 -
1.2-误差来源
误差(error)的来源:偏置值和方差(Bias and Variance)原创 2022-08-04 17:37:40 · 685 阅读 · 0 评论 -
1.1-回归
将根据loss函数找到的最好模型拿出来,分别计算它在训练集(Training Data)和测试集(Testing Data)上的均方误差(Average Error),当然我们只关心模型在测试集上的具体表现如何。为了解决过拟合的问题,我们需要重新设计一下损失函数 L,原来的损失函数只计算了方差,而没有考虑到含有干扰的输入对模型的影响。,此时模型在训练集上的均方误差变得更小了,但测试集上的反而变大了,这种现象被称为模型的过拟合(Over-fitting)很显然根据下面的实验,我们取得了更好的表现,...原创 2022-08-04 17:34:45 · 94 阅读 · 0 评论