Mini Project SPL 2020

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

‫ﭘﺮﻭﮊﻩ ﺩﺭﺱ ﻓﺮﺁﻳﻨﺪﻫﺎﻱ ﺗﺼﺎﺩﻓﻲ )ﺑﺮﮔﺮﻓﺘﻪ ﺷﺪﻩ ﺍﺯ ﺗﻤﺮﻳﻦ ﺩﺍﻧﺸﮕﺎﻩ ﭘﺮﻳﻨﺴﺘﻮﻥ(‬

‫ﺩﻛﺘﺮ ﺭﺑﻴﻌﻲ‬
‫‪ ۱۵‬ﺩﻱ ‪۱۳۹۹‬‬

‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻗﺼﺪ ﺩﺍﺭﻳﻢ ﺗﺎ ﻣﺮﺍﺣﻞ ﻣﺨﺘﻠﻒ ﺳﺎﺧﺖ ‪ HMM‬ﺍﺯ ﺭﻭﻱ ﺩﺍﺩﻩ ﺭﺍ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻛﻨﻴﻢ ﻛﻪ ﺩﺭ ﺍﺩﺍﻣﻪ ﺷﺮﺡ ﺩﺍﺩﻩ ﻣﻲ ﺷﻮﺩ‪.‬‬
‫ﺩﺭ ﻣﺮﺍﺣﻞ ﻣﺨﺘﻠﻒ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺩﺭ ﺣﺪ ﻣﻌﻘﻮﻝ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﺍﺯ ﻛﺘﺎﺑﺨﺎﻧﻪ ﻫﺎﻱ ﺁﻣﺎﺩﻩ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﺪ )ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻤﻮﻧﻪ ﺍﻟﮕﻮﺭﻳﺘﻢ ‪ Viterbi‬ﺭﺍ ﺑﺎﻳﺪ‬
‫ﺧﻮﺩﺗﺎﻥ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻛﻨﻴﺪ(‪.‬‬

‫‪ ۱‬ﺳﺎﺧﺖ ﻣﺪﻝ ﺍﺯ ﺭﻭﻱ ﺩﺍﺩﻩ‬


‫‪ ۳‬ﺩﺳﺘﻪ ﭘﺎﺭﺍﻣﺘﺮ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺑﺮﺍﻱ ﺳﺎﺧﺖ ﻳﻚ ‪ HMM‬ﺭﺍ ﺑﻴﺎﻥ ﻛﺮﺩﻩ ﻭ ﺑﺮﻧﺎﻣﻪﺍﻱ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺑﺎ ﺩﺭﻳﺎﻓﺖ ﺩﺍﺩﻩ‪ ،‬ﭘﺎﺭﺍﻣﺘﺮﻫﺎﻱ ﻣﻮﺭﺩ ﻧﻈﺮ ﺭﺍ ﺍﺳﺘﺨﺮﺍﺝ‬
‫ﻧﻤﺎﻳﺪ‪ .‬ﺩﻗﺖ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﻛﺪ ﺷﻤﺎ ﺑﺎﻳﺪ ﺣﺎﻟﺖ ﻋﻤﻮﻣﻲ ﺩﺍﺷﺘﻪ ﻭ ﺑﺪﻭﻥ ﺗﻮﺟﻪ ﺑﻪ ﻧﻮﻉ ﺩﺍﺩﻩﻱ ﻭﺭﻭﺩﻱ ﻋﻤﻞ ﻧﻤﺎﻳﺪ‪ .‬ﺩﺭ ﻣﺤﺎﺳﺒﻪﻱ ﭘﺎﺭﺍﻣﺘﺮﻫﺎﻱ‬
‫ﻣﺪﻝ ﺍﺯ ‪۱‬ﻫﻤﻮﺍﺭﺳﺎﺯﻱ ﻻﭘﻼﺱ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ‪.‬‬

‫‪ ۲‬ﻳﺎﻓﺘﻦ ﻣﺤﺘﻤﻞﺗﺮﻳﻦ ﺩﻧﺒﺎﻟﻪ‬


‫ﻛﺪﻱ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺑﺎ ﮔﺮﻓﺘﻦ ﺩﻧﺒﺎﻟﻪﻱ ﺧﺮﻭﺟﻲﻫﺎﻱ ﻣﺸﺎﻫﺪﻩ ﺷﺪﻩ‪ ،‬ﻣﺤﺘﻤﻞ ﺗﺮﻳﻦ ﺩﻧﺒﺎﻟﻪ ‪۲‬ﺣﺎﻻﺕ ﺭﺍ ﺑﻪ ﺩﺳﺖ ﺁﻭﺭﺩ‪ .‬ﺑﻪ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﺑﺎﻳﺪ ﺍﺯ‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢ ‪ Viterbi‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ‪ .‬ﺩﻗﺖ ﻧﻤﺎﻳﻴﺪ ﻛﻪ ﺩﺭ ﻃﻮﻝ ﺍﺟﺮﺍﻱ ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺑﻪ ﺩﻟﻴﻞ ﺿﺮﺏ ﺗﻌﺪﺍﺩ ﺯﻳﺎﺩﻱ ﺍﺣﺘﻤﺎﻝ‪ ،‬ﺍﻋﺪﺍﺩﻱ ﺗﻮﻟﻴﺪ‬
‫ﺧﻮﺍﻫﻨﺪ ﺷﺪ ﻛﻪ ﻣﺮﺗﺒﻪﻱ ﺑﺴﻴﺎﺭ ﻛﻮﭼﻜﻲ ﺩﺍﺭﻧﺪ ﻭ ﻣﻤﻜﻦ ﺍﺳﺖ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﺤﺪﻭﺩﻳﺖﻫﺎﻱ ﺳﻴﺴﺘﻤﻲ‪ ،‬ﺑﻪ ﺻﻔﺮ ﺗﺒﺪﻳﻞ ﺷﻮﻧﺪ‪ .‬ﺑﺮﺍﻱ ﺣﻞ ﺍﻳﻦ‬
‫ﻣﺸﻜﻞ ﻣﻲﺗﻮﺍﻧﻴﺪ ﺍﺯ ﻟﮕﺎﺭﻳﺘﻢ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ ‪:‬‬
‫)‪log(pq) = log(p) + log(q‬‬

‫‪ ۳‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﺍﺩﻩﻫﺎﻱ ﻭﺍﻗﻌﻲ‬


‫ﺩﺭ ﺍﻳﻦ ﻗﺴﻤﺖ ﻛﺪﻫﺎﻱ ﭘﻴﺎﺩﻩﺳﺎﺯﻱ ﺷﺪﻩ ﺩﺭ ﺩﻭ ﻗﺴﻤﺖ ﻗﺒﻞ ﺭﺍ ﺑﺮ ﺭﻭﻱ ﺩﺍﺩﻩﻫﺎﻱ ﻭﺍﻗﻌﻲ ﺗﺴﺖ ﻣﻲﻛﻨﻴﺪ ‪:‬‬

‫‪ ۱.۳‬ﺭﺑﺎﺕ‬
‫ﺩﺭ ﺍﻳﻦ ﺩﺍﺩﻩ ﺭﺑﺎﺗﻲ ﺑﺮ ﺭﻭﻱ ﺻﻔﺤﻪﻱ ﺷﻜﻞ ﺯﻳﺮ ﺣﺮﻛﺖ ﻣﻲﻛﻨﺪ‪ .‬ﺩﺭ ﻫﺮ ﻟﺤﻈﻪ‪ ،‬ﺭﺑﺎﺕ ﻣﻲﺗﻮﺍﻧﺪ ﺑﻪ ﻳﻜﻲ ﺍﺯ ﺳﻤﺖﻫﺎﻱ ﺑﺎﻻ‪ ،‬ﭘﺎﻳﻴﻦ‪ ،‬ﭼﭗ ﻭ‬
‫ﺭﺍﺳﺖ ﺣﺮﻛﺖ ﻛﻨﺪ ﻭ ﺩﺭ ﻫﺮ ﺧﺎﻧﻪ ﻣﻲﺗﻮﺍﻧﺪ ﺭﻧﮓ ﺁﻥ ﺭﺍ ﺍﺣﺴﺎﺱ ﻛﻨﺪ‪ .‬ﺩﺭ ﺻﻮﺭﺗﻲ ﻛﻪ ﺣﺮﻛﺖ ﺭﺑﺎﺕ ﻣﻮﺟﺐ ﺷﻮﺩ ﺑﻪ ﺧﺎﺭﺝ ﺍﺯ ﺻﻔﺤﻪ ﻳﺎ‬
‫ﻳﻜﻲ ﺍﺯ ﺧﺎﻧﻪﻫﺎﻱ ﺳﻴﺎﻩ ﺑﺮﻭﺩ‪ ،‬ﺣﺮﻛﺖ ﺍﻧﺠﺎﻡ ﻧﺨﻮﺍﻫﺪ ﺷﺪ‪.‬‬

‫‪1 Laplace‬‬ ‫‪Smoothing‬‬


‫‪2 States‬‬

‫‪۱‬‬
‫ﺳﻨﺴﻮﺭﻫﺎﻱ ﺭﺑﺎﺕ‪ ،‬ﺩﺭ ‪ ۱۰‬ﺩﺭﺻﺪ ﻣﻮﺍﻗﻊ ﺧﻄﺎ ﺩﺍﺭﻧﺪ ﻭ ﻣﻤﻜﻦ ﺍﺳﺖ ﺭﻧﮓ ﺍﺷﺘﺒﺎﻫﻲ ﺭﺍ ﺣﺲ ﻛﻨﻨﺪ‪ .‬ﺣﺎﻻﺕ ﺍﻳﻦ ﻣﺴﺌﻠﻪ ﻣﺨﺘﺼﺎﺕ ﺭﺑﺎﺕ‬
‫ﺑﻪ ﺻﻮﺭﺕ ‪ x : y‬ﻭ ﺧﺮﻭﺟﻲ ﻫﺮ ﺣﺎﻟﺖ ﺭﻧﮕﻲ ﺍﺳﺖ ﻛﻪ ﺗﻮﺳﻂ ﺳﻨﺴﻮﺭﻫﺎﻱ ﺭﺑﺎﺕ ﺣﺲ ﻣﻲﺷﻮﺩ ﻛﻪ ﻳﻜﻲ ﺍﺯ ﺭﻧﮓﻫﺎﻱ ‪r, g, b and y‬‬
‫ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪.‬‬
‫ﺩﺭ ﻓﺎﻳﻞ ﺩﺍﺩﻩ ‪ ۴۰۰‬ﺩﻧﺒﺎﻟﻪ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻛﻪ ﺍﺯ ‪ ۲۰۰‬ﺩﻧﺒﺎﻟﻪﻱ ﺍﻭﻝ ﺑﺮﺍﻱ ﻳﺎﺩﮔﻴﺮﻱ ﻣﺪﻝ ﻭ ﺍﺯ ‪ ۲۰۰‬ﺩﻧﺒﺎﻟﻪﻱ ﺑﻌﺪ ﺑﺮﺍﻱ ﺗﺴﺖ ﻣﺪﻝ ﺍﺳﺘﻔﺎﺩﻩ‬
‫ﻧﻤﺎﻳﻴﺪ‪.‬‬

‫ﺗﺼﺤﻴﺢ ﺧﻄﺎﻱ ﻧﻮﺷﺘﺎﺭﻱ‬ ‫‪۲.۳‬‬


‫ﺩﺭ ﺍﻳﻦ ﻣﺴﺌﻠﻪ‪ ،‬ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﻳﻚ ﻣﺘﻦ ﻣﺠﺪﺩﺍ ﺗﺎﻳﭗ ﻣﻲﺷﻮﻧﺪ‪ .‬ﺩﻭ ﺩﺍﺩﻩ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﺷﻤﺎ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪ ﺍﺳﺖ ﻛﻪ ﺩﺭ ﻳﻜﻲ ‪ ۱۰‬ﺩﺭﺻﺪ‬
‫ﻛﺎﺭﺍﻛﺘﺮﻫﺎ ﺑﻪ ﺻﻮﺭﺕ ﺍﺷﺘﺒﺎﻩ ﺗﺎﻳﭗ ﺷﺪﻩ ﻭ ﺩﺭ ﺩﻳﮕﺮﻱ ‪ ۲۰‬ﺩﺭﺻﺪ ﺩﺍﺩﻩﻫﺎ‪ .‬ﺣﺎﻻﺕ ﻣﺪﻝ ﻣﺎﺭﻛﻮﻑ‪ ،‬ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﺍﺻﻠﻲ ﻭ ﺧﺮﻭﺟﻲ ﻣﺸﺎﻫﺪﻩ‬
‫ﺷﺪﻩ ﻛﺎﺭﺍﻛﺘﺮ ﺗﺎﻳﭗ ﺷﺪﻩ ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪.‬‬
‫ﺩﺭ ﻓﺎﻳﻞ‪ ،‬ﺩﺍﺩﻩﻫﺎﻱ ﺁﻣﻮﺯﺵ ﻭ ﺗﺴﺖ ﺑﺎ ﺩﻭ ﻛﺎﺭﺍﻛﺘﺮ )‪ (..‬ﻳﻜﺪﻳﮕﺮ ﺟﺪﺍ ﺷﺪﻩﺍﻧﺪ‪.‬‬

‫‪ .۱‬ﻣﺤﺪﻭﺩﻳﺘﻲ ﺩﺭ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺯﺑﺎﻥﻫﺎﻱ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻭﺟﻮﺩ ﻧﺪﺍﺭﺩ‪.‬‬


‫‪ .۲‬ﺍﺯ ﻛﺘﺎﺑﺨﺎﻧﻪﻫﺎﻱ ﺁﻣﺎﺩﻩ ﺩﺭ ﺣﺪ ﻣﻌﻘﻮﻝ ﻣﻲﺗﻮﺍﻧﻴﺪ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﺪ‪ .‬ﺩﺭ ﺻﻮﺭﺕ ﺍﺑﻬﺎﻡ ﻣﻲﺗﻮﺍﻧﻴﺪ ﺳﻮﺍﻻﺕ ﺧﻮﺩ ﺭﺍ ﺩﺭ ﻛﻮﺋﺮﺍ ﻣﻄﺮﺡ ﻛﻨﻴﺪ‪.‬‬
‫‪ .۳‬ﺑﺨﺸﻲ ﺍﺯ ﻧﻤﺮﻩﻱ ﭘﺮﻭﮊﻩ ﺑﻪ ﮔﺰﺍﺭﺵ ﺁﻥ ﺗﺨﺼﻴﺺ ﺧﻮﺍﻫﺪ ﻳﺎﻓﺖ‪ .‬ﺑﻪ ﺍﻳﻦ ﺳﻮﺍﻻﺕ ﺩﺭ ﮔﺰﺍﺭﺵ ﺧﻮﺩ ﭘﺎﺳﺦ ﺩﻫﻴﺪ ‪:‬‬
‫)ﺁ( ﺁﻳﺎ ﺩﺭ ﺍﻳﻦ ﺩﻭ ﻧﻮﻉ ﺩﺍﺩﻩ‪ ،‬ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ HMM‬ﻧﺘﻴﺠﻪﻱ ﻣﻄﻠﻮﺑﻲ ﺩﺍﺭﺩ؟ ﭼﺮﺍ؟‬
‫)ﺏ( ﭼﻪ ﻓﺮﺿﻴﺎﺗﻲ ﺩﺭ ‪ HMM‬ﺻﻮﺭﺕ ﻣﻲﮔﻴﺮﺩ ﻛﻪ ﻣﻮﺟﺐ ﻣﻲﺷﻮﺩ ﺩﺭ ﻣﻮﺭﺩ ﺍﻳﻦ ﺩﻭ ﺩﺍﺩﻩ ﺧﻮﺏ )ﻳﺎ ﺑﺪ( ﻋﻤﻞ ﻛﻨﺪ؟‬

‫‪۲‬‬

You might also like