roboforum.ru

Технический форум по робототехнике.

Что такое хорошо, а что такое плохо?

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

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 30 авг 2012, 03:05

Ещё одну классическую задачу вспомнил. Есть коллекция фильмов. Есть юзер, который наставил оценок "нравится-не-нравится". Ну или наше "хорошо" и "плохо" возьмём, один хрен. Это эталон, готовый. И вот приходит куча новых фильмов, и надо юзеру что-то посоветовать. Всё, конец задачи, можно начинать решать.

Наверное, ничего путного не выйдет, если у нас о фильмах мало информации (хотя на сайтах типа IMDb и оттуда умудряются вытягивать прогноз на вкусы юзера). Но вот если у нас на каждый фильм есть полнотекстовый сценарий... Или даже только субтитры - уже звук не надо анализировать. Саундтрек есть опять же (текст в титрах), и можно с музыкального сайта профиль юзера взять (допустим). Ну и т.д., простор для фантазии. Самый высший пилотаж - непосредственно видеоряд анализировать. Хотя порнуху так вроде и цензурят иногда.

Задачи с биржей и фильмами приведены лишь для того, чтобы показать, насколько далеко "хорошо" и "плохо" от робота, который должен что-то делать. И насколько не подходит классический метод обучения по эталонам в этой ситуации. Альтернативы есть? И вообще - ИНС здесь не являются пятой ногой?
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 03:13

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

Это надо топик-стартера спросить :) я пока не оценил "вам это не надо", как попадание в тему :)

kran писал(а):
=DeaD= писал(а):Кстати, нейросети еще кроме прямого назначения могут быть использованы как алгоритм общего назначения, где результирующая нейросеть является закодированным ответом на какую-то задачу.
Ну вот, то сами против кодирования, то соглашаетесь, что бывает и так кодируют. Кто кодирует, и действительно - чем отличается от программирования?

Закодированный - в смысле через некоторое преобразование можно из результирующей нейросети найти ответ на свою задачу.

kran писал(а):Не знаю, как для топик-стартера, а для меня сейчас как раз это самое интересное. Я предполагаю, что обучают по эталонам. Такая-то комбинация входных сигналов - такая-то комбинация выходных.

Да, так и есть, и мера отклонения выходных сигналов от требуемых в эталоне - это и есть "плохо\хорошо".

kran писал(а):Но это по-моему имеет смысл лишь в случае очень большого количества входных комбинаций нелинейных сигналов (фондовая биржа типа). Когда мы не можем вручную их перелопать или придумать простой алгоритм.

В сложных случаях может быть запуск эмуляции случайных окружений и вперед.

kran писал(а):Для датчиков заряда и температуры-влажности всё настолько просто, что городить здесь ИНС совершенно не нужно. Имхо достаточно задать приоритеты и пороговые значения. Мол, если очень горячо, каштаны (т.е. батарейки) из огня не таскаем - всё равно сдохнем от перегрева, лучше уж дохнуть от голода - дольше проживём, может огонь раньше потухнет.

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

Добавлено спустя 4 минуты 15 секунд:
kran писал(а):Ещё одну классическую задачу вспомнил. Есть коллекция фильмов. Есть юзер, который наставил оценок "нравится-не-нравится". Ну или наше "хорошо" и "плохо" возьмём, один хрен. Это эталон, готовый. И вот приходит куча новых фильмов, и надо юзеру что-то посоветовать. Всё, конец задачи, можно начинать решать.

Там совершенно другие подходы. Никто не будет под каждого юзера тренировать по 2 месяца на супер-кластере ИНС, помогающую именно ему выбирать фильмы. Слишком дорого.

kran писал(а):Хотя порнуху так вроде и цензурят иногда.

Там всё банальней в базовом варианте. % телесного цвета и вперед ручную допроверку проводить.

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

Для любого метода можно найти задачу, где он не подходит. И что?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 30 авг 2012, 03:15

=DeaD= писал(а):
Fayras писал(а):как как.. с учителем или без :bad:

Учитель то что делать будет? Ручками коэффициенты назначать? :)

ребят, ну вики то хоть почитайте, че тут велосипедить..
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 03:19

А с чего вы сударь решили, что я не знаю как обучаются ИНС?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 30 авг 2012, 03:21

=DeaD= писал(а):А с чего вы сударь решили, что я не знаю как обучаются ИНС?

ну вы предположили что учитель должен обучать ручками и полагаете что для обучения нужно наличие хорошо\плохо..
если конечно это вы так иронизируете.. то вопросов нет
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 03:26

Когда говорят про учителя или нет, вместо обсуждения главного, что считать "хорошо\плохо", то как раз у меня возникает вопрос - если учитель не сможет сказать сети "хорошо\плохо", то как он её учить то будет?

А если вы про подходы, кто определяет "хорошо\плохо", то их поболее будет, чем с учителем или без. Навскидку:
1. Пакет эталонных тестов;
2. Учитель;
3. Симулятор;
4. Реальный мир;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 30 авг 2012, 03:33

=DeaD= писал(а):Когда говорят про учителя или нет, вместо обсуждения главного, что считать "хорошо\плохо", то как раз у меня возникает вопрос - если учитель не сможет сказать сети "хорошо\плохо", то как он её учить то будет?

это и называется обучением без учителя..
хотя опять же хорошо\плохо для обучения сети даже с учителем ненужно.. нужен набор входных данных и соответствующих им выходных - это и есть учитель
=DeaD= писал(а):А если вы про подходы, кто определяет "хорошо\плохо", то их поболее будет, чем с учителем или без. Навскидку:
1. Пакет эталонных тестов;
2. Учитель;
3. Симулятор;
4. Реальный мир;

ну вот это как раз велосипед
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 03:39

Пардон, перечитал, давно занимался ИНС,
оказывается "Обучением с учителем" нынче называют обучение на примерах вход/выход.

Я эту вашу фразу понял вне этой терминологии (с человеком или без).
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 30 авг 2012, 03:55

ага, есть такое дело :)
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 30 авг 2012, 04:03

=DeaD= писал(а):Да, так и есть, и мера отклонения выходных сигналов от требуемых в эталоне - это и есть "плохо\хорошо".
Вот. ВОТ. Похоже, мы наконец-то добрались до самой сути вопроса.
Действительно ли формируется одно большое "плохо" в рамках метода обратного распространения ошибки?

Я почему-то подумал, что эта волна по слоям идёт от каждого R-нейрона отдельно, в зависимости от его личного отклонения от его личной эталонной нормы, и единое общее "плохо" вообще никогда не подсчитывается. Но если это не так, то получается, что на предыдущий слой идёт одинаковый сигнал "вы все ошиблись вот на столько в среднем"? Хм. А точно это так работает? Что же тогда идёт на второй с конца слой, на третий?

=DeaD= писал(а):В сложных случаях может быть запуск эмуляции случайных окружений и вперед.
А неслучайные эталонные ответы (выходные сигналы) на случайные вопросы (входные сигналы) откуда взять? Или кто-то будет сидеть рядом и на ходу оценивать? Ниже уже прочитал про обучение с учителем. Похоже оно. Блин, жестокое обращение с педагогами можно инкриминировать - это сколько же нагенерённых данных надо перелопатить и дать моральную оценку.

=DeaD= писал(а):Там всё банальней в базовом варианте. % телесного цвета и вперед ручную допроверку проводить.
Я бы ещё добавил характерные возвратно-поступательные ритмы, по N кадров: телесный - не телесный; телесный - не телесный... А если фрикций нет - то это уже эротика. :)

=DeaD= писал(а):Для любого метода можно найти задачу, где он не подходит. И что?
Ну... может сказать топик-стартеру, что ему не подходит? :oops:
Вот именно под его задачу. Он похоже как раз нашёл неподходящую задачу для этого метода. Или неподходящий метод для задачи - смотря что ему больше надо. С простой ИНС поиграться или с простым роботом.
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 04:09

kran писал(а):Действительно ли формируется одно большое "плохо" в рамках метода обратного распространения ошибки?

Я почему-то подумал, что эта волна по слоям идёт от каждого R-нейрона отдельно, в зависимости от его личного отклонения от его личной эталонной нормы, и единое общее "плохо" вообще никогда не подсчитывается. Но если это не так, то получается, что на предыдущий слой идёт одинаковый сигнал "вы все ошиблись вот на столько в среднем"? Хм. А точно это так работает? Что же тогда идёт на второй с конца слой, на третий?

Могу только посоветовать перечитать описание метода, заниматься пересказом научных статей я не готов :) Во-первых смысла нет, а во-вторых явно хуже будет, чем если вам прочитать уже готовое.

kran писал(а):Я бы ещё добавил характерные возвратно-поступательные ритмы, по N кадров: телесный - не телесный; телесный - не телесный... А если фрикций нет - то это уже эротика. :)

Гусары, хватит :ROFL:

kran писал(а):Ну... может сказать топик-стартеру, что ему не подходит? :oops:
Вот именно под его задачу. Он похоже как раз нашёл неподходящую задачу для этого метода. Или неподходящий метод для задачи - смотря что ему больше надо. С простой ИНС поиграться или с простым роботом.

Может у него цель ИНС освоить...
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 30 авг 2012, 05:39

=DeaD= писал(а):Могу только посоветовать перечитать описание метода, заниматься пересказом научных статей я не готов :) Во-первых смысла нет, а во-вторых явно хуже будет, чем если вам прочитать уже готовое.
Мда уж, скорее не перечитать, а дочитать - совсем по диагонали пробежал, и видимо не ту диагональ выбрал. На этот раз добрался до метода наименьших квадратов, который здесь упоминали. Осознал, что общая ошибка для всех R-нейронов очень даже считается. Как распространяется поправка по слоям - ещё только пытаюсь разобраться. Похоже, тут проще на практике, по коду и на примерах с визуализацией.
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 11:44

Не, лучше теорию понять, практику вы как проверять будете, что у вас всё получилось? Это же не 2+2=5, или вы по виду сети и коэффициентам на глаз сможете определять, правильная сеть или нет? :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 30 авг 2012, 19:11

ant_overview.png
Это диаграмма взаимодействия классов. Видно, что не 2+2. Разумеется, по ней нельзя сказать, что делает программа, правильно сделала или нет. Уж точно язык Java нельзя выучить по ней, или алгоритмы понять. Но сам характер взаимодействий просматривается отлично, на мой взгляд. Возможно, ничего столь же информационно наполненного я не увижу при отражении процесса обучения нейронной сети. Но хотелось бы посмотреть.

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

Может кто-нибудь подскажет софт подходящий? Из платного я вот вижу NeuroSolutions 6.12, а из бесплатного пока нашёл FANN Library 2.2.0 с кучкой инструментария.
Аватара пользователя
kran
 
Сообщения: 220
Зарегистрирован: 13 июл 2012, 05:07
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 30 авг 2012, 21:48

kran, вы можете оценить по этой картинке, правильно ли работает программа из этих классов? :-D
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Идеи

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

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