Probabilistic programming
நிகழ்தகவு நிரலாக்கம் (பிபி) என்பது ஒரு நிரலாக்க முன்னுதாரணமாகும், இதில் நிகழ்தகவு மாதிரிகள் குறிப்பிடப்படுகின்றன மற்றும் இந்த மாதிரிகளுக்கான அனுமானம் தானாகவே செய்யப்படுகிறது. இது முந்தையதை எளிதாகவும் பரவலாகவும் பயன்படுத்துவதற்காக நிகழ்தகவு மாடலிங் மற்றும் பாரம்பரிய பொது நோக்க நிரலாக்கத்தை ஒன்றிணைக்கும் முயற்சியைக் குறிக்கிறது. நிச்சயமற்ற தன்மையை எதிர்கொண்டு முடிவுகளை எடுக்க உதவும் அமைப்புகளை உருவாக்க இது பயன்படுத்தப்படலாம். நிகழ்தகவு நிரலாக்கத்திற்கு பயன்படுத்தப்படும் நிரலாக்க மொழிகள் "நிகழ்தகவு நிரலாக்க மொழிகள்" (பிபிஎல்) என்று குறிப்பிடப்படுகின்றன. பயன்பாடுகள் பங்கு விலைகளை கணிப்பது, திரைப்படங்களை பரிந்துரைப்பது, கணினிகளைக் கண்டறிதல், சைபர் ஊடுருவல்களைக் கண்டறிதல் மற்றும் படத்தைக் கண்டறிதல் போன்ற பல்வேறு பணிகளுக்கு நிகழ்தகவு பகுத்தறிவு பயன்படுத்தப்படுகிறது. இருப்பினும், சமீப காலம் வரை (ஓரளவு மட்டுப்படுத்தப்பட்ட கணினி சக்தி காரணமாக), நிகழ்தகவு நிரலாக்கத்தின் நோக்கம் குறைவாகவே இருந்தது, மேலும் பெரும்பாலான அனுமான வழிமுறைகள் ஒவ்வொரு பணிக்கும் கைமுறையாக எழுதப்பட வேண்டியிருந்தது. ஆயினும்கூட, 2015 ஆம் ஆண்டில், 50-வரி நிகழ்தகவு கணினி பார்வை திட்டம் அந்த முகங்களின் 2D படங்களின் அடிப்படையில் மனித முகங்களின் 3D மாதிரிகளை உருவாக்க பயன்படுத்தப்பட்டது. நிரல் அதன் அனுமான முறையின் அடிப்படையாக தலைகீழ் கிராபிக்ஸ் பயன்படுத்தப்பட்டது, மேலும் ஜூலியாவில் உள்ள பட தொகுப்பைப் பயன்படுத்தி கட்டப்பட்டது. இது "50 வரிசை குறியீடுகளில் ஆயிரக்கணக்கானவற்றை எடுத்துக்கொள்வதை" சாத்தியமாக்கியது. ஜெனரல் நிகழ்தகவு நிரலாக்க நூலகம் (ஜூலியா மொழியிலும் எழுதப்பட்டுள்ளது) பார்வை மற்றும் ரோபாட்டிக்ஸ் பணிகளுக்கு பயன்படுத்தப்பட்டுள்ளது. மிக சமீபத்தில், நிகழ்தகவு நிரலாக்க அமைப்பு Turing.jl பல்வேறு மருந்து மற்றும் பொருளாதார பயன்பாடுகளில் பயன்படுத்தப்பட்டுள்ளது. ஜூலியாவில் நிகழ்தகவு நிரலாக்கமும் ஜூலியா தொகுப்பு Zygote.jl ஐ Turing.jl உடன் இணைப்பதன் மூலம் வேறுபடுத்தக்கூடிய நிரலாக்கத்துடன் இணைக்கப்பட்டுள்ளது. அறிவாற்றல் மாதிரிகளை உருவாக்குவதற்கும் மதிப்பீடு செய்வதற்கும் பேய்சியன் அறிவாற்றல் அறிவியலில் நிகழ்தகவு நிரலாக்க மொழிகள் பொதுவாகப் பயன்படுத்தப்படுகின்றன. நிகழ்தகவு நிரலாக்க மொழிகள் (பிபிஎல்) பெரும்பாலும் ஒரு அடிப்படை மொழியிலிருந்து விரிவடைகின்றன. அடிப்படை மொழியின் தேர்வு அடிப்படை மொழியின் ஆன்ட்டாலஜியுடன் மாதிரியின் ஒற்றுமை, அதே போல் வணிக ரீதியான கருத்துக்கள் மற்றும் தனிப்பட்ட விருப்பம் ஆகியவற்றைப் பொறுத்தது. உதாரணமாக, டிம்பிள் மற்றும் சிம்பிள் ஜாவாவை அடிப்படையாகக் கொண்டவை, Infer.NET. NET கட்டமைப்பை அடிப்படையாகக் கொண்டது, அதே நேரத்தில் PRISM புரோலாக்கிலிருந்து விரிவடைகிறது. இருப்பினும், வின் பக்ஸ் போன்ற சில பிபிஎல்-கள் ஒரு தன்னிறைவு மொழியை வழங்குகின்றன, இது புள்ளிவிவர மாதிரிகளின் கணித பிரதிநிதித்துவத்துடன் நெருக்கமாக வரைபடமாக்குகிறது, மற்றொரு நிரலாக்க மொழியில் வெளிப்படையான தோற்றம் இல்லை. கிப்ஸ் சாம்பிளிங் (மற்றும் தொடர்புடைய வழிமுறைகள்) பயன்படுத்தி பேய்சியன் கணக்கீட்டைச் செய்ய வின் பக்ஸ் மொழிக்கான மொழி செயல்படுத்தப்பட்டது. ஒப்பீட்டளவில் பழைய நிரலாக்க மொழியில் (பாஸ்கல்) செயல்படுத்தப்பட்டாலும், இந்த மொழி நெகிழ்வான கணக்கீட்டு அணுகுமுறையைப் பயன்படுத்தி பல்வேறு வகையான புள்ளிவிவர மாதிரிகளுக்கு பேய்சியன் அனுமானத்தை அனுமதிக்கிறது. அதே BUGS மொழி வெவ்வேறு கணக்கீட்டு தேர்வுகள் ("மாதிரிகள்") மற்றும் மரபுகள் அல்லது இயல்புநிலைகள் மூலம் அனுமானத்திற்காக பேய்சியன் மாதிரிகளைக் குறிப்பிட பயன்படுத்தப்படலாம், ஒரு முழுமையான தொகுப்பு வின் பக்ஸ் (அல்லது தொடர்புடைய ஆர் தொகுப்புகள், rbugs மற்றும் r2winbugs) மற்றும் ஜேஏஜிஎஸ் (மற்றொரு கிப்ஸ் சாம்ப்லர், மற்றொரு ஆர் தொகுப்பு) ஆகியவற்றைப் பயன்படுத்தலாம். மிக சமீபத்தில், பேய்சியன் மாதிரி விவரக்குறிப்பு மற்றும் அனுமானத்தை ஆதரிக்கும் பிற மொழிகள் அடிப்படை பேய்சியன் கணக்கீட்டிற்கு வெவ்வேறு அல்லது மிகவும் திறமையான தேர்வுகளை அனுமதிக்கின்றன, மேலும் அவை ஆர் தரவு பகுப்பாய்வு மற்றும் நிரலாக்க சூழலில் இருந்து அணுகக்கூடியவை, எ. கா. : ஸ்டான், நிம்பிள் மற்றும் நட்ஸ். BUGS மொழியின் செல்வாக்கு இந்த பிற்கால மொழிகளில் தெளிவாகத் தெரிகிறது, அவை மாதிரி விவரக்குறிப்பின் சில அம்சங்களுக்கு அதே தொடரமைப்பைப் பயன்படுத்துகின்றன. பீட்டா சோதனையில் சில உட்பட பல பிபிஎல் கள் செயலில் வளர்ச்சியில் உள்ளன. இரண்டு பிரபலமான கருவிகள் ஸ்டான் மற்றும் பைஎம்சி ஆகும். ஒரு நிகழ்தகவு உறவு நிரலாக்க மொழி (பி. ஆர். பி. எல்) என்பது நிகழ்தகவு உறவு மாதிரிகளை (பி. ஆர். எம்) விவரிக்கவும் ஊகிக்கவும் சிறப்பாக வடிவமைக்கப்பட்ட ஒரு பிபிஎல் ஆகும். ஒரு PRM பொதுவாக குறைத்தல், அனுமானம் மற்றும் தொடர்புடைய விநியோகங்களைக் கண்டுபிடிப்பதற்கான வழிமுறைகளின் தொகுப்புடன் உருவாக்கப்படுகிறது, அவை தொடர்புடைய PRPL இல் உட்பொதிக்கப்பட்டுள்ளன. நிகழ்தகவு நிரலாக்க மொழிகளின் பட்டியல் இந்த பட்டியல் தற்போது கிடைக்கும் பல்வேறு வகையான பிபிஎல்களை சுருக்கமாகக் கூறுகிறது, மேலும் அவற்றின் தோற்றத்தை தெளிவுபடுத்துகிறது. சிக்கல் நிகழ்தகவு விநியோகங்களாக மாறிகளைப் பற்றி நியாயப்படுத்துவது புதிய புரோகிராமர்களுக்கு சிரமங்களை ஏற்படுத்துகிறது, ஆனால் இந்த சிக்கல்களை பேய்சியன் நெட்வொர்க் காட்சிப்படுத்தல்கள் மற்றும் மூலக் குறியீடு எடிட்டருக்குள் உட்பொதிக்கப்பட்ட மாறி விநியோகங்களின் வரைபடங்களைப் பயன்படுத்துவதன் மூலம் தீர்க்க முடியும். புள்ளியியல் தொடர்புடைய கற்றல் தூண்டல் நிரலாக்க பேய்சியன் நிரலாக்க தட்டு குறியீடு குறிப்புகள் வெளிப்புற இணைப்புகள் நிகழ்தகவு மாதிரி சிறு மொழி கருவித்தொகுப்புகளின் பட்டியல் நிகழ்தகவு நிரலாக்க விக்கி நிகழ்தகவு மாதிரிகள் நிகழ்தகவு மென்பொருள் நிரலாக்க முன்னுதாரணங்கள்