Day-01 深度学习是什麽?

  • 深度学习是机器学习领域中的一种作法,主要利用类神经网路的概念,模仿人类神经网路的运作,来判断资料特徵,达到辨别资料的效果
  • 那在深入了解深度学习到底怎麽做之前,当然必须知道他在整个人工智慧这个大领域中的位置,才能更好理解我们所希望达到的目的与方式,因此先让我们聊聊人工智慧、机器学习、深度学习,到底差在哪里吧~

什麽是人工智慧、机器学习、深度学习?

  • 上面这张图片是来自 NVIDIA 的 what is the difference of AI ML DL 一文,这张图片其实很好的诠释了三个名词的身分
  • 人工智慧/人工智能(Artificial Intelligence, AI)是计算机科学的一个分支,是指由人制造出来的机器所表现出来的智慧。通常是指电脑模拟人类思维过程以模仿人类能力或行为的能力,强调模拟人类智能
    • 这个名词的定义我们可以发现,AI 这个词其实可以说是人类对电脑未来的期望,且这名词从 1950 年代就已经出现了。
  • 机器学习(Machine Learning, ML)则是 AI 的一个子领域,利用观察到的数据/经验建构解决问题的演算法。
  • 深度学习(Deep Learning, DL)则是基於 ANN 的具有表徵学习的计算模型。
    • 人工神经网路(Artificial Neural Network,ANN)是受生物神经系统启发的更广泛的 ML 方法系列的一部分。
    • 表徵学习是学习输入数据的表徵,它使执行分类或预测时更容易提取有用的信息。

小小统整一下(翻译年糕)

简单来说,

  • AI 是一种计算机科学的领域,期望利用模拟人类思考方式来达到人类思维方式的运算
  • ML 则是 AI 的一个领域,期望从资料、数据之中学习模型
  • DL 则又是 ML 中的一种方法,利用模拟人类脑神经的概念,达到对资料特徵的学习提取

在这里借用 李弘毅老师 的分类说明,

  • AI 是一个科学的目标
  • ML 是 AI 中的一种手段
  • DL 是 ML 中的一种方式

所以了解深度学习之前,要先有机器学习的基本概念

那机器学习又是如何学习的呢?

  • 我们可以看到上面那张图片,机器学习的概念和一般程序撰写的概念其实并不相同

先来看看一般程序语言

  • 在我们一般的程序撰写中,我们是撰写规则,并输入资料之後,输出一个答案,所以假设我们今天要撰写一个行为判断的程序,我们会怎麽撰写?
    if time <= 6:
        print(sleep)
    elif time <= 12:
        print(working)
    else:
        print(breaking)
    

    上面的程序说明了一个人几点几分在做什麽事情

  • 但这边最大的问题就是我们如果没有设计到的规则,那面对规则外的互动,我们的程序并没办法给予相对应的回应,也就是 程序本身无法超过写程序的人的设定
  • 所以如果我们其实有四种不同的行为判断,我们还有一个叫做通勤(commute),会发生甚麽事情
    if time <= 6:
        print(sleep)
    elif time <= 12:
        print(working)
    else:
        print(breaking)
    # no commute option...
    
  • 程序其实就无法输出第四种状态,因为我们并没有设计好这个输出的逻辑

那如果是机器学习呢?

  • 我们说了,机器学习的目标是去模仿人类解决问题的方式,因此如果我们一样是给予 if else 逻辑判断式就一点意义都没有了,那到底要怎样解决程序本身限制的问题呢?
  • 因此在机器学习中,我们并不直接撰写逻辑,相反,我们希望机器帮我们找出判断逻辑,和该如何判断资料
  • 所以换句话说,我们不给程序 function 了,我们希望他们就给予的资料,自己产生/挑选一个 function
  • 因此如果是刚刚的情境会怎样运作呢?可以发现机器学习的话,会自己判断东西的状态,延伸出一种判断方式,换句话说,由於资料内部已经有四种不同的状态,所以後续的判断一定会判断四种

什麽,你说你听不懂?没关系,我们拉到 "人类" 学习事物的方式来解释一遍

人类是怎麽学习的?

  • 回想我们自己学习的过程,假设今天我们要知道一只狗狗他是狗狗,并不是先知道一只狗狗有狗毛、狗鼻子、四条腿等等特徵,而是先知道那些生物都是狗狗,然後我们自己在脑袋中生出一个判断的依据。
  • 所以换句话说,人类的学习是从答案中,回推判断的 方式特徵判断逻辑 ,而非给予逻辑并输出答案的,这就和一般的程序语言有极大的落差。

回到机器学习

  • 因此机器学习的核心概念也是如此,我们人类对於撰写最佳的判断逻辑有了极限,那我可不可以改成给予一堆可行 function(define a set of function),然後给予资料集(Data Set),然後请电脑帮我就这些答案,取找出最好的解决方案,也就是模仿人类从答案取得特徵的概念,达到取得最佳判断逻辑的效果
  • 所以我们其实可以把机器学习简化成三个大区块概念


    Reference: ML Lecture 0-1: Introduction of Machine Learning

  • 当然这样的介绍还是非常粗浅的,但是已经大致上把机器学习的概念给说明了,如果想更清楚的理解到底机器学习是什麽,可以参考 Day-00 里面的 Reference 的各个资料,里面都有更详细的介绍

每日小结

  • 在已经知道机器学习的概念之後,我们可以知道机器学习最核心的概念就是利用结果去回推最佳可行的判断逻辑
  • 深度学习身为机器学习中的一部份,当然也承袭了这样的核心概念,这也是为甚麽我们要先对机器学习有基础的认知,那明天还是让我们先把机器学习的更多基础打实一点,之後再来详细说明深度学习

<<:  【Day 02】 何谓 Data Analytics Pipeline

>>:  Day1 NiFi 导读与前言

系统分析师养成之路-当责Accountability

因私人因素欧吉桑有一段时间没发文了,不知道有没有人期待我的新文章呢? 今天,我想跟大家分享的主题是【...

前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day19 巢状路由

连续 30 天不中断每天上传一支教学影片,教你如何用 React 加上 Firebase 打造社群...

全端入门Day12_安装IDE

昨天介绍完IDE了,那麽今天就要来实作了,直接进入今天的主题: 安装VS Code 使用收寻引擎打V...

IT 铁人赛 k8s 入门30天 -- day11 Helm - Package Manager

前言 今天要来讲说 Helm 这个工具 因为 Helm 版本会不断推陈出新, 因此在今天的内容着重再...

Day 06: 测试驱动开发 (Test Driven Development)

「然而,没有测试套件,他们就丧失确保『程序修改後是否仍能照预期般工作』的能力,他们没办法保证『对系...