Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
09.07.2014, 09:27
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Помогите разобраться с нейронными сетями. Нашел в интернете много статей, но во всех них используются «сухие» понятия и сложные формулы, а конкретных для понимания примеров очень мало. Хотелось бы, чтобы нейронная сеть понимала, что 3+2=5 . Для этого нужно обучить ее. И вот тут возникают вопросы, как происходит процесс обучения. Может кто-нибудь объяснить это на данном примере. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 10:21
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Guest_neural_netПомогите разобраться с нейронными сетями. Нашел в интернете много статей, но во всех них используются «сухие» понятия и сложные формулы, а конкретных для понимания примеров очень мало. Хотелось бы, чтобы нейронная сеть понимала, что 3+2=5 . Для этого нужно обучить ее. И вот тут возникают вопросы, как происходит процесс обучения. Может кто-нибудь объяснить это на данном примере. Заранее спасибо. Тут как и с обычными живыми существами. Долго показываешь, что 3+2=5, пока система не запоминает, что 3+2=5. Т.е. дожна быть обратная связь. На вход подается 3+5, на выходе идет всякая фигня. Если равно 5, то система "поощряется" в остальных случаях нет. Все <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 11:17
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
mad_nazgul, Вот как раз эта часть мне и непонятна. Получается, есть 2 переменные: a и b. Каждая переменная может принимать какое-нибудь конкретное значение (входные данные), по которым идет процесс обучения. a=2; b=4; result=6 a=2; b=3; result=5 a=2.5; b=3; result=5.5 После многократного поступления входных данных, система просто должна определить, что, например, для a=3 и b=2 наиболее частый результат это 5.5. Получается, система обучилась, что 3+2=5.5? После такого обучения сеть должна быть самообучаема, т.е. при поступлении нового входного значения, например: a=3; b=2; result=4.5, какое значение сеть будет считать результатом 3+2? Последние входные данные как-то ведь должны повлиять на обучаемость - как в этом случае опять должен происходить процесс обучения? Должны учитываться все более ранние входные данные + последнее и на основе его будет браться самый часто встречаемый результат или условие, полученное при раннем обучении (3+2=5.5) + последние данные (3+2=4.5) и будет браться что-то среднее между 4.5 и 5.5? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 12:02
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Guest_neural_netmad_nazgul, Вот как раз эта часть мне и непонятна. Для этого и нужны "сухие формулировки и сложные формулы". А на пальцах... Предположим у вас есть капча/и на которой изображено "3+2" (это картинка) Вы "учитель", что в результате должно быть 5. Показываете капчу/и "ученику" и получаете ответ. В начале ответы будут рандомны. Но с течением времени поощряя за правильные ответы вы можете научить распознавать капчу "3+2". Затем можно усложнить задачу показывая капчу "2+3". В общем учите. Т.е. распознается не конкретное число, строка и т.д., а образ. В данном случае картинка. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 14:47
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
mad_nazgul, По идее, даже я не должен знать, что 3+2=5, т.к. это не очевидно (может зависеть от системы счисления). На примере капчи, можно просто задать, что если a=3 и b=2, то результат всегда 5. А система должна учиться, и основываться на ответах, которые даются при проверке капчи. Т.е. если при проверки капчи чаще всего дается ответ 5, то он более правильный – в качестве учителя здесь выступают те, кто дает ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 15:14
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Guest_neural_netmad_nazgul, По идее, даже я не должен знать, что 3+2=5, т.к. это не очевидно (может зависеть от системы счисления). На примере капчи, можно просто задать, что если a=3 и b=2, то результат всегда 5. А система должна учиться, и основываться на ответах, которые даются при проверке капчи. Т.е. если при проверки капчи чаще всего дается ответ 5, то он более правильный – в качестве учителя здесь выступают те, кто дает ответ. Во время обучения подсовывая системе капчи вы ("учитель") должны знать что 3+2=5. Это уже после обучения, система должна понимать образ это "3+2" или что-то другое. Кроме того. Система может и не знать, что а=3 и b=2. Она "знает", что на образ "3+2" нужно дать ответ 5. Для того, чтобы система могла понимать, что а=3, а b=5, и операция "+". Система должны уметь "вычленять" образы. Т.е. нужно ее "обучить", что образ "3" это 3, образ "2" это 2, а образ "+" это операция "+". Кроме того, ее нужно "обучить", что с этими образами нужно проделать определенные манипуляции, чтобы получить 5 если эти образы расположены в определенном порядке. Данная задача в общем случае еще не решена (точнее совсем не решена). Т.е. научить, что "3+2" это 5 еще можно, то что для определенных образов существует образ, который позволяет ими манипулировать - нет. Забудьте, чему вас учили при программировании. При работе с нейронными сетями нет тех абстракций, про которые вы говорите. Есть только образ на входе и результат на выходе + обратная связь. Представьте, что вы дрессируете таракана, который при показе картинки "3+2" должен подбежать к картинке с "5". Где-то так. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 15:44
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
mad_nazgulGuest_neural_netmad_nazgul, По идее, даже я не должен знать, что 3+2=5, т.к. это не очевидно (может зависеть от системы счисления). На примере капчи, можно просто задать, что если a=3 и b=2, то результат всегда 5. А система должна учиться, и основываться на ответах, которые даются при проверке капчи. Т.е. если при проверки капчи чаще всего дается ответ 5, то он более правильный – в качестве учителя здесь выступают те, кто дает ответ. Во время обучения подсовывая системе капчи вы ("учитель") должны знать что 3+2=5. Это уже после обучения, система должна понимать образ это "3+2" или что-то другое. Кроме того. Система может и не знать, что а=3 и b=2. Она "знает", что на образ "3+2" нужно дать ответ 5. Для того, чтобы система могла понимать, что а=3, а b=5, и операция "+". Система должны уметь "вычленять" образы. Т.е. нужно ее "обучить", что образ "3" это 3, образ "2" это 2, а образ "+" это операция "+". Кроме того, ее нужно "обучить", что с этими образами нужно проделать определенные манипуляции, чтобы получить 5 если эти образы расположены в определенном порядке. Данная задача в общем случае еще не решена (точнее совсем не решена). Т.е. научить, что "3+2" это 5 еще можно, то что для определенных образов существует образ, который позволяет ими манипулировать - нет. Забудьте, чему вас учили при программировании. При работе с нейронными сетями нет тех абстракций, про которые вы говорите. Есть только образ на входе и результат на выходе + обратная связь. Представьте, что вы дрессируете таракана, который при показе картинки "3+2" должен подбежать к картинке с "5". Где-то так. :-) Это я все понимаю. Я просто веду к тому, что результат 5 не очевидный. Обучающая система исходя из «своего видения мира» и основываясь на «общественном мнении» пользователей, получаемом при проверке капчи, в какой-то момент времени может считать, что 3+2=6. Возможно, это неправильно, но на основе имеющихся входных данных, в какой-то момент времени это может являться правдой. Самый просто пример из мира людей – Земля вертится вокруг Солнца или Солнце вокруг Земли? Раньше все считали, что Солнце вокруг земли и это было «правильно». Любого, кто мыслил иначе, просто сжигали. Получается, на то время, в общем сознании людей, правильный ответ был бы «Солнце вокруг Земли». Сейчас мы по «новым» имеющимся данным считаем, что «Солнце вокруг Земли». Т.е. я один не могу выступать в качестве учителя, потому что, если бы я плохо учился, я мог бы думать, что 3+2=10. С моей точки зрения это было бы истиной, но на самом деле народ считает, что правильный ответ 5, и с этим не поспоришь :) Результат «5» в действительности не известен никому, он находится путем коллективного «опроса», как при маркетинговом исследовании. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.07.2014, 17:23
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Guest_neural_netЭто я все понимаю. Я просто веду к тому, что результат 5 не очевидный. Я бы сказал вероятностный. Местами даже квантовый ;-) Guest_neural_netОбучающая система исходя из «своего видения мира» и основываясь на «общественном мнении» пользователей, получаемом при проверке капчи, в какой-то момент времени может считать, что 3+2=6. Возможно, это неправильно, но на основе имеющихся входных данных, в какой-то момент времени это может являться правдой. Еще раз. Если система обучена что образ "3+2" это образ "6". Значит так она обучена. Повторю. На данный момент времени нейронные сети не могут манипулировать абстрактными понятиями. Она не понимает что "3+2" - это математическое выражение. Для нее это образ. Точно так же как, например, для таракана. Guest_neural_netСамый просто пример из мира людей – Земля вертится вокруг Солнца или Солнце вокруг Земли? Раньше все считали, что Солнце вокруг земли и это было «правильно». Любого, кто мыслил иначе, просто сжигали. Получается, на то время, в общем сознании людей, правильный ответ был бы «Солнце вокруг Земли». Сейчас мы по «новым» имеющимся данным считаем, что «Солнце вокруг Земли». Современные системы еще могут опознать "солнце", "землю". Но они принципиально не могут знать что вокруг чего и как крутиться. Они даже "крутиться" не понимают. Guest_neural_netТ.е. я один не могу выступать в качестве учителя, потому что, если бы я плохо учился, я мог бы думать, что 3+2=10. С моей точки зрения это было бы истиной, но на самом деле народ считает, что правильный ответ 5, и с этим не поспоришь :) Результат «5» в действительности не известен никому, он находится путем коллективного «опроса», как при маркетинговом исследовании. Эти вопросы для современных нейронных сетей рано задавать. Они еще не научились мышлению. Даже на уровне таракана. В лучшем случае с горем пополам это опознать одинаковые образы и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2014, 14:59
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
mad_nazgul, спасибо за ответы, теперь появилось больше понимания о нейронных сетях и методах их обучения. А может есть какие-нибудь книги или ссылки, в которых наглядно объясняются нейронные сети, без заумных формул? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2014, 15:23
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
mad_nazgulЭти вопросы для современных нейронных сетей рано задавать. Они еще не научились мышлению. Даже на уровне таракана. В лучшем случае с горем пополам это опознать одинаковые образы и все. +1 У них нет ассоциативного мышления. Человек-ребёнок буквально с утробы матери осознаёт образ Матери визуально из тысячи таких же мама.bmp ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2014, 15:29
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Guest_neural_netmad_nazgul, спасибо за ответы, теперь появилось больше понимания о нейронных сетях и методах их обучения. А может есть какие-нибудь книги или ссылки, в которых наглядно объясняются нейронные сети, без заумных формул? Таких не знаю. Вообще то, все эти заумные формулы нужны как раз для создания нейронной сети. Т.к. архитектура "фоннеймана" не подходит для создания нейронных сетей, соответственно для моделирования нейронов приходиться "извращаться". Мои знания конечно устарели на лет 15-17. Но пока я ничего не слышал о прорывах в данной области. Сейчас модно - квантовые компьютеры. :-) P.S. Можно погуглить еще "персептрон", но там все равно куча формул. ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.10.2014, 08:21
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
если еще актуально набросаю свои 5 копеек Ваш пример 3+2 равно 5 не совсем корректен, при таком подходе мы учим нейросеть операции сложения для двух чисел. Например мы умеем складывать числа до 100, а хотим уметь считать дальше. Делаем гипотезу, что если научим сеть считать до 100 до она дальше будет уже уметь сама. Начинаем ее учить Тупо прогоняем ей таблицу с паттернами Входная информация 2 2 выход 4; вход 3 2 выход 5;.... вход 50 50 выход 100 И смотрим получается у нее забомнить или нет. Допустим получается, тогда делаем проверочку подаем 100 и 200 и получаем выход 300. Вуаля все работает мы получили инструмент, который умеет складывать числа больше 100. Примерно так Разбираться действительно лучше начать с персептрона, вроде он самый простой для понимания нейросетей Также лучше сразу для понимания разобратся с "методом наименьших квадратов", "качество" обучения проверяется им. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.10.2014, 10:37
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
DASTADесли еще актуально набросаю свои 5 копеек Ваш пример 3+2 равно 5 не совсем корректен, при таком подходе мы учим нейросеть операции сложения для двух чисел. Например мы умеем складывать числа до 100, а хотим уметь считать дальше. Делаем гипотезу, что если научим сеть считать до 100 до она дальше будет уже уметь сама. Начинаем ее учить Тупо прогоняем ей таблицу с паттернами Входная информация 2 2 выход 4; вход 3 2 выход 5;.... вход 50 50 выход 100 И смотрим получается у нее забомнить или нет. Допустим получается, тогда делаем проверочку подаем 100 и 200 и получаем выход 300. Вуаля все работает мы получили инструмент, который умеет складывать числа больше 100. Как раз этого и не происходит. Т.к. 1) Система не знает что такое "число" (абстрактное понятие) 2) Система не знает что такое "математическая операция" (абстрактное понятие) Т.е. подав 100 и 200 скорее всего ничего не получим, ну или получим какую-нибудь фигню. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.10.2014, 11:10
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
в случае со сложением будет - Вах, мамой клянусь! (сам писал персептрон и обучал его :) ) Другое дело с буквами, если мы учим его распознавать 10 букв, то остальные 23 он не распознает, так как никогда не видел их и закономерности, как у сложения, тут нет. Конкретный персептрон да и другие сети (с которыми сталкивался) они работают с числами 0..1 или от -1..1, зависит от базовой функции нейрона. Другое дело когда мы хотим от сети чтото иное, а не математических операций: и приходится кодировать нечисловую информацию числами. Скажем понятия "холодно", "тепло", "горячо". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.10.2014, 11:35
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
DASTADв случае со сложением будет - Вах, мамой клянусь! (сам писал персептрон и обучал его :) ) Другое дело с буквами, если мы учим его распознавать 10 букв, то остальные 23 он не распознает, так как никогда не видел их и закономерности, как у сложения, тут нет. Конкретный персептрон да и другие сети (с которыми сталкивался) они работают с числами 0..1 или от -1..1, зависит от базовой функции нейрона. Другое дело когда мы хотим от сети чтото иное, а не математических операций: и приходится кодировать нечисловую информацию числами. Скажем понятия "холодно", "тепло", "горячо". Ну думаю "холодно", "тепло", "горячо" обучить еще можно, т.к. это можно "преобразовать в цифру", но с "абстракциями" пока проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.12.2014, 17:17
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
Одна из самых простых "с обучением" - нейронная сеть Хопфилда, здесь очень просто объясняется принцип её работы: ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.01.2015, 20:36
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Petro123mad_nazgulЭти вопросы для современных нейронных сетей рано задавать. Они еще не научились мышлению. Даже на уровне таракана. В лучшем случае с горем пополам это опознать одинаковые образы и все. +1 У них нет ассоциативного мышления. Человек-ребёнок буквально с утробы матери осознаёт образ Матери визуально из тысячи таких же мама.bmp ))) Не узнаёт, проверьте если есть на ком, именно по картинке :) Просто помимо картинки есть ещё куча факторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.01.2015, 20:48
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
Cpt. GrayОдна из самых простых "с обучением" - нейронная сеть Хопфилда, здесь очень просто объясняется принцип её работы: ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.02.2015, 13:25
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
Хороший курс по машинному обучению, начать можно с него https://class.coursera.org/ml-008 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.02.2015, 08:59
|
|||
---|---|---|---|
Обучение нейронной сети |
|||
#18+
mad_nazgulGuest_neural_netПомогите разобраться с нейронными сетями. Нашел в интернете много статей, но во всех них используются «сухие» понятия и сложные формулы, а конкретных для понимания примеров очень мало. Хотелось бы, чтобы нейронная сеть понимала, что 3+2=5 . Для этого нужно обучить ее. И вот тут возникают вопросы, как происходит процесс обучения. Может кто-нибудь объяснить это на данном примере. Заранее спасибо. Тут как и с обычными живыми существами. Долго показываешь, что 3+2=5, пока система не запоминает, что 3+2=5. Т.е. дожна быть обратная связь. На вход подается 3+5, на выходе идет всякая фигня. Если равно 5, то система "поощряется" в остальных случаях нет. Все <:o) Это -- обучение "с учитилем" (superwised learing). А есть ещё обучение "без учителя" (unsuperwised). Там система выдаст разные результаты сложения 3+2 и её же оценку верности результата (например) , а ты должен уже сам выбрать нужный. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2017, 17:13
|
|||
---|---|---|---|
|
|||
Обучение нейронной сети |
|||
#18+
https://habrahabr.ru/post/312450/ https://habrahabr.ru/post/313216/ -- 2 части одной статьи которая очень внятно разбирает нейронные сети ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=33&tablet=1&tid=1547288]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 416ms |
0 / 0 |