Sun’iy intellekt va neyron tarmoqlari”fanidan sun’iy neyron tarmoqlari modeli



Yüklə 1,12 Mb.
səhifə10/13
tarix25.09.2023
ölçüsü1,12 Mb.
#148474
1   ...   5   6   7   8   9   10   11   12   13
Mustaqil ish

O'zgaruvchan

Ta'rif

X

Har bir qator oʻquv namunasi boʻlgan maʼlumotlar toʻplami matritsasi kiritiladi

Y

Har bir satr oʻquv namunasi boʻlgan chiqish maʼlumotlar majmuasi matritsasi

l0

Tarmoqning birinchi qatlami, kirish ma'lumotlari bilan belgilanadi

l1

Tarmoqning ikkinchi qatlami, aks holda yashirin qatlam deb ataladi

syn0

Og'irliklarning birinchi qatlami, Synapse 0, l0 ni l1 bilan bog'laydi.

*

Elementlar bo'yicha ko'paytirish, shuning uchun teng o'lchamdagi ikkita vektor bir xil o'lchamdagi yakuniy vektorni yaratish uchun mos qiymatlarni 1 dan 1 gacha ko'paytiradi.

-

Elementlar bo'yicha ayirish, shuning uchun teng o'lchamdagi ikkita vektor bir xil o'lchamdagi yakuniy vektorni yaratish uchun 1 dan 1 gacha mos qiymatlarni ayiradi.

x.nuqta(y)

Agar x va y vektorlar bo'lsa, bu nuqta mahsulotidir. Agar ikkalasi ham matritsa bo'lsa, bu matritsa-matritsani ko'paytirish. Agar bitta matritsa bo'lsa, u vektor matritsani ko'paytirishdir.


3 qatlamli neyron tarmoq:

import numpy as np


def nonlin(x,deriv=False):


if(deriv==True):
return x*(1-x)

return 1/(1+np.exp(-x))


X = np.array([[0,0,1],
[0,1,1],
[1,0,1],
[1,1,1]])
y = np.array([[0],
[1],
[1],
[0]])

np.random.seed(1)


# randomly initialize our weights with mean 0


syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1

for j in xrange(60000):


# Feed forward through layers 0, 1, and 2


l0 = X
l1 = nonlin(np.dot(l0,syn0))
l2 = nonlin(np.dot(l1,syn1))

# how much did we miss the target value?


l2_error = y - l2
if (j% 10000) == 0:
print "Error:" + str(np.mean(np.abs(l2_error)))
# in what direction is the target value?
# were we really sure? if so, don't change too much.
l2_delta = l2_error*nonlin(l2,deriv=True)

# how much did each l1 value contribute to the l2 error (according to the weights)?


l1_error = l2_delta.dot(syn1.T)
# in what direction is the target l1?
# were we really sure? if so, don't change too much.
l1_delta = l1_error * nonlin(l1,deriv=True)

syn1 += l1.T.dot(l2_delta)


syn0 += l0.T.dot(l1_delta)

Xato: 0.496410031903


Xato: 0.00858452565325
Xato: 0.00578945986251
Xato: 0.00462917677677
Xato: 0.00395876528027
Xato: 0.00351012256786



Yüklə 1,12 Mb.

Dostları ilə paylaş:
1   ...   5   6   7   8   9   10   11   12   13




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin