Кіріспе

Монте-Карло алгоритмі

Статистикада Гиббс үлгі алуы немесе Гиббс самплері – бұл Марков тізбекті Монте-Карло (MCMC) алгоритмі, бірлескен ықтималдық үлестірілімінен тікелей үлгі алу қиын болғанда, бірақ шартты үлестірілімнен үлгі алу оңайрақ болғанда қолданылады. Бұл тізбекті бірлескен үлестірілімді жуықтау үшін (мысалы, үлестірілімнің гистограммасын жасау үшін); айнымалылардың бірінің шеттік үлестірілімін немесе айнымалылардың кейбір ішкі жиынтығын (мысалы, белгісіз параметрлер немесе жасырын айнымалылар) жуықтау үшін; немесе интегралды есептеу үшін (мысалы, айнымалылардың бірінің күтілетін мәнін) пайдалануға болады. Әдетте, кейбір айнымалылар мәндері белгілі байқауларға сәйкес келеді, сондықтан оларды үлгілеудің қажеті жоқ. Гиббс үлгі алуы статистикалық қорытындылау құралы ретінде, әсіресе Байес қорытындылауында жиі қолданылады. Бұл кездейсоқ алгоритм (яғни кездейсоқ сандарды пайдаланатын алгоритм) және статистикалық қорытындылау үшін детерминистік алгоритмдерге балама болып табылады, мысалы, күтуді максимизациялау алгоритмі (EM). Басқа MCMC алгоритмдері сияқты, Гиббс үлгі алуы үлгілердің Марков тізбегін жасайды, олардың әрқайсысы жақын орналасқан үлгілермен байланысты. Сондықтан, тәуелсіз үлгілерді алу қажет болғанда сақ болу керек. Жалпы, тізбектің басындағы (қабылдау кезеңіндегі) үлгілер қажетті үлестірілімді дұрыс көрсетпеуі мүмкін және әдетте олар алынып тасталады.

Кіріспе

Гиббс үлгісі физик Джозиа Виллард Гиббстің есімімен аталады, бұл үлгі алу алгоритмі мен статистикалық физика арасындағы аналогияға сілтеме жасайды. Алгоритмді ағайынды Стюарт және Дональд Геман 1984 жылы, Гиббс қайтыс болғаннан кейін шамамен сексен жыл өткен соң сипаттады және ол статистикалық қоғамдастықта шекті ықтималдық үлестірімін, әсіресе артқы үлестірімін есептеу үшін кеңінен танымал болды. Негізгі нұсқасында Гиббс үлгісі Метрополис-Хестингс алгоритмінің ерекше жағдайы болып табылады. Дегенмен, кеңейтілген нұсқаларында (төменде қараңыз) ол әрбір айнымалыны (немесе кейбір жағдайларда, айнымалылар тобын) кезекпен үлгілеу арқылы үлгі алудың жалпы құрылымы ретінде қарастырылуы мүмкін, сондай-ақ бір немесе бірнеше үлгі алу қадамдарын жүзеге асыру үшін Метрополис-Хестингс алгоритмін (немесе кесінді үлгілеу сияқты әдістерді) қосуға болады. Гиббс үлгісі бірлескен үлестіру нақты белгілі болмаған немесе тікелей үлгі алу қиын болған жағдайларда қолданылады, бірақ әрбір айнымалының шартты үлестірілуі белгілі және оны үлгілеу оңай (немесе кем дегенде, оңайрақ) болады. Гиббс үлгі алу алгоритмі басқа айнымалылардың ағымдағы мәндеріне байланысты әрбір айнымалының үлестірілімінен бір мысал жасайды. Үлгілер тізбегі Марков тізбегін құрайтынын және осы Марков тізбегінің стационарлық үлестірілімі ізделіп отырған бірлескен үлестірілімге тең екенін көрсетуге болады. Гиббс үлгі алуы Байес желісінің артқы үлестірілімін үлгілеуге өте қолайлы, себебі Байес желілері әдетте шартты үлестірілімдер жиынтығы ретінде беріледі.

Іске асыру

Гиббс үлгі алуы, негізгі түрінде, Метрополис-Хестингс алгоритмінің ерекше жағдайы болып табылады. Гиббс үлгі алуының мақсаты – көпөлшемді үлестірім берілгенде, бірлескен үлестірімді интегралдау арқылы шеттеуге қарағанда, шартты үлестірімнен үлгі алу оңайырақ. Егер біз бірлескен үлестірімнен үлгілер алуды қаласақ, келесідей әрекет етеміз: біз белгілі бір бастапқы мәнмен бастаймыз. Келесі үлгіні аламыз. векторы болғандықтан, біз вектордың әрбір компонентін , осы уақытқа дейін алынған басқа барлық компоненттерге байланысты осы компоненттің үлестірімінен үлгілейміз. Бірақ бір нюанс бар: біз компоненттерін дейін, ал кейін компоненттерін дейін шарттаймыз. Осыған жету үшін, біз компоненттерді бірінші компоненттен бастап ретімен үлгілейміз. Формальды түрде, үлгісін алу үшін, біз оны үлестіріміне сәйкес жаңартамыз. Біз компонентінің үлгісіндегі мәнін, емес үлгісіндегі мәнін пайдаланамыз. Жоғарыдағы қадамдарды рет қайталаңыз.

Қорытындылау

Гиббс үлгі алуы статистикалық қорытынды жасау үшін қолданылады (мысалы, параметрдің ең жақсы мәнін анықтау, мысалы, белгілі бір күні белгілі бір дүкенге қанша адам келуі мүмкін екенін анықтау, сайлаушының қай кандидатқа дауыс беруі ең мүмкін екенін және т.б.). Идеясы мынада: байқалған деректерді үлгі алу процесіне енгізу үшін әрбір байқалған дерек үшін жеке айнымалылар жасалады және осы айнымалылардан үлгі алудың орнына, байқалған мәндерге сәйкес айнымалылар бекітіледі. Қалған айнымалылардың үлестірілімі, осылайша, байқалған деректерге шартты түрде кейінгі үлестірілім болып табылады. Көзге түсетін параметрдің ең ықтимал мәнін (режимді) ең көп кездесетін үлгі мәнін таңдау арқылы анықтауға болады; бұл параметрдің ең жоғары апостериорлық бағалауына тең. (Параметрлер көбінесе үздіксіз болғандықтан, режимді бағалау үшін үлгідегі мәндерді шектеулі диапазонға немесе "интервалға" жіктеу қажет). Бірақ көбінесе үлгіленген мәндердің күтілетін мәні (орташа) таңдалады; бұл Байес бағалаушысы, ол Байес үлгілеуінен қол жетімді бүкіл үлестіру туралы қосымша деректерді пайдаланады, ал күтуді максимизациялау (EM) сияқты максимизациялау алгоритмі тек бір нүктені қайтара алады. Мысалы, мономодальды үлестіру үшін орташа (күтілетін мән) әдетте режимге (ең көп таралған мәнге) жақын, бірақ егер үлестіру бір бағытта қисайса, орташа сол бағытта жылжиды, бұл осы бағыттағы қосымша ықтималдық массасын ескереді. (Егер үлестіру мультимодальды болса, күтілетін мән мағыналы нүктені қайтармайды, сондықтан кез келген режим жақсырақ таңдау болып табылады.) Кейбір айнымалылар қызығушылық тудыратын параметрлерге сәйкес келсе, ал басқалары айнымалылар арасындағы қатынастарды дұрыс көрсету үшін модельге енгізілген пайдасыз ("қарсы") айнымалылар болып табылады. Үлгіленген мәндер барлық айнымалылар бойынша бірлескен үлестіруді көрсетеді, бірақ күтілетін мәндерді немесе режимдерді есептеу кезінде пайдасыз айнымалыларды ескермеуге болады; бұл пайдасыз айнымалыларды шеттетуге тең. Егер бірнеше айнымалы үшін мән қажет болса, күтілетін мән әр айнымалы бойынша жеке есептеледі. (Бірақ режимді есептеу кезінде барлық айнымалыларды бірге қарастыру қажет.) Бақылаумен оқыту, бақылаусыз оқыту және жартылай бақылаумен оқыту (яғни, мәндері жоқ деректермен оқыту) барлық айнымалылардың мәндерін бекіту және қалғандарынан үлгі алу арқылы жүзеге асырылуы мүмкін. Байқалған деректер үшін әрбір байқау үшін бір айнымалы болады – мысалы, байқаулар жиынтығының үлгілік орташасы немесе үлгілік дисперсиясына сәйкес келетін бір айнымалы емес. Шын мәнінде, "үлгілік орташа" немесе "үлгілік дисперсия" сияқты ұғымдарға сәйкес айнымалылар мүлдем болмайды. Оның орнына, мұндай жағдайда белгісіз нақты орташа және нақты дисперсияны көрсететін айнымалылар болады, ал осы айнымалылар үшін үлгілік мәндерді анықтау Гиббс үлгілеушісінің жұмысынан автоматты түрде шығады. Жалпыланған сызықтық модельдер (яғни, сызықтық регрессияның нұсқалары) кейде Гиббс үлгі алуымен де жүзеге асырылуы мүмкін. Мысалы, берілген бинарлық (иә/жоқ) таңдаудың ықтималдығын анықтау үшін пробит регрессиясы, регрессия коэффициенттеріне қалыпты үлестіріммен орналастырылған априорлық мәндермен, Гиббс үлгі алуымен жүзеге асырылуы мүмкін, өйткені қосымша айнымалыларды қосу және конъюгацияны пайдалануға болады. Алайда, логистикалық регрессияны осылай жүзеге асыруға болмайды. Бір мүмкіндік – логистикалық функцияны қалыпты үлестірімдердің қоспасымен (әдетте 7–9) жуықтау. Бірақ көбінесе Гиббс үлгі алуының орнына Метрополис-Хэстингс қолданылады.

Дирихле таралымдарының құлдырауы

Иерархиялық Байес модельдерінде, категориялық айнымалылары бар, мысалы, жасырын Дирихлеттік бөлініс және табиғи тілді өңдеуде қолданылатын басқа да әртүрлі модельдерде, категориялық айнымалылар үшін алдын ала бөліністер ретінде қолданылатын Дирихлеттік бөліністерді жою жиі кездеседі. Мұндай жоюдың нәтижесінде берілген Дирихлеттік алдын ала бөлініске тәуелді барлық категориялық айнымалылар арасында тәуелділік пайда болады, ал жоюдан кейін осы айнымалылардың бірлескен үлестірілімі Дирихлеттік көпмүшелік үлестірімі болады. Бұл үлестірімде берілген категориялық айнымалының басқаларына шартты үлестірілімі өте қарапайым түрін қабылдайды, бұл Гиббс үлгілеуін жою жасалмаған жағдайдағыдан да оңай етеді. Ережелер келесідей: Дирихлеттік алдын ала түйінін жою тек алдын ала түйіннің ата-аналық және балалық түйіндеріне әсер етеді. Ата-анасы көбінесе тұрақты болғандықтан, көбінесе тек балаларын ескеру жеткілікті. Дирихлеттік алдын ала бөліністі жою осы алдын ала бөлініске тәуелді барлық категориялық балалар арасында тәуелділікті тудырады, бірақ басқа категориялық балалар арасында қосымша тәуелділіктер пайда болмайды. (Бұл, мысалы, бір гиперприормен байланысты бірнеше Дирихлеттік алдын ала бөліністер болған кезде есте сақтау маңызды. Әр Дирихлеттік алдын ала бөлініс өздігінен жойылып, тек тікелей балаларына ғана әсер етеді.) Жоюдан кейін бір тәуелді баланың басқаларына шартты үлестірілімі өте қарапайым түрін қабылдайды: берілген мәнді көру ықтималдығы осы мән үшін сәйкес гиперприордың қосындысына пропорционалды және басқа тәуелді түйіндердің сол мәнді қабылдауының санына пропорционалды. Осы алдын ала бөлініске тәуелді емес түйіндерді есепке алу қажет емес. Бұл ереже басқа итеративтік қорытындылау әдістерінде де қолданылады, мысалы, вариациялық Байес немесе күтуді максимизациялау; алайда, егер әдіс ішінара сандарды сақтауды қамтитын болса, онда сұраныстағы мәннің ішінара сандары барлық басқа тәуелді түйіндер бойынша қосылуы керек. Кейде мұндай жиынтықталған ішінара сандар күтілетін сандар немесе осыған ұқсас деп аталады. Ықтималдық алынған мәнге пропорционалды; нақты ықтималдықты анықтау үшін категориялық айнымалы қабылдай алатын барлық мүмкін мәндер бойынша қалыпқа келтіру қажет (яғни категориялық айнымалының әрбір мүмкін мәні үшін есептелген нәтижені қосып, барлық есептелген нәтижелерді осы сомаға бөлу). Егер берілген категориялық түйіннің тәуелді балалары болса (мысалы, ол қоспа модельдегі жасырын айнымалы болса), алдыңғы қадамда есептелген мән (күтілетін сандарға қосылған алдын ала бөлініс немесе есептелген кез келген мән) барлық балалардың ата-анасына берілген нақты шартты ықтималдықтарына көбейтілуі керек (ықтималдыққа пропорционалды есептелген мән емес!). Дирихлеттік көпмүшелік үлестірімі туралы мақаланы қараңыз. Егер Дирихлеттік алдын ала бөлініске тәуелді түйіндердің топтық мүшелігі басқа бір айнымалыға байланысты динамикалық түрде өзгеруі мүмкін болса (мысалы, тақырыптық модельдегідей, басқа жасырын категориялық айнымалымен индекстелген категориялық айнымалы), бірдей күтілетін сандар әлі де есептеледі, бірақ дұрыс айнымалылар жиынтығы енгізілсін деп мұқият жасау керек. Дирихлеттік көпмүшелік үлестірімі туралы мақаланы қараңыз, бұл тақырыптық модельдің контекстінде де қарастырылған.

Басқа конъюгат приорлардың құлдырауы

Жалпы, кез келген конъюгаттық алдынғы үлестірім, егер оның жалғыз баламалары оған конъюгаттық болса, ыдыратылуы мүмкін. Тиісті математикалық есептер құрама үлестірімдер туралы мақалада талқыланады. Егер тек бір балама түйін болса, нәтиже белгілі бір үлестірімді қабылдайды. Мысалы, бір Гаусс баламасы бар желіден кері гамма үлестірімді дисперсияны ыдырату Стьюденттің t үлестірімін береді. (Сонымен қатар, бір Гаусс баламасының орташа және дисперсиясын ыдырату, егер екеуі де конъюгаттық болса, Стьюденттің t үлестірімін береді, яғни Гаусс орташа, кері гамма дисперсиясы.) Егер бірнеше балама түйіндер болса, олардың барлығы Дирихлеттік категориялық жағдайдағыдай тәуелді болады. Нәтижесінде пайда болған бірлескен үлестірім жабық формаға ие болады, ол кейбір жағынан құрама үлестірімге ұқсас, бірақ оның құрамында әр балама түйін үшін факторлардың көбейтіндісі болады. Сонымен қатар, ең маңыздысы, балама түйіндердің бірінің шартты үлестірілімі басқаларына (сондай-ақ ыдыратылған түйіндердің ата-аналарына, бірақ балама түйіндердің баламаларына емес) берілгенде, барлық қалған балама түйіндердің кейінгі болжамдық үлестірімімен бірдей тығыздыққа ие болады. Бұдан әрі, кейінгі болжамдық үлестірім бір түйіннің негізгі құрама үлестірімімен бірдей тығыздыққа ие, бірақ әртүрлі параметрлермен. Жалпы формула құрама үлестірімдер туралы мақалада келтірілген. Мысалы, шартты тәуелсіз, бірдей үлестірілген Гаусс үлестірімді түйіндерінің жиынтығы бар Байес желісінде, орташа және дисперсияға конъюгаттық алдынғы үлестірімдер орналастырылған болса, орташа және дисперсияны ыдыратқаннан кейін басқа түйіндердің шартты үлестірімі Стьюденттің t үлестірімі болады. Сол сияқты, бірнеше Пуассон үлестірімді түйіндердің гамма алдынғы үлестірімін ыдырату, басқаларының біріне берілгенде шартты үлестірімнің теріс биномдық үлестірімді қабылдауына себеп болады. Ыдырату белгілі бір үлестірімді тудыратын жағдайларда, тиімді үлгі алу процедуралары жиі болады, оларды қолдану көбінесе (қажет болмаса да) ыдыратпаудан гөрі тиімдірек болады, және оның орнына алдынғы және балама түйіндерді бөлек үлгілеу. Алайда, құрама үлестірім жақсы белгілі болмаған жағдайда, одан үлгі алу оңай болмауы мүмкін, өйткені ол әдетте экспоненциалдық отбасыға жатпайды және әдетте лог-қоңыр болмайды (бұл бейімделген бас тарту үлгілеуін қолдану арқылы үлгілеуді жеңілдетеді, өйткені жабық форма әрқашан бар). Егер ыдыратылған түйіндердің баламаларының өзінде баламалар болса, графиктегі барлық басқа түйіндерге берілген осы балама түйіндердің бірінің шартты үлестірілімі осы екінші деңгейдегі баламалардың үлестірімін ескеруі керек. Атап айтқанда, алынған шартты үлестірім жоғарыда анықталғандай құрама үлестірімнің көбейтіндісіне және олардың ата-аналарына берілген барлық балама түйіндердің шартты үлестірімдеріне пропорционалды болады (бірақ олардың өз баламаларына емес). Бұл толық шартты үлестірімнің бірлескен үлестірімге пропорционалды екендігінен көрінеді. Егер ыдыратылған түйіндердің баламалары үздіксіз болса, бұл үлестірім әдетте белгілі бір формада болмайды және жабық форманы жазуға болатынына қарамастан, жақсы танылмаған құрама үлестірімдер үшін үлгі алу қиын болуы мүмкін. Алайда, балама түйіндер дискретті болған жағдайда, осы балама түйіндердің баламалары үздіксіз немесе дискретті болғанына қарамастан, үлгі алу мүмкін. Шын мәнінде, бұл жерде қолданылатын принцип Дирихлеттік көпмүшелік үлестірім туралы мақалада егжей-тегжейлі сипатталған.

Бұйырылған шамадан тыс сергітумен Гиббс үлгі алу аппараты

Бұйрықты шамадан тыс релаксация қолданатын Гиббс үлгісі, кез келген қадамда берілген тақ сандағы үміткер мәндерді іріктеп, оларды және бір мәнді белгілі бір рет бойынша сұрыптайды. Егер s реттелген тізімдегі s-ші кіші мән болса, онда s-ші үлкен мән ретінде таңдалады. Толығырақ ақпарат алу үшін Neal (1995) еңбегіне жүгініңіз.

Басқа кеңейтулер

Гиббстің үлгі алуын әр түрлі жолдармен кеңейтуге болады. Мысалы, егер шарттық таралымынан үлгі алу қиын болса, сол айнымалылардан үлгі алу үшін бір реттік кесімді үлгі алу немесе Metropolis-Hastings алгоритмін қолдануға болады. Сондай-ақ, кездейсоқ айнымалы емес, бірақ олардың мәні басқа айнымалылардан анық есептелетін айнымалыларды да қосу мүмкін. Жалпыланған сызықтық модельдер, мысалы, логистикалық регрессия (немесе "максималды энтропия модельдері") осылайша енгізілуі мүмкін. (BUGS, мысалы, модельдерді осылай араластыруға мүмкіндік береді.)

Ақаулық режімдері

Гиббс сынамасын алудың екі түрі сәтсіздікке ұшырауы мүмкін. Біріншісі – жоғары ықтималдық жағдайларының аралдары бар, олардың арасында байланыс жоқ. Мысалы, 2 биттік векторлар үшін ықтималдық үлестірімін қарастырайық, онда (0,0) және (1,1) векторларының әрқайсысының ықтималдығы ½, ал қалған екі вектордың (0,1) және (1,0) ықтималдығы нөлге тең. Гиббс сынамасы екі жоғары ықтималдық векторларының бірінде тұрып қалады және екіншісіне ешқашан жете алмайды. Жалпы алғанда, жоғары өлшемді, нақты мәнді векторлар үшін, егер вектордың екі нақты элементі толық корреляцияда болса (немесе толық антикорреляцияда болса), бұл екі элемент тұрып қалады және Гиббс сынамасы оларды өзгерте алмайды. Екінші мәселе тіпті барлық жағдайлардың ықтималдығы нөлден жоғары болғанда және жоғары ықтималдығы бар жалғыз арал болғанда да пайда болуы мүмкін. Мысалы, 100 биттік векторлар үшін ықтималдық үлестірімін қарастырайық, онда барлық нөлдерден тұратын вектор ½ ықтималдығымен кездеседі, ал қалған барлық векторлар бірдей ықтимал, сондықтан олардың әрқайсысының ықтималдығы тең. Егер сіз нөлдік вектордың ықтималдығын бағалауды қаласаңыз, нақты үлестіруден 100 немесе 1000 үлгі алу жеткілікті болар еді. Бұл жауаптың ½-ге жақын болуы мүмкін. Бірақ дәл осындай нәтижеге жету үшін Гиббс сынамасынан одан да көп үлгі алу қажет болады. Бұндай есептеуді компьютер өмір бойында орындай алмайды. Бұл мәселе күйдіру кезеңінің ұзақтығына қарамастан туындайды. Себебі, нақты үлестіруде нөлдік вектордың жиілігі жартылай, ал осы оқиғалар нөлдік емес векторлармен кездейсоқ араласады. Тіпті кішкентай үлгіде де нөлдік және нөлдік емес векторлар кездеседі. Бірақ Гиббс сынамасы ұзақ уақыт бойы (қатарынан) тек нөлдік векторды қайтарады, содан кейін ұзақ уақыт бойы (қатарынан) тек нөлдік емес векторларды қайтарады. Осылайша, нақты үлестіруге жуықтасу өте баяу болады, көптеген қадамдарды қажет етеді; мұндай көп қадамды орындау есептеу тұрғысынан ақылға қонымды уақыт ішінде мүмкін емес. Мұндағы баяу жуықтасу өлшемділіктің қарғысының салдары ретінде қарастырылуы мүмкін. Мұндай мәселені 100 биттік вектордың барлық битін бірдей үлгілеу арқылы шешуге болады. (Бұл 100 биттік вектордың үлкенірек айнымалылар жиынтығының бөлігі екенін болжайды. Егер осы вектор ғана үлгіленетін болса, блокпен үлгілеу Гиббс сынамасын мүлдем жасамаумен тең болады, бұл гипотеза бойынша қиын болар еді.)

Бағдарламалық жасақтама

OpenBUGS (Гиббс үлгілеуі арқылы Байес қорытындысы) бағдарламалық жасақтамасы Марков тізбегі Монте-Карло әдісін қолдана отырып, күрделі статистикалық модельдерді Байес талдауына мүмкіндік береді. JAGS (Және бір Гиббс үлгілеуші) – Марков тізбегі Монте-Карло әдісін пайдалана отырып, Байес иерархиялық модельдерді талдауға арналған GPL бағдарламасы. Church – ықтималдық бағдарламалар түрінде берілген кез келген үлестірулер бойынша Гиббс қорытындысын жүргізуге арналған тегін бағдарлама. PyMC – жалпы ықтималдық графикалық модельдерді Байес тәсілімен оқытуға арналған ашық кодты Python кітапханасы. Turing – ықтималдық бағдарламалауды қолдана отырып, Байес қорытындысын жасауға арналған ашық бастапқы кодты Julia кітапханасы.