Бууруулах арга

Стандарт нь N-грам загварийн нь нэг үндсэн асуудал нь тухайн загвар ямар нэг корпусаар заавал сургагдах ёстой байдаг ба ямар ч сургалтын корпус төгсгөлгүй биш элемэнттэй учираас зарим хэлний хүлээн зөвшөөрөгдсөн, төгс төгөлдөр гэж хүлээн зөвшөөрөгддөг загвар хүртэл тодорхой хэмжээний тархалттай  байдаг. Цаашилбал, магадлалын тоо тэгтэй тэнцүү эсвэл маш бага үед үед Хамгийн их боломжийг тооцоолох арга нь муу үр дүн гаргадаг. Хэрвээ тухайн хэлний үгсийн санд байдаг боловч туршилтын олонлогт байхгүй үгсийг хэрхэн шийдэх вэ? Уг өмнөн үзэгдээгүй үзэгдэлээс болоод хэлний загварийн тэг магадлалтай болгохгүйн тулд илүү олон давтамжтай үзэгдэлийн магадалалын массаас бага зэргийг авч уг үзэгдэлрүү өгдөг. Уг аргийг тэгшилэх эсвэл бууруулах арга гэж нэрлэдэг. Тухайлбал нэгээр нэмэгдүүлэж тэгшилэх, K тоогоор нэмэгдүүлэж тэгшилэх, салгах арга,  Kneser-Ney тэгшилэх гэх мэт. Жишээлбэл: Дараах үгсийн сантай  корпус авч үзье. Жишээ корпус:

"JOHN READ MOBY DICK MARY READ A DIFFERENT BOOK SHE READ A BOOK BY CHER"

Дараах томьёог ашиглана хэлний загварийг тооцолоё:

p(w_i|w_{i-1}) = \frac {c(w_{i-1}w_i)} {\sum_{w_i}c(w_{i-1}w_i)}

p(s) = \prod_{i=1}^{l+1}p(w_i|w_{i-1})

Жишээ магадлал:

p(JOHN \,\,\, READ \,\,\, A \,\,\, BOOK)

= p(JOHN|*)\,\,\,\, p(READ|JOHN)\,\,\,\, p(A|READ)\,\,\,\, p(BOOK|A)\,\,\,\, p(*|BOOK) 

= \left ( \frac{c(* JOHN)}{\sum_{w}c(*w)} \right ) 
\left ( \frac{c(JOHN \, READ)}{\sum_{w}c(JOHN \, w)} \right )
\left ( \frac{c(READ \, A)}{\sum_{w}c(READ \, w)} \right )  
\left ( \frac{c(A BOOK)}{\sum_{w}c(A \, w)} \right ) 
\left ( \frac{c(BOOK *)}{\sum_{w}c(BOOK \, w)} \right ) 
 

= \frac{1}{3}  \qquad \frac{1}{1} \qquad \frac{2}{3} \qquad \frac{1}{2} \qquad \frac{1}{2}  \thickapprox 0.06

Энд * - аар эхлэл болон төгсгөлийг тэмдэглэв.

Жишээ магадлал:

p(CHRED \,\,\, READ \,\,\, A \,\,\, BOOK)

= p(JOHN|*)\,\,\,\, p(READ|CHER)\,\,\,\, p(A|READ)\,\,\,\, p(BOOK|A)\,\,\,\, p(*|BOOK) 

= \left ( \frac{c(* CHER \,)}{\sum_{w}c(*w)} \right ) 
\left ( \frac{c(CHER \, READ)}{\sum_{w}c(CHER \, w)} \right )
\left ( \frac{c(READ \, A )}{\sum_{w}c(READ \, w)} \right )  
\left ( \frac{c(\,A \, BOOK)}{\sum_{w}c(A \, w)} \right ) 
\left ( \frac{c(BOOK \,*)}{\sum_{w}c(BOOK \, w)} \right ) 
 

= \frac{0}{3}  \qquad \frac{0}{1} \qquad \frac{2}{3} \qquad \frac{1}{2} \qquad \frac{1}{2}  \thickapprox 0

Хоёрдах жишээн дээр нэг магадлал тэг байгаа учираас үржвэр болох нийт магадлал тэг болж байгаа. Тийм учираас хэлний загварийг зөв тооцоолохын тулд бид тэгшилэх, бууруулах зэрэг аргуудыг ашигладаг.

### Нийтлэг аргууд 
### Лапласийн тэгшилэх арга 
Хамгийн энгийн тэгшилэх арга бол биграмийн тоог нормачилахаасаа өмнө нэг нэгээр нэмэгдүүлэх арга юм. Тэг байсан бол 1, 1 байсан бол 2 гэх мэтээр бүх тооцоолсон тоонууд нэмэгдэнэ гэсэн үг юм. Уг алгоритмийг Лапласийн тэгшилэх арга гэж нэрлэдэг. N грамийн загварчлалын үед Лапласийн арга нь тийм ч сайн үр дүн үзүүлдэггүй. Гэхдээ уг тэгшилэх арга бусад олон аргийн үндэс суурь нь болж өгсөн. Мөн текст ялгах аргуудын үндэс суурь болсон. Лапласийн тэгшилэх аргийг нэг грамын магадлал дээр эхлээд авч үзье. Уг томёонд w_i нэг грамийн магадлалийн тоо, c_i нь бүх N үгийн стандарчуулсан тоо юм.

p\bigl(w_i\bigr) = \frac{c_i}{N}

Лапласийн тэгшилэх арга нь бүх тооцолосон тоонууд дээр нэгээр нэмдэг. Тийм учираас бас нэгээр нэмэгдүүлэх арга гэж нэрлэх нь бий. Нэгэнь V нь үгсийн сангийн үгийн тоо ба нэгээр нэмэгдэж байгаа тул V үзэгдэлийн нэмэгдсэн тоог хуваагдагчид тохируулаж тооцоолох хэрэгтэй. (Хэрвээ хуваагдагчийн тоо нэмэгдээгүй бол P-ийн утга ямар болох вэ?)

P_{Laplace}(w_i) = \frac{c_i + 1}{N+V}

Бид N-ийг нормалжуулсанаар c_i^*-ийг P_i^*
 -ийн магадлал болгож чадна. Уг аргатай хамааралтайгаар тэгтэй тэнцүү биш магадлалийн массаас тэг магададлалийн тооцолсон тоог хасж болно. Үүийг хямдруулах буюу бууруулах гэнэ. Тийм учираас буурсан тоог c^* гэж бичихгүйгээр ориганаль тооцоолсон тоог буурсан тооцоолсон тооны харьцааг d_c гэж тэмдэглэж чадна:

d_c= \tfrac{c^*}{c}

Харин доорх биграм магадлалийн хувьд:

P(w_n|w_{n-1}) = \frac{C(w_{n-1}w_n)}{C(w_{n-1})}

Лапласийн арга ийм болно:

P^*_{Laplace}(w_n|w_{n-1}) =  \frac{C(w_{n-1}w_n)+1}{C(w_{n-1}+V)}

Дээр авсан жишээгээ ашиглаж үүн дээ нэгээр нэмэгдүүлэх арга хэрэглэвэл дараах байдалтай болно:

p(JOHN \,\, READ \,\, A \,\, BOOK)

= \frac{1+1}{11+3} \,\,\,\,\,
\frac{1+1}{11+1} \,\,\,\,\,
\frac{1+2}{11+3} \,\,\,\,\,
\frac{1+1}{11+2} \,\,\,\,\,
\frac{1+1}{11+2}

\approx 0.0001

P(CHER \,\,\, READ \,\,\, A \,\,\, BOOK)

= \frac{1+0}{11+3} \,\,\,\,\,
\frac{1+0}{11+1} \,\,\,\,\,
\frac{1+2}{11+3} \,\,\,\,\,
\frac{1+1}{11+2} \,\,\,\,\,
\frac{1+1}{11+2}

\approx 0.0003

### K-аар нэмэгдүүлэх арга 
Зөвхөн нэгээр биш үүнтэй адилаар K-аар нэмэгдүүлэж бас болно. Уг аргийн K-аар нэмэгдүүлэх арга гэнэ. Томёо нь ийм болно:

P^*_{Add-k}(w_n|w_{n-1}) = \frac {C(w_{n-1}w_n) + k}{C(w_{n-1})+kV}

K-аар нэмэгдүүлэх нь текст ялгах зэрэг ажилд үр нөлөө сайтай байдаг.

Good-Turing 

### Katz-ийн тэгшилэлт буюу буцаалтын арга 
Каtz-ийн тэгшилэлтийг биграм дээр ашиглавал:

Katz-ийн тохируулсан тоо:

c_{katz}(w^i_{i-1}) = \begin{cases} d_rr \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\ if \, r > 0 \\ \alpha(w_{i-1}p_{ML}(w_i)) \,\,\,\,\,\,\,\,\ if \, r = 0   \end{cases}

\alpha(w_{i-1}) нь сонгогдсон учираас \sum w_i c_{katz}(w^i_{i-1} = \sum w_ic(w^i_{i-1})) нь:

\alpha(w_{i-1}) = \frac{1-\sum_{w_i:c(w^i_{i-1}>0)}p_{katz}(w_i|w_{i-1})}{1-\sum_{w_i:c(w^i_{i-1}>0)}p_{katz}(w_i)}

болно. Нормалчилал хийснээр зөв болсон p_{katz}(w_i|w_{i-1}) нь:

p_{katz}(w_i|w_{i-1}) = \frac {c_{catz}(w^i_{i-1})}{\textstyle \sum_{w_i(c_{katz(w^i_{i-1})})} \displaystyle} болно.