ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ (AI) ఇటీవలి సంవత్సరాలలో గణనీయమైన ప్రజాదరణ పొందింది.
మీరు సాధారణంగా సాఫ్ట్వేర్ ఇంజనీర్, కంప్యూటర్ సైంటిస్ట్ లేదా డేటా సైన్స్ ఔత్సాహికులైతే, ఈ ఫీల్డ్ ద్వారా అందించబడిన ఇమేజ్ ప్రాసెసింగ్, ప్యాటర్న్ రికగ్నిషన్ మరియు ఆబ్జెక్ట్ డిటెక్షన్ యొక్క అద్భుతమైన అప్లికేషన్ల పట్ల మీరు బహుశా ఆసక్తిని కలిగి ఉంటారు.
మీరు బహుశా వినే AI యొక్క అతి ముఖ్యమైన సబ్ఫీల్డ్ డీప్ లెర్నింగ్. ఈ ఫీల్డ్ శక్తివంతమైన అల్గారిథమ్లపై దృష్టి సారిస్తుంది (కంప్యూటర్ ప్రోగ్రామ్ సూచనలు) మానవ మెదడు పనితీరు ఆధారంగా రూపొందించబడింది నరాల నెట్వర్క్.
ఈ కథనంలో, మేము న్యూరల్ నెట్వర్క్ల భావనను మరియు ఈ మోడల్లను ఎలా నిర్మించాలి, కంపైల్ చేయాలి, అమర్చాలి మరియు మూల్యాంకనం చేయాలి పైథాన్.
నరాల నెట్వర్క్
న్యూరల్ నెట్వర్క్లు, లేదా NNలు, మానవ మెదడు యొక్క జీవసంబంధ కార్యకలాపాల తర్వాత రూపొందించబడిన అల్గారిథమ్ల శ్రేణి. న్యూరల్ నెట్వర్క్లు నోడ్లను కలిగి ఉంటాయి, వీటిని న్యూరాన్లు అని కూడా పిలుస్తారు.
నిలువు నోడ్ల సేకరణను లేయర్లు అంటారు. మోడల్లో ఒక ఇన్పుట్, ఒక అవుట్పుట్ మరియు అనేక దాచిన లేయర్లు ఉంటాయి. ప్రతి పొర నోడ్లను కలిగి ఉంటుంది, వీటిని న్యూరాన్లు అని కూడా పిలుస్తారు, ఇక్కడ గణనలు జరుగుతాయి.
కింది రేఖాచిత్రంలో, సర్కిల్లు నోడ్లను సూచిస్తాయి మరియు నోడ్ల నిలువు సేకరణ పొరలను సూచిస్తాయి. ఈ నమూనాలో మూడు పొరలు ఉన్నాయి.
ఒక పొర యొక్క నోడ్లు దిగువన చూసినట్లుగా ట్రాన్స్మిషన్ లైన్ల ద్వారా తదుపరి పొరకు అనుసంధానించబడి ఉంటాయి.
మా డేటాసెట్లో లేబుల్ చేయబడిన డేటా ఉంటుంది. ప్రతి డేటా ఎంటిటీకి ఒక నిర్దిష్ట పేరు విలువ కేటాయించబడిందని దీని అర్థం.
కాబట్టి జంతు వర్గీకరణ డేటాసెట్ కోసం మేము మా డేటాగా పిల్లులు మరియు కుక్కల చిత్రాలను కలిగి ఉంటాము, మా లేబుల్లుగా 'పిల్లి' మరియు 'కుక్క' ఉంటాయి.
లేబుల్లను అర్థం చేసుకోవడానికి మా నమూనా కోసం వాటిని సంఖ్యా విలువలకు మార్చాల్సిన అవసరం ఉందని గమనించడం ముఖ్యం, కాబట్టి మన జంతు లేబుల్లు పిల్లికి '0' మరియు కుక్కకు '1'గా మారతాయి. డేటా మరియు లేబుల్లు రెండూ మోడల్ ద్వారా పంపబడతాయి.
శిక్షణ
డేటా ఒక్కోసారి మోడల్కు అందించబడుతుంది. ఈ డేటా భాగాలుగా విభజించబడింది మరియు మోడల్ యొక్క ప్రతి నోడ్ ద్వారా పంపబడుతుంది. నోడ్లు ఈ భాగాలపై గణిత కార్యకలాపాలను నిర్వహిస్తాయి.
మీరు ఈ ట్యుటోరియల్ కోసం గణిత విధులు లేదా గణనలను తెలుసుకోవలసిన అవసరం లేదు, అయితే ఈ నమూనాలు ఎలా పని చేస్తాయనే సాధారణ ఆలోచనను కలిగి ఉండటం ముఖ్యం. ఒక లేయర్లో గణనల శ్రేణి తర్వాత, డేటా తదుపరి లేయర్కి పంపబడుతుంది.
పూర్తయిన తర్వాత, మా మోడల్ అవుట్పుట్ లేయర్ వద్ద డేటా లేబుల్ను అంచనా వేస్తుంది (ఉదాహరణకు, జంతు వర్గీకరణ సమస్యలో మనం పిల్లికి '0' ప్రిడిక్షన్ వస్తుంది).
మోడల్ ఈ అంచనా విలువను వాస్తవ లేబుల్ విలువతో పోల్చడానికి కొనసాగుతుంది.
విలువలు సరిపోలితే, మా మోడల్ తదుపరి ఇన్పుట్ను తీసుకుంటుంది, అయితే విలువలు భిన్నంగా ఉంటే మోడల్ రెండు విలువల మధ్య వ్యత్యాసాన్ని గణిస్తుంది, నష్టం అని పిలుస్తారు మరియు తదుపరిసారి సరిపోలే లేబుల్లను ఉత్పత్తి చేయడానికి నోడ్ లెక్కలను సర్దుబాటు చేస్తుంది.
డీప్ లెర్నింగ్ ఫ్రేమ్వర్క్లు
కోడ్లో న్యూరల్ నెట్వర్క్లను రూపొందించడానికి, మేము దిగుమతి చేసుకోవాలి డీప్ లెర్నింగ్ ఫ్రేమ్వర్క్లు మా ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్ (IDE)ని ఉపయోగించి లైబ్రరీలు అంటారు.
ఈ ఫ్రేమ్వర్క్లు ఈ ట్యుటోరియల్లో మాకు సహాయపడే ముందే వ్రాసిన ఫంక్షన్ల సమాహారం. మేము మా మోడల్ను రూపొందించడానికి కేరాస్ ఫ్రేమ్వర్క్ని ఉపయోగిస్తాము.
కెరాస్ అనేది పైథాన్ లైబ్రరీ, ఇది లోతైన అభ్యాసం మరియు కృత్రిమ మేధస్సు బ్యాకెండ్ అని పిలువబడుతుంది టెన్సార్ఫ్లో NNలను సులభంగా సాధారణ సీక్వెన్షియల్ మోడల్ల రూపంలో సృష్టించడానికి.
కెరాస్ దాని స్వంత ముందుగా ఉన్న మోడల్లతో కూడా వస్తుంది, వాటిని కూడా ఉపయోగించవచ్చు. ఈ ట్యుటోరియల్ కోసం, మేము కేరాస్ని ఉపయోగించి మా స్వంత మోడల్ను రూపొందిస్తాము.
మీరు ఈ డీప్ లెర్నింగ్ ఫ్రేమ్వర్క్ గురించి మరింత తెలుసుకోవచ్చు కేరాస్ వెబ్సైట్.
న్యూరల్ నెట్వర్క్ను నిర్మించడం (ట్యుటోరియల్)
పైథాన్ని ఉపయోగించి న్యూరల్ నెట్వర్క్ని నిర్మించడానికి ముందుకు వెళ్దాం.
సమస్యల నివేదిక
న్యూరల్ నెట్వర్క్లు AI- ఆధారిత సమస్యలకు ఒక రకమైన పరిష్కారం. ఈ ట్యుటోరియల్ కోసం మేము అందుబాటులో ఉన్న Pima ఇండియన్స్ డయాబెటిస్ డేటాను పరిశీలిస్తాము <span style="font-family: Mandali; ">ఇక్కడ క్లిక్ చేయండి .
ICU మెషిన్ లెర్నింగ్ ఈ డేటాసెట్ను కంపైల్ చేసింది మరియు భారతీయ రోగుల వైద్య రికార్డును కలిగి ఉంది. రోగికి 5 సంవత్సరాలలోపు మధుమేహం వస్తుందా లేదా అనేది మా మోడల్ అంచనా వేయాలి.
డేటాసెట్ లోడ్ అవుతోంది
మా డేటాసెట్ అనేది 'diabetes.csv' అని పిలవబడే ఏకైక CSV ఫైల్, దీనిని Microsoft Excelని ఉపయోగించి సులభంగా మార్చవచ్చు.
మా మోడల్ని సృష్టించే ముందు, మేము మా డేటాసెట్ను దిగుమతి చేసుకోవాలి. కింది కోడ్ని ఉపయోగించి మీరు దీన్ని చేయవచ్చు:
పాండాలను pdగా దిగుమతి చేయండి
డేటా = pd.read_csv('diabetes.csv')
x = data.drop(“ఫలితం”)
y = డేటా[“ఫలితం”]
ఇక్కడ మేము ఉపయోగిస్తున్నాము పాండాలు లైబ్రరీ మా CSV ఫైల్ డేటాను మార్చగలిగేలా చేయగలదు, read_csv() అనేది పాండాస్ యొక్క అంతర్నిర్మిత ఫంక్షన్, ఇది మన ఫైల్లోని విలువలను 'డేటా' అనే వేరియబుల్లో నిల్వ చేయడానికి అనుమతిస్తుంది.
వేరియబుల్ x ఫలితం (లేబుల్స్) డేటా లేకుండా మా డేటాసెట్ను కలిగి ఉంది. మేము x కోసం లేబుల్లను తీసివేసే data.drop() ఫంక్షన్తో దీన్ని సాధిస్తాము, అయితే y ఫలితం (లేబుల్) డేటాను మాత్రమే కలిగి ఉంటుంది.
బిల్డింగ్ సీక్వెన్షియల్ మోడల్
దశ 1: లైబ్రరీలను దిగుమతి చేసుకోవడం
ముందుగా, మన మోడల్కు అవసరమైన కొన్ని పారామీటర్లతో పాటుగా మనం TensorFlow మరియు Kerasని దిగుమతి చేసుకోవాలి. కింది కోడ్ దీన్ని చేయడానికి అనుమతిస్తుంది:
టెన్సర్ఫ్లోను tfగా దిగుమతి చేయండి
టెన్సర్ఫ్లో దిగుమతి కెరాస్ నుండి
tensorflow.keras.models నుండి సీక్వెన్షియల్ దిగుమతి
tensorflow.keras.layers నుండి దిగుమతి యాక్టివేషన్, దట్టమైనది
tensorflow.keras.optimizers నుండి Adam దిగుమతి
tensorflow.keras.metrics నుండి కేటగిరీ_క్రాస్సెంట్రోపీ దిగుమతి
మా మోడల్ కోసం మేము దట్టమైన పొరలను దిగుమతి చేస్తున్నాము. ఇవి పూర్తిగా అనుసంధానించబడిన పొరలు; అనగా, ఒక లేయర్లోని ప్రతి నోడ్ తదుపరి లేయర్లోని మరొక నోడ్తో పూర్తిగా కనెక్ట్ చేయబడింది.
మేము కూడా దిగుమతి చేస్తున్నాము క్రియాశీలతను నోడ్లకు పంపబడిన స్కేలింగ్ డేటా కోసం ఫంక్షన్ అవసరం. ఆప్టిమైజర్లు నష్టాన్ని తగ్గించుకోవడానికి కూడా దిగుమతి చేసుకున్నారు.
ఆడమ్ అనేది మా మోడల్ అప్డేట్ నోడ్ లెక్కలను మరింత సమర్థవంతంగా చేసే ప్రఖ్యాత ఆప్టిమైజర్ వర్గీకరణ_క్రాసెంట్రోపీ అంటే మేము ఉపయోగించబోయే లాస్ ఫంక్షన్ రకం (అసలు మరియు అంచనా వేసిన లేబుల్ విలువల మధ్య వ్యత్యాసాన్ని గణిస్తుంది).
దశ 2: మా మోడల్ రూపకల్పన
నేను రూపొందిస్తున్న మోడల్లో ఒక ఇన్పుట్ (16 యూనిట్లతో), ఒకటి దాచబడింది (32 యూనిట్లతో) మరియు ఒక అవుట్పుట్ (2 యూనిట్లతో) లేయర్లు ఉన్నాయి. ఈ సంఖ్యలు స్థిరంగా లేవు మరియు పూర్తిగా ఇచ్చిన సమస్యపై ఆధారపడి ఉంటాయి.
సరైన సంఖ్యలో యూనిట్లు మరియు లేయర్లను సెట్ చేయడం అనేది ప్రాక్టీస్ ద్వారా ఓవర్టైమ్ను మెరుగుపరచగల ప్రక్రియ. యాక్టివేషన్ అనేది నోడ్ ద్వారా పాస్ చేసే ముందు మన డేటాపై మనం చేసే స్కేలింగ్ రకానికి అనుగుణంగా ఉంటుంది.
Relu మరియు Softmax ఈ టాస్క్ కోసం ప్రసిద్ధ యాక్టివేషన్ ఫంక్షన్లు.
మోడల్ = సీక్వెన్షియల్([
దట్టమైన(యూనిట్లు = 16, ఇన్పుట్_షాప్ = (1,), యాక్టివేషన్ = 'రెలు'),
దట్టమైన (యూనిట్లు = 32, యాక్టివేషన్ = 'రెలు'),
దట్టమైన (యూనిట్లు = 2, యాక్టివేషన్ = 'సాఫ్ట్మాక్స్')
])
మోడల్ సారాంశం ఎలా ఉండాలో ఇక్కడ ఉంది:
మోడల్ శిక్షణ
మా మోడల్ రెండు దశల్లో శిక్షణ పొందుతుంది, మొదటిది మోడల్ను కంపైల్ చేయడం (మోడల్ను కలిపి ఉంచడం) మరియు తదుపరిది ఇచ్చిన డేటాసెట్లో మోడల్ను అమర్చడం.
ఇది model.fit() ఫంక్షన్ని అనుసరించి model.compile() ఫంక్షన్ని ఉపయోగించి చేయవచ్చు.
model.compile(ఆప్టిమైజర్ = ఆడమ్(లెర్నింగ్_రేట్ = 0.0001), నష్టం = 'బైనరీ_క్రాసెంట్రోపీ', మెట్రిక్స్ = ['ఖచ్చితత్వం'])
model.fit(x, y, epochs = 30, batch_size = 10)
'ఖచ్చితత్వం' మెట్రిక్ పేర్కొనడం శిక్షణ సమయంలో మా మోడల్ యొక్క ఖచ్చితత్వాన్ని గమనించడానికి అనుమతిస్తుంది.
మా లేబుల్లు 1లు మరియు 0ల రూపంలో ఉన్నందున, వాస్తవ మరియు ఊహించిన లేబుల్ల మధ్య వ్యత్యాసాన్ని గణించడానికి మేము బైనరీ లాస్ ఫంక్షన్ని ఉపయోగిస్తాము.
డేటాసెట్ కూడా 10 (బ్యాచ్_సైజ్) బ్యాచ్లుగా విభజించబడుతోంది మరియు మోడల్ ద్వారా 30 సార్లు (యుగాలు) పంపబడుతుంది. ఇచ్చిన డేటాసెట్ కోసం, x అనేది డేటా మరియు y అనేది డేటాకు సంబంధించిన లేబుల్లు.
అంచనాలను ఉపయోగించి మోడల్ని పరీక్షించడం
మా మోడల్ను మూల్యాంకనం చేయడానికి, మేము ప్రిడిక్ట్() ఫంక్షన్ని ఉపయోగించి పరీక్ష డేటాపై అంచనాలు వేస్తాము.
అంచనాలు = model.predict(x)
మరియు అంతే!
మీరు ఇప్పుడు మంచి అవగాహన కలిగి ఉండాలి డీప్ లెర్నింగ్ అప్లికేషన్, న్యూరల్ నెట్వర్క్లు, అవి సాధారణంగా ఎలా పని చేస్తాయి మరియు పైథాన్ కోడ్లో మోడల్ను ఎలా నిర్మించాలి, శిక్షణ ఇవ్వాలి మరియు పరీక్షించాలి.
ఈ ట్యుటోరియల్ మీ స్వంత డీప్ లెర్నింగ్ మోడల్లను సృష్టించడానికి మరియు అమలు చేయడానికి మీకు కిక్స్టార్ట్ ఇస్తుందని నేను ఆశిస్తున్నాను.
వ్యాసం ఉపయోగకరంగా ఉంటే వ్యాఖ్యలలో మాకు తెలియజేయండి.
సమాధానం ఇవ్వూ