成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

再談什么是神經網絡,透過現象看本質

人工智能
神經網絡是一種獨立的技術,只不過它與不同的領域結合之后就有了不同的神經網絡模型。

面對著網絡上各種各樣關于神經網絡的內容,很多想學習神經網絡的人都無從下手,包括作者自己;面對各種亂七八糟的概念,名詞,很多人都被這些東西蒙住了眼睛。

所以,今天我們就拋開各種高大上的概念,從本質出發來學習什么網絡;我們今天不討論CNN,RNN,Transformer,LSTM等各種神經網絡架構;只討論什么是神經網絡。

神經網絡

對神經網絡有過了解的人應該都知道,神經網絡就是仿生學的一種實現,使用的是數學模型模擬人類的大腦神經系統;具體的可以看一下上一篇文章——從一個簡單的神經網絡模型開始。

所以,什么是神經網絡?

由簡單神經元構成的系統就是神經網絡;可以說一個神經元就是一個最簡單的神經網絡模型,只不過這個神經網絡僅僅只有一層,且只有一個神經元;而由多個神經元組成的多層神經網絡系統就是一個復雜的神經網絡模型。

雖然從實際出發,一個神經元的神經網絡沒什么實際意義;但其卻是理解神經網絡的基礎。

神經網絡最基礎的形態就是單層神經網絡,也被叫做感知器;而二層以上的神經網絡叫做多層感知器或深層神經網絡。

多層神經網絡的形態基本如下所示,根據不同的任務類型可以適當增加更多的中間層。

當然這些只是神經網絡的理論基礎,那么要想實現一個能運行的神經網絡,需要哪些必要功能點呢?

事實上,實現一個神經網絡大概需要以下幾個功能點:

  • 數據集準備
  • 神經網絡設計
  • 損失計算
  • 優化函數
  • 反向傳播(BP)算法

數據集準備

不論是自然語言處理(NLP)還是計算機視覺(CV)處理,都離不開訓練數據;而由于神經網絡中的主要數據類型是向量(矩陣),因此不論是圖像,視頻,還是文字都需要把數據轉化為神經網絡能夠處理的格式,也就是向量類型。

由此也誕生了一些數據向量化的技術,比如文字處理的詞袋模型,one-hot編碼等;以及圖像向量化的技術。

神經網絡設計

以pytorch為例,實現一個神經網絡只需要繼承nn.Module類即可;而根據不同的任務類型,開發人員可以自己根據需要實現能夠完成具體任務的神經網絡模型;基礎代碼如下所示:

import torch.nn


# 自定義神經網絡
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        # 用來完成一些初始化功能


    def __forward(self, x):
        """
        神經網絡實現
        :param x:
        :return:
        """
        # 比如實現一個全鏈接層
        x = nn.Linear(x)
        # pass

損失計算

簡單來說損失計算是神經網絡自主學習的基礎,損失計算的目的就是計算神經網絡的輸出(預測值)和真實值之間的差值,損失差越大說明神經網絡的效果越差。

因此,在神經網絡訓練中,需要根據損失差來對神經網絡的參數進行優化,這也是神經網絡訓練的本質。

常見的損失計算函數有交叉熵計算,均方誤差等。

優化函數

優化函數簡單理解就是用來優化神經網絡參數的一種方式,由于未經過訓練的神經網絡參數都是隨機的;因此在對神經網絡訓練時,需要根據損失結果調整神經網絡的參數值,以使神經網絡達到最好的效果。

模型訓練的本質就是不斷優化模型參數的過程。

而常見的優化算是就是梯度下降,簡單來說就如下圖所示,優化算法的最優解就是圖中藍色標識的部分;但對神經網絡來說,它并不知道哪里是最優解,因此就需要一個點一個點的試,以求把損失降到最小,而這個過程就叫做梯度下降。

舉例來說,假設x的初始值為2,這時它的損失值也就是y=4;這時誤差就比較大,因此優化函數就優化一下讓x=3,這時損失值y=3;這就說明神經網絡的優化函數是有用的。

所以,對梯度下降不了解的可以看之前的文章——神經網絡之損失函數與優化函數——梯度下降;簡單理解梯度下降就是高中數學中的求導,求變化率最小的點(極值),當然實際應用中的梯度下降要復雜的多。

反向傳播

反向傳播算法也叫做BP算法,目的是根據結果去調整神經網絡的參數值;而具體方式就是通過損失計算和優化函數來實現;通過反向傳播來調整模型參數,通過優化函數來優化神經網絡的梯度。

如下代碼所示就是神經網絡的訓練基本流程,通過不斷循環來使神經網絡達到最優。

for idx, (input, target) in enumerate(data_loader):
        # 梯度歸零 optimizer就是優化函數
        optimizer.zero_grad()
        
        output = model(input) # 調用模型 獲取預測值
        loss = F.nll_loss(output, target) # 得到損失
        loss.backward() # 反向傳播
        optimizer.step() # 更新梯度

而由于神經網絡的基礎數據格式是向量,而表現形式是矩陣;因此神經網絡中涉及大量的矩陣運算。以及,神經網絡本質上就是一個數學模型,因此,神經網絡中也涉及到大量的數學運算,如求和,平方,求導等等。

而這就是實現一個基礎神經網絡所需要的基本步驟,而哪些類似于RNN,CNN,Transformer等神經網絡架構的神經網絡模型;只是在基礎神經網絡的基礎之上,為解決具體問題以及和具體的應用領域相結合,而專門設計和優化的模型。

簡單理解RNN,CNN,Transformer模型就是在神經網絡的基礎之上,如損失計算,優化等;做了一些騷操作,這些操作能夠更好的處理自然語言,圖像等問題。

從哲學的角度來說就是,一般和特殊的關系;普通的神經網絡就是一般的神經網絡,而RNN,CNN等就是特殊的神經網絡。比如,Transformer神經網絡架構就是用來處理序列到序列到任務。

責任編輯:趙寧寧 來源: AI探索時代
相關推薦

2023-02-17 18:32:42

JavaAIOIO

2015-12-10 15:10:10

2013-02-26 09:34:10

服務器虛擬化云部署

2013-02-27 16:03:48

云部署服務器虛擬化

2009-12-08 15:37:39

2021-10-26 09:00:00

圖形機器學習深度學習

2025-02-19 18:00:00

神經網絡模型AI

2010-09-13 10:51:47

無線路由器的門道

2009-12-23 15:43:52

架構師

2025-02-19 15:12:17

神經網絡PyTorch大模型

2010-08-26 14:40:55

隱私保護

2020-12-21 08:00:00

人工智能深度學習神經網絡

2020-05-29 17:21:33

神經網絡學習函數

2018-07-03 16:10:04

神經網絡生物神經網絡人工神經網絡

2009-12-24 16:59:06

北塔

2021-03-16 17:39:13

安全網絡流量

2019-07-02 13:37:23

神經網絡運算Python

2021-02-02 15:23:20

Cloudera大數據

2012-05-01 21:32:39

蘋果

2017-09-10 07:07:32

神經網絡數據集可視化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲不卡在线观看 | 日韩一区在线观看视频 | 亚洲电影免费 | 亚洲91视频 | 日本一区不卡 | 亚洲国产成人精品女人久久久野战 | 天天躁日日躁狠狠很躁 | 国产一区二区 | 日韩av免费看 | 亚洲成人一区二区 | 久久国产精品一区二区三区 | 亚洲一区中文字幕在线观看 | 国内精品久久久久久 | 国产精品1区 | 亚洲精品久久久久中文字幕欢迎你 | 日韩黄色免费 | 亚洲高清在线 | 黄色大片免费网站 | 日韩一区二区福利视频 | 无码一区二区三区视频 | 欧美精品在线免费 | 一道本在线 | 性网站免费 | 国产精品一区二区三区免费观看 | 国产精品区二区三区日本 | 91精品国产乱码久久久久久久久 | 一区二区三区回区在观看免费视频 | 69福利影院 | 狠狠干在线 | 午夜亚洲| 国产片侵犯亲女视频播放 | 日本精品一区二区在线观看 | 欧美综合精品 | 在线成人av | 中文字幕精品视频 | 亚洲不卡在线观看 | 岛国一区 | 99re视频精品| 日韩国产一区二区三区 | 精品国产伦一区二区三区观看方式 | 9999国产精品欧美久久久久久 |