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

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


12/07/15
3353
г. Чехов
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
9214
Цюрих
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
9214
Цюрих
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
705
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
3353
г. Чехов
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
9214
Цюрих
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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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