www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > TsinghuaJoking
[導(dǎo)讀]當(dāng)學(xué)習(xí)信號 取不同形式,可以得到神經(jīng)元的三大類不同修正方式(無監(jiān)督、有監(jiān)督、死記憶)。下面給出神經(jīng)元模型和訓(xùn)練樣本數(shù)據(jù),請通過編程實現(xiàn)上述表格中的五種算法并給出計算結(jié)果。通過這個作業(yè)練習(xí),幫助大家熟悉神經(jīng)元的各種學(xué)習(xí)算法。


01 學(xué)習(xí)算法

一、題目內(nèi)容

1、背景介紹

在第一章介紹了日本學(xué)者 “甘利俊一” 提出的統(tǒng)一公式,把對神經(jīng)元輸入連接權(quán)系數(shù)的修正 分成了三個獨(dú)立成分的乘積:學(xué)習(xí)速率 , 學(xué)習(xí)信號 以及輸入向量

▲ 圖1.1 神經(jīng)網(wǎng)絡(luò)中神經(jīng)元學(xué)習(xí)的統(tǒng)一公式

當(dāng)學(xué)習(xí)信號 取不同形式,可以得到神經(jīng)元的三大類不同修正方式(無監(jiān)督、有監(jiān)督、死記憶)。下面給出神經(jīng)元模型和訓(xùn)練樣本數(shù)據(jù),請通過編程實現(xiàn)上述表格中的五種算法并給出計算結(jié)果。通過這個作業(yè)練習(xí),幫助大家熟悉神經(jīng)元的各種學(xué)習(xí)算法。

2、神經(jīng)元模型

下面給出神經(jīng)元模型,根據(jù)不同的算法要求:

  • 選擇相應(yīng)的傳遞函數(shù)種類(離散二值函數(shù)、連續(xù) Sigmoid 函數(shù)):除了Perceptron算法選擇二值函數(shù)外,其它都選擇Sigmoid函數(shù),
  • 神經(jīng)元權(quán)系數(shù)( )都初始化成 0。
▲ 圖1.1.2 神經(jīng)元及其傳遞函數(shù)

3、樣本數(shù)據(jù)

訓(xùn)練樣本包括 6 個數(shù)據(jù),它們的分布如下圖所示:

▲ 圖1.1.3 神經(jīng)元訓(xùn)練數(shù)據(jù)

【表1-2 樣本數(shù)據(jù)】

序列 X1 X2 類別
1 -0.1 0.3 1
2 0.5 0.7 -1
3 -0.5 0.2 1
4 -0.7 0.3 1
5 0.7 0.1 -1
6 0.0 0.5 1
import sys,os,math,time import matplotlib.pyplot as plt from numpy import *

xdim = [(-0.1,0.3), (0.5,0.7), (-0.5,0.2),(-0.7,0.3),(0.7,0.1),(0,0.5)]
ldim = [1,-1,1,1,-1,1]

print("序列", "X1", "X2", "類別")

count = 0 for x,l in zip(xdim, ldim):

    count += 1 print("%d %3.1f %3.1f %d"%(count, x[0], x[1], l)) if l > 0:
        marker = 'o' color = 'blue' else:
        marker = '+' color = 'red' plt.scatter(x[0], x[1], marker=marker, c=color)
    plt.text(x[0]+0.05,x[1],'(%3.1f,%3.1f)'%(x[0],x[1]))

plt.axis([-0.8, 0.8,-0.1, 1])
plt.xlabel("X1")
plt.ylabel("X2")
plt.grid(True)
plt.tight_layout()
plt.show()

二、作業(yè)要求

1、必做內(nèi)容

1.  給出每個學(xué)習(xí)算法核心代碼;

2. 給出經(jīng)過一輪樣本學(xué)習(xí)之后神經(jīng)元的權(quán)系數(shù)數(shù)值結(jié)果(w1,w2,b);* 權(quán)系數(shù)初始化為 0;* 學(xué)習(xí)速率 ; * 訓(xùn)練樣本按照 表格1-2 的順序?qū)ι窠?jīng)元進(jìn)行訓(xùn)練;

2、選做內(nèi)容

1. 在坐標(biāo)系中繪制出經(jīng)過一輪訓(xùn)練之后,權(quán)系數(shù)(w1,w2)所在的空間位置;

2. 簡單討論一下不同算法對于神經(jīng)元權(quán)系數(shù)的影響;

import sys,os,math,time import matplotlib.pyplot as plt from numpy import *

xdim = [(-0.1,0.3), (0.5,0.7), (-0.5,0.2),(-0.7,0.3),(0.7,0.1),(0,0.5)]
ddim = [1,-1,1,1,-1,1] def sigmoid(x): return 1/(1+exp(-x)) def hebbian(w,x,d): x1 = [1,x[0],x[1]]
    net = sum([ww*xx for ww,xx in zip(w, x1)])
    o = sigmoid(net)
    w1 = [ww+o*xx for ww,xx in zip(w,x1)] return w1 def perceptron(w,x,d): x1 = [1,x[0],x[1]]
    net = sum([ww*xx for ww,xx in zip(w, x1)])
    o = 1 if net >= 0 else -1 w1 = [ww+(d-o)*xx for ww,xx in zip(w,x1)] return w1 def delta(w,x,d): x1 = [1,x[0],x[1]]
    net = sum([ww*xx for ww,xx in zip(w, x1)])
    o = sigmoid(net)
    o1 = o*(1-o)
    w1 = [ww+(d-o)*o1*xx for ww,xx in zip(w,x1)] return w1 def widrawhoff(w,x,d): x1 = [1,x[0],x[1]]
    net = sum([ww*xx for ww,xx in zip(w, x1)])
    o = sigmoid(net)
    w1 = [ww+(d-o)*xx for ww,xx in zip(w,x1)] return w1 def correlation(w,x,d): x1 = [1,x[0],x[1]]
    w1 = [ww+d*xx for ww,xx in zip(w,x1)] return w1

wb = [0,0,0] # [b, w1, w2] for x,d in zip(xdim, ddim):
    wb = correlation(wb,x,d)
    print(wb)

02 知機(jī)

一、感知機(jī)算法求解分類問題

1、樣本數(shù)據(jù)

利用單個神經(jīng)元求解下面分類問題。數(shù)據(jù)具有兩種表示形式:一種是二進(jìn)制(0,1)表示形式,另一種是雙極性(-1,1)表示形式。

▲ 圖2.1.1 分類數(shù)據(jù)及其在三維坐標(biāo)中的位置

2、作業(yè)要求

  1. 繪制出網(wǎng)絡(luò)結(jié)構(gòu)圖,并給出算法核心代碼;
  2. 對比不同學(xué)習(xí)速率對于訓(xùn)練收斂的影響;
  3. 對比不同數(shù)據(jù)表達(dá)式方式(二進(jìn)制、雙極性)對于收斂的影響。

二、感知機(jī)識別字母

1、樣本數(shù)據(jù)

如下是三個字母 C,H,L 的 5×5 的點陣圖。

▲ 圖2.2.1 C,H,L字母的點陣圖

給它們添加噪聲,形成帶有噪聲的樣本,噪聲樣本與正確樣本之間的海明距離(Hamming Distance)為1,即兩個二值向量之間不相同元素的個數(shù)為1,下面是三個字母的噪聲樣本的示例:

▲ 圖2.2.2 與三個字母Hamming距離為1的噪聲樣本

帶有噪聲的樣本可以在原有正確樣本的基礎(chǔ)上,隨機(jī)選擇一個元素,將其從原來的0或者1,改變成1,或者0。因此字母C,H,L各自有25個與其Hamming距離為1的帶有噪聲的樣本。

按照這種方式還可以構(gòu)造出帶有兩個噪聲點的數(shù)據(jù)集合,也就是隨機(jī)在字符點陣圖上選擇兩個點,將其數(shù)據(jù)進(jìn)行修改,帶有兩個噪聲的樣本有 個。

2、作業(yè)基本要求

  1. 建立由三個神經(jīng)元組成的簡單感知機(jī)網(wǎng)絡(luò),完成上述三個字母的識別訓(xùn)練;
  2. 測試訓(xùn)練之后的網(wǎng)絡(luò)在帶有一個噪聲點的數(shù)據(jù)集合上的識別效果;

3、選做內(nèi)容

  1. 測試上述感知機(jī)網(wǎng)絡(luò)在兩個噪聲點的數(shù)據(jù)集合上的識別效果;
  2. 對比以下兩種情況訓(xùn)練的感知機(jī)的性能。
    • 第一種情況:只使用沒有噪聲的三個字母進(jìn)行訓(xùn)練;
    • 第二種情況:使用沒有噪聲和有一個噪聲點的樣本進(jìn)行訓(xùn)練;
  3. 對比不同的學(xué)習(xí)速率對于訓(xùn)練過程的影響。

對比上面兩種訓(xùn)練情況在兩個噪聲點數(shù)據(jù)集合上的識別效果。

03 Adaline網(wǎng)絡(luò)

這是選擇題目。

一、題目內(nèi)容

1、背景介紹

自適應(yīng)線性神經(jīng)元 ADALINE(Adatpive Linear Neuron)是由 Bernard Widrow 與 Ted Hoff 在 1959年提出的算法。關(guān)于他們提出算法前后的故事,大家可以參照網(wǎng)文:The ADALINE - Theory and Implementation of the First Neural Network Trained With Gradient Descent[2] 進(jìn)行了解。

下面也是根據(jù)上述網(wǎng)文中所介紹的兩種鳥類(貓頭鷹與信天翁)數(shù)據(jù)集合,產(chǎn)生相應(yīng)的分類數(shù)據(jù)集合。大家使用 ADALINE 算法完成它們的分類器算法。

▲ 圖3.1.1 貓頭鷹與信天翁

2、樣本數(shù)據(jù)

(1)數(shù)據(jù)參數(shù)

根據(jù)Wikipedia 中關(guān)于 信天翁 Wandering albatross[3] 和 貓頭鷹( Great horned owl[4] )的相關(guān)數(shù)據(jù),這兩種鳥類的題中和翼展長度如下表所示。

【表1-3 兩種鳥類的體型數(shù)據(jù)】

種類 體重(kg) 翼展(m)
信天翁 9 3
貓頭鷹 1.2 1.2

使用計算機(jī)產(chǎn)生兩個鳥類體型隨機(jī)數(shù)據(jù)數(shù)據(jù),下表給出了每一類數(shù)據(jù)產(chǎn)生的參數(shù):

【表1-4 兩類鳥類數(shù)據(jù)產(chǎn)生參數(shù)】

鳥類 體重平均值 體重方差 翼展平均值 翼展方差 個數(shù) 分類
信天翁 9000 800 300 20 100 1
貓頭鷹 1000 200 100 15 100 -1

(2)Python示例代碼

下面給出了產(chǎn)生隨機(jī)樣本數(shù)據(jù)的 Python 示例代碼。大家可以參照這些代碼,使用自己熟悉的 編程語言來實現(xiàn)。

def species_generator(mu1, sigma1, mu2, sigma2, n_samples, target, seed): '''creates [n_samples, 2] array
    
    Parameters
    ----------
    mu1, sigma1: int, shape = [n_samples, 2]
        mean feature-1, standar-dev feature-1
    mu2, sigma2: int, shape = [n_samples, 2]
        mean feature-2, standar-dev feature-2
    n_samples: int, shape= [n_samples, 1]
        number of sample cases
    target: int, shape = [1]
        target value
    seed: int
        random seed for reproducibility
    
    Return
    ------
    X: ndim-array, shape = [n_samples, 2]
        matrix of feature vectors
    y: 1d-vector, shape = [n_samples, 1]
        target vector
    ------
    X''' rand = np.random.RandomState(seed)
    f1 = rand.normal(mu1, sigma1, n_samples)
    f2 = rand.normal(mu2, sigma2, n_samples)
    X = np.array([f1, f2])
    X = X.transpose()
    y = np.full((n_samples), target) return X, y
▲ 圖3.1.2 產(chǎn)生兩類數(shù)據(jù)的分布

二、作業(yè)要求

1. 構(gòu)造一個 ADALINE 神經(jīng)元,完成上述兩類鳥類的分類。由于需要進(jìn)行分類,在對 ADALINE 的輸出在經(jīng)過一個符號函數(shù)(sgn)便可以完成結(jié)果的分類;

2. 利用上述數(shù)據(jù)對 ADALINE 進(jìn)行訓(xùn)練。觀察記錄訓(xùn)練誤差變化的曲線。

3. 討論不同的學(xué)習(xí)速率對于訓(xùn)練結(jié)果的影響,看是否存在一個數(shù)值,當(dāng)學(xué)習(xí)速率超過這個數(shù)值之后,神經(jīng)元訓(xùn)練過程不再收斂。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉