Pull to refresh
75
0
Арнис @Arnis71

Android разработчик

Send message

Таких статей бесчетное количество. Например https://academy.realm.io/posts/oredev-jake-wharton-kotlin-advancing-android-dev/

Типичный статья фаната Котлина который даже не знает о всех его преимуществах и думает что его сила только в украшательствах и сокращении кода. Крайне печально.
В большинстве случаев функция не будет на столько волнистой. Однако это не отменяет того факта, что мы можем случайной инициализацией весов поставить точку отсчета в заранее проигрышную позицию. Как и показано у вас на графике, начав ГС с точки в пересечении красных линий, мы никогда не попадем в глобальный минимум, который находиться по другую сторону склона. В таком случае помогает реинициализация весов или выбор другого алгоритма. Надо помнить, что градиентный спуск это самый примитивный алгоритм и далеко не самый продуктивный.
Вы не понимаете сути градиентного спуска. Никакого перебора мы не делаем, следуя по градиенту мы просто будем скатываться в низину. Глобальный минимум — это обязательное условие и мы не считаем, что он нужный или нет. Алгоритм сам его найдет, если все параметры подобраны верно. Про момент написано в статье, прочитайте внимательнее.

Дельта это просто обозначение параметра. За ним нет никакого глубокого значения. Некоторые НС вообще используют другой алгоритм, в котором нет такого параметра как дельта.
Да, это моя ошибка. Нужно умножать не вес, а выходное значение.
Вы абсолютно правы! Извиняюсь, по своей невнимательности неправильно подставил значения в формулу. На конечный результат это конечно не сильно повлияло, но в таком случае бы НС врядли бы смогла найти решение.
Здесь используется MSE (квадратичная ошибка). О способах вычисления ошибок я писал в первой статье.
Не совсем, если честно. Поясните?
Мы вычисляем ошибку после каждой итерации и в соответствии с этим меняем веса. Такой случай, что каждый элемент тянет в свою сторону бывает, но в конечном случае это редко приводит к несходимости, разве что в том случае, когда элементы выборки противоречат друг другу.
Все правильно, ошибка вычисляется у выходного нейрона и «записывается» в дельту, а все остальные нейроны наследуют эту ошибку из цепочки дельт. На счет 2 ошибок. Ошибка на самом деле одна. Она формируется после каждой итерации, просто в конце эпохи ошибка имеет большее значение так как она учитывает проход по всей выборке данных.
Если есть какие-либо вопросы, задавайте. Просто комментарии не самый удобный вариант.
Я понял вас. Если есть желание, можете написать мне в ЛС и я вам помогу понять все пункты которые вы перечислили:)
Об этом будет подробно написано в следующей статье.
Рад что вам понравилась статья. На счет функции, это не совсем правильное предположение. НС это не функция и не искусственный интеллект. Вам так показалось, потому что — это самый примитивный пример, однако, если вы посмотрите на рекуррентные или многослойные сети это уже не будет казаться так просто. Я думаю вам все станет понятно в следующей статье, где я более подробно опишу работу НС.
Да, все будет в следующей части. Я уже понял, что всем нужно больше информации.
Не совсем понял вас. Что за веса входов? Если вы про входные нейроны, то у них нет весов. Их вход — это данные из тренировочного сета.
Хорошо, учту.
Я написал про Java и Android, чтобы читателю было понятно, в каком направлении будет развиваться тематика моих статей. А на счет дробления, советую перечитать заголовок статьи. Для тех, кто только начинает изучение НН и не имеет при себе никакого опыта в этой сфере, данного материала будет более чем достаточно, чтобы войти в тему и попутно не расплавить себе мозги.
Будет в следующих статьях. Это лишь вводная часть.
В таком случае у вас два варианта. Первый — это использовать другую функцию активации, например ReLU, как было подмечено выше в комментариях. Либо, если вы только начинаете разбираться в нейронных сетях, то вам просто нужно найти способ привести ваши значения к нужному диапазону или нормализовать их. Например, когда я писал нейронную сеть для курса акций, я бы мог подавать на вход текущую цену и ждать в ответ другую. Но цены акций могут принимать различные значения. Поэтому, вместо того чтобы подавать на вход цену акций, я вычисляю разницу цен и получаю определенный процент от -100% до +100% или -1 до +1. И нет проблем :)
1

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity