Beam Search์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์๋ฆฌ
beam search, ์์ฑ ์ธ์์ ๊ตฌํ ํด๋ณธ ์ฌ๋์ด๋ผ๋ฉด, ํ๋ฒ ์ฏค์ ๋ค์ด๋ณด๊ฒ ๋๋ ์ฉ์ด์ด๋ค. ๋ค๋ฅธ ๋ถ์ผ์์๋ ๋ง์ด ์ฌ์ฉํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง search ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋์ด๊ธฐ๋ ํ๊ณ , ์ ํ์ง๊ฐ ๋ง์์ง๋ task์ธ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ(?) ๋ฐฉ๋ฒ ๊ฐ๋ค. ๊ทธ๋์ ์ค๋์ ASR์ ๋ชจ๋ธ๋ง ํด๋ณธ ์ฌ๋์ผ๋ก์จ beam search์ ๋ํด์ ๊ธ๋ก์จ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ์ฃผ๋ก ์ฝ๋๋ก ์ ํ๋ beam search ์ด์ง๋ง ์ด๋ฒ ๊ธฐํ์ ๊ฐ๋ ๋ถํฐ ์์๋ณด์.
Beam Search๋ ๋ฌด์์ธ๊ฐ?
Beam Search๋ ์๋ ์์ฑ ์ธ์(ASR) ์์คํ
์์ ๋์ฝ๋ฉ ๊ณผ์ ์ ์ฌ์ฉ๋๋ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์์ฑ์ ํ
์คํธ๋ก ๋ณํํ ๋, ์
๋ ฅ๋ ์ํฅ ์ ํธ์ ๋ํด ๊ฐ๋ฅํ ์ฌ๋ฌ ๊ฐ์ค(hypothesis)๋ค์ ํจ์จ์ ์ผ๋ก ํ์ํ์ฌ ๊ฐ์ฅ ํ๋ฅ ์ด ๋์ ์ํ์ค๋ฅผ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ์ด๋ค.
ASR์์ ๋์ฝ๋ฉ์ ๋ค์๊ณผ ๊ฐ์ ์์์ผ๋ก ํํํ ์ ์๋ค:
$$Y^* = \arg\max_Y P(Y|X)$$
์ด ์์์ด ASR task๋ฅผ ํ๋ง๋๋ก ํ์๋ฉด, ์ต์ข ์์์ด๋ค. ์ฌ๊ธฐ์ $X$๋ ์ ๋ ฅ ์ํฅ ํน์ง(acoustic feature), $Y$๋ ์ถ๋ ฅ ํ ์คํธ ์ํ์ค๋ฅผ ์๋ฏธํ๋ค. ์ด๋ก ์ ์ผ๋ก๋ ๋ชจ๋ ๊ฐ๋ฅํ $Y$์ ๋ํด ํ๋ฅ ์ ๊ณ์ฐํ์ฌ ์ต๋๊ฐ์ ์ฐพ์์ผ ํ์ง๋ง, ์ค์ ๋ก๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๊ฐ ๋๋ฌด ๋ง์ ์ ์ ์กฐ์ฌ(exhaustive search)๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ์ ์ ์กฐ์ฌ๋ฅผ ํ๋ ์ปดํจํ ๋น์ฉ๋๋น ์ป๋ ๋ณด์์ด ํฌ์ง ์๋ค. ๊ฐ์ฑ๋น๊ฐ ๋จ์ด์ง๋ ๋๋์ด๋๊น?
Greedy Search์์ ์ฐจ์ด์
๊ฐ์ฅ ๋จ์ํ ๋์ฝ๋ฉ ๋ฐฉ๋ฒ์ Greedy Search(ํ์ ํ์)์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ๊ฐ ์์ ๋ง๋ค ๊ฐ์ฅ ํ๋ฅ ์ด ๋์ ํ๋์ ํ ํฐ๋ง์ ์ ํํ์ฌ ์ํ์ค๋ฅผ ๊ตฌ์ฑํ๋ค.
$$y_t = \arg\max_{y} P(y|X, y_1, y_2, \ldots, y_{t-1})$$
๊ทธ๋ฌ๋ Greedy Search๋ ์ง์ญ ์ต์ ํด(local optimum)์ ์ฝ๊ฒ ๋น ์ง ์ ์์ผ๋ฉฐ, ์ ์ฒด์ ์ผ๋ก ์ต์ ์ ์ํ์ค๋ฅผ ๋์น ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค. ์๋ฅผ ๋ค์ด, ํน์ ์์ ์์ ๋ ๋ฒ์งธ๋ก ํ๋ฅ ์ด ๋์ ์ ํ์ด ์ดํ์ ๋จ๊ณ์์ ๋ ์ข์ ์ ์ฒด ๊ฒฝ๋ก๋ก ์ด์ด์ง ์ ์๋๋ฐ, Greedy Search๋ ์ด๋ฌํ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ง ์๋๋ค.
๋ฐ๋ฉด Beam Search๋ ๊ฐ ๋์ฝ๋ฉ ๋จ๊ณ์์ ์์ k๊ฐ์ ๊ฐ๋ฅ์ฑ(beam)์ ์ ์งํ๋ฉฐ ํ์ํ๋ค. ์ด๋ฅผ ํตํด ์ง์ญ ์ต์ ํด์ ๋น ์ง ์ํ์ ์ค์ด๊ณ , ์ ์ฒด์ ์ผ๋ก ๋ ๋์ ํด๋ฅผ ์ฐพ์ ํ๋ฅ ์ ๋์ธ๋ค.
Beam Search์ ์๋ ์๋ฆฌ
Beam Search์ ๊ธฐ๋ณธ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค:
- ์ด๊ธฐ ์ํ์์ ์์ํ์ฌ ์ฒซ ๋ฒ์งธ ํ์ ์คํ
์์ ๊ฐ๋ฅํ ๋ชจ๋ ํ ํฐ์ ํ๋ฅ ์ ๊ณ์ฐํ๋ค.
- ํ๋ฅ ์ด ๊ฐ์ฅ ๋์ ์์ k๊ฐ์ ํ ํฐ์ ์ ํํ๋ค (k๋ beam width ๋๋ beam size).
- ์ ํ๋ ๊ฐ ํ ํฐ์ ๋ํด, ๋ค์ ํ์ ์คํ
์์ ๊ฐ๋ฅํ ๋ชจ๋ ํ ํฐ์ ํ๋ฅ ์ ๊ณ์ฐํ๋ค.
- ์ด์ ๊ฒฝ๋ก์ ํ๋ฅ ๊ณผ ํ์ฌ ํ ํฐ์ ํ๋ฅ ์ ๊ฒฐํฉํ์ฌ $k \times |V|$ ๊ฐ์ ๊ฐ๋ฅํ ๊ฒฝ๋ก ์ค ์์ k๊ฐ๋ฅผ ๋ค์ ์ ํํ๋ค (|V|๋ ์ดํ ํฌ๊ธฐ).
- ์ข
๋ฃ ํ ํฐ์ด ๋ํ๋๊ฑฐ๋ ์ต๋ ๊ธธ์ด์ ๋๋ฌํ ๋๊น์ง 3-4 ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ๋ค.
์์์ ์ผ๋ก ํํํ๋ฉด, ์๊ฐ $t$์์์ ๊ฒฝ๋ก ์ ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค: $$score(y_1, y_2, \ldots, y_t) = \log P(y_1, y_2, \ldots, y_t|X) = \sum_{i=1}^{t} \log P(y_i|X, y_1, \ldots, y_{i-1})$$
4๋ฒ ์ค๋ช ์์ ‘์ด์ ๊ฒฝ๋ก์ ํ๋ฅ ๊ณผ ํ์ฌ ํ ํฐ์ ํ๋ฅ ์ ๊ฒฐํฉ’์ ๋จ์ multiply๋ค. ๊ทธ๋ฌ๋ ํ๋ฅ ์ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ด๋ฏ๋ก ํ์ ์คํ $t$๊ฐ ๊ธธ์ด์ง๋ฉด 0๋ณด๋ค ์์ ํ๋ฅ ๊ฐ $y_t$๊ฐ ์ ์ 0๊ณผ ๊ฐ๊น์ ์ง ๊ฒ์ด๋ฏ๋ก ์ปดํจํฐ ์ฐ์ฐ์์ underflow ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์๋ค. ๊ทธ๋์ ๋ก๊ทธ ํ๋ฅ ์ ํฉ์ผ๋ก, ์์น์ ์์ ์ฑ์ ์ํด ์ผ๋ฐ์ ์ผ๋ก ๋ก๊ทธ ๋๋ฉ์ธ์์ ๊ณ์ฐํจ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
Beam Width(Size)์ ์๋ฏธ์ ์ ํ
Beam width(k)๋ ๊ฐ ๋์ฝ๋ฉ ๋จ๊ณ์์ ์ ์งํ๋ ๊ฐ์ค์ ์๋ฅผ ๊ฒฐ์ ํ๋ ๋งค๊ฐ๋ณ์์ด๋ค. ์ด๋ ํ์ ๊ณต๊ฐ๊ณผ ๊ณ์ฐ ๋ณต์ก์ฑ, ๊ฒฐ๊ณผ์ ํ์ง ์ฌ์ด์ ์ค์ํ ๊ท ํ์ ์ ์ ๊ณตํ๋ค.
์์ beam width (k=1):
Greedy Search์ ๋์ผํ๋ฉฐ, ๊ณ์ฐ์ด ๋น ๋ฅด์ง๋ง ์ต์ ํด๋ฅผ ๋์น ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
ํฐ beam width:
๋ ๋์, ์ข
ํฉ์ ์ธ ํ์์ ๊ฐ๋ฅํ๊ฒ ํ์ง๋ง ๊ณ์ฐ ๋น์ฉ์ด ์ฆ๊ฐํ๋ค.
ASR ์์คํ
์์๋ ์ผ๋ฐ์ ์ผ๋ก k=5~20 ์ฌ์ด์ ๊ฐ์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ๋์ฝ๋ฉ ํ์ง๊ณผ ์๋ ์ฌ์ด์ ํฉ๋ฆฌ์ ์ธ ํํ์ ์ ์ ๊ณตํ๋ค. ๊ทธ๋ฌ๋ ์ต์ ์ beam width๋ ๋ชจ๋ธ ์ํคํ
์ฒ, ํ์คํฌ ๋ณต์ก์ฑ, ํ๋์จ์ด ๋ฆฌ์์ค ๋ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋, beam width๋ฅผ ๋ฌดํํ ํฌ๊ฒ ํ๋ ๊ฒ์ด ํญ์ ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ์ง๋ ์๋๋ค๊ณ ํ๋ค. ์ด๋ ‘beam search curse’๋ผ๋ ํ์์ผ๋ก, ํน์ ์๊ณ๊ฐ ์ด์์์๋ ์ฑ๋ฅ ํฅ์์ด ๋ฏธ๋ฏธํ๊ฑฐ๋ ์คํ๋ ค ๊ฐ์ํ ์ ์๋ค. ๊ทธ๋ ๋ค๊ณ ํ๋ค.
ASR ๋ชจ๋ธ ์ํคํ ์ฒ๋ณ Beam Search ์ ์ฉ
HMM-GMM์์์ Beam Search
HMM-GMM ์์คํ
์์ Beam Search๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํ๋ค:
๊ฐ ์๊ฐ ํ๋ ์๋ง๋ค ๊ฐ๋ฅํ ๋ชจ๋ HMM ์ํ์ ํ๋ฅ ์ ๊ณ์ฐํ๋ค.
ํ๋ฅ ์ด ์๊ณ๊ฐ(beam threshold) ์ดํ์ธ ์ํ๋ ์ ๊ฑฐ(pruning)ํ๋ค.
๋จ์ ํ์ฑ ์ํ(active states)์ ๋ํด์๋ง ๋ค์ ํ๋ ์์ ๊ณ์ฐ์ ์งํํ๋ค.
์์์ ์ผ๋ก, ์๊ฐ $t$์์ ์ํ $s$์ Viterbi ๊ฒฝ๋ก ํ๋ฅ ์:
$$\delta_t(s) = \max_{s’} {\delta_{t-1}(s’) \cdot a_{s’s} \cdot b_s(o_t)}$$
์ฌ๊ธฐ์:
$\delta_t(s)$: ์๊ฐ $t$์์ ์ํ $s$๊น์ง์ ์ต๋ ๊ฒฝ๋ก ํ๋ฅ
$a_{s’s}$: ์ํ $s’$์์ $s$๋ก์ ์ ์ด ํ๋ฅ
$b_s(o_t)$: ์ํ $s$์์ ๊ด์ธก๊ฐ $o_t$์ ๋ฐฉ์ถ ํ๋ฅ
Beam Search์์๋ ๊ฐ ์๊ฐ ํ๋ ์๋ง๋ค ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ํ๋ง ์ ์งํ๋ค: $$\delta_t(s) \geq \max_j {\delta_t(j)} \cdot \theta$$ ์ฌ๊ธฐ์ $\theta$๋ beam threshold(0๊ณผ 1 ์ฌ์ด์ ๊ฐ)์ด๋ค.
...