Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 4 / 1
Регистрация: 15.12.2015
Сообщений: 255

Работа нейросети из книги Тарика Рашида "Создаем нейронную сеть"

01.03.2019, 10:09. Показов 2810. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Вопрос наверное к тем, кто читал сабжевую книгу и понимает, что там за сетка получается. Но если вдруг кто-то хочет вникнуть, могу код выкинуть сюда)
Суть в чем: почитал данную книгу, закодил сеть, вроде все ок, но после обучения на некоторые запросы вылезают абсолютно непонятные ответы.
Пример:
Число 1 (пример 2 из тестовой выборки, та, которая на 10к символов). Распозналось, все ок.
Number:1
[[0.00398008]
[0.98558241]
[0.00606792]
[0.00405597]
[0.00673832]
[0.01610383]
[0.00329936]
[0.00841806]
[0.00129213]
[0.01342358]]

А вот например число 3, пример 44
Number:3
[[3.05964245e-03]
[1.77014279e-02]
[2.51042833e-02]
[9.96949931e-01]
[1.81987933e-02]
[3.71740735e-03]
[6.28955812e-04]
[8.90080542e-04]
[8.70240219e-05]
[2.31728156e-02]]

Это что за ерунда на выходе ? Как оно может такое получится, у нас же все выходные значения проходят через сигмоиду, а она по-определению не может вернуть числа, которое больше единицы.
Или я чего-то не понимаю ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2019, 10:09
Ответы с готовыми решениями:

Пороговая функция активации для нейросети Тарика Рашида
Добрый день уважаемые форумчане. Изучал книгу "Создаем нейронную сеть" Тарика Рашида. Он использует - сигмоидальную функцию...

Рассчитать нейронную сеть
Рассчитать нейронную сеть с четырьмя входами, состоящую из двух нейронов (по-добрать веса w). При подаче на вход сигналов на выходах...

Обучить нейронную сеть
Здравствуйте! Подскажите, пожалуйста заданием: дан конус, он вписан в куб со стороной 2, куб сам лежит от -1 до 1. Нужно обучить...

11
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
01.03.2019, 10:24
bobo96, они разве больше 1? Там максимальное число: [0.996949931] aka [9.96949931e-01]

Добавлено через 48 секунд
https://ru.wikipedia.org/wiki/... 1%81%D1%8C
1
5 / 4 / 1
Регистрация: 15.12.2015
Сообщений: 255
01.03.2019, 10:32  [ТС]
Цитата Сообщение от Arsegg Посмотреть сообщение
они разве больше 1?
Вот я и говорю: что-то не понимаю)) Спасибо.
Т.е. во втором случае число просто длинное очень получается, поэтому и трансформируется в экспоненциальную запись ?
0
0 / 0 / 0
Регистрация: 23.06.2017
Сообщений: 5
16.11.2019, 16:40
Тоже вопрос по этой книге.
На страницах 114-115 рассказывается о зависимости ошибки от весовых коэффициентов.

Вопрос такой: откуда перед двойкой взялся знак "минус"?
Ведь при дифференцировании степеней никакого знака отрицательного значения быть не должно:
0
2649 / 1660 / 267
Регистрация: 19.02.2010
Сообщений: 4,392
16.11.2019, 17:28
Цитата Сообщение от BlYur Посмотреть сообщение
откуда перед двойкой взялся знак "минус"?
от школьного цепного правила дифференцирования сложной функции https://www.cyberforum.ru/cgi-bin/latex.cgi?(t_k-o_k)^2 по переменной https://www.cyberforum.ru/cgi-bin/latex.cgi?o_k. Сначала производная степени, затем её домножили на производную подстепенного выражения (т.е. на -1)
0
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
17.06.2022, 02:29
Здравствуйте! Тоже вопрос по книге.
Как в книге из одного выражения получилось другое
Если Вас не затруднит, объясните пожалуйста.
Миниатюры
Работа нейросети из книги Тарика Рашида "Создаем нейронную сеть"  
Изображения
 
0
2649 / 1660 / 267
Регистрация: 19.02.2010
Сообщений: 4,392
17.06.2022, 11:06
На первой картинке - обведена производная логистической сигмоиды, записанная в кривом излишне длинном виде.
При функции https://www.cyberforum.ru/cgi-bin/latex.cgi?y(x)= \frac {1}{1+{exp}^{-y}} её производная будет равна https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {dy}{dx}=y(x)(1-y(x)).
Т.е. по книжной записи может казаться, что значение сигмоидной функции (и перед этим - значение её аргумента) при вычислении производной нужно вычислить заново - но это не так. Можно взять готовое значение функции (выход нейрона), вычисленное при прямом распространении, и производную посчитать как y(x)(1-y(x)), т.е. независимо от числа входов и весов нейрона.

На второй картинке - просто символ частной производной выходного сигнала сети по какому-то из весов какого-то скрытого нейрона.
1
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
17.06.2022, 11:55
VTsaregorodtsev, Как раз из второй картинки из частной производной у автора получается это длинное выражение

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

Добавлено через 5 минут
VTsaregorodtsev, Я понимаю принцип, но не понимаю как это выходит из математических законов, если можно распишите пожалуйста правила и свойства производных из которых у него получается это выражение

Добавлено через 2 минуты
Как дифференцировать сигмойду я понимаю, я не понимаю как в конце оказалось Oj, это сигнал предыдущего слоя если я правильно понимаю
0
2649 / 1660 / 267
Регистрация: 19.02.2010
Сообщений: 4,392
17.06.2022, 12:12
Цитата Сообщение от dnscheb Посмотреть сообщение
Как раз из второй картинки из частной производной у автора получается это длинное выражение
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {\partial E}{\partial {w}_{jk}}=\frac {\partial E}{\partial {o}_{k}} * \frac {\partial {o}_{k}}{\partial {w}_{jk}}
Поскольку для рассматриваемой в примере https://www.cyberforum.ru/cgi-bin/latex.cgi?E будет https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {\partial E}{\partial {o}_{k}} = -(t_k-o_k) - то соответственно всё остальное в той книжной длинной формуле относится к https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {\partial {o}_{k}}{\partial {w}_{jk}}

Цитата Сообщение от dnscheb Посмотреть сообщение
а после этого у него еще в конце получился множитель Oj
Это вых.сигнал нейрона предыдущего слоя. Получается при дифференцировании аргумента сигмоиды (выражения в виде взвешенной суммы входов нейрона) по wjk.

Цитата Сообщение от dnscheb Посмотреть сообщение
Я понимаю принцип, но не понимаю как это выходит из математических законов
Там обычное использование цепного правила дифференцирования сложной функции, и ничего более.
1
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
17.06.2022, 13:29
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Там обычное использование цепного правила дифференцирования сложной функции, и ничего более.
В книги также написано, что это простое цепное правило, но у меня мало опыта в дифференцировании и мне сложно его применить если я не вижу.
Если Вам не сложно можете показать как Oj там получается

Добавлено через 32 минуты
В книгЕ
0
2649 / 1660 / 267
Регистрация: 19.02.2010
Сообщений: 4,392
17.06.2022, 16:09
Цитата Сообщение от dnscheb Посмотреть сообщение
Если Вам не сложно можете показать как Oj там получается
https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {\partial \sum_{j}^{}{w}_{jk}{o}_{j}}{\partial {w}_{jk}} - чему будет равно?
Будет равно множителю при wjk, т.е. будет равно oj.

Просто запись частной производной в таком виде - получается кривоватой с точки зрения математики. "Вверху" и "внизу" в записи - выходят "разные по смыслу" j: вверху это переменная, по которой происходит суммирование и которая принимает значения из некоторого интервала целых чисел, а внизу - это конкретный индекс некоторого элемента той суммы, принимающий при расчёте каждой частной производной только лишь одно из возможных значений.
Т.е. если бы вверху либо внизу вместо j использовался другой символ (например, q (выбор чисто навскидку, ибо я книжку Рашида не читал и не знаю, что у него там может быть обозначено таким символом)) - то могло бы быть понятнее.
Ну или для понимания просто избавься вверху от j, расписав сумму на несколько слагаемых, т.е. погляди на https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac {\partial ({w}_{1k}{o}_{1}+{w}_{2k}{o}_{2}+...+{w}_{nk}{o}_{n})}{\partial {w}_{jk}} при j, принявшем какое-то значение из интервала целых чисел [1,n]. Вот oj в итоге и выйдет значением такой производной.
1
3 / 3 / 0
Регистрация: 14.07.2012
Сообщений: 86
17.06.2022, 17:10
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
чему будет равно
Огромное человеческое спасибо Вам!
Сигма меня сильно дизмаралила, оказывается ее можно просто игнорировать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2022, 17:10
Помогаю со студенческими работами здесь

Создать нейронную сеть
сможете мне создать нс

Поправте нейронную сеть)))
Я программу вродь как написал, хотел попросить посмотреть, правильно ли я вобще делаю))) А то предмет новый... вот условие: Найти...

Создать нейронную сеть
Доброе время суток! Нейрон - это класс? Типо это нейронная сеть или нет class Neuron { public: int a, b, c; int...

Организовать нейронную сеть...
Пожайлуста, помогите решить задание по Matlab :gcray: Очень надеюсь на Вашу помощь.

Создаём wi-fi сеть
Здрасте всем ^^ нужно сделать wi-fi сеть с доступом в инет, между компом с роутером(TP-LINK WR542G) и ноутом ^^ можно ли объяснить пошагово...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru