台湾NTU李宏毅的Machine Learning (2017,Fall),部分要点总结1:一些基础与classification

前言

断断续续地看完了李宏毅老师的ML课程视频,作业还没有做完,先总结一下我觉得可以单独汇总在一起的一些tips,这些tips或许跟network的选择有关,或许跟调参有关。至于单门课程的笔记,网上挺多的。
这门课程从regression过渡到neural network,然后基本就是各种与neural network相关的东西,不管是supervised learning还是unsupervised learning,即使讲到了reinforcement learning也会试图类比之前用DNN做的classification problem。内容很丰富,不过老师会举很多例子让你理解。但涵盖的内容太过广泛,有些东西也就相当于入个门,知道怎么回事,要真正搞清楚恐怕要自己去找资料深入,不过对我来说足够了,入门嘛,帮我搞清楚了很多东西,我觉得还是很好的。
有时间的话可以好好看一遍,如果想搞清楚某一方面相关的,就没必要全看完了,太多了,会花费两到三周(当然如果你看完一个视频就立马下一个,一到两周也是可以的)。

tips:老师的一些视频与PPT不是完全对应的,而且顺序上有些问题,甚至有的视频是前几年的,所以困惑的时候可以找找老师之前开设这门课的链接,找找相关视频。比如Machine Learning (2017,Spring)中reinforcement learning就比Machine Learning (2017,Fall)讲得丰富

一些基础

  1. 复杂的模型会包含简单的模型,因此可能会在training data上的表现更好,但过于复杂可能会导致overfitting,导致在testing data上表现不好。参数越多模型越复杂,training data过少也容易overfitting。
  2. delta函数
    在这里插入图片描述
  3. Error due to “bias” and error due to “variance”. Variance depends on the number of samples. 简单的模型比较不容易受sample data的影响,因此variance会比较小,但可能会有较大的bias。复杂的模型可能会有较小的bias,但由于参数较多,受sample data的影响较大,会有较大的variance。
    在这里插入图片描述
  4. 如何处理large bias:
    在这里插入图片描述
  5. 如何处理large variance:
    在这里插入图片描述
  6. 两种regularization方法:
    在这里插入图片描述
    在这里插入图片描述
  7. 如何选择一个能在kaggle上表现较好model呢,可以将training data分割,然后进行validation,想了解完整内容可以点击这里
    在这里插入图片描述

Gradient Descent tips

Tuning your learning rates

让learning rate随epoch次数增加而下降,同时给不同的参数不同的learning rate。在keras常用adam
AdaGrad非常适合样本稀疏的问题,因为稀疏的样本下,每次梯度下降的方向,以及涉及的变量都可能有很大的差异。AdaGrad的缺点是虽然不同变量有了各自的学习率,但是初始的全局学习率还是需要手工指定。如果全局学习率过大,优化同样不稳定;而如果全局学习率过小,因为AdaGrad的特性,随着优化的进行,学习率会越来越小,很可能还没有到极值就停滞不前了。

Stochastic Gradient Descent

可以让training变得更快,但因为每次训练的都是随机的一个样本,会导致梯度的方向不会像BGD那样朝着最优点。
随机把数据打乱很重要,因为这个随机性相当于引入了“噪音”,正是因为这个噪音,使得SGD可能会避免陷入局部最优解中。
在这里插入图片描述
普通的那种又叫batch gradient descent

Feature Scaling

Make different features have the same scaling
在这里插入图片描述
每个x是一个sample,对每个feature减平均值,除以标准差
在这里插入图片描述

Classification

  1. Maximum Likelihood指的是当前这个概率分布sample出training data的概率,找到概率最大的分布。先找概率分布再进行分类,又称为Generative model( 生成模型)。生成模型需要假设数据的概率分布模型,判别模型不会,单纯是找到数值
  2. 当给两类数据不同的高斯分布时,考虑到model参数过多,容易Overfitting,为了有效减少参数,给描述这两个类别的高斯分布相同的协方差矩阵。
    对于二元分类来说,此时用通常不会用高斯分布,可以假设是符合 Bernoulli distribution(伯努利分布)。
    假设所有的feature都是相互独立产生的,这种分类叫做 Naive Bayes Classifier(朴素贝叶斯分类器)
  3. 后验概率可以转变为sigmoid function
    在这里插入图片描述
    然后可以变成regression
    在这里插入图片描述
    这叫logistic regression,直接去求w和b,即**Discriminative model(判别模型)**与此同时,loss function变为cross entropy,即两个分布的相似程度,越相似越小。
  4. logistic regression不能用square error作为loss function,要用cross entropy
    在这里插入图片描述
    在这里插入图片描述
    否则的话
    在这里插入图片描述
    这样会导致离目标远的时候,也会步伐很小。其中z=w*x+b
  5. 分类问题的function set为:
    在这里插入图片描述
    在老师的PDF中,由于其具有相同的function set,因此将判别模型与生成模型当成同样的model。虽然老师举的例子中判别模型结果较好,但生成模型依然有自己的优势:
    在这里插入图片描述
  6. softmax帮助做Multi-class Classification,拉大大小值之间的差距
    在这里插入图片描述
  7. 有时候需要做Feature Transformation才能用logistic regression,但这个转化不好找,我们可以将多个logistic regression拼接起来,就成了deep learning,每个logistic regression就是一个neural
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值