2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 17:32 


27/11/15

115
Pavia в сообщении #1340952 писал(а):
alhimikoff

Помимо поиска случайного пути и тяжёлого шарика, есть ещё отбор по поколениям. Дойдя до локального минимума НС повторно обучается, но с внесёнными случайных изменениями. Так повторяется несколько поколений, из которых выбирается поколение с лучшим результатом.

Кстати, а почему Вы не используете современные фремфорки - как к примеру TenserFlow?


Тысячи GPU, на которых учат современные нейронки видимо как раз и занимаются подбором решения случайными встрясками. Где здесь достижения собственно разработчиков нейронок? Они 100 лет как известны, а сейчас просто железо подешевело.

Не охота осваивать чужой фреймворк. Много там лишнего, свои баги, и т.д.

Генетические алгоритмы на мой взгляд это тот же метод тыка.
Хочется без перебора и без метода тыка прийти в минимум с помощью детерминированного алгоритма.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 17:49 
Заслуженный участник
Аватара пользователя


16/07/14
9737
Цюрих
alhimikoff в сообщении #1341109 писал(а):
Тысячи GPU, на которых учат современные нейронки видимо как раз и занимаются подбором решения случайными встрясками. Где здесь достижения собственно разработчиков нейронок?
Нет. Современные алгоритмы (AdaDelta, RMSprop и т.д.; дополнительные надстройки - batch normalization, dropout и т.д.) хотя и не слишком сложны с математической точки зрения, и являются скорее эвристиками, чем чем-то гарантированным (хотя некоторые обоснования у простых методов есть - например, использование момента для выпуклой оптимизации примерно аналогично извлечению корня из числа обусловленности), но всё же далеко неочевидны.
alhimikoff в сообщении #1341109 писал(а):
Не охота осваивать чужой фреймворк. Много там лишнего, свои баги, и т.д.
Там почти наверняка меньше багов, чем будет при реализации того же самого руками.
alhimikoff в сообщении #1341109 писал(а):
Хочется без перебора и без метода тыка прийти в минимум с помощью детерминированного алгоритма.
Задачу нахождения глобального максимума невыпуклой функции человечество решать пока не умеет.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 20:50 


12/07/15
3661
г. Чехов
Pavia в сообщении #1340952 писал(а):
Помните когда у Гугла НС сломалось? Стоило к фотографии панды добавить немного Гаусового шум и НС начинала говорить что на фото Гибон.

Методы машинного обучения примечательны тем, что для них можно подбирать удивительные adversarial images. У человека также есть adversarial images, только их называют иллюзиями. Их сложнее подбирать, но они существуют в большом количестве. К сожалению, делать подбор шумов под человека проблематично.
Поэтому, я считаю, аргументация с этими гиббонами и пандами слабая и надуманная. У человека тоже имеется эта проблема, но это трудно доказать. Думаю, если долго смотреть на белый шум, то в определëнный момент может почудиться фаллос. :twisted:

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 22:35 
Аватара пользователя


31/10/08
1244
alhimikoff в сообщении #1341109 писал(а):
Тысячи GPU, на которых учат современные нейронки видимо как раз и занимаются подбором решения случайными встрясками. Где здесь достижения собственно разработчиков нейронок? Они 100 лет как известны, а сейчас просто железо подешевело.

Нейронным сетям 100 лет ещё нету, полвека где-то. Так вот я по этому и спрашиваю почему Вы реализовываете, то что было изобретено полвека назад? А не используете фреймворки в которых полно современных методов? Или хотя бы сами методы?

alhimikoff в сообщении #1341109 писал(а):
Хочется без перебора и без метода тыка прийти в минимум с помощью детерминированного алгоритма.

Есть такой метод. Называется метод наименьших квадратов - детерменировано находит глобальный минимум и не чувствителен к локальным. И его дальнейшее развития AdaBoost и далее SVM. С дальнейшим уходом в нелинейную оптимизацию, AdaDelta.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 23:30 


10/03/16
4444
Aeroport
Pavia в сообщении #1340952 писал(а):
Стоило к фотографии панды добавить немного Гаусового шум и НС начинала говорить что на фото Гибон.


:appl: :appl: :appl:

Ничоси!! Причём заметьте, confidence для панды вблизи 50 процентов, а если добавить шума, то тогда это точно будет гиббон :D

Но самое интересное: кто, как и почему додумался выдвинуть такую гипотезу и поставить эксперимент??

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 23:38 
Заслуженный участник
Аватара пользователя


16/07/14
9737
Цюрих
ozheredov в сообщении #1341198 писал(а):
Но самое интересное: кто, как и почему додумался выдвинуть такую гипотезу и поставить эксперимент??
Насколько я понимаю, оригинальная статья - Intriguing properties of neural networks.
(кстати всякие deep dream и style transfer основаны на похожей идее)

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение24.09.2018, 23:41 


10/03/16
4444
Aeroport
mihaild
О, большое спасибо. Любопытное заглавие

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение25.09.2018, 21:05 
Аватара пользователя


31/10/08
1244
ozheredov
ozheredov в сообщении #1341198 писал(а):
Ничоси!! Причём заметьте, confidence для панды вблизи 50 процентов, а если добавить шума, то тогда это точно будет гиббон :D

На эти цифры не стоит обращать внимание, так как это может быть единичным выбросам. Гораздо важнее сколько на выборке из серии изображений сломалось. А из 100 сломались все 100 при $std=35\%$
https://arxiv.org/pdf/1704.05051.pdf

Кто первый придумал использовать Гауссовый шум? Кто конкретно трудно сказать, так как он кочует из работы в работу. Идея лежит на поверхности. Можно сказать что это был учёный который решил перенести свои математические формулы из теоретических и лабораторных условий в естественную среду. А там все сигналы с шуми. Берём радио сигналы в шумах, берём звук там шумы, берём изображения там тоже шумы. В первом приближение такие шумы описываются гауссовым. В основном это связано с теоремой биномиальное распределение.
Поэтому использование Гауссового шума является хорошей лакмусовой бумажкой, которая позволяет проверить устойчив ли ваш алгоритм к изменению данных либо нет.

mihaild
Это немного другая работа, тут не аддитивный шум, а случайная дисторсия. Моделей искажений не 1 одна и не 2 две, а куча. Ещё можно вспомнить наклон, масштаб, частичное перекрытие. А многие ещё и неизвестны.

Оригинальная так уж наверно:
https://arxiv.org/pdf/1412.6572.pdf

Mihaylo
Цитата:
что для них можно подбирать удивительные adversarial images. У человека также есть adversarial images, только их называют иллюзиями.

adversarial это не совсем иллюзии, это отрицательное подкрепление. Вот когда такие изображения перестают улучшать НС, то тогда это уже иллюзия.
Цитата:
Поэтому, я считаю, аргументация с этими гиббонами и пандами слабая и надуманная.

Это не слабая аргументация, а валидация проверка человеком. Которую алгоритм не прошёл. Человек справился лучше чем компьютер. Валидация сильнее чем верефикация, формальная проверка, которую алгоритм прошёл.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение25.09.2018, 21:20 
Заслуженный участник
Аватара пользователя


16/07/14
9737
Цюрих
Pavia в сообщении #1341487 писал(а):
Это немного другая работа, тут не аддитивный шум, а случайная дисторсия. Моделей искажений не 1 одна и не 2 две, а куча. Ещё можно вспомнить наклон, масштаб, частичное перекрытие. А многие ещё и неизвестны.

Оригинальная так уж наверно: https://arxiv.org/pdf/1412.6572.pdf
А в чем разница между аддитивным шумом и случайными искажениями?
Кстати из трех авторов "Explaining and harnessing adversarial examples" двое в списке авторов "Intriguing properties of neural networks". И в разделе related work в Explaining как раз в основном Intriguing properties. Так что я бы сказал, что более новая статья - развитие более старой.
(исходный вопрос был - кто придумал делать мало отличающиеся примеры, на которых классификатор сильно ошибается, и в первой работе такие уже были)

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение25.09.2018, 22:28 


10/04/12
706
Pavia в сообщении #1340952 писал(а):
alhimikoff
Помните когда у Гугла НС сломалось? Стоило к фотографии панды добавить немного Гаусового шум и НС начинала говорить что на фото Гибон.
Изображение


Вроде это не гауссовый шум, это специально сгенерированный паттерн в направлении градиента функции разности между вероятностями панда-гиббон. Каждый пиксель на чуть-чуть увеличивает вероятность распознать гиббона, а поскольку пикселей много, то в сумме получается большой скачок

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение26.09.2018, 02:25 
Аватара пользователя


12/09/18

41
Томск
Как-то долго перебирал сложные генетические алгоритмы. Запарился совсем. Решил визуализировать процесс. - Тупо выдавая промежуточные результаты на экран. Обнаружил, что 100% методов - в моей реализации - зацикливается. Прут одинаковые числа или/или наборы нулей. Пришёл к универсальному для меня методу: тупая прокрутка по этапам:
1. Длинный отскок из текущего минимума, возможно, с подбором самого годного.
2. Поиск минимума относительно лок.минимума - с переходом в лок.минимум новый...
Короче:
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
   
for var nm := 0 to qExp do //Цикл по попыткам
    begin
      nmGlob := nm;
      qStep := pi * e * 2; // Начальный шаг. Взят с запасом, лишь бы в запрещённые места не попадал
      for var i := 0 to qP - 1 do
        p[i] := round(qP * (pMin[i] + qStep * random(-1.0, 1.0))) / qP; // Прыжки из глоб.минимума с возвратом
      calcFun(sMin, s); //Вычисление функции
      sLoc := s;
      pLoc := p;
      loop 25 do //Предварительный подбор локального минимума, в котором будет параллельно вестись поиск
      begin
        for var i := 0 to qP - 1 do
          p[i] := round(qP * (pMin[i] + qStep * random(-1.0, 1.0))) / qP;
        calcFun(sMin, s);
        if s < sLoc then
        begin
          sLoc := s;
          pLoc := p
        end;
      end;
      repeat // Цикл по длине шага. Он тупо проходит от максимального  до минимального значения
        q := 1; // Первый метод: прыжки из лок. минимума с переходом в новый минимум
        for var i := 0 to qP - 1 do
          p[i] := round(qP * (pLoc[i] + qStep * random(-1.0, 1.0))) / qP;
        calcFun(sMin, s);
        if s < sLoc then
        begin
          sLoc := s;
          pLoc := p
        end;
        q := 2; // Итерация с нулевым шагом. Иногда даёт удачные результаты
        p := pLoc;
        calcFun(sMin, s);
        q := 3; // Итерация с нулевым шагом из глоб.минимума
        p := pMin;
        calcFun(sMin, s);
        // print(q, s-sMin, qStep); // Запускаем визуализацию, если хотим посмотреть, как работает поиск
        q := 4; // Прыжки из глоб.  минимума
        for var i := 0 to qP - 1 do
          p[i] := round(qP * (pMin[i] + qStep * random(-1.0, 1.0))) / qP;
        calcFun(sMin, s);
        qStep *= 0.937; //Тупо уменьшаем шаг. Метод  медленный - на самом деле нет - но верный
      until qStep < 0.01; // пока не достигнем мин. шага
    end
 

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение26.09.2018, 06:51 


12/07/15
3661
г. Чехов
mustitz в сообщении #1341507 писал(а):
Вроде это не гауссовый шум, это специально сгенерированный паттерн в направлении градиента функции разности между вероятностями панда-гиббон. Каждый пиксель на чуть-чуть увеличивает вероятность распознать гиббона, а поскольку пикселей много, то в сумме получается большой скачок

Вот! А это для человеческого зрения называется "иллюзия". Что такое иллюзия? Это когда человек неправильно интерпретирует признаки: чрезмерно усиливает или, наоборот, ослабляет/игнорирует, и эти признаки усилены на изображении. Или, бывает, специально два противоположно значащих признака конкурируют - возникает переключающая иллюзия.

Вот пример маски Чарли Чаплина.
https://www.youtube.com/watch?v=kSQPhZUX7bg

Какие здесь признаки и что с ними не так происходит? Маска специально подсвечивается изнутри, источник света - точечный, расположен близко к маске (источник света намеренно не показывают!). Это немного расходится с нашим привычным представлением о том, что свет обычно идёт сверху издалека. В общем этот реальный признак точечного источника у нас закономерно ослаблен, нет нейронов, которые его усиливают, и мы думаем, что маска изгибается наружу.
Затем в видео мы видим наружную сторону маски, в этот момент у нас появляются другие признаки, противоположно значащие, так возникает переключение иллюзии.

Посмотрите на "белый шум" панды-гиббона. Вам там не кажутся какие-то очертания? :twisted:

Главный смысл всех этих исследований состоял не в попытке доказать, что машинные методы хуже человека (это ни в коем случае не удалось сделать!), а то, что можно разрабатывать методы их обмана.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение26.09.2018, 10:17 
Аватара пользователя


31/10/08
1244
mihaild в сообщении #1341492 писал(а):
А в чем разница между аддитивным шумом и случайными искажениями?

В чём разница между изменением интенсивности света и геометрическими искажениями?
Дисторсия это геометрические искажения. Они берут точку в сетке и случайно её смещают.
Этим самым мы моделируем флуктации воздуха, дрожания картинки в жаркую погоду.
А аддитивный шум это собственный шумы матрицы.
Вот чем кот отличается от льва? По сути гривой. Мы можем его подстричь под лёву, но серые полоски выдадут в нём кота.

mustitz в сообщении #1341507 писал(а):
Вроде это не гауссовый шум, это специально сгенерированный паттерн в направлении градиента функции разности между вероятностями панда-гиббон.

Когда мы в водим шум, то алгоритм обучения начинает работать по другому. В данном картинки вы верно заметили не гауссовый шум. Но есть работы уже приводил где гауссов, аналогичным образом ломается восприятие. Проблема в том что ломаются по разному. Градиент хорош тем, что можно максимизировать зазор как в SVM

https://ru.wikipedia.org/wiki/Метод_опорных_векторов
Цитата:
Особым свойством метода опорных векторов является непрерывное уменьшение эмпирической ошибки классификации и увеличение зазора, поэтому метод также известен как метод классификатора с максимальным зазором.


Mihaylo в сообщении #1341547 писал(а):
Посмотрите на "белый шум" панды-гиббона. Вам там не кажутся какие-то очертания? :twisted:

Очертаний гиббона я там не вижу. Вижу шум. Да некоторые черточки видны, но это шум. Это значит что даже малые изменения приводят к большим ошибкам. НС должна была сломаться только когда этот градиент был бы похож на ... среднее значение между гиббоном и пандой. Хотя а нет ли здесь проблемы визуализации :?:

Цитата:
Главный смысл всех этих исследований состоял не в попытке доказать, что машинные методы хуже человека (это ни в коем случае не удалось сделать!), а то, что можно разрабатывать методы их обмана.

По моим скромным прикидкам таких способов обмана наверно десятки. И каждый дает небольшой процент улучшения распознавания. Нашли отрицательные примеры переобучили на них сеть - получили выгоду.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение26.09.2018, 14:13 
Заслуженный участник
Аватара пользователя


16/07/14
9737
Цюрих
Pavia в сообщении #1341561 писал(а):
Дисторсия это геометрические искажения. Они берут точку в сетке и случайно её смещают.
Этим самым мы моделируем флуктации воздуха, дрожания картинки в жаркую погоду.
А аддитивный шум это собственный шумы матрицы.
Всё равно не понял. В обеих работах мы берем картинку, которую нейронка распознает правильно, и находим близкую к ней по векторной норме, которую она распознает неправильно. Оба раза при этом пропускается градиент через нейронку.
Никакой (фотографической) матрицы у нас тут нет, шумов у нее быть не может.

 Профиль  
                  
 
 Re: Проблема локального минимума в нейронной сети
Сообщение26.09.2018, 18:09 
Аватара пользователя


31/10/08
1244
Вы видимо пропустили так было 3 работы.
В третьей никаких градиентов небыло.
https://arxiv.org/pdf/1704.05051.pdf

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: this


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group