[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動

栏目: 数据库 · 发布时间: 5年前

内容简介:前一篇介紹 ANN 魔法陣結構:輸入層(Input Layer)、隱藏層(Hidden Layer)及輸出層(Output Layer)。此外,也解釋了神經元與激活函數(activation function)的概念,我們來複習一下激活函數的功用:激活函數用來決定哪些神經元要被激活(可發送訊息出去),例如今天模型的任務是辨識貓跟狗,把帶有貓跟狗標籤的圖片資料集輸入 ANN 後,這時並不是每個神經元都重要,是否重要由激活函數決定,被激活的神經元傳遞下去的訊息代表是對輸出結果所以這樣就可以成功發動 ANN 魔法

前一篇介紹 ANN 魔法陣結構:輸入層(Input Layer)、隱藏層(Hidden Layer)及輸出層(Output Layer)。此外,也解釋了神經元與激活函數(activation function)的概念,我們來複習一下激活函數的功用:

[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動
https://community.alteryx.com/t5/Data-Science-Blog/It-s-a-No-Brainer-An-Introduction-to-Neural-Networks/ba-p/300479

激活函數用來決定哪些神經元要被激活(可發送訊息出去),例如今天模型的任務是辨識貓跟狗,把帶有貓跟狗標籤的圖片資料集輸入 ANN 後,這時並不是每個神經元都重要,是否重要由激活函數決定,被激活的神經元傳遞下去的訊息代表是對輸出結果 有價值的 訊息。

所以這樣就可以成功發動 ANN 魔法陣了嗎?

不,還不夠。記得在本系列第一篇提到的 Deep Learning 吧!

哥布林之覆誦: Deep Learning 是 Machine Learning 的子集, Machine Learning 特色是從資料中學習歸納出規則等等等

那麼,ANN 要如何「 學習(Learning) 」? 怎麼樣才能啟動魔法陣?

[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動
Fate 中的凜

答案是,還需要 Backpropagation

反向傳播(Backpropagation)

還記得你以前是怎麼學習嗎?當你指著貓咪說是小狗,你家人會跟你說:「錯了,這是貓。」同理,想讓 Neural Network 能夠學習,需要定義一個指標來衡量模型學習的好壞,讓我們知道現在的模型與訓練資料有沒有擬合(fit)。

一般進行機器學習任務時會有一個目標函數(Objective Function),演算法便是對這個目標函數進行最佳化(optimization)。例如在分類任務中,即是使用損失函數(Loss Function)作為其目標函數,又稱為 代價函數(Cost Function)

損失函數(Loss Function): 計算單個資料點的誤差 
代價函數(Cost Function): 計算整個訓練集所有損失之和的平均值

所以深度學習的訓練是代價函數(Cost Function)最小化的過程。有了 loss 的概念後,現在正式來談一下反向傳播。以下引用 wiki 的定義:

反向傳播(英語:Backpropagation,縮寫為BP)是「誤差反向傳播」的簡稱,是一種與最優化方法(如梯度下降法)結合使用的,用來訓練人工神經網絡的常見方法。該方法對網絡中所有權重計算損失函數的梯度。這個梯度會反饋給最優化方法,用來更新權值以最小化損失函數。

這個時候需要講解一下 梯度下降法(Gradient Descent) ,直接上動態圖理解概念:

[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動
http://cpmarkchang.logdown.com/posts/434534-optimization-method-momentum
梯度下降法是一種 Optimizer ,幫助改善網絡的權重,以減少 loss。 作法:每次計算函數點上面的梯度,並且沿著反方向的步長(step)迭代,總有一天會走到局部最小值。它是最佳化的一種方法,目的是想讓 cost function 最小化,找出最佳的權重(weights)。

反向傳播搭配梯度下降的方式去更新神經元的權重,所謂的 從資料中學習 是由比對正確與錯誤答案之間的差異,從正確/錯誤經驗中學習,將這些差異反向傳遞回去,每一次迭代都修正相對應的神經元,使其在下一輪訓練可以得到更準確的結果。

例如本文一開始提到的例子:今天模型的任務是辨識貓跟狗的圖片。在第一次 ANN 看貓的圖片時只有部分的神經元被激活,那如果輸出的結果被預測為狗,表示結果錯誤,那麼訓練中透過反向傳播調整權重參數,使最後神經元能夠對真正重要的信息更為敏感。

[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動
https://www.cnblogs.com/ooon/p/5284676.html

Backpropagation 的基本流程:(引用自「類神經網路跟Backpropagation一點筆記」)

  1. 初始化神經網路所有權重
  2. 將資料由input layer往output layer向前傳遞運算(forward)計算出所有神經元的output
  3. 計算誤差由output layer往input layer向後傳遞運算(backward)算出每個神經元對誤差的影響
  4. 用誤差影響去更新權重
  5. 重複2,3,4直到誤差收斂到夠小

此篇帶給各位見習魔法使 ANN 魔法陣啟動的方式,講解 Neural Networks 是如何運行,以及深度學習是怎麼「學習」的。

本系列「英雄集結:深度學習的魔法使們」目的是希望讓閱讀的讀者不要被太多數學推導所嚇倒(其實是筆者怕嚇到自己),我們一步一步來,從入門開始欣賞深度學習之美,後面可怕的野獸就留給未來的我們唷!

學習是永無止盡的,人類是如此,機器也是。

下篇預計會讓各位實戰演練抓一下畫 ANN 魔法陣的感覺,謝謝有看到這句話的大家!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

.NET设计规范

.NET设计规范

克瓦林纳 / 葛子昴 / 人民邮电出版社 / 2006-7 / 49.00元

本书为框架设计师和广大开发人员设计高质量的软件提供了权威的指南。书中介绍了在设计框架时的最佳实践,提供了自顶向下的规范,其中所描述的规范普遍适用于规模不同、可重用程度不同的框架和软件。这些规范历经.net框架三个版本的长期开发,凝聚了数千名开发人员的经验和智慧。微软的各开发组正在使用这些规范开发下一代影响世界的软件产品。. 本书适用于框架设计师以及相关的专业技术人员,也适用于高等院校相关专业......一起来看看 《.NET设计规范》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具