Day 24 深度学习与人工神经网路

介绍

随着时间过去,面对资料量的增加与电脑性能日新月异,深度学习的技术逐渐慢慢取代了机器学习。我们先前有在介绍机器学习时提到过,所谓的机器学习是指着重於训练电脑从资料中学习,并根据经验改进。而深度学习和机器学习的差异就在於机器学习是从资料中学习模型,而深度学习则是以人工神经网路为架构,对资料进行表徵学习的演算法。

详细来说就是:
机器学习会先进行特徵撷取後,再将资料输入训练模型後得到结果并输出;而深度学习就是把资料丢进训练模型後,训练模型会自己做特徵撷取(自学),再进行判断後输出。

而面对更加庞大训练集的资料,深度学习能够撷取的特徵可能性就越多,最後判断的结果也能够更加精准。下图显示当资料量超过一定的等级,深度学习的效果会远远超过传统机器学习算法的效果。

因此,如果我们的数据量足够,并且想获得较好的结果,在不考虑开发时间的情况下,通常会选择深度学习演算法。


人工神经网路 Artificial Neural Network

首先我们必须知道,为什麽我们能够思考?废话因为我们有大脑阿
可是,很多生物都有大脑阿?为什麽我们人类比较聪明呢?
因为我们所认为的思考能力,多半是由大脑外层区域掌管。它包覆着大脑的核心,外观有深深的皱摺。它被称为大脑皮质,而人类大约有160亿个大脑皮质神经元。
PS:狗的大脑皮质神经元大约有4.29亿个;猫大约有2.5亿个。所以理论来说狗狗确实比猫猫聪明(?

而人工神经网路,顾名思义就是以人工的方式建立的神经网路。我们透过电脑来模拟大脑的神经系统,目的就是希望机器也能够做到像是脊椎动物的大脑那般自己思考的能力,因此它是一种模仿生物神经网路的计算模型。并将它用於辨识、决策、预测...等。

神经元与神经网路架构

在人工神经网路中,我们将一个简单的人工节点称作神经元(neurons)。以下为神经元的示意图:


图源:维基百科

  • a1~an 为输入向量的各个分量
  • w1~wn 为加权值
  • b 为偏置(Offset),良好的偏置可以更好的激活神经元。
    它确保即使当所有输入爲 0 时,神经元中也存在一个激活函数。
  • f 为传递函式,通常为非线性函式。
  • t 为神经元输出

数学式表示为 https://chart.googleapis.com/chart?cht=tx&chl=%24%7B%5Cdisplaystyle%20t%3Df(%7B%5Cvec%20%7BW'%7D%7D%7B%5Cvec%20%7BA%7D%7D%2Bb)%7D%24 。由此可见,一个神经元的功能是求得输入向量与加权向量的内积後,经一个非线性传递函式得到一个纯量结果。


而一个又一个的神经元连接在一起後就形成了一个类似生物神经网路的网状结构。最基础神经网路架构可分作输入层、隐藏层、输出层,如下图所示:

输入层负责将输入的值传递到下一层,其本身并不会对输入值进行任何运算。而隐藏层内的神经元将会透过各种方式来转化输入数据,最後再由输出层去接收隐藏层的最後输入,并决定最後的输出。

学习过程

1.前向传播法(Forward-Propagation)
前向传播法其实相当直观。我们刚刚已经知道整个神经网路架构的运作方式了对吧?就是 输入层 → 隐藏层 → 输出层 。而前向传播法就是透过这个步骤,透过神经元的层层运算後最後得到输出值来预测答案。

2.反向传播法(Backward-Propagation)
然而你我都知道,由於预测结果未必准确,因此我们还需要校正各层
神经元的权重才行,这时候我们就需要用反向传播法了。

为了得知预测结果究竟与实际答案差了多少,科学家们设计了代价函数(Cost Function)。透过代价函数我们就能够知道预测结果与实际答案的差距了!当预测结果和真实答案两者间的差距越大,代价函数就越大;因此,为了让代价函数达到最小,我们会利用反向传播法,将结果从右到左反向传递回去,调整神经元的权重以找到代价函数的最小值。

reference

https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
https://medium.com/mr-lius-murmur/ai-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-i-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-vs-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-98b1ce9123a3
https://www.stockfeel.com.tw/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9A%84%E8%A1%B0%E9%A0%B9%E8%88%88%E7%9B%9B%EF%BC%9A%E5%BE%9E%E9%A1%9E%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF%E5%88%B0%E6%B7%BA%E5%B1%A4%E5%AD%B8%E7%BF%92/

今天就先介绍到这里,明天来讲讲递回神经网路 RNN 、梯度下降与梯度消失。


<<:  Day 24 Flask-Mail

>>:  [Day 25] Reactive Programming - Spring WebFlux(R2DBC)

30-17 之 DataSource Layer - Active Record

接下来要这篇文章要来谈谈很常听到的『 Active Record 』。 什麽是 Active Rec...

[Day2]PHP的资料型态02

PHP的资料型态 Array数组 PHP中的array 实际上是一个有序映射。映射是一种把 valu...

[Day7] 人才配置:合适的人、合适的运用

从资源配置的角度思考 产品经理不一定有人事决定权,但是可以从资源的角度给予建议 这个是一个特别的经历...

冒险村19 - Activerecord-import

19 - Activerecord-import 在写入资料的时候,时常会有大量资料一次 impor...

端点防护软件 - 其他注意事项(除旧布新)

适用人员: 技术人员。 适用法规: 散布在安全检测的项目内,或是 ISMS 的要求中 技术面分类提要...