»çÀÌÆ®¸Ê  |  Contact Us
 
Ȩ > SAS Tech & Tip > SAS Enterprise Miner
[EM] ¼­Æ÷Æ® º¤ÅÍ ¸Ó½Å(support vector machine, SVM) ÀÌ·Ð 2017.12.16
±èÈ¿¹ü 2983 1
http://www.mysas.co.kr/SAS_tiptech/j_eminer.asp?b_no=7561&gotopage=1&con=subject&keyword=&cmd=content&bd_no=29&gubun=

 




À̹ø½Ã°£¿¡´Â ¼­Æ÷Æ® º¤ÅÍ ¸Ó½Å(support vector machineSVM)¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸°Ú½À´Ï´Ù.

 



SVMÀº ºÐ·ù³ª ȸ±ÍºÐ¼®¿¡ ¾²ÀÏ ¼ö ÀÖ´Â ÁöµµÇнÀ ¸ðµ¨ÀÔ´Ï´Ù. 

µÎ°¡Áö ¹üÁÖ·Î ³ª´­ ¼ö ÀÖ´Â ÇнÀµ¥ÀÌÅÍ·Î ¸¸µé¾îÁö¸ç »õ·Î¿î µ¥ÀÌÅͰ¡ µé¾î¿ÔÀ» ¶§ ºñÈ®·üÀû ÀÌÁø ¼±Çü ºÐ·ù¸¦ ÇÕ´Ï´Ù. pÂ÷¿ø °ø°£¼ÓÀÇ Á¡À¸·Î µ¥ÀÌÅ͵éÀ» Ç¥ÇöÇϰí ÀÌ Á¡µéÀÌ °¢°¢ µÎ°³ÀÇ Å¬·¡½º Áß Çϳª¿¡ ¼ÓÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ Á¡µéÀ» ºÐ¸®ÇÏ´Â (p-1)Â÷¿øÀÇ ºÐ¸® ÃÊÆò¸é(hyperplane)À» ã´Â °ÍÀÌ ±âº»ÀûÀÎ ¸ñÀûÀÔ´Ï´Ù.

 

 

 

Margin

 ÇÏÁö¸¸ ´Ü¼øÈ÷ µ¥ÀÌÅÍÆ÷ÀÎÆ®µéÀ» ºÐ¸®¸¸ ÇÏ´Â hyperplaneÀº ¹«¼öÈ÷ ¸¹½À´Ï´Ù.

 

ÃÖÀûÀÇ ºÐ¸® ÃÊÆò¸éÀ» ±¸Çϱâ À§ÇØ ¸¶ÁøÀ̶ó´Â Á÷°üÀûÀÎ °³³äÀ» ÀÌÇØÇØ¾ß ÇÕ´Ï´Ù. ¸¶ÁøÀº hyperplane°ú °¡Àå °¡±î¿î µ¥ÀÌÅÍÆ÷ÀÎÆ®±îÁöÀÇ °Å¸®¸¦ ¶æÇÕ´Ï´Ù. SVMÀº Ãִ븶ÁøÀ» °¡Áö´Â hyperplaneÀ» ±¸ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í À̶§ hyperplaneÀ» °áÁ¤Çϴ µ¥ÀÌÅÍÆ÷ÀÎÆ®µéÀÌ ¹Ù·Î SVM¿¡¼­ SV°¡ ÀǹÌÇÏ´Â Support Vector°¡ µË´Ï´Ù.

 

Hard margin SVM

Hard margin SVMÀº ´Ü¾î ±×´ë·Î hardÇÏ°Ô ºÐ·ù¸¦ ÇÏ´Â SVMÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. hard´Â ¼±ÇüÆÇº°À» ÇÒ ¶§ ¿ÀÂ÷, Áï ¸¶ÁøÀÇ ¾ÈÀ̳ª ¹Û¿¡ ±âÁذú ¸ÂÁö ¾Ê´Â µ¥ÀÌÅ͸¦ Àý´ë Çã¿ëÇÏÁö ¾ÊÀ» Á¤µµ·Î À¯¿¬ÇÏÁö ¾Ê´Ù´Â ¶æÀ¸·Î Ç®¾î¼­ ÇØ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù. Hard margin SVMÀº ´ÙÀ½°ú °°Àº °áÁ¤°æ°è½ÄÀ» °¡Áý´Ï´Ù.

¿©±â¼­ ´Â ÃÊÆò¸éÀÇ ¹ý¼±º¤ÅÍÀÌ°í ´Â ¿øÁ¡±îÁöÀÇ °Å¸®¸¦ °áÁ¤ÇÏ´Â °ªÀÔ´Ï´Ù. ÀÌ·± °áÁ´°æ°è½Ä¿¡¼­ dÀÇ ºÎÈ£·Î µ¥ÀÌÅ͸¦ ±¸ºÐÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ 0º¸´Ù Å©¸é  ·Î, 0º¸´Ù ÀÛÀ¸¸é ·Î ºÐ·ùÇÕ´Ï´Ù.

ÃÊÆò¸éÀÇ ¾çÂÊ ¿µ¿ªÀÇ ¼­Æ÷Æ®º¤ÅÍµé ±îÁöÀÇ °Å¸®°¡ °°¾Æ¾ß ÇÏ¸ç °è»êÀÇ ÆíÀǸ¦ À§ÇØ °Å¸®¸¦ 1·Î ÇÏ¸é °áÁ¤°æ°è½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

µÎ ¿µ¿ªÀÇ ¼­Æ÷Æ®º¤ÅÍ¿¡¼­ ÃÊÆò¸é±îÁö °Å¸®¸¦ Àý´ë°ªÀ¸·Î º¯È¯ÇÏ¿© ´õÇÏ¸é ´ÙÀ½°ú °°Àº ½ÄÀ¸·Î Ç¥ÇöµÇ°í ÀÌ´Â ¸¶ÁøÀÇ Å©±â¿Í °°½À´Ï´Ù.

 

 

µû¶ó¼­ ¸¶ÁøÀ» ÃÖ´ë·Î Çϱâ À§Çؼ­´Â  ¸¦ ÃÖ¼ÒÈ­ÇÏ´Â ¸ñÀûÇÔ¼ö¸¦ ±¸ÇÏ¸é µË´Ï´Ù. ¸ñÀûÇÔ¼ö´Â °è»ê»óÀÇ ÆíÀǼºÀ» À§ÇØ ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³À´Ï´Ù.

 ÇÏÁö¸¸ ÀÌ ¸ñÀûÇÔ¼ö¸¸ °¡Áö°í´Â µ¥ÀÌÅ͵éÀ» ¿Ïº®È÷ ºÐ·ùÇÒ ¼ö ¾ø½À´Ï´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº Á¦¾à½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù.

¸ñÀûÇÔ¼ö¿Í Á¦¾à½ÄÀ» ÇѲ¨¹ø¿¡ µÎ°í °è»êÇϱâ À§ÇØ ¶ó±×¶ûÁÖ ½Â¼ö¹ýÀ» »ç¿ëÇÕ´Ï´Ù. ¶ó±×¶ûÁÖ ½Â¼ö¹ýÀº Á¦¾àÁ¶°ÇÀÌ ÀÖ´Â ÃÖÀûÈ­ ¹®Á¦¸¦ ´Ù·ê ¶§ »ç¿ëÇÏ´Â ¹æ¹ýÀÌÁö¸¸ ÀÚ¼¼ÇÑ ¼³¸íÀº »ý·«ÇϰڽÀ´Ï´Ù.

¶ó±×¶ûÁÖ ½Â¼ö¹ýÀ» »ç¿ëÇÏ¿© ¸ñÀûÇÔ¼ö¿Í Á¦¾àÁ¶°ÇÀ» °áÇÕÇϸé Á¦¾àÀÌ »ç¶óÁø »õ·Î¿î ÇüÅÂÀÇ ¸ñÀûÇÔ¼ö°¡ ¸¸µé¾îÁý´Ï´Ù. (´Ü, ¶ó±×¶ûÁÖº¯¼ö¿¡ ´ëÇÑ Á¶°ÇÀº ¸¸Á·ÇØ¾ß ÇÕ´Ï´Ù.)

»õ·Ó°Ô ±¸ÇÑ ¸ñÀûÇÔ¼ö¸¦ ÅëÇØ  °ú ¸¦ ±¸ÇÏ¿© ±âÁ¸ÀÇ °áÁ¤°æ°è½Ä¿¡ ´ëÀÔÇÏ¸é ´ÙÀ½°ú °°Àº ÃÖÁ¾ ÆÇº°ÇÔ¼ö½ÄÀÌ ³ª¿À°Ô µË´Ï´Ù.

»õ·Î¿î µ¥ÀÌÅͰ¡ µé¾î¿ÔÀ» ¶§ ÆÇº°ÇÔ¼ö½Ä¿¡ ´ëÀÔÇÏ¿© 0º¸´Ù Å©¸é +1·Î, 0º¸´Ù ÀÛÀ¸¸é -1·Î ºÐ·ùÇÏ´Â °Í ÀÔ´Ï´Ù.

 

Soft margin SVM

ÇÏÁö¸¸ ¼±ÇüÀ¸·Î Á¤È®ÇÏ°Ô ºÐ·ùµÇ´Â µ¥ÀÌÅ͵éÀº ±ØÈ÷ µå¹°±â ¶§¹®¿¡ ¾à°£ÀÇ ¿ÀºÐ·ù¸¦ Çã¿ëÇÏ¿© ¸ðµ¨À» ±¸ÃàÇÏ´Â Soft margin SVMÀÌ ³ª¿À°Ô µË´Ï´Ù. ¸ðµç ÇнÀµ¥ÀÌÅÍ¿¡ ´ëÇØ ¿Ïº®ÇÏ°Ô ºÐ·ùµÇ´Â °ÍÀ» Á¦¾àÁ¶°ÇÀ¸·Î °¡Áö´Â ±âÁ¸ÀÇ HardÇÑ ¹æ¹ý¿¡¼­ ¾à°£ÀÇ ¿ÀºÐ·ù¸¦ Çã¿ëÇϰí ÀüüÀûÀÎ ¼º´ÉÀ» ³ôÀÌ´Â SoftÇÑ ¹æ¹ýÀ¸·Î ¹ßÀü µÈ ÇüÅÂÀÔ´Ï´Ù.

Soft margin SVM¿¡¼­´Â À߸ø ºÐ·ùµÈ µ¥ÀÌÅÍÆ÷ÀÎÆ®ºÎÅÍ ÇØ´ç°áÁ¤°æ°è±îÁöÀÇ °Å¸®¸¦ ³ªÅ¸³»´Â ½½·¢º¯¼ö °¡ »ç¿ëµË´Ï´Ù. ½½·¢º¯¼öÀÇ Å©±â¸¸Å­ ÃÊÆò¸éÀÇ À§ ¶Ç´Â ¾Æ·¡·Î ¿ÀºÐ·ù¸¦ Çã¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. µû¶ó¼­ °¡ Ŭ¼ö·Ï ¿ÀºÐ·ùÀÇ Çã¿ë¹üÀ§°¡ ³Ð¾îÁö´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ½½·¢º¯¼ö¸¦ Ãß°¡ÇÏ¸é ´ÙÀ½°ú °°Àº ¸ñÀûÇÔ¼ö¿Í Á¶°Ç½ÄÀÌ ³ª¿À°Ô µË´Ï´Ù.

Hard margin SVM¿¡¼­¿Í ¸¶Âù°¡Áö·Î ¶ó±×¶ûÁÖ ½Â¼ö¹ýÀ» ÀÌ¿ëÇÏ¿© ÃÖÀûÈ­µÈ ÆÄ¶ó¹ÌÅ͸¦ ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¶Âù°¡Áö·Î ºÐ·ùÇÔ¼ö¿¡ ±¸ÇÑ ¸Å°³º¯¼öµéÀ» ´ëÀÔÇÏ¸é »õ·Î¿î µ¥ÀÌÅÍÀÇ ºÐ·ù¸¦ ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

 

Kernel trick

Soft marginÀ» ÅëÇØ ¾à°£ÀÇ ¿ÀºÐ·ù¸¦ Çã¿ëÇÏ´Â ¼±ÇüºÐ·ùÀÇ À¯¿¬¼ºÀÌ »ý±â±ä ÇßÁö¸¸ ¾ÖÃÊ¿¡ ¼±ÇüÀ¸·Î ºÐ·ù°¡ ºÒ°¡´ÉÇÑ À§ ±×¸²°ú °°Àº µ¥ÀÌÅÍ´Â Kernel trickÀ» ÀÌ¿ëÇÑ SVMÀ» ÅëÇØ ºÐ·ù°¡ °¡´ÉÇÕ´Ï´Ù.

À§ÀÇ ±×¸²Ã³·³ ÀúÂ÷¿øÀÇ ºñ¼±Çü ºÐ·ù°æ°è¸¦ °¡Áö´Â µ¥ÀÌÅ͸¦ °íÂ÷¿øÀ¸·Î ¸ÅÇÎ ½ÃŲ ÈÄ ºÐ·ù ÃÊÆò¸éÀ» ã±â À§ÇØ Â÷¿ø ¸ÅÇο¡ Ä¿³ÎÇÔ¼ö¸¦ »ç¿ëÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸ µ¥ÀÌÅ͵éÀ» °íÂ÷¿øÀ¸·Î ¸ÅÇÎÇϰí À̸¦ ´Ù½Ã ³»ÀûÇÏ´Â °úÁ¤¿¡¼­ ¿¬»êÀÌ ¸Å¿ì Å©°Ô ´Ã¾î³ª´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.

±×·¡¼­ ³ª¿À°Ô µÈ ¹æ¹ýÀÌ Kernel trickÀÔ´Ï´Ù. ¸ÅÇÎÇÔ¼ö¸¦ ¶ó°í ÇÒ ¶§ ´Â =Ax °°ÀÌ ¼±Çüº¯È¯ÀÌ °¡´ÉÇÏ´Ù°í °¡Á¤ÇÕ´Ï´Ù. ¼±Çüº¯È¯ÀÌ °¡´ÉÇÏ´Ù¸é ³»Àûµµ ¼±Çüº¯È¯À» ÅëÇØ °¡´É ÇÒ °ÍÀÔ´Ï´Ù. µû¶ó¼­ ¼±Çüº¯È¯ÀÌ ÀÌ·ç¾îÁö´Â µÎ ³»Àû°ø°£¸¸ Á¤ÀÇ ÇØÁÖ¸é ¸ÅÇΰú ³»ÀûÀ» µ¿½Ã¿¡ ÇÏ´Â ´ÙÀ½°ú °°Àº Ä¿³ÎÇÔ¼ö¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù.

°íÂ÷¿ø¿¡¼­ÀÇ º¹ÀâÇÑ ¿¬»ê¾øÀÌ ÀúÂ÷¿ø¿¡¼­ ÇÔ¼ö°è»ê¸¸À¸·Î ¿øÇÏ´Â Ç®À̸¦ ÇÒ ¼ö ÀÖ´Â Ä¿³Î ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Áõ°¡ÇÑ ¿¬»ê·®ÀÇ ¹®Á¦¸¦ ÇØ°áÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ µÚ·ÎÀÇ ÆÇº°°æ°è¸¦ ±¸ÇÏ´Â °úÁ¤Àº ¾Õ¿¡¼­ÀÇ °úÁ¤°ú °°½À´Ï´Ù. Ä¿³ÎÇÔ¼öÀÇ Á¾·ù·Î´Â ±âº»ÀûÀÎ LinearÄ¿³Î°ú ´ÙÀ½°ú °°Àº Á¾·ùµéÀÌ ÀÖ½À´Ï´Ù.

 

¸¶Ä¡¸ç

¿À´ÃÀº ºÐ·ù¸ðÇüÀ¸·Î ¸¹ÀÌ ¾²ÀÌ´Â SVM¿¡´ëÇØ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. SVMÀº ¼±Çü°áÁ¤°æ°è¸¦ »ç¿ëÇÏ¿© ÀÌÁøºÐ·ù¸¦ ÇÏ´Â °ÍÀ» ±âº»À¸·Î ÇÏ´Â ¸ðµ¨ÀÌÁö¸¸ µ¥ÀÌÅÍ¿¡ µû¶ó À¯¿¬ÇÏ°Ô ´ëóÇÒ ¼ö ÀÖ´Â ¿©·¯°¡Áö ¹æ¹ýµéÀÌ ÀÖ½À´Ï´Ù. ¿À´Ã ¼Ò°³Çص帰 Soft marginÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅÍÀÇ noise¸¦ ÇØ°á ÇÒ ¼öµµ ÀÖ°í Kernel trickÀ» »ç¿ëÇÏ¿© ºñ¼±Çü ºÐ·ùµµ ¼öÇàÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ ¿Ü¿¡ µ¥ÀÌÅÍ¿¡ ¶óº§ÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é Ŭ·¯½ºÅ͸µ±â¹ýÀ» ÅëÇØ ±×·ìÈ­¸¦ ÁøÇàÇÏ¿© SVMÀ» °¡´ÉÄÉ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ´Ù¹üÁÖ ¹®Á¦µµ ´ÙÁß ¹ÙÀ̳ʸ®ºÐ·ù·Î Á¢±ÙÇϸé 1´ë Àüü, ȤÀº ¸ðµç ¹üÁÖ¸¦ 1´ë1·Î ºñ±³ÇÏ´Â ¹æ¹ý µîÀ» ÅëÇØ ÇØ°á ÇÒ ¼ö ÀÖ´Ù°í ¾Ë·ÁÁ®ÀÖ½À´Ï´Ù.

 

 

Reference

https://dev.datasift.com/blog/building-better-machine-learned-classifiers-faster-active-learning

https://docs.opencv.org/2.4/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

http://gentlej90.tistory.com/43

https://en.wikipedia.org/wiki/Support_vector_machine

https://www.slideshare.net/kambliruta/event-classification-prediction-using-support-vector-machine

http://blog.hackerearth.com/simple-tutorial-svm-parameter-tuning-python-r

http://www.cogsys.wiai.uni-bamberg.de/teaching/ss06/hs_svm/slides/SVM_and_Kernels.pdf