تمرین های کتاب هاگان

تمرین های کتاب هاگان

  1. E10.3, E10.4,E10.6,E10.9,E10.11,E10.13 ازکتاب هاگان

مقدمه:

“Neural Networks: A Systematic Introduction” یک مقدمه جامع به مفاهیم و کاربردهای شبکه‌های عصبی است.

نویسنده، مارتین هاگان، با استفاده از زبان ساده و مثال‌های واضح، خواننده را به دنیای پیچیده‌ی شبکه‌های عصبی هدایت می‌کند.

این کتاب به طور جامع به موضوعاتی مانند معماری شبکه‌های عصبی، الگوریتم‌های آموزش، کاربردها در تشخیص الگو، پردازش تصویر، پردازش زبان

طبیعی و بسیاری موارد دیگر پرداخته است.

همچنین، نویسنده به بررسی مسائل مربوط به عملکرد و استفاده از شبکه‌های عصبی در صنایع و تحقیقات علمی نیز پرداخته است.

این کتاب مناسب برای دانشجویان، محققان و مهندسان است که علاقه‌مند به یادگیری عمیق و استفاده از شبکه‌های عصبی در کاربردهای مختلف

هستند.

با توجه به سبک نوشتاری روان و مثال‌های عملی، این کتاب به خواننده امکان می‌دهد تا مفاهیم پیچیده را به راحتی درک کند و از آن‌ها

بهره‌مند شود.

جواب تمرین 10.3

با توجه به درنظر گرفتن ماتریس [.25  .75] میتوانیم خروجی برنامه را بدین صورت داشته باشیم.که مجموع خروجی ها با توجه به تابع فعالساز hardlims برابر باصفر شده است اما ارور شبکه به ازای توابع فعالساز دیگر متفاوت بوده است. کد برنامه در ادامه قرار گرفته است وتصویر خروجی برنامه نیز قرار گرفته است. به همین دلیل چون خروجی برنامه وتارگت دارای دوسطح -1و1 میباشد بهترین حالت برای تابع فعالساز را میتوان hardlim در نظر داشت

%TAMRIN 10.3

clc

clear all

close all

p1=[1 1]

t1=[1]

p2=[-1 -1]

t2=-1

P=[p1′ p2′]

T=[t1 t2]

W=[.25 .75]

b=rand(1,1)

napar=1

a=hardlims(W*P+b)

e=T-a

نمایش خروجی برنامه:

10.3

جواب تمرین  10.4:

برنامه دوم با توجه به استفاده از تابع فعالساز hardlims در حلقه دوم به تارگت واقعی رسید وبدین صورت مجموع مربعات خطای برنامه هم در حلقه دوم صفر گردید.

نمایش کد برنامه :

clear all

close all

clc

tic

p1=[1 1]

t1=[1]

p2=[-1 -1]

t2=-1

P=[p1′ p2′]

T=[t1 t2]

S=size(T,1)

R=size(P,1)

W=rand(S,R)

b=rand(S,1)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a(:,i)=hardlims(W*P(:,i)+b)

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*transpose(P(:,i))

b=b+e(:,i)

end

iteration=iteration+1

if e==0

napar=0;

end

plot(e,’*’)

hold on

end

نمایش تصویر خروجی برنامه :

10.4

در ادامه از بردار صفر برای حدس اولیه برنامه استفاده کردیم. ونتیجه برنامه در حلقه سوم به ارور صفر رسید.جواب خروجیهای برنامه در انتها دقیقا مشابه تارگت واقعی برنامه به ازای ماتریس وزن گردید.

10.44

تمرین 10.6

براساس خواسته سوال شبکه ادلاین را برای ضریب یادگیری .1 ایجاد کردیم. کد مربوطه در قسمت ذیل قرار گرفته است.

clear all

close all

clc

tic

p1=[1 1]

t1=[0 -1]

p2=[-1 2]

t2=[-4 1]

P=[p1′ p2′]

T=[t1; t2]

S=size(T,1)

R=size(P,1)

W=rand(S,R)

b=rand(S,1)

napar=1

for i=1:1000

for i=1:size(P,2)

a(:,i)=purelin(W*P(:,i));

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*0.001*transpose(P(:,i));

end

end

سوال اپدیت lms را بدون استفاده از بایاس درخواست داشت به همین دلیل بایاس را از برنامه حذف کردیم.

خروجی برنامه را براساس تارگتی که بر روی چهار قسمت مختصات قرار گرفته بود را در تصویر ذیل نمایش دادیم. بدین صورت کاملا مشهود است است که برنامه دقت بسیار خوبی در تشخیص تارگت داشته است.

10.6

و مربع خطای برنامه زیر .1 بوده است.

تمرین 10.9

باطراحی شبکه و کدنویسی برنامه ادلاین میتوانیم به کد زیربرسیم.

clear all

close all

clc

tic

p1=[2 -4]

t1=[1]

p2=[-4 4]

t2=[-1]

p3=[4 2]

t3=1;

P=[p1′ p2′ p3′]

t3=1

T=[t1 t2 t3]

S=size(T,1)

R=size(P,1)

W=[0 0]

b=rand(S,1)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a(:,i)=hardlims(W*P(:,i)+b)

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*transpose(P(:,i))

b=b+e(:,i)

end

iteration=iteration+1

if e==0

napar=0;

end

end

%%START W0=[2 0]

W=[2 0]

b=rand(S,1)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a(:,i)=hardlims(W*P(:,i)+b)

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*transpose(P(:,i))

b=b+e(:,i)

end

iteration=iteration+1

if e==0

napar=0;

end

end

در این برنامه هم به ازای ورودی صفر و هم به ازای ورودی رندوم خروجی برنامه را بدست اوردیم.  در این برنامه وزن های اولیه براساس خود صورت سوال برابر با [2 0 ]قرار داده شد. خروجی برنامه بدین صورت بوده است:

10.9

باتوجه به ماتریس اولیه   [0 0 ] وتحت تابع فعالساز hardlims در حلقه دوم به جواب رسید. و ارور برنامه برابر با صفر شد. در ادامه با درنظر گرفتن ماتریس اولیه [2 0] برنامه با استفاده از تابع فعالساز hardlims در همان حلقه اولیه به جواب رسید.

10.99

تمرین 10.11

کدبرنامه :

clear all

close all

clc

tic

p1=[-1 2]

t1=[-1]

p2=[2 -1]

t2=[-1]

p3=[0 -1]

t3=1;

p4=[-1 0]

t4=1

P=[p1′ p2′ p3′ p4′]

T=[t1 t2 t3 t4]

S=size(T,1)

R=size(P,1)

W=[0 0]

b=rand(S,1)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a(:,i)=hardlims(W*P(:,i)+b)

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*transpose(P(:,i))

b=b+e(:,i)

end

iteration=iteration+1

if e==0

napar=0;

end

end

%%START W0=[2 0]

W=[2 0]

b=rand(S,1)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a(:,i)=hardlims(W*P(:,i)+b)

e(:,i)=T(:,i)-a(:,i)

W=W+e(:,i)*.1*transpose(P(:,i))

b=b+e(:,i)

end

iteration=iteration+1

if e==0

napar=0;

end

end

پاسخ به سوالات تمرین:

پس از طراحی شبکه برنامه را تحت تابع فعالساز hardlims کدنویسی میکنیم. در این برنامه ضریب یادگیری برابر با .1 خواهند بود. خروجی برنامه در نهایت در حلقه 7 به خطای صفر رسیده است.

10.11
10.111

تصویر بالا نمایش میدهد که تا زمانیکه خروجی برنامه برای تمام پترن ها به صفر نرسد برنامه در حال اجراست.

تمرین 10.13

دراینجا یک برنامه دولایه درحقیقت داریم. بردار ورودی شامل خروجی لحظه حال فرمول سینوسی وهمچنین لحظه قبل میباشد بدین صورت شبکه ادلاین را بدین نحو بر روی خروجی قرار داده ایم. کد برنامه به صورت زیر خواهد بود.

clear all

close all

clc

K=0:.1:10

Y=sin((K*pi)/5)

P=[K(1:end-1); K(2:end)]

T=Y

S=size(T,1)

R=size(P,1)

W=.001*rand(S,R)

W2=.003*rand(S,R)

napar=1

iteration=0

while(napar)

for i=1:size(P,2)

a1=tansig(W*P(:,i));

a2(:,i)=purelin(W2*a1);

e(:,i)=T(:,i)-a2(:,i);

W=W+e(:,i)*.01*transpose(P(:,i));

W2=W2+e(:,i)*.01*transpose(a1);

end

iteration=iteration+1;

norm(e)

if norm(e)<=1

napar=0;

end

end

در این برنامه از تابع فعالساز purline استفاده شده است.در این تابع فعالساز بدلیل داشتن خروجی های بیش از -1 و1 موثر تر بنظر میرسید .در اینجا خطای میانگین توسط دستور norm  بدست امده است. خروجی لایه اول به عنوان ورودی لایه دوم در نظر گرفته شده است. این برنامه تطبیق خوبی جهت اپدیت و بهینه سازی نداشته است و روی خطال میانگین 9 ثابت مانده است.

10.13

ادامه مطلب

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “تمرین های کتاب هاگان”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *