注:本文是我学习李宏毅老师《机器学习》课程 2021/2022 的笔记(课程网站 ),文中图片来自课程 PPT。欢迎交流和多多指教,谢谢!

Lecture 1 Introduction of Deep Learning

Machine Learning ≈ Looking for Function

我的理解:机器学习要找到输入和输出之间的关系,也可以理解为映射关系,建模也就是找到合适的(映射)函数。

本课程主要关注 深度学习 ,即 Function 是 Neural Network (神经网络) 的情况。

1. 机器学习三要素

1.选择一个 模型 ( model / function )。注意,模型包含一些未知参数 ( unknown parameters ) ,这些参数要根据训练集的输入、输出数据拟合得到,例如下图中线性模型的参数 www 和 bbb 。

2.确定模型的 评价标准 ( loss function ) ,也就是评价模型的估计效果,比如,模型估计的值是否接近真实值。

3.选择 优化算法 ( optimization ),就是快速找到最优参数的方法,就像编程里的算法一样。

确定这三个之后,就可以开始训练 ( training ) 了!看起来 so simple 有没有?(其实不然哈哈哈)

2.模型:线性–>非线性

线性模型对于复杂一点的曲线就无法拟合,那有没有别的模型呢?

有,比如说,我们可以把许多段折线“拼接”成一段复杂的曲线。例如,下图例子中红色的曲线可以用三段折线拼接得到:

由此推广:更复杂的曲线,也可以这样分段 ( piece-wise ) 拟合,只需要用更多的折线段。这里,sigmoid 函数起到了分段的作用,也是 把线性转换为非线性的重要单元 。iii 的个数就是折线段的数量,也就是说,把曲线分成几段拟合。

以下为从1个输入特征到多个输入特征时,输出 yyy 的表达式变化。注意:iii 标识了折线段的数量,jjj 标识了输入特征的数量。

以下为模型结构示意图,我在图中做了一点标记。虽然看上去复杂,但是,我们可以把模型看成是由线性单元–>非线性单元–>线性单元组合而成。

那么,其中有哪些是未知参数呢?请看下图:

3. 评价标准(loss function)

用于估计给定一组参数时,模型估计得到的目标值与真实值之间的差距。例如:MSE, MAE, Cross-entropy。

4. 优化算法(optimization)

常用的一种方法:Gradient Descent(梯度下降法),以线性模型中对 www 的求解为例,如下图所示,L 表示 loss function。沿着梯度下降的方向改变 www,希望最终使 L 最小。改变参数 www 时,有时候希望步子迈大一点,这样引起的 L 变动大一点,有时候又希望小一点,这可以用图中公式里的 learning rate (学习率) η\etaη 调节。 η\etaη 是我们人为设定的,所以叫 hyperparameter。(比如你写代码训练模型时,在训练前可以自己设定的参数,如学习率 η\etaη,分组大小 batch size 等,是 hyperparameters。而由程序运算自动求解的模型参数,是 parameters。)

理论上说,Gradient Descent(梯度下降法)每一次计算 gradient 时,loss function 由所有的训练数据计算得到。当训练集数据量很大时,这样的计算很耗时,有没有更快一点的办法呢?

可以每次取一部分数据计算。如下图所示,把数据划分成一个个相同大小的 batch(分组)。

第 1 次:用第 1 个 batch 计算 L 和 gradient,更新参数 ( update );

第 2 次:用第 2 个 batch 计算 L 和 gradient,更新参数;

依此顺序进行更新,直到所有 batches 的数据看过一遍,这个过程就是 1个 epoch。

一般会把数据先打乱 (shuffle),再分组,我感觉这就有了采样的效果,相当于每次随机取了一部分数据用于计算更新参数。batch 的大小决定了 1 个epoch 中的更新参数 ( update ) 次数。

  • batch-size 小,则 batches 的数量多,1 个 epoch 中 update 次数多。特别地,当 batch-size=1 时,每一个点都 update 1 次,1 个epoch 要 update N 次。
  • 反之,batch-size 大,1 个 epoch 中 update 次数少。特别地,当 batch-size=N 时,也就是使用了全部数据、未分组的情况,1个 epoch 只 update 1 次。

5. Deep Learning

前面介绍的是一种简单的模型结构,我们还可以把 sigmoid 函数(也就是非线性单元)的输出,当成新的输入,再次经过一个相似的结构,如下图所示。此时,除了输入层和输出层之外,中间还有若干层网络结构,就称为 hidden layer(隐藏层)。因为类似于人脑神经结构,这个网络结构整体被称为 Neural Network。

深度学习 ( Deep Learning ) 为什么叫 Deep?就是因为有很多层 hidden layers,模型纵深发展。

思考:Why we want “Deep” network? not “Fat” network? 理论上说,只要折线段的数量无限多,是可以拟合任何曲线,也就是 sigmoid 函数的个数 iii 取很大的值,这样的模型结构就是 “Fat” network。为什么要用 ”Deep“ 而不是 “Fat” Network 呢?
(想要知道原因,可以看这篇笔记:为什么是“深度”学习?)

听课收获

1.机器学习的三要素:model/function, loss, optimization,做作业时也有体会,每次训练之前,都要先定义这三项。

2.课程中介绍神经网络是从折线拟合的角度出发,这个角度很新颖,和我之前看的教程中从神经细胞结构(树突、轴突)出发不同。无论多么复杂的曲线,总可以通过许多的小折线拟合。

但是这种无限近似拟合法也可能存在过拟合的问题,因为我们是要寻找规律,而不是细节。当折线段的数量很多时(也就是一层有很多个神经元结构),就开始拟合细节或者说数据的抖动了,这是否就是 “Fat” Network 的弱点?

本文对您有帮助的话,请点赞支持一下吧,谢谢!

关注我 宁萌Julie,互相学习,多多交流呀!

笔记,请点击 李宏毅老师《机器学习》笔记–合辑目录

参考

李宏毅老师《机器学习 2022》:

课程网站:https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php

视频:https://www.bilibili.com/video/BV1Wv411h7kN

李宏毅老师《机器学习》课程笔记-1深度学习简介相关推荐

  1. 李宏毅《机器学习》笔记 DAY4 深度学习反向传播

    目录 深度学习的三个步骤 Step1:神经网络(Neural network) 完全连接前馈神经网络 全链接前馈网络 矩阵计算(Matrix Operation) Step2:模型评估(Goodnes ...

  2. 李宏毅2020机器学习课程笔记(二)

    相关专题: 李宏毅2020机器学习资料汇总 李宏毅2020机器学习课程笔记(一) 文章目录 4. CNN Convolutional Neural Network(P17) 5. GNN Graph ...

  3. 黄海广博士的机器学习个人笔记及深度学习笔记

    想要下载黄海广博士的机器学习个人笔记及深度学习笔记的请复制下面链接 https://download.csdn.net/download/wgllovemother/10447758 备注:有想下载  ...

  4. 李宏毅2020机器学习课程笔记(一)

    文章目录 1. 课程简介 Course Introduction(P1) Rule of ML 2020(P2) 2. Regression Case Study (P3) Basic concept ...

  5. 【李宏毅机器学习课程笔记】深度强化学习(五)—— Sparse Reward

    文章目录 Introduction Reward Shaping Curiosity Curriculum Learning Hierarchical Reinforcement Learning I ...

  6. 李宏毅老师机器学习选择题解析

    机器学习选择题解析加整理 项目说明,本项目是李宏毅老师在飞桨授权课程的配套问题 课程 传送门 该项目AiStudio项目 传送门 仅供学习参考! 三岁出品必是精品! 整理内容源于李宏毅老师机器学习课程 ...

  7. ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10)

    ScalersTalk 机器学习小组第 21 周学习笔记(深度学习-10) Scalers点评:机器学习小组是成长会的内部小组,这是成长会机器学习小组第21周学习笔记,也是深度学习第10次的复盘笔记 ...

  8. [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)

    [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning:深度学习简介) PDF VIDEO Ups and downs of Deep Le ...

  9. 深度学习入门之PyTorch学习笔记:深度学习介绍

    深度学习入门之PyTorch学习笔记:深度学习介绍 绪论 1 深度学习介绍 1.1 人工智能 1.2 数据挖掘.机器学习.深度学习 1.2.1 数据挖掘 1.2.2 机器学习 1.2.3 深度学习 第 ...

  10. 深度学习笔记(1) 深度学习简介

    深度学习笔记(1) 深度学习简介 1. 引言 2. 神经网络 3. 兴起 1. 引言 在机器学习的历史上,一共出现了两种定义: 1956 年,开发了西洋跳棋 AI 程序的 Arthur Samuel ...

最新文章

  1. Linux下zkui的安装
  2. php单元测试断言方法
  3. 完美的素数_JAVA
  4. 通过用户名限制用户上网
  5. Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小
  6. kali用x-shell连接_良心国产工具,比Xshell好用还免费!
  7. 一个比较怪异的操作,没有返回值
  8. 存储端显示主机链路降级_【计算机网络】你真的理解数据链路层吗?
  9. Java获取接口所有实现类的方式
  10. 程序执行的过程分析--【sky原创】
  11. adb命令查看手机电量_你们要的App电量分析测试来了
  12. android自定义ViewPager之——3D效果应用
  13. Python软件无线电(1):概述
  14. CAD中插入外部参照字体会变繁体_什么是CAD的形文件,它与字体文件有什么区别?...
  15. 如何将gif动图分解成png格式?动图分解器如何使用?
  16. IPv4如何转换为IPv6?
  17. 2015阿里巴巴实习生招聘客户端开发试题
  18. 解决C语言运行窗口一闪而过问题
  19. Mind map of holistic learning by Scott Young
  20. LOJ #10008. 「一本通 1.1 练习 4」家庭作业

热门文章

  1. 苹果结构体系不匹配_为什么苹果手机Id总是不匹配?????
  2. U盘启动CDLinux制作方法
  3. 电脑使用VMware安装Android系统
  4. STM32+多片AD7705+双通道采集热电偶
  5. 私有云计算机械硬盘还是固态硬盘,机械硬盘居然也限制写入量,吓得我又买一块固态硬盘...
  6. while语句没有花括号用法
  7. 时间序列度量算法之SBD
  8. 经典佳句(500)言
  9. 有关php外文期刊,口腔外文杂志、收录数据库、参考信息汇总
  10. 稳压电源: 电路图及类型