1) Локальные оптимумы - проблема эволюционных алгоритмов. Почитай еще про генетический алгоритм. Понравится. 2)Один весовой коэффициент - одномерный случай. Оптимизация одномерной задачи существует. Строятся сети, но лишь для проверки работоспособности. Так как для оптимизации одномерного случая есть тотже метод Фибоначчи или золотое сечение. 3)Кенгуру - это круто. Но удобней было бы показать, что весовой коэффициент - градиент в обратную сторону, а координата - аксон, который входит в дендрит. И что увеличение того или другого приводит к соответствующим результатам. 4) Градиент - это хоть и вышмат, но для одномерного случая это изи производная, которую проходят в школе:) 5) Многие не любят математику за то, что она такая сухая и абстрактная. Не настраивай людей так. Не нужно говорить, что вышмат - это сложно. Покажи формулу, объясни что представляют операнды и люди скажут "ого! и этого я раньше боялся?!" абстракция кенгурятиной уж очень высокая. 6) Красавчик. Пока есть люди, которые пытаются разбираться в революционных вещах, не все потеряно:)
Только хотел все расписать по полочкам с точки зрения математики, но ты разложил все до меня. Проблема детерминированных алгоритмов для неунимодаальных функций - основная проблема поиска глобального оптимума.
Отличный курс! Большое спасибо автору! Однако, к этому уроку есть замечание. Дело в том, что в двухмерном случае (для одного входа) у нас есть функция W=f(X). Когда мы переходим к трехмерному варианту, это на самом деле не функция для двух входов. Это вполне себе функция для множества входов, то есть функция W=f(X,Y), где: W- погрешность, X-значение весового коэффициента, Y-номер входа. Таким образом, для описания поверхности ошибки сети, у которой входов больше двух не требуется многомерного пространства, а достаточно трехмерного. Я конечно, могу ошибаться, но в таком случае мне не понятно, откуда берутся оси со значениями на входах, о них ничего не сказано при описании модели с одним входом. Все остальное понятно и отлично излагается!
Меня тоже этот момент смутил. Поддержу в мнении, что автор ошибся в плане "поверхности ошибки" и на картинке указано 60 "нейронов", а не как не 2. В случае с 2 "нейронами" поверхность была очень простой, а если точнее выглядела как "лента" с разным уровнем "краев".
Что за чушь. Ваш вариант всего лишь предоставляет дискретный набор разнородных кривых, не соответствующих критерию непрерывности. И где здесь поверхность?
Не будучи математиком, все же смею сделать некоторые допущения: Если мы говорим о поверхности ошибки, на которой ищем локальные минимумы, (с помощью тех самых несчастных кенгурят), то подразумеваем непрерывность поверхности. Предложенная вами сущность - сиречь набор несвязанных дискретных кривых - просто сферический конь в вакууме, не имеющий полезности для решения задачи нахождения минимума погрешности для обучения нейросети. Но это лишь мое мнение, а вот цитата с вики: "Обратное распространение использует разновидность градиентного спуска, то есть осуществляет спуск вниз по поверхности ошибки, непрерывно подстраивая веса в направлении к минимуму. Поверхность ошибки сложной сети сильно изрезана и состоит из холмов, долин, складок и оврагов В ПРОСТРАНСТВЕ ВЫСОКОЙ РАЗМЕРНОСТИ. Сеть может попасть в локальный минимум (неглубокую долину), когда рядом имеется гораздо более глубокий минимум. В точке локального минимума все направления ведут вверх, и сеть неспособна из него выбраться. Основную трудность при обучении нейронных сетей составляют как раз методы выхода из локальных минимумов: каждый раз выходя из локального минимума снова ищется следующий локальный минимум тем же методом обратного распространения ошибки до тех пор, пока найти из него выход уже не удаётся. " ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8
по приблизительным подсчетам около 86 миллиардов нейронов в головном мозге у здорового среднестатистического человека ))) а не триллионов ) хотя и так сойдет )
Измученный слепой кенгурёнок, посвятивший всю свою жизнь прыжкам по многомерному пространству в поисках минимальной погрешности хочет спросить: почему бы не запоминать минимальную погрешность и не проверять её при каждой итерации обучения? Это ведь будет абсолютно точно и возможно быстрее.
я не эксперт, но мне кажется оно так и работает, каждую итерацию обучения кенгуру совершает прыжок, сперва большие, а к концу обучения по меньше, чтобы не проскакивать впадины :) хотя возможно я вообще не понимаю что несу :)
извините, есть тут кто живой? под впечатлением от этих уроков, запилил неиросеть амебы, амебы потомучто неиросетью это назвать наверно нельзя, ну в общем она распазнает буквы которые я рисую в паинтбоксе. распознает реалтайм, как для первого опыта мне кажется сойдет.буду развивать. вот только делема)))) скопировал релиз на флешку, проверил, работает,включил на другом пк, там не работает. Почему так ?
Сук, ну ты и картавишь и шепелявишь одновременно, капец. Сначала выпендривался мол, можно использовать в своих проектах. все дела, сам сидит толкает тут только абстрактную теорию, ни формул, ни кода, какие-то ооооочень общие принципы.