日日噜噜噜夜夜爽亚洲精品_欧美视频在线观看一区_久久久久久久久久久久久久久99_成人在线视频网站_国产丝袜美腿一区二区三区_亚洲黄页视频免费观看_国产成+人+综合+亚洲欧洲_日韩一级精品视频在线观看_欧美激情极品视频_亚洲精品国产精品国自产在线

首頁 | 資訊 | 財經 | 公益 | 彩店 | 奇聞 | 速遞 | 前瞻 | 提點 | 網站相關 | 科技 | 熱點 | 生活 |
什么是神經網絡?用代碼示例解析其工作原理|每日播報

發稿時間:2023-06-23 17:24:36 來源: 博客園


【資料圖】

本文由gpt4輔助撰寫(gptschools.cn)
神經網絡是一種模仿人腦神經元工作原理的計算模型,用于實現機器學習和人工智能系統。它由一系列相互連接的神經元(也稱為節點或單元)組成,這些神經元組織成不同的層。神經網絡通常包括輸入層、一個或多個隱藏層和輸出層。每個節點根據其輸入數據和相應的權重計算輸出值,并通過激活函數進行非線性轉換。 神經網絡可以通過學習和調整權重實現自適應,從而在處理復雜問題(如圖像識別、自然語言處理和游戲策略等)時具有很高的靈活性。訓練神經網絡的過程通常包括使用大量輸入數據和期望輸出,計算損失函數(用于衡量網絡輸出與期望輸出之間的差距),并使用優化算法(如梯度下降法)調整權重以最小化損失。 神經網絡是深度學習的核心組成部分,深度學習模型通常包含多個隱藏層,從而能夠學習更復雜數學表示和抽象概念。?下面以一個簡單的神經網絡(用于解決 XOR 問題)為例,說明神經網絡中的各個概念。該神經網絡示例中,包含一個輸入層(2個節點),一個隱藏層(2個節點)和一個輸出層(1個節點)。輸入輸出層之間以及隱藏層與輸出層之間的所有節點均相互連接。激活函數為 Sigmoid 函數。上述神經網絡的python實現如下:
import numpy as np# Sigmoid 激活函數def sigmoid(x):    return 1 / (1 + np.exp(-x))# 使用 sigmoid 導數進行非線性變換以及反向傳播計算梯度def sigmoid_derivative(x):    return x * (1 - x)def mse_loss(y_true, y_pred):    return np.mean(np.square(y_true - y_pred))class NeuralNetwork:    def __init__(self, input_nodes, hidden_nodes, output_nodes):        self.input_nodes = input_nodes        self.hidden_nodes = hidden_nodes        self.output_nodes = output_nodes        self.weights_ih = np.random.rand(self.input_nodes, self.hidden_nodes) - 0.5        self.weights_ho = np.random.rand(self.hidden_nodes, self.output_nodes) - 0.5        self.bias_h = np.random.rand(1, self.hidden_nodes) - 0.5        self.bias_o = np.random.rand(1, self.output_nodes) - 0.5    def feedforward(self, input_data):        hidden = sigmoid(np.dot(input_data, self.weights_ih) + self.bias_h)        output = sigmoid(np.dot(hidden, self.weights_ho) + self.bias_o)        return hidden, output    def backward(self, input_data, hidden, output, target_data, learning_rate=0.1):        # 計算損失函數的梯度        output_error = target_data - output        output_delta = output_error * sigmoid_derivative(output)        hidden_error = np.dot(output_delta, self.weights_ho.T)        hidden_delta = hidden_error * sigmoid_derivative(hidden)        self.weights_ho += learning_rate * np.dot(hidden.T, output_delta)        self.weights_ih += learning_rate * np.dot(input_data.T, hidden_delta)        self.bias_o += learning_rate * np.sum(output_delta, axis=0)        self.bias_h += learning_rate * np.sum(hidden_delta, axis=0)    # 根據輸入輸出數據,訓練多輪,更新神經網絡的權重和偏置,最終得到正確的神經網絡參數    def train(self, input_data, target_data, epochs, learning_rate=0.5):        for _ in range(epochs):            hidden, output = self.feedforward(input_data)            self.backward(input_data, hidden, output, target_data, learning_rate)if __name__ == "__main__":    # 示例    X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])    Y = np.array([[0], [1], [1], [0]])    nn = NeuralNetwork(input_nodes=2, hidden_nodes=2, output_nodes=1)    print("Before training:")    _, output = nn.feedforward(X)    print(output)    nn.train(X, Y, epochs=2000, learning_rate=0.8)    print("After training:")    _, output = nn.feedforward(X)    print(output)    # 計算損失    loss = mse_loss(Y, output)    print("Loss:", loss)
首先,創建 XOR 問題的輸入和輸出數據集,分別存儲在 NumPy 數組中初始化權重與偏置然后,根據輸入輸出數據,訓練2000輪每輪訓練都會通過反向傳播更新各層的權重和偏置,最終得到正確的神經網絡參數上述簡單示例中,涉及到如下神經網絡基本概念:前向傳播:利用若干個權重系數矩陣W,偏倚向量b來和輸入值向量x進行一系列線性運算和激活運算,從輸入層開始,一層層的向后計算,一直到運算到輸出層,得到輸出結果為值激活函數:(Activation Function)是一種在神經網絡中使用的非線性函數,用于將神經元的累積輸入值轉換為輸出值。激活函數的主要目的是引入非線性特性,使得神經網絡能夠學習并表示復雜的數據模式。如果沒有激活函數,神經網絡將僅僅是一個線性回歸模型,無法處理復雜的問題。反向傳播:核心思想是通過優化權重與偏置,從而逐漸減小預測輸出與真實值之間的差距,提高神經網絡的性能。反向傳播過程開始于計算輸出層的誤差,即預測輸出與實際目標之間的差值。然后,這個誤差將從輸出層向后傳播到隱藏層。為了更新神經網絡中的權重,我們需要計算損失函數相對于每個權重的梯度。我們使用鏈式法則(chain rule)將這些梯度分解為前一層的輸出、當前層的梯度和后一層的梯度。通過這種方式,我們可以得到每個權重的梯度,并用它們更新權重以最小化損失。損失函數:損失函數值在訓練過程中起到的作用是衡量模型預測結果與實際目標值之間的差距。在反向傳播過程中,我們實際上是通過損失函數的梯度來調整神經網絡的權重和偏置,從而使得損失值最小化。在上面的代碼示例中,我們計算了輸出層的誤差(output_error),這個誤差實際上就是損失函數的梯度。這里的損失函數是均方誤差(MSE),計算梯度的公式為:
output_error = target_data - output
在反向傳播過程中,我們通過該梯度來更新權重和偏置,以使得損失值最小化。因此,損失值在訓練過程中起到了關鍵作用。其中,Sigmoid 函數是一種常用的激活函數,用于神經網絡中對節點輸出進行非線性轉換。Sigmoid 函數的數學表達式如下:
sigmoid(x) = 1 / (1 + e^(-x))
其中,x 是輸入值,e 是自然常數(約等于 2.71828)。Sigmoid 函數的輸出值范圍在 0 和 1 之間,具有平滑的 S 形曲線。當輸入值 x 趨向于正無窮大時,函數值接近 1;當輸入值 x 趨向于負無窮大時,函數值接近 0。因此,Sigmoid 函數可以將任意實數輸入映射到 (0, 1) 區間內,使得網絡輸出具有更好的解釋性。此外,Sigmoid 函數的導數也可以方便地用其函數值表示,便于進行梯度下降優化算法。然而,Sigmoid 函數也存在一些問題,例如梯度消失問題。當輸入值過大或過小時,Sigmoid 函數的梯度(導數)接近于 0,導致權重更新非常緩慢,從而影響訓練速度和效果。因此,在深度學習中,有時會選擇其他激活函數,如 ReLU(線性整流單元)等。另外,偏置(bias)的引入是為了增加模型的表達能力。具體來說,在 Sigmoid 激活函數中,偏置的作用如下:調整激活函數的輸出:在神經網絡中,激活函數(如 Sigmoid 函數)用于對節點的線性加權和進行非線性轉換。偏置相當于一個常數值,可以使得激活函數的輸出在整體上向上或向下平移。這樣,激活函數可以在不同區域內保持對輸入的敏感性,提高模型的擬合能力。提高模型的靈活性:加入偏置后,神經網絡可以學習到更復雜的表示。偏置參數使神經網絡能夠在沒有輸入(或輸入為零)時產生非零輸出。如果沒有偏置,即使權重參數不同,神經元在輸入為零時的輸出也將相同。因此,引入偏置為神經網絡提供了額外的自由度,使其能夠更好地擬合復雜的數據。以 Sigmoid 函數為例,一個神經元的輸出可以表示為:output = sigmoid(w1 * x1 + w2 * x2 + ... + wn * xn + b)這里,w1、w2、...、wn 是輸入數據(x1、x2、...、xn)對應的權重,b 是偏置。通過調整偏置 b 的值,可以使 Sigmoid 函數的輸出整體上升或下降,從而改變神經元的激活閾值。這使神經網絡能夠更好地適應不同的數據分布,提高模型的泛化能力。FAQs梯度與函數導數的關系?梯度與導數密切相關,但它們有一些區別。對于單變量函數(即只有一個自變量的函數),梯度就是導數。導數表示該函數在某一點處的切線斜率。對于多變量函數(即有多個自變量的函數),梯度是一個向量,包含了函數在某一點處沿著各個坐標軸方向的偏導數。換句話說,梯度是一個向量,它將多個偏導數組合在一起,描述了多變量函數在各個方向上的變化情況。梯度的方向是函數在該點處變化最快的方向,梯度的大小表示函數在該點處的變化速率。總結一下:對于單變量函數,梯度就是導數。對于多變量函數,梯度是一個包含所有偏導數的向量。 AI Advisor公眾號:?參考什么是神經網絡?深度神經網絡(DNN)

標簽:

責任編輯:mb01

網站首頁 | 關于我們 | 免責聲明 | 聯系我們

生活晚報網版權所有

Copyright @ 1999-2017 www.islamic-portal.net All Rights Reserved豫ICP備2022016495號-7

聯系郵箱:939 674 669@qq.com    

日日噜噜噜夜夜爽亚洲精品_欧美视频在线观看一区_久久久久久久久久久久久久久99_成人在线视频网站_国产丝袜美腿一区二区三区_亚洲黄页视频免费观看_国产成+人+综合+亚洲欧洲_日韩一级精品视频在线观看_欧美激情极品视频_亚洲精品国产精品国自产在线
欧美电影免费观看高清完整版在| 一本色道**综合亚洲精品蜜桃冫 | 国产精品乱码妇女bbbb| 久久看人人爽人人| 91精品国产91久久久久久一区二区 | 国产精品私人自拍| 欧美中文字幕久久| 日韩欧美国产精品| 亚洲gay无套男同| 成人动漫在线一区| 午夜精品久久久久| 久久久99精品免费观看| 亚洲图片激情小说| 久久99久久99精品免视看婷婷| 色婷婷av一区二区三区软件| 国产精品视频第一区| 五月婷婷另类国产| 欧美一区二区三区四区在线观看| 看电影不卡的网站| 欧美大片在线观看一区二区| 亚洲国产欧美日韩另类综合| 91麻豆精品国产91久久久久久| 日韩码欧中文字| 久久精品国产久精国产| 久久久综合激的五月天| 亚洲精品欧美激情| 成人h精品动漫一区二区三区| 国产精品成人在线观看| 久久综合av免费| 久久人人97超碰com| 日韩女优电影在线观看| 欧美日韩三级在线| 国模套图日韩精品一区二区| 欧美精品九九99久久| 国产精品一区二区果冻传媒| 国产人成亚洲第一网站在线播放| 国产成人亚洲综合a∨猫咪| 欧美日韩精品欧美日韩精品一 | 国产精品理论在线观看| jizz一区二区| 91在线视频播放地址| 精品在线观看视频| 亚洲综合男人的天堂| 精品国产亚洲一区二区三区在线观看| 亚洲一区二区黄色| 亚洲午夜精品网| 亚洲一区在线观看免费观看电影高清 | 久久久国产综合精品女国产盗摄| 国产精品18久久久久久久网站| 26uuuu精品一区二区| 国产女人18毛片水真多成人如厕 | 国产精品一区二区在线播放| 久久综合给合久久狠狠狠97色69| 国产精品亚洲а∨天堂免在线| 久久久久久亚洲综合| 欧美久久久久久久久| 91麻豆国产香蕉久久精品| 日韩中文欧美在线| 国产成人精品网址| 国产黄人亚洲片| 国产精品综合二区| 色婷婷精品久久二区二区蜜臂av | 久久精品噜噜噜成人av农村| 中文字幕一区二区三区在线观看| 制服丝袜亚洲精品中文字幕| 在线播放国产精品二区一二区四区| 国产a精品视频| 91天堂素人约啪| 欧洲色大大久久| 欧美揉bbbbb揉bbbbb| 在线播放日韩导航| 亚洲超碰精品一区二区| 一区视频在线播放| 成人一级片网址| 久久综合九色综合97婷婷| 在线播放亚洲一区| 国产精品资源在线看| 91视视频在线观看入口直接观看www | 欧美性大战久久| 精品91自产拍在线观看一区| 欧美自拍偷拍午夜视频| 欧美成人乱码一区二区三区| 久久久久99精品国产片| 午夜精品久久久| 99麻豆久久久国产精品免费| 欧美电影免费观看高清完整版在| 日韩免费观看高清完整版在线观看| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧洲av一区二区三区久久| 六月丁香婷婷色狠狠久久| 91社区在线播放| 日韩电影免费在线观看网站| 99国产一区二区三精品乱码| 青青草国产成人99久久| 精品在线免费视频| 国产精品激情偷乱一区二区∴| 午夜视频一区二区| 有码一区二区三区| 91视频xxxx| 亚洲成人tv网| 91精品国产aⅴ一区二区| 视频一区欧美日韩| 精品区一区二区| 欧美网站大全在线观看| 亚洲手机成人高清视频| 欧美久久久影院| 国产99久久久国产精品免费看| 亚洲国产成人午夜在线一区 | 国产成人午夜视频| 欧美日韩在线免费视频| 亚洲日本成人在线观看| 欧美麻豆精品久久久久久| 日韩av电影免费观看高清完整版| 欧美一区二区三区影视| 成人av在线影院| 日日欢夜夜爽一区| 欧美在线视频不卡| 91一区二区三区在线播放| 亚洲一区在线视频| 亚洲男人的天堂在线aⅴ视频| 国产精品另类一区| 欧美日韩一区不卡| 久久综合99re88久久爱| 精品国产乱码久久久久久免费| 亚洲午夜影视影院在线观看| 成人精品免费视频| 国产精品成人网| 精品精品国产高清a毛片牛牛| 99久久国产免费看| 91浏览器在线视频| 色天天综合色天天久久| 国产黄色精品网站| 激情成人综合网| 91国在线观看| 亚洲天堂中文字幕| 欧美视频完全免费看| 成人黄色小视频| 亚洲图片欧美一区| 亚洲va国产va欧美va观看| 亚洲精品福利视频网站| 亚洲一区欧美一区| 国产清纯在线一区二区www| 久久久亚洲欧洲日产国码αv| 五月综合激情婷婷六月色窝| 国产精品久久久久久久久果冻传媒 | 亚洲香肠在线观看| 同产精品九九九| 成人性生交大片免费看中文| 色哟哟亚洲精品| 色婷婷国产精品综合在线观看| 亚洲日本va在线观看| 久久久久久久久久看片| 色婷婷一区二区| 一本大道久久a久久精二百| 麻豆精品一区二区三区| 成人黄色免费短视频| 色综合天天综合色综合av | 懂色av一区二区在线播放| 国产成人精品综合在线观看| 精品影院一区二区久久久| 91色.com| 一区二区三区精密机械公司| 国内成人免费视频| 日韩视频免费直播| 国内成人免费视频| 欧美一级视频精品观看| 一区二区视频在线| 另类欧美日韩国产在线| 五月综合激情网| 久久综合九色综合97_久久久 | 国产亚洲成年网址在线观看| 丝袜诱惑制服诱惑色一区在线观看| 韩日欧美一区二区三区| 免费高清在线视频一区·| 黑人巨大精品欧美一区| 欧美精品一区二区三区视频| 麻豆精品视频在线| 欧美精品一区男女天堂| 国产成人欧美日韩在线电影| 欧美激情一区二区在线| 久久美女艺术照精彩视频福利播放| 亚洲精品视频在线观看免费| 狠狠色丁香婷婷综合| 国产精品人人做人人爽人人添 | 久久精品视频一区| 久久久久久久免费视频了| 久久精品国产亚洲5555| 日韩国产欧美在线观看| 国产亚洲综合在线| 精品视频一区二区不卡| 麻豆国产精品视频| 日韩一区日韩二区| 日韩欧美亚洲一区二区| 亚洲综合在线观看视频| 欧美一级免费观看| 色悠悠亚洲一区二区| 国产做a爰片久久毛片| 日韩精品每日更新| 日韩成人av影视| 亚洲成人av一区二区|