LINUX.ORG.RU

Зачем у нейросеток на последнем слое не линейная функция активации?

 


0

1

Зачем у нейронных сеток делают последний слой с не линейной функцией активации (ФА)?

Если используется не линейная ФА на последнем слое, тогда нужно подстраивать данные под диапазон этой ФА. Эта не линейность на последнем слое не может улучшить результат за счет своей не линейности, разве только если распределение обучаемых выходных данных хорошо вписывасываются в диапазон этой ФА.

Если используется линейная ФА, тогда для пакетного градиентного спуска последний слой можно просто считать по уравенениям линейного МНК. И тогда многослойная сетка становится на один слой проще, что кажется существенно. Для стохастических можно что-нибудь комбинированное придумывать.

Читаем внимательно: речь про последний слой.



Последнее исправление: victor79 (всего исправлений: 1)

без нелинейной функции активации в сети, NN, независимо от того, сколько слоев у него было, будет вести себя так же, как однослойный персептрон, потому что суммирование этих слоев даст вам просто еще одну линейную функцию

olelookoe ★★★
()
Ответ на: комментарий от olelookoe

Читайте внимательней: на последнем. Последний просуммировали, обработали сигмоидой и вот результат. Зачем эта последняя сигмоида? Она ни с какой другой сигмоидой больше не суммируется, и вообще ни счем дальше не суммируется.

victor79
() автор топика
Последнее исправление: victor79 (всего исправлений: 2)
Ответ на: комментарий от victor79

Никто не знает точно, как именно работает обученная нейронная сеть.

Поэтому использование любого сигмойда (базовой модели любого процесса), вполне разумно.

Shadow ★★★★★
()
Ответ на: комментарий от victor79

нейронная сеть вполне может содержать нейроны с линейной функцией активации в выходном слое. от задачи же зависит.

olelookoe ★★★
()
Ответ на: комментарий от olelookoe

Но я в принципе не вижу смысла там делать не линейную ФА. За исключением случая, как я написал, когда распределение выходных обучаемых данных соответсуют этой функции, что в принципе крайняя редкость. А в остальных случаях это причина ухудшения сходимости сетки.

При этом тот крайне-редкий случай лучше преобразовать обучающие данные, и дальше использовать линейную ФА на последнем. Потому что это улучшит сходимость, потому что можно будет использовать линейный МНК для последнего слоя.

victor79
() автор топика
Последнее исправление: victor79 (всего исправлений: 1)
Ответ на: комментарий от victor79
  • softmax - на этих изображениях только кошки или собаки, но не оба
  • сигмоид - эти изображения могут содержать кошек, собак или кошек и собак вместе, или ни кошек, ни собак
  • линейная - прибыль или убыток, например, не ограничены ни сверху ни снизу
  • ReLU - есть ограничение или сверху или снизу
  • tanh - данные ограничены таким образом, что их можно представить как нечто в диапазоне [-1,1]
olelookoe ★★★
()
Ответ на: комментарий от olelookoe

Но я все же говорю исключительно про последний слой. Первый и внутренние пусть остаются такими какими их уже придумали.

Если последний без сигмоиды, тогда коэффициенты последнего слоя считаем по линейной МНК за один проход. Дальше, предыдущие слои по тем формулам, которые соответсвуют их ФА от остаточной ошибки после МНК. После, последующие итерации обучения повторяются снова начиная с МНК.

Получится что обучение сетки упрощается на целый слой. Или как минимум половину слоя.

victor79
() автор топика
Ответ на: комментарий от victor79

все вышесказанное - это про функции активации для выходного слоя

olelookoe ★★★
()
Ответ на: комментарий от victor79

Последний просуммировали, обработали сигмоидой и вот результат. Зачем эта последняя сигмоида

Для того чтобы сигнал на выходе был в определённом диапазоне. Где-то вообще требуется строго 0/1. Очевидно же. Если тебе не нужно нормировать сигнал, ну ок, оставь как есть -+inf, т.е. можешь вообще выкинуть функцию.

no-such-file ★★★★★
()
Ответ на: комментарий от victor79

Если последний без сигмоиды, тогда коэффициенты последнего слоя считаем по линейной МНК за один проход

А сигмойдой разве не за один проход? Для последнего слоя.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Всё в нейронной сети от фильтрации входящих данных до выхода делается чисто не подбор в зависимости от того что нужно от сетки.

Можно вообще в теории на последнем слое ФА выкинуть нахрен и построить дерево выходных данных к ответам если их не лярд, слой не большой и «ответы конкретные».

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Случай бинарной классификации. На выходе нужно получить 0 или 1. Выход после сигмоиды округляешь и получаешь то что нужно.

ox55ff ★★★★★
()

слой с не линейной функцией активации

С линейной сеть умеет выполнять линейный дискриминантный анализ, но не умеет сотворить кластеризацию. Например, она «не смогёт» прикинуться сетью Кохонена.

многослойная сетка становится на один слой проще

… и на один слой глупее :)

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

… и на один слой глупее :)

Не линейность важна только при сложении с другими не линейностями. Последний слой ни скем не складывается. Поэтому глупее она не будет точно, если речь про классическую сетку с логистическими или подобными сигмоидами.

victor79
() автор топика
Ответ на: комментарий от victor79

Потому что разрядность представления результата конечна.

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.