国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺談人工神經(jīng)網(wǎng)絡(luò)

2020-11-28 07:39趙鈺
西部論叢 2020年11期
關(guān)鍵詞:數(shù)組準確率神經(jīng)元

趙鈺

1 引言

1.1 背景

如上圖所示,分別是夜景、狗、百合花的照片,我們可以快速準確的識別出來,并且通常不會出錯。但是對于計算機而言,并不會很容易的識別出,甚至會非常困難。

然而,計算機可以在1秒內(nèi)計算出超級復雜的數(shù)字,而我們口算兩位數(shù)乘法都會比較困難。

因此,對比計算機與人類,發(fā)現(xiàn):

就此發(fā)現(xiàn),我們可以推測圖像的識別需要人類的智慧才可以解決,這才是人工智能的精髓。因此,我們就要找到新的算法賦予計算機,使他可以解決那些需要用到人類智慧的問題。

1.2 目的。1、識別手寫數(shù)字,比如說書寫者由于字跡潦草寫出的“4”、“9”分不清,利用神經(jīng)網(wǎng)絡(luò)分析具體是哪一個數(shù)字。2、識別長文本,比如說打開一個超級多數(shù)據(jù)的文本,其中的數(shù)據(jù)用逗號隔開,我們無法識別數(shù)字的排列規(guī)律以及數(shù)據(jù)個數(shù),因此要使用計算機識別。并給出其排列規(guī)律等需求。

2 建立神經(jīng)網(wǎng)絡(luò)

2.1 神經(jīng)元。神經(jīng)元是生物大腦中最基本的單位。他的傳遞方式就是將電信號從這一端傳遞到另一端,再沿著軸突,將電信號從這一樹突傳遞到另一樹突。這就實現(xiàn)了將這個信號從這一神經(jīng)元傳遞到下一個神經(jīng)元。經(jīng)過這樣一個個過程的傳遞,我們便有了感知聲、光、電、熱等信號的能力,我們便有了視覺、嗅覺、聽覺、觸覺等。而我們的大腦主要就是由神經(jīng)元構(gòu)成的,大約有1000億個神經(jīng)元。

2.2 權(quán)重。權(quán)重最重要的作用就是可以調(diào)節(jié)每一個節(jié)點之間連接的強度。權(quán)重越大即這兩個節(jié)點之間的連接就越強,也就是說要放大信號;權(quán)重越小,即兩個節(jié)點之間的連接就越弱,也就說要縮小信號。

2.3 搭建神經(jīng)網(wǎng)絡(luò)。搭建一個神經(jīng)網(wǎng)絡(luò),至少需要以下三個函數(shù):(1)初始化函數(shù)——設(shè)置節(jié)點的數(shù)量,包括輸入層節(jié)點、隱藏層節(jié)點、輸出層節(jié)點(2)訓練——讓機器學習給定的訓練集樣本,并將所給出的權(quán)重進行優(yōu)化(3)查詢——給定一個輸入值,得出一個輸出值。

3 手寫識別

我們將數(shù)據(jù)文件保存在“mnist_dataset”文件夾中,下面進行讀取數(shù)據(jù)并展示。

Data_file=open(“mnist_dataset/mnist_train_100.csv”,r)? (打開文件<路徑>,并且是只讀的模式)

Data_list=data_file.readlines() (讀取文件)

Data_file.close (關(guān)閉和清理文件)

在anaconda中跑一下,得出:

由上圖可觀察到,這是一個長度為100的列表,第一個數(shù)字是“5”,這可以看作是一個標簽。同時我們可以看到其他的784個數(shù)字是構(gòu)成圖像像素的顏色值。且顏色值的范圍為[0,255]。

下面我們就要將使用上圖所示的數(shù)組進行繪圖:

Import numpy

Import matplotlib。Pyplot

%matplotlib inline

All_values=data_list[0].split(‘,)? 將長的字符串進行拆分,并且打印出來

Image_array=numpy.asfarray(all_values[1:]).reshape((28,28))? ?要使用除了列表中的第一個數(shù)字外的所有數(shù)字,并且將這些字符串都轉(zhuǎn)化為實數(shù),而且要創(chuàng)建數(shù)組。將這個數(shù)組美經(jīng)過28個數(shù)字就折返一次,最終形成一個28*28的正方形矩陣

Matplotlib.pyplot.imshow(image_array,cmap=Grey,interpolation=None)? ?將輸出的畫布顏色調(diào)為灰色,以便更好地展示結(jié)果。

3.1 MNIST訓練數(shù)據(jù)

首要的是要將顏色的值進行整改,我們將較大的數(shù)字進行縮放,將[0,255]這一范圍縮放為[0.01,1.0],最低點選為0.01是為了避免最小值為0最終造成權(quán)重自動更新失敗。所以要將[0,255]范圍內(nèi)的數(shù)值同時除以255,得到[0,1],再乘以0.99,將范圍變到[0,0.99],最后再加上0.01,最終得到范圍是[0.01,1.0]。

Scaled_input=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01

Print(scaled_input)

對于激活函數(shù)而言,若輸出值為0或1時,會是權(quán)重達到飽和狀態(tài),使激活函數(shù)失效,因此我們將用0.01和0.99去替代0和1,這樣“5”的數(shù)組應該由原來的[0,0,0,0,0,1,0,0,0,0]顯示為[0.01,0.01,0.01,0.01,0.01,0.99,0.01,0.01,0.01,0.01]。構(gòu)建目標矩陣:

# output nodes is 10 (example)

Onodes=10

Targets=numpy.zeros(onodes)+0.01

Targets[int(all_values[0])]=0.99

3.2測試網(wǎng)絡(luò)。我們想要測試之前訓練的效果,獲取數(shù)據(jù)集:

# load the mnist test data CSV file into a list

Test_data_file=open(“mnist_dataset/mnist_test_10.csv”,r)

Test_data_list=test_data_file.readlines()

Test_data_file.close()

最后得出準確率為60%。

3.3 完整訓練集。下面我們將進行完整的訓練,用60000個訓練樣本來完成三層神經(jīng)網(wǎng)絡(luò)的訓練。

如上圖所示,我們可以觀察到準確率高達了94.73%,由此我們可以認為其準確率已經(jīng)是非常高的了!

4 模型改進

4.1 調(diào)整學習率。我們想提高準確率,首先想到的是調(diào)整學習率。我們先將學習率翻倍成0.6,但得到的結(jié)果不盡人意,最終準確率只有90.47%。于是我們決定降低學習率,將其值設(shè)為0.1,通過計算得到準確率為95.23%。再一次降低學習率至0.01,發(fā)現(xiàn)準確率下降至92.41%。因此,我們推測學習率對準確率的影響是一條變化的曲線,是存在峰值的。因此,繪制了學習率與準確率的圖像:

根據(jù)上圖發(fā)現(xiàn),學習率大概在0.2的時候,其準確率最高。

4.2 改變隱藏層節(jié)點數(shù)量。我們還可以通過改變隱藏層節(jié)點的數(shù)目來改變整個神經(jīng)網(wǎng)絡(luò)的形狀,從而也達到提高準確率的目的。

之前上文中我們所運用到的隱藏層的節(jié)點全部為100個,接下來就要減少、以及增加節(jié)點,來觀察準確率的變化。

經(jīng)過計算統(tǒng)計,若隱藏節(jié)點的個數(shù)為5個時,準確率大約為70%,而增加到200個節(jié)點時,準確率增加到97.62%.繪制圖像如下:

觀察上圖可以看出,隱藏節(jié)點大約在200個時,便可使準確率達到最高。

5 結(jié)論

訓練神經(jīng)網(wǎng)絡(luò)進行手寫識別,通過進行調(diào)整學習率和隱藏層節(jié)點個數(shù)可以大幅度提升識別的準確率。通過三層神經(jīng)網(wǎng)絡(luò)與數(shù)據(jù)集不斷計算,使神經(jīng)網(wǎng)絡(luò)具有學習功能。使用不同的激活函數(shù)也會有不同的效果。

猜你喜歡
數(shù)組準確率神經(jīng)元
JAVA稀疏矩陣算法
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
多層螺旋CT技術(shù)診斷急性闌尾炎的效果及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
AI講座:神經(jīng)網(wǎng)絡(luò)的空間對應
頸椎病患者使用X線平片和CT影像診斷的臨床準確率比照觀察
JAVA玩轉(zhuǎn)數(shù)學之二維數(shù)組排序
仿生芯片可再現(xiàn)生物神經(jīng)元行為
更高效用好 Excel的數(shù)組公式
這個神經(jīng)元負責改變我們的習慣
克东县| 海城市| 肇庆市| 通许县| 广德县| 长武县| 南昌县| 凭祥市| 山阴县| 若尔盖县| 突泉县| 鹤壁市| 当阳市| 团风县| 黄石市| 溆浦县| 宜良县| 夏河县| 西乡县| 德格县| 琼海市| 常熟市| 西乌| 会同县| 龙泉市| 佛坪县| 丰城市| 南开区| 蒙自县| 长兴县| 宝鸡市| 如皋市| 万州区| 玛纳斯县| 梅河口市| 商南县| 潞城市| 阳曲县| 桃园市| 台北市| 杂多县|