diff --git a/.obsidian/command-palette.json b/.obsidian/command-palette.json new file mode 100644 index 0000000..58f1227 --- /dev/null +++ b/.obsidian/command-palette.json @@ -0,0 +1,3 @@ +{ + "pinned": null +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json index 8061185..5f0f725 100644 --- a/.obsidian/hotkeys.json +++ b/.obsidian/hotkeys.json @@ -105,5 +105,14 @@ ], "key": "B" } - ] + ], + "omnisearch:show-modal": [ + { + "modifiers": [ + "Mod" + ], + "key": "O" + } + ], + "switcher:open": [] } \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 0df0006..3cd76c3 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,22 +4,22 @@ "type": "split", "children": [ { - "id": "946e81f3f58cc43f", + "id": "c6e676526594845b", "type": "tabs", "children": [ { - "id": "138b2b667c7cb5bc", + "id": "cb9f1037ae0492db", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "00 Inbox/Обратное распространение ошибки - вывод.md", - "mode": "source", + "file": "01 Library/11 Machine Learning/Обратное распространение ошибки.md", + "mode": "preview", "source": false, "backlinks": false }, "icon": "lucide-file", - "title": "Обратное распространение ошибки - вывод" + "title": "Обратное распространение ошибки" } } ] @@ -246,8 +246,12 @@ "obsidian-git:Open Git source control": false } }, - "active": "138b2b667c7cb5bc", + "active": "cb9f1037ae0492db", "lastOpenFiles": [ + "01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md", + "00 Inbox/Hello.md", + "00 Inbox/Обратное распространение ошибки - вывод.md", + "99 System/Archive/Обратное распространение ошибки - вывод.md", "00 Inbox/Статья на английский.md", "03 Journal/03 Journal.md", "AGENTS.md", @@ -261,7 +265,6 @@ "99 System/Archive/Шаблонизатор Helm.md", "99 System/Archive/УИР.md", "99 System/Archive/Основные команды git.md", - "00 Inbox/Обратное распространение ошибки - вывод.md", "99 System/Archive/Введение в сетевую безопасность.md", "99 System/Archive/Gitlab.md", "99 System/Archive/Git.md", @@ -271,9 +274,6 @@ "00 Inbox/Archive/УИР.md", "00 Inbox/Archive/Основные команды git.md", "00 Inbox/Archive/Обратное распространение ошибки - вывод.md", - "00 Inbox/Archive/Введение в сетевую безопасность.md", - "00 Inbox/Archive/Gitlab.md", - "00 Inbox/Archive/Git.md", "00 Inbox/Archive", "01 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md.tmp.254945.1777751883191", "01 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503", diff --git a/.trash/Hello.md b/.trash/Hello.md new file mode 100644 index 0000000..107f10f --- /dev/null +++ b/.trash/Hello.md @@ -0,0 +1,8 @@ +--- +status: seed +type: concept +tags: [] +created: 2025-12-17 +updated: 2026-02-27 +title: +--- diff --git a/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md b/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md index 5ba3994..35fe103 100644 --- a/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md +++ b/01 Library/11 Machine Learning/Обратное распространение ошибки - вывод.md @@ -6,7 +6,7 @@ tags: - neural-networks - backpropagation created: 2025-12-17 -updated: 2026-05-02 +updated: 2026-05-07 title: Обратное распространение ошибки - вывод --- @@ -73,6 +73,143 @@ $$ \frac{dE}{dw_{li}^{(2)}}=(y_l-d_l)F'(S_l^{(2)})u_i $$ +Введём локальную ошибку выходного нейрона: + +$$ +\delta_l^{(2)}=(y_l-d_l)F'(S_l^{(2)}) +$$ + +Тогда: + +$$ +\frac{dE}{dw_{li}^{(2)}}=\delta_l^{(2)}u_i +$$ + +## Обратный проход для скрытого слоя + +Теперь нужна производная ошибки по весу первого слоя: + +$$ +\frac{\partial E}{\partial w_{ij}^{(1)}} +$$ + +Вес $w_{ij}^{(1)}$ влияет на $E$ не напрямую, а через все выходные нейроны: + +$$ +w_{ij}^{(1)} \rightarrow u_i \rightarrow y_l \rightarrow E +$$ + +По правилу цепочки нужно просуммировать вклады всех путей от скрытого нейрона $i$ к выходным нейронам: + +$$ +\frac{\partial E}{\partial w_{ij}^{(1)}} = +\sum\limits_{l=1}^{m} +\frac{\partial E}{\partial y_l} +\cdot +\frac{\partial y_l}{\partial u_i} +\cdot +\frac{\partial u_i}{\partial w_{ij}^{(1)}} +$$ + +Первый множитель: + +$$ +\frac{\partial E}{\partial y_l}=y_l-d_l +$$ + +Производная выхода $y_l$ по выходу скрытого нейрона $u_i$: + +$$ +\frac{\partial y_l}{\partial u_i} += +\frac{\partial y_l}{\partial S_l^{(2)}} +\cdot +\frac{\partial S_l^{(2)}}{\partial u_i} +$$ + +Так как: + +$$ +S_l^{(2)}=\sum w_{li}^{(2)}u_i +$$ + +То: + +$$ +\frac{\partial y_l}{\partial u_i} += +F'(S_l^{(2)})w_{li}^{(2)} +$$ + +Производная выхода скрытого нейрона $u_i$ по весу $w_{ij}^{(1)}$: + +$$ +\frac{\partial u_i}{\partial w_{ij}^{(1)}} += +\frac{\partial u_i}{\partial S_i^{(1)}} +\cdot +\frac{\partial S_i^{(1)}}{\partial w_{ij}^{(1)}} +$$ + +Так как: + +$$ +S_i^{(1)}=\sum w_{ij}^{(1)}x_j +$$ + +То: + +$$ +\frac{\partial u_i}{\partial w_{ij}^{(1)}} += +F'(S_i^{(1)})x_j +$$ + +Собираем: + +$$ +\frac{\partial E}{\partial w_{ij}^{(1)}} = +\sum\limits_{l=1}^{m} +(y_l-d_l) +F'(S_l^{(2)}) +w_{li}^{(2)} +F'(S_i^{(1)}) +x_j +$$ + +Вводим локальную ошибку скрытого нейрона: + +$$ +\delta_i^{(1)} += +\sum\limits_{l=1}^{m} +(y_l-d_l) +F'(S_l^{(2)}) +w_{li}^{(2)} +F'(S_i^{(1)}) +$$ + +Или через ошибку выходного слоя $\delta_l^{(2)}$: + +$$ +\delta_i^{(1)} += +F'(S_i^{(1)}) +\sum\limits_{l=1}^{m} +\delta_l^{(2)} +w_{li}^{(2)} +$$ + +Тогда: + +$$ +\frac{\partial E}{\partial w_{ij}^{(1)}} += +\delta_i^{(1)}x_j +$$ + +Ошибка выходного слоя $\delta_l^{(2)}$ проходит назад через вес $w_{li}^{(2)}$, суммируется по всем выходным нейронам и умножается на крутизну активации скрытого слоя. Так получается локальная ошибка $\delta_i^{(1)}$ для каждого скрытого нейрона. + ## Связанные заметки - [[Обратное распространение ошибки]] diff --git a/00 Inbox/Обратное распространение ошибки - вывод.md b/99 System/Archive/Обратное распространение ошибки - вывод.md similarity index 100% rename from 00 Inbox/Обратное распространение ошибки - вывод.md rename to 99 System/Archive/Обратное распространение ошибки - вывод.md