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

用C語言從頭開始實現一個神經網絡

新聞 前端
在本文中,我們將用C語言從頭開始實現一個基本的神經網絡框架。

 

本文轉自雷鋒網,如需轉載請至雷鋒網官網申請授權。

在本文中,我們將用C語言從頭開始實現一個基本的神經網絡框架。之所以在C語言中這樣做,是因為大多數庫和其他高級語言(如Python)都抽象出了實現細節。在C語言中實現反向傳播實際上會讓我們更詳細地了解改變權重和偏差是如何改變網絡的整體行為的。

注意:本文假設您了解反向傳播算法背后的數學原理。

我們的目標是建立一個通用的框架,其中的層數和神經元將由用戶根據他的要求指定。因此,我們將從用戶獲得以下輸入來定義我們的神經網絡框架:

1. 層數

2.每層神經元數目

3.學習速率

4.訓練例子

5.輸出標簽

定義層和神經元結構:

一旦我們有了層的數量和每層神經元的數量,我們就可以創建我們的神經網絡的架構。但首先我們必須定義神經元和層的結構。

神經元結構將包含以下參數:

用C語言從頭開始實現一個神經網絡

層結構將有許多神經元在該層和一個指針的neuron_t結構。

用C語言從頭開始實現一個神經網絡

創建架構:  

現在,讓我們使用create_architecture()函數創建我們的神經網絡的體系結構。

在下面的代碼片段中,外部For循環創建層,內部For循環將指定數量的神經元添加到該層。我們也隨機初始化神經元的權值在0到1之間。

用C語言從頭開始實現一個神經網絡

訓練的例子:

我們將使用get_input()函數存儲訓練示例:

用C語言從頭開始實現一個神經網絡

得到輸出標簽:

我們將使用get_desired_exports()函數存儲輸出標簽

用C語言從頭開始實現一個神經網絡

前向傳遞:

第i層第j個神經元的激活與(i−1)第(i−1)層神經元的激活關系為:

用C語言從頭開始實現一個神經網絡

注意:σ是激活函數。這里輸出層使用sigmoid激活函數,隱藏層使用Relu激活函數。

sigmoid函數:

用C語言從頭開始實現一個神經網絡

Relu函數:

用C語言從頭開始實現一個神經網絡

讓我們實現forward_prop()函數

用C語言從頭開始實現一個神經網絡

反向傳遞:

反向傳播的目標是反向傳播錯誤并更新權值以最小化錯誤。這里,我們將使用均方誤差函數來計算誤差。

用C語言從頭開始實現一個神經網絡

權重(dw)和偏差(dbias)的變化是使用成本函數C對網絡中的權重和偏差的偏導數(∂C/ ∂weights和∂C/∂ bias)來計算的。

sigmoid函數的導數:

用C語言從頭開始實現一個神經網絡

relu函數的導數:

用C語言從頭開始實現一個神經網絡

反向傳播背后的四個基本方程:

用C語言從頭開始實現一個神經網絡

讓我們在back_prop()函數中實現這些公式:

用C語言從頭開始實現一個神經網絡

更新權重:

在每個epoch中,我們將使用update_weights()函數更新網絡權值和偏差

用C語言從頭開始實現一個神經網絡

測試框架:

現在我們已經準備好了所有的部分,我們將驗證框架的工作情況。因此,讓我們創建一個4層的神經網絡,輸入層有2個神經元,第一隱含層有4個神經元,第二隱含層有4個神經元,輸出層有1個神經元。另外,隱藏的和輸出的神經元會有偏差。

用C語言從頭開始實現一個神經網絡

現在,我們可以針對不同的邏輯門訓練這個神經網絡,比如XOR, OR等等。在下面的示例中,我們將實現XOR gate。

首先,提供所需的層數和每層神經元的數目:

Enter the number of Layers in Neural Network: 4

Enter number of neurons in layer[1]: 2

Enter number of neurons in layer[2]: 4

Enter number of neurons in layer[3]: 4

Enter number of neurons in layer[4]: 1

神經網絡體系結構將根據給定的規范創建:

Created Layer: 1

Number of Neurons in Layer 1: 2

Neuron 1 in Layer 1 created

Neuron 2 in Layer 1 created

Created Layer: 2

Number of Neurons in Layer 2: 4

Neuron 1 in Layer 2 created

Neuron 2 in Layer 2 created

Neuron 3 in Layer 2 created

Neuron 4 in Layer 2 created

Created Layer: 3

Number of Neurons in Layer 3: 4

Neuron 1 in Layer 3 created

Neuron 2 in Layer 3 created

Neuron 3 in Layer 3 created

Neuron 4 in Layer 3 created

Created Layer: 4

Number of Neurons in Layer 4: 1

Neuron 1 in Layer 4 created

所有的權值將在0和1之間隨機初始化。

接下來,提供學習率和輸入訓練示例。下面是XOR邏輯門的真值表。

用C語言從頭開始實現一個神經網絡

我們將以上4個輸入作為神經網絡的訓練實例。

Enter the learning rate (Usually 0.15): 0.15

Enter the number of training examples: 4

Enter the Inputs for training example[0]: 0 0

Enter the Inputs for training example[1]: 0 1

Enter the Inputs for training example[2]: 1 0

Enter the Inputs for training example[3]: 1 1

輸出標簽: 

 Enter the Desired Outputs (Labels) for training example[0]: 0

Enter the Desired Outputs (Labels) for training example[1]: 1

Enter the Desired Outputs (Labels) for training example[2]: 1

Enter the Desired Outputs (Labels) for training example[3]: 0

我們的神經網絡將在這4個訓練實例上訓練20000個epoch。現在,測試訓練好的神經網絡:

Enter input to test: 0 0

Output: 0

Enter input to test: 0 1

Output: 1

Enter input to test: 1 0

Output: 1

Enter input to test: 1 1

Output: 0

總結:

這是一個神經網絡框架的基本實現,目的是了解神經網絡的基本原理和反向傳播算法。可以通過實現各種損失函數和提供保存/裝載重量來增強代碼。

 

責任編輯:張燕妮 來源: 雷鋒網
相關推薦

2017-02-23 08:45:36

Python決策樹數據集

2020-06-11 08:32:50

Python遺傳算法代碼

2013-01-08 11:02:26

IBMdW

2025-02-25 14:13:31

2025-02-19 18:00:00

神經網絡模型AI

2013-05-23 10:10:53

PHP5.5PHP編譯php

2017-08-28 18:41:34

PythonLogistic回歸隨機梯度下降

2009-05-08 09:40:07

網易魔獸暴雪

2020-10-18 07:15:53

Python異常檢測算法開發

2024-09-26 16:51:23

2024-08-22 08:21:10

算法神經網絡參數

2022-07-22 07:18:53

代碼DeepMind

2020-11-17 08:09:01

webpack配置項腳手架

2022-11-23 16:20:12

GPU編程流和事件開發

2022-11-14 10:49:33

Linux發行版

2023-12-07 12:59:46

C語言循環隊列代碼

2022-06-01 23:21:34

Python回歸樹數據

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發

2021-06-04 22:43:32

Python本地搜索

2024-09-24 07:28:10

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精彩视频 | 欧美精品在线观看 | 日韩在线精品 | 亚洲精品视频免费 | 国产精品国产精品国产专区不卡 | av天天看| 亚洲一页 | 国产精品久久久久久久久久免费看 | 在线免费观看黄色网址 | 午夜精品久久久 | 日韩一区中文字幕 | 久久久精彩视频 | 国产亚洲精品91 | 久久99蜜桃综合影院免费观看 | 国产精品日韩 | 国产免费一区二区 | 国产一区二区在线视频 | 午夜成人在线视频 | 羞羞视频免费观看入口 | 午夜成人免费视频 | 中文字幕在线观 | 日韩精品一区在线观看 | 国产精品一区二区欧美 | 天天看片天天干 | 99久久中文字幕三级久久日本 | 国产一区 | 久久男人 | 91精品国产综合久久国产大片 | 久久99视频免费观看 | 精品国产乱码久久久久久图片 | 亚洲成人中文字幕 | 日本激情视频在线播放 | 精品一二三| 亚洲欧洲日韩精品 中文字幕 | 午夜影院视频在线观看 | 色999日韩| 91视频进入| 日韩视频精品在线 | 中文字幕一区在线观看视频 | 四色成人av永久网址 | 亚洲欧美日韩在线一区二区 |