roboforum.ru

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

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

Ответить

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

kran » 30 авг 2012, 03:05

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

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

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

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

=DeaD= » 30 авг 2012, 03:13

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для любого метода можно найти задачу, где он не подходит. И что?

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

Fayras » 30 авг 2012, 03:15

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

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

ребят, ну вики то хоть почитайте, че тут велосипедить..

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

=DeaD= » 30 авг 2012, 03:19

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

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

Fayras » 30 авг 2012, 03:21

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

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

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

=DeaD= » 30 авг 2012, 03:26

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

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

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

Fayras » 30 авг 2012, 03:33

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

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

ну вот это как раз велосипед

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

=DeaD= » 30 авг 2012, 03:39

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

Я эту вашу фразу понял вне этой терминологии (с человеком или без).

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

Fayras » 30 авг 2012, 03:55

ага, есть такое дело :)

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

kran » 30 авг 2012, 04:03

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

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

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

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

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

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

=DeaD= » 30 авг 2012, 04:09

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

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

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

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

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

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

Может у него цель ИНС освоить...

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

kran » 30 авг 2012, 05:39

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

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

=DeaD= » 30 авг 2012, 11:44

Не, лучше теорию понять, практику вы как проверять будете, что у вас всё получилось? Это же не 2+2=5, или вы по виду сети и коэффициентам на глаз сможете определять, правильная сеть или нет? :)

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

kran » 30 авг 2012, 19:11

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

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

Может кто-нибудь подскажет софт подходящий? Из платного я вот вижу NeuroSolutions 6.12, а из бесплатного пока нашёл FANN Library 2.2.0 с кучкой инструментария.

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

=DeaD= » 30 авг 2012, 21:48

kran, вы можете оценить по этой картинке, правильно ли работает программа из этих классов? :-D


Rambler\'s Top100 Mail.ru counter