Assignment 4.pdf

‫ﻣﻬﻠﺖ ﺗﺤﻮﻳﻞ‪:‬‬
‫درس ﺷﺒﻜﻪ ﻫﺎي ﻋﺼﺒﻲ و ﺳﺎﻣﺎﻧﻪ ﻫﺎي ﻓﺎزي‬
‫ﺑﻪ ﻧﺎم ﺧﺪا ‪ ‬‬
‫ﺗﻤﺮﻳﻦ ﺳﺮي ﭼﻬﺎرم‬
‫‪ 8‬ﺻﺒﺢ ﭼﻬﺎرﺷﻨﺒﻪ ‪92/8/15‬‬
‫ﺗﻜﺎﻟﻴﻒ را ﺑﻪ ﺻﻮرت ذﻛﺮ ﺷﺪه در ﺻﻮرت ﺗﻤﺮﻳﻦ ) دﺳﺘﻲ و ﻳﺎ اﻟﻜﺘﺮوﻧﻴﻜﻲ( اﻧﺠﺎم دﻫﻴﺪ و ﻫﺮ دو را ﻗﺒﻞ از ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ دﻫﻴﺪ ﺗﺎ ﺑﻪ دﻟﻴﻞ ﺗﺎﺧﻴﺮ از ﻧﻤﺮهﺗﺎن‬
‫ﻛﺎﺳﺘﻪ ﻧﺸﻮد‪ .‬ﺗﻤﺮﻳﻨﺎت اﻟﻜﺘﺮوﻧﻴﻜﻲ ﺣﺘﻤﺎً اﺣﺘﻴﺎج ﺑﻪ ﮔﺰارش و ﻧﺘﻴﺠﻪﮔﻴﺮي دارد و ﮔﺰارش ﺑﺎﻳﺪ ﺑﺎ ﻓﺮﻣﺖ ‪ PDF‬ارﺳﺎل ﺷﻮد‪ .‬ﺑﺮاي ﻫﺮ ﺳﻮال از ﻗﺴﻤﺖ اﻟﻜﺘﺮوﻧﻴﻜﻲ‬
‫ﺑﺎﻳﺪ ﻳﻚ اﺳﻜﺮﻳﭙﺖ اﻳﺠﺎد ﻧﻤﺎﻳﻴﺪ ﺗﺎ ﺧﻮاﺳﺘﻪﻫﺎي ﺳﺌﻮال را ﻧﻤﺎﻳﺶ دﻫﺪ‪ .‬ﻛﺪﻫﺎ و ﮔﺰارش ﻣﺮﺑﻮﻃﻪ را داﺧﻞ ﭘﻮﺷﻪ ﻗﺮار داده و ﺑﺎ ﻋﻨﻮان‬
‫‪ HW3_STID_FirstName_LastNam‬ﺑﻪ آدرس ‪ [email protected]‬ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫ﺳﻮاﻻت ﺧﻮد را ﺑﻪ اﻳﻤﻴﻞ ‪ [email protected]‬ارﺳﺎل ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫ﺗﻤﺮﻳﻦﻫﺎي دﺳﺘﻲ‬
‫‪ .1‬ﺗﻤﺮﻳﻦﻫﺎي زﻳﺮ را از ﻛﺘﺎب درﺳﻲ ﺣﻞ ﻛﻨﻴﺪ‪:‬‬
‫ﻓﺼﻞ ‪ 2‬ﺗﻤﺮﻳﻦ ‪ 9‬ﻓﺼﻞ ‪ :3‬ﺗﻤﺮﻳﻦ ‪5‬‬
‫ﻓﺼﻞ ‪ :4‬ﺗﻤﺮﻳﻦﻫﺎي ‪ 2‬و ‪8‬‬
‫‪ .2‬ﺷﺒﻜﻪ ﻓﻴﺪ ﻓﻮروارد زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺗﺎﺑﻊ ﻓﻌﺎﻟﻴﺖ ﻧﻮرون ﻫﺎ ﺑﻪ ﺻﻮرت ﺗﺎﺑﻊ ﻋﻼﻣﺖ ﻣﻲ ﺑﺎﺷﺪ )ﺧﺮوﺟﻲ ﻧﻮرون ﺑﻪ ﺻﻮرت ﻋﻼﻣﺖ) ‪ +1‬ﻳﺎ ‪ (-1‬ورودي‬
‫آن ﻣﻲ ﺑﺎﺷﺪ(‪ X1 .‬و ‪ X2‬را ﻃﻮري ﺗﻌﻴﻴﻦ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ‪ y=1‬ﺑﺎﺷﺪ‪.‬‬
‫‪ .3‬ﻳﻚ ﭘﺮﺳﭙﺘﺮون ‪ McPolluch-pitts‬ﺑﺮاي دﺳﺘﻪ ﺑﻨﺪي داده ﻫﺎي زﻳﺮ ﻃﺮاﺣﻲ ﻛﻨﻴﺪ‪.‬‬
‫‪ .4‬ﺷﺒﻜﻪ ‪ MLP‬زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬
‫ورودي و ﺧﺮوﺟﻲﻫﺎي ﻣﻄﻠﻮب ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪ .‬وزنﻫﺎي ﺑﺮوز ﺷﺪه‬
‫و‬
‫را ﺑﺎ اﺳﺘﻔﺎده از ‪ back propagation‬ﺑﺪﺳﺖ آورﻳﺪ )ﻳﻚ ﺑﺎر ﺗﻜﺮار(‬
‫‪ .5‬اﻟﻒ( واژه ‪ Early stopping‬ﺑﻪ ﻫﻨﮕﺎم آﻣﻮزش ﻳﻚ ‪ MLP‬ﺑﻪ ﭼﻪ ﻣﻌﻨﺎﺳﺖ؟‬
‫ب( ﭼﻪ ﻣﻮﻗﻊ از ‪ early stopping‬در ‪ back-propagation‬اﺳﺘﻔﺎده ﻣﻲ ﻛﻨﻴﻢ؟‬
‫پ( ﻣﺰﻳﺖ اﺻﻠﻲ ‪ early stopping‬ﺑﺮ دﻳﮕﺮ روش ﻫﺎ ﭼﻴﺴﺖ؟‬
‫ت( ‪ k-fold cross validation‬ﭼﻴﺴﺖ و ﭼﮕﻮﻧﻪ ﺑﻪ ‪ early stopping‬ﻣﺮﺑﻮط ﻣﻲ ﺷﻮد؟‬
‫ث( آﻳﺎ ﻫﺮ ﺷﺒﻜﻪ ﻋﺼﺒﻲ ﭼﻨﺪﻻﻳﻪ ﺑﺎ ﺗﺎﺑﻊ ﻓﻌﺎﻟﻴﺖ ﺧﻄﻲ در ﻻﻳﻪﻫﺎي ﻣﺨﻔﻲ را ﻣﻲﺗﻮان ﺑﺼﻮرت ﻳﻚ ﺷﺒﻜﻪ ﺑﺪون ﻻﻳﻪ ﻣﺨﻔﻲ ﻧﺸﺎن داد؟ ﺗﻮﺿﻴﺢ دﻫﻴﺪ‪.‬‬
‫ج( ﭼﺮا ﺑﺮﺧﻲ ﻣﻮاﻗﻊ ﻧﻴﺎز ﻫﺴﺖ ﻛﻪ ﺑﻪ ﻫﻨﮕﺎم آﻣﻮزش ﺷﺒﻜﻪ ﻋﺼﺒﻲ ﺑﺮاي ﻳﻚ ﻣﺠﻤﻮﻋﻪ داده ﺑﻪ آن ﻧﻮﻳﺰ اﺿﺎﻓﻪ ﻛﺮد؟ اﻳﻦ ﻧﻮﻳﺰ ﺑﻪ ﻛﺪام ﻗﺴﻤﺖ داده ﻫﺎ ﺑﺎﻳﺪ‬
‫اﺿﺎﻓﻪ ﺷﻮد؟ وروديﻫﺎ؟ ﺧﺮوﺟﻲﻫﺎ؟ وزنﻫﺎ؟‬
‫ﺗﻤﺮﻳﻦﻫﺎي اﻟﻜﺘﺮوﻧﻴﻜﻲ‬
‫‪ .١‬ﺑﻪ ﻫﺮ ﻛﺪام از ﻣﻮارد زﻳﺮ ﭘﺎﺳﺦ دﻫﻴﺪ‪ :‬‬
‫‪‬‬
‫اﻟﮕﻮرﻳﺘﻢ ‪ LMS‬را ﭘﻴﺎده ﺳﺎزي ﻛﻨﻴﺪ‪ .‬‬
‫‪‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﭘﻴﺎده ﺳﺎزي ﮔﺎم ﻗﺒﻠﻲ‪ ،‬ﺑﺮدار ‪ w‬ﺳﻮال ﭘﺎﻳﻴﻦ را ﺑﻪ دﺳﺖ آورﻳﺪ‪ :‬‬
‫‪‬‬
‫ﺑﺮدار ورودي ﻣﺴﺎﻟﻪ‪ ،‬ﺑﺎزه ‐ ﺗﺎ‬
‫‪‬‬
‫ﺑﺮداري ﻫﺪف ﻣﺴﺎﻟﻪ‪ ،‬ﺑﺮاﺑﺮ اﺳﺖ ﺑﺎ ‪:‬‬
‫را ﺑﺎ ﻃﻮل ﮔﺎم ﻫﺎي ‪ /10‬ﺗﻘﺴﻴﻢ ﻣﻴﻜﻨﺪ‪ .‬‬
‫‪ ‬‬
‫‪ ‬ﺧﺮوﺟﻲ اﻳﻦ ﻗﺴﻤﺖ ﻳﻚ ﻓﺎﻳﻞ ‪ txt‬ﻣﻲﺑﺎﺷﺪ ﻛﻪ در ﻫﺮ ﺳﻄﺮ آن ﻣﻘﺪار‬
‫‪,‬‬
‫‪,‬‬
‫ﻗﺮار داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪ .٢‬در اﻳﻦ ﺗﻤﺮﻳﻦ ﻫﺪف اﻳﻦ اﺳﺖ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻳﻚ ﺷﺒﻜﻪ ‪ Perceptron‬ﺳﺎده ﺣﺮوف اﻧﮕﻠﻴﺴﻲ )‪ (A,B,C,D,E,J,K‬را از ﻳﻜﺪﻳﮕﺮ ﺗﺸﺨﻴﺺ دﻫﻴﺪ‪.‬‬
‫ﺑﺮاي اﻳﻦ ﻣﻨﻈﻮر ﺑﺮاي ﻫﺮ ﺣﺮف ‪ 3‬داده آﻣﻮزش و ﻳﻚ داده آزﻣﻮن در اﺧﺘﻴﺎر ﺷﻤﺎ ﻗﺮار ﮔﺮﻓﺘﻪ اﺳﺖ‪ .‬ﺷﻤﺎ ﺑﺎﻳﺪ ‪ ‬‬
‫‪ ‬ﺑﺎ اﺳﺘﻔﺎده از ﺷﺒﻜﻪ ‪ perceptron‬اي ﻛﻪ آﻣﻮزش ﻣﻲدﻫﻴﺪ دادهﻫﺎي آزﻣﻮن را ﺗﺸﺨﻴﺺ دﻫﻴﺪ‪.‬‬
‫‪ ‬ﺑﺮاي ﻫﺮ ﺣﺮف ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺣﺪاﻛﺜﺮ ﭼﻨﺪ ﭘﻴﻜﺴﻞ ﺧﻄﺎ را ﺗﺤﻤﻞ ﻣﻲﻛﻨﻨﺪ‪ .‬ﺑﺮاي اﻳﻦ ﻛﺎر ﺑﺮاي ﻫﺮ ﺣﺮف ﭼﻨﺪ ﭘﻴﻜﺴﻞ را ﺑﻪ ﺻﻮرت ﺗﺼﺎدﻓﻲ‬
‫ﺗﻐﻴﻴﺮ داده و ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺷﺒﻜﻪ آن را درﺳﺖ ﺗﺸﺨﻴﺺ ﻣﻲدﻫﺪ ﻳﺎ ﺧﻴﺮ‪ .‬اﻳﻦ ﺣﺪاﻛﺜﺮ ﺗﻌﺪاد ﭘﻴﻜﺴﻞ را ﺑﺎﻳﺪ ﺑﺮاي ﺻﺤﺖ ‪ ٪95‬ﻣﺤﺎﺳﺒﻪ‬
‫ﻛﻨﻴﺪ‪.‬‬
‫‪ .٣‬ﻫﺪف از اﻳﻦ ﺗﻤﺮﻳﻦ آﺷﻨﺎﻳﻲ ﺑﺎ روش ‪ MLP‬ﺑﺮاي دﺳﺘﻪ ﺑﻨﺪي دادهﻫﺎ اﺳﺖ‪ .‬دادهﻫﺎي ‪ iris‬ﺑﺮاي دﺳﺘﻪ ﺑﻨﺪي )‪ ٪80‬آﻣﻮزش و ‪ ٪20‬آزﻣﻮن( در ﻧﻈﺮ ﮔﺮﻓﺘﻪ‬
‫ﺷﺪهاﻧﺪ‪ .‬در اﻳﻦ ﺗﻤﺮﻳﻦ ﺑﺎﻳﺪ‪ :‬‬
‫‪ ‬ﻳﻚ ﺷﺒﻜﻪ ‪ MLP‬ﻃﺮاﺣﻲ ﻛﺮده و اﻟﮕﻮرﻳﺘﻢ ‪ backpropagation‬را ﭘﻴﺎدهﺳﺎزي ﻛﻨﻴﺪ‪ .‬‬
‫‪ ‬ﺑﺎ اﺳﺘﻔﺎده از اﻳﻦ ﺷﺒﻜﻪ دادهﻫﺎي ‪ iris‬را دﺳﺘﻪﺑﻨﺪي ﻛﻨﻴﺪ‪ .‬ﺗﻌﺪاد ﻧﻮرونﻫﺎي ﻻﻳﻪ ﻧﻬﺎن را از ‪ 1‬ﺗﺎ ‪ 10‬ﺗﻐﻴﻴﺮ دﻫﻴﺪ و ﺧﻄﺎي ‪ MSE‬را ﺑﺮاي‬
‫دادهﻫﺎي آﻣﻮزش و آزﻣﻮن ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ‪ .‬‬
‫‪ ‬ﺑﺮاي ﺑﻬﺘﺮﻳﻦ ﺗﻌﺪاد ﻧﻮرون ﻫﺎي ﻻﻳﻪ ﻧﻬﺎن ﻧﻤﻮدار ﺗﻐﻴﻴﺮات ﺧﻄﺎي آﻣﻮزش و آزﻣﻮن را ﺑﺮ ﺣﺴﺐ ﺗﻌﺪاد داده ﻫﺎي آﻣﻮزش رﺳﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪ ‬ﺑﺮاي ﺗﻌﺪاد ﻧﻮرون ﻫﺎي ﻣﺨﺘﻠﻒ در ﻻﻳﻪ ﻧﻬﺎن ‪،‬ﺧﻄﺎي آﻣﻮزش ﺷﺒﻜﻪ ﺧﻮد را ﺑﺎ ﺧﻄﺎي آزﻣﻮن ﭘﻴﺎده ﺳﺎزي ‪ MATLAB‬در ﻧﻤﻮداري ﻣﻘﺎﻳﺴﻪ‬
‫ﻛﻨﻴﺪ‪ .‬‬
‫‪ ‬‬