Day 12: 人工神经网路初探 深度学习

深度学习

深度学习是多层人工精神网路或多层感知器的另一种称呼,还有多种不同型态的深度学习系统,根据神经网路的根基以及运作准则。如:

  • 前馈神经网路(feed-forward neural)
  • 卷积网路(convolutional)
  • 递归神经网路(recurrent neural networks)
  • 自动编码器(autoencoders)

一个多层感知器至少包含三种不同的layers,输入层(input layer)、隐藏层(hidden layer)及输出层(output layer)。你可以拥有多个隐藏层。每层可以包含一个或多个neuron。一个neuron在得到的输入上计算後产生输出。来自neuron的输出被传送给下一层作为输入(输出层除外)。最後会由输出层产生最终的输出。

https://ithelp.ithome.com.tw/upload/images/20210918/20141566PqQklpsCKU.png

Input Layer

在神经网路的第一层被称作输入层,这层取得在外部的资源,像是由感测机器传来的图片。传至这层的输入就是特徵值。
在输入层的节点不会做任何的运算,这些节点单纯只是传送输入至下一层。

这层neurons的数量和传入特徵值的数量相同。有时会额外增加一个节点。
这个额外增加的节点被称作偏差节点(bias node)。这个bias node是用来控制这一层的输出,在深度学习中bias node不一定需要,但在通常做法时会添加一个。

Hidden Layer

在输入层与输出层之间的层面被称作隐藏层,一个神经网路至少要有一层隐藏层,这里就是学习开始的地方。隐藏层的neuron为了学习需求而做运算,但你可以依据现实世界的案例自行决定需要的层数。当隐藏层数越多,计算的复杂度与计算时间也会随之增加。

无法真正确定需要多少隐藏层,也没有相应的实际策略存在。一个通常的方式是使用上一层two-thirds (or 66%) neuron的总数。举个例子,假如第一个隐藏层的neuron数量是100,那下一层隐藏层的数量就会是66,下下一层就会是43,以此推算。这只是一个可行的方式,使用者应照着模组的准确度去调整neuron数量。

Output Layer

在神经网路的最後一层就是输出层。 输出层会得到在最後一个隐藏层的输出。输出层的neurons数量由使用者想要神经网路解决什麽问题来决定。
递归问题,当网路需要预测一串连续的数值,像是股票的收盘价,这样的输出层只会有一个neuron。
二元问题,当网路需要预测多个中其中一个类别(one of many classes),输出层的neurons会有和所有可能类别(class)的相同数量。假如网路被训练用来预测四种之中某一种可能的动物,猫、狗、狮或牛,那麽输出层就会有四个neurons,一个neuron代表一个class。

边缘与权重的连结

权重(weight)也被称作系数或者输入系数,neuron的每个输入特徵都会乘上权重,从输入到neuron的每个连接都有权重线(weighted line)所连接。权重线表示预测我们尝试要塑造的输出的特徵值贡献。将权重视为输入特徵的贡献或重要性。当权重值越高,他对特徵值的贡献越大。假如权重是负值,那特徵就有负面的影响。假如权重是零,那麽代表这个输入特徵不重要且可以从训练集中移除。训练神经网路的目标是为了能计算出每个输入特徵/每个连接到的最优化权重值。


<<:  【领域展开 03 式】 架站工具平台选择依据

>>:  登录档改造(二)--稍有实用性的简单玩法

DOM 实作 换背景图

<!DOCTYPE html> <html lang="en"...

JavaScript Day 2. 关於,运算子们

JavaScript 有许多的运算子,在这里就挑了几个比较常见,却又老是感到模糊的来研究。 赋值运算...

[Day 30] 微探讨 Angular 的 Event binding 与 Property binding

铁人赛最後一天! 今天要跟各位分享的呢,是昨天与前天 Banana in a box 系列的延伸,关...

Unity与Photon的新手相遇旅途 | Day23-Photon房间场景

今天的内容为建立房间的场景以及离开房间Button。 ...

[Day 06] DSL 其他和资料库互动的方式

如果只会单一资料表的 CRUD 操作,那麽有很多需求是没有办法满足的。 今天我们来聊聊,怎麽用 DS...