そのためこの2つのパスは等価な出力をするため、同じ出力候補としてそれぞれのパスに割り当てられた確率の和がこのあという出力候補に割り当てられる確率となる。他のパスと出力結果の対応としては、以下のようになる。いいあいあそして、最終的に出力が等価となるようなパスに割り当てられた確率の和が、その出力の確率となる。確率が最大となるような出力がCTCのデコード結果となる。これが簡単なCTCの原理。検索し、出力が等価なものを足し合わせるというのが理想形である。10000000000$$と、膨大な数となる。アルファベットでさえも26文字あるのだからヤバさが伝わるかと思う。そのためある程度候補を削りながらパス探索していく必要がある。そこでビームサーチと組み合わせたパス探索の手法が考え出された。Decoderでは、具体的にビームサーチがどのように適用されていくのか中身を見ていく。個のみを候補パスとして残す次のタイムステップへと移り、1,2を繰り返すで進められていく。ビームサーチの具体例ビームサーチ単体を用いた場合のパス探索結果を見てみる。先程のニューラルネットワークが出力した各タイムステップごとの確率分布を再度見てみる。すると、まず、候補となるパスのリストが存在している。始まる前はもちろん、このリストは空となる。とき、_といが上位2位のパス(確率は0.3と0.5)となるのでこの2つをパス候補のリストに加える。\\$$次にのタイムステップに移る。残ったパスから考えれば良いので、__(0.15)、_あ(0.03)、_い(0.12)、い_(0.25)、いあ(0.05)、いい(0.20)の6つが残る。この中で上位2つを選べば良いのでい_といいの2つが残る。$$これを繰り返していく。い_といいは出力としては等価なものになるので同じものとして扱う必要があるが、次に加わる文字によっては挙動が変化するので注意が必要となる。い_のように_で終わるものだと次に追加される文字がいのとき、いいと出力されるが、いいと_で終わっていないものについてはいいいとなりいと連続しない出力となる。そのため、確率スコアを計算するとき、_でパスが終わっているかどうかは区別して考慮する必要がある。1$$という関係が成り立つ。Searchではパスの数ではなく候補となる出力単位で残していくものを選んでいく。