GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.2 (8)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Матричный перцептрон
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 08 ноя 11 17:38
Цитата:
Автор: Victor G. Tsaregorodtsev


Потому, что произведение двух (пусть даже и обучаемых) коэффициентов эквивалентно использованию одного обучаемого коэффициента.


Но фишка то в том, что тут матричное умножение, т.е. сумма произведений столбцов на строки
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 08 ноя 11 18:14
Цитата:
Автор: Victor G. Tsaregorodtsev

Но Вы, надеюсь, понимаете, что необучение каких-то слоев (под вполне конкретную задачу) даёт не самое оптимальное решение этой задачи.


Это то я понимаю. Но тут как посмотреть. Оптимальное может быть по трем параметрам: по числу итераций схождения (а в MLP еще может быть и не схождение ) , по времени компьютерного моделирования и по качеству прогнозирования.

Если сравнивать MLP и перцептрон Розенблатта - то еще никто в общем случае не показал кто кого превосходит по качеству прогнозирования. Скорее многое зависит от задачи и обучающей выборки.

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

И кстати, я тут почитал Минского, и снова удивляюсь - он ДАВНО уже показал, что backprop также само требует экспоненциального увеличения весовых коэффициентов, как и перцептрон Розенблатта (на его каверзных задачах о предикатах четность и т.п.). Поэтому в этом отношении у обучаемых слоев нет НИ КАКИХ преимуществ. Просто раньше я не знал, что Минский добрался и до backprop`a ...

[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 09 ноя 11 16:26
Цитата:
Автор: tac
А вот что касается оптимальности по скорости MLP отдыхает.

Вы просто не умеете его готовить
Скорее всего.
Я уже второй год развлекаюсь, собирая и сводя воедино свежую инфу о чужих программулинках для свёрточных нейросеток. Нашёл уже 5 штук - и все они НА ПОРЯДОК И БОЛЕЕ проигрывают моей проге в скорости обучения сетки (скорость у меня считается как время загрузки процессора, т.е. как астрономическое время, а не как число эпох обучения).
Так что мне относительно по барабану оптимальность алгоритма обучения - вместо минимизации числа эпох и использования для этого какого-то супер-пупер-алгоритма мне проще ограничиться обычным банальным попримерным обучением - всё равно сетка обучится быстрее (по времени), пусть и за большее число эпох. Оптимальность алгоритма, в моем случае, заменена акцентом на оптимизированность кода программы.
А последний скрытый и выходной слои в сверточной сети - это как раз MLP с одним скрытым слоем.

Цитата:
Автор: tac
Поэтому в этом отношении у обучаемых слоев нет НИ КАКИХ преимуществ.

Есть
Не надо думать о способе оптимального конструирования необучаемых слоев (т.е. отсутствует проблема выбора-применения второго, дополнительного алгоритма).
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 09 ноя 11 21:02
Цитата:
Автор: Victor G. Tsaregorodtsev

Вы просто не умеете его готовить


Так поделитесь рецептом

Я бы дал вам свою версию, можете указать в чем там ошибка ?

Вы же наверняка, что-то используете вне классики ? Или как то это оптимизируете ? Секретами делитесь ?
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 09 ноя 11 21:05
Цитата:
Автор: Victor G. Tsaregorodtsev

Не надо думать о способе оптимального конструирования необучаемых слоев (т.е. отсутствует проблема выбора-применения второго, дополнительного алгоритма).


Но во первых в перцептроне можно этим и не заниматься, т.к. оптимальное хуже универсального по оптимальности (во загнул )

Во-вторых, вместо этого вам нужно обучать ЛИШНИЙ СЛОЙ ! А на это тоже уходит время - и больше, чем на инициализацию не обучаемых слоев.

[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 10 ноя 11 16:02
Цитата:
Автор: tac
Во-вторых, вместо этого вам нужно обучать ЛИШНИЙ СЛОЙ ! А на это тоже уходит время - и больше, чем на инициализацию не обучаемых слоев.

Зато в более высокоразмерном пространстве (пространстве значений адаптивных переменных) рельеф целевой функции обычно более оптимален для алгоритмов градиентной оптимизации. И подходящий локальный минимум оказывается "ближе", и рельеф менее заовражен.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 10 ноя 11 16:11
Цитата:
Автор: tac
Так поделитесь рецептом

Рецептом ускорения программ?
Обычное умение хорошо оптимизировать программы, основанное на детальном представлении об особенностях выполнения программы на конкретном процессоре. Рецепты универсальны, описаны в куче свободно доступной и постоянно актуализируемой литературы ("Intel® 64 and IA-32 Architectures Optimization Reference Manual", руководства от Агнера Фога и т.д.).

Или рецептом повышения надёжности работы бэкпропа? "Efficient backprop" от ЛеКуна - эта статья основные моменты обсуждает. Хотя я и не со всем там согласен - но с точки зрения перечисления основных моментов всё нужное перечислено, а спорить можно только по способам реализации этих основ (т.к. задачи бывают разные и сильно могут влиять на особенности поведения алгоритмов).
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 12 ноя 11 23:32
Цитата:
Автор: Victor G. Tsaregorodtsev

Или рецептом повышения надёжности работы бэкпропа? "Efficient backprop" от ЛеКуна - эта статья основные моменты обсуждает. Хотя я и не со всем там согласен - но с точки зрения перечисления основных моментов всё нужное перечислено, а спорить можно только по способам реализации этих основ (т.к. задачи бывают разные и сильно могут влиять на особенности поведения алгоритмов).


Да, речь об этом. Но давайте я по другому спрошу. Обеспечивает ли надежность бэкпроп в классчиеской версии без дополнительных примочек ? Когда вы говорите, что "не умеете готовить" - вы имеете введу только реализацию классического алгоритма или плюсуете сюда ряд "примочек"?

P.S. Речь естественно о практике, а не теории ... кстати, есть доказательство сходимости бэкпропа ? именно в терминах сетей, а не как абстрактного градиентного поиска ? Мне вот, кажется, что "неумение готовить" - это сугубо теоретически-методологические недоработки. Я не возьмусь доказывать, что бэкпроп не сходится, но лишь потому, что нигде невозможно получить алгоритм, который это обеспечивал бы даже на простейших примерах (алгоритм, который описан так из рук вон плохо, что допускает СУЩЕСТВЕННЫЕ ошибки в реализации - это проблема авторов алгоритма, т.к. люди не могут повторить результаты. И не надо мне про "тупость" пытающихся реализовать, в то время как перцептрон Розенблатта реализуется легко, понятно и без проблем). А общие математически мудрствования - увольте читать не буду. Вначале имеем на практике - и лишь тогда разбираемся в теории, иначе оно того не стоит. Возможно есть ряд приемов обеспечивающих повышение надежности - НО ! повышение не есть обеспечение. Причем схождение мне естественно важно такое (и я был удивлен, когда этим не озаботились ряд практиков использования бэкпропа): перцептрон должен БЕЗОШИБОЧНО выучить реакции на ВСЕМ обучающем множестве БЕЗ ИСКЛЮЧЕНИЙ.

Впрочем вот еще что важно. Бэкпроп обеспечивает якобы не только двоичные выходы. Именно поэтому в моих тестах ситуация усложнена. Для бэкпропа я делаю один выход скажем на 5 значений - от 0 до 0.2 - один образ, от 0.2 до 0.4 второй и т.д. И вот именно такого схождения я не получаю, или получаю существенно медленно и все сильно зависит от входных данных - на сколько они легко разделимы или близки.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 13 ноя 11 16:59
>Обеспечивает ли надежность бэкпроп в классчиеской версии без дополнительных примочек?

Само дифференцирование (получение градиента) - надёжнее железобетонного бомбоубежища.
Ряд примочек (биполярные сигмоиды, центрирование сигналов) просто максимально снижают риск получения "подпространства меньшей размерности" (когда отдельные компоненты градиента становятся околонулевыми из-за околонулевых производных у влетевших в насыщение нейронов, например).
А обучение (коррекция вдоль градиента) - надёжность при оптимальном шаге в теории тоже обеспечивает.

>вы имеете введу только реализацию классического алгоритма или плюсуете сюда ряд "примочек"?

При работе с компьютером - требуется примочки знать. По вине компьютера. Ибо, например, комп считает, что при сложении 0.1 и 0.2 результат должен быть 0.300000004470348
Вычислительная математика от "абстрактной" математики всё же отличается - ибо в первой есть и обусловленные компьютером погрешности вычислений, и возможность накопления этих погрешностей.

>кстати, есть доказательство сходимости бэкпропа ? именно в терминах сетей, а не как абстрактного градиентного поиска ?

А как Вы себе представляете это "именно в терминах сетей"?

>алгоритм, который описан так из рук вон плохо, что допускает СУЩЕСТВЕННЫЕ ошибки в реализации - это проблема авторов алгоритма, т.к. люди не могут повторить результаты.

Так это ведь не один алгоритм. Цепное правило дифференцирования сложной функции - отдельно, метод оптимизации (градиентной в пакетном режиме обучения и стохастической в попримерном режиме обучения) - отдельно.

>Причем схождение мне естественно важно такое (и я был удивлен, когда этим не озаботились ряд практиков использования бэкпропа): перцептрон должен БЕЗОШИБОЧНО выучить реакции на ВСЕМ обучающем множестве БЕЗ ИСКЛЮЧЕНИЙ.

Практикам не нужна безошибочность. Практикам нужна статистически одинаковая ошибка на репрезентативных обучающей и тестовой выборках.

>Бэкпроп обеспечивает якобы не только двоичные выходы. Именно поэтому в моих тестах ситуация усложнена. Для бэкпропа я делаю один выход скажем на 5 значений - от 0 до 0.2 - один образ, от 0.2 до 0.4 второй и т.д. И вот именно такого схождения я не получаю, или получаю существенно медленно

Это - ошибка, и именно Ваша ошибка. Вы номинальные признаки (коды классов), причём неупорядоченные номинальные (т.к. порядок нумерации классов скорее всего можно изменить без влияния на смысл задачи), сводите в один количественный признак, и при этом появляются НЕЕСТЕСТВЕННЫЕ расстояния между новыми кодами (интервалами значений) классов. Первый класс получается БЛИЖЕ ко второму, чем к третьему и последующим. Второй - ближе к первому и третьему, чем к четвертому и пятому. И т.д. А в обучающей выборке близость между классами может быть совершенно другой.
Более того - исходные классы могли, например, быть попарно (вернее, один любой от всех остальных) отделимы друг от друга. При описанном Вами кодировании выходов - линейно отделить "некрайние" классы от других нельзя. Вспомните про задачу XOR и её нерешаемость одним единственным нейроном.
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 14 ноя 11 0:09
Цитата:
Автор: Victor G. Tsaregorodtsev

Практикам не нужна безошибочность. Практикам нужна статистически одинаковая ошибка на репрезентативных обучающей и тестовой выборках.



Извините, но это глупость возведенная в квадрат. (по моему скромному мнению ; ))
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 14 ноя 11 0:14
Цитата:
Автор: Victor G. Tsaregorodtsev

При описанном Вами кодировании выходов - линейно отделить "некрайние" классы от других нельзя.


Ну, наконец-то, этот вопрос меня давно забавлял. Спасибо вам за ответ. Я даже могу согласится, что я ошибочно понял претензии бэкпропа. Но угадайте, какой следующий вывод я делаю ?

Но прежде, чем я сам отвечу - прошу вас ответить КАК ПРАВИЛЬНО кодировать выходы ? Двоично ? Т.е. как я видел в одной реализации при распознавании цифр - по выходу на цифру, принадлежит / не принадлежит ?
[Ответ][Цитата]
tac
Сообщений: 2601
На: Матричный перцептрон
Добавлено: 14 ноя 11 0:17
Цитата:
Автор: Victor G. Tsaregorodtsev

(когда отдельные компоненты градиента становятся околонулевыми из-за околонулевых производных у влетевших в насыщение нейронов, например).


А если начальные весовые коэффициенты сделать нулевыми у бэкпропа есть шанс ? А как же есть железобетонное схождение, когда в течении итераций может наступить состояние когда весы обнулятся ?
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 14 ноя 11 16:27
Цитата:
Автор: tac
Извините, но это глупость возведенная в квадрат. (по моему скромному мнению ; ))

Имелся в виду статистически одинаковый процентный уровень ошибки (или статистически одинаковая вероятность ошибки). Т.е. относительный показатель.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 14 ноя 11 16:31
Цитата:
Автор: tac
КАК ПРАВИЛЬНО кодировать выходы ? Двоично ? Т.е. как я видел в одной реализации при распознавании цифр - по выходу на цифру, принадлежит / не принадлежит ?

Да, это наиболее простой из правильных способов.

Но тут опять возникают примочки
Ибо есть эталонные коды, которые мы требуем от сети - и есть достаточно сильная независимость схемы интерпретации ответа сети от этих эталонных кодов. Например, если при "тестировании" сети считаем номером класса номер вых.нейрона, выдавшего макс.сигнал - то этой схеме пофиг на использованные при обучении для выходов нейрона эталонные коды 0/1 или -1/1.
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Матричный перцептрон
Добавлено: 14 ноя 11 16:34
Цитата:
Автор: tac
А если начальные весовые коэффициенты сделать нулевыми у бэкпропа есть шанс ?

Если слой один (т.е. нет скрытых слоев) - то есть (т.к. абсолютно ВСЕ сигналы в обуч.выборке вряд ли будут тоже занулены).

Цитата:
Автор: tac
А как же есть железобетонное схождение, когда в течении итераций может наступить состояние когда весы обнулятся ?

Вероятность зануления всех весов равна вероятности написания "Войны и мира" посаженной за комп обезьяной.
[Ответ][Цитата]
 Стр.2 (8)1  [2]  3  4  5  6  ...  8<< < Пред. | След. > >>