Форум программистов, компьютерный форум, киберфорум
Наши страницы
Искусственный интеллект
Войти
Регистрация
Восстановить пароль
 
andreytsoy
0 / 0 / 0
Регистрация: 30.01.2018
Сообщений: 2
1

Дедуктивное обучение или Обучение по прецедентам (плюсы и минусы)

30.01.2018, 15:54. Просмотров 345. Ответов 12
Метки нет (Все метки)

Привет, друзья!

Как вы смотрите на то, чтобы обсудить вопрос о преимуществах и недостатках 2 типов обучения? Развернутой статьи не нашел на эту тему.

Итак, есть 2 вида обучения: Дедуктивное обучение или Обучение по прецедентам.

Кто с какими сталкивался проблемами и решениями?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2018, 15:54
Ответы с готовыми решениями:

Какие плюсы и минусы у ОС с открытыми и закрытыми кодами?
Сакжите пожалуста какие плюсы и минусы у ос с открытыми и закратыми кодами?

Обучение C# по видео курсам. Оптимально ли такое обучение?
Всем привет. Вот уже как 3 месяца я с нуля начал изучать C# по видео курсам CyberBionic...

Машинное обучение или комбинаторика
Добрый день. хотелось бы получить совет Задача такая, например есть БД в которой хранятся...

С чего начать обучение, с C# или C++/CLI?
Всем здравствуйте. Несколько лет программировал на VB-6 + API. Сделал несколько программ, успешно...

Онлайн-курсы,развод или хорошее обучение?
Ребят,что скажите по поводу вот этих курсов?. Не развод ли? И научат ли чему стоящему?

12
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
30.01.2018, 17:38 2
Есть замечания:
1. Эта классификация актуальна для педагогики, но не для машинного обучения и искусственного интеллекта. Здесь происходит лишь обучение по прецедентам.
2. Эта классификация немного ошибочна. Дело в том, что дедуктивное обучение - это когда от общего (теоретический материал) переходят к частному (практический материал, семинар, контрольная работа, решение задач). Но для того, чтобы ученик успешно освоил теоретический материал, нужно ОБЯЗАТЕЛЬНО сначала ему дать практический материал (факты, примеры) - часто это происходит неявно, на предыдущих уроках, в жизненном опыте или иными способами. Без этих знаний дедуктивное обучение не получится, само дедуктивное обучение малозначимо, важен тот багаж, которым уже овладел ученик к моменту подачи дедуктивного материала. Но педагогам-теоретикам кажется важным сам процесс дедуктивного обучения. Это конечно фигня.

Добавлено через 21 минуту
Разъясню немного на примере.
Допустим преподаватель даёт теоретический материал о методах обеспечения взрывобезопасности в промышленности. Он говорит: "Выбор методов обеспечения взрывобезопасности производится проектировщиком по результатам оценки рисков (анализа состава взрывоопасной газовой смеси, изучении технологического процесса, конструкции технологических аппаратов). Уровень надёжности метода должен соответствовать уровню опасности взрыва."
Студент должен знать, что такое "проектировщик", "метод обеспечения", "взрыв", "взрывобезопасность", "оценка риска" и т.д., в конце концов, он должен обладать достаточным уровнем опыта, чтобы из этой последовательности фраз чётко и правильно понять те важные сведения, которые собственно "зашифрованы" в этом предложении. Эти сведения теоретические, так как никакой конкретики здесь нет, это в высшей степени обобщение. Здесь не указывается ни один метод обеспечения взрывобезопасности. Соответственно, если студент не знает ни одного такого метода, он никогда не усвоит этот материал, даже если устранить терминологические трудности.
Между тем материал достаточно прост, и на практике достаточно на пальцах рассказать немного о тех самых методах. После этого студент как будто преобразится в понимании.

Таким образом обучение, которое называется дедуктивным, фактически является индуктивным. Всё-таки нужно от прецедентов переходить к обобщениям. Это неизбежно. А сам дедуктивный переход... Ну это когда просто ведешь пальцем по справочнику до тех пор, пока не находишь нужную строчку, и читаешь ответ.
3
vchc
26 / 26 / 5
Регистрация: 27.10.2015
Сообщений: 77
02.02.2018, 13:23 3
Любая классификация это синтетический конструкт, призванный вырезать кусок из целостной картины мира для упрощения и обозначения отдельных частей этой самой картины. Если есть возможность, не пользуйтесь классификациями, польза от которых вам непонятна.

Есть процесс обучения, то есть передачи знаний от одной системы к другой. Он определяется характеристиками обеих систем (объём памяти, ширина канала, согласованностью уже имеющихся знаний и так далее) и характеристиками самого процесса (объёмом передаваемых знаний и временем на это затрачиваемом).

Есть процесс обработки знаний внутри системы, включающий обобщение (как переход от простых знаний к более сложным) основанное на накоплении статистики и выделении ключевых факторов/компонент, и уточнение (как переход от сложных(общих) знаний к более простым) основанное на поиске в пространстве решений/методов, имеющихся у системы, или на случайном поиске, если решение не найдено.

Что вы тут обзовёте индукцией/дедукцией, прецедентами и так далее можете выбирать сами.
0
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
03.02.2018, 09:25 4
Если бы дедуктивное обучение было таким, как его малюют глупые педагоги, то тогда бы достаточно было бы одной лекции от известного физика и все сразу бы освоили квантовую физику.
Нет, обучение - это всегда подача миллиона примеров (прецедентов), которые обучаемый обобщает внутри своей головёшки. Когда же педагоги применяют так называемое дедуктивное обучение, они просто помогают обобщать какие-то прецеденты. Они подсказывают, как надо правильно обобщать примеры. Ведь умение обобщать - это тоже тренируемый навык (в машинном обучении это называется "построить разделяющую гиперплоскость"). Если ты примеров (прецедентов) не знаешь, то обобщать нечего и тогда "дедуктивный" материал кажется обычной заумью.
1
ili1
Заблокирован
03.02.2018, 12:38 5
Тут товарищ Mikhaylo очень хорошо объяснил все плюсы и минусы.
Однако речь идет не о людях, а о программах. Вот им то лучше всего
вкладывать готовый (обобщенный) материал. Само собой разумеется
не помешают и конкретные примеры. Но программе с ИИ еще пока далеко
до человека. Искусственный интеллект - это не искусственный разум.
Она не сможет сама производить новую информацию. Итак, поставим
плюс дедукции.
0
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
03.02.2018, 13:39 6
ili1, всë намного сложнее и проще одновременно. )) Дело в том, что никакого разума не существует, есть только интеллект искусственный, человеческий, у животных. Нет никаких супермегамозгов, суперразумов, просто разумов. Зачем вы все выделяете термин, за которым ничего не стоит?

Добавлено через 4 минуты
Что касается обучения машины, то там происходят вычислительные процессы принципиально не отличающиеся от биологических. Ваша посыль про то, что машина не умеет генерировать новое - это тупо массовая профанация. Вы проявили некомпетентность в области машинного обучения. Откройте базовый учебник, разберитесь, убедитесь в обратном.

Добавлено через 8 минут
Обучение по прецедентам - это обучение по примерам, эти примеры всегда обобщаются. Без обобщения ничего не работало бы. Хитрость заключается в алгоритме обобщения. А вы знаете как обобщаются примеры, как от частного переходят к общему? Что это вообще значит?
Просто многие наивные обыватели понимают ИИ как огромный словарь частных примеров, а не обобщающую функцию, которая тренируется на примерах.
1
andreytsoy
0 / 0 / 0
Регистрация: 30.01.2018
Сообщений: 2
03.02.2018, 22:07  [ТС] 7
Друзья, спасибо большое всем за ваши ответы. Они очень ценны! Многое прояснилось теперь для меня, как для новичка в этой области.
0
ili1
Заблокирован
04.02.2018, 09:00 8
Mikhaylo,
Вы конечно правы. Кто бы спорил. Не не могли бы вы показать на
небольшом примере, как происходит обобщение. Ну скажем человеку
(или программе) известно, что есть целые числа 1, 2, 3, 4, 5, 6, 7, ...
Но не известно, как проводить с ними операцию сложения, то есть
известны лишь частные примеры типа 1 + 1 = 2 ... А вот сколько будет
7 + 8 = ? никто не знает. Вот как это объяснить программе? Да и мне тоже?
Пожалуйста, если не трудно, поясните
0
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
04.02.2018, 16:45 9
В принципе нетрудно. Подход можно показать на примере алгоритма ближайших соседей (kNN).

Перед тем, как что-то объяснять, выскажу одну умную мысль: надо понимать, что пример 1+1=2 объективно недостаточен и малоинформативен для нахождения решения примера 7+8=?. Некоторые наивно думают, что можно разработать супер-алгоритм, который будет соответствовать супер-разуму, и который решит эту задачу точно и правильно. Я таких религиозных фанатиков называю мозгопоклонниками, они верят в чудо, в невозможное.
На самом деле интеллектуальные задачи заведомо не имеют единственно верного и правильного ответа, часто неопределённость настолько высока и такие задачи не решаются, либо решаются наобум, очень грубо, неправильно, иррационально.

Поэтому вместо одного примера 1+1=2, мы должны иметь десяток обучающих примеров. Для чистоты эксперимента потребуем, чтобы в обучающей выборке не было примера 7+8=15.

1+1=2
5+2=7
0+0=0
6+9=15
8+8=16

Очевидно, что последние два примера являются ближайшими соседями примера 7+8=?. Если в алгоритме ближайших соседей k=2, то эти примеры будут отобраны. Их результаты будут усреднены и получится ответ 7+8=15,5. Неплохо, да?

Добавлено через 4 минуты
Метод ближайших соседей kNN является одним из самых простых алгоритмов машинного обучения. Несмотря на это, он может чрезмерно часто (при своей простоте) работать лучше других алгоритмов машинного обучения, даже лучше нейронных сетей.

Добавлено через 1 час 16 минут
Извините, я не привёл примеры (как положено в дедуктивно-индуктивно-прецедентном обучении) и слишком абстрактно объяснил один вопрос: сколько будет 7+8, если известно, что 1+1=2. И, предполагается, больше ничего неизвестно.

Ведь на самом деле эта ситуация не лишена смысла, она часто возникает, когда мы суём нос не в свои дела и нам открываются новые данные, новые неопределённости.

Алгоритм ближайших соседей обнаружит единственный пример и автоматически сочтёт его за ближайшего соседа. Ответ будет 2. 7+8=2. Я думаю во многих случаях это будет лучше, чем ответ 7+8=10000.
1
ili1
Заблокирован
04.02.2018, 17:07 10
Mikhaylo,
Спасибо! Мне показалось, что вы хотели применить метод математической
индукции. То есть задать функцию типа S(a, b) = a + b. Поскольку нам это не
известно для всех чисел a и b, то задается начальное условие (или несколько
начальных условий) S(1, 1) = 1 + 1 = 2 , S(5, 5) = 10
и
S(a, b) = S(a, b - 1) + 1 (S() - рекурсивная функция)
S(a, b) = S(b, a) (коммутативность сложения)
...
Отсюда следует
S(7, 8) = S(7, 7) + 1 = S(7, 6) + 1 + 1 = S(7, 6) + 2 = S(6, 7) + 2 = S(6, 6) + 1 + 2 =
S(6, 6) + 3 = S(6, 5) + 1 + 3 = S(5, 6) + 4 = S(5, 5) + 5 = и так далее = 15
Я верно вас понял? Или нет?
0
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
04.02.2018, 17:42 11
ili1, не, в машинном обучении нет логики и математики. Тут сплошные догадки. Сегодня сложение, завтра умножение, послезавтра разложение в ряд Фурье.

Добавлено через 5 минут
Извините, запутал окончательно. То, что Вы разложили по полочкам - это лишь попытка осмыслить алгоритм ближайших соседей, фактически же алгоритмы бывают разные, они подходят для разных входных данных, в каждом случае есть своя фишечка. Но близость чисел - это очень фундаментальная эвристика, можно было бы для прикола ввести понятие дальности чисел и придумать алгоритм дальних соседей, но он явно не будет оптимальным. Таков феномен нашей жизни. В нашем мире есть близкие числа и есть дальние числа, и они неравноценны.
1
Shamil1
Модератор
2234 / 1522 / 346
Регистрация: 26.03.2015
Сообщений: 5,419
04.02.2018, 21:46 12
Цитата Сообщение от ili1 Посмотреть сообщение
То есть задать функцию типа S(a, b) = a + b. Поскольку нам это не
известно для всех чисел a и b, то задается начальное условие (или несколько
начальных условий) S(1, 1) = 1 + 1 = 2 , S(5, 5) = 10
и
S(a, b) = S(a, b - 1) + 1 (S() - рекурсивная функция)
S(a, b) = S(b, a) (коммутативность сложения)
При наличии такой подробной информации, это можно сделать без всякого обучения.
Haskell
1
2
3
4
5
s 1 1 = 2
s x 1 = s 1 x
s x y = 1 + s x (y-1)
 
main = print $ s 7 8
1
Mikhaylo
202 / 189 / 24
Регистрация: 20.09.2014
Сообщений: 1,356
05.02.2018, 05:33 13
Цитата Сообщение от ili1 Посмотреть сообщение
S(a, b) = S(a, b - 1) + 1 (S() - рекурсивная функция)
S(a, b) = S(b, a) (коммутативность сложения)
Это не прецеденты, это не обучающие примеры, и это не применяется в машинном обучении.
Это абстракция, обобщение. Это как раз элемент того самого дедуктивного обучения. Машина, которую можно обучать подобными "примерами", должна уметь обобщать подобного рода конструкции, иначе она просто не будет их понимать.

Некоторые могут подумать: вот как раз такая машина, умеющая абстрактно мыслить, и есть искусственный разум. Ну если хотите, называйте её искусственным разумом. На самом деле это будет простой искусственный интеллект на базе нейронных сетей или стохастического градиентного спуска. Дело ведь не в самом алгоритме, а в процессе обучения: сможете ли вы подготовить такую обучающую выборку, чтобы машина начала видеть "ближайших соседей" в абстрактных математических моделях. Между прочим, человек этому интенсивно учится где-то 10 лет и постигает минимум к 15 годам жизни. Более половины людей вообще не осваивают данный навык до конца своей жизни.

А алгоритм познания всяких абстрактных примеров ничем не отличается от познания примитивных прецедентов. Увидел это:
Цитата Сообщение от ili1 Посмотреть сообщение
S(a, b) = S(b, a) (коммутативность сложения)
вспомнил, что где-то такое видел (поиск ближайших соседей). Сложное не это. Сложное - научиться распознавать начало и конец примера.
Не так:
Цитата Сообщение от ili1 Посмотреть сообщение
, b) = S(b, a) (комм
1
05.02.2018, 05:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2018, 05:33

Обучение оптимизации Книги (или в какую сторону лучше копать) MS
Доброго, времеи суток форумчани. Я программист работаю уже 2 года. Без образования, поэтому...

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу...

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru