செயற்கை நுண்ணறிவு (AI) சமீபத்திய ஆண்டுகளில் குறிப்பிடத்தக்க அளவு பிரபலமடைந்துள்ளது.
நீங்கள் பொதுவாக மென்பொருள் பொறியாளர், கணினி விஞ்ஞானி அல்லது தரவு அறிவியல் ஆர்வலராக இருந்தால், இந்த துறையில் வழங்கப்படும் பட செயலாக்கம், வடிவ அங்கீகாரம் மற்றும் பொருள் கண்டறிதல் ஆகியவற்றின் அற்புதமான பயன்பாடுகளால் நீங்கள் ஆர்வமாக இருக்கலாம்.
AI இன் மிக முக்கியமான துணைப் புலம் பற்றி நீங்கள் கேள்விப்பட்டிருக்கலாம் ஆழமான கற்றல். இந்த புலம் மனித மூளையின் செயல்பாட்டின் மாதிரியான சக்திவாய்ந்த அல்காரிதம்களில் (கணினி நிரல் வழிமுறைகள்) கவனம் செலுத்துகிறது நரம்பியல் வலையமைப்புகள்.
இந்த கட்டுரையில், நரம்பியல் நெட்வொர்க்குகள் மற்றும் இந்த மாதிரிகளை எவ்வாறு உருவாக்குவது, தொகுப்பது, பொருத்துவது மற்றும் மதிப்பீடு செய்வது பற்றிய கருத்தைப் பார்ப்போம். பைதான்.
நரம்பியல் வலையமைப்புகள்
நரம்பியல் நெட்வொர்க்குகள், அல்லது என்என்கள், மனித மூளையின் உயிரியல் செயல்பாட்டின் படி வடிவமைக்கப்பட்ட அல்காரிதம்களின் தொடர் ஆகும். நியூரல் நெட்வொர்க்குகள் நியூரான்கள் என்றும் அழைக்கப்படும் முனைகளைக் கொண்டிருக்கின்றன.
செங்குத்து முனைகளின் தொகுப்பு அடுக்குகள் எனப்படும். மாதிரியானது ஒரு உள்ளீடு, ஒரு வெளியீடு மற்றும் பல மறைக்கப்பட்ட அடுக்குகளைக் கொண்டுள்ளது. ஒவ்வொரு அடுக்கிலும் கணுக்கள் உள்ளன, அவை நியூரான்கள் என்றும் அழைக்கப்படுகின்றன, அங்கு கணக்கீடுகள் நடைபெறுகின்றன.
பின்வரும் வரைபடத்தில், வட்டங்கள் முனைகளைக் குறிக்கின்றன மற்றும் முனைகளின் செங்குத்து சேகரிப்பு அடுக்குகளைக் குறிக்கிறது. இந்த மாதிரியில் மூன்று அடுக்குகள் உள்ளன.
ஒரு அடுக்கின் கணுக்கள் கீழே காணப்படுவது போல் டிரான்ஸ்மிஷன் லைன்கள் மூலம் அடுத்த லேயருடன் இணைக்கப்பட்டுள்ளன.
எங்கள் தரவுத்தொகுப்பு லேபிளிடப்பட்ட தரவைக் கொண்டுள்ளது. இதன் பொருள் ஒவ்வொரு தரவு நிறுவனத்திற்கும் ஒரு குறிப்பிட்ட பெயர் மதிப்பு ஒதுக்கப்பட்டுள்ளது.
எனவே விலங்கு வகைப்பாடு தரவுத்தொகுப்புக்காக, பூனைகள் மற்றும் நாய்களின் படங்களை எங்கள் தரவுகளாகக் கொண்டிருப்போம், 'பூனை' மற்றும் 'நாய்' ஆகியவை எங்கள் லேபிள்களாக இருக்கும்.
எங்கள் மாதிரியை உணர லேபிள்கள் எண் மதிப்புகளாக மாற்றப்பட வேண்டும் என்பதைக் கவனத்தில் கொள்ள வேண்டும், எனவே எங்கள் விலங்கு லேபிள்கள் பூனைக்கு '0' ஆகவும் நாய்க்கு '1' ஆகவும் மாறும். தரவு மற்றும் லேபிள்கள் இரண்டும் மாதிரி வழியாக அனுப்பப்படுகின்றன.
கற்றல்
ஒரு நேரத்தில் ஒரு நிறுவனத்திற்கு தரவு வழங்கப்படுகிறது. இந்தத் தரவு துகள்களாகப் பிரிக்கப்பட்டு மாதிரியின் ஒவ்வொரு முனை வழியாகவும் அனுப்பப்படுகிறது. கணுக்கள் இந்த துகள்களில் கணித செயல்பாடுகளைச் செய்கின்றன.
இந்த டுடோரியலுக்கான கணித செயல்பாடுகள் அல்லது கணக்கீடுகளை நீங்கள் அறிய வேண்டிய அவசியமில்லை, ஆனால் இந்த மாதிரிகள் எவ்வாறு செயல்படுகின்றன என்பதைப் பற்றிய பொதுவான யோசனையைப் பெறுவது முக்கியம். ஒரு அடுக்கில் தொடர்ச்சியான கணக்கீடுகளுக்குப் பிறகு, தரவு அடுத்த அடுக்கு மற்றும் பலவற்றிற்கு அனுப்பப்படுகிறது.
முடிந்ததும், வெளியீட்டு அடுக்கில் உள்ள தரவு லேபிளை எங்கள் மாதிரி கணிக்கும் (உதாரணமாக, விலங்கு வகைப்பாடு சிக்கலில் பூனைக்கு '0' என்ற கணிப்பு கிடைக்கும்).
இந்த மாதிரியானது இந்த கணிக்கப்பட்ட மதிப்பை உண்மையான லேபிள் மதிப்புடன் ஒப்பிட்டுப் பார்க்கிறது.
மதிப்புகள் பொருந்தினால், எங்கள் மாதிரி அடுத்த உள்ளீட்டை எடுக்கும், ஆனால் மதிப்புகள் வேறுபட்டால், இழப்பு எனப்படும் இரண்டு மதிப்புகளுக்கும் இடையிலான வேறுபாட்டை மாடல் கணக்கிட்டு, அடுத்த முறை பொருந்தும் லேபிள்களை உருவாக்க முனை கணக்கீடுகளை சரிசெய்யும்.
ஆழமான கற்றல் கட்டமைப்புகள்
குறியீட்டில் நியூரல் நெட்வொர்க்குகளை உருவாக்க, நாம் இறக்குமதி செய்ய வேண்டும் ஆழமான கற்றல் கட்டமைப்புகள் எங்கள் ஒருங்கிணைந்த மேம்பாட்டு சூழலை (IDE) பயன்படுத்தி நூலகங்கள் என அறியப்படுகிறது.
இந்த கட்டமைப்புகள் முன் எழுதப்பட்ட செயல்பாடுகளின் தொகுப்பாகும், இது இந்த டுடோரியலில் எங்களுக்கு உதவும். எங்கள் மாதிரியை உருவாக்க, கெராஸ் கட்டமைப்பைப் பயன்படுத்துவோம்.
கெராஸ் என்பது ஒரு பைதான் நூலகமாகும், இது ஒரு ஆழமான கற்றல் மற்றும் செயற்கை நுண்ணறிவு பின்புலத்தைப் பயன்படுத்துகிறது டென்சர்ஃப்ளோ NNகளை எளிதாக எளிய வரிசை மாதிரிகள் வடிவில் உருவாக்க.
கெராஸ் அதன் சொந்த முன்மாதிரிகளுடன் வருகிறது, அதையும் பயன்படுத்தலாம். இந்த டுடோரியலுக்கு, Keras ஐப் பயன்படுத்தி எங்கள் சொந்த மாதிரியை உருவாக்குவோம்.
இந்த ஆழமான கற்றல் கட்டமைப்பைப் பற்றி நீங்கள் மேலும் அறியலாம் கெராஸ் இணையதளம்.
ஒரு நரம்பியல் வலையமைப்பை உருவாக்குதல் (டுடோரியல்)
பைத்தானைப் பயன்படுத்தி ஒரு நரம்பியல் வலையமைப்பை உருவாக்குவதற்கு செல்லலாம்.
சிக்கல் அறிக்கை
நரம்பியல் நெட்வொர்க்குகள் AI- அடிப்படையிலான பிரச்சனைகளுக்கு ஒரு வகை தீர்வு. இந்த டுடோரியலுக்காக நாம் Pima Indians Diabetes Data-ஐப் பார்ப்போம் இங்கே.
UCI இயந்திர கற்றல் இந்த தரவுத்தொகுப்பை தொகுத்துள்ளது மற்றும் இந்திய நோயாளிகளின் மருத்துவ பதிவேடு உள்ளது. நோயாளிக்கு 5 ஆண்டுகளுக்குள் சர்க்கரை நோய் வருமா இல்லையா என்பதை எங்கள் மாதிரி கணிக்க வேண்டும்.
தரவுத்தொகுப்பை ஏற்றுகிறது
எங்கள் தரவுத்தொகுப்பு 'diabetes.csv' எனப்படும் ஒற்றை CSV கோப்பாகும், இதை மைக்ரோசாஃப்ட் எக்செல் பயன்படுத்தி எளிதில் கையாளலாம்.
எங்கள் மாதிரியை உருவாக்கும் முன், எங்கள் தரவுத்தொகுப்பை இறக்குமதி செய்ய வேண்டும். பின்வரும் குறியீட்டைப் பயன்படுத்தி இதைச் செய்யலாம்:
pdas ஐ pd ஆக இறக்குமதி செய்க
தரவு = pd.read_csv('diabetes.csv')
x = data.drop (“முடிவு”)
y = தரவு[“விளைவு”]
இங்கே நாம் பயன்படுத்துகிறோம் பாண்டாக்கள் எங்கள் CSV கோப்புத் தரவைக் கையாள நூலகம், read_csv() என்பது பாண்டாஸின் உள்ளமைக்கப்பட்ட செயல்பாடாகும், இது நமது கோப்பில் உள்ள மதிப்புகளை 'டேட்டா' எனப்படும் மாறியில் சேமிக்க அனுமதிக்கிறது.
மாறி x ஆனது விளைவு (லேபிள்கள்) தரவு இல்லாமல் எங்கள் தரவுத்தொகுப்பைக் கொண்டுள்ளது. x க்கான லேபிள்களை அகற்றும் data.drop() செயல்பாட்டின் மூலம் இதை அடைகிறோம், அதே நேரத்தில் y விளைவு (லேபிள்) தரவை மட்டுமே கொண்டுள்ளது.
கட்டிட வரிசை மாதிரி
படி 1: நூலகங்களை இறக்குமதி செய்தல்
முதலில், நமது மாதிரிக்குத் தேவையான சில அளவுருக்களுடன் டென்சர்ஃப்ளோ மற்றும் கெராஸ் ஆகியவற்றை இறக்குமதி செய்ய வேண்டும். பின்வரும் குறியீடு இதைச் செய்ய அனுமதிக்கிறது:
டென்சர்ஃப்ளோவை tf ஆக இறக்குமதி செய்யவும்
டென்சர்ஃப்ளோ இறக்குமதி கெராக்களிலிருந்து
tensorflow.keras.models இறக்குமதி வரிசையிலிருந்து
இருந்து tensorflow.keras.layers இறக்குமதி செயல்படுத்தல், அடர்த்தி
tensorflow.keras.optimizers இலிருந்து ஆடம் இறக்குமதி
tensorflow.keras.metrics இலிருந்து categorical_crossentropy இறக்குமதி
எங்கள் மாதிரிக்கு நாங்கள் அடர்த்தியான அடுக்குகளை இறக்குமதி செய்கிறோம். இவை முழுமையாக இணைக்கப்பட்ட அடுக்குகள்; அதாவது, ஒரு லேயரில் உள்ள ஒவ்வொரு முனையும் அடுத்த லேயரில் உள்ள மற்றொரு முனையுடன் முழுமையாக இணைக்கப்பட்டுள்ளது.
நாமும் இறக்குமதி செய்கிறோம் செயல்படுத்தும் முனைகளுக்கு அனுப்பப்படும் தரவை அளவிடுவதற்கு தேவையான செயல்பாடு. உகப்பாக்கிகள் இழப்பைக் குறைக்கவும் இறக்குமதி செய்யப்பட்டுள்ளன.
ஆடம் ஒரு புகழ்பெற்ற ஆப்டிமைசர் ஆகும், இது எங்கள் மாதிரி புதுப்பிப்பு முனை கணக்கீடுகளை மிகவும் திறமையாக செய்கிறது categorical_crossentropy இது நாம் பயன்படுத்தும் இழப்பு செயல்பாட்டின் வகை (உண்மையான மற்றும் கணிக்கப்பட்ட லேபிள் மதிப்புகளுக்கு இடையிலான வேறுபாட்டைக் கணக்கிடுகிறது).
படி 2: எங்கள் மாதிரியை வடிவமைத்தல்
நான் உருவாக்கும் மாடலில் ஒரு உள்ளீடு (16 யூனிட்கள்), ஒன்று மறைக்கப்பட்ட (32 யூனிட்கள்) மற்றும் ஒரு வெளியீடு (2 யூனிட்களுடன்) லேயர் உள்ளது. இந்த எண்கள் சரி செய்யப்படவில்லை மற்றும் கொடுக்கப்பட்ட சிக்கலைப் பொறுத்தது.
சரியான எண்ணிக்கையிலான அலகுகள் மற்றும் அடுக்குகளை அமைப்பது என்பது பயிற்சியின் மூலம் கூடுதல் நேரத்தை மேம்படுத்தக்கூடிய ஒரு செயல்முறையாகும். செயல்படுத்தல் என்பது ஒரு முனை வழியாக அனுப்பும் முன் நமது தரவைச் செயல்படுத்தும் அளவீட்டு வகைக்கு ஒத்திருக்கிறது.
Relu மற்றும் Softmax ஆகியவை இந்தப் பணிக்கான புகழ்பெற்ற செயல்படுத்தும் செயல்பாடுகளாகும்.
மாதிரி = தொடர் ([
அடர்த்தி(அலகுகள் = 16, உள்ளீடு_வடிவம் = (1,), செயல்படுத்துதல் = 'ரெலு'),
அடர்த்தி(அலகுகள் = 32, செயல்படுத்துதல் = 'ரெலு'),
அடர்த்தி (அலகுகள் = 2, செயல்படுத்தல் = 'சாஃப்ட்மேக்ஸ்')
])
மாதிரியின் சுருக்கம் எப்படி இருக்க வேண்டும் என்பது இங்கே:
மாதிரி பயிற்சி
எங்கள் மாதிரி இரண்டு படிகளில் பயிற்சியளிக்கப்படும், முதலில் மாதிரியை தொகுத்தல் (மாடலை ஒன்றாக இணைத்தல்) மற்றும் அடுத்தது கொடுக்கப்பட்ட தரவுத்தொகுப்பில் மாதிரியை பொருத்துதல்.
இதை model.compile() செயல்பாடு மற்றும் model.fit() செயல்பாட்டைப் பயன்படுத்தி செய்யலாம்.
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, epochs = 30, batch_size = 10)
'துல்லியம்' அளவீட்டைக் குறிப்பிடுவது, பயிற்சியின் போது எங்கள் மாதிரியின் துல்லியத்தைக் கவனிக்க அனுமதிக்கிறது.
எங்கள் லேபிள்கள் 1 மற்றும் 0 வடிவில் இருப்பதால், உண்மையான மற்றும் கணிக்கப்பட்ட லேபிள்களுக்கு இடையிலான வேறுபாட்டைக் கணக்கிட பைனரி இழப்பு செயல்பாட்டைப் பயன்படுத்துவோம்.
தரவுத்தொகுப்பு 10 (batch_size) தொகுதிகளாகப் பிரிக்கப்பட்டு, 30 முறை (சகாப்தங்கள்) மாதிரி வழியாக அனுப்பப்படும். கொடுக்கப்பட்ட தரவுத்தொகுப்புக்கு, x என்பது தரவு மற்றும் y என்பது தரவுகளுடன் தொடர்புடைய லேபிள்களாக இருக்கும்.
கணிப்புகளைப் பயன்படுத்தி மாதிரியை சோதிக்கிறது
எங்கள் மாதிரியை மதிப்பிடுவதற்கு, முன்னறிவிப்பு() செயல்பாட்டைப் பயன்படுத்தி சோதனைத் தரவுகளில் கணிப்புகளைச் செய்கிறோம்.
கணிப்புகள் = model.predict(x)
அது தான்!
இப்போது நீங்கள் நன்றாக புரிந்து கொள்ள வேண்டும் ஆழமான கற்றல் பயன்பாடு, நரம்பியல் நெட்வொர்க்குகள், அவை பொதுவாக எவ்வாறு செயல்படுகின்றன மற்றும் பைதான் குறியீட்டில் ஒரு மாதிரியை எவ்வாறு உருவாக்குவது, பயிற்சி செய்வது மற்றும் சோதிப்பது.
உங்களின் சொந்த ஆழமான கற்றல் மாதிரிகளை உருவாக்கவும் பயன்படுத்தவும் இந்த டுடோரியல் உங்களுக்கு கிக்ஸ்டார்ட்டை கொடுக்கும் என்று நம்புகிறேன்.
கட்டுரை பயனுள்ளதாக இருந்தால் கருத்துகளில் எங்களுக்குத் தெரியப்படுத்துங்கள்.
ஒரு பதில் விடவும்