DAY19 浅谈深度学习

我们在前面算是完整的介绍了使用机器学习的方法来做资料分析,在剩下最後11天的时间,我想把自己在暑假所接触的深度学习、电脑视觉,以及参加的议题竞赛拿来作介绍,顺便汇整一下自己的学习历程,由於时间的关系,可能也没办法介绍的很全面,但还是尽量会附上实作的程序码来作范例。


一、深度学习(Deep Learning)

深度学习可以看成机器学习的一种方式,也是目前AI领域的主流,相信最让大家耳熟能详的就是当今世界棋王Alphago,它就是基於深度学习的产物,其实深度学习说穿了就是在模仿人类,人类的脑神经可以做非常复杂的运算及思考,但我们无法快速或是大量地使用它,而机器却可以,因此,我们让机器模仿人类,再搭配机器本身强大的计算能力,就可以达到更高的境界,那机器具体怎麽模仿人类呢,请看下图:

神经元的运作

https://ithelp.ithome.com.tw/upload/images/20210914/20140427MhnKfn9kgD.png
那麽深度学习跟机器学习又差在哪呢?请看下图:
https://ithelp.ithome.com.tw/upload/images/20210914/20140427gIlBB0Ya8X.png
由上图可知,深度学习并没有特徵萃取(Feature extraction)的步骤,它的所有运算权重、网路,都是由机器自己学出来的,我们要做的就是建立训练的规则,以及丢给机器大量的资料,这就是深度学习的初步概念。


二、机器视觉(Machine Vision)

机器视觉是深度学习应用的领域之一,也是我暑假接触的,所以会往这部分做介绍,机器视觉顾名思义,就是用摄影机和电脑代替人眼,去做到一些人类因为限制无法做到的工作,例如:大量产品瑕疵检测,精密的仪器检测...等,较常见的应用领域为图片分类(Image Classification)、物件侦测(Object Detection)、语意分割(Instance Segamentation)...,不知道他们的差别?我们用一张图在下面说明!
https://ithelp.ithome.com.tw/upload/images/20210914/20140427HtoKW7Ixy0.jpg
这是一只可爱的哈士奇照片,上述的应用会怎麽进行呢?

图片分类:机器会预测这张图片是一张哈士奇的照片

物件侦测:机器除了预测出哈士奇,还需要知道这只哈士奇在图片中的位置是在正中间(Localization)

语意分割:机器要能明确的把照片中元素(哈士奇、椅子、草皮)的边缘分割出来,知道哪个元素是什麽东西。


三、卷积运算(Convolution)

相信很多入门的同学都会多次听到Convolution这个词,它的作用在於训练机器观看图像的能力,一张图片对於电脑来说是很多的数字,这些数字就是像素(pixel),假设图片的大小是10241024,那麽这张图片就会有10241024个像素,电脑就是透过这些由像素组成的矩阵来做运算学习。
https://ithelp.ithome.com.tw/upload/images/20210914/201404270L6yPv0QBn.jpg
图片来源:NVIDIA Jetson Nano 由浅入深实作训练营

机器在学习时会透过Filter提取一些图片的特徵,Filter是一个nn的矩阵,它会遍布整张图片去提取特徵,这个过程就是Convolution,而所提取的特徵图就称为Feature Map,或是Convolved Feature,具体请看下图。
https://ithelp.ithome.com.tw/upload/images/20210914/201404279ftF4afcKj.jpg

四、池化(Pooling)

经过Convolution後我们会得到很多Feature map,为了再更精简计算,以及萃取到更有用的特徵,神经网路会再经过池化(Pooling),这个过程是将Feature map精简,方法有MaxPooling(取一部分Feature map中值最大者)、AveragePooling(取一部分feature map中值的平均),具体请看下图。
https://ithelp.ithome.com.tw/upload/images/20210914/20140427iNaAyrrex7.png
图片来源:NVIDIA Jetson Nano 由浅入深实作训练营


五、全连接层(Fully Connected Layer)

再经过卷积、池化等计算後,最後神经网路会将Feature map摊开成一维的形式,并对特徵加上权重并总结出机率,最後输出结果,这是整个神经网路最後的过程,具体见下图。
https://ithelp.ithome.com.tw/upload/images/20210914/201404277XpbVkVMM3.png
图片来源:https://www.oreilly.com/library/view/tensorflow-for-deep/9781491980446/ch04.html


六、神经网路架构

如同上述所介绍的,一个基本的神经网路就会包括Input层、Convolution Layer、Pooling Layer、Fully Conected Layer,见下图。
https://ithelp.ithome.com.tw/upload/images/20210914/20140427NodSB0TU5d.png

图片来源:NVIDIA Jetson Nano 由浅入深实作训练营

依照这个训练流程往下训练後输出,这个步骤就称为前向传播(Foward Propagation),当然神经网路第一次训练可能结果不会很理想,因此再输出後会将结果传回去,根据结果来修改网路中的权重,告诉网路哪里学得不好要调整,这个步骤称之为反向传播(Backward Propagation)。这样的网路就是典型的CNN网路(Convolution Connected Network)。


七、结论

今天我们正式从机器学习毕业,进到深度学习的领域,其实一开始在接触深度学习的时候真的会很迷茫,什麽神经网路、卷积、激活函数一大堆的专有名词在机器学习都不曾出现过,但其实深度学习本身就是靠机器自己在学习的,我们只要了解其运作方式以及概念,剩下的就交给机器吧哈哈,其实深度学习可以应用的领域非常多,只是後期我可能会以图片这块来写,除了神经网路的训练外也会提到图片处理的一些方法及套件,今天就先这样罗,谢谢大家!


<<:  Day 4 - 介绍Laravel Eloquent ORM

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

我与程序的距离-Day2

不难发现,问题在於该用什麽标准来做决定呢?梁晓声曾讲过,友谊,好比一瓶酒,封存的时间越长,价值则越高...

Day18 使用React建立手风琴菜单(accordion menu)

主程序Accordion.js import React ,{useState} from 're...

D22 - 彭彭的课程# Python 乱数与统计模组(2)

天啦居然已经22天了 时间不知不觉过很快 又要迎接双十连假@@? 先预祝大家连假愉快 每次遇到这种时...

什麽是 Github? 开发人员不能不知道的协同合作平台

本篇文章同步发布於个人部落格 (後续更新皆会以部落格为主): 什麽是 Github? 本系列文章会以...

【Day23】我变我变我变变变:如何改变HTML元素的样式

「DOM API定义了JavaScript存取、改变HTML架构、内容、样式的方法,甚至对节点绑定...