ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

李沐-斯坦福《实用机器学习》-01章

2021-11-29 11:32:22  阅读:150  来源: 互联网

标签:01 com 模型 斯坦福 学习 https 李沐 数据 标注


1.课程介绍

视频链接
首先介绍了机器学习作为技术本身,
它的大致构成以及所面临的一些挑战.
然后讲述学习机器学习,你会变成什么样的角色.
最后讲述了本课程中会涉及到哪些主题.

举例:房价预测问题
在这里插入图片描述
工业界中应用机器学习的基本流程
机器学习的应用是一个循环过程.
他从问题表述开始到收集数据建立模型并将模型上线.
上线之后要对模型不停的监测并重复更新模型.
在这里插入图片描述
问题—收集处理数据—训练调参—部署到线上/观测模型调整

挑战:

  1. Problem formulation
    首先是将实际问题换一种描述方式,
    表述成机器学习可以解答的数学问题. (Problem formulation)
    比如房价预测就是一个回归(regression)问题.
  2. Data
    缺少高质量的数据/侵犯隐私
  3. Train Models
    模型越来越复杂
  4. Deploy models
    模型完成之后就开始部署上线( Deploy models)
    部署成本太高,要求太高(速度)
  5. Monitor
    模型并不能一劳永逸, 你需要不停的监控 (Monitor)
    比如查看模型是否符合实际情况?
    是否需要增加数据?
    或者数据是否已经发生了重大的变化,需要调整模型?
    在监测过程中, 从收集数据开始的循环可能要重复多次
    在这里插入图片描述
    工业界中机器学习与人
    领域专家: 知晓产品的需求,知道模型的价值, 以及在哪用最好.
    数据科学家: 可以理解为全栈程序员, 需要负责从处理数据到模型上线的全部过程
    机器学习专家: 专注于模型的改进
    软件开发工程师(SDE): 就是码农, 他们需要在软件代码运行维护方面出力.
    在这里插入图片描述
    个人成长
    在这里插入图片描述
    领域专家或者软件开发工程师可以慢慢的发展,成为数据科学家.
    数据科学家也可以进一步提升自己的技能,变成机器学习这一领域的专家
    这门课需要的基础是一些基本的统计知识,一些基础的编程
    数据科学家把时间花在哪儿?时间的大头花在数据处理上

课程主题
在这里插入图片描述
1.数据:需要学会如何处理实际的数据
2.训练
3.部署
4.监测

2.数据的获取

这一讲主要讲在没有现成的数据情况下,
如何去找到数据集,并对各种现有的数据集有个大致的概念
以及实在找不到数据集的时候, 该用什么方法来生成数据.

什么时候需要考虑数据的获取?
在这里插入图片描述
常见的数据集
-维基百科中关于数据集的列表 https://en.wikipedia.org/wiki/List_of_datasets_for_machine-learning_research 其中收录了一系列的数据集

  • MNIST: 手写数字数据集 http://yann.lecun.com/exdb/mnist/
  • imageNet : 大规模图片数据集 https://www.image-net.org/
  • AudioSet: 油管的声音片段数据 https://research.google.com/audioset/
  • Kinetic : 油管人类动作视频片段 https://deepmind.com/research/open-source/kinetics
  • KITTI : 无人驾驶数据集 http://www.cvlibs.net/datasets/kitti/
  • Amazon Review: 亚马逊用户评价数据 https://s3.amazonaws.com/amazon-reviews-pds/readme.html
  • SQuAD: 维基百科问答 https://rajpurkar.github.io/SQuAD-explorer/
  • LibriSpeech : 有声书数据集 https://www.tensorflow.org/datasets/catalog/librispeech

去哪找数据集

  • Paperwithcodes 论文相关数据集 https://paperswithcode.com/
    • 提供了学术论文和相关的数据,并且给出了这个论文在数据集上面的运行表现
  • Kaggle https://www.kaggle.com/
    • 除了竞赛数据集以外,很多用户也上传数据集, 这些用户上传的数据集质量鱼龙混杂.
  • google 数据集搜索. https://datasetsearch.research.google.com/
    • 这是谷歌的一个搜索入口. 可以搜到其他各种来源的数据.
  • 开源工具自带的数据集
    • 比如tensow flow深度学习软件, 往往会自带一些数据集
  • 各种数据比赛的竞赛数据 往往质量比较高.
    • 保存在云盘上的数据集,比如说 open data on AWS
  • 公司本身的数据仓库或者数据湖(data lakes)

数据集的分类和比较
数据集和数据集是不一样的, 学术界的数据集(academic datasets)和工业界的原始数据(raw data)是两个极端
- 学术界的数据集是精心挑选且人工处理过的, 数据干净, 拿来就用,方便在上面测试算法.
是这些数据集不仅数量少, 往往和真实数据差别很大
- 比如 UCL 数据集 https://archive.ics.uci.edu/ml/datasets.php

  • 工业界的原始数据是最多样, 而且是真实的. 但往往需要消耗非常多的人力才能让这个数据变得"好用"
  • 各种数据比赛的竞赛数据介于工业界和学术界之间.

数据融合
-数据融合就是把多个表合并(join)成一个表.

  • 数据往往被存放在多个位置, 用的时候需要把他们合起来
    • 比如说很多数据, 分属于不同的部门,或者说不同数据更新的频率不同, 分开存储会灵活.
  • 为了方便数据融合, 你的数据要有一个 不重复的主键(key)
    • 主键(key)往往表现为数据表的一列,往往是某种ID
  • 在数据融合的时候,你可能会碰到重复的主键或者数据缺失, 或者不同表上记录相互冲突

生成数据
在这里插入图片描述
找不到数据集的时候, 尝试生成数据, 就是自己制造一批数据

  • GAN 生成图像
  • 数据增强 Data augmentation
    • 比如说以一张图片为蓝本, 生成一系列相似,但又有差别的图片
    • 另一个例子, 使用翻译引擎,来回翻译一段话

小结

  • 找数据很麻烦,而且还要区分这个数据是否合用.
  • 学术界使用的数据和工业界使用的数据差异很大
  • 很多时候,多个数据表要融合成一张表
  • 所以生成数据现在越来越常见, 尤其是数据增强方法

3.网页数据的抓取

以前学过,略

4.数据的标准提升标注是这个小节的关注的重点

在这里插入图片描述
足够的标注 —> 半监督模型
足够的预算 —> 找人给你标识
都没有? —> 弱监督学习

半监督学习
解决的问题:有一小部分数据有标注,有很多很多数据是没有标注(如何利用没有标注的数据)

对于是否有标注的数据做了以下假设:
连续性:样本之间的特征是相似的话,则这两个样本很有可能是有相同的标注的
类的聚类假设:数据是按类来分的;数据内在如有好一点的聚类的结构,一个类里面也可能有相同 的标注
流型(manifold)假设:虽然我们收集的数据维度比较高,但是数据有可能是在低维的流型上分布的(可通过降维得到干净点的数据 )

自学习
先用标注好的数据训练一个模型
用训练好的模型对未标注的数据进行预测(得到伪标注数据)
将伪标注数据与已标好数据合并
在合并的数据的基础上再训练模型
不断进行上述过程
P.S. 伪标注数据可能噪音比较大,故将模型比较确信的伪标注数据保留下来。(怎么样选择置信样本)这里的模型是用来标记数据的,不用考虑该模型的成本,这个模型不会上线

找人来标数据
众包
在这里插入图片描述
挑战:
1.需要设计相对简单的任务,给他们清晰的指示,用起来比较简单(难度与可以做的人数呈反比)
2.成本:按小时来算,任务所花时间 * 任务数 * 标注工的时间成本 = 成本(预算够可以找专业公司)
3.质量变化可能会比较大

降低成本
主动学习:训练模型预测,将最不确信的数据进行标注/用多个模型来预测哪个样本比较难

主动学习与自学习结合
在这里插入图片描述
确信的数据与原数据合并,不确信的发给标注工

数据的质量控制
在这里插入图片描述
最简单的做法是,每个任务发给多个标注工,汇总之后,投票判断(贵)
可以把难确信的数据发给多个人(多做几次)
提前先出些题目,判断标注工靠不靠谱

弱监督学习
在这里插入图片描述
半自动的生成变化:比人标注差,但也可以用来编程(对数据编程,带引导性的,写相应的规则)

总结
在这里插入图片描述

标签:01,com,模型,斯坦福,学习,https,李沐,数据,标注
来源: https://blog.csdn.net/weixin_43996337/article/details/121605471

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有