В биткоинах стоимость транзакции списывается при каждой операции, тоесть столь любимая многими банками работа на бирже, что обычной, что валютной, невозможна без сурагатов биткоинов.
Никакой биткоин, даже если сервер с ними уронить на голову бизнесмену с 5-ого этажа, не сомжет нанести российскому производителю, чем собственный центробанк, который, по меткому выражению одного российского олигарха, нужно в космос запустить отсюда.
Вообще-то могли бы создать внутрироссийскую электронную валюту, благо дженерики сейчас клепаются на раз-два, и вшить систему уплаты налогов, например, прямо в исходный код. Много ещё чего можно было бы сделать, напрмиер интегрировать свою электронную валюту с национальной платёжной системой, что автоматически сделает её принимающейся в половине магазинов страны, и так далее. Но нет.
>> я про дисплей где зоны движутся и на лету подстраиваются под положение зрителя
Они что и матрицу налету механически перестраивают? Ну подождём, конечно, посмотрим.
>> Проблемы с усталостью от просмотра стерео эта технология как раз не снимает
Эта технология имитирует всего один аспект стерео. Картинка физически одна в оба глаза и фокусироваться нужно именно на том расстоянии на котором сходится паралакс. А значит непосредственной усталости глаз не будет.
>> Там в играх тоже нужна поддержка, иначе полезет много артефактов. Даже с обычным стерео проблем с совместимостью много.
Поэтому там есть специальнео меню, которое вылазит когда переключаешься на стерео. Система помнит все игры по имени, и пишет рекомендации в какой игре какие настройки поправить чтобы количество артефактов уменьшить. Например встренный в игру курсор отключить и воткнуть вместо него хардвейрный. Некоторых, правда, таких как WorldOfTanks не спасти.
>> Анаглиф как и другие софтверные решения не стоит производителю практически ничего
Анаглиф то да, но люба 3dVision карточка умеет отдавать два стереокадра по шнуру D-HDMA, на частотах кадров больше 100Гц. Реализовывать такую поддержку во всех картах на уровне железа во всех картах фирмы это явный перерасход усилий при том на сколько мало народу этим на самом деле пользуется.
Говоря, что этот алгоритм простейшия я конечно не имел в виду, что его каждый школьник пишет. Но эта тематика очень хорошо разработана в фотокамерах, существует прорва готовых библиотек, в том числе портированных на всё что угодно. Я с такой готовой библиотекой игрался дажэ на Flash и всё отлично работало. Если бы эта тема была мне интереснее — думаю демку можно было бы накатать за день-два.
Телевизоры, которые под разными углами отдают разную картинку бывают. Используются в рекламе для Вау-эффекта, я такие видел, но по границам между разными зонами артефакты так сильно бъют в глаз, что использовать это для рабочего монитора вообще не вариант.
>> преимущества перед обычным стерео
Как человек, у которого дома стоит монитор с Nvidia 3DVision, и являющийся любителем этого дела, могу ответственно заявить, что любая технология с элементами 3D, которая позволит смотреть в монитор 5-6 часов подряд уже будет иметь как минимум одни преимущество перед обычным стерео.
>> а) не хватает контента который можно смотреть подобным образом
Сущетвуют алгоритмы, преобразующие 2d с подвижной картинков в псевдо-3d. они есть в большинстве современных 3D телевизоров и они реально крутые. Плюс в большинстве игр 3d встроенное, если конечно не вспоминать, что в большинстве игр крестик прицела сделан в плоскости экрана. На та же 3dVision эту проблему успешно решает.
>> б) в телевизор подобную штуку не поставишь — зритель может быть только один
Зато в игровой монитор — только в путь. Можно будет выглядывать из-за угла.
Так много компаний, типа той же NVidia пропихивают стандарт 3d в свои продукты с доисторических времён, как говорится, первого мехвариора, поддерживавшего шлемы VR. Причём пропихивают они всё это вопреки упорному нежеланию клиента за эти все навороты доплачивать. Анаглиф есть у любой нормальной их карточки. Могли бы и такую опцию освоить попробовать.
Интересно, почему бы такое не сделать на основе простейшего алгоритма распознавания лиц в видеопотоке. Таких алгоритмов же пруд пруди. Был бы просто монитор с двумя вебками.
Статья шикарна! Жаль, что в очередной раз забыли цитаты великих: «Ничто в биологии не имеет смысла кроме как в свете эволюции» (с) Ф. Г. Добржанский. The American Biology Teacher.
В случае нейронаук можно так перефразировать, что очень многое имеет смысл только в свете того как происходит развитие системы. Сдаётся мне, что если бы вы с самого рождения ходили по комнате с одним глазом развить все описанные способности мозгу было бы конкретно сложнее. Причём таких взаимосвязей, которые нужны только на этапе обучения, в мозге полно, например дети глухие от рождения имеют проблемы с формированием представления о пространстве в котором находятся, хотя зрение у них присутствует в полном объёме.
По поводу ваших алгоритмов. Буквально пару недель назад на Конференции «Нейроинформатика 2015» видел группу, которая занимается схожей темой, только у них обратная постановка задачи. Имея два кадра с камеры определить изменение координат бота. Они с задачей более или менее справляются. Пока, правда, слишком долго. Но я думаю от вашего сотрудничества может родиться что-нибудь страшно интересное. А кроме того у них на это всё есть заказчик, так что работа пойдёт не только в хабр, но и в реальный мир:
neuroinfo.ru/index.php/ru/schedule/sections?year=2015#Section5
46. ИВАШИНА Е. А., КОРЛЯКОВА М. О., ПРОКОПОВ Е. Ю.
Калужский филиал МГТУ им. Н.Э. Баумана
Формирование ассоциации нейронных сетей для решения задачи стереореконструкции в бортовой системе технического зрения
Предложено решение задачи стереореконструкции координат объек-тов сцены на основе анализа стереопары их проекций. Моделирование процедуры стереореконструкции проведено в условиях виртуальной сце-ны с учетом ошибок определения координат проекций, полученных при калибровке реальной стереопары камер. Рассмотрены результаты формирования решателя на основе бустинга и модели анализа неоднородности ошибок нейростей.
mkorlyakova@yandex.ru
Это только версия, но тут верно заметили, что бюджет стал только больше.
Чтобы строить пилотируемые корабли, причём сразу два конкурирующих на всякий сучай, которые стоят как 10 опортюнитей, надо откуда-то срезать. Вот и пошло под нож всё. Тут конечно неприянто о таком думать, но возможно американцам аукнулось их хамство в части партнёрского космоса, и приказы о прекращении почти всего сотрудничества?
Сейчас в рынок акций американский вливают такое запредельное количество напечатанного бабла, что любому новому игроку выгоднее продать свой проект за миллиард тому, что уже есть на рынке акций, чем пытаться его теснить. На много на много выгоднее. Изменится поведение валютного регулятора — изменится и стратегия игроков.
Жаль, что лабиринт простой только получается. Сначала даже была мысль его использовать, пока не заметил, что правильный путь почти всегда — диагональный и почти всегда находится взглядом секунды за 3 при размере 60 на 60
Пока что обучение глубоких сетей не является технологией с гарантированным результатом. Никто вам не скажет примините RBM к данным безо всякой подготовки и получите безусловно хороший результат. Странно ожидать что я вам тут сейчас в комментах открою тайну философского камня, с которой пока не справилось всё человечество. Если появятся алгоритмы такого уровня потебность в нас с вами отпадёт как в биологическом виде вообще. Но я уверен, что не так всё просто, сама постановка задачи неправильная и ограничивает ваши возможности извлечь из технологии пользу. Пока сильные ИИ не образуют собственную культуру и свои университеты любой алгоритм, гарантировано дающий результат не хуже определённого будет с разгромным счётом проигрывать алгоритму с которым повозился человек новой профессии — тренер искуственных интеллектов. Причём эта моя убеждённость основана на моих гипотезах. Но пока это нельзя ни подтвердить ни опровергнуть.
И этот пост не про то, что я что-то сделал правильно и не про то, чтобы кому-то что-то доказать, и убедить, что мои идеи стоят Вашего времени. Даже если бы вы хотели ими заняться. Я предлагал каждому читающему посмотреть на эту область, найти свои собственные гипотезы, и попробовать их проверить. Понимаете, не мои, не Хопфилда, не Мейсона, свои собственные.
И лишь надеюсь, что мои картинки помогут людям искать свои собственные гипотезы и мысли.
Если сеть обладает достаточной глубиной один к куче миллиардов, что нужное обобщение ей доступно, но вы не можете его найти. Хотя бы потому что не ищите. Вы ищите уменьшения ошибки, а уменьшение ошибки порой быстрее достигается двумя плохими обобщениями, чем одним хорошим. Хорошее обобщение отличается тем, что позволяет достигнуть гораздо лучшей предельной ошибки при тех же размерах, но алгоритм минимизирующий ошибку вас толкает в противоположную сторону.
Дело в том, что в науке очень часто встречаются случаи, когда способы доказательства предыдущих эпох когда задача была проще, оказываются бессильны при столкновении с задачами нового класса сложности и требования строго доказательства ничего кроме торможения изучения не дают. Самый подходящий пример — термодинамика или газодинамика в целом. В строгом механическом смысле из всей термодинамики доказать можно только несколько самых простых утверждений типа распределения Больцмана, да и то предпочтительно для идеального газа. Из-за этого даже некоторые законы термодинамики называются принципами.
Думаю здесь мы сталкиваемся с той же ситуацией — В результате строго доказать что-то удаётся только для самых вырожденных случаев. Например никто не может строго доказать, что предобучение глубоких сетей на автоэнкодерах или RMB улучшает результат, это можно только увидеть. Хотя половина прогресса последних полутора десятилетий основана именно на таких методах.
Если этого не понимать, то получится как с одним комментатором моей предыдущей статьи, в которой я говорю, что благодаря тому, что я отказался от простых задач классификации я смог получить замечательный результат, который на классификаторах не видно, а он мне отвечает, что это прекрасно, но если бы я вместо этого решал задачу классификации, то было бы проще применять статистику.
Я понимаю, что чтобы другие увидели то же самое, что вижу я, придётся показывать им это на множестве примеров, причём желательно тех, которые они раньше пытались решать своими способами. Но в этой статье я ставил перед собой немного другую задачу.
Тогда задача не обязательно должна быть эксплуатирующейся достаточно чтобы она была конкретной и экспериментатор был честен с собой в процессе её решения. Открываешь безразмерный репозиторий начиная вот отсюда: archive.ics.uci.edu/ml/datasets/Iris и решаешь всё подряд. Тут даже лучше, потому что есть ещё семь десятков деятелей решавших ту же задачку и можно сравнить результаты.
Пока что нет. Мне вчера скинули одну практическую задачу из области ретейла, Но даже если я смогу переплюнуть в этой части десижнТри, то это не такой уж важный результат. Хорошие готовые задачи именно потому и существуют, что уже существуют решения, которые их не так уж плохо решают. Гораздо интереснее ставить опыты с такими задачами, которые раньше не решались, и соответственно не находились в эксплуатации. Но это, увы, не в ближайшие месяцы.
Например, ГОЛОВКО В. А. Брестский государственный технический университет, который на нейроинформатике школе-семинаре показывал как он учит глубокие сети.
>> Вообще то, что при пакетном обучении содержание пакета должно удовлетворять критериям статистической выборки, то есть сохранять статистические свойства генеральной совокупности, есть база.
Это есть Стереотип. Он появился потому, что хотелось учить на подвыборке так, как будто учите на полной выборке. В этом был мотив тех, кто вписал это в базу, я его понимаю. Второй мотив, касательно сглаживания я разберу в следующем абзаце. А теперь давайте подумаем: Возьмём стохастический градиентный спуск, когда изменение весов делается после каждого шага. Этот метод работает? Да, работает, это экспериментальный факт. Только скорость нужно сильно меньше взять. Но это по сути своей то же самое, что учить пачками по 1 примеру. Теперь давайте возьмём пачки по 2 примера? Будет работать? Будет. Возьмём пачки по три. Будет? Будет. На самом деле успешным алгоритмом является алгоритм обучения при любом размере пачки между 0 и максимумом, если решить вопрос подбора скорости. Получается, что есть целое семейство алгоритмов, в которых положительные и отрицательные качества стохастических и положительные и отрицательные качества алгоритмов на полных данных постепенно меняются от одного края к другому. А если ещё поизучать их и понять, что на разных этапах роль этих положительных и отрицательных качеств сильно разная, то вообще можно догадаться как я рисую такие красивые картинки. :)
Судя по тому, как упорно вы придерживаетесь представлений о том, что может быть или так или по другому, вам такие полустахостические алгоритмы могут показать много нового и интересного. А если такой стереотип является широко распространённым, то я теперь знаю какой доклад надо сделать для следующей конференции. Только на разных типовых задачках демок наделать. :)
Хотя конечно встречаются задачи и/или способы представления входных данных, на которых стохастический градиентный спуск не работает вообще, там и эта логика может работать плохо. Но что-то мне подсказывает, что ещё Розенблатт доказал, что если у вас есть достаточно времени, то таких задач не бывает.
На счёт сглаживания пространства рискнул бы поспорить. На самом деле этого пространства никто не видел, кроме самых простых и вырожденных случаев по вполне понятным причинам, поэтому если вы или консультант это понимаете, совершенно не факт, что это так на самом деле. Вполне возможно, что тут распологается ещё один стереотип.
Вполне возможно, например, что фича не в сглаживании пространства, а в том, что препятствия в пространстве очень часто носят не характер пиков и ям, а характер гребней и оврагов. Это, кстати, ещё в 2010-ом году показывали ребята, придумавшие совмещать метод сопряжённых градиентов с алгоритмами второго порядка: www.icml2010.org/papers/458.pdf, они это называли pathological
curvature.
А если так, то фича минибатча, весьма вероятно, в том, что на любой подвыборке эти гребни и овраги располагаются под другими углами, чем на полной выборке, и тогда прохождение по подвыборке позволяет преодолевать гребни полной выборки. Как это проверить? Например визуализировать движение сети из одной и той же сети на полных данных и на паре разных подвыборок. Если сеть пойдёт по дну оврага, и дно это будет распологаться под разными углами мы выиграли ещё один доклад на конференцию. :) Попробую ка я, пожалуй, накропать вечером демок на этот счёт.
Вот видите именно так ведётся такой поиск. Находится ограничение или база, которую люди не рассматривают как переменную и задаётся вопрос, а что если это ограничение на самом деле является нестрогим? А что если за него подёргать? В результате на свет божий выпадают интересные результаты.
Я могу точно также подвергать сомнению некоторые другие тезисы в вашем тексте, потому что я вижу как минимум ещё парочку стереотипов, которые не выдержали столкновения с экспериментом. Но гораздо интереснее будет если Вы возьмёте какой-нибудь абзац своего текста и попытаетесь предпринять то же самое что я: Усомниться в ограничении, и попытаться понять, что получится если считать его не строгим. Например вот этот ваш абзац, про который котором я точно знаю, что в нём содержится стереотип. А если вы попытаетесь его самостоятельно искать, то возможно найдёте не тот, который нашёл я и это будет на много круче. Напишем совместную статью на конференцию:
«Как раз получение плохого обобщения может быть связано с тем, что реализуемое множество аппроксимаций не достаточно богато и не позволяет с достаточной точностью спроецировать на него аппроксимируемую функцию.»
1) Нет, они удивлённо хлопали глазами, когда я им на своём планшете в реальном времени показывал как меняется график ошибки при изменении размеров пачки (не выборки) на лету. Я менял не размер обучающей выборки, а размер одной пачки mini-batch извлекаемой из обучающей выборки. Потому что все привыкли думать что важен размер выборки, и почти не задумываются о роли подвыборки. В этом сама суть поиска нового — не пытаться быть умнее величайших математиков прошлого, а менять то, что не пытались менять величайшие математики прошлого.
В вашем примере предполагаемого зашито сразу несколько ошибочных предположений, которые я проверил и выяснилось, что все они легко обходимы:
Во-первых эффективность обучения можно оценивать не по поведению графика ошибки, где есть сложности, а по поведению диаграммы положения сеты в фазовом пространстве. Эта диаграма, которую я придумал, возможно не первый, удивительным образом как раз и показывает «формы оптимизируемого функционала в пространстве синаптических весов сети». Подробнее можно прочитать в моей статье, ссылка на которую приведена выше.
Во-вторых, ошибочно вот это суждение: «при использовании методов оптимизации первого порядка, к которым относятся градиентный спуск». На самом деле алгоритмом первого порядка градиентный спуск является только при бесконечно-малой скорости или при использовании алгоритмов второго порядка на полных исходных данных, дающих спуск с оптимальной скоростью. Все стахостические алгоритмы, типа минибатча всегда перескакивают через локальные минимумы и ваш результат критически зависит от того, на сколько вы ловко и к месту это делаете. А дистанция «перескока» как раз и зависит от размеров пачки mini-batch. Ближайший локальный мнимум достич можно и легко, но никому не нужно.
В-третьих, «добавляют элементы стохастики. Это известный аспект, актуальный для всей теории численной оптимизации.» Стохастику можно добавлять очень по разному. Если вы добавите стохастику в виде слчайного колебаний, например, у вас получится хуже, чем если бы вы этого не делали, а между тем в численной теории оптимизации чаще всего делают именно так. Потому что методы придуманы давно и специфики сетей не учитывают.
2) См. выше.
3) «Увеличивая количество синаптических связей Вы вполне очевидным образом увеличиваете возможности структуры к обучению» — ещё одно неверное предположение. Вернее не всегда верное, если покопаться внимательнее. Если у сети достаточно много связей она очень-очень часто вместо того чтобы найти одно хорошее обобщение предметной области находит сумму нескольких плохих. При этом, как доказали ещё в 1991-ом году замена одного хорошего глубокого обобщения на несколько попроще с меньшим количеством слоёв ведёт к экспоненциальному росту количества необходимых ресурсов.
3) Или вот вы говорите про проблему переобучения. Но если повнимательнее покопаться в вопросе можно обнаружить что есть две разные проблемы, одна — переобучения, а вторая — суммы плохих обобщений. Первую обычно можно увидеть потому что ошибка хорошая на учебной выборке, но может быть плохой на другой, а вторую проблему можно заметить потому что ошибка хорошая на учебной выборке но может быть плохой на другой. Решаются проблемы по разному при этом. Вместо того чтобы молча принимать этот факт потому что предками данная мудрость завещала я задумался, а можно ли придумать визуализацию, на которой эти проблемы будут хорошо отличаться. И оказывается есть такая визуализация.
В общем, мои алгоритмы вы наверняка ещё увидите, но статья не об этом, а о том, чтобы искать.
Они что и матрицу налету механически перестраивают? Ну подождём, конечно, посмотрим.
>> Проблемы с усталостью от просмотра стерео эта технология как раз не снимает
Эта технология имитирует всего один аспект стерео. Картинка физически одна в оба глаза и фокусироваться нужно именно на том расстоянии на котором сходится паралакс. А значит непосредственной усталости глаз не будет.
>> Там в играх тоже нужна поддержка, иначе полезет много артефактов. Даже с обычным стерео проблем с совместимостью много.
Поэтому там есть специальнео меню, которое вылазит когда переключаешься на стерео. Система помнит все игры по имени, и пишет рекомендации в какой игре какие настройки поправить чтобы количество артефактов уменьшить. Например встренный в игру курсор отключить и воткнуть вместо него хардвейрный. Некоторых, правда, таких как WorldOfTanks не спасти.
>> Анаглиф как и другие софтверные решения не стоит производителю практически ничего
Анаглиф то да, но люба 3dVision карточка умеет отдавать два стереокадра по шнуру D-HDMA, на частотах кадров больше 100Гц. Реализовывать такую поддержку во всех картах на уровне железа во всех картах фирмы это явный перерасход усилий при том на сколько мало народу этим на самом деле пользуется.
Телевизоры, которые под разными углами отдают разную картинку бывают. Используются в рекламе для Вау-эффекта, я такие видел, но по границам между разными зонами артефакты так сильно бъют в глаз, что использовать это для рабочего монитора вообще не вариант.
>> преимущества перед обычным стерео
Как человек, у которого дома стоит монитор с Nvidia 3DVision, и являющийся любителем этого дела, могу ответственно заявить, что любая технология с элементами 3D, которая позволит смотреть в монитор 5-6 часов подряд уже будет иметь как минимум одни преимущество перед обычным стерео.
>> а) не хватает контента который можно смотреть подобным образом
Сущетвуют алгоритмы, преобразующие 2d с подвижной картинков в псевдо-3d. они есть в большинстве современных 3D телевизоров и они реально крутые. Плюс в большинстве игр 3d встроенное, если конечно не вспоминать, что в большинстве игр крестик прицела сделан в плоскости экрана. На та же 3dVision эту проблему успешно решает.
>> б) в телевизор подобную штуку не поставишь — зритель может быть только один
Зато в игровой монитор — только в путь. Можно будет выглядывать из-за угла.
Так много компаний, типа той же NVidia пропихивают стандарт 3d в свои продукты с доисторических времён, как говорится, первого мехвариора, поддерживавшего шлемы VR. Причём пропихивают они всё это вопреки упорному нежеланию клиента за эти все навороты доплачивать. Анаглиф есть у любой нормальной их карточки. Могли бы и такую опцию освоить попробовать.
В случае нейронаук можно так перефразировать, что очень многое имеет смысл только в свете того как происходит развитие системы. Сдаётся мне, что если бы вы с самого рождения ходили по комнате с одним глазом развить все описанные способности мозгу было бы конкретно сложнее. Причём таких взаимосвязей, которые нужны только на этапе обучения, в мозге полно, например дети глухие от рождения имеют проблемы с формированием представления о пространстве в котором находятся, хотя зрение у них присутствует в полном объёме.
По поводу ваших алгоритмов. Буквально пару недель назад на Конференции «Нейроинформатика 2015» видел группу, которая занимается схожей темой, только у них обратная постановка задачи. Имея два кадра с камеры определить изменение координат бота. Они с задачей более или менее справляются. Пока, правда, слишком долго. Но я думаю от вашего сотрудничества может родиться что-нибудь страшно интересное. А кроме того у них на это всё есть заказчик, так что работа пойдёт не только в хабр, но и в реальный мир:
neuroinfo.ru/index.php/ru/schedule/sections?year=2015#Section5
46. ИВАШИНА Е. А., КОРЛЯКОВА М. О., ПРОКОПОВ Е. Ю.
Калужский филиал МГТУ им. Н.Э. Баумана
Формирование ассоциации нейронных сетей для решения задачи стереореконструкции в бортовой системе технического зрения
Предложено решение задачи стереореконструкции координат объек-тов сцены на основе анализа стереопары их проекций. Моделирование процедуры стереореконструкции проведено в условиях виртуальной сце-ны с учетом ошибок определения координат проекций, полученных при калибровке реальной стереопары камер. Рассмотрены результаты формирования решателя на основе бустинга и модели анализа неоднородности ошибок нейростей.
mkorlyakova@yandex.ru
Чтобы строить пилотируемые корабли, причём сразу два конкурирующих на всякий сучай, которые стоят как 10 опортюнитей, надо откуда-то срезать. Вот и пошло под нож всё. Тут конечно неприянто о таком думать, но возможно американцам аукнулось их хамство в части партнёрского космоса, и приказы о прекращении почти всего сотрудничества?
И этот пост не про то, что я что-то сделал правильно и не про то, чтобы кому-то что-то доказать, и убедить, что мои идеи стоят Вашего времени. Даже если бы вы хотели ими заняться. Я предлагал каждому читающему посмотреть на эту область, найти свои собственные гипотезы, и попробовать их проверить. Понимаете, не мои, не Хопфилда, не Мейсона, свои собственные.
И лишь надеюсь, что мои картинки помогут людям искать свои собственные гипотезы и мысли.
Я грязью из-под шин плюю
В чужую эту колею.
Эй, вы, задние! Делай, как я.
Это значит — не надо за мной.
Колея эта — только моя!
Выбирайтесь своей колеей.
© Высоцкий
Если сеть обладает достаточной глубиной один к куче миллиардов, что нужное обобщение ей доступно, но вы не можете его найти. Хотя бы потому что не ищите. Вы ищите уменьшения ошибки, а уменьшение ошибки порой быстрее достигается двумя плохими обобщениями, чем одним хорошим. Хорошее обобщение отличается тем, что позволяет достигнуть гораздо лучшей предельной ошибки при тех же размерах, но алгоритм минимизирующий ошибку вас толкает в противоположную сторону.
Думаю здесь мы сталкиваемся с той же ситуацией — В результате строго доказать что-то удаётся только для самых вырожденных случаев. Например никто не может строго доказать, что предобучение глубоких сетей на автоэнкодерах или RMB улучшает результат, это можно только увидеть. Хотя половина прогресса последних полутора десятилетий основана именно на таких методах.
Если этого не понимать, то получится как с одним комментатором моей предыдущей статьи, в которой я говорю, что благодаря тому, что я отказался от простых задач классификации я смог получить замечательный результат, который на классификаторах не видно, а он мне отвечает, что это прекрасно, но если бы я вместо этого решал задачу классификации, то было бы проще применять статистику.
Я понимаю, что чтобы другие увидели то же самое, что вижу я, придётся показывать им это на множестве примеров, причём желательно тех, которые они раньше пытались решать своими способами. Но в этой статье я ставил перед собой немного другую задачу.
habrahabr.ru/post/249657/#comment_8266001
>> Вообще то, что при пакетном обучении содержание пакета должно удовлетворять критериям статистической выборки, то есть сохранять статистические свойства генеральной совокупности, есть база.
Это есть Стереотип. Он появился потому, что хотелось учить на подвыборке так, как будто учите на полной выборке. В этом был мотив тех, кто вписал это в базу, я его понимаю. Второй мотив, касательно сглаживания я разберу в следующем абзаце. А теперь давайте подумаем: Возьмём стохастический градиентный спуск, когда изменение весов делается после каждого шага. Этот метод работает? Да, работает, это экспериментальный факт. Только скорость нужно сильно меньше взять. Но это по сути своей то же самое, что учить пачками по 1 примеру. Теперь давайте возьмём пачки по 2 примера? Будет работать? Будет. Возьмём пачки по три. Будет? Будет. На самом деле успешным алгоритмом является алгоритм обучения при любом размере пачки между 0 и максимумом, если решить вопрос подбора скорости. Получается, что есть целое семейство алгоритмов, в которых положительные и отрицательные качества стохастических и положительные и отрицательные качества алгоритмов на полных данных постепенно меняются от одного края к другому. А если ещё поизучать их и понять, что на разных этапах роль этих положительных и отрицательных качеств сильно разная, то вообще можно догадаться как я рисую такие красивые картинки. :)
Судя по тому, как упорно вы придерживаетесь представлений о том, что может быть или так или по другому, вам такие полустахостические алгоритмы могут показать много нового и интересного. А если такой стереотип является широко распространённым, то я теперь знаю какой доклад надо сделать для следующей конференции. Только на разных типовых задачках демок наделать. :)
Хотя конечно встречаются задачи и/или способы представления входных данных, на которых стохастический градиентный спуск не работает вообще, там и эта логика может работать плохо. Но что-то мне подсказывает, что ещё Розенблатт доказал, что если у вас есть достаточно времени, то таких задач не бывает.
На счёт сглаживания пространства рискнул бы поспорить. На самом деле этого пространства никто не видел, кроме самых простых и вырожденных случаев по вполне понятным причинам, поэтому если вы или консультант это понимаете, совершенно не факт, что это так на самом деле. Вполне возможно, что тут распологается ещё один стереотип.
Вполне возможно, например, что фича не в сглаживании пространства, а в том, что препятствия в пространстве очень часто носят не характер пиков и ям, а характер гребней и оврагов. Это, кстати, ещё в 2010-ом году показывали ребята, придумавшие совмещать метод сопряжённых градиентов с алгоритмами второго порядка: www.icml2010.org/papers/458.pdf, они это называли pathological
curvature.
А если так, то фича минибатча, весьма вероятно, в том, что на любой подвыборке эти гребни и овраги располагаются под другими углами, чем на полной выборке, и тогда прохождение по подвыборке позволяет преодолевать гребни полной выборки. Как это проверить? Например визуализировать движение сети из одной и той же сети на полных данных и на паре разных подвыборок. Если сеть пойдёт по дну оврага, и дно это будет распологаться под разными углами мы выиграли ещё один доклад на конференцию. :) Попробую ка я, пожалуй, накропать вечером демок на этот счёт.
Вот видите именно так ведётся такой поиск. Находится ограничение или база, которую люди не рассматривают как переменную и задаётся вопрос, а что если это ограничение на самом деле является нестрогим? А что если за него подёргать? В результате на свет божий выпадают интересные результаты.
Я могу точно также подвергать сомнению некоторые другие тезисы в вашем тексте, потому что я вижу как минимум ещё парочку стереотипов, которые не выдержали столкновения с экспериментом. Но гораздо интереснее будет если Вы возьмёте какой-нибудь абзац своего текста и попытаетесь предпринять то же самое что я: Усомниться в ограничении, и попытаться понять, что получится если считать его не строгим. Например вот этот ваш абзац, про который котором я точно знаю, что в нём содержится стереотип. А если вы попытаетесь его самостоятельно искать, то возможно найдёте не тот, который нашёл я и это будет на много круче. Напишем совместную статью на конференцию:
«Как раз получение плохого обобщения может быть связано с тем, что реализуемое множество аппроксимаций не достаточно богато и не позволяет с достаточной точностью спроецировать на него аппроксимируемую функцию.»
В вашем примере предполагаемого зашито сразу несколько ошибочных предположений, которые я проверил и выяснилось, что все они легко обходимы:
Во-первых эффективность обучения можно оценивать не по поведению графика ошибки, где есть сложности, а по поведению диаграммы положения сеты в фазовом пространстве. Эта диаграма, которую я придумал, возможно не первый, удивительным образом как раз и показывает «формы оптимизируемого функционала в пространстве синаптических весов сети». Подробнее можно прочитать в моей статье, ссылка на которую приведена выше.
Во-вторых, ошибочно вот это суждение: «при использовании методов оптимизации первого порядка, к которым относятся градиентный спуск». На самом деле алгоритмом первого порядка градиентный спуск является только при бесконечно-малой скорости или при использовании алгоритмов второго порядка на полных исходных данных, дающих спуск с оптимальной скоростью. Все стахостические алгоритмы, типа минибатча всегда перескакивают через локальные минимумы и ваш результат критически зависит от того, на сколько вы ловко и к месту это делаете. А дистанция «перескока» как раз и зависит от размеров пачки mini-batch. Ближайший локальный мнимум достич можно и легко, но никому не нужно.
В-третьих, «добавляют элементы стохастики. Это известный аспект, актуальный для всей теории численной оптимизации.» Стохастику можно добавлять очень по разному. Если вы добавите стохастику в виде слчайного колебаний, например, у вас получится хуже, чем если бы вы этого не делали, а между тем в численной теории оптимизации чаще всего делают именно так. Потому что методы придуманы давно и специфики сетей не учитывают.
2) См. выше.
3) «Увеличивая количество синаптических связей Вы вполне очевидным образом увеличиваете возможности структуры к обучению» — ещё одно неверное предположение. Вернее не всегда верное, если покопаться внимательнее. Если у сети достаточно много связей она очень-очень часто вместо того чтобы найти одно хорошее обобщение предметной области находит сумму нескольких плохих. При этом, как доказали ещё в 1991-ом году замена одного хорошего глубокого обобщения на несколько попроще с меньшим количеством слоёв ведёт к экспоненциальному росту количества необходимых ресурсов.
3) Или вот вы говорите про проблему переобучения. Но если повнимательнее покопаться в вопросе можно обнаружить что есть две разные проблемы, одна — переобучения, а вторая — суммы плохих обобщений. Первую обычно можно увидеть потому что ошибка хорошая на учебной выборке, но может быть плохой на другой, а вторую проблему можно заметить потому что ошибка хорошая на учебной выборке но может быть плохой на другой. Решаются проблемы по разному при этом. Вместо того чтобы молча принимать этот факт потому что предками данная мудрость завещала я задумался, а можно ли придумать визуализацию, на которой эти проблемы будут хорошо отличаться. И оказывается есть такая визуализация.
В общем, мои алгоритмы вы наверняка ещё увидите, но статья не об этом, а о том, чтобы искать.