原文鏈接:
最近我們被客戶要求撰寫關(guān)于神經(jīng)網(wǎng)絡(luò)的研究報告,包括一些圖形和統(tǒng)計輸出。
這個例子說明了一個函數(shù)擬合的神經(jīng)網(wǎng)絡(luò)如何根據(jù)測量結(jié)果來估計脂肪百分比(BFP)
問題:估計脂肪百分比
在這個例子中,我們試圖建立一個神經(jīng)網(wǎng)絡(luò)來估計一個人的脂肪百分比,這個人由13個物理屬性描述。
這是一個擬合問題的例子,其中輸入與相關(guān)的目標(biāo)輸出相匹配,我們希望創(chuàng)建一個神經(jīng)網(wǎng)絡(luò),它不僅可以估計已知的目標(biāo),給定已知的輸入,而且還可以泛化,來準(zhǔn)確估計未知數(shù)據(jù)的結(jié)果。
為什么是神經(jīng)網(wǎng)絡(luò)?
神經(jīng)網(wǎng)絡(luò)在函數(shù)擬合問題上非常出色。一個有足夠多的元素(稱為神經(jīng)元)的神經(jīng)網(wǎng)絡(luò)可以以任意的精度擬合任何數(shù)據(jù)。它們特別適合于解決非線性問題。鑒于現(xiàn)實世界的非線性性質(zhì),如身體脂肪的增加,神經(jīng)網(wǎng)絡(luò)是解決該問題的不錯方法。
十三個物理屬性將作為神經(jīng)網(wǎng)絡(luò)的輸入,而體脂百分比將是目標(biāo)。
該網(wǎng)絡(luò)通過使用已經(jīng)知道體脂百分比的人體數(shù)據(jù)來建立模型利用photoshop測量視頻圖像中人體身高的方法,來訓(xùn)練它產(chǎn)生目標(biāo)值。
準(zhǔn)備數(shù)據(jù)
函數(shù)擬合的數(shù)據(jù)是兩個矩陣,即輸入矩陣X和目標(biāo)矩陣T。輸入矩陣的每一列將有13個元素,代表一個已知脂肪百分比的身體數(shù)據(jù)。目標(biāo)矩陣的每一對應(yīng)列將有一個元素,代表脂肪百分比。
加載數(shù)據(jù)集后,我們可以查看輸入X和目標(biāo)變量T的大小。
請注意利用photoshop測量視頻圖像中人體身高的方法,X和T都有252列。這些代表了252種體質(zhì)(輸入變量)和相關(guān)的體脂百分比(目標(biāo)變量)。
輸入矩陣X有13行,代表13個屬性。目標(biāo)矩陣T只有一行,因為對于每個例子我們只有一個期望的輸出,即脂肪百分比。
size(X)
size(T)
復(fù)制
用神經(jīng)網(wǎng)絡(luò)擬合函數(shù)
下一步是創(chuàng)建一個神經(jīng)網(wǎng)絡(luò),它將學(xué)習(xí)估計脂肪百分比。
由于神經(jīng)網(wǎng)絡(luò)以隨機(jī)的初始權(quán)重開始,這個例子每次運行的結(jié)果都會略有不同。設(shè)置隨機(jī)種子是為了避免這種隨機(jī)性。
setdemorandstream(491)
復(fù)制
兩層(即一個隱藏層)前饋神經(jīng)網(wǎng)絡(luò)可以擬合任何輸入-輸出關(guān)系,只要隱藏層有足夠的神經(jīng)元。不屬于輸出層的層被稱為隱藏層。
在這個例子中,我們將嘗試使用由15個神經(jīng)元組成的單一隱藏層。一般來說,更難的問題需要更多的神經(jīng)元,也許需要更多的層。較簡單的問題則需要較少的神經(jīng)元。
輸入和輸出的大小為0,因為神經(jīng)網(wǎng)絡(luò)還沒有被配置為與我們的輸入和目標(biāo)數(shù)據(jù)相匹配。將在網(wǎng)絡(luò)被訓(xùn)練時進(jìn)行。
net?=?fitnet(15);
view(net)
復(fù)制
現(xiàn)在,網(wǎng)絡(luò)已經(jīng)準(zhǔn)備好被訓(xùn)練了。樣本被自動劃分為訓(xùn)練集、驗證集和測試集。訓(xùn)練集被用來訓(xùn)練網(wǎng)絡(luò)。只要網(wǎng)絡(luò)在驗證集上繼續(xù)改進(jìn),訓(xùn)練就會繼續(xù)。測試集提供了一個完全獨立的網(wǎng)絡(luò)準(zhǔn)確性的衡量標(biāo)準(zhǔn)。
點擊標(biāo)題查閱往期內(nèi)容