zoukankan      html  css  js  c++  java
  • 李宏毅机器学习课程笔记-1.机器学习概论

    机器学习是什么

    机器学习就是让机器能自动找到一个函数(function)

    • 语音识别(Speech Recognition)

      输入是音频,输出是音频对应的文字。

    • 图像分类

      输入是图片,输出是类别(比如猫、狗)。

    • AlphaGo下围棋

      输入是当前棋盘的状态,输出是下一步落棋的位置。

    • 对话/问答系统

    机器能够找到哪些函数?

    为解决不同的问题、完成不同的任务,需要找到不同的函数,那机器学习能找到哪些函数呢?

    • 回归(Regression)

      输出是一个连续的数值、标量,比如PM2.5预测。

    • 分类(Classification)

      输出是一个离散的值。

      二分类(Binary Classification)的输出就是0或1、Yes或No、…,比如文本情感分析的输出可以是正面和负面。

      多分类(Multi-Category Classification)的输出就是[1,2,3,...,N],比如图像分类里判断一张图片是猫还是狗还是杯子。

    • 生成(Generation)

      很多教科书把机器学习划分为回归问题和分类问题,但其实不止这两种问题,还有其它问题,比如生成(Generation)。

      生成(Generation)指让机器学习如何创造/生成,比如生成文本、图片等。

    如何告诉机器我们希望找到什么函数

    我们该如何为机器提供学习资料?

    • 有监督学习(Supervised Learning)

      可以把有监督学习中的“监督”理解为“标签(Label)”,即数据集中不仅包括特征还包括标签。

      有了标签,我们就可以评价一个函数的好坏,进而优化这个函数。

      使用Loss判断函数的好坏,Loss越小,函数越好。个人想法:值得一提的是,Loss/评价指标是多样的、优化方法也是多样的。

    • 强化学习(Reinforcement Learning)

      原始的AlpahGo是先通过有监督学习优化到一定程度,然后用强化学习继续优化。

      新版本的AlphaGo是完全通过强化学习实现的,优于原始的AlphaGo。

    • 无监督学习(Unsupervised Learning)

      只给机器提供数据特征,但不提供数据标签。那机器能学到什么呢?

    下面以让机器学习下围棋为例:有监督学习VS强化学习。

    • 有监督学习

      函数的输入(数据特征)就是棋盘状态,函数的输出(数据标签)就是下一步落棋的位置。

      此时,我们需要为机器提供的数据就类似棋谱(如果现在棋局是这样,那下一步怎么落棋最好),但其实人类不一定知道怎么落棋最好

      个人想法:理论上,通过这样的有监督学习,机器是无法超越人类的。因为这样的有监督学习的本质是人类把自己的下棋策略教给机器,机器学习的内容仅仅是人类的下棋策略而无法“自主进行思考”,所以理论上机器是无法超越人类的。同时要注意,这里的人类指全人类。

    • 强化学习

      让机器跟自己、别人下棋,把结果(赢或输)作为Reward,引导机器学习如何下棋。

      如果它赢了,那它就知道这一盘里有几步棋下得好,但不知道是哪几步;如果它输了,它就知道这一盘里有几步棋下得不好,但不知道是哪几步。

      个人想法:理论上,通过这样的强化学习,机器是可以超过人类的。因为两者的学习材料没有本质区别,但机器的机能却优于人类,这里讲的机能包括信息共享能力、记忆能力、执行能力等方面

    机器如何找出我们想找到的函数

    • 我们要给定函数形式/范围(模型)

      比如假定函数是线性模型、神经网络等等。模型就是一个函数集,模型的参数确定以后,才得到一个函数。

    • 找到更好的函数:

      使用梯度下降(Gradient Descent),找到更好的函数。

    前沿研究

    • AI的可解释性(Explainable AI)

      比如,机器为什么认为这张图片里有一只猫?

    • 对抗攻击(Adversarial Attack)

      对输入故意添加一些人无法察觉的细微的干扰,导致模型以高置信度给出一个错误的输出。

    • 模型压缩(Network Compression)

      把模型压缩以减少模型对计算资源消耗。

    • 异常检测(Anomaly Detection)

      使机器知道它遇到了自己不知道的东西。

    • 迁移学习(Transfer Learning/Domain Adversarial Learning)

      一个模型已经学到了一些知识,将这些知识应用到另一个任务中。

    • 元学习(Meta Learning)

      让机器学习如何学习。

      机器学习是我们教机器学习某种知识,元学习是我们教机器如何学习。

    • 终身学习(Life-Long Learning)

      让机器终身学习,学习完任务1、再继续学任务2、……

    机器学习的三个步骤

    1. 确定模型(Model)/函数集(Function Set)
    2. 确定如何评价函数的好坏
    3. 确定如何找到最好的函数

    Github(github.com):@chouxianyu

    Github Pages(github.io):@臭咸鱼

    知乎(zhihu.com):@臭咸鱼

    博客园(cnblogs.com):@臭咸鱼

    B站(bilibili.com):@绝版臭咸鱼

    微信公众号(WeChat Official Accounts):@臭咸鱼的快乐生活

    转载请注明出处,欢迎讨论和交流!


  • 相关阅读:
    给jquery 添加触屏事件,上下左右 touchwipe插件
    node.js 安装运行
    CSS3 3D 盒子模型
    javascript 获取内联样式
    HTML5 离线存储应用案例
    swipe.js 轻松实现手机端滑动效果
    手机网页轮播切换,简易版
    多行文字垂直居中
    jquery实现简单轮播
    利用media query写响应式布局
  • 原文地址:https://www.cnblogs.com/chouxianyu/p/14171703.html
Copyright © 2011-2022 走看看