C#與人工智慧(第3講)創建神經網絡

2021-01-17 老紀講人工智慧

通過前面兩講,大家已經學會安裝Visual Studio 2019編碼工具、創建WinForm應用程式。

C#與人工智慧(第1講)安裝C#編程環境

C#與人工智慧(第2講)創建WinForm程序

神經網絡

從本講開始,正式講述人工智慧編程。#人工智慧#

筆者不想講述太多理論,而是側重於實際應用開發。對理論感興趣的讀者,建議去參考書籍《神經網絡與機器學習》,這本書非常經典。

首先,按照《C#與人工智慧(第2講)創建WinForm程序》所述,創建一個Windows窗體應用項目。

然後,滑鼠右擊解決方案面板裡的項目名稱WindowsFormsApp3。從彈出菜單裡,選擇「管理NuGet程序包」。

點選管理NuGet程序包

在NuGet面板裡,左上角選擇【瀏覽】,右上角程序包源選擇【nuget org】。

NuGet設置

在【搜索】位置,查找「Accord MachineLearning」。VS會去nuget org庫裡,搜索與您Net framework版本相匹配的Accord插件版本,並列舉出來。依次選擇Accord、Accord MachineLearning、Accord Neuro,逐個單擊右側【安裝】按鈕,完成所需插件的下載與安裝。

安裝NuGet插件

安裝完成後,向窗體面板裡,拖拽一個Button控制項,Text屬性改成:與運算。

向界面裡放入與運算按鈕

雙擊【與運算】按鈕,編寫它的Click事件代碼。完整代碼如下:

using Accord.Neuro;

using Accord.Neuro.Learning;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace WindowsFormsApp3 {

public partial class Form1 : Form {

public Form1() {

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e) {

// 新建樣本數組

double[][] inputData = new double[4][]; // 輸入的數據

double[][] outputData = new double[4][]; // 輸出的數據

// 初始化樣本數組

// 在計算機裡,0表示假、非0表示真。

inputData[0] = new double[] { 0, 0 }; outputData[0] = new double[] { 0 }; // 輸入0與0,輸出0

inputData[1] = new double[] { 0, 1 }; outputData[1] = new double[] { 0 }; // 輸入0與1,輸出0

inputData[2] = new double[] { 1, 0 }; outputData[2] = new double[] { 0 }; // 輸入1與0,輸出0

inputData[3] = new double[] { 1, 1 }; outputData[3] = new double[] { 1 }; // 輸入1與1,輸出1

// 創建神經網絡

ActivationNetwork AN = new ActivationNetwork(new ThresholdFunction(), 2, 1);

// 選擇感知器類型的機器學習方法

PerceptronLearning PL = new PerceptronLearning(AN);

// 開始進行機器學習,訓練神經網絡

double error = 1.0; // 誤差

int iterations = 0; // 學習次數

while (error > 0.001) // 循環,直至誤差低於0.001

{

error = PL.RunEpoch(inputData, outputData); // 對同一樣本數組進行多次學習,直至誤差降至0.001以下

iterations++;

}

// 學習完畢。

// 開始識別陌生樣本(例程仍用同一樣本數組,實際使用中,此處輸入的是陌生的、待識別的樣本)。

// 由於與運算相對簡單,識別率都是100%

for (int k = 0; k < 4; k++)

{

Console.WriteLine(" 輸入陌生樣本: {1},{2} 識別與輸出: {3} ", k, inputData[k][0], inputData[k][1], AN.Compute(inputData[k])[0]);

}

}

}

}

編碼完成後,單擊上面的綠色右箭頭【啟動】,或按快捷鍵F5,運行程序。

單擊【與運算】按鈕。選擇菜單「視圖-輸出」,調出【輸出】面板。可以看到程序的運行結果。

神經網絡的識別結果

通過這個簡單例子,可以了解到「神經網絡與機器學習」的應用原理:

【1】事先準備大量樣本庫,提取樣本特徵,組建inputData數組。樣本越多越好、質量越高越好。樣本特徵、樣本數、樣本質量直接決定了神經網絡的識別效果。其中,樣本特徵定義最重要。深度學習之所以成功,是它通過多層網絡等技術手段,自動提取樣本特徵!

【2】創建一個新的神經網絡,指定神經元數量。神經元越多,識別效果越好、運算性能越差。

【3】指定訓練神經網絡的方法,也就是機器學習的方法。方法種類很多,各具特色。身為程式設計師,必須通曉,然後根據項目特徵,選取最合適的那種。

【4】輸入樣本庫,多輪多次學習,訓練神經網絡,完善神經元之間的關聯,降低對樣本的識別誤差。對於海量樣本庫來講,比如手寫數字0-9的百萬樣本庫、自然語言處理的上億文本庫,切勿用自己的筆記本電腦去訓練!建議租用百度雲的一臺虛擬機,選擇圖形計算類型(GPU強悍),然後在虛擬機上安裝VS2019,搭建編碼環境,再用它去7x24小時地訓練神經網絡。

【5】使用訓練後的神經網絡,識別不在樣本庫裡的、陌生的樣本。

相關焦點

  • C#與人工智慧(第4講)創建樸素貝葉斯分類器
    今天,我給大家帶來C#與人工智慧的第4講——創建樸素貝葉斯分類器。#人工智慧#本文先實現一個簡單的貝葉斯分類器,輸入二進位,判斷0-7。後續文章會講述它的高級應用——貝葉斯推理機。C#與人工智慧(第3講)創建神經網絡C#與人工智慧(第2講)創建WinForm程序C#與人工智慧(第1講)安裝C#編程環境託馬斯·貝葉斯是18世紀英國數學家,概率論、貝葉斯統計的創立者。貝葉斯方法基於貝葉斯原理,對樣本數據集進行分類。它綜合了先驗概率、後驗概率,避免僅用先驗概率產生的主觀偏見。
  • 神經網絡與人工智慧應用
    到2020年,初步建立人工智慧產業標準體系,建成第三方試點測試平臺並開展評估評測服務;在模式識別、語義理解、自動駕駛、智慧機器人等領域建成具有基礎支撐能力的智慧財產權服務平臺。到2020年,全國90%以上地區的寬帶接入速率和時延滿足人工智慧行業應用需求,10家以上重點企業實現覆蓋生產全流程的工業網際網路示範建設,重點區域車聯網網絡設施初步建成。
  • 人工智慧神經網絡和生物大腦有什麼區別 神經網絡將如何發展
    這個問題困擾著人工智慧科學家和研究人員,在過去的幾十年中,他們一直在嘗試複製人腦的思維和解決問題的能力。創建思維機器的夢想激發了AI領域的許多創新,並且最近推動了深度學習的興起,深度學習AI算法大致模擬了大腦的學習功能。
  • 人工智慧之神經網絡特訓班課程過半,這些內容關鍵點你不能錯過
    為此,雷鋒網聯合國內頂級 AI 培訓平臺「1024MOOC學院」,邀請到清華大學計算機系的博士生導師鄧志東教授作為授課嘉賓,舉辦「人工智慧之神經網絡特訓班」。鄧教授從事包括深度神經網絡在內的人工神經網絡研究 25 年,在清華授課 20 餘年,研究無人駕駛技術 8 年,具有非常豐富的研發和教學經驗。
  • 人工智慧、機器學習、神經網絡和深度學習之間是什麼樣的關係?
    第二次浪潮時候,因為專家系統為很多企業帶來非常大的作用和效益,人工智慧又準備大力發展的時候,被第四代計算機的強有力發展擠佔的沒有空間,幾乎絕大多數的資金和人力都投入到了第四代計算機的發展行列中去。  圖 1人工智慧產業發展歷程  講的有點遠了,回到今天的主題,人工智慧,機器學習,神經網絡
  • 機器學習與人工智慧之六:人工神經網絡
    這期繼續講人工智慧相關的知識!觀眾老爺請拿出喜歡的零食和飲料,放鬆心情隨小編一起走進智能化資訊時代!觀眾老爺是否還記得第一期的問題:我們人類是如何學習的?我們如何理解知識的?同樣信息在我們大腦中如何處理的?我們的文字和語言有什麼規律?我們看到的物體如何判斷的?我們對事物的關係如何理解的?我們的世界是什麼樣子的?為什麼可以用模型去擬合呢?
  • 圖靈獎得主姚期智:深度學習、神經網絡、密碼學……人工智慧絕對是...
    在為期3天的活動中,他們將分享關於行業發展和人類未來的最新思考。在今天的開幕式上,圖靈獎獲得者、中國科學院院士姚期智帶來了題為《人工智慧理論的新方向》的主題演講。姚期智介紹說:「我們觀察周圍,比如在今天的大會堂當中,我們就會看到AI領域以及應用的一些新進展。
  • 新型神經網絡晶片:由憶阻器構成,為人工智慧提速!
    導讀人工智慧發展迅猛,而時間和能量的大量損耗仍然是制約其性能的一個瓶頸。最近,法國科學家利用憶阻器開發出一種神經網絡晶片,對於人工智慧來說,不僅降低它的能耗,而且還提升了速度。(圖片來源於:Sren Boyn/法國國家科學研究院)圖解:這是一幅藝術家對於電子神經突觸的印象圖,其中的粒子代表流過氧化物的電子,類似生物神經突觸中的神經傳導物質。電子的流動取決於氧化物的鐵電疇結構,受到電壓脈衝控制。關鍵技術提示:人工智慧、神經網絡、憶阻器。
  • 科學家在試管中創建由DNA構成的人工神經網絡
    目前,科學家在實驗室裡研製一種完全由DNA製成的人工神經網絡,能夠模仿大腦工作形成自己的「記憶」。這種位於試管中的人工智慧系統通過識別手寫數字,可以解決典型的機器學習問題。科學家表示,這項工作是證實人工智慧植入人造有機電路的一個重要步驟。
  • 什麼是人工智慧神經網絡? 神經網絡是怎麼應用到各領域的?|什麼|...
    川北在線核心提示:原標題:什麼是人工智慧神經網絡? 神經網絡是怎麼應用到各領域的?前不久,據華爾街日報報導, Uber在一宗無人車的測試過程中,造成了一名行人死亡的嚴重交通事故,除此之外,環顧我們身邊,蘋果手機的虛擬個人助理Siri有時會無法識別我們在說什麼;某些人臉識別支付   原標題:什麼是人工智慧神經網絡? 神經網絡是怎麼應用到各領域的?
  • 人工智慧神經網絡你知道是什麼嗎
    打開APP 人工智慧神經網絡你知道是什麼嗎 企業新聞 發表於 2020-04-09 11:28:47 這個無需解釋太多,因為通過各種科幻電影我們已經對人工智慧很熟悉了。大家現在感興趣的應該是——如何實現人工智慧? 從1956年夏季首次提出「人工智慧」這一術語開始,科學家們嘗試了各種方法來實現它。這些方法包括專家系統,決策樹、歸納邏輯、聚類等等,但這些都是假智能。直到人工神經網絡技術的出現,才讓機器擁有了「真智能」。 為什麼說之前的方法都是假智能呢?
  • 人工智慧瓶頸之神經網絡的可解釋探討
    基於深度神經網絡的人工智慧系統主要面臨結果不可驗證和過程不可審查兩大安全問題。結果不可驗證指的是基於深度神經網絡的人工智慧系統輸出結果無法被判斷、預測,智能系統行為邊界難以掌握,導致系統不可控,本質上是深度神經網絡結果不可判讀。過程不可審查指的是系統決策背後的邏輯不明,代碼實現缺乏可信度,本質上是深度神經網絡的實現機理與決策邏輯難以理解。
  • 神經進化,可能使得人工智慧的火苗燒的更旺!
    有研究表明,人類體中的基因組中包含30000個基因,我們人類的大腦,約有100萬億個連接,於數百萬年的優勝劣汰的自然選擇過程中,結合神經網絡和演化計算而形成的。神經網絡之間的競爭與發展,使得大腦進一步進化,只有這樣才能真正創造出智慧。所以選擇大腦作為AI的靈感來源,是因為大腦是迄今為止唯一明確的智能載體。當我們想實現人工智慧時,在某種程度上,模仿大腦應該是一個講得通的思路。
  • 人工智慧之卷積神經網絡(CNN)
    前言:人工智慧機器學習有關算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下卷積神經網絡(CNN)算法。^_^本文引用地址:http://www.eepw.com.cn/article/201806/381807.htm  20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的複雜性,繼而提出了卷積神經網絡CNN(Convolutional Neural Networks)。
  • 科學家創建由DNA構成的人工神經網絡,能夠模仿大腦形成記憶
    這種位於試管中的人工智慧系統通過識別手寫數字,可以解決典型的機器學習問題。科學家表示,這項工作是證實人工智慧植入人造有機電路的一個重要步驟。這意味著未來有一天將成功研製完全由有機材料製成的類人機器人,而不是當前大眾傳統認知的金屬機器人。研究人員希望該設備能夠很快形成自己的「記憶」。
  • 人工智慧利用神經網絡來控制機器
    人工智慧利用神經網絡來控制機器,或者是人工智慧根據預定的規則來控制機器.人工智慧可以用於搜索,診斷,預測,監控和機器人等諸多方面.人工智慧為人類提供了創造性解決方案,這個解決方案不僅能創造出改變,同時還能控制它們.世界對於人工智慧抱有非常樂觀的態度,因為它們讓人類工作變得更加高效.然而,智能的出現時間還很短暫,遠沒有到大眾普遍接受的階段.那麼,人工智慧未來的發展方向到底是什麼
  • 華泰證券: 人工智慧選股之全連接神經網絡
    人工神經網絡模型具有強大的學習能力、適應能力、計算效率,可以良好地模擬出輸入空間到輸出空間的非線性映射關係,在很多應用領域已經取得了令人矚目的成果。本報告作為華泰人工智慧系列第八篇,開始嘗試從淺層結構學習模型邁向深度學習模型的研究,探索神經網絡與多因子結合選股將擦出怎樣的火花。
  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    但深度神經網絡又被稱為「黑盒」模型,多層隱藏結構,數據 / 特徵矢量化,海量決策關鍵元等因素讓模型使用者犯難:模型決策的依據是什麼?應該相信模型麼?特別是對於金融,醫藥,生物等關鍵型任務,深度學習模型的弱解釋性成為人工智慧項目落地的最大障礙。
  • 神經網絡白頭鷹當logo:美國成立國家人工智慧計劃辦公室
    昨天,美國白宮科學技術政策辦公室(OSTP)根據2020年《國家AI倡議法案》成立了國家人工智慧計劃辦公室,以確保美國在未來幾年內在這一關鍵領域的領導地位。這個辦公室負責監督和實施美國國家人工智慧戰略,並將成為美國政府在人工智慧研究和決策過程中與私營部門、學術界進行協調的中心樞紐。
  • 什麼是人工神經網絡(ANN)?
    但是直到最近幾年,神經網絡的承諾才變為現實,並幫助AI行業擺脫了漫長的冬季。儘管神經網絡幫助AI取得了飛躍,但它們也常常被誤解。這時您需要了解的有關神經網絡的所有信息。人工和生物神經網絡之間的相似性人工智慧先驅的最初願景是複製人類大腦的功能,這是自然界最聰明,最複雜的已知創造。