【Серыя глыбокага навучання OCR·7】Функцыя страт і трэніроўкі CTC
📅
Час публікацыі: 2025-08-19
👁️
Чытанне:2104
⏱️
Прыкладна 21 хвіліна (4005 слоў)
📁
Катэгорыя: Пашыраныя кіраўніцтва
Прынцып, рэалізацыя і тэхнікі навучання функцыі страты CTC, а таксама асноўная тэхналогія для вырашэння праблемы выраўноўвання паслядоўнасцяў. Паглыбіцеся ў алгарытмы наперад-назад, стратэгіі дэкадавання і метады аптымізацыі.
## Уводзіны
Канекцыянісцкая часавая класіфікацыя (CTC) — важны прарыў у мадэляванні паслядоўнасцей глыбокага навучання, асабліва ў галіне OCR. CTC вырашае фундаментальную праблему неадпаведнасці паміж даўжынёй уваходнай паслядоўнасці і выхаднай паслядоўнасці, што дазваляе навучанне паслядоўнасці ад канца да канца. Гэты артыкул паглыбіцца ў матэматычныя прынцыпы, рэалізацыю алгарытмаў і метады аптымізацыі трэніровак CTC.
## Асноўныя канцэпцыі CTC
### Праблемы з выраўноўваннем паслядоўнасці
У задачах OCR мы сутыкаемся з наступнымі выклікамі:
**Неадпаведнасць даўжыні**: Даўжыня паслядоўнасці ўваходных выяў адрозніваецца ад даўжыні тэкставай паслядоўнасці. Напрыклад, слова, якое ўтрымлівае 3 сімвалы, можа адпавядаць паслядоўнасці прыкмет з 100 часавых крокаў.
**Няпэўная пазіцыя**: Дакладнае становішча кожнага сімвала на малюнку невядома. Традыцыйныя метады патрабуюць дакладнай сегментацыі сімвалаў, што складана на практыцы.
**Цяжкасці сегментацыі сімвалаў**: Бесперапынна напісаны тэкст, рукапісны тэкст або мастацкія шрыфты цяжка дакладна падзяліць іх на асобныя сімвалы.
### Рашэнне CTC
CTC вырашае задачы выраўноўвання паслядоўнасцей наступнымі інавацыйнымі спосабамі:
Прадстаўляем пустыя маркеры: выкарыстоўвайце спецыяльныя пустыя маркеры для выраўноўвання. Пустыя тэгі не адпавядаюць ніводным выхадным сімвалам і выкарыстоўваюцца для аддзялення дублікатаў сімвалаў ад паслядоўнасцяў запаўнення.
Верагоднасць шляху: Вылічвае верагоднасць усіх магчымых шляхоў выраўноўвання. Кожны шлях прадстаўляе магчымую адпаведнасць крокаў па характары ў час.
**Дынамічнае планаванне**: Эфектыўна разлічваць верагоднасці шляхоў з выкарыстаннем алгарытмаў наперад-назад, пазбягаючы пераліку ўсіх магчымых шляхоў.
## Матэматычныя прынцыпы CTC
### Асноўныя вызначэнні
Пры ўваходнай паслядоўнасці X = (x₁, x₂, ..., xt) і мэтавай паслядоўнасці Y = (y₁, y₂, ..., yu), дзе T ≥ U.
Набор тэгаў: L = {1, 2, ..., K}, які ўключае K катэгорый сімвалаў.
**Пашыраная калекцыя тэгаў**: L_ext = L ∪ {blank}, якая ўтрымлівае пустыя тэгі.
**Шлях выраўноўвання**: паслядоўнасць даўжыні T π = (π₁, π₂, ..., πt), дзе πt ∈ L_ext.
### Адлюстраванне шляхоў да тэгаў
CTC вызначае функцыю адлюстравання B, якая пераўтварае шлях выраўноўвання ў паслядоўнасць выхадных метак:
1. Выдаліце ўсе пустыя маркеры
2. Аб'яднаць паслядоўныя дублікаты персанажаў
**Прыклад адлюстравання**:
- π = (a, a, blank, b, blank, b, b) → B(π) = (a, b, b)
- π = (пусты, c, c, a, blank, t) → B(π) = (c, a, t)
### Функцыя страт CTC
Функцыя страт CTC вызначаецца як адмоўны лагарыфм сумы ўсіх верагоднасцяў шляху, адлюстраваных у мэтавую паслядоўнасць Y:
L_CTC = -log P(Y| X) = -log Σ_{π∈B⁻¹(Y)} P(π| X)
дзе B⁻¹(Y) — мноства ўсіх шляхоў, адлюстраваных у Y.
Верагоднасць шляху: Пры ўмове, што прагнозы кожнага кроку часу незалежныя, верагоднасць шляху роўная:
P(π| X) = ∏t yt^{πt}
дзе yt^{πt} — верагоднасць таго, што крок часу t прадказвае пазнаку πt.
## Алгарытм наперад-назад
### Алгарытм Forward
Алгарытм наперад вылічвае верагоднасць шляху ад пачатку паслядоўнасці да бягучай пазіцыі.
**Пашыраная паслядоўнасць пазнак**: Для спрашчэння вылічэння пашырайце мэтавую паслядоўнасць Y да Y_ext, устаўляючы пустыя тэгі перад і пасля кожнага сімвала.
**Ініцыялізацыя**:
- α₁(1) = y₁^{blank} (першая пазіцыя пустая)
- α₁(2) = y₁^{y₁} (першая пазіцыя — першы сімвал)
- α₁(s) = 0 для іншых месцаў
**Рэкурсіўная формула**:
Для t > 1 і пазіцыі s:
- Калі Y_ext[s] пусты або супадае з папярэднім сімвалам:
α_t(s) = (α_{t-1}(s) + α_{t-1}(s-1)) × y_t^{Y_ext[s]}
- Інакш:
α_t(s) = (α_{t-1}(s) + α_{t-1}(s-1) + α_{t-1}(s-2)) × y_t^{Y_ext[s]}
### Зваротны алгарытм
Зваротны алгарытм вылічвае верагоднасць шляху ад бягучай пазіцыі да канца паслядоўнасці.
**Ініцыялізацыя**:
- β_T(| Y_ext|) = 1
- β_T(| Y_ext|-1) = 1 (калі апошні тэг не пусты)
- β_T(s) = 0 для іншых месцаў
**Рэкурсіўная формула**:
Для t < T і пазіцый s:
- Калі Y_ext [s+1] пусты або супадае з бягучым сімвалам:
β_t(s) = (β_{t+1}(s) + β_{t+1}(s+1)) × y_{t+1}^{Y_ext[s+1]}
- Інакш:
β_t(s) = (β_{t+1}(s) + β_{t+1}(s+1) + β_{t+1}(s+2)) × y_{t+1}^{Y_ext[s+1]}
### Разлік градыентаў
Агульная верагоднасць: P (Y| X) = α_T(| Y_ext|) + α_T(| Y_ext|-1)
**Градыент верагоднасці пазнакі**:
∂(-у P(Y| X))/∂y_k^t = -1/P(Y| X) × Σ_{s:Y_ext[s]=k} (α_t(s) × β_t(s))/y_k^t
## Стратэгія дэкадавання CTC
### Жадлівае расшыфроўка
Greedy дэкадуе пазнаку з найвышэйшай верагоднасцю на кожным кроку часу:
π_t = argmax_k y_t^k
Затым прымяняйце B-адлюстраванне для атрымання канчатковай паслядоўнасці.
**Плюсы**: лёгкія разлікі і хуткая хуткасць
**Недахопы**: Глабальнае аптымальнае рашэнне можа быць атрымана немагчыма
### Дэкадаванне пошуку па bundle
Пошук па пучку падтрымлівае некалькі шляхоў кандыдатаў, пашыраючы найбольш перспектыўныя шляхі на кожным этапе часу.
**Крокі алгарытму**:
1. Ініцыялізаваць: Кандыдатная калекцыя змяшчае пустыя шляхі
2. Для кожнага кроку часу:
- Пашырыць усе шляхі кандыдатаў
- Захаваць K-шлях з найвышэйшай верагоднасцю
3. Вярнуць поўны шлях з найвышэйшай верагоднасцю
**Настройка параметраў**:
- Шырыня пучка K: Балансуе вылічальную складанасць з якасцю дэкадавання
- Штраф за даўжыню: Пазбягайце перавагі кароткіх паслядоўнасцяў
### Пошук па прэфіксных пакетах
Пошук па прэфіксных пучках разглядае верагоднасць прэфікса шляху, каб пазбегнуць падвойнага падліку шляхоў з тым жа прэфіксам.
**Асноўная ідэя**: Аб'яднаць шляхі з адным прэфіксам і захаваць толькі найбольш верагодны метад пашырэння.
## Тэхнікі навучання і аптымізацыя
### Папярэдняя апрацоўка дадзеных
**Апрацоўка даўжыні паслядоўнасці**:
- Дынамічнае пакетаванне: групаванне паслядоўнасцей падобнай даўжыні
- Стратэгія запаўнення: запаўняць кароткія паслядоўнасці спецыяльнымі маркерамі
- Стратэгія адсячэння: разумна абразаць празмерна доўгія паслядоўнасці
**Папярэдняя апрацоўка этыкеткі**:
- Стандартызацыя набору сімвалаў: аднастайнае кадаванне і капіталізацыя сімвалаў
- Спецыяльная апрацоўка знакаў: Кіруе знакамі прыпынку і прабелы
- Развіццё слоўнікавага запасу: стварэнне поўнага слоўніка персанажаў
### Стратэгія трэніровак
**Навучанне курсу**:
Пачынайце трэніравацца з простых узораў і паступова павялічвайце складанасць:
- Кароткія і доўгія паслядоўнасці
- Чыстая выява ў размытае
- Звычайныя шрыфты для рукапісных шрыфтоў
**Паляпшэнне дадзеных**:
- Геаметрычныя пераўтварэнні: паварот, маштабаванне, разрэз
- Даданне шуму: гаусавы шум, соль і перац шуму
- Змены асвятлення: яркасць, рэгуляванне кантрасту
**Тэхнікі рэгулярызацыі**:
- Dropout: прадухіляць перападгонку
- Зніжэнне вагі: рэгулярацыя L2
- Згладжванне этыкеткі: зніжае празмерную ўпэўненасць у сабе
### Наладка гіперпараметраў
**Планаванне хуткасці навучання**:
- Стратэгія разагрэву: Першыя некалькі эпох выкарыстоўваюць невялікую хуткасць навучання
- Касінуснае адпал: хуткасць навучання змяншаецца ў залежнасці ад косінуснай функцыі
- Адаптыўнае наладжванне: карэктуе на аснове прадукцыйнасці валідацыйнага набору
**Выбар памеру партыі**:
- Абмежаванні памяці: Разгледзьце ёмістасць памяці GPU
- Градыентная стабільнасць: забяспечвае больш устойлівы градыент для большых партый
- Хуткасць збліжэння: трэніроўка балансу, хуткасць і стабільнасць
## Практычныя аспекты прымянення
### Камп'ютарная аптымізацыя
**Аптымізацыя памяці**:
- Градыентныя кантрольныя пункты: Зніжае памяць прамога распаўсюджвання
- Трэніроўка змешанай дакладнасці: знізіць патрэбы ў памяці з FP16
- Дынамічная аптымізацыя графаў: аптымізацыя размеркавання памяці для разлічаных графаў
**Аптымізацыя хуткасці**:
- Паралельныя вылічэнні: выкарыстоўвае магчымасці паралельнай апрацоўкі GPU
- Аптымізацыя алгарытмаў: рэалізавана з выкарыстаннем эфектыўных алгарытмаў наперад-назад
- Аптымізацыя пакетаў: адпаведна наладжваць памеры пакетаў
### Лічбавая стабільнасць
**Разлік верагоднасці**:
- Вылічэнне ў логарифмічнай прасторы: пазбягайце перапаўнення значэння, выкліканага множаннем верагоднасці
- Лікавае абрэзанне: Абмяжоўвае дыяпазон значэнняў верагоднасці
- Метады нармалізацыі: Забеспячэнне сапраўднасці верагоднасных размеркаванняў
**Градыентная стабільнасць**:
- Градыентнае кадраванне: прадухіляе выбухі з градыентам
- Ініцыялізацыя вагі: Выкарыстоўвайце адпаведную стратэгію ініцыялізацыі
- Пакетная нармалізацыя: стабілізуе працэс навучання
## Ацэнка эфектыўнасці
### Ацаніць метрыкі
**Дакладнасць на ўзроўні персанажа**:
Accuracy_char = Колькасць правільна распазнаных сімвалаў / Агульная колькасць сімвалаў
**Дакладнасць на серыйным узроўні**:
Accuracy_seq = Колькасць дакладна правільных паслядоўнасцей / агульная колькасць паслядоўнасцей
**Адлегласць рэдагавання**:
Вымярае розніцу паміж прадказанай паслядоўнасцю і рэальнай паслядоўнасцю, уключаючы мінімальную колькасць аперацый устаўкі, выдалення і замены.
### Аналіз памылак
**Распаўсюджаныя тыпы памылак**:
- Блытаніна персанажаў: няправільная ідэнтыфікацыя падобных персанажаў
- Дублікаты памылак: CTC звычайна ствараюць дублікаты сімвалаў
- Памылка даўжыні: Недакладныя прагнозы даўжыні паслядоўнасці
**Стратэгіі паляпшэння**:
- Складанае майнінгаванне выбаркі: Засяроджванне на навучанні ўзораў з высокім узроўнем памылак
- Аптымізацыя постапрацоўкі: Выпраўляе памылкі з дапамогай моўных мадэляў
- Інтэграваны падыход: аб'яднанне прагнозаў з некалькіх мадэляў
## Рэзюмэ
Функцыя страты CTC забяспечвае магутны інструмент для мадэлявання паслядоўнасцяў, асабліва пры вырашэнні праблем выраўноўвання. Уводзячы алгарытмы пустой маркіроўкі і дынамічнага праграмавання, CTC рэалізуе скразнае навучанне паслядоўнасцей і пазбягае складаных этапаў папярэдняй апрацоўкі.
**Асноўныя высновы**:
- CTC вырашае праблему нясупадзення даўжынь паслядоўнасцяў уваходных і выхадных сітуацый
- Алгарытмы наперад-назад забяспечваюць эфектыўныя разлікі верагоднасці
- Адпаведная стратэгія дэкадавання мае вырашальнае значэнне для канчатковай прадукцыйнасці
- Метады навучання і стратэгіі аптымізацыі істотна ўплываюць на прадукцыйнасць мадэлі
**Рэкамендацыі па прымяненні**:
- Выбраць адпаведную стратэгію дэкадавання для канкрэтнай задачы
- Акцэнт на тэхніку папярэдняй апрацоўкі і паляпшэння дадзеных
- Акцэнт на лікавой устойлівасці і вылічальнай эфектыўнасці
- Аптымізацыя постпрацэдуры на аснове ведаў у галіне
Паспяховае прымяненне CTC заклала важную аснову для развіцця глыбокага навучання ў галіне мадэлявання паслядоўнасцяў, а таксама аказала ключавую падтрымку для развіцця тэхналогіі OCR.
Тэгі:
Функцыя страт CTC
Далучайцеся да класіфікацыі таймінгу
Выраўноўванне паслядоўнасцей
Алгарытм наперад-назад
Дынамічнае планаванне
Навучанне OCR
Мадэляванне паслядоўнасцей