±à¼ÍƼö: |
ÎÄÕÂÀ´Ô´ÓÚ51cto£¬Ïêϸ½²Êö¹ýÄâºÏµÄ¸ÅÄîºÍÓü¸ÖÖÓÃÓÚ½â¾ö¹ýÄâºÏÎÊÌâµÄÕýÔò»¯·½·¨£¬²¢¸¨ÒÔPython°¸Àý½²½â¡£ |
|
ʲôÊÇÕýÔò»¯
ÔÚÉîÈë̽ÌÖÕâ¸ö»°Ìâ֮ǰ£¬Çë¿´Ò»ÏÂÕâÕÅͼƬ£º

ÿ´Î̸¼°¹ýÄâºÏ£¬ÕâÕÅͼƬ¾Í»áʱ²»Ê±µØ±»À³öÀ´¡°±Þʬ¡±¡£ÈçÉÏͼËùʾ£¬¸Õ¿ªÊ¼µÄʱºò£¬Ä£ÐÍ»¹²»ÄܺܺõØÄâºÏËùÓÐÊý¾Ýµã£¬¼´ÎÞ·¨·´Ó³Êý¾Ý·Ö²¼£¬ÕâʱËüÊÇÇ·ÄâºÏµÄ¡£¶øËæ×ÅѵÁ·´ÎÊýÔö¶à£¬ËüÂýÂýÕÒ³öÁËÊý¾ÝµÄģʽ£¬ÄÜÔÚ¾¡¿ÉÄÜ¶àµØÄâºÏÊý¾ÝµãµÄͬʱ·´Ó³Êý¾ÝÇ÷ÊÆ£¬ÕâʱËüÊÇÒ»¸öÐÔÄܽϺõÄÄ£ÐÍ¡£ÔÚÕâ»ù´¡ÉÏ£¬Èç¹ûÎÒÃǼÌÐøÑµÁ·£¬ÄÇÄ£ÐÍ¾Í»á½øÒ»²½ÍÚ¾òѵÁ·Êý¾ÝÖеÄϸ½ÚºÍÔëÉù£¬ÎªÁËÄâºÏËùÓÐÊý¾Ýµã¡°²»ÔñÊֶΡ±£¬ÕâʱËü¾Í¹ýÄâºÏÁË¡£
»»¾ä»°Ëµ£¬´Ó×óÍùÓÒ¿´£¬Ä£Ð͵ĸ´ÔÓ¶ÈÖð½¥Ìá¸ß£¬ÔÚѵÁ·¼¯ÉϵÄÔ¤²â´íÎóÖð½¥¼õÉÙ£¬µ«ËüÔÚ²âÊÔ¼¯ÉϵĴíÎóÂÊÈ´³ÊÏÖÒ»ÌõÏÂ͹ÇúÏß¡£

À´Ô´£ºSlideplayer
Èç¹ûÄã֮ǰ¹¹½¨¹ýÉñ¾ÍøÂ磬Ïë±ØÄãÒѾµÃµ½ÁËÕâ¸ö½Ìѵ£ºÍøÂçÓжิÔÓ£¬¹ýÄâºÏ¾ÍÓжàÈÝÒס£ÎªÁËʹģÐÍÔÚÄâºÏÊý¾ÝµÄͬʱ¸ü¾ßÍÆ¹ãÐÔ£¬ÎÒÃÇ¿ÉÒÔÓÃÕýÔò»¯¶ÔѧϰËã·¨×öһЩϸ΢Ð޸쬴ӶøÌá¸ßÄ£Ð͵ÄÕûÌåÐÔÄÜ¡£
ÕýÔò»¯ºÍ¹ýÄâºÏ
¹ýÄâºÏºÍÉñ¾ÍøÂçµÄÉè¼ÆÃÜÇÐÏà¹Ø£¬Òò´ËÎÒÃÇÏÈÀ´¿´Ò»¸ö¹ýÄâºÏµÄÉñ¾ÍøÂ磺

Èç¹ûÄã֮ǰÔĶÁ¹ýÎÒÃǵĴÓÁãѧϰ£º´ÓPythonºÍRÀí½âºÍ±àÂëÉñ¾ÍøÂ磨ÍêÕû°æ£©£¬»ò¶ÔÉñ¾ÍøÂçÕýÔò»¯¸ÅÄîÓгõ²½Á˽⣬ÄãÓ¦¸ÃÖªµÀÉÏͼÖдø¼ýÍ·µÄÏßʵ¼ÊÉ϶¼´øÓÐÈ¨ÖØ£¬¶øÉñ¾ÔªÊÇ´¢´æÊäÈëÊä³öµÄµØ·½¡£ÎªÁ˹«Æ½Æð¼û£¬Ò²¾ÍÊÇΪÁË·ÀÖ¹ÍøÂçÔÚÓÅ»¯·½ÏòÉϹýÓÚ·Å·É×ÔÎÒ£¬ÕâÀïÎÒÃÇ»¹ÐèÒª¼ÓÈëÒ»¸öÏÈÑ顪¡ªÕýÔò»¯³Í·£ÏÓÃÀ´³Í·£Éñ¾ÔªµÄ¼ÓȨ¾ØÕó¡£
Èç¹ûÎÒÃÇÉèµÄÕýÔò»¯ÏµÊýºÜ´ó£¬µ¼ÖÂһЩ¼ÓȨ¾ØÕóµÄÖµ¼¸ºõΪÁ㡪¡ªÄÇ×îºóÎÒÃǵõ½µÄÊÇÒ»¸ö¸ü¼òµ¥µÄÏßÐÔÍøÂ磬ËüºÜ¿ÉÄÜÊÇÇ·ÄâºÏµÄ¡£

Òò´ËÕâ¸öϵÊý²¢²»ÊÇÔ½´óÔ½ºÃ¡£ÎÒÃÇÐèÒªÓÅ»¯Õâ¸öÕýÔò»¯ÏµÊýµÄÖµ£¬ÒÔ±ã»ñµÃÒ»¸öÁ¼ºÃÄâºÏµÄÄ£ÐÍ£¬ÈçÏÂͼËùʾ¡£

Éî¶ÈѧϰÖеÄÕýÔò»¯
L2ºÍL1ÕýÔò»¯
L1ºÍL2ÊÇ×î³£¼ûµÄÕýÔò»¯·½·¨£¬ËüÃǵÄ×ö·¨ÊÇÔÚ´ú¼Ûº¯ÊýºóÃæÔÙ¼ÓÉÏÒ»¸öÕýÔò»¯Ïî¡£
´ú¼Ûº¯Êý = Ëðʧ£¨Èç¶þÔª½»²æìØ£© + ÕýÔò»¯Ïî
ÓÉÓÚÌí¼ÓÁËÕâ¸öÕýÔò»¯Ï¸÷Ȩֵ±»¼õСÁË£¬»»¾ä»°Ëµ£¬¾ÍÊÇÉñ¾ÍøÂçµÄ¸´ÔӶȽµµÍÁË£¬½áºÏ¡°ÍøÂçÓжิÔÓ£¬¹ýÄâºÏ¾ÍÓжàÈÝÒס±µÄ˼Ï룬´ÓÀíÂÛÉÏÀ´Ëµ£¬ÕâÑù×öµÈÓÚÖ±½Ó·ÀÖ¹¹ýÄâºÏ£¨°Â¿¨Ä·Ìêµ¶·¨Ôò£©¡£
µ±È»£¬Õâ¸öÕýÔò»¯ÏîÔÚL1ºÍL2ÀïÊDz»Ò»ÑùµÄ¡£
¶ÔÓÚL2£¬ËüµÄ´ú¼Ûº¯Êý¿É±íʾΪ£º

ÕâÀï¦Ë¾ÍÊÇÕýÔò»¯ÏµÊý£¬ËüÊÇÒ»¸ö³¬²ÎÊý£¬¿ÉÒÔ±»ÓÅ»¯ÒÔ»ñµÃ¸üºÃµÄ½á¹û¡£¶ÔÉÏʽÇ󵼺ó£¬È¨ÖØwǰµÄϵÊýΪ1?¦Ç¦Ë/m£¬ÒòΪ¦Ç¡¢¦Ë¡¢m¶¼ÊÇÕýÊý£¬1?¦Ç¦Ë/mСÓÚ1£¬wµÄÇ÷ÊÆÊǼõС£¬ËùÒÔL2ÕýÔò»¯Ò²±»³ÆÎªÈ¨ÖØË¥¼õ¡£
¶ø¶ÔÓÚL1£¬ËüµÄ´ú¼Ûº¯Êý¿É±íʾΪ£º

ºÍL2²»Í¬£¬ÕâÀïÎÒÃdzͷ£µÄÊÇÈ¨ÖØwµÄ¾ø¶ÔÖµ¡£¶ÔÉÏʽÇ󵼺ó£¬ÎÒÃǵõ½µÄµÈʽÀï°üº¬Ò»Ïî-sgn(w)£¬ÕâÒâζ×ŵ±wÊÇÕýÊýʱ£¬w¼õСÇ÷ÏòÓÚ0£»µ±wÊǸºÊýʱ£¬wÔö´óÇ÷ÏòÓÚ0¡£ËùÒÔL1µÄ˼·¾ÍÊǰÑÈ¨ÖØÍù0¿¿£¬´Ó¶ø½µµÍÍøÂ縴ÔÓ¶È¡£
Òò´Ëµ±ÎÒÃÇÏëҪѹËõÄ£ÐÍʱ£¬L1µÄЧ¹û»áºÜºÃ£¬µ«Èç¹ûÖ»ÊǼòµ¥·ÀÖ¹¹ýÄâºÏ£¬Ò»°ãÇé¿öÏ»¹ÊÇ»áÓÃL2¡£ÔÚKerasÖУ¬ÎÒÃÇ¿ÉÒÔÖ±½Óµ÷ÓÃregularizersÔÚÈÎÒâ²ã×öÕýÔò»¯¡£
Àý£ºÔÚÈ«Á¬½Ó²ãʹÓÃL2ÕýÔò»¯µÄ´úÂ룺
from keras import
regularizersmodel .add (Dense ( 64 , input_dim
= 64, kernel _ regularizer = regularizers .l2
(0.01) |
×¢£ºÕâÀïµÄ0.01ÊÇÕýÔò»¯ÏµÊý¦ËµÄÖµ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÍø¸ñËÑË÷¶ÔËü×ö½øÒ»²½ÓÅ»¯¡£
Dropout
Dropout³ÆµÃÉÏÊÇÕýÔò»¯·½·¨ÖÐ×îÓÐȤµÄÒ»ÖÖ£¬ËüµÄЧ¹ûÒ²ºÜºÃ£¬ËùÒÔÊÇÉî¶ÈѧϰÁìÓò³£Óõķ½·¨Ö®Ò»¡£ÎªÁ˸üºÃµØ½âÊÍËü£¬ÎÒÃÇÏȼÙÉèÎÒÃǵÄÉñ¾ÍøÂ糤ÕâÑù£º

ÄÇôDropoutµ½µ×dropÁËʲô£¿ÎÒÃÇÀ´¿´ÏÂÃæÕâ·ùͼ£ºÔÚÿ´Îµü´úÖУ¬Ëü»áËæ»úÑ¡ÔñһЩÉñ¾Ôª£¬²¢°ÑËüÃÇ¡°ÂúÃųն¡±¡ª¡ª°ÑÉñ¾ÔªÁ¬Í¬ÏàÓ¦µÄÊäÈëÊä³öÒ»²¢¡°É¾³ý¡±¡£

±ÈÆðL1ºÍL2¶Ô´ú¼Ûº¯ÊýµÄÐ޸ģ¬Dropout¸üÏñÊÇѵÁ·ÍøÂçµÄÒ»ÖÖ¼¼ÇÉ¡£Ëæ×ÅѵÁ·½øÐУ¬Éñ¾ÍøÂçÔÚÿһ´Îµü´úÖж¼»áºöÊÓһЩ£¨³¬²ÎÊý£¬³£¹æÊÇÒ»°ë£©Òþ²Ø²ã/ÊäÈë²ãµÄÉñ¾Ôª£¬Õâ¾Íµ¼Ö²»Í¬µÄÊä³ö£¬ÆäÖÐÓеÄÊÇÕýÈ·µÄ£¬ÓеÄÊÇ´íÎóµÄ¡£
Õâ¸ö×ö·¨ÓеãÀàËÆ¼¯³Éѧϰ£¬ËüÄܸü¶àµØ²¶»ñ¸ü¶àµÄËæ»úÐÔ¡£¼¯³Éѧϰ·ÖÀàÆ÷ͨ³£±Èµ¥Ò»·ÖÀàÆ÷Ч¹û¸üºÃ£¬Í¬ÑùµÄ£¬ÒòÎªÍøÂçÒªÄâºÏÊý¾Ý·Ö²¼£¬ËùÒÔDropoutºóÄ£Ðʹ󲿷ֵÄÊä³ö¿Ï¶¨ÊÇÕýÈ·µÄ£¬¶øÔëÉùÊý¾ÝÓ°ÏìֻռһС²¿·Ö£¬²»»á¶Ô×îÖÕ½á¹ûÔì³ÉÌ«´óÓ°Ïì¡£

ÓÉÓÚÕâЩÒòËØ£¬µ±ÎÒÃǵÄÉñ¾ÍøÂç½Ï´óÇÒËæ»úÐÔ¸ü¶àʱ£¬ÎÒÃÇÒ»°ãÓÃDropout¡£
ÔÚKerasÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃkeras core layerʵÏÖdropout¡£ÏÂÃæÊÇËüµÄPython´úÂ룺
from keras.layers.core
import Dropoutmodel = Sequential ([Dense (output_
dim= hidden1_ num_ units, input_ dim= input_ num_
units, activation ='relu' ),Dropout (0.25), Dense
(output_ dim= output _ num_ units , input _dim=
hidden5_ num_ units, activation ='softmax'),])
|
×¢£ºÕâÀïÎÒÃǰÑ0.25ÉèΪDropoutµÄ³¬²ÎÊý£¨Ã¿´Î¡°É¾¡±1/4£©£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÍø¸ñËÑË÷¶ÔËü×ö½øÒ»²½ÓÅ»¯¡£
Êý¾ÝÔöÇ¿
¼ÈÈ»¹ýÄâºÏÊÇÄ£ÐͶÔÊý¾Ý¼¯ÖÐÔëÉùºÍϸ½ÚµÄ¹ý¶È²¶×½£¬ÄÇô·ÀÖ¹¹ýÄâºÏ×î¼òµ¥µÄ·½·¨¾ÍÊÇÔö¼ÓѵÁ·Êý¾ÝÁ¿¡£µ«ÊÇÔÚ»úÆ÷ѧϰÈÎÎñÖУ¬Ôö¼ÓÊý¾ÝÁ¿²¢²»ÊÇÄÇôÈÝÒ×ʵÏֵģ¬ÒòΪËѼ¯¡¢±ê¼ÇÊý¾ÝµÄ³É±¾Ì«¸ßÁË¡£
¼ÙÉèÎÒÃÇÕýÔÚ´¦ÀíµÄһЩÊÖдÊý×ÖͼÏñ£¬ÎªÁËÀ©´óѵÁ·¼¯£¬ÎÒÃÇÄܲÉÈ¡µÄ·½·¨ÓСª¡ªÐýת¡¢·×ª¡¢ËõС/·Å´ó¡¢Î»ÒÆ¡¢½ØÈ¡¡¢Ìí¼ÓËæ»úÔëÉù¡¢Ìí¼Ó»û±äµÈ¡£ÏÂÃæÊÇһЩ´¦Àí¹ýµÄͼ£º
ÕâЩ·½Ê½¾ÍÊÇÊý¾ÝÔöÇ¿¡£´ÓijÖÖÒâÒåÉÏÀ´Ëµ£¬»úÆ÷ѧϰģÐ͵ÄÐÔÄÜÊÇ¿¿Êý¾ÝÁ¿¶Ñ³öÀ´µÄ£¬Òò´ËÊý¾ÝÔöÇ¿¿ÉÒÔΪģÐÍÔ¤²âµÄ׼ȷÂÊÌṩ¾Þ´óÌáÉý¡£ÓÐʱΪÁ˸ĽøÄ£ÐÍ£¬ÕâÒ²ÊÇÒ»ÖÖ±ØÓõļ¼ÇÉ¡£
ÔÚKerasÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃImageDataGeneratorÖ´ÐÐËùÓÐÕâЩת»»£¬ËüÌṩÁËÒ»´ó¶Ñ¿ÉÒÔÓÃÀ´Ô¤´¦ÀíѵÁ·Êý¾ÝµÄ²ÎÊýÁÐ±í¡£ÒÔÏÂÊÇʵÏÖËüµÄʾÀý´úÂ룺
from keras.preprocessing.image
import ImageData Generatordatagen = ImageDataGenerator
( horizontal flip = True) datagen.fit(train) |
ÔçÍ£·¨
ÕâÊÇÒ»ÖÖ½»²æÑéÖ¤²ßÂÔ¡£ÑµÁ·Ç°£¬ÎÒÃÇ´ÓѵÁ·¼¯Öгé³öÒ»²¿·Ö×÷ΪÑéÖ¤¼¯£¬Ëæ×ÅѵÁ·µÄ½øÐУ¬µ±Ä£ÐÍÔÚÑéÖ¤¼¯ÉϵÄÐÔÄÜÔ½À´Ô½²îʱ£¬ÎÒÃÇÁ¢¼´ÊÖ¶¯Í£Ö¹ÑµÁ·£¬ÕâÖÖÌáǰֹͣµÄ·½·¨¾ÍÊÇÔçÍ£·¨¡£

ÔÚÉÏͼÖУ¬ÎÒÃÇÓ¦¸ÃÔÚÐéÏßλÖþÍֹͣѵÁ·£¬ÒòΪÔÚÄÇÖ®ºó£¬Ä£Ð;ͿªÊ¼¹ýÄâºÏÁË¡£
ÔÚKerasÖУ¬ÎÒÃÇ¿ÉÒÔµ÷ÓÃcallbacksº¯ÊýÌáǰֹͣѵÁ·£¬ÒÔÏÂÊÇËüµÄʾÀý´úÂ룺
from keras.callbacks
import EarlyStopping EarlyStopping (monitor ='val_err',
patience=5) |
ÔÚÕâÀmonitorÖ¸µÄÊÇÐèÒª¼à¿ØµÄepochÊýÁ¿£»val_err±íʾÑéÖ¤´íÎó£¨validation
error£©¡£
patience±íʾ¾¹ý5¸öÁ¬ÐøepochºóÄ£ÐÍÔ¤²â½á¹ûûÓнøÒ»²½¸ÄÉÆ¡£½áºÏÉÏͼ½øÐÐÀí½â£¬¾ÍÊÇÔÚÐéÏߺó£¬Ä£ÐÍÿѵÁ·Ò»¸öepoch¾Í»áÓиü¸ßµÄÑéÖ¤´íÎ󣨸üµÍµÄÑé֤׼ȷÂÊ£©£¬Òò´ËÁ¬ÐøÑµÁ·5¸öepochºó£¬Ëü»áÌáǰֹͣѵÁ·¡£ |