李宏毅2021春季机器学习课程笔记3:Optimization & Tips for Training & Classification

机器学习入门实战:从梯度下降到过拟合的避坑指南 机器学习作为人工智能的核心分支,其本质是通过算法让计算机从数据中自动学习规律与模式。其核心原理在于构建一个能够从输入映射到输出的函数模型,并通过优化算法(如梯度下降)调整模型参数以最小化预测误差。这一技术价值在于能够处理复杂、高维的数据关系,实现预测、分类等自动化决策。在实际应用场景中,无论是金融领域的算法交易,还是商业领域的智能决策,机器学习都发挥着关键作用。然而,工程实践中常会遇到模型过拟合、梯度下降收敛困难等挑战。针对这些问题,掌握特征缩放、正则化、Dropout以及自适应学习率等关键技术至关重要。本 阅读详情

1. The reason why Optimization fails

在这里插入图片描述
当我们的model无法进一步update参数时候,loss不再下降,我们猜想是因为gradient接近于0。
有很多可能让gradient为零的point,不仅仅是local minima(局部最小),还有saddle point(鞍点)等。我们统称这些点为critical point(临界点)
其中saddle point还可以进一步escape。

1.1 local minima or saddle point ?

在这里插入图片描述
我们利用泰勒级数展开式近似loss函数。 g g g是一个gradient向量,相乘得到绿框表示到真实值直接的距离。
H H H(Hessian)是一个 m a t r i x matrix matrix,红框的乘积会补足最后红虚线的差距。
在这里插入图片描述
当处于critical point时,loss中绿色的一项为0,可以通过红色的一项进行判断。
在这里插入图片描述
如果红色框框都大于零,这时是local minima
如果红色框框都小于零,这时是local maxima
如果红色框框有时候小于零有时候大于零(代入不同的值),这时是saddle point

我们可以通过判断矩阵所有的eigen values正负来进行判断。
在这里插入图片描述
例如对于 y = w 1 w 2 x y = w_1w_2x y=w1​w2​x 这个function的误差曲面如图,最中间的点就是一个saddle point,往右上角会变大,右下角会变小。
在这里插入图片描述
我们用公式来进行相同计算,得到了绿框框和红框框的值,我们可以发现对于原点它的绿框框是零,说明是一个critical point。
我们再看它的红框框矩阵,把 w 1 w_1 w1​ 和 w 2 w_2 w2​ = 0代入就能得到这个矩阵的值,计算发现eigen value有正有负,所以它是一个saddle point!

1.2 update forward

在这里插入图片描述
H H H还可以帮助我们找到update的方向,我们如果把一个 H H H的eigen vector(特征向量代入,我们会发现红色框框的值等于特征值乘 u 2 u^2 u2。
所以我们可以根据特征值的正负来判断 l o s s loss loss变小的方向(沿着 u u u的方向) u u u是特征向量
但是这个方法所需要的计算量较大,所以实际情况下几乎不会使用这种方法来escape the saddle point。
在这里插入图片描述
根据实验我们可以发现,其实多数情况下eigenvalue都是有正有负的,所以其实真正的local minima很少

2. Tips for training

2.1 Batch

2.1.1 what is batch?

在这里插入图片描述
当我们对 l o s s loss loss做微分时,并不是一次对所有data做微分,而是分成了很多batch,每一次更新都只用了一个batch 的资料。所有的batch都训练后一遍,叫做一个epoch。 而每一次epoch后我们还会做一次Shuffle,把每个batch的data与之前选择的不一样。

2.1.2 why shall we use batch?

在这里插入图片描述
通过对比我们可以发现,没有使用batch时,我们必须看完所有的资料后才会更新一次。而batch size = 1,每次update参数只需要看一笔资料,比较noisy,容易收影响。
在这里插入图片描述
batch size的大小也对学习的时间有所影响,在考虑到平行运算时,其实大的batch更快一些。
在这里插入图片描述
参考各自的特点,选择适合的batch size。

2.1.3 Batch Normalization

在这里插入图片描述
输入的大小决定了w的影响力,进一步决定了Error Surface。所以我们尽可能让不同的dimension具有同样的数值范围,让优化变得容易,收敛变快。
在这里插入图片描述
我们可以对每Feature进行Normalization,之后平均为0,方差是1。
在这里插入图片描述
对于多层神经网络,每一层的输出对于下一层也是输入,所以也需要做一次normalization。
在这里插入图片描述
因为做了normalization后,每一笔输入之间互相具有了联系(因为需要一起进行平均),所以你的整体的函数变成了一个更复杂的函数(与之前相比),这时需要更强大的算力资源和GPU缓存。所以我们一般只考虑一个batch里的每一笔输入做一个归一化。这适用于batch size比较大的时候,因为大的size才足以表现出整体资料的分布情况。在这里插入图片描述
有时候会加上一组参数,初始设为1和0,代表归一化的成都,让机器自己学习慢慢调整。
在这里插入图片描述
在Testing时,pytorch会自动帮你保存一个累计batch的均值,这样就没有积攒到一个batch才能做运算的限制了。

2.2 Momentum

在这里插入图片描述
Momentum(动量),利用物理世界中的现象作为启发,每一步更新参数时加上一个**“ 惯性 ”**。在这里插入图片描述
每一步更新的时候考虑前一步走的方向,与梯度的方向结合得到 m m m。也可以把 m m m当作过去所有gradient的总和。在这里插入图片描述

2.3 Adaptive

y
有时候当 l o s s loss loss不再下降时,gradient其实并没有变得很小。这个时候有可能是在一个山谷两侧反复横跳,并没有真的卡到critical point。
因此我们需要为每一个参数特制learning rate。在这里插入图片描述
我们将原本的learning rate改成一个参数相关(parameter dependent)的值。

2.3.1 Root Mean Square

在这里插入图片描述
Root Mean Square利用平均后开根号的方式。这样算出的陡峭的参数学习率大,平滑的学习率小。

2.3.2 RMSProp

在这里插入图片描述

RMSProp与Root Mean Square相比,等于做了一个加权,让每个gradient不再是同等地位,又多了一个参数。
在这里插入图片描述
注意这里的 α α α并没有下标,说明是一个超参数。
Adam:RMSProp + Momentum
今天常用的方法是Adam,实现原理就是:RMSProp + Momentum。在这里插入图片描述
可以直接使用Pytorch调用。

2.3.3 Learning Rate Scheduling

在这里插入图片描述
与此同时,小的梯度不断累积导致整体的平均值变小,在过程中就会产生突然的“爆炸”,所以我们使用Learning Rate Decay与Warm Up,在过程中让学习率慢慢降低,类似刹车的作用。
Learning Rate Decay是慢慢变小,Warm Up是先变大后变小。在这里插入图片描述
结合Adam和SGDM,我们可以得到以下两种方法,各有特点:
在这里插入图片描述

2.3 Summary of Optimization

在这里插入图片描述
这就是最终版本的Optimization,结合了Momentum & RMSProp & 以及Learning rate scheduling
其中,

  • Momentum:考虑之前所有的gradient的大小方向,做一个累加,增加一种历史的“惯性”
  • RMSProp:取gradient平方,只考虑数值,缓和步伐的大小
  • Learning rate scheduling:以超参数的方式人为控制整体的学习趋势

3. Classification(choose loss fuction)

在这里插入图片描述
类比回归问题的方法,我们用单位向量表示分的每一个种类,得到的结果通过一个 s o f t m a x softmax softmax过程与标签进行对比匹配。在这里插入图片描述
做完Soft-max后,每个 y y y的值都在0到1之间,而且会让大的值和小的值之间的差距更大
对于 S o f t − m a x Soft-max Soft−max与 S i g m o i d Sigmoid Sigmoid在输出类别为2的情况下,有如下关系:
在这里插入图片描述
我们对于Classification的loss function,常用交叉熵(Cross-entropy)的方式,因此pytorch会在你用Cross-entropy函数的时候自动在网络的最后一层增加Soft-max。
在这里插入图片描述
对比MSE与Cross-entropy的Error图很直观的能发现在loss大的地方,MSE的gradient是接近0的,所以这时候如果初始化在左上角的位置,很难training到右下角。
在这里插入图片描述

【学习笔记】李宏毅2021春机器学习课程第2.5节:Classification 文章目录1 Classification as Regression?2 Class as one-hot vector3 Classification with softmax3.1 Softmax4 Loss of Classification 1 Classification as Regression? 我们已经知道,Regression就是输入一个向量,然后输出一个数值,我们希望输出的数值跟某一个label,也就是我们要学习的目标,越接近越好。 现在问题来到了如何做Classification, 阅读详情

相关推荐

基于灰度信息的图像配准方法

图像配准方法分为三种:基于灰度信息方法、基于变换域方法和基于特征方法。基于灰度信息方法是直接根据图像或图像块灰度信息进行像素上的对齐,该方法主要思想是直接最小化图像信息差异。然而,图像信息差异的判断准则衍生出不同的配准方法。常见的基于灰度信息的图像配准方法包括互相关法、互信息法和误差平方和法。本节将分别对互相关法、互信息法和误差平方和算法展开介绍,并通过MATLAB进行演示。基于灰度的图像方法容易实现,但同样存在不足。该方法对成像条件(光照,遮挡)、图像形变旋转以及噪声极其敏感,同时具有较高的计算复杂度。

weixin_42068054的博客 3778

李宏毅机器学习笔记1——classification(分类)

分类,即在一个函数判断输入数据所属类别,包括二分类(是/否)和多分类(类别1/类别2……)。·应用范围:信用评分、医疗诊断、手写字符识别、人脸识别等高斯函数通过计算均值μ和协方差Σ(均为矩阵),输入向量x,得到x的概率密度。下图中可以发现,同样的协方差,不同的矩阵,概率分布最高点的地方不同。如果是不同的协方差,同样的均值,此时概率点分布最高的位置一样,但分布密集程度不同。接下来,通过估计均值和协方差来找出高斯函数,估测的方法是极大似然估计法。

m0_63776870的博客 895

从零到一:uniPush2.0全链路集成与多厂商通道配置实战

本文提供了uniPush2.0从零开始的全链路集成与多厂商通道配置实战指南。详细讲解了DCloud平台配置、uniCloud云函数开发、客户端CID获取与消息监听,并重点攻克了华为、小米、OPPO、vivo等主流厂商推送通道的配置难点与避坑技巧,帮助UniApp开发者实现“一次集成,全端覆盖”的高效消息推送方案。

onion的博客 435

李宏毅 机器学习笔记 Classification

1. 绪论   Classification:Probabilistic Generative Model,本节课讲的是基于概率生成模型的分类。   分类任务本质上是找到一个函数,函数的输入是输入数据,输出是类别。应用范围比较广,例如信用卡评分、医学诊断、手写数字识别、人脸识别等等。   下图是对不同的宠物小精灵划分类别,如火系、冰系、草系等等。 下图是给定了一些宠物小精灵的特征,然后去预测它的类别。 下面我们以二...

Fighting Hua 248

CTFshow-pwn入门-前置基础pwn32-pwn34

CTFshow-pwn入门-前置基础pwn32-pwn34

你们de4月天的博客 1135

人工智能训练师技能等级认定四级技能考核试卷-样题1

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总分100分,考试时间150分钟。试卷涵盖数据处理、模型训练准备及系统维护等核心技能:1)垃圾分类数据集规范与处理(30分),要求评估数据格式并编写Python处理代码;2)学生成绩数据集分析(20分),涉及数据预处理、可视化及相关性分析;3)数据标注审核(10分),重点审核标注准确性;4)智能数据服务系统维护与优化(40分),包括安全帽数据集的项目创建、数据处理及平台协作。考核强调Python编程、数据处理平台操作及AI工作流程的实践能力。

weixin_42221934的博客 442

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Classification(Short Version)

本节用较短的篇幅介绍一下深度学习解决如何分类问题。如果想看长的版本,可以参考下面的视频。

知不足而奋进,望远山而前行 2万+

​​瑞芯微RK系列 vs 全志系列芯片:终极选型指南(2025版)​

​。

jinxi996611的博客 1万+

台大李宏毅老师——深度学习 课程笔记 四 (Classification)

文章目录

爱学习的大叔的博客 1002

反应动力学仿真软件:Kintecus_(12).高级功能与技巧

Kintecus允许用户自定义复杂的反应方程,包括非线性反应和多相反应。通过自定义反应方程,用户可以更准确地描述实际反应系统。多尺度仿真是指在同一模型中同时考虑不同时间和空间尺度的反应过程。Kintecus提供了工具来处理从微观分子动力学到宏观反应动力学的多尺度仿真。通过本节的学习,您已经掌握了Kintecus的高级功能与技巧,包括复杂反应网络的构建、参数优化与敏感性分析、自定义反应机制、多尺度仿真、并行计算与批处理,以及数据可视化与后处理。

kkchenjj的博客 1048

[QMT量化交易小白入门]-七、可转债双低策略Python代码详解与实战

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 3901

李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning

台湾大学李宏毅老师的机器学习课程是一份非常好的ML/DL入门资料,李宏毅老师将课程录像上传到了YouTube,地址:NTUEE ML 2016 。 这篇文章是学习本课程第4-6课所做的笔记和自己的理解。Lecture 4: Classification: Probabilistic Generative Model以根据宝可梦各属性值预测其类型为例说明分类问题。 训练数据是若干宝可梦的各属性值及

徐子尧的博客 1万+

在 SAP S/4HANA 分析模型中添加 Measures,Calculated、Restricted、Currency Conversion 与 Unit Conversion 的建模思路

摘要: SAP S/4HANA分析查询建模中,度量(measure)的加工层级是关键难点,涉及聚合时机、币种/单位语义、过滤上下文等复杂因素。度量不仅是数字字段,还需处理计算口径(Calculated Measures)、上下文绑定(Restricted Measures)和单位转换等问题。Calculated Measures适合派生指标(如毛利率),需注意聚合前后计算差异;Restricted Measures通过固化过滤条件(如区分实际/计划金额)确保业务语义一致性。建模时应将业务逻辑下沉到分析模型层

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1026

机器学习[李宏毅]-笔记5-Classification

目录

greenmoss的博客 202

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

classification(李宏毅机器学习课程笔记7)

如果同时在左上角大的loss开始训练,希望可以走到左下角小的loss,那么交叉熵在左上角有斜率可以更好的训练优化,使用交叉熵可以简化优化的过程。classification还要经过一个处理:softmax,他的主要功能就是把y中的任何数值移动到0-1之间。有两个计算e的方法,但是cross-entropy更常用,很多时候是和softmax绑在一起的。先把所有算出来的y全部取e,再除以所有取e的y的和,即为sofemax后的y。原本是接近一个数,,现在是接近一个向量并且分为几个class。

qq_69900890的博客 247

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

李宏毅2020机器学习课程笔记-Classification

classfication--宝可梦的研究1.分类是什么?2.宝可梦研究(问题的导入)3.把分类问题作为回归问题来解,work嘛?4.分类模型的分析(二分类)5.多分类案例说明6. Logistic Regression的局限-引入Deep Learning 1.分类是什么? 分类问题是找一个function,它的input是一个object,它的输出是这个object属于哪一个class。 2.宝可梦研究(问题的导入) 以宝可梦为例,已知宝可梦有18种属性,现在要解决的分类问题就是做一个宝可梦种类的分

peacefairy的博客 641

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

李宏毅机器学习课程笔记01 | Introduction of Machine/Deep Learning

函数的输入是b和w,函数的输出是输入某个特定的b和w,模型结果是是好还是不好L越大说明模型不好,L越小说明模型好假设有一个损失函数L(0.5k,1) ,模型为y=b+wx1 => y=0.5k+1x1(k是千人的意思)训练数据(本案例过去的订阅次数)输入到模型(函数)中,比如x输入1月1日订阅人数4.8k,计算得到模型预测的y(1月2日订阅人数)为5.3k,但实际只有4.9k求取估测的值跟实际的值(Label) 之间的差距。

好好学习天天向上 1339

李宏毅机器学习笔记8:Optimization

New Optimizers for Deep Learning 梯度下降: SGD SGD with momentum Adaptive learning rate: Adagrad RMSProp Adam Some Notations ????t ∇????(????????) ???? ????+1 在step t时的参数 下降的梯度 前面t步积累的动量,用来计算????????+1 Optimization’s aim 找到一个参数 ???? 使属性x的损失函数总和最小,

chairon的博客 808

NLP学习笔记27-优化Optimization

一 序 本文属于贪心NLP训练营学习笔记系列。视频151 变分推断先跳过。 二为啥要关注优化 通常有关AI的问题可以分解为:模型+优化 模型就是如何选择模型:逻辑回归、深度学习等,然后进行模型的实例化,例如选择深度学习,有几层,每层的参数等。 实例化完毕之后,我们总是可以找到一个与实例化之后的模型相对应的objective function(目标函数),接下来就进入了优化的阶段。 优化有很多算法,见截图,有了objective function之后,就是要归类,再选择合适的优化算法解决...

bohu83的博客 1696

李宏毅2021机器学习笔记——Classification

Classification To learn more 接下来讲有关分类怎麼做这件事情,这边讲的是一个短的版本,因為时间有限的关係,如果你想要看长的版本的话,可以看一下过去上课的录影 过去可能是花两个小时,到三个小时的时间才讲完,分类这件事情,我们这边用一个最快的方法,直接跟你讲分类是怎麼做的 Classification as Regression? 分类是怎麼做的呢 我们已经讲了,Regression就是输入一个向量,然后输出一个数值,我们希望输出的数值跟某一个label,也就是我们要学习的目标,越

Alex_SCY的博客 634

2020李宏毅机器学习笔记——4.classification(分类)

一、classification分类 分类(classification),即找一个函数判断输入数据所属的类别,可以是二类别问题(是/不是),也可以是多类别问题(在多个类别中判断输入数据具体属于哪一个类别)。 同回归问题(regression)相比,分类问题的输出不再是连续值,而是离散值,用来指定其属于哪个类别。分类问题在现实中应用非常广泛,比如垃圾邮件识别,手写数字识别。 ...

weixin_44790306的博客 3518

李宏毅机器学习课程笔记Lesson4-Classification

输入x ,通过一个函数,得到该x所属的类别 x -> function ->class n 例如银行贷款: 输入:用户的收入、存款等、工作、信用、年龄等 输出:同意或者拒绝 How to do Classisication 1.收集训练数据 (x1,y1)(x2,y2)… 2.理想做法 1)function (Model) 以二元分类为例子 大于0 class1...

长弓smile的博客 374

李宏毅机器学习——学习笔记(5)classification

Classfication and regression 分类和回归问题的loss function不一致,所以如果用回归的方式来解决分类问题,可能会惩罚“比较正确的那些项”,将这些项判定为error。 maximum likelihood 最大似然的方法,就是找出一种分布的参数,使得从这个函数中挑选出这些样本的可能性最大,然后再根据得到的分布函数用于分类 经过一系列的复杂运算,假...

m0_37757740的博客 418

李宏毅机器学习——学习笔记(二)Classification

考虑到宝可梦的两个属性(Defense、SP Defense),将输入的宝可梦进行属性分类(Water、Normal)

weixin_45568353的博客 375
上一篇: 李宏毅2021春季机器学习课程笔记2:General Guidance
下一篇: 李宏毅2021春季机器学习课程笔记4:Classfication & Generative Model & Logic Regression & HW2
Andy in boots
博客等级 码龄7年 73粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值