బ్యాక్ప్రాపగేషన్ మనకు గ్రేడియంట్లు ఇస్తుంది - కానీ దేని గ్రేడియంట్లు? బ్యాక్ప్రాప్ నడవడానికి ముందు, మోడల్ ఎంత తప్పుగా ఉందో క్యాప్చర్ చేసే ఒక సంఖ్య మనకు కావాలి. ఆ సంఖ్య లాస్ ఫంక్షన్ నుండి వస్తుంది. గ్రేడియంట్లు వచ్చిన తర్వాత, వెయిట్లను ఎలా అప్డేట్ చేయాలో ఆప్టిమైజర్ నిర్ణయిస్తుంది. కలిసి, అవి లెర్నింగ్ లూప్ను ఏర్పరుస్తాయి.
లాస్ ఫంక్షన్ (కాస్ట్ ఫంక్షన్ అని కూడా అంటారు) మోడల్ ప్రిడిక్షన్ మరియు నిజమైన సమాధానాన్ని తీసుకొని, "తప్పుతనాన్ని" కొలిచే సంఖ్యను రిటర్న్ చేస్తుంది. ట్రైనింగ్ లక్ష్యం ఈ సంఖ్యను కనిష్టం చేయడం.
దీన్ని గోల్ఫ్లో స్కోర్లా ఆలోచించండి - తక్కువ ఉంటే మంచిది. లాస్ 0 అంటే ఖచ్చితమైన ప్రిడిక్షన్.
నిరంతర విలువలను (ఇంటి ధరలు, ఉష్ణోగ్రత) అంచనా వేసేటప్పుడు, మనం Mean Squared Error (MSE) ఉపయోగిస్తాము:
MSE = (1/n) × Σ(predicted - actual)²
స్క్వేరింగ్ రెండు పనులు చేస్తుంది: అన్ని ఎర్రర్లను పాజిటివ్గా చేస్తుంది, మరియు పెద్ద ఎర్రర్లను అసమానంగా శిక్షిస్తుంది. ఇంటి ధర £100k తప్పుగా అంచనా వేస్తే, స్క్వేర్డ్ ఎర్రర్ £10k తప్పు కంటే 100× ఎక్కువ.
MSE 1795లో Carl Friedrich Gauss దగ్గర నుండి వచ్చింది - న్యూరల్ నెట్వర్క్ల కంటే రెండు శతాబ్దాలకు పైగా ముందు. Ceres గ్రహశకలం కక్ష్యను ట్రాక్ చేయడానికి ఆయన దీన్ని ఉపయోగించారు.
కేటగిరీలను అంచనా వేసేటప్పుడు (స్పామ్ లేదా కాదు, పిల్లి vs కుక్క), మనం cross-entropy loss ఉపయోగిస్తాము. మోడల్ అంచనా వేసిన ప్రాబబిలిటీలు నిజమైన లేబుల్ల నుండి ఎంత దూరంలో ఉన్నాయో ఇది కొలుస్తుంది.
సరైన సమాధానం "పిల్లి" అయి, మోడల్ 99% పిల్లి అని చెబితే, లాస్ చాలా తక్కువ. 10% పిల్లి అని చెబితే, లాస్ భారీగా ఉంటుంది. Cross-entropy కు ఉపయోగకరమైన లక్షణం ఉంది: మోడల్ నమ్మకంగా తప్పు అయినప్పుడు ఇది అపరిమితంగా అసంతృప్తి చెందుతుంది, తప్పును సరిచేయడానికి బలమైన గ్రేడియంట్ను సృష్టిస్తుంది.
Binary cross-entropy రెండు-క్లాస్ సమస్యల కోసం. Categorical cross-entropy ప్రాబబిలిటీ డిస్ట్రిబ్యూషన్లను పోల్చడం ద్వారా బహుళ క్లాసులను హ్యాండిల్ చేస్తుంది.
క్లాసిఫికేషన్ టాస్క్లకు MSE ఎందుకు తక్కువ సరైన ఎంపిక?
Sign in to join the discussion
లాస్ ఫంక్షన్ నిర్వచించిన తర్వాత, లాస్ ల్యాండ్స్కేప్ ను విజువలైజ్ చేయవచ్చు - ప్రతి బిందువు వెయిట్ల సమితిని సూచించే ఉపరితలం, ఎత్తు లాస్. ట్రైనింగ్ అంటే అతి తక్కువ లోయను కనుగొనడం.
గ్రేడియంట్ డిసెంట్ మనల్ని అక్కడికి చేర్చే అల్గారిథం:
ప్రతి అడుగు పరిమాణాన్ని లెర్నింగ్ రేట్ నియంత్రిస్తుంది - డీప్ లెర్నింగ్లో అత్యంత ముఖ్యమైన హైపర్పారామీటర్.
పొగమంచు నిండిన పర్వతంపై నుండి నడిచి దిగుతున్నారని ఊహించుకోండి, మీ కాళ్ళ కింద వాలు మాత్రమే తెలుస్తుంది. మీరు దిగువకు అడుగు వేస్తారు, కానీ మొత్తం ల్యాండ్స్కేప్ కనిపించదు. అతి లోతైన లోయ కాని చిన్న గుంటలో ఎలా ఇరుక్కోవచ్చు? ఇది లోకల్ మినిమమ్ సమస్య.
ప్రతి అప్డేట్ కు ముందు మొత్తం డేటాసెట్ ఉపయోగించి గ్రేడియంట్ లెక్కిస్తుంది. ఖచ్చితమైనది కానీ పెద్ద డేటాసెట్లకు చాలా నెమ్మదిగా ఉంటుంది - ఒక్క స్పెల్లింగ్ తప్పు సరిచేయడానికి ముందు లైబ్రరీలోని ప్రతి పుస్తకాన్ని మళ్ళీ చదవడం లాంటిది.
ప్రతి ఒక్క ఉదాహరణ తర్వాత వెయిట్లను అప్డేట్ చేస్తుంది. వేగమైనది కానీ శబ్దంతో నిండినది - మార్గం విపరీతంగా జిగ్జాగ్ అవుతుంది. ఈ శబ్దం నిజానికి లోకల్ మినిమా నుండి తప్పించుకోవడానికి సహాయపడుతుంది, ఇది ఆశ్చర్యకరమైన ప్రయోజనం.
ఆచరణాత్మక మధ్యస్థం. చిన్న బ్యాచ్ (సాధారణంగా 32–512 ఉదాహరణలు) మీద గ్రేడియంట్లను లెక్కిస్తుంది. వేగం మరియు స్థిరత్వం మధ్య సమతుల్యం చేస్తుంది, వాస్తవంగా అన్ని ఆధునిక ట్రైనింగ్ ఇదే ఉపయోగిస్తుంది.
సాదా SGD కు పరిమితులు ఉన్నాయి. పరిశోధకులు నడుస్తున్నప్పుడు అనుకూలపడే తెలివైన ఆప్టిమైజర్లను అభివృద్ధి చేశారు.
భారీ బంతి కొండ దిగువకు రోల్ అవడం లాగా, మొమెంటమ్ స్థిరమైన దిశల్లో వేగాన్ని సంగ్రహిస్తుంది మరియు ఆస్సిలేషన్లను తగ్గిస్తుంది. గ్రేడియంట్ ఒకే దిశలో ఉంటూ ఉంటే, మొమెంటమ్ వేగం పెంచుతుంది. దిశ మారుతూ ఉంటే, మొమెంటమ్ దాన్ని సాఫీగా చేస్తుంది.
లెర్నింగ్ రేట్ను ప్రతి పారామీటర్కు అనుకూలీకరిస్తుంది. తరచుగా అప్డేట్ అయ్యే వెయిట్లకు చిన్న అడుగులు; అరుదుగా అప్డేట్ అయ్యే వెయిట్లకు పెద్ద అడుగులు. స్పార్స్ డేటా (టెక్స్ట్ వంటివి) కోసం గొప్పది, కానీ కాలక్రమేణా లెర్నింగ్ రేట్ సున్నాకు కుదించబడవచ్చు.
మొమెంటమ్ మరియు ప్రతి-పారామీటర్ అడాప్టివ్ రేట్లను కలుపుతుంది. ఇది గ్రేడియంట్ (ఫస్ట్ మూమెంట్) మరియు స్క్వేర్డ్ గ్రేడియంట్ (సెకండ్ మూమెంట్) రెండింటి రన్నింగ్ యావరేజ్లను నిర్వహిస్తుంది. చాలా మంది ప్రాక్టీషనర్ల కోసం Adam నేడు డిఫాల్ట్ ఎంపిక.
బేసిక్ SGD కంటే Adam కు ఏ ప్రయోజనం ఉంది?
లెర్నింగ్ రేట్ను స్థిరంగా ఉంచడం కంటే, ఆధునిక ట్రైనింగ్ తరచుగా దాన్ని షెడ్యూల్ చేస్తుంది:
అంతర్ దృష్టి: విస్తృతంగా అన్వేషించడానికి ముందు పెద్ద అడుగులు వేయండి, తర్వాత ఫైన్-ట్యూన్ చేయడానికి చిన్న అడుగులు.
కొన్నిసార్లు గ్రేడియంట్లు విస్ఫోటనం చెందుతాయి (బ్యాక్ప్రాపగేషన్ పాఠంలో చూసినట్లు). గ్రేడియంట్ క్లిప్పింగ్ అప్డేట్ స్టెప్కు ముందు గ్రేడియంట్ పరిమాణాన్ని పరిమితం చేస్తుంది. గ్రేడియంట్ ఒక థ్రెషోల్డ్ను మించితే, ఇది దానిని అనుపాతంగా తగ్గిస్తుంది. RNNలు మరియు Transformers ట్రైన్ చేసేటప్పుడు ఇది ప్రామాణిక అభ్యాసం.
గ్రేడియంట్ క్లిప్పింగ్ దేన్ని నిరోధిస్తుంది?
Adam ఆప్టిమైజర్ పేపర్ (Kingma & Ba, 2014) 150,000 కంటే ఎక్కువ సైటేషన్లు కలిగి ఉంది, ఇది మొత్తం కంప్యూటర్ సైన్స్లో అత్యంత ఎక్కువగా సైట్ చేయబడిన పేపర్లలో ఒకటి.
మీరు మోడల్ను ట్రైన్ చేస్తూ, కొన్ని ఎపాక్ల తర్వాత లాస్ తగ్గడం ఆగిపోతే, మీరు ముందుగా ఏమి తనిఖీ చేస్తారు - లెర్నింగ్ రేట్, లాస్ ఫంక్షన్, లేదా డేటా? ఎందుకు?