Здравствуйте, LaptevVV, Вы писали:
L> Не, ну нифига себе!!!! L> Сделай ему кандидатскую диссертацию в виде легкого упражнения на L> досуге!!! У меня студенты несколько дипломов написали по поводу поиска L> логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола L> на халяву хочеть!!!!
Ну, для C++ ему можно помочь вот таким батничком:
@echo off
cl /c /Tp test.cpp >nul 2>nul
if %errorlevel% == 0 goto ok
echo This program is malformed.
goto end
:ok
echo This program is well-formed.
:end
-- Всего хорошего!
-- Alex Alexandrov, e-mail: alex_alexandrov@fromru.com
Posted via RSDN NNTP Server 1.8 beta
It's kind of fun to do the impossible (Walt Disney)
Здравствуйте, barn_czn, Вы писали:
_>Здравствуйте, Mikola, Вы писали:
M>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>>Помогите plz. кто чем может M>>
_>Я вооще , простите, фигею от этих профессоров с нейросетями.
_>Вы прежде чем решать сложные задачи нейросетями попробуйте _>решить решенные задачи этим способом.
Согласен. Попытка починить автомобиль с помощью оптоволоконный сети тоже врядли увенчается успехом. Значит ли это что оптоволокно хуже гаичного ключа?
Просто для одних целей эффективны одни средства, для других — другие...
_>Поиск максимального числа из набора — простая задача. _>Я уверен что для ее решения с помощью нейросети придется разбиться в лепешку.
Как и для латания носков напильником. Тебе её кто-нибудь предлагал решать с помошью нейронных сетей?
_>Дак чего вы решаете сложные задачи методом который не известно чего дает.
Неизвестно кому? Ты теорию нейросетей вообще то знаешь? Принципы их работы?
_>Говорю так потому знаю что в общем поведение сети не предсказуемо и нет _>почти никаких теоретических исследований и результатов.
И как ты об этом узнал если нет никаких, даже теоретических исследований и результатов?
Кроме того у КОГО их нет?
Кроме того, насколько мне известно, в настоящее время к области нейросетей относят так же громадное число очень эффективных алгоритмов обработки изображения и другой информации. Да и классические нейронные сети используются весьма успешно. В частности при распознавании образов.
Про нейронные сети действительно много всякой ерунды было написано в жёлтой и псевдонаучной прессе. Но если Вы батенька зачитываетесь подобной прессой, то нейронные сети в этом не виноваты...
Здравствуйте, Аноним, Вы писали:
А>Так что, нет ни одного примера успешного применения нейронных сетей?
Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем.
Вот теперь, думая о НС как о методе экстраполяции (который, плюс ко всему, ведет себя слабопредсказуемо на незаданных точках), подумайте, можно-ли им решить вашу задачу.
Как писал предыдущий докладчик (barn_czn), "Поиск максимального числа из набора — простая задача.
Я уверен что для ее решения с помощью нейросети придется разбиться в лепешку."
Попробуйте придумать схему решения такой задачи любым экстраполяционным методом (поиском приближенной функции по заданному набору точек, например в классе полиномов методом наименьших квадратов. Бред ведь, правда?). А теперь оцените применимость метода НС "для решения унифицированных задач", и для вашей в частности.
Чудес не бывает. И чтобы понять это на примере НС, совсем не надо знать "теорию НС" и какую-нибудь недоступную простому смертному математику. Удивительно даже, что народ все еще ведется на звучные термины. НС имеет такое же отношение к интеллекту как протез мозга из папье-маше.
Здравствуйте, itheme, Вы писали:
I>Здравствуйте, Mikola, Вы писали:
M>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>>Помогите plz. кто чем может M>>
I>Мне кажется, что тут надо подойти с двух сторон: сделать state machine, которая будет трейсить текст и выдавать характеристики текста (вид блока, вид синтаксической конструкции, вид инструкций (декларация/использование) и т.д.)... эту машину надо научить по куче исправного кода... нейросеть во время трейсинга будет предсказывать вероятность перехода машины в пространстве ее состояний, и если переход будет резко отличаться от предсказанного, тогда выдается ошибка с комментариями по "предсказанию"... если сделать state machine достаточно емким для категорий характеристик текста, то прога должна давать неплохие результаты... Это называется "марковский автомат". Где на дугах стоят рассчитанные статически веса-вероятности переходов. Ну, если есть желание решить задачу через зад, то можно конечно и нейросеть где-нибудь прикрутить . Я бы посоветовал приспособить ее для управления прогресс-баром, чтобы она не мешала работать марковскому автомату .
Кстати, все это никак не решает поставленную задачу.
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Не, ну нифига себе!!!!
Сделай ему кандидатскую диссертацию в виде легкого упражнения на досуге!!!
У меня студенты несколько дипломов написали по поводу поиска логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола на халяву хочеть!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Я вооще , простите, фигею от этих профессоров с нейросетями.
Вы прежде чем решать сложные задачи нейросетями попробуйте
решить решенные задачи этим способом.
Поиск максимального числа из набора — простая задача.
Я уверен что для ее решения с помощью нейросети придется разбиться в лепешку.
Дак чего вы решаете сложные задачи методом который не известно чего дает.
Говорю так потому знаю что в общем поведение сети не предсказуемо и нет
почти никаких теоретических исследований и результатов.
А>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
AF>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
А>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"...
Вспомним классику:
Казнить нельзя помиловать.
И где тут должна была стоять запятая?
Вы уверены, что возможно однозначно пределить место ошибки?
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, bkat, Вы писали:
B>>>Экспертные системы — один из вариантов создания таких систем. B>>>Заполняешь базу правил (знаний), компилируешь текст программы B>>>в некоторое реляционное представление и осуществляешь логических вывод B>>>с использованием базы правил. B>>>Чем лучше база знаний, тем больше ошибок можно пытаться находить.
А>>Да, абсолютно верно, а как сюда примененить нейросети?
B>Понятия не имею B>Видимо при таком подходе вместо базы знаний и логического вывода будет работать сеть. B>Как она будет объяснять найденные ошибки — я не знаю.
В большинстве случаев нейронная сеть и не может заменить экспертную систему в принципе (есть соответсвующие теоремы). Однако она может её дополнить.
В кратце так: экспертная система (тот же компилятор), выделяет некоторые признаки. А вот нейронная сеть, позволяет по выделенной совокупности признаков распознать некий заданный набор признаков или класс наборов признаков. Причём часто гораздо быстрее, чем любой экспертный алгоритм...
С Уважением, Андрей
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает.
А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.
В общем — уточни, что именно хотелось бы получить.
А то тут уже некоторые уже дисеры на халяву пишут...
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Здравствуйте, Socrat, Вы писали:
S>>>Здравствуйте, AndreyFedotov, Вы писали:
AF>>>>Здравствуйте, Socrat, Вы писали:
S>>>>>А у меня вопрос: а можно заставить нейронные сети играть в шахматы? Или хотя бы в шашки?
AF>>>>Можно. Правда пока не слышал, что бы это кто-то сделал...
S>>>А в чем проблема? Или речь идет уже о создании ИИ, который еще предстоит научить играть в шахматы?
AF>>Теоретически проблем нет. Тут как раз очень хорошая ситуация для обучения сети. Правда огромное число вариантов. Такие работы делались, правда на уровне отдельных ходов. Что бы был достигнут уровень хорошей игры в целом — я не слышал. Хотя теоретически это вполне возможно...
S>А обучение там велось по каждому ходу или по результатам всей партии?
По-разному.
Мне известен следующий подход:
Настраиваются отдельные сети на различные ходы. Каждая сеть распознаёт одну или несколько комбинаций и вариантов действий. Затем сети объединяются и при анализе положения фигур на доске — голосуют, за тот или иной вариант действий. Их выходы рассматриваются сетями более высокого уровня, чья задача — выбрать итоговый вариант действий.
С Уважением, Андрей
Могу только добавить, что моя персональная нейронная сеть напрочь отказывается
искать максимальные числа в поледовательностях, вычислять косинусы, извлекать квадратные
корни и еще много чего
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Если найдешь такое, то не забудь поделиться.
Eсть у меня нечто, но делиться не буду.
Самому не хватает
Впрочем тут ты сможешь найти то,
что тебе возможно поможет.
В целом задача очень сложна.
Я бы сказал, что в общем случае она просто неподъемна.
Re: Нейронная сеть
От:
Аноним
Дата:
18.11.03 06:27
Оценка:
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Есть теорема, указывающая на принципиальную невозможность создания системы, проверяющей логическую верность программы по её тексту...И здесь — нате
Здравствуйте, alexandrov_alex, Вы писали:
_>Здравствуйте, LaptevVV, Вы писали:
L>> Не, ну нифига себе!!!! L>> Сделай ему кандидатскую диссертацию в виде легкого упражнения на L>> досуге!!! У меня студенты несколько дипломов написали по поводу поиска L>> логических ошибок в программе, и конца теме не видно, а уважаемый Мыкола L>> на халяву хочеть!!!!
_>Ну, для C++ ему можно помочь вот таким батничком:
_>
_>@echo off
_>cl /c /Tp test.cpp >nul 2>nul
_>if %errorlevel% == 0 goto ok
_>echo This program is malformed.
_>goto end
_>:ok
_>echo This program is well-formed.
_>:end
_>
_>-- Всего хорошего! _>-- Alex Alexandrov, e-mail: alex_alexandrov@fromru.com
Ну если под логическими ошибками понимать синтаксические ошибки,
то да, это поможет
В целом, искать логические ошибки без формальных спецификаций — дело бесполезное.
Re[2]: Нейронная сеть
От:
Аноним
Дата:
18.11.03 11:10
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Mikola, Вы писали:
M>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>>Помогите plz. кто чем может M>>
AF> Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает. AF> А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.
Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит
P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Здравствуйте, Mikola, Вы писали:
M>>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>>>Помогите plz. кто чем может M>>>
AF>> Логические ошибки найти по тексту программы нельзя в принципе. Так как для этого нужно знать предназначение программы, которое в тексте не описано. Есть даже теорема, которая это доказывает. AF>> А вот попробовать найти некторорые синтаксические ошибки — вполне легко. Простейший случай — поиск пропущеных фигурных скобок в программах на C/C++. Вот тут нейронная сеть действительно может помочь. Однако для того, что бы её применить текст программы требуется предварительно преобразовать к опеделённому виду, на котором и может работать сеть.
А>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
А Mikola молчит чего-то
Давай, Колись поконкретней, чего надо-то?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Нейронная сеть
От:
Аноним
Дата:
18.11.03 11:44
Оценка:
А>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
AF>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
А>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
AF>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
А>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
Легко указать сам факт того, что есть ошибка.
Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.
Re[6]: Нейронная сеть
От:
Аноним
Дата:
18.11.03 12:26
Оценка:
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Аноним, Вы писали:
А>>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
AF>>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
А>>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
AF>Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"... AF>Вспомним классику: AF>Казнить нельзя помиловать. AF>И где тут должна была стоять запятая?
Это уже вопросы логики, нежели синтаксиса. AF>Вы уверены, что возможно однозначно пределить место ошибки?
В данном случае — нет. Но это в данном случае
AF>С Уважением, Андрей
Re[6]: Нейронная сеть
От:
Аноним
Дата:
18.11.03 12:29
Оценка:
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
B>Легко указать сам факт того, что есть ошибка. B>Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Здравствуйте, Аноним, Вы писали:
А>>>>>Зачем нейронная сеть здесь нужна ? Здесь обычный синтаксический парсер рулит А>>>>>P.S. Тыкают нейронными сетями, где только можно — только великию идею самоорганизирующихся алгоритмов похабят
AF>>>>В принципе парсера для поиска ошибок достаточно. Однако когда возникает многовариантность, то сделать хороший алгоритм поиска — где именно должна была стоять } или ; довольно сложно.
А>>>Забавно...Это ж какая такая многовариантность ? Какие сложности могут бытьпри написании синтаксического анализатора по конечному автомату разбора грамматики С++ ? Только что автомат будет побольше,чем у прочих языков, из-за бОльшей сложности синтаксиса С++ А конкретно в вашем случае — что будет стоять } или ; — ИМХО проблема явно надуманная — при нисходящем рекурсивном синтаксическом разборе выяснить, что за лексема должна стоять — не проблема.
AF>>Возможно. Особенно если быть уверенным в том, что при нарушении синтаксиса всегда возможен "настоящий синтаксический разбор"... AF>>Вспомним классику: AF>>Казнить нельзя помиловать. AF>>И где тут должна была стоять запятая? А>Это уже вопросы логики, нежели синтаксиса.
Да, безусловно. Но ошибка то синтаксическая. Запятая в любом случае ДОЛЖНА быть. Вот способ её постановки дело другое.
AF>>Вы уверены, что возможно однозначно пределить место ошибки?
А>В данном случае — нет. Но это в данном случае
А каков будет процент подобных случаев в анализе реальных программ и реальных ошибок?
В случае когда ситуация не однозначна, желательно иметь возможность видеть — различные варианты того, где может быть ошибка и вероятности того, что ошибка именно там.
Вот с этой то задачей нейронные сети помогают справляться довольно хорошо.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, bkat, Вы писали:
B>>Здравствуйте, Аноним, Вы писали:
B>>Легко указать сам факт того, что есть ошибка. B>>Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.
А>Так понимание — это прерогатива разума .
да это так, но я лично от компилятора ожидаю внятных сообщений об ошибках
Re: Нейронная сеть
От:
Аноним
Дата:
18.11.03 13:41
Оценка:
Народ, мне не нужен Полынй Алогритм + Прога + Тесты.
Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он
Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую.
Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим
Помогите plz, нигде не могу найти даже самого общего по теме.
Здравствуйте, Аноним, Вы писали:
А>Народ, мне не нужен Полынй Алогритм + Прога + Тесты. А>Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он А>Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую. А>Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим А>Помогите plz, нигде не могу найти даже самого общего по теме.
Экспертные системы — один из вариантов создания таких систем.
Заполняешь базу правил (знаний), компилируешь текст программы
в некоторое реляционное представление и осуществляешь логических вывод
с использованием базы правил.
Чем лучше база знаний, тем больше ошибок можно пытаться находить.
Здравствуйте, Аноним, Вы писали:
А>Народ, мне не нужен Полынй Алогритм + Прога + Тесты. А>Это просто мне наш Профессор задал в качестве РГЗ Вот такой вот он А>Я у его аспирантов спрашивал как делать (они ведут предмет) — они тоже ответили, что если сделаешь — иди защищай докторскую. А>Мне хотя-бы в общих чертах как это выглядит — ну схемку какую-нить — а там уж сдадим А>Помогите plz, нигде не могу найти даже самого общего по теме.
Не знаю, что имел в виду ваш проффесор, но можно попробовать следующее:
— предсказание N + 1 -го символа по N преведущим
— распознавание определённых шаблонов (например поиск блока по набору признаков, включая как синтаксические "{" и "}", так и смысловые, такие как форматирование текста)
— выделение схожих идентификаторов (перемнных и имён функций)
— предсказание типа N + 1 -го элемента (опрератор/идентификатор/новая функция) по преведущим N элементам
С Уважением, Андрей
Re[3]: Нейронная сеть
От:
Аноним
Дата:
18.11.03 14:48
Оценка:
Здравствуйте, bkat, Вы писали:
B>Экспертные системы — один из вариантов создания таких систем. B>Заполняешь базу правил (знаний), компилируешь текст программы B>в некоторое реляционное представление и осуществляешь логических вывод B>с использованием базы правил. B>Чем лучше база знаний, тем больше ошибок можно пытаться находить.
Да, абсолютно верно, а как сюда примененить нейросети?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, bkat, Вы писали:
B>>Экспертные системы — один из вариантов создания таких систем. B>>Заполняешь базу правил (знаний), компилируешь текст программы B>>в некоторое реляционное представление и осуществляешь логических вывод B>>с использованием базы правил. B>>Чем лучше база знаний, тем больше ошибок можно пытаться находить.
А>Да, абсолютно верно, а как сюда примененить нейросети?
Понятия не имею
Видимо при таком подходе вместо базы знаний и логического вывода будет работать сеть.
Как она будет объяснять найденные ошибки — я не знаю.
Здравствуйте, LaptevVV, Вы писали:
LVV>А Mikola молчит чего-то LVV>Давай, Колись поконкретней, чего надо-то?
Ну поконкретней я уж написал — хотя бы в общих чертах (описание процесса, без текста проги): Как нейронная сеть может обучаться и ловить в потом логические ошибки в программе. Язык — все-равно какой. Чтоб это можно было бы сдать как РГЗ.
Вы говорили, что Вам студенты дипломы сдавали на эту тему. Можт кинете чего мне. Мне ж не для продажи надо, а чтоб сдать это РГЗ. Так сказать, для умственного развития
Потому что самому такое придумать — мозгов не хватает пока
Здравствуйте, bkat, Вы писали:
B> B>Могу только добавить, что моя персональная нейронная сеть напрочь отказывается B>искать максимальные числа в поледовательностях, вычислять косинусы, извлекать квадратные B>корни и еще много чего
Моя тоже... Уж если ей сильно приспичит, то погонит меня за калькулятором или программку искать...
Здравствуйте, AndreyFedotov, Вы писали:
_>>Дак чего вы решаете сложные задачи методом который не известно чего дает. AF>Неизвестно кому? Ты теорию нейросетей вообще то знаешь? Принципы их работы?
А ты уверен, что ты знаешь? Может старый топик про нейросети поднимем, и ты скажешь что нибудь умное-теоретическое в их защиту? Кроме обычной муры, что это на нейроны отдаленно похоже, и поэтому очень круто?
AF>Кроме того, насколько мне известно, в настоящее время к области нейросетей относят так же громадное число очень эффективных алгоритмов обработки изображения и другой информации. Да и классические нейронные сети используются весьма успешно. В частности при распознавании образов.
AF>Про нейронные сети действительно много всякой ерунды было написано в жёлтой и псевдонаучной прессе. Но если Вы батенька зачитываетесь подобной прессой, то нейронные сети в этом не виноваты...
Судя по написанному, такой прессой зачитываетесь Вы, батенька. Уж, по крайней мере, не подшивкой журнала "дифференциальные уравнения" .
Re[4]: Нейронная сеть - Это вечный двигатель
От:
Аноним
Дата:
22.11.03 15:23
Оценка:
Так что, нет ни одного примера успешного применения нейронных сетей?
Re[6]: Нейронная сеть - Это вечный двигатель
От:
Аноним
Дата:
23.11.03 18:53
Оценка:
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, Аноним, Вы писали:
А>>Так что, нет ни одного примера успешного применения нейронных сетей?
G>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
Спасибо!
Т.е. по твоему мнению НС не имеют права на существование и работам
в этой области должно быть отведено то же место, что и "работам" по вечным двигателям?
Re[6]: Нейронная сеть - Это вечный двигатель
От:
Аноним
Дата:
24.11.03 08:46
Оценка:
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, Аноним, Вы писали:
А>>Так что, нет ни одного примера успешного применения нейронных сетей?
G>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
G>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем.
<...>
Помнится, я слышал про сети с обратной связью. Эти-то нельзя назвать "методом экстраполяции" ? Или можно ?
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
_>>>Дак чего вы решаете сложные задачи методом который не известно чего дает. AF>>Неизвестно кому? Ты теорию нейросетей вообще то знаешь? Принципы их работы? G>А ты уверен, что ты знаешь? Может старый топик про нейросети поднимем, и ты скажешь что нибудь умное-теоретическое в их защиту? Кроме обычной муры, что это на нейроны отдаленно похоже, и поэтому очень круто?
Интересно, когда я утверждал что то подобное?
AF>>Кроме того, насколько мне известно, в настоящее время к области нейросетей относят так же громадное число очень эффективных алгоритмов обработки изображения и другой информации. Да и классические нейронные сети используются весьма успешно. В частности при распознавании образов.
AF>>Про нейронные сети действительно много всякой ерунды было написано в жёлтой и псевдонаучной прессе. Но если Вы батенька зачитываетесь подобной прессой, то нейронные сети в этом не виноваты... G>Судя по написанному, такой прессой зачитываетесь Вы, батенька. Уж, по крайней мере, не подшивкой журнала "дифференциальные уравнения" .
Ну по наличию ярлыков и эпитетов кто читает жёлтую прессу определить можно сразу...
Кроме того, по множеству голословных утверждений чтение подшивки журнала "дифференциальные уравнения" дало не много...
Может попробовать расслабиться? Почитать плейбой или XXL?
Глядишь и добрее станешь к людям...
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, Аноним, Вы писали:
А>>Так что, нет ни одного примера успешного применения нейронных сетей?
G>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
Поясни какие методы Ты называешь "нормальными", что именно ты называешь словами "нейронные сети" и где именно "нормальные методы" лучше чем "нейронные сети".
G>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем.
С чёго это? Это в первую очередь определённым образом составленые функции нескольких переменных. И как и любые другие функции их можно применить и для экстраполяции тоже. Особенно интерсно становится если использовать нелинейные нейронные сети...
G>Вот теперь, думая о НС как о методе экстраполяции (который, плюс ко всему, ведет себя слабопредсказуемо на незаданных точках), подумайте, можно-ли им решить вашу задачу.
Великолепный способ промывать мозги. Сначала делаем ложное утверждение. Затем авторитарно заставляем в него поверить. А потом исходя из него обосновываем всё остальное...
G>Как писал предыдущий докладчик (barn_czn), "Поиск максимального числа из набора — простая задача. G>Я уверен что для ее решения с помощью нейросети придется разбиться в лепешку." G>Попробуйте придумать схему решения такой задачи любым экстраполяционным методом (поиском приближенной функции по заданному набору точек, например в классе полиномов методом наименьших квадратов. Бред ведь, правда?). А теперь оцените применимость метода НС "для решения унифицированных задач", и для вашей в частности.
А кто предлагает их там использовать?
Это тоже самое что заявлять, что "прямые линии — это плохо, потому что они плохо аппроксимируют квадратное уравнение". Вы вспомните ещё о решении излюбленных дифференциальных уравнений. Удивительно! Но там они тоже не сработают! Так же, как и деление в столбик, факториалы, вся комбинаторика, топология,... Пора отказываться и от всего и вся. Ибо попробуйте найти хоть что-то что работает одинакого хорошо везде...
G>Чудес не бывает. И чтобы понять это на примере НС, совсем не надо знать "теорию НС" и какую-нибудь недоступную простому смертному математику. Удивительно даже, что народ все еще ведется на звучные термины. НС имеет такое же отношение к интеллекту как протез мозга из папье-маше.
Интересно, а кто именно (кроме ВАС) связывает нейронные сети и искуственный интеллект? Где Вы это нашли? Хотя бы в пределах данной ветки?
У человека был вопрос — как ему применить определённый математический метод в конкретной задаче, на что Вы вместо того, что бы ему помочь пустились в пространные рассуждения о том, какой это плохой метод...
Это-то конечно гораздо проще, чем хотя бы подумать, как и для чего можно было бы их применить в контексте этой задачи...
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Gaperton, Вы писали:
G>>Здравствуйте, Аноним, Вы писали:
А>>>Так что, нет ни одного примера успешного применения нейронных сетей?
G>>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
А>Спасибо! А>Т.е. по твоему мнению НС не имеют права на существование и работам А>в этой области должно быть отведено то же место, что и "работам" по вечным двигателям?
Про "вечный двигатель" фраза не моя. Имеют, конечно-же. Под нейронные сети выделяли большие деньги, поэтому ими занимались. И занимались ими частенько очень хорошие математики. Которые получали за это деньги, и честно пытались что-то сделать. И я бы занялся, если денег бы заплатили хорошо, там интересная математика. Для сильных духом.
Но вот как инженер, я НС пользоваться не буду ни в коем случае, и вам не советую. Но здесь каждый решает за себя, я не собираюсь никого переубеждать, поймите меня правильно.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Gaperton, Вы писали:
G>>Здравствуйте, Аноним, Вы писали:
А>>>Так что, нет ни одного примера успешного применения нейронных сетей?
G>>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше.
G>>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем.
<...>>
А>Помнится, я слышал про сети с обратной связью. Эти-то нельзя назвать "методом экстраполяции" ? Или можно ?
Разницы нет. Суть вот в чем.
НС в общем случае это нелинейная вектор-функция f( x1, ... ,xn, a1, ... ,an ),
где xi это аргумент, а ai — настраеваемый параметр.
Задача стоит так. По заданному множеству пар значений {( X, f( X ) )} подобрать коэффициенты ai таким образом ("обучение"), чтобы значения f были близки к точкам "обучающего множества". Есть нюанс, что процесс "обучения" (настройки коэффициентов) итеративен, т. е. мы обрабатываем одну точку за раз, и каждый раз сеть становится "умнее". В чем, впрочем, нет особого смысла.
Считается, что если правильно "обучить" НС, то она "найдет закономерности" (т. е. может быть использованна в точках отличных от "обучающего множества", что и есть задача экстраполяции).
Сухой остаток: "сеть" представляет собой нелинейную параметрическую функцию. "Обучение" — это подбор коэффициентов (обычно минимизируется функция ошибки методом сопряженного градиента) таким образом, чтобы минимизировать ошибку на "обучающем множестве". Нелинейность создает массу проблем:
1) Нельзя впрямую рассчитать коэффициенты. Сравните с рассчетом коэффициентов ряда фурье.
2) Таким методом можно обучить все что угодно, главное чтобы градиент существовал. Но есть нюанс. Метод не гарантирует нахождения глобального минимума функции ошибки. Сравните с рядом фурье — гарантированное нахождение минимума.
3) В связи с особенностью вида функции ошибки (ступенчатая с плоскими участками) метод работает очень неторопливо, и время "обучения" предсказать тяжело. Сравните с рядом фурье — фиксированное количество операций для нахождения каждого коэффициента.
4) Ряд фурье (как все нормальные методы экстраполяции) ведут себя предсказуемо на незаданных точках. В случае с рядом фурье или сплайнами, мы можем правильно выбирать базисные функции чтобы увеличить точность.
НС из-за нелинейности функции ведет себя в незаданных точках черти-как.
Ну и дальше, куда не плюнь одни проблемы. А где преимущества? Непонятно.
Здравствуйте, AndreyFedotov, Вы писали:
G>>Успешные — есть. Нет [известных мне и всем кого я знаю] таких примеров применения НС, где бы они оказались лучше, чем нормальные методы [я вопросом занимался, но может случится чудо и я окажусь неправ?]. А геммороя с НС обычно заметно больше. AF>Поясни какие методы Ты называешь "нормальными", что именно ты называешь словами "нейронные сети" и где именно "нормальные методы" лучше чем "нейронные сети".
"Нормальные" методы, это методы прикладной математики, которые учитывают природу задачи, для которых можно СРАЗУ до попытки применения сказать сработают они или нет, а если сработают, то как. Да что я объясняю, те кому надо и так все поняли.
G>>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем. AF>С чёго это? Это в первую очередь определённым образом составленые функции нескольких переменных. И как и любые другие функции их можно применить и для экстраполяции тоже. Особенно интерсно становится если использовать нелинейные нейронные сети...
No comments. Что говорить, если не о чем говорить?
G>>Вот теперь, думая о НС как о методе экстраполяции (который, плюс ко всему, ведет себя слабопредсказуемо на незаданных точках), подумайте, можно-ли им решить вашу задачу. AF>Великолепный способ промывать мозги. Сначала делаем ложное утверждение. Затем авторитарно заставляем в него поверить. А потом исходя из него обосновываем всё остальное...
Почему авторитарно? Мое высказывание поддается элементарной проверке, и должно быть очевидно любому человеку с математичеким образованием. Прежде чем обвинять меня в ложных утверждениях, попробуйте подумать сами. А вдруг я все-таки прав? Тогда неудобно как-то получится. Вам. Или приведите контрпример (что, как мне кажется, у вас не выйдет). Тогда (возможно) я окажусь неправ. Это математика, а не философия или религия. Здесь почти все можно доказать.
G>>Как писал предыдущий докладчик (barn_czn), "Поиск максимального числа из набора — простая задача. G>>Я уверен что для ее решения с помощью нейросети придется разбиться в лепешку." G>>Попробуйте придумать схему решения такой задачи любым экстраполяционным методом (поиском приближенной функции по заданному набору точек, например в классе полиномов методом наименьших квадратов. Бред ведь, правда?). А теперь оцените применимость метода НС "для решения унифицированных задач", и для вашей в частности. AF>А кто предлагает их там использовать? AF>Это тоже самое что заявлять, что "прямые линии — это плохо, потому что они плохо аппроксимируют квадратное уравнение". Вы вспомните ещё о решении излюбленных дифференциальных уравнений. Удивительно! Но там они тоже не сработают! Так же, как и деление в столбик, факториалы, вся комбинаторика, топология,... Пора отказываться и от всего и вся. Ибо попробуйте найти хоть что-то что работает одинакого хорошо везде...
G>>Чудес не бывает. И чтобы понять это на примере НС, совсем не надо знать "теорию НС" и какую-нибудь недоступную простому смертному математику. Удивительно даже, что народ все еще ведется на звучные термины. НС имеет такое же отношение к интеллекту как протез мозга из папье-маше. AF>Интересно, а кто именно (кроме ВАС) связывает нейронные сети и искуственный интеллект? Где Вы это нашли? Хотя бы в пределах данной ветки?
AF>У человека был вопрос — как ему применить определённый математический метод в конкретной задаче, на что Вы вместо того, что бы ему помочь пустились в пространные рассуждения о том, какой это плохой метод... AF>Это-то конечно гораздо проще, чем хотя бы подумать, как и для чего можно было бы их применить в контексте этой задачи... Очень не хочется с вами спорить. Думайте над этим сами, а мы посмотрим, что у вас получится. Я уже подумал, и (если вы не заметили) объяснил, почему НС не подойдут для решения этой задачи. Хао. Я все сказал.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
G>>>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем. AF>>С чёго это? Это в первую очередь определённым образом составленые функции нескольких переменных. И как и любые другие функции их можно применить и для экстраполяции тоже. Особенно интерсно становится если использовать нелинейные нейронные сети...
G> No comments. Что говорить, если не о чем говорить?
Вот и я об этом. Если бы исходные функции были известны или можно было бы получить их представление в виде рядов, то нейронные сети не были бы нужны. Причина их использования — именно не известность этих самых исходных функций.
G>Очень не хочется с вами спорить. Думайте над этим сами, а мы посмотрим, что у вас получится. Я уже подумал, и (если вы не заметили) объяснил, почему НС не подойдут для решения этой задачи. Хао. Я все сказал.
Это если бы задачей было построить компилятор на одних нейронных сетях. Тут и спорить не о чем. Задача то была — найти возможность применения НС в поиске ошибок. И не там, где они заведомо не будут работать. А именно конекст — в котором они работать будут и способ их применения.
Хотя для данной области НС — далеко не лучший выбор, что однако и так очевидно...
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Gaperton, Вы писали:
G>>Здравствуйте, AndreyFedotov, Вы писали:
G>>>>Если по простому, то НС это не более чем метод экстраполяции функций нескольких переменных. Причем он проигрывает классическим методам экстраполяции практически во всем. AF>>>С чёго это? Это в первую очередь определённым образом составленые функции нескольких переменных. И как и любые другие функции их можно применить и для экстраполяции тоже. Особенно интерсно становится если использовать нелинейные нейронные сети...
G>> No comments. Что говорить, если не о чем говорить?
AF>Вот и я об этом. Если бы исходные функции были известны или можно было бы получить их представление в виде рядов, то нейронные сети не были бы нужны. Причина их использования — именно не известность этих самых исходных функций.
Вы не об этом. Это не может быть причиной. Известен набор пар точка-значение. Использовать можно ЛЮБОЙ метод, при этом хотите вы этого или нет, интерполяционная функция будет принадлежать какому-то наперед известному классу параметрических функций. Будь то сплайны, отрезки ряда фурье, полиномы, или (в случае НС) многослойный персептрон. Все перечисленные функции кроме персептрона имеют очевидные свойства и предсказуемое поведение, при равной персептрону описательной силе, которая в большей степени определяется количеством настраиваемых параметров, а не видом функции. Вид функции влияет на скорость сходимости (точность приближения), и здесь персептрон тоже в аутсайдерах.
G>>Очень не хочется с вами спорить. Думайте над этим сами, а мы посмотрим, что у вас получится. Я уже подумал, и (если вы не заметили) объяснил, почему НС не подойдут для решения этой задачи. Хао. Я все сказал. AF>Это если бы задачей было построить компилятор на одних нейронных сетях. Тут и спорить не о чем. Задача то была — найти возможность применения НС в поиске ошибок. И не там, где они заведомо не будут работать. А именно конекст — в котором они работать будут и способ их применения. AF> Хотя для данной области НС — далеко не лучший выбор, что однако и так очевидно...
Экстраполяционные методы здесь не то что "лучший" или "худший" — это вообще не выбор, если вы еще не поняли. Задача принцпиально не разрешима в данной постановке, и этот факт доказан. При наличии формальных спецификаций можно попробовать проверить программу на соответствие этим спецификациям, но это совсем другая песня, и другая математика.
Здравствуйте, Gaperton, Вы писали:
G>Вы не об этом. Это не может быть причиной. Известен набор пар точка-значение. Использовать можно ЛЮБОЙ метод, при этом хотите вы этого или нет, интерполяционная функция будет принадлежать какому-то наперед известному классу параметрических функций. Будь то сплайны, отрезки ряда фурье, полиномы, или (в случае НС) многослойный персептрон. Все перечисленные функции кроме персептрона имеют очевидные свойства и предсказуемое поведение, при равной персептрону описательной силе, которая в большей степени определяется количеством настраиваемых параметров, а не видом функции. Вид функции влияет на скорость сходимости (точность приближения), и здесь персептрон тоже в аутсайдерах.
Если понимать под нейронными сетями ТОЛЬКО функции вида пороговая функция от суммы произведения значений в точках на вес. То это верно. Но разве я что то говорил про ПЕРСЕПТРОН? А если идею обучения некоторой функции по входным значениям? Тогда Ваши же аргументы работают против Вас. Посокольку все те чудные свойства функций ЛЮБОГО заданного класса — остаются. Как и прогнозированное поведение. И добавляется лишь ещё одни и довольно эффективный метод работы с ними. Что по определению расширяет возможности. Из известных мне работ уже давным давно никто персептроном не пользуется. Используются именно идеи и подходы, которые были применены в древности к персептрону. Но не он сам.
AF>>Это если бы задачей было построить компилятор на одних нейронных сетях. Тут и спорить не о чем. Задача то была — найти возможность применения НС в поиске ошибок. И не там, где они заведомо не будут работать. А именно конекст — в котором они работать будут и способ их применения. AF>> Хотя для данной области НС — далеко не лучший выбор, что однако и так очевидно...
G>Экстраполяционные методы здесь не то что "лучший" или "худший" — это вообще не выбор, если вы еще не поняли. Задача принцпиально не разрешима в данной постановке, и этот факт доказан. При наличии формальных спецификаций можно попробовать проверить программу на соответствие этим спецификациям, но это совсем другая песня, и другая математика.
Не выбор для чего? Для того, что бы в случае ошибки (например "неверно задан идентификатор") по написанию идентификатора определить его подобие с другими, и выдвинуть предположение, что это описка в таком-то имени? Для того, что бы оценить подобие имён? Для этого вполне подходят. Если для того, что бы парсировать текст на C++ — то очвидно нет. Даже теоретически.
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Gaperton, Вы писали:
G>>Вы не об этом. Это не может быть причиной. Известен набор пар точка-значение. Использовать можно ЛЮБОЙ метод, при этом хотите вы этого или нет, интерполяционная функция будет принадлежать какому-то наперед известному классу параметрических функций. Будь то сплайны, отрезки ряда фурье, полиномы, или (в случае НС) многослойный персептрон. Все перечисленные функции кроме персептрона имеют очевидные свойства и предсказуемое поведение, при равной персептрону описательной силе, которая в большей степени определяется количеством настраиваемых параметров, а не видом функции. Вид функции влияет на скорость сходимости (точность приближения), и здесь персептрон тоже в аутсайдерах. AF>Если понимать под нейронными сетями ТОЛЬКО функции вида пороговая функция от суммы произведения значений в точках на вес. То это верно. Но разве я что то говорил про ПЕРСЕПТРОН? А если идею обучения некоторой функции по входным значениям? Тогда Ваши же аргументы работают против Вас. Посокольку все те чудные свойства функций ЛЮБОГО заданного класса — остаются. Как и прогнозированное поведение. И добавляется лишь ещё одни и довольно эффективный метод работы с ними. Что по определению расширяет возможности. Из известных мне работ уже давным давно никто персептроном не пользуется. Используются именно идеи и подходы, которые были применены в древности к персептрону. Но не он сам.
Ох, не хотел в дисскуссию ввязываться, но здесь не могу удержаться. Хватаем за язык.
Объясните четко и недвусмысленно про "довольно эффективный метод", который "еще один" и "добавляется". На примере:
1) Рядов фурье.
2) Многочленов. (метод наименьших квадратов)
Что мы там хотим добавить к этим методам?
Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать?
И, наконец, подробнее про революционную "идею обучения некоторой функции по входным значениям" . Извините, но мы теорию функций вообще знаем, или как? Судя по вашим постам на форуме, от вас можно ожидать что знаете. Вы в состоянии понять, что здесь имеет место быть просто подмена термина?
И про расширенные возможности подробнее, пожалуйста.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Здравствуйте, Gaperton, Вы писали:
G>>>Вы не об этом. Это не может быть причиной. Известен набор пар точка-значение. Использовать можно ЛЮБОЙ метод, при этом хотите вы этого или нет, интерполяционная функция будет принадлежать какому-то наперед известному классу параметрических функций. Будь то сплайны, отрезки ряда фурье, полиномы, или (в случае НС) многослойный персептрон. Все перечисленные функции кроме персептрона имеют очевидные свойства и предсказуемое поведение, при равной персептрону описательной силе, которая в большей степени определяется количеством настраиваемых параметров, а не видом функции. Вид функции влияет на скорость сходимости (точность приближения), и здесь персептрон тоже в аутсайдерах. AF>>Если понимать под нейронными сетями ТОЛЬКО функции вида пороговая функция от суммы произведения значений в точках на вес. То это верно. Но разве я что то говорил про ПЕРСЕПТРОН? А если идею обучения некоторой функции по входным значениям? Тогда Ваши же аргументы работают против Вас. Посокольку все те чудные свойства функций ЛЮБОГО заданного класса — остаются. Как и прогнозированное поведение. И добавляется лишь ещё одни и довольно эффективный метод работы с ними. Что по определению расширяет возможности. Из известных мне работ уже давным давно никто персептроном не пользуется. Используются именно идеи и подходы, которые были применены в древности к персептрону. Но не он сам.
G>Ох, не хотел в дисскуссию ввязываться, но здесь не могу удержаться. Хватаем за язык.
G>Объясните четко и недвусмысленно про "довольно эффективный метод", который "еще один" и "добавляется". На примере: G>1) Рядов фурье. G>2) Многочленов. (метод наименьших квадратов) G>Что мы там хотим добавить к этим методам?
Вот и поясните на примере этих же методов, как их применить на обучающей выборке? А не заданной функции, к которой их применяют. БЕЗ исползования Backpropagation и подходов используемых в теории НС. Если сумеете — как говриться — съем свою шляпу...
G>Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать?
В том числе и backpropagation. Где этот медод применялся до НС? Не в математике — а в технике, особенно применительно к распознаванию?
G>И, наконец, подробнее про революционную "идею обучения некоторой функции по входным значениям" . Извините, но мы теорию функций вообще знаем, или как? Судя по вашим постам на форуме, от вас можно ожидать что знаете. Вы в состоянии понять, что здесь имеет место быть просто подмена термина?
Знаем. Да это действительно другое название одного и того же. Причём подмена термина идёт в обе стороны.
G>И про расширенные возможности подробнее, пожалуйста.
Как раз определение коэффициентов тех же многчленов или рядов фурье по обучающим выборкам.
Здравствуйте, AndreyFedotov, Вы писали:
G>>Объясните четко и недвусмысленно про "довольно эффективный метод", который "еще один" и "добавляется". На примере: G>>1) Рядов фурье. G>>2) Многочленов. (метод наименьших квадратов) G>>Что мы там хотим добавить к этим методам? AF>Вот и поясните на примере этих же методов, как их применить на обучающей выборке? А не заданной функции, к которой их применяют. БЕЗ исползования Backpropagation и подходов используемых в теории НС. Если сумеете — как говриться — съем свою шляпу...
G>>Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать? AF>В том числе и backpropagation. Где этот медод применялся до НС? Не в математике — а в технике, особенно применительно к распознаванию?
Ну, это легко. Я объясню для одномерного случая, в многомерном все то же самое.
Начнем с того, что обобщенный метод фурье дает решение с наименьшим квадратичным отклонением. Базис можно выбирать любой, в том числе и многочлены. Поэтому ограничимся рядом фурье. Если кратко, применяем стандартный для физиков прием: раскладываем в ряд функцию
Сумма( ДельтаФункцияДирака( x — x[ i ] ) * y[ i ] ).
Сетка будет вообще говоря неравномерна, поэтому делаем так. Берем выборку из наших пар (точка, значение). Определяем скалярное произведение в функциональном пространстве так:
( f, g ) = Сумма( f( x[i] ) * g( x[ i ] ), i = 1..n ), где x[ i ] — точка из обучающего множества.
Готово. Далее, мы должны добиться того, чтобы базис был ортонормированным в нашем пространстве. Этого легко добиться применив метод ортогонализации (линейная алгебра, первый курс, первый семестр). Легко видеть, что так как мы ввели сетку, задача сводится к задаче линейной алгебры.
Теперь, вычисляем коэффициенты фурье.
K[ j ] = ( f[ j ], y ) / ( y, y ), где f[ j ] — отнормированный базис, y — вектор значений.
Получаем интерполяционный многочлен
F( x ) = Сумма( K[ j ] * f[ j ] );
Я наверняка где-то немного ошибся (пишу по памяти), но я надеюсь идею вы поняли. А идея здесь в том, что коэффициенты входят в многочлен линейно, поэтому их можно посчитать напрямую, без всяких извращений типа минимизации невязки градиентным спуском, как в НС.
Ну а метод наименьших квадратов применительно к многочленам известен и широко описан в литературе.
Здравствуйте, Mikola, Вы писали:
M>Здравствуйте, LaptevVV, Вы писали:
LVV>>А Mikola молчит чего-то LVV>>Давай, Колись поконкретней, чего надо-то?
M>Ну поконкретней я уж написал — хотя бы в общих чертах (описание процесса, без текста проги): Как нейронная сеть может обучаться и ловить в потом логические ошибки в программе. Язык — все-равно какой. Чтоб это можно было бы сдать как РГЗ. M>Вы говорили, что Вам студенты дипломы сдавали на эту тему. Можт кинете чего мне. Мне ж не для продажи надо, а чтоб сдать это РГЗ. Так сказать, для умственного развития M>Потому что самому такое придумать — мозгов не хватает пока
Тогда главное — правильно отобразить проблемы синтаксического анализа во входные сигналы нейросети. Если это сумеешь — дальше просто. Найди книжку Роберта Каллана "Основные концепции нейронных сетей" или книжку Уотермена "Нейронные сети" — там подробно написано. Вся закавыка — как и что поставить в соответствие входным сигналам нейросети.
В этом вся докторская и состоит.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, AndreyFedotov, Вы писали:
G>>Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать? AF>В том числе и backpropagation. Где этот медод применялся до НС? Не в математике — а в технике, особенно применительно к распознаванию?
Небольшой комментарий по этому вопросу.
Метод backpropagation представляет собой минимизацию функции ошибки (невязки) для многослойного персептрона методом сопряженного градиента. Подобные медоды применялись в вычислительной математике, но с многослойным персептроном из-за его идиотского вида была проблема. Дело в том, что там не так просто посчитать градиент. Основная заслуга автора метода backpropagation как раз и состоит в изобретении метода расчета градиента для многослойного персептрона, что и вдохнуло жизнь в заглохшее было направление.
Соответственно, я не стал бы говорить об огромном значении метода backpropagation для остальной математики, и теории функций в частности.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
G>>>Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать? AF>>В том числе и backpropagation. Где этот медод применялся до НС? Не в математике — а в технике, особенно применительно к распознаванию?
G>Небольшой комментарий по этому вопросу.
G>Метод backpropagation представляет собой минимизацию функции ошибки (невязки) для многослойного персептрона методом сопряженного градиента. Подобные медоды применялись в вычислительной математике, но с многослойным персептроном из-за его идиотского вида была проблема. Дело в том, что там не так просто посчитать градиент. Основная заслуга автора метода backpropagation как раз и состоит в изобретении метода расчета градиента для многослойного персептрона, что и вдохнуло жизнь в заглохшее было направление.
G>Соответственно, я не стал бы говорить об огромном значении метода backpropagation для остальной математики, и теории функций в частности.
Согласен. Новизна на мой взгляд состояла не в самом применении этого метода (который был известен давно), а в посторении опреденённой дисциплины из многих известных методов. Пользу тут приносит не столько каждый конкретный метод, сколь их компиляция.
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
G>>>Объясните четко и недвусмысленно про "довольно эффективный метод", который "еще один" и "добавляется". На примере: G>>>1) Рядов фурье. G>>>2) Многочленов. (метод наименьших квадратов) G>>>Что мы там хотим добавить к этим методам? AF>>Вот и поясните на примере этих же методов, как их применить на обучающей выборке? А не заданной функции, к которой их применяют. БЕЗ исползования Backpropagation и подходов используемых в теории НС. Если сумеете — как говриться — съем свою шляпу...
G>>>Объясните волшебные идеи и подходы, примененные в древности к персептрону. Ну не о backpropagation же вы хотите рассказать? AF>>В том числе и backpropagation. Где этот медод применялся до НС? Не в математике — а в технике, особенно применительно к распознаванию?
G>Ну, это легко. Я объясню для одномерного случая, в многомерном все то же самое.
G>Начнем с того, что обобщенный метод фурье дает решение с наименьшим квадратичным отклонением. Базис можно выбирать любой, в том числе и многочлены. Поэтому ограничимся рядом фурье. Если кратко, применяем стандартный для физиков прием: раскладываем в ряд функцию G>Сумма( ДельтаФункцияДирака( x — x[ i ] ) * y[ i ] ).
G>Сетка будет вообще говоря неравномерна, поэтому делаем так. Берем выборку из наших пар (точка, значение). Определяем скалярное произведение в функциональном пространстве так: G>( f, g ) = Сумма( f( x[i] ) * g( x[ i ] ), i = 1..n ), где x[ i ] — точка из обучающего множества.
G>Готово. Далее, мы должны добиться того, чтобы базис был ортонормированным в нашем пространстве. Этого легко добиться применив метод ортогонализации (линейная алгебра, первый курс, первый семестр). Легко видеть, что так как мы ввели сетку, задача сводится к задаче линейной алгебры.
G>Теперь, вычисляем коэффициенты фурье.
G>K[ j ] = ( f[ j ], y ) / ( y, y ), где f[ j ] — отнормированный базис, y — вектор значений.
G>Получаем интерполяционный многочлен
G>F( x ) = Сумма( K[ j ] * f[ j ] );
G>Я наверняка где-то немного ошибся (пишу по памяти), но я надеюсь идею вы поняли. А идея здесь в том, что коэффициенты входят в многочлен линейно, поэтому их можно посчитать напрямую, без всяких извращений типа минимизации невязки градиентным спуском, как в НС.
По памяти написано верно и идея прекрасная. Для случая, когда выборка одна и фиксирована. Но как это будет работать, когда в одних и тех же точках в разных обучающих выборках будут разные значения?
G>Ну а метод наименьших квадратов применительно к многочленам известен и широко описан в литературе.
Метод наименьших квадратов преполагает, насколько я помню, что все выборки известны сразу...
Здравствуйте, AndreyFedotov, Вы писали:
AF>По памяти написано верно и идея прекрасная. Для случая, когда выборка одна и фиксирована. Но как это будет работать, когда в одних и тех же точках в разных обучающих выборках будут разные значения?
Например, так. Для каждой дублирующейся точки добавляем вес (количество дубликатов) в соответсвующий член скаларного произведения.
у[i] в точке-дубликате считаем за среднее значений в этой точке. И все. Здесь, правда, неплохо-бы доказать что получится решение с наименьшим отклонением. Но оно так или иначе получится (не так, так по другому), здесь принципиальных проблем нет.
Вариант №2, для сильно многомерного случая. Используем метод монте-карло для расчета коэффициентов фурье, предполагаем что обучающая выборка является "случайной" последовательностью, ортогонализацию базиса не проводим, скалярное произведение не меняем (пусть будет стандартное для L2). Здесь проблема дубликатов не стоит, а интегралы можно вычислять итеративно. Никакого отличия от НС "по интерфейсу".
Ну как там насчет шляпы? Есть-то придется G>>Ну а метод наименьших квадратов применительно к многочленам известен и широко описан в литературе.
AF>Метод наименьших квадратов преполагает, насколько я помню, что все выборки известны сразу...
Ну и что? Чем именно это плохо? Все равно сеть сначала обучают, а потом используют, она не может "дообучатся" по мере использования. Так что где практическая разница?
Здравствуйте, Gaperton, Вы писали:
G>Здравствуйте, AndreyFedotov, Вы писали:
AF>>По памяти написано верно и идея прекрасная. Для случая, когда выборка одна и фиксирована. Но как это будет работать, когда в одних и тех же точках в разных обучающих выборках будут разные значения?
G>Например, так. Для каждой дублирующейся точки добавляем вес (количество дубликатов) в соответсвующий член скаларного произведения. G>у[i] в точке-дубликате считаем за среднее значений в этой точке. И все. Здесь, правда, неплохо-бы доказать что получится решение с наименьшим отклонением. Но оно так или иначе получится (не так, так по другому), здесь принципиальных проблем нет.
G>Вариант №2, для сильно многомерного случая. Используем метод монте-карло для расчета коэффициентов фурье, предполагаем что обучающая выборка является "случайной" последовательностью, ортогонализацию базиса не проводим, скалярное произведение не меняем (пусть будет стандартное для L2). Здесь проблема дубликатов не стоит, а интегралы можно вычислять итеративно. Никакого отличия от НС "по интерфейсу".
G>Ну как там насчет шляпы? Есть-то придется G>>>Ну а метод наименьших квадратов применительно к многочленам известен и широко описан в литературе.
AF>>Метод наименьших квадратов преполагает, насколько я помню, что все выборки известны сразу... G>Ну и что? Чем именно это плохо? Все равно сеть сначала обучают, а потом используют, она не может "дообучатся" по мере использования. Так что где практическая разница?
Во-первых сети то как раз могут дообучаться.
Во-вторых дообучение можно организовать и для рядов Фурье и для наименьшего квадрата.
В-третьих наш подход ничем не отличается. Метод backpropagation можно применить и к многочленам и к рядам Фурье.
В чётвёртых — ряд Фурье или многочлен так же можно рассматривать как нелинейную нейронную сеть. Это всего лишь вопрос определения того, что называть нейронной сетью. (Кто сказал что только функции вида СУММА( wi * xi ) ? )
Так что как не крути — а шлапу придётся есть нам обоим. Я честно извиняюсь за непарламенские выражения, примённые мной по недомыслию в ходе состоявшейся дискусии, признаю себя ослом и ем свою половину шляпы...
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Socrat, Вы писали:
S>>А у меня вопрос: а можно заставить нейронные сети играть в шахматы? Или хотя бы в шашки?
AF>Можно. Правда пока не слышал, что бы это кто-то сделал...
А в чем проблема? Или речь идет уже о создании ИИ, который еще предстоит научить играть в шахматы?
Здравствуйте, Socrat, Вы писали:
S>Здравствуйте, AndreyFedotov, Вы писали:
AF>>Здравствуйте, Socrat, Вы писали:
S>>>А у меня вопрос: а можно заставить нейронные сети играть в шахматы? Или хотя бы в шашки?
AF>>Можно. Правда пока не слышал, что бы это кто-то сделал...
S>А в чем проблема? Или речь идет уже о создании ИИ, который еще предстоит научить играть в шахматы?
Теоретически проблем нет. Тут как раз очень хорошая ситуация для обучения сети. Правда огромное число вариантов. Такие работы делались, правда на уровне отдельных ходов. Что бы был достигнут уровень хорошей игры в целом — я не слышал. Хотя теоретически это вполне возможно...
Здравствуйте, AndreyFedotov, Вы писали:
AF>Здравствуйте, Socrat, Вы писали:
S>>Здравствуйте, AndreyFedotov, Вы писали:
AF>>>Здравствуйте, Socrat, Вы писали:
S>>>>А у меня вопрос: а можно заставить нейронные сети играть в шахматы? Или хотя бы в шашки?
AF>>>Можно. Правда пока не слышал, что бы это кто-то сделал...
S>>А в чем проблема? Или речь идет уже о создании ИИ, который еще предстоит научить играть в шахматы?
AF>Теоретически проблем нет. Тут как раз очень хорошая ситуация для обучения сети. Правда огромное число вариантов. Такие работы делались, правда на уровне отдельных ходов. Что бы был достигнут уровень хорошей игры в целом — я не слышал. Хотя теоретически это вполне возможно...
А обучение там велось по каждому ходу или по результатам всей партии?
S>>А обучение там велось по каждому ходу или по результатам всей партии?
AF>По-разному. AF>Мне известен следующий подход: AF>Настраиваются отдельные сети на различные ходы. Каждая сеть распознаёт одну или несколько комбинаций и вариантов действий. Затем сети объединяются и при анализе положения фигур на доске — голосуют, за тот или иной вариант действий. Их выходы рассматриваются сетями более высокого уровня, чья задача — выбрать итоговый вариант действий. AF> С Уважением, Андрей
Так это уже получается одна сеть, более высокого порядка.
S>>>А обучение там велось по каждому ходу или по результатам всей партии?
AF>>По-разному. AF>>Мне известен следующий подход: AF>>Настраиваются отдельные сети на различные ходы. Каждая сеть распознаёт одну или несколько комбинаций и вариантов действий. Затем сети объединяются и при анализе положения фигур на доске — голосуют, за тот или иной вариант действий. Их выходы рассматриваются сетями более высокого уровня, чья задача — выбрать итоговый вариант действий. AF>> С Уважением, Андрей
S>Так это уже получается одна сеть, более высокого порядка.
В общем то да. Я просто хотел продемонстрировать общую идею построения такой сети.
Хотя за деталями лучше обращаться к тем, кто подобные сети строил. Я сам занимался распознаванием образов. Например лиц и автомобилей.
С Уважением, Андрей
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Mikola, Вы писали:
M>>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>>Помогите plz. кто чем может M>>
А> Есть теорема, указывающая на принципиальную невозможность создания системы, проверяющей логическую верность программы по её тексту...И здесь — нате
ну не знаю...
есть такая вещь, как конструктивная логика в которой требуемая функциональность системы — формула, а программа, обеспечивающая данную функциональность — доказательство ентой формулы. так что _правильно_ работающая программа енто не что-то случайное
исходя ТОЛЬКО из текста проги, может и нельзя.
но если умудриться формализовать то, что должна делать прога, доказать эту формулу исходя из каких-либо
заранее определённых аксиом с помощью каких-либо заранее определённых правил вывода, и сравнить доказательство с текстом —
вот тебе и на)
хотя, если сделать такую штуку... ну не Нобелевскую (её математикам не дают) но AMS премию точно отхватишь.
ещё придётся учебник писать и лекции читать.
принципиально енто возможно.
вот
Здравствуйте, AndreyFedotov, Вы писали:
AF>>>Метод наименьших квадратов преполагает, насколько я помню, что все выборки известны сразу... G>>Ну и что? Чем именно это плохо? Все равно сеть сначала обучают, а потом используют, она не может "дообучатся" по мере использования. Так что где практическая разница?
AF>В-третьих наш подход ничем не отличается. Метод backpropagation можно применить и к многочленам и к рядам Фурье.
Отличается , и серьезно.
1) Он гарантирует нахождение решения с глобальным минимумом на функции ошибки. Backpropagation для НС это не гарантирует (т. е. он не гарантирует нахождения решения. Вдумайтесь в это. Разница существенна).
2) Он гарантирует, что время настройки на данные будет хорошо предсказуемо и линейно зависеть от размера выборки. Чего не гарантирует backpropagation (там скорость зависит от вида функции ошибки).
3) Он дает предсказуемость результатов при экстраполяци. Чего не дает персептрон.
4) Он позволяет оценить ошибку экстраполяции. Попробуйте сделать это с НС.
5) Он настраивается на данные гораздо быстрее backpropagation-а.
И все это в частности благодаря тому, что мы НЕ применяем backpropagation. К тому же, если мы применим к ним backpropagation, то он перестанет быть backpropagation, и станет обычным численным методом . Потому, что термин "обратное распространение" имеет отношение к проблемам с расчетом градиента, а не к методу минимизации невязки сопряженным градиентом
AF>В чётвёртых — ряд Фурье или многочлен так же можно рассматривать как нелинейную нейронную сеть. Это всего лишь вопрос определения того, что называть нейронной сетью. (Кто сказал что только функции вида СУММА( wi * xi ) ? )
Нельзя . Основное отличие в том, что коэффициенты входят в многочлен (и в ряд фурье) линейно, что и дает нам все прелести. А в многослойный персептрон они входят нелинейно, что и создает геморрой. Персептрон — это самая нейронная сеть из всех нейронных, с него началось все направление; собственно он и представляет собой "линейную модель нейрона".
А называть ряд Фурье нейросетью — это знаете-ли нечестно! Хотя-бы потому, что он существует независимо от достижений нейросетевиков и их мнения о нем. А вот господин Фурье — имеет к ряду отношение, так что пусть это будет рядом Фурье.
AF> Так что как не крути — а шлапу придётся есть нам обоим. Я честно извиняюсь за непарламенские выражения, примённые мной по недомыслию в ходе состоявшейся дискусии, признаю себя ослом и ем свою половину шляпы...
Ну по такому случаю, я тоже откушу, просто из уважения. Скрепим трапезой наше знакомство!
Здравствуйте, Gaperton, Вы писали:
AF>>В чётвёртых — ряд Фурье или многочлен так же можно рассматривать как нелинейную нейронную сеть. Это всего лишь вопрос определения того, что называть нейронной сетью. (Кто сказал что только функции вида СУММА( wi * xi ) ? ) G>Нельзя . Основное отличие в том, что коэффициенты входят в многочлен (и в ряд фурье) линейно, что и дает нам все прелести. А в многослойный персептрон они входят нелинейно, что и создает геморрой. Персептрон — это самая нейронная сеть из всех нейронных, с него началось все направление; собственно он и представляет собой "линейную модель нейрона".
Опять таки полностью согласен. Но я разве утверждал что НС это именно персептрон?
В том, что относится Ваших выводов относительно классических функций, когда то в древности применённых в НС, я полностью согласен. Ондако на мой взгляд не эти функции делают НС потенциально переспективным направлением.
Так же, как я согласен с тем, что механичесие экраны, применяемые на заре телевидения были монстрами, однако ТВ то мы смотрим...
G>А называть ряд Фурье нейросетью — это знаете-ли нечестно! Хотя-бы потому, что он существует независимо от достижений нейросетевиков и их мнения о нем. А вот господин Фурье — имеет к ряду отношение, так что пусть это будет рядом Фурье.
Обычно и не называют. Однако его можно рассматривать в таком качестве. Особенно если строить многослойные сети.
Вообще я встречался с работами в которых НС рассматривались как совокупность связанных между собой процессоров, выполняющие сложные функции по обработке информации...
Особенно интересным мне показались возникшие в последнее время идеи создания сети из квантовых вычислителей...
В прочем основная проблема с НС, как их не рассматривай — в том, что крайне сложно понять, как они работают...
AF>> Так что как не крути — а шлапу придётся есть нам обоим. Я честно извиняюсь за непарламенские выражения, примённые мной по недомыслию в ходе состоявшейся дискусии, признаю себя ослом и ем свою половину шляпы...
G>Ну по такому случаю, я тоже откушу, просто из уважения. Скрепим трапезой наше знакомство!
Re[5]: Нейронная сеть - Это вечный двигатель
От:
Аноним
Дата:
07.07.04 02:46
Оценка:
Здравствуйте, AndreyFedotov
Я внимательно почитал ваши диалоги с господином Gaperton'ом ..
Еще раз увидел как размазывают по стенке все доводы фанатов нейросетей.
С вашей стороны просто не было ниодного разумного аргумента.. в НС безусловно много интересного. но и только.
как только заходит речь о практическом применении — все туфта..
математика дает ответы только на правильно поставленые вопросы. А вы хотите от НС решения задачи не имеющей однозначного решения. или хоть какогото ограниченоого множества решений.. короче батенька учиться вам еще надо
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AndreyFedotov
А>Я внимательно почитал ваши диалоги с господином Gaperton'ом .. А>Еще раз увидел как размазывают по стенке все доводы фанатов нейросетей. А>С вашей стороны просто не было ниодного разумного аргумента.. в НС безусловно много интересного. но и только. А>как только заходит речь о практическом применении — все туфта.. А>математика дает ответы только на правильно поставленые вопросы. А вы хотите от НС решения задачи не имеющей однозначного решения. или хоть какогото ограниченоого множества решений.. короче батенька учиться вам еще надо
Я, конечно, задам, быть может, не совсем коректный вопрос, но скажите: "Вы хоть читали какие-нибуть фундаментальный труды по теории нейронных сетей?".
Как мне показалось, Ваши знания (и не только) базируются только на высказываниях "некоторых" так сказать личностях и не более того. Что бы понять возможности, преимущества и недостатки НС необходимо с ними хоть немного самому поработать. Тогда уж и дозволено так вот выражаться ("все туфта").
Что же касается реального применения, то могу сказать, что зачастую НС ОЧЕНЬ полезна и вполне работоспособна.
Даже что касается шашек. о которых было упомянуто. Лично играл в реализованную игру ИМЕННО на основе нейронных сетей. Даже где-то дома лежит документация по этой реализации...
Так что, мой совет — не стоит делать таких вот голословных выводов..
Здравствуйте, nyquist, Вы писали:
N> Я, конечно, задам, быть может, не совсем коректный вопрос, но скажите: "Вы хоть читали какие-нибуть фундаментальный труды по теории нейронных сетей?".
N> Как мне показалось, Ваши знания (и не только) базируются только на высказываниях "некоторых" так сказать личностях и не более того. Что бы понять возможности, преимущества и недостатки НС необходимо с ними хоть немного самому поработать. Тогда уж и дозволено так вот выражаться ("все туфта").
Т. е. НС до такой степени круты, что их возможности, преимущества и недостатки невыразимы на человеческом языке, неформализуемы, и не поддаются теоретическому анализу? Можно встречный, возможно некорректный вопрос? Вы владеете теорией функций хотя-бы на элементарном уровне, достаточном, чтобы понять высказывания "так сказать" личностей, и аргументированно, без хамства, сказать что-нибудь по сути вопроса?
N>Так что, мой совет — не стоит делать таких вот голословных выводов..
Голословными бывают обычно высказывания. Намек.
Здравствуйте, Gaperton, Вы писали:
G>Т. е. НС до такой степени круты, что их возможности, преимущества и недостатки невыразимы на человеческом языке, неформализуемы, и не поддаются теоретическому анализу?
Об этом я не написал ни строчки !!!
G>Можно встречный, возможно некорректный вопрос? Вы владеете теорией функций хотя-бы на элементарном уровне, достаточном, чтобы понять высказывания "так сказать" личностей, и аргументированно, без хамства, сказать что-нибудь по сути вопроса?
Мои комментарии были направлены "Анониму" и ни в коем разе не задевали определенных личностей.
Что же касается сути вопроса, то, как мне кажется, тут суть так размазаласть, что получается просто демагогия какая-то.
G>Голословными бывают обычно высказывания. Намек.
Вышенаписанная строчка — это тоже высказывание, в котором сути не так уж и много.
Здравствуйте, nyquist, Вы писали:
N>Здравствуйте, Gaperton, Вы писали:
G>>Т. е. НС до такой степени круты, что их возможности, преимущества и недостатки невыразимы на человеческом языке, неформализуемы, и не поддаются теоретическому анализу?
N>Об этом я не написал ни строчки !!!
Пардон. А это тогда о чем? N> Как мне показалось, Ваши знания (и не только) базируются только на высказываниях "некоторых" так сказать личностях и не более того. Что бы понять возможности, преимущества и недостатки НС необходимо с ними хоть немного самому поработать.
Я объясню. Вот формальный разбор этой фразы.
Предположения, скрытые в вашем высказывании:
1) Какие-бы не были эти личности, независимо от того, занимались они сами нейросетями или нет, из того, что они говорят, невозможно сделать достоверные выводы о возможностях, преимуществах и недостатках НС.
2) Невозможно никому передать знание о возможностях, преимуществах и недостатках НС, единственный способ приобрести знание о них — поработать с ними самому.
Выводы:
Возможности, преимущества и недостатки НС невыразимы на человеческом языке, неформализуемы, и не поддаются теоретическому анализу.
N>Мои комментарии были направлены "Анониму" и ни в коем разе не задевали определенных личностей.
Тады ладно . Но очень на то похоже, можно легко перепутать.
Здравствуйте, Gaperton, Вы писали:
G>Я объясню. Вот формальный разбор этой фразы.
G>Предположения, скрытые в вашем высказывании: G>1) Какие-бы не были эти личности, независимо от того, занимались они сами нейросетями или нет, из того, что они говорят, невозможно сделать достоверные выводы о возможностях, преимуществах и недостатках НС. G>2) Невозможно никому передать знание о возможностях, преимуществах и недостатках НС, единственный способ приобрести знание о них — поработать с ними самому.
G>Выводы: G>Возможности, преимущества и недостатки НС невыразимы на человеческом языке, неформализуемы, и не поддаются теоретическому анализу.
Логика желазная, только сюда вкрадась одна МЕЛКАЯ бяка:
Под работой с НС я подразумеваю не программирование (и т.п.), а попытку самостоятельно разобраться со всей теоретической проблемой. А как же можно получить знания, не зная, что за этим стоит. Т.е. "слышал звон, да...".
Это вполне естественно.
Например, когда высказываются конкретные вещи (не будем развивать далее демогогию), в определенном контексте, где оговаривается, что что-то плохо, а что-то хорошо, то просто оставлять без контекста "хорошо" и "плохо" — это ...
Поэтому, чтобы как-то оченить проблему, нужно быть с нею знакомым (это не к Вам, а к таким типа "Аноним") и не более того.
N>>Мои комментарии были направлены "Анониму" и ни в коем разе не задевали определенных личностей. G>Тады ладно . Но очень на то похоже, можно легко перепутать.
Бывает
Здравствуйте, Mikola, Вы писали:
M>Народ, нужен алгоритм и/или описание нейронной сети, которая ищет логические ошибки в коде программы (язык-любой) M>Помогите plz. кто чем может M>
Мне кажется, что тут надо подойти с двух сторон: сделать state machine, которая будет трейсить текст и выдавать характеристики текста (вид блока, вид синтаксической конструкции, вид инструкций (декларация/использование) и т.д.)... эту машину надо научить по куче исправного кода... нейросеть во время трейсинга будет предсказывать вероятность перехода машины в пространстве ее состояний, и если переход будет резко отличаться от предсказанного, тогда выдается ошибка с комментариями по "предсказанию"... если сделать state machine достаточно емким для категорий характеристик текста, то прога должна давать неплохие результаты...
Здравствуйте, itheme, Вы писали:
I> нейросеть во время трейсинга будет предсказывать вероятность перехода машины в пространстве ее состояний
Вероятности можно не предсказывать, а знать точно — ведь если мы уже набрали статистику по большому количеству правильных программ, то это и означает, что нам точно известны все вероятности. Все те вероятности которые нам остались не известны очень малы ( = 0.0000...) — ниже точности измерений. С другой стороны, пусть машина делает один переход вероятность которого равна 0.0000000000001 и что это означает? Может мы как раз и попали в тот маловероятный, но правильный код? Или машина делает один переход вероятность которого 0.99999999999999999999, но вдруг этот код ошибочен? Вот если проверяя программу машина сделает очень много маловероятных переходов или очень мало высоковероятных, вот тут можно задуматься о том что где-то в этой программе, возможно, скрыты ошибки, но по одному переходу — ничего сказать нельзя.
Здравствуйте, Gaperton, Вы писали:
G> Это называется "марковский автомат". Где на дугах стоят рассчитанные статически веса-вероятности переходов. Ну, если есть желание решить задачу через зад, то можно конечно и нейросеть где-нибудь прикрутить . Я бы посоветовал приспособить ее для управления прогресс-баром, чтобы она не мешала работать марковскому автомату .
это второй вопрос! главное, что именно нейросетка нажимает на красную или зеленую кнопку при виде банана, который дает ей автомат
следовательно, условия ТЗ (в целом) выполнены
G>Кстати, все это никак не решает поставленную задачу.
решить поставленную задачу в рамках НС, разумеется, нельзя, а вот вывести с некоторой точностью места наивероятного расположения ошибок — вполне... (цели исправить ошибки не было...)
Здравствуйте, bkat, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, bkat, Вы писали:
B>>>Здравствуйте, Аноним, Вы писали:
B>>>Легко указать сам факт того, что есть ошибка. B>>>Понять в чем ошибка — тут уже синтаксического анализа будет недостаточно.
А>>Так понимание — это прерогатива разума .
B>да это так, но я лично от компилятора ожидаю внятных сообщений об ошибках
К вопросу о компиляторах — в Eclipse 3.1 очень внятные сообщения об ошибках, только вот не верится, что они нейронные сети туда зашили!